リジッド ボディの操作

MassFX では、リジッド ボディを作成するツールだけでなく、リジッド ボディの設定と物理的シェイプ(シミュレーションでのオブジェクトの表示)を調整するツールも提供します。

リジッド ボディの作成

MassFX リジッド ボディのモディファイヤをオブジェクトに適用して、リジッド ボディを作成することができます。これは[MassFX]ツールバー上のリジッド ボディのフライアウトによる[修正](Modify)パネル、または、アニメーション メニュー [シミュレーション - MassFX](Simulation - MassFX) リジッド ボディのサブメニューのコマンドから実行できます。

どのツールバー ボタンおよびメニュー コマンドでも同じモディファイヤが作成され、リジッド ボディ タイプのパラメータの値は任意で設定されます。リジッド ボディのタイプは作成後でも自由に変更することができます。リジッド ボディ タイプに関する詳細は、「リジット ボディ タイプ: ダイナミック、キネマティック、静止」を参照してください。

MassFX リジッド ボディのモディファイヤをオブジェクトに追加すると、そのオブジェクトがシミュレーションに自動的に追加されます。

試してみましょう!

  1. 新しいシーンで、ティーポットを作成してください。
  2. 地面の上にティーポットを動かしてください(ティーポットを逆さにすると、さらに面白い結果になる場合もあります)。
  3. [MassFX ツール](MassFX Tools)ダイアログ ボックス [ワールド パラメータ](World Parameters)パネル [シーン設定](Scene Settings)ロールアウトで、[要素ごとにシェイプを生成](Generate Shape Per Element)をオフにします。
  4. ティーポットを選択した状態で、[MassFX]ツールバーの [ダイナミック リジット ボディを作成](Create Dynamic Rigid Body)ボタンをクリックしてください。

    MassFX リジッド ボディ モディファイヤがモディファイヤ スタックに追加されます。物理的シェイプには凸包が作成されます。

    実際は、[要素ごとにシェイプを生成](Generate Shape Per Element)がオンのために、MassFX はティーポット メッシュの各要素につき 1 つずつ、4 つの凸包を作成します。 ティーポットのような複雑なシェイプでは、これにより正確になりますが、シミュレーションが遅くなります。 このトピックの後の手順で、1 つの凸包を作成する方法を説明します。

  5. [MassFX]ツールバーの ([シミュレーション開始](Start Simulation))をクリックしてください。

    ティーポットは地面に落下し、場合によってはバウンドして少し回転します。

    ティーポットが地面を突き抜けて落下しましたか。[ワールド パラメータ](World Parameters)パネルで[グラウンド衝突を使用](Use Ground Collisions)オプションを有効にする必要がある可能性があります。

  6. ([シミュレーション開始](Start Simulation))を再度クリックして、現在のフレームのシミュレーションを中止します。
  7. ([シミュレーションをリセット](Reset Simulation))をクリックして、ティーポットを開始位置に戻します。

ダイナミック リジッド ボディの「初期変換」を管理する

前の手順を試した場合、MassFX シミュレーションがシーンのダイナミック リジッド ボディに移動しています。 ([シミュレーションをリセット](Reset Simulation))をクリックすると、ダイナミック リジッド ボディがすべて開始位置に戻ります。 この開始スポットは、リジッド ボディの「初期変換」と呼ばれます。

この変換がどこにあるかを MassFX はどのようにして把握するのでしょうか。既定では、タイム スライダが第 1 フレームにあるときにダイナミック リジッド ボディの位置または回転が変更されると、初期変換が自動的に更新されます。 タイム スライダが第 1 フレームにないときにダイナミック リジッド ボディの変換に行われた変更は、·([シミュレーションをリセット](Reset Simulation))をクリックすると失われます。

試してみましょう!

  1. 前の手順のティーポットを使用して、再度シミュレーションを実行し、その後中止してください。
  2. 地面の上にあるティーポットを、新しい位置に移します。
  3. ([シミュレーションをリセット](Reset Simulation))をクリックします。

    タイム スライダが第 1 フレームに戻り、ティーポットは地面の上に浮かんだ、最初の位置に戻ります。入念な配置はすべて無効になります。

  4. アニメーションが第 1 フレームにある状態で、再度ティーポットを移動して回転します。できれば少し上の位置からが望ましいです。
  5. ([シミュレーションをリセット](Reset Simulation))をクリックします。

    今度はティーポットが同じ位置に留まります。

  6. シミュレーションを実行し、その後リセットしてください。

    ティーポットは、新しい開始位置に戻ります。

