การสร้างไอเทม 3 มิติ - BLENDER

การติดตั้งเพลา

17min

ข้อพิจารณาความเข้ากันได้ของ Blender

โครงกระดูก ZEPETO ถูกตั้งค่าใน Maya และใช้การจัดแนวข้อต่อเริ่มต้นของ Maya ใน Maya โซ่ข้อต่อสามารถจัดแนวกับแกนใดก็ได้ ในขณะที่ใน Blender กระดูกจะชี้ไปตามแกน Y เท่านั้น แม้ว่ามันอาจจะดูแปลก แต่เพื่อความเข้ากันได้กับอวาตาร์ ZEPETO สิ่งสำคัญคือต้องไม่เปลี่ยนการจัดแนวกระดูกของกระดูกเริ่มต้น

Document image


Blender ไม่รองรับการผูกตาข่ายกับโครงกระดูกที่อยู่ในท่าที่ไม่ใช่ท่าพักของโครงกระดูก เมื่อผูกน้ำหนักกับโครงกระดูก ให้ใช้โครงกระดูกที่ถูกนำไปใช้ในท่าพักที่ต้องการในโหมดท่าหรือโครงกระดูกสำเนาที่ตั้งค่าเป็นท่า A เป็นท่าพัก

การจัดการ Rigging คืออะไร?

การจัดการ Rigging คือกระบวนการในการนำข้อมูลมาใช้เพื่อทำให้ไอเท็มเคลื่อนไหวไปพร้อมกับอวาตาร์ ZEPETO โดยไม่มีการจัดการ Rigging ไอเท็มจะไม่เคลื่อนไหวไปพร้อมกับอวาตาร์ในแอป ผ่านกระบวนการจัดการ Rigging เราจะบอกไอเท็มของเราว่าจะติดตามโครงกระดูกของอวาตาร์อย่างไร ในเชิงเทคนิค: ในแอปพลิเคชัน 3D รูปทรงเรขาคณิต 3D ของตัวละครมักถูกควบคุมโดยข้อต่อหรือกระดูก ข้อต่อหรือกระดูกเหล่านี้เป็นวัตถุ 3D พิเศษที่ไม่ปรากฏในการเรนเดอร์ที่ตั้งกฎเกณฑ์ว่าตัวละครจะเคลื่อนไหวอย่างไร มักทำหน้าที่เป็นจุดหมุน การจัดการ Rigging คือกระบวนการบันทึกข้อมูลที่บอกให้จุดยอดของตาข่ายติดตามข้อต่อหรือกระดูกที่กำหนดอย่างใกล้ชิดเพียงใด ใน Blender ข้อมูลประเภทนี้เรียกว่า "กลุ่มจุดยอด" น้ำหนักสามารถกำหนดเป็นตัวเลขหรือ "ทาสี" ลงบนโมเดลได้ เนื่องจากการทาสีอิทธิพลเสมือนจริงเข้าถึงได้ง่ายกว่าการกำหนดตัวเลขทศนิยมให้กับจุดยอดแต่ละจุด เราจะมุ่งเน้นไปที่วิธีการทาสีน้ำหนักนี้เพื่อประหยัดเวลาและความสบายใจ ข้อต่อและกระดูกมีวัตถุประสงค์การใช้งานที่คล้ายกันในซอฟต์แวร์ 3D โดยมีความแตกต่างเล็กน้อยที่เกี่ยวข้องกับคำศัพท์ ข้อต่อแสดงถึงจุดเดียวในพื้นที่ 3D โดยไม่มีทิศทางที่ซอฟต์แวร์กำหนด Maya ใช้ข้อต่อและมักจะจัดแนวข้อต่อโดยมีแกน X ชี้ไปที่กระดูกถัดไปในสายโซ่ กระดูกยังแสดงถึงจุดเดียวในพื้นที่ แต่มีทิศทางที่ซอฟต์แวร์คาดหวังให้ตัวละครอื่นติดตาม Blender ใช้กระดูก โดยมีแกน Y ออกแบบให้ชี้ไปที่กระดูกถัดไปในสายโซ่ ความแตกต่างนี้ระหว่างกระดูกและข้อต่อสร้างปัญหาบางอย่างในการจัดการ Rig ใน Blender ที่เราต้องหาทางแก้ไข

