このページは英語から機械翻訳されています。英語の原文を読む。

ブログ

UnityにおけるAI駆動パーティクルシステム:ParticleSystem拡張機能

AIエージェントがUnityの24個のParticleSystemモジュールすべてを読み取り・変更。自然言語プロンプトで炎、煙、魔法のエフェクトなどを作成できます。

UnityにおけるAI駆動パーティクルシステム:ParticleSystem拡張機能

UnityのParticleSystemは、エンジンの中でも最も強力で、そして最も複雑なコンポーネントの1つです。24個の独立したモジュール、数百のパラメーター、深くネストされた設定があるため、パーティクルエフェクトを手作業で設定するには、終わりのないインスペクターパネルをクリックして回ることになります。そこで「オレンジから透明にフェードする炎のパーティクルを作って」とAIに伝えるだけで、数秒で完成したらどうでしょう? それを実現するのがUnity-AI-ParticleSystem拡張機能です。

ParticleSystem拡張機能を使ってAIが作成・設定した炎のパーティクル

Unity-AI-ParticleSystemとは?

Unity-AI-ParticleSystemはAI Game Developerの拡張機能で、particle-system-getとparticle-system-modifyという2つのMCPツールを追加し、AIエージェントにUnityプロジェクト内のすべてのParticleSystemモジュールへの完全な読み取り・書き込みアクセスを与えます。Claude Code、VS Code Copilot、Cursor、Windsurfなど、MCP互換のAIクライアントであればどれでも動作します。

2つのツールで全機能をカバー

この拡張機能が公開するMCPツールは2つだけですが、あらゆる操作をカバーします。getツールは任意のParticleSystemの現在の状態を読み取り、modifyツールは部分的な更新を適用します。指定したプロパティだけを変更し、それ以外はそのままにします。

particle-system-get

再生状態(isPlaying、isPaused、particleCount)と、24個のモジュールの任意の組み合わせを含むParticleSystemの完全な状態を取得します。個別のモジュールを指定することも、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 — duration、start lifetime、start speed、start size、start color、gravity、simulation space、loop
  • Emission — rate over time、rate over distance、bursts
  • Shape — shape type、radius、angle、arc、position、rotation、scale
  • 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がどのモジュールとプロパティを変更すべきかを判断します。

  • 「オレンジから赤に変化するパーティクルが立ち上って消えていく焚き火エフェクトを作って」
  • 「煙のパーティクルを大きく、遅くして、乱流を増やして」
  • 「衝突を追加して、火花が地面で跳ね返るようにして」
  • 「魔法の飛翔体パーティクルでトレイルを有効にして」
  • 「放出レートを2倍にして、パーティクルが継続的にループするようにして」
  • 「シェイプをコーンからスフィアに変更して、半径を大きくして」

インストール

この拡張機能を使うには、先に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であるため、単純なリフレクションでは変更できません。この拡張機能は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 )をご覧ください。

ブログのその他の記事

すべての記事