クロスアプリパイプライン詳細
OpenForge MCP のクロスアプリパイプラインは、Blender で作ったモデルを Unity や Godot に自動転送する仕組み。このガイドでは、ファイル転送の内部動作、対応フォーマット、トラブルシューティングを詳しく解説するよ。
ファイル転送の仕組み
クロスアプリパイプラインは、共有ディレクトリを介してファイルをやり取りする。
Blender 共有ディレクトリ Unity / Godot
モデルを作成 ──> FBX/glTF で ──> 自動検知して
エクスポート インポート
~/OpenForge/shared/
処理の流れ
- AI が Blender でモデリングを指示する
- Blender プラグインがモデルを指定形式でエクスポートする
- エクスポートされたファイルが共有ディレクトリに保存される
- Unity / Godot のプラグインが共有ディレクトリを監視している
- 新しいファイルを検知すると、自動的にインポート処理を実行する
- インポートが完了すると、AI に結果が通知される
共有ディレクトリ
デフォルトの共有ディレクトリは以下の場所:
| OS | パス |
|---|---|
| Windows | %USERPROFILE%/OpenForge/shared/ |
| macOS | ~/OpenForge/shared/ |
| Linux | ~/OpenForge/shared/ |
設定ファイルでカスタマイズすることもできる:
{
"shared_directory": "D:/MyProject/shared_assets"
}
複数のプロジェクトを並行して進める場合は、プロジェクトごとに共有ディレクトリを分けると、ファイルが混ざらなくて管理しやすいよ。
対応フォーマット
FBX (.fbx)
用途: Unity への転送に最も適したフォーマット。
| 項目 | 対応状況 |
|---|---|
| メッシュ | 対応 |
| マテリアル | 対応(基本設定のみ) |
| テクスチャ | 埋め込み or 外部参照 |
| アーマチュア/ボーン | 対応 |
| アニメーション | 対応 |
| シェイプキー | 対応 |
Blender ──(FBX)──> Unity
Unity は FBX を最もよくサポートしている。マテリアル、ボーン、アニメーションを含めて安定して転送できるので、特に理由がなければ FBX を使うのがおすすめだよ。
glTF / GLB (.gltf / .glb)
用途: Web やオープン標準を重視する場合に適したフォーマット。
| 項目 | 対応状況 |
|---|---|
| メッシュ | 対応 |
| マテリアル | PBR マテリアルに対応 |
| テクスチャ | GLBは埋め込み、glTFは外部参照 |
| アーマチュア/ボーン | 対応 |
| アニメーション | 対応 |
| シェイプキー | 対応 |
Blender ──(glTF/GLB)──> Unity / Godot
GLB は1ファイルにすべてをまとめた形式で、取り扱いが簡単。glTF はテクスチャを別ファイルにするので、テクスチャだけ差し替えたい場合に便利。
OBJ (.obj)
用途: シンプルなメッシュの受け渡し。
| 項目 | 対応状況 |
|---|---|
| メッシュ | 対応 |
| マテリアル | MTLファイルで基本的な色情報 |
| テクスチャ | 外部参照 |
| アーマチュア/ボーン | 非対応 |
| アニメーション | 非対応 |
| シェイプキー | 非対応 |
Blender ──(OBJ)──> Unity / Godot
OBJ はボーンやアニメーションを含められない。静的なメッシュ(建物、家具、小物など)の受け渡しにのみ使おう。キャラクターモデルには向いていないよ。
VRM (.vrm)
用途: 人型アバターの受け渡し。
| 項目 | 対応状況 |
|---|---|
| メッシュ | 対応 |
| マテリアル | MToon / Unlit / PBR |
| テクスチャ | 埋め込み |
| アーマチュア/ボーン | 対応(人型専用) |
| アニメーション | 非対応(ポーズのみ) |
| シェイプキー | 対応(表情) |
| VRM固有情報 | ライセンス、揺れもの設定など |
Blender ──(VRM)──> Unity
VRM は glTF をベースにした人型アバター専用フォーマット。VRChat や cluster などのプラットフォーム向けアバターの制作ワークフローに最適。
実践: Blender でモデリングして Unity にインポート
具体的な操作手順を見ていこう。
手順1: Blender でモデルを作成する
あなた:
Blenderで椅子を作って。座面は平らな四角形で、脚は4本の円柱にして
何が起きる: Blender 上で椅子のモデルが作成される。
手順2: マテリアルを設定する
あなた:
椅子に木目調のマテリアルを付けて。茶色のベースカラーにして
何が起きる: Principled BSDF マテリアルが設定されて、椅子が茶色くなる。
手順3: メッシュを最適化する
Unity に持っていく前に、メッシュを最適化しておこう。
あなた:
椅子のポリゴン数を教えて。多すぎたら適度に減らして
何が起きる: 現在のポリゴン数が報告されて、必要に応じて Decimate モディファイアで最適化される。
手順4: Unity にエクスポートする
あなた:
この椅子をFBX形式でUnityに送って
何が起きる: 以下の処理が自動で行われる:
- Blender で FBX エクスポートが実行される
- FBX ファイルが共有ディレクトリに保存される
- Unity プラグインがファイルを検知する
- Unity にモデルがインポートされる
- インポート結果が AI に通知される
あなた:
Unityにインポートされた椅子をシーンに配置して
何が起きる: Assets フォルダにインポートされた椅子のプレハブがシーンに配置される。
手順5: Unity 側で調整する
あなた:
椅子のスケールを確認して。Blenderと同じサイズになっている?
何が起きる: Unity 上でのオブジェクトのスケールが報告される。Blender とのスケール差がある場合は、ここで調整するよ。
Blender と Unity ではデフォルトの単位系が異なる。Blender は1単位=1メートル、Unity も1単位=1メートルだけど、FBX エクスポート時のスケール設定によっては 100倍になることがある。エクスポート設定で「Apply Scalings: FBX Units Scale」にすると、スケールが一致しやすいよ。
フォーマット選択ガイド
どのフォーマットを使うか迷ったら、以下を参考にしよう。
| ユースケース | 推奨フォーマット | 理由 |
|---|---|---|
| Unity にキャラクターを送る | FBX | ボーン、アニメーション対応が最も安定 |
| Unity に静的モデルを送る | FBX or glTF | どちらでもOK |
| Godot にモデルを送る | glTF / GLB | Godot は glTF のサポートが充実 |
| アバターを送る | VRM | 人型専用の情報を保持できる |
| シンプルなメッシュだけ送る | OBJ | 最もシンプルで互換性が高い |
| テクスチャを1ファイルにまとめたい | GLB | すべてバイナリに埋め込まれる |
トラブルシューティング
モデルが Unity に表示されない
確認ポイント:
- 共有ディレクトリにファイルがエクスポートされているか
- Unity プラグインが起動して、共有ディレクトリを監視しているか
- Unity のコンソールにエラーが出ていないか
- Assets フォルダ内にインポートされたファイルが存在するか
テクスチャが表示されない(白くなる)
原因と対処法:
- FBX の場合: テクスチャの埋め込み設定を確認する。エクスポート時に「Path Mode: Copy」「Embed Textures」を有効にすると、テクスチャがFBXに埋め込まれる
- glTF の場合: GLB 形式を使うと、テクスチャが自動で埋め込まれる
- OBJ の場合: MTL ファイルとテクスチャ画像ファイルが同じディレクトリにあるか確認する
スケールがおかしい(巨大 or 極小)
対処法:
- Blender のエクスポート設定で「Apply Scalings」を確認する
- Unity のインポート設定で「Scale Factor」を調整する
- どうしても合わない場合は、Unity 側でオブジェクトのスケールを手動で調整する
あなた:
インポートした椅子のスケールを0.01にして
マテリアルの見た目が違う
Blender と Unity ではレンダリングエンジンが異なるので、マテリアルの見た目が完全には一致しない。
対処法:
- FBX の場合: Unity 側でマテリアルを手動で調整する必要がある場合がある
- glTF の場合: PBR マテリアルが比較的忠実に再現される
あなた:
インポートされた椅子のマテリアルを確認して。色が違っていたら調整して
ボーンが正しく動かない
確認ポイント:
- Blender でエクスポート前にアーマチュアを適用(Apply)しているか
- FBX エクスポート設定で「Armature」が含まれているか
- Unity のインポート設定で「Rig」タブの「Animation Type」が正しいか(Humanoid or Generic)
Blender と Unity では座標系の軸方向が異なる(Blender: Z-up、Unity: Y-up)。FBX エクスポート時に軸変換が自動で行われるけど、まれに意図しない回転が加わることがある。その場合は、エクスポート設定の「Forward」と「Up」軸を調整してみよう。
まとめ
- クロスアプリパイプラインは共有ディレクトリを介してファイルを転送する
- FBX、glTF/GLB、OBJ、VRM の4種類のフォーマットに対応している
- Unity には FBX、Godot には glTF を推奨
- スケール、テクスチャ、マテリアルの差異はよくあるトラブルなので、転送後に確認するのが大切
- すべての操作を自然言語で指示できるので、複雑なエクスポート設定を手動で触る必要はない