ข้อกำหนดในการจัดการ Rigging

  • ต้องมีการรวมกระดูก "hips" และ "hips_scale"
  • โดยทั่วไป พยายามป้องกันไม่ให้หน้ากากทะลุผ่านไอเท็มของคุณขณะทาสีน้ำหนัก
  • ตรวจสอบให้แน่ใจว่าร่างกายและไอเท็มไม่ยุบตัวเองเมื่อเคลื่อนย้ายโครงกระดูก
  • อิทธิพลน้ำหนักผิวสูงสุดถูกกำหนดไว้ที่ 4
    • เหล่านี้เป็นค่าเริ่มต้นของ Blender แต่หากต้องการตั้งค่าอิทธิพลน้ำหนักด้วยตนเอง ให้เข้าสู่โหมดทาสีน้ำหนักสำหรับตาข่ายไอเท็ม ในเมนูน้ำหนักในมุมมอง 3D ให้เลือก “จำกัดทั้งหมด” ขยายเมนูที่ปรากฏที่มุมล่างซ้ายของมุมมองและตรวจสอบให้แน่ใจว่าค่าที่ “จำกัด” ถูกตั้งไว้ที่ 4

โดยทั่วไป ชุดเดรสจะใช้กระดูกของส่วนบนและส่วนล่างของโครงสร้าง ในขณะที่รายการอื่นๆ มีการเลือกที่จำกัดมากขึ้น วัตถุหน้ากากที่มาพร้อมกับ Creator Base Set มีน้ำหนักจากอวาตาร์ ZEPETO การใช้น้ำหนักจากวัตถุหน้ากากเป็นพื้นฐานสำหรับการถ่วงน้ำหนักรายการเป็นประโยชน์ ในการถ่ายโอนน้ำหนักหน้ากากไปยังน้ำหนักของรายการ ให้ใช้ฟังก์ชันการถ่ายโอนน้ำหนักของ Blender

กระบวนการ

ใช้เนื้อหาชุดฐานของผู้สร้าง

ใช้วัตถุหน้ากากและโครงกระดูกที่รวมอยู่ในไฟล์ creatorBaseSet_zepeto.fbx วัตถุเหล่านี้มีชุดชื่อวัตถุ ชื่อกระดูก และการวางแนวกระดูกที่กำหนดไว้ซึ่ง ZEPETO studio จะมองหาเพื่อให้รายการทำงานในแอป สิ่งสำคัญคือต้องรักษาชื่อให้คล้ายกันเพื่อไม่ให้กระบวนการแปลงใน Unity สับสน

ท่าพักที่ไม่ใช่ท่า T

Blender ใช้ข้อมูลการถ่วงน้ำหนักเริ่มต้นกับ “ท่าพัก” ของโครงกระดูก ซึ่งหมายความว่าหากคุณสร้างแบบจำลองรายการในท่า A และพยายามใช้กับโครงกระดูกท่าพัก T รายการอาจเลื่อนออกจากตำแหน่งที่ถูกต้องในกระบวนการผูกเริ่มต้น เพื่อหลีกเลี่ยงปัญหานี้ การผูกไอเท็มกับโครงกระดูกที่มีท่าพักตั้งค่าเป็นท่าที่สร้างแบบจำลองของไอเท็มนั้นมีประโยชน์ วิธีที่มีประโยชน์ในการมีโครงกระดูกท่าพักที่ไม่ใช่ท่า T คือการสร้างสำเนาของโครงกระดูกและหน้ากากต้นฉบับ ใช้ท่าพักกับโครงกระดูกที่ทำซ้ำใหม่ และการจัดเสื้อผ้าตามท่าพัก เพื่อวัตถุประสงค์ในการจัดระเบียบ หน้ากากและโครงสร้างที่ซ้ำกันควรถูกเปลี่ยนชื่อตามท่าใหม่ การใส่โครงกระดูกและชุดหน้ากากแต่ละชุดในคอลเลกชันของตัวเองยังช่วยในการจัดระเบียบอีกด้วย การใช้ท่าพักกับโครงกระดูกค่อนข้างง่าย:

  1. จัดท่าโครงกระดูกในท่าที่คุณต้องการ
  2. เลือกองค์ประกอบหน้ากากที่แนบมา และค้นหาตัวปรับแต่งโครงกระดูกในแท็บคุณสมบัติตัวปรับแต่ง ก. ในเมนูแบบเลื่อนลงในตัวปรับแต่งโครงกระดูก เลือก “ใช้”
Document image


3. เลือกองค์ประกอบ armature และไปที่ Pose Mode

  • เลือกกระดูกทั้งหมดและไปที่เมนู Pose ที่ด้านบนของ viewport
  • ไปที่ “Apply,” แล้วเลือก “Apply Pose as Rest Pose”
Document image




4. กลับไปที่ object mode และเลือกองค์ประกอบ mask

  • ในแท็บ Modifiers ให้เพิ่ม Armature modifier ใหม่
Document image

  • ในจุดเป้าหมายของวัตถุ ค้นหาและเลือกโครงกระดูกที่คุณตั้งท่าไว้
Document image


ตอนนี้โครงกระดูกมีท่าพักใหม่ที่ถูกนำไปใช้และองค์ประกอบหน้ากากจะตามท่าพักใหม่นี้

📘 ZEPETO มีการหมุนเฉพาะสำหรับท่า A ที่ปรากฏบนไอเท็มแม่แบบ ZEPETO ที่มีองค์ประกอบด้านบน

ท่า A ของ ZEPETO มีการหมุนข้ามกระดูกทั้งหมด 4 ชิ้น:

  • กระดูกไหล่ “shoulder_L” และ “shoulder_R” ถูกหมุนโดย -7.5 องศาบนแกน Z
  • กระดูกแขน “upperArm_L” และ “upperArm_R”

มันอาจจะง่ายขึ้นในการใช้การหมุนบนกระดูกโดยใช้การหมุน Euler XYZ แทนการตั้งค่า quaternion เริ่มต้นของ Blender เปลี่ยนแกนการหมุนเหล่านี้ในแท็บการตั้งค่ากระดูกเพื่อความสะดวกในการใช้งาน

Document image

Document image


เวิร์กโฟลว์ทั่วไป

ใช้วัตถุหน้ากากและโครงกระดูกที่รวมอยู่ในไฟล์ creatorBaseSet_zepeto.fbx วัตถุเหล่านี้มีชุดชื่อวัตถุ ชื่อกระดูก และการวางแนวกระดูกที่กำหนดไว้ซึ่ง ZEPETO studio จะมองหาเพื่อทำให้ไอเท็มทำงานในแอป เป็นสิ่งสำคัญที่จะต้องรักษาชื่อให้คล้ายกันเพื่อไม่ให้กระบวนการแปลงใน Unity สับสนในภายหลัง

  1. ตรวจสอบให้แน่ใจว่าโครงกระดูกพอดีกับไอเท็มและตั้งอยู่ในท่าพักของมัน
  2. หากเสื้อผ้าถูกออกแบบให้พอดีกับท่า T โครงกระดูกฐานของผู้สร้างที่ไม่ได้แก้ไขจะทำงานโดยค่าเริ่มต้น ก. หากเสื้อผ้าอยู่ในท่า A ของ ZEPETO คุณอาจต้องตั้งโครงกระดูกให้พอดีกับท่า A
  3. เลือกไอเท็มเครื่องแต่งกาย จากนั้นเลือกโครงกระดูก
  4. ใช้พาเรนต์กับโครงกระดูกด้วยน้ำหนักที่ว่างเปล่า
Document image


5. โอนน้ำหนักของหน้ากากไปยังไอเท็ม

  • เลือกหน้ากาก จากนั้นเลือกไอเท็ม
  • ย้ายไปที่โหมดการทาสีน้ำหนัก
  • ใช้การดำเนินการ "โอนน้ำหนัก" ใน Weights > Transfer Weights
  • ตรวจสอบให้แน่ใจว่าการดำเนินการโอนน้ำหนักทำ "ตามชื่อ"
Document image

Document image


6. หมุนข้อต่อเพื่อตรวจสอบว่าน้ำหนักบนไอเท็มถูกตั้งค่าอย่างถูกต้องหรือไม่

  • แก้ไขน้ำหนักข้อต่อโดยใช้เครื่องมือแปรงน้ำหนัก ตรวจสอบให้น้ำหนักของตัวเปลี่ยนรูปถูกทำให้เป็นปกติ
