เจาะลึก Unreal EP.1 : Import Character สำหรับทำ Animation ด้วย Rokoko

เจาะลึก Unreal EP.1 : Import Character สำหรับทำ Animation ด้วย Rokoko

ถึงแม้ Unreal Engine จะถูกสร้างมาเพื่อสร้างเกมเป็นหลัก แต่ทางผู้ผลิตอย่าง Epic Game ก็ยังสร้างฟังก์ชันที่สนับสนุนสำหรับผู้ที่นำไปใช้ในงานภาพยนตร์ หรือ Animation ได้อีกด้วย
ซึ่งตัวอย่างที่เห็นได้หลักๆก็คือ ซีรีย์ the Mandalorian ที่ใช้ระบบ Virtual Production ช่วยในการถ่ายทำ โดยเทคนิคก็คือการฉายภาพฉากหลังที่สร้างโดย Unreal ไปยังจอ LED ขนาดใหญ่
แทนการใช้ Green Screen ทำเป็นฉากเพื่อไปใส่ CGI ทีหลัง โดยวิธีนี้จะช่วยให้ผู้กำกับสามารถปรับฉาก ปรับแสงได้ตลอดเวลา ทำให้การทำงานเป็นไปอย่างลื่นไหลสามารถเห็นผลลัพธ์
และปรับปรุงได้ทันทีเลย ซึ่งความสามารถในการ แสดงภาพได้อย่างรวดเร็วนี้เอง ทำให้เราสามารถใช้ Unreal Engine มาช่วยในการสร้างงานภาพยนตร์ Animation ของเราได้

ระบบ Virtual Production ที่ใช้ในซีรีย์ the Mandalorian(ขอบคุณภาพจาก Google.com)

และในวันนี้เราจะมาแชร์ขั้นตอนการทำงานใน Unreal Engine แบบเจาะลึกทุกละเอียด โดยจะแสดงให้เห็นถึงขั้นตอนการ Import Model Character เข้าไปยัง Unreal และเตรียมพร้อม Asset ที่จำเป็น
สำหรับทำงานกับ Motion จาก Rokoko ซึ่งขั้นตอนการทำงานที่เราจะแชร์นี้สามารถทำได้ทั้ง Model ที่สร้างเอง หรือ Model ที่ Download มาจากแหล่ง Free 3D Model ทั้งหลาย
เช่น Sketchfab, CGTrader เป็นต้น แต่อีกแหล่ง Download Model ที่เราอยากแนะนำ และจะนำมาใช้เป็นตัวอย่างในวันนี้ เราจะใช้ Model Character ที่ Download จาก Mixamo


Mixamo เป็นเว็บที่เป็นแหล่ง Asset สำหรับงาน Animation ที่มีให้เลือก Download ทั้ง Model Character และ Motion ที่สามารถนำไปทำเป็น Animation Preset ใน Unreal ได้
และเนื่องจากเป็น Model ที่ถูกสร้างมาเพื่องาน Animation โดยเฉพาะ ตัว Model จึงมีลักษณะหรือปัจจัยที่จำเป็นครบแล้ว ทั้งรูปแบบและจำนวน Polygon และจำนวน Polygon ที่เหมาะสม
และมีการ Rigging หรือใส่กระดูกมาให้เรียบร้อยแล้ว อีกทั้งยังสามารถตั้งค่า รูปแบบและสกุลไฟล์ในการ Export ได้อีกด้วย


4 Step หลักๆ ในการ Import Model เข้า Unreal และเตรียมพร้อมสำหรับทำงานกับ Rokoko มีดังนี้


Model&Rig

หรือถ้าใครต้องการสร้าง Model เพื่อมาทำ Animation ด้วยตัวเอง (สำหรับผู้เริ่มต้นสามารถอ่านบทความการเตรียม Model ให้พร้อมสำหรับงาน animation ได้ที่นี่ ) แต่ยังไม่เชี่ยวชาญ
หรือต้องการความสะดวกในเรื่องของการทำ Rig ก็สามารถสร้าง Model เพื่อมาใช้ระบบ Auto-Rigger หรือ การใส่กระดูกอัตโนมัติ บนเว็บ Mixamo ได้เลย รวมถึงใครที่ Download Model
ที่ไม่มี Rig มา ก็สามารถทำได้เหมือนกัน โดยหลังจาก สร้างหรือโหลด Model มาแล้ว ให้กด Upload Character เลือกไฟล์ Model ของเราได้เลย รองรับสกุลไฟล์ .obj .fbx .zip



