UnityのUniversal Render Pipeline(URP)のParticleシェーダでFlip-Book Blendingを使う方法についてまとめました。
- Flip-Book Blending?
- ブレンドしないFlip-Bookアニメーションを作る
- Flip-Book Blendingする
- GPUインスタンシング + Flip-Book Blending
- 関連
Unity2020.3.15f2
Flip-Book Blending?
Flip-Bookとはいわゆるパラパラ漫画のことです。
Particle Systemではテクスチャシートを使ってFlip-Bookアニメーションをすることができます。
さらに、Flip-Bookのコマとコマの間をブレンドするFlip-Book Blendingというオプションもあります。
本記事ではURPのParticleシェーダでFlip-Book Blendingを使う方法についてまとめます。
ブレンドしないFlip-Bookアニメーションを作る
まず準備としてブレンドしないFlip-Bookアニメーションを作ります。
これに関しては以下の記事にも細かくまとめているので、詳細はこちらを参照してください。
ParticleSystemを一つ作り、Texture Sheet Animationを有効にしておきます。
今回はModeをGridにしてTilesを8x8に設定しておきます。
次にマテリアルを作成し、Universal Render Pipeline/Particles/Unlit
シェーダをアサインします。
Base Mapには以下のサンプルテクスチャを入れておきます。
さらに、わかりやすいように以下のようにパラメータを変更しておきます。
- Start Lifetime: 4
- Max Particles: 1
- Shape: OFF
これでFlip-Bookアニメをするようになりました。
Flip-Book Blendingする
次にFlip-BookアニメをBlendingします。
まずMaterialプロパティのAdvanced > Flip-Book Blendingにチェックを入れます。
次にParticle SystemのRendererモジュールからCustom Vertex Streamsを有効にし、TEXCOORD1.xにAnimBlendを渡します。
これでFlip-BookアニメがBlendingするようになりました。
GPUインスタンシング + Flip-Book Blending
最後にGPUインスタンシングを有効にしつつFlip-Book Blendingする方法についてまとめます。
GPUインスタンシングの基本的な使い方については以下にまとめていますので、必要に応じて参照してください。
さてインスタンシングを有効にするために、Render ModeをMeshにして適当なメッシュを設定し、
RendererモジュールのEnable Mesh GPU Instancingにチェックを入れます。
ここでさらに、Custom Vertex Streamsを編集します。
ここがかなりわかりづらいのですが、前節の通りGPUインスタンシングが無効の時にはAnimBlendを渡す必要があったのに対して、
GPUインスタンシングが友好の時にはINSTANCED1.xにAnimFrameを渡す必要があります。
これでGPUインスタンシングに対応しつつFlip-Book Blendingを適用することができました。