# パーティクル イニシャライザー 中級 アーティスト プログラマー **イニシャライザー(initializer)** は、パーティクルが最初に放出されたときの、位置、速度、サイズなどの状態をコントロールします。前のフレームで放出されたパーティクルには影響しません。 > [!Note] > [アップデーター](updaters.md)には、フレームの**最後**にパーティクルの値を変更することで、イニシャライザーが設定した初期値を効果的に上書きするものもあります。これはすべてのアニメーションに当てはまります。これらはパーティクルの寿命に作用し、色アニメーションアップデーターは、色イニシャライザーが設定した初期値を上書きするでしょう。 同様に、同じフィールドに作用するイニシャライザーは排他的かつ順番に実行されるので、一番下(最後)のものだけが有効になります。例えば、2 つの色イニシャライザーを割り当てた場合、2 番目のイニシャライザーのみが有効です。 ## 共通プロパティ いくつかのプロパティは、多くのイニシャライザーに共通しています。 ![media/particles-reference-initializers-1.png](media/particles-reference-initializers-1.png) | プロパティ | 説明 |-----------------------------|------------- | Debug draw | デバッグ用に、イニシャライザーの境界を示すワイヤーフレームを描画します。これはシーンエディターでのみ表示され、実行時には表示されません。 | Position inheritance | パーティクルシステムコンポーネントの位置を継承します。具体的には、パーティクルエンティティの Transform コンポーネントの Position プロパティを継承します。 | Position offset | 追加のモジュール移動。親の位置を継承している場合は、継承した位置の上に適用されます。 | Rotation inheritance | パーティクルシステムコンポーネントの回転を継承します。具体的には、パーティクルエンティティの Transform コンポーネントの Rotaion プロパティを継承します。 | Rotation offset | 追加のモジュール回転。親の回転を継承している場合は、継承した回転の上に適用されます。 | Scale inheritance | パーティクルシステムコンポーネントの均等スケールを継承します。具体的には、パーティクルエンティティの Transform コンポーネントの Scale プロパティを継承します。 | Scale offset | 追加のモジュールスケーリング。親のスケーリングを継承している場合は、継承したスケールの上に適用されます。 例えば、速度(velocity)のイニシャライザーは、親の回転に応じて向きを変えたり、あるいはそれを無視して常に一定の方向にパーティクルを発射することができます。 一方で、サイズのイニシャライザーが親の回転に応じて変化することはないため、回転フィールドは全く表示されません。 ## 位置(Position) パーティクルは、左下奥の角と右上前の角で定義される軸並行境界ボックス(AABB)内に放出されます。 ![media/particles-reference-initializers-2.png](media/particles-reference-initializers-2.png) | プロパティ | 説明 |-----------------------------|------------- | Random Seed | 乱数で使用されます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド;速度など)と強制的に結合するには、これを同じ値にします。異なる値にすると、位置は他のフィールドから独立した一意なものになります。 | Position min | ボックスの左下奥の角 | Position max | ボックスの右下前の角 この画像は、エミッターでパーティクルが最初に現れる境界ボックスを表示しています。角 (-1, 0.8, -1)~(1, 1, 1) に加えて、Rotation Offset の指定により、ボックスはさらに 45 度回転しています。 ![media/particles-reference-initializers-3.png](media/particles-reference-initializers-3.png) ## 速度(Velocity) パーティクルは、定められた範囲の値を初期速度として放出されます。この範囲は、X, Y, Z の 3 方向を独立して指定できます。 ![media/particles-reference-initializers-4.png](media/particles-reference-initializers-4.png) | プロパティ | 説明 |-----------------------------|------------- | Random Seed | 乱数で使用されます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド;位置など)と強制的に結合するには、これを同じ値にします。異なる値にすると、速度は他のフィールドから独立した一意なものになります。 | Velocity min | ボックスの左下奥の角 | Velocity max | ボックスの右上前の角 ## サイズ(Size) パーティクルが最初に放出されたときの均等サイズを設定します。サイズが 1 であれば、レンダリング時には 1 メートル × 1 メートルのビルボードまたは四角形になります。 ![media/particles-reference-initializers-5.png](media/particles-reference-initializers-5.png) | プロパティ | 説明 |-----------------------------|-------------- | Random Seed | 乱数で使用されます。他のパーティクルフィールド(1 つのプロパティを持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、サイズは他のフィールドから独立した一意なものになります。 | Random size | 放出時のパーティクルのサイズが取り得る範囲の最小値と最大値です。 ## 回転(Rotation) カメラ方向を回転軸とするパーティクルの回転角度を設定します。正の値が時計回りです。このフィールドは、ビルボードなどのカメラ向きのパーティクルにのみ意味があります。方向性のある四角形やモデルには影響しません。 ![media/particles-reference-initializers-6.png](media/particles-reference-initializers-6.png) | プロパティ | 説明 |-----------------------------|------------ | Random Seed | 乱数で使用されます。他のパーティクルフィールド(1 つのプロパティを持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、回転角度は他のフィールドから独立した一意なものになります。 | Angle (degrees) | 初期回転角度(単位:度)が取り得る範囲の最小値と最大値です。 ## 色(Color) 放出時のパーティクルの初期色を設定します。パーティクルを構築する際に頂点バッファに入り、マテリアルで使用することができますが、マテリアルの設定によっては使用できないことがあります。色を設定しても効果がない場合について、[マテリアル](materials.md)のページで詳しく説明しています。 ![media/particles-reference-initializers-7.png](media/particles-reference-initializers-7.png) | プロパティ | 説明 |-----------------------------|------------ | Random Seed | 乱数で使われます。他のパーティクルフィールド(1 つのプロパティを持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、色は他のフィールドから独立した一意なものになります。 | Color A | 最初の値を 16 進法で表したもの。パーティクルの色は、この色と 2 番目の色の間のランダムな色になります。 | Color B | 2 番値の値を 16 進法で表したもの。パーティクルの色は、この色と最初の色の間のランダムな色になります。 ## 3D 方向(3D Orientation) 3D 対応パーティクルが最初に放出されるときの向きを設定します。設定したユークリッド空間での各方向は、エンジンによってクォータニオンに詰められます。補間値は、各方向の値を個別に補間したものではなく、2 つの向きの間の最短経路上に存在しています。 ![media/particles-reference-initializers-8.png](media/particles-reference-initializers-8.png) | プロパティ | 説明 |-----------------------------|------------ | Random Seed | 乱数で使われます。他のパーティクルフィールド(1 つのプロパティを持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、方向は他のフィールドから独立した一意なものになります。 | Orientation A | 最初の方向。 | Orientation B | 2 番目の方向。 ## 方向(Direction) イニシャライザーは、パーティクルのプロパティに **Direction** フィールドを作成し、その初期値を設定します。Trail シェイプや Direction Aligned Sprite シェイプなどのシェイプビルダーでは、パーティクルを適切に表示するためにパーティクルの Direction を利用します。 | プロパティ | 説明 |-----------------------------|------------- | Random Seed | 乱数で使われます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、方向は他のフィールドから独立した一意なものになります。 | Direction min | ボックスの左下奥の角 | Direction max | ボックスの右上前の角 ## 放出順序(Spawn Order) このイニシャライザーには、プロパティはありません。このイニシャライザーは、エミッターから放出されるそれぞれのパーティクルに 0 から始まる単純増加数を割り当てるだけです。放出の順序は、並び替えやカスタム計算などで利用されます。 ## 位置(円弧型)(Position(Arc)) 円弧型位置イニシャライザーは、エミッターの位置とターゲット(に指定したエンティティの Transform コンポーネントの)位置という 2 点間の円弧(円弧の矢高が 0 の場合は直線)に沿って、パーティクルを配置します。位置のランダムオフセットを指定して、パーティクルを円弧上の位置から少しずらすこともできます。 ![media/particles-reference-initializers-5.png](media/particles-reference-initializers-9.png) | プロパティ | 説明 |-----------------------------|------------ | Random Seed | 乱数で使われます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、位置は他のフィールドから独立した一意なものになります。 | Position min | ボックスの左下奥の角 | Position max | ボックスの右上前の角 | Target | 円弧の終点を示すエンティティを指定します。設定されていない場合は、Fallback Target プロパティがエミッターの位置からのオフセットとして使用されます。 | Fallback Target | Target プロパティが設定されていない場合に円弧の終点として使用される位置。エミッターを原点としたオフセットです。 | Arc Height | 円弧の矢高(最高点の高さ;2 点間の距離の真ん中)です。既定では Y-up ベクトルですが、オフセットや継承を使って回転させることができます。 | Ordered | これをオンにすると、新しいパーティクルはエミッターからターゲットに向かって順番に現れます。オフである場合は、円弧上にランダムに現れます。パーティクルをリボンや軌跡のように表現したい場合にオンにします。 | Fixed count | 既定では、最大個数のパーティクルが円弧上にぴったり収まる程度の間隔で現れます。放出の速度や距離をコントロールしたい場合は、円弧上に固定された「位置」の数を設定します。例えば、Fixed count 10 で Ordered がオンであれば、まず 10 個のパーティクルが順番に現れ、次に 11 個目のパーティクルが最初のパーティクルと同じ位置に最初から現れ、というようになります。 | Random Seed | 乱数で使われます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、位置は他のフィールドから独立した一意なものになります。 | Position min | ボックスの左下奥の角。これは、円弧上の位置に加算されるオフセットです。 | Position max | ボックスの右上前の角。これは、円弧上の位置に加算されるオフセットです。 ## 位置(親)(Position(parent)) | プロパティ | 説明 |-----------------------------|------------- | Random Seed | 乱数で使われます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、位置は他のフィールドから独立した一意なものになります。 | Position min | ボックスの左下奥の角 | Position max | ボックスの右上前の角 | Parent emitter | 親エミッターの名前を指定します。パーティクルの位置は、その親エミッターのパーティクルの位置と同じになります。 | Parent Offset | 親パーティクルの選択方法を接続または分離するために使用されるランダムシードです。例えば、一見ランダムに見えるパーティクルから位置**と**色を選びたい場合には、同じオフセットを使用できます。このような接続を避けたい場合は、位置と色のイニシャライザーに対して異なるオフセットを使用することができます。 | Spawn Control Group | None の場合、親はランダムに選ばれます。Group 0~3 の 4 つのグループのいずれかを指定すると、特定の親を持つパーティクルのみが初期化されます。**from Parent** 型のスポナーのコントロールグループと一致する必要があります。 ## 速度(親)(Velocity(parent)) | プロパティ | 説明 |-----------------------------|------------- | Random Seed | 乱数で使われます。他のパーティクルフィールド(3 つのプロパティ (X, Y, Z) を持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、速度は他のフィールドから独立した一意なものになります。 | Velocity min | ボックスの左下奥の角。 | Velocity max | ボックスの右上前の角。 | Parent emitter | 親エミッターの名前を指定します。パーティクルの位置は、その親エミッターのパーティクルの位置と同じになります。 | Parent Offset | 親パーティクルの選択方法を接続または分離するために使用されるランダムシードです。例えば、一見ランダムに見えるパーティクルから位置**と**色を選びたい場合には、同じオフセットを使用できます。このような接続を避けたい場合は、位置と色のイニシャライザーに対して異なるオフセットを使用することができます。 | Spawn Control Group | None の場合、親はランダムに選ばれます。Group 0~3 の 4 つのグループのいずれかを指定すると、特定の親を持つパーティクルのみが初期化されます。**from Parent** 型のスポナーのコントロールグループと一致する必要があります。 ## サイズ(親)(Size(parent)) | プロパティ | 説明 |-----------------------------|------------ | Random Seed | 乱数で使われます。他のパーティクルフィールド(1 つのプロパティを持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、サイズは他のフィールドから独立した一意なものになります。 | Random size | 放出時のパーティクルのサイズの最小値と最大値です。 | Parent emitter | 親エミッターの名前を指定します。パーティクルの位置は、その親エミッターのパーティクルの位置と同じになります。 | Parent Offset | 親パーティクルの選択方法を接続または分離するために使用されるランダムシードです。例えば、一見ランダムに見えるパーティクルから位置**と**色を選びたい場合には、同じオフセットを使用できます。このような接続を避けたい場合は、位置と色のイニシャライザーに対して異なるオフセットを使用することができます。 | Spawn Control Group | None の場合、親はランダムに選ばれます。Group 0~3 の 4 つのグループのいずれかを指定すると、特定の親を持つパーティクルのみが初期化されます。**from Parent** 型のスポナーのコントロールグループと一致する必要があります。 ## 色(親)((Color(parent)) | プロパティ | 説明 |-----------------------------|------------ | Random Seed | 乱数で使われます。他のパーティクルフィールド(1 つのプロパティを持つフィールド)と強制的に結合するには、これを同じ値にします。異なる値にすると、色は他のフィールドから独立した一意なものになります。 | Color A | 最初の値を 16 進法で表したもの。パーティクルの色は、この色と 2 番目の色の間のランダムな色になります。 | Color B | 2 番値の値を 16 進法で表したもの。パーティクルの色は、この色と最初の色の間のランダムな色になります。 | Parent emitter | 親エミッターの名前を指定します。パーティクルの位置は、その親エミッターのパーティクルの位置と同じになります。 | Parent Offset | 親パーティクルの選択方法を接続または分離するために使用されるランダムシードです。例えば、一見ランダムに見えるパーティクルから位置**と**色を選びたい場合には、同じオフセットを使用できます。このような接続を避けたい場合は、位置と色のイニシャライザーに対して異なるオフセットを使用することができます。 | Spawn Control Group | None の場合、親はランダムに選ばれます。Group 0~3 の 4 つのグループのいずれかを指定すると、特定の親を持つパーティクルのみが初期化されます。**from Parent** 型のスポナーのコントロールグループと一致する必要があります。 ## 放出順序(親)((Spawn Order(parent)) このイニシャライザーを使う際には、親エミッターが放出順序(Spawn Order)イニシャライザーを持っている必要があります。これは親の放出番号を子のものと組み合わせて、子の中にパーティクルのグループを効果的に作成します。このイニシャライザーは、子リボンパーティクルを適切に並べ替えてレンダリングするために必要です。 | プロパティ | 説明 |-----------------------------|------------ | Parent emitter | 親エミッターの名前を指定します。パーティクルの位置は、その親エミッターのパーティクルの位置と同じになります。 | Parent Offset | 親パーティクルの選択方法を接続または分離するために使用されるランダムシードです。例えば、一見ランダムに見えるパーティクルから位置**と**色を選びたい場合には、同じオフセットを使用できます。このような接続を避けたい場合は、位置と色のイニシャライザーに対して異なるオフセットを使用することができます。 | Spawn Control Group | None の場合、親はランダムに選ばれます。Group 0~3 の 4 つのグループのいずれかを指定すると、特定の親を持つパーティクルのみが初期化されます。**from Parent** 型のスポナーのコントロールグループと一致する必要があります。 ## 関連項目 * [パーティクルの作成](create-particles.md) * [エミッター](emitters.md) * [シェイプ](shapes.md) * [マテリアル](materials.md) * [スポナー](spawners.md) * [アップデーター](updaters.md)