LM StudioとBlender MCPを接続してローカルAIからBlenderを操作してみた|導入編

スポンサーリンク

はじめに

最近、ローカルAIエージェントをいろいろ試しています。

これまではLM StudioやOpen WebUI、ComfyUIなどを使ってきましたが、今回は少し違ったことを試してみることにしました。

それが、ローカルLLMからBlenderを操作するというものです。

BlenderにはMCP(Model Context Protocol)を利用してAIから操作できる仕組みがあります。

「AIに『円柱を追加して』とか『雪だるまを作って』と指示したら、本当にBlenderを操作してくれるのか?」

これはちょっと面白そうだったので、実際に自分のPCで試してみました。

今回使用したのは、

  • Blender 5.1
  • Blender MCP
  • LM Studio+Gemma 4 12B

という構成です。

この記事では、まずLM StudioとBlender MCPを接続して、実際にBlenderのシーンをAIから操作できるところまでを紹介します。

実際に3Dモデルを作らせた結果については、別記事で紹介する予定です。


Blender MCPとは?

MCPは、LLMと外部ツールを接続するための仕組みです。

今回利用したBlender MCPでは、LLMからBlenderに対して、

  • 現在のシーンを確認する
  • オブジェクトを取得する
  • オブジェクトを追加する
  • オブジェクトを削除する
  • Pythonコードを実行する

といった操作を行えるようになります。

つまり、単にAIにBlenderのPythonコードを書かせるだけではなく、AIがMCP経由で実際に起動中のBlenderを操作できるというわけです。

今回は、この仕組みをローカル環境で動かしてみます。


今回の環境

今回使ったPC環境は以下の通りです。

項目環境
LLMGoogle Gemma 4 12B QAT
LLMクライアントLM Studio
3DソフトBlender 5.1
MCP ServerBlender MCP
Python環境uv
OSWindows

ローカルAIなので、基本的にはクラウドAIにBlenderを操作させるのではなく、自分のPC内で完結する構成を目指します。

uvとは?
Python向けのパッケージ管理ツールです。よくPythonではpipとか使ってinstallしますが、pipより高速にインストールや依存関係の解決が可能です。pipだけでなくvenvなどの仮想環境の作成もでき、次世代ツールとして注目を集めてます。


1. Blender側の準備

まずBlender側にMCP用のAdd-onを導入します。Blender MCPには、

  1. Blender用Add-on
  2. LLM Client
  3. MCP Server

という複数の要素があります。導入はこちらの記事が参考になります。記事には「Llama.cpp」も導入するよう書かれてますが、今回は不要です。

公式アドオンでAIが「Blender」を操作できるように! ローカルAIでどこまでできる?【Blender ウォッチング】
本連載では、無料の高機能3Dモデリングツール「Blender」の使い方や関連情報を幅広くお伝えします。

Blender側にAdd-onをインストールしたら、Blenderを起動します。起動したら「編集→プリファレンス」を開いてアドオンにあるMCPを見つけたら、下記画像にある「Start MCP Bridge Sever」を押して”Server is running”にしておきます。

今回使用した環境では、BlenderのMCP機能を起動すると、

Host: localhost
Port: 9876

という設定になりました。ここは後ほどMCP Server側との接続に関係してきます。


2. Blender MCP Serverを用意する

今回使用したBlender MCPはGitHubなどから別途インストールしたものではなく、以前導入していたものをそのまま利用しました。

自分の環境では、

C:\blender_mcp

に配置されています。中を見ると、

addon
chat_client
mcp
tests
_misc

などのディレクトリがあります。MCP Server本体は、

C:\blender_mcp\mcp

にあります。ここには、

.venv
blender_mcp.egg-info
blmcp
manifest.json
pyproject.toml
requirements.txt
uv.lock

などが入っています。


3. uvでBlender MCP Serverを起動する

次に今回はPython環境の管理にuvを使いました。まず、PowerShellで以下のようにBlender MCPのディレクトリを指定して起動します。

uv --directory C:\blender_mcp\mcp run blender-mcp --transport http --port 9191

正常に起動すると、以下のような表示が出ます。

INFO:     Started server process
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:9191

これでBlender MCP Serverが、

http://127.0.0.1:9191

で待機する状態になります。ここは少し注意が必要です。Blender側のポートが9876、MCP Server側が9191となっています。

それぞれ別の役割を持っているため、同じポートにする必要はありません。


4. LM Studio側にMCP Serverを登録する

