อัด Mocap เพื่อสร้างท่าทางตัวละครใน Game

อัด Mocap เพื่อสร้างท่าทางตัวละครใน Game

ใครว่าการบันทึก Motion Capture ใช้ได้กับงานภาพยนตร์หรือแอนิเมชั่นได้อย่างเดียว ? แต่ที่จริงแล้วยังมีอีกหนึ่งงานที่เราสามารถนำตัว Mocap นี้มาประยุกต์ใช้เพื่อย่นระยะเวลาการทำงาน
ให้เร็วขึ้นได้ ซึ่งงานที่เรากำลังพูดถึงนั่นก็คืองาน “ Game ” ซึ่งหลายคนอาจสงสัยว่างาน Game เกี่ยวอะไรกับงานด้านการเคลื่อนไหวอย่าง Motion Capture ? โดยถึงแม้ว่าเกมจะประกอบไปด้วย
โครงสร้างหลักๆที่เป็น Coding หรือชุดคำสั่งทางคอมพิวเตอร์ต่างๆมากมาย และ Model 3 มิติจำนวนมาก แต่ต้องอย่าลืมว่ายังมีอีกส่วนหนึ่งที่สำคัญที่เกมจะขาดไม่ได้ นั่นก็คือ
การเคลื่อนไหวของตัวละคร ซึ่งในจุดนี้แหละ ที่เราจะสามารถนำ Mocap มาช่วยในการทำงานได้ แทนการ Animate ตัวละครแบบเดิมที่กินเวลามาก

การเคลื่อนไหวของตัวละครในเกมนั้นแทบจะเป็นส่วนสำคัญหลักๆของเกมเลยก็ว่าได้ เพราะเกมจะต้องอาศัยท่าทางการเคลื่อนไหวของตัวละครเพื่อบ่งบอกการกระทำตลอดทั้งเกมเลยก็ว่าได้
เช่นการเคลื่อนไหวของตัวละครอย่างการเดินหรือวิ่ง ท่าทางการโจมตีต่างๆ รีแอคชั่นต่อสถานการณ์ต่างๆ ในเกม หรือแม้กระทั่งท่าทางขณะได้รับความเสียหายหรือโดนโจมตีเป็นต้น เห็นได้ชัดเลยว่า
หากไม่มีท่าทางการเคลื่อนไหวเหล่านี้ ผู้เล่นจะไม่สามารถอินไปกับเกมหรืออาจเล่นไม่ได้เลยด้วยซ้ำ โดยวันนี้เราจะทำการบันทึก Motion แบบสั้นๆในท่างทางการเคลื่อนไหวต่างๆ
ด้วย Rokoko Smart Suit Pro II เพื่อนำไปใช้กับตัวละครผ่าน Game Engine อย่าง Unreal Engine 5 กัน ซึ่งวิธีการก็ไม่ได้ซับซ้อนอย่างที่คิด โดยจะมีขั้นตอนดังนี้

การ Record และ Export Motion
ก่อนอื่นเราก็ต้องมาทำการบันทึก Motion กันก่อน ควรจะต้องมีการวางแผนก่อนว่าจะทำท่าทางแบบไหนบ้าง เราจะบันทึกเป็น Action สั้นๆอาจทำการแสดง 2-3 ครั้งต่อ 1 Action เพื่อที่เราจะสามารถ
เลือกได้ว่า Shot ไหนเราแสดงได้ดีกว่า ( เพื่อการทำงานที่ไหลลื่นควรซ้อมท่าทางก่อนการแสดงจริงด้วย ) ใน 1 Clip หรือการ Record 1 ครั้งไม่ควรจะบันทึกนานเกินไป อาจบันทึกซัก 1-2 นาที
ถือว่ากำลังดี แล้วค่อยอัดใหม่ จะช่วยให้เลือกว่าส่วนไหนเราต้องการ Export ได้ง่ายขึ้น ในการแสดงเราจะเริ่มจากท่ายืนตรงแล้วทำท่าที่ต้องการ แล้วกลับมาในท่ายืนตรงอีกครั้ง
เพราะเมื่อนำไปใช้ Program จะมีการ Blend Animation หรือปรับท่าทางการเคลื่อนไหวให้เข้ากันกับท่าพื้นฐานของตัวละครซึ่งคือท่ายืน

ซึ่งใน Program Rokoko Studio เราสามารถเลื่อนตัว Mark Timeline ( ตัวที่ใช้กำหนดจุด Start/End ส่วนที่จะ Play Motion ) เพื่อกำหนดกรอบของท่าทางที่เราต้องการจะ Export โดยที่เราจะเลือก
Export เป็น .FBX และติ๊กเลือก Override skeleton mesh เพื่อเลือก Export สำหรับ Unreal Engine 5 (หรือเลือกเวอร์ชันที่ใช้ ) ในส่วนของ Advance Setting อย่าลืมติ้ก Extract Root Motion ด้วย
เพื่อให้ Export จุดพิกัดของ 3D Space ที่ใช้เป็นตัวบ่งบอกจุดศูนย์กลางเริ่มต้นที่เราใช้บันทึก Motion เพราะเมื่อขณะเราบันทึก Motion เราอาจจะเดินออกจากจุดเริ่มต้นนี้ เราจะใช้ข้อมูลจุดเริ่มต้นนี้
เป็นตัวกำหนดให้ Motion เคลื่อนไหวอยู่กับที่ไม่หลุดออกจากจุดศูนย์กลางในภายหลัง



