ð Advacned Unity MCP Integration
ð Advacned Unity MCP Integration ã«ã€ããŠ
Model Context Protocol ã Unity Editor ã«æ¥ç¶ããããã±ãŒãžã§ãAI ã¢ã·ã¹ã¿ã³ããã·ãŒã³ã®éå±€ããããžã§ã¯ãèšå®ããã°ã確èªãããšãã£ã¿ãŒäžã§ C# ã³ãŒããå®è¡ã§ããŸããC# ãã©ã°ã€ã³ãšãWebSocket ã§éä¿¡ãã Node.js 補㮠MCP ãµãŒããŒã§æ§æãããŠããŸãã
äž»ãªæ©èœ
- 01ãããžã§ã¯ããã¡ã€ã«ã®èªã¿åããšç·šé
- 02ã·ãŒã³é局㚠GameObject ã®ç¢ºèª
- 03Unity Editor ã§ã® C# ã³ãŒãå®è¡
- 04ã³ã³ãœãŒã«ãã°ã®ååŸãšãã£ã«ã¿ãªã³ã°
- 05ãšãã£ã¿ãŒã®åçã¢ãŒãã®å¶åŸ¡
- 06æ¥ç¶ç£èŠçšã® MCP Debug ãŠã£ã³ããŠ
掻çšã·ãŒã³
- 01AI ã¢ã·ã¹ã¿ã³ãã«ããçŸåšã®ã·ãŒã³æ§é ã®ç¢ºèª
- 02Material ã Prefab ãªã©ã®çš®é¡ãæå®ããã¢ã»ããæ€çŽ¢
- 03ãšãã£ã¿ãŒã§ã®ã¹ã¯ãªããå®è¡ãšã³ã³ãœãŒã«ãšã©ãŒã®ç¢ºèª
MCP 察å¿
TypeScript ã§æžããã MCP ãµãŒããŒããããã³ã«ãå®è£ ããWebSocket ã§ Unity ãã©ã°ã€ã³ãšéä¿¡ããŸãããšãã£ã¿ãŒã®ç¶æ ãã·ãŒã³ããã¡ã€ã«ã·ã¹ãã ã®ããŒã«ã MCP ã¯ã©ã€ã¢ã³ãã«å ¬éããŸãã
詳现
ð é«åºŠãª Unity MCP çµ±å
ãã®ããã±ãŒãžã¯ãModel Context Protocol (MCP) ãš Unity Editor ãã·ãŒã ã¬ã¹ã«é£æºããAI ã¢ã·ã¹ã¿ã³ãã Unity ãããžã§ã¯ãããªã¢ã«ã¿ã€ã ã§çè§£ããæäœã§ããããã«ããŸãããã®çµ±åã«ãããAI ã¢ã·ã¹ã¿ã³ãã¯ã·ãŒã³ã®éå±€æ§é ããããžã§ã¯ãèšå®ã«é¢ããæ å ±ã«ã¢ã¯ã»ã¹ããUnity Editor ã®ã³ã³ããã¹ãå ã§ã³ãŒããçŽæ¥å®è¡ã§ããŸãã
ð æ©èœ
- ãããžã§ã¯ããã¡ã€ã«ãçŽæ¥åç §ãæäœã§ããŸã
- Unity ãããžã§ã¯ãã«é¢ãããªã¢ã«ã¿ã€ã æ å ±ã«ã¢ã¯ã»ã¹ã§ããŸã
- ã·ãŒã³ã®éå±€æ§é ãšã²ãŒã ãªããžã§ã¯ããææ¡ã§ããŸã
- Unity Editor ã§ C# ã³ãŒããçŽæ¥å®è¡ã§ããŸã
- ãã°ãšãšã©ãŒãç£èŠã§ããŸã
- Editor ã®ãã¬ã€ã¢ãŒããå¶åŸ¡ã§ããŸã
- ã³ãŒãã®å®è¡å®äºãåŸ æ©ã§ããŸã
ð ã¯ããã«
åææ¡ä»¶
- Unity 2021.3 以é
- Node.js 18+ïŒMCP ãµãŒããŒã®å®è¡ã«å¿ èŠïŒ
ã€ã³ã¹ããŒã«
1. Unity ããã±ãŒãžãã€ã³ã¹ããŒã«ãã
Unity ããã±ãŒãžã¯ãããã€ãã®æ¹æ³ã§ã€ã³ã¹ããŒã«ã§ããŸãã
ãªãã·ã§ã³ AïŒPackage ManagerïŒGit URLïŒ
- Unity Package ManagerïŒ
Window > Package ManagerïŒãéããŸã +ãã¿ã³ãã¯ãªãã¯ããAdd package from git URL...ãéžæããŸã- ãªããžã㪠URL ãå
¥åããŸãïŒ
https://github.com/quazaai/UnityMCPIntegration.git Addãã¯ãªãã¯ããŸã
ãªãã·ã§ã³ BïŒã«ã¹ã¿ã ããã±ãŒãžãã€ã³ããŒããã
- ãã®ãªããžããªãã¯ããŒã³ããããunityPackage ãšããŠããŠã³ããŒãããŸã
- Unity ã§
Assets > Import Package > Custom Packageã«ç§»åããŸã UnityMCPIntegration.unitypackageãã¡ã€ã«ãéžæããŸã
2. MCP ãµãŒããŒãã»ããã¢ãããã
MCP ãµãŒããŒãå®è¡ããæ¹æ³ã¯ 2 ã€ãããŸãã
ãªãã·ã§ã³ AïŒãµãŒããŒãçŽæ¥å®è¡ãã
mcpServer (likely <path-to-project>\Library\PackageCache\com.quaza.unitymcp@d2b8f1260bca\mcpServer\)ãã£ã¬ã¯ããªã«ç§»åããŸã- äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸãïŒ
npm install - ãµãŒããŒãå®è¡ããŸãïŒ
node build/index.js
ãªãã·ã§ã³ BïŒMCP ãã¹ãã®èšå®ã«è¿œå ãã
Claude Desktopãã«ã¹ã¿ã å®è£ ãªã©ã® MCP ãã¹ãèšå®ã«ãµãŒããŒã远å ããŸã
{
"mcpServers": {
"unity-mcp-server": {
"command": "node",
"args": [
"path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js"
],
"env": {
"MCP_WEBSOCKET_PORT": "5010"
}
}
}
}
ãã¢åç»
Smithery çµç±ã§ã€ã³ã¹ããŒã«ãã
Smithery çµç±ã§ Claude Desktop çšã® Unity MCP Integration ãèªåçã«ã€ã³ã¹ããŒã«ããã«ã¯ïŒ
npx -y @smithery/cli install @quazaai/unitymcpintegration --client claude
ð§ äœ¿çšæ¹æ³
ãããã°ãšç£èŠ
Unity ã§ MCP Debug ãŠã£ã³ããŠãéããšãæ¥ç¶ãç£èŠããæ©èœããã¹ãã§ããŸãã
Window > MCP Debugã«ç§»åããŸã- ãããã°ãŠã£ã³ããŠã䜿ã£ãŠãæ¬¡ã®æäœãè¡ããŸãïŒ
- æ¥ç¶ç¶æ ã確èªãã
- ã³ãŒãã®å®è¡ããã¹ããã
- ãã°ã衚瀺ãã
- ã€ãã³ããç£èŠãã
å©çšå¯èœãªããŒã«
Unity MCP çµ±åã¯ãAI ã¢ã·ã¹ã¿ã³ãã«è€æ°ã®ããŒã«ãæäŸããŸãã
Unity ãšãã£ã¿ãŒããŒã«
- get_editor_state: Unity ãããžã§ã¯ããšãšãã£ã¿ãŒã®ç¶æ ã«é¢ããå æ¬çãªæ å ±ãååŸããŸã
- get_current_scene_info: çŸåšã®ã·ãŒã³ã«é¢ãã詳现æ å ±ãååŸããŸã
- get_game_objects_info: ã·ãŒã³å ã®ç¹å®ã® GameObject ã«é¢ããæ å ±ãååŸããŸã
- execute_editor_command: Unity ãšãã£ã¿ãŒã§ C# ã³ãŒããçŽæ¥å®è¡ããŸã
- get_logs: Unity ã³ã³ãœãŒã«ãã°ãååŸããŠãã£ã«ã¿ãªã³ã°ããŸã
- verify_connection: Unity ãšãã£ã¿ãŒãšã®ã¢ã¯ãã£ããªæ¥ç¶ããããã©ããã確èªããŸã
ãã¡ã€ã«ã·ã¹ãã ããŒã«
- read_file: Unity ãããžã§ã¯ãå ã®ãã¡ã€ã«ã®å 容ãèªã¿èŸŒã¿ãŸã
- read_multiple_files: è€æ°ã®ãã¡ã€ã«ãäžåºŠã«èªã¿èŸŒã¿ãŸã
- write_file: æ°ããå 容ã§ãã¡ã€ã«ãäœæãŸãã¯äžæžãããŸã
- edit_file: å·®åãã¬ãã¥ãŒä»ãã§æ¢åãã¡ã€ã«ãã¿ãŒã²ããæå®ããŠç·šéããŸã
- list_directory: ãã£ã¬ã¯ããªå ã®ãã¡ã€ã«ãšãã©ã«ãã®ãªã¹ããååŸããŸã
- directory_tree: ãã£ã¬ã¯ããªãšãã¡ã€ã«ã®éå±€ãã¥ãŒãååŸããŸã
- search_files: æ€çŽ¢ãã¿ãŒã³ã«äžèŽãããã¡ã€ã«ãèŠã€ããŸã
- get_file_info: ç¹å®ã®ãã¡ã€ã«ãŸãã¯ãã£ã¬ã¯ããªã®ã¡ã¿ããŒã¿ãååŸããŸã
- find_assets_by_type: ç¹å®ã®ã¿ã€ãã®ãã¹ãŠã®ã¢ã»ãã (MaterialãPrefab ãªã©) ãèŠã€ããŸã
- list_scripts: ãããžã§ã¯ãå ã®ãã¹ãŠã® C# ã¹ã¯ãªããã®ãªã¹ããååŸããŸã
ãã¡ã€ã«ãã¹ã¯çµ¶å¯Ÿãã¹ãŸã㯠Unity ãããžã§ã¯ãã® Assets ãã©ã«ããåºæºãšããçžå¯Ÿãã¹ã§æå®ã§ããŸããäŸãã°ã"Scenes/MyScene.unity" 㯠<project>/Assets/Scenes/MyScene.unity" ãæããŸãã
ã¢ãŒããã¯ãã£
çµ±åã«ã¯ 2 ã€ã®äž»èŠãªã³ã³ããŒãã³ãããããŸãã
- Unity ãã©ã°ã€ã³ (C#): Unity ãšãã£ã¿ãŒå ã«ååšãããšãã£ã¿ãŒ API ãžã®ã¢ã¯ã»ã¹ãæäŸããŸã
- MCP ãµãŒã㌠(TypeScript/Node.js): MCP ãããã³ã«ãå®è£ ããUnity ãã©ã°ã€ã³ãšéä¿¡ããŸã
ãããéã®é信㯠WebSocket ãä»ããŠè¡ãããã³ãã³ããšããŒã¿ã® JSON ã¡ãã»ãŒãžã転éããŸãã
ãã¡ã€ã«ã·ã¹ãã ã¢ã¯ã»ã¹
Unity MCP çµ±åã«ã¯ãAI ã¢ã·ã¹ã¿ã³ãã以äžãè¡ãããšãã§ãã匷åãªãã¡ã€ã«ã·ã¹ãã ããŒã«ãå«ãŸããŠããŸãã
- Unity ãããžã§ã¯ãå ã®ãã¡ã€ã«ã®åç §ãèªã¿èŸŒã¿ãç·šé
- æ°ãããã¡ã€ã«ãšãã£ã¬ã¯ããªã®äœæ
- ç¹å®ã®ãã¡ã€ã«ãŸãã¯ã¢ã»ããã¿ã€ãã®æ€çŽ¢
- ãããžã§ã¯ãæ§é ã®åæ
- å·®åãã¬ãã¥ãŒä»ãã®ã¿ãŒã²ããæå®ãããã³ãŒã倿Ž
ãã¹ãŠã®ãã¡ã€ã«æäœã¯ã»ãã¥ãªãã£ã®ããã« Unity ãããžã§ã¯ããã£ã¬ã¯ããªã«å¶éãããŸãããã®ã·ã¹ãã ã¯çµ¶å¯Ÿãã¹ãšçžå¯Ÿãã¹ã®äž¡æ¹ãã€ã³ããªãžã§ã³ãã«åŠçããå©äŸ¿æ§ã®ããã«åžžã«ãããžã§ã¯ãã® Assets ãã©ã«ããåºæºãšããŠè§£æ±ºããŸãã
䜿çšäŸ:
- ãã£ã¬ã¯ããªãªã¹ããååŸ:
list_directory(path: "Scenes") - ã¹ã¯ãªãããã¡ã€ã«ãèªã¿èŸŒã¿:
read_file(path: "Scripts/Player.cs") - èšå®ãã¡ã€ã«ãç·šé:
edit_file(path: "Resources/config.json", edits: [{oldText: "value: 10", newText: "value: 20"}], dryRun: true) - ãã¹ãŠã®ãããªã¢ã«ãæ€çŽ¢:
find_assets_by_type(assetType: "Material")
è²¢ç®
è²¢ç®ãæè¿ããŸããè²¢ç®æ¹æ³ã¯ä»¥äžã®éãã§ãã
- ãªããžããªããã©ãŒã¯ããŸã
- ãã£ãŒãã£ãŒãã©ã³ããäœæããŸã (
git checkout -b feature/amazing-feature) - 倿Žãå ããŸã
- 倿Žãã³ãããããŸã (
git commit -m 'Add some amazing feature') - ãã©ã³ãã«ããã·ã¥ããŸã (
git push origin feature/amazing-feature) - ãã«ãªã¯ãšã¹ããéããŸã
éçºã»ããã¢ãã
Unity åŽ:
- Unity ã§ãããžã§ã¯ããéããŸã
UnityMCPConnection/Editorãã£ã¬ã¯ããªã® C# ã¹ã¯ãªããã倿ŽããŸã
ãµãŒããŒåŽ:
mcpServerãã£ã¬ã¯ããªã«ç§»åããŸã- äŸåé¢ä¿ãã€ã³ã¹ããŒã«ããŸã:
npm install srcãã£ã¬ã¯ããªå ã® TypeScript ãã¡ã€ã«ã倿ŽããŸã- ãµãŒããŒããã«ãããŸã:
npm run build - ãµãŒããŒãå®è¡ããŸã:
node build/index.js
ã©ã€ã»ã³ã¹
ãã®ãããžã§ã¯ã㯠MIT ã©ã€ã»ã³ã¹ã®äžã§ã©ã€ã»ã³ã¹ãããŠããŸãã詳现㯠LICENSE ãã¡ã€ã«ãåç §ããŠãã ããã
ãµããŒã
åé¡ãçºçããå ŽåããŸãã¯ã質åãããå Žåã¯ãGitHub ãªããžããªã§ Issue ãå ±åããŠãã ããã
ã³ã¡ã³ã
MCP ã¯åããŠã§ããïŒ
ãããã³ã«ã®æŠèŠããæåã®ãµãŒããŒã®å°å ¥ãŸã§ãããããçåã«ãŸãšããŠçããŸãã
AI ã¢ããªã±ãŒã·ã§ã³ãå€éšã®ããŒã«ãããŒã¿ãœãŒã¹ã«çµ±äžçãªæ¹æ³ã§æ¥ç¶ããããã®ãªãŒãã³ãªãããã³ã«ã§ããã¯ã©ã€ã¢ã³ãã¯ã¢ãã«ãšã®å¯Ÿè©±ãæ ããMCP ãµãŒããŒã¯ããŒã«ã»ãªãœãŒã¹ã»ããã³ãããã³ãã¬ãŒããæäŸããŸããæšæºã¡ãã»ãŒãžã§ããåãããããã1 ã€ã®ãµãŒããŒãè€æ°ã®ã¯ã©ã€ã¢ã³ãã§åå©çšã§ããŸãã
