![Hero image](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F6716f87bc34c4c957d0bb6bb61c911e67c6e5697-1280x720.jpg&w=3840&q=75)
Unity 2018.1 は、新しいレベルの制御と柔軟性を実現しました。2018.1 で導入された最もクールな機能の 1 つがシェーダーグラフです。初心者にもプロの方にとっても、シェーダーグラフは、多様なシェーダーを作成するのに役立ちます。流れる溶岩、ドロドロしたヘドロの山、美しい湖、点滅する LED など、さまざまなものが表現できます。
シェーダーグラフを使用すると、シェーダーを視覚的に作成できます。手書きしたコードではなく、グラフネットワーク内にノードを作成して接続します。以下のようなことが可能です。
- 段階的にサーフェスの様子を変化させる
- UV ワープ・UV アニメーションを実行する
- よく使用するイメージの調整操作でオブジェクトの外観を修正する
- ワールド空間での位置、法線、カメラからの距離など、オブジェクトのサーフェスに関する有用な情報に基づいてサーフェスを変更する
- マテリアルのインスペクターにプロパティーを公開しているため、シーンのコンテキストでシェーダーの見た目を素早く調整できる
- サブグラフを作成して、複数のグラフとユーザーの間でノードネットワークを共有する
- C# と HLSL を使用して独自のカスタムシェーダーグラフノードを作成する
グラフのフレームワークは変更を即座にフィードバックするので、まだ慣れていないユーザーでも簡単にシェーダーを作ってみることができます。
シェーダーグラフがベータ版で利用可能になりました。まず、サンプルプロジェクトをダウンロードし、Unity 2018.1 ベータ版で開いて使用を開始してください。Package Manager を使用してシェーダーグラフを入手することもできます。
シェーダーグラフは、Unity 2018.1 のもう 1 つの機能、スクリプタブルレンダーパイプライン(SRP)で動作するように設計されています。そのため、ビルトインの Unity レンダラーでは使用できません。シェーダーグラフは以下のレンダーパイプラインをサポートします。
- 高画質レンダーパイプライン
- 軽量レンダーパイプライン
また、作成したカスタム SRP のシェーダーをエクスポートするためにシステムを拡張することも可能です。
![](/_next/image?url=https%3A%2F%2Fcdn.sanity.io%2Fimages%2Ffuvbjjlp%2Fproduction%2F312297c09758f47e09071aa01a954d0c1a724751-1999x806.png&w=3840&q=75)
Unity 2018.1 では、シェーダーグラフは通常のシェーダーとして表示されます。シェーダーグラフを作成するには、Create メニューをクリックし、ドロップダウンから「Shader Graph」を選択します。この操作で、プロジェクトにシェーダーグラフアセットが作成されます。このアセットをダブルクリックするか、「Open」ボタン(または「Open Shader Editor」ボタン)を選択して Shader Graph 編集ウィンドウを表示します。
このシェーダーグラフを開くと、マスターノードだけがあります。ノードをこのマスターノードに接続してサーフェスの外観を構築していきます。その基になるマテリアルモデルの詳細については、Unity スタンダードシェーダーのドキュメントを参照してください。
デフォルト値を変更することによって素早くサーフェスを編集することができます。しかし、もっとすごいことができるんです。それは、テクスチャや複雑なインタラクションを加えることが可能だということです。ノードを加えるには、単に右クリックして「Create Node」を選択します。
シェーダーグラフ内の各ノードにはいくつかの入力フィールドがあります。デフォルト値が入力されているので、好みの値にカスタマイズします。
テクスチャ(またはその他のアセット)を加えることもとても簡単です。アセットタイプにあったノードを作成して接続するだけです。
シェーダーグラフによるシェーダーは、Unity の通常のシェーダとよく似ています。インスペクター内のオブジェクトを右クリックし、「Create Material」を選択します。同じシェーダーから複数のマテリアルを作成することができます。
シェーダーのパラメーターに簡単にアクセスできるので、シェーダーから作成した各マテリアルでパラメーターを上書きすることができます。シェーダーグラフで、任意の変数ノードを右クリックし、「Convert to Property」を選択します。これらのアクセス可能なパラメーターは、シェーダーで作成した各マテリアルのインスペクターに表示されます。
Unity は現在シェーダーグラフのライブトレーニングセッションを予定しています。イベントのページと Twitter と YouTube からの情報をお見逃しなく。もし GDC に行かれるなら、シェーダーグラフに関連した講演を楽しみにしていてください。こちらにサインアップすると、常に最新情報が得られます。
また、GitHub で Andy Touch による Shader Graph Example Library を参考に研究されることをお勧めします。
質問は大歓迎です。是非、フォーラムのこちらのスレッド に参加して質問をお寄せください。そこで様々な質問にお答えします。