Clean Up Motion ปรับการเคลื่อนไหวให้ Animation | Unreal Engine 5

Clean Up Motion ปรับการเคลื่อนไหวให้  Animation | Unreal Engine 5

หลายคนที่เคยทำงาน หรือได้ใช้งานไฟล์ Animation ที่ได้จาก Motion Capture อยู่เป็นประจำคงคุ้นเคยกับขั้นตอนการ Clean Up Motion ดีอยู่แล้วแต่สำหรับผู้ที่เพิ่งทำงานกับไฟล์ Mocap
อาจจะสงสัยว่าขั้นตอนการ Clean Up Motion นี้คืออะไร ซึ่งหากจะอธิบายง่ายๆ ขั้นตอนนี้ก็คือการปรับปรุงการเคลื่อนไหวให้กับตัวละครที่นำมาทำ Animation โดยใช้ไฟล์ที่ได้จากบันทึก Mocap นั่นเอง
ซึ่งการบันทึก Mocap ด้วยชุด Rokoko Smart Suit Pro II สามารถนำไปใช้งานร่วมกับหลายโปรแกรม และอีกหนึ่งโปรแกรมที่สามารถทำงานร่วมกับ Rokoko ได้ดีนั่นก็คือ Unreal Engine
ซึ่งก่อนหน้านี้เราได้มีการแชร์วิธีการ Clean Up ในโปรแกรม Blender กันมาบ้างแล้ว วันนี้เราจึงจะมาแสดงวิธีการทำงานในการ Clean Up Motion ใน Unreal Engine ให้ดูกัน
ซึ่งสาเหตุที่ต้องทำ Clean Up นั้น มีอยู่ 2 ประเด็นหลัก ๆ นั่นก็คือ 1. เพื่อปรับท่าทางการเคลื่อนไหวของตัวละคร, 2. เพื่อแก้ไขจุดผิดพลาดของการเคลื่อนไหว โดยแต่ละประเด็นคืออะไร
และขั้นตอนทั้งหมดมีวิธีการทำงานยังไงบ้างไปดูกันเลย


ประเด็นที่น่าสนใจ

Clean Up เพื่อปรับท่าทางการเคลื่อนไหวของตัวละคร
ไฟล์ Motion ที่ได้จากการบันทึก Mocap นั้น ทุกการเคลื่อนไหวที่เกิดขึ้นล้วนเกิดจากตัวนักแสดงที่ใส่ชุด Mocap ดังนั้นข้อจำกัดหลักๆของการบันทึก Mocap
นั่นก็คือตัวนักแสดง ซึ่งบางครั้งท่าทางอาจจะไม่ได้สมบูรณ์ 100 % ถึงแม้ว่าเราจะทำการบันทึกในการแสดงท่าเดิมซ้ำๆหลายๆรอบ เพื่อหา Shot ที่ดีที่สุดแล้วก็ตาม ก็อาจจะมีจุดที่ไม่ตรงใจอยู่บ้าง
ซึ่งการใช้การ Clean Up เข้ามาช่วยในขั้นตอนนี้ก็ถือว่าแก้ปัญหาในจุดนี้ได้ดีเลยทีเดียว และการ Clean Up นี้เองไม่ใช่แค่เพื่อแก้ไขท่าทางการเคลื่อนไหวที่ไม่ตรงใจเท่านั้น แต่ยังสามารถนำมาประยุกต์
ใช้เพื่อช่วยปรับการเคลื่อนไหวที่สามารถทำให้สมบูรณ์ได้ยากเกินไปอีกด้วย เช่นท่าเตะแบบจระเข้ฟาดหาง หรือการตีลังกา เป็นต้น (แต่หากจะให้สามารถทำงานได้ง่ายนักแสดงก็ควรทำท่าที่ไกล้เคียงได้ด้วย)


