前回は、テクスチャを流して「動き」を作りました。
今回は、さらにドラマチックな演出として、物体がサラサラと砂のように消えていく 「ディゾルブ(Dissolve)」 表現に挑戦します。
敵を倒した瞬間、魔法が解けた瞬間、あるいはSF的なテレポートの表現……。
この「消滅エフェクト」をマスターすれば、あなたの作品の説得力はプロの領域に達します。
ディゾルブの仕組み:「白黒の戦い」
一見複雑そうに見えるこの表現ですが、仕組みは驚くほど単純です。
デザイナーの皆さんなら、Photoshopの 「マスク」 や 「2階調化」 をイメージしてください。
-
3Dモデルに、白黒のまだら模様(ノイズ画像)を貼り付けます。
-
「黒い部分から透明にする」というルールを決めます。
-
その「黒い領域」を、時間の経過とともにじわじわと広げていきます。
これだけで、物体は不規則な形に侵食され、最終的に消滅して見えるのです。
この「じわじわ広げる」役割を担うのが、今回の主役 『Step(ステップ)』 ノードです。
実践:ノイズを使って消してみよう
それでは、Shader Graphで「消滅のレシピ」を組んでいきましょう。
STEP 1:消え方の「模様」を用意する
まず、消え方のパターンとなる「ノイズ画像」を読み込みます。
-
『Sample Texture 2D』 ノードを作成します。
-
雲模様や砂嵐のような、白黒のノイズ画像をセットしてください。(Unity標準のノイズ素材でもOKです)
STEP 2:「境界線」を引く(Stepノード)
次に、どこまでを透明にするかの「境界線(ボーダー)」を引きます。
-
『Step』 ノードを作成します。
-
先ほどのノイズ画像の出力(RGBA)を、Stepノードの 『In(入力)』 に繋ぎます。
-
Stepノードの 『Edge(境界)』 の数値を、
0から1の間で動かしてみてください。
👀 プレビューに注目! Stepノードのプレビュー画面を見てください。
数値を変えると、ノイズ画像がパキッと「完全な白」と「完全な黒」に二極化していくのが分かりますか?
これが「ここまで黒くするぞ」という境界線の移動です。
STEP 3:透明度と連動させる
最後に、この白黒の結果を「透明度」として使います。
-
Stepノードの出力を、Master Stackの『Alpha』 に繋ぎます。
-
さらに、Master Stackの設定(歯車アイコン)を開き、Surface Type を
Opaque(不透明)から 『Transparent(透明)』 に変更します。
これで完成です!
Stepノードの Edge の数値をスライダーで動かせば、3Dモデルがサラサラと消えたり現れたりするはずです。
デザイナーへの+α:もっとプロっぽく!
これだけだと単純に「透ける」だけですが、ここにもう一手間加えるのがプロの技です。
「消え際を光らせる(Emission)」 消えていく境界線を、燃え尽きるように光らせてみましょう。
-
Stepノードの結果を少し加工して「境界線の部分だけ」を取り出します。
(少し難しいので今回は割愛しますが、ノードを数個足すだけで可能です) -
その結果に「オレンジ色」などを掛け合わせ(Multiply)、Master Stackの 『Emission(発光)』 に繋ぎます。
これだけで、ただ消えるのではなく「燃え尽きながら消滅する」ような、リッチな表現に進化します。
まとめ:仕組みは「2階調化」の応用だった
今回は、Shader Graphで「ディゾルブ表現」を作る方法を解説しました。
-
ディゾルブ は、難しい計算ではなく「白黒の陣取り合戦」。
-
ノイズ画像 が、消え方のパターンを決める。
-
Stepノード が、どこまで消すかの「境界線」を動かす。
この仕組みさえ理解すれば、「水が干上がるように消す」「デジタルなグリッド状に現れる」など、テクスチャを変えるだけで無限の演出が作れるようになります。
さて、次回はいよいよパーティクルとシェーダーを組み合わせた「まとめ」の回です。
これまでの知識を総動員して、自分だけのオリジナルエフェクトを作ってみましょう!
