マテリアル ダイナミック オペレータを使用すると、パーティクルに指定したマテリアル ID をイベント実行中に指定できます。また、マテリアル ID に基づいて、各パーティクルに異なるマテリアルを割り当てることもできます。アニメートされたテクスチャとともに使用すると、パーティクルのエージまたは現在のイベント内での経過時間に基づいて、各パーティクルに異なるフレームまたはマップを割り当てることができます。この場合、アニメートされたテクスチャの一例は、AVI ファイルなどのマルチフレーム ビットマップを拡散反射光ビットマップ マップとして使用するマテリアルです。アニメートされたテクスチャのその他の例としては、パーティクル エージ マップまたはパーティクル モーション ブラー マップを使用するマテリアルがあります。または、マルチ/サブオブジェクトなどの複合マテリアルから取得した別のサブマテリアルを使用することもできます。
注: オブジェクト モーション ブラーを使用するときに、イベントに、パーティクル エージ、モーション ブラー、ビットマップのいずれかのマップと一緒にマテリアルを使用するマテリアル ダイナミック オペレータが含まれている場合、そのイベントは[削除](Delete)オペレータや、[スポーン](Spawn)テストまたは[衝突スポーン](Collision Spawn)テストを含むことはできません。また、そのイベントは、他のイベントにワイヤリングされたテストを含むこともできません。これに対する唯一の例外は、エージ テストのオペレータが、まったく変動しない絶対値時間に設定されている場合のみです。この場合、すべてのパーティクルが同時にイベントを手放すからです。これが適用されるのは、オブジェクト モーション ブラーのみです。イメージ モーション ブラーには何の制約もありません。
手順
例: エージに基づいてパーティクルにアニメーション フレームを割り当てるには:
- アニメートされるビットマップに使用するファイルを準備します。これは、AVI などのマルチフレーム形式でも、静止イメージのシーケンスを指すファイル リスト(IFL ファイル)でもかまいません。後者の場合、パーティクルの不透明度を選択的に指定する定義済みのアルファ チャネルを含む Targa などの形式のイメージを使用できます。
- [マテリアル エディタ](Material Editor)を開き、拡散反射光マップとしてビットマップ マップを割り当てます。
- [ビットマップ イメージ ファイルの選択](Select Bitmap Image File)ダイアログ ボックスを使って、手順 1 のファイルをビットマップとして割り当てます。このダイアログ ボックスは、最初にビットマップ マップを割り当てるときに自動的に表示されます。または、マップの[ビットマップ パラメータ](Bitmap Parameters)ロールアウトの[ビットマップ](Bitmap)ボタンをクリックすると表示されます。
- マップの[時間](Time)ロールアウトで、[パーティクル エージにフレームを同期](Sync Frames To Particle Age)をオンにします。
- イメージのバックグラウンドまたはアルファ チャネルを使用して透明度を定義する場合、[マップ](Maps)ロールアウトでこのマップを[不透明度](Opacity)スロットにコピーし、パラメータを適切に設定します。
- マテリアル レベルで、 ([ビューポート内でマップを表示](Show Shaded Map In Viewport))をオンにします。
- シーンにカメラを追加し、必要に応じて設定します。パース ビューポートをアクティブにしてから、キーボードの C キーを押して、ビューポートにカメラ ビューが表示されるようにします。
- 既定値のパーティクル フロー システムを作成します。
- パーティクル ビューを開きます。
- [シェイプ](Shape)オペレータを、[平面シェイプ](Shape Facing)オペレータと置き換えます。
このオペレータを使用すると、アニメーションの表示が簡単になります。
- [平面シェイプ](Shape Facing)オペレータをクリックし、ロールアウト内で[カメラ/オブジェクトのルックアット](Look At Camera/Object)ボタンをクリックしてから、カメラを選択します。
- [サイズ/幅](Size/Width)領域で、[ワールド空間内](In World Space) [単位](Units)の値を 15 程度まで大きくします。
- マテリアル ダイナミック オペレータを[Event 01]の最後に追加し、最初の手順で使用したマテリアルを割り当てます。
- [ビューポート内に表示](Show In Viewport)をオンにします。
- [アニメートされたテクスチャ](Animated Texture)領域で、[パーティクルIDと同じ](Same As Particle ID)が選択されていることを確認してから、[パーティクル エージをリセット](Reset Particle Age)をオンにします。
アニメートされたテクスチャでは[パーティクルIDと同じ](Same As Particle ID)を常に選択し、複合マテリアルを使用する場合は[サブ-マテリアルをロトスコーピング](Sub-Material Rotoscoping)オプションのいずれかを常に選択してください。
[パーティクル エージをリセット](Reset Particle Age)をオンにすると、パーティクルはイベントに入るときにエージ 0 (ゼロ)に設定されます。この例では、パーティクルはこのイベント内で発生するため、理論上は[パーティクル エージをリセット](Reset Particle Age)をオンにする必要はありません。ただし、アニメーションが常に最初のフレームから再生されることを確認するのは良い習慣です。
- アニメーションを 再生します。
ビューポート内で、パーティクルの移動に合わせてビットマップ アニメーションが進行しますが、エージに関係なくすべてのパーティクルが同一のフレームで表示されます。これは、ビューポートのインタラクティブ機能の制限に起因する変則的な動作です。ただし、パーティクルのレンダリングは適正に行われます。
- アニメーションを レンダリングします。
各パーティクルが発生すると、アニメーションの表示が最初のフレームから開始されます。フレームごとに各パーティクルのエージが増分され、適用されたマップから次のフレームが表示されます。
例: パーティクル エージ マップを使用するには:
パーティクル エージ マップは、有効期間内に最大 3 つの異なるカラーまたはマップをパーティクルに適用し、パーティクル エージに応じて徐々に変化させます。この効果は、炎から火花を散らす場合などに使用されます。火花は、最初は黄色で、その後温度が下がると赤色に変わり、最後にグレーの灰になります。パーティクルが有効期間内にどの程度まで変化するかをパーティクル エージが識別できるようにするため、パーティクルの有効期間が有限に設定されています。この操作は、[削除](Delete)オペレータを使用して行います。
- 3ds Max を起動またはリセットしてから、パーティクル フロー システムを追加します。
- パーティクル ビューおよび [マテリアル エディタ](Material Editor)を開きます。それらを並べて配置します。
- パーティクル ビューで、マテリアル ダイナミック オペレータおよび[削除](Delete)オペレータを[Event 01]に追加します。
パーティクル エージを有効にするため、[削除](Delete)オペレータをマテリアル ダイナミック オペレータと同じイベント内に配置する必要があります。または、[削除](Delete)オペレータをグローバル イベントに追加して、すべてのイベントで有効にすることもできます。
- [削除](Delete)オペレータをクリックしてからパラメータ パネルで[パーティクル エージ](By Particle Age)を選択し、[スパン期間](Life Span)を 100 に、[変動](Variation)を 0 に設定します。
これにより、各パーティクルの有効期間が 3 と 1/3 秒になります。
- マテリアル ダイナミック オペレータをクリックします。
- マテリアル エディタで、パーティクル エージ マップを拡散反射光マップとして割り当てます。[パーティクル エージ パラメータ](Particle Age Parameters)ロールアウトで、3 つの異なるカラー(赤、緑、青など)を割り当てます。必要に応じて、[エージ](Age)のパーセンテージ値も変更します。たとえば、有効期間の 2 分の 1 ではなく 3 分の 1 が経過した時点で、各パーティクルが 2 番目のカラーを表示するようにするには、[エージ #2](Age #2)を 33 に変更します。
- アクティブなマテリアルを、サンプル スロットからパーティクル ビューの[マテリアル ダイナミック](Material Dynamic)パラメータ ロールアウトのマテリアル ボタンにドラッグします。[インスタンス(コピー)](Instance (Copy))ダイアログ ボックスが表示されたら、[OK]をクリックして既定値の[インスタンス](Instance)を受け入れます。インスタンス
- [マテリアル ダイナミック](Material Dynamic)パラメータで、[割り当てられたマテリアルID](Assign Material ID)がオンであることを確認します。
オンになっていない場合、カラーがすべてのパーティクルで一度に変更されます。
パーティクル エージ マップはビューポートに表示されないため、[ビューポート内に表示](Show In Viewport)をオンにする必要はありません。
- アニメーションまたはいくつかの代表的なフレームを レンダリングします。
各パーティクルが落下するにつれて、最も古いパーティクルからカラーが徐々に変化します。
ヒント: この方法では、パーティクルを実際に削除する必要はありません。削除をしない別の方法がいくつかあります。[スパン期間](Life Span)をアニメーションの長さよりも大きな値に設定してから、パーティクル エージ マップのパラメータで[エージ #2](Age #2)と[エージ #3](Age #3)の値を下げます。または、ローカルの[削除](Delete)オペレータを使用している場合は、
エージ テスト を使用して、削除予定の直前にパーティクルを別のイベントに移動できます。この場合、突然のカラー変更を避けるため、パーティクル エージ マップと同じ最終カラーまたはマップを使用するマテリアルを指定して、後続のイベントに
マテリアル固定オペレータを追加できます。
インタフェース
ユーザ インタフェースは、[パーティクル ビュー](Particle View)ダイアログ ボックスの右側のパラメータ パネルに表示されます。
注: [マテリアル ダイナミック](Material Dynamic)ロールアウトのラジオ ボタンを使用すると、アニメートされたテクスチャまたは複合マテリアルを使用しているかどうかに応じて、異なる複数の方法でマテリアル ID をパーティクルに割り当てることができます。 既定値は、[パーティクルIDと同じ](Same As Particle ID)です。
- マテリアルの割り当て
- このチェック ボックスにチェックマークが付いている場合、オペレータは指定されたマテリアル(次のパラメータを参照)をパーティクルに割り当てます。既定値ではチェックマークが付いています。
- (ボタン名)
- このボタンを使用して、マテリアルをオペレータに割り当てます。このボタンをクリックしてから、マテリアル/マップ ブラウザを使用してマテリアルを選択します。または、マテリアル エディタのサンプル スロットからマテリアルをこのボタンにドラッグします。
マテリアルをオペレータに割り当てると、その名前がボタンに表示されます。
- マテリアルIDを割り当て
- このチェック ボックスにチェックマークが付いている場合、オペレータにより各パーティクルのマテリアル ID 番号が定義されます。既定値ではチェックマークが付いています。
通常、チェックマークが付いた状態にしておく必要があります。パーティクル フローは、マテリアル ID をパーティクル エージ マップで使用して、有効期間や現在のエージを含む、パーティクルの他のプロパティを検索します。また、パーティクル フローは、複合マテリアルとともにマテリアル ID を使用して、パーティクルに割り当てるサブマテリアルを判別します。
- ビューポート内に表示
- このチェック ボックスにチェックマークが付いている場合、パーティクルがジオメトリとして表示されると、マテリアルがパーティクルに適用されてビューポート内に表示されます。
- サブ マテリアル ID オフセット(Sub-Mtl ID Offset)
- マルチ/サブ オブジェクト マテリアルを使用したマテリアル継承を使用すると、マテリアル ダイナミック オペレータがこの値を[マテリアル ID](Material ID)の値に加えてサブマテリアル ID を作成します。パーティクル フローはこの ID を使用して、マテリアルのサブマテリアル ID に基づいて、どのマテリアルのサブマテリアルを継承してイベントのパーティクルに適用するのかを決定します。
[アニメートされたテクスチャ](Animated Texture)領域
- パーティクルIDと同じ
- パーティクル ID と同じマテリアル ID をパーティクルに割り当てます。ビットマップ マップ、パーティクル エージ マップ、パーティクル モーション ブラー マップなどのアニメートされたテクスチャを含むマテリアルを使用する場合、このオプションを選択します。
注: パーティクル フローは、発生時に 0 から始まる連続したパーティクル ID をパーティクルに割り当てます。
パーティクル ID には 2,000,000,000 以上の値を割り当てることができますが、マテリアル ID の設定可能な最大値は 65535 です。この数値を超えると再び 0 から連番が始まります。このため、マテリアル ダイナミック オペレータに割り当てられたマテリアル内でパーティクル エージ マップを使用する場合、最善の結果を得るためにパーティクルの総計を 65,536 以内にしてください。
- パーティクル エージをリセット
- このチェック ボックスにチェックマークが付いている場合、各パーティクルがイベントに入るときにエージを 0 (ゼロ)に設定します。
ビットマップ マップでアニメートされたマテリアルを使用する場合、このオプションにチェックマークを付けて、アニメーションが常に最初のフレームから確実に再生されるようにします。
- エージをランダムにオフセット
- このチェック ボックスにチェックマークが付いている場合、パーティクル エージと開始されるマテリアル ID との差がランダムに変化します。差の最大値は、[最大オフセット](Max Offset)パラメータの値により決定されます。
- 最大オフセット
- パーティクル エージをランダムに変動させることのできるフレームの最大数です。
[サブ-マテリアルをロトスコーピング](Sub-Material Rotoscoping)領域
マルチ/サブオブジェクトなどの複合マテリアルを使用する場合、この領域内の設定を使用して、オペレータがマテリアル ID の割り当てを変更する基準を選択し、変更レートを指定できます。
- マテリアル ID
- すべてのパーティクルに同じマテリアル ID を割り当てます。数値フィールドを使用して、ID の値を設定してください。
- 循環
- 各パーティクルに 1 ~ N の範囲のマテリアル ID を、数値が大きくなるように連番で割り当てます。N は[サブ-マテリアル #](# Sub-Materials)で指定された値です。最初に割り当てられる ID が 1、その次に割り当てられる ID が 2、という具合に、増分値を 1 として N まで割り当てられ、その後再び 1 から割り当てられます。
- ランダム
- 各パーティクルに 1 ~ N の範囲のランダムなマテリアル ID を割り当てます。N は[サブ-マテリアル #](# Sub-Materials)で指定された値です。
- サブ-マテリアル #
- [循環](Cycle)または[ランダム](Random)オプションを使用するパーティクルに割り当てられる ID 番号の最大値です。
一般に、これは、マルチ/サブオブジェクト マテリアル内のサブマテリアルと同じ数に設定します。これより小さい数を設定すると、オペレータは最初のサブマテリアルから設定された数までのサブマテリアルのみを使用します。
注: 3ds Max では、マテリアルをオペレータに最初に適用する際に一度だけ、この値がマテリアル内のサブマテリアルの数に自動的に設定されます。その後マテリアル自体を変更したり、オペレータに別のマテリアルを適用しても、設定は変更または更新されることはありません。
- [秒ごとのレート](Rate Per Sec[ond])
- 割り当てたマテリアル ID の値を増加させる、秒ごとの回数を設定します。この値がパーティクルがイベントに入るレートと同じ場合、パーティクルごとに 1 つの ID が割り当てられます。より小さい値の場合は複数のパーティクルに同じ ID が割り当てられ、より大きい値の場合は割り当てられる ID の増分速度がパーティクルごとに 1 つよりも大きくなります。
たとえば、パーティクルがイベントに入る間隔が 1/60 秒で、[秒ごと](Per Second)の値が 30 の場合、2 つのパーティクルに同じ ID が割り当てられます。また、パーティクルがイベントに入る間隔が 1/15 秒で、[秒ごと](Per Second)の値が 30 の場合、ID はパーティクルごとに 2 回増加(またはランダムに変更)されます。
- ループ
-
このチェック ボックスにチェックマークが付いている場合、最後の ID が割り当てられると、最初の ID に戻って循環が続行されます。チェックマークをはずすと、最後の循環 ID が後続のすべてのパーティクルに割り当てられます。このオプションは、割り当て方法が[循環](Cycle)の場合にのみ使用できます。既定値ではチェックマークが付いていません。
たとえば、最初にイベントに入る 8 つのパーティクルに対して異なるマテリアルを使用し、後続のパーティクルにはすべて 9 番目のマテリアルを使用するとします。これを行うには、9 つのサブマテリアルで構成されるマルチ/サブオブジェクト マテリアルを作成して、マテリアル ダイナミック オペレータに割り当てます。割り当て方法として[循環](Cycle)を選択し、[サブ-マテリアル #](# Sub-Materials)を 9 に設定します。[秒ごとのレート](Rate Per Sec)の値を、パーティクルがイベントに入るレートに設定します。最後に、[ループ](Loop)のチェックマークを消します。
- 同期
-
アニメートされたパラメータを適用するタイム フレームを選択します。これは、[マテリアル ID](Material ID)および[循環](Cycle)オプションでのみ利用できます。
- [絶対値時間](Absolute Time) パラメータに設定された任意のキーが、設定対象の実際のフレームで適用されます。
- [パーティクル エージ](Particle Age) パラメータに設定された任意のキーが、各パーティクルが存在する対応するフレームで適用されます。
- [イベント期間](Event Duration) パラメータに設定された任意のキーが、各パーティクルがイベントに最初に入ったときから、パーティクルに適用されます。
- ランダム オフセット
-
このチェック ボックスにチェックマークが付いている場合、パーティクル エージと割り当てられるマテリアル ID との差がランダムに変化します。差の最大値は、数値パラメータにより決定されます。これは、[マテリアル ID](Material ID)および[循環](Cycle)オプションでのみ利用できます。
[独自性](Uniqueness)領域
[独自性](Uniqueness)領域での設定では、[ランダム](Random)オプションで割り当てられる ID のシーケンスと、[エージをランダムにオフセット](Randomize Age Offset)オプションでのオフセットを変化させることができます。
- シード
- ランダム化の値を指定します。
- 新規
- ランダム化する式を使用して新規シードを計算します。