CubePart:オープンボキャブラリー対応のパーツ制御型3Dジェネレーター
実用的なゲーム用アセットの構築に向けて

最新の3D生成モデルは、テキストプロンプトから美しく複雑な3Dオブジェクトを生成できますが、ゲーム開発者にとって、単一の3Dモデルだけでは実用性がありません。例えば、車は運転できる必要があります。車輪は個別に回転し、ドアは開き、ヘッドライトは点灯しなければなりません。
現在、3Dアーティストは生成されたモデルを手作業で分割し、各パーツに名前を付ける必要がありますが、このプロセスは拡張性に乏しいものです。そこで私たちが開発した画期的なソリューションが「CubePart」です。これは、オープンな語彙体系を用い、パーツ単位で制御可能な3Dメッシュ生成を可能にする、初の生成AIフレームワークです。CubePartは、開発者のプログラミングニーズに即座に対応できる、個別の機能を持ち、正確にラベル付けされたメッシュのセットを出力します。
CubePartは、4D Generationで導入した固定スキーマの概念を拡張し、クリエイターがオブジェクトを分解すべきパーツのリストを定義できるようにします。 CubePartによって生成されたメッシュのセットは、ゲームエンジンにそのまま組み込むことができ、手動でのクリーンアップ作業なしに、アニメーション、物理演算、ゲームプレイスクリプトによって制御可能です。私たちはCubePartに関する研究をarXivで公開し、パーツ単位での制御を可能にする生成機能をサポートするよう、オープンソースのCubeリポジトリを更新しました。今年後半には、SIGGRAPHで研究成果を発表する予定です。
スキーマ:インタラクティブ3DアセットのためのAPI契約
Robloxでは、インタラクティブな挙動は、アセットの特定の名付けられた子要素である「パーツ」を操作するスクリプトによって実装されています。類似したアセットであっても、ゲームや状況によっては全く異なるパーツが必要になる場合があります。固定された分類体系は創造性や機能性を制限してしまうため、CubePartは以下の2つの入力項目を提供します:
- オブジェクトの外観を記述するグローバルなテキストプロンプト:例:「クラゲをテーマにしたレーシングカー」
- 「スキーマ」と呼ばれる、必要となるパーツの具体的かつ自由形式のリスト:例:「フロント左ホイール」、「フロント右ホイール」、「リア左ホイール」、「リア右ホイール」、「銃」、「ヘッドライト」、「マフラー」、「ボディ」。
このスキーマは、アセットとゲームプレイコード間のAPI契約であり、CubePartはクリエイターがこの契約に準拠したアセットを生成できるようにします。このオープンな語彙による制御により、CubePartはRobloxのアセットと体験の多様性を捉えることができます。
2段階の生成
CubePartは、VecSetの潜在形状表現に基づいて構築された2段階の拡散アーキテクチャです。
以下の図では、ユーザーが2つのプロンプトを入力しています。
- グローバルなテキストプロンプト:「漫画的な特徴を持つレッカー車」。
- スキーマ:「キャブ」、「シャーシ」、「車輪」、「ルーフビーコン」、「牽引装置」。
第1段階は、オブジェクトの基礎となる形状(漫画的な特徴を持つレッカー車)を定義する役割を担います。 このステージでは、約470万組のメッシュ・テキストペアで学習されたQwen-VLテキストエンコーダを備えたMMDiTアーキテクチャを使用し、オブジェクト全体に対して単一の潜在表現を生成します。これはデータ消費量の多いステージです。オープンボキャブラリーの言語を3Dジオメトリにマッピングすることは、生成型3Dにおける難関であり、良好な結果を得るには大規模で多様なコーパスが必要です。さらに、ステージ1をスキーマ認識型になるよう微調整しています。



当社のデータセットとVLMパイプライン
CubePartのトレーニングのために、46万点以上のアセット(従来の公開データセット1の11倍以上)と202万個のパーツを含むデータセットを作成しました。手動によるラベリングの代わりに、ビジョン・ランゲージ・モデル(VLM)を用いた自動パイプラインを構築しました。
このパイプラインは、テクスチャ付き画像(意味的コンテキスト用)とパーツ着色画像(正確な境界追跡用)というペアを用いたアプローチにより、数千の3Dモデルを多角的にレンダリングします。両画像には同一の番号付きマーカーが配置されており、これによりVLMはテキストで参照可能なハンドルを得て、3D空間内で推論を行い、各パーツをクラスタリングして命名することが可能になります。
車両のすべてのホイールを単に「ホイール」とラベル付けする従来の公開データセットとは異なり、当社のデータセットはAIに空間的な区別(例:「左前輪」と「右後輪」の識別)を学習させます。このマッチングの精度は、まさにゲームエンジンが求めるものです。
CubePartがもたらす可能性と今後の展望
CubePartにより、クリエイターはゲームプレイコードに適合し、既存のアニメーション、物理演算、スクリプトワークフローと直接互換性のあるアセットを生成できます。また、CubePartは既存のアーティストメッシュを新しいスキーマに分解することも可能で、これは新規アセットの生成だけでなく、レガシーアセットのアップグレードにも役立ちます。
まだやるべきことは山積みです。CubePartは剛体分解に対応していますが、有機的なキャラクター変形のためのスキン付き頂点ウェイトについても開発を進めています。パーツ間のアテンション機能により重複は劇的に減少しましたが、完全には解消されていません。「フロント左」対「リア右」といった空間的推論については、依然として大幅な改善の余地があります。
私たちは、すべてのアセットがシミュレーションに参加するプラットフォームにおいて、ジェネレーティブ3Dを実用的なものにするための重要な一歩として、スキーマ駆動型生成を位置づけています。まもなく、この技術がRoblox Studio内で直接、Robloxクリエイターに利用可能になる予定です。