シミュレーション中に任意のポイントのリジッド ボディの状態を、初期変換として「キャプチャ」することもできます。これを行うには、[MassFX ツール](MassFX Tools)ダイアログ ボックスの[シミュレーション ツール](Simulation Tools)パネルにある[キャプチャ変換](Capture Transform)ボタンを使用します。

物理的マテリアルを調整する

物理的マテリアルの密度および質量のパラメータは、オブジェクトのボリューム全体と結び付いています。極小のスチール製ピンと大きなスチール製ボラードの密度は、両方とも約 7.85 g/cm3 ですが、(もちろん)ピンの質量の方が、はるかに軽いです。 重いオブジェクトほど惰性が働き、軽いオブジェクトがその道から追い出されやすくなります。

ダイナミック リジッド ボディをより早く落とすために、モディファイヤの[物理的マテリアル](Physical Material)ロールアウトで密度(または質量)を増やしてみても、何も変わりません。理想的な状況では(空気抵抗を無視した状態で)、サイズと重みの異なるオブジェクトでも、すべて同じ速度で落下します。(ガリレオがピサの斜塔から物を落とした話を思い出した方もいるでしょう。)オブジェクトをより速く落下させるための方法は、次のどちらかしかありません。

オブジェクトを地面に近付けることは、当たり前で何の解決にもならないように思えますが、単位に関する重要な問題が提起されます。

グラフィックのみの世界では、50 フィートのれんが造りの塔を身長 6 フィートの人間が 10 フィート先から見る場合と、500 フィートのれんが造りの塔を 60 フィートの巨人が 100 フィート先から見る場合とでは、見え方は同じです。しかし、(巨大な) 500 フィートの塔から(巨大な)れんがを落とすと、50 フィートの塔から(普通の)れんがを落とす場合よりも、地面に落下するまでに時間がかかります。あなたが普通の人間でありながら巨人の目で物事を見ているとしたら、なぜれんがの落ちるのがこんなに遅いのかと不思議に思うでしょう。

