Maya のパーティクル インスタンス化機能を使用すると、シーンに含まれる多くの同一形状のオブジェクトをアニメートするときの時間を節約できます。たとえば、配置と方向が異なるだけのトンボをたくさん作成したいとします。Maya では、1 つのトンボをアニメートした後に、アニメートされたパーティクルの位置および方向に従って移動するトンボのインスタンスを作成することができます。
インスタンスはコピーとは異なります。インスタンスは、元のオブジェクトへの参照です。元のオブジェクトに変更を加えると、インスタンス化されたオブジェクトもそれに従って変化します。インスタンス化された個々のオブジェクトのモーションを制御するには、それらのオブジェクトを制御するパーティクル単位のアトリビュートをアニメーション化します。
インスタンス化に使用されるジオメトリ オブジェクトはソース ジオメトリと呼ばれます。ソース ジオメトリとして次のオブジェクトを使用することができます。
個々のオブジェクトの代わりに、ソース ジオメトリとしてオブジェクト階層構造を使用することができます。ライトはインスタンス化しないでください。インスタンス化しても、レンダリングに影響はありません。
単一オブジェクトを 1 つの particleShape にインスタンス化したり、または複数オブジェクトのシーケンスを 1 つの particleShape にインスタンス化できます。
インスタンスを作成する前に、ソース ジオメトリを作成し、シェーディング グループを適用します。ソース ジオメトリとパーティクルは、インスタンス化の前でも後でも、アニメートでき、またソース ジオメトリは、ワークスペース内のどこにでも配置できます。以降の手順で説明するように、オプションでソース ジオメトリを非表示にすることもできます。インスタンス化されたジオメトリのカラーをパーティクル単位で制御することはできません。
オブジェクトのシーケンスをパーティクルにインスタンス化するには
パーティクル インサタンサ オプション(Particle Instancer Options)ウィンドウが表示されます。選択したソース ジオメトリが、インスタンス オブジェクト(Instanced Objects)リストに表示されます。
一連のオブジェクトのシーケンスをインスタンス化するには、オブジェクトを、そのシーケンスの順に、リストに加えます。
リスト内のオブジェクトの順番を変えるには、上へ移動(Move Up)および下へ移動(Move Down)ボタンを使用します。選択したオブジェクトをリストに追加するには、選択項目の追加(Add Selection)を使用します。リストからオブジェクトを削除するには、項目の削除(Remove Items)を使用します。
たとえば、羽ばたきの位置がそれぞれ異なる 4 羽の鳥を作成するとします。
インスタンス オブジェクト リストにオブジェクトを登録する場合の適切な順番は次のようになります。
0: birdWingsHigh 1: birdWingsMid 2: birdWingsLow 3: birdWingsMidCopy
放出されたパーティクルを、アニメートされたパーティクルとして使用することができます。パーティクルが放出されると、インスタンス化されたジオメトリがパーティクルと共に表示されます。
インスタンス化されたオブジェクトを制御するインスタンサ ノードが作成されます。このノードは、パーティクル インスタンサ オプション ウィンドウで加えたアトリビュート設定を変更できるかの情報場所を格納しています。
インスタンス化に使用したパーティクル オブジェクトを非表示にしてもかまいません。インスタンサは、パーティクルを非可視にしません。ただし、アニメーションをソフトウェア レンダーする場合は、パーティクルを非表示にする必要はありません。パーティクルは、ソフトウェア レンダーしたイメージには表示されません。
次の一般的な手順は、インスタンス化されたジオメトリの向きを設定する方法です。
たとえば、インスタンス化されたオブジェクトが移動方向に向くように エイム方向(AimDirection) を速度(Velocity)に設定します。詳細については、 particleShape ノードを参照してください。
一般オプション(General Options)のポップアップ メニューで行った選択には、パーティクル単位のすべてのアトリビュートが含まれます。インスタンス化された個々のオブジェクトのモーションを制御するには、それらのオブジェクトを制御するパーティクル単位のアトリビュートをアニメーション化します。
アニメーションで任意のフレームをレンダーするとき、runup コマンドがインスタンス化されたジオメトリの作成に失敗する場合があります。ランナップの前に currentTime 設定を追加すると、インスタンス化されたジオメトリが正しく作成されます。つまり、インスタンス化されたジオメトリでレンダーを行うときに runup -mxf 60; コマンドで正しい結果が作成されなかったら、次のようなコマンドを使用してください。
currentTime -e 1;
runup -mxf 60;