Unity 6の新しいシェーダーグラフ プロダクション対応シェーダー

Shader Graphチームは、2022 LTSと近日リリース予定のUnity 6でインポート可能な最新サンプルセットのリリースを発表できることを嬉しく思います。このサンプル・セットには、25以上のシェーダー・グラフ・アセットと数十のサブグラフが含まれており、プロジェクトで直接使用することができます。サンプルシェーダーはHDRPとURPの両方で動作します。
このサンプルセットの主な目的は2つある:
- すぐに使えるシェーダーセットを提供することで、ユーザーにシェーダー制作のスタートラインに立ってもらう。
- ユーザーが自分たちのニーズに合わせて構築したり変更したりできるような例を提供する。
また、アセットを組み合わせてリアルな環境を作成する方法を示すステップバイステップのチュートリアルも含まれています。このチュートリアルでは、シェーダーがどのように連動して動作するかを見ることができます。
Production Ready Shadersパックに含まれるコンテンツの内訳は以下の通りです:

URPとHDRPはどちらもコードベースのシェーダーを搭載している。各SRPで最もよく使われるシェーダーはLitと呼ばれる。これを使うプロジェクトでは、ゲーム内のほぼすべてのメッシュに適用されることが多い。LitシェーダーのHDRPバージョンとURPバージョンはどちらもフル機能を備えている。しかし、時にはユーザーが特定の外観を実現するために機能を追加したり、パフォーマンスを最適化するために使用していない機能を削除したいと思うこともある。シェーダーコードに慣れていないユーザーにとって、これは非常に難しいことだ。
そのため、このサンプルパックには、URPとHDRPの両方のLitシェーダのShader Graphバージョンが含まれています。ユーザーは、適切なShader Graph Litシェーダのコピーを作成し、Litシェーダのコードバージョンを参照しているマテリアルをShader Graphバージョンに変更できます。すべてのマテリアル設定は正しく適用され、引き続き機能します。そして、必要に応じてシェーダーグラフのバージョンを変更できるようになる。

デカールを使用すると、シーン内の特定の場所にローカルマテリアルの修正を適用できます。壁に落書きタグを貼ったり、木の下に落ち葉を撒いたりするようなことを考える。しかし、デカールはもっと多くのことに使える。これらの例では、デカールが物を濡らして見せたり、表面に水が流れているように見せたり、水のコースティクスを投影したり、特定の素材を他の物体に混ぜたりしている。

このシェーダーのセットは、草、雑草、下草、小石などの地形に適用されるメッシュ用に作られています。詳しくは、テレインの詳細に関するドキュメントをお読みください。ディテール・メッシュには、シェーダーに対していくつかの特別な要件があります。第一に、地形上で使用されるメッシュの数が多いため、そのシェーダーは可能な限り高速で効率的でなければならない。これは主に、テクスチャサンプルの数を少なく保ち、ピクセルシェーダではなくバーテックスシェーダでより多くの作業を行うことを意味します。第二に、これらのメッシュは特定の距離でレンダリングを停止して飛び出すため、私たちはメッシュをディゾルブする方法を使って、きつい飛び出しを防ぎ、メッシュが取り除かれていることを目立たなくしています。各シェーダでは、メッシュがレンダリングを停止する前に、メッシュをある距離で溶解するために使用される距離マスクが表示されます。

これは、小さな小石から巨石、大きな崖の表面まで、あらゆるものに使えるフル機能のモジュール式岩シェーダーです。用途に応じてオン・オフできる機能を備えている。それぞれがサブグラフにカプセル化されているので、不要な機能を削除するのは簡単だ。モジュールの連鎖で新しい機能を追加することもできる。

サンプルセットには、湖水、池の水、小川の水、滝の水の4種類のウォーターシェーダーが付属しています。それぞれ、反射、屈折、スクロール法線マップを使った表面の波紋、深度フォグが使われている。また、それぞれの水タイプに特有の追加機能も備えている。

このサンプルには、天候に関連したサブグラフ(雨と雪)のフルセットが付属しており、オブジェクト・タイプの要求に応じて組み合わせが可能です。雨のエフェクトには、オブジェクトの上に落ちる雨滴、側面を伝う雨だれ、平らな面に動的に溜まる水たまりなどがあり、雨や風の波紋も含まれます。

このサンプルセットには、水のシェーダー、デカール、岩、地形の詳細メッシュ、その他いくつかのUnity機能を組み合わせて、森の小川環境を作成する方法を示すステップバイステップのチュートリアルも含まれています。このチュートリアルでは、すべてのアセットがどのように組み合わされ、どのようにサンプルパックのアセットを使用して環境を作成できるかを紹介します。
Package Manager を使用して、新しいサンプルアセットをインストールします。
- エディターでパッケージマネージャーを開く。

2.Package Manager ウィンドウでShader Graphパッケージを選択します。

3.サンプルタブを選択します。

4.最後に、Production Readyインポートボタンを選択して、新しいProduction Ready サンプルセットをプロジェクトに取り込みます。
これらの手順が完了すると、ノード参照アセットがプロジェクト内のAssets/Samples/Shader Graph/<あなたのバージョン>/Production Ready Shadersに表示されます。

サンプルをインポートしたら、使用しているレンダーパイプライン(High Definition Render Pipeline(HDRP)、またはUniversal Render Pipeline(URP))に対応するシーンを開いて開始します:
- アセット/サンプル/シェーダーグラフ/<あなたのバージョン>/プロダクション・レディ・シェーダー/シーン/URPProductionReadyShaders
- アセット/サンプル/シェーダーグラフ/<あなたのバージョン>/プロダクション・レディ・シェーダー/シーン/HDRPProductionReadyShaders

シーンを開いたら、階層パネルの一番上にある Shader Graph Feature Samples Showcase アセットを選択し、Inspector のガイドツアーに従ってください。

Samples ドロップダウンボックスを使用してサンプルを選択すると、シーン内の対応する箇所にジャンプできます。

UnityはShader Graphにさらにサンプルを追加し続け、今後数ヶ月の間にさらにいくつかのサンプルパックが登場する予定です。これらのサンプルにより、シェーダーグラフの学習を早め、特定の機能の設定方法を理解し、既存のサブグラフやテンプレートを使用することで新しいシェーダーをより迅速に作成できるようになります。是非、楽しんで使ってみてください。
深く豊かなサンプルセットです。色々試して、是非シェーダー作成プロセスのスピードアップにご活用ください。
シェーダーグラフ・フォーラムでご意見・ご感想をお聞かせください。