本网站内容使用人工智能(AI)或机器翻译技术翻译,可能存在错误。

Skip to content

CubePart:一款支持开放词汇表且可控部件的3D生成器

构建功能完备的游戏就绪资源

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

现代3D生成模型能够根据文本提示生成精美复杂的3D物体,但对于游戏开发者而言,一个整体的3D模型并无实际用处。以汽车为例,它必须具备可驾驶性:车轮需要独立旋转,车门需要能够开启,前大灯需要能够点亮。 

目前,3D 艺术家必须手动将生成的模型拆解并为各部件命名——这一过程难以扩展。我们的突破性成果是 CubePart:首个支持开放词汇表、可控部件的 3D 网格生成生成式 AI 框架。CubePart 生成的是一组预先组装好的、独立的、功能完备且标签准确的网格,开箱即用即可满足开发者的编程需求。

CubePart 扩展了我们在 4D Generation 中提出的固定模式概念,使创作者能够定义对象应被分解成的部件列表。 CubePart生成的网格集合可直接导入游戏引擎,无需手动清理即可通过动画、物理模拟和游戏脚本进行控制。我们已在arXiv上发布了关于CubePart的研究论文,并更新了开源的Cube代码库以支持部件可控生成。今年晚些时候,我们将向SIGGRAPH大会展示我们的研究成果。 

Schema:交互式 3D 资产的 API 契约

在 Roblox 平台上,交互行为通过作用于“部件”(即资产的特定命名子节点)的脚本实现。即使是相似的资产,根据游戏或场景的不同,也可能需要完全不同的部件。固定的分类体系会限制创造力和功能性,因此 CubePart 提供了两个输入: 

  1. 描述对象外观的全局文本提示:例如,“一只水母主题的赛车”。
  2. 一份名为“模式”的、具体且开放式的必需部件清单:例如,“左前轮”、“右前轮”、“左后轮”、“右后轮”、“枪”、“前大灯”、“排气管”、“车身”。 

该架构是资产与游戏代码之间的 API 契约,CubePart 允许创作者生成符合该契约的资产。这种开放词汇表的控制机制使 CubePart 能够涵盖 Roblox 资产与体验的多样性。

两阶段生成 

CubePart 是一种基于 VecSet 潜在形状表示的两阶段扩散架构。 

在下图中,用户输入了两个提示词。 

  1. 全局文本提示词:“一辆具有卡通特征的拖车。” 
  2. 模式: “驾驶室”、“底盘”、“车轮”、“车顶警示灯”、“拖车装置”。

第一阶段负责定义对象的基础形状(一辆具有卡通特征的拖车)。 该阶段使用基于 Qwen-VL 文本编码器的 MMDiT 架构,通过约 470 万个网格-文本对进行训练,为整个物体生成单一潜在向量。这是数据密集型阶段:将开放词汇表语言映射到 3D 几何体是生成式 3D 的难点,需要庞大且多样化的语料库才能表现出色。此外,我们还对第一阶段进行了微调,使其具备模式感知能力。 

第二阶段利用第一阶段的潜在向量,针对每个模式条目生成一个部件潜在向量,从而重建包含各个部件的物体。以我们卡通风格的拖车为例,第二阶段会分别生成驾驶室、底盘、车轮、车顶警示灯和拖车装置的部件潜在向量,以此重建出由各具功能且相互独立的部件组成的最终拖车。带部件标签的3D数据远比网格文本数据稀缺。 由于第一阶段已从更大语料库中吸收了复杂的文本到形状的映射关系,第二阶段只需学习模型已理解的物体上各部件的边界位置。论文中的消融实验直接证明了这一点:移除第一阶段预训练会显著降低第二阶段在开放词汇量下的泛化能力。简而言之,正是第一阶段赋予了第二阶段泛化能力。 
我们架构中的另一项关键创新在于各部分之间的通信方式。 我们的解决方案是插入专用的跨部件注意力模块,而非修改现有模块,并采用初始化为零的输出投影,使其初始状态为无操作,从而在不干扰预训练路径的情况下学习部件间通信。这一原理对 ControlNet 的读者而言并不陌生,在此被应用于 3D 部件分解。以我们的拖车为例,跨部件注意力模块确保驾驶室和拖车组件能够无缝集成,并相对于底盘和车轮正确定位。

我们的数据集与VLM管道 

为了训练 CubePart,我们创建了一个包含超过 46 万个资产(规模是此前公开数据集的 11 倍以上¹)和 202 万个部件的数据集。我们没有采用人工标注,而是利用视觉语言模型(VLM)构建了一条自动化管道。

该管道采用配对方法,从多个角度渲染数千个3D模型:一张带纹理的图像(用于语义上下文)和一张部件着色图像(用于精确边界追踪)。两者均标有编号相同的标记点,这为VLM提供了基于文本的定位依据,使其能够在3D空间中进行推理,并对每个部件进行聚类和命名。

与此前发布的数据集不同——那些数据集中车辆上的每个轮子都简单地标注为“轮子”——我们的数据集教会了AI进行空间区分(例如,区分“左前轮”和“右后轮”)。这种匹配精度正是游戏引擎所需要的。

CubePart 带来的突破与未来展望

CubePart 使创作者能够生成与游戏逻辑代码相匹配的资源,并能直接兼容现有的动画、物理和脚本工作流。CubePart 还能将现有美术建模分解为新架构,这不仅适用于生成新资源,对于升级旧有资源同样大有裨益。

仍有大量工作待完成。CubePart 目前处理刚体分解,但我们也在研究用于有机角色变形的蒙皮顶点权重。跨部件注意力机制虽能大幅减少重叠,但无法完全消除。空间推理——“前左”与“后右”的区分——仍有显著的改进空间。

我们认为,在所有资产都参与模拟的平台上,基于架构的生成技术是让生成式 3D 真正发挥作用的关键一步。不久之后,Roblox 创作者将能够直接在 Roblox Studio 中使用这项技术。

1与PartVerseXL相比