Clean Up เพื่อแก้ไขจุดผิดพลาดของการเคลื่อนไหว
จุดผิดพลาดหรือการเคลื่อนไหวที่บางครั้งดูประหลาดๆอย่างเช่น การที่แขนผิดรูปแบบแปลกๆ หรือการที่มือทะลุเข้าไปในตัว เป็นสิ่งที่อาจเกิดขึ้นได้ในบางครั้งของการบันทึก Mocap ซึ่งสาเหตุที่เกิดขึ้น
อาจมาได้จากหลายสาเหตุ ยกตัวอย่างเช่น ในการ Calibrate นักแสดงอาจยืนในท่า Pose ที่ไม่ถูกต้อง การเชื่อมต่อชุด Mocap ผ่านสัญญาณที่ไม่เสถียร การ Rig กระดูก Model ที่ไม่ได้ตำแหน่งที่ถูกต้อง
เป็นต้น ซึ่งอาจสามารถแก้ไขปัญหาเหล่านี้หมดไปในภายหลังด้วยการศึกษาและพัฒนาวิธีการทำงานให้ดีขึ้น แต่หากปัญหานี้ได้เกิดขึ้นมาแล้ว ก็สามาถใช้การ Clean Up Motion เข้ามาแก้ไขได้


นำเข้า Motion จาก Rokoko Studio ไปยัง Unreal Engine
ก่อนที่จะถึงขั้นตอน Clean Up เราก็สามารถ Import Motion จาก Rokoko Studio ได้ตามปกติได้เลย แต่ก่อนที่เราจะ Export จาก Rokoko Studio เพื่อให้การทำงานต่อทำงานได้ง่ายขึ้น
และอาจมีขั้นตอนน้อยลง เราสามารถ Clean Up เบื้องต้นใน Rokoko Studio ได้ โดยสิ่งที่เราสามารถจัดการใน Rokoko Studio ได้นั่นก็คือการยกเท้า หรือจังหวะที่เท้าลอยจากพื้น ซึ่งบางครั้ง
นักแสดงอาจไม่ยกเท้าสูงพอ หรือจังหวะกระโดดที่การยกเท้าไม่ตรงกันก็สามารถจัดการได้


โดยสามารถแก้ไขได้ด้วยการดับเบิ้ลคลิก Clip ที่เราอัดไว้เพื่อเข้าสู่ Mode Edit Clip เราจะเห็น Timeline ที่แบ่งออกเป็นส่วนหลักของร่างการ เช่น Body, Left Hand, Right Hand เป็นต้น
ซึ่งจะเห็นตัว Timeline เป็นเส้นยาว แต่ส่วนหลักๆ ที่เราจะแก้ไขคือ Foot lock L และ Foot lock R ที่มี Timeline สีเขียวและฟ้า โดยจะแบ่งออกเป็นช่วงๆ ตามช่วงที่เท้าข้างนั้นๆไม่เตะกับพื้น


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

ตัวอย่างการ Clean Up Motion เบื้องต้นใน Rokoko Studio

เพิ่ม Animation ไปยังตัวละคร
ในตัวอย่างที่เราจะทำให้ดูในวันนี้ จะใช้ตัว Metahuman เป็นหลัก เพราะเป็นตัวอย่างที่ค่อนข้างสมบูรณ์ในแง่ของระบบการควบคุมกระดูกต่างๆ ก่อนถึงขั้นตอนการ Clean Up ก็สามารถทำงาน
ตาม Work-flow ปกติได้เลย โดยขั้นตอนปกติก็จะเป็นไปตามลำดับประมาณนี้ คือ เตรียมตัวละคร > Import Motion .Fbx > แปลง Animation จาก UE4 เป็น UE5 > Set Asset Detail ของตัวละคร
>สร้าง Sequence และเพิ่มตัวละครลงไป ( สามารถดูรายละเอียดขั้นตอนการทำงานเพิ่มเติมได้ที่นี่ )


เมื่อเพิ่มตัวละครลงไปใน Sequence แล้วจะมีตัว ใน Timeline จะแบ่งออกเป็น 2 ส่วนหลักๆนั่นก็คือ Body และ Face และจะปรากฏให้เห็นตัว Metahuman_ControlRig ซึ่งใช้ควมคุมกระดูกของตัวละคร
ใช้จัดท่าท่างให้เป็นท่าต่างๆที่เราต้องการได้ โดยเริ่มแรกให้เราเลือกตัว Metahuman_ControlRig ของทั้ง Face และ Body จากนั้นลบไปก่อนเพื่อเพิ่ม Animation ของเราที่ได้มาจาก Rokoko


