シェーダーグラフの紹介

Tutorial

·

Beginner

·

+10XP

·

15 mins

·

(26)

Unity Technologies

シェーダーグラフの紹介

本チュートリアルでは、シェーダーグラフ(Shader Graph)を使用してシンプルなノードベースのシェーダーを作成し、軽量レンダーパイプラインで実装する方法を学びます。

Languages available:

1. シェーダーグラフの概要

このチュートリアルは Unity 2019.4.9f1 LTS と Shader Graph 7.3.1 で検証しました

以前のバージョンの Unity では、特化したマテリアルを作成するには、カスタムシェーダーをプログラムするか、外部のプラグインを使用するしかありませんでした。2018 年のリリースで、Unity に独自のネイティブシェーダーグラフが追加されました。これを使用して、ノードを使って視覚的に複雑なマテリアルを構築できるようになりました。

エディターでコードを記述、保存して、コンパイルし、テストするプロセスとは異なり、シェーダグラフは、マテリアルに何が起こっているかをリアルタイムで表示するので、その場で変更を加えたり、実験したりすることができます。

シェーダグラフは驚くほど強力で、非常に複雑になることもあります。シェーダーグラフの作成方法の基本がわかったところで、自分だけのシェーダーグラフを作成して実験してみましょう。

2. グラフを作り、最初のノードをつくる

1. Project ウィンドウで「Shader Graph」という名前の新しいフォルダを作成します。

2. Project ウィンドウで右クリックし、フライアウトメニューの Create から Shader に移動し、Unlit Graph を選択します。Project ウィンドウに新しいシェーダグラフが生成されます (画像 01)。

a589da00-d3ec-47b1-995c-1913fbc5066d_image12.png

3. 新しい Shader Graph の名前を「CheckerShader」とします。

4. CheckerShader をダブルクリックして Shader Graph ウィンドウを開きます。

5. Project ウィンドウの後ろに Shader Graph ウィンドウをドッキングします。

6. 作業領域で右クリックするかスペースバーを押して、Create Node を選択します (画像 02)。

9049a745-e0f5-4450-a28c-3c977c940490_image1.png

7. Create Node ウィンドウの上部にある 2D を検索し、Texture 2D Asset を選択します (画像 03)。

880ff04c-df24-4e55-90ce-bdd97c8639fe_image13.png

8. Sample Texture 2D に対してこのプロセスを繰り返します (画像 04)。

1aa9d5f0-e8bb-4d0b-977c-246e9b1b5716_image7.png

9. Texture2D アセットの下部にあるテクスチャスロットで、Radio ボタンをクリックし、目的のテクスチャを検索します。

10. Texture2D アセットの中央にある Out(T) の横にあるピンク色の丸を左クリックしてドラッグすると、コネクターラインが引き出されます。

11. コネクターを Sample Texture 2D の Texture(T) ノードの入力にドラッグします (画像 05)。

b3d579c3-481e-44fa-8c5a-d20ff06ba56c_image9.png

3. グラフ上での構築

1. 2 つのノードを挟んで作業領域で左クリックしてドラッグすると、両方が選択されます。

2. CTRL + D (Windows) または Command + D (MacOS) を押して複製します。他の 2 つのノードの下に移動させます。

3. 2 つ目の Texture2D Asset ノードでは、Gradient テクスチャのような、ブレンドするための 2 枚目のテクスチャを探して適用します (画像 06)。

e271e3f2-67d3-4452-b49e-7dadb86f4c96_image11.jpg

5. 新しいノードを作成し、今度は Tiling と Offset を選択します。

6. Tiling and Offset Out(2) ノードを Checker Sample 2D ノードにドラッグします。

7. Tiling and Offset Tiling(2) ノードの X と Y の入力値を 3 にします (画像 07)。

74ba56b7-3227-4fd0-9153-59633e30bd96_image4.png

4. テクスチャのブレンド

1. Divide ノードを作成します。

2. Checker (チェッカーパターン) Sample 2D ノードの A(1) 出力を A(1) Divide ノードの入力にドラッグします。

3. Divide ノードの B(1) X の入力値を 20 に設定します (画像 08)。

968562aa-4ec4-444d-9a25-8eb5a9abcfdc_image2.png

4. Blend ノードを作成します。

5. Divide Out(1) の出力を最初の Blend Base(1) の入力に接続します。

6. Gradient (グラデーション) の Sample Texture2D A(1) の出力を、2 つ目の Blend Base(1) の入力に接続します (画像 09)。

e1a65c69-81de-4169-8e60-39906e1bbc15_image3.png

5. 色の追加とシェーダーの接続

1. Color ノードを作成します。

2. Color ノードを明るい青緑色に設定し、モードを HDR に設定します。

3. もう一つの Blend ノードを作成します。

4. 最初の Sample Texture2D ノードの RGBA(4) の出力を新しいブレンドの最初の Base(4) ノードに接続します。

5. Color ノードの Out(4) の出力を Blends の 2 つ目の Base(4) につなぎます (画像 10)。

5a38b770-b063-45ff-bf19-f9ffc7c5aa2b_image6.png

6. Blend ノードのモードを Darken に設定します (画像 11)。

ced11ac7-4a03-477c-8225-89b62a3a706e_image8.png

7. Blue Blend ノードの Out(4) の出力を Unlit Masters Color(3) の入力にドラッグします。

8. Gradient の Blend ノードの Out(4) の出力を Unlit Masters の Alpha(1) の入力にドラッグします。

9. Unlit Master の Surface を Transparent に設定します (画像 12)。

4559ce64-203a-4325-b506-8927a8976314_image5.png

10. Shader Graph ウィンドウの左上にある Save Asset をクリックします (画像 13)。

01aea200-0139-4f96-a445-e5001bef8312_image10.png

シェーダーグラフは非常に強力で、非常に複雑になることがあります。ノードは数多くあり、選択することができます。シェーダーグラフの作り方の基本がわかったところで、実際に自分で作ってみましょう。

Complete this tutorial