Virt A MateはVRでのプレイを前提に作られているで、デスクトップでプレイしていても、一般的なPCゲーほどリッチなグラフィックではありません。
ライティングをしっかりすればリアリティのある表現が可能ですが、Bloomや被写界深度などのエフェクトがかけられないので、表現に限界があります。
しかし今回紹介する「PostMagic」を使えば、いくつかのエフェクトを実現できるようになります。しかも、VRでも機能します。
また、PostMagicをより使いやすく改変したので、そちらも合わせて配布いたします。
目次
PostMagic By MacGruber
MacGruber氏のPlugin「PostMagic」を使うことで、VaMでもいくつかのエフェクトを使えるようになります。
早速、その効果を動画で確認しましょう。
上の動画はなんのエフェクトもかかっていない素のVaMです。
こちらの動画は、PostMagicのエフェクトのいくつかを適用したものです。より表現がリッチになっているのがおわかりいただけるかと思います。
PostMagicはその名の通り、Post Processing(後処理)で映像にエフェクトを加えます。後処理なので、すべてのものに効果が発生します。
Sceneごと設定項目を保存する必要があるので、Scene内の何かしらのAtomにPluginとして読み込みます。人物だとLoad Lookしたときにリセットされてしまうので、それ以外がおすすめです。
VaMの映像表現を向上させる「Reshade」というものがありますが、こちらはVRでの利用できません。
Post Magicで実現できる効果とその使い方
Post Magicで使える各エフェクトについて紹介します。
Post Magicはそれぞれの効果が別のPluginとなっており、Pluginをオンオフして使い分けます。
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のEmptyにフォーカスが合い続けます。動画では顔の位置にAutoFocusPointが配置してあるため、顔にフォーカスが合っています。
AutoFocus WindowCamera
これにチェックが入っていない状態では、自分の視点(CameraRig)とAutoFocusPointの距離で焦点を計算しますが、チェックが入っている場合はWindowCameraのAtomとAutoFocusPointの距離で計算されるようになります。撮影用ですね。
AutoFocus Focal Length
Focal Lengthを近い距離と遠い距離のときとで自動調整します。
AutoFocus Focal Lengthの設定方法
- Auto Focus Focal Lengthのチェックを外します。
- AutoFocusPointに近づいてFocal Lengthの値を調節し、好きな状態で「Set AutoFocus Near」をクリックします。
- AutoFocusPointから離れてFocal Lengthの値を調節し、好きな状態で「Set AutoFocus Far」をクリックします。
- Auto Focus Focal Lengthのチェックを入れます。
なお、Auto Focus Focal Lengthにチェックが入っている間、Focal Lengthのスライダーは効果がなくなります。
AutoFocus AdjustTime
AutoFocusでフォーカスされるまでにかかる時間を設定します。大きいほどゆっくりフォーカスします。
筆者が改変した箇所
AutoFocusPointの自動生成
Sceneの中にAutoFocusPointという名前のEmptyがない場合は追加します。Plugin有効化時に自動的にAutoFocusになります。
AutoFocusPointの自動親子付ショートカット
Gキーを押すと、選択されているControlにAutoFocusPointが移動して、自動的に親子付されます。
完全に重なるとクリックするのが難しくなるので、少しだけズレますが仕様です。また、headControlを選択していた場合、ちょうど目の位置あたりにAutoFocusPointが移動します。
MotionBlur
Motion Blur (モーションブラー) は、Objectがカメラの露出時間よりも速く動くときに起こるボケをシミュレートするエフェクトです。
カメラ自身が移動する際も、画の中のモノは相対的に移動するので、そのような場合でも発生します。
デスクトップのみで機能します。
MotionBlurのプロパティ
ShutterAngle
シャッターの角度を意味し、値が大きいほど露出時間が長くなりエフェクトがより強くなります。
SampleCount
エフェクトの計算に使われるピクセル数で、高いほどハイクオリティになり、負荷が強くなります。
FrameBlending
合成するフレームの強さです。高いほど前のフレームが強く表現され、残像感が強くなります。
Grain

Grain(グレイン)はフィルムの金属中の粒子によって発生するノイズを意味します。プロパティで粒の大きさや色を変えられます。
上の画像は等倍に拡大しないとほとんど効果がわからないかも。
AntiAliasing
アンチエイリアスを設定します。VaMを本体のMSAAの効果を上書きするので、Sceneによって使い分けたい時などに使います。ほかにもTAAが使えますが、MXAAのほうがきれいな場合が多いかと思います。
VRで使用すると画面が分かれて映ってしまいます。現状デスクトップのみで機能します。
筆者が改変した点
cslistファイルを読み込んだとき、本体のMSAAが0になってしまう問題を修復しました。
また、MSAA Overrideに「No Override」を追加しました。
その他ファイル
Maneger.csは全体を管理する親Pluginです。Utils.csは共有コードをまとめたものでPluginではありません。
また、AmbientOcclusionとDitheringは現状きちんと動かないので読み込みから除外しています。
筆者が改変した箇所(全体)
効果のON/OFFショートカット
F5キーを押すことで効果を一時的にOFFにでき、もう一度押すと再適用できます。
各エフェクトで手を食わえたのはDepthOfFieldのみですが、このショートカットを加えるための記述が必要な関係ですべてのファイルが改変されています。
実験的エフェクトを含むcslistを削除
オリジナルのPost Magicには、実験的な(現状では実用性に耐えられない)アンビエントオクルージョンとディザリングのエフェクトも同時に読み込むcslistファイルが同梱されていますが、混乱のもとになるので削除しました。
Pluginのダウンロードと適用方法
ダウンロード
ルートフォルダに解凍してください。同梱のReadMe.txtは削除して構いません。
バージョンは1.18.1.4の時点で作成しました。
適用方法
Scene内のいずれかのAtomのPluginsタブで「MacGruber/PostMagic-Modified/MacGruber_PostMagic-Modified.cslist」を読み込みます。PersonだとLood Lookなどしたときに設定が変わってしまうので、それ以外のものに読み込むのが良いです。Scene Pluginsでも可能です。
Session Pluginsとしても使えますが、Sceneごとに保存できないのでおすすめしません。
再配布に関する注意事項
このデータを利用したSceneを再配布する場合は、必ず以下のことを明記してください。
- オリジナルがMacGruber氏によって作られたこと
- MacGruber氏のPatreonのオリジナル記事へのリンク
- MaFによって改変されていること
- このPluginを更に改変した場合にはその事実とあなたの名前
まとめ
解説は以上です。より没入感のある映像を目指せるので、ぜひ使ってみてください。
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.
Package版
VaM1.19以降に搭載されたPackage機能でインストールできるものを作者が公開しました。
Package版であること以外、以前のバージョンと変わりません。また、筆者による改変は含まれません。
https://www.patreon.com/posts/postmagic-post-3-35109107


アンチエイリアスの項目をONにするとVRモードで正常に映らなくなる(画面が分かれて映る)現象があったので報告します
ご報告ありがとうございます。記事の内容の一部を変更いたしました。
1.19アップデートによるパッケージ管理機能を受けて、パッケージ管理バージョンにしたPostMagic0.3が公開されています。
.varになってAddonPackagesへの追加のみで適用できる・・・はず
***imgurやHubのURLではないため伏せ字されました***/posts/postmagic-post-3-35109107
情報ありがとうございます。追記いたしました。