リフレクションプローブ (Reflection Probe) は、全方向に向かってその周囲の球状のビューをキャプチャするカメラのようなものです。キャプチャしたイメージはその後、反射マテリアルを持つオブジェクトに使用される キューブマップ として保存されます。リフレクションプローブの中には、指定したシーンで使用し、オブジェクトは最も近いプローブによって生成されたキューブマップを使うように設定されているものもあります。その結果、オブジェクトの反射を、その環境と調和した、説得力のある形で変化させる事ができます。
Unity は、プロジェクトに使用するレンダーパイプラインに応じて、リフレクションプローブ Inspector に異なるプロパティを表示します。
プロパティ | 機能 |
---|---|
Type | プローブの設定を Baked、Custom、Realtime のいずれにするかを選択します。Baked を選択すると、リフレクションプローブは、Reflection Probe Static フラグが無効であるゲームオブジェクトをランタイムに キャプチャしません。ベイクしたリフレクションプローブで動的ゲームオブジェクトをキャプチャたい場合は、Custom を選択して Dynamic Objects を有効にします。 |
Dynamic Objects | (Custom タイプのみ) Static とマークされていないオブジェクトを、強制的に映り込みにベイクする。 |
Cubemap | (Custom タイプのみ) カスタム キューブマップ を設定します。 |
Refresh Mode | (Realtime タイプのみ) 実行時にプローブをリフレッシュするか、どうリフレッシュするか、を選択します。 On Awake オプションは、プローブが有効になった最初の 1 回だけ描画します。 Every Frame は、毎フレーム更新時にプローブを描画します。オプションで Time Slicing (以下参照) を使う事ができます。 Via Scripting オプションは、自動更新ではなくユーザースクリプトコマンドからプローブをリフレッシュします。 |
Time Slicing | (Realtime タイプのみ) プローブの更新を配布する時間を設定します。オプションとして All Faces At Once (9 フレーム以上で更新を配布する)、Individual Faces (14 フレーム以上で更新する)、そして No Time Slicing (1 フレームでしか更新が起らない)、があります。詳細に関しては以下を参照してください。 |
Runtime settings | |
Importance | このプローブを、近くにある他のプローブと比較するときの “importance” の度合い。値を高くすると、重要度が上がります。 オブジェクトが2つ以上のプローブの範囲内にいる場合、より重要なプローブが、重要度の低いものより優先されます。この設定は、ブレンド にも影響します。 |
Intensity | シェーダー内でこのプローブのテクスチャに適用される、強度を調整します。 |
Box Projection | これを有効にすると、映り込みの UV マッピングでボックスプロジェクションが可能になります。 |
Box Size | オブジェクトにリフレクションが適用されるボックスのサイズ。 値は、ゲームオブジェクトの Transform によって影響を受けません。 Box Projection にも使用されます。 |
Box Offset | オブジェクトにリフレクションが適用されるボックスの中心。 値は、ゲームオブジェクトの位置に関連します。Box Projection にも使用されます。 |
Cubemap capture settings | |
Resolution | キャプチャーされた映り込み画像の解像度。 |
HDR | これを有効にすると、キューブマップにハイダイナミックレンジでレンダリングが可能になります。この設定によってプローブデータを OpenEXR と PNG 形式の、どちらで保存するか、も決まります。 |
Shadow Distance | プローブがレンダリングされる際に影が描かれる距離。 |
Clear Flags | キューブマップの背景の空白エリアをどう埋めるか選択できます。選択肢は Skybox と Solid Color です。 |
Background | リフレクション(映り込み)キューブマップがレンダリング前にクリアされる際の色。 |
Culling Mask | 指定のレイヤー上のオブジェクトを映り込みに含めるか含めないか選べます。カメラのカリングマスクに関する説明は レイヤー のページを参照してください。 |
Use Occlusion Culling | これを有効にすると、プローブのベイク時にオクルージョンカリングを使用します。 |
Clipping Planes | プローブの “カメラ” の、手前と奥のクリップ面 |
Reflection Probe の Inspector 上部にはボタンが 2 つあり、Size と Probe Origin のプロパティをシーン内で直接編集するために使用されます。左側のボタン (Size) を選択すると、プローブの効果範囲が、サイズを調整するためのハンドルがついた黄色いボックスとしてシーンに表示されます。
右のボタン (Origin) では、ボックスと相対的な元のプローブをドラッグできます。元のプローブのハンドルは Transform 位置のハンドルに似ていますが、2 つの位置は同じではない事に注意してください。また、プローブボックスの回転とスケーリングの操作はできません。
プローブのプロパティ Type では、リフレクション(映り込み)データの生成と更新の方法を設定できます。
反射キューブマップを使うには、オブジェクトの メッシュレンダラー にある Reflection Probes オプションが有効になっていて、かつ反射プローブをサポートしているシェーダーが使われていなくてはなりません。オブジェクトがプローブの Size と Probe Origin プロパティで設定された空間域内を通過したときに、プローブのキューブマップがオブジェクトに適用されます。
オブジェクトの メッシュレンダラー 設定を使う事で、特定のオブジェクトにどの反射プローブを使うか、手動で設定することもできます。そのためには、 メッシュレンダラー の Reflection Probes プロパティからオプションを1つ選択し (Simple、Blend Probes、Blend Probes and Skybox)、設定するプローブをその Anchor Override プロパティ上にドラッグします。
リフレクションプローブの原理や使用方法についての詳細は リフレクションプローブ を参照してください。