เมื่อ Upload Character เว็บจะทำการประมวลผล Model ของเราซักครู่จากนั้นจะเด้งหน้า Orient เพื่อให้เราหมุน Model ของเราให้หน้าหมุนมาอยู่ด้านหน้าในกรณีที่ Model หันผิดด้าน
แต่ถ้า Model ของเราอยู่ถูกด้านแล้วก็กด Next ไป Step ถัดไปได้เลย


ระบบจะทำการประมวลผลซักครู่ก็เป็น Model ที่มี Rig เรียบร้อยสามารถทดลองใส่กับ Motion ใน Mixamo เพื่อดูการเคลื่อนไหวของ Model ได้เลย ให้เราเช็คดูว่าการเคลื่อนไหวลื่นไหลดีหรือไม่


จากนั้นเรามามา Download Model เพื่อนำไปทำงานต่อใน Unreal Engine กัน และเพื่อความสะดวกเราจะเลือก Model จากใน Mixamo เลย กดที่ปุ่ม Download เลือก Format เป็น FBX Binary
และเลือก Pose เป็น T-Pose


Import To Unreal
เนื่องจากวิธีการสร้าง Animation ของเราจะใช้ Motion ที่ได้จาก Rokoko เป็นหลัก ดังนั้นก่อนที่จะเข้าสู่ขั้นตอน Import เข้า Unreal Engine เราก็ต้องมาเตรียมการ Install Plugin ที่จำเป็นต้องใช้
กันก่อนนั่นก็คือ Plug-in ที่มีชื่อว่า “Rokoko Studio Live” ซึ่งนอกจากจะทำหน้าที่เป็นตัวเชื่อมโยงโปรแกรม Rokoko Studio ไปยัง Unreal แล้ว ยังทำให้เราสามารถใช้คำสั่งที่จำเป็น
สำหรับ Rokoko ใน Unreal ได้อีกด้วย เช่น Rokoko Body Map (หากเราไม่ติดตั้ง Plugin คำสั่งนี้เราจะค้นหาไม่เจอ) การติดตั้งก็ทำได้ไม่ยากโดยสามารถค้นหาได้จาก Marketplace ใน Epic Game
แล้วกด Install to Engine ได้เลย


เมื่อเปิด Unreal ขึ้นมาแล้ว ที่หน้าต่างการสร้าง Project เลือกเป็น Flim/Video &Live Events เนื่องจากเราต้องการใช้งาน Unreal สำหรับงาน Animation เลือก Template เป็น Blank
หรือ ฉากเปล่า จากนั้นตั้งชื่อเละเลือกที่เก็บของ Project เสร็จแล้วกด Create ได้เลย


อย่างแรกที่ต้องทำก็คือการเปิดทำงานของ Plugin โดยไปที่ Edit>Plugins แล้วค้นหา Rokoko Studio live จากนั้น คลิกติ้กถูกเพื่อ Enable Plugin จากนั้นโปรแกรมจะให้เรา Restart
กด Restart Now


การ Import Model Character ของเราก็สามารถทำได้ง่ายๆ โดยการไปที่ Content Drawer ที่มุมซ้ายล่างของหน้าต่างโปรแกรม แล้วคลิกขวาสร้าง Folder แยกไว้ใน Content แล้วตั้งชื่อตามตัวละคร
ที่เราใช้ เนื่องจากการจัดการทรัพยากรใน Unreal จะทำให้เราทำงานสะดวกมากขึ้น ไม่งงกับ Asset ต่างๆที่อาจเพิ่มขึ้นมาในภายหลังได้ จากนั้นสามารถลากไฟล์ Model ของเรามาใส่ได้เลยเลือก Import All
เสร็จแล้วจะปรากฏ Asset ทั้งหมดที่เราใส่มา


Create Body Map data
Asset แรกที่จำเป็นต่อ Project ของเรานั่นก็คือ Body MapData ซึ่งเป็นตัวที่ทำหน้าที่เชื่อมโยงกระดูกแต่ละท่อนของ Model ของเราให้ตรงกับข้อมูลกระดูกจาก Rokoko เพื่อให้ข้อมูลการเคลื่อนไหว
ของร่างกายถูกส่งมาได้อย่างถูกตำแหน่ง โดยสามารถสร้างโดยคลิกขวาที่ ที่ว่างใน Content Drawer>Blueprint Class ที่ Tab All classes ให้ค้นหา Rokoko Body Map Data จากนั้นกด Select
จะได้ Asset Body Map ขึ้นมาให้ตั้งชื่อว่า Body Map Data ให้ดับเบิ้ลคลิกเข้าไปจะปรากฏ List รายชื่อกระดูกที่ Rokoko มี


