Cinema4D MCP Server

by ttiimmaacc
MIT License
10
  • Apple

Integrations

  • Enables 3D scene manipulation in Cinema 4D, including creating and modifying objects, managing materials, setting up lighting, working with cameras, utilizing MoGraph tools, applying physics, and rendering scenes.

Cinema4D MCP — モデルコンテキストプロトコル(MCP)サーバー

Cinema4D MCP サーバーは Cinema 4D を Claude に接続し、プロンプトによる 3D 操作を可能にします。

目次

コンポーネント

  1. C4D プラグイン: MCP サーバーからのコマンドをリッスンし、Cinema 4D 環境で実行するソケット サーバー。
  2. MCP サーバー: MCP プロトコルを実装し、Cinema 4D 統合用のツールを提供する Python サーバー。

前提条件

  • Cinema 4D(R2024+推奨)
  • Python 3.10 以上 (MCP サーバー コンポーネント用)

インストール

プロジェクトをインストールするには、次の手順に従います。

リポジトリのクローンを作成する

git clone https://github.com/ttiimmaacc/cinema4d-mcp.git cd cinema4d-mcp

MCP サーバー パッケージをインストールする

pip install -e .

ラッパースクリプトを実行可能にする

chmod +x bin/cinema4d-mcp-wrapper

設定

Cinema 4Dプラグインのセットアップ

Cinema 4D プラグインを設定するには、次の手順に従います。

  1. プラグインファイルのコピーc4d_plugin/mcp_server_plugin.pypファイルをCinema 4Dのプラグインフォルダにコピーします。パスはオペレーティングシステムによって異なります。
    • macOS: /Users/USERNAME/Library/Preferences/Maxon/Maxon Cinema 4D/plugins/
    • Windows: C:\Users\USERNAME\AppData\Roaming\Maxon\Maxon Cinema 4D\plugins\
  2. ソケットサーバーを起動します:
    • Cinema 4Dを開きます。
    • 拡張機能 > ソケットサーバープラグインに移動します
    • ソケットサーバーコントロールのダイアログウィンドウが表示されます。「サーバーを起動」をクリックします。

クロードデスクトップ構成

Claude Desktop を構成するには、構成ファイルを変更する必要があります。

  1. 設定ファイルを開きます:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • または、Claude Desktop の [設定] メニュー ([設定] > [開発者] > [構成の編集]) を使用します。
  2. MCP サーバー構成の追加: 開発/非公開サーバーの場合は、次の構成を追加します。
    "mcpServers": { "cinema4d": { "command": "python3", "args": ["/Users/username/cinema4d-mcp/main.py"] } }
  3. 設定ファイルを更新した後、 Claude Desktop を再起動します
{ "mcpServers": { "cinema4d": { "command": "cinema4d-mcp-wrapper", "args": [] } } }

使用法

  1. Cinema 4D ソケット サーバーが実行されていることを確認します。
  2. Claude Desktop を開き、入力ボックスで MCP ツールが利用可能であることを示すハンマー アイコン 🔨 を探します。
  3. 利用可能なツール コマンドを使用して、Claude を通じて Cinema 4D を操作します。

テスト

コマンドラインテスト

コマンドラインから Cinema 4D ソケット サーバーを直接テストするには:

python main.py

サーバーの正常な起動と Cinema 4D への接続を確認する出力が表示されます。

MCPテストハーネスによるテスト

リポジトリには、事前定義されたコマンド シーケンスを実行するためのシンプルなテスト ハーネスが含まれています。

  1. テストコマンドファイル( tests/mcp_test_harness.jsonl ): 順番に実行できるJSONL形式のコマンドシーケンスが含まれています。各行は、パラメータを含む単一のMCPコマンドを表します。
  2. GUI テスト ランナー( tests/mcp_test_harness_gui.py ): テスト コマンドを実行するためのシンプルな Tkinter GUI:
    python tests/mcp_test_harness_gui.py
    GUI を使用すると次のことが可能です。
    • JSONLテストファイルを選択
    • コマンドを順番に実行する
    • Cinema 4Dからの回答を見る

