Lesson 2: 静止状態でズボンをシミュレートする
 
 
 

nCloth をアニメートされたキャラクタ上でシミュレートする前に、レストまたは静止状態のキャラクタで nCloth が正しくシミュレートされるようにすることが重要です。nCloth を静止させると、シミュレーションの問題をより簡単に特定できるようになり、シミュレーションが複雑になりすぎて診断が難しくなる前に適切な調整を施すことができます。

このレッスンでは、以下の操作を行います。

ズボンを胴体にコンストレインする

シミュレーションを再生すると、nCloth ズボンは胴体と靴のオブジェクトに衝突するようになりましたが、ズボンがキャラクタの胴体からずり落ちているのがわかります。ズボンがずり落ちないようにするには、ポイント対サーフェス(Point to Surface)コンストレインを作成し、nCloth ズボン オブジェクトを nRigid_Body オブジェクトのウエストの領域にコンストレインします。nConstraints の詳細については、 nucleus オブジェクトのコンストレインを参照してください。

ズボンをキャラクタの胴体オブジェクトにコンストレインするには

  1. Character_LowRes_2.mb という名前のシーン ファイルを開きます。

    このファイルは、Maya プロジェクトとして設定した AdvancedTechniques ディレクトリにあります。

  2. シーン ビューで nCloth ズボン オブジェクトを選択します。
  3. nCloth をクリックすると状況に応じたメニューが表示されるので、ここから頂点(Vertex)を選択します。
  4. nCloth ズボンの上部で、最初の 2 行の頂点を選択します。

    カメラをドリーおよびタンブルして、この最初の 2 行の頂点のみが選択されていることを確認します。

  5. キーを押したまま Rigid_Body オブジェクトを選択し、 nConstraint > ポイント対サーフェス(nConstraint > Point to Surface)を選択します。

    このレッスンでは、dynamicConstraintShape のアトリビュートはデフォルト値のままにしておきます。

ズボンのダイナミック プロパティ(Dynamic Properties)アトリビュートを編集します。

シミュレーションを再生すると、次のことがわかります。

静止しているキャラクタ上で nCloth をシミュレートする場合は、nCloth に作用するフォースは重力と風のみのため、nCloth のダイナミック プロパティ アトリビュートを編集しても、クロスの動作はわずかに変更されるだけです。アニメートされたキャラクタ上で nCloth をシミュレートする場合は、クロスの動作はより目立って変更されます。これは、重力と風のフォースにより速度、コリジョン、セルフコリジョンが生成され始め、nCloth が別の領域で別の方向にデフォームされるようになるからです。そのため、シミュレーションの設定を簡略化するために、スタティック シミュレーションを使用してダイナミック プロパティ アトリビュートを編集し、その nCloth に特有の性質を付加します。

伸長の抵抗(Stretch Resistance)圧縮の抵抗(Compression Resistance)は、クロスの性質を定義するうえで重要なアトリビュートです。たとえば、重いデニム、黄麻布、または厚い革のように動作する nCloth を作成するには、より大きい伸長の抵抗値が必要ですが、シルクや綿などの比較的軽い素材では、より小さい伸長の抵抗を使用します。 伸長の抵抗圧縮の抵抗は、nCloth メッシュの各四角上でリンクとクロス リンクの抵抗を反復します。伸長の抵抗は、重力と風などの nucleus フォースの結果として発生する引き付けや伸長のエフェクトを安定させる働きをします。圧縮の抵抗は、 Nucleus フォースの結果として発生するリンクに対する圧縮や圧搾のエフェクトを安定させる働きをします。つまり、これらの 2 つのアトリビュートに大きい値を設定するほど、nCloth のデフォメーションに対する抵抗は大きくなりますが、シミュレーション時間は長くなる傾向があります。伸長の抵抗圧縮の抵抗の詳細については、 伸長の抵抗(Stretch Resistance) 圧縮の抵抗(Compression Resistance)を参照してください。

1 つのダイナミック プロパティ(Dynamic Properties)アトリビュートを調整すると、他のアトリビュートに影響する場合があることに注意してください。たとえば、nCloth の質量(Mass)を増やして重くすると、伸長の抵抗もこれに合わせて大きくする必要があります。nCloth のダイナミック プロパティ アトリビュートの編集では、一度に 1 つのアトリビュートを設定し、それからシミュレーションを再生してその調整が nCloth にどのように作用するか確認する方法が役立ちます。

伸長の抵抗と圧縮の抵抗を編集するには

  1. アトリビュート エディタ(Attribute Editor)で、nCloth_PantsShape タブを選択します。
  2. ダイナミック プロパティ セクションで、伸長の抵抗を 70 に設定します。
  3. 圧縮の抵抗を 5 に設定します。

  4. シミュレーションを再生します。

シミュレーションを再生すると、シミュレーションの 40 フレーム後に nCloth ズボンがレスト状態になることがわかります。ダンプ(Damp)を大きくすると、シミュレートされる nCloth はより早くレスト状態になります。これは、nucleus 重力(Gravity)の引き付けに対して働く nCloth の伸長の抵抗で生成されるエネルギーがダンプによって発散されるためです。 伸長のダンプ(Stretch Damp)を使用してこのエネルギーを発散させることもできます。

ダンプ(Damp)を編集するには

  1. アトリビュート エディタ(Attribute Editor)で、nCloth_PantsShape タブを選択します。
  2. ダイナミック プロパティ セクションで、ダンプ(Damp)を 1 に設定します。

  3. シミュレーションを再生します。

考慮すべきその他のアトリビュート設定

シミュレーションを進める前に、各 nCloth とパッシブ コリジョン オブジェクトのコリジョンの厚み(Thickness)アトリビュートを調整して、これらの間のコリジョンの検出を最適化するように考慮してください。ただし、ラップ デフォーマを含むワークフローを使用している場合は、nRigid_Body オブジェクトや nRigid_Shoes オブジェクトとの相互貫通を引き起こさずに、ラップされるメッシュ用の空間を nCloth コリジョン ボリューム(厚み)に確保できることを確認してください。