โดยเลือกที่ Body และกดที่ + เลือก Animation และเลือก Animation ที่เรานำเข้ามา จากนั้นทำแบบเดียวกันกับ Face และปรับตำแหน่ง Timeline ให้หน้าและท่าทางสัมพันธ์กัน



จากนั้นกลับมาเลือกที่ Body แล้วคลิกขวา Bake to Control Rig จากนั้นเลือก Metahuman_ControlRig โปรแกรมก็จพทำการประมวลผลและแสดงให้เห็นถึง Key Frame ที่ถูกสร้าง
จาก Animation ของเรา และที่ตัว MetaHuman เองก็จะปรากฏให้เห็น Control Rig หรือตัวควมคุมท่าทางของตัวละครเราด้วยเพื่อให้เราสามารถแก้ไขท่าทางตามที่ต้องการได้

ทำความรู้จักระบบ FK Rig และ IK Rig เบื้องต้น
เมื่อพูดถึงระบบ Control Rig หรือระบบควบคุมกระดูกของ Model จะมีระบบที่นิยมใช้กันหลักๆอยู่ 2 ระบบ คือ FK Rig (Forward Kinematics ) และ IK Rig (Inverse Kinematics)
โดยทั้ง 2 Control Rig นี้ในการทำ Animation จะใช้งานร่วมกับ Keyframe โดยการสร้าง Keyframe ที่ ณ จุดหนึ่งของ Timeline และทำการเปลี่ยนแปลงค่า Location หรือ Rotate จากนั้นสร้าง
Keyframe อีกจุดหนึ่ง เมื่อกด Play ก็จะเกิดการเคลื่อนไหวจากจุดหนึ่งไปอีกจุดหนึ่งนั่นเอง

ตัวอย่างการใช้งาน FK Control Rig

โดยที่ระบบแรก ระบบ FK Rig หรือ Forward Kinematics คือ การที่มีตัว Controller อยู่ตามจุดต่างๆของ Joint กระดูกเมื่อต้องการเปลี่ยนท่าทางของตัวละครต้องทำการเปลี่ยนแปลงไปที่ละจุด
เช่น หัวไหล่, ข้อศอก และมือเป็นต้นโดยข้อดีของระบบนี้คือสามารถควบคุมไม่โดยละเอียดสามารถเปลี่ยนแปลงค่าไปทีละจุดได้ ส่วนข้อเสียคือใช้งานได้ยาก แอนิเมเตอร์ต้องมีความรู้หลักการเคลื่อนไหว
ของร่างกายพอสมควรถึงจะทำงานได้อย่างลื่นไหล

ส่วนระบบที่สอง IK Rig หรือ Inverse Kinematics คือระบบของ Controller ที่ทำงานส่งผลต่อส่วนอื่นๆของร่างกายอย่างสัมพันธ์กัน เช่น เมื่อเราย้ายตำแหน่งของข้อมือ แขนส่วนอื่นก็จะขยับตามกันไป
อย่างสัมพันธ์กันตามหลักการเคลื่อนไหวของร่างกาย ข้อดีของระบบนี้คือ ใช้งานง่าย เวลาทำการ Animate ไม่จำเป็นต้องสร้าง Keyframe หลายจุด ทำให้การทำงานไม่ซับซ้อน วันนี้เราจึงจะใช้ระบบนี้
เป็นหลัก ในการทำ Clean Up

แปลง Control Rig และเพิ่ม Additive Timeline
เริ่มจากเปิด Tab Metahuman_ControlRig ใน Timeline ของ Body จากนั้นเปิด Tab global_ctrl จะเห็น Timeline และ Keyframe ที่เป็นส่วนหลักๆของตัวละคร ซึ่งแขนขอทั้ง 2 ข้าง
ของตัว Meta Humanค่าเริ่มต้นจะเป้นระบบ FK Rig เราจะทำการแปลงให้เป็นระบบ IK Rig ก่อนโดยไปที่ Timelin arm_l_fk_ik_switch หรือตัวควบคุมแขนซ้ายจากนั้นลากครอบและลบ
Keyframe ออกทั้งหมด จากนั้นคลิกติ้กถูก เพื่อแปลงเป็นระบบ IK Rig จากนั้น ทำแบบเดียวกันกับ arm_r_fk_ik_switch หรือตัวควบคุมแขนขวา