จากนั้นดับเบิ้ลคลิกเปิด Asset Skeleton เพื่อดู List กระดูกของ Model แล้วจัดหน้าต่างของทั้ง 2 Asset นี้ไว้คู่กันเพื่อที่เราจะ Copy ชื่อกระดูของ Model ไปใส่ใน List กระดูกของ Rokoko



หากตัว Model ที่หน้าต่าง Skeleton ไม่ขึ้นโชว์กระดูกให้ไปที่ด้านบนของ Viewport ที่ Character>Bones>All Hierarchy จะแสดงให้เห็นกระดูก หลังจากนั้นสิ่งที่เราจะทำก็คือการ Copy
ชื่อกระดูกแต่ละท่อนของ Model (ฝั่งซ้ายในรูปตัวอย่าง) ไปวางใน List Bone ของ Rokoko (ฝั่งขวาในรูปตัวอย่าง) โดยเราจะดูจากกระดูกที่ควรจะอยู่ในตำแหน่งเดียวกัน ซึ่งชื่อจะไม่เหมือนกัน
เช่น Shoulder L กับ Clavicle L ซึ่งการทำให้ชื่อเหมือนกันแบบนี้ ก็คือการทำให้ Motion จาก Rokoko รู้ว่าต้องส่งไป Link กับกระดูกท่อนไหน โดยเราสามารถลองหมุนหรือขยับกระดูกดูได้ว่ากระดูกที่เลือก
คือท่อนไหนใน List



เมื่อทำครบหมดทุกท่อนแล้ว กด Compile และ Save ที่รูปแผ่นดิสด้านบนซ้าย เพื่อยืนยันและบันทึกการสร้าง Body Map ซึ่งจะนำไปใช้ในการ Link Motion จาก Rokoko ต่อไป

Create T-pose Asset
ท่า T-pose หรือท่าที่ Model กางแขนและนิ้วเหยียดตรงออกไปด้านข้างจน Model เหมือนเป็นรูปตัว T ถือเป็นท่าพื้นฐานของ Model ที่ใช้ในงาน Animation และเป็นท่า Base ของ Model ที่ควรทำ
หากจะมาทำงานกับ Rokoko เราสามารถสร้าง Model และจัดท่าเป็น T-Pose ก่อนที่จะนำมาทำงานกับ Rokoko หรือ Import เข้ามาใน Unreal Engine จะทำให้ทำงานได้ง่ายกว่า
และถ้าใครนำไปใส่กระดูกด้วย Auto-Rigger ใน Mixamo โมเดลก็จะเป็น T-pose แล้วเหมือนกัน แต่ถ้าหากใครต้องการมาทำ T-Pose ใน Unreal ก็สามารถทำได้เช่นกัน


โดยเข้าไปที่ Skeleton เหมือนเดิม จากนั้นเลือกกระดูกที่ต้องการจัด(อาจเริ่มจากกระดูกไหปลาร้า หรือ Clavicle ) ที่กระดูกจะมี Controller แสดงขึ้นมาให้สามารถประกระดูกได้ โดยสามารถใชคีย์พื้นฐาน
ของโปรแกรม 3 มิติทั่วไปอย่าง W, E, R ( Move, Rotate, Scale ) ได้เลย แต่ที่เราจะใช้คือ Rotate หมุนกระดูกท่อนต่าง ๆ ให้เป็น T-Pose โดยสามารถใช้มุมกล้องด้าน Front และด้าน Top ของโมเดลเป็นหลัก
จะทำให้จัดท่าง่ายและตรง ( เปลี่ยนมุมกล้องที่ซ้ายบนของ Viewport )


เมื่อเสร็จแล้ว เราจะทำการ Save ท่า Pose นี้ไว้ โดยไปที่แถบด้านบน ของ Viewport เลือก Create Asset>Create Pose Asset>Current Pose เพื่อสร้าง Pose Asset สำหรับนำไปใส่
ใน Animation Blueprint เพื่อทำงานกับ Rokoko ต่อไป