Unityでインディゲームを作る!

Unityでのゲーム制作を目指し、それに関わる話題についてのブログ

Unity URP&HDRP解説動画について CEDEC2021『表現で使い分けるURPとHDRP』

 Unity Japanのここ一、二年の動画って良いものばかりなので、いちユーザーとしては有難い限りです。なので、良い動画へのブックマークとして、動画内容についての簡単なまとめを書くエントリーを残していこうと思いました。

 いろいろ書いてはいますが、とりあえず動画さえ見れば、別に読まなくてもいい内容になっています。

 

 

 もはやUnityのレンダーパイプラインとして、お馴染みになりつつあり、進化し続けているUniversal Render Pipeline(以下、URP)High Definition Render Pipeline(以下、HDRP)についての講演です。しかし、どちらかと言うと、URPの方に寄った内容ではあるので、HDRPについて知りたい人はHDRP特化の動画を見た方が良いかもしれません。

 

 改めて、両パイプラインの現在での立ち位置を解説した後に、実践編としてRenderer FeatureやShader Graphの実例を見せてくれます。Custom Functionノードを利用して、独自のシェーダーを作ったり、その応用として・・・

Dessin Shader

デッサン画風シェーダー

このようなデッサン画風にレンダリングするシェーダーを作る、というような内容です。

 

URPとHDRP

 初期はLWRP(Light Weight Render Pipeline)とされていたURPですが、現在ではモバイルに限らない、広い汎用性と高い拡張性、自由度を持ったパイプラインと位置付けられています。実際、フォトリアルでない多くのゲームはこれで十分だと個人的に思います。

 HDRPはフォトリアル志向を強め、より物理的な正しさや現実世界の科学単位とマッチするようなパラメータ設計になっており、良くも悪くも使う側に物理や科学に関する知識が求められるパイプラインになっています。

 

Renderer Featureとは

 URPもHDRPも実際にはScriptable Render Pipelineのテンプレートであり、本質はレンダリング工程をC#スクリプトで自由にカスタマイズできることにあります。この動画ではURP上で、独自のRender Passを追加できるRenderer Featureについて解説しています。

 Render Pipeline Assetに設定してあるForward RendererにRenderer Featureを追加でき、Rendere Feature C#スクリプトを書くことで実現出来ます。

 

デッサンをアルゴリズム化する!

 この動画の最後には、先述したように応用編として、デッサン画風に描画するシェーダーをShader Graphで作成しています。なお、デッサンの線の画像をシームレス化するのにUnity ArtEngineを使用しており、これも参考になりました。

 シェーダーというのは結局、レンダリングのためのコードであり、コードと言うのは処理のための命令文であり、コンピュータに的確に命令するためにはアルゴリズムが必要になります。

 

  • モチーフの観察
  • アタリ、輪郭線の描画
  • 大きな陰影の描き入れ
  • 詳細な陰影と形状の追い込み
  • 仕上げ

 今回面白かったのは、きちんとデッサン指導書を読み込み、デッサンの方法論、手順をしっかりアルゴリズムに落とし込み、それに沿ってShader Graph上でノードを組み合わせて実現していることです。これはものすごく勉強になりました。と同時にシェーダープログラマーは出来そうにないなぁとも思いました(笑)まぁアセットストアでシェーダーはいろいろ売っていますからね!

 

まとめ!

 というわけで、動画ブックマーク記事でした。Scriptable Render Pipelineの売りであるレンダリング処理の追加、改造はぜひ試してみたい機能なので、近々試せたらなぁと思います。