เจาะลึก Unreal EP.2 : Rokoko Motion Live link

เจาะลึก Unreal EP.2 : Rokoko Motion Live link

หลังจากครั้งก่อนที่เราได้เตรียม Asset ที่จำเป็นให้พร้อมสำหรับรองรับ Motion จาก Rokoko กันแล้ว และเพื่อผลิตเป็นภาพยนตร์ Animation ต่อไป ในครั้งนี้สิ่งที่เราจะทำเป็น Step ถัดมา
ก็คือ การนำ Asset ทั้งหมดที่เราเตรียมนั้น มาทำการ Setup หรือเชื่อมต่อเข้าด้วยกัน ในลำดับและตำแหน่งที่ถูกต้องเพื่อให้คำสั่งต่างๆ ดำเนินไปอย่างที่เราต้องการ โดยก่อนอื่น
เราต้องมาทำความเข้าใจระบบการทำงาานหัลกๆของ Unreal Engine กันก่อน ซึ่งระบบที่ใช้หลักๆใน Unreal จะเป็นระบบ Node Base System หรือก็คือการต่อชุดคำสั่งเข้าด้วยกัน
โดยโปรแกรมจะประมวลผลตามลำดับเป็น Input-Process-Output เพื่อให้ได้ผลลัพธ์ที่เราต้องการก็ต้องสร้าง Nodeคำสั่งต่างๆที่เราจะใช้แล้วมาต่อเข้าด้วยกัน ซึ่งที่จริงแล้วการทำงานระบบนี้
ก็ไม่ได้มีแค่ Unreal ยังสามารถพบได้ในโปรแกรม 3 มิติอื่นๆได้อีกด้วย

สำหรับผู้ที่ไม่ได้มีการทำงานในระบบ Node-Base System มาก่อน อาจจะยังไม่คุ้นเคยและต้องทำความเข้าใจก่อนซักหน่อย แต่ถึงแม้ระบบนี้ดูเผินๆอาจจะดูซับซ้อนแต่จริงๆแล้ว
ก็ไม่ได้ยากอย่างที่คิด และเพื่อให้สามารถทำตามกันได้อย่างถูกต้อง เราก็จะมาแชร์ให้เห็นถึงขั้นตอนการทำงานแบบชัดๆ Step By Step กันเลย โดยเราจะแบ่งขั้นตอนการทำงาน
เป็น 4 Step หลักๆ ดังนี้

Animation Blueprint Setup
Animation Blueprint ถ้าแปลตามตรงก็คือพิมพ์เขียวของงาน Animation ซึ่งจริงๆแล้วก็ถือว่าเป็นเสมือนแผงควบคุมหลักสำหรับ Part ของ Animation เป็นหลัก โดยเราจะสร้างคำสั่ง
ที่เราจำเป็นต้องใช้ลงไปเพื่อรันการทำงานของ Animation ก่อนอื่นการสร้าง Animation Blueprint ต้องเลือกที่ตัว Asset Model หลักของเราใน Content Drawer โดยจะมีสถานะด้านล่างชื่อ
เป็น Model Skeleton Mesh แล้วกดคลิกขวา Create>Animation Blueprint ตั้งชื่อ ABP_Name(ชื่อ Model) จากนั้นดับเบิ้ลคลิกเข้าไป

โปรแกรมจะเด้งมายังหน้าต่าง Animation Blueprint เราจะทำการสร้าง Node ในพื้นที่ของ AnimGraph สามารถสร้างได้โดยคลิกขวาจากนั้นพิมพ์ชื่อ Node ที่ต้องการสร้างได้เลย
Node แรกที่เราจะสร้างคือ Rokoko Body Pose จากนั้นลากขาฝั่งขาออก(ด้านขวา) ไปต่อกับ Output Pose

จากนั้นไปเปิด Tab Variables ที่ด้านซ้ายเพื่อสร้าง Node ใหม่สองตัวให้ตั้งชื่อว่า “Rokoko Actor Name” และ “Rokoko Body Map Data” โดย Rokoko Actor Name ให้เลือก Typeเป็น Name
ส่วน Rokoko Body Map Data ให้กดเลือก Type และพิมพ์ค้นหา Rokoko Body Map Data>Class Reference

จากนั้นลาก Node ทั้งสองตัวลงใน AnimGraph และต่อเข้ากับ Node Rokoko Body Pose โดยที่ Rokoko Actor Name ต่อเข้าช่อง Rokoko Actor Name และ Rokoko Body Map Data
ต่อเข้าช่อง Retarget Asset จากนั้นยืนยันคำสั่งได้โดยการกด Complie ที่ด้านซ้ายบน

