การเปลี่ยนส่วนของร่างกายและการแก้ไขปัญหาเขตแดนของตาข่าย/หน้ากาก
ร่างกายพื้นฐานของ ZEPETO เริ่มต้นมีรูปร่างที่เป็นกลางถึงชาย สำหรับลำตัวผู้หญิงที่ชัดเจนยิ่งขึ้น ควรใช้ส่วนประกอบตาข่ายที่แทนที่ร่างกายพื้นฐาน สำหรับตัวอย่างหรือจุดเริ่มต้น ดาวน์โหลดไฟล์ Female_Torso.fbx (ดาวน์โหลด) ไฟล์ ไฟล์นี้สามารถโหลดเข้า Blender และจะมีวัตถุตาข่ายสองชิ้น:
- Female_Torso_V
- guide_mannequin
![1831 1831](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-_zfQD2V-TSwsM9OTBkc_2-20240904-102336.jpg?format=webp)
ทั้งวัตถุ Female_Torso_V และวัตถุ guide_mannequin ถูกทำแผนที่ UV ตามข้อกำหนดเดียวกันกับหน้ากาก วัตถุ Female_Torso_V ยังมีวัสดุที่ชื่อว่า “skin” การตั้งชื่อวัสดุนี้จำเป็นเพื่อบอกแอปให้ใช้พื้นผิวผิวจากอวาตาร์
![1806 1806](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-Ie0PgaXONtkBWj0SDbbqb-20240904-102336.jpg?format=webp)
ลำตัวนี้ถูกวางในท่า A-Pose ที่ผ่อนคลาย และจะต้องทำงานเพิ่มเติมเพื่อให้เข้ากับท่า T-pose มาตรฐาน ดู Rigging Guide สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการแปลงจาก A เป็น T-pose ในการรับโครงกระดูกเพื่อทำการ rig และทำงาน ให้นำเข้าไฟล์ creator_base_set เข้าฉาก วางโครงกระดูกของ creator base set ในท่า A-Pose มาตรฐาน สังเกตว่าบริเวณสะโพก แขน และคอของวัตถุ Female_Torso_V ทั้งหมดจะสิ้นสุดในลูปที่ตรงกับหน้ากากเริ่มต้น นี่คือการทำให้แน่ใจว่าไม่มีการแตกหักทางสายตาในร่างกายพื้นฐานเมื่อจับคู่กับไอเท็มอื่น ๆ ลำตัวนี้สามารถใช้ในการสร้างไอเท็มท่อนบนให้เข้ากับรูปทรงผู้หญิง หรือเพื่อให้ส่วนของลำตัวที่พร้อมใช้งานสำหรับผิวที่เปิดเผยสำหรับไอเท็มท่อนบน ลำตัวผู้หญิงไม่มีน้ำหนักรวมอยู่ด้วย สำหรับการวาดน้ำหนัก ใช้การถ่ายโอนน้ำหนักจากวัตถุหน้ากากที่ถูกวาง/มีน้ำหนักอย่างเหมาะสมจาก Creator Base Set นี่ควรให้ลำตัวมีน้ำหนักที่กระจายอย่างเหมาะสม เมื่อรวมส่วนของลำตัวในวัตถุท่อนบน ให้แน่ใจว่าลำตัวและวัตถุท่อนบนถูกรวมเป็นวัตถุเดียวกัน สามารถทำได้ง่ายโดยการเลือกตาข่ายลำตัวและท่อนบนแล้วไปที่ Object > Join
![1862 1862](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-U6tFIBCfpTVe2DeWO_N4J-20240904-102336.jpg?format=webp)
การตั้งค่าน้ำหนักสำหรับแต่ละส่วนประกอบของรายการจะถูกเก็บรักษาต่อเมชเมื่อรวมวัตถุเมชเข้าด้วยกัน ดังนั้นให้แน่ใจว่าได้ผูกทั้งวัตถุส่วนบนและลำตัวก่อนที่จะรวมเข้าด้วยกันเพื่อให้ง่ายขึ้นในชีวิตของคุณ เป็นส่วนหนึ่งของกระบวนการเสร็จสิ้น ให้ลบพื้นที่ของเมชลำตัวที่ถูกปกคลุมโดยส่วนบนและจะไม่ถูกมองเห็น มันจะช่วยป้องกันปัญหาการตัดกันระหว่างวัตถุส่วนบนและลำตัว
คุณสามารถปรับแต่งลำตัวของคุณเองเพื่อใช้ในแอปได้เช่นกัน! หากสร้างหรือปรับแต่งลำตัวของคุณเอง เมชต้องปฏิบัติตามข้อกำหนดบางประการ
- เมชลำตัวต้องสอดคล้องกับวัตถุหน้ากากฐานที่สะโพก คอ และแขน
- เมชลำตัวควรปฏิบัติตามการจัดวาง UV ที่คล้ายกับหน้ากาก
- เมชลำตัวควรมีวัสดุที่กำหนดให้ชื่อว่า “ผิวหนัง”
สำหรับการปิดบัง องค์ประกอบลำตัวที่กำหนดเองจะมาแทนที่ลำตัวของร่างกายอวาตาร์ฐาน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับกระบวนการปิดบังทั่วไป โปรดดูที่ Masking Guide. ทาสีดำในพื้นที่ของลำตัวบนหน้ากากที่ถูกปกคลุมโดยลำตัวที่กำหนดเองจนถึงจุดสิ้นสุดของลำตัวที่กำหนดเอง โดยอุดมคติแล้วจะซ่อนลำตัวฐานและอนุญาตให้แสดงลำตัวที่กำหนดเองโดยไม่มีข้อผิดพลาด
![1859 1859](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-geZqKYFBlwOCTKkC8XGw9-20240904-102336.jpg?format=webp)
ทำการเตรียมการที่จำเป็นเพื่อส่งออกไปยัง Unity ตามที่แสดงใน การส่งออกไปยัง Unity ส่วนของคู่มือ ส่งออกไอเท็มลำตัว, โครงกระดูก, และหน้ากากไปยัง fbx เพื่อทดสอบใน Unity
![1802 1802](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-huJHVEB3yvAc3n9bYSZ0P-20240904-102336.jpg?format=webp)
นำเข้าไอเท็มและทดสอบในโครงการ ZEPETO Studio Unity สำหรับการเปลี่ยนลำตัว ไอเท็มของคุณจะเป็นเสื้อหรือชุดเดรส/สูท
- ตรวจสอบว่ามีการแตกหักที่ชัดเจนในตาข่ายระหว่างร่างกายอวาตาร์พื้นฐานและลำตัวที่กำหนดเองของคุณหรือไม่ หากพบปัญหาใด ๆ ให้กลับไปที่ Blender เพื่อแก้ไขปัญหา
- ตรวจสอบอวาตาร์ด้วยท่าทางที่เคลื่อนไหวเพื่อให้แน่ใจว่าน้ำหนักถูกกระจายอย่างเหมาะสม โดยเฉพาะตามขอบของลำตัว หากพบปัญหาใด ๆ ที่นี่ ให้กลับไปที่ Blender และแก้ไขปัญหาการทาสีน้ำหนัก
- ตรวจสอบเส้นตะเข็บระหว่างลำตัวที่กำหนดเองและอวาตาร์พื้นฐานเพื่อดูว่ามีปัญหาความต่อเนื่องของนอร์มัลระหว่างลำตัวที่กำหนดเองและอวาตาร์พื้นฐานหรือไม่ หากมีปัญหาที่นี่ จะต้องเปลี่ยนใน Blender
หากไม่มีปัญหาใน Unity ให้ส่งออก prefab ไปยังไฟล์ .zepeto อัปโหลดและตรวจสอบไอเท็มใน ZEPETO Studio หากไม่มีปัญหาเพิ่มเติม คุณสามารถส่งไอเท็มเพื่อการตรวจสอบ
หากตาข่ายถูกจัดแนวอย่างถูกต้อง แต่มีเส้นปรากฏที่ขอบของส่วนร่างกายที่กำหนดเองและร่างกายอวาตาร์พื้นฐาน โดยการแตกหักดูเหมือนจะเป็นการเปลี่ยนแปลงของแสง Normals ของส่วนร่างกายที่กำหนดเองอาจไม่สอดคล้องกับร่างกายอวาตาร์พื้นฐาน
![1212 1212](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-FWZeTT5pKWL3TtDwq6eYG-20240904-102336.jpg?format=webp)
คุณสามารถตรวจสอบการจัดแนวของ vertex normal ได้โดยการเลือกไอเท็มที่มีส่วนร่างกายที่กำหนดเองและวัตถุหน้ากาก ไปที่โหมดแก้ไข และในเมนู Viewport Overlays ที่มุมขวาบน ให้เลือกปุ่ม “แสดง Normals ที่แยกออกมา” เส้นสีชมพูจะปรากฏจากตาข่ายที่แต่ละ vertex เส้นเหล่านี้แสดงถึงทิศทางสัมผัสของ vertex normals
![1351 1351](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-j7uib_ZppY6ifGySfbmuM-20240904-102336.jpg?format=webp)
หากเส้นสีชมพูไม่เรียงกันที่ขอบ เราอาจต้องถ่ายโอนข้อมูล normals จากตาข่ายไปยังส่วนร่างกายที่กำหนดเอง ในการถ่ายโอนข้อมูล normals จากตาข่ายหน้ากากไปยังตาข่ายไอเท็ม ให้เริ่มต้นโดยการเลือกไอเท็มและเพิ่มตัวปรับแต่ง “การถ่ายโอนข้อมูล” ไปยังวัตถุตาข่ายไอเท็ม
![1074 1074](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-V7BWgy9SqrJh1-LftWsG0-20240904-102336.jpg?format=webp)
เราต้องการถ่ายโอน “Custom Normals” ภายใต้ “Face Corner Data” เราต้องการเพิ่มหน้ากากเป็นวัตถุ “Source” เพื่อให้เราสามารถดึงข้อมูล normals จากหน้ากากได้
![BoundaryCorrection_Normals_DataTransferModifierSettings.jpg BoundaryCorrection_Normals_DataTransferModifierSettings.jpg](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-6O5GudC2rfiAruSbkghB8-20240904-102336.jpg?format=webp)
เพื่อจำกัดการถ่ายโอนไปยังข้อมูล normals ที่ขอบ เราจะต้องสร้างกลุ่ม vertex ใหม่สำหรับตัวปรับแต่งเพื่อกำหนดเป้าหมาย ในโหมดแก้ไขด้วยไอเท็มลำตัวที่กำหนดเอง ให้ไปที่แท็บ Object Data Properties และสร้างกลุ่ม vertex ใหม่ด้วยปุ่ม ‘+’ เพื่อวัตถุประสงค์ในการจัดระเบียบ ให้ตั้งชื่อกลุ่ม vertex นี้ว่า “Border Normals Target”
![606 606](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-FMBMqLEfxiF3pxaKUrGp6-20240904-102336.jpg?format=webp)
เมื่อยกเลิกการเลือกองค์ประกอบตาข่ายอื่นทั้งหมดแล้ว ให้เลือกขอบขอบลูปและใช้ปุ่ม “Assign” เพื่อกำหนดส่วนประกอบตาข่ายที่เลือกไปยังกลุ่ม vertex
![1856 1856](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-fClCJJOKOapPM2NadN-8C-20240904-102336.jpg?format=webp)
กลับไปที่แท็บตัวปรับแต่ง ในตัวปรับแต่งการถ่ายโอนข้อมูล ค้นหาและเลือกกลุ่มจุดยอดเป้าหมายของขอบในกล่องกลุ่มจุดยอด ตอนนี้ พื้นที่ขอบของตาข่ายมีการคัดลอกปกติจากปกติของตาข่ายหน้ากาก
![609 609](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-xrwlWMl_8hdp3K4tw7sDI-20240904-102336.jpg?format=webp)
ใช้ปกติกับตาข่ายโดยใช้ตัวปรับแต่ง
![604 604](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-4jrgihvcSDQz_TNbD98J--20240904-102337.jpg?format=webp)
ตรวจสอบอีกครั้งว่าปกติถูกจัดแนวอย่างถูกต้องกับการซ้อนทับปกติหรือไม่ หากทุกอย่างทำงาน ให้ดำเนินการส่งออกและทดสอบรายการของคุณใน Unity
หากตาข่ายถูกจัดเรียงอย่างถูกต้อง แต่มีการเปลี่ยนแปลงของโทนสีพื้นฐานที่ปรากฏบนขอบระหว่างส่วนของร่างกายที่กำหนดเองและร่างกายของอวาตาร์พื้นฐาน แผนที่ UV ของส่วนของร่างกายที่กำหนดเองและแผนที่ UV ของหน้ากากอาจไม่ตรงกัน
![919 919](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-fwc-Q8vo3GBYEnd6lwpJE-20240904-102337.jpg?format=webp)
การใช้วัสดุผิวหนังต้องการให้ UV ของส่วนของร่างกายที่กำหนดเองตรงกับ UV ของหน้ากาก เราสามารถถ่ายโอนข้อมูล UV จากหน้ากากไปยังลำตัวที่กำหนดเองโดยใช้เครื่องมือ Transfer Mesh Data ใน Blender เริ่มต้นด้วยการแยกเรขาคณิตของส่วนของร่างกายที่กำหนดเองออกจากตาข่ายของไอเท็ม
![1829 1829](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-4mYJZw-Ep4jnykxEMm8x2-20240904-102337.jpg?format=webp)
ในโหมดวัตถุ เลือกส่วนของร่างกายที่กำหนดเอง จากนั้นกด Shift/เพิ่มการเลือกหน้ากาก เพื่อให้หน้ากากเป็นการเลือกที่ใช้งานอยู่ ไปที่เมนูวัตถุ > ลิงก์/ถ่ายโอนข้อมูล > ถ่ายโอนข้อมูลตาข่าย และเลือก “UV” ในป๊อปอัปที่ปรากฏขึ้น
- ตรวจสอบให้แน่ใจว่า “ประเภทข้อมูล” ถูกตั้งค่าเป็น “UVs”
- เปลี่ยน “การแมปมุมหน้า” เป็น “มุมที่ใกล้ที่สุดและการจับคู่ที่ดีที่สุด”
- เปลี่ยน “การแมปหน้า” เป็น “การจับคู่ที่ดีที่สุด”
- การตั้งค่าอื่นๆ ทั้งหมดสามารถคงค่าเริ่มต้นไว้ได้
![1863 1863](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-QIr4l4sMfbw2M8HTcK_OH-20240904-102337.jpg?format=webp)
![1317 1317](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-cAPGSv7vo0fWjTL3zjWDY-20240904-102337.jpg?format=webp)
ข้อมูล UV map บนชิ้นส่วนร่างกายที่กำหนดเองควรมีรูปแบบที่คล้ายกับหน้ากาก ตรวจสอบ UV map ของชิ้นส่วนร่างกายที่กำหนดเองเพื่อยืนยันว่ารูปแบบของมันคล้ายกับหน้ากาก
![1667 1667](https://images.archbee.com/fCt3n1oCa8rgNJ8fw9I2N-f9RMuZwGw7amqIUY5saXk-20240904-102337.jpg?format=webp)
หากทุกอย่างตรวจสอบแล้วถูกต้อง ให้รวมชิ้นส่วนร่างกายที่กำหนดเองกลับเข้ากับไอเท็มและดำเนินการส่งออกและทดสอบไอเท็มใน Unity
หากชิ้นส่วนร่างกายที่กำหนดเองไม่เคลื่อนไหวตามที่คาดหวังของร่างกายอวาตาร์พื้นฐาน อาจมีข้อผิดพลาดในการกระจายน้ำหนักของชิ้นส่วนร่างกายที่กำหนดเอง เพื่อแก้ปัญหานี้ ให้ถ่ายโอนน้ำหนักจากแหล่งที่ดี เช่น หน้ากาก ไปยังชิ้นส่วนร่างกายที่กำหนดเอง เริ่มต้นด้วยการแยกเรขาคณิตของชิ้นส่วนร่างกายที่กำหนดเองออกจากตาข่ายไอเท็ม เลือกหน้ากาก จากนั้นกด Shift/เพิ่มการเลือกตาข่ายชิ้นส่วนร่างกายที่กำหนดเอง เข้าไปในโหมด Weight Paint ไปที่ Weights > Transfer Weights ในตัวเลือกที่ขยายออกมา ให้แน่ใจว่า “Source Layers Selected” ถูกตั้งค่าเป็น “By Name” สำหรับ “Destination Layers” สามารถเลือกตัวเลือก “All Layers” ได้หากคุณต้องการถ่ายโอนน้ำหนักทั้งหมด เลือกกลุ่มเวอร์เท็กซ์เฉพาะหากคุณต้องการถ่ายโอนน้ำหนักเฉพาะ เช่น น้ำหนักรอบๆ เส้นขอบตาข่ายของชิ้นส่วนร่างกายที่กำหนดเอง ทดสอบและแก้ไขข้อผิดพลาดในการถ่วงน้ำหนัก จากนั้นรวมชิ้นส่วนร่างกายที่กำหนดเองกลับเข้ากับไอเท็ม ส่งออกและทดสอบไอเท็มใน Unity