【シェーダーグラフメモ その29】ランダム頂点数の多角形を飛ばすパーティクルを作る
はじめに
今回は、シェーダーグラフとParticleSystemを組み合わせて頂点数がランダムな多角形を飛ばすパーティクルの作り方を解説します。
バージョン
Unity2018.3.0f1
ShaderGraph Version4.1.0
作り方解説
STEP1 : ParticleSystem作成
まずはParticleSystemを作成します
見やすさのため、Start Sizeを3、1秒当たりの生成数を5に設定します。
STEP2 : シェーダーグラフを作成
以下のようなシェーダーグラフを作成します
STEP3 : シェーダーグラフをパーティクルに適用
シェーダーグラフから作成したマテリアルをParticleSystemに登録します。
登録すると以下のような、灰色の四角形パーティクルになります。
UnlitマスターノードのColorで設定した色がそのままパーティクルに反映されています
STEP4 : パーティクルを三角形にしてみる
Polygonノードを以下のように接続すると、パーティクルが三角形になります。
UnlitマスターノードはTransparentに設定しておきます。
STEP5 : パーティクルの頂点数をランダムにする
パーティクルからランダムな値をシェーダーへ渡す
ParticleSystemのCustom Vertex StreamsにRandom/Stable.xを登録すると、TEXCOORD0.zにランダムな値(0~1)が渡るようになります。
シェーダーグラフからランダムな数値を利用する
シェーダーグラフでは、UVノードがTEXCOORD0に相当しており、B成分を取り出すことでTEXCOORD0.zを利用することができます。
TEXCOORD0.zには0~1のランダムな値が入っています。
パーティクルの頂点数が3,4,5のいずれかでランダムで設定されるようになり、以下のようになります。
Random/Stable.xの追加方法
色を変えたり、重力を付けてバウンドさせてみたりするのも面白いかもしれません。