LoginSignup
6
1

More than 1 year has passed since last update.

【Unity】シェーダーグラフでポストエフェクトやってみる

Last updated at Posted at 2022-12-23

この記事はUnity Advent Calendar 2022-3の25日目の記事です。

はじめに

Unityのバージョン2022.2から完全にノンコードでポストエフェクトを実装できるようになったので触ってみました。
Unity公式が設定方法の動画を出してくれています。

以前はスクリプトで ScriptableRendererFeatureクラスを継承したクラスを書いて.. などをやらないとできませんでした。独自のポストエフェクトを入れたいけどコーディングはしたくない方も多いと思うので かなり嬉しいアップデートですね。

環境

Unity 2022.2.1f1
Universal RP 14.0.4

設定

以下はURPでの設定方法です。HDRPでの方法は少し違いますが上記のUnity公式動画で解説されています。

  1. ポストエフェクト本体となるシェーダーグラフを作ります
    ss2022-12-20 22.06.48.png
  2. Render Pipeline Asset にポストエフェクト用の Renderer Feature を追加します
    ss2022-12-21 0.02.21.png
  3. 1で作ったシェーダーグラフのデフォルトマテリアルを 2の Render Feature 内の Pass Material に設定
    ss2022-12-21 0.05.12.png

これで1で作ったシェーダーグラフを編集すればポストエフェクトとして画面に適用されます。

ポストエフェクト

アドベントカレンダーの記事だし、雪でも降らせてみます。

画面を格子状に分けて
node1.png
格子状に分けた中のランダムな位置に点が表示されるようにし、その点を時間変化で動かして
node2.png
元の画面と合成
node3.png

雪が降った!
mov_snow.gif
え?これポストエフェクトでやる意味あるの?
気にしない気にしない!ほら、ポストエフェクトなら粒を何万個出しても負荷が一定だからどこかで使える かも!

ついでにこちらを参考に 結露した窓を落ちる水滴 もシェーダーグラフで追加
mov_drop.gif
node-_drop.png
ここまでノードが増えるとシェーダーグラフのエディタがかなり重くなるのでファイル分けた方がよさそうです。

ひとつの計算結果をいろいろなノードで使い回すような時にノードが綺麗に配置できないのが悩ましかったのですが、いい方法ご存じの方がいれば教えてください!

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1