สวม Character เพิ่มบทบาทให้ Meta Human | Unreal Engine 5

สวม Character เพิ่มบทบาทให้ Meta Human | Unreal Engine 5

หลังจากครั้งก่อนที่เราได้แชร์เทคนิคการเชื่อมต่อชุด Rokoko Smart Suit Pro II ,Rokoko Smart Gloves และ Rokoko Headrig & Rokoko Face Capture กับ Metahuman แบบบันทึกการเคลื่อนไหว
ทั้งส่วนของใบหน้า และร่างกายทั้งตัวให้ดูกันไปแล้ว ในวันนี้เราจะมาชวนทำอะไรสนุกๆกัน ด้วยการนำหัวของ Metahuman มาใส่กับลำตัวของ Character อื่นเพื่อเพิ่มลูกเล่น สร้างบทบาท
ให้กับ Meta Human สำหรับสร้างงาน Animation โดยขั้นตอนการทำที่เราเตรียมมาในวันนี้ก็เป็นขั้นตอนง่ายๆที่ทำตามได้ไม่ยาก โดยมี Step หลักๆดังนี้

เตรียม Unreal Engine ให้พร้อมสำหรับการทำงาน
ก่อนที่จะเริ่มการทำงานของ Project นี้เราจำเป็นต้องมี Plugin และ Asset ที่จำเป็นซะก่อน ก่อนอื่นก็ไปที่ Edit>plugins จากนั้นพิมพ์ค้นหาและติ้กถูกเพื่อเปิด Plugin 2 ตัวที่ชื่อว่า Meta Human
และ Rokoko Studio Live จากนั้นกด Restart Now


หลังจากที่เริ่ม Project ขึ้นมาใหม่ให้กด +ADD ที่หน้าต่าง Content Drawer เลือก Add Feature Or Content Pack… จะเด้งหน้าต่างขึ้นมา เลือก Third person กด Add to Project
เพื่อพิ่ม Asset ที่จำเป็นสำหรับส่วน Animation

และสำหรับ Asset ที่เหลือที่จำเป็นสามารถโหลดได้ที่นี่ ซึ่งเป็น Asset ที่ได้จาก Rokoko Tutorial เมื่อโหลดแล้วให้นำไปไว้ใน Folder Project ของ Unreal โดยสร้าง Folder แยกไว้
เราก็จะได้ Asset ที่จำเป็นทั้งหมดสำหรับงาน Animation แล้ว


Download Metahuman & Character
จากนั้น Download Metahuman ของเราโดยใช้ Quixel Bridge โดย Login เข้า Epicgame Account ของเราจากนั้นกด Add Metahuman เข้า Project


ในส่วนของตัวละคร แนะนำให้โหลดจาก Marketplace ของ Epic Game เนื่องจากตัวละครรองรับการทำงานใน Unreal Engine ได้ดีกว่าโหลดจากแหล่งทั่วไป ซึ่งบางตัวละคร
ยังสามารถโหลดได้ฟรีอีกด้วย


จากนั้นลาก ABP ของตัว Character ที่เราโหลดมาและตัว Meta Human ของเราเข้าไปใน Scene จากนั้นที่ Tab Transform กด Reset ค่า Location ให้เป็น 0 เพื่อให้โมเดลทั้งสอง
มาอยู่กลางซีน เพื่อให้ตอนที่นำหัวและลำตัวมาต่อกันจะได้ง่าย จากนั้นกดปิดตาเพื่อซ่อนตัวละครไปก่อนเพื่อที่เราจะทำงานกับตัว Metahuman ได้ง่ายขึ้น

Export & Import Motion
ถึงแม้ว่า Rokoko Studio จะมีฟังก์ชั่นการทำงานที่สามารถส่งข้อมูล Motion แบบ Real-Time ไปยังโปรแกรม Unreal Engine และรวมไปถึงโปรแกรม Animation อื่นๆได้
ในฟังก์ชั่นที่เรียกว่า “Live Steaming” ซึ่งเหมาะสำหรับงานด้านการ Live Steaming ด้วยตัวละคร 3 มิติเท่านั้น แต่หากใน Work-flow ของการสร้างๆ Animation จริงๆ
เราควรทำการ Record Motion ให้เสร็จก่อนเพื่อ Export ไปใช้ในโปรแกรม Animation อีกที (หรือกด Play Mocap ที่อัดไว้แล้ว Live ไปยัง Unreal เพื่อ Record อีกที) เพราะเนื่องจาก
บางทีเราอาจต้องทำการ Record Motion หลาย Shot จนกว่าจะได้ Shot ที่พอใจ รวมถึงที่เราจะสามารถ Clean Up Motion เบื้องต้นอย่างเช่นการยกเท้าของตัวละคร ก่อนได้อีกด้วย


