Help us understand the problem. What is going on with this article?

UnityでLWRP+PostProcessingStackをVRで使う際の注意点

はじめに

こんにちは、最近ゲームエフェクトの勉強をしているZeniZeniです。
ゲームエフェクトの見栄えをよくするためにはPostProcessは非常に便利なんですが、LWRP(Light Weight Render Pipeline)と併用して、かつVRでやりたい!となると、かなりつまづくところが多いです。
この記事では、LWRP+PostProcessingStackをVRで使う場合の設定方法と注意点を説明します。

動作環境

まず、現行はどのバージョンでもAndroidではLWRP+PostProcessingStackをVRで使うことはできないようなので、OculusQuestでやりたいと思っている方々はUnityの正式対応を待ちましょう。
その他のPCVRなども、Unity2019以上でないと動作はしません。
bandicam 2019-09-09 17-53-05-437.jpg
たとえsceneビューや(実行前の)Gameビューでポストエフェクトがかかっていたとしても、実行中にVR画面から見た映像にはポストエフェクトはかかりません。VRではない(CameraのTarget EyeがNoneになっている)カメラならちゃんと映ります。

またUnity2018以下のLWRP対応したプロジェクトを、Unity2019.1以上のバージョンにアップグレードすると、大量のエラーが発生しどうしようもなかったので、おとなしくUnity2019.xで新規に作成するのが良いと思います。

今回は

  • Unity 2019.1.14f1
  • Lightweight RP version 5.7.2

でやっていきます。

初期設定

まず新規プロジェクトを作成します。versionは2019.1.14f1。TemplateはVR Lightweight RPです。
bandicam 2019-09-09 19-44-21-714.jpg
そして最初に開かれる下の画像のようなSampleSceneでは、もうすでにLWRP+PostProcessingStackをVRで見ることができます。
Post Process VolumeのBloomの値を変えたりして試してみてください。
bandicam 2019-09-09 20-48-15-642.jpg

注意点

Color Gradingがうまくいかない

ポストエフェクトのColor Gradingは明るさと色調の調整を行うエフェクトですが、HDR(High Dinamic Range)設定をちゃんとしてやらないとうまく動作しません。詳しい説明は【Unite 2017 Tokyo】ゲームの見た目も盛ったら変わる!!!!ヤバい!!ポストプロセス!!入門!!!!!!!!! を見てみてください。

まずEdit>Project Settings>GraphicsScriptable Render Pipeline Settingsを確認しましょう。
bandicam 2019-09-09 20-03-59-714.jpg
そこで設定されているLWRP assetを選択します。
そこのQualityのHDRのチェックボックスを付けておかないと、HDRが動作しません。
ここでは影の細かい設定なんかも行えます。
bandicam 2019-09-09 20-06-31-375.jpg
またCameraのHDR設定もOffになっていると使えないので、Use Pipeline Settingsにしておきましょう。
bandicam 2019-09-09 20-09-17-778.jpg

一部動作しないエフェクトがある

こちらのPost Processing in the Lightweight Render Pipelineで説明されていますが、以下のエフェクトはLWRP環境では使えません。

  • Motion Blurや一時的なアンチエイリアスを含むモーションベクトルベースのエフェクト
  • Screen Space Reflectionsといった高価なレンダリング計算が必要なエフェクト
  • ターゲットハードウェアがCompute Shaderをサポートしていない場合は Auto-exposureやAmbient Occlusion (MSVO)、Debug Monitorsといったエフェクト

VR環境ではVignetteエフェクトをつけるとよい

上述したPost Processing in the Lightweight Render Pipelineで、VRアプリでは、特定のポストエフェクトが吐き気と見当識障害を引き起こす可能性があります。 テンポの速いゲームまたは高速ゲームで乗り物酔いを軽減するために、UnityではVRにVignette効果を使用することをお勧めします。と説明されています。
Vignetteとはなんぞやと思うかもしれませんが、要は視界の縁まわりを少し暗くするエフェクトのことです。Unityのドキュメントにわかりやすい説明が書いてあります。

その他Tips

LWRP対応していないアセットを一括でLWRP対応させる。

LWRPに対応していない(LWRPのShaderを使っていない)マテリアルは真っピンクで表示されてしまいます。これはEdit>Render Pipeline>Upgrade Project Materials To LightweightRP Materialsで一括でいい感じに変更してくれます。

開発、執筆にあたり、下記のサイト様を参考、引用させていただきました。

  1. Unity Blog 2019.1リリース
  2. Post Processing in the Lightweight Render Pipeline
  3. テラシュールブログ -【Unity】既存のプロジェクトにLightweight RenderPipelineを導入する
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした