Konten di situs ini telah diterjemahkan menggunakan kecerdasan buatan (AI) atau teknologi penerjemahan mesin, dan mungkin terdapat kesalahan.

Skip to content

CubePart: Generator 3D dengan Kosakata Terbuka dan Komponen yang Dapat Dikendalikan

Membangun Aset Game yang Siap Digunakan

SEO image for CubePart: An Open-Vocabulary Part-Controllable 3D Generator

Model generatif 3D modern dapat menghasilkan objek 3D yang indah dan kompleks dari prompt teks, tetapi bagi pengembang game, model 3D monolitik tidak berguna. Mobil, misalnya, harus dapat dikendarai. Roda harus berputar secara terpisah, pintu harus dapat dibuka, dan lampu depan harus dapat dinyalakan. 

Saat ini, seniman 3D harus memotong model yang dihasilkan secara manual dan memberi nama pada bagian-bagiannya—proses yang tidak efisien saat skala ditingkatkan. Terobosan kami adalah CubePart: kerangka kerja AI generatif pertama yang memungkinkan pembangkitan mesh 3D dengan kosakata terbuka dan kontrol bagian. CubePart menghasilkan kumpulan mesh yang terpisah, fungsional, dan dilabeli dengan akurat yang sesuai dengan kebutuhan pemrograman pengembang secara langsung.

CubePart memperluas konsep skema tetap yang kami perkenalkan dengan 4D Generation untuk memberdayakan kreator dalam menentukan daftar bagian yang harus dibagi dari suatu objek. Kumpulan mesh yang dihasilkan oleh CubePart langsung masuk ke mesin game dan dapat dikendalikan oleh animasi, fisika, dan skrip gameplay tanpa perlu pembersihan manual. Kami telah mempublikasikan penelitian CubePart kami di arXiv dan memperbarui repositori Cube open source kami untuk mendukung pembuatan yang dapat dikendalikan bagian per bagian. Akhir tahun ini, kami akan mempresentasikan temuan kami di SIGGRAPH

Skema: Kontrak API untuk Aset 3D Interaktif

Di Roblox, perilaku interaktif diimplementasikan dalam skrip yang beroperasi pada bagian-bagian—anak-anak aset yang spesifik dan diberi nama. Bahkan aset yang serupa mungkin memerlukan bagian yang sama sekali berbeda tergantung pada game atau situasinya. Taksonomi yang tetap akan membatasi kreativitas dan fungsionalitas, sehingga CubePart menawarkan dua input: 

  1. Prompt teks global yang mendeskripsikan seperti apa objek tersebut: misalnya, "mobil balap bertema ubur-ubur."
  2. Daftar bagian yang spesifik dan terbuka yang disebut skema: misalnya, "roda depan kiri", "roda depan kanan", "roda belakang kiri", "roda belakang kanan", "senjata", "lampu depan", "pipa knalpot", "bodi". 

Skema adalah kontrak API antara aset dan kode gameplay, dan CubePart memungkinkan pembuat untuk menghasilkan aset yang sesuai dengan kontrak tersebut. Kontrol kosakata terbuka ini memungkinkan CubePart untuk menangkap keragaman aset dan pengalaman Roblox.

Pembentukan dalam Dua Tahap 

CubePart adalah arsitektur difusi dua tahap yang dibangun di atas representasi bentuk laten VecSet

Pada ilustrasi di bawah ini, pengguna memasukkan dua prompt. 

  1. Prompt teks global: "Sebuah truk derek yang memiliki ciri khas kartun." 
  2. Skema: “kabin”, “sasis”, “roda”, “lampu atap”, “perangkat derek”.

Tahap 1 bertanggung jawab untuk menentukan bentuk dasar objek, (truk derek yang dicirikan oleh fitur-fitur kartun). Tahap ini menghasilkan satu laten untuk seluruh objek menggunakan arsitektur MMDiT dengan encoder teks Qwen-VL, yang dilatih pada sekitar 4,7 juta pasangan mesh-teks. Ini adalah tahap yang membutuhkan banyak data: Memetakan bahasa kosakata terbuka ke geometri 3D adalah bagian tersulit dari 3D generatif, dan membutuhkan korpus yang besar dan beragam untuk melakukannya dengan baik. Kami juga menyempurnakan Tahap 1 agar peka terhadap skema. 

Tahap 2 mengambil latent dari Tahap 1 dan menghasilkan satu latent bagian untuk setiap entri skema guna merekonstruksi objek dengan bagian-bagiannya. Untuk contoh truk derek kartun kami, Tahap 2 menghasilkan latent bagian terpisah untuk kabin, sasis, roda, lampu atap, dan rakitan derek untuk merekonstruksi truk derek akhir dengan bagian-bagian yang berbeda dan fungsional. Data 3D berlabel bagian jauh lebih langka daripada data mesh-text. Dengan Tahap 1 yang menyerap pemetaan teks-ke-bentuk yang kompleks dari korpus yang lebih besar, Tahap 2 hanya perlu mempelajari di mana batas-batas bagian berada pada objek yang sudah dipahami oleh model. Kami melihat ablasi dalam makalah ini sebagai bukti langsung untuk hal ini: Menghapus prapelatihan Tahap 1 secara terukur menurunkan generalisasi kosakata terbuka Tahap 2. Singkatnya, Tahap 1 adalah yang memungkinkan Tahap 2 melakukan generalisasi. 
Inovasi penting lainnya dalam arsitektur kami adalah cara bagian-bagian berkomunikasi. Solusi kami adalah menyisipkan blok perhatian lintas bagian khusus daripada memodifikasi yang sudah ada, dengan proyeksi keluaran yang diinisialisasi nol sehingga dimulai sebagai no-ops dan mempelajari komunikasi antar bagian tanpa mengganggu jalur yang telah dilatih sebelumnya. Prinsip ini akan familiar bagi pembaca ControlNet, yang diterapkan di sini pada dekomposisi bagian 3D. Untuk contoh truk derek kami, blok perhatian lintas bagian memastikan bahwa kabin dan rakitan derek terintegrasi dengan mulus dan diposisikan dengan benar relatif terhadap sasis dan roda.

Dataset dan Pipeline VLM Kami 

Untuk melatih CubePart, kami membuat dataset yang menampilkan lebih dari 460.000 aset—lebih dari 11 kali lebih besar dari dataset publik sebelumnya1—dan 2,02 juta bagian. Alih-alih pelabelan manual, kami membangun pipeline otomatis menggunakan model bahasa-penglihatan (VLM).

Pipa kerja ini merender ribuan model 3D dari berbagai sudut menggunakan pendekatan berpasangan: satu gambar bertekstur (untuk konteks semantik) dan satu gambar berwarna bagian (untuk pelacakan batas yang presisi). Keduanya diberi tanda dengan penanda bernomor yang identik, memberikan VLM pegangan berbasis teks untuk berargumen di ruang 3D serta mengelompokkan dan menamai setiap bagian.

Berbeda dengan dataset yang diterbitkan sebelumnya di mana setiap roda pada kendaraan hanya diberi label "roda", dataset kami mengajarkan AI untuk membedakan secara spasial (misalnya, membedakan "roda kiri depan" dari "roda kanan belakang"). Ketepatan pencocokan inilah yang dicari oleh mesin game.

Apa yang Dibuka oleh CubePart dan Apa Selanjutnya

CubePart memungkinkan kreator menghasilkan aset yang sesuai dengan kode gameplay mereka dan memiliki kompatibilitas langsung dengan alur kerja animasi, fisika, dan skrip yang ada. CubePart juga dapat mendekomposisi mesh seniman yang ada ke skema baru, yang berguna untuk memperbarui aset warisan, bukan hanya menghasilkan yang baru.

Masih banyak yang harus dilakukan. CubePart menangani dekomposisi rigid-body, tetapi kami juga sedang mengerjakan bobot vertex yang disesuaikan untuk deformasi karakter organik. Perhatian antar-bagian secara dramatis mengurangi tumpang tindih tetapi tidak menghilangkannya sepenuhnya. Penalaran spasial—"depan kiri" versus "belakang kanan"—masih memiliki ruang perbaikan yang signifikan.

Kami melihat pembangkitan berbasis skema sebagai langkah yang membuat 3D generatif berguna di platform di mana setiap aset berpartisipasi dalam simulasi. Segera, teknologi ini akan tersedia bagi para kreator Roblox langsung di dalam Roblox Studio.

1Dibandingkan dengan PartVerseXL