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. シーン ビューでテーブルを選択し、アトリビュート エディタにあるテーブルの nRigidShape1 タブを選択します。
  10. コリジョン(Collisions)セクションで、ソルバ表示(Solver Display)プルダウン リストからコリジョンの厚み(Collision Thickness)を選択します。

    シーン ビューにテーブルのコリジョンの厚みが表示されます。

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

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

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

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

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

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

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

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

コリジョンに関係する nCloth コンポーネントを設定するには

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

    フェースを指定すると、最も正確なコリジョンが得られますが、コリジョンの計算速度は最も遅くなります。

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

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

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

    テーブル クロスは、テーブルとフロア コリジョン オブジェクトがまるでパッシブ オブジェクトではないかのように、これらを通り抜けます。これは、コンポーネント タイプとして頂点を選択した場合、フェースのようにサーフェス全体ではなく、テーブル クロスの頂点を取り囲む小さなコリジョン球体のみがテーブル クロスのコリジョンに関与するからです。

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

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

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