สร้างท่าเดินสุดเก๋าให้ตัวละครในเกมด้วย Motion Capture

สร้างท่าเดินสุดเก๋าให้ตัวละครในเกมด้วย Motion Capture

หลังจากที่คราวที่แล้วเราได้แชร์เทคนิคและไอเดียเกี่ยวกับการนำ Motion Capture มาใช้ในงานเกมให้เห็นกันไปแล้ว ว่าสามารถนำมาใช้ช่วยลดกระบวนการทำงานในส่วนของการ Animate
ท่าทางของตัวละครได้ดีเลยทีเดียว ( อ่านบทความก่อนหน้านี้ได้ที่นี่ ) ซึ่งแน่นนอนว่า Animation ในเกมนั้นมีเยอะมาก เรียกได้ว่า แทบจะตลอดเวลาของการดำเนินเกมเลย ซึ่งจะแบ่งออกเป็น
2 ประเภทหลักๆ นั่นก็คือ แอนิเมชั่นที่เป็นท่าทางต่างๆ เช่น การเตะ การต่อย การฟัน การยิง หรือการโจมตีทั้งหลาย ยังไม่รวมถึงรีแอคชั่นที่ตัวละครต่างๆจะมีต่อสภาวะรอบตัว
เช่นได้รับความเสียหายจากการโดนโจมตี หรือแม้กระทั่งท่าขณะตัวละครตาย ซึ่งล้วนต้องมีการสร้างแอนิเมชั่นรองรับทั้งสิ้น

ขอขอบคุณภาพจาก www.google.com

และอีกหนึ่งประเภทนั่นก็คือ แอนิเมชั่นที่ใช้ในการเคลื่อนที่ทั้งหลาย ซึ่งจะมีรูปแบบการทำงานที่ต่างกับ แอนิเมชั่นที่เป็นท่าทาง โดย แอนิเมชั่นที่เป็นท่าทาง จะมีจุดเริ่มต้นและจุดซึ่งสุด
จะเล่น 1 ครั้งและเล่นซ้ำทีละครั้งต่อ 1 แอคชั่น ยกตัวอย่างเช่น แอนิเมชั่นท่าโจมตีหากเรากด 1 ครั้ง ตัวละครก็จะโจมตี 1 ครั้ง เป็นต้น แต่สำหรับแอนิเมชั่นที่ใช้ในการเคลื่อนที่จะมีการทำงาน
ที่เรียกว่า Loop Animation หรือสามารถเล่นท่าๆนึงไปได้แบบวนซ้ำไม่รู้จบ โดยอาศัยหลักการที่แอนิเมชั่นเริ่มต้นจากท่าๆหนึ่งแล้วเคลื่อนไหวไปตามท่างทาง เช่น ก้าวเดิน
จากนั้นกลับมาบรรจบในท่าเดิม เล่นวนอย่างงี้ซ้ำๆไปเรื่อยจนดูเหมือนเป็นการเคลื่อนไหวต่อเนื่อง โดยท่าที่ใช้ Loop Animation เป็นหลักเช่น การเดิน การวิ่ง การคลาน การปีน
หรือท่าที่ทำให้ตัวละครเคลื่อนที่อื่นๆ เป็นต้น

ตัวอย่างแอนิเมชั่นท่าทางการเคลื่อนไหว และแอนิเมชั่นสำหรับการเคลื่อนที่

 

 

ก่อนหน้านี้เราได้ทำ Loop Animation ให้กับตัวละครในเกม โดยใช้ Animation ที่บันทึกจากชุด Mocap Rokoko Smart Suit Pro II กันไปแล้ว ในครั้งนี้เราจะมาทำต่อในส่วนของการนำไปใช้จริง
กับตัวละครในเกม ซึ่งที่จริงแล้วเราสามารถสร้างแอนิเมชั่นจากชุด Mocap Suit ได้ทั้งหมด ไม่ว่าจะเป็นท่ากระโดด ท่าตีลังกา ท่าเตะต่อยต่างๆ ( ขึ้นอยู่กับตัวนักแสดงด้วยว่าสามารถแสดงได้มั้ย )
แต่วันนี้เราจะขอยกตัวอย่าจากการนำ Loop Animation มาใช้ทำท่าการเดินของตัวละครเป็นหลัก ซึ่งข้อดีของการทำ Loop Animation ท่าเดินจาก Mocap ทำให้เราสามารถสร้างเดิน
ได้อย่างอิสระตามจินตนาการด้วยเวลาอันสั้น สามารถที่จะสร้างท่าทางการเดินสุดเจ๋งที่เป็นเอกลักษ์ให้กับตัวละครเรา ให้ไม่เหมือนท่าเดินของตัวละครเกมทั่วไปได้ โดยวันนี้จะมาแชร์ขั้นตอน
การทำงานหลักๆ ของการสร้างท่าเดินเก๋าๆให้กับตัวละครในเกมด้วย Unreal Engine 5 ให้ดูกัน

สร้าง 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 ) ที่เราทำงานอยู่ได้เลย

ตัวอย่างในวันนี้จะใช้เป็นตัวละครโจรสลัด เพื่อให้เข้ากับท่าเดินแบบเก๋าๆของเรา 555
เลือกฉากเป็น Greek Island ที่มีส่วนของชายทะเล ดูเข้ากับโจรสลัดสุดๆ

โดย 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 เพื่อบันทึก

ตัวอย่างการสร้าง Node ชุดการเคลื่อนไหวจาก Loop Animation และ Animation ปกติ

จากนั้นเราจะมาสร้าง Node ที่จำเป็นเพิ่มขึ้นในส่วนของ Event graph เพื่อใช้สำหรับควบคุมตัวละครเพิ่มเติมจากนั้นกด Compile และ Save เพื่อบันทึก

ตัวอย่างการสร้าง Node ในส่วน Event Graphเพื่อควบคุมตัวละครเพิ่มเติม

เพิ่มตัวละครของเราไปยังตัวละครหลัก
เมื่อเราเลือกสร้าง 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