3D Rigging - เสื้อผ้า
❗️ ข้อควรระวัง
- จำนวนอิทธิพลสูงสุดของผิวควรถูกกำหนดไว้ที่ 4 (ค่าที่เหมาะสมของน้ำหนักใน Unity คือ 4)
- เนื่องจากเสื้อผ้าทุกชิ้นใช้ร่างกายเดียวกัน ค่าฐานน้ำหนักของ baseBody ควรถูกตั้งเป็นค่าเริ่มต้น
- เฉพาะในกรณีของชุดเสื้อผ้า (DR) ควรทาสีน้ำหนักได้อย่างอิสระ ในกรณีที่ใช้เสื้อผ้าหลายชิ้นร่วมกัน เช่น เสื้อท่อนบน (TOP), เสื้อคลุม (OTR), และกางเกง (BTM) การกำหนดน้ำหนักควรทำโดยคำนึงถึงการรวมกันของรายการที่กล่าวถึงข้างต้น
- เมื่อทำการ bindskin ข้อต่อสะโพกและสะโพก_scale ต้องถูกรวมอยู่ด้วย
- ส่วนที่ผิวเชื่อมต่อกันต้องถูกตั้งค่าให้เท่ากับค่าน้ำหนักของหน้ากาก
- ทาสีน้ำหนักเพื่อให้แน่ใจว่า creatorBaseSet ไม่ยื่นออกมานอกเสื้อผ้า (ส่วนที่ไม่สามารถซ่อนด้วยหน้ากากได้)
- หน้ากากต้องถูกทาสีด้วยสี Vertex เพื่อให้ทำงานได้อย่างถูกต้อง
- ตรวจสอบว่ามีคีย์ที่ถูกแทรกในข้อต่อหรือหน้ากากหรือไม่ ถ้ามีให้ลบออกก่อนบันทึก
- เมื่อบันทึกเป็นไฟล์ .fbx เสื้อผ้า (cloth), ข้อต่อ (hips), และหน้ากาก (mask) ต้องถูกเลือก
- กำหนดน้ำหนักเพื่อให้เมื่อเคลื่อนไหวตัวละคร ร่างกายไม่พังทลาย
โหลด BaseBody และวัตถุเสื้อผ้าที่ถูกจำลองขึ้นมา
👍 เปิด creatorBaseSet_ZEPETO.fbx ผ่าน File > CreateReference และตั้งค่า BaseBody เพื่อจัดการไฟล์ได้ง่ายในขั้นตอนสุดท้าย
❗️ caution หากเสื้อผ้าถูกสร้างขึ้นในท่า A-pose ให้ตั้งค่าข้อต่อ creatorBaseSet ให้อยู่ในท่า A-pose โดยปรับค่า RotateZ ของ Shoulder_L และ Shoulder_R เป็น -7.5 และปรับค่า RotateZ ของ upperArm_L และ upperArm_R เป็น -40
ดำเนินการกระบวนการมาสก์ 3 มิติสำหรับเสื้อผ้า
- เลือกหน้ากากและใช้เครื่องมือ Paint Vertex เพื่อระบายสีส่วนที่ซ่อนอยู่หลังเสื้อผ้าเป็นสีดำ (0) และส่วนที่มองเห็นเป็นสีขาว (1).
เพื่อทำการ bindSkin คุณต้องเปิดกลุ่มข้อต่อ (สะโพก) และเลือกข้อต่อที่จำเป็น ที่นี่คุณต้องรวมสะโพกด้วย.
❗️ ระวัง ข้อต่อสะโพกควรมีน้ำหนักเป็นศูนย์.
เพิ่มวัตถุไอเท็มบนข้อต่อที่เลือกและคลิก Skin > Bind Skin เพื่อเปิดหน้าต่างตัวเลือก ในตัวเลือก ให้ตั้งค่า Bind to เป็น Selected Joints.
- เมื่อทำการ bindskin ให้รวม lowerArm(Leg)Twist และ lowerArm(Leg)Twist_scale เพื่อให้แน่ใจว่าส่วนขาและข้อมือจะเปลี่ยนรูปได้อย่างราบรื่น.
👍 สิ่งสำคัญคือต้องปรับปรุงประสิทธิภาพการทำงานโดยการเลือกเฉพาะข้อต่อที่คุณต้องการสำหรับกระบวนการปัจจุบันแทนที่จะเลือกทั้งหมด.
👍 หาก baseBody ถูกเพิ่มเข้าไปในเสื้อผ้าเนื่องจากรูปร่างของร่างกาย น้ำหนักที่ปลายของร่างกายควรเท่ากับน้ำหนักของหน้ากาก.
คัดลอกค่าน้ำหนักในหน้ากากและวางลงบนค่าน้ำหนักของวัตถุเสื้อผ้า (pelvis, lowerArmTwist_L_scale, lowerArmTwist_R_scale, lowerLegTwist_L_scale, และ lowerLegTwist_R_scale)
- เมื่อคุณคัดลอกค่าน้ำหนัก ให้ตั้งค่า TransZ ของ creatorBaseSet joint และ rigging joints เป็น 0.001 ก่อนที่คุณจะคัดลอกค่าน้ำหนัก
ย้ายข้อต่อทีละตัวและแก้ไขส่วนที่พัง
- แก้ไขค่าสเกลของข้อต่อและตรวจสอบว่ามีปัญหาในการเปลี่ยนรูปหรือไม่
เมื่อกระบวนการน้ำหนักเสร็จสิ้น ให้ตั้งค่าการหมุนของข้อต่อทั้งหมดเป็น 0 เพื่อให้ตัวละครอยู่ในท่า T
ทำกระบวนการ unBindSkin สำหรับหน้ากาก (mask)
เลือกวัตถุเสื้อผ้า ข้อต่อ (สะโพก) และหน้ากาก (mask) จากนั้นคลิก Export Selection เพื่อบันทึกเป็นไฟล์ .fbx
❗️ caution หากท่าทางของตัวละครพังทลาย คุณต้องทำกระบวนการน้ำหนักใหม่อีกครั้ง
❗️ caution คุณควรตรวจสอบว่าส่วนที่เชื่อมต่อกับ baseBody เคลื่อนไหวตามปกติหรือไม่ นอกจากนี้ควรระวังไม่ให้ตาข่ายภายในออกมา
❗️ caution ก่อนขั้นตอนถัดไป ให้ใส่คีย์แอนิเมชันใน Unity และตรวจสอบว่าไม่มีปัญหาใด ๆ