ระบบควบคุมแอนิเมชัน

ขอแนะนำระบบควบคุมแอนิเมชันใหม่ล่าสุดจาก Craftland Studio PC

คุณสมบัติ

ระบบควบคุมแอนิเมชันของ Craftland Studio PC รองรับคุณสมบัติต่อไปนี้:

  1. ดูตัวอย่างแอนิเมชัน
  2. จัดการการเล่นและเปลี่ยนผ่านของคลิปแอนิเมชันในรูปแบบแทร็ก
  3. จัดการกลุ่มของคลิปแอนิเมชันโดยใช้สถานะ4. แยกชิ้นส่วนของริกเพื่อเล่นเฉพาะแอนิเมชันของริกเฉพาะภายในคลิปแอนิเมชัน
  4. เพิ่มคีย์เฟรมและส่งเหตุการณ์ที่คีย์เฟรมเพื่อใช้ตรรกะของสคริปต์

การเตรียมทรัพยากร

ในการใช้ Animation Controller คุณต้องเตรียม:

  1. โมเดล2. ทรัพยากรแอนิเมชันที่ตรงกับโมเดล
    image-20250821150239191

ตัวแก้ไขมีตัวละคร FreeFire ที่สร้างไว้ล่วงหน้าและแอนิเมชันที่สอดคล้องกันอยู่แล้ว:
image-20250821150636553

image-20250821150721434

การเข้าสู่ระบบ

เพื่อใช้ Animation controller คุณจำเป็นต้องสร้างไฟล์ Animation Controller:

image-20250821153246045

ดับเบิลคลิกเพื่อเปิดไฟล์คอนโทรลเลอร์แอนิเมชันที่สร้างขึ้นใหม่ และหน้าต่างการแก้ไขแอนิเมชันจะเปิดขึ้น:

image-20250821153401651

การใช้โมเดล

คลิกที่แถบโมเดลหรือลากโมเดลไปยังอินเทอร์เฟซเพื่อดูตัวอย่างโมเดลที่จะเล่นแอนิเมชัน

image-20250821154505261

หากโมเดลมีคอมโพเนนต์ Appearance และมีการตั้งค่า rigs และ appearances ที่เหมาะสม หน้าต่างแสดงตัวอย่างจะแสดงโมเดล คุณสามารถซูมเข้าหรือออกโดยใช้ล้อเลื่อนของเมาส์ ลากกล้องโดยใช้ปุ่มกลางของเมาส์ หรือกดปุ่มเมาส์ขวาค้างไว้เพื่อหมุนกล้อง—เหมือนกับใน Scene editor

image-20250821155656866

image-20250821154710020

หากคุณต้องการใช้ตัวละครหรือรูปลักษณ์สัตว์เลี้ยงเริ่มต้นของ FreeFire คุณสามารถค้นหาลักษณะที่เหมาะสมได้ในไดเรกทอรี Library/FFUMA ภายใต้ไดเรกทอรีของโปรเจกต์ ลักษณะเหล่านี้จะแสดงในตัวเลือกด้วยเช่นกัน

image-20250825102329060

เพิ่มคลิปแอนิเมชัน

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

image-20250821173417294

image-20250821173434033

image-20250821173458028

image-20250821173511604

การตั้งค่าคลิปแอนิเมชัน

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

