1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VSCodeとBlender MCP使って自然言語のみで小さな街作ってみた

Last updated at Posted at 2025-05-05

はじめに

MCPについてあまりにもXに情報が流れてくるので、キャッチアップがてらMCPを使って何か遊べないかなと思い、Blender MCPを使った簡単な3Dモデルを作成してみました。

PythonとBlenderを組み合わせたワークフローに興味を持っている方や、そもそもMCPで何ができるのかよくわからないけど視覚的に操作できるものならちょっと触って遊んでみようかなという方は、ぜひ参考にしてみてください。設定から最初の3Dモデル作成まで30分もあれば充分にいけると思います。

この記事を通して私が試したVisual Studio Code (VSCode) から直接Blenderを操作できる「Model Context Protocol (MCP)」の設定方法と使い方、作ってみた3Dモデルについて順を追って紹介出来ればと思います。

また、今回使用した「blender-mcp」は、VSCodeとBlenderを連携させるための実装で、Githubの"Ahuja/blender-mcp"リポジトリを参考にしています。ただ"Ahuja/blender-mcp"リポジトリを含めVscodeを使用した実装に関する情報は調べてもヒットしなかったため、自分で試して見ようと思い今回の発信に至りました。

※ちなみにおまけで、Cursorでの設定方法についても書いています。

※MCPを使えば個人で少し遊ぶレベルだとBlender本体を操作することはほとんどないのでBlenderの説明やその使い方の解説などはしないのでご容赦ください。

MCPとは?

MCPについては巷にたくさんの分かりやすい記事が出ているのでここではあまり説明しませんが、Model Context Protocol (MCP) は、AIとソフトウェア間でやり取りするためにコードを送受信するためのハブみたいなイメージです。

環境構築

1. 必要なソフトウェアの準備

2. Blender側の設定

2.1. Blender MCPのaddon.pyファイルのダウンロード

GitHub(Ahuja/blender-mcp)からaddon.pyファイルをローカルにダウンロード

2.2. Blenderを起動しアドオンを設定

  • EditPreferencesAdd-onsInstall from Disk を順に選択
    blender_setting1.png

blender_setting2.png

  • ダウンロードしたaddon.pyを選択してインストール
    blender_setting3.png

  • アドオンリストで「BlenderMCP」を有効化チェックボックスをオン

2.3. 設定の確認

  • 3DビューポートでNキーを押してサイドパネルを表示
  • サイドパネルに「BlenderMCP」タブが表示されていれば成功
     blender_setting4.png

3. VSCodeの設定

3.1. uvのセットアップ(Cursorでも共通)

  • Windowsの場合はPowerShellを開き、uvパッケージマネージャーをインストール

    # Windowsの場合
    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    
    # Macの場合
    $ curl -LsSf https://astral.sh/uv/install.sh | sh
    
  • uvパッケージマネージャーをPATHに追加

    set Path=C:\Users\nntra\.local\bin;%Path%
    
  • 念のため、以下も実行

    pip install uv
    

3.2. VSCodeプロジェクトの作成

  1. 作業フォルダを作成(なんでもいいですが私は"blender-craft"といフォルダを作成しました)
  2. VSCodeでこのフォルダをワークスペースとして開く
  3. .vscodeフォルダを作成し、その中にmcp.jsonファイルを作成
  • .vscode\mcp.jsonの内容(.vscode\mcp.jsonへのコピペ用)
    {
        "servers": {
          "blender": {
            "command": "uvx",
            "args": ["blender-mcp"]
          }
        }
    }
    
    vscode_setting1.png

4. おまけ(Cursorを使う場合)

  1. 作業フォルダを作成(なんでもいいですが私はVScodeと同じ"blender-craft"フォルダを使いました)
  2. Cursorでこのフォルダをワークスペースとして開く
  3. .cursorフォルダを作成し、その中にmcp.jsonファイルを作成
  • .cursor\mcp.jsonの内容(.cursor\mcp.jsonへのコピペ用)
    {
        "mcpServers": {
            "blender": {
                "command": "cmd",
                "args": [
                    "/c",
                    "uvx",
                    "blender-mcp"
                ]
            }
        }
    }
    
    cursor_setting1.png

Blenderとの接続

1. VSCode(またはCursor)でMCPサーバーを起動

VSCodeの場合

  • .vscode/mcp.jsonファイル内に表示される「起動」というタブをクリック
    vscode_setting2.png

  • 表示が「実行中」に変わることを確認
    vscode_setting3.png

Cursorの場合

  • FilePreferencesCursor SettingsMCP を順に選択
    cursor_setting2.png

  • 外側赤枠の右上の内側赤枠内のスイッチを図のように設定し、左上の内側赤枠内が図のようになっていたらOK
    cursor_setting3.png

2. Blender側で接続を確立させる

  • Blenderの3DビューポートでNキーを押してサイドパネルを表示

  • BlenderMCP」タブをクリック

  • Connect to MCP server」ボタンをクリック
    blender_setting4.png

  • ボタンの表示が「Disconnect from MCP server」に変わったら接続成功
    blender_setting5.png

AIのエージェントモードを使ってBlenderで3Dモデルを作成

VSCode(またはCursor)とBlenderの接続が成功したらAIのエージェントモード(私はVScodeではGitHub Copilotのエージェントモードを主に使用)を活用することで、チャット感覚で自然言語で指示すればBlenderでオブジェクトを生成できます!

GitHub Copilotの設定(参考:VScode用)

  • VSCodeでGitHub Copilotをエージェントモードに設定
    vscode_setting4.png

自然言語のみで指示して作成できた3Dモデル

ビルと青い屋根の家はCursorから、それ以外はVScodeから指示をMCPを起動してチャットのやり取りのみで作成しました。Blenderは一切いじっていないです。

エージェントモードに設定したAIが私の指示をPythonコードに変換し、MCPを通じてBlenderに送信してくれています。

blender_image1.png

blender_image2.png

blender_image3.png

blender_image4.png

Pythonコードの実行方法(これは興味のある方だけでいいので飛ばしてOKです!)

AIとのチャットでの指示以外にも、直接Pythonコードを書いて実行することもできます。

新しいPythonファイル(なんでもいいですがここでは"first_script.py")を作成し、以下のコードを入力しました。

import bpy

# 既存のオブジェクトをクリア(任意)
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

# キューブを作成
bpy.ops.mesh.primitive_cube_add(size=2, location=(0, 0, 1))
cube = bpy.context.active_object
cube.name = "MyCube"

# マテリアルを作成して適用
mat = bpy.data.materials.new(name="BlueMaterial")
mat.use_nodes = True
principled = mat.node_tree.nodes.get('Principled BSDF')
principled.inputs[0].default_value = (0.0, 0.3, 0.8, 1.0)  # 青色

# マテリアルをオブジェクトに適用
if len(cube.data.materials) == 0:
    cube.data.materials.append(mat)
else:
    cube.data.materials[0] = mat

# ビューポートの表示モードをマテリアルに変更
for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        for space in area.spaces:
            if space.type == 'VIEW_3D':
                space.shading.type = 'MATERIAL'

print("青いキューブを作成しました!")

スクリプトの実行については以下の方法で実施してみてください。

  • ファイル全体を選択し、Shift+Enterを押す
  • コードの一部を選択してShift+Enterを押す
  • 右クリックメニューから「MCP: Run Selection」を選択する

これでコードが実行されると、Blenderにそのコマンドが送信されてオブジェクトを作成できます。

エディター側で通常のターミナルからPythonを直接実行しようとすると「ModuleNotFoundError: No module named 'bpy'」というエラーが発生するので必ずMCPを経由して実行するようにしてください。

まとめ

VSCode(Cursorも可)とBlenderのMCPサーバーを使って、ほぼBlenderをいじることなく簡単な3Dモデルのオブジェクトを作成することができました。

全体的な感想としては、抽象的な指示をすると、例えば「家を作ってください」みたいな指示だとただシンプルな板を重ね合わせただけのようなものしか出力してくれませんでした。

以下のように少し具体的に書くことで精度が高くなっていきました。

1軒目の家(House1)

  • 暖色系のカラースキームで作成(ベージュの壁、赤茶色の屋根)
  • 位置:ビルから東側に約15m、北側に約10m離れた場所
  • 8m×6mの広さで、1階と2階、三角屋根がある
  • 前面にはポーチがあり、周囲には芝生の庭がある
  • ドア、窓、煙突なども追加してほしい

また、私は指示が上手くできなかったのですが、人間のような細かいオブジェクトも作成にはテクニックが必要そうです。

トータル的にみてMCPがどのようなものかを試す分には視覚的に見えるのでとてもよい勉強ツールだと思いました。また、技術のキャッチアップをしながらも十分遊べるのでその点でもよかったのかなと思います。

ここまで読んでいただきありがとうございました。

Reference

blender-mcp GitHub
Blender Python API Document

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?