UnityでParticleSystemで連番アニメーションをする方法です。
Textureを使う方法とSpriteを使う方法を紹介します。
Unity2018.1.4
やりたいこと
連番アニメーションというのが正解かどうかわかりませんが、
コマ割りされた画像を切り替えてアニメーションを作ります。
Textureを使う方法
まずTextureを使う方法ですParticles/Alpha Blendedなどパーティクル系のシェーダを使ったマテリアルを作ります。
Particle Textureにアトラスを持たせておきます。
次にParticle Systemを作り、RendererのMaterialに上記で作ったものを指定します。
最後にParticle SystemのTexture Sheet Animationを有効にし、次のように設定します。
ModeをGridにし、Tilesに縦横のスプライト数を指定するのがポイントです。
アニメーションの仕方(カーブ)や速度はFrame over TimeやCyclesで指定します。
結果は次の通りです。
連番アニメーションが作れました。
Spriteを使う方法
まずParticles/Alpha Blendedなどパーティクル系のシェーダを使ったマテリアルを作ります。
Textureを使う方法と異なり、Particle Textureは空にしておきます(Particle Systemにより自動的に設定されます)。
次にParticle Systemを作り、RendererのMaterialに上記で作ったものを指定します。
最後にParticle SystemのTexture Sheet Animationを有効にし、次のように設定します。
ModeをSpritesにし、アニメーションさせたい順番にSpriteを設定します。
結果は次の通りです。
こちらも正常に作れました。
ちなみに、違うスプライトシートのスプライトを同じParticle Systemに持たせると
エラーになり、アニメーションしなくなります。
Spriteでやるメリット・デメリット
以上2つの方法を紹介しましたが、TextureではなくSpriteで作ったほうが以下のメリットがあります。
まずTextureによる方法ではアニメーションの順番を差し替えられないのに対し、
Spriteによる方法は自由に順番を差し替えられます。
また、Spriteによる方法のほうが描画負荷が低くなります。
これに関しては下記の記事が詳しいです。
デメリットとしてはSpriteを1個1個設定するのが面倒ということがありそうです。
場合によってはエディタ拡張で簡単に設定できるツールを作ったほうが良さそうです。