Blend Studio
3Dモデルを見ながら、修正したい場所をチャットに伝える。
English · Releases · 導入手順 · 開発参加 · 変更履歴
Blend Studioは、.blend・.glb・.vrmを表示するローカルMCP Apps/OpenAI MCP Extensionsプラグインです。PBR・MToonの描画、部位・マテリアルの選択、モデル表面への位置指定に対応しています。
モデルに①②③の印を付けて、ホストのチャットで「①の毛先を短く、②の袖を広くして」と依頼できます。ファイル名、選択した部品、マテリアル、複数の指定位置、視点、VRMAの再生状態をチャットへ共有します。
現在は0.1.11の実験段階です。表示と修正箇所の共有を実装しています。Blenderのライブ編集とTripoでの生成は未接続です。
同梱のサンプルモデルで位置を指定した画面
画像はプロジェクト同梱のStudio Companionです。単独プレビューのため、チャットへの共有は行っていません。
主な機能
| 機能 | 対応内容 |
|---|---|
| GLB / VRM | 埋め込み画像付きglTF 2.0、VRM 0.x / 1.0を表示 |
| Blend | ローカルBlenderでプレビュー用GLBへ変換。元ファイルを上書きしません |
| マテリアル | PBR、Unlit、MToon拡張。Original / PBR / MToon / Wireを切り替え |
| 場所の指定 | 表面に最大8か所の番号付きの印。個別削除、回転・アニメーションへの追従 |
| 視点 | 正面・左側面・右側面・背面の平行投影と、自由に回せる3D表示 |
| VRMA | 人型リグに動きを重ね、再生・停止・シーク・速度・ループを操作。ボーン対応を手動調整可能 |
| チャットの文脈 | 部品名、マテリアル、表面の位置、カメラなどをホストへ共有 |
| モデルタブ | モデルごとに視点・描画モード・選択・①を保持し、切り替えて比較 |
| 修正結果を開く | 修正依頼元の画面へ届け、元のタブの更新か新しいタブかを選択 |
| Blender保存の反映 | 作業ファイルを元タブに接続し、保存後に自動または手動で更新 |
| 表示と操作 | 回転、ズーム、部品・マテリアル選択、グリッド、明暗テーマ、印付き画像の保存 |
| Blender設定 | 画面から実行ファイルを設定・変更。設定は更新後も保持 |
動作環境
- Node.js 22以上。リリース配布物にはライブラリを同梱しています。
- ローカルstdio MCPとMCP Appsを利用できるホスト。チャットへの文脈共有には
ui/update-model-contextへの対応が必要です。 .blendの変換にはBlender。GLB・VRMの表示には不要です。- Windowsでの導入を検証済み。macOS・Linux向けの実行ファイル検出処理はありますが、導入とGUIは未検証です。
WindowsのCodexデスクトップ環境で、MCPの起動・ツール・画面の取得を検証しています。表示と文脈共有は公式AppBridgeを使った検証画面でも確認しています。CLI単体にはこの3D画面を表示する機能がありません。
この版はローカルプロセスを使います。GitHubに公開するだけではChatGPTのブラウザー版や公開プラグインディレクトリーへ接続されません。サイドバー・ファイル入口の表示はホストの対応状況に依存します。ホストの導入仕様も確認してください。
Windowsでインストール
- **v0.1.11のビルド済みZIP**を取得します。新しい版はReleasesから確認できます。
- ZIPを右クリックし、**「すべて展開」**します。
blend-studioフォルダー内の**Install-Blend-Studio.cmd**をダブルクリックします。- **「完了:Blend Studio」**が表示されたら、対応するデスクトップアプリを再起動します。
- Blend Studioを選び、チャットで「Blend Studioを開いて」と依頼します。
インストーラーはNode.jsとCodexを検出し、現在のユーザーの設定領域へ登録します。ソフトの自動ダウンロードは行いません。GitHubのCode → Download ZIPはソースコードなので、下記のビルドが必要です。
Blenderは後から**画面上部の「設定」→「参照…」**で指定できます。導入、更新、再設定、トラブル対応は導入ガイドにあります。
使い方
- **「ファイルを開く」**からモデルを選択します。ドラッグ&ドロップも使えます。
- 視点ボタンや回転・ズームで対象を見つけ、右側の**「場所を追加」**を押します。
- 修正したい表面を順にクリックして①②③の印を付けます。Escまたは「指定を終了」で追加を終えます。
- **「チャットへ位置を共有しました」**を確認し、ホストのチャットに修正内容を入力します。
指定できる場所は各タブ最大8か所です。一覧の×で個別削除、「すべて解除」で全消去できます。残りの番号は変わらず、追加時も削除済みの番号を再利用しません。別の部品・マテリアルを選んでも印は残ります。同じタブのモデルを更新した場合、古い印は引き継ぎません。
視点とVRMAの再生
上部の正面・左側面・右側面・背面は平行投影です。ズームと平行移動ができ、3Dに戻るとドラッグで回転できます。左右はキャラクター自身から見た方向です。正面が合わない場合は3Dで向きを合わせ、**「この向きを正面にする」**を押します。
- 人型のボーンとスキンを持つ
.blend・.glb・.vrmを開きます。 - 下部の**「VRMAを読み込む」**から
.vrmaを選びます。 - 再生・一時停止・停止・再生位置・速度・ループを操作します。動きの途中で止め、複数の修正ポイントを指定できます。
- 一般リグで自動対応が合わなければ**「ボーン対応」**で割り当てます。腰・背骨・頭は必須で、基準姿勢はTポーズを想定しています。
.blendの作業ファイルはそのまま使い、変換した表示用モデルにVRMAを重ねます。アニメーションをBlenderへ書き戻す機能や自動リギングはありません。一般リグでは体の動きのみ、VRMでは対応する表情・視線も再生します。32MiB以下の外部リソースを持たないVRMAを読み込み、複数クリップの場合は先頭を使用します。動き・対応設定・再生位置はタブごとに保持し、画面を閉じると失われます。
指定モードではEnterで画面中央の表面を指定、Escでキャンセルできます。共有に対応していないホストや単独プレビューでは、印付きの画像を保存してチャットに添付できます。画像は自動送信しません。
修正結果を依頼元の画面で開く
別の編集ツールで修正後のファイルができたら、チャットで**「修正版を依頼元のBlend Studioで開いて」**と伝えます。チャットが受け取った画面・タブ情報を使い、その画面に開き方の選択を表示します。
- 「修正依頼元のタブを更新」:依頼した元のタブに修正版を表示します。別のタブを見ていても、依頼元を更新します。
- 「新しいタブで開く」:元モデルの視点・描画モード・選択・①を残し、修正版を別の内部タブで表示します。
通常の「ファイルを開く」でも開き方を選べます。タブ横の**+は新しいモデルタブを追加します。タブの×**で閉じます。タブは画面内のメモリーに保持され、画面を閉じると失われます。ディスク上の元ファイルは上書きしません。
依頼元はモデルの読込IDではなく、継続する編集セッションで識別します。会話の文脈が不足した場合、エージェントはstudio.sessionsで既存のセッションを確認できます。複数の候補がある場合は確認し、新しい画面を勝手に開きません。画面を閉じた場合はタブ自体を復元できません。開発者向けの手順はADAPTERS.mdにあります。
Blenderで保存しながら元タブで確認する
- 確認に使うタブを選び、右側の**「編集中のファイル」→「作業ファイルを接続」**を押します。
- **「参照…」**からBlenderで保存する
.blendを選ぶか、絶対パスを入力します。 - **「保存後に自動更新する」を有効にして「このタブに接続」**を押します。
- Blenderで編集して保存すると、同じタブの表示が更新されます。自動更新を無効にした場合は**「今すぐ更新」**を押します。
視点・描画モード・表示位置を保ち、VRMAとボーン対応・再生状態を再適用します。リグ構造が変わり再適用できない場合は「ボーン対応」で確認してください。別のタブを見ているときも依頼元のタブを更新し、表示中のタブは切り替えません。すべての印と部品選択は更新時に解除します。保存中や読み込み失敗時は前の表示を残します。監視をやめるには**「接続を解除」**を押します。
対象は最後にディスクへ保存した内容です。未保存のBlender内部状態やライブ操作には接続しません。Blendの変換時間に応じて反映まで待つ場合があります。画面は開いたままにしてください。ファイルのバイナリーを外部へ送信せず、ユーザーのファイルも書き換えません。ファイル名・作業パスを含むセッション情報はローカル設定領域に保存し、24時間使われなかった情報を次回利用時に整理します。
ソースから試す
リポジトリのルートで実行します。
npm ci
npm run build
npm test
npm run preview
http://127.0.0.1:43123を開くと、同梱サンプルで表示を試せます。終了はCtrl+Cです。これは単独プレビューなので、ホストのチャットには接続しません。インストール済みのMCP画面を開く際に、localhostを開く必要はありません。
配布フォルダーはnpm run package、公開用のソース一式はnpm run export:sourceで生成できます。開発ガイドとリリース手順を参照してください。
制約
.blendはBlenderのglTFエクスポーターが表現できる範囲のプレビューです。任意のシェーダーノード、コンポジット、Blender固有の効果は完全には再現しません。.blend内のMToonノードをMToon拡張へ自動変換しません。MToonを保持する場合は対応GLBまたはVRMを使います。- ファイル選択から読む
.blendの外部テクスチャは、事前にBlenderでパックしてください。 - Draco圧縮・KTX2・外部URLや外部ファイルを参照するGLBは未対応です。MeshoptはホストのWebAssembly対応にも依存します。
- VRMAは人型のスキン付きリグが対象です。任意リグの自動変換、足の接地補正、Blenderへのアニメーション保存は未対応です。
- 1ファイル256 MiBまで。1画面最大8モデルタブ・読込GLBの合計512 MiBまで。描画時のメモリー使用量はこれより大きくなります。サーバーにも同じアセット保持上限があり、古いアセットは再読み込みが必要になる場合があります。
- 印の位置はプレビュー上の座標・三角形です。Blenderの元データの頂点番号や座標へ直接適用できません。
データの扱い
モデルの解析・変換・描画はローカルで行います。モデルのバイナリーをこのプラグインから外部サービスへ送信する機能はありません。
チャット連携では、ファイル名・部品名・マテリアル名・指定位置・視点などのモデル文脈をホストへ共有します。ホスト側の保存・送信は、そのサービスの設定とポリシーに従います。モデル文脈には機密の名称が含まれる可能性があります。
設定・ログ・一時データの保存場所は導入ガイド、実装上の境界と脆弱性の報告方法はSECURITY.mdを参照してください。
今後の方向
- Blenderの作業コピーを編集し、変更前後を比較できる連携
- Tripoの生成・再生成とジョブ管理
- 点に加え、複数箇所や範囲を指定する操作
- VRM・OS・ホストごとの検証拡充
設計案はADAPTERS.mdにあります。実装済みの機能と予定の機能を区別して記載しています。
参加とライセンス
不具合報告・改善提案・Pull Requestを歓迎します。CONTRIBUTING.mdの手順を確認してください。報告に私有モデル、APIキー、個人のパスを含めないようお願いします。
プロジェクトのコードと独自サンプルはMIT Licenseです。依存ライブラリはTHIRD_PARTY_NOTICES.md、同梱スキーマはschemas/README.mdを参照してください。読み込むモデルやテクスチャの権利は、それぞれの権利者に帰属します。
Blend Studioは独立したプロジェクトです。OpenAI、Blender、Tripoの公式製品ではありません。