nCloth 衝突の精度を調整する

 
 
 

本物のようなクロス エフェクトを作成する 3 番目の手順では、nCloth オブジェクトをできるだけ正確に衝突させます。実世界では、落ちる布は物体の上に覆いかぶさるとともに、その物体の形状を反映して形を変えます。現在、テーブル クロスはこのような動作を見せていません。

nCloth とパッシブ オブジェクトの厚みを設定するには

  1. テーブル クロスを選択します。
  2. アトリビュート エディタ(Attribute Editor)を開き、nClothShape1 タブを選択します。
  3. 衝突(Collisions)セクションで、ソルバ表示(Solver Display)プルダウン リストから衝突の厚み(Collision Thickness)を選択します。

    シーン ビューにテーブル クロスの衝突の厚みが表示されます。

    nCloth の厚み(Thickness)アトリビュートにより、テーブル クロスの衝突ボリュームの半径または深度が決まります。衝突ボリュームは、テーブル クロスのサーフェスにあるレンダリング不可のサーフェス オフセットで、nucleus1 ソルバがテーブル クロスのパッシブ オブジェクト衝突を計算するときに使用します。衝突は、テーブル クロスのサーフェスではなく、その衝突 ボリュームで発生します。

  4. 再生範囲の先頭に進みます。
  5. 衝突(Collisions)セクションで、テーブル クロスの厚み(Thickness)アトリビュート値を 0.066 に変更します。

    テーブル クロスの衝突ボリュームは著しく削減され、厚いサーフェスではなく、薄い布地のように動作するようになります。この変更後の厚みにより、テーブル クロスがテーブルに落ちたときの衝突精度も向上します。

  6. ソルバ表示(Solver Display)プルダウン リストからオフ(Off)を選択します。

    テーブル クロスの衝突の厚みは、シーン ビューに表示されなくなります。

  7. テーブル クロスのシミュレーションを再生します。

    テーブル クロスの厚みを調整しても、テーブル クロスはテーブルのサーフェスと接触しているようには見えません。これは、テーブルのようなパッシブ衝突オブジェクトも衝突ボリュームを持っているからです。

    テーブル クロスの衝突精度をさらに向上させるには、テーブルの厚みを調整する必要があります。

  8. 再生範囲の先頭に進みます。
  9. シーン ビューでテーブルを選択し、アトリビュート エディタ(Attribute Editor)にあるテーブルの nRigidShape1 タブを選択します。
  10. 衝突(Collisions)セクションで、ソルバ表示(Solver Display)プルダウン リストから衝突の厚み(Collision Thickness)を選択します。

    シーン ビューにテーブルの衝突の厚みが表示されます。

  11. テーブルの厚み(Thickness)アトリビュート値を 0.066 に設定します。

    テーブルの衝突ボリュームが著しく削減され、シミュレーションを再生すると、テーブル クロスがテーブルの実際の形状に従って変形します。

  12. 衝突(Collisions)セクションで、ソルバ表示(Solver Display)プルダウン リストからオフ(Off)を選択します。

    テーブルの衝突の厚みは、シーン ビューに表示されなくなります。

  13. テーブル クロスのシミュレーションを再生します。

    テーブル クロス nCloth とテーブル パッシブ オブジェクトの厚みを調整することでテーブル クロスの衝突精度が大幅に改善されました。

  14. 再生範囲の開始点に進みます。

衝突の厚み(Collision Thickness)のシーン ビュー内での表示方法は、nCloth の現在の衝突フラグ(Collision Flag)選択項目によって決まります。衝突フラグ(Collision Flag) プルダウン リストでは、衝突に関係するテーブル クロスのコンポーネントと、テーブル クロスが使用する衝突ボリュームのタイプを指定することができます。衝突フラグ(Collision Flag)を使用して nCloth 衝突の速度を調整することができますが、衝突精度が損なわれます。

衝突に関係する nCloth コンポーネントを設定するには

  1. テーブル クロスを選択します。
  2. アトリビュート エディタ(Attribute Editor)で、nClothShape1 タブを選択します。
  3. 衝突(Collisions)セクションで、ソルバ表示(Solver Display)プルダウン リストから衝突の厚み(Collision Thickness)を選択します。
  4. 既定では、衝突フラグ(Collision Flag)フェース(Face)に設定されています。

    フェース(Face)を指定すると、最も正確な衝突が得られますが、衝突の計算速度は最も遅くなります。

  5. 衝突フラグ(Collision Flag)頂点(Vertex)に変更します。頂点(Vertex)を指定すると、衝突精度は最も低くなりますが、衝突の計算速度は最も速くなります。

    テーブル クロスの衝突ボリュームは、サーフェスから複数の衝突球に変わります。

  6. テーブル クロスのシミュレーションを再生します。

    テーブル クロスの部分がテーブルにきちんと衝突していません。これは、コンポーネント タイプとして頂点(Vertex)を選択した場合、フェース(Face)のようにサーフェス全体ではなく、テーブル クロスの頂点を取り囲む小さな衝突球のみがテーブル クロスの衝突に関与するからです。

    衝突の計算回数を減らしてシミュレーション時間を短縮したい場合や、最高レベルの衝突精度が必要ないクロスのシミュレーション(たとえば、衝突する nCloth オブジェクトを遠くから撮る)の場合には、頂点とフェースが便利です。

  7. 衝突フラグ(Collision Flag)を既定のフェースにリセットし、ソルバ表示(Solver Display)プルダウン リストからオフ(Off)を選択します。
  8. 再生範囲の先頭に進みます。
  9. テーブル クロスのシミュレーションを再生します。

    今回もテーブル クロスは正確にテーブルと衝突します。