Unity 中由 AI 驅動的粒子系統:ParticleSystem 擴充功能
讓 AI 代理讀取並修改 Unity 中全部 24 個 ParticleSystem 模組,用自然語言提示就能製作火焰、煙霧與魔法特效。

Unity 的 ParticleSystem 是引擎中最強大 —— 也最複雜 —— 的元件之一。它有 24 個獨立模組、數百個參數與層層巢狀的設定,手動調整一個粒子特效意味著要在無止境的 Inspector 面板中不斷點擊。如果能直接告訴 AI「做出從橘色漸變為透明的火焰粒子」,幾秒內就完成,那會怎樣?Unity-AI-ParticleSystem 擴充功能正是為此而生。
什麼是 Unity-AI-ParticleSystem?
Unity-AI-ParticleSystem 是 AI Game Developer 的擴充功能,新增兩個 MCP 工具 —— particle-system-get 與 particle-system-modify —— 讓 AI 代理能完整讀寫 Unity 專案中的每一個 ParticleSystem 模組。它可搭配任何支援 MCP 的 AI 用戶端:Claude Code、VS Code Copilot、Cursor、Windsurf 等等。
兩個工具,全面涵蓋
這個擴充功能只提供兩個 MCP 工具,但已涵蓋一切。get 工具會讀取任何 ParticleSystem 的目前狀態,modify 工具則套用區域更新 —— 只變更你指定的屬性,其餘維持原樣。
particle-system-get
取得 ParticleSystem 的完整狀態,包括播放狀態(isPlaying、isPaused、particleCount)以及其 24 個模組的任意組合。你可以指定個別模組,或使用 includeAll 旗標一次取得全部。深度序列化模式會遞迴展開巢狀物件,以便完整檢視。
{
"tool": "particle-system-get",
"input": {
"gameObjectRef": { "path": "/Effects/Fire" },
"includeMain": true,
"includeEmission": true,
"includeColorOverLifetime": true
}
}particle-system-modify
對任何模組套用區域更新。只有你放入請求中的屬性會被變更 —— 其餘全部維持原狀。此工具會回傳詳細的修改日誌,讓 AI 確切知道更新了什麼。
{
"tool": "particle-system-modify",
"input": {
"gameObjectRef": { "path": "/Effects/Fire" },
"main": [
{ "memberPath": "duration", "value": 5.0 },
{ "memberPath": "startLifetime.constant", "value": 2.0 },
{ "memberPath": "loop", "value": true }
],
"emission": [
{ "memberPath": "rateOverTime.constant", "value": 50 }
]
}
}支援全部 24 個模組
此擴充功能涵蓋 Unity 中所有可用的 ParticleSystem 模組。AI 可以讀取並修改其中任何一個:
- Main — 持續時間、初始生命週期、初始速度、初始大小、初始顏色、重力、模擬空間、循環
- Emission — 隨時間發射率、隨距離發射率、爆發
- Shape — 形狀類型、半徑、角度、弧度、位置、旋轉、縮放
- Velocity Over Lifetime — 線性與軌道速度曲線
- Limit Velocity Over Lifetime — 速度上限與阻尼
- Color Over Lifetime — 以漸層為基礎的顏色動畫
- Color By Speed — 依粒子速度對應顏色
- Size Over Lifetime — 粒子生命週期內的大小曲線
- Size By Speed — 依粒子速度對應大小
- Rotation Over Lifetime — 角速度曲線
- Noise — 擾流與 Perlin 雜訊場
- Collision — 世界與平面碰撞設定
- Trails — 粒子拖尾渲染
- Renderer — 材質、網格、渲染模式、排序
- 其他還包括:Force Over Lifetime、External Forces、Inherit Velocity、Lifetime By Emitter Speed、Rotation By Speed、Trigger、Sub Emitters、Texture Sheet Animation、Lights、Custom Data
實際應用:你可以請 AI 做什麼
由於 AI 能完整存取每個 ParticleSystem 參數,你可以用自然語言提出需求,AI 會自行判斷該變更哪些模組與屬性:
- 「建立一個營火特效,粒子從橘色轉為紅色並向上飄升後淡出」
- 「把煙霧粒子變大、變慢,並增加更多擾流」
- 「加上碰撞,讓火花打到地面後反彈」
- 「為魔法投射物粒子啟用拖尾」
- 「把發射率加倍,並讓粒子持續循環」
- 「把形狀從圓錐改為球體,並加大半徑」
安裝
此擴充功能需要先安裝 AI Game Developer(Unity-MCP)。完成設定後,再透過 OpenUPM 或 .unitypackage 安裝程式加入 ParticleSystem 擴充功能。
選項 A:OpenUPM(建議)
openupm add com.ivanmurzak.unity.mcp.particlesystem選項 B:Unity 套件安裝程式
依照擴充功能 README 中的安裝程式下載說明( github.com/IvanMurzak/Unity-MCP/blob/main/extensions/ParticleSystem/README.md ),並透過 Assets > Import Package > Custom Package 將 .unitypackage 匯入你的 Unity 專案。
運作原理
Unity 的 ParticleSystem 模組是 C# struct 而非 class,這表示無法透過簡單的反射來修改。此擴充功能使用 ReflectorNet 將每個模組裝箱,透過序列化成員差異套用修改,再將修改後的值寫回。所有 Unity API 呼叫都會派送到主執行緒,且每次修改後都會重繪編輯器視窗,讓你立即看到變化。
// The extension registers tools via attributes — Unity-MCP discovers them automatically
[AiToolType]
public partial class Tool_ParticleSystem
{
[AiTool("particle-system-get", Description = "Get ParticleSystem data")]
public async Task<string> GetParticleSystem(
GameObjectRef gameObjectRef,
bool includeMain = false,
bool includeEmission = false,
bool includeShape = false,
// ... flags for all 24 modules
bool includeAll = false,
bool deepSerialization = true)
{
// Serializes requested modules and returns structured JSON
}
}相容性
- Unity 2022.3 或更新版本
- 需要 AI Game Developer(Unity-MCP)v0.60.0+
- 可搭配任何 MCP 用戶端:Claude Code、VS Code Copilot、Cursor、Windsurf、Continue
- 已在 Unity 2022.3、2023.2 與 Unity 6(6000.3)上測試
開始使用
安裝 AI Game Developer、加入 ParticleSystem 擴充功能,然後開始描述你想要的特效,其餘交給 AI 處理。完整設定教學請見快速入門指南 ai-game.dev/docs/quickstart ,或從下載頁面 ai-game.dev/download 取得外掛。
- Unity-AI-ParticleSystem: github.com/IvanMurzak/Unity-MCP/blob/main/extensions/ParticleSystem/README.md
- AI Game Developer(Unity-MCP): github.com/IvanMurzak/Unity-MCP
- AI 動畫擴充功能: github.com/IvanMurzak/Unity-MCP/blob/main/extensions/Animation/README.md
- AI ProBuilder 擴充功能: github.com/IvanMurzak/Unity-MCP/blob/main/extensions/ProBuilder/README.md
- 下載: ai-game.dev/download
- 快速入門指南: ai-game.dev/docs/quickstart
- 設定教學: ai-game.dev/blog/claude-code-unity-tutorial

