おもちゃバコ

主に趣味について

Unity: 旅の扉風のエフェクトを作る

こんにちは

今回はUnityで旅の扉(DQ3)に入った時風のエフェクトを作った時の備忘録です.

2Dテクスチャ用のエフェクトなので画面を歪めるわけではないです.
f:id:lambda410:20211229214933g:plain


開発環境

Unity 2020.3.25.f1
Windows10 Home 21H2


雑解説

テクスチャをsin波に従ってずらすだけです.

プログラム量も少ないので,シェーダを触ったことなくても理解できると思います.
(自分がシェーダを理解していないので.)

f:id:lambda410:20211229213812p:plain


シェーダ作成

まず,Unlit ShaderとMaterialを作成し,MaterialにShaderを結びつけます.

次にCreate Emptyで空っぽのオブジェクトを作成し,SpriteRendererを付けてMaterialに作成したのを結びつけます.

f:id:lambda410:20211229213248p:plain

ちなみにUnlit Shaderはライトの影響を受けないシェーダです(下記参考).
styly.cc

シェーダ

なんかごちゃごちゃ書いてありますが,大体はテンプレートです.

コメントで「ここ」と書いてあるところが追加したところです.
sin派でuv座標をずらしているだけですね.


スクリプト

スクリプトでシェーダの数値を変更します.

今回は10秒後に元に戻るようにしました.
かなり雑なのでここはお好きにカスタマイズしてください.


実行結果

sin波を別の曲線と合わせるとよりそれっぽくなるかもね.
f:id:lambda410:20211229214933g:plain


まとめ

シェーダとエフェクト入門として作ってみました.

シェーダ書くのは楽しいのでもう少し勉強してみようと思います.