โดยหลังจาก Record Motion ที่ได้จาก Rokoko Smart Suit และตัว Face Capture เรียบร้อยแล้ว ให้เลือก Clip ที่ต้องการจากนั้นไปที่ Tab Export เลือก Format เป็น .fbx ติ้กเลือก Bodymesh
ติ้กเลือก Override Skeleton/Mesh จากนั้นเลือก Preset เป็น Unreal Engine 4 ( ขณะนี้ยังไม่รองรับการ Export สำหรับ Unreal Engine 5 ) จากนั้นค่าที่เหลือตั้งตามรูปตัวอย่าง
จากนั้นเลือก Folder ที่จะ Export และกด Export รอจนเสร็จ


จากนั้นกลับมาที่ Unreal และสร้าง Folder Mocap จากนั้นลากไฟล์ Mocap ของเรามาใส่ใน Unreal ได้เลยจะเด้งหน้าต่าง FBX Import Options ให้ติ้ก Import Mesh ออก จากนั้นเลือกเป็น
SK_Manequin_Skeleton แทน ตั้งค่าที่เหลือตามภาพตัวอย่างจากนั้นกด Import All เมื่อนำเข้ามาแล้วกดดับเบิ้ลคลิกเพื่อเช็คดู


แต่ส่วนของใบหน้าเราจะทำการ Record Animation Unreal โดยใช้ฟังก์ชั่น Live Link เนื่องจากเราไม่สามารถ Import ส่วนของใบหน้าเข้ามาใช้ได้โดยตรง ให้เปิดโปแกรม Rokoko Studio
จากนั้นเปิดการ Live ไปยัง Unreal จากนั้นกด Play Clip ที่เรา Record ไว้

จากนั้นกลับมาเปิดฟังก์ชัน Live Link ใน Unreal จากนั้นเลือกตัว Metahuman และไปที่ Tab Live Link ด้านขวา กดติ้กและคลิกเลือกข้อมูล Mocap ใบหน้าที่ส่งมาจาก Rokoko
จากนั้นใบหน้าของตัว Metahuman ก็จะขยับตาม Mocap จาก Rokoko แล้ว



จากนั้นไปที่ Window>Cinemetics>Take Recorder จะเด้งหน้าต่าง Take Recorder จากนั้นให้ลากตัว Metahuman จาก Outliner มาใส่เข้าไปจากนั้นกดปุ่มสีแดงเพื่อเริ่ม Record
เมื่อได้พอที่ต้องการแล้วก็กด Stop ซึ่งเราสามารถตัดต่อแก้ไข Timeline ให้พอดีกับช่วงที่เราจะใช้ภายหลังได้


Animation ของเราจะถูกส่งไปเก็บไว้ใน Cinematic>Takes>วันที่>หมายเลข Scene>Animation ให้เราดับเบิ้ลคลิกเพื่อเช็คดู Animation ของส่วนหัว


ซ่อนส่วนที่ไม่ใช้
ในขั้นตอนนี้ Step หลักที่เราจะทำกันนั่นก็คือการทำให้ตัว Character ที่เราโหลดมาไม่มีส่วนหัว แล้วจากนั้นทำให้ตัว Meta Human เหลือแต่ส่วนหัว และจากนั้นจะนำทั้งสองส่วนหลักๆนี้ มารวมเข้าด้วยกัน
ให้เป็นเหมือนตัวละครเดียวกัน ซึ่งอันที่จริงแล้วการจัดการส่วนประกอบทั้งหลายเหล่านี้มีวิธีการจัดการหลายวิธี เช่นตัดในส่วนของ Mesh หรือจัดการใน Animation Blueprint ของตัวละคร
ซึ่งอาจมีขั้นตอนที่ซับซ้อนไปบ้าง แต่เราจะมาแชร์อีกหนึ่งเทคนิคที่ง่ายๆ และรวดเร็ว นั่นก็คือการสร้าง Material มาใช้เพื่อซ่อนวัตถุที่ไม่ต้องการ


