LoginSignup
5
0

[Unity]DISSOLVEエフェクトをShader Graphでやってみる

Last updated at Posted at 2021-01-03

こんな感じのものを作ります

概要

ShaderGraphの練習でDISSOLVEエフェクトを作ってみました。
ShaderGraphはまだまだ新しい技術でどんどん更新されて行ってます。現時点での最新の操作手順を共有する為に投稿しました。

なお、この記事は海外YouTuber Brackeysさんの動画をベースにしています。
https://www.youtube.com/watch?v=taMp1g1pBeE&t=115s

前準備

Unityのバージョンは2019以降なら大丈夫だと思います。今回は最新の2020.2.1f1で新規作成しました。
スクリーンショット (1540).png

テンプレートはHDRPもしくはURPを選択すると今回のテーマであるShaderGraphがすぐ使える状態になります。今回はシンプルで軽量なつくりのURPを選択しました。

スクリーンショット (1541).png

Unityが起動したらProjectからCreate > Shader > Universal Render Pipeline > Lit Shader Graphを選びます。
(最新バージョンならCreate > Shader Graph > URP > Lit Shader Graph)

スクリーンショット (1542).png

生成されたShaderGraphには適当な名前を付けてください。
次に、これから作るShaderGraphを適用させるマテリアルを作ります。
生成されたShaderGraphにマウスポインタを重ねた状態で右クリック。Create > MaterialでShaderGraphが適用されたマテリアルが作成されます(ShaderGraphの上で右クリックするのがポイントです)

スクリーンショット (1543).png

ShaderGraphを編集する(準備1)

ShaderGraphをダブルクリックしてください
スクリーンショット (1544).png
ShaderGraphを編集する画面が表示されます。画面が小さい時は編集エリア上にマウスカーソルを置いた状態でShiftキー + スペースキーで全体表示に切り替わります(もう一度押すと元に戻ります)

スクリーンショット (1546).png

ShaderGraphを編集する(準備2)

VertexとFragmentがShaderGraphを通して画面に表示される最終出力です。
今回のDissolveエフェクトの肝になる透明度(Alpha)が表示されていないと思います。画面右側Graph Inspector(タブはGraph Settings)のAlphaClipにチェックを入れるとFlagmentにAlphaが2つ表示されます。
スクリーンショット (1547).png
ついでにTwo Sidedにもチェックを入れておいてください

ShaderGraphを編集する(いきなり最終形)

一つ一つのノードを解説すると冗長な記事になると思うので、最終的な完成図を載せます。
ですが、ShaderGraphは操作のコツをつかんだら後はただのパズルのようなものです(ノードごとの役割を理解する必要があります。個々で気になった箇所をその度ググるのが一番頭に入ると思います)
以降でノードを構築する時に必要なコツを挙げていきます。
スクリーンショット (1550).png

ShaderGraphを編集するコツ(ノードを作成する)

まずノード(枠で囲まれた1つ1つのパーツがいわゆるノードです)を作成する方法は2つあります「右クリックで表示されるメニューからCreateNode」もしくは「何もノードを選択していない状態でスペースキーを押す」

スクリーンショット (1552).png

作成したいノードの名前を検索欄に入力すると対象のノードを作成できます。
今回のサンプルは
Time
Remap
Simple Noise
Add
Step
Multiply

Color
Float
で構成されています。それぞれ検索欄に入力して完成図のようにつないでいきます。
※Colorだけ種類がたくさんありますがInput > Basic > Colorを選んでください

スクリーンショット (1553).png

ShaderGraphを編集するコツ(その他)

ノード同士を線でつなぐのは感覚で出来ると思います。端末同士をドラッグでつなぐだけです。
線を消したい時は、その線をクリックして選択状態にした後、Deleteキー(macはCommand + back)で消せます。

Floatノードは数値を設定するためのものです。左の数字の枠内に数を入力すると設定数を変更できます。(Colorノードも同様に色を変更できます)

スクリーンショット (1554).png

ShaderGraphを編集するコツ(適用)

ShaderGraphはノードを構築しただけでは画面に反映されません。変更を確認する時はその度、左上のSaveAssetを押してください。
スクリーンショット (1555).png

結果を確認する

Unityの最初の画面に戻り冒頭で作成した(ShaderGraphを適用した)Materialを効果を付与したいオブジェクトにドラッグアンドドロップなどで適用させます。
実行させるとDISSOLVEエフェクトのアニメーションが見られます。
スクリーンショット (1559).png

最後に

事細かに説明するとすごく長くなるので、つまづきそうな部分を中心に記事にしました。後は最初にリンクを張ったYouTube動画も参考にしながらやってみると大丈夫だと思います。
Floatの数字を変えたり、色を変えたり、Noiseの種類を変えたり、FloatをPropertiesに変えてみたり。応用できる場所はたくさんあります。楽しんでみてください:grinning:

追記

エフェクトが光らない方は以下の項目を確認してみてください
ShaderGraph上の光らせたい色のColorノードをMode: HDRにして
スクリーンショット 2022-12-18 15.37.11.png
色設定のIntensityを引き上げると光の強さが決められます
スクリーンショット 2022-12-18 15.37.23.png
CameraオブジェクトのPostProcessingをONにしてください。
スクリーンショット 2022-12-18 15.38.13.png
これでも光らない方はGlobal VolumeのBloomの設定も確認してみてください。

光らせたいからとThresholdの数値をたくさん上げると逆に全く光らなくなります。少なめな数値で様子を見ながら調整してみると光ります!

5
0
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
5
0