[ダイナミック](Dynamics)ロールアウト(ヘアーとファー)

アニメーションでヘアが自然な様子で表示されるには、ヘアが、アタッチされたボディの動きや、風や重力などの外部からの影響に応答する必要があります。ヘアのダイナミック機能を使用すると、インタラクティブ([ライブ](Live))や[計算済み](Precomputed)モードで、ヘアが実世界のヘアのように動作します。

衝突サーフェスの指定

ヘアのダイナミックでは、衝突の計算にガイド ヘアが使用されます。計算量を減らすには、ヘアが衝突するオブジェクトを明示的に指定する必要があります。ヘアの発生元オブジェクトは特殊なケースになります。発生元オブジェクト(人間の頭など)にヘアを衝突させるには、単に[発生元オブジェクトを使用](Use Growth Object)をオンにします。

複数のヘア モディファイヤと特定の衝突オブジェクトを相互作用させたい場合は、異なるヘアーとファー モディファイヤごとに衝突オブジェクトとしてそのオブジェクトを追加する必要があります。

モディファイヤには、衝突を計算する方法として[球](Sphere)と[ポリゴン](Polygon)の 2 つの方法があります。球の衝突では、衝突オブジェクトとしてバウンディング球が使用されます。ポリゴンの衝突では、衝突オブジェクトの実際のジオメトリが使用されます。[ポリゴン](Polygon)オプションの方が正確ですが、[球](Sphere)オプションの方が計算が速くなります。

手順

例: ヘアのダイナミックをリアルタイムで表示するには:

  1. [ヘアーとファー](Hair And Fur)モディファイヤをオブジェクトに適用します。
  2. [ダイナミック](Dynamics)ロールアウト(コマンド パネルをスクロールして表示する)で、[モード](Mode)を[ライブ](Live)に設定します。
  3. オブジェクトをあちこちに動かします。

    ヘアがリアルに動きます。

  4. [ツール](Tools)ロールアウトで、[ヘアの再生成](Regrow Hair)をクリックします。

    ヘアが既定の位置に戻り、オブジェクトからまっすぐ成長してゆきます。

  5. ([アニメーションを再生](Play Animation))をクリックします。
  6. ヘアが処理され、重力の影響を受けるかのように垂れ下がります。アニメーションを繰り返し実行する場合、重力の効果は累積的であるため、ヘア アニメーションが最初のフレームから再開されないことに留意してください。
  7. [ツール](Tools)ロールアウトで、[ヘアの再生成](Regrow Hair)を再度クリックします。
  8. [風](Wind)スペース ワープをシーンに追加します。
  9. [ダイナミック](Dynamics)ロールアウトで、[ダイナミック パラメータ](Dynamics Params) [重力](Gravity)を 0.0 に設定します。
  10. [外部フォース](External Forces)領域([ダイナミック](Dynamics)ロールアウトの最下部)で[追加](Add)ボタンをクリックしてから、[風](Wind)スペース ワープを選択します。
  11. アニメーションを 再生します。

    今回は、ヘアは重力の影響を受けず、風に吹かれて動くだけです。ここでも、効果は累積的であり、アニメーションは繰り返されません。

    このアニメーションはすべて、リアル タイムでのみ実行されます。キーフレームは設定されないため、レンダリングすることはできません。レンダリング可能なヘアのダイナミック シミュレーションを設定する方法については、次の手順を参照してください。

Hair で計算済みのダイナミックのシミュレーションを生成するには:

  1. [ヘアーとファー](Hair And Fur)モディファイヤをオブジェクトに適用します。
  2. アニメーションの設定を行います。これは、発生元オブジェクトの単なるモーションにできます。または、[ダイナミック](Dynamics)ロールアウト [外部フォース](External Forces)領域を使って、[風](Wind)などの、ヘアに影響を及ぼすスペース ワープを追加できます。実際のところ、既定値では、ヘアは独自の重力の影響を受けるため、ヘアのダイナミックを表示するのに、明示的なアニメーションを一切設定する必要がありません。
  3. [修正](Modify)パネル [ダイナミック](Dynamics)ロールアウトで、[衝突](Collision)領域を使ってヘアが衝突するオブジェクトを設定します。また、[ダイナミック パラメータ](Dynamics Params)領域で、その他のシミュレーション パラメータを設定します。
  4. [Statファイル](Stat Files)領域で、[...]ボタンをクリックします。[名前を付けて保存](Save As)ダイアログ ボックスで、生成する Stat ファイルの場所と名前を指定します。
    注: シミュレーションを実行すると、ヘアにより、アニメーション フレームごとに別個の Stat ファイルが生成されます。
    重要: ネットワーク上のレンダリング ファームを使用してアニメーションをレンダリングする計画を立てている場合は、指定するパスが、レンダリング ファームの各ノードで正確に同じに表示されることを確認してください。Stat ファイルが見つからない場合、ヘアは硬くなり、スキンの動きだけに合わせて向きが決まります。見つかった Stat ファイルが不正な場合には、ヘアがオブジェクトから分離して浮遊することもあります。

    パス名および Stat ファイル名は、[...]ボタンの横のテキスト フィールドに表示されます。

  5. [シミュレーション](Simulation)領域で、シミュレーションのフレーム範囲を設定してから、[実行](Run)をクリックします。

    ヘアによりダイナミック シミュレーションが実行され、アニメーション内のフレームごとに Stat ファイルが生成されます。さらに、モードが自動的に[計算済み](Precomputed)に設定されます。このため、アニメーションの再生またはレンダリングの実行時に、Stat ファイルが読み込まれ、各フレーム内のヘアの位置に関する情報が使用されます。

  6. アニメーションを 再生します。

    Stat ファイルに格納されたダイナミック シミュレーションが、ビューポートに表示されます。

  7. [モード](Mode)領域で[なし](None)を選択し、アニメーションをもう一度再生します。

    今度は、ダイナミック アニメーションは表示されません。ただし、これは依然として Stat ファイル内に格納されており、[計算済み](Precomputed)を選択すると再び表示されます。

  8. [計算済み](Precomputed)チェック ボックスにチェックマークが付いていることを確認して、アニメーションをレンダリングします。

インタフェース

[モード](Mode)領域

Hair がダイナミックの生成に使用する方法を選択します。[ライブ](Live)モードは実験的な生成に適していますが、Hair でアニメーションをレンダリングしたときに最も良い結果になるのは[計算済み](Precomputed)モードです。

  • [なし](None) Hair はダイナミックをシミュレートしません。
  • [ライブ](Live) Hair は、ビューポート内でダイナミックを対話的にシミュレートしますが、アニメーションのキーフレームやダイナミックの Stat ファイルは生成しません。[ライブ](Live)モードで最良の結果を得るには、[表示](Display)ロールアウト [ヘアを表示](Display Hairs)領域 [ジオメトリとして](As Geometry)をオフにします。

    ライブ ダイナミックの使用方法は、「例: ヘアのダイナミックをリアルタイムで表示するには」の手順を参照してください。

    ライブ ダイナミックの使用中に[ESC]を押すと、3ds Max によってライブ ダイナミックを停止するかどうかを尋ねるダイアログ ボックスが表示されます。[フリーズ](Freeze)も[中止](Stop)もモードを[なし](None)にリセットしますが、[フリーズ](Freeze)を選択した場合には、ヘアが現在の位置にフリーズされます。これを、計算済みダイナミックや、ヘアのスタイリングの起点として使用することができます。

  • [計算済み](Precomputed) ダイナミックがアニメートされたヘアをレンダリングするための Stat ファイルを生成できます。このオプションを使用できるのは、Stat ファイルの名前と場所を設定した場合だけです(以下の説明および「Hair で計算済みのダイナミックのシミュレーションを生成するには」を参照)。

[Stat ファイル](Stat Files)領域

Stat ファイルを使用して、ヘアの生成されるダイナミック シミュレーションを記録および再生できます。ワークフローの例は、「Hair で計算済みのダイナミックのシミュレーションを生成するには」の手順を参照してください。

テキスト フィールド

Stat ファイルのパスおよびファイル名を表示します。

([...]ボタン)

クリックすると、[名前を付けて保存](Save As)ダイアログ ボックスを使って、Stat ファイルの名前および場所を選択できます。

指定した名前に、4 桁のフレーム番号(先頭にゼロが付く)およびファイル名拡張子「.stat」が追加されます(例: hair_test0001.stat )。

すべてのファイルを削除

Stat ファイルをターゲット ディレクトリから削除します。ファイルは、[...]ボタンを使用して割り当てたプレフィックス名を持っている必要があります。

ヒント: Stat ファイルを別の場所に移動させても、そのファイルを引き続き使用できます。次の手順に従います。
  1. Stat ファイルの生成に使用する MAX ファイルを 開きます。
  2. [修正](Modify)パネル [ダイナミック](Dynamics)ロールアウトで、 ([...]ボタン)をクリックします。
  3. [名前を付けて保存](Save As)ダイアログ ボックスを使って、Stat ファイルを含むディレクトリに移動し、任意の Stat ファイルをクリックします。クリックしたファイルの名前が、[ファイル名](File Name)編集ボックスに表示されます。
  4. [ファイル名](File Name)編集ボックスを編集して、Stat ファイル名に続く 4 桁の数字を削除します。たとえば、Stat ファイル名が test0033.stat の場合、「0033」を削除して、 test.stat にします。
  5. [保存](Save)ボタンをクリックします。新しい Stat ファイルのパスが、[Statファイル](Stat Files)フィールドに表示されます。

これで、アニメーションを作成またはレンダリングするときに、この Stat ファイルが元の生成ファイルとして使用されます。

[シミュレーション](Simulation)領域

シミュレーションの範囲を決定して、実行できます。これらのコントロールは、[計算済み](Precomputed)モードを選択し、[Stat ファイル](Stat Files)領域で Stat ファイルを指定した場合にのみ使用可能になります。シミュレーションを開始および終了するフレームを[開始](Start)および[終了](End)に設定して、[実行](Run)ボタンをクリックします。次に、3ds Max によりダイナミックが計算されて、Stat ファイルに保存されます。

開始

シミュレーションの計算で考慮する最初のフレーム。

終了

シミュレーションの計算で考慮する最後のフレーム。

実行

クリックするとシミュレーションが実行され、[開始](Start)および[終了](End)で示されたフレーム範囲内の Stat ファイルが生成されます。

シミュレーションの実行中に処理を取り消すには、ステータス バーの[キャンセル](Cancel)をクリックします。

[ダイナミック パラメータ](Dynamics Params)領域

これらのコントロールは、ダイナミック シミュレーションの基本パラメータを指定します。[固さ](Stiffness)、[根元の固さ](Root Hold)、[ダンピング](Dampen)の値をマッピングできます。マップを割り当てるには、スピナーの右のマップ ボタンをクリックします。マップのグレースケールの値が、ヘアの位置のパラメータの値に掛けられます。

[固さ](Stiffness)、[根元の固さ](Root Hold)、[ダンピング](Dampen)のパラメータにマップを適用します。 マップを割り当てるには、コントロールの右にあるマップ ボタンをクリックし、[マテリアル/マップ ブラウザ](Material/Map Browser)を使用してマップを選択します。

また、マップをマテリアル エディタのサンプル スロットからドラッグ アンド ドロップすることもできます。 [スレート マテリアル エディタ](Slate Material Editor)が開いている場合、マップ ノードの出力ソケットからドラッグして、このボタン上にドロップできます。 また、マテリアル エディタや 3ds Max インタフェースのその他任意の場所にあるマップ ボタンからドラッグ アンド ドロップすることもできます。 マップをマップ ボタン上にドロップすると、ダイアログ ボックスにマップのコピー(独立)とソース マップのインスタンスのどちらを作成するのかを尋ねるメッセージが表示されます。

重力

ワールド空間内でヘアに垂直方向に働くフォースを指定します。負の値を指定するとヘアに上向きの力が加えられ、正の値を指定すると下向きの力が加えられます。ヘアが重力の影響を受けないようにするには、この値を 0.0 に設定します。既定値は 1.0 です。範囲は -999.0 ~ 999.0 です。

固さ

ダイナミック効果の強度を制御します。[固さ](Stiffness)を 1.0 に設定すると、ダイナミックの影響を受けなくなります。既定値は 0.4 です。範囲は 0.0 ~ 1.0 です。

根元の固さ

[固さ](stiffness)と同様ですが、根元だけに影響を及ぼします。既定値は 1.0 です。範囲は 0.0 ~ 1.0 です。

ダンピング

ダイナミック ヘアでは、速度が次のフレームに伝達されます。ダンピングの値を大きくすると、この速度の減衰量が多くなります。このため、[ダンピング](Dampen)の値を大きくすると、ヘア ダイナミックがよりアクティブでなくなります(ヘアが「浮遊」するようになる)。既定値は 0.0 です。範囲は 0.0 ~ 1.0 です。

[衝突](Collisions)領域

これらの設定を使って、ダイナミック シミュレーション時にヘアの衝突するオブジェクト、および衝突の計算方法を決定します。

  • [なし](None) ダイナミック シミュレーション時に、衝突は考慮されません。この場合、ヘアは、発生オブジェクトおよび接触するその他のオブジェクトを貫通します。
  • [球](Sphere) 球形のバウンディング ボックスを使って、衝突を計算します。この方法は、計算量が少ないため高速ですが、結果が不正確な場合があります。ヘアを遠方から表示する場合に、この方法は最も効果的です。
  • [ポリゴン](Polygon) 各ポリゴンを、衝突オブジェクトと見なします。これは、実行速度が最も低速ですが、最も正確な結果を得ることができます。
発生元オブジェクトを使用

このチェック ボックスにチェックマークが付いている場合、ヘアが発生元(メッシュ)オブジェクトと衝突します。

オブジェクト リスト

ヘアを衝突させるシーン オブジェクトの名前のリスト。

追加

リストにオブジェクトを追加するには、[追加](Add)をクリックし、ビューポートでオブジェクトをクリックします。

置換

オブジェクトを置き換えるには、リストでそのオブジェクトの名前をハイライト表示し、[置換](Replace)をクリックしてビューポートで別のオブジェクトをクリックします。

削除

オブジェクトを削除するには、リストでそのオブジェクトの名前をハイライト表示して[削除](Delete)をクリックします。

[外部フォース](External Forces)領域

この領域では、ダイナミック シミュレーション時にヘアに影響を及ぼすスペース ワープを指定できます。たとえば、[風](Wind)スペース ワープを追加して、そよ風に吹かれるヘアを表現できます。

注: Hair のダイナミックには重力が組み込まれているため、重力を追加する必要はありません。
オブジェクト リスト

ヘアにダイナミックに作用するフォースのリスト。

追加

リストにスペース ワープを追加するには、[追加](Add)をクリックし、ビューポートでワープのアイコンをクリックします。

置換

スペース ワープを置き換えるには、リストでそのスペース ワープの名前をハイライト表示し、[置換](Replace)をクリックしてビューポートで別のワープのアイコンをクリックします。

削除

スペース ワープを削除するには、リストでそのスペース ワープの名前をハイライト表示して[削除](Delete)をクリックします。