MassFX シミュレーションには、パーティクルの初期配置について特定の要件があり、パーティクルのシェイプは互いに交差することができません。標準のパーティクル フロー位置オペレータは、パーティクルのシェイプがオーバーラップするかどうかの可能性に関係なく、パーティクルの場所をランダムに生成します。この要件に対応するため、[発生グリッド](Birth Grid)オペレータは、パーティクルとその場所の生成の両方をコントロールします。これらの 2 つの品質は、ボリューム パッキングの場合に緊密に連結されます。
オペレータには、パーティクルが発生する場所を指定するボックス シェイプの 3D アイコンがあります。パーティクルの位置は、このアイコンの相対値として計算されます。したがって、パーティクルの位置が計算されたら、再計算せずに、オペレータ アイコンを変換できます。
発生グリッドを使用するには、[発生グリッド](Birth Grid)をイベントに追加するか、パーティクル システムの既存の発生オペレータを置き換えます。[発生グリッド](Birth Grid)オペレータを追加すると、ワールド座標(0,0,0)に発生グリッド ヘルパー オブジェクトが作成されます。このアイコンを、パーティクルを発生させる場所に配置します。
最適な結果を得るために、発生イベントに位置タイプのオペレータが含まれている場合は、そのオペレータを削除します。
「[発生ストリーム](Birth Stream)オペレータ」および「[発生グループ](Birth Group)オペレータ」を参照してください。
重要な発生グリッド ポイント
発生グリッドは、パーティクル フローで利用できる中で最も複雑な発生タイプのオペレータであるため、さまざまな設定を組み合わせてパーティクル配列を作成する方法を認識することが重要です。発生グリッドを使用する場合は、次の点に注意してください。
- 最善の予測可能な結果を得るには、[発生グリッド](Birth Grid)アイコンをスケールするのではなく、[アイコン サイズ](Icon Size)設定を調整します。アイコンをスケールする場合、パーティクルの数は同じでも、位置は変更されることに注意してください。
- 反対に、[アイコン サイズ](Icon Size)設定を調整して[発生グリッド](Birth Grid)アイコンのサイズを変更すると、パーティクルの数が変更されます。同じ密度を指定([グリッド サイズ](Grid Size)設定)した場合、アイコンのサイズが大きくなればパーティクルの数は多くなり、サイズが小さくなればパーティクルの数は少なくなります。
- [グリッド サイズ](Grid Size)、[上限](Upper Limit)、および[アイコン サイズ](Icon Size)の設定に基づいて、グリッドを塗りつぶすのに十分なパーティクルがない場合、配列が切り捨てられます。この場合は、[上限](Upper Limit)設定の値を大きくします(また、パーティクルの数が増えたために低速になる場合に備えます)。
- [グリッド サイズ](Grid Size)および[不均等グリッド](Non-Uniform Grid)設定はパーティクルの密度には影響しますが、ボリュームには影響しません(十分な数のパーティクルがある場合)。一方、[アイコン サイズ](Icon Size)はボリュームには影響しますが、密度には影響しません。
- [グリッド サイズ](Grid Size)値はパーティクルの数に反比例します。[グリッド サイズ](Grid Size)の値が小さくなれば、生成されるパーティクルの数が増えます。パーティクルが、オーバーラップしない限り指定されたボリュームに収まらない場合は、そのボリュームが[アイコン サイズ](Icon Size)設定またはメッシュ ボリュームのどちらで指定されているかに関係なく、[MassFX ワールド](MassFX World)オペレータがオンであれば、パーティクルはそのボリュームを超えます。この問題が発生した場合は、[グリッド サイズ](Grid Size)の値を大きくして、パーティクルの数を減らします。
- 発生グリッドは特定の順序で(通常はボトム アップ)アイコンを塗り潰すため、グリッドが一杯ではない([不均等グリッド](Non-Uniform Grid)の寸法が減少しているため)場合、パーティクルはボリュームの同じ部分からなくなっていくのが一般的です。これを塗り潰すためには、[上限](Upper Limit)設定の値を大きくする必要があります。
- 塗り潰し順序がボトム アップであるため(正の高さ方向)、特定の発生インデックスを使用するオペレータがある場合は、それを利用できます。順番がわかっている場合は、スペースで[発生](Birth)アイコンを回転させて正しい方向にすることができます。この場合の例については、付属のサンプルファイル WallToWall.max を参照してください。
手順
発生グリッドで最適な結果を得るには、特定の条件を満たす必要があります。推奨される方法として、次の手順例に従います。
注: MassFX フローでは、この設定の大部分が自動的に実行されますが、発生グリッドとパーティクル フロー シミュレーションの基本的な使い方を理解するために次の手順に従うことをお勧めします。
発生グリッドを使用するには:
- パーティクル ビューを開き、[標準フロー](Standard Flow)を追加します。
- [PF ソース](PFソース)イベントをクリックし、[放出](Emission)ロールアウトで、[マルチプライヤ量](Quantity Multiplier) [ビューポート %](Viewport %)を 100.0 に設定します。
既定のパーティクル フロー システムのビューポート可視性マルチプライヤは 50% であるため、この手順は重要です。この結果、グリッド ノットは正しく読み込まれず、パーティクルは半分しか表示されない可能性があります。すべてのパーティクルを正しい位置に表示するには、ビューポートのマルチプライヤを 100% に調整します。
- [表示 01](Display 01)オペレータをクリックし、[タイプ](Type)を[ジオメトリ](Geometry)に設定します。
- [イベント 01](Event 01)で、[位置アイコン](Position Icon)および[回転](Rotation)オペレータをオフにするか、削除します。
発生グリッドではそのアイコンをパーティクルを配置するために使用するため、発生イベントでは位置オペレータを使用しないことが重要です。回転オペレータを使用しないことはそれほど重要ではありませんが、パーティクル(特に球状でないパーティクル)は互いに揃えるのが一般的です。
-
適切なオペレータを使用して、パーティクルのシェイプとサイズを必要なサイズに設定します。
- [イベント 01](Event 01)の[発生](Birth)オペレータを[発生グリッド](Birth Grid)オペレータに置き換えて、[発生グリッド](Birth Grid)オペレータをクリックし、そのロールアウトがパーティクルビューに表示されるようにします。
これにより、[発生グリッド](Birth Grid)アイコンが配置され、パーティクル グリッドがワールドの中心(0,0,0)で読み込まれます。グリッドを必要な発生場所に移動します。
通常、グリッドは完全にパッキングされます。この問題を解決するには、パーティクル サイズを小さくし、[グリッド サイズ](Grid Size)値を大きくする(グリッド ノット間のスペースを増やす)か、または両方を実行します。
MassFX シミュレーションの開始時にパーティクルの衝突を回避するためには、パーティクル間に可視のスペースが必要です。
- アニメーションを再生します。
パーティクルは、(既定の[速度](Speed)オペレータにより)グリッド内のその開始位置からドロップします。
インタフェース
発生グリッドは、3D のボックス シェイプ グリッド内に作成するパーティクルを配置します。既定では、パーティクルは等間隔に並べられます。スペース全体は、[グリッド サイズ](Grid Size)設定で決定されます。この値を大きくすると、パーティクル間のスペースが大きくなり、値を小さくすると、スペースは小さくなります。不均等間隔にするには、[不均等グリッド](Non-Uniform Grid)をオンにし、その 3 つの数値設定を使用して、各軸のスペースを、スペース全体における割合として調整します。[グリッド サイズ](Grid Size)と、オプションの[グリッド長さ %](Grid Length %)/[グリッド幅 %](Grid Width %)/[グリッド高さ %](Grid Height %)両方の設定で、グリッド内のパーティクル密度を指定します。
反対に、3D グリッドのボリュームは、[アイコン サイズ](Icon Size)設定([長さ](Length)/[幅](Width)/[高さ](Height))で指定されます。これらの設定は密度に影響しません。ボックス以外のグリッド シェイプにするには、
[メッシュ ボリュームによる制限](Restrict By Mesh Volume)とメッシュ オブジェクトを使用します。このようにシェイプのグリッドを作成し、塗り潰したり、凹ませることができます([外部レイヤ](External Layers)設定でシェルの厚さを指定できます)。メッシュ ボリューム オブジェクトにオブジェクトをネストして、ボリューム内のパーティクルの任意のレイヤを指定できます。
- [放出時間]
- オペレータによってすべてのパーティクルが放出されるフレーム番号。既定値は 0 です。
発生グリッドは、[放出時間](Emit Time)設定で定義されたフレームにすべてのパーティクルを同時に生成します。パーティクルが少しずつ表示されるようにするには、シェイプ オペレータを使用せずに発生イベントでパーティクルを生成し、任意の方法でパーティクルを、シェイプ オペレータを含む別のイベントに向けます。
- グリッド ベース(Grid Base)
- パーティクルを単一のグリッド レイヤでパッキングする方法として、正方形または三角レイアウトを選択します。この 2 つの選択項目を、次の図の上から順に示します。
[正方形](Square)と[三角形](Triangle)
- [グリッド サイズ]
- グリッド ノット間の距離を表し、各パーティクルは 1 つのノットで発生します。[不均等グリッド](Non-Uniform Grid)をオフにしてこのパラメータを使用すると(以下の図を参照)、すべてのノットは等間隔になります。
さまざまな[グリッド サイズ](Grid Size)値の比較
- 非均等グリッド(Non-Uniform Grid)
- オンにすると、3 つの軸それぞれに対して個別にノット スペースを指定できます。この値は、[グリッド サイズ](Grid Size)で指定した基本スペースに対する割合で表されます。これを指定するには、[グリッド長さ %](Grid Length %)/[グリッド幅 %](Grid Width %)/[グリッド高さ %](Grid Height %)を使用します。
[不均等グリッド](Non-Uniform Grid)オプションの効果を示したビデオについては、「非均等グリッド(Non-Uniform Grid)」を参照してください。
- 交互横方向オフセット(Alternating Lateral Offset)
- 果物が直売所で積み重ねられているのと同じように、パーティクルをよりコンパクトに配置します。オンにすると、[コンパクト垂直サイズ](Compact Vertical Size)が使用できるようになります。
- コンパクト垂直サイズ(Compact Vertical Size)
- 垂直のグリッド サイズを調整してパーティクルをよりコンパクトにするかどうかを指定します。この場合、グリッド サイズはレイヤ間の距離ではなく、レイヤのパーティクル間の距離になります。
[交互横方向オフセット](Alternating Lateral Offset)と[コンパクト垂直サイズ](Compact Vertical Size)を、さまざまな[グリッド ベース](Grid Base)オプションとともに使用した例を次の図に示します。
- ランダム垂直オフセット(Random Vertical Offset)
- パーティクルの垂直列を移動して、パーティクルが浸透しない範囲内でのみパーティクルの配置をランダム化します。
[ランダム垂直オフセット](Random Vertical Offset)オプションの効果を示したビデオについては、「ランダム垂直オフセット(Random Vertical Offset)」を参照してください。
- グリッド オフセット % (Grid Offset %)
- ランダム垂直オフセットの範囲を指定します。
[独自性](Uniqueness)領域
- シード
- パーティクル列のランダム垂直オフセットを変更します。
- 新規
- ランダム化する式を使用して新規シードを計算します。
- メッシュ ボリュームによる制限(Restrict By Mesh Volume)
- オンにして、参照ジオメトリ(後述を参照)を指定すると、発生グリッドは、参照オブジェクト内のグリッド ノット位置にのみパーティクルを生成します。つまり、参照オブジェクトの少なくとも一部がオペレータ アイコン内にあることが必要です。
ヒント: この機能を使用して、メッシュ オブジェクトのシェイプを使用するパーティクル配列を作成します。[内部パーティクル削除](Delete Internal Particles)オプション(後述を参照)を使用すると、パーティクル配列は、次の図に示すように、オブジェクトのシェイプを定義するシェル形式で表示できます。
また、レイヤ シェルで、[アタッチ](Attach)を使用して 1 つのオブジェクトに結合された、ネストされたメッシュ オブジェクトを使用することもできます。これにより、[メッシュ ボリュームによる制限](Restrict By Mesh Volume)を使用している場合は、オペレータが同心サーフェスの各ぺア内にのみパーティクルを配置するため、[内部パーティクル削除](Delete Internal Particles)を使用しなくても、凹んだセクションを取得できます。
次の図では、2 つの円柱、1 つのボックス、および 1 つの球を(内部から)ネストしています。開いた上下にするために、[発生グリッド](Birth Grid)アイコンの高さを小さくし、その上と下がネストされているシェイプの境界内に含まれるように配置しています。
注: 参照ジオメトリ内にあるグリッド ノットを確認するプロセスは、グリッド ノットの数やメッシュ トポロジの複雑さによって長くなる場合があります。計算中に、プログラム インタフェースの
ステータス ラインに、実行の進行状況バーが表示されます。計算を中断するには、[キャンセル](Cancel)ボタンをクリックします。
[メッシュ ボリュームによる制限](Restrict By Mesh Volume)がオンの場合、次のコントロールを使用できるようになります。
- 内部パーティクル削除(Delete Internal Particles)
- オンにすると、メッシュ ボリューム内にパーティクルの外部レイヤのみが生成されます。
- 外部レイヤ数(External Layers #)
- メッシュ ボリュームで定義されたシェルの、パーティクル レイヤでの厚さ。
- インタラクティブ更新
- オンにすると、[グリッド サイズ](Grid Size)などの発生グリッド設定で、グリッドがすぐに更新されます。オフの場合に、パラメータの変更結果を表示するには、[メッシュ ボリューム計算限界](Calculate Mesh Volume)をクリックします。
ヒント: 多数のパーティクルを扱う場合は、[インタラクティブ更新](Interactive Update)をオフにして、必要な場合にのみグリッドを再計算することで処理が速くなります。
注: [インタラクティブ更新](Interactive Update)をオンにすると、即時更新が強制実行されます。
- 参照ジオメトリ(Reference Geometry)
- このボタンをクリックして、パーティクル生成の制限対象となるボリュームを定義するメッシュが含まれるオブジェクトを指定します。
- =>
- 発生グリッドに割り当てる参照オブジェクトを選択するには、このボタンをクリックします。これにより、シーンのオブジェクトが選択され、オブジェクトの変換やそのパラメータへのアクセスが簡単になります。
- メッシュ ボリューム計算限界(Calculate Mesh Volume Limits)
- このボタンをクリックして、制限対象となるボリュームを定義するメッシュが含まれるオブジェクトを指定します。
参照オブジェクトを最初に指定するときに、発生グリッドでオペレータが自動的に調整されて、オブジェクト内のノットにのみパーテイクルが作成されます。後からオブジェクトを変換または変更したり、別の参照オブジェクトを指定する場合は、[メッシュ ボリューム計算限界](Calculate Mesh Volume Limits)を使用して変更を登録し、グリッドを更新します。
- [アイコン サイズ]
- ヘルパー アイコンのサイズをワールド単位で設定します。これは、パーティクルの密度ではなく、アイコンのボリュームに影響します。[メッシュ ボリュームによる制限](Restrict By Mesh Volume)オプションを使用している場合でも、発生グリッドではアイコン ボリューム内にのみパーティクルが作成される点に注意してください。
密度設定([グリッド サイズ](Grid Size)と[不均等グリッド](Non-Uniform Grid))を使用して最も予測可能な結果を得るには、アイコンを直接スケールするのではなく、[アイコン サイズ](Icon Size)設定を使用してください。
- [調整カラー]
- オンにすると、[発生グリッド](Birth Grid)アイコンで、イベントの[表示](Display)オペレータと同じカラーが使用されます。
[グリッド ノットの量](Grid Knots Amout)領域
- [上限]
- 使用する発生グリッドのグリッド ノットの最大数を指定します。
- 合計
- 参照ジオメトリ メッシュの制限を考慮しない場合の、オペレータのアイコン内のグリッド ノットの数。
- 実際値(Actual)
- 参照ジオメトリ メッシュで[メッシュ ボリュームによる制限](Restrict By Mesh Volume)を使用するときに、メッシュ ボリュームの制限の後のパーティクルの数を表示します。
- グリッド データをファイルと保存(Save Grid Data With File)
- グリッド ノットの計算には長い時間がかかるため、[グリッド データをファイルと保存](Save Grid Data With File)をオンにして、MAX シーン ファイルに計算の結果を保存できます。オフにすると、シーン ファイルを開くたびに、グリッド ノットの配置が再計算されます。これによりファイルが大きくなってしまう場合があります。