パルテア

どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング 反射プローブの種類〜

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

ベイクされたプローブは、エディター内で生成された (「ベイクされた」) リフレクション キューブマップを保存します。リフレクション プローブ インスペクターの下部にある [ベイク] ボタンまたは [ライティング] ウィンドウの [ライティングの生成] ボタンをクリックすると、ベイク処理を開始できます。

[ライティング] ウィンドウで [自動] を有効にしている場合は、シーン ビューにオブジェクトを配置すると、ベイクされたプローブが自動的に更新されます。ベイクされたプローブからのリフレクションは、インスペクターで [リフレクション プローブ スタティック] としてマークされたオブジェクトのみを表示できます。これは、オブジェクトが実行時に移動しないことを Unity に示します。

リアルタイム プローブは、エディターではなくプレーヤーで実行時にキューブマップを作成します。つまり、リフレクションは静的オブジェクトに限定されず、シーンの変化を示すためにリアルタイムで更新できます。ただし、プローブのビューを更新するにはかなりの処理時間がかかるため、更新を慎重に管理することが賢明です。

Unity では、スクリプトから更新をトリガーして、更新がいつ発生するかを正確に制御できます。また、プローブの更新にタイムスライスを適用して、数フレームにわたって徐々に更新が行われるようにするオプションもあります。

カスタム プローブ タイプも利用できます。これらのプローブを使用すると、ベイク済みプローブと同様にエディターでビューをベイクできますが、反射用のカスタム キューブマップを提供することもできます。カスタム プローブは実行時に更新できません。

3 つのタイプについては、以下で詳しく説明します。

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

ベイクされたリフレクション プローブとは、Unity エディターでリフレクション キューブマップがキャプチャされ、プレーヤーで後で使用するために保存されるプローブです (詳細については、リフレクション プローブの概要を参照してください)。

キャプチャ プロセスが完了すると、リフレクションは「フリーズ」されるため、ベイクされたプローブは、移動するオブジェクトによって生じるシーン内の実行時の変化に反応できません。ただし、リアルタイム プローブ (変化に反応します) よりも処理オーバーヘッドがはるかに低く、多くの用途に使用できます。たとえば、移動する反射オブジェクトが 1 つだけの場合は、静的な周囲を反射するだけで済みます。

ベイクされたプローブの使用

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

ベイクされたプローブによってキャプチャされるリフレクションには、Reflection Probe Static としてマークされたシーン オブジェクトのみを含めることができます (すべてのオブジェクトのインスペクター パネルの左上にある Static メニューを使用)。カリング マスクとクリッピング プレーンのプロパティを使用して、反射キューブマップに含まれるオブジェクトをさらに調整できます。これらのプロパティは、カメラの場合と同じように機能します (プローブは、基本的に、6 つのキューブマップ面のそれぞれを表示するために回転するカメラのようなものです)。

自動オプションをオンにすると (ライティング ウィンドウから)、シーンにオブジェクトを配置すると、ベイクされた反射が自動的に更新されます。自動ベイクを使用していない場合は、リフレクション プローブ インスペクターのベイク ボタンをクリックしてプローブを更新する必要があります (ライティング ウィンドウのライティングの生成ボタンもプローブの更新をトリガーします)。

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

カスタム プローブ

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

カスタム プローブのインスペクターの [動的オブジェクト] プロパティを使用すると、反射プローブ スタティックとしてマークされていないオブジェクトを反射キューブマップに含めることができます。

注: これらのオブジェクトの位置は、ベイク時に反射内で「固定」されたままです。

[キューブマップ] プロパティを使用すると、独自のキューブマップをプローブに割り当てることができるため、プローブの視点から「見える」ものから完全に独立させることができます。これを使用して、たとえば、3D モデリング アプリから生成されたスカイボックスまたはキューブマップを反射のソースとして設定できます。

リアルタイム プローブ

ベイクされたプローブは多くの用途に役立ち、実行時のパフォーマンスも優れていますが、プレイヤー内でライブ更新されないという欠点があります。つまり、オブジェクトはシーン内を移動できますが、その反射は一緒に移動しません。これでは制限が多すぎる場合は、実行時に反射キューブマップを更新するリアルタイム プローブを使用できます。この効果には処理オーバーヘッドが高くなりますが、よりリアルな効果が得られます。

リアルタイム プローブの使用

実行時にプローブを更新できるようにするには、反射プローブ インスペクターでそのタイプ プロパティをリアルタイムに設定する必要があります。反射をキャプチャするためにオブジェクトを反射プローブ スタティックとしてマークする必要はありません (ベイクされたプローブの場合のように)。ただし、カリング マスク プロパティとクリッピング プレーン プロパティを使用して、反射キューブマップからオブジェクトを選択的に除外できます。これらのプロパティはカメラの場合と同じように機能します (プローブは基本的に、6 つのキューブマップ面のそれぞれを表示するために回転するカメラのようなものです)。

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

注: 現在、リアルタイム プローブは、Reflection Probe Static オブジェクトが移動されたり外観が変更されたりした場合にのみ、シーン ビューで反射を更新します。つまり、動的オブジェクトを移動しても、それらのオブジェクトが反射に表示されていても更新は行われません。動的オブジェクトが変更されたときに反射を更新するには、ライティング ウィンドウの [ライティングの生成] ボタン ドロップダウンから [反射プローブのベイク] オプションを選択する必要があります。

    Course

  • 日時:2024/04/01 ~ 2025/03/31
  • 名称:どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング 反射プローブの種類〜
  • 場所:オンラインスクール
  • 料金:¥0 (消費税込)