Skip to content

ParticleSystem Component ​

1つのEmitterとPhase列を持つParticleをCPUまたはGPUで実行します。

設定する手順 ​

  1. シミュレーション先を選び、Emitter・Phase・ModuleとMaterialを設定して再生します。
  2. SceneViewまたはGameViewで結果を確認します。
  3. 編集中のSceneまたはPrefabを保存します。

項目の説明 ​

項目C#名型操作定義時の初期値意味
再生速度PlaybackSpeedfloat読取・変更1.0f再生時間に掛ける倍率です。
有効Enabledbool読取・変更trueこのComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
開始時に再生PlayOnAwakebool読取・変更true有効化・生成時に自動再生します。
非スケール時間UseUnscaledTimebool読取・変更falseTimeScaleの影響を受けない時間で進めます。
Seedを自動生成useAutoRandomSeedbool読取・変更true再生のたびにSeedを変えます。無効なら指定Seedで再現します。
randomSeedrandomSeeduint読取・変更0固定再生に使う乱数Seedです。
レイヤーLayerint読取・変更0描画するLayer番号です。
描画順Orderint読取・変更0同じLayer内の並び順です。
終了時の処理StopActionParticleSystemStopAction読取・変更ParticleSystemStopAction::None粒子がなくなった後のGameObject無効化・破棄などを指定します。
シミュレーション空間SimulationSpaceParticleSystemSimulationSpace読取・変更ParticleSystemSimulationSpace::PhaseSettings発生済み粒子をEmitterへ追従させるLocalか、Worldへ残すかを指定します。
RenderingLayerMaskRenderingLayerMaskuint読取・変更1uこのRendererを表示するCameraのCullingMaskと照合するbit集合です。
実行方式SimulationTargetParticleSimulationTarget読取・変更ParticleSimulationTarget::CPUCPUまたはGPUを選びます。使用できるModuleと追加機能が変わります。
表示Visiblebool読取・変更true通常描画に表示するかを指定します。

Inspectorの設定と使い方 ​

「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。

設定・操作編集場所C#の入口意味・使い方
開始時に再生・有効・表示Editor / C#PlayOnAwake / Enabled / VisiblePlayOnAwakeはboolプロパティで、自動再生の設定です。system.PlayOnAwake = true; と書き、PlayOnAwake()とは呼びません。現在その場で再生する操作はPlay()やPlayOneShot()です。表示とシミュレーションの有効状態は別です。
CPU/GPU・速度・時間・空間・終了時処理Editor / C#SimulationTarget / PlaybackSpeed / UseUnscaledTime / SimulationSpace / StopActionCPUとGPUで使えるModuleが変わります。非スケール時間はTimeScaleに依存しない進行です。空間はLocalが生成元へ追従、Worldは独立、PhaseSettingsは各Phaseの設定を使います。終了後はNone=保持、Disable=GameObject無効、Destroy=破棄を選びます。
SeedEditor / C#useAutoRandomSeed / randomSeed固定した見た目を比較する場合は自動生成を無効にしてSeedを揃えます。自動生成を有効にすると再生ごとに乱数が変わります。
再生・単発・一時停止・停止・消去Editor / C#Play / PlayOneShot / Pause / Stop / ClearPlayは再生、PlayOneShotは単発再生、一時停止は続きを保持します。Stopは新規発生の停止、Clearは発生済み粒子の消去です。StopEmittingAndClearを指定したStopも使えます。withChildrenは子のParticleSystemへ操作を伝えるかです。
発生設定・Emitter形状Editor / C#GetSettings / SetSettingsemitterに発生間隔・発生数・最大数・初速・オフセットと発生形状を持ちます。Emitter形状は粒子の出る位置を決めるもので、描画する粒子のMesh形状とは異なります。
描画・Material・Texture・表面Editor / C#GetSettings / SetSettingsshape/model/material、描画空間、ブレンドとキュー、Billboard、TextureのUVを設定します。surfaceにはSoft Particle、照明・影・IBL、法線、MetallicとRoughnessがあります。
TrailEditor / C#GetSettings / SetSettingstrailに描画方式、元の粒子の表示、消滅後の残留、UV方式・繰り返し距離、幅と色、軌跡点数・間隔・寿命、Material、容量とメモリ上限を持ちます。粒子数とは別の負荷が生じます。
Phase・ペアレント・ModuleEditor / C#GetSettings / SetSettingsPhaseの名前・寿命・終了時処理・Materialと、親への追従を設定します。更新Moduleは個別に有効化でき、並び順も保持します。CPU/GPUの対応はModule一覧を参照してください。
GPU発生元・GPUイベントEditor / C#GetSettings / SetSettingssourceでMeshの頂点・表面、Camera、画像などの発生元を選びます。マスク、表面固定、速度・色の継承も指定します。feedbackはイベント経路、塗装、衝突デカールと各容量上限です。GPU向け機能であり、通常のC#接触通知と同じ即時処理ではありません。
表示レイヤー・描画順Editor / C#RenderingLayerMask / Layer / OrderCameraへの選別と描画の並びを指定します。発生元やFieldを選ぶマスクとは別です。
編集中も再生・エミッター形状を描画Editorのみ—編集時のPreviewと補助線の表示です。現在のParticleSystemの公開C# APIには、この2つを直接切り替えるプロパティはありません。ゲーム中の再生には再生APIを使います。
粒子数・Trail数・容量超過Editor表示 / C#読取専用hasValidStatistics / particleCount / trailCount / droppedTrailCountGPUの統計は読戻し待ちになる場合があります。hasValidStatisticsを確認してから件数を読みます。Trail容量超過は点や軌跡を保持できなかった数を調べる診断です。
粒子属性・軌跡点容量の目安MBEditor表示のみ—Inspectorでメモリ消費の規模を確認するための表示です。実際の予算は最大粒子数やTrailの点数・容量・メモリ上限で設定します。

