nCloth を最適化する

このセクションでは、nCloth の再生スピードを上げる方法の詳細を説明します。

低解像度な nCloth オブジェクトをシミュレートする 最終ではない nCloth オブジェクトの修正やシミュレートを行うときには、ポリゴン カウントを低い値に維持します。シミュレーションの変更が完了したら、ポリゴン メッ シュをスムーズします。修正に高解像度モデルを使用しなければならない場合、出力クロス メッシュをラップ デフォーマとして使用します。
nCloth を適切にモデリングする nCloth を均一サイズ、あるいはできるだけ均一サイズに近い四角ポリゴンとしてモデリングします。
必要に応じて衝突を無効化する 不必要な衝突をすべて無効にして、シミュレーション時に行われる計算の量を大幅に減らします。
自己衝突の設定を調整する nClothShape ノードの厚み(Thickness)アトリビュートを削減し、自己衝突を改良します。この改善は、自己衝突フラグ(Self Collision Flag)頂点(Vertex)に設定されていないとき、特に有力です。自己衝突フラグ(Self Collision Flag)頂点(Vertex)に設定されている場合、自己衝突の幅スケール(Self Collide Width Scale)を調整して、衝突球がぎりぎりで互いに触れないようにします。
頂点の押し出しテクニックを使用する
  1. nCloth オブジェクトのすべての衝突と、すべての nRigid オブジェクトまたはパッシブ オブジェクトをオフにします。
  2. それぞれの nRigid オブジェクトについて、アトリビュート エディタ(Attribute Editor)精度設定(Quality Settings)セクションで、押し出し(Push Out)の値を 1 に設定します。
  3. シミュレーションを実行します。
  4. シミュレーションの実行中、押し出し半径(Push Out Radius)の値を調整し、衝突が正しく表示される、できるだけ低い値にします。
  5. nRigid オブジェクトの厚み(Thickness)の値をできるだけ大きくして、nCloth の三角ポリゴンがオブジェクトを相互貫通しないようにします。
衝突が正しく表示されない場合、nCloth オブジェクトと nRigid オブジェクトの両方について、精度設定(Quality Settings)セクションのトラップ チェック(Trapped Check)を有効にします。
コンストレイントを使用する クロスのある領域をしっかりとさせる必要がある場合、クロス アトリビュートをペイントする代わりに、領域内の頂点をコンポーネント間(Component to Component)コンストレイントに接続します。接続方法(Connection Method)最大距離内(Within Max Distance)に設定し、最大距離(Max Distance)アトリビュートを調整することで、しっかりとした感じをシミュレートできます。クロスのある領域をキャラクタの胴体の近くに維持する必要がある場合、摩擦(Friction)伸長の抵抗(Stretch Resistance)を使用する代わりにコンストレイントを使用します。たとえば、nCloth 上のポイントとキャラクタの胴体の間にポイント対サーフェス(Point to Surface)コンストレイントを使用し、コンストレイントの強さ(Strength)の値を小さくします。
衣類をスケルトンにバインドする キャラクタのアニメート時には、クロスを nCloth にする前に、クロス メッシュとキャラクタ スケルトンにスキンのバインド(Bind Skin)コマンドを使用します。入力メッシュ引き付け(Input Mesh Attract)を使用して、キャラクタの終了位置に向かってクロスを引っ張り、nCloth の計算を若干軽減します。
サブステップを低くする ほとんどの場合、nucleus ノードのサブステップ(Substeps)衝突最大反復回数(Max Collide Iterations)の値を低くすることで、再生速度が向上しますが、精度は低下します。nCloth ノードの自己衝突最大反復回数(Max Self Collide Iterations)を低くすることでも、再生が改良されることがあります。
入力メッシュ引き付けを低くする 入力メッシュ引き付け(Input Mesh Attract)の値を 1.2 より大きくすることは避けてください。
伸長の抵抗(Stretch Resistance)の代わりに伸長のダンプ(Stretch Damp)を使用する nCloth の伸長性が高すぎるように見える場合、可能であれば、伸長の抵抗(Stretch Resistance)アトリビュートの代わりに伸長のダンプ(Stretch Damp)アトリビュートを増やしてください。
レイヤの衝突値を調整する 重なった布(シャツの上のジャケットなど)を操作する場合、内側の布より外側の布に高い衝突レイヤ(Collision Layer)値を指定します。これにより、精度設定を低くすることができます。また、キャラクタの衝突レイヤ範囲(Collision Layer Range)の値を調整して、外側の重なった布が、キャラクタの胴体などの内側のレイヤとのコリジョンを計算しないようにすることもできます。
キャッシュ nCloth シミュレーションをキャッシュした後、nucleus ノードの有効化(Enable)をオフにします。ただし、後でキャッシュにアペンドしたりシミュレートしたりする場合は、必ず元に戻すようにしてください。