Look Dev
Look Dev は画像ベースのライティングツールです。Look Dev はアセットをチェックしたり比較したりできるビューアーを搭載していて、さまざまなライティング条件でアセットが適切に機能することを確認できます。Look Dev ではスクリプタブルレンダーパイプラインが使用されるため、アセットをシーン内と同じように表示できます。アセットは、Look Dev にプレハブとしてロードするか、Hierarchy ウィンドウからロードすることができます。
Look Dev は編集モードのみで使用できます。再生モードに移行すると、Look Dev ウィンドウは閉じられます。
アセットの検証
アセットの検証では、アセットが正しく作成されていて、異なるライティング環境で意図したとおりに動作するかどうかを確認します。
Look Dev でアセットを検証するには、HDRI (ハイダイナミックレンジ画像) を使用する必要があります。HDRI では、現実世界に近いライティングが非常に高い精度で表現されます。つまり、手作業では作成が難しい完璧なライティングを実現できます。このような正確なライティング環境をアセットのテストに使用することで、シーンのビジュアル品質を下げている原因がアセット自体にあるか、それともプロジェクトのライティングにあるかを特定できます。
Look Dev では、2 つの異なるアセットを同時にロードし、2 つのビューポートで比較することができます。例えばアートディレクターは、新しいアセットを参照アセットと比較して、アートディレクションガイドラインに沿っているかどうかを確認できます。
Look Dev の使用
Unity エディターで Look Dev を開くには、Window > Render Pipeline > Look Dev を選択します。Look Dev を初めて使用するときは、Environment Library を新しく作成するかロードする必要があります。Environment Library の作成方法については、Environment Library のドキュメント を参照してください。
ビューポート
デフォルトでは、Look Dev に表示されるビューポートは 1 つだけですが、いくつかの画面分割ビューから選択することもできます (マルチビューのセクション を参照してください)。
コントロール
Look Dev カメラによるナビゲーションの動作は、シーンビューカメラ とほとんど同じです。
- ピボットを中心に回転: マウスを左クリックしてドラッグします (シーンビューと同様ですが、シーンビューカメラでは Alt キーを押す必要があります)。
- カメラをパン: マウスを中央クリックしてドラッグします。
- 拡大: Alt キーを押しながらマウスの右ボタンをクリックしてドラッグします。
- 前進/後退: マウスホイールを動かします。
- 一人称モード: マウスを右クリックしながら W、A、S、D キーを押します。
Look Dev へのアセットのロード
Look Dev で表示できるものは次のとおりです。
プレハブ - Look Dev にプレハブをロードするには、プレハブを Project ウィンドウから Look Dev のビューポートにドラッグします。
ゲームオブジェクト - Hierarchy ウィンドウのゲームオブジェクトのコピーをロードするには、ゲームオブジェクトを Hierarchy ウィンドウから Look Dev のビューポートにドラッグします。
ビューポートのモード
Look Dev のビューモードを変更するには、ウィンドウの左上にあるツールバーを使用します。
単一ビューポート

Look Dev にはデフォルトで単一のビューポートが表示されます。このビューポートには、操作中のプレハブまたはゲームオブジェクトが含まれます。別のビューモードから単一ビューに戻るには、1 または 2 という番号の付いたボタンをクリックします。各ボタンは、Look Dev のビューポートに対応しています。ビューポート 1 を使用するにはボタン 1 を選択し、ビューポート 2 を使用するにはボタン 2 を選択します。
マルチビューポート

同一アセットに異なる環境や設定を適用して比較するには、複数のビューポートを使用します。ビューポートは次のように配置できます。
- 上下に並べて配置: このモードでは、同一アセットを 2 つの異なるライティング条件で比較して、アセットが正しく動作することを確認できます。
- 左右に並べて配置: このモードでは、環境アセットなどの水平方向のオブジェクトを 2 つの異なるライティング条件で比較して、アセットが正しく動作することを確認できます。
- 画面分割: このモードでは、デバッグシェーダーモードを使用してテクスチャの問題を調査できます (例えば、一方の画面で法線シェーディングまたはアルベドシェーディングを表示し、もう一方の画面で環境ライティングモードを表示できます)。
- 並べて画面分割: このモードでは、同じライティング条件を使用して同一アセットの 2 つの異なるバージョンを比較して、どちらの変更がアセットの品質向上につながるかを確認できます。
これらのモードはいずれも、同じライティング条件を使用して同一アセットの 2 つの異なるバージョンを比較して、どちらの変更がアセットの品質向上につながるかを確認するために役立ちます。
画面分割ビューのそれぞれに別々のプレハブゲームオブジェクトや Hierarchy のゲームオブジェクトをロードするには、アセットを目的のビューポートにドラッグアンドドロップします。
複数のビューポートを使用する意味があるのは、同一アセットの 2 つのバージョンを検討する目的で、異なるプレハブまたはゲームオブジェクトを比較する場合だけです。まったく異なるアセットを比較しても、ライティングやビジュアルエフェクトの違いについて役立つ情報は得られません。
上下または左右に並べて配置
上下または左右に並べて配置されたビューポートには、アセットの同一のビューが表示されます。