初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。

C#から使う ​

操作型はParticleSystemです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。

実用例:Eキーで単発の演出を再生する ​

作成済みのParticleSystemと同じGameObjectへ追加します。自動再生設定と、その場での再生関数を分けています。

cs
using NEMEngine;

public sealed class ParticleBurst : MonoBehaviour {

    private ParticleSystem? system;

    void Start() {
        // 自動再生の設定と、現在の再生状態を別々に変更
        system = GetComponent<ParticleSystem>();
        if (system == null) return;
        system.PlayOnAwake = false;
        system.Stop(stopBehavior: ParticleSystemStopBehavior.StopEmittingAndClear);
    }

    void Update() {
        // Eキーを押したframeだけ単発再生
        if (system != null && Input.GetKeyDown(KeyCode.E)) system.PlayOneShot();
    }
}

設定用・関連するC#型 ​

選択値(Enum) ​

型・各値の詳説使える値
ParticleSimulationTargetCPU / GPU
ParticleSystemSimulationSpaceLocal / PhaseSettings / World
ParticleSystemStopActionDestroy / Disable / None
ParticleSystemStopBehaviorStopEmitting / StopEmittingAndClear

ParticleSystem ​

宣言・詳説種類・操作役割
public void Clear(bool withChildren = true)関数発生済みの粒子を消去します。ParticleSystemの設定やGameObjectを削除する操作ではありません。
public bool Enabledプロパティ(読取・変更)このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。
public static ParticleSystem FromEntity(GameObject gameObject)関数既にComponentを持つGameObjectから操作用の参照を作ります。Componentを追加する操作ではありません。
public ParticleSystemSettings GetSettings()関数Emitter・Phase・Module・Trail・GPU設定を持つ編集用Snapshotを取得します。変更後はSetSettingsへ戻します。
public bool IsAlive(bool withChildren = true)関数発生や生存粒子が残っているかを調べます。isPlayingと異なり、停止後に残った粒子を含む終了判定へ使います。
public int Layerプロパティ(読取・変更)描画するLayer番号です。
public int Orderプロパティ(読取・変更)同じLayer内の並び順です。
public void Pause(bool withChildren = true)関数粒子の再生状態を保持して一時停止します。消去とは異なり、Playで続きの再生へ戻せます。
public void Play(bool withChildren = true)関数再生を開始または再開します。withChildrenで子のParticleSystemにも操作を伝えるかを選びます。
public bool PlayOnAwakeプロパティ(読取・変更)自動再生するかを指定するboolプロパティです。system.PlayOnAwake = true; と代入します。今再生する関数はPlay()で、このプロパティを関数として呼び出しません。
public void PlayOneShot(bool withChildren = true)関数演出を単発で再生します。繰り返す環境効果ではなく、攻撃・着弾などの一度の発生に使います。
public float PlaybackSpeedプロパティ(読取・変更)再生時間に掛ける倍率です。
public uint RenderingLayerMaskプロパティ(読取・変更)このRendererを表示するCameraのCullingMaskと照合するbit集合です。
public void SetSettings(ParticleSystemSettings settings)関数編集済みSnapshotをこのParticleSystemへ反映します。GetSettingsの戻り値だけを書き換えて終了しないでください。
public ParticleSystemSimulationSpace SimulationSpaceプロパティ(読取・変更)発生済み粒子をEmitterへ追従させるLocalか、Worldへ残すかを指定します。
public ParticleSimulationTarget SimulationTargetプロパティ(読取・変更)CPUまたはGPUを選びます。使用できるModuleと追加機能が変わります。
public void Stop(bool withChildren = true, ParticleSystemStopBehavior stopBehavior = StopEmitting)関数新規発生を止めます。stopBehaviorで発生済み粒子も消すかを選びます。withChildrenは子への伝播指定です。
public ParticleSystemStopAction StopActionプロパティ(読取・変更)粒子がなくなった後のGameObject無効化・破棄などを指定します。
public bool UseUnscaledTimeプロパティ(読取・変更)TimeScaleの影響を受けない時間で進めます。
public bool Visibleプロパティ(読取・変更)通常描画に表示するかを指定します。
public static int componentTypeIDプロパティ(読取専用)組み込みComponentの接続識別子です。通常のゲームコードではGetComponentで取得します。
public int droppedTrailCountプロパティ(読取専用)Trailの容量上限などで保持できなかった軌跡の診断値です。
public bool hasValidStatisticsプロパティ(読取専用)粒子数・Trail数の統計が利用可能かを示す読取専用値です。GPUの読戻し待ちと0件を区別します。
public bool isEmittingプロパティ(読取専用)新しい粒子を発生させているかを取得します。
public bool isPausedプロパティ(読取専用)ParticleSystemが一時停止しているかを取得します。
public bool isPlayingプロパティ(読取専用)ParticleSystemが再生状態かを取得します。
public bool isStoppedプロパティ(読取専用)ParticleSystemが停止状態かを取得します。
public int particleCountプロパティ(読取専用)確認できる生存粒子数です。GPUではhasValidStatisticsを併せて確認します。
public uint randomSeedプロパティ(読取・変更)固定再生に使う乱数Seedです。
public int trailCountプロパティ(読取専用)確認できるTrail数です。最大粒子数とは別の容量を使用します。
public bool useAutoRandomSeedプロパティ(読取・変更)再生のたびにSeedを変えます。無効なら指定Seedで再現します。

継承する共通操作:Component ​

宣言・詳説種類・操作役割
public T AddComponent<T>() where T : Component関数ComponentまたはScriptを追加し、操作する参照を返します。
public T? GetComponent<T>() where T : class関数component access(owner GameObjectへの委譲)
public T? GetComponentInChildren<T>(bool includeInactive = false) where T : class関数子階層から指定型のComponentを探します。
public T? GetComponentInParent<T>(bool includeInactive = false) where T : class関数親階層から指定型のComponentを探します。
public T[] GetComponents<T>() where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public void GetComponents<T>(List<T> results) where T : class関数同じGameObjectにある指定型のComponentをすべて取得します。
public T[] GetComponentsInChildren<T>(bool includeInactive = false) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(bool includeInactive, List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public void GetComponentsInChildren<T>(List<T> results) where T : class関数子階層にある指定型のComponentを収集します。
public T[] GetComponentsInParent<T>(bool includeInactive = false) where T : class関数親階層にある指定型のComponentを収集します。
public void GetComponentsInParent<T>(bool includeInactive, List<T> results) where T : class関数親階層にある指定型のComponentを収集します。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public bool HasComponent<T>() where T : class関数指定型のComponentを持つかを調べます。
public void RemoveComponent<T>() where T : Component関数指定型のComponentを取り除きます。
public bool TryGetComponent<T>(out T component) where T : class関数Componentを検索し、見つかったかをbool、結果をout引数で返します。
public GameObject gameObjectプロパティ(読取専用)このComponentを所有するGameObjectです。
public Transform transformプロパティ(読取専用)所有GameObjectのTransformです。

継承する共通操作:Object ​

宣言・詳説種類・操作役割
public static void Destroy(Object? target)関数参照先の個体だけを安全地点で破棄する
public override bool Equals(object? obj)関数2つの値が等しいかを調べます。
public override int GetHashCode()関数同じ値を検索Keyに使うためのHashを返します。
public static GameObject Instantiate(Prefab original)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static GameObject Instantiate(Prefab original, Vector3 position, Quaternion rotation, GameObject? parent)関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static T Instantiate<T>(T original, Vector3 position, Quaternion rotation, GameObject? parent) where T : Object関数Prefabまたは指定したGameObject・Componentを複製して参照を返します。生成できない場合は例外です。nullを返す前提で処理しないでください。
public static bool operator ==(Object? lhs, Object? rhs)関数等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static implicit operator bool(Object? value)関数暗黙の型変換を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。
public static bool operator !=(Object? lhs, Object? rhs)関数不等値比較を行います。引数型と戻り値型で、成分ごとの演算か対象参照の比較かを確認してください。

使用時の注意 ​

設定はComponent内に保存します。GetSettingsで取得した編集用SnapshotはSetSettingsで反映します。

Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。

関連項目 ​

現行版マニュアル · 8ea58ba2 · 2026-10-28確認