ParticleEmitter は、カスタマイズ可能な2D画像(パーティクル)を世界に発生させるオブジェクトであり、火、煙、火花のような特殊効果をシミュレートするのに役立ちます。
パーティクルエミッターの作成
ParticleEmitterをAttachmentまたはBasePartクラスのオブジェクトに親付けすることができます。BasePartに親付けされている場合、パーティクルはパートの境界ボックスまたは形状内でランダムにスポーンし、Attachmentに親付けされている場合は、アタッチメントの位置からパーティクルがスポーンします。
さらに、EmissionDirectionプロパティは、エミッターが BasePart に親付けされている場合の発生方向の面(Enum.NormalId)を決定します。このプロパティを変更すると、パーティクルの発生方向も変更されます。
パートまたはアタッチメントにパーティクルエミッターを作成するには:
Explorerウィンドウで、パートまたはアタッチメントにカーソルを合わせ、⊕ボタンをクリックします。コンテキストメニューが表示されます。
メニューからParticleEmitterを挿入します。パーティクルエミッターは直ちにパートのエリア内またはアタッチメントの位置からパーティクルを発生させます。

パーティクルのカスタマイズ
以下のプロパティを使って実験することで、パーティクルの視覚的外観をカスタマイズし、爆発する火山、魔法の粉、ホコリのモーションなどのユニークなゲームプレイ要素を作成できます。
テクスチャ
Texture プロパティは、各パーティクルが表示する画像をレンダリングします。デフォルトでは、パーティクルエミッターは白いスパークルテクスチャのパーティクルを持っていますが、興味深い効果を得るために任意のテクスチャに変更できます。
パーティクルテクスチャとして使用する画像を作成する場合は、透過背景のある.png形式を使用するのが最適です。テクスチャがグレースケールでアルファチャンネルがない場合は、パーティクルエミッターのLightEmissionプロパティを1に設定して、暗い領域を非表示にしてみてください。
パーティクルエミッターに画像を挿入するには:
StudioのWindowメニューまたはHomeタブツールバーからToolboxを開きます。
以前にインポートした画像を挿入したい場合は、Inventoryタブをクリックします。他のクリエイターから画像を挿入したい場合は、Creator Storeタブをクリックします。


挿入したい画像を右クリックし、Copy Asset IDを選択します。
Explorerウィンドウで、ParticleEmitterを選択します。
Propertiesウィンドウで、TextureプロパティにアセットIDを貼り付けます。
カラー
Colorプロパティは、各パーティクルのテクスチャを特定の色合いに染色するか、またはそのライフタイムにわたる勾配ColorSequenceにするかを設定します。
Explorerウィンドウで、ParticleEmitterを選択します。
Propertiesウィンドウで、Colorプロパティを選択します。以下のいずれかを行います:
- カラーの四角をクリックしてColorsポップアップウィンドウを開き、色を選択します。
- RGBカラーバリューのフィールドに3つの数字を入力します。


異なる色のパーティクルを持つ類似のパーティクルエミッター
サイズ
Sizeプロパティは、各パーティクルを一貫したサイズに設定するか、やそのライフタイムにわたり NumberSequence に設定します。
- Explorerウィンドウで、ParticleEmitterを選択します。
- Propertiesウィンドウで、Sizeプロパティを選択します。
- 各パーティクルのサイズにしたいサイズを入力します。
透明度
Transparencyプロパティは、各パーティクルの不透明度を一貫した値、またはそのライフタイムにわたりNumberSequence不透明度として設定します。不透明度の範囲は0(完全に不透明)から1(完全に透明)までです。特定の不透明度または数値シーケンスにパーティクルを設定する方法の詳細については、Sizeのカスタマイズ手順に従いますが、エミッターのTransparencyプロパティフィールドを使用します。
ライフタイム
Lifetime プロパティは、パーティクルのライフタイムを秒単位で設定します。このプロパティは、一貫した値として設定するか、各パーティクルのために選ばれるランダムなライフタイムのMinとMax範囲を提供することができます。
スピード
Speedプロパティは、新しいパーティクルが発生する速度のランダム範囲(最小から最大)を決定し、スタッド毎秒で測定されます。各パーティクルの速度は発生時に選ばれ、EmissionDirectionで適用されます。負の値はパーティクルを逆方向に移動させます。
注意すべきは、Speedを変更してもアクティブなパーティクルには影響せず、すでに持っている速度を保持します。ただし、Acceleration、Drag、およびVelocityInheritanceを使用すると、アクティブなパーティクルの速度に影響を与えることができます。
レート
Rateプロパティは、秒間に発生するパーティクルの数を設定します。単一のパーティクルエミッターは、1秒間に最大400パーティクル(モバイルでは1秒間に100パーティクル)を生成できます。最適なパフォーマンスを得るために、パーティクルレートをできるだけ低く保ち、望ましい視覚効果を達成するためにサイズやその他のプロパティで実験してください。
オリエンテーション
Orientationプロパティは、エミッターのパーティクルジオメトリに使用するオリエンテーションモードを決定します。
| オリエンテーション | パーティクルの挙動 |
|---|---|
| FacingCamera | 標準のカメラ向きのビルボードクアッド;デフォルトの挙動。 |
| FacingCameraWorldUp | カメラに向かい、垂直の上方のワールドY軸だけで回転します。 |
| VelocityParallel | 移動方向に平行に整列します。 |
| VelocityPerpendicular | 移動方向に垂直に整列します。 |
光の発生
LightEmissionプロパティは、パーティクルのTexture色と背後の色とのブレンドを決定します。値0は通常のブレンドモードを使用し、値1は加算ブレンディングを使用します。高い値は、暗い環境でもパーティクルを光らせることができます。
スプレッド角度
SpreadAngleプロパティにはXとY値があり、パーティクルが発生できる角度の範囲を決定します。この範囲は、両側の軸の周りから計算されます。例えば、(45, 0)の値は、X軸に沿ってEmissionDirectionから0°から45°の範囲でパーティクルを発生させます。
風によるドラッグ
ゲームでグローバル風が有効になっている場合、エミッターのWindAffectsDragプロパティが有効になり、Dragプロパティが0より大きい限り、パーティクルはグローバル風ベクトルに従います。

形状
Shapeプロパティは、パーティクルエミッターの形をボックス、球、シリンダー、またはディスクのいずれかに設定します。




パーティクルエミッターの形状を選択した後、ShapeStyle、ShapeInOut、およびShapePartialプロパティを使ってパーティクル発生をさらにカスタマイズできます。
ShapeStyle
ShapeStyle プロパティは、発生タイプを次のように設定します:
- ボリューム — パーティクルは形状内の任意の場所から発生します。
- 表面 — パーティクルは形状の外側からのみ発生します。


ShapeInOut
ShapeInOutプロパティは発生を次のように設定します:
- 内向き — パーティクルが形状へ向かって発生します。
- 外向き — パーティクルが形状から離れて発生します。
- 内外 — パーティクルがランダムに内向きと外向きの両方の挙動を取ります。
ShapePartial
ShapePartialプロパティは、シリンダー、ディスク、および球形状をさらに修正するためのファクターです。
シリンダーの場合、ShapePartialは、シリンダーのEmissionDirection側の半径を乗算します。


スクワッシュ
Squashプロパティは、パーティクルの非均一なスケーリングを提供し、それをライフタイムにわたり曲線で制御します。0より大きい値は、パーティクルを横方向に縮め、縦方向に成長させ、0より小さい値は、パーティクルを横方向に成長させ、縦方向に縮ませます。スクワッシュ量を定数またはNumberSequenceに設定する方法についての詳細は、Sizeのカスタマイズ手順に従いますが、エミッターのSquashプロパティフィールドを使用します。
フリップブック
パーティクルフリップブックテクスチャを使用すると、パーティクルのテクスチャをライフタイムにわたりアニメーション化できます。
フリップブックテクスチャは、2×2、4×4、8×8、またはカスタムのフレームレイアウトを持つことができます。例えば、次の1024×1024画像は8×8レイアウトがあるため、64フレームのアニメーションに適しています。

Emitters にTextureプロパティに有効なフリップブックテクスチャが指定されると、FlipbookLayoutプロパティは、テクスチャのレイアウトを決定します。それは、Enum.ParticleFlipbookLayout列挙の任意の値にできます:
- None — フリップブック機能を無効にし、テクスチャをパーティクルのライフタイムにわたって単一の静的テクスチャとして使用します。
- Grid2x2 — 2×2フレームの4フレームアニメーション用。
- Grid4x4 — 4×4フレームの16フレームアニメーション用。
- Grid8x8 — 8×8フレームの64フレームアニメーション用。
フリップブックの動作をさらにカスタマイズするには、以下のプロパティを調整できます:
FlipbookFramerateプロパティは、フリップブックテクスチャが何フレーム/秒でアニメーションするかを決定します。Lifetimeのように、フリップブックのフレームレートをランダム化するために最小および最大の範囲を設定でき、最大は30フレーム/秒です。
その他のプロパティ
パーティクルをさらにカスタマイズするには、以下のエミッタプロパティを考慮し、詳細についてはParticleEmitter参照ページをクリックしてください。
次の外観プロパティは、色、光の発生、オリエンテーション、サイズ、テクスチャ、透明度、スクワッシュ、およびフリップブックに加えられます。
| プロパティ | 説明 |
|---|---|
| LightInfluence | 環境光が個々のパーティクルの色にどの程度影響を与えるかを決定します。 |
| Brightness | LightInfluenceが0のときに、エミッターから放出される光をスケーリングします。 |
| ZOffset | パーティクルの前後描画位置を、スタッド単位で、画面上のサイズを変更することなく決定します。これにより、複数のエミッターを重ねたり、親オブジェクトの前または後ろにパーティクルを描画したりできます。 |