จากนั้นให้ไปยัง Tab Default ด้านขวา แล้วตั้งชื่อตาม Actor ที่เราใช้ใน Rokoko Studio ได้เลย (อย่าลืมกด Apply ด้านล่างขวา ) เลือก Node Rokoko Body Map Data
ที่ Tab Defualt ด้านขวา ช่อง Rokoko Bodymap ให้เลือกเป็น Body Map Asset ที่เราได้สร้างก่อนหน้านี้ใน EP.1 และกด Apply ที่หน้าต่างด้านล่าง
ที่เด้งขึ้น แล้วกดปุ่ม Compile ที่ซ้ายบนเพื่อเป็นการยืนยันการรันคำสั่งทั้งหมดที่เราได้สร้าง จากนั้นกด Save เพื่อบันทึกการทำงานไว้

การทำ Model ให้เป็นท่า T-pose เราจะทำได้โดยใช้ Pose Asset ที่เราได้สร้างไว้ใน EP ก่อนหน้านี้ ซึ่งถ้า Model ใครเป็น T-Pose อยู่แล้วสามารถข้ามขั้นตอนนี้ได้เลย
ก่อนอื่นโดยเปิดหน้าต่าง Content Drawer แยกขึ้นมา แก็ลาก Pose Asset มาใส่ในพื้นที่ AnimGraph ได้เลย จากนั้นคลิกขวาและเลือก Convert to Pose By Name
จากนั้นไปที่ช่อง Pose Name ใน Tab Setting ที่ด้านขวา จากนั้น เปลี่ยนชื่อเป็น Pose_0 (สามารถดูชื่อของ Pose Asset ได้โดยการ ดับเบิ้ลคลิกเข้าไปที่ Pose Asset )

จากนั้นต่อ Node Poset Asset นี้ไปยังช่อง Component Pose ของ Node Rokoko Body Pose จากนั้นกด Complie และ Save เพื่อยืนยันการรันคำสั่งและบันทึก Blueprint นี้ไว้
ถ้าทำได้ถูกต้อง Modelที่หน้าต่าง Previewที่ด้านซ้านจะกลายเป็นท่า T-Pose ที่เราได้ตั้งค่าไว้ก่อนหน้านี้

Actor Setup
มาถึงขั้นตอนถัดมานั่นก็คือการสร้าง Actor หรือนักแสดงนั่นเอง ซึ่งการสร้าง Actor ก็เหมือนการสร้างนักแสดงที่ใส่ชุดคำสั่งที่จำเป็นไว้แล้ว โดยตัว Actor นี้เองจะเป็นตัวที่เรา
นำไปใส่ใน Scene เพื่อทำการรองรับ Motion และจัดการ Animation โดยในหนึ่ง Scene เราอาจใส่ตัวละครตัวเดิมซ้ำมากกว่าหนึ่งตัวก็ได้ขึ้นอยู่กับความต้องการและไอเดียของเรา
สามารถสร้าง Actor ได้โดยไปที่ Content Drawer คลิกขวาที่ว่าง เลือก Blueprint Class แล้วเลือกเป็น Actor จากนั้นตั้งชื่อเป็น Actor_Name (ชื่อตัวละครของเรา)

ดับเบิ้ลคลิกเข้ามาที่ Actor กดปุ่ม Add ที่ด้านบนซ้ายแล้วพิมพ์ค้นหาและเลือก Skelatal Mesh จากนั้นเปิด Tab Event Graph ของ Skelatal Mesh

ลาก Skeleton Mesh เข้ามาในพื้นที่ EvenGraph และพิมพ์เพื่อสร้าง Node ชื่อ Get Anim Instance จากนั้นลากขาฝั่งขาออกแล้วปล่อยที่ว่าง จากนั้นพิมพ์ค้นหา
Node Cast to ABP_ชื่อตัวละครของเรา เพื่อเชื่อมต่อกับ Animation Blueprint ของเรา

จากนั้นนำ Node BeginPlay ที่มีอยู่แล้วใน Even Graph มาต่อเข้าทางขาเข้าของ Cast to ABP

จากนั้นลากขาออกของ Cast to ABP ไปปล่อยที่ว่างแล้วค้นหา Node Rokoko Actor Name เพื่อเชื่มต่อ Node โดยต่อให้ครบทั้ง 2 เส้นตามภาพตัวอย่างแล้วตั้งชื่อ Actor
ตาม Actor ที่เราใช้ใน Rokoko เมื่อเสร็จแล้วกด Compile

 

