最近、AI と外部ツールを連携させる MCP (Model Context Protocol) がとても便利で、Chrome DevTools や GitHub など色々なツールと繋がるようになっています。
Blender MCPも既に出ているというのを知り、3D モデリングを AI に手伝ってもらえるのでは? と興味を持って試してみました。
Blender MCP でできること
Blender MCP はいくつかの機能を提供しています。大きく分けるとこんな感じです:
- Python コード実行 — Blender 内で任意の Python スクリプトを実行できる。今回のメイン機能
- シーン・オブジェクト情報の取得 — 現在のメッシュの状態や、頂点座標、マテリアル構成などを読み取れる
- 素材・モデルの外部調達 — Poly Haven から HDRI やテクスチャを、Sketchfab から無料 3D モデルを検索・ダウンロードして Blender に直接取り込める
- AI 3D 生成 — Hyper3D や Hunyuan3D を介して、テキストや画像から 3D モデルを生成
- ビューポートのスクリーンショット取得 — 現在の見た目を AI に見せて判断させる
たとえば「家具を適当に置きたい」なら Sketchfab 検索から直接インポート、「石造りの壁のテクスチャが欲しい」なら Poly Haven、といった使い分けができます。今回は建築物を手続き的に生成したかったので、Python コード実行をメインに使いました。
AI と相性の良いデータ形式を考える
AI にモデリングを任せるとき、自然言語で「ここに壁を」と指示するのは曖昧すぎてうまくいきません。一方で、SVG は XML ベースで座標が全部数値なので、AI にとっては読みやすく書きやすいフォーマットです。
そこで「Illustrator で間取り図を SVG で描いて、それを Blender に読み込ませて立体化できないか」という実験を始めました。スケールは 1 ピクセル = 1 センチメートルで統一しています。
仕組み
壁・床・天井
SVG に「外壁の外側」「外壁の内側」「部屋の外側」「部屋の内側」のパスを描いておきます。Python スクリプトがこれをパースして、パスの間を壁の厚みとしてメッシュを生成、床と天井をスラブで閉じる、という流れです。
部屋の形を複雑な多角形にしても、曲面を入れても、SVG を書き直すだけで 3D モデルが再生成されます。
ドア・窓
SVG 上にドアや窓の位置を線として置いておきます。ドアは線の幅に応じて定義した高さテーブルから開口を bisect + bridge で切り出し、窓は線の長さに合わせて対応する窓アセットを配置します。
窓アセット自体も SVG で作っています。窓枠の断面プロファイルを SVG で描いて、それを窓の輪郭に沿って Sweep させる形です。プロファイルを書き換えれば枠のデザインが一括で変わります。
ピラスター・装飾帯
ピラスター(壁の装飾柱)もアセット化して、SVG 上に配置点を置くだけで自動配置されます。装飾帯(ストリングコース、コーニス)は壁のパスに沿って 2D プロファイルを Sweep しているので、壁の形が変わっても追従して再生成されます。
実際に作ってみる流れ
SVG で間取りを描いてから、Blender 側でどう構築していくかを順に見てみます。各ステップはスクリプトを実行するだけで、部屋の形を変えても自動で再生成されます。
1. Illustrator で SVG を描く
ベースとなる間取りを Illustrator で描きます。外壁、部屋、ドア、窓、ピラスター、角石の位置を、それぞれ別のグループに分けて配置。1 ピクセル = 1 cm スケールです。
こちらをclaudeで読み込んで、svgの数値を使って実際にBlenderにオブジェクトを生成していきます。
それぞれの図形にIDを付けて、「こういうIDのものはこういうふうに作ってね」と教えていく感じです。
2. プリンス(土台)の生成

建物の土台となる plinth を最初に生成します。SVG の plinth パスから高さ指定で立ち上げています。
3. 外壁の生成

`Outer_Wall > outline` のパスから外壁シェルを作成。SVG 内のドア・窓位置に合わせて開口も切り抜きます。
4. 部屋(壁・床)の生成

各部屋のパスから、壁・床を個別のメッシュとして生成。部屋間のドアは自動で開口が切られます。
5. ピラスター配置

SVG 上にマーカーを置いておくと、既存のピラスターアセットが自動的にその位置にインスタンス化されます。

ピラスターは、シャフト・キャピタル・ベースなどのパーツをコレクションとしてアセット化してあり、どの SVG からでも共通のピラスターを使い回せる構造にしています。
6. クオイン(角石)配置

外壁の 90° の凸角を自動検出して、角石を交互パターンで積み上げます。壁の形状を変えても、角の位置から自動で再配置されます。

ブロックサイズ・ピッチ・突出量・石目地の間隔はパラメータ化してあり、建物のスケールに合わせて調整できます。
7. 装飾帯(ストリングコース・プリンスコーニス)

壁のパスに沿って、断面プロファイルを Sweep させて装飾帯を生成。形状が変わっても追従して再生成されるので、後から壁を編集しても装飾帯の調整は不要です。

プロファイルは (相対Z, 突き出し量) のリストで定義されていて、クラシックな moulding の複雑な断面もそのまま再現できます。
8. 窓の配置

SVG 内の窓の線から幅と角度を読み取り、対応する窓アセットをインスタンス化。窓アセット自体は、幅と高さを指定するとマリオン(縦仕切り)やトランサム(横仕切り)、枠まで含めて自動生成するパラメトリックなものにしているので、想定外のサイズの窓もすぐ作れます。
ガラス部分には Shader Node でダイヤモンド模様のパターンを入れています。1880 年代建造の邸宅を想定しているので、当時っぽい質感を出すための工夫です。

曲面窓(Oriel)も、アプス(曲面壁)に合わせて配置し、壁にはブーリアンで開口を切っています。こっちは十字パターンです。

9. 完成

屋根は自動化してませんが、ここまでのものならばスクリプトを順に実行するだけ。SVG を書き換えれば同じ流れで別の形の建築物も作れます。
とりあえずの雰囲気を掴むには十分です。
感想
AI と Blender の組み合わせ自体は派手ですが、今回の肝は「AI が扱いやすいデータ形式 = SVG」に落とし込めたところだと感じました。自然言語で曖昧に指示するより、AI と人間が同じ構造化データを見ながら作業する方が、ずっと噛み合います。
Blender MCP は「Claude が Blender を操る」みたいな SF 感も楽しいですが、実際には Python スクリプトの書き換え・実行・結果確認のループが高速に回せるという地味で強力な便利さがメインでした。