image-20250825102727878
image-20250821175211907

  • คลิป: คลิปนี้ใช้แอนิเมชันที่ระบุไว้ คุณสามารถเปลี่ยนคลิปแอนิเมชันได้ด้วยตนเอง

  • ความเร็วการเล่น: ความเร็วที่แอนิเมชันเล่น 1 คือความเร็วเริ่มต้น

  • โหมดการห่อหุ้ม: หลังจากขยายคลิปแอนิเมชันแล้ว ตัวเลือกนี้จะกำหนดวิธีที่ส่วนที่ขยายออกจะวนซ้ำ

    • คงที่: คงท่าทางแอนิเมชันของเฟรมสุดท้ายไว้
    • วนซ้ำ: วนซ้ำคลิปแอนิเมชันในส่วนที่ขยายออก
    • วนซ้ำตลอดไป: วนซ้ำคลิปแอนิเมชันอย่างต่อเนื่องหลังจากสิ้นสุด ทำให้คลิปถัดไปไม่มีผล
    • ไม่มี: ไม่มีการกระทำใดๆ ตัดกลับไปที่ท่าทางเริ่มต้นทันที
  • Post-Extrapolate: วิธีการจัดการการเปลี่ยนผ่านระหว่างคลิปปัจจุบันกับคลิปถัดไป

    • None: ไม่มีการดำเนินการ; ตัดกลับไปยังท่าเริ่มต้น
    • Maintain: รักษาท่าทางแอนิเมชันของเฟรมสุดท้าย
    • Loop: วนลูปส่วนของแอนิเมชันในส่วนระหว่างสองส่วน
    • เมื่อการตั้งค่าการดันถอยหลังถูกตั้งค่าเป็น “รักษา” หรือ “วนซ้ำ” จะสามารถมองเห็นได้ชัดเจนที่ปลายของเซ็กเมนต์:image-20250825103745027image-20250825103653150
  • ระยะเวลาการผสมเฟด: ระยะเวลาของแอนิเมชันการเปลี่ยนเมื่อสลับไปยังคลิปแอนิเมชันนี้

    • ในระหว่างระยะเวลาการผสมเข้า ระบบแอนิเมชันจะลดน้ำหนักของแอนิเมชันก่อนหน้าโดยอัตโนมัติและเพิ่มน้ำหนักของคลิปแอนิเมชันนี้จนกว่าเวลาการเฟดเข้าจะสิ้นสุดลง

      • เล่นคลิปแอนิเมชันนี้จนจบเมื่อเวลาเฟดอินสิ้นสุดลง
      • หากตั้งพารามิเตอร์นี้เป็น 0 การเปลี่ยนผ่านจะเกิดขึ้นทันที ซึ่งอาจดูแปลก แต่บางครั้งจำเป็นต้องตัดต่อแบบทันทีสำหรับแอนิเมชันที่ต้องการให้เกิดขึ้นทันที เช่น การยิงปืนหรือการหลบหลีก
    • เมื่อมีการเปลี่ยนผ่านจากแอนิเมชัน A ไปยังแอนิเมชัน B ในแทร็ก ระยะเวลาเฟดอินสำหรับแอนิเมชัน B จะถูกตั้งค่าโดยอัตโนมัติตามระยะเวลาที่คลิปทั้งสองทับซ้อนกันในแทร็ก:

      • image-20250825105117055
    • แม้ว่าจะไม่มีคลิปแอนิเมชันที่เชื่อมต่อโดยตรงบนแทร็ก แต่เมื่อใช้ตัวควบคุมแอนิเมชันในทางปฏิบัติ จะมีกรณีที่แอนิเมชัน “เปลี่ยนไปใช้คลิปนี้” ตัวอย่างเช่น เมื่อเปลี่ยนจากสถานะ ‘นั่ง’ เป็นสถานะ “วิ่ง” หากสถานะวิ่งใช้คลิปแอนิเมชันเพียงคลิปเดียว จะมีการเปลี่ยนผ่านอย่างราบรื่นจากการนั่งไปเป็นการวิ่งตามพารามิเตอร์นี้ สำหรับรายละเอียดเกี่ยวกับสถานะ โปรดดูส่วนด้านล่าง

  • เวลาเริ่มต้น: เวลาที่คลิปแอนิเมชันนี้เริ่มเล่นบนแทร็ก

  • เวลาสิ้นสุด: เท่ากับเวลาเริ่มต้นบวกกับระยะเวลาการเล่น ไม่สามารถแก้ไขได้ และถูกกำหนดโดยอัตโนมัติตามเวลาเริ่มต้นและระยะเวลาการเล่น

  • ระยะเวลาการเล่น: ระยะเวลาการเล่นของคลิป เมื่อยาวกว่าความยาวของทรัพยากร พารามิเตอร์โหมดลูปจะมีผล; เมื่อสั้นกว่าความยาวของทรัพยากร แอนิเมชันจะถูกตัดจากจุดสิ้นสุด

  • ความยาวของทรัพยากร: ความยาวที่แท้จริงของทรัพยากรแอนิเมชัน ไม่สามารถแก้ไขได้ และถูกกำหนดโดยทรัพยากรแอนิเมชันเอง

