BlenderとUnityで作ったものをVR(Oculus  Quest/Oculus Link)で動かします

ブログの女の子を作る #63 URPのポストプロセスでSSAOの影を試す【Unity】

 
前回の記事では、UnityのHDRPをVR試してみました。
 
HDRPではデフォルトでポストプロセスが適用されてることもあり、画面表示がとてもきれい。特にAO(Ambient Occlusion)の影が良い感じでした。URPでも同じような表現ができるなら、URPのままでも良いかも知れませんね。
 
今回は、URPのポストプロセスでどんな見た目になるのかを試してみました。
 
結果としては「URPも良いが、HDRPのAO影の方が好み」でした。



開発環境

・Blender 2.90.1
・Unity 2019.4.20f1(Universal RP 7.4.1)、
 Unity 2020.2.5f1(Universal RP 10.3.1)
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
・Oculus Quest 2(Oculus Link利用)
 

(1) ポストプロセスを有効にする

まずはポストプロセスを有効にしていきます。
 
設定にはこのサイトを参考にさせていただきました。
ありがとうございました!
 
ちなみにですが、「Post Processing」パッケージは使わないんですね。
この記事を見るまでは、インストールが必要だと思ってましたよ。もしかしたら、URPではない以前のシェーダーで使うのかも知れませんね。
 

Global Volumeファイルを作る

まずは、カメラオブジェクトの設定を変更します。
 
OVRCameraRig -> TrackingSpace -> CenterEyeAnchor」のInspectorで「Rendering -> Post Processing」にチェックを入れます。
 
次に、Hierarchyの適当なところで右クリックし、「Volume -> Gloval Volume」を選択します。
 
作成した「Gloval Volume」ファイルをクリックし、Profileの「New」ボタンをクリックします。
 
プロファイルのファイルが自動的に作成・セットされましたね。
 
これで下準備ができました。
 

ポストプロセスを追加する

先ほどの「Gloval Volume」で「Add Override」ボタンをクリックすると、ポストプロセスを追加することができます。
 
とりあえず「Bloom」を追加してみましょう。
 
追加してみましたが、画面の見た目は変わらず。
 
Intensityの値を増やしてみると、Bloomの効果が出ました!
なかなか良い感じの「もや具合」ですね。
 
Intensityの値を増やしすぎると、変に発光する感じになってしまうので注意が必要です。
 

他のポストプロセスも試してみる

せっかくですので、他のポストプロセスも試してみます。
 
まずは「Channel Mixer」。
カメラに色フィルターをかけたような感じになります。
 
次は「Color Adjustments」。
Post Exposure」の値を小さくすると、画面が暗くなりました。
 
など、いろんなポストプロセスがあるんですが、肝心のAO(Ambient Occlusion)が無い!
どこにある?
 


(2) Unity 2020.2にアップグレードする

ネットで調べてみると、AOはUnity 2020.2の新機能として最近リリースされたらしい。そういえば、今のプロジェクトは Unity 2019.4.20f1 でした。
 
まずはプロジェクトのアップグレードが必要なようです。
 

Unity Hubでバージョンを追加する

Unity Hubで「インストール」ボタンをクリックし、「Unity 2020.2.5f1」を選択します。
 
必要なものを選択して、「実行」ボタンをクリックします。
 
Unity 2020.2」が追加されました。
 
アップグレードしたいプロジェクトの「Unity バージョン」で「2020.2.5f1」を選択します。
 

実行すると変換される

あとはいつものようにプロジェクトを実行するだけです。
万が一のことを考えると、バックアップやソース管理ツールなどで、元に戻せる手段を準備しておくのが良いですね。
 
確認ボタンをクリックします。
 
起動時のロゴが変わってますね。
 
URPのマテリアルをアップグレードするらしい。OKボタンを押します。
 
無事にプロジェクトが起動しました。
特にエラーも出てないようです。
 

SSAOを有効化する

これでポストプロセスで「AO」ができるはず。
 
設定はこのサイトを参考にさせていただきました。
ありがとうございました!
 
まず、「Project Settings -> Graphics」で「Scriptable Render Pipeline Settings」で選択されている項目をクリックします。
このプロジェクトでは「UniversalRP-HighQuality」というファイル名でした。
 
次に、画面左のProjectでこのファイルをクリックしてInspectorを表示し、Inspector内の「General -> Renderer List」の項目をクリックします。
このプロジェクトでは「ForwardRenderer」というファイル名でした。
 
最後に、画面左のProjectでこのファイルをクリックしてInspectorを表示すると、やっとAOの設定ができるようになります。
 
Renderer Featuresで「Add Renderer Feature」をクリックし、「Screen Space Ambient Occlusion」を選択します。
 

SSAOができた!

これでポストプロセスとして AO が追加されました!他のポストプロセスとは別の仕組みのようですね。
 
で、既にこの画面ではAOが有効になってるはずですが、いまいち効果が分かりません。。。
 
確認するために、画面を拡大してみました。オフの状態です。
 
AOをオンにすると、地面とコンクリートが接している個所などに黒い影が出ているのが分かります。
効果はあるようですね。
 

他のオブジェクトも見てみる

どれくらい効果があるか、他のオブジェクトでも確認してみましょう。
 
[1-1. AOオフ時]
[1-2. AOオン時]
ドアノブや地面の近くなど、光が当たりにくい個所に影が増えてます。
 
[2-1. AOオフ時]
[2-2. AOオン時]
天井の深みが増してます。
 
[3-1. AOオフ時]
[3-2. AOオン時]
カーテンやベッドの下に影が増えました。
 
[4-1. AOオフ時]
[4-2. AOオン時]
ランタンの鎖部分に良い影が出てますね。
 
どのオブジェクトも良い感じになりました。さすがAOですね。
 

(3) キャラクターにAOの影がつかない!

そして肝心のキャラクターなんですが、どうやらAOの影が付いていないようです。
 

キャラには付かない?

確かにAO影は分かりにくい場合もありますので、設定をオンオフして確認してみます。
 
まずは設定オフ。
 
オンにしてみますが、やはり影は付いていないようです。
 
念のため、「Direct Lighting Strength」や「Radius」の数値を増やして影を強くしてみましたが、結果は変わらず。
 

標準のLitシェーダーならAO影が付いた

試しに別のシェーダーに変えて見ましょう。
 
Unity標準の「Universal Render Pipeline/Lit」シェーダーに変更してみました。
そういえば、HDRPで使ってたのも標準のLitシェーダーでしたね。
 
AO設定をオンにしてみると、影が増えました!
いまの設定では肌が濃いですが、確かに影が増えてます。
 
どうやらこれまで使っていたURPシェーダー(RealToon)では、AO影が適用されないらしい。。。
シェーダー側がAO機能に対応してる必要があるんでしょうか。
 

Litシェーダーを調整するが難しい

仕方なくLitシェーダーを調整してみたのですが、なかなか調整が難しい。肌の色が濃くなってるのがなかなか修正できません。
 
いろいろ試していると、Emissionがオンにして色を調整すれば、とりあえずは以前と同じような色合いにすることはできました。
やや白すぎますが。
 
AOがオフの状態。
 
オンにすると、やっと太ももにAO影を出すことができました。
ですが、少し効果が薄いように思えます。
 
HDRP時の画像と比べてみます。
影の表現としては、こちらの方がリアルで好みです。
 

ライトオフで光るのは困る

もう一つ困ることがありました。
 
ライトを消した時に体が光ります。
Emissionは「オブジェクト表面を光らせる」設定ですので当たり前でしたね。。。
 
オフにすると光らなくなりますが、肌の色調整問題が復活です。
 
もう少し設定を詰めれば調整できると思いますが、それならHDRPを使った方が早い気がしてきましたよ。
 


まとめ 

URPのポストプロセスで「AO」の影を試してみました。
 
なんとか影を出すことはできましたが、現時点では「HDRPのAO影」の方が個人的には好きでした。
他に試してみたいこともありますので、当面はHDRPで進めて行きたいと思います。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

ブログの女の子を作る #62 UnityのHDRPをVRで試してみる

ブログの女の子を作る #64 Magica Clothの静止摩擦でスカートの滑りやすさを確認する【Unity】

最近のコメント

だーしゅ
IT関係のお仕事してます。
VRは楽しいですね。

[当ブログについて]