nParticle スプリングのトラブル シューティング

このセクションでは、スプリングを使用しているときに発生する可能性のあるトラブルについて、その解決方法を説明します。

スプリングの伸縮が大きすぎる

スプリングの伸縮が大きすぎる場合は、ダイナミクスの計算のオーバーサンプリング値を大きくすることで問題を解決できることがあります。オーバーサンプリング値を大きくすると再生スピードは遅くなりますが、スプリングの安定性は増します。

オーバーサンプリング値を上げるには、次の操作を行います。

  1. FX メニュー セットで、フィールド/ソルバ > オーバー サンプリングまたはキャッシュ設定の編集(Fields/Solvers > Edit Oversampling or Cache Settings)を選択します。

    アトリビュート エディタ(Attribute Editor)が表示されます。

  2. オーバー サンプル(Over Samples)に値を入力します。
    ヒント: オーバー サンプルの値を大きくすると、ゴールの作用が大きくなります。ゴールを含むシーン内でオーバー サンプルの値を大きくする必要がある場合は、ゴール ウェイトを小さくすることで補正することができます。

    ときには、Maya は、入力された値よりも大きいオーバー サンプル率を使用します。これは内部での計算に必要なためです。

スプリングがパーティクル、CV、頂点、ポイントを移動しない

フォースがパーティクルに作用していないか、またはスプリング単位のレスト長をオンに設定したのにその値を設定していない可能性があります。既定では、スプリングの静止時の長さは元の長さと同じです。外部のフォースを適用しないと、スプリングは動きません。

スプリングを機能させるには、次の操作を行います。

  1. たとえばフィールドを使用して、オブジェクトをアニメートします。
  2. コンポーネント エディタ(Component Editor)を使用して、スプリング単位のレスト長(Per-spring restLength)を修正します。詳細については、「スプリング単位のレスト長、スプリング単位の固さ、スプリング単位のダンピングを編集する」を参照してください。
  3. オブジェクト単位の静止時の長さを表示します。
  4. スプリングがパーティクル上にあり、particleShape ノードの現在のタイム(Current Time)アトリビュートから時間への既定の接続を解除している場合は、現在のタイム(Current Time)への入力を再接続します。時間入力の再接続を簡単に行うには、まずチャネル ボックス(Channel Box)でパーティクル オブジェクトの現在のタイム(Current Time)アトリビュートを選択し、次にnParticle > 時間に接続(nParticles > Connect to Time)を選択します。

多数のスプリングがあるアニメーションの再生が遅い

一部または全部のパーティクルの存在時間がライフ スパンを越えた場合、Maya はそれらのパーティクルをオブジェクトから除去します。簡単に言うと、消滅しようとしているパーティクルのことです。多くのスプリングがある一方で、消滅パーティクルがないパーティクル オブジェクトがシーンに含まれている場合、計算が複雑になるためにアニメーションは不必要に遅くなります。パーティクルの消滅を管理(Manage Particle Death)アトリビュートをオフにすることで、計算を排除して再生効率を向上させることができます。

つまり、次のオブジェクトが消滅しないパーティクルを含んでいる場合、関連付けられているスプリング オブジェクトのパーティクルの消滅を管理(Manage Particle Death)をオフにすると、再生スピードを向上させることができます。

オブジェクト内のパーティクルが消滅する場合は、パーティクルの消滅を管理(Manage Particle Death)をオフに設定してはいけません。パーティクルにアタッチされたスプリング(Springs)が正常に動作しなくなります。オブジェクト内のパーティクルが消滅すると、必ず異常な結果が起こります。パーティクルが消滅しない初期状態の動作としてパーティクルの現在のアトリビュート値を設定する場合でも、パーティクルの消滅を管理(Manage Particle Death)をオフに設定してはいけません。

パーティクルの消滅を管理をオフにする場合は、まずスプリング オブジェクトを選択してアトリビュート エディタ(Attribute Editor)を表示します。次に、スプリング アトリビュート(Spring Attributes)セクションでパーティクルの消滅を管理(Manage Particle Death)アトリビュートをオフに設定します。

スプリング単位のアトリビュートを編集したが、編集のエフェクトが見られない

スプリング単位の固さ(Per-spring Stiffness)スプリング単位のダンピング(Per-spring Damping)、またはスプリング単位のレスト長(Per-spring Rest Length)がオフに設定されている可能性があります。すなわち、対応するオブジェクト単位のアトリビュートが使用されています。適切な使用(Use)アトリビュートをオンに設定してください。

スプリングを持つポリゴン ソフト ボディや NURBS ソフト ボディの再生が遅く、スプリングの動作がリアルではない

多くのポイント(およびパーティクル)があるポリゴン ソフト ボディまたは NURBS ソフト ボディにスプリングを配置した場合、アニメーションの再生が遅くなり、スプリングの伸び縮みが非現実的に見えることがあります。

これを避けるためには、次のようにオブジェクトの低解像度のコピーにスプリングを配置します。

  1. 既定のオプションを使用して、ポリゴン オブジェクト(または NURBS オブジェクト)をコピーします。

    コピーは、アニメーション全体を通して元のオブジェクトと同じ位置になければなりません。

  2. オブジェクトのサーフェスの解像度(ポイント数)を、元の解像度の 10 ~ 50% に下げます。

    ポリゴン オブジェクトの場合は、サブディビジョン X (Subdivisions X) および Y の値を小さくします。NURBS オブジェクトの場合は、スパン(Spans)およびセクション(Sections)の値を小さくします。

    以降の手順では、元のオブジェクトを高解像度オブジェクトと呼び、コピーを低解像度オブジェクトと呼びます。

  3. 既定のオプションを使用して、低解像度オブジェクトをソフト ボディにします。
  4. ソフト ボディのパーティクルを選択し、それを目的のダイナミクスに接続します。

    たとえば、パーティクルを重力(Gravity)フィールドに接続して、パーティクルが他のオブジェクトと衝突するようにします。

  5. 既定のオプションを使用して、ソフト ボディのパーティクルにスプリングを作成します。
  6. ソフト ボディのアニメーションの外観を調整します。

    スプリングの固さ(Spring Stiffness)に 100 を超える値を設定する必要があるようです。また、フィールド/ソルバ > オーバー サンプリングまたはキャッシュ設定の編集 (Fields/Solvers > Edit Oversampling or Cache Settings)を選択し、オーバー サンプル(Over Samples)を 2 から 4 の間の値に設定する必要もあります。ソフト ボディのデフォメーションで目的の外観が得られる、最小の値を使用してください。

  7. アウトライナ(Outliner)を使用して、高解像度オブジェクトのトランスフォーム ノードを選択してから、Ctrl キー(Linux および Windows)または command キー(Mac OS X)を押しながら低解像度オブジェクトを選択します。
  8. アニメーション(Animation)メニュー セットから、アニメーション デフォーム > フル デフォーム メニューを開く > ラップ(Anim Deform > Open Full Deform Menu > Wrap)を選択します。

    これによって、アニメーションを再生するときに高解像度オブジェクトが低解像度オブジェクトと同じように変形するようになります。

  9. 低解像度オブジェクトを非表示にします。