パーティクル フロー ソースは、各フローのビューポート アイコンであり、既定値のエミッタとしての働きもします。既定値では、中央にロゴの入った長方形(図を参照)で表示されますが、下記に示すコントロールを使用して形状や外観を変更することもできます。
ビューポート内でソース アイコンを選択すると、[修正](Modify)パネルにパーティクル フローのエミッタ レベルのロールアウトが表示されます。または、パーティクル ビュー内でグローバル イベントのタイトル バーをクリックしてハイライト表示し、[パーティクル ビュー](Particle View)ダイアログ ボックスの右側にあるパラメータ パネルから、エミッタ レベルのロールアウトにアクセスします。これらのコントロールは、アイコンのプロパティやフロー内のパーティクルの最大数など、グローバル アトリビュートの設定に使用します。
パーティクル ソース アイコンは、大まかにはパーティクル ビュー内で対応するグローバル イベントと同じものです。名前は同じですが、どちらかを選択しても、もう一方は選択されません。シーンからパーティクル ソース アイコンを削除した場合、グローバル イベントがパーティクル ビュー内の分離したローカル イベントに変換されます。このとき、オペレータの設定はまったく変更されません。システム内のその他のイベントはパーティクル ビュー内に残ったままで、ワイヤリングもそのままです。ただし、グローバル イベントを削除すると、そのシステムだけで使用されているローカル イベントも削除され、対応するパーティクル ソース アイコンも削除されます。ローカル イベントを保持するには、最初にグローバル イベントからワイヤを削除し、次にグローバル イベントを削除します。
Shift+変換または[編集](Edit)メニュー [クローン](Clone)を使用してビューポート内でパーティクル ソースのクローンを作成すると、パーティクル ビューには同じ数のグローバル イベントのコピーが表示され、それら各々が元の発生イベントにワイヤを張られた状態になります。[クローン オプション](Clone Options)ダイアログ ボックスでは[コピー](Copy)オプションのみが提供されます。ただし、パーティクル ビュー内でグローバル イベントのクローンを作成する場合は、[クローン オプション](Clone Options)ダイアログ ボックスでもクローン作成されたオペレータとテストのインスタンスを作成できます。グローバル イベントとローカル イベントのインスタンスは作成できないため、これらのオプションは、[クローン オプション](Clone Options)ダイアログ ボックスでは使用できません。また、パーティクル ビューでクローン作成されたグローバル イベントは、元の発生イベントに自動的にワイヤが張られることはありません。
モディファイヤ スタックでパーティクル フローのソース オブジェクトの階層を展開すると、パーティクルとイベントという 2 つのサブオブジェクト レベルにアクセスできます。詳細は、[選択](Selection)ロールアウトを参照してください。
これらのコントロールを使用して、パーティクル システムをオン/オフに切り替えたり、パーティクル ビューを開いたりします。
[編集](Edit)メニュー [すべてをオフに切り替え](Turn Off All)を使用して、パーティクル ビュー内のすべてのパーティクル フローをオフにできます。また、グローバル イベントのタイトル バーを右クリックして[オフに切り替え](Turn Off)を選択することにより、特定のパーティクル フローをオフにできます。
エミッタ(パーティクル ソース)アイコンの物理的な特性と、ビューポートで作成されるパーティクルとレンダリング時に作成されるパーティクルのパーセンテージを設定します。
既定値では、ロゴ サイズはソース アイコンのサイズに比例しています。このコントロールを使用して、大きくしたり小さくしたりできます。
この設定は、ロゴのビューポート表示に対してのみ影響します。変更してもパーティクル システムに対しては有効ではありません。
この選択は、ソース アイコンをパーティクル エミッタとして使用する場合のみ重要です。使用可能なサイズの設定は、選択するアイコン タイプによって異なります。繰り返しますが、この設定が重要なのはソース アイコンをエミッタとして使用する場合のみです。
既定値のアイコン タイプは[長方形](Rectangle)です。パーティクル システムを追加して、アイコン タイプを[ボックス](Box)に変更した場合、アイコンは長方形のような形のままです。これをボックスらしく見えるようにするには、[高さ](Height)の設定値を大きくします。
これらの設定は、項目のビューポート表示に対してのみ影響します。パーティクル システムに対しては有効ではありません。
ここでの設定により、各フロー内で、実際にビューポート内で作成されるパーティクルとレンダリング時に作成されるパーティクルの総数のパーセンテージが決定します。これらは表示されているパーティクルのパーセンテージには影響しません。表示されているパーティクルのパーセンテージは、[表示](Display)オペレータと Render オペレータによって決まります。これらの設定を使用して、パーティクル システムのイベント全体にわたりパーティクルの数を簡単に増減できます。最大値である 10,000% を設定すると、フローによって生成されたパーティクルの数に 100 を掛けた数になります。
パーティクルの総数は、[発生](Birth)、[発生スクリプト](Birth Script)、[削除](Delete)、[衝突スポーン](Collision Spawn)、および[スポーン](Spawn)といったオペレータやテストの効果の組み合わせによって決まります。スクリプトされたオペレータとテストも、この数に影響を及ぼします。
これらのコントロールを使用して、パーティクルごとまたはイベント ベースでパーティクルを選択します。[イベント](Event)レベルでパーティクルを選択するのは、デバッグとトラックを目的とする場合です。パーティクル レベルで選択したパーティクルは、[削除](Delete)オペレータ、[選択をグループ](Group Selection)オペレータ、および[分割選択](Split Selected)テストでコントロールできます。選択したパーティクルを、[移動](Move)や[回転](Rotate)など標準の 3ds Max ツールによって操作することはできません。
選択されているパーティクルは、[表示](Display)オペレータ [選択](Selected)設定で指定された形態で、ビューポート内に赤で(ジオメトリがない場合)表示されます。
各パーティクルには一意の ID 番号があり、この番号は 1 から始まり数字が大きくなっていきます。これらのコントロールを使用して、パーティクルを ID 番号で選択したり選択解除します。パーティクル選択レベルでのみ使用可能です。
クリックして、イベント レベルの選択をパーティクル レベルに変換します。パーティクル レベルでのみ使用可能です。
このリストでは、パーティクル フローのすべてのイベントが表示され、選択したイベントはハイライト表示されます。 イベントのパーティクルをすべて選択するには、そのリスト エントリをクリックするか、標準のビューポート選択方法を使用します。
選択したパーティクル数が表示されます。
これらの設定を使用して、システム内のパーティクル数を制限したり、システムの更新頻度を指定します。
各インテグレーション ステップでパーティクル システムが更新され、アクティブな各アクションがそのイベント内のパーティクルに適用されます。インテグレーション ステップを小さくすると、計算時間は長くなりますが、計算の精度は向上します。これらの設定によって、ビューポート内のパーティクル アニメーションとレンダリング時のパーティクル アニメーションに、異なるインテグレーション ステップを適用できます。
ほとんどの場合、既定値のインテグレーション ステップ設定で問題なく動作します。インテグレーション ステップの頻度を上げる一例としては、ディフレクタと衝突する高速移動のパーティクルが通る場合です。
1 秒間には 4,800 ティックが存在するので、1 秒ごとに 30 フレームの NTSC ビデオ レートでは、フレームごとに 160 ティックが存在することになります。
このロールアウトでは、インテグレーション ステップごとにパーティクル システムにスクリプトを適用することも、表示される各フレームの最終インテグレーション ステップの後でスクリプトを適用することもできます。[更新したステップ毎](Every Step Update)スクリプトを使用して履歴に依存したプロパティを設定し、[最終ステップ更新](Final Step Update)スクリプトを使用して履歴に依存しないプロパティを設定します。
[更新したステップ毎](Every Step Update)スクリプトは、各インテグレーション ステップの最後(パーティクル システム内のすべてのアクションが評価された後、すべてのパーティクルが最終的にそれぞれのイベント内に存在するとき)で評価されます。たとえば、パーティクルのインデックスに従って[マテリアル ID](Material ID)を設定している場合、パーティクルが他のイベントにジャンプしないようにすることが重要です。
履歴に依存するプロパティ(速度など)を設定する場合、その設定は各インテグレーション ステップで行うことが重要です。このようにしないと、最終的な位置が全然違うものになります。
既定のスクリプトでは、パーティクルの速度と方向が修正され、パーティクルは波状のパスを描くようになります。
[スクリプト ファイルを使用](Use Script File)にチェックマークが付いていない場合、ここには既定の[更新したステップ毎](Every Step Update)スクリプト(3dsmax¥scripts¥particleflow¥example-everystepupdate.ms)が表示されます。[スクリプト ファイルを使用](Use Script File)がオンの場合、スクリプトをロードしていれば、ここにはロードしたスクリプトが表示されます。スクリプトをロードしていない場合、[編集](Edit)をクリックすると[開く](Open)ダイアログ ボックスが表示されます。
表示(またはレンダリング)する各フレームの最終インテグレーション ステップの終了後に、[最終ステップ更新](Final Step Update)スクリプトが実行されます。たとえば、[リアルタイム](Real Time)をオフにしてビューポート内でアニメーションを再生した場合、このスクリプトは、パーティクル システムがビューポートにレンダリングされる直前に、各フレームで実行されます。ただし、他のフレームにジャンプするだけの場合は、スクリプトは 1 回しか実行されません。したがって、スクリプトが特定の履歴を持つことを前提としている場合は、予期しない結果が生じます。
このため、[最終ステップ更新](Final Step Update)スクリプトは履歴に依存しないプロパティの修正に適しています。たとえば、システム内のオペレータがどれもマテリアル インデックスに依存していない場合は、このスクリプトを使用してマテリアル インデックスを修正できます。この場合、これらのインデックスを中間の各インテグレーション ステップで設定する必要はありません。また、位置に対する分析的な表現が分っている場合は、[最終ステップ更新](Final Step Update)スクリプト内で位置チャネルを設定することもできます。
既定のスクリプトでは、パーティクルの速度と方向が修正され、パーティクルは球状のパスを描くようになります。
[スクリプト ファイルを使用](Use Script File)がオフの場合、ここには既定の[最終ステップ更新](Final Step Update)スクリプト(3dsmax¥scripts¥particleflow¥example-finalstepupdate.ms)が表示されます。[スクリプト ファイルを使用](Use Script File)がオンの場合、スクリプトをロードしていれば、ここにはロードしたスクリプトが表示されます。スクリプトをロードしていない場合、[編集](Edit)をクリックすると[開く](Open)ダイアログ ボックスが表示されます。