Unity用非リアルタイム向けなDeckard Renderの話、その1

2019年3月10日UnityDeckardRender, PPS

はじめに

先日、Unityで非リアルタイムな事を条件に被写界深度やモーションブラーなどを高品質にレンダリングできるDeckard RenderがAssetStoreで公開されました。

Unityを映像制作に使うゆにりあシリーズの読者の皆様には最高に相性が良いAssetだと思うので早速購入して使ってみました。

使用ソフトは下記の通りです。

ソフトウェア バージョン
Unity 2018.3.4
Deckard Render 0.99b

その1では導入方法からカメラの設定方法までを解説します。

注意点

このAssetを使う上での注意点がいくつかあります。

  • 画像や映像の書き出しに向けたAssetである
  • Post processing Stackはv1が推奨されている
  • ディスクリートGPU推奨

まず、1点目の「画像や映像の書き出しに向けたAssetである」ですが、このAssetはかなり負荷の高いAssetです。化け物級のコンピュータを用意すればリアルタイムで出るかもしれませんが、基本的には非リアルタイムレンダリングするという認識での作成が必要です。

負荷が高いAssetといっても、DCCツールのレイトレースレンダラーよりは当然軽いですが。

2点目の「Post processing Stackはv1が推奨されている」ですが、サンプルのSceneはPPSv1が使用されています。SSR(Screen Space Reflection)のクオリティが高かったのが理由とのことです。そのため推奨ではあるが、別にPPSv2を使っても問題はなさそうです。

最後の「ディスクリートGPU推奨」ですが、AssetStoreのページに書いてあります。負荷が高いのでそりゃそうだという感じですが、iGPUでも動作はします。

デモを動かす

インポートと各種設定

Deckard Renderに内包されているデモSceneを動かしたいと思います。Deckard Render自体は普通にAssetStoreからインポートすればOKです。

そしてPPSv1が必要なのですが、AssetStoreにあるバージョンではUnity2018ではErrorが出てしまうのでGitHubから最新の物をDLします。

PPSv1は既に非推奨になっているので、今後の事を考えるとPPSv2を使用した方が良いと思います。今回はデモ動作のためだけにPPSv1をインポートします。

PPSv1をDLしたら中にある「PostProcessing」フォルダをそのままAssets直下にコピーすればOKです。


Deckard Renderはリニアカラースペースで動作させる必要があるので、UnityのPlayerSettingsでカラースペースをリニアに変更してください。

Deckard Renderの結果を見てみる

Deckard Renderの威力とやら見せて貰おう、ということでDemo Sceneを開きます。

Deckard Renderの主要な設定はDemo SceneのMain CameraのComponentで設定されています。(ちなみに、カラーモードをリニアにしてなかった場合はここのComponentで警告が出て変更できるようになっています)

そしてゲームビューを見てみると……

めっさ綺麗や……

これは期待が高まります。

Deckard Renderの設定方法

Componentの順番

Deckard Renderを使用する上で大事なのがComponentの順番です。

カメラ関連の諸々Componentの下に「Deckard Preprocess」Componentを配置し、その下にImage Effect群(ポスプロ群)を配置する。その最後に「Deckard Render」のComponentを配置します。

つまり、「Deckard Preprocess」と「Deckard Render」でImageEffectを挟み込みます。

こうする事で任意のImageEffectを自由に配置することができます。

ImageEffect

例ではPPSv1が挟み込まれています。(PPSv1についての詳細は「ゆにりあ Vol.1」を買ってね!)

ImageEffectでよく使う、被写界深度(Depth of Field)とモーションブラーは使ってはいけません。Deckard Renderで非常に高品質な被写界深度とモーションブラーを掛けることができるためです。

PPS系やその他多機能ImageEffect系を使用する場合は上記2つのEffectは無効にしましょう。

Physical Camera Control

ここ最近(?)のRenderer系よろしく、Deckard Renderも現実のカメラ設定と同じようなパラメータで設定を追い込んでいきます。

Focal Length

焦点距離の設定です。スライダーの数値はUnity標準のField of Viewの値で、左側にmmで焦点距離が記載されています。この値は後述のSensor Sizeの設定により影響されます。

つまり、現実と全く同じですね。デフォルトでは35mmフィルムです。

Aperture

絞り値(F値)の設定です。現実同様、小さい値だとよくボケます。注意点としてここでの設定はボケ味のみ設定され露出には影響しません。そのためAperture設定では明るくしたり暗くしたり等できませんので現実世界とは違います。

Focus関連

Deckard Renderのキモであるフォーカス関係の設定です。「Show focus fields」を有効にすることで、作業がとてもしやすくなるので慣れるまでは有効にすることをお勧めします。

デフォルト設定では手動設定になっているので「Focal Distance」の設定でどこにフォーカスするかを設定します。

「Use Auto Focus」を有効にすると画面の中心にあるオブジェクトにフォーカスが合います。(コライダー必須です。)

「Focus On」にオブジェクトを入れる事で、そのオブジェクトにフォーカスを合わせることもできます。

基本的には手動設定でしたほうがいい絵になると思います。

Sensor Size

センサーサイズの設定です。前述のFocal Length設定に影響します。基本的に欲しい物は用意されている印象です。(S9はGalaxy S9です。)Customで自由に設定もできるので好きな物を選べば良いと思います。

Anamorphic ratio

アナモルフィックレンズの比率設定です。アナモルフィックレンズについてはこのWikipediaを参照。

基本的には1で設定し、映画っぽい雰囲気を出したい場合はアス比に合わせて任意の値をいれればそれっぽくなるかと。

Film Response Type

カラーグレーディング設定です。Logとかで撮影したデータに適用するアレです。特にこの方向に寄せたいという希望が無ければ標準規格である「Rec709」を選択するのが安牌だと思います。

Film Color Amount

Film Response Typeの適用量です。基本1でいいんじゃないかなぁって思います。0にするならFilm Response Typeの設定をNeutralにするほうが分かりやすいかと。

Shutter Angle

   

シャッター角度の設定です。設定のしかたはPPSと同じです。

一眼レフなどの静止画カメラではシャッタースピードを秒単位で設定しますが、シネマカメラなどは回転シャッターなので角度で設定します。

180度設定が基本で、小さくするとモーションブラーが抑えめになり、大きくすると強めになります。

Exposure

露出設定です。低くすると暗く、高くすると明るくなります。現実のカメラと違ってシャッター角度やF値設定では変わらずに明るさのみここで一元管理できます。現実より便利!

Film Noise

そのまんま、フィルムノイズを再現出来ます。この設定はドキュメントに載っておらず、デモSceneでもPPSv1の方でノイズ出してたりします。

見た所、明るい部分も暗い部分も平等にノイズが乗っちゃってるのでPPS使って「Luminance Contribution」の値上げてノイズ出して上げた方が綺麗かなーと個人的には思います。

Post Sharpen

シャープエフェクトです。DoFやモーションブラーがDeckard Render側で計算されるのでシャープエフェクトを最後に載せたければここで設定する必要があります。

Letterbox

上下の黒帯設定です。Deckard Renderのクオリティなら完パケをUnityで出すこともあるとは思いますが、個人的には黒帯入れずに書き出して納品版エンコするときに足す方がいいかなと思ったり思わなかったり。

21:9の映像作って黒帯入れて16:9で出力するよりも、21:9で出しておいて納品時に指定解像度で黒帯版出力したほうが潰しが効くじゃないですか。

ただ、途中で黒帯入れるような演出をやる場合はここでの設定が必須です。PPS側などで黒帯を出した場合、Deckard Render側の処理影響を受けてしまう可能性がありますので。

あとがき

ここまで導入方法とカメラのパラメータについて解説してきました。

その2ではライト、モーションブラー、書き出し関連の設定について解説していきたいと思います。