ReflectionProbeの設置方法について
このページでは、「ReflectionProbeの入稿の仕方」について、簡単に解説いたします。
1. はじめに
「ReflectionProbe」 は、金属などの滑らかな面に周囲の景色が映る「映り込み」を扱うことができます。
Vket の会場ワールドには、ブースが効果範囲になる ReflectionProbe がすでに設置済みです。特別な設定をすることなく Standard シェーダーなどでの映り込みを実現できます。会場ワールドに ReflectionProbe を委ねる場合は、出展者の側で ReflectionProbe を設置する必要はありません。
一方、映り込む景色を操作したい、独自の背景を使用したい、といった場合には、出展者の側で ブース内に ReflectionProbe を設置して入稿することも可能です。
2. ReflectionProbeを設置する手順
1. 新規作成
ReflectionProbe は、設置したい場所でメニュー GameObject
→ Light
→ Reflection Probe
から新規作成することができます。
Static
, Dynamic
どちらのオブジェクトに入れても構いませんが、Batching static などの static 設定は入稿ルールの通りに設定をお願いします。
2. TypeをCustomに変更する
設置した ReflectionProbe の Type を Custom
にしてください。設定欄が増え、Cubemap を設定することができるようになります。
3. 位置と大きさを設定する
ReflectionProbe は球体を中心に撮影されます。まずは位置を合わせてください。
映り込みはBoxで示された範囲内のメッシュに発生します。
この Box は「軸平行バウンディングボックス(AABB)」であることに注意してください。
会場ワールドに配置されるにあたってブースはY軸回転されますが、この Box はY軸回転されません。
そのため、一般的なワールド作成においては Box で影響範囲を指定するところですが、
Vketへの入稿物では「Box Size を 0 に設定し、対象メッシュの AnchorOverride に「ReflectionProbeそのもの」を設定する方法が便利です。
4. キューブマップを ReflectionProbe に設定する
ReflectionProbe の「Bake」ボタンを押すと、Cubemap が撮影されて保存ダイアログが開きます。(Cubemap がすでに設定されている場合は上書きされます)
この Cubemap は入稿フォルダ内に移動してください。
Bakeボタンを押して撮影するのではなく、他で用意したキューブマップを設定することもできます。その場合は Cubemap 設定欄に直接キューブマップのファイルを指定してください。
この場合、Bake ボタンを押すと用意したキューブマップが上書きされてしまいますのでご注意ください。
以前 (Unity2017頃) は、Type を Custom に切り替えたあとの最初の1回のライトベイクはキューブマップが上書きされてしまうというUnityEditorのバグがあったのですが、現在 (Unity2018以降) は特に発生しないようです。もし上書きされてしまってもいいように、キューブマップのファイルはバックアップを保存しておくとよいと思います。
2. ReflectionProbeはどのように見えるのか?
ここまでがReflectionProbeの設置手順です。ここからは、ReflectionProbe がどのように見えて、どのように調整すればいいかの Tips になります。
ReflectionProbe は、おおよそ「滑らかで、平らで、広い面積のメッシュによく映える」という特徴があります。鏡を想像してもらえるとわかりやすく、鏡の内外での景色の違いが、まるで間違い探しゲームのように明確にわかってしまうという特徴があります。
一方、金属でできたアクセサリーなど、面積が小さく凹凸の大きなメッシュに対しては、映り込みで見た目は顕著に向上しますが、映り込む景色は不明瞭なので間違い探しが始まってしまうことはあまりありません。
このため、映り込ませたいメッシュが「滑らかで、平らで、広い面積のメッシュ」であるか否かで、調整難易度が大きく変わるという特徴があります。
2-1. アクセサリーに対する調整ノウハウ
「滑らかで、平らで、広い面積のメッシュ」ではないのであれば、Cubemap は実際の景色と乖離していてもまず気付かれることはないです。
金属光沢などのルックを最重視し、もっとも良く見える素材を使うと良いです。
キューブマップは PolyHaven などのフリー素材が利用できます。色味がある程度同じである画像を選べば、実際の景色がワールドと相当異なっていたとしても気付かれることはほとんどなく、ルックが向上するメリットのほうが強く現れます。
2-2. 鏡に対する調整ノウハウ
「滑らかで、平らで、広い面積のメッシュ」である場合は、間違い探しが可能なレベルで差異がわかってしまうため、実際の景色に近づけるという調整が必要になります。
たとえば「鏡」「磨かれた床」「ニスの塗られた家具」などのメッシュで必要になってきます。
次章で調整のやり方を解説します。
3. Reflection Probe を実際の景色に合わせるための Tips
3-1. Skybox を調整する
Vket6 の入稿作業用シーンは DefaultSkybox になっています。ReflectionProbe を撮影(つまりBakeボタンを押す) するときのみ一時的に Skybox を変えると良いでしょう。
前述の通り、色合いが似た傾向であるならば全く異なる景色であっても気にならないケースも多いです。
Skyboxを差し替えるのではなく、ブースを包み込む Cube を配置し、その Cube のマテリアルとして VRChat/Panosphere
を利用する、といった手法も可能です。
色合いが似ていればある程度は大丈夫なため、例えばVket6「九蛇之市」であればVket2「絢爛博覧会」やVket3「九龍・三番街」、Vket6「カラヨル」であればVket3「スカイアイランド・マウンテン」などで撮影したパノラマテクスチャも使用できると思います。
3-2. 向きを調整する
VketのブースはY軸回転されてワールドに配置されますが、ReflectionProbe は回転されずにワールド座標系に合わせた方向が維持されてしまいます。
これを解消するには、下見などでブースが配置された向きを確認し、入稿シーンでブースを回転させた状態で ReflectionProbe の「Bake」ボタンを押してベイクしてください。
ベイク後ブースの回転はもとに戻して入稿してください。
3-3. ブレンド率を調整する
あまり知られていないことですが、ReflectionProbe は影響範囲内にあるものが最大2個まで、ブレンドされて映り込みます。
会場ワールド側にReflectionProbeがすでに配置されているため、通常は出展者の側でReflectionProbeを配置しても、会場ワールド側に配置されたReflectionProbeが映り込むことになります。
AnchorOverride
に ReflectionProbe 自体を設定することで、このブレンドを上書きして常に出展者の側で用意されたReflectionProbeを使用することが可能です。(そのため前述の手順では AnchorOverride に ReflectionProbe を指定すると案内させていただきました)
なおこの動作は AnchorOverride に ReflectionProbe を直に指定した場合にのみ有効で、ReflectionProbe と同一座標にある別の GameObject を指定しても無効ですのでご注意ください。