สร้าง Game Project ใน Unreal Engine
เมื่อได้ท่าทางจาก Mocap ที่ต้องการทั้งหมดแล้ว ต่อไปก็สร้าง Project Game ใน Unreal Engine กัน โดยเลือกไปที่หมวด Game จากนั้นเลือก Third Person หรือเกมมุมมองบุคคลที่ 3
สามารถตั้งค่าอื่นๆเพิ่มเติมได้ตามต้องการตั้งชื่อให้เรียบร้อย จากนั้นกด Create จากนั้น Program จะสร้างด่านพื้นฐานให้เรา สามารถกดปุ่ม Play เพื่อทดลองเล่นได้ จะมีตัวละครหลักพื้นฐาน
เป็นหุ่นยนต์คล้ายตัว ironman เราสามารถควบคุมได้เหมือนเกมทั่วไปเช่นกด W A S D เพื่อเดิน กด Space Bar เพื่อกระโดดเป็นต้น


Import Animation
ต่อมาเราก็จะมา Import ท่าทางที่เราบันทึก Mocap ด้วย Rokoko Smart Suit Pro II เข้ามาใน Unreal กัน ก่อนอื่นก็เปิด Content Drawer จากนั้นสร้าง Folder Animation เพื่อแยก Asset
ที่เรานำเข้ามาเป็นหมวดหมู่เพื่อให้ง่ายต่อการจัดการเพราะ Unreal ประกอบไปด้วย Asset เยอะมาก เราสามารลากไฟล์ Mocap ของเราเข้ามายัง Unreal ได้เลย จะมีหน้าต่าง Setting การ Import
เด้งขึ้นมา ให้เราเลือก Skeleton เป็น SK_Mannequin แล้วด Import All ได้เลย


ดับเบิ้ลคลิกเพื่อเปิดแอนิเมชั่นดูจะมี TimeLine ให้เห็นเราสามารถ Edit เพิ่มเติมเช่นการ Trim หัวท้ายได้ โดยกดคลิกขวาที่ Timeline จะมีให้เลือกลบ Frame ก่อนหน้าหรือด้านหลัง Play Head
ต่อไปเราต้องตั้งค่าให้ตัวละครเคลื่อนไหวอยู่กับที่โดยไม่เดินออกจากจุดศูนย์กลาง เพื่อให้สามารถนำไปใช้กับตัวละครใน Game ของเราได้ สามารถดูว่าตัวละครของเราออกมาจากจุดศูนย์กลาง
มากแค่ไหนด้วยการเลือกที่กระดู root ที่ Skeleton Tree

จะเห็นว่าตัวละครของเราไไม่ได้อยู่ที่จุดตรงกลาง Scene

ให้เราไปตั้งค่าที่ Asset Detail ที่แท็บ Root Motion ให้เราติ้กที่ Enable Root Motion เพียงแค่นี้ตัวละครของเราก็จะเคลื่อไหวอยู่ในจุดศุนย์กลางแล้ว

ตัวละครเคลื่อนไหวอยู่เฉพาะตรงกลางแล้ว

จากนั้นกลับมาที่ Content Drawerคลิกขวาที่ Animation ของเราแล้วเลือก Create Anim Montage Animation ก็จะพร้อมนำไปใช้งานแล้ว


Set KEY & Play Game
มาถึงขั้นตอนสุดท้ายที่ขาดไม่ได้นั้นก็คือการสร้างปุ่มเพื่อให้ตัวละครแสดง Action ที่เราแสดงออกมาดยไปที่ Even graph ของตัวละคร จากนั้นสร้าง Node Keyboard Event ปุ่มที่ต้องการ
จากนั้นในช่อง Pressed ให้ต่อ Node ชื่อ Play Montage ให้ลาก Mesh ของตัวละครมาต่อเข้าที่ช่อง In Skeletal Mesh และในช่อง Montage To Play ให้เลือก Animation ของเรา
จากนั้นกด Compile และ Save แล้วลองเล่นดูได้เลย


หากตัวละครของเพื่อนๆมีการเคลื่อนไหวที่แปลกๆ ให้เปิด Animation Blueprint ของตัวละครแล้วไปที่ Anim Grap ให้ ดับเบิ้ลคลิกเข้าไปที่ Node Control Rig แล้วไปที่ Node Full Body IK
ให้เปลี่ยน Root จาก Pelvis เป็น Animation_Root จากนั้นกด Compile และ Save แล้วลองเล่นดูอีกครั้ง

ตัวอย่างการนำท่าทางต่างๆที่อัดจาก Rokoko มาใส่ใน Game