HOME

Maneki Pipeline

ゲーム開発のためのプロシージャル

Gemma4のローカルな環境でMCPサーバーを使ったHoudiniの操作(をしようとしてあんまりパフォーマンスが出ず…)

結論から言えばパフォーマンスは出ませんでした。

お断り

当記事で実行した手順では良いレスポンスは得られませんでした。
ローカルLLMはネット上のリファレンスにアクセスできないので、参照情報を追加せずにこういった専門的な作業を行わせるのには向いていなそうです。

利用ツール・ライブラリ・プラグイン

今回の構成では以下を利用している

余談:oculairmedia houdini mcpの不具合により接続失敗を繰り返した

この記事の「HoudiniMCPに接続する」項目ですが、もともと前回の記事「AntigravityでMCP」を行う前に検証してみていました。
が、何度も接続失敗し動作までつなげることができず…

MCP Serverの設定を色々試していたもののなかなかつながらず…

「一旦Antigravityで繋げてみるか」、と試したところMCP側で不足していた部分を補ってあっさり繋げてくれました。

Antigravityで試すと、AntigravityがHoudiniMCP側の不足コードを指摘して接続できる状態になった

ので、本記事で利用しているHoudini MCPはgitから落としたままではなく上記の部分にコード修正済みでテストしています。

Ollamaのセットアップ

OllamaはフリーのローカルLLMを管理しやすくするハブのような機能のアプリケーション。
Ollamaを起動後、必要であればモデルのインストール先をSettings/Model Locationで変更。

Ollamaの設定からモデルの保存先を指定できる

モデルの切り替えから利用したいモデルのインストールができるので、今回はGemma4のe4bを取得する。

OllamaのUIからGemma4を取得

VS Code(Cline)のセットアップ①:LLMモデルのセットアップ

VSCodeのClineプラグインをインストールし、Modelの紐づけを行う。
ClineはLLMを持たず、別途LLMを指定して開発エージェントとして利用することができるVSCodeの拡張。
今回はClineのモデルにローカルLLM、Gemma4を指定してMCPを使ってHoudiniを操作する。

LLMを外付けで開発エージェントとして利用できる拡張、Cline

Clineの利用するモデルをOllama経由のローカルのLLMに設定する。 設定画面のAPI Configuration項目でAPI ProviderをOllamaに変更する。
変更するとModelがインストール済みであればModelからGemma4が選択できる。
(初回設定の画面の場合「Bring my own API key」を選択すると設定する画面に移動できる)

Clineの設定からAPI ProviderをOllama、モデルをOllamaに追加したGemma4 e4bに設定

何かを聞いて答えが返ってくれば動作できている。
この状態でディレクトリ以下のテキストを読み込んだりといったローカルなエージェントとして利用できる。
(スペックの差だと思うが速度はオンラインで利用するクラウドのエージェントよりだいぶ遅い)

ClineにGemma4を設定した段階でローカルファイルの参照などのエージェントとしての利用が可能になる(ただしクラウドのエージェントよりだいぶ遅い)

Houdiniのセットアップ

Antigravityで接続した時同様にHoudini側では以下のスクリプトを実行してMCPサーバーからの接続待機状態にする

import hrpyc
hrpyc.start_server(port=18811)
Houdini側でサーバーの操作を待機 ※画像はHoudini Indieで実行しています

VS Code(Cline)のセットアップ②:MCPサーバーのセットアップ

MCPサーバーの初期設定と接続設定を行う

gitから落としたデータは「requirements.txt」が含まれているので関連モジュールをpipで取得する。
作業用のPython環境からhoudini-mcpのディレクトリに移動し、以下を実行すると関連モジュールをpipが取得してくれる。

cd [保存先]\\houdini-mcp
pip install -r requirements.txt

MCP Server設定を開き、前回Antigravityで接続できたMCP Server設定と同様の内容を追記する。
cwdはローカルにクローンしたgitのパス。

antigravityで接続できた設定を同様にClineのMCPサーバー設定にも追加する
"Houdini MCP": {
  "command": "python",
  "args": ["-m", "houdini_mcp"],
  "cwd": "D:/work/AgentDev/HoudiniMCP/houdini-mcp",
  "env": {
    "HOUDINI_PORT": "18811",
    "MCP_TRANSPORT": "stdio"
  }
}

テスト実行

以上で設定ができたので操作できるかをテストした。

Nullノード作成(成功)

HoudiniMCPの機能を使ってHoudiniと通信し、動作テストとしてNullノードを作成してください
Nullノード作成の命令
接続先のHoudiniでNullノードが作成できた

ちゃんとNullノードを作ってくれた。
どうやら無事にローカルLLMから命令を実行できる状態になっている模様。

花形カーブ作成(失敗)

次にジオメトリ階層に移動し、花形のカーブを作成してください
続いて花形のカーブを作成してもらう…が完了したもののすでに返答が少し怪しい

が、Antigravityで成功した、「カーブを作成する命令」は失敗してしまった。

花形のカーブは作られていない

Pythonノード作成(失敗)

Pythonノードを作成して動くコードを掛けるかも試してみる。

先ほど作成したジオメトリ階層にPythonノードを作成しPythonノードを作成し、「print("hello mcp")」というコードを設定してください
Pytonノードというのが伝わって無さそう…
Nullノードだけ増えていく(Nullノードを作るのはもしかしてMCPのパッケージ内にサンプルコードとしてあるのか?)

これも失敗Nullノードだけ増えていく

所感

残念。

そもそもAgent特化でない軽量版のGemma4をエージェント活用するのが微妙という問題かも…
文中でも書いたが「パッケージ側のエラーで動作しない問題」があった場合にAntiGravityだとパッケージ側の不備を指摘してすぐに動作させてくれたがGemmaは何度も接続失敗、と見当違いな処理を繰り返していた。

どうしてもローカルLLMを使いたければBraveSerchMCPみたいな検索情報の参照やローカルに情報を持たせるなどしてAI精度の調整は必要そう。


試すまで「賢いAIならなんでも簡単に解決してくれる」と思っていたのですが、適材適所はありますね…。
ローカルLLMは用途に合わせたカスタマイズ前提だなと実感できました。

一方で「カスタマイズで動作方針を完全コントロールできるLLM」というのは確かに色々な開発用途に使えそうでGemma4の盛り上がりも理解できます。
とはいえ、自分の用途的にはしばらくクラウドLLMですね。

今度ClaudeでのHoudini操作も試してみます。

fish_ball

プロシージャル魚類