*การยืดและบีบอัดคลิปแอนิเมชัน

image-20250822155932985

คุณสามารถเปลี่ยนความยาวของส่วนแอนิเมชันได้โดยการลาก หากความยาวที่ลากสั้นกว่าความยาวของส่วนแอนิเมชัน แอนิเมชันจะถูกตัดออก หากความยาวที่ลากยาวกว่าความยาวของส่วนแอนิเมชัน ความยาวส่วนเพิ่มเติมจะถูกเพิ่มหลังจากแอนิเมชันเริ่มต้นเล่น ความยาวส่วนเพิ่มเติมนี้จะถูกจัดการตามโหมด Wrap ที่ตั้งค่าไว้ใน Inspector ของส่วนแอนิเมชัน

การรวมคลิปแอนิเมชัน

ตามที่ได้กล่าวไว้ก่อนหน้านี้เมื่อพูดถึงระยะเวลาการผสม เมื่อคลิปแอนิเมชัน A เปลี่ยนไปยังคลิปแอนิเมชัน B การเปลี่ยนผ่านจะเกิดขึ้นภายในระยะเวลาการผสมของคลิปแอนิเมชัน B
ตอนนี้เรามีภาพเคลื่อนไหวสองอัน: 1 คือทั้งสองมือยกอะไรบางอย่างขึ้น และ 2 คือมือเดียว:
1:
bothhands

2:
singlehand
หากเราเพียงแค่เชื่อมต่อทั้งสองเข้าด้วยกัน จะดูเหมือนว่าแอนิเมชันมือเดียวเริ่มต้นทันทีหลังจากแอนิเมชันสองมือสิ้นสุดลง:

connect
หากเราใช้การผสม (blending) จะปรากฏเหมือนกับการเคลื่อนไหวด้วยมือเดียวเริ่มต้นก่อนที่การเคลื่อนไหวด้วยมือทั้งสองข้างจะสิ้นสุดลงอย่างสมบูรณ์:

IK
ตามที่คุณเห็น แอนิเมชันที่ 2 ได้เริ่มขึ้นก่อนที่แอนิเมชันที่ 1 จะเสร็จสิ้น และน้ำหนักค่อยๆ เปลี่ยนไปทางแอนิเมชันที่ 2 โดยแอนิเมชันที่ 2 จะเล่นจนจบเมื่อการผสมเสร็จสิ้น

โดยการใช้การผสมแอนิเมชัน คุณสามารถทำให้การเปลี่ยนผ่านระหว่างแอนิเมชันดูเป็นธรรมชาติมากขึ้น
หากเราเพียงแค่เชื่อมต่อทั้งสองเข้าด้วยกัน จะดูเหมือนว่าแอนิเมชันมือเดียวเริ่มต้นทันทีหลังจากที่แอนิเมชันสองมือสิ้นสุดลง:connect
หากเราใช้การผสม (blending) จะปรากฏเหมือนกับการเคลื่อนไหวด้วยมือเดียวเริ่มต้นก่อนที่การเคลื่อนไหวด้วยมือทั้งสองข้างจะสิ้นสุดลงอย่างสมบูรณ์:IK

ตามที่คุณเห็น การเคลื่อนไหวที่ 2 ได้เริ่มต้นก่อนที่การเคลื่อนไหวที่ 1 จะเสร็จสิ้น และน้ำหนักค่อยๆ เปลี่ยนไปสู่การเคลื่อนไหวที่ 2 เมื่อการผสมเสร็จสิ้น แอนิเมชัน 2 จะเล่นจนจบ การผสมแอนิเมชันสามารถทำให้การเปลี่ยนผ่านของแอนิเมชันดูเป็นธรรมชาติมากขึ้น

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

