テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】Soft Particleを使って、ポリゴンとパーティクルの交差点がハッキリ見えないようにする

今回はSoft Particleについてです。

Soft Particleはエフェクトの交差点をフェードアウトする

ビルボード(常にカメラを向くビルボード)でパーティクルアニメーションを行うと、ビルボードがポリゴンと交差した際に境目がハッキリ見えてしまう事があります。

そういった時にSoft Particleの機能を使うと、境目をフェードして表現してくれます。

f:id:tsubaki_t1:20170429202157j:plain

対応してるシェーダーとDepthTextureが必要

この機能を有効にするには、Soft Particleに対応しているシェーダー、あとDepthTextureが必要です。

Soft Particleに対応してるシェーダーとは、大雑把に言えばビルトインシェーダーでSOFTPARTICLES_ONが入ってるシェーダーです。

Particleのシェーダーには大抵入っていますが、Mobile/Particleのシェーダーには殆ど入っていません。

f:id:tsubaki_t1:20170429203557j:plain

 

Depth Textureは、Deferredレンダリングならば特に設定しなくても動作しますが、

Forwardレンダリングの場合はCameraコンポーネントのdepthTextureMode で明示的にONに設定する必要があります。

gist.github.com

あとはPlayerSettingsのQuality SettingsでSoft Particleを設定すれば準備完了です。

f:id:tsubaki_t1:20170429204639j:plain

モバイルでも動く

Soft Particleはモバイルでも動作します。

Quality Settingsで設定する際、MobileはSimpleが標準設定で、SimpleはSoft ParticlesがOffになっているので、これをOnにしてやれば動きます。

f:id:tsubaki_t1:20170429205800j:plain

ただしパーティクルはオーバードローが激しくなりやすい項目で、しかもSoft Particleは比較的重いシェーダーとされています。

炎のような単純なスプライトアニメーションなら兎も角、濃い煙を表現する等の、大量かつ広範囲に描画するパーティクルには使わない方が良いかもしれません。もしくは画面解像度を下げるか。

 

Particle AditiveをMobileで選択すると、Mobile/Particleシェーダーをお薦めされます。f:id:tsubaki_t1:20170429210040j:plain

関連

tsubakit1.hateblo.jp

sssslide.com