ตัวละคร ZEPETO
ZEPETOCharacter เป็นหน่วยพื้นฐานของตัวละคร ZEPETO สำหรับโหลดใน World Scene.
ในการควบคุม ZepetoCharacter ให้เพิ่มคำสั่งนำเข้าต่อไปนี้ในสคริปต์.
API นี้สร้างและลบตัวละคร ZEPETO รวมถึงคอนโทรลเลอร์อนิเมเตอร์และคอนโทรลเลอร์ตัวละคร.
API | คำอธิบาย |
---|---|
CreateByZepetoId(zepetoId: string, spawnInfo: SpawnInfo, complete: System.Action$1) | ใช้ ZEPETO ID เพื่อสร้างตัวละคร ZEPETO โดยหลักแล้วใช้สำหรับการสร้างตัวละคร NPC. |
CreateByUserId(userId: string, spawnInfo: SpawnInfo, complete: System.Action$1) | สร้างตัวละคร ZEPETO โดยใช้ UserId โดยหลักแล้วใช้สำหรับการสร้างตัวละคร NPC. |
RemoveCharacter(character: ZepetoCharacter) | ลบตัวละครออกจากอินสแตนซ์. |
API นี้สร้างอินสแตนซ์โมเดลตัวละคร ZEPETO โดยไม่รวมคอนโทรลเลอร์อนิเมเตอร์และคอนโทรลเลอร์ตัวละคร.
- ZEPETO ID : นี่คือค่ารหัสที่ผู้ใช้ระบุโดยตรงและใช้ภายในแอป ZEPETO.
- User ID : นี่คือค่ารหัสที่ไม่ซ้ำกันซึ่งแยกแยะผู้ใช้ภายในระบบ ZEPETO และไม่ใช่ค่าที่แสดงบน UI คุณสามารถตรวจสอบได้โดยใช้สคริปต์.
หากคุณสนใจใน ZepetoCharacter API โปรดดูเอกสาร:
ถ้าคุณรันตัวอย่าง คุณจะเห็นว่า CharacterModel ทางซ้ายถูกสร้างขึ้นโดยไม่มี Animator Controller และ Character Controller ตามที่แสดงด้านล่าง
จะมีอินเทอร์เฟซที่คุณสามารถควบคุมตัวละครได้โดยตรงผ่านสคริปต์จากตัวละครในฉาก.
API | คำอธิบาย |
---|---|
MoveToPosition(position : Vector3) | ย้ายตัวละครไปยังตำแหน่งที่กำหนด |
MoveContinuously(direction : Vector3) | เคลื่อนที่อย่างต่อเนื่อง (อัปเดต) ในทิศทางที่ตัวละครมองไป |
MoveContinuously(direction : Vector2) | เคลื่อนที่อย่างต่อเนื่อง (อัปเดต) ในทิศทางที่ตัวละครมองไป |
StopMoving() | หยุดการเคลื่อนที่ของตัวละคร |
Jump() | ตัวละครกระโดดไปยังพลังการกระโดดที่ตั้งไว้ |
DoubleJump() | ตัวละครกระโดดสองครั้งด้วยพลังการกระโดดสองครั้งที่ตั้งไว้ (ใช้ได้เฉพาะเมื่อใช้ MotionController V2) |
Teleport(position: UnityEngine.Vector3, rotation: UnityEngine.Quaternion) | ตัวละครเคลื่อนที่ไปยัง Transform ทันที |
SetGesture(gesture: UnityEngine.AnimationClip) | สำหรับ AnimationClip ที่กำหนด การเคลื่อนไหวของตัวละครจะถูกเล่น ในขณะที่ SetGesture กำลังทำงาน การควบคุมของผู้ใช้จะไม่ถูกนำไปใช้กับตัวละคร เมื่อเปิดตัวเลือก loop ของ AnimationClip มันจะเล่นต่อไปจนกว่าจะเรียก CancelGesture() |
CancelGesture() | หยุดการเล่น Animation Clip ที่กำลังเล่นอยู่ผ่าน SetGesture() เมื่อ CancelGesture() ถูกเรียก การควบคุมของผู้ใช้จะถูกนำไปใช้กับการควบคุมตัวละครอีกครั้ง |
หากคุณรันตัวอย่าง คุณจะเห็นว่าตัวละครที่ถูกโคลนทำการกระทำที่กำหนดไว้ตามลำดับดังนี้
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ [การสร้าง NPC]
API ที่เกี่ยวข้องกับสถานะการเคลื่อนไหวของตัวละคร ZEPETO มีดังนี้:
API | คำอธิบาย |
---|---|
motionState.useDoubleJump = (boolean); | ตั้งค่าว่าตัวละครสามารถใช้ DoubleJump ได้หรือไม่. |
motionState.doubleJumpPower = (number); | ตั้งค่าพลัง DoubleJump ของตัวละคร. |
motionState.useLandingRoll = (boolean); | ตั้งค่าว่าจะใช้ LandingRoll ของตัวละครหรือไม่. |
motionState.landingRollSpeed = (number); | ตั้งค่าความเร็วของ LandingRoll ของตัวละคร. |
motionState.useMoveTurn = (boolean); | ตั้งค่าว่าจะใช้ MoveTurn สำหรับตัวละครหรือไม่. |
motionState.Gravity = (number); | ตั้งค่าค่าความโน้มถ่วงของตัวละคร. |
motionState.CurrentJumpState | คุณสามารถตรวจสอบสถานะการกระโดดปัจจุบันของตัวละครได้. - ไม่มี = -1, JumpIdle = 0, JumpMove = 1, JumpDash = 2, JumpDouble = 3 |
motionState.CurrentLandingState | คุณสามารถตรวจสอบสถานะการลงจอดปัจจุบันของตัวละครได้. - ไม่มี = -1, LandingSlight = 0, LandingDeep = 1, LandingRoll = 2 |
motionState.CurrentMoveState | คุณสามารถตรวจสอบสถานะการเคลื่อนไหวปัจจุบันของตัวละครได้. - ไม่มี = -1, MoveWalk = 0, MoveRun = 1 |
API | คำอธิบาย |
---|---|
StateMachine.constraintStateAnimation | เริ่มตั้งแต่เวอร์ชัน 1.6.0 ของ ZEPETO.World การเปลี่ยนแปลงของ Animation ที่เล่นใน CharacterStateMachine สามารถเปิด/ปิดได้ตาม CharacterState ของ Motion V2. - true : ปิด ZepetoCharacter.CurrentState ซึ่งได้รับผลกระทบจากการป้อนข้อมูลของตัวควบคุม และควบคุมคลิปอนิเมชันที่ต้องการ |
👍 ตัวอย่างการใช้ constraintStateAnimation
- คุณต้องการให้ตัวละครของคุณใช้อนิเมชันการว่ายน้ำแทนการเดิน คุณสามารถใช้คลิปอนิเมชันการว่ายน้ำกับ State ใหม่และแก้ไข State ผ่าน constraintStateAnimation.
- หากคุณต้องการใช้อนิเมชันท่าทางขณะเคลื่อนที่ตัวละคร คุณสามารถใช้คลิปอนิเมชันท่าทางกับ State ใหม่และเคลื่อนที่ตัวละครด้วย State ที่แก้ไขโดยใช้ constraintStateAnimation.
- สิ่งนี้สามารถใช้ได้เมื่อคุณต้องการเล่นอนิเมชันเฉพาะขณะละเลยค่าพารามิเตอร์ที่ใช้กับ Animator State ชั่วคราว.
ฟังก์ชัน Animator ของ UnityEngine มีให้ใช้งานในรูปแบบของ ZepetoAnimator.
ตัวอย่างเช่น หากคุณต้องการตั้งค่า Integer สำหรับพารามิเตอร์ "State" ของ Character Animator เฉพาะ คุณสามารถใช้:
สำหรับการใช้งานที่ละเอียดมากขึ้น โปรดดูเอกสารของ UnityEngine Animator และสคริปต์ตัวอย่างด้านล่าง.
📘 UnityEngine Animator https://docs.unity3d.com/ScriptReference/Animator.html
ตัวอย่างการควบคุม Animator ของตัวละคร ZEPETO ที่เล่นโดยผู้เล่น.
ถ้าคุณรันตัวอย่าง คุณจะเห็นว่าเมื่อค่าของ StateMachine.constraintStateAnimation เป็น True การเปลี่ยนแปลงของ Animation ที่เล่นใน CharacterStateMachine จะเป็น Off.
ถ้าคุณตั้งค่าของ StateMachine.constraintStateAnimation เป็น False มันจะกลับไปสู่สถานะเดิม.
เริ่มตั้งแต่เวอร์ชัน 1.11.3 ของ ZEPETO.CharacterController Package ได้มีการเพิ่มอินเตอร์เฟซเพื่อเข้าถึงวัตถุ ZepetoCharacter Shadow.
ข้อกำหนด API:
เป้าหมาย | - แสดงถึงวัตถุที่ทำหน้าที่เป็นการอ้างอิงสำหรับการปรับเปลี่ยนการแปลงของวัตถุ CharacterShadow - โดยค่าเริ่มต้น ตัวละคร ZEPETO จะถูกตั้งเป็นเป้าหมาย การแปลงของวัตถุ CharacterShadow จะถูกปรับตามด้านล่างของตัวละครที่ระบุ |
---|---|
autoSyncTransform | - ค่าธงที่กำหนดว่าจะแก้ไขตำแหน่งของเงาหรือไม่ - ค่าเริ่มต้นคือ true. |
ด้วยสิ่งนี้ คุณสามารถควบคุมเงาของตัวละคร Zepeto ในระหว่างการทำงานได้ ด้านล่างนี้คือตัวอย่างโค้ดที่ใช้สวิตช์เพื่อเปิดและปิดเงา