【Unity】Unity Shader Graph を使ってフレネル効果を実装する方法

Unity

はじめに

Unity でシェーダーを作成するには ShaderLab や HLSL などの言語でコードを記述するか、Unity Shader Graph を使ってコードを書くことなく、ノードのみで作るかの主に2つの方法があるかと思います。
この記事では Unity Shader Graph を使ってフレネル効果を実装する方法をザックリと解説します。

「フレネル効果」については Unity 公式ドキュメントで以下のように説明されています。

フレネル効果 (Fresnel Effect) は、見る角度によってサーフェス (表面) 上の反射率が変わる効果で、グレージング角に近付くほど多くの光が反射されます。Fresnel Effect ノードは、面法線とビュー方向の間の角を計算することで、この近似値を導き出します。この角が広いほど返り値が大きくなります。

Fresnel Effect ノード

こちらの画像では黒い立方体の端に行けば行くほど周囲の光を反射しているのがわかるかと思います。

要するにこの効果のことなのですが、このフレネル効果に関してはいちあっぷ様の「光沢を描く際に役立つ!フレネル反射について学ぼう」という記事で非常にわかりやすく説明されているのでそちらもご参照ください。

手順

プロジェクトの作成

早速手順を解説します。
まずはプロジェクトの作成からです。

手順1

Unity Hub を開いて右上の「新しいプロジェクト」を押します。

手順2

「すべてのテンプレート > 3D (URP)」を選択して右側の「プロジェクト名」や「保存場所」を設定し、右下の「プロジェクトを作成」を押します。

※ URP ではなくて通常の「3D」でもいい気もしますが、今回は URP でいきます。もし、まだテンプレートをダウンロードしていない場合は「テンプレートをダウンロード」を押して事前にダウンロードしておきましょう。

必要なアセットの作成

ここからはフレネル効果を実装するにあたって必要なアセットを作成します。

手順3

まずはフレネル効果を確認する用の3Dモデルをシーン上に配置します。
(今回は Cube でいきます)

手順4

Assets フォルダの中の空いているスペースで右クリックして「Create > Shader Graph > URP > Lit Shader Graph > Lit Shader Graph」を選択します。

手順5

作成した Lit Shader Graph の名前を「Fresnel」などのわかりやすい名前に変更します。

手順6

Assets フォルダの中の空いているスペースで右クリックして「Create > Material」を選択します。

手順7

作成したマテリアルをわかりやすい名前に変更します。

シェーダーでの処理の作成

手順8

Assets フォルダの中にある、「手順4」で作成した Lit Shader Graph をダブルクリックしてグラフを開きます。

手順9

以下の画像を参考にして内部の処理を作成します。
作り終わったら左上の「Save Asset」で変更内容を保存しておきましょう。

手順10

Assets フォルダの中にある、「手順6」で作成したマテリアルを選択してインスペクター上部の「Shader」を「手順4」で作成したシェーダーに変更します。

手順11

「手順3」でシーン上に配置した3Dモデルを選択してインスペクターの「Mesh Renderer > Materials」に先ほどのマテリアルをアサインします。

手順12

作成したシェーダーの各プロパティの値を調整してフレネル効果が出ているか確認します。
Cube の場合はこの画像のような見た目になっていればOKです。

最後に

参考記事

お問い合わせ

    タイトルとURLをコピーしました