試してみましょう!

  1. ティーポット オブジェクトからリジッド ボディ モディファイヤを削除して、[MassFX ツール](MassFX Tools)ダイアログ ボックス [ワールド パラメータ](World Parameters)パネル [シーン設定](Scene Settings)ロールアウトで、[要素ごとにシェイプを生成](Generate Shape Per Element)をオフにします。

    これにより、その後のリジッド ボディ モディファイヤの適用で、含まれているオブジェクト数に関係なく、オブジェクト全体の 1 つの物理的シェイプが作成されます。 これをここで行う理由は、残りの手順を少し実行しやすくするためです。

  2. 再度、リジッド ボディ モディファイヤを適用します。
  3. ティーポットのサイズのチェックは、ティーポットのオブジェクトのモディファイヤ スタックの下にある[半径](Radius)パラメータを見て行います。
  4. 半径をシーンの単位で適切な値にまで長くして、巨大なティーポットに変化させてください。フットボール フィールドを任意の大きさに拡大します。なるべく大きいほうが良いでしょう。

    ティーポットは大きくなりますが、凸包は一緒に更新されません。

  5. 凸包を再生成するには、[MassFX ツール](MassFX Tools)ダイアログ ボックス (マルチオブジェクト エディタ)パネル [物理的メッシュ](Physical Mesh)ロールアウトで、[凸型](Convex)ボタンをクリックして、ドロップダウン リストから[凸型](Convex)を選択します。 または、[修正](Modify)パネルの[物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトで、任意のパラメータを微調整します。

    凸包が再度ティーポット全体に広がります。

  6. ティーポットをティーポット約 1 個の直径分、地面から離します。
  7. シミュレーションを実行してください。

    ティーポットが風船のようにゆっくりと地面に近づき、数秒後に着地します。

  8. シミュレーションをリセットし、ティーポットを人間と同じ比率(およそ 8 単位の半径)に戻します。新しいサイズに合うように凸包も再生成してください。

    これで、空中に浮かんだ通常サイズのティーポットができました。

  9. もう一度、ティーポットをティーポット約 1 個の直径分、地面から離します。

    今度は、地面から 1 フィートだけ離れています。

  10. シミュレーションを実行してください。

    ティーポットは 0.5 秒以内に着地します。

シミュレーションを月で行っているように感じるならば、重力を感じる前に、あらゆるもののサイズを確認してください。高校時代の先生が言った「物理の世界では、単位が重要です」という言葉を思い出すことでしょう。

オブジェクトに適用する摩擦量によって、表面上でのオブジェクトの滑りやすさが決まります。 摩擦値が 0.05 (ほぼ摩擦係数なし)のテフロンのテーブルに置かれたテフロンの立方体は、行き止まりに達するまで滑り続けます。 反対に、摩擦値が 0.95 (摩擦係数がほぼ最高)のサンドペーパーで覆われた 2 片のブロックは、ほとんど滑りません。

MassFX には、2 つの摩擦設定があります。

車やソファを押した経験がある方は、これらを動かすまでが難しく、一度動き始めると簡単に動かせることがお分かりでしょう。実際には、静止摩擦の値は、動的摩擦の値よりも高くなるのが通常です。

弾力性パラメータによって、オブジェクト同士が衝突した場合の、互いに弾き合う程度が決まります。

ゴムのボールの弾力性の値は約 0.75、スポンジのボールは約 0.2、そしてピーナッツ バターでできたボールは 0.0 です。

物理的シェイプを調整する

物理的シェイプとグラフィカル メッシュ」で説明されているように、リジッド ボディには物理シミュレーションで表示されている物理的シェイプを 1 つ以上含むことができます。 このセクションをまだお読みでない場合は、お読みください。

[物理的シェイプ](Physical Shapes)ロールアウトの[シェイプを修正](Modify Shapes)領域で、追加の物理的シェイプを作成できます。 この(特殊な)状況に関する詳細は、「MassFX リジッド ボディ モディファイヤ」を参照してください。通常は、シミュレーションでダイナミック リジッド ボディの凹型サーフェスが必要な場合にのみ、複数の物理的シェイプが必要になります。このための最も簡単な方法は、凹型シェイプ タイプを使用した方法です(下記を参照)。

シェイプ タイプ設定により、リジッド ボディの(選択した)物理的シェイプ タイプを変更できるようになります。 メッシュ タイプを選択すると、そのパラメータが、[修正](Modify)パネルおよび[MassFX ツール](MassFX Tools)ダイアログ > [編集](Edit)パネルにある [物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトに表示されます。選択できるタイプの概要を次に示します。

球、ボックス、カプセル

これらはシンプルで、「無限にスムーズな」MassFX プリミティブです。ただし、既定値では、これらのプリミティブは作成時にグラフィカル メッシュをランダムにつないだものであり、パラメータ(半径、長さ、幅、高さ)を使用してプリミティブのサイズを作成後にコントロールすることができます。

グラフィカル メッシュを変更した後に最適な値を自動的に再計算する場合は、ドロップダウン リストから同じシェイプ タイプを再度選択するだけです。 これにより、シェイプがグラフィカル メッシュにあわせて再構築されます。

球はシミュレーションする場合に最速のプリミティブ タイプで、この後にボックス、カプセルが続きます。これらはすべて凸包、合成、凹型、カスタムのメッシュ タイプよりも速くシミュレーションができます。

凸型

凸包は、ほとんどのリジッド ボディ タイプに使用でき、元のグラフィカル メッシュと類似しているため、すべてのリジッド ボディに対する既定の物理的シェイプ タイプです。

既定値パラメータは頂点が 32 で、インフレーションはありません。近似の精度を下げてパフォーマンスを上げる場合は、頂点の数を減らしてください。 グラフィカル メッシュよりも大きなハルを作成する場合は、インフレーション値を大きくしてください。

凸包の頂点を手動で微調整するには、[修正](Modify)パネル [物理的シェイプ](Physical Shapes)ロールアウトの[カスタム シェイプに変換](Convert to Custom Shape)ボタンをクリックします(詳細については、[カスタム](Custom)を参照してください)。

凹型

このオプションでは、ダイナミック リジッド ボディとして使用する凹型物理的シェイプを作成するための最も簡単な方法を提供します。 複数の凸包が自動的に作成され、組み合わされて(つまり、合成)、修正されたグラフィカル メッシュの頂点に基づいた物理的シェイプが作成されます。 グラフィカル メッシュが凹型の場合、このオプションによって物理的な凹型シェイプに対応するための最も精密な合成凸包が生成されます。 ただし、このシェイプ タイプを使用すると、大量のリソースが消費されるため、精密な凹型リジッド ボディが必要な場合にのみ使用してください。

注: このシェイプ タイプを選択すると、[物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトの[生成](Generate)ボタンをクリックするまで、合成シェイプが生成されません。 メッシュの生成中、MassFX には「計算中」というメッセージと進行状況バーが表示されます。 プロセスが完了すると、ロールアウトに凸包の数が表示されます。

オリジナル

このオプションでは、グラフィカル メッシュの頂点を使用して物理的シェイプを作成します。 グラフィカル メッシュが凹型の場合、オリジナル メッシュ タイプを使用することで、ダイナミック リジッド ボディまたはキネマティック リジッド ボディが凹型シェイプに役立つことはあまりありません。 ただし、オリジナルを使用することで、凹型スタティック リジッド ボディをサポートする際に最適なパフォーマンスが得られます。 精密な凹型リジッド ボディが必要な場合は、代わりに凹型を使用してください。

たとえば、32x32 の平面のプリミティブを作成し、これに十分な振幅と波長のリプル モディファイヤを追加すると、凹凸が作成されます。これはスタティック リジッド ボディに設定し、物理的シェイプ タイプはオリジナルに設定してください。 この上にダイナミック リジッド ボディを落とすと、リッジの外に弾み、くぼみに収まります。

カスタム

カスタム メッシュ タイプでは、ジオメトリを物理的シェイプとして使用するシーン内のオブジェクトのコピーを使用することができます。 オブジェクトを物理的シェイプとして使用するには、凸型(凹型は不可)またはフラットである必要があります。

カスタム オブジェクトを使用するには、まず[修正](Modify)パネル [物理的シェイプ](Physical Shapes)ロールアウト [シェイプ タイプ](Shape Type)を[カスタム](Custom)に設定します。 次に、[物理的メッシュ パラメータ](Physical Mesh Parameters)ロールアウトで、[シーンからメッシュをピック](Pick Mesh From Scene)ボタンをクリックし、物理的シェイプに使用するシーン内のオブジェクトを選択します。 関連するオブジェクトの名前がボタンに表示されます。

ヒント: カスタム メッシュはソース オブジェクトの位置に作成されるので、リジッド ボディに配置するには、ソース オブジェクトを選択する前に、カスタム メッシュ オブジェクトとオブジェクトを重ね合わせるか、リジッド ボディのメッシュ変換サブオブジェクト レベルで、その後にメッシュを移動します。

カスタム オブジェクトのジオメトリが、MassFX リジッド ボディ モディファイヤにコピーされます。 問題のないカスタム オブジェクトは後で削除することもできます。 ただし、カスタム オブジェクトを削除しない場合、ジオメトリを変更して[ソース オブジェクトから更新](Update From Source Object)ボタンを使用することで、最新の情報をモディファイヤに再コピーすることができます。

カスタムの物理的シェイプを使用したいが、既存の物理的メッシュがない場合はどうすればいいでしょうか。 たとえば、既定の凸包と目的の物理的シェイプが似ているものの、頂点の一部の配置を微調整したいとします。 リジッド ボディ モディファイヤ([MassFX ツール](MassFX Tools)ダイアログ ボックスでは使用できない)の[物理的シェイプ](Physical Shapes)ロールアウトで、異なるシェイプ タイプに対して[カスタム シェイプに変換](Convert To Custom Shape)をクリックするだけです。 これにより、カスタム オブジェクトとして関連付けられた新しい編集可能メッシュ オブジェクトがシーンに作成されます。 次に、メッシュ オブジェクトを微調整し、[ソース オブジェクトから更新](Update From Source Object)機能を使用します。