การแสดงตัวอย่างแอนิเมชัน

image-20250825164106492
เมื่อดูตัวอย่างเอฟเฟกต์แอนิเมชัน คุณสามารถใช้ประโยชน์จากการดำเนินการและข้อมูลในแผงควบคุมได้อย่างมีประสิทธิภาพ

แผงควบคุมช่วยให้คุณดำเนินการดังต่อไปนี้:

  • กระโดดไปยังจุดเริ่มต้น, กระโดดไปยังจุดสิ้นสุด
  • เฟรมถัดไป, เฟรมก่อนหน้า
  • หยุดชั่วคราว, เล่น
    นอกจากนี้ ด้านขวาจะแสดงหมายเลขเฟรมและเวลาที่เริ่มต้นจากส่วนของแอนิเมชัน โดยทั่วไปแล้ว แอนิเมชันจะเล่นที่อัตราคงที่ 30 เฟรมต่อวินาที

เพิ่มคีย์เฟรม

คลิกที่จุดใดก็ได้ในแทร็กเพื่อเพิ่มคีย์เฟรม

image-20250825164332074
คุณสามารถลบคีย์เฟรมนี้ได้โดยการเลือกมัน

คีย์เฟรมคือจุดสำคัญที่ถูกทำเครื่องหมายด้วยมือในแอนิเมชัน คุณสามารถเพิ่มเหตุการณ์ต่างๆ ให้กับคีย์เฟรมเพื่อให้บริการตามสคริปต์ได้

เหตุการณ์

เลือกเพิ่มเหตุการณ์แอนิเมชันในแผงตรวจสอบของคีย์เฟรมเพื่อกระจายเหตุการณ์ที่กำหนดเองที่หมายเลขเฟรมที่ระบุในแอนิเมชันปัจจุบัน:

image-20250825164543585

image-20250825164612242

การสร้างแอนิเมชันส่วนของร่างกาย

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

image-20250825173052697

ไฟล์กำหนดค่าของริกสามารถระบุส่วนหนึ่งของโหนดกระดูกของริก ซึ่งเราเรียกว่าส่วนของร่างกาย
หลังจากเลือกอุปกรณ์เฉพาะแล้ว คุณสามารถเห็นโหนดทั้งหมดในอุปกรณ์นั้นได้
image-20250825173414360

image-20250825173945687

โดยการสร้างส่วนต่าง ๆ ของร่างกาย คุณสามารถระบุชุดของโหนดกระดูกเฉพาะเพื่อเล่นแอนิเมชันได้ ซึ่งจะทำให้สามารถเล่นแอนิเมชันเฉพาะสำหรับส่วนต่าง ๆ ของร่างกายที่ต้องการได้ ตัวอย่างเช่น เราจะแยกส่วนบนและส่วนล่างของร่างกายออกจากกัน:

image-20250826150723496

โหมดแทนที่ (Override mode) หมายความว่า เมื่อมีแอนิเมชันหลายตัวสำหรับโหนดริกเดียวกัน แอนิเมชันที่มีลำดับความสำคัญสูงที่สุดจะแทนที่แอนิเมชันอื่น ๆ ทั้งหมด ในทางกลับกัน โหมดเพิ่ม (Additive mode) จะพยายามผสมผสานแอนิเมชันที่มีลำดับความสำคัญต่ำกว่าเข้าด้วยกัน

image-20250826151150811

อย่างไรก็ตาม โหมดการผสมมีข้อกำหนดที่สูงขึ้นสำหรับทรัพยากรแอนิเมชันและการปรับแต่ง และแม้ปัญหาเล็กน้อยก็สามารถส่งผลให้ประสิทธิภาพการทำงานไม่ดีได้ ขอแนะนำให้ใช้โหมด Override ก่อน

