SPINE2D Animation MCP Server について
spine2d-mcp は、レイヤー構造の PSD キャラクターを Spine 4.2 プロジェクト(スケルトン JSON、テクスチャアトラス、アトラス PNG)に変換する MCP サーバーです。Spine エディターや Unity へのキャラクターのリギングと取り込みを行う開発者やアーティストを対象としています。現在はフェーズ 0 で、実際の PSD を使った Spine エディターや Unity での検証はこれからです。
主な機能
- 01部位名のPSDレイヤーをSpine 4.2プロジェクトに変換
- 02スケルトンJSON、atlasファイル、アトラスPNGを出力
- 03中間ボーンを補完する多段のボーン階層
- 04画像中心ではなく関節端を基準とするピボット設定
- 05PSDの描画順をSpineのスロット順として保持
- 06Spine 4.2 リーダーの規則に基づくスケルトン検証
活用シーン
- 01キャラクターのPSDから初期のSpineリグを生成
- 02Unityプロジェクト向けにSpineキャラクターアセットを準備
- 03MCPクライアントからパス指定でインポートツールを呼び出し
MCP 対応
stdio 方式の MCP サーバーで、単一のツール import_psd_to_spine を提供します。PSD のパスを受け取り、プロジェクト、アトラス、PNG のファイルパスを返します。Claude Desktop や Claude Code などの MCP クライアントから変換処理を実行できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
spine2d-mcp
レイヤー構造のPSDキャラクターを、Spine 4.2プロジェクト(スケルトンJSON、テクスチャアトラス、アトラスページPNG)に変換するMCPサーバーです。SpineエディターやUnityにインポートできる形式で出力します。
キャラクターのリギングとインポートにかかる手作業を、数日からおよそ1時間に短縮することを目指しています。
ステータス
フェーズ0(概念実証): PSD → 正しくインポートできるリグ(アニメーションはまだありません)。
パイプラインは実装済みで、合成フィクスチャを使ったテストも行っています。SpineエディターやUnityで実際のPSDを検証する作業はまだで、次のマイルストーンとなります。アニメーション生成、ヘッドレスプレビュー、Unityへのエクスポートは後続フェーズで予定しています。
現在できること
ボディパーツ(head、body/torso、arm_left、hand_right、leg_left、foot_right、…)の名前が付いたレイヤーを持つPSDを入力すると、import_psd_to_spineツールが次のファイルを生成します。
<name>.json— Spine 4.2スケルトン(ボーン、スロット、デフォルトスキン、リージョンアタッチメント)<name>.atlas— libgdx/Spineテクスチャアトラス<name>.png— パッキングされたアトラスページ
主な動作:
- 複数セグメントのスケルトン(
root → hip → torso → chest → neck → head。腕はchest、脚はhipに接続)。中間ボーンがない場合は、位置を設定した仮想ボーンを作成します。 - 関節に沿ったピボット — 各ボーンは画像の中心ではなく、パーツの関節側の端(または明示的な
<part>[pivot]マーカーレイヤー)をピボットにするため、解剖学的に自然な回転になります。 - PSDの描画順序をSpineのスロット順序として保持します。
- Spine 4.2リーダーが適用する不変条件に照らして、スケルトンを構造的に検証します。
フォーマットの正式な参照元:reference/SkeletonJson.java(spine-runtimes 4.2)。
要件
- Python 3.11+
- uv
セットアップ
uv sync
テストの実行
uv run pytest
MCPサーバーの実行
uv run spine2d-mcp
これにより、単一のツールを公開するstdio MCPサーバーが起動します。
import_psd_to_spine(psd_path: str, out_dir: str | None = None)
-> { project_path, atlas_path, png_paths }
MCPクライアント(例:Claude Desktop/Claude Code)からこのサーバーに接続し、パスを指定してPSDをインポートするよう依頼してください。
プロジェクト構成
src/spine2d_mcp/
server.py FastMCP server + import_psd_to_spine tool
pipeline.py PSD -> Spine project orchestration
psd/parser.py PSD -> flat layer list (+ pivot markers)
psd/conventions.py bone hierarchy, joint sides, [pivot] tag
spine/schema.py Pydantic models for Spine 4.2 JSON
spine/builder.py layers -> SpineProject
spine/writer.py SpineProject -> JSON
spine/validator.py structural validation
atlas/packer.py rectpack bin packing
atlas/writer.py .atlas text + composite PNG
reference/ SkeletonJson.java, spineboy.atlas (format references)
tests/ pytest suite (synthetic PSD fixtures)
ライセンス
このプロジェクトはMIT Licenseのもとで公開されています。
ソフトウェアの実質的な部分とともに、元の著作権表示およびライセンステキストを含めることを条件として、ソフトウェアの使用、複製、変更、結合、公開、配布、サブライセンス、および販売を行うことができます。
ソフトウェアは「現状有姿」で提供され、いかなる種類の保証もありません。ライセンスの全文はLICENSEをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。