【プラグイン配布】Virt A Mateのグラフィックを向上させる「PostMagic」の使い方

Virt A MateはVRでのプレイを前提に作られているで、デスクトップでプレイしていても、一般的なPCゲーほど立地なグラフィックではありません。

ライティングをしっかりすればリアリティのある表現が可能ですが、Bloomや被写界深度などのエフェクトがかけられないので、表現に限界があります。

しかし今回紹介する「PostMagic」を使えば、いくつかのエフェクトを実現できるようになります。しかも、VRでも機能します。

また、PostMagicをより使いやすく改変したので、そちらも合わせて配布いたします。

PostMagic By MacGruber

MacGruber氏のプラグイン「PostMagic」を使うことで、VaMでもいくつかのエフェクトを使えるようになります。

早速、その効果を動画で確認しましょう。

上の動画はなんのエフェクトもかかっていない素のVaMです。

こちらの動画は、PostMagicのエフェクトのいくつかを適用したものです。より表現がリッチになっているのがおわかりいただけるかと思います。

PostMagicはその名の通り、Post Processing(後処理)で映像にエフェクトを加えます。後処理なので、メインメニュー以外のすべてのものに効果が発生します。(ノード等)

シーンごと設定項目を保存する必要があるので、セッション内の何かしらのAtomにプラグインとして読み込みます。人物だとLoad Lookしたときにリセットされてしまうので、それ以外がおすすめです。

VaMの映像表現を向上させるModificationに、「Reshade」というものがありますが、こちらはVRでの利用できません。

Post Magicで実現できる効果とその使い方

Post Magicで使える各エフェクトについて紹介します。

Post Magicはそれぞれの効果が別のプラグインとなっており、プラグインをオンオフして使い分けます。

UserLUT

LUT(ルックアップテクスチャ)は、映像の色味を変更するためのエフェクトです。スマホのカメラアプリのフィルターみたいなものです。

Lutファイルでフィルターの種類(セピア調や白黒など)を変更できます。最初に読み込まれているファイルはとくに効果がないので、Browse UserLUTから読み込む必要があります。

Browse UserLUTで開くフォルダのうち、Lens Dirtというフォルダは後述のエフェクトで使うものなのでLUTとしては使えません。

Vignette

Vignette(ビネット)とは、画の周辺が中央より暗い状態のことを指します。

本来はカメラへの光の入射角の関係や、レンズのアクセサリの使い方によって、周辺光量が低下してしまう現象です。ただ、ちょっと古いカメラを使ったようなノスタルジックな印象を与えるほか、人間の肉眼にもなんとなく近いイメージなので、あえて好んで使う場合があります。

こちらもアプリのフィルターによくありますね。

ChromaticAberration

ChromaticAberration(色収差)とは、光を通す物体(レンズ)は、光の色(波長)によって屈折率が異なるために、像がズレる現象のことを指します。

光学的に避けられない問題なのですが、高級なレンズはこのズレを抑えるために様々な工夫がなされます。CGではカメラの欠陥をあえて発生させることでリアルに近づけるわけですね。

画面の端ほどエフェクトが強くなり歪みます。

Bloom

Bloom(ブルーム)はカメラや人の目が光源から受ける影響を再現するエフェクトです。明るい箇所から光が溢れるような効果が得られます。

動画ではBloomのON/OFFを交互に繰り返しています。

Bloomのプロパティ

Intensity

フィルターの適用量です。高いほど強く、明るくなります。

Threshold

効果が適用される輝度のしきい値を設定します。これより低い部分には効果が適用されません。

Soft Knee

Thresholdの効きめの滑らかさを設定します。Soft Knee:0だとThresholdを超えない輝度では効果がゼロになりますが、Soft Knee:1だとしきい値周辺の効果の効き目がゆるやかになります。

Radius

エフェクトが有効な範囲を変更します。低いと明るい(しきい値を超えた輝度が超えている)範囲のごく周辺だけ効果がかかり、高いと周辺広範囲に効果がかかります。

適度に高いほうが自然なエフェクトになりますが、負荷に影響します。

Anti Flicker

狭い箇所がしきい値を超えたり超えなかったりしているときに、Bloomの効果が掛かったり掛からなかったりしてチカチカしてしまうのを抑えます。

LensDirt Intensity

レンズの汚れや空気中のホコリの層を一枚のテクスチャーで表現しBloomに影響させます。

Browse LensDirt Textureボタンで使用するテクスチャを選択できます。Lens Dirtフォルダ内に利用できるテクスチャが入っており、追加可能です。

DepthOfField

Depth Of Field(被写界深度)は、ピント(焦点)合う範囲を意味します。このエフェクトによって、ボケをシミュレートできます。

焦点が合う範囲が狭い/広いことを被写界深度が浅い/深いと表現します。

VRでも機能しますが使ってもしょうがないので、デスクトップ用といってもいいかもしれません。

DepthOfFieldのプロパティ

Focus Distance

焦点までの距離を設定します。

Auto Focus時には機能しません。

Aperture

大きいほど被写界深度が深くなります。カメラの口径をシミュレートしていますが、明るさには影響しません。

Focal Length

大きいほど被写界深度が浅くなります。フィルムとレンズの距離を焦点していますが、画角には影響しません。

Auto Focal Length適用時には機能しません。

Use Camera FOV

カメラのFOV設定を元に自動的に焦点距離を計算します。

FOVが低いほど、遠くから被写体を移すことになり、焦点の距離が変わるためボケの量が変わりますが、Use Camera FOVを使えば、画角内で被写体の大きさを揃えたときのボケ感がFOVをまたいで一定になります。