このテストハーネスは、特に次の場合に役立ちます。

  • 新しいコマンドを迅速にテストする
  • アップデート後のプラグインの機能の検証
  • デバッグのために複雑なシーンを再現する
  • 異なるCinema 4Dバージョン間の互換性テスト

トラブルシューティングとデバッグ

  1. ログファイルを確認します:
    tail -f ~/Library/Logs/Claude/mcp*.log
  2. Claude Desktop を開いた後、Cinema 4D のコンソールに接続が表示されていることを確認します。
  3. ラッパー スクリプトを直接テストします。
    cinema4d-mcp-wrapper
  4. mcp モジュールを見つける際にエラーが発生する場合は、システム全体にインストールします。
    pip install mcp
  5. 高度なデバッグには、 MCP Inspectorを使用します。
    npx @modelcontextprotocol/inspector uv --directory /Users/username/cinema4d-mcp run cinema4d-mcp

プロジェクトファイルの構造

cinema4d-mcp/ ├── .gitignore ├── LICENSE ├── README.md ├── main.py ├── pyproject.toml ├── setup.py ├── bin/ │ └── cinema4d-mcp-wrapper ├── c4d_plugin/ │ └── mcp_server_plugin.pyp ├── src/ │ └── cinema4d_mcp/ │ ├── __init__.py │ ├── server.py │ ├── config.py │ └── utils.py └── tests/ ├── test_server.py ├── mcp_test_harness.jsonl └── mcp_test_harness_gui.py

ツールコマンド

一般的なシーンと処刑

  • get_scene_info : アクティブな Cinema 4D シーンの概要情報を取得します。✅
  • list_objects : すべてのシーンオブジェクトを(階層とともに)一覧表示します。✅
  • group_objects : 選択したオブジェクトを新しいヌルの下にグループ化します。✅
  • execute_python : Cinema 4D 内でカスタム Python コードを実行します。✅
  • save_scene : 現在の Cinema 4D プロジェクトをディスクに保存します。✅
  • load_scene : .c4dファイルをシーンに読み込みます。✅
  • set_keyframe : オブジェクトのプロパティ(位置、回転など)にキーフレームを設定します。✅

オブジェクトの作成と変更

  • add_primitive : シーンにプリミティブ(立方体、球、円錐など)を追加します。✅
  • modify_object : 既存のオブジェクトの変換または属性を変更します。✅
  • create_abstract_shape : 有機的で非標準の抽象的なフォームを作成します。✅

カメラとアニメーション

  • create_camera : シーンに新しいカメラを追加します。✅
  • animate_camera : パス(線形またはスプラインベース)に沿ってカメラをアニメーション化します。✅

照明と素材

  • create_light : シーンにライト(オムニ、スポットなど)を追加します。✅
  • create_material : 標準の Cinema 4D マテリアルを作成します。✅
  • apply_material : ターゲットオブジェクトにマテリアルを適用します。✅
  • apply_shader : スタイル化されたシェーダーまたは手続き型シェーダーを生成して適用します。✅

Redshift サポート

  • validate_redshift_materials : Redshift マテリアルの設定と接続を確認します。✅ ⚠️ (Redshift マテリアルは完全に実装されていません)

MoGraphとフィールド

  • create_mograph_cloner : MoGraph Cloner (線形、放射状、グリッドなど) を追加します。✅
  • add_effector : MoGraph エフェクター(ランダム、プレーンなど)を追加します。✅
  • apply_mograph_fields : MoGraph フィールドをオブジェクトに追加してリンクします。✅

力学と物理学

  • create_soft_body : オブジェクトにソフトボディタグを追加します。✅
  • apply_dynamics : リジッドボディまたはソフトボディの物理特性を適用します。✅

レンダリングとプレビュー

  • render_frame : フレームをレンダリングしてディスクに保存します (ファイルベースの出力のみ)。⚠️ (動作しますが、解像度が大きい場合は MemoryError: Bitmap Init failed のため失敗します。これはリソースの制限です。)
  • render_preview : クイックプレビューをレンダリングし、base64 イメージを返します (AI 用)。✅
  • snapshot_scene : シーンのスナップショット(オブジェクト + プレビュー画像)をキャプチャします。✅

互換性計画とロードマップ

Cinema 4DバージョンPythonバージョン互換性ステータス注記
R21 / S22Python 2.7❌ サポートされていませんレガシーAPIとPythonのバージョンが古すぎる
R23Python 3.7🔍 計画なし現在テストされていません
S24 / R25 / S26Python 3.9⚠️ 可能性あり(未定)不足しているAPIのテストとフォールバックが必要
2023.0 / 2023.1Python 3.9🧪 進行中コア機能のフォールバックサポートをターゲットとする
2023.2Python 3.10🧪 進行中計画されたテストベースと整合
2024.0Python 3.11✅ サポートされています検証済み
2025.0以降Python 3.11✅ 完全サポート主な開発目標

互換性の目標

  • 短期:C4D 2023.1+(Python 3.9および3.10)との互換性を確保する
  • 中期: 不足している MoGraph および Field API の条件付き処理を追加する
  • 長期的: 需要があれば、R23~S26 のサポート用にオプションのレガシープラグインモジュールを検討します。

最近の修正

  • コンテキスト認識:GUIDを用いた堅牢なオブジェクト追跡を実装しました。オブジェクトを作成するコマンドはコンテキスト(GUID、actual_nameなど)を返します。後続のコマンドは、テストハーネス/サーバーから渡されたGUIDを正しく使用して、オブジェクトを確実に検出します。
  • オブジェクトの検索: find_object_by_name を再構築して GUID (数値文字列形式) を正しく処理できるようにし、再帰エラーを修正し、doc.SearchObject が失敗した場合の信頼性を向上しました。
  • GUID 検出: コマンド ハンドラー (apply_material、create_mograph_cloner、add_effector、apply_mograph_fields、set_keyframe、group_objects) は、さまざまなパラメーター (object_name、target、target_name、list items) で渡された識別子が GUID であるかどうかを正しく検出し、それに応じて検索するようになりました。
  • create_mograph_cloner: getattr フォールバックを使用することで、MoGraph パラメータ(MG_LINEAR_PERSTEP など)が不足している場合に発生する AttributeError を修正しました。見つかったオブジェクトがクローン作成時に正しく渡されないロジックのバグを修正しました。
  • レンダリング: render_frame の doc.ExecutePasses 関連の TypeError を修正しました。snapshot_scene は、base64 レンダリングロジックを正しく使用するようになりました。大きな render_frame は依然としてメモリ制限に直面します。
  • 登録: c4d.NilGuid の AttributeError を修正しました。

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    Connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender for AI-assisted 3D modeling, scene manipulation, and rendering.
    Last updated -
    10,093
    Python
    MIT License
    • Apple
  • -
    security
    F
    license
    -
    quality
    Connects Sketchup to Claude AI through the Model Context Protocol, allowing Claude to directly interact with and control Sketchup for prompt-assisted 3D modeling and scene manipulation.
    Last updated -
    20
    • Apple
  • -
    security
    F
    license
    -
    quality
    Connects Houdini to Claude AI through Model Context Protocol, enabling AI-assisted 3D modeling, scene creation, simulation setup, and rendering through natural language commands.
    Last updated -
    37
    • Apple
    • Linux
  • A
    security
    A
    license
    A
    quality
    Integration that connects Sketchup to Claude AI through the Model Context Protocol, allowing Claude to directly interact with and control Sketchup for prompt-assisted 3D modeling, scene creation, and manipulation.
    Last updated -
    10
    4
    MIT License
    • Apple

View all related MCP servers

ID: pknp5ly6l4