เมื่อแปลงเสร็จเรียบร้อยแล้วจะปรากฏ Keyframe ใหม่ในระบบ IK Rig เราสามารถเลือกเพื่อทำการเปลี่ยนแปลงท่าได้แล้ว แต่หากเราเปลี่ยนแปลงท่าในตอนนี้เลย เมื่อกด Play ท่าก็จะกลับมาเป็นท่าเดิม
เนื่องจากแต่ละ Frame ถูกล็อคด้วย Keyframe ของAnimation หลักที่มีอยู่แล้ว เราต้องเพิ่ม Additive timeline โดยเลือกที่ Metahuman_ControlRig แล้วกดที่เครื่องหมาย + แล้วเลือก Additive


ตัว Additive Timeline นี้เองที่เราจะใช้เป็นตัวควบคุมที่ Cover จาก Time line Animation หลักอีกที อธิบายก็คือ หากตัวละครทำท่ายืนโบกมือแล้วเราปรับท่าเป็นท่านั่ง ตัวละครของเราก็เปลี่ยนเป็นท่านั่ง
ตาม Additive Timeline ที่เป็นตัวควบคุมหลัก แต่ก็จะยังคง โบกมืออยู่ตาม TimeLine Animation หลัก


การ Clean Up Motion
ในการ Clean Up เราหากเราต้องการแก้ไขท่าโดยรวม เราก็จะใม่ใช้ Keyframe ร่วมด้วย เช่น หากเราเห็นว่านิ้วมือของตัวละครกางมากไปทั้งคลิป เราก็อาจแก้ให้นิ้วมือชิดกันมากขึ้นตลอดทั้งคลิป
ได้โดยการเลือก Controller ที่นิ้วก้อยหรือนิ้วชี้ จากนั้นใช้ Move ย้ายให้ชิดกันมากขึ้น


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


จากนั้นเลื่อน Playhead กลับไปที่ตำแหน่งที่ต้องการแก้ไข จากนั้นทำการปรับท่าที่ต้องการ จากนั้นสร้าง Keyframe อีกจุด เป็น Key Frame ของท่าที่เราแก้แล้ว

จากนั้นเลื่อน Playhead ไปยังตำแหน่งที่เราคิดว่าจะให้ท่านั้นๆคงอยู่นานเท่าไหร่จากนั้นสร้าง Key Frame เพิ่มอีกหนึ่งจุด ถือเป็นตำแหน่งระยะเวลาที่ต้องการให้ท่าที่เราแก้คงอยู่


เลือก Key Frame Original ของเราจากนั้นคลิกขวา Copy และเลื่อน Playhead ไปข้างหน้าของจุดที่สร้างล่าสุดนิดหน่อยเพื่อวาง Key Frame Original เพื่อให้ค่าของท่า Pose กลับเป็นปกติหลังจากนี้


หากจุดที่ต้องการแก้ไขมีเท่านี้ก็ถือว่าเป็นการเสร็จขั้นตอนการ Clean Up แล้ว แต่หากมีมากกว่า 1 จุด ก็ทำแบบเดียวกันในจุดอื่นๆได้เลย และนอกจากนี้เรายังสามารถใช้กระบวนการ Clean Up นี้เอง
ปรับเพิ่มท่าการเคลื่อนไหว ที่นักแสดงไม่ได้ทำ เพิ่มขึ้นได้อีกด้วย เช่นเราอยากให้ตัวละครเงยหน้าขึ้นในช่วงๆหนึ่ง เราก็ทำแบบเดียวกันกับขั้นตอนก่อนหน้า คือ สร้าง Key Frame Original 1 จุด
จากนั้นสร้าง Key Frame ที่เงยหน้าแล้ว 1 จุด จากนั้นเลื่อน Playhead ไปยังเวลาที่ต้องการ และสร้าง Key Frame เพิ่ม 1 จุด จากนั้น Copy Key Frame Original มาวางปิดเป็นจุดสุดท้าย
รวมทั้งหมด 4 จุด ตัวละครของเราก็จะเพิ่มการเงยหน้าเข้ามาตามเวลาที่เราสร้าง Key Frame ไว้แล้ว

ตัวอย่างการเพิ่มท่าเงยหน้าลงไปใน Animation หลัก
ตัวอย่าง Animation ก่อนและหลังการทำ Clean Up