Document image

  1. เมื่อการแก้ไขน้ำหนักกระดูกเสร็จสิ้น ให้รีเซ็ตการแปลงของกระดูกทั้งหมด

🚧 อวาตาร์ ZEPETO ใช้กระดูกสเกลเพื่อปรับอวาตาร์พื้นฐานให้เข้ากับขนาดร่างกายหลายขนาด

เมื่อโครงกระดูกมีทั้งกระดูกสเกลและกระดูกที่ไม่ใช่สเกล ให้ใส่น้ำหนักไปที่กระดูกสเกลและปล่อยให้กระดูกที่ไม่ใช่สเกลไม่มีน้ำหนัก

ระบบสมมาตรและการตั้งชื่อกระดูกของ Blender ป้องกันไม่ให้ริกที่ให้มามีกลุ่มเวอร์เท็กซ์ที่สะท้อนอย่างง่ายโดยใช้เครื่องมือสะท้อนน้ำหนักในตัว ความสมมาตรของน้ำหนักต้องถูกนำไปใช้ด้วยตนเองหรือสะท้อนผ่านแอดออน

กระโปรง

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

การทำความสะอาดการตั้งค่า

จากท่า A ไปท่า T

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

  1. เลือกโครงกระดูกท่า A ในโหมดท่า
  2. ย้ายกระดูกโครงกระดูกกลับไปที่ท่า T a. สำหรับท่า A ของ ZEPETO สามารถทำได้ง่ายโดยการหมุนกระดูกไหล่ซ้ายและขวา 7.5 องศาบนแกน Z และหมุนกระดูกแขนบนซ้ายและขวา 40 องศาบนแกน Z
  3. เลือกไอเท็มในโหมดวัตถุ
  4. ในแท็บคุณสมบัติของตัวปรับแต่ง ค้นหาตัวปรับแต่งโครงกระดูก
  • คลิกเมนูแบบเลื่อนลงและกดใช้
Document image


5. เพิ่มตัวปรับแต่งโครงกระดูกให้กับไอเท็ม

  • ชี้วัตถุโครงกระดูกไปที่โครงกระดูกท่า T ของ creatorBaseSet ดั้งเดิม
Document image


6. แก้ไขตาข่ายของรายการหรือแก้ไขน้ำหนักของรายการสำหรับข้อผิดพลาดที่ปรากฏจากการถ่ายโอนน้ำหนัก

เนื่องจากวิธีการทำงานของการเปลี่ยนรูป ตาข่ายที่ย้ายกลับไปที่ท่า T-pose มีแนวโน้มที่จะสูญเสียปริมาตรบางส่วนในบริเวณไหล่/แขนบนเมื่อกลับไปที่ท่า T-pose การแก้ไขตาข่ายเพื่อเพิ่มปริมาตรกลับเป็นการแก้ไขที่ค่อนข้างง่าย ใช้หน้ากาก T-pose เป็นข้อมูลอ้างอิงสำหรับพื้นที่ขอบเขตตาข่าย

การลบกระดูก

เมื่อถ่วงน้ำหนักทั้งหมดเสร็จสิ้นและพร้อมที่จะส่งออก ให้ลบชุดกระดูกที่ไม่มีอิทธิพลต่อรายการ ZEPETO studio จำกัดจำนวนกระดูกที่สามารถอัปโหลดรายการได้ถึง 100 ชิ้น การลบกระดูกที่ไม่ได้ใช้จะป้องกันปัญหาจำนวนกระดูกนี้ เนื่องจากตัวส่งออกของ Blender จะส่งออกกระดูกทุกชิ้นในโครงกระดูก แม้ว่าจะไม่มีกลุ่มเวอร์เท็กซ์หรือน้ำหนักก็ตาม หากรายการต้องการกระดูกเพิ่มเติมจำนวนมาก อาจจำเป็นต้องลบกระดูกที่ไม่ใช่สเกลเพื่อลดจำนวนกระดูก หากจำเป็น ให้ลบกระดูกที่ไม่ใช่สเกลที่มีกระดูกสเกลที่สอดคล้องกัน ยกเว้นหากเป็นกระดูกบิดหรือกระดูกสะโพก รายการจะเสียหายหากไม่มีกระดูกสะโพก

Document image