ขั้นแรกก็มาสร้าง Material กันก่อน ให้คลิกขวาที่ว่าง Content Drawer เลือก Material ตั้งชื่อว่า CLEAR และดับเบิ้ลคลิกเข้าไป จะปรากฏหน้าต่างเพื่อจัดการ Node Clear ที่ช่อง Blend Mode
ที่ด้านซ้ายปรับเป็น Translucent จากนั้นสร้าง Constants จากนั้นต่อเข้าไปที่ช่อง Opacity ที่ Node หลักของ CLEAR จากนั้น Save และกดปิดไปได้เลย ตัว Material นี้หากนำไปใส่กับ Object
ก็จะเป็นการซ่อน Object นั้นๆ

เปิดหน้าต่างแยกของ Animation Blueprint ของ Metahuman ขึ้นมาจากนั้นลาก Material CLEAR ที่เราสร้างไปใส่ในช่อง Material ของ Body, Feet, Legs และ Torso จากนั้นตัวละครของเรา
ก็จะเหลือแค่หัวแล้วจากนั้นทำแบบเดียวกันกับตัว Character แต่หากไม่มีส่วนหัวอยู่แล้วก็ทำขั้นตอนต่อไปได้เลย

เราจะทำการใส่ Opacity Mask ให้กับส่วนหัวเพื่อให้ Mask ทำการซ่อนช่วงบ่า ให้โมเดลของเราเหลือแค่หัวจริงๆ เวลาที่นำไปใช้กับตัวละคร ช่วงบ่าจะไม่ได้ทะลุออกมาแปลกๆ ก่อนอื่นก็เข้าไปที่ Folder Metahuman>Common>Face>Materials>Bakeed ดับเบิ้ลคลิกไฟล์ M_Head_Baked จะปรากฏหน้าต่าง Graph ของไฟล์ ให้เปลี่ยน Blend Mode เป็น Masked จากนั้นเข้าไปที่ Folder
MetahumanOpacityMask ใน Folder Asset ที่เราโหลดมา จากนั้นลาก Opacity Mask เข้าไปที่พื้นที่ Graph ของ M_Head_Baked และต่อ Node เข้าไปที่ช่อง Opacity Mask
จากนั้นกด Save และปิดไปได้เลย ช่วงบ่าก็จะหายไปแล้ว


สร้าง Animation Sequence
ที่ icon รูปสเลทที่ด้านบน กด Add Level Sequence เพื่อสร้าง Sequence ใหม่ เลือก Folder เพื่อ Save จากนั้นลากตัว Character และตัว Meta Human เข้าไปใน Sequence เลือกและลบ
Control rig ของ Metahuman ออกทั้งหมดและลบ Body ให้เหลือแต่ส่วน Face


เลือกที่ Timeline ของตัว Metahuman จากนั้นกด + แล้วเลือก Attach>ตัวละครที่เรานำมาใช้ จากนั้นพิมพ์และเลือกกระดูกส่วนหัวโดยพิมพ์ว่า HEAD เพื่อให้ส่วนหัว ติดไปกับส่วนตัวของตัวละคร
หลังจากนั้นส่วนหัว Metahuman อาจจะหมุนไปแนวนอน ให้เราใช้เครื่องมือ Rotate และ Move จัดการให้หัวมาอยู่ในตำแหน่งที่ต้องการ


กด + ที่ Timeline ของตัวละคร เลือก Animation ที่เรา Import มาจาก Rokoko Studio จากนั้นตัวละครก็จะเคลื่อนไหวตามที่เราแสดงแล้ว แต่ในส่วนของใบหน้าจะยังไม่ขยับ


ให้เรากด + ที่ Timeline ของ Metahuman จากนั้นเพิ่ม Animation หน้าที่เราบันทึกมาจาก Rokoko Studio เพียงแค่นี้ตัวละครและใบหน้าก็จะเคลื่อนไหวตามที่เราแสดงแล้ว

ตัวอย่างการบันทึก Mocap มาใช้กับตัวละครที่ใส่หัวของ Metahuman