水曜日, 4月 30, 2025
ホームニューステックニュースAI VJ時代の幕開け? TouchDesigner MCP serverを作った話。

AI VJ時代の幕開け? TouchDesigner MCP serverを作った話。



世界で初めてAIと「もっとわっさ〜とダイナミックに動かして」を分かりあった瞬間です。

https://youtu.be/V2znaqGU7f4?si=-BEB9nOOdUgRFWOb&t=635

成果物

https://github.com/8beeeaaat/touchdesigner-mcp

https://www.npmjs.com/package/touchdesigner-mcp-server

本稿では、AIエージェントを活用してTouchDesignerをよりアクセスしやすくし、初心者やアーティストが自分のアイデアを簡単に実現できる(可能性を秘めた)MCPサーバーを開発した経緯と概要、特徴、開発の裏話、そして未来の可能性について紹介します!

TouchDesigner とは?

TouchDesigner は、メディアアーティスト、VJ、インタラクティブデザイナーがリアルタイムのビジュアルや没入型の体験を生み出すためのノードベースのビジュアルプログラミングツールです。
ライブパフォーマンスやアートインスタレーションで使われることが多く、プロフェッショナルの現場でも用いられているツールです。

学習コストの高さが課題

しかし、初心者にとっては課題があります。
数百種に登るノードの種類やそれに紐づくパラメータの多さ、Pythonスクリプトの知識が必要なため、学習コストが高いのです。
AIの登場により、課題解決をAIと並走することができる様になったとは言え「それ、AIがやってよ〜」となるのが人間の業です。

この壁にぶち当たったユーザー(私)の課題を解決するべく、このMCPサーバーの開発を始めました。

https://x.com/8beeeaaat/status/1908302189774487610

MCPで初学者の「守・破・離」を高速化

一部の方には耳タコかもしれませんが、 Model Context Protocol (MCP) とは、アプリケーションが大規模言語モデル(LLM)にコンテキストを提供する方法を標準化するオープンなプロトコルです。例えるなら、AIアプリケーションのための「USB-Cポート」のようなもので、データソースやツールとの標準化された接続を可能にします(MCP公式ドキュメント)。

TouchDesigner MCPは、このプロトコルをTouchDesignerに適用したものです。
具体的には、AIエージェントがTouchDesignerのWebServer DATを通じてプロジェクトを操作できるようにするブリッジです。
WebServer DAT は TouchDesignerにバンドルされた Pythonで HTTP/HTTPS/WebSocket サーバを立ち上げてくれるモジュールです

http://ted-kanakubo.com/touchdesigner-jp/?p=2903

このMCPサーバーによって、AIエージェントが初学者であるユーザーの意図に近い表現を生成し、ユーザーはその結果を調整しながら学びを深められます。
これによって TouchDesigner 初学者の「守・破・離」を高速化できる と考えています。

また、ユーザーが作った表現をAIエージェントがパラメータ操作を行うことで表現の改善やVJの様に振る舞うことができる様になります。

https://x.com/8beeeaaat/status/1915023583883235653

主な特徴と技術的工夫

TouchDesigner MCPは、クリエイティブな作業を効率化し、初心者でも扱いやすい MCP tool / promptを提供します。
Claude Desktop、Cursor、VSCode CopilotChatなどのAIエージェントと連携が可能となり、これにより、ユーザーは自然言語で指示を出し、AIがTouchDesigner内で適切な操作を実行することができます。
つまり一々プロンプトを考えてAIに回答を出してもらって自分で実装するといった手間を省くことができます。

1. ノード操作の自動化

TouchDesigner MCPは、AIエージェントがノードを自由に操作できるツールを提供します。具体的には:

  • ノードの作成・削除・更新create_td_nodedelete_td_nodeなどのツールで、ノードを動的に操作。
  • プロパティの取得get_td_node_parametersget_td_infoで、ノードやプロジェクトの詳細をクエリ。
  • メソッド実行exec_node_methodでノードの関数を直接呼び出し。

これにより、ユーザーは複雑なノード設定をAIに任せ、クリエイティブな部分に集中できます。

2. Pythonスクリプトの自動実行

TouchDesigner MCPは、TouchDesignerのPython環境でスクリプトを自動実行する機能を備えています。たとえば、Execute DATを作成し、Pythonコードを直接記述してノードを操作できます。
これにより、複雑な処理もAIエージェントに委ねられ、ユーザーの負担が軽減されます。

https://x.com/8beeeaaat/status/1915017503442608360

3. エラーの自己解析と修正

TouchDesignerのエラーは原因を特定するのが難しいことがありますが、MCP promptによりエラーを再帰的に解析し、修正案を提案します。
たとえば、パーティクルシステムのエミッターが見つからない場合、詳細なエラーレポートを生成し、修正をサポートします。この機能は、初心者にとって特に価値があります。本当にデバッグが大変なので…。

https://x.com/8beeeaaat/status/1916497908985188783

OpenAPIスキーマベースでZodスキーマ / APIクライアントコード / PythonのAPIサーバ コントローラ / サービスを開発

YAMLを書くだけでまるっとクライアントコードとバリデータを吐き出せるようにしたので、改善が容易になっています。

https://github.com/8beeeaaat/touchdesigner-mcp?tab=readme-ov-file#touchdesigner-setup

事例: 世界初のAIによるパーティクルシステム構築

AIエージェントだけで TouchDesigner を用いてパーティクルシステムを構築した(きっと多分)世界初の事例です。

https://x.com/8beeeaaat/status/1914841038667309154

パーティクルシステムは、煙や火花のような視覚効果を作成するもので、通常は複雑なノード設定が必要です。MCPを使えば、初心者でもこのような複雑な表現を簡単に実現できます。
この模様の全編は、YouTube動画でも公開しています。

https://www.youtube.com/watch?v=V2znaqGU7f4

ユーザーさんからのお喜びの声

https://x.com/moma42105016/status/1916857725738516943

開発の苦労と解決策

TouchDesigner MCPの開発は、決して簡単ではありませんでした。以下は主な課題とその解決策です:

そもそもMCPから直接アクセスするエンドポイントが TouchDesginer に生えていない

APIが公開されていたりするプロダクトですと、そのエンドポイントをリクエストするだけの実装で済みます。
TouchDesigner には外部公開されているエンドポイントが無いため、WebServer DATと連動するAPIコントローラを全てPythonで自前で実装する必要がありました。
普段Pythonを一切書かないため、Copilotにサポートしてもらいながらtoolsに対応するエンドポイントを全て自分で実装しました。

ノードタイプ / プロパティが膨大でスキーマ定義がつらい

TouchDesignerには、データ処理に使用されるノード(オペレータ)とそのプロパティが膨大に存在します。
当初の設計ではこれらすべてに対してZodスキーマを作成する必要がありました。

https://x.com/8beeeaaat/status/1911949723877171312

解決策:MCPに自身のtoolを使ってZodスキーマを量産させる荒技で解決

https://x.com/8beeeaaat/status/1909383812569874540

ちなみにこのZodはその後の設計修正で削除されました😂

またTouchDesignerのノードUIに表示されるプロパティ名(例:「Output Resolution」)と、内部で使用されるキー(例:「Outputres」)が一致しない問題がありました。
この不一致により、プログラムでノードを操作する際に手動でマッピングする必要があり、私は「人間パーサー」になることを余儀なくされました。

https://x.com/8beeeaaat/status/1911930909932282278

今後の展望

TouchDesigner MCPは、まだ発展途上ですが、未来の可能性は無限大だと思っています。
例えば:

  • YouTubeチュートリアルとの連携:AIエージェントがTouchDesignerのチュートリアル動画から手順を抽出し、プロジェクトを再現する機能。これにより、初心者は動画を見ながら実際のプロジェクトを試せ、学習が直感的になります。

  • コミュニティの拡大:オープンソースプロジェクトとして、MCPは他の開発者やアーティストとのコラボレーションを促進します。ToolのZodスキーマやAPIクライアントコード / WebServer DATのルーティングコードはOpenAPIスキーマから生成できる様にしているで、簡単にプロジェクトに参加できます。(多分)

  • AI VJ時代の幕開け:MCPがライブビジュアルパフォーマンス(VJ)の新しい時代を切り開く…はず。

https://x.com/8beeeaaat/status/1914841038667309154

直球ですが、拡散をお願いします!!

TouchDesigner MCPは、TouchDesignerコミュニティにとって革新的なツールです。AIエージェントを活用することで、初心者やメディアアーティストが複雑なビジュアルプログラミングにアクセスしやすくなり、クリエイティブな表現の幅が広がります。

今後、YouTubeとの連携やさらなる機能追加により、TouchDesigner MCPはアーティストやクリエイターにとって欠かせない存在になると良いな〜と思いながら今後も開発を進めていきます!

是非このMCP serverを使った感想をXに呟いてください!モチベーションが高まるので!!

https://x.com/8beeeaaat/status/1916819617126768840

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

RELATED ARTICLES

返事を書く

あなたのコメントを入力してください。
ここにあなたの名前を入力してください

- Advertisment -

Most Popular