説明どおりにレッスンを進めるために、レッスンを開始する前に次の手順を実行します。
このレッスンでは、レッスンのシーン ファイルに加えて、Maya ジオメトリのキャッシュ ファイルにアクセスする必要があります。
このレッスンでは、ラップ デフォーマを使用してシミュレートされた低解像度メッシュのように高解像度メッシュを動作させるインフルエンス オブジェクトを作成します。ラップ デフォーマの詳細については、『リギング』マニュアルの「 デフォーマとは」を参照してください。
アトリビュート エディタ(Attribute Editor)にラップ ノードが表示され、アウトライナ(Outliner)ではPants_LowResBase オブジェクトが Character_LowRes グループに追加されるのを確認できます。
排他バインドをオンにすると、Pants_HighRes オブジェクト上の各サーフェス ポイント(頂点)が Pants_LowRes オブジェクトの頂点によってコンストレインされるか作用されます。これにより、Pants_HighRes オブジェクトはシミュレートされる nCloth ズボンのプロパティを確実に継承します。
ポリゴン数の多い Pants_HighRes オブジェクトでは、シミュレーション速度は遅くなると思われるかもしれません。ところが、実際には速度が遅くなることはありません。これは nucleus ソルバが Pants_HighRes オブジェクトにコネクトされたデータをシミュレートしないためです。シミュレーションに含まれる nucleus 計算はすべて、引き続き低解像度の nCloth ズボン上で実行されます。Pants_HighRes オブジェクトの動作は、シミュレートされる nCloth の新しいインスタンスである Pants_LowResBase オブジェクトの影響を受けます。
Pants_LowResBase オブジェクトは Pants_HighRes オブジェクトのデフォメーションに対するベースのシェイプで、これがラップ インフルエンス オブジェクトです。すべてのラップ デフォーマと同様に、ベースのシェイプとラップ インフルエンス オブジェクト間の位置、方向、またはシェイプの差に基づいて、ラップ デフォーマによるインフルエンスを受けているサーフェスが変形します。
アニメートされたキャラクタの nCloth ズボンをシミュレートする
このセクションでは、nRigid の胴体オブジェクトと nRigid の靴オブジェクトに対するジオメトリ キャッシュをインポートし、胴体と靴をアニメートしながら nCloth ズボン オブジェクトのシミュレートを開始します。
このセクションを説明どおりに進めるために、レッスンを開始する前に次の手順を実行します。
アニメートされたキャラクタ上で nCloth ズボンをシミュレートする前に、キャラクタの胴体と靴をアニメートするジオメトリ キャッシュをインポートする必要があります。
ジオメトリ キャッシュをインポートして胴体と靴のメッシュをアニメートするには
シミュレーションを再生し、アニメートされたキャラクタと一緒にシミュレートされたときの nCloth ズボンの動作を確認できます。ただし、タイム スライダ(Time Slider)をスクラブできないとシミュレーションを詳細に検査することは困難です。シミュレーションの問題をより簡単に特定するには、nCloth ズボン オブジェクトのキャッシュを作成します。nCache の詳細については、 nCaching 概要を参照してください。
nCache の作成オプション(Create nCache Options)ウィンドウが表示されます。
シミュレーションを再生すると、nCloth ズボン オブジェクトに次の問題があることがわかります。
タイム スライダ(Time Slider)をスクラブしながらシーンをドリー、ンブルし、各問題領域に接近して観察できるようにします。
シミュレーションの問題の修正に役立つ最初の手順は、nucleus ソルバのサブステップとコリジョン最大反復回数(Max Collision Iterations)の数を増やすことです。サブステップは、nCloth とパッシブ コリジョン オブジェクト間のコリジョンの検出からダイナミック プロパティ(Dynamic Properties)アトリビュートとダイナミック コンストレインのエフェクトまで、Maya Nucleus ソルバがシミュレーションに含まれるすべてを計算するフレームごとの回数を指定します。サブステップを調整すれば、シミュレーション時間をどのように分割して計算セグメントにするかをコントロールできます。一般的にはシミュレーション精度とコリジョン精度は、サブステップ値を増やすと向上します。コリジョン最大反復回数は、Maya Nucleus ソルバのフレームごとのコリジョン反復の最大回数を指定します。サブステップまたはコリジョン最大反復回数が多いと、ソルバが遅くなる可能性があります。
シーンの複雑さによっては、重力と風のみが nCloth オブジェクトに作用する静止シーンをシミュレートする場合には、デフォルト値であるサブステップを 3、コリジョン最大反復回数を 4 に設定するとうまくいくこともあります。nCloth が移動し始めてセルフ コリジョンする場合は、特に高速に移動するオブジェクトでコリジョンを正確に検出できるように、サブステップ値を大きくする必要があります。nCloth コリジョンの数が増加した場合や、ダイナミック コンストレインがオブジェクトに追加された場合には、コリジョン最大反復回数を増やすことが重要になります。詳細については、 サブステップ(Substeps)および コリジョン最大反復回数(Max Collision Iterations)を参照してください。
キャッシュ ファイルを置き換えると、既存の nCache は新規ファイルで上書きされます。レッスンではシミュレーションを何度もキャッシュするため、キャッシュの置き換え(Replace Cache)を使用してハード ディスクに保存されるキャッシュ ファイルの数を少なくするのが最適です。前の nCache を置き換えるには、 nCache > キャッシュの置き換え(nCache > Replace Cache)を選択します。
シミュレーションを再生すると、フレーム 1030 以降で、ひざの領域のポリゴン フェースがよりリアルになっているのがわかります。 クロスのデフォメーションがより多くのフェース上に広がり、よりリアルに見えるようになりました。ただし、シミュレーションの問題がすべて解決されたわけではありません。サブステップとコリジョン最大反復回数により大きい値を設定する必要がある場合もあります。
サブステップとコリジョン最大反復回数を増やすと、nucleus ソルバはシミュレートされる各ステップでより多くの計算を実行することになるため、結果としてシミュレーション速度が遅くなります。シミュレーションの精度とパフォーマンスのバランスをとるために、より高いサブステップとコリジョン最大反復回数が必要なシミュレーションの特定の領域やフレームを特定するのに役立ちます。 キーフレームを設定して、シミュレーションの存続中にサブステップとコリジョン最大反復回数の値をアニメートできます。
サブステップとコリジョン最大反復回数にキーフレームを設定するには
フレーム(Frame) | サブステップ(Substeps) | コリジョン最大反復回数(Max Collision Iterations) |
---|---|---|
1019 | 5 | 6 |
1020 | 7 | 8 |
1022 | 9 | 12 |
1025 | 15 | 20 |
1060 | 9 | 12 |
キャッシュを再生すると、シミュレーションの全体的な精度が改良されていることがわかります。ただし、ウエストと股部分にまだ問題領域があります。たとえば、フレーム 1030 では、股領域の質の悪いセルフ コリジョンの結果、望ましくないポリゴン デフォメーションが作成されています。シミュレーションの精度を向上させるために、ダイナミック プロパティ(Dynamic Properties)アトリビュートの微調整を開始します。
ダイナミック プロパティアトリビュートなどの nCloth アトリビュートを細かく調整する場合は、シミュレーションのさまざまなフレームで nCloth メッシュの複製を作成しておくと役立ちます。シミュレーションを再生するときに、現在シミュレート中の nCloth を複製メッシュと比較して、次の項目について評価できます。
股領域の問題を解決するために、ベンドの抵抗(Bend Resistance)を大きくしてポリゴンのエッジが形状をより良く保持できるようします。詳細については、 ベンドの抵抗(Bend Resistance)を参照してください。
シミュレーションを再生すると、股領域のクロスがよりリアルにカーブしているのがわかります。タイム スライダ(Time Slider)でフレーム 1030 に進み、シミュレートされた nCloth を複製メッシュと比較します。シーンをドリー、タンブルし、改良された領域に接近して観察できるようにします。
シミュレーションを再生して問題領域を複製メッシュと比較すると、フレーム 1030 と 1035 の間にまだ問題領域が残っていることがわかります。
シミュレーション精度を向上させるもう 1 つの方法として、セルフ コリジョン フラグ(Self Collision Flag)と精度設定(Quality Settings)アトリビュートの編集があります。これは nCloth コンポーネントのコリジョンとセルフ コリジョンに作用します。デフォルトでは、セルフ コリジョン フラグ(Self Collision Flag)は頂点フェース(VertexFace)に設定されています。つまり nCloth オブジェクトの頂点とフェースが互いに衝突します。セルフ コリジョン フラグを完全なサーフェス(Full Surface)に設定すると、すべてのオブジェクト コンポーネント(頂点、エッジ、フェース)がセルフ コリジョンの対象として設定されます。
低解像度メッシュをシミュレートする場合は、メッシュの頂点、エッジ、およびフェースの数が少ないため、nCloth オブジェクトの潜在的なセルフ コリジョン領域の数を増やすことが重要です。高解像度の nCloth メッシュでセルフ コリジョン フラグを完全なサーフェスに設定すると、シミュレーション時間が長くなります。この問題は低解像度メッシュでは軽減されるため、反復シミュレーション テストではこの代替が非常に有用です。詳細については、 コリジョン(Collisions)を参照してください。
セルフ コリジョン(Self Collision)アトリビュートの初期の微調整後に、精度設定(Quality Settings)を編集してシミュレーションのコリジョンとセルフ コリジョンを改良します。これにより、nCloth のズボン オブジェクトと nRigid の靴との間の残りの相互貫通が解決します。また、厚み(Thickness)を増やすか、厚みマップ(Thickness Map)を作成してコリジョン検出を改良することもできます。
タイム スライダ(Time Slider)で、フレーム 1033 に進み、シミュレートされた nCloth を複製メッシュと比較します。タイムラインをスクラブしながらシーンをドリー、タンブルし、問題領域に接近して観察できるようにします。満足な結果が得られたら、Pants_LowRes1 と Pants_LowRes2 の複製メッシュを削除します。
ラップされた nCloth シミュレーションをシミュレートされた高解像度メッシュと比較する
nCloth ズボン オブジェクトのアトリビュート調整を完了するには、ラップされた nCloth シミュレーションをリファレンス キャラクタ オブジェクト(オリジナルのシミュレートされた高解像度メッシュ)と比較します。
たとえば、キャラクタの胴体のキャッシュを再コネクトする場合は、Body_AnimationCache1 タブを選択します。
シミュレーションを再生またはスクラブすると、次のことを確認できます。