このたび、ユニバーサルレンダーパイプライン(URP)エフェクトの作り方を解説した Unity の新しいクックブックを無料でダウンロードいただけるようになりました。本クックブックでは、さまざまなゲーム、アートスタイル、プラットフォームに適用できる、人気のビジュアルエフェクトのレシピを 12 個紹介しています。こちらを参考に、Renderer Feature、GPU インスタンシングメッシュ、デカール、Volumetric Materials などを作成してみてください。本クックブックは、ビルトインレンダーパイプラインを使用したプロジェクト開発経験があるクリエイター向けの URP の使用方法に関する情報満載の、『Introduction to the Universal Render Pipeline for advanced Unity creators(ユニバーサルレンダーパイプライン:上級 Unity クリエイター向け)』ガイドと合わせて使用することをお勧めします。
本クックブックでご覧いただけるレシピをざっと紹介します。
Renderer Feature を使用すると、ライティングとエフェクトでさまざまなことを試すことができます。このレシピは、必要最小限のコードのみを使用するステンシルに絞って取り上げています。サンプルプロジェクトに沿って進める場合は、エディターで「Scenes」>「Renderer Features」>「SmallRoom - Stencil」と選択し、サンプルシーンを開きます。
このサンプルプロジェクトは、拡大鏡越しに見るデスクの例を使用します。その目的は、拡大鏡のレンズを変換して、X 線画像のようにデスクを透視できるようにすることです。ここでは、レイヤーマスク、シェーダー、Renderer Feature の組み合わせを使用します。
Renderer Feature は、ドラマチックなカスタムエフェクトを実現したり、ゲームプレイの可能性を広げたりする、優れた方法なのです。
CPU と GPU の間でのデータのやりとりは、レンダーパイプラインの多大なボトルネックとなっています。同じジオメトリとマテリアルを使って何度もレンダリングしなければならないモデルがある場合には、Unity はそれを行うための優れたツールを提供しています。本クックブックのインスタンシングの章では、それらについて説明します。
このレシピは、一面に広がる草原を使用して、インスタンシングの概念について説明します。SRP Batcher、GPU インスタンシング、RenderMeshPrimitives、ComputeBuffer を使用します。
一緒に使用されることの多いトゥーンシェーダーとアウトラインシェーダーは、まったく異なる 2 つの課題を提示してきます。トゥーンシェーダーでは、URP 互換の Lit シェーダーを使用して作られる寒色を受け取り、連続的なグラデーションにするのではなくメリハリを付けた出力にするため、カスタムライティングモデルが必要です。
このレシピの例は、シェーダーグラフを使用します。ただし、シェーダーグラフはカスタムライティングに対応していないので、Main Light と Additional Lights へ直接アクセスするために使用できるノードはありません。代わりに、カスタムノードを利用してこれらにアクセスできます。
全詳細については、トゥーンシェーディングとアウトラインシェーディングのレシピを確認してください。
アンビエントオクルージョンは、Unity 2020.2 から使用できるポストプロセス手法です。このエフェクトは、相互に近接した溝、穴、交差点、サーフェスを暗くします。現実世界では、そういった領域はアンビエントライトが遮断、あるいは遮蔽されがちで、そのために暗く見えています。
URP を使用してリアルタイムのスクリーンスペースアンビエントオクルージョン(SSAO)エフェクトを Renderer Feature として実装する方法をご覧ください。
デカールは、サーフェスにオーバーレイを挿入する方法として便利です。デカールは、シーン中にプレイヤーの操作と連動して弾痕やタイヤの溝など、そういった外観をゲーム環境に加えるためによく使われます。
このレシピに沿って進める場合は、URP Decal Projection のプロパティを調整する、マテリアルを作成することに加え、さらにコードを使用してデカールを追加します。
わかりやすさを考慮して、この水のレシピはシェーダーグラフ内で作成されています。以下の 3 つのステップで構築されます。
このレシピは単純な水のシェーダーの基本を作成するものです。「Caustic Reflections」、「Refraction」、および「Foam」を使用するとさらに効果を高めることができます。
LUT テクスチャの使用は、劇的なカラーグラデーションを生み出す効果的な方法です。このアプローチは多くのゲームに役立ちます。ここで使用するのは 1 つのフィルターですが、必要なステップはすべてのフィルターに当てはまります。
URP でのライティングは、ビルトインレンダーパイプラインを使用する場合と似ています。一番大きな違いは設定を行う場所です。
本クックブックのこの章では、GPU プログレッシブライトマッパー、ライトプローブ、リフレクションプローブを使用して、リアルタイムライティングとシャドウに関連するレシピ(ベイクしたライティングや混合ライティングも含まれる)を扱います。フルコースディナーを用意できるほど十分なレシピを選ぶことができます。
シェーダーと色空間に関して頭に入れておくべきこと:URP でライティングを使用する際には、Lit シェーダーか Simple Lit シェーダーのどちらかを選べますが、その判断は主にアートの観点によります。リアルなレンダリングを求める場合は Lit シェーダーを、より定型化されたレンダリングを求める場合は Simple Lit を使用したほうが期待通りの結果が得られます。
影の設定は、URP で Renderer Data オブジェクトと URP アセットを使用して設定します。これらのアセットを使用して、影の忠実度を定義できます。
このレシピには、メインライトと影の解像度、シャドウカスケード、ライトのベイクなどに関するヒントがあります。
ライトプローブは、開発者が「Window」>「Rendering」>「Lighting」パネルから「Generate Lighting」をクリックしてライティングをベイクしたときに、環境内の特定の位置にライトデータを保存します。これにより、環境内を移動する動的オブジェクトのイルミネーションに、ベイクされたオブジェクトで使用されているライティングの強度が反映されるようになります。暗い場所ではオブジェクトが暗くなり、明るい場所では明るくなります。
こちらのレシピに沿って、編集のスピードアップのためにコードベースのアプローチを使用してライトプローブを配置する方法、シーン内にリフレクションプローブを使用する方法、それらを混在させる方法を身に付けましょう。
スクリーンスペースリフラクションは、レンダーパイプラインによって作成された現在の不透明なテクスチャをソーステクスチャとして、レンダリングされるモデルにピクセルをマップします。この方法とレシピでは、画像のサンプリングに使用される UV を変形させます。
法線マップを使用した、リフラクション(屈折)エフェクトの作成とリフラクションエフェクトの着色の方法について説明します。
これは、レイマーチングを使用して 3D テクスチャをレンダリングするレシピです。Unity でサポートされる 3D テクスチャは、1 つのテクスチャ上のグリッドに配置された画像の配列であり、テクスチャアトラスに似ています。違いは各画像のサイズが同じであることです。3D UV 値を使用して、使用する個々の画像の行と列を定義する UV.Z を含む画像のグリッドからテクセルを取得できます。
3D テクスチャを作成するときに Houdini を使用することもできます。3D テクスチャの代替としては、多層化されたパーリンノイズの使用、または Unity を使ったタイル配置可能なノイズテクスチャの事前ベイクなどがあります。
Unity から上級者向けの多くのリソースが提供されています。このブログ記事の冒頭で説明したように、e ブック『Introduction to the Universal Render Pipeline for advanced Unity creators(ユニバーサルレンダーパイプライン:上級 Unity クリエイター向け)』は、経験を積んだ Unity の開発者やテクニカルアーティストがプロジェクトをビルトインレンダーパイプラインから URP に移行する際に役立つ貴重なガイドです。
すべての上級者向け技術 e ブックおよび記事は、Unity ベストプラクティスハブにあります。e ブックは、上級者向けベストプラクティスのドキュメントページにもあります。
Is this article helpful for you?
Thank you for your feedback!