CubePart: เครื่องสร้าง 3 มิติแบบควบคุมส่วนด้วยคำศัพท์เปิด
การสร้างสินทรัพย์ที่พร้อมใช้งานในเกมอย่างมีประสิทธิภาพ

แบบจำลองการสร้างแบบ 3 มิติสมัยใหม่สามารถสร้างวัตถุ 3 มิติที่สวยงามและซับซ้อนจากข้อความได้ แต่สำหรับนักพัฒนาเกม แบบจำลอง 3 มิติแบบรวมเป็นหนึ่งเดียวไม่มีประโยชน์ ตัวอย่างเช่น รถยนต์จำเป็นต้องขับได้ ล้อต้องหมุนแยกกัน ประตูต้องเปิดได้ และไฟหน้าต้องเปิดได้
ปัจจุบัน ศิลปิน 3D ต้องตัดโมเดลที่สร้างขึ้นด้วยตนเองและตั้งชื่อชิ้นส่วน—กระบวนการที่ไม่สามารถขยายขนาดได้ดี ความก้าวหน้าของเราคือ CubePart: กรอบการทำงาน AI เชิงสร้างสรรค์ตัวแรกที่ช่วยให้การสร้างตาข่าย 3D ที่สามารถควบคุมชิ้นส่วนและใช้คำศัพท์เปิดได้ CubePart ผลิตชุดตาข่ายที่ประกอบกันเป็นชิ้นที่แตกต่าง มีฟังก์ชันการทำงาน และมีการติดป้ายกำกับอย่างถูกต้อง ซึ่งตรงกับความต้องการในการเขียนโปรแกรมของนักพัฒนาได้ทันที
CubePart ขยายแนวคิดของโครงสร้างคงที่ที่เราได้แนะนำใน 4D Generation เพื่อเพิ่มศักยภาพให้ผู้สร้างสามารถกำหนดรายการชิ้นส่วนที่วัตถุควรถูกแยกออกเป็นได้ ชุดของเมชที่สร้างโดย CubePart สามารถนำไปใช้ในเอนจินเกมได้ทันที และสามารถควบคุมได้ด้วยแอนิเมชัน ฟิสิกส์ และสคริปต์เกมเพลย์โดยไม่ต้องทำความสะอาดด้วยตนเอง เราได้เผยแพร่ผลงานวิจัย CubePart ของเราบน arXiv และอัปเดตคลัง Cube แบบโอเพนซอร์สของเราเพื่อรองรับการสร้างที่สามารถควบคุมได้เป็นชิ้นส่วน ในปลายปีนี้ เราจะนำเสนอผลการวิจัยของเราที่งาน SIGGRAPH
สคีมา: สัญญา API สำหรับสินทรัพย์ 3 มิติแบบโต้ตอบ
ใน Roblox พฤติกรรมเชิงโต้ตอบถูกนำมาใช้ในสคริปต์ที่ทำงานบนส่วนต่างๆ ซึ่งเป็นลูกที่มีชื่อเฉพาะของสินทรัพย์ แม้แต่สินทรัพย์ที่คล้ายกันอาจต้องการส่วนที่แตกต่างกันโดยสิ้นเชิงขึ้นอยู่กับเกมหรือสถานการณ์ การจัดหมวดหมู่แบบตายตัวจะจำกัดความคิดสร้างสรรค์และฟังก์ชันการทำงาน ดังนั้น CubePart จึงเสนออินพุตสองแบบ:
- ข้อความคำอธิบายทั่วไปที่อธิบายลักษณะของวัตถุ: เช่น "รถแข่งธีมแมงกะพรุน"
- รายการส่วนประกอบที่จำเป็นซึ่งระบุไว้อย่างเฉพาะเจาะจงและเปิดกว้าง เรียกว่า สคีมา (schema): เช่น "ล้อหน้าซ้าย", "ล้อหน้าขวา", "ล้อหลังซ้าย", "ล้อหลังขวา", "ปืน", "ไฟหน้า", "ท่อไอเสีย", "ตัวถัง"
สคีมาคือสัญญา API ระหว่างสินทรัพย์และโค้ดเกมเพลย์ และ CubePart ช่วยให้ผู้สร้างสามารถสร้างสินทรัพย์ที่สอดคล้องกับสัญญาได้ การควบคุมด้วยคำศัพท์เปิดนี้ช่วยให้ CubePart สามารถจับความหลากหลายของสินทรัพย์และประสบการณ์ใน Roblox ได้
การผลิตในสองขั้นตอน
CubePart เป็นสถาปัตยกรรมแบบการแพร่กระจายสองขั้นตอนที่สร้างขึ้นบนการแทนรูปร่างแฝงของ VecSet
ในภาพประกอบด้านล่าง ผู้ใช้ป้อนข้อความสองข้อความ
- ข้อความตัวอย่างสำหรับระบบ: "รถลากที่มีลักษณะการ์ตูน"
- สคีมา: "ตัวรถ", "แชสซี", "ล้อ", "ไฟสัญญาณบนหลังคา", "ชุดลากจูง"
ขั้นตอนที่ 1 มีหน้าที่กำหนดรูปร่างพื้นฐานของวัตถุ (รถลากที่มีลักษณะการ์ตูน) ขั้นตอนนี้สร้างแฝงเดียวสำหรับวัตถุทั้งหมดโดยใช้สถาปัตยกรรม MMDiT พร้อมตัวเข้ารหัสข้อความ Qwen-VL ที่ฝึกฝนบนคู่ข้อมูลเมช-ข้อความประมาณ 4.7 ล้านคู่ นี่คือขั้นตอนที่กินข้อมูลมาก: การแปลงภาษาที่มีคำศัพท์เปิดกว้างให้เป็นรูปทรงเรขาคณิต 3 มิติเป็นส่วนที่ยากของการสร้าง 3 มิติ และต้องการคลังข้อมูลขนาดใหญ่และหลากหลายเพื่อให้ได้ผลลัพธ์ที่ดี เรายังปรับแต่งขั้นที่ 1 เพิ่มเติมให้มีความตระหนักถึงโครงสร้าง (schema-aware)