画面分割
画面分割ビューには、2 つのビューポートを分割する赤と青の操作ギズモが表示されます。このギズモの使用方法については、操作ギズモの使用 を参照してください。

マルチビューポートカメラ
Look Dev では、デフォルトで両方のビューのカメラの動きが同期されます。互いのカメラを切り離して別々に操作するには、番号の付いた 2 つのカメラボタンの間にある Synchronized Cameras ボタンをクリックします。

互いのカメラの位置を合わせたり、カメラをリセットしたりするには、ビューポート 2 のアイコンの横にあるドロップダウンの矢印をクリックします。

操作ギズモの使用
操作ギズモは、2 つのビューポートの分割面を表します。画面分割モードでの動作は異なりますが、使用方法は並列表示モードでも画面分割モードでも同じです。
分割線の移動
分割線を移動するには、ギズモの直線部分をクリックし、目的の位置までドラッグします。

向きと長さの変更
操作ギズモの向きと長さを変更するには、その両端にある円のどちらかをクリックしてドラッグします。ギズモの長さを変更すると、向きと ブレンディング の値をより正確に設定できます。

分割位置の段階的な変更
分割位置を一定間隔で変更するには、操作ギズモの終端にある円をクリックしてホールドし、Shift キーを押しながらマウスを動かします。これにより、操作ギズモは角度が 22.5° ずつ移動した位置にスナップするため、完全に水平、垂直、対角線の方向に合わせる場合に便利です。
ブレンディング
分割線の中央にある白い円を使用すると、2 つのビューをブレンドできます。白い円を左クリックし、赤い線に沿ってドラッグすると、左側のビューが右側のビューにブレンドされます。青い線に沿ってドラッグすると、右側のビューが左側のビューにブレンドされます (下の画像を参照)。
白い円を元の位置にドラッグすると、自動的に中央にスナップされます。これにより、デフォルトのブレンディングにすばやく戻すことができます。

Look Dev での HDRI 環境
Look Dev でのライティングには HDRI が使用されます。Look Dev ビューでは、HDRI を操作したり簡単に切り替えたりして、使用中のアセットに対してさまざまな環境のシミュレーションを行うことができます。
Look Dev は、Environment Library アセットを使用して環境のリストを保存します。リストの各要素は、環境を微調整するために使用する追加プロパティを持つ HDRI です。Environment Library の作成、編集、割り当て方法については、Environment Library のドキュメント を参照してください。
カスタムスクリプタブルレンダーパイプラインへの Look Dev の実装
カスタムのスクリプタブルレンダーパイプラインで Look Dev を使用するには、UnityEngine.Rendering.LookDev.IDataProvider インターフェースを実装する必要があります。
| 関数 | 説明 |
|---|---|
| void FirstInitScene(StageRuntimeInterface stage) | Look Dev は、ライトとカメラでシーンを初期化した後にこの関数を呼び出します。この関数は、独自のスクリプタブルレンダーパイプラインのニーズに応じて、他に必要なコンポーネントを追加および設定するために使用されます。 |
| void UpdateSky(Camera camera, Sky sky, StageRuntimeInterface stage) | Look Dev は、開発者が Look Dev で変更を加えたときに、この関数を使用して環境を更新します。空はさまざまな方法で処理できるため、独自のスクリプタブルレンダーパイプラインに応じたコードを追加してください。 |
| IEnumerable |
サポートされるデバッグモードのリストを指定するには、この関数を使用します。None は Look Dev によって自動的に処理されるため、追加する必要はありません。 |
| void UpdateDebugMode(int debugIndex) | ユーザーの選択に基づいてデバッグモードを更新するには、この関数を使用します。debugIndex は supportedDebugModes のリストに一致します。ユーザーが None を選択すると、debugIndex は -1 になります。 |
| void GetShadowMask(ref RenderTexture output, StageRuntimeInterface stage) | この関数はシャドウマップを計算します。指定された StageRuntimeInterface を通じて、カメラおよび太陽をシミュレートするライトにアクセスできます。 |