*ลำดับความสำคัญ: ในส่วนของชิ้นส่วน rig, ล้อ, และสถานะ, ลำดับความสำคัญที่ต่ำจะมีความสำคัญสูงกว่า ในรูปด้านบน ลำดับความสำคัญของชิ้นส่วน rig ด้านบนจะสูงกว่าชิ้นส่วน rig ด้านล่าง
ลากไฟล์การกำหนดค่า rig ที่กำหนดค่าแล้วเข้าไปในแผงแก้ไข และคุณจะพบชิ้นส่วน rig ที่กำหนดค่าใหม่ในเมนูแบบเลื่อนลงของแทร็ก:

image-20250826153443435

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

เราจะทำแอนิเมชันสองส่วน:
การนั่งยองและเดิน:
kellyWalking
เดินพร้อมปืน:

kellyGunWalking
ตามที่คุณเห็น ก้าวจะกว้างขึ้นเมื่อเดินพร้อมกับปืน ตอนนี้เรามาใช้แอนิเมชันของร่างกายส่วนบนจากการย่อตัวและเดิน และแอนิเมชันของร่างกายส่วนล่างจากการเดินพร้อมกับปืน:

image-20250826153233979

แอนิเมชันการเดินพร้อมปืนสั้นกว่า ดังนั้นเรามาขยายแอนิเมชันการเดินพร้อมปืนให้ยาวขึ้นเพื่อให้ทั้งสองสอดคล้องกัน และตั้งค่าโหมดการวนลูปเป็น “วนลูป”

image-20250826153329851

คุณสามารถเห็นได้ว่าแอนิเมชันได้เปลี่ยนเป็น:
kellyIKWalking

แอนิเมชันร่างกายส่วนบนสำหรับการเดินในท่านั่งยองและแอนิเมชันร่างกายส่วนล่างสำหรับการเดินถือปืนจะถูกใช้พร้อมกัน

หากบางริกไม่ได้รับการกำหนดแอนิเมชันใดๆ เมื่อใช้แอนิเมชันของชิ้นส่วนริก พวกมันจะใช้อานิเมชัน IDLE

สถานะ

แทร็กและคลิปแอนิเมชันทั้งหมดเหล่านี้รวมกันเป็นสถานะ ซึ่งสามารถเห็นได้ในรายการของตัวควบคุมแอนิเมชันปัจจุบันทางด้านซ้ายของแผง:

image-20250826155139522

เมื่อใช้ตัวควบคุมแอนิเมชันในทางปฏิบัติ การดำเนินการจะกระทำกับสถานะ การเล่นสถานะหนึ่งหมายถึงการเล่นแทร็กทั้งหมดของสถานะนั้นเริ่มจากเฟรม 0
ดังนั้น เมื่อแก้ไขตัวควบคุมแอนิเมชัน คุณสามารถวางแผนจำนวนสถานะที่คุณต้องการมีและแก้ไขการผสมผสานของคลิปแอนิเมชันที่เหมาะสมสำหรับแต่ละสถานะได้ ตัวอย่างเช่น สถานะของสัตว์ตัวเล็กคือ: นิ่ง, เคลื่อนที่, กิน, ตื่นตัว, และวิ่งหนี

สถานะ IDLE ต้องมีอยู่; มันเป็นสถานะเริ่มต้นของตัวควบคุมแอนิเมชัน และสถานะ IDLE ต้องถูกตั้งค่าให้เล่นซ้ำแบบวนรอบ

block script

image-20250826155520392

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

วิธีการใช้

ลากโมเดลที่เหมาะสมเข้าไปใน Scene:

image-20250826160815206
เพิ่มคอมโพเนนต์ Animation Controller Attachable ให้กับมัน:

image-20250826161847812
จากนั้นเพิ่มตัวควบคุมแอนิเมชันที่สร้างขึ้น:

image-20250826161906877

ตอนนี้โมเดลจะเล่นสถานะ IDLE โดยค่าเริ่มต้น ใช้สคริปต์เพื่อสลับสถานะการเล่นบนอุปกรณ์จริงเมื่อเหมาะสม:
image-20250826161958975

เมื่อผู้เล่นยิง เปลี่ยนสถานะการเล่นของ miniKelly

PPT3