初めての Shader Graph
使用を開始する前に、プロジェクトが適切に設定され、グラフ (図) が正常に読み込まれていることを確認してください。詳細は Shader Graph 入門 を参照してださい。
新しいグラフの作成
Project ウィンドウのコンテキストメニューを使用して、プロジェクト内に新しい Shader Graph アセット を作成します。メニューを Create > Shaders の順に選択すると、様々な作成オプションが表示されます。
Blank Shader Graph を選択すると、選択されたアクティブな ターゲット や ブロックノード を持たない Shader Graph が作成されます。Graph Settings メニュー からターゲットを選択する必要があります。
一部のインテグレーション (レンダーパイプラインなど) によって Shader Graph 用の事前設定済みオプションが提供される場合もあります。下の例では、Universal > Lit Shader Graph が作成され、開かれています。
新しいノードの作成
Create Node メニューを使って新しいノードを作成します。このメニューは以下の 2 つの方法で開くことができます。
- 右クリックで開かれるコンテキストメニューから Create Node を選択する。
- スペースキーを押す。
このメニュー内では、検索フィールドに入力して特定のノードを探したり、ライブラリ内の全てのノードを閲覧したりすることができます。この例では、Color ノードを作成します。まず、Create Node メニューの検索フィールドに "color" と入力します。次に Color をクリックするか Color をハイライトし、Enter を押すと Color ノードが作成されます。
ノードの接続
グラフを構築するには、ノード同士を接続する必要があります。これを行うには、ノードの Output Slot をクリックし、その接続を別のノードの Input Slot 内にドラッグします。
まず始めに、この Color ノードを Fragment Stack の Base Color ブロック に接続します。
ノードの出力の変更
この接続によってマスタースタックが更新され、Main Preview 内の 3D オブジェクトが黒 (Color ノード内に指定された色) になりました。このノード内のカラーバーをクリックすると、カラーピッカーを使用して色を変更できます。ノードに加えた全ての変更は、Main Preview 内のオブジェクトにリアルタイムで反映されます。
例えば、赤を選択すると、その変更がその場で 3D オブジェクトに反映されます。
グラフの保存
現時点では、Shader Graph は自動的には保存されません。変更の保存は以下の 2 つの方法で行えます。
- ウィンドウ左上の角にある Save Asset ボタンをクリックする。
- グラフを閉じる。未保存の変更が Unity によって検知されるとポップアップウィンドウが表示され、変更を保存するかどうか選択できます。
マテリアルの作成
グラフを保存したら、シェーダーを使用して新しいマテリアルを作成しましょう。マテリアルを新規作成 してそれを Shader Graph シェーダーに割り当てる手順は、通常のシェーダーと同様です。メインメニューまたは Project ウィンドウのコンテキストメニューから、Assets > Create > Material の順に選択してください。次に、作成したマテリアルを選択します。その Inspector ウィンドウ内の Shader ドロップダウンメニューから Shader Graphs をクリックし、このマテリアルに適用したい Shader Graph シェーダーを選択してください。
Shader Graph シェーダーを右クリックして Create > Material を選択する方法もあります。この方法を用いると、その Shader Graph シェーダーが、新規作成されたマテリアルに自動的に割り当てられます。
マテリアルをシーンに配置
マテリアルへのシェーダーの割り当てが完了したので、これをシーン内のオブジェクトに適用します。マテリアルをシーン内のオブジェクトにドラッグアンドドロップします。または、オブジェクトの Inspector ウィンドウ内の項目 Mesh Renderer > Materials から、このマテリアルを Element に適用します。
プロパティーを使用してグラフを編集
プロパティーを使用してシェーダーの見た目を変更することもできます。プロパティーは、マテリアルの Inspector に表示されるオプションで、これを使用して自分以外の人が Shader Graph を開かずにシェーダー内の設定を変更することができます。
新しくプロパティーを作成するには、ブラックボードの右上の角にある Add (+) ボタンを使用して、作成するプロパティーの種類を選択します。この例では Color を選択します。
これによってブラックボードに新しいプロパティーが追加され、このプロパティーが選択されると Graph Inspector 内の Node Settings タブに以下のオプションが表示されます。
オプション | 説明 |
---|---|
Properties ボタン | プロパティーの名前を編集するには、ブラックボードのボタンを右クリックし、Rename を選択し、新しいプロパティー名を入力してください。プロパティーを削除するには、ボタンを右クリックし、Delete を選択してください。 |
Exposed | このチェックボックスをオンにすると、マテリアルの Inspector にこのプロパティーが表示されます。 |
Reference | C# スクリプト内に表示されるプロパティー名です。Reference の名前を変更するには、新しい文字列を入力してください。 |
Default | プロパティーのデフォルト値です。 |
Mode | プロパティーのモードです。モードの選択肢はプロパティー毎に異なります。Color の場合、Default または HDR を選択できます。 |
Precision | プロパティーのデフォルトの Precision (精度) です。 |
Hybrid Instanced | これは実験的機能です。Hybrid DOTS レンダラーの使用時に、このプロパティーのインスタンス化を可能にします。 |
グラフ内でプロパティーを参照する方法は 2 つあります。
- Blackboard からグラフへプロパティーをドラッグします。
- 右クリックして Create Node を選択します。プロパティーは Properties カテゴリのリストに表示されます。
プロパティーを Base Color ブロックに接続してみましょう。オブジェクトが即時に黒くなります。
グラフを保存して、マテリアルの Inspector に戻ります。プロパティーが Inspector に表示されるようになりました。Inspector 内でプロパティーに加えた全ての変更は、このマテリアルを使用している全てのオブジェクトに反映されます。
この他のチュートリアル
古いチュートリアルは、マスターノードを使用した古い形式の Shader Graph を使用しています。古いチュートリアルを参照すると、Upgrade Guide で、マスターノードから マスタースタック への変換方法に関するヒントが得られます。
Shader Graph を使用してシェーダーを作成する方法についての様々な情報は、以下のブログ記事をご覧ください。
- 動くアート : シェーダーグラフでアニメーション付きマテリアルを視覚的に作成しよう
- シェーダーグラフの更新とサンプルプロジェクト
- シェーダーグラフのカスタムライティング:Unity 2019 でグラフを拡張する
- Unity 2018.3 シェーダーグラフのアップデート:Lit Master ノードの追加
- シェーダーグラフでインタラクティブな頂点エフェクトを作成する
- シェーダーグラフの導入: ビジュアルエディターでシェーダーを作ろう
上記の他に、Unity の YouTube チャンネル で Shader Graph に関する動画チュートリアル を視聴いただけるほか、ユーザーフォーラム では Shader Graph に関する最新情報や投稿を掲載しています。