[サーフェスによる速度](Speed By Surface)オペレータを使用すると、シーン内の 1 つまたは複数のオブジェクトを利用してパーティクルの速度や方向を制御できます。これは、パーティクル フロー アイコンを使用してパーティクルの速度や方向を制御する、既定値の[速度](Speed)オペレータとは大きく異なります。[サーフェスによる速度](Speed By Surface)オペレータを使用すると、シーン内でマテリアル別速度を制御したり、速度を継続的に制御することもできます。
通常、[位置オブジェクト](Position Object)オペレータでエミッタとして使用するオブジェクトに基づいて速度および方向特性を割り当てる場合、[サーフェスによる速度](Speed By Surface)オペレータを使用します。つまり、[位置オブジェクト](Position Object)でエミッタとして割り当てるのと同じオブジェクトを、[サーフェスによる速度](Speed By Surface)でサーフェス ジオメトリ オブジェクトとして割り当てます。
ヒント: サーフェス上のパーティクル モーションをより大きく制御する場合、同じイベント内で[サーフェスによる速度](Speed By Surface)オペレータの前に
[速度](Speed)オペレータを適用します。[速度](Speed)オペレータを使用してサーフェス上でパーティクルの方向を指定し、[サーフェスによる速度](Speed By Surface)オペレータを使用して速度ベクトルの垂直コンポーネントを調整してサーフェスの輪郭に合わせます。
手順
例:[サーフェスによる速度](Speed By Surface)オペレータを使用するには:
[サーフェスによる速度](Speed By Surface)オペレータには、さまざまな用途があります。この手順では、いくつかの例を紹介しますが、このオペレータを操作して自分自身でさらに調査することをお勧めします。
- 3ds Max を起動またはリセットしてから、パーティクル フロー システムを追加します。ソース アイコンをワールド座標の原点(X/Y/Z = 0)に配置し、アイコンの[長さ](Length)および[幅](Width)の値を 30 に設定します。
- 円柱プリミティブをシーンに追加します。円柱プリミティブをソース アイコンの上方に配置します。[X]、[Y] = 0、[Z] = 30、[半径](Radius) = 20、[高さ](Height) = 40 にそれぞれ設定します。
- アニメーションを 再生し、その後 停止します。
既定値の開始設定を使用して、パーティクルが下に移動します。
- パーティクル ビューを開き、[サーフェスによる速度](Speed By Surface)オペレータを[Event 01]の最後に追加します。イベント内でこのオペレータをクリックして、パーティクル ビューにパラメータ パネルを表示します。
- [サーフェス ジオメトリ](Surface Geometry)領域で[追加](Add)をクリックしてから、円柱を選択します。
- アニメーションをもう一度 再生し、その後 停止します。
パーティクルは、依然として下に移動します。
- フレーム 15 に 移動して、パーティクルを表示します。パース ビューポートおよびフロント ビューポートでパーティクルを観察しながら、円柱を Z 軸に沿ってゆっくり下に動かします。エミッタが円柱の上部に来たところで停止します。
円柱の底部がエミッタを通過して下に移動するにつれて、垂直方向ではなく、XY 平面上を移動するパーティクルの量が多くなります。これは、パーティクルが円柱の底部ではなく垂直面のいずれかに近づくためです。パーティクルは、垂直面の位置に達すると、垂直面に対して垂直に移動します。上部が最も近い面になると、パーティクルは再び垂直に移動します。ただし、移動方向は、下方ではなく上方になります。
- 円柱を元の方向に 移動して、エミッタが円柱の垂直方向の中心にくるようにします。その後、 [修正](Modify)パネルで[側面](Sides)スピナーの下部をクリックして、側面の数を 1 つずつ減らします。
クリックするたびに、外側に移動するパーティクル ストリームは、位置の変化に伴って垂直面に対して垂直に移動するように変化します。円柱を回転してみることもできます。その際、パーティクル ストリームも、車輪のスポークのように回転することに注目してください。
- [サーフェスによる速度](Speed By Surface)のパラメータで[方向](Direction)を[アウト オブ サーフェス](Out Of Surface)に変更して、シリンダを上下に動かします。
全体の動きに大きな変化はありません。少し後で説明しますが、[アウト オブ サーフェス](Out Of Surface)は[継続的に速度をコントロール](Control Speed Continuously)を使用する場合に便利なオプションです。
- [サーフェスによる速度](Speed By Surface)のパラメータで[方向](Direction)を[サーフェスに平行](Parallel To Surface)に変更して、円柱を上下に動かします。
これにより、パーティクルの動作は、他の 2 つのオプションを設定した場合とは反対になります。パーティクルは、上部および底部に近づくにつれて XY 平面に沿って移動するようになり、垂直面に近づくにつれて下方に移動するようになります。パーティクルを上方に移動させるには、[速度](Speed)を負の値に設定してください。
次に、[継続的に速度をコントロール](Control Speed Continuously)オプションを使用して、パーティクルの動作がどのように変化するかを見てみましょう。
- [サーフェスによる速度](Speed By Surface)のパラメータで[継続的に速度をコントロール](Control Speed Continuously)を選択してから、タイム スライダをドラッグします。
パーティクルはエミッタから広がった後に、大まかに円筒形を描きながら円柱の周囲を回り始めます。パーティクル フローにより、パーティクルが円柱のどの面に最も接近しているかが継続的にチェックされ、必要に応じてパーティクルがその面に平行に移動するよう方向が調整されます。速度を変更することにより、パーティクルの軌道のサイズを変更できます。
最後に、円柱内部にパーティクル モーションを含める方法を見てみましょう。
- 円柱を非常に大きく設定します。[半径](Radius) = 60、[高さ](Height) = 90 に設定します。パース ビューポートをアクティブにしてから、F3 を押して[ワイヤフレーム](Wireframe)ビューに設定します。
- パーティクル ビューで[Speed 01]オペレータをクリックして、[方向](Direction)を[ランダム 3D](Random 3D)に設定します。
- [サーフェスによる速度](Speed By Surface)オペレータをクリックします。必要に応じて、[速度](Speed)を 300 に設定します。[方向](Direction)領域で[アウト オブ サーフェス](Out Of Surface)を選択してから、タイム スライダをドラッグします。
エミッタから出た後、パーティクルは常に最も近いサーフェスから離れるように移動するため、円柱の中心付近を動き回るようになります。
- [速度](Speed)の値を、1,000 程度まで徐々に大きくします。
パーティクルは垂直方向に広がり始めます。移動速度が非常に高速になると、最終的に円柱から脱出してしまいます。加速をより大きくすることで、パーティクルを円柱内部にとどめて、最も近いサーフェスを通過する前に向きを変えることができます。
- パーティクルが円柱外部に出ることがなくなるまで、[加速制限](Accel Limit)の設定値を大きくします。
- エミッタのサイズを大きくして、パーティクルがより広い範囲を動き回ることができるようにしてみてください。また、パーティクル システムに含まれる他の設定も変更して、その効果を確かめてみてください。ここで説明した操作以外にもさまざまな実験を行うことで、この強力なオペレータがどのように機能するのか理解を深めることができます。
インタフェース
ユーザ インタフェースは、[パーティクル ビュー](Particle View)ダイアログ ボックスの右側のパラメータ パネルに表示されます。
- [速度制御ドロップダウン リスト](speed control drop-down list)
- 最初の設定では、オペレータを使って速度を 1 度だけコントロールするか、継続的にコントロールするかを選択します。
- 速度
- パーティクルの速度(システム単位/秒)。既定値は 300 です。
[継続的に速度をコントロール](Control Speed Continuously)オプションを使用する場合は、[速度](Speed)をオフにできます。この場合、パーティクル フローでは現在のパーティクル速度が使用されます。
[速度](Speed)に負の値を設定すると、正の値の場合に影響を受ける方向とは反対の方向にパーティクルが移動します。
- 変動
- パーティクル速度の変動可能量(システム単位/秒)。既定値は 0.0 です。
各パーティクルの速度を得るために、システムは[変動](Variation)値に - 1.0 ~ 1.0 の間のランダムな数字を掛け合わせ、その結果を[速度](Speed)値に加算します。たとえば、[速度](Speed)が 300 で、[変動](Variation)が 100 の場合、各パーティクルの速度は 200 ~ 400 の間になります。
[サーフェス ジオメトリ](Surface Geometry)領域
この領域内のコントロールを使用して、パーティクルの速度および方向に影響を与えるオブジェクトを割り当てます。
- [ジオメトリ リスト](geometry list)
- この領域内のリストには、オペレータが速度および方向の制御に使用するオブジェクトまたは参照ジオメトリが表示されます。
オブジェクトをいっさい割り当てない場合、パーティクルの現在の速度および方向は影響を受けません。
複数のサーフェス ジオメトリ オブジェクトを割り当てることができますが、割り当てたオブジェクトすべてがエミッタでない場合、結果を解釈するのは難しくなります。通常は、システムがエミッタとして使用するオブジェクトをサーフェス ジオメトリとして割り当てます。
ヒント: 最高のパフォーマンスを得るために、高ポリゴン オブジェクトに関連してパーティクルを移動させる場合は、サーフェス ジオメトリに使用する低ポリゴンのプロキシ バージョンを作成し、高ポリゴン オブジェクトの子としてリンクさせてから、低ポリゴン プロキシを非表示にします。
[追加](Add)および[削除](Remove)ボタンを使用して、このリストを編集します。
- 追加
- オブジェクトをリストに追加します。[追加](Add)をクリックして、ビューポート内のオブジェクトをクリックします。
- リスト別
- 複数のオブジェクトをリストに追加します。[リスト別](By List)をクリックして、[サーフェス オブジェクトを選択](Select Surface Objects)ダイアログ ボックスを開きます。このダイアログ ボックスの機能は、[シーンから選択](Select From Scene)と同様です。速度および方向の制御に使用するオブジェクトをハイライト表示して、[選択](Select)ボタンをクリックします。
- 削除
- リストからオブジェクトを削除します。リストでオブジェクトをハイライト表示してから、[削除](Remove)をクリックします。
- アニメートされたシェイプ
- このチェック ボックスにチェックマークが付いている場合、モーフィングやモディファイヤを使用してフォームがアニメートされるオブジェクトのサーフェスに沿って、パーティクルを移動できます。
- サブフレーム サンプリング
- このチェック ボックスにチェックマークが付いている場合、オペレータは、フレーム ベースではなくティック ベース(1/4,800 秒)で、サーフェス ジオメトリ シェイプのアニメーションを取得します。これにより、パーティクルの位置を、サーフェス ジオメトリ オブジェクトのフォームのアニメーションに合わせてより精密に設定できます。
- マテリアル別速度
- 各サーフェス ジオメトリ オブジェクトに適用されたマテリアルのプロパティに基づいて、パーティクルの既存の速度および方向を変化させます。たとえば、オブジェクトに白黒チェック模様の拡散反射光マップが割り当てられている場合に、[グレースケール マルチプライヤ](Grayscale Multiplier)オプションを選択すると、白色の領域近くのパーティクルが、黒色の領域近くのパーティクルに比べて高速に移動するようになります。
注: マテリアルの影響を受ける速度をビューポートに正確に表示するには、次の 2 つの条件を満たす必要があります。少なくとも 1 つのビューポートがシェーディング表示モードに設定されていることと、マテリアル エディタ内でマテリアルまたはマップの[ビューポート内でマップを表示](Show Map In Viewport)がオンになっていることです。
以下のオプションが存在します。
[サブ-マテリアルを使用](Use Sub-Material)このチェック ボックスにチェックマークが付いている場合、サーフェス ジオメトリ オブジェクトに割り当てられたマルチ/サブオブジェクト マテリアルから取得したサブマテリアルを使用して、速度が定義されます。
このオプションを使用すると、「目に見えない」マテリアルを使用してパーティクルの速度を制御できます。エミッタがマルチ/サブオブジェクト マテリアルを使用しても、そのジオメトリがいずれかのサブマテリアルに対応する ID を使用しない場合、サブマテリアルは表示されません。ただし、オペレータはパーティクルの配置密度の計算にサブマテリアルを使用できます。この場合、マテリアルはオブジェクトのサーフェス全体に適用されているものとみなされます。
- マテリアル IDサブマテリアルのマテリアル ID を指定してパーティクル速度の制御を行います。
[方向](Direction)領域
- [ドロップダウン リスト](Direction drop-down list)
- [方向](Direction)ドロップダウン リストを使用して、パーティクルの発生後に移動する方向を指定できます。たいていの場合、実際の方向はアイコンの方向によっても変化します。主な例外としては、[位置](Location) [場所](Location)を[基点](Pivot)に設定した場合があげられます。
パーティクルの動きは、他の要因の影響を受けない限り、常に直線状です。
- [サーフェス法線](Surface Normals)(既定値) 各パーティクルは、最も近い面に垂直な線に沿って移動します。サーフェスの方向の影響は受けません。
- アウト オブ サーフェスパーティクルは、最も近い面から遠ざかるように移動します。
ヒント: このオプションを使用すると、パーティクルをオブジェクトの内部に閉じこめることができます。エミッタをオブジェクト内部に配置して、オブジェクトをサーフェス ジオメトリとして指定し、[継続的に速度をコントロール](Control Speed Continuously)を選択してから[アウト オブ サーフェス](Out Of Surface)を選択します。パーティクルは、サーフェスに接近するたびに、サーフェスから遠ざかる方向に向きを変えます。[速度](Speed)設定で、パーティクルの移動範囲をコントロールできますが、パーティクルの速度にあまり大きな値を設定すると、コンテナから「脱出」してしまう可能性があります。この場合、[加速制限](Accel Limit)の値を増加させ、パーティクルが向きをすばやく変えるようにします。
- サーフェスに平行各パーティクルは、最も近い面に平行に移動します。
パーティクルがオブジェクトの周囲を回るようにするには、このオプションを[継続的に速度をコントロール](Control Speed Continuously)とともに使用して、[速度コントロールを続行](Continuous Speed Control)に適切な値を設定します(詳細は次のセクションを参照)。
- 発散
- オンのときは、パーティクル ストリームが広がります。発散の範囲を数値で設定します。範囲は 0 ~ 180 です。既定値は 0 です。この値はアニメートできます。
[継続的に速度をコントロール](Control Speed Continuously)が選択されている場合、このオプションは使用できません。
ヒント: 噴水のような水しぶきを表現するには、[位置](Location)
[場所](Location)を[基点](Pivot)に、[方向](Direction)を[アイコンの矢印に沿う](Along Icon Arrow)、[発散](Divergence)を適切な角度にそれぞれ設定し、更に、アイコンを回転させて矢印が上を指すようにします。
[速度コントロールを続行](Continuous Speed Control)領域
[継続的に速度をコントロール](Control Speed Continuously)オプションを選択すると、以下のコントロールが利用可能になります。基本的に、これらのコントロールを使用すると、パーティクルがエミッタから直線的に離れるのではなく、サーフェス ジオメトリ オブジェクトの領域内部で動き回るようになります。
- 加速制限
- 加速の最大値を設定します。この値を高くすると、パーティクルの方向や速度がより迅速に変化するようになります。
ヒント: モーションをスムーズにするには[加速制限](Accel Limit)の値を低くします。パーティクルを小さなターゲットに命中させるときのように、非常に高い精度が必要とされる場合は、高い値に設定します。この設定をアニメート([同期](Sync)
[イベント期間](Event Duration)を使用)することで、求める結果に応じて適切な値を指定できます。
- 範囲制限なし
- このチェック ボックスにチェックマークが付いている場合、サーフェスによりパーティクルの速度および方向が制御される範囲が無制限になります。チェックマークが付いていない場合、指定された範囲内にあるパーティクルだけが制御されます。既定値ではチェックマークが付いています。
- 範囲
- パーティクルと制御するサーフェスとの間の最大距離を、システムの単位で指定します。この距離を超えたパーティクルは、サーフェス ジオメトリでは制御されません。
- フォールオフ ゾーン
- サーフェス ジオメトリがパーティクルを部分的に制御する[範囲](Range)の値を超えた距離を、システム単位で指定します。制御の度合いは、[範囲](Range)に設定された距離では 100%、[範囲](Range) + [フォールオフ ゾーン](Falloff Zone)の距離では 0% になります。
[アニメーション オフセット キー](Animation Offset Keying)領域
アニメートされたパラメータを適用するタイム フレームを選択します。詳細は、「 [アニメーション オフセット キー](Animation Offset Keying)領域 」を参照してください。
- [絶対値時間](Absolute Time) パラメータに設定された任意のキーが、設定対象の実際のフレームで適用されます。
- [パーティクル エージ](Particle Age) パラメータに設定された任意のキーが、各パーティクルが存在する対応するフレームで適用されます。
- [イベント期間](Event Duration) パラメータに設定された任意のキーが、各パーティクルがイベントに最初に入ったときから、パーティクルに適用されます。
[独自性](Uniqueness)領域
[独自性](Uniqueness)の設定を使用して、速度変動のランダム化や、[ランダム 3D](Random 3D)や[ランダム水平](Random Horizontal)オプションによる方向のランダム化ができます。
- シード
- ランダム化の値を指定します。
- 新規
- ランダム化する式を使用して新規シードを計算します。