ชุดข้อมูลและกระบวนการ VLM ของเรา
เพื่อฝึกอบรม CubePart เราได้สร้างชุดข้อมูลที่มีมากกว่า 460,000 รายการ—ใหญ่กว่าชุดข้อมูลสาธารณะก่อนหน้านี้ถึง 11 เท่า1—และ 2.02 ล้านชิ้นส่วน แทนที่จะใช้การติดป้ายกำกับด้วยมือ เราได้สร้างกระบวนการอัตโนมัติโดยใช้โมเดลวิสัยทัศน์-ภาษา (VLMs)
ระบบประมวลผลสร้างภาพ (pipeline) แปลงโมเดล 3 มิติหลายพันแบบจากหลายมุมมองโดยใช้วิธีการจับคู่: ภาพที่มีพื้นผิว (สำหรับบริบทเชิงความหมาย) และภาพที่มีสีบางส่วน (สำหรับการติดตามขอบเขตที่แม่นยำ) ทั้งสองภาพถูกประทับด้วยเครื่องหมายที่มีหมายเลขเดียวกัน ทำให้ VLM มีที่จับที่สามารถระบุด้วยข้อความเพื่อใช้เหตุผลในพื้นที่ 3 มิติ และจัดกลุ่มและตั้งชื่อแต่ละส่วนได้
ต่างจากชุดข้อมูลที่เผยแพร่ก่อนหน้านี้ซึ่งทุกล้อของยานพาหนะถูกระบุเพียงว่า "ล้อ" ชุดข้อมูลของเราสอนให้ AI รู้จักการแยกแยะเชิงพื้นที่ (เช่น การแยก "ล้อหน้าซ้าย" จาก "ล้อหลังขวา") ความแม่นยำในการจับคู่นี้คือสิ่งที่เอนจิ้นเกมต้องการ
สิ่งที่ CubePart เปิดโอกาสและอนาคตที่กำลังจะมาถึง
CubePart ช่วยให้ผู้สร้างสามารถสร้างสินทรัพย์ที่ตรงกับโค้ดเกมเพลย์ของพวกเขาและมีความเข้ากันได้โดยตรงกับงานแอนิเมชัน ฟิสิกส์ และสคริปต์ที่มีอยู่ CubePart ยังสามารถแยกองค์ประกอบของเมชที่ศิลปินสร้างไว้แล้วออกเป็นสคีมาใหม่ ซึ่งมีประโยชน์สำหรับการอัปเกรดสินทรัพย์เก่า ไม่ใช่แค่การสร้างสินทรัพย์ใหม่เท่านั้น
ยังมีงานอีกมากที่ต้องทำ CubePart จัดการการแยกส่วนของวัตถุแข็งได้ แต่เรากำลังทำงานเกี่ยวกับน้ำหนักของจุดยอดที่มีผิวหุ้มสำหรับการบิดเบือนของตัวละครอินทรีย์ การให้ความสนใจข้ามส่วนช่วยลดการทับซ้อนได้อย่างมากแต่ไม่สามารถกำจัดได้ทั้งหมด การให้เหตุผลเชิงพื้นที่—"ด้านหน้าซ้าย" เทียบกับ "ด้านหลังขวา"—ยังคงมีพื้นที่ให้ปรับปรุงอีกมาก
เรามองว่าการสร้างแบบขับเคลื่อนด้วยสคีมาเป็นขั้นตอนที่ทำให้การสร้าง 3 มิติแบบอัตโนมัติมีประโยชน์บนแพลตฟอร์มที่ทุกสินทรัพย์มีส่วนร่วมในการจำลอง ในไม่ช้า เทคโนโลยีนี้จะพร้อมใช้งานสำหรับผู้สร้าง Roblox โดยตรงภายใน Roblox Studio



