本頁面由英文機器翻譯而成。閱讀英文原文。

部落格

Unity 中由 AI 驅動的粒子系統:ParticleSystem 擴充功能

讓 AI 代理讀取並修改 Unity 中全部 24 個 ParticleSystem 模組,用自然語言提示就能製作火焰、煙霧與魔法特效。

Unity 中由 AI 驅動的粒子系統:ParticleSystem 擴充功能

Unity 的 ParticleSystem 是引擎中最強大 —— 也最複雜 —— 的元件之一。它有 24 個獨立模組、數百個參數與層層巢狀的設定,手動調整一個粒子特效意味著要在無止境的 Inspector 面板中不斷點擊。如果能直接告訴 AI「做出從橘色漸變為透明的火焰粒子」,幾秒內就完成,那會怎樣?Unity-AI-ParticleSystem 擴充功能正是為此而生。

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 旗標一次取得全部。深度序列化模式會遞迴展開巢狀物件,以便完整檢視。

JSONMCP 工具呼叫
{
  "tool": "particle-system-get",
  "input": {
    "gameObjectRef": { "path": "/Effects/Fire" },
    "includeMain": true,
    "includeEmission": true,
    "includeColorOverLifetime": true
  }
}

particle-system-modify

對任何模組套用區域更新。只有你放入請求中的屬性會被變更 —— 其餘全部維持原狀。此工具會回傳詳細的修改日誌,讓 AI 確切知道更新了什麼。

JSONMCP 工具呼叫
{
  "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(建議)

Bash終端機
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 呼叫都會派送到主執行緒,且每次修改後都會重繪編輯器視窗,讓你立即看到變化。

C#Tool_ParticleSystem.cs
// 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 取得外掛。

更多部落格文章

所有文章