Volume判定に関わる負荷を減らすための工夫ができる「URP Volume system update frequency」

高橋啓治郎氏(以下、高橋):「URP Volume system update frequency」です。URPだとVolumeはポストプロセスにしか使っていないので、そんなにヘビーには使わないかもしれません。

Volumeを配置した時に、フィジックスのコリジョンを使って今どのVolumeにカメラがかぶっているのかという判定を行うので、ある程度の負荷が生じますが、それを毎フレーム必ず行うのではなく、判定のアップデートを行うタイミングを任意で選べるようになったということです。Volume判定に関わる負荷を減らすための工夫ができるようになったというアップデートです。

大下岳志氏(以下、大下):なるほど、地味によさそう。

高橋:よさそうですが、どうなんだろう。今後Volume systemは今のポストプロセス以外にも使われるようになるはずなので、これも下地作りという感じでしょうか。

大下:確かにそうですね。URPはまだ(ポストプロセスだけ)。

レイヤーに分けてライトの相互関係や影響範囲を絞り込める「Light Layers」

高橋:「URP Global Settings」はこのあとに説明する「Light Layers」の設定に関わるものですね。

大下:そうですね。

高橋:Light Layersの設定は、Render PipelineのアセットごとではなくプロジェクトのGlobalで共有されるので、その設定項目(設定タブ)が増えたということですね。

大下:それだけ聞くと大袈裟な名前に聞こえますね。

高橋:今はこれだけしか項目がないので大したものではありません。Light Layersの対応がうれしい人もいるのかな。個人的にはあまり使わないんですけど。

大下:でも、URPが目指すのは写実的な表現だけではないので、キャラクターごとに演出用のライトを入れたりするケースはけっこうあると思います。プロジェクトによってはすごく使うんじゃないかな。

高橋:確かに。スライドのように、AのライトはDという物体にしか当たらないとか、BのライトはDには当たらずCだけに当たるというように、レイヤーに分けてライトの相互関係やライトの影響範囲を絞り込むことができる機能がLight Layersですね。

大下:今回、Kayaでも使いました。

高橋:あ! 使ったんですね。

大下:女優ライトを当てるために。

高橋:なるほど。やはり使用用途はあるわけですね。

大下:そうですね。

高橋:これは一応、ForwardでもDeferredでも使えるようになっています。確かDeferredで使う時はLight Layersを格納するための32bitバッファが追加されるので、少し負荷が上がりますが、そのビルトインでやっていたことはできるようになったという感じでしょうか。

大下:はい。

GIをリアルタイムに処理する「Enlighten」

高橋:URPのパッケージサンプルの在り処とLens Flaresは大下さんが説明したので飛ばして、「Enlighten」です。リアルタイムGIということですが、リアルタイムGIについてはUnityで紆余曲折ありました。最終的にはEnlightenを使うことになったので、その対応をURP上でも粛々と行っているという感じですね。

大下:はい。

高橋:Appleシリコンやプレステ5の次世代機でもEnlighten on URPが使えるようになったので、今後も安心してEnlightenを使ってください。

カスタマイズできるようになった「SpeedTree」

高橋:ほかには、「SpeedTree 8 vegetation」。僕はSpeedTreeを使っていないので説明が難しいですね。大下さんは?

大下:ここだけでいうと、Terrainの仕組みの中でSpeedTreeを使ったオブジェクトが配置できるようになっています。

高橋:のはず?

大下:のはず。これは確かに自信がない。

高橋:SpeedTree用のサブグラフが用意されたので、これを使えば自分でシェーダーグラフを使ってSpeedTree vegetationをカスタマイズできるという意味だと思います。

大下:そうですね。

高橋:今日のメンバーの中にSpeedTreeを使いこなしている人がいなくて、すみません。

大下:勉強しておきます。

高橋:詳しい説明ができませんが、SpeedTreeを使っている方はアップデート内容をチェックしてブログやSNSで共有してもらえるとありがたいです。感想をお待ちしています。

シェーダーグラフを使う人のお得機能「Override Material properties」

高橋:Shader Graphの「Override Material properties」に関しては、前回のシェーダーグラフ特集の時に大下さんに説明してもらいましたよね。

大下:そうですね。

高橋:(スライドを指して)シェーダーグラフの設定をオンにすると、このあたりの項目がマテリアルの設定の中でいじれるようになるという機能でした。

大下:はい。

高橋:シェーダーグラフを使う人のお得機能です。

大下:そうですね。ただ、シェーダーグラフも種類によるみたいで、今日紹介したdecalは(スライドを指して)このチェックがなかったんです。

高橋:確かに、UniversalでLitの場合なら使えるといった制約もあるようです。これで新機能に関しては網羅したのかな。

大下:はい。