จากนั้นสลับจากTabหน้าต่างการทำงานจาก Even Graph ไปที่ View Port แล้วเลือกที่ Skeletal Mesh ของเรา จากนั้นที่ Tab Mesh ที่ด้านขวาเลือก Model ของเรา
Model ก็จะปรากฏให้เห็นใน Viewport

Rokoko Live Link
มาถึงขั้นตอนที่จะทำให้ตัวละครของเราเคลื่อนไหวได้นั้นก็คือการ Link Motion จาก Rokoko โดยที่เราสามารทำได้สองแบบคือการที่ Record แล้วกด Live Link มายัง Unreal
หรือจะกด Live Link แล้วเคื่อนไหวเพื่อ Record Motion ใน Unreal ก็ได้ แต่แนะนำให้ Record ไว้ก่อนจะดีกว่า เพราะจะทำให้เราคัด Reccord Clip อันที่ดีที่สุดได้ แถมยังสามารถ
Clean เบื้องต้นในส่วนการที่ให้เท้าติดพื้นใน Rokoko ได้อีกด้วย

เมื่อ Record Motion ในโปรแกรม Rokoko Studio เสร็จแล้ว เราจะไปที่ Tab Live Steaming ที่ด้านบนขวา จากนั้นที่ไอคอนโปรแกรม Unreal Engine ให้ติ้กถูกที่ Active
เพื่อ Enable Live Link จากนั้นโปแกรมจะขึ้นไอคอนเสาอากาศเขียวกระพริบที่หน้าต่าง แสดงว่าการ Live เปิดแล้ว

จากนั้นกลับไปที่ Unreal เราจะเปิดการรับการ Live จาก Rokoko ให้ไปที่ Window>Virtual Production>Livelink จะปรากฏหน้าต่าง Live Link ขึ้นมา
ให้เราคลิกที่ไอคอน +Source>Rokoko Studio Source>Studioจะปรากฎการ Link Motion ที่มาจาก Rokoko เลือกที่ Actor ของเราขึ้นมาใน List เป็นอัน Link สำเร็จ
จากนั้นก็ปิดหน้าต่างนี้ไปได้

 

จากนั้นเปิด Asset Actor ที่ Content Drawer ขึ้นมาอีกครั้งเลือก Skeletal Mesh ของเรา จากนั้นไปที่Tab Animation ในช่อง Anim Class และเลือก Animation Blueprint ของ Model
เมื่อทำได้ถูกต้องแล้ว Model ของเราใน View port จะได้รับ Motion จาก Rokoko และขยับตามแล้ว

Record & Render
ขั้นตอนนี้เป็นขั้นตอนสำหรับนำ Model ที่มีการเคลื่อไหวแล้ว มา Record ให้เป็น Squence เพื่อ Render Animation เป็น Video ต่อไป โดยก่อนอื่นเราต้องลากตัวละครของเราเข้าไปใน Scene ก่อน
ซึ่งสามารถ โหลดฉากหรือ Environment มาใส่เพิ่มเติมเพื่อให้งานดูน่าสนใจได้จากนั้นเราจะเปิดเครื่องมือสำหรับ Record Motion ที่มาจาก Rokoko ให้เป็น Squence สำหรับตัดต่อและ Render
โดยจะใช้เครื่องมือ 2 ตัวนั่นคือ Sequencer และ Take Recorder ซึ่งอยู่ใน Window>Cinematics

ลากตัวละครของเราที่ Outliner ที่ด้านขวาเข้ามาใน Take Recorder จากนั้นกดปุ่ม Play สีเขียวด้านบนหน้าต่างโปรแกรมเพื่อให้ตัวละครขยับตาม Motion ที่ส่งมาจาก Rokoko
จากนั้นกดปุ่มกลมสีแดงใน Take Recorder เพื่อเริ่ม Record

โปรแกรมจะทำการบันทึกการเคลื่อไหววนไปเรื่อย เมื่อเราพอแล้วก็กด Stop Record ได้ จากนั้นทำการแก้ไข Sequence ที่เรา Record มา ให้ได้ Shot ที่เราต้องการ

ไปที่ Icon รูปสเลทเพื่อเริ่มทำการ Render สามารถตั้งค่าไปตามที่ต้องการ เช่น เฟรมเรท หรือขนาดวิดีโอ เมื่อตั้งค่าเสร็จแล้วกดเพื่อ Render ได้เลย เพื่องแค่นี้เราก็จะได้ Video Animation
จากตัวละครที่ Download มาแล้ว