コンテンツにスキップ

反射を写り込ませるには

Note

リフレクションプローブの基本的な使い方については、Unityの公式ドキュメント等(こちら)をご覧ください。

VketCloudで使用されるリフレクションプローブは、プリミティブ単位ではなくヒエラルキー上のオブジェクト単位で決定されます。

オブジェクトのMeshRenderer/Probesの項目に羅列されているリフレクションプローブの中で「一番Weightの数値が大きいもの」が、そのオブジェクトが使用するリフレクションプローブのインデックスとして書き出されるのでご注意ください。

このWeight値は、リフレクションプローブとオブジェクトの距離を基準に計算されます。またVketCloudではリフレクションプローブのブレンドはサポートしていません。


リフレクションプローブの書き出し方法

  1. リフレクションプローブを以下のように設定し「Bake」を押します。

    • Type: Baked
    • HDR: チェック無し
    • Resolusion: 任意 (負荷と反射させる面の大きさを考慮して指定してください)

  2. Bakeを押した後に「リフレクションプローブ用」のキューブマップが作成されますのでそちらの設定項目にある「Advanced→Read/Write Enabled」にチェックを入れて『Apply』を押します。

  3. エクスポートしたいオブジェクトの一番親の階層のオブジェクト(VketCloudSample)に「HEOReflectionProbe.cs」をアタッチします。その後インスペクターから「HEOReflectionProbe/ReflectionProbes」にエクスポートしたいリフレクションプローブを任意の数アタッチします。

  4. リフレクションプローブ自体をこれからエクスポートするオブジェクトの子要素にします。(リフレクションプローブではTransformを使用することがあるため一緒にエクスポートする必要があります)

  5. BuildAndRunを実行します。

このHEOファイルをVketCloudで読み込んで表示したサンプルは以下のものになります。

Box Projection(カメラ位置により移動する反射)について

VketCloudでは、UnityのリフレクションプローブのBox Projectionを任意で使用することができます。

  1. Unity上でリフレクションプローブの『Box Projection』にチェックを入れます。(LightMapを使用している場合、押せないことがあります)

  2. リフレクションプローブのオブジェクトを必ずこれからエクスポートするオブジェクトの子要素にします。(Box ProjectionはTransformを使用するため)

  3. 上記の『リフレクションプローブの書き出し方法』に従い、BuildAndRunを実行します。

リフレクションプローブを書き出す際の注意点

  • 大きめのオブジェクト(床・壁・面が巨大なオブジェクト)にリフレクションプローブの反射を使用する場合は、ベイクするキューブマップの解像度を高めに設定してください(2048など)。大きめのオブジェクトに反射させる場合、画質が大幅に低下してしまうためです。

  • Unity上では反射があるのにVketCloud上では真っ黒になってしまうオブジェクトがある場合、そのオブジェクトに作用するリフレクションプローブが『HEOReflectionProbe』のReflectionProbesに登録されているか・そのリフレクションプローブがUnity上で非表示になっていないかを確認してください。

  • リフレクションプローブの個数制限は特にありませんが、リフレクションプローブ1つあたり6枚テクスチャを使用します。個数が増えるほど負荷が掛かるので、負荷と描画のバランスを見て個数を指定してください。なお、UnityのStandard Shaderの使用を想定しています。