Maya DVD の ExploreMe/particles ディレクトリに MEL スクリプト(applySprite.mel)が加わり、スプライトにイメージ シーケンスを簡単に指定できるようになりました。MEL スクリプトの使い方については、 スプライトを参照してください。
MEL スクリプトを使用せずに手作業でスプライトにイメージ シーケンスを割り当てるときには、次のような手順で行います。
これらのアトリビュートは、シーケンスで使用可能なファイルを指定しますが、実際のキャッシュされたファイルは選択しません。実際のファイルを指定するには、後で説明するスプライト数(Sprite Num)または spriteNumPP アトリビュートを設定します。
シーケンスの開始とシーケンスの終了は、シーケンスに使用可能な最初と最後のファイル名の拡張子の番号を指定します。シーケンスの増分は、1 つおきのフレーム、2 つおきのフレームといったようにシーケンスに使用する各フレームを設定します。
たとえば、Smoke.0 から始まる 30 ファイルのシーケンスにあるすべてのファイルを使用するには、シーケンスの開始を 0、シーケンスの終了を 29、シーケンスの増分を 1 に設定します。同じファイル シーケンスにあるファイルを 1 つおきに使用するには、シーケンスの増分を 2 に設定します。すなわち Smoke.0、Smoke.2、Smoke.4...のように 1 つずつ順番に選択することができます。
前のステップでデフォルトのパーティクルのレンダー タイプ(Particle Render Type)アトリビュートにスプライト(Sprites)を設定すると、パーティクル オブジェクトにスプライト数(Sprite Num)アトリビュートが追加されます。スプライトの数は、シーケンスの開始(Sequence Start)、シーケンスの終了(Sequence End)、およびシーケンスの増分(Sequence Increment)によって指定されたファイルのプール中のどのファイルをサイクルするかを指定します。つまり、スプライトの数は、ファイルへのインデックスです。
たとえば、Smoke.0 で始まるファイル シーケンスがあるとします。シーケンスの開始(Sequence Start)を 0 に、シーケンスの終了(Sequence End)を 29 に、シーケンスの増分(Sequence Increment)を 1 に設定した場合、イメージのプールとそれを表すスプライト数(Sprite Num)の値は次のようになります。
シーケンスの開始を 0 に、シーケンスの終了を 29 に、シーケンスの増分を 2 に設定した場合、イメージのプールとそれを表すスプライトの数の値は次のようになります。
キーを設定するか、またはエクスプレッションを書いてスプライトの数をアニメーション化して、それによりイメージをサイクルすることができます。すべてのスプライトは各フレームで同じイメージを表示します。
たとえば、シーンの開始フレームがフレーム 0 で、Smoke.0 から Smoke.29 までの 30 個のイメージがある場合には、次の作成エクスプレッションを使用できます。
particleShape1.spriteNum = (frame % 30);
particleShape1.spriteNum = (frame % 30);
アニメーションを再生すると、すべてのスプライトで 30 個のイメージが 1 つずつ順番に選択されます。フレーム 0 から 29 で、スプライトにより、Smoke.0、Smoke.1、Smoke.2... のように、Smoke.29 まで表示されます。フレーム 30 では、サイクルにより、この次の 30 フレームが繰り返されます。
パーティクル単位(Per Particle)の spriteNumPP アトリビュートが particleShape ノードに追加されます。spriteNumPP アトリビュートの機能は スプライト数(Sprite Num)と似ていますが、パーティクル単位で設定できます。スプライト数の詳細については、 すべてのスプライトに同じイメージ シーケンスを割り当てるを参照してください。
たとえば、シーンの開始フレームがフレーム 0 で、Smoke.0 から Smoke.29 までの 30 個のイメージがある場合、次の作成エクスプレッションを使用することができます。
particleShape1.spriteNumPP = rand(0,30);
particleShape1.spriteNumPP = (particleShape1.spriteNumPP + 1) % 30;
アニメーションを巻き戻すと(またはスプライトが放出されると)、作成エクスプレッションは 1 から 30 までのランダムな数字を particleShape1.spriteNumPP アトリビュートに割り当てます。これによって、各パーティクルは 30 個のイメージからランダムに選択されたイメージでスプライトによる表示を開始します。
アニメーションを再生すると、ランタイム エクスプレッションにより(ダイナミクス計算の前または後に)各フレームが実行され、スプライトの番号が 1 つずつ増やされます。これにより、スプライトそれぞれによって、イメージ範囲全体が 1 つずつ順番に選択されるようになります。スプライトに対して Smoke.29 が表示されたら、Smoke.0 からイメージのサイクルが再開されます。