パーティクルのグラフィックスは静止画像である必要はありません。このモジュールは、テクスチャを、アニメーションのフレームとして再生できるグリッド状に区切られたサブイメージとして扱えるようにします。
このモジュールは、Particle System コンポーネントの一部です。新しい Particle System ゲームオブジェクトを作成する、または終了したゲームオブジェクトに Particle System コンポーネントを追加する場合、Unity は Texture Sheet Animation モジュールを Particle System に追加します。デフォルトでは、このモジュールは無効化されています。新しい Particle System を作成し、このモジュールを有効にするには、次のようにします。
このモジュールは Particle System コンポーネントの一部であるため、ParticleSystem クラスを通してアクセスします。実行時にアクセスし、値を変更する方法については、Texture Sheet Animation モジュール API のドキュメント を参照してください。
プロパティ | 機能 |
---|---|
Mode popup | Grid モードを選択します。 |
Tiles | テクスチャを X(水平)方向と Y(垂直)方向に分割して作るタイルの数 |
Animation | Animation モードは Whole Sheet か Single Row (Single Row は、シートの各列が別々のアニメーションシーケンスを表現します) に設定できます。 |
Time Mode | パーティクルシステムがアニメーションのフレームをサンプリングする方法を選択します。 |
Lifetime | パーティクルの生存期間にわたって、アニメーションカーブを使用してフレームをサンプリングします。 |
Speed | パーティクルの速度に基づいてフレームをサンプリングします。速度範囲は、フレーム選択の最小速度と最大速度の範囲を指定します。 |
FPS | 指定されたフレーム/秒の値に基づいてフレームをサンプリングします。 |
Row Mode | アニメーションを作成するには、パーティクルシステムにテクスチャシートから 1 行を選択させます。このプロパティは、Animation モードが Single Row に設定されている場合にのみ使用できます。 |
Custom | テクスチャシートの特定の行をアニメーションに使用します。 |
Random | アニメーションを生成するときに、各パーティクルにつき 1 行をランダムに選択します。 |
MeshRenderer | パーティクルに割り当てられたメッシュインデックスに基づいて行を選択します。これは、特定のメッシュを使用するパーティクルも同じテクスチャを使用するようにする場合に便利です。 |
Random Row | シートからランダムに 1 列を選び、アニメーションを作成します。このオプションは Animation モードで Single Row が選択されているときのみ利用できます。 |
Row | シートから特定の 1 列を指定し、アニメーションを作成します。このオプションは、 Animation モードで Single Row が選択され、 Random Row が無効であるときのみ利用できます。 |
Frame over Time | 時間の経過とともに、アニメーションのフレームがどのように変化するかを指定するカーブ |
Start Frame | どのフレームからパーティクルのアニメーションを開始するかを指定します (各パーティクルのアニメーションをランダムに異なるフェーズにするのに役立ちます)。 |
Cycles | パーティクルの生存期間にアニメーションシーケンスが繰り返す回数。 |
Affected UV Channels | 厳密にどの UV ストリームがパーティクルシステムに影響されるかを指定します。 |
このセクション内の一部のプロパティでは、異なるモードを使用して値の設定が行えます。使用可能なモードについての詳細は、Varying properties over time を参照してください。
プロパティ | 機能 |
---|---|
Mode popup | Sprites モードを選択します。 |
Frame over Time | 時間の経過とともに、アニメーションのフレームがどのように変化するかを指定するカーブ |
Start Frame | どのフレームからパーティクルのアニメーションを開始するかを指定します (各パーティクルのアニメーションをランダムに異なるフェーズにするのに役立ちます)。 |
Cycles | パーティクルの生存期間にアニメーションシーケンスが繰り返す回数。 |
Enabled UV Channels | 厳密にどの UV ストリームがパーティクルシステムに影響されるかを指定します。 |
パーティクルのアニメーションは一般的に、キャラクターのアニメーションよりも簡易で、それほど詳細ではありません。パーティクルが個々に表示される場合は、その動きや移動を表現するのにアニメーションを使用します。例えば、炎が揺らいだり、群れの中の昆虫が羽ばたきでもするように羽を微動させたり、震わせたりする様子などに利用できます。雲のように 1 つの連続した実体を持つパーティクルの場合、アニメーションするパーティクルは活力や動きの表現を加えるのに役立ちます。
Single Row モードはパーティクルの個別のアニメーションシーケンスを作成し、スクリプトを使用してアニメーションを切り替えるのに利用できます。変化をつける、または衝突後に異なるアニメーションに切り替えるのにも便利です。Random Row オプションは、パーティクルシステムの規則性が目立ってしまう場合 (例: 一群の炎のオブジェクトがすべて、まったく同じ炎の揺らぎのアニメーションを何度も何度も繰り返す場合) に、それを解消するための方法としてとても効果があります。さらに、このオプションは、ランダムなグラフィックスを持つパーティクルを生成する方法として、1 列につき 1 フレームで使用することができます。これを利用して、雲のようなオブジェクトの規則性を崩す、または 1 つのシステムから別の種類の破片やその他のオブジェクトを作成することができます。例えば、ラッパ銃が釘、ボルト、ボールやその他の弾の固まりを発射する場面や、車が衝突して、ばね、車の塗料、ねじ、その他の金属が飛び散る場面などに利用できます。
Row Mode プロパティを使用して、パーティクルシステムの目立つ規則性を解消します (例えば、すべて同じちらつきのアニメーションのを繰り返すゲームオブジェクトのグループなど)。ランダムなグラフィックスを持つパーティクルを生成するには、このプロパティを 1 行につき 1 フレームで使用します。これは、クラウドなどの 1 つのシステムで規則性を解消したり、さまざまな種類のデブリを生成したりするのに便利です。例えば、銃が一群の釘、ボルト、その他の発射体を発射したり、自動車のクラッシュのエフェクトがバネ、車の塗装、ネジ、その他の金属の破片を飛び散らせたりします。
UV のフリップは、追加テクスチャを作成することなく、エフェクトを視覚的により多様にできるすばらしい方法です。
Mode ドロップダウンから Sprites オプションを選択すると、テクスチャ上の規則的なグリッド状のフレームを使用する代わりに、各パーティクルに表示するスプライトのリストを定義できます。このモードを使用すると、スプライトパッカー、カスタムピボット、スプライトフレームごとに異なるサイズなど、スプライトの多くの機能を利用できます。 スプライトパッカーを使用すると、テクスチャをアトラシングすることによって異なるパーティクルシステム間でマテリアルを共有したり、その結果、動的バッチ処理でパフォーマンスを向上させることができます。このモードにはいくつかの制限があります。最も重要なのは、パーティクルシステムに使用されているすべてのスプライトが同じテクスチャを共有する必要があることです。これは、スプライトモードを複数にするか、またはスプライトパッカーを使用して実現できます。スプライトごとにカスタムピボットポイントを使用する場合は、フレーム間でジオメトリが異なるため、フレーム間でブレンドすることはできません。単純なスプライトだけがサポートされ、9 スライスはサポートされません。また、メッシュパーティクルはカスタムピボットやさまざまなスプライトサイズをサポートしていないことにも注意してください。