非推奨とのことですが、結構約立ちます。光学的には焦点距離が大きいほどボケが大きくなるわけですから、「FOVが低いのにFOV高いときとボケ具合一緒なんてけしからん!」ってことでしょうか。

Kernel Size

ボケの最大半径を決定します。負荷に影響します。

AutoFocus

AutoFocusPointというUIDのAtomにフォーカスが合い続けます。動画では顔のいちにAutoFocusPointが配置してあるため、顔にフォーカスが合っています。

AutoFocus WindowCamera

これにチェックが入っていない状態では、自分の視点(CameraRig)とAutoFocusPointの距離で焦点を計算しますが、チェックが入っている場合はWindowCameraのAtomとAutoFocusPointの距離で計算されるようになります。撮影用ですね。

AutoFocus Focal Length

Focal Lengthを近い距離と遠い距離のときとで自動調整します。

AutoFocus Focal Lengthの設定方法
  1. Auto Focus Focal Lengthのチェックを外します。
  2. AutoFocusPointに近づいてFocal Lengthの値を調節し、好きな状態で「Set AutoFocus Near」をクリックします。
  3. AutoFocusPointから離れてFocal Lengthの値を調節し、好きな状態で「Set AutoFocus Far」をクリックします。
  4. Auto Focus Focal Lengthのチェックを入れます。

なお、Auto Focus Focal Lengthにチェックが入っている間、Focal Lengthのスライダーは効果がなくなります。

AutoFocus AdjustTime

AutoFocusでフォーカスされるまでにかかる時間を設定します。大きいほどゆっくりフォーカスします。

筆者が改変した箇所

AutoFocusPointの自動生成

シーンの中にAutoFocusPointという名前のEmpty Atomがない場合は追加します。プラグイン有効化時に自動的にAutoFocusになります。

AutoFocusPointの自動親子付ショートカット

Gキーを押すと、選択されているノード(Control)にAutoFocusPointが移動して、自動的に親子付されます。

完全に重なるとクリックするのが難しくなるので、少しだけズレますが仕様です。また、人物AtomのheadControlを選択していた場合、ちょうど目の位置あたりにAutoFocusPointがいどうします。

MotionBlur

Motion Blur (モーションブラー) は、オブジェクトがカメラの露出時間よりも速く動くときに起こるボケをシミュレートするエフェクトです。

カメラ自身が移動する際も、画の中のモノは相対的に移動するので、そのような場合でも発生します。

デスクトップのみで機能します。

MotionBlurのプロパティ

ShutterAngle

シャッターの角度を意味し、値が大きいほど露出時間が長くなりエフェクトがより強くなります。

SampleCount

エフェクトの計算に使われるピクセル数で、高いほどハイクオリティになり、負荷が強くなります。

FrameBlending

合成するフレームの強さです。高いほど前のフレームが強く表現され、残像感が強くなります。

Grain

Grain(グレイン)はフィルムの金属中の粒子によって発生するノイズを意味します。プロパティで粒の大きさや色を変えられます。

上の画像は等倍に拡大しないとほとんど効果がわからないかも。

AntiAliasing

アンチエイリアスを設定します。VaMを本体のMSAAの効果を上書きするので、シーンによって使い分けたい時などに使います。ほかにもTAAが使えますが、MXAAのほうがきれいな場合が多いかと思います。

VRで使用すると画面が分かれて映ってしまいます。現状デスクトップのみで機能します。

筆者が改変した点

cslistファイルを読み込んだとき、本体のMSAAが0になってしまう問題を修復しました。

また、MSAA Overrideに「No Override」を追加しました。

その他ファイル

Maneger.csは全体を管理する親プラグインです。Utils.csは共有コードをまとめたものでプラグインではありません。

また、AmbientOcclusionとDitheringは現状きちんと動かないので読み込みから除外しています。

筆者が改変した箇所(全体)

効果のON/OFFショートカット

F5キーを押すことで効果を一時的にOFFにでき、もう一度押すと再適用できます。

各エフェクトで手を食わえたのはDepthOfFieldのみですが、このショートカットを加えるための記述が必要な関係ですべてのファイルが改変されています。

実験的エフェクトを含むcslistを削除

オリジナルのPost Magicには、実験的な(現状では実用性に耐えられない)アンビエントオクルージョンとディザリングのエフェクトも同時に読み込むcslistファイルが同梱されていますが、混乱のもとになるので削除しました。

プラグインのダウンロードと適用方法

ダウンロード

Google Drive

VaMルートフォルダに解凍してください。同梱のReadMe.txtは削除して構いません。

バージョンは1.18.1.4の時点で作成しました。

適用方法

シーン内のいずれかのAtomのPluginsタブで「MacGruber/PostMagic-Modified/MacGruber_PostMagic-Modified.cslist」を読み込みます。人AtomだとLood Lookなどしたときに設定が変わってしまうので、それ以外のものに読み込むのが良いです。

Session Pluginsとしても使えますが、シーンごとに保存できないのでおすすめしません。

再配布に関する注意事項

このデータを利用したシーンを再配布する場合は、必ず以下のことを明記してください。

  • オリジナルがMacGruber氏によって作られたこと
  • MacGruber氏のPatreonのオリジナル記事へのリンク
  • MaFによって改変されていること
  • このプラグインを更に改変した場合にはその事実とあなたの名前

まとめ

VaMにポストエフェクトがやってきたのは嬉しい限りです。

はやくアンビエントオクルージョンも正しく機能するようになることを期待しましょう。

Credits

PostMagic was Created By MacGruber.

Original Plugin: https://www.patreon.com/posts/postmagic-post-2-30701134

Patreon: https://www.patreon.com/MacGruber_Laboratory

Thank you for Special Plugins.