หลังจากที่คราวที่แล้วเราได้แชร์เทคนิคและไอเดียเกี่ยวกับการนำ Motion Capture มาใช้ในงานเกมให้เห็นกันไปแล้ว ว่าสามารถนำมาใช้ช่วยลดกระบวนการทำงานในส่วนของการ Animate
ท่าทางของตัวละครได้ดีเลยทีเดียว ( อ่านบทความก่อนหน้านี้ได้ที่นี่ ) ซึ่งแน่นนอนว่า Animation ในเกมนั้นมีเยอะมาก เรียกได้ว่า แทบจะตลอดเวลาของการดำเนินเกมเลย ซึ่งจะแบ่งออกเป็น
2 ประเภทหลักๆ นั่นก็คือ แอนิเมชั่นที่เป็นท่าทางต่างๆ เช่น การเตะ การต่อย การฟัน การยิง หรือการโจมตีทั้งหลาย ยังไม่รวมถึงรีแอคชั่นที่ตัวละครต่างๆจะมีต่อสภาวะรอบตัว
เช่นได้รับความเสียหายจากการโดนโจมตี หรือแม้กระทั่งท่าขณะตัวละครตาย ซึ่งล้วนต้องมีการสร้างแอนิเมชั่นรองรับทั้งสิ้น
![](https://me-dee.com/wp-content/uploads/2024/03/GameWalk-7-1024x576.jpg)
และอีกหนึ่งประเภทนั่นก็คือ แอนิเมชั่นที่ใช้ในการเคลื่อนที่ทั้งหลาย ซึ่งจะมีรูปแบบการทำงานที่ต่างกับ แอนิเมชั่นที่เป็นท่าทาง โดย แอนิเมชั่นที่เป็นท่าทาง จะมีจุดเริ่มต้นและจุดซึ่งสุด
จะเล่น 1 ครั้งและเล่นซ้ำทีละครั้งต่อ 1 แอคชั่น ยกตัวอย่างเช่น แอนิเมชั่นท่าโจมตีหากเรากด 1 ครั้ง ตัวละครก็จะโจมตี 1 ครั้ง เป็นต้น แต่สำหรับแอนิเมชั่นที่ใช้ในการเคลื่อนที่จะมีการทำงาน
ที่เรียกว่า Loop Animation หรือสามารถเล่นท่าๆนึงไปได้แบบวนซ้ำไม่รู้จบ โดยอาศัยหลักการที่แอนิเมชั่นเริ่มต้นจากท่าๆหนึ่งแล้วเคลื่อนไหวไปตามท่างทาง เช่น ก้าวเดิน
จากนั้นกลับมาบรรจบในท่าเดิม เล่นวนอย่างงี้ซ้ำๆไปเรื่อยจนดูเหมือนเป็นการเคลื่อนไหวต่อเนื่อง โดยท่าที่ใช้ Loop Animation เป็นหลักเช่น การเดิน การวิ่ง การคลาน การปีน
หรือท่าที่ทำให้ตัวละครเคลื่อนที่อื่นๆ เป็นต้น
![](https://me-dee.com/wp-content/uploads/2024/03/CompareAnimation.gif)
ก่อนหน้านี้เราได้ทำ Loop Animation ให้กับตัวละครในเกม โดยใช้ Animation ที่บันทึกจากชุด Mocap Rokoko Smart Suit Pro II กันไปแล้ว ในครั้งนี้เราจะมาทำต่อในส่วนของการนำไปใช้จริง
กับตัวละครในเกม ซึ่งที่จริงแล้วเราสามารถสร้างแอนิเมชั่นจากชุด Mocap Suit ได้ทั้งหมด ไม่ว่าจะเป็นท่ากระโดด ท่าตีลังกา ท่าเตะต่อยต่างๆ ( ขึ้นอยู่กับตัวนักแสดงด้วยว่าสามารถแสดงได้มั้ย )
แต่วันนี้เราจะขอยกตัวอย่าจากการนำ Loop Animation มาใช้ทำท่าการเดินของตัวละครเป็นหลัก ซึ่งข้อดีของการทำ Loop Animation ท่าเดินจาก Mocap ทำให้เราสามารถสร้างเดิน
ได้อย่างอิสระตามจินตนาการด้วยเวลาอันสั้น สามารถที่จะสร้างท่าทางการเดินสุดเจ๋งที่เป็นเอกลักษ์ให้กับตัวละครเรา ให้ไม่เหมือนท่าเดินของตัวละครเกมทั่วไปได้ โดยวันนี้จะมาแชร์ขั้นตอน
การทำงานหลักๆ ของการสร้างท่าเดินเก๋าๆให้กับตัวละครในเกมด้วย Unreal Engine 5 ให้ดูกัน
- สร้าง Project และเตรียม Asset ให้พร้อม
- Import Animation สร้าง Blend Space
- Animation Blueprint Set
- เพิ่มตัวละครของเราไปยังตัวละครหลัก
สร้าง Project และเตรียม Asset ให้พร้อม
ก่อนอื่นก็มาสร้าง Project Game กันเลย โดยหลังจากที่เปิด Unreal Engine ขึ้นมาจะมีหมวดหมู่ให้เลือกหลายอย่างแล้วแต่วัตุประสงค์การใช้งาน เช่น การทำภาพยนต์/แอนิเมชั่น, การ Live Steaming
ผ่านตัวละคร Avatar, งานสถาปัตย์ และยานยนต์เป็นต้น โดยของเราจะเลือกเป็น Game และเลือก Third Person หรือเกมมุมมองบุคคลที่ 3 หลังจากนั้นเราจะไปเตรียม Asset ต่างๆ
ที่จะใช้กับเกมของเรากัน
แน่นอนว่าอย่างแรกที่ขาดไม่ได้นั่นก็คือตัวละครหลักของเรา ซึ่งเราจะใช้ Asset Free ที่สามารถโหลดได้จาก Marketplace ของ Unreal engine ใน Epic Game ถ้าใครกำลังเริ่มต้น
อยากจะทดลองทำเกมง่ายๆ หรือใครที่ไม่ถนัดสร้าง 3D Asset นี่ก็เป็นอีกหนึ่งช่องทางที่ดีไม่น้อยเลยที่จะหา Asset ต่างๆมาทำเกม และก็ไม่ได้มีแค่ตัวละครเท่านั้นที่สามารถโหลดได้
แต่ยังมีฉาก และพร้อบต่างๆ อีกมากมายที่สามารถโหลดได้อีกด้วย โดยสามารถ Download และ Add Project ( Import File ไปยัง Project ) ที่เราทำงานอยู่ได้เลย
![](https://me-dee.com/wp-content/uploads/2024/03/GameWalk-5-1024x576.jpg)
![](https://me-dee.com/wp-content/uploads/2024/03/GameWalk-4-1024x576.jpg)
โดย Asset เหล่านี้จะกดดาวน์โหลดแค่ครั้งแรกเท่านั้นจากนั้นสามารถเพิ่มไปยัง Project Game ได้เรื่อยๆ ซึ่ง Asset ประเภท Level Environment ต่างๆจะมีขนาดไฟล์ที่ค่อนข้างใหญ่
อย่าลืมเตรียมพื้นที่ในฮาร์ดิสก์ให้เพียงพอ
Import Animation สร้าง Blend Space
เมื่อดาวน์โหลดทุกอย่างครบแล้ว เข้ามาใน Project ของเราแล้ว สิ่งต่อไปที่ชาดไม่ได้นั่นก็คือ Loop Animation ที่เราทำไว้ในคราวที่แล้ว ( Export จาก Project เดิม ) ให้สร้าง Folder
สำหรับ Animation จากนั้นลากเข้ามาใส่ใน Content Drawer ได้เลย โดยเลือก Skeleton Mesh ของตัวละครโจรสลัดของเราหลักของเรา จากนั้นจะสร้าง Blend Space 1D เพื่อเป็นตัวกลาง
สำหรับสร้างความเชื่อมต่อระหว่างท่าจากท่าพักของตัวละครเปลี่ยนไปยังท่าเดิน โดยคลิกขวา Animation>Legacy>Blend Space1D และตั้งชื่อแอนิเมชั่นให้เรียบร้อย จากนั้นดับเบิ้ลคลิกเข้าไป
เราจะเห็นตัวละครและ Timeline ของแอนิเมชั่น ให้เราลากท่าพักของตัวละครลงใส่ Timeline ก่อนจากนั้นลากท่าเดินใส่เข้าไป สามารถเลื่อน Preview Point เพื่อดูการเชื่อมต่อของแอนิเมชั่นได้
เมื่อเสร็จแล้วกด Save และปิดได้เลย การสร้าง Blend Space นี้เองจะถูกนำไปใช้กับการ Control ตัวละคร เช่น เมื่อตัวละครหยุดนิ่งแอนิเมชั่นท่าพักก็จะถูกเล่น เมื่อเรากดเดิน แอนิเมชั่น
จะค่อยๆเปลี่ยนจากท่าพักเป็นท่าเดิน หากเราใส่ท่าวิ่งเข้าไปด้วยแอนิเมชั่นก็จะเริ่มจาก ท่าพัก>เดิน>วิ่ง เป็นต้น
Animation Blueprint Set
ก่อนอื่นเราก็ต้องมาสร้าง Animation Blueprint หรือแผงงานสำหรับควบคุมการเคลื่อนไหวของตัวละครของเรากันก่อน โดยคลิกขวา Animation>Animation Blueprint
และเลือก Skeleton Mesh ของตัวละครเราจากนั้น ดับเบิ้ลคลิกเข้าไป จะเห็นพื้นที่สำหรับสร้าง Node ต่างๆ ให้คลิกขวาแล้วสร้าง State Machine และต่อไปยัง Output
ใช้และดับเบิ้ลคลิกเข้าไปยัง State Machine
State Machine ใช้สำหรับเพื่อสร้างระบบคำสั่งของแอนิเมชั่นชุดการเคลื่อนที่นั่นก็คือ พัก/เดิน ไปยังกระโดดขึ้น ไปยังลอยกลางอากาศ และไปยังท่าลงพื้น จากนั้นกลับมายังท่าพัก/เดิน
ในตัวอย่างนี้เราจะใช้ท่ากระโดดพื้นฐานมาใช้ก่อน เพื่อให้การ Control ตัวละครของเราสมบูรณ์มากยิ่งขึ้น ซึ่งที่จริงท่ากระโดดนี้ เราก็สามารถสร้างเองได้จากชุด Mocap ด้วยเช่นกัน
เมื่อเสร็จแล้วกด Compile และ Save เพื่อบันทึก
![](https://me-dee.com/wp-content/uploads/2024/03/GameWalk-2-1024x576.jpg)
จากนั้นเราจะมาสร้าง Node ที่จำเป็นเพิ่มขึ้นในส่วนของ Event graph เพื่อใช้สำหรับควบคุมตัวละครเพิ่มเติมจากนั้นกด Compile และ Save เพื่อบันทึก
![](https://me-dee.com/wp-content/uploads/2024/03/GameWalk-1-1024x576.jpg)
เพิ่มตัวละครของเราไปยังตัวละครหลัก
เมื่อเราเลือกสร้าง Project ใน Mode Third Person Game เราจะได้ตัวละครพื้นฐานเป็นตัวหุ่นยนต์คล้ายไอรอนแมนเป็นตัวเริ่มต้น เมื่อเรากดเล่น ( Alt+P ) ตัวละครตัวที่ว่านี้จะเป็นตัวละครหลัก
สามารถกด W, A, S, D สำหรับเดินและกด Space Bar สำหรับกระโดดได้เหมือนเกมทั่วไป สิ่งที่เราจะทำก็คือการใส่ตัวละครโจรสลัดที่เราโหลดมา ให้เป็นตัวละครหลักแทน
ก่อนอื่นก็เปิด Blueprint ของ Third person Character ก่อน เปิด Viewport จากนั้นเลือกที่ Mesh และไปที่หน้าต่าง Details แท็บ Mesh ให้เลือก Skeleton Mesh เป็น Model ตัวละครของเรา
จากนั้ตัวละครของเราจะขึ้นมาใน Viewport หากตัวละครใหญ่เกินหรือไม่ได้ตำแหน่ง ( ดูกรอบที่เป็นไกด์คล้ายกรงนก ) ก็ให้ปรับขยับขยายให้เรียบร้อย รวมถึงหันหน้าไปยังด้านที่ตัวละครเดิมหันไป
จากนั้นในแท็บ Animation ช่อง Anim Class เลือก Animation Blueprint ของตัวละครเรา ( ที่เราสร้าง Nodeต่างๆไว้ ) กด Compile และ Save เพื่อบันทึก ถือว่าทุกอย่างพร้อมแล้ว
สามารถกดปุ่ม Play เพื่อทดลองเล่นเกมของเราได้เลย
ในตัวอย่างจะเห็นได้ว่าความเร็วของตัวละครไม่สัมพันธ์กับท่าเดิน เราสามารถปรับความเร็วการเคลื่อนที่ได้ด้วยการเข้าไปที่ BluePrint ของ Third person Character ในหน้าต่าง Components
ให้เลือกที่ Character Movement จากนั้นที่หน้าต่าง Details ด้านขวาแท็บ Character Movement: walking ในช่อง Max Walk Speed เราสามารถเปลี่ยนค่าความเร็วได้( ตัวเลขน้อย คือช้า
ตัวเลขมากคือเร็วขึ้น )จากนั้นกด Save และลองเล่นอีกครั้ง
เพื่อบรรยากาศในเกมให้ดูมีอรรถรสมากขึ้น เราสามาถเพิ่มฉากได้ โดยฉากที่เราโหลดมาจะเรียกว่า Level หรือด่านต่างๆในเกม สามารถใช้ได้ง่ายๆเลยเพียงแค่เปิด Level ใน Folder
ของฉากที่เราโหลดมา จากนั้นกดเล่นได้เลย
ผลลัพธ์เกมของเราที่ใช้ท่าเดินที่บันทึกด้วย Rokoko Mocap Suit