Version: Unity 6.0 (6000.0)
言語 : 日本語
リフレクションプローブの概要
リフレクションプローブの配置

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

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

  • ベイクしたプローブは、エディター内で生成されたリフレクションキューブマップ (“baked”) を格納します。リフレクションプローブの Inspector の下部にある Bake ボタンまたは Lighting ウィンドウGenerate Lighting ボタンのいずれかをクリックすることでベイクをトリガーすることができます。ベイクしたプローブからのリフレクションは、Inspector の Reflection Probe Static としてマークされたオブジェクトのみを表示することができます。これは、オブジェクトがランタイムに移動しないことを Unity に示します。
  • リアルタイムプローブは、ランタイムにエディターではなくプレイヤー内にキューブマップを作成します。つまり、リフレクションは静的オブジェクトに限定されず、シーンの変化を示すためにリアルタイムで更新できますただし、プローブのビューを更新するにはかなりの処理時間を要するため、更新を慎重に管理することをお勧めします。Unity では、スクリプトから更新をトリガーできるため、更新が発生するタイミングを正確にコントロールできます。また、プローブの更新にタイムスライスを適用して、数フレームにわたって徐々に更新を実施できるようにするオプションもあります。
  • カスタムプローブタイプも使用できます。これらのプローブを使用すると、ベイクしたプローブの場合と同様に、エディターでビューをベイクできます。しかし、リフレクション用のカスタムキューブマップを使用することもできます。カスタムプローブはランタイムに更新できません。

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

ベイクしたリフレクションプローブ

ベイクしたリフレクションプローブは、そのリフレクションキューブマップが Unity エディターでキャプチャされ、プレイヤーで後ほど使用するために保存されます (詳細については、リフレクションプローブの概要を参照してください)。キャプチャ処理が完了するとリフレクションが “固定” されるため、ベイクしたプローブは、移動するオブジェクトによるシーンの変化をランタイムに反映することができません。ただし、ベイクしたプローブは、リアルタイムプローブ (変化の反映可) よりも処理オーバーヘッドがはるかに低くなり、多くの目的のために使用できます。例えば、1 つの移動する反射オブジェクトだけがある場合は、静的な環境の反映のみを必要とします。

カスタムリフレクションプローブ

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

カスタムプローブの Inspectorの Dynamic Objects プロパティを使用すると、Reflection Probe Static としてマークされていないオブジェクトをリフレクションキューブマップに追加することができます。

ノート: これらのオブジェクトの位置は、ベイクする際、リフレクション内で引き続き “固定” されることに注意してください。

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

Realtime Reflection Probes

ベイクしたプローブは多くの目的に有用であり、ランタイムパフォーマンスは良好ですが、プレイヤー内でライブ更新されないという欠点があります。つまり、オブジェクトは、反射がオブジェクトに沿って移動しない状態でシーン内を動き回ることができます。これによって過剰な制限が生じる場合は、ランタイムにリフレクションキューブマップを更新するリアルタイムプローブを使用できます。この効果によって処理のオーバーヘッドが増大しますが、リアル感の向上を実現できます。

エディターでは、リアルタイムプローブとベイクしたプローブのワークフローはほとんど同じですが、リアルタイムプローブはより高速にレンダリングされる傾向にあります。

リフレクションプローブの概要
リフレクションプローブの配置