[MassFX ツール](MassFX Tools)ダイアログ ボックスの[ワールド パラメータ](World Parameters)パネルでは、3ds Max で物理的シミュレーションを作成するためのグローバル設定とコントロールが提供されます。 これらの設定は、シミュレーション内のすべてのオブジェクトに影響します。
インタフェース
[シーン設定](Scene Settings)ロールアウト
[環境](Environment)領域
これらの設定により、地盤の衝突と重力をコントロールできます。 重力をシミュレートするには、3ds Max の MassFX または[重力 スペース ワープ](Gravity space warp)に組み込まれている力を使用できます。 また、重力をまったく使用しないように選択することもできます。
- グラウンド衝突を使用
- オンにすると、MassFX は[グラウンド高さ](Ground Height)レベル、つまりホーム グリッドと平行または共有面の(非表示の)無限平面静止リジッド ボディを使用します。 このボディは摩擦と弾力性の値が固定です。既定値はオンです。
ヒント: シミュレーション用の手軽なテストベッドとしてグラウンド平面を使用します。
- グラウンド高さ
- [グラウンド衝突を使用](Use Ground Collisions)がオンになっているときのグラウンド リジッド ボディの高さ。 アクティブの[単位](units)で指定されています。
- グローバル重力
- これらの設定は、[ワールド重力を使用](Use World Gravity)が有効になっているリジッド ボディおよび[グローバル重力を使用](Use Global Gravity)が有効になっている mCloth オブジェクトに適用されます。
- 指向性重力MassFX に組み込まれている重力を適用します。 この力は以下の設定で調整できます。
- [フォース オブジェクトの重力](Gravity by Force Object) [重力スペース ワープ](Gravity Space Warp)を使用して、リジッド ボディに重力を適用してみましょう。最初にスペース ワープをシーンに追加し、次に[重力を選択](Pick Gravity)ボタンを使用して、シミュレーションで使用するためにそのスペース ワープを指定します。
このオプションでは、MassFX 重力と同じスケールを使用しますが、負の値ではなく正の値を用います。そのため、実際の地球上の重力の場合、[システム単位スケール](System Unit Scale)が 1.0 インチに設定されているときには、スペース ワープの強度を 386.221 に設定します。 他のシステム単位の場合は、上記の「[アクセラレーション](Acceleration)」を参照してください。
このオプションを使用する主な利点は、スペース ワープ オブジェクトを回転することによって、あらゆる方向に重力を適用できる点です。 [減衰度](Decay)オプションは作用せず、重力には必ず[平面](Planar)オプションが使用されます。これを[球状](Spherical)に設定しても効果はありません。
- 重力なしこれを選択しても、重力はシミュレーションには影響しません。
[リジット ボディ](Rigid Bodies)領域
衝突とコンストレイントがシミュレーションで正しく機能していないと考えられる場合は、これらの設定を調整してみてください。
- サブステップ
- 各グラフィカル更新の間に実行されるシミュレーション ステップの数は、「(サブステップ + 1) * フレーム レート」という式で決まります。フレーム レートが 30 fps で 0 サブステップの場合は、1 秒間に 30 シミュレーション ステップ、1 サブステップの場合は 1 秒間に 60 ステップ、2 サブステップの場合は 1 秒間に 180 シミュレーション ステップ、などとなります。サブステップの最大値は 159 であり、これは 30 fps のアニメーションで 1 秒間に 4,800 シミュレーション ステップになります。サブステップの値を大きくするほど衝突およびコンストレイントの結果の精度は高くなりますが、パフォーマンスは低下します。
- ソルバ反復[アクション](Action)
- コンストレイント ソルバが衝突とコンストレイントを実施する回数のグローバル設定です。シミュレーションで使用されるコンストレイントが多い場合、または結合エラーの許容値が非常に小さい場合は、この値を高くすることが必要になる場合があります。通常、この値を 30 より大きくする必要はありません。
- 高速度衝突を使用
- 連続的な衝突探知の切り替えに対するグローバル設定です。
シミュレーションの間にリジット ボディが高速で動き、長い距離を移動すると、相互に「通り抜ける」ことがあります。たとえば、低フレーム レートを使用するアニメーションでボーリングのボールが高速で移動すると、あるフレームでピンの横にあったボールが、次のフレームではピンの反対側に移動する可能性があります。このような場合は、ボールとピンが意図したようには衝突しません。
このような現象は、フレーム レートまたはシミュレーションのサブステップを大きくすることで解決できます。ただし、これらの設定はグローバルに適用されます。ある高速移動オブジェクトを修正するために値を大きくすると、シミュレーション全体のパフォーマンスが低下します。[高速度衝突を使用](Use High Velocity Collisions)をオンにすると、MassFX は高速で移動するリジット ボディを検出し、前のフレームと現在のフレームの位置にまたがる単純な衝突シェイプを作成します。たとえば、ボーリングのボールにはピンの一方の側から他の側に及ぶカプセルがあります。カプセルはピントオーバーラップするので、MassFX は衝突を検出します。
既定では、MassFX は、発見的に(つまり、経験的データに基づいて)、リジット ボディに[高速度衝突](High Velocity Collisions)を適用する最低のしきい値速度を設定します。カスタム値を指定するには、[高速度衝突](High Velocity Collisions)の [最低スピード](Min Speed)設定を使用します。
- アダプティブ フォースを使用
- これをオンにすると、必要に応じて結合された浸透力が縮小され、強固にクラスタ化されたスタック リジッド ボディでのジッターが削減されます。
- エレメントごとにシェイプを生成
- これをオンにして、MassFX リジッド ボディ モディファイヤをオブジェクトに適用すると、オブジェクト内の要素ごとに個別の物理シェイプが作成されます。 これをオフにすると、オブジェクト全体を表す単一の物理シェイプが作成されます。 オフにした場合は、正確性に欠けることもありますが、シミュレーション速度は速くなる可能性があります。
たとえば、3ds Max のティーポット プリミティブは、本体、取っ手、口、ふたの 4 つの要素で構成されています。 次の図では、[エレメントごとにシェイプを生成](Generate Shape Per Element)をオンにした場合とオフにした場合に生成されるティーポットの物理シェイプを比較したものです。 左の図は 4 つの物理シェイプで構成されており、「遮断」された凹型領域(取っ手の内側など)がありますが、実際のティーポットに近い形をしています。
左: [エレメントごとにシェイプを生成](Generate Shape Per Element)=オン
右: [エレメントごとにシェイプ生成](Generate Shape Per Element)=オフ
注: このスイッチは、後から作成されたリジッド ボディのみに適用されます。 既存のリジッド ボディ モディファイヤを単一のシェイプとエレメントごとのシェイプの間で切り替えることはできません。
[拡張設定](Advanced Settings)ロールアウト
[スリープ設定](Sleep Settings)領域
- [スリープ方法]
- 特定の速度より低速で移動するシミュレーション内のリジッド ボディは、自動的に「スリープ」モードになり、移動が停止します。 これにより、MassFX がその他のよりアクティブなオブジェクトの処理に移るため、パフォーマンスが向上します。 スリープ状態のオブジェクトに、別のスリープ状態でないリジッド ボディが衝突すると、オブジェクトは「活動化」され、移動が再開されます。
MassFX がボディのスリープを決定する方法を選択します。
- [自動](Automatic)MassFX が、それより高い値ではスリープを適用する線形と矩形の両方の速度に対する適切なスリープしきい値を自動的に計算します。そのためには、発見的つまり経験に基づく方法を使用します。
- [手動](Manual)速度とスピンの発見的な値を無効にするには、[手動](Manual)を選択し、必要に応じて以下の値を調整します。
- スリープ エネルギー
- スリープ状態のメカニズムでは、オブジェクトの移動範囲(平行移動と回転の組み合わせ)が測定され、その動きが[スリープ エネルギー](Sleep Energy)しきい値を下回ると、オブジェクトがスリープ状態になります。 しきい値は質量とは無関係です。
[高速度衝突](High Velocity Collisions)領域
- [高速度衝突の方法]
- [高速度衝突を使用](Use High Velocity Collisions)がオンのときは、これらの設定によって MassFX がこのような衝突を計算する方法が決まります。方法を選択します。
- 自動MassFX は、発見的なアルゴリズムを使用して、それを超えると高速衝突方法を適用する妥当な速度しきい値を計算します。
- 手動速度の自動値を無効にするには、[手動](Manual)を選択し、[最小速度](Speed Minimum)に適切な値を設定します。
- [最低スピード](Min(imum) Speed)
- この速度(単位/秒で指定)より速く移動するシミュレーション内のリジット ボディは、自動的に高速衝突モードに移行します。この値の設定が高すぎると、高速で移動するオブジェクトが衝突しなければならないオブジェクトを通り抜ける可能性があります。 この値の設定が低すぎると、高速衝突モードに移行するオブジェクトが多くなり、低速で移動するオブジェクトの衝突の計算に必要な余分な計算のためにパフォーマンスが低下する場合があります。 この値を 0.0 に設定すると、すべての移動オブジェクトで高速衝突モードが有効になります。これらの設定を適用するには、[高速度衝突を使用](Use High Velocity Collisions)をオンにする必要があります。
[バウンス設定](Bounce Settings)領域
- [バウンス方法]
- リジット ボディが相互にバウンドするときを決定するための方法を選択します。
- 自動MassFX は、発見的なアルゴリズムを使用して、それを超えるとバウンスを適用する妥当な最小速度しきい値を計算します。
- 手動速度の発見値を無効にするには、[手動](Manual)を選択し、[最小速度](Speed Minimum)に適切な値を設定します。
- [最低スピード](Min(imum) Speed)
- このスピード(単位/秒で指定)より速く移動するシミュレーション内のリジッド ボディは、衝突すると相互にバウンドします。この値の設定が高すぎると、高速移動するオブジェクトが別のオブジェクトと衝突してもバウンドしなくなります。この値の設定が低すぎると、低速で移動するオブジェクトのバウンドが増加するため、シミュレーションのパフォーマンスが低下し、ジッターが発生する可能性があります。この値を 0.0 に設定すると、移動するすべてのオブジェクトについてバウンスが有効になります。
[コンタクト シェル](Contact Shell)領域
これらの設定を使用して、MassFX がシミュレーションでボディ同士の衝突を検出する範囲を示す周囲のボリュームを決定します。
- 接触距離
- 動いているリジット ボディがオーバーラップできる距離。
値を高くしすぎると、オブジェクトが貫通しているように見える場合があります。この値を低くしすぎると、オブジェクトはあるフレームでは貫通し、次のフレームでは強制的に引き離されるので、ジッタが発生する場合があります。
最善の値はさまざまな要因に依存します。たとえば、シーン内のオブジェクトのサイズ、可能な貫通に対するカメラの近似、重力アクセラレーションとソルバ反復の設定、物理的シェイプのインフレーション量、シミュレーションのフレーム レートなどです。
- レストの奥行き
- 静止しているリジット ボディがオーバーラップできる距離。 この設定が意味を持つのは、[変換をキャプチャ](Capture Transform)を使用してシミュレーションでのボディの最初の位置をセットアップするときです。
注: [接触距離](Contact Dist.)の値を変更すると、[レストの奥行き](Rest Depth)の値が新しい[接触距離](Contact Dist.)の値に 2 つの差を加えた値に自動的に変更されます。 たとえば、[接触距離](Contact Dist.)が 10.0 で、[レストの奥行き](Rest Depth)が 8.0 (差 =-2.0)であるとします。 [接触距離](Contact Dist.)を 6.5 に変更すると、[レストの奥行き](Rest Depth)は自動的に 4.5 (6.5+(-2.0))に変更されます。 ただし、[レストの奥行き](Rest Depth)が変更されても、[接触距離](Contact Dist.)には反映されません。
[エンジン](Engine)ロールアウト
必要なハードウェアがある場合は、以下のオプションを使用してシミュレーションの速度を上げることができます。
重要: これらのオプションのいずれかまたは両方を使用すると、パフォーマンスを若干改善できることがあります。ただし、これらのオプションを有効にすると、シミュレーションは確定的ではなくなります。つまり、シミュレーションの実行ごとに異なる結果が生成されるようになります。パフォーマンスの違いは大きくないことが多いので、オプションは無効のままにしてこの問題を回避することをお勧めします。
- マルチ スレッディング使用
- CPU が複数のコアを備える場合は、このオプションをオンにすると、CPU は複数のスレッドを実行でき、シミュレーションの計算速度が上がります。一部の状況ではパフォーマンスが向上しますが、連続するシミュレーションの間で結果が異なる場合があります。
- ハードウェア アクセラレーション
- システムが Nvidia GPU を備えている場合は、このオプションをオンにすると、システムはハードウェア アクセラレーションを使用して特定の計算を実行できます。一部の状況ではパフォーマンスが向上しますが、連続するシミュレーションの間で結果が異なる場合があります。
- About MassFX
- 小さなダイアログ ボックスが開き、MassFX に関する基本的な情報(PhysX のバージョンなど)が表示されます。