สร้างโลกของคุณเอง
ผู้เล่นและตัวละคร: ข้อมูลเบื้อ...

ตัวละคร ZEPETO

16min

ZEPETOCharacter เป็นหน่วยพื้นฐานของตัวละคร ZEPETO สำหรับโหลดใน World Scene.

ในการควบคุม ZepetoCharacter ให้เพิ่มคำสั่งนำเข้าต่อไปนี้ในสคริปต์.

TypeScript




ZepetoCharacter API

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 โปรดดูเอกสาร:



สร้าง/ลบตัวละคร

TypeScript




ถ้าคุณรันตัวอย่าง คุณจะเห็นว่า CharacterModel ทางซ้ายถูกสร้างขึ้นโดยไม่มี Animator Controller และ Character Controller ตามที่แสดงด้านล่าง

Document image




ควบคุมตัวละคร

จะมีอินเทอร์เฟซที่คุณสามารถควบคุมตัวละครได้โดยตรงผ่านสคริปต์จากตัวละครในฉาก.

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() ถูกเรียก การควบคุมของผู้ใช้จะถูกนำไปใช้กับการควบคุมตัวละครอีกครั้ง

ตัวอย่างโค้ดตัวควบคุมอักขระ

TypeScript




หากคุณรันตัวอย่าง คุณจะเห็นว่าตัวละครที่ถูกโคลนทำการกระทำที่กำหนดไว้ตามลำดับดังนี้

Document image


📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้ [การสร้าง 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

ตัวอย่างโค้ดสถานะการเคลื่อนไหว

TypeScript




การควบคุมแอนิเมเตอร์ตัวละคร ZEPETO

API สำหรับควบคุมแอนิเมเตอร์ตัวละคร ZEPETO

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 ชั่วคราว.



ZepetoAnimator

ฟังก์ชัน Animator ของ UnityEngine มีให้ใช้งานในรูปแบบของ ZepetoAnimator.

ตัวอย่างเช่น หากคุณต้องการตั้งค่า Integer สำหรับพารามิเตอร์ "State" ของ Character Animator เฉพาะ คุณสามารถใช้:

TypeScript


สำหรับการใช้งานที่ละเอียดมากขึ้น โปรดดูเอกสารของ UnityEngine Animator และสคริปต์ตัวอย่างด้านล่าง.



ตัวอย่างโค้ดสำหรับควบคุม ZEPETO Character Animator

ตัวอย่างการควบคุม Animator ของตัวละคร ZEPETO ที่เล่นโดยผู้เล่น.

TypeScript




ถ้าคุณรันตัวอย่าง คุณจะเห็นว่าเมื่อค่าของ StateMachine.constraintStateAnimation เป็น True การเปลี่ยนแปลงของ Animation ที่เล่นใน CharacterStateMachine จะเป็น Off.

ถ้าคุณตั้งค่าของ StateMachine.constraintStateAnimation เป็น False มันจะกลับไปสู่สถานะเดิม.

Document image




การควบคุม CharacterShadow

เริ่มตั้งแต่เวอร์ชัน 1.11.3 ของ ZEPETO.CharacterController Package ได้มีการเพิ่มอินเตอร์เฟซเพื่อเข้าถึงวัตถุ ZepetoCharacter Shadow.

ข้อกำหนด API:

ส่วนติดต่อของคอมโพเนนต์ CharacterShadow


เป้าหมาย

- แสดงถึงวัตถุที่ทำหน้าที่เป็นการอ้างอิงสำหรับการปรับเปลี่ยนการแปลงของวัตถุ CharacterShadow - โดยค่าเริ่มต้น ตัวละคร ZEPETO จะถูกตั้งเป็นเป้าหมาย การแปลงของวัตถุ CharacterShadow จะถูกปรับตามด้านล่างของตัวละครที่ระบุ

autoSyncTransform

- ค่าธงที่กำหนดว่าจะแก้ไขตำแหน่งของเงาหรือไม่ - ค่าเริ่มต้นคือ true.

ด้วยสิ่งนี้ คุณสามารถควบคุมเงาของตัวละคร Zepeto ในระหว่างการทำงานได้ ด้านล่างนี้คือตัวอย่างโค้ดที่ใช้สวิตช์เพื่อเปิดและปิดเงา

TypeScript




Document image




อัปเดต 11 Oct 2024
Doc contributor
Doc contributor
หน้านี้ช่วยคุณได้หรือไม่?