Distributions (ディストリビューション、分布) は、データ タイプのグループです。不変な値、ある範囲内にあるランダムな値、カーブに沿って補間された値、パラメータ主導の値が可能になり、柔軟性があります。通常、サウンドキュー内のノードとパーティクルシステムのプロパティで使用されます。
エディタではアルファベット順に列挙されていますが、この概念を初めて知る方が理解しやすいように、ここでは複雑なものから並べてあります。
ディストリビューションをベイクする
どのディストリビューションのタイプを使っても、ディストリビューションの真下に必ず [Can be Baked (ベイク可能)] オプションがあります。これは、ディストリビューションの数値結果をルックアップ テーブルにベイクできるかどうかを決定します。ルックアップ テーブルへの値のベイクは、ランダム値やカーブ補正をすぐに計算するよりもはるかに効率的です。そのため、このオプションはデフォルト設定になっています。
ルックアップ テーブルで重要度の高い情報を失う結果になってしまうエッジケースに陥った場合、このオプションのチェックを外して、ティックごとに実際の値をシステムがチェックするようにします。もちろん、この方法だと効率は下がりますが、成功するのが難しく思われ、ルックアップ テーブルがうまく機能しない場合、このオプションも検討する価値があります。

Distribution (ディストリビューション) のタイプ
パーティクル システムの作成時に最大限のフレキシビリティを実現するために、ほとんどのパーティクル プロパティは DistributionFloat と DistributionVector を利用します。ディストリビューションを使用する時には様々なオプションを利用できます。次のセクションで説明します。
実際に使う値は、使用するプロパティによって異なる点に留意してくだい。例えば、パーティクルの初期サイズは、パーティクルがスポーンするときに決まります。ディストリビューション タイプがプロパティの定数カーブに設定されていると、カーブから望ましい値を取り出すためにスポーン時のエミッター時間を使用します。
Float Distributions
アーティスト制御であるスカラー プロパティがあるときに使います。例としては、パーティクルのライフタイム、または、エミッターのスポーン レートがあります。
DistributionFloatConstant
定数であるプロパティの値を決めるために使用します。この値を数直線に表すと、以下のようなグラフになります。

- 変化しない定数の float 値です。
これを選択すると、値を編集するために次のダイアログが表示されます。

DistributionFloatConstant のプロパティ | |
---|---|
アイテム | 説明 |
Constant | 指定されたプロパティに対する静的かつ不変の数字です。 |
DistributionFloatUniform
プロパティの値の範囲を提供するために使用します。値が評価されると、返された値は、選択した範囲内にランダムに設定されます。

- 最低値です。
- 最大値です。
- この範囲からランダム値を選択します。
これを選択すると、値を編集するために次のダイアログが表示されます。

DistributionFloatUniform のプロパティ | |
---|---|
アイテム | 説明 |
Min | 乱数計算の最低値 |
Max | 乱数計算の最大値 |
DistributionFloatConstantCurve
時間経過とともにグラフ エディタ上にプロットされるプロパティの値を提供するために使用します。時間が絶対 (エミッターのライフタイム) であるか、相対 (個々のパーティクルのライフタイム) であるかは、ディストリビューションを利用するモジュールによります。

- キーフレーム ポイントです。
- 補間カーブです。指定した時間のカーブの値に基づいて、最終値が引き出されます。
- Tangent handles - キーフレーム内外へのカーブのフローの仕方を定義します。
これを選択すると、値を編集するために次のダイアログが表示されます。

すべてのフィールドは手動で編集することができますが、値の編集には、カーブ エディタ ウィンドウの利用をお勧めします。
DistributionFloatConstantCurve のプロパティ | |
---|---|
アイテム | 説明 |
Points | 全てのポイントをカーブに含める配列プロパティです。![]() |
Point のプロパティ | |
InVal* | 通常、時間として計算されるグラフの横軸に沿ったポイントの位置です。 |
OutVal* | 通常、プロパティ値として計算されるグラフの縦軸に沿ったポイントの位置です。 |
ArriveTangent* | ポイントに入ってくるタンジェントの角度です。-150 から 150 の範囲の値が有用です。 |
LeaveTangent* | ポイントから出て行くタンジェントの角度です。-150 から 150 の範囲の値が有用です。 |
InterpMode | 様々なカーブの補間モードを選択できます。詳細は カーブ エディタ ユーザーガイド のページを参照してください。 |
DistributionFloatUniformCurve
時間経過と共にグラフ エディタ上にプロットされるプロパティの値の範囲を表します。時間のそれぞれのポイントで、 Min curve と Max curve 内に存在するランダム値が選択されます。

- Min curve - このタイプは、時間経過による変化の最小値を定義します。
- Max curve - このタイプは、時間経過による変化の最大値を定義します。
- Resultant range - 時間の各ポイントでの最終値が選択されるグラフの範囲です。
これを選択すると、値を編集するために次のダイアログが表示されます。

ConstantCurve と同様に、この種類のディストリビューションもカーブ エディタで編集することをお勧めします。
DistributionFloatUniformCurve のプロパティ | |
---|---|
アイテム | 説明 |
Points | 全てのポイントをカーブに含める配列プロパティです。![]() |
Point のプロパティ | |
InVal* | 通常、時間として計算されるグラフの横軸に沿ったポイントの位置です。 |
OutVal* | 通常、プロパティ値として計算されるグラフの縦軸に沿ったポイントの位置です。Uniform Curve の場合は、このプロパティに含まれる X 値と Y 値がそれぞれ出力の Min と Max を表します。 |
ArriveTangent* | X と Y (min と max) 両方のポイントに対して入ってくるタンジェントの角度です。-150 から 150 の範囲の値が有用です。 |
LeaveTangent* | X と Y (min と max) 両方のポイントから出て行くタンジェントの角度です。-150 から 150 の範囲の値が有用です。 |
InterpMode | 様々なカーブの補間モードを選択できます。詳細は カーブ エディタ ユーザーガイド のページを参照してください。 |
DistributionFloatParticleParam
エミッタ用パラメータの単純なゲームコードの設定を可能にして、コード、ブループリント、マチネ経由で操作ができるようになります。ある範囲から別の範囲への入力値のマップを可能にするので、ゲームプレイ コードを更新せずに Cascade-space でパラメータの微調整ができます。ゲームプレイ コーダーで入力範囲が確定されると、アーティストは出力マッピングを使ってプロパティを自由に調整できます。
これを選択すると、値を編集するために次のダイアログが表示されます。

入力から出力へは、線形に再マッピングされます。したがって、最小入力 0 で最大入力 5 、最小出力 0 で最大出力 100 である場合、入力として 2 を渡すと、出力が 40 になることを意味します。
これは、パーティクル パラメータ変数を名前で共有できるために、複数の出力にマップする単純な 0-1 の入力を設定するのに非常に役立ちます。例えば、 SpawnRate を Particle Parameter Foo によって駆動するように設定し、 0-1 の入力と 20-200 の出力を設定できますし、また、入力を同じにして InitialSize で Foo を使用して、出力を 10-20 にすることもできます。
プログラマーなら、コードで次のように書くこともできるでしょう。
ParticleComponent->SetFloatParameter('MyParameter', CurrentParameter);
DistributionFloatParticleParameter のプロパティ | |
---|---|
アイテム | 説明 |
パラメータ名 | コードまたはブループリント スクリプトがパラメータを参照するときに使用する名前です。 |
Min Input | 通常はゲームコード経由でディストリビューションに渡される最小値です。 |
Max Input | 通常はゲームコード経由でディストリビューションに渡される最大値です。 |
Min Output | 入力範囲からマップされた通りにカスケードに出力できる最小値です。 |
Max Output | 入力範囲からマップされた通りにカスケードに出力できる最大値です。 |
Param Mode | 入力値の使い方を制御します。以下の Param Mode Flag テーブルをご覧ください。 |
Constant | 入力がない場合、システムのデフォルト値です。 |
ParamMode フラグ | 説明 |
---|---|
DPM_Normal | 入力値のみを残します。 |
DPM_Abs | 再マッピングの前に入力値の絶対値を使用します。 |
DPM_Direct | 入力値を直接使用します (再マッピングなし)。 |
Vector ディストリビューション
Vector ディストリビューションは、アーティストによって制御されるベクター ベースのプロパティがあるときに使います。例としては、パーティクルのサイズやベロシティがあります。
DistributionVectorConstant
定数であるプロパティの値を決めるために使用します。

- X- 軸値
- Y- 軸値
- Z- 軸値
これを選択すると、値を編集するために次のダイアログが表示されます。

LockedAxes フラグでは、1 つの軸の値を他の軸の値に対してロックできます。以下のフラグがサポートされています。
DistributionVectorConstant のプロパティ | |
---|---|
アイテム | 説明 |
Constant | 指定されたプロパティに対する静的かつ不変の数字です。ベクター値では、 X、Y、Z 値が含まれます。 |
Locked Axes | 3 つある軸の 1 つの値を他の軸の値に対してロックし、ディストリビューションを単純化します。以下の Locked Axes Flag テーブルをご覧ください。 |
Locked Axes Flag | 説明 |
---|---|
EDVLF_None | 他の軸に対してどの軸もロックされません。 |
EDVLF_XY | Y 軸が X 軸値に対してロックされます。 |
EDVLF_XZ | Z 軸が X 軸値に対してロックされます。 |
EDVLF_YZ | Z 軸が Y 軸値に対してロックされます。 |
EDVLF_XYZ | Y 軸と Z 軸が X 軸値に対してロックされます。 |
注記:ロック フラグがアクティブであるとき、値はプロパティ ウィンドウの設定に反映されません。例えば、 LockedAxes フラグが EDVLF_XY に設定されている場合、 Y 値は、 X コンテンツを表示しません。ディストリビューションから (コードで) 値が取り出されたときにのみ、ロックされた軸の値が適用されます。
DistributionVectorUniform
プロパティの値の範囲を提供するために使用します。値が評価されると、返された値は、選択した範囲内にランダムに設定されます。

- X- 軸最小値
- Z 軸最大値
-
X 軸ランダム範囲
- Y- 軸最小値
- Y 軸最大値
-
Y 軸ランダム範囲
- Z 軸最小値
- Z 軸最大値
- Z 軸ランダム範囲
これを選択すると、値を編集するために次のダイアログが表示されます。

DistributionVectorUniform のプロパティ | |
---|---|
アイテム | 説明 |
Min | 乱数計算の最小値です。Vector Uniform では、 X、Y、Z 値が含まれます。 |
Max | 乱数計算の最大値です。Vector Uniform では、 X、Y、Z 値が含まれます。 |
Use Extremes | Min と Max の間の値だけではなく、 Min と Max の値も使用すべきことを示します。 |
Locked Axes Flag | 説明 |
---|---|
EDVLF_None | 他の軸に対してどの軸もロックされません。 |
EDVLF_XY | Y 軸が X 軸値に対してロックされます。 |
EDVLF_XZ | Z 軸が X 軸値に対してロックされます。 |
EDVLF_YZ | Z 軸が Y 軸値に対してロックされます。 |
EDVLF_XYZ | Y 軸と Z 軸が X 軸値に対してロックされます。 |
MirrorFlags によって、値の各成分の最小 / 最大値をミラーリングすることができます。以下のフラグがミラーリングをサポートします。
ミラーフラグ | 説明 |
---|---|
EDVMF_Same | 最小値として最大値を使用します。 |
EDVMF_Different | 各値をセットとして使用します。 |
EDVMF_Mirror | 最小値を最大値の逆数 (Max * -1) とします。 |
Mirror Flags プロパティの直下にある 0、1、2 はそれぞれ X、Y、Z を表します。
DistributionVectorConstantCurve
時間経過とともにグラフ エディタ上にプロットされるプロパティの値を提供するために使用します。時間が絶対 (エミッターのライフタイム) であるか、相対 (個々のパーティクルのライフタイム) であるかは、ディストリビューションを利用するモジュールによります。

- X 軸カーブポイント 0
- X 軸カーブポイント 1
-
X 軸補間カーブ
- Y 軸カーブポイント 0
- Y 軸カーブポイント 1
-
Y 軸補間カーブ
- Z 軸カーブポイント 0
- Z 軸カーブポイント 1
- Z 軸補間カーブ
これを選択すると、値を編集するために次のダイアログが表示されます。

FloatConstantCurve と同様に、このディストリビューション タイプもカーブ エディタによって編集することをお勧めします。
注記:ConstantCurve ディストリビューションに対して、 LockedAxes フラグを EDVLF_None 以外の何かに設定した場合、カーブ エディタは、混乱を避けるためにロックされた軸を表示しません。例えば、フラグを EDVLF_XY に設定した場合、カーブ エディタは、 X および Z カーブのみを含みます。
DistributionFloatConstantCurve のプロパティ | |
---|---|
アイテム | 説明 |
Points | 全てのポイントをカーブに含める配列プロパティです。![]() |
Point のプロパティ | |
InVal* | 通常、時間として計算されるグラフの横軸に沿ったポイントの位置です。 |
OutVal* | 通常、プロパティ値として計算されるグラフの縦軸に沿ったポイントの位置です。 |
ArriveTangent* | ポイントに入ってくるタンジェントの角度です。-150 から 150 の範囲の値が有用です。 |
LeaveTangent* | ポイントから出て行くタンジェントの角度です。-150 から 150 の範囲の値が有用です。 |
InterpMode | 様々なカーブの補間モードを選択できます。詳細は カーブ エディタ ユーザーガイド のページを参照してください。 |
Locked Axes Flag | 説明 |
---|---|
EDVLF_None | 他の軸に対してどの軸もロックされません。 |
EDVLF_XY | Y 軸が X 軸値に対してロックされます。 |
EDVLF_XZ | Z 軸が X 軸値に対してロックされます。 |
EDVLF_YZ | Z 軸が Y 軸値に対してロックされます。 |
EDVLF_XYZ | Y 軸と Z 軸が X 軸値に対してロックされます。 |
DistributionVectorUniformCurve
時間経過と共にグラフ エディタ上にプロットされるプロパティの値の範囲を表します。最終値はそれぞれの軸の Min カーブおよび Max カーブの間からランダムに選択されます。

- X 軸 Min カーブ
- X 軸 Max カーブ
-
X 軸でランダムに補間された範囲
- Y 軸 Min カーブ
- Y 軸 Max カーブ
-
Y 軸でランダムに補間された範囲
- Z 軸 Min カーブ
- Z 軸 Max カーブ
- Z 軸でランダムに補間された範囲
これを選択すると、値を編集するために次のダイアログが表示されます。

DistributionVectorUniformCurve のプロパティ | |
---|---|
アイテム | 説明 |
Points | 全てのポイントをカーブに含める配列プロパティです。![]() |
Point のプロパティ | |
InVal* | 通常、時間として計算されるグラフの横軸に沿ったポイントの位置です。 |
OutVal* | 通常、プロパティ値として計算されるグラフの縦軸に沿ったポイントの位置です。Vector Uniform Curve の場合、プロパティに含まれる V1 と V2 の値はそれぞれ出力の最小値と最大値を表します。これらの値それぞれに X 軸、Y 軸、Z 軸の値が含まれます。 |
ArriveTangent* | V1 と V2 (最小値と最大値) のポイントに入ってくるタンジェントの角度を提供します。これには X、Y、Z の値が含まれていて、 -150 から 150 前後の範囲が有用な値です。Vector Uniform Curve の場合、プロパティに含まれる V1 と V2 の値はそれぞれ出力の最小値と最大値を表します。これらの値それぞれに X 軸、Y 軸、Z 軸の値が含まれます。 |
LeaveTangent* | X と Y (min と max) 両方のポイントから出て行くタンジェントの角度です。-150 から 150 の範囲の値が有用です。Vector Uniform Curve の場合、プロパティに含まれる V1 と V2 の値はそれぞれ出力の最小値と最大値を表します。これらの値それぞれに X 軸、Y 軸、Z 軸の値が含まれます。 |
InterpMode | 様々なカーブの補間モードを選択できます。詳細は カーブ エディタ ユーザーガイド のページを参照してください。 |
Use Extremes | Min と Max の間の値だけではなく、 Min と Max の値も使用すべきことを示します。 |
Locked Axes Flag | 説明 |
---|---|
EDVLF_None | 他の軸に対してどの軸もロックされません。 |
EDVLF_XY | Y 軸が X 軸値に対してロックされます。 |
EDVLF_XZ | Z 軸が X 軸値に対してロックされます。 |
EDVLF_YZ | Z 軸が Y 軸値に対してロックされます。 |
EDVLF_XYZ | Y 軸と Z 軸が X 軸値に対してロックされます。 |
MirrorFlags によって、値の各成分の最小 / 最大値をミラーリングすることができます。以下のフラグがミラーリングをサポートします。
ミラーフラグ | 説明 |
---|---|
EDVMF_Same | 最小値として最大値を使用します。 |
EDVMF_Different | 各値をセットとして使用します。 |
EDVMF_Mirror | 最小値を最大値の逆数 (Max * -1) とします。 |
他のカーブタイプと同様に、このディストリビューション タイプもカーブ エディタによって編集することをお勧めします。
DistributionVectorParticleParam
前述した FloatParticleParam タイプと同等のベクターです。コード、ブループリント、マチネにより値を操作することができます。
これを選択すると、値を編集するために次のダイアログが表示されます。

DistributionFloatParticleParameter のプロパティ | |
---|---|
アイテム | 説明 |
パラメータ名 | コードまたはブループリント スクリプトがパラメータを参照するときに使用する名前です。 |
Min Input | 通常はゲームコード経由でディストリビューションに渡される最小値です。 |
Max Input | 通常はゲームコード経由でディストリビューションに渡される最大値です。 |
Min Output | 入力範囲からマップされた通りにカスケードに出力できる最小値です。 |
Max Output | 入力範囲からマップされた通りにカスケードに出力できる最大値です。 |
Param Mode | 入力値の使い方を制御します。以下の Param Mode Flag テーブルをご覧ください。 |
Constant | 入力がない場合、システムのデフォルト値です。 |
Locked Axes Flag | 説明 |
---|---|
EDVLF_None | 他の軸に対してどの軸もロックされません。 |
EDVLF_XY | Y 軸が X 軸値に対してロックされます。 |
EDVLF_XZ | Z 軸が X 軸値に対してロックされます。 |
EDVLF_YZ | Z 軸が Y 軸値に対してロックされます。 |
EDVLF_XYZ | Y 軸と Z 軸が X 軸値に対してロックされます。 |
ParamMode フラグ | 説明 |
---|---|
DPM_Normal | 入力値のみを残します。 |
DPM_Abs | 再マッピングの前に入力値の絶対値を使用します。 |
DPM_Direct | 入力値を直接使用します (再マッピングなし)。 |