次にLM Studio側からBlender MCP Serverを利用できるようにします。LM Studioを起動したら、「Server→mcp.json」からmcp.jsonを開き、以下の赤字部分のblenderの設定を追加します。

{
  "mcpServers": {
    "blender": {
      "url": "http://127.0.0.1:9191/"
    }
  }
}

今回のBlender MCP ServerはHTTPで起動しているため、LM Studio側ではHTTP経由で接続する設定にします。

※ここは使用するLM StudioのバージョンやMCPクライアントの仕様によって設定方法が異なる可能性があります。


5. BlenderとMCP Serverを接続する

ここまで準備できたら、

  1. Blenderを起動
  2. Blender MCP Add-onを起動
  3. MCP Serverを起動
  4. LM Studioを起動

という順番で確認します。自分の環境では、最初に接続したときに、

SSE error: Non-200 status code (404)

というエラーが出ました。原因はMCP Serverの接続先と通信方式が合っていなかったことでした。設定を見直したところ、正常に接続できるようになりました。

MCPは「サーバーが起動しているだけ」ではなく、LLMクライアントが期待する通信方式・エンドポイントと一致していることが重要なようです。


6. 実際にBlenderのシーンを確認してみる

接続できたら、LM StudioでローカルLLMに指示してみます。例えば、

Blenderの現在のシーンに何があるか確認してください。

と入力します。すると、Gemma 4 12BがBlender MCPのツールを呼び出し、現在のシーンを取得できました。

最初のBlenderには、

  • Cube
  • Camera
  • Light

が存在していました。つまり、

LM Studioで動いているローカルLLM → MCP → Blender

という経路で、実際にBlenderの状態を取得できています。これはなかなか面白いです。


7. Blenderを実際に操作してみる

次に、単なる情報取得ではなく操作を試します。例えば、

Cubeを削除して、円柱を1個追加してください。

と指示します。

するとGemma 4 12BがBlender MCPのexecute_blender_codeを呼び出し、Blender上でPythonコードを実行します。実際に、

  • Cubeを削除
  • Cylinderを追加
  • オブジェクト名を変更

といった操作ができました。

途中でBlender 5.1のAPIの違いによるエラーも発生しましたが、LLMがエラー内容を見てコードを修正し、最終的には操作を完了できました。

ここまで来ると、単なる「AIにPythonコードを書いてもらう」というものとは少し違います。

AI自身がBlenderの状態を確認し、MCPツールを使ってBlenderを操作する

という形になっています。


8. ここまでやってみて分かったこと

実際に使ってみると、思った以上に面白いです。特に、

「Blenderで○○を作って」

という自然言語の指示から、LLMがPythonコードを生成し、それをMCP経由でBlenderに送って実行できるのはかなり新鮮でした。

一方で、まだ完全に安定しているわけではありません。

例えば、

  • BlenderのバージョンによるAPIの違い
  • LLMが生成するPythonコードのミス
  • MCPの通信設定
  • 複雑なBlender内部データの扱い

などでエラーが発生することがあります。特に複雑な処理になるほど、AIに細かい指示が必要になる場面もありました。

そのため、現時点では、

「AIにBlenderを完全に任せれば何でも作れる」

という段階ではありません。ただ、簡単なオブジェクトの作成や編集であれば、ローカルLLMだけでも十分試せるところまで来ています。


まとめ

今回は、LM Studioで動かしているローカルLLMとBlender MCPを接続して、BlenderをAIから操作できる環境を作りました。

今回のポイントをまとめると、

  • Blender MCPにはAdd-onとMCP Serverが必要
  • MCP Serverはuvを使って起動できた
  • Blender側はlocalhost:9876で待機
  • MCP Serverはlocalhost:9191で起動
  • LM StudioからBlender MCPを利用できた
  • シーン情報の取得ができた
  • オブジェクトの追加・削除なども実行できた
  • Blender 5.1のAPI差異などでエラーが発生することもある

という結果でした。そして、ここまでできると次に試したくなるのはやっぱり、

「じゃあ、ローカルAIに実際の3Dモデルを一から作らせたらどうなる?」

ということ。というわけで、次回はGemma 4 12BにBlenderを操作させて、実際に3Dモデルを作ってみます。

果たして、ローカルAIだけでどこまで作れるのでしょうか。長くなったので今回はこの辺で。

今回の副業活動時間

環境構築:60分
AIとのやり取り(Blenerの操作の指示含む):120分
ブログ記事執筆:30分
合計:210分

今までの合計:635分

コメント

タイトルとURLをコピーしました