Version: 2021.2
言語: 日本語
リフレクションプローブ
Using Reflection Probes

リフレクションプローブの種類

リフレクションプローブは、インスペクターの Type プロパティ (詳細については、リフレクションプローブ ページを参照) で選択する 3 つの基本的なタイプがあります。

  • ベイクした (Baked) プローブは、エディター内で生成されたリフレクションキューブマップを格納 (ベイク) します。リフレクションプローブインスペクターの下部の Bake ボタンと Lighting ウィンドウBuild ボタンのいずれかをクリックすることでベイクを始動することができます。Lighting ウィンドウで Auto を有効にすると、シーンビューにオブジェクトを配置するとき、ベイクしたプローブは自動的に更新されます。ベイクしたプローブからのリフレクションは、インスペクターの Reflection Probe Static としてマークしたオブジェクトのみを表示することができます。Reflection Probe Static は、オブジェクトがランタイムに移動しないことを Unity に示します。
  • リアルタイム (Realtime) のプローブは、エディターよりもむしろプレイヤーで、ランタイムにキューブマップをつくります。つまり、リフレクションは静的オブジェクトに限定されず、リアルタイムで更新されシーンの変化を表示します。ただし、プローブのビューをリフレッシュするために、かなりの処理時間がかかります。そのため、慎重に更新を管理することが必要です。Unity では、スクリプトから更新を発生させることができるので、それらを発生させるタイミングを正確に制御することができます。また、プローブの更新に timeslicing を適用すれば、数フレームかけて徐々にプローブを更新することができます。
  • カスタム (Custom) のプローブタイプも使用可能です。これらのプローブを使用すると、ベイクしたプローブと同様に、エディターでビューをベイクできます。しかし、リフレクション用のカスタムキューブマップを使用することもできます。カスタムプローブは、ランタイムに更新することはできません。

上記の 3 タイプの詳細を説明します。

ベイクとカスタムのリフレクションプローブ

A Baked Reflection Probe is one whose reflection cubemap is captured in the Unity editor and stored for subsequent usage in the player (see the Reflection Probes Introduction for further information). Once the capture process is complete, the reflections are “frozen” and so baked probes can’t react to runtime changes in the scene caused by moving objects. However, they come with a much lower processing overhead than Realtime Probes (which do react to changes) and are acceptable for many purposes. For example, if there is only a single moving reflective object then it need only reflect its static surroundings.

ベイクしたプローブの使用

ベイクしたプローブとして動作させるために、プローブの Type プロパティを Baked または Custom に設定する必要があります (カスタムプローブによって提供される付加的な機能については以下を参照してください)。

ベイクしたプローブによってキャプチャされたリフレクションには、Reflection Probe Static としてマークされたシーンオブジェクトのみを加えることができます (オブジェクトのインスペクターの左上にある Static メニューを使用)。さらに、Culling MaskClipping Planes プロパティを使って、リフレクションキューブマップに加えるオブジェクトを絞り込むことができます (プローブは、基本的に 6 つのキューブマップ面のそれぞれを表示するために回転するカメラのようなものです)。

Auto オプションをオンの場合 (Lighting ウィンドウ から)、シーンにオブジェクトを配置すると ベイクしたリフレクションが自動的に更新されます。自動ベイクを使用しない場合は、Reflection Probe インスペクターの Bake ボタンをクリックする必要があります。(Lighting ウィンドウの Build ボタンもプローブの更新を始動します)。

自動または手動のベイクを使うかどうかにかかわらず、エディターで作業を続ける間、ベイク処理は非同期に行われます。ただし、静的オブジェクトを移動したり、それらのマテリアルを変更したり、あるいは、他の方法でその外観を変更すると、ベイク処理が再開されます。

カスタム製のプローブ

デフォルトでは、カスタムプローブはベイクしたプローブと同じように動作しますが、動作を変更する追加のオプションもあります。

カスタムプローブのインスペクターの Dynamic Objects プロパティを使うと、Reflection Probe Static としてマークされていないオブジェクトを、リフレクションキューブマップに加えることができます。ただし、これらのオブジェクトの位置は、ベイクする際、リフレクション内で固定であることに注意してくださ。

Cubemap プロパティを使用すると、プローブに独自のキューブマップを割り当てることができます。したがって、その視点から “見る” ことができるものと完全に独立しています。これを利用して、例えば、リフレクションのためのソースとして、3D モデリングアプリケーションから生成されたスカイボックスやキューブマップを設定することができます。

リアルタイムプローブ

ベイクしたプローブはさまざまな場面で有用であり、ランタイムのパフォーマンスが優れていますが、それらは、プレイヤー内をリアルタイムで更新しないという欠点があります。つまり、オブジェクトのリフレクションが一緒に移動しなくても、オブジェクトはシーン内を移動できます。これがあまりに制約となる場合は、リアルタイム プローブを使うことができます。リアルタイム プローブはランタイムにリフレクションキューブマップを更新します。この効果は、より高い処理オーバーヘッドとなりますが、よりリアルな外観を実現できます。

Using Realtime Probes

プローブがランタイムに更新できるようにするには、Reflection Probe インスペクターで Type プロパティを Realtime に設定する必要があります。(Baked プローブで行うように)、リフレクションをキャプチャするために Reflection Probe Static としてオブジェクトをマークする必要はありません。ただし、カメラにするのと同じように、Culling MaskClipping Planes プロパティを使用し、リフレクションキューブマップからオブジェクトを選択的に除外することができます (プローブは、基本的に 6 つのキューブマップ面のそれぞれを表示するために回転するカメラのようなものです)。

In the editor, real-time probes have much the same workflow as baked probes, although they tend to render more quickly. When the Auto option is switched on (from the Lighting window, the reflections will update automatically as you position objects in the scene. If you are not making use of auto baking then you will need to click the Bake button in the Reflection Probe inspector to update the probes. (The Build button in the Lighting window will also trigger the probes to update.)

自動または手動のベイクを使うかどうかにかかわらず、エディターで作業を続ける間、ベイク処理は非同期に行われます。ただし、静的オブジェクトを移動したり、それらのマテリアルを変更したり、あるいは、他の方法でその外観を変更すると、ベイク処理が再開されます。

Note: Currently, real-time probes will only update their reflections in the Scene view when Reflection Probe Static objects are moved or change their appearance. This means that moving dynamic objects will not cause an update even though those objects appear in the reflection. You should choose the Bake Reflection Probes option from the Build button popup on the Lighting window to update reflections when a dynamic object is changed.

リフレクションプローブ
Using Reflection Probes