rn.log

備忘録など

【シェーダーグラフメモ その49】墨の竜巻エフェクト

はじめに

墨っぽい感じの竜巻エフェクトを作ってみました。

今回の記事では、このエフェクトをどうやって作ったのかを軽くをご紹介したいと思います。

f:id:r-ngtm:20190706114052g:plain

墨の竜巻



STEP1. モデルの準備 (Houdini)

今回の竜巻エフェクトでは、以下のようなモデルを使用しました。

f:id:r-ngtm:20190706121620p:plain

今回使用した竜巻モデル

 

今回のモデルはHoudiniを使って作成しています。

f:id:r-ngtm:20190706114723p:plain

Houdiniで作成する竜巻モデル

 

以下のようなノード構成でモデルを作成しました。

円柱(Tube)をBendでひねっています。

f:id:r-ngtm:20190706114851p:plain

ノード構成

STEP2 . シェーダーグラフ作成

今回の竜巻エフェクトでは、以下のようなシェーダーグラフを作成しました。

f:id:r-ngtm:20190706120143p:plain

シェーダーグラフを作成

 シェーダーパラメータ

f:id:r-ngtm:20190706124915p:plain

シェーダーパラメータ

 頂点シェーダー(動きを作る部分)

周期や振幅が異なる2種類のサイン波を加算合成(Add)しています。

動きに複雑さを出すために2種類のサイン波を合成しています。

f:id:r-ngtm:20190706123001p:plain

頂点シェーダー

 

加算結果のサイン波を法線(Normal)と乗算して頂点に加算すると、頂点が法線方向に波打つように動くようになります。

f:id:r-ngtm:20190706124255p:plain

頂点の設定

 

 

フラグメントシェーダー(色を作る部分)

フラグメントシェーダー部分では、時間でスクロールするUVを使って時間スクロールするノイズを作っています。

f:id:r-ngtm:20190706123600p:plain

フラグメントシェーダー

 

UnlitMasterノードのAlphaClipThresholdの部分にノイズを入力することで、ノイズの値が一定値を超えた部分には穴が開くようになります。

f:id:r-ngtm:20190706123906p:plain

AlphaClipThresholdにノイズを入力

 

STEP3 . モデルにシェーダーグラフを適用

STEP1の竜巻モデルに、STEP2のシェーダーグラフを適用すると以下のような竜巻になります。

f:id:r-ngtm:20190706120509g:plain

 

シェーダーのパラメータは以下のように設定しました。

f:id:r-ngtm:20190706120555p:plain

シェーダーパラメータ

STEP4. モデルを3つ重ねる(完成)

モデルのTransformのスケール値と、シェーダーパラメータを変えたものを3つ用意します。

f:id:r-ngtm:20190706120949g:plain

モデルを3つ用意

 

これらを重ね合わせると以下のような竜巻エフェクトになります。

f:id:r-ngtm:20190706121244g:plain

完成