高橋:「Enlightenが戻ってきた」とコメントがありますね。目立つかたちでアナウンスしていないかもしれませんが、リアルタイムGIに関しては今後もEnlightenを使っていくことになったので、よろしくお願いします。かなり紆余曲折ありましたが、戻りました。

大下:そうですね。

パフォーマンスが改良された「SSAO」

高橋:(スライドを指して)この下は「Improvements」。すでにあった機能の改良項目についての解説がいくつか、What's Newの中に挙げられています。最初に挙げられているのは、SSAOの改良ですね。これは、ここに書いてあることのまんまなので、SSAOを使っている方はチェックしてみてください。

Normal mapsによって表現されている凸凹がきちんとSSAOに出てくるようになったり、Particle Systemsのsurfacesにも使えるようになったり、パフォーマンスが上がっているという改良です。すでにURPでSSAOを使っている方は、この変更をチェックしたうえでさらに再調整を行うといいと思います。

大下:はい。

HDRPとURPの使用感を揃えるためUXを改良

高橋:「SPR settings workflow improvements」、長々と説明が書かれていますが、要するにHDRPとURPの使用感がなるべく同じになるように足並みを揃えるという改良ですよね。

大下:UIなどを直しているということですよね。

高橋:そう。個人的には、特にカメラのインスペクタの見た目がかなりHDRPと似てきた、寄せてきたと思います。URPとHDRPを行き来する時に、だいぶこんがらがりにくくなったと感じています。なるべくUXを均そうと調整しているので、よろしくお願いします。

マニアックすぎる「More optimal handling of the depth buffer with MSAA enabled」

高橋:「More optimal handling of the depth buffer with MSAA enabled」はマニアックすぎるので説明しなくていいと思います。MSAAは、使える設定のほかを使うとパフォーマンスが落ちるケース、落ちないケースなど、いろいろ条件が複雑なんです。それを特定のケースでは効率よく動くようにしたという内容なんですが、マニアックすぎて説明が難しいので、今回は割愛させてください。

これはプログラマーが「ふうむ」と唸るような項目です。アーティストのみなさんは、最寄りのプログラマーに「こういうのあったからチェックしといて」と言っておいてください。

「SwapBuffer」も先ほど説明したので飛ばしましょう。

URP 2Dの機能も改良済み

高橋:最後は「URP 2D Renderer improvements」。僕は2DでURPを使ったことがないので説明が難しい。どう説明したらいいんでしょう。

大下:項目も多く見えますよね。私も2Dを深く触っていないので、変なことを言ってしまわないように気をつけたいです。

高橋:すごく細かく項目が挙げられているので、「2DでURPを使っている人の感想求む」という感じかな。

大下:先ほど紹介したScene View Debug Modesにも対応していると最初に書かれています。

高橋:Light Explorerでも2D Lightが使えるようになったとか、それがExperimentalで外れたとか、いろいろ細かく書いてありますね。一度別の機会に、2DのURP特集をやったほうがいいかな。

大下:そうですね。Lightを使った2Dアートワークを以前のUnityセッションでもやったと思うので、そのあたりでもいいと思います。

高橋:そうですね。我々も、2Dのゲームでも安心してURPが使える状態になったことをアピールしていきたいので、我々がちゃんと勉強したあとで、また別の機会に「URPで2Dアプリを作ってみよう」という特集が組めればいいなと思います。

高橋:全部のチェックが終わりました。盛りだくさんの内容でしたね。これらの機能は最新版のUnity2021.2で使えるほか、これからリリースされるLTS版Unity 2021.3 LTSにおいても使用可能です。LTSのリリースを待って移行を検討されているみなさんも、今回の内容を参考にしてほしいなと思います。

エンディングトーク

それではエンディングです。今回のURPの特集、いかがでしたか。コメント欄でも、これがうれしい、あれがうれしいというリアクションをもらいましたが、やはり今回はうれしいアップデートが多かった気がします。

大下:本当にそうですね。

高橋:僕も今まではHDRPを使うことが多くて、本腰を入れてURPに触れる機会は少なかったんですが、今回触れてみて、かなり使えるという印象を受けました。

大下:HDRPは今のところ、写実に寄った機能の充実が進んでいるので、リッチな非リアル系というところでもどんどん使っていけそうな気がします。

高橋:そうですね。また、これからもそういった使い方をどんどん模索していきたいと思います。今回のUnity STATIONはURP特集でした。「次回予告」と書いてありますが、まだ決まっていません。今、映像制作向けのチュートリアル動画を作っています。詳しいことが決まったらUnity公式Twitterアカウントや公式YouTubeチャンネルでお知らせしますので、チャンネル登録、Twitterアカウントのフォローをしてもらえるとありがたいです。よろしくお願いします。

大下:ぜひぜひ。

高橋:それではまた次回お会いしましょう。お疲れさまでした。