はじめに
の続きの記事です。
今回は、モーションブラー、ライト、レンダリングについての話です。
モーションブラー
Deckard Renderでモーションブラーを有効にするには1作業必要です。Deckard Object Motion Blurコンポーネントを動くオブジェクトに付ける事でモーションブラーが計算されます。Inspectorの設定は弄らなくてOKです。
モーションブラー無効時
モーションブラー有効時
良き感じにモーションブラーが生成されています。
Particle
また、Shuriken(Particle System)の場合はD Particle Motion Blurのコンポーネントを追加することで、モーションブラーが有効化されます。
InspectorのPsへShurikenオブジェクトを設定する必要があります。
Animator
Animatorを使用した動きの場合はDeckard Animator Motion Blurを追加します。こちらも、InspectorのAnimatorを設定する必要があります。
ImageEffectで実装されているモーションブラーとの品質差は下記公式動画が参考になります。
ライト
Deckard RenderはUnityのリアルタイムライトをソフトエリアライトとして扱うことができます。
Unityのエリアライトはベイク専用機能となっているので馴染みが薄い方も居ると思います。簡単に説明しますと、ポイントライトやスポットライトが点光源なのに対し、エリアライトは面光源となっています。現実世界の光源である蛍光灯などは面で発行していますのでエリアライトを使用した方がより現実の近い絵が得られるようになります。
Unity純正のエリアライトは前述の通りベイク専用の機能となっており、かなり重い処理となります。ですがDeckard Renderは非リアルタイムレンダリングなので重い処理でも気にせずに計算できるというわけです。
使い方は既存のRealtimeなライトオブジェクトにDeckard Soft Lightコンポーネントを追加します。Bakedだと正しく動作しませんので注意してください。
Light Sizeが光源の面積となります。
作成したライトオブジェクトの影設定は画像のようにBiasとNormal Biasの値を最小値に設定しておきます。影の解像度なども最高設定にしておくと綺麗な結果が得られます。
標準のスポットライト。
標準のスポットライトにDeckard Renderのソフトエリアライトを有効にしたもの。光の混ざり具合が非常に柔らかくなっています。
Render Quality Settings
ここからレンダリング設定を行います。その1で設定したMainCameraのDeckardRenderコンポーネントの下の方にRENDER QUALITY SETTINGSがあるのでこちらを弄ります。
Use Half Resolution
AfterEffects的に言えば1/2解像度です。解像度を半分にして処理4分の1で済むようにします。オブジェクトの各種設定中にDeckard Renderを有効にする場合は解像度を落として作業した方が良いです。(重くて作業が辛いので)
Editor Quality
Editorで作業中の画質設定です。数値が低いほど品質が下がる代わりにレンダリングが早くなります。
Use Editor Progressive Rendering
これを有効にすることで、Editor画面での品質が「Min Progressive Quality」と「Max Progressive Quality」の間でよしなに設定されます。
Render Quality
最終的に出力する絵の品質設定です。
Quality設定の違い
Quality設定はDoFのボケ部分などに大きく影響があります。
Quality設定:1
Quality設定:80
奥側の壁のボケ具合や、ライトの柔らかさなどが大きく違っています。DCCツールのレンダリング時間と比べたら誤差みたいなものなのでQualityは高めに設定してしまって問題無いでしょう。
Antialiasing bais
項目名通りアンチエイリアスです。処理的にはMSAAのようです。
SuperSample
レンダリングする際に出力解像度より高い解像度でレンダリングしてから縮小することでジャギーなどを目立たせなくする機能です。
最大値で設定すると2倍解像度になるので負荷は高めです。
ANIMATION SETTINGS
出力解像度やフレームレートを設定できます。解像度やフレームレートの項目は解説しなくても良いと思うので割愛します。
Number of frames to Render
何フレーム分レンダリングするかの設定です。ここを設定すると下側のSequence Lengthに分、秒、フレームで尺が表示されます。
Resume fromframe
何フレーム目からレンダリングするかの設定です。例として「Number of frames to Render」を100、「Resume fromframe」を10に設定した場合は、10フレーム目〜100フレームまでの90フレームがレンダリング結果として書き出されます。
H.264 MOVIE EXPORT OPTION
タイトルからH.264の設定に見えますが、連番画像の出力設定も兼ねてます。
ffmpegがあれば、ここのSequence Formatで連番書き出しをしたあと、H.264 BitrateのビットレートでH.264にエンコードされます。
Sequence Format
前述の通り、連番書きだし時の形式です。Jpg、Png、Exrが選べます。
Sequence File Name
設定した名前でフォルダが作成され、その中にレンダリング画像が保存されます。
Capture on Play
有効にしないとレンダリング結果が保存されません。連番画像を保存する場合は忘れずに有効にしましょう。
Encode H.264 video after rendering
有効にすると最後に連番画像をffmpegでH.264に出力してくれます。
書き出しの注意点
Jpgだと問題ないのですが、Pngで書き出すと何もない画像が書き出されます。
何もないように見えますが、ファイル容量が結構あります。怪しいです。
Alphaの値を全て不透明にしてやるとレンダリング画像が出てきます。
これの解決策は謎です。Cameraの背景も不透明にしてるんですがね……要調査です。
またOpenEXRも出力すると完全透明になりますが、こっちは読み込み時に透明度ではなくアルファチャンネルとして読むだけで何もしなければ問題無いです。(データ的には問題あるような気がしますけど使う側としては問題ないっちゃない)
あとがき
これでDeckard Renderの設定から出力まで出来る様になりました。次回は別のシーンで1から構築してみようと思います。またフォーラムでHDRP対応のテスト版も配布されてたので試しに使ってみようと思います。