🚀 Ludo AI MCP Server
Model Context Protocol (MCP) を通じて、AIを利用してゲームアセットを生成します。
✨ 主な機能
| カテゴリ |
機能 |
| 画像 |
スプライト、アイコン、スクリーンショット、背景、UIアセット、テクスチャ、背景削除 |
| 3Dモデル |
2D画像をPBRテクスチャ付きのGLBモデルに変換 |
| アニメーション |
静的なスプライトからアニメーションスプライトシートを生成 (4 - 64フレーム)、ビデオまたはプリセットからモーションを転送 |
| ビデオ |
画像から短いビデオを生成 (3 - 10秒) |
| オーディオ |
効果音、BGM、キャラクターの声、テキスト読み上げ |
🚀 クイックスタート
1. APIキーの取得
ludo.ai でサインアップし、app.ludo.ai からAPIキーを取得します。
2. MCPクライアントの設定
Claude Desktop
macOSの場合は ~/Library/Application Support/Claude/claude_desktop_config.json、Windowsの場合は %APPDATA%\Claude\claude_desktop_config.json に以下を追加します。
{
"mcpServers": {
"ludo": {
"url": "https://mcp.ludo.ai/mcp",
"headers": {
"Authorization": "ApiKey YOUR_API_KEY"
}
}
}
}
Cursor
Cursorの設定でMCP設定に以下を追加します。
{
"mcpServers": {
"ludo": {
"url": "https://mcp.ludo.ai/mcp",
"headers": {
"Authorization": "ApiKey YOUR_API_KEY"
}
}
}
}
💻 使用例
利用可能なツール
画像生成 (createImage)
スプライト、アイコン、背景、UIアセット、テクスチャを生成します。
| パラメータ |
必須 |
説明 |
prompt |
はい |
画像の詳細な説明 |
image_type |
はい |
sprite, icon, screenshot, art, asset, sprite-vfx, ui_asset, fixed_background, texture, 3d, generic |
art_style |
いいえ |
Pixel Art (16-Bit), Pixel Art (8-Bit), Low Poly, Cartoonish, Stylized 3D, Flat Design, Anime/Manga, Voxel Art, など |
perspective |
いいえ |
Side-Scroll, Top-Down, Isometric, First-Person, Third-Person, 2.5D |
aspect_ratio |
いいえ |
default, ar_1_1, ar_4_3, ar_16_9, ar_9_16 |
n |
いいえ |
バリエーションの数 (1 - 8、デフォルト: 1) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 画像1枚につき0.5
画像編集 (editImage)
テキスト指示を使って既存の画像を変更します (スマート編集)。
| パラメータ |
必須 |
説明 |
image |
はい |
編集する画像のURLまたはBase64エンコードされた画像 |
prompt |
はい |
変更内容の説明 (例: "背景を削除する", "暗くする", "空に雲を追加する") |
reference_image |
いいえ |
スタイル/コンテンツのガイドとして使用する参照画像のURLまたはBase64 |
n |
いいえ |
バリエーションの数 (1 - 4、デフォルト: 1) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 画像1枚につき0.5
スタイル付き生成 (generateWithStyle)
参照画像のビジュアルスタイルを維持しながら新しいコンテンツを生成します。
| パラメータ |
必須 |
説明 |
style_image |
はい |
スタイルマッチングのための参照画像のURLまたはBase64エンコードされた画像 |
prompt |
はい |
生成する内容の説明 (例: "戦士キャラクター", "宝箱") |
image_type |
はい |
sprite, icon, screenshot, art, asset, sprite-vfx, ui_asset, fixed_background, texture, 3d, generic |
n |
いいえ |
バリエーションの数 (1 - 4、デフォルト: 1) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 画像1枚につき0.5
ポーズ生成 (generatePose)
既存のスプライトの新しいポーズを生成します。animateSprite の前にこれを使用することで、最適なアニメーション結果を得ることができます - 開始ポーズは意図したアニメーションに合わせる必要があります。
| パラメータ |
必須 |
説明 |
image |
はい |
URLまたはBase64エンコードされたスプライト画像 |
pose |
はい |
ターゲットポーズ: Idle (Front), Idle (Back), Walk / Run (Left), Attack Ready, Jumping, Crouching, Flying, Defending / Blocking, または任意のカスタム説明 |
description |
いいえ |
ポーズ生成をガイドするための追加指示 |
n |
いいえ |
バリエーションの数 (1 - 4、デフォルト: 1) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
返り値: url, pose, motion_prompt
例のワークフロー:
generatePose で "Walk / Run (Left)" ポーズを生成する
- 返された
motion_prompt を animateSprite で直接使用して、最適なアニメーション結果を得る
クレジット: 画像1枚につき0.5
背景削除 (removeImageBackground)
画像から背景を削除し、透過PNGを返します。
| パラメータ |
必須 |
説明 |
image |
はい |
URLまたはBase64エンコードされた画像 |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
返り値: url (透過PNG)
クレジット: 画像1枚につき0.5
3Dモデル生成 (create3DModel)
2D画像をテクスチャ付きの3D GLBモデルに変換します。
| パラメータ |
必須 |
説明 |
image |
はい |
URLまたはBase64エンコードされた画像 |
texture_type |
いいえ |
pbr (デフォルト), simple, none |
texture_size |
いいえ |
1024, 2048 (デフォルト), 4096 |
target_num_faces |
いいえ |
三角形の数 1,000 - 100,000 (デフォルト: 50,000) |
high_detail_shape |
いいえ |
複雑な形状の場合は有効にする (処理が遅くなります) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
返り値: model_url (GLBファイル) + 異なる角度からの4枚のスナップショット画像
クレジット: モデル1つにつき3
処理時間: 60 - 120秒
スプライトアニメーション (animateSprite)
静的画像からアニメーションスプライトシートを作成します。
| パラメータ |
必須 |
説明 |
initial_image |
はい |
開始フレームのURLまたはBase64 |
motion_prompt |
はい |
アニメーションの説明 (例: "歩行サイクル", "待機時の呼吸", "攻撃のスラッシュ") |
image_type |
いいえ |
sprite, sprite-vfx, ui_asset |
frames |
いいえ |
4, 9, 16, 25, 36 (デフォルト), 49, 64 |
frame_size |
いいえ |
64, 128, 256 (デフォルト), 0 (最大解像度) |
loop |
いいえ |
シームレスなループ (デフォルト: true) |
model |
いいえ |
standard (デフォルト) または new (高品質) |
duration |
いいえ |
標準: 1.2 - 3秒、新: 4秒 |
final_image |
いいえ |
補間のための終了フレーム |
gif |
いいえ |
アニメーションGIFを生成する (デフォルト: false) |
individual_frames |
いいえ |
個々のフレーム画像を抽出する (デフォルト: false) |
spritesheet_with_background |
いいえ |
背景削除前の背景がそのままのスプライトシートも返す (デフォルト: false) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
返り値: spritesheet_url, video_url, gif_url, individual_frame_urls, spritesheet_with_background_url, individual_frame_with_background_urls, num_frames, num_cols, num_rows
クレジット: アニメーション1つにつき5
処理時間: 30 - 90秒
アニメーションプリセット (listAnimationPresets)
モーション転送に使用する利用可能なアニメーションプリセットをリストします。プリセットアニメーション、パースペクティブ、方向を返します — ビデオURLは公開されません。
返り値:
animations — id, name, category, description, duration, preview_url を持つプリセットの配列
perspectives — id, name, description を持つ配列 (すべてのアニメーションはすべてのパースペクティブをサポートします)
directions — ["N", "NE", "E", "SE", "S", "SW", "W", "NW"] (すべてのアニメーションはすべての方向をサポートします)
クレジット: 無料
モーション転送 (transferMotion)
ビデオまたはアニメーションプリセットから静的なスプライトにモーションを転送し、アニメーションスプライトシートを生成します。
| パラメータ |
必須 |
説明 |
image |
はい |
URLまたはBase64エンコードされたスプライト画像 |
video |
いいえ |
モーションソースとして使用するビデオのURL。animateSprite エンドポイントからのビデオを使用するか、独自のビデオを提供できます。4秒以内のビデオを使用すると、より良い結果が得られます。video または preset_id + perspective + direction のいずれかを提供する必要があります。 |
preset_id |
いいえ |
ビデオURLの代わりに使用するアニメーションプリセットのID。animation-presets エンドポイントを使用して、利用可能なプリセットをリストします。プリセットを使用する場合、perspective と direction が必要です。 |
direction |
いいえ |
アニメーションプリセットの方向。プリセットを使用する場合、direction は必須です。値: N, NE, E, SE, S, SW, W, NW |
perspective |
いいえ |
アニメーションプリセットと共に使用するパースペクティブID。プリセットを使用する場合、perspective は必須です。 |
frames |
いいえ |
出力スプライトシートのフレーム数 |
frame_size |
いいえ |
各フレームのピクセル単位のサイズ |
loop |
いいえ |
シームレスなループのためにアニメーションをトリミングする |
crop |
いいえ |
コンテンツに合わせてフレームを切り抜く |
margin_ratio |
いいえ |
スプライトの周りの余白 (0.0 - 1.0) |
margin_ratio_mode |
いいえ |
manual (デフォルト), none |
gif |
いいえ |
アニメーションGIFを生成する (デフォルト: false) |
individual_frames |
いいえ |
個々のフレーム画像を抽出する (デフォルト: false) |
spritesheet_with_background |
いいえ |
背景削除前の背景がそのままのスプライトシートも返す (デフォルト: false) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
返り値: spritesheet_url, video_url, gif_url, individual_frame_urls, spritesheet_with_background_url, individual_frame_with_background_urls, num_frames, num_cols, num_rows
クレジット: 転送1回につき5
ビデオ生成 (createVideo)
画像から短いビデオを生成します。
| パラメータ |
必須 |
説明 |
image |
はい |
開始フレームのURLまたはBase64 |
prompt |
はい |
モーションの説明 (例: "カメラがズームインする", "キャラクターが前に歩く") |
duration |
いいえ |
3, 5 (デフォルト), 8, 10 秒 |
model |
いいえ |
standard (デフォルト) または new |
final_image |
いいえ |
補間のための終了フレーム |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 3秒 = 5、5秒 = 8、8秒 = 12、10秒 = 15
効果音生成 (createSoundEffect)
テキスト説明からゲームの効果音を生成します。
| パラメータ |
必須 |
説明 |
description |
はい |
音の説明 (例: "レーザーガンの発射音", "砂利道の足音", "コインの取得音") |
duration |
いいえ |
0 - 10秒 (0 = 自動) |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 音1つにつき3
音楽生成 (createMusic)
BGMやテーマを生成します。
| パラメータ |
必須 |
説明 |
description |
はい |
音楽の説明 (例: "壮大なオーケストラの戦闘テーマ", "穏やかなピアノメロディ", "8ビットチップトゥーン") |
lyrics |
いいえ |
ボーカルトラックのオプションの歌詞 |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: トラック1つにつき3
声生成 (createVoice)
独自のキャラクターの声を生成します。
| パラメータ |
必須 |
説明 |
voice_description |
はい |
キャラクターの説明 (例: "かっこいい老戦士", "元気な少女") |
text |
はい |
読み上げるテキスト (最大200文字) |
type |
いいえ |
human (デフォルト) または non-human |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 声1つにつき3
テキスト読み上げ (createSpeech)
音声サンプルから声をクローンします。
| パラメータ |
必須 |
説明 |
text |
はい |
読み上げるテキスト (最大1000文字) |
sample |
はい |
声のクローン用の音声サンプルのURLまたはBase64 |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 生成1回につき3
テキスト読み上げプリセット (createSpeechPreset)
テキスト読み上げにプリセットの声を使用します。
| パラメータ |
必須 |
説明 |
text |
はい |
読み上げるテキスト (最大1000文字) |
voice_preset_id |
はい |
Serious woman, Wise woman, Calm woman, Patient man, Determined man, Deep voice man, Teen boy, Sweet girl, など |
emotion |
いいえ |
Default, Happy, Sad, Angry, Fearful, Surprised, Neutral |
language |
いいえ |
auto, English, Spanish, French, German, Japanese, Korean, など |
request_id |
いいえ |
後で結果を取得するためにクライアントが提供するID |
クレジット: 生成1回につき3
画像結果の取得 (getImageResults)
最近APIで生成した画像を取得します。
| パラメータ |
必須 |
説明 |
request_id |
いいえ |
特定のリクエストにフィルタリングする |
返り値: url, request_id, created_at を持つ画像オブジェクトの配列
クレジット: 無料
スプライト結果の取得 (getSpriteResults)
最近APIで生成したスプライトシートを取得します。
| パラメータ |
必須 |
説明 |
request_id |
いいえ |
特定のリクエストにフィルタリングする |
返り値: request_id, created_at を持つスプライトシートオブジェクトの配列
クレジット: 無料
ビデオ結果の取得 (getVideoResults)
最近APIで生成したビデオを取得します。
| パラメータ |
必須 |
説明 |
request_id |
いいえ |
特定のリクエストにフィルタリングする |
返り値: url, request_id, created_at を持つビデオオブジェクトの配列
クレジット: 無料
オーディオ結果の取得 (getAudioResults)
最近APIで生成したオーディオを取得します。
| パラメータ |
必須 |
説明 |
request_id |
いいえ |
特定のリクエストにフィルタリングする |
返り値: request_id, created_at を持つオーディオオブジェクトの配列
クレジット: 無料
3Dモデル結果の取得 (get3DModelResults)
最近APIで生成した3Dモデルを取得します。
| パラメータ |
必須 |
説明 |
request_id |
いいえ |
特定のリクエストにフィルタリングする |
返り値: request_id, created_at を持つ3Dアセットオブジェクトの配列
クレジット: 無料
非同期使用方法
request_id を使用して、放っておいて結果を後で取得するワークフローを構築できます。生成リクエストに request_id を付けて送信し、結果が準備できたら対応する結果エンドポイントをポーリングして出力を取得します — 接続を開いたままにする必要はありません。
- 生成リクエストに
request_id を渡す
- 対応する結果エンドポイントをポーリングして出力を取得する
# スプライトアニメーションを実行
animateSprite with request_id="my-anim-001", initial_image="url", motion_prompt="walking"
# 準備ができたら結果を取得
getSpriteResults with request_id="my-anim-001"
すべての生成エンドポイントは、オプションの request_id パラメータを受け付けます。結果は7日間利用可能で、各結果エンドポイントは最大100個の最近APIで生成されたアセットを返します。
プロンプトの例
ゲームアセットの作成
Create a pixel art knight character with sword and shield, side view, 16-bit style
Generate an isometric treasure chest icon for a mobile RPG
Create a low-poly stylized tree for a casual mobile game
アニメーション
Animate this character with a smooth walking cycle, 16 frames
Create an idle breathing animation for this character sprite
Animate this fire sprite as a looping VFX effect
オーディオ
Create a satisfying coin pickup sound effect for a platformer
Generate an epic orchestral boss battle theme, intense and dramatic
Create a voice for a wise old wizard saying "The journey begins now"
📚 ドキュメント
すべてのパラメータとレスポンス形式を含む完全なAPIドキュメント: api.ludo.ai/api-documentation
サポート
📄 ライセンス
独自のライセンス - 利用規約については ludo.ai/terms を参照してください。