おもちゃラボ

Unityで遊びを作ってます

【Unity】パーティクルに複数の種類のテクスチャを使う

Unityのパーティクルには、テクスチャだけでなく3Dモデルも指定できるようになっています。

tsubakit1.hateblo.jp

3Dモデルであれば、1つのParticle Systemで複数種類のパーティクルを発生させる事ができますが、テクスチャの場合は基本的に1種類しか指定できないようになっています。

つまり、円なら円のパーティクル、星なら星のパーティクルというように、何種類もテクスチャを混ぜたパーティクルが作れないのです。

(↓普通のパーティクル・・・)
f:id:nn_hokuson:20171024195041g:plain

といっても、複数種類のパーティクルが全く作れないわけではなく、すこしトリッキーですが、複数種類のテクスチャを混ぜたパーティクルを作る方法がUnityには用意されています。

ここではその方法を紹介したいと思います。

テクスチャを用意する

複数種類のパーティクルテクスチャを使うにはテクスチャアニメーションに使う仕組みを利用します。まずは使いたいテクスチャを縦に並べた1枚の大きなテクスチャを作成して下さい。

f:id:nn_hokuson:20171024195633p:plain:w100

上の図で細い枠線は分かりやすいように入れていますが、実際には不要なので、Photoshopなどで背景は透明にしておいて下さい。

Unityでパーティクルを作成する

作成したテクスチャをUnityのプロジェクトウィンドウにドラッグ&ドロップして下さい。背景を透過する場合は、テクスチャのインスペクタで「Alpha Is Transparency」にチェックを入れておきます。

f:id:nn_hokuson:20171024200620j:plain:w280

次にテクスチャに対応するマテリアルを作成します。プロジェクトウィンドウで右クリックし、「Create」→「Material」を選択し、マテリアルを作成して、いま登録したテクスチャを指定して下さい。

マテリアルのShaderは「Particles/Additive」とか「Unlit/Transparent」など、お好みのものを選択しておきます。

f:id:nn_hokuson:20171024200819p:plain:w280

複数テクスチャを指定するパーティクルの設定

最後にParticle Systemのインスペクタで、パーティクルに複数のテクスチャを指定できるように設定します。Particle Systemの「Texture Sheet Animation」の項目を次のように設定して下さい。

項目 設定値
Tiles X=1、Y=テクスチャの種類数
Animation Single Row
Random Row オン

また、「Renderer」のMaterialに上で作成したマテリアルを指定します。設定後、Particle Systemのインスペクタは次のようになりました。

f:id:nn_hokuson:20171024201404j:plain:w280

実行してみる

上のように設定後、実行してみて下さい。次のような感じで、1つのParticle Systemを使って複数種類のテクスチャを表示できました。

f:id:nn_hokuson:20171024201810g:plain

このように、Texture Sheet Animationを使うことで、複数の種類のパーティクルを発生させることができます。覚えておくと使える・・・かもです!