mParticles ワールド ヘルパー(ドライバとも呼びます)は、シミュレーションのグローバル プロパティを定義します。
注: mParticle ワールド ドライバのアイコンやパラメータをアニメートすることはできません。mParticle ワールド ドライバ アイコンはアニメートできませんが、アイコンの配置と方向によって決定される重力の方向と地面の位置は、フレーム 0 のアイコンの位置によって定義されます。
「[mParticles ワールド](mParticles World)オペレータ」も参照してください。
インタフェース: [パラメータ](Parameters)ロールアウト
mParticles ワールド ヘルパーのインタフェースは、[パラメータ](Parameters) (このセクション)と[拡張パラメータ](Advanced Parameters)の 2 つのロールアウトで構成されます。
注: mParticles ワールド ヘルパーで標準の
非表示機能を使用すると、関連付けられているすべての mParticle グルー バインディングも非表示になります。他方の表示に影響を与えることなくいずれか一方を非表示にするには、このロールアウトの下にある[ビジュアル表現非表示](Hide Visual Representation)オプションを使用します。
- 重力の適用(Apply Gravity)
- 現実世界の物理をシミュレートするときに最もよく使用されるフォースである重力を有効にします。重力の方向は、mParticles ワールド ヘルパー アイコンの方向によって決定されます。オンの場合、アイコンの中心に、重力の方向を示す矢印が表示されます。
- アクセラレーション(L)
- 重力の大きさ。既定値は、地球の海水面での重力に相当します。
注: mParticles ワールド ヘルパーを追加すると、現在の
[システム単位設定](System Unit Setup)に基づいて、既定の[加速度](Acceleration)の値が決定されます。mParticles ワールド ヘルパーを作成した後にシステム単位を変更する場合、[加速度](Acceleration)の値は標準の重力に対応しなくなります。
- グラウンド衝突平面(Ground Collision Plane)
- パーティクルが衝突する非表示のグラウンド平面を作成します。グラウンド平面はジオメトリとは関係なく、mParticles ワールド ヘルパーのアイコンの位置と方向が平面を定義しています。オンの場合、アイコンの 1 つの面にグラウンド衝突の平面を指定するクロス アイコンが表示されます。
[グラウンド衝突平面](Ground Collision Plane)オプションの効果を示したビデオについては、「グラウンド衝突平面(Ground Collision Plane)」を参照してください。
[グラウンド バウンスおよび摩擦](Ground Bounce And Friction)領域
[グラウンド衝突平面](Ground Collision Plane)がオンの場合に、グラウンド平面のダイナミクス プロパティを設定します。
- 反発(Restitution)
- グラウンド平面に衝突するパーティクルをグラウンド平面が元に戻すエネルギーの量。通常、これはバウンス効果を生成します。これを最大値の 1.0 に設定すると、ニュートンの第 3 法則を満たす状態になる可能性があります。すべてのアクションに対して、同じ大きさで反対方向のリアクションがあります。
[反発](Restitution)が 1.0 に近いときは、バウンス効果が発生しますが、結果として、衝突の間に十分なエネルギーが消費されないので、ダイナミクス ソリューションは安定しない場合があります。衝突するオブジェクトが少なく、相互にバンドルされていない場合、1.0 に近い値はユーザの責任において使用してください。
[反発](Restitution)値の効果を示したビデオについては、「反発(Restitution)」を参照してください。
- 静止摩擦(Static Friction)
- 移動しない 2 つのサーフェス(パーティクルと地面)の間のモーションに抵抗するフォース。
[静止摩擦](Static Friction)値の効果を示したビデオについては、「静止摩擦(Static Friction)」を参照してください。
- [動的摩擦]
- 移動する 2 つのサーフェス(パーティクルと地面)の間のモーションに抵抗するフォース。
[動的摩擦](Dynamic Friction)値の効果を示したビデオについては、「動的摩擦(Static Friction)」を参照してください。
注: パーティクル フロー インタフェースには、マテリアル ペアごとにこれらのパラメータを定義する機能はありません。代わりに、マテリアルごとにパラメータが定義されます。オブジェクト間の相互作用の実際のパラメータ(マテリアル ペアのパラメータ)は、各マテリアルのパラメータの平均として計算されます。
- ワールド制限の設定(Set World Limits)
- シミュレーションのパフォーマンスを最適化するには、このオプションを使用します。オンの場合、シミュレーションはヘルパーのアイコンによって定義されるボリュームの内側でのみ正確に計算されます。ボックスの外側のシミュレーションはかなり簡略化されます。これは一般に、フォースは普通に計算されるが、衝突探知は計算されないことを意味します。衝突探知はシミュレーション計算で最も計算量の多い部分であるためです。
このオプションをオンにすると、パーティクル数が大きい(数千パーティクル)ときにシミュレーションの計算を大幅に(状況によっては 1 桁)高速化することができます。計算の高速化はメモリにとって高い負荷となります。ワールド制限が認識される場合(オプションがオンの場合)、MassFX シミュレーション エンジンはパーティクルの位置に関するこのボリュームの立体的な分析を行います。
[ワールド制限の設定](Set World Limits)オプションの効果を示したビデオについては、「ワールド制限の設定(Set World Limits)」を参照してください。
- [アイコン サイズ]
- ヘルパー アイコンの寸法をワールド単位で設定します。通常、アイコンのサイズはシミュレーションに影響せず、重力の方向とグラウンド衝突平面を示すだけです。唯一の例外は、[ワールド制限の設定](Set World Limits) (前述を参照)がオンの場合です。
[衝突除外](Collision Exclusion)領域
既定では、シミュレーションのすべてのアイテムは衝突グループ 0 に割り当てられます。これは、シミュレーション内のすべてと衝突することを意味します。計算を最適化するためや、その他の理由により、[mParticles シェイプ](mParticles Shape)および[mParticles コリジョン](mParticles Collision)オペレータで特定の衝突グループをアイテムに割り当てることができます。
[衝突除外](Collision Exclusion)領域では、特定の衝突グループ間で「計算しない」衝突を定義することができます。2 つのアイテムのセットが接近しないことがわかっている場合や、それらのアイテムがお互いに通過するかどうかを気にしない場合は、衝突グループに例外を定義することができます。これを実行するには、[衝突グループ](Collision Group)の値を 1 つの衝突グループ ID に設定してから、その他の衝突グループ ID のボタンをクリックします。ボタンはアクティブ(カラー スキームに応じて青または黄色でハイライト表示)のままになるので、衝突グループと衝突除外が識別されます。
- ベイク処理シミュレーション実行(Run Baked Simulation)
- オンの場合、既存のキャッシュからシミュレーションが実行されます。これは、[キャッシュ/ベイク処理シミュレーション](Cache/Bake Simulation) (後述を参照)の使用後にのみ利用できます。
ベイク処理シミュレーションは、[時間設定](Time Configuration) [リアルタイム](Real Time)をオンまたはオフにして再生できます。ベイク処理されていない(「ライブ」)シミュレーションは、リアル タイム再生モード以外でのみ実行できます。「ライブ」シミュレーションは、リアル タイム再生モードで利用できない特定の時間ステップのインテグレーションを必要とするためです。キャッシュなしでリアル タイム再生モードの「ライブ」シミュレーションを実行することはソフトウェアでは禁止されませんが、結果に矛盾が生じたり、誤りになる場合があります。
- ?
- メモリ使用量など、ベイク処理シミュレーションに関する統計を含むダイアログ ボックスを開きます。ベイク処理シミュレーションはシーン ファイルで保存されます。
- キャッシュ/ベイク処理シミュレーション(Cache/Bake Simulation)
- 定義された時間間隔でシミュレーションを計算し、インタフェース キャッシュにシミュレーション データを保存します。シミュレーション データがキャッシュに保存されると、[ベイク処理シミュレーション実行](Run Baked Simulation)が利用できるようになります。ベイク処理シミュレーションを除去してシーン ファイルが大きくなりすぎるのを防ぐには、[X]ボタンをクリックします。
ベイク処理のシミュレーションを計算する時間間隔は、次のパラメータによって定義されます。
- [範囲]
- シミュレーションをキャッシュするフレーム範囲を設定します。オプションは次のとおりです。
- [アクティブ セグメント](Active Segment)アクティブ タイム セグメントを使用します。
- [カスタム範囲](Custom Range)カスタム範囲は[開始]と[終了]の 2 つの時間スピナーで定義されます。
- ビューポートを更新
- オンの場合、シミュレーションが計算されるときにビューポートが更新されます。オフにすると計算が高速になりますが、視覚フィードバックはなくなります。
ヒント: シミュレーションを 1 つの連続的な「実行」で計算する必要はありません。異なるテイクに対してシミュレーション パラメータを変化させてセクションを計算することができます。たとえば、フレーム 0 ~ 50 では 1 セットのパラメータを使用し、フレーム 51 ~ 100 では異なるパラメータを使用してシミュレーションをキャッシュすることもできます。この後ベイク処理シミュレーションを実行すると、フレーム 50 でモーションの変化を確認できることがあります。
- >> [再生]
- シミュレーションの非リアル タイム再生を有効にし、シミュレーションがアニメーション フレームをスキップしないようにします。これにより一定の動作が保証されます。
このコマンドは、アクティブ タイム セグメント上でシミュレーションを繰り返し実行します。[シミュレーション再生](Simulation Playback)ダイアログのコントロールを使用すると、再生速度を変更し、実際の速度と現在のフレームを表示できます。再生を切り替えるには、[停止](Stop)ボタンと[再生](Play)ボタンを使用します。ダイアログを終了する場合は、[キャンセル](Cancel)をクリックします。
- ビジュアル表現非表示(Hide Visual Representation)
- mParticles ワールド ヘルパー アイコンと、mParticles ワールド ヘルパーによってコントロールされるイベントの mParticles グルー バインディングの表示を切り替えるスイッチ。オンの場合、それぞれの要素がビューポートで表示されません。
インタフェース: [拡張パラメータ](Advanced Parameters)ロールアウト
- サブフレーム タイプ(Subframe Type)
- シミュレーションで、パーティクル フロー システムのインテグレーション ステップをシミュレーションの各ステップのタイミング パラメータとして使用します。シミュレーションのために精度を高める場合は、次の 2 つのいずれかの方法でシステムのインテグレーション ステップをより小さいシミュレーション間隔にサブディバイドすることができます。
- [固定](Fixed)[サブフレーム係数](Subframe Factor)設定(後述を参照)を使用してシステムのインテグレーション ステップをサブディバイドします。
- [変数](Variable)MassFX エンジンがステップ間隔をサブディバイドして定義する最良の方法を決定します。
ヒント: mParticles グルーと併用する安定した再現可能なシミュレーションのためには、[固定](Fixed)サブフレーム タイプの使用を強く推奨します。
- サブフレーム係数(Subframe Factor)
- [サブフレーム タイプ](Subframe Type)を[固定](Fixed)に設定した場合、この設定によってシステムのインテグレーション ステップをより小さいシミュレーション間隔にサブディバイドする方法をパーティクル フローに伝えます。[サブフレーム係数](Subframe Factor)の 1 の値は追加のサブディビジョンが発生しないことを意味し、2 の値はメインのインテグレーション ステップが物理シミュレーションのために半分になることを意味します。以降も同様です。
ヒント: オブジェクトが動く必要がないときに動くなど、シミュレーションが不安定になった場合は、[サブフレーム係数](Subframe Factor)の値を上げてみてください。[サブフレーム係数](Subframe Factor)の値は、
[パーティクルごとの最大バインド数](Max Binds p/Particle)の値を倍にして 2 を足した数値に設定するのが一般的なルールです。たとえば、[パーティクルごとの最大バインド数](Max Binds p/Particle)が 4 の場合、[サブフレーム係数](Subframe Factor)を(2 x 4) + 2=10 に設定します。
[サブフレーム係数](Subframe Factor)は、シミュレーションの全体的な複雑さに応じてこれより小さい値に設定できる場合があります。一般に、実験をして最良の設定を見つける必要があります。
[サブフレーム タイプ](Subframe Type)オプションと[サブフレーム係数](Subframe Factor)値の効果を示したビデオについては、「[サブフレーム タイプ](Subframe Type)と[サブフレーム係数](Subframe Factor)」を参照してください。
- タイム スケール% (Time Scale %)
- シミュレーション時間を速くしたり遅くする場合は、この設定を使用します。この設定をアニメートすることにより、たとえば、最初は普通の速度でシミュレーションを実行し、それからいくつかのフレームで「ブレット タイム」タイプの効果のためにタイム スケールの値を小さくすることができます。
注: 最良の結果のため、[タイム スケール%](Time Scale %)の値を変更するときは、同様の倍数で[サブフレーム係数](Subframe Factor)の値(前述を参照)を調整します。たとえば、[サブフレーム係数](Subframe Factor)が 18 で[タイム スケール%](Time Scale %)を 50.0 に設定する場合、[サブフレーム係数](Subframe Factor)を 9 に変更します。そうしないと、シミュレーションの出力が目に見えて変わる可能性があります。
[タイム スケール%](Time Scale %)値の効果を示したビデオについては、「タイム スケール%(Time Scale %)」を参照してください。
[スリープしきい値](Sleep Thresholds)領域
- スリープしきい値(Sleep Thresholds)
- 計算を最適化するため、MassFX エンジンでは、シミュレーション要素がゆっくり移動したりエネルギーが小さい場合に、シミュレーション要素を非アクティブまたはスリープ状態にします。この状態ではパーティクルはシミュレーションに参加しなくなり、衝突によってアクティブ パーティクルと接触したり、(通常、[出力 mParticles](Output mParticles)サブオペレータによって)プロパティの 1 つが変更されるまでスリープ状態になります。これは、パーティクルがほとんど動かないときにジッタを減らすのに役立ちます。
[スリープしきい値](Sleep Thresholds)領域の設定では、使用する方法を指定し、パーティクルをスリープにするときのパーティクルのプロパティの最小値を定義します。
パーティクルをスリープにする条件を決定する方法を定義するには、次のいずれかを選択します。
- [エネルギー](Energy)パーティクル質量を考慮して、大きなパーティクルがゆっくり動く場合に、低速でも質量の値により十分なエネルギーが生じるため、スリープ状態にならないようにします。この方法を使用してスリープ状態を定義するには、[エネルギー](Energy)および[バウンス](Bounce)パラメータ(後述を参照)を使用します。
- [速度/スピン](Speed/Spin)パーティクルがスリープになるには、パーティクルの速度とスピンの両方の値が定義されたしきい値(後述を参照)より低い必要があります。
次の設定を使用して、方法(前述を参照)に応じてスリープ状態が定義されるしきい値を指定します。
- [エネルギー]
- パーティクルがこの値より小さくなるとスリープになる可能性があるエネルギーのしきい値。パーティクルの運動エネルギーがこのしきい値を超えると、パーティクルはスリープになりません。
- [速度]
- 1 秒あたりのワールド単位で表される、パーティクルがこの値より小さくなるとスリープになる可能性がある線形速度。パーティクルの線形速度がこのしきい値を超えると、パーティクルはスリープになりません。
- [スピン レート]
- 1 秒あたりの回転の度数で定義される、パーティクルがこの値より小さくなるとスリープになる可能性がある角速度。パーティクルの角速度がこのしきい値を超えると、パーティクルはスリープになりません。
- [バウンド係数]
- スリープ状態には直接関連しませんが、シミュレーションが静止するまでの速度に影響します。[バウンス](Bounce)設定では、1 秒あたりのワールド単位で表される、衝突するアイテム間(パーティクルどうしまたはパーティクルとディフレクタ)の相対速度の値を定義します。この値より小さい相対速度の接触または衝突ではパーティクルはバウンドしません。
- 既定値にリセット(Reset To Default Values)
- [スリープしきい値](Sleep Thresholds)領域の設定を既定値に戻します([エネルギー](Energy)と[速度/スピン](Speed/Spin)のラジオ ボタンを除く)。
- マルチ スレッドを有効にする(Enable Multi Threading)
- コンピュータに複数の CPU (実在または仮想)があり、PhysX ハードウェアがない場合、このチェック ボックスをオンにして、[スレッド数](Thread Count)をシミュレーションの計算に使用する CPU の数に設定すると、シミュレーション処理を高速化できます。[スレッド数](Thread Count)の値が正確かどうかはチェックされません。
注: 一部のシミュレーションは、シーンの複雑さにより複数のコアに簡単に分割できない場合があります。このような場合にマルチスレッドを使用すると、パフォーマンスが少し低下する可能性があります。
- ハードウエア GPU を使用(Use Hardware PPU)
- コンピュータに NVIDIA PhysX ハードウェアが存在する場合、このオプションを使用でき、オンにすると mParticles ワールド ドライバがこのハードウェアでシミュレーションを実行するように指示することができます。
注: PhysX ハードウェアが一度に保持できるシミュレーションは 1 つのみです。このため、同時の複数のシミュレーションに対してパーティクル システムに複数の mParticles ワールド ドライバが含まれる場合、ドライバの 1 つのみがシミュレーションにハードウェアを使用することができます。また、PhysX ハードウェアを使用するその他のプラグインは、シミュレーションにハードウェアを使用する mParticles ワールド ドライバの機能の妨げになる可能性があります。
- 制限されたブロードフェーズ(Restricted Broadphase)
- ハードウェア シーンは制限と標準の 2 つのモードで実行できます。制限モードで実行した場合、ハードウェアは 4,000 のシミュレーション アイテム(パーティクルおよびディフレクタ)に制限されたブロードフェーズ衝突探知を実行します。一方、標準モードでは、[制限されたブロードフェーズ](Restricted Broadphase)がオフの場合、ブロードフェーズはソフトウェアで実行され、唯一の制限はメモリであり、現在はシェイプごとに 64K に設定されています。ブロードフェーズをソフトウェアで実行すると、CPU 使用率が増え、パフォーマンスが低下することがあるというトレードオフがあります。要約すると、シミュレートされたパーティクルの数が任意の時間に 4,000 を超える可能性がある場合は、[制限されたブロードフェーズ](Restricted Broadphase)をオフにします。
ハードウェア シーンにはその他の制限もあります。
ハードウェア シーンは最大 64,000 のバインド(「mParticles グルー テスト」を参照)、および 64,000 のシミュレーション アイテム(パーティクルおよびディフレクタ)を保持できます。
アクティブな(スリープでない)シミュレーション アイテムの数についてはさらに制限があります。シーンには 64,000 のシミュレーション アイテムを含めることができますが(制限されたシーンでない場合)、アクティブにできるのは 4,000 のシミュレーション アイテムと 4,000 のバインドのみです。
ハードウェアは、凸型シェイプで最大 32 の面と 32 の頂点をサポートします(「[mParticles シェイプ](mParticles Shape)オペレータ」を参照)。より大きいシェイプはソフトウェアに戻されます。
ハードウェアは異なるソルバを使用するため、バインドと衝突の動作はソフトウェアで実行される場合と異なります。このため、ソフトウェアでレンダリングされたフレームとハードウェア シミュレーションは一緒にしないでください。
- セーフ モード シミュレーション(Safe Mode Simulation)
- オンの場合、シミュレーション エンジンがインテグレーション ステップの計算にかけることができる最大の時間を秒単位で指定できます(次の「計算限界(Calculation Limit)」を参照)。オフの場合、シミュレーション ステップの計算の時間制限はありません。シミュレーションが成功する場合、オンにしたときよりも少しだけ速く実行できます。既定値ではチェックマークが付いています。
このオプションは、MassFX エンジンが無限ループに陥る可能性がある場合や、適当な時間内にインテグレーション ステップを解決できない特定の状況に役立ちます(たとえば、パーティクル サイズが[発生グリッド](Birth Grid) [グリッド サイズ](Grid Size)の設定より大幅に大きい場合など)。一般に、パーティクル フロー シミュレーションを初めて学習する場合は特に、[セーフ モード シミュレーション](Safe Mode Simulation)をオンにしたままにします。経験を積み、MassFX エンジンの落とし穴の多くを避けることができたら、このオプションをオフにすることができます。
ParticleFlowToolsBox2.ini
ファイルを編集してこのオプションを既定でオフにすることもできます(「mParticles シミュレーション ツールをカスタマイズする」を参照)。
- 計算限界(Calculation Limit)
- シミュレーション エンジンがインテグレーション ステップを計算するためにかけることができる最大の時間(秒単位)。この時間を超えると、シミュレーションは中止され、ステータス バーにエラー メッセージが表示されます。その後、元に戻してから別の方法を試すことができます。[セーフ モード シミュレーション](Safe Mode Simulation)がオンになっている場合にのみ使用できます。