CubePart:一款開放詞彙庫且可局部控制的 3D 生成器
打造實用且可直接用於遊戲的資產

現代的 3D 生成式模型能夠根據文字提示生成精美且複雜的 3D 物件,但對遊戲開發者而言,單一的 3D 模型並無實用價值。以汽車為例,它必須能夠實際駕駛。車輪需要獨立旋轉、車門需要開啟,而頭燈則需要能夠開啟。
目前,3D 藝術家必須手動將生成的模型分割並為各部件命名——這是一個難以擴展的流程。我們的突破性成果是 CubePart:首個允許開放詞彙、可控制部件的 3D 網格生成生成式 AI 框架。CubePart 輸出一套已組裝好的、獨立、功能齊全且標籤精確的網格,開箱即用即可滿足開發者的程式設計需求。
CubePart 擴展了我們在 4D Generation 中提出的固定模式概念,賦予創作者定義物件應拆解為哪些部件的權限。 由 CubePart 生成的網格集合可直接導入遊戲引擎,並能透過動畫、物理模擬及遊戲腳本進行控制,無需手動清理。我們已在 arXiv 上發表 CubePart 的研究成果,並更新了開源的 Cube 儲存庫以支援可控部件生成。今年稍晚,我們將在 SIGGRAPH 發表相關研究成果。
Schema:互動式 3D 資產的 API 合約
在 Roblox 平台上,互動行為是透過作用於「部件」的腳本來實現的——這些部件是資產中特定且具名稱的子元件。即使是相似的資產,根據遊戲或情境的不同,也可能需要完全不同的部件。固定的分類體系會限制創意與功能,因此 CubePart 提供兩項輸入:
- 描述物件外觀的全域文字提示:例如「水母主題的賽車」。
- 一份稱為「架構」的特定、開放式必備部件清單:例如「左前輪」、「右前輪」、「左後輪」、「右後輪」、「槍」、「頭燈」、「排氣管」、「車身」。
此「架構」是資產與遊戲程式碼之間的 API 契約,而 CubePart 讓創作者能生成符合該契約的資產。這種開放詞彙的控制機制,使 CubePart 能完整涵蓋 Roblox 資產與體驗的多樣性。
兩階段生成
CubePart 是一種基於 VecSet 潛在形狀表示的兩階段擴散架構。
在下方的示意圖中,使用者輸入了兩個提示。
- 全局文字提示:「一輛具有卡通風格特徵的拖車。」
- 結構化提示:「駕駛艙」、「底盤」、「輪子」、「車頂警示燈」、「拖車裝置」。
第一階段負責定義物體的基礎形狀(一輛具有卡通風格特徵的拖車)。 此階段使用搭載 Qwen-VL 文字編碼器的 MMDiT 架構,針對約 470 萬組網格-文字對進行訓練,為整個物件生成單一潛在向量。這是個飢渴於數據的階段:將開放詞彙的語言映射至 3D 幾何結構是生成式 3D 的难点,且需要龐大且多樣化的語料庫才能表現出色。我們還對第一階段進行微調,使其具備結構感知能力。



我們的資料集與 VLM 處理流程
為了訓練 CubePart,我們建立了一個包含超過 46 萬個資產(規模比先前公開的資料集大 11 倍以上¹)以及 202 萬個零件的資料集。我們捨棄人工標註,轉而利用視覺語言模型(VLM)建構了一套自動化流程。
該流程採用配對方法,從多角度渲染數千個 3D 模型:一張帶有紋理的圖像(用於語義上下文)和一張局部著色的圖像(用於精確邊界追蹤)。兩者均標有相同的編號標記,使 VLM 能夠透過文字索引在 3D 空間中進行推理,並對每個部件進行聚類與命名。
有別於先前發布的資料集(其中車輛上的每個輪子僅被簡單標記為「輪子」),我們的資料集教導 AI 進行空間區分(例如,區分「左前輪」與「右後輪」)。這種匹配精準度正是遊戲引擎所追求的。
CubePart 解鎖的潛能與未來展望
CubePart 讓創作者能生成與遊戲程式碼相符的資產,並能直接與現有的動畫、物理及腳本工作流程相容。CubePart 還能將現有的美術網格分解為新架構,這不僅適用於生成新資產,對於升級舊有資產也十分有用。
仍有許多工作待完成。CubePart 目前處理剛體分解,但我們也正在研究用於有機角色變形的蒙皮頂點權重。跨部件注意力機制雖大幅減少了重疊,但並未完全消除。空間推理——例如「前左」與「後右」的區分——仍有顯著的改進空間。
我們認為,在每個資產都參與模擬的平台上,以架構驅動的生成技術正是讓生成式 3D 真正發揮實用價值的關鍵一步。這項技術即將在 Roblox Studio 內直接提供給 Roblox 創作者使用。



