使用するエミッタのタイプ(またはエミッタなし)および使用する放出コンパウンドのタイプに応じて、さまざまな方法でパーティクルを放出させることができます。
放出コンパウンドを使用してエレメントからパーティクルを放出する場合、選択したポイントクラウドがエミッタとして使用したエレメントから放出されます。各ポイント クラウドには、独自の ICE ツリーが関連付けられています。シーンには、独自のICEツリーを持つポイントクラウドをいくつでも配置できます。
[Emit]コンパウンドには、[Execute on Emit]: というポートがあります。そのポートに接続されたノードはすべて、そのフレームで放出されたパーティクル(新しいパーティクル)のみを変更し、以前のフレームに存在したパーティクルは変更しません。
ただし、ノードが全フレームで実行されるようにしたい場合は、そのノードを直接または[Simulation Root]ノードを介して[ICETree]ノードに接続する必要があります。
[ICE]ツールバーのコマンドは、他のノードの接続先ベースノードとして[Simulation Root(シミュレーションルート)]ノードを使用するように設定されています。このため、このコンパウンドを[ICETree]ノードに接続していないICEツリーでこれらのコマンドを使用することができません。
[Simulation Root]ノードを ICE ツリーに迅速に追加するには、[ICETree]ノードを右クリックして[シミュレーションルートを挿入](Insert Simulation Root)を選択します。これにより、既存のすべてのノードが[Simulation Root]ノードの適切なポートに再接続されます。その後、このノードを[ICETree]ノードに接続します。この操作により、コンパウンドの作成時に[Execute ノードを挿入](Insert Execute Node)を選択した場合と同様の処理が行われます。
任意のタイプのパーティクル放出を最初から作成するには、ICEツリーで手動でノードを作成および接続します。
任意のツールバーで、[取得](Get) [プリミティブ](Primitive) [ポイント クラウド](Point Cloud) [空](Empty Cloud)(または任意の形状)を選択してポイント クラウドを取得します。
ポイント クラウドが選択された状態で、[Alt]+[9]キーを押して ICE ツリーを開きます。ICE ツリーを作成していない場合は、この時点で作成します。
ICE ツリーのメニューバーから、[Create] [Simulated ICE Tree]を選択します。これにより、シミュレーションとして接続されているすべてのノードおよびコンパウンドを処理するICEツリーのノードが作成されます。詳細については、ICEシミュレーション領域とICEノード を参照してください。
パーティクルエミッタになるオブジェクトを 1 つまたは複数作成します。後で選択する放出コンパウンドのタイプは、このエミッタのオブジェクトタイプによって決まります。
Explorer から ICE ツリーにエミッタの名前をドラッグして、[Get Data]ノードを作成します。このノードは、ICEツリーのオブジェクトを表し、そこからデータを取得します。
ICE ツリーの左側の Preset Manager で、[タスク](Task)タブをクリックし、ドロップダウンリストから[Particles]を選択します。
[Emitters]グループラベルを選択し、[放出コンパウンド](Emit)の 1 つを ICE Tree ビューにドラッグします。コンパウンドが赤く表示されても問題ありません。これは、まだどこにも接続されていないことを意味します。
エミッタのオブジェクトの[Value]出力を[Emit]コンパウンドの[Emitter1]ポートに接続します。このポートの下にある[Emitter]ポートを使用して、複数のオブジェクトの[Value]出力をいくつでもパーティクルエミッタとして接続できます。
[Emit]コンパウンドの[Emit]出力を[ICETree]ノードの[Port1]に接続します。[ICETree]ノードに接続されたノードは、フレームごとに上から下に評価されます。また、パーティクルエミッションが最初に評価されるようにすることができます。
Preset Manager で、[Tool]タブをクリックし、[Simulation] [Simulate Particles]コンパウンドを ICE ビューにドラッグします。このノードは、前の速度と位置、質量、フォース属性に応じて、フレームごとに各パーティクルの位置と速度を更新します。
[Simulate Particles]ノードの[Simulate]出力を[ICETree]ノードの最下部(ここでは[Port2])に接続します。パーティクルエミッションの後、かつパーティクルが実際にシミュレートされる前にノードを追加できるように、後で[ICETree]ノードのこのポートの上にさらにポートを追加する必要があります。
[Emit]コンパウンドをダブルクリックしてプロパティエディタを開き、オプションを設定して、パーティクルエミッションを定義します。
パーティクルの放出動作を定義するためのパーティクルの属性がいくつかあります。これらのほとんどの属性は、放出コンパウンド内で使用されますが、ICE Tree内の[Get Data]ノードや[Set Data]ノードで使用することもできます。この操作方法については、「ICE パーティクル属性を使用する」を参照してください。
属性全般の詳細については、「ICE 属性」を参照してください。
[ジオメトリからの放出](Emit from Geometry)コンパウンドを使用して、ポリゴン メッシュおよび NURBS サーフェイス オブジェクトからパーティクルを放出できます。このコンパウンドを使用する場合、パーティクルの発生元として、エミッタ オブジェクトのサーフェイス全体、ポイントのみ、またはボリューム内のいずれかを選択できます。
また、[ジオメトリからの均一な放出](Emit Evenly from Geometry)および[水平ポリゴンからの放出](Emit From Horizontal Polygons)コンパウンドを使用して、サーフェイスからパーティクルを放出することもできます。これらのコンパウンドは、CrowdFX で使用するよう設計されていますが、通常の ICE パーティクルでも使用できます。
オブジェクトのサーフェイスからパーティクルエミッションを作成するには:
ICEツールバーから[パーティクル] [作成] [基本エミッション] コマンドを選択します。このコマンドは、Emit from Geometry(ジオメトリからの放出)コンパウンドを使用します。
また、1 つまたは複数のポリゴン メッシュまたは NURBS サーフェイス オブジェクトをパーティクル エミッタとして使用し、ICE ツリーで[ジオメトリからの放出](Emit from Geometry)コンパウンドを使用してパーティクル放出のゼロからの設定に示す手順に従うこともできます。
サーフェイス エミッタを使用している場合、[ジオメトリからの放出](Emit from Geometry)コンパウンドで 1 ポイントあたり 1 つのパーティクルを放出できます。
このコンパウンド内の[サンプル セットの生成](Generate Sample Set)ノードで、1 度にエミッタですべてのポイントからパーティクルを放出させる場合は[レート タイプ](Rate Type)を[すべてのポイント](All Points)に変更します。
たとえば、放出レートを 1 秒あたり 1 パーティクルにセットすると、エミッタの各ポイントから 1 秒あたり 1 つのパーティクルが放出されます。
[Emit from Curve]コンパウンドを使用すると、NURBSカーブからパーティクルを放出できます。パーティクルは、すべての方向またはカーブのU方向に放出することができます。
パーティクル放出のゼロからの設定の手順に従います。この場合、以下のような要件があります。
ICEツリーで[Emit from Curve(カーブからの放出)]コンパウンドを使用する。
カーブエミッタの[Get Data]ノードの[Value]出力を[Emit from Curve]コンパウンドの[Emitter]ポートに接続する。
[Emit from Null]コンパウンドを使用すると、ヌルからパーティクルを放出できます。エミッタをレンダリングしたり、レンダリングされないように非表示したりせずに、シーンの任意の場所にある特定のスポットからパーティクルを放出する場合に便利です。ヌルのアイコンの形状に関わらず、ヌルセンターからパーティクルが放出されます。ここでは、パーティクルは、球状のヌルから放出されます。
複数選択されたヌルオブジェクトからパーティクルを放出している場合は、複数のヌルが1つの[Emit from Null]コンパウンドに接続される代わりに、各ヌルエミッタごとに別の[Emit from Null]コンパウンドが作成されます(「複数のオブジェクトまたはグループからのパーティクルの放出」を参照)。これにより、各エミッションを別々に定義できます。
クラスタからパーティクルを放出する場合は、クラスタまたはオブジェクトにヌルを含め、ヌルからパーティクルを放出することができます。ヌルエミッタごとに[Emit from Null]コンパウンドが作成されます。ここでは、パーティクルは、この球のポイントのクラスタに拘束されているヌルから放出されます。
パーティクル放出のゼロからの設定の手順に従います。この場合、以下のような要件があります。
ICEツリーで[Emit from Null(ヌルからの放出)]コンパウンドを使用する。
ヌルエミッタの[Get Data]ノードの[Out Name]出力を[Emit from Null]コンパウンドの[Null Name]ポートに接続する。
[ジオメトリからの放出](Emit from Geometry)コンパウンドを使用して、ポリゴン メッシュまたは NURBS サーフェイス オブジェクトの容積バウンダリ内からパーティクルを放出することができます。パーティクルは、エミッタオブジェクトのボリュームを均等に分散したパーティクルのセットで埋めます。このコンパウンドは、雲や埃を作成したり、部屋をオブジェクトで充満させる場合に便利です。
最適な結果が得られるように、閉じたオブジェクト(つまり穴が開いていないオブジェクト)を選択するようにしてください。
パーティクルエミッタになる1つまたは複数のポリゴンメッシュまたはNURBSサーフェイスオブジェクトを選択します。これらはボリュームを持つオブジェクトである必要があります。
ICEツールバーから[パーティクル] [作成] [基本エミッション] コマンドを選択します。このコマンドは、Emit from Geometry(ジオメトリからの放出)コンパウンドを使用します。
また、1 つまたは複数のポリゴン メッシュまたは、ボリュームを持つ NURBS サーフェイス オブジェクトをパーティクル エミッタとして使用し、ICE ツリーで[ジオメトリからの放出](Emit from Geometry)コンパウンドを使用してパーティクル放出のゼロからの設定に示す手順に従うこともできます。
[Emit from Position]コンパウンドを使用すると、特定の位置からパーティクルを放出できます。このコンパウンドのプロパティエディタにXYZ座標を指定すると、その位置からパーティクルが放出されます。
これは、花火や星空などのエミッタオブジェクトを使用せずに、シーンの任意の位置から放出するのに役立ちます。
空間の任意の位置から放出されたパーティクル(エミッタオブジェクトは不要)。
パーティクル放出のゼロからの設定の手順に従います。この場合、以下のような要件があります。
ICEツリーで[Emit from Position(位置からの放出)]コンパウンドを使用する。
[Emit from Position]コンパウンドのプロパティエディタで、パーティクル放出のグローバル XYZ 位置を指定する。
複数シーンエレメントまたはオブジェクトグループからパーティクルを放出できます。複数のオブジェクトが選択されている場合は、すべてのオブジェクトから同じポイントクラウドが放出されます。
放出されたパーティクルの量(「ICE パーティクルレート(量)」を参照)は、すべてのエミッタ間で分散されます。これは、ポイントクラウドから放出されるパーティクルの総数であり、エミッタオブジェクトごとに放出されるパーティクルの数ではありません。
また、[ICETree]ノードに接続されている複数の放出コンパウンド(同じまたは別のタイプ)を使用して、エミッタから同じポイントクラウドを放出できます。この場合は、複数の[Emit]コンパウンドからのパーティクルの総数の放出で特別な問題点を確認してください。
ICE ツールバーから[パーティクル](Particles) [作成](Create) [基本エミッション](Basic Emission) コマンドを選択します。詳細は「基本的なパーティクル放出の作成」を参照してください。
ポイントクラウドが作成され、すべてのエミッタオブジェクトが接続された1つの[Emit from Geometry(ジオメトリからの放出)]コンパウンドが作成されます。
ICE Tree ビューで、Preset Manager の[Tool]タブをクリックし、[Geometry Queries] [Group Geometry]ノードを ICE ツリーにドラッグします。
ExplorerからICE Treeビューに各エミッタオブジェクトの名前をドラッグして、[Get Data]ノードを作成します。
各エミッタのノードの[Value]出力を、[Group Geometry]コンパウンドの連続する[Geometry]ポートに接続します。
各エミッタのノードの[Result]出力を、同じまたは別の[Group Geometry]コンパウンドの連続する放出ポートに接続します。
オブジェクトのグループからパーティクルを放出すると、複数のオブジェクトから放出した場合と同じ結果になります。グループを利用する利点は、オブジェクトをグループに追加して、そのグループから自動的にパーティクルを放出させることができるので、ICE ツリーに直接追加したり、接続したりする必要がない点です。
複数の[Emit]コンパウンドからのパーティクルの総数の放出
多くのエミッタから同じポイントクラウドを放出することは可能ですが、固定された数のパーティクルを放出する場合([レート]で[Total Number of Particles]を選択した場合)は、いくつか考慮する点があります(「ICE パーティクルレート(量)」を参照)。
各エミッタには、ICEツリーでエミッタを一意に識別するのに役立つシード値が含まれます。いったんエミッタの[Total Number of Particles]オプションに放出されたパーティクルが設定されると、シード値が保存されるので、その後エミッタが放出されることはありません。
2 つのエミッタで同じシード値が使用され、[Total Number of Particles]オプションが設定されている場合、最初のエミッタのみがパーティクルを放出します。デフォルトでは、それぞれの放出コンパウンドで異なるデフォルトのシード値が設定されています。ただし、同じポイントクラウドを放出する同じタイプの放出コンパウンドが2つある場合は、どちらにも同じシード値が設定されてしまいます。
この問題を解決するには、各放出コンパウンドでシード値を別の放出コンパウンドで使用されていないランダムな番号に変更します。これにより、すべてのエミッタが正しく放出されるようになります。