バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はunityのHDRPチュートリアルを日本語翻訳してやってみたメモです。
前回から一年くらい空いたけど久々にいじりたくなったので続きを書いてみるw
前回の記事はこちら。
使用したunityバージョンは2022.3.6です。




2024/10/04追記:今後はURPとHDRPが統合されていく感じっぽい?
最近出た情報だと、今後はURPとHDRPが統合されていく感じの予定みたいです。(※動画21:31あたりから)
んーそうなると今からHDRPいじるのはどうなんだろうな…。
まぁこれからゲーム作ろうとしてる人はちょっと待ってみるのもアリかな?
追記終わり。
前回の続きからやってみる
前回はunity2021.3.17f1 だったけど、今回はunity 2022.3.6f1でやってみます。
VRChat用に入れてあるのがたまたまこれだったのでw
バージョンが違うとHDRPの設定項目も微妙に違っているところがありましたが、まぁだいたい同じだと思うので大丈夫だと思いますw
Baked Lighting
what is baked lighting?


ベイクライティングとは?
リアルタイムでの間接照明の計算は、ほとんどのハードウェア プラットフォームで非常にコストがかかります。 したがって、間接ライティングのベイクまたは事前計算は重要なステップです。 Unity でベイクされたライティングはライトマップに依存します。ライトマップは、(間接) ライティングのレンダリングを大幅に高速化するために実行時に使用できるライティング情報を格納するテクスチャです。 上の画像は、ベイクされた照明データが削除された後のまったく同じシーンを示しています。 ご覧のように、バウンス ライティングがなく、間接ライティングが Sky から生成されたアンビエント ライティングのみに依存しているため、内部が異常に明るくフラットに見えます。
これはHDRPじゃない普通のunityプロジェクトにもあるやつかな。
リアルタイムライトは重いのでベイクするってやつ。
Lighting Modes


ライティングモード
Window > Rendering > Lighting で Lighting ウィンドウを開きます。 Scene タブで、Lighting Mode が Baked Indirect(ベイクした間接光) に設定されていることに注意してください。これは、空とシーンに配置された人工照明によって生成される間接照明のみをキャプチャするためです。 上の画像は、Baked Lightmap デバッグ ビューを使用したまったく同じシーンを示しており、間接光のみが表示されています。 ライティング モードとそのさまざまな使用例については、ドキュメント を参照してください。
ここかな。




しかしデバッグビューとかいうのはないな…。


まぁちょっと先に進めてみます。
Lightmapper Settings


ライトマッパー設定
Lighting ウィンドウでは、すべてのライトマッパー設定を見つけることができます。 これらは、[シーン] タブのウィンドウの一番上にある [照明設定] アセットとして保存できます。 このテンプレートでは、品質の異なる 5 つの Lighting Settings アセットが提供されています。 各レベルは、ベイクにかかる時間に直接影響します。品質が高いほど、ベイクに時間がかかります。 提供されている Lighting Settings アセットのほとんどは、十分な処理能力とビデオ メモリを備えたディスクリート GPU を使用する限り、CPU ライトマッパーと比較してはるかに高速なベイク速度を提供する GPU ライトマッパーを利用します。 重要 ライト ベイクでスカイからの照明を正しく統合するには、ライトマッパーでは、すべてのシーンに対して、照明ウィンドウの上部にある [環境] タブ内で、少なくとも 1 つのタイプのスカイ オーバーライドが割り当てられたボリューム プロファイルが必要です。 Sky オーバーライドでボリューム プロファイルを指定しない場合、ライトマッパーは Sky を黒と見なします。 したがって、結果として得られる間接照明と、カメラ自体によってレンダリングされる空との間に不一致が生じる可能性があります。
いくつかライティング設定のアセットが用意されているみたいですね。


別のライティング設定アセットを選んでベイクしたらベイクが始まったΣ(゚Д゚)かなり時間かかりそうだな…。


Ultraにしたら6分くらいかかったけど、あんま見た目は変わらないかな?(;^_^A


Lighting Setting Presets


Lighting Setting Presets
次の手順では、さまざまな Lighting Settings アセットを使用してライティングを生成し、品質の違いを調べることに焦点を当てています。 これらの手順はオプションであり、強力なマシンでのみ推奨されます。 1. ウィンドウ > レンダリング > ライティング を開きます。 2. [シーン] タブの最上部で、LightingSettings1Draft などの別の照明設定アセットを割り当てます。 3. Lighting ウィンドウの右下隅にある [Generate Lighting] ボタン をクリックし、ライティングの生成が完了するまで待ちます。 ベイクが完了すると、ライトマップの品質が Draft Lighting Asset で大幅に低下し、テクセルが低いために特定の領域で光の斑点がより明確になり、柱と天井のソフト シャドウとの間の接続が切断されていることに注目してください。 解決 。 他の Lighting Settings アセットを試して、結果を比較してください。 Ultra Lighting アセットは最高の品質を提供しますが、ベイクには数分かかります。
これさっきやったやつだΣ(゚Д゚)
確かに天井と柱が馴染んでない感はあるのかな?最初のやつに戻すのにまた数分くらいかかりそうだから比較はしないが…。


「新しいライティング設定」を押すと新規に作れるっぽいけど、「ライトマップ設定」のあたりのパラメーターをいじって設定するっぽい?


まぁこのあたりの設定を変えれば照明をいじれる、と覚えておけばいいかな。
このあたりは試行錯誤して設定していくしかないかなぁ(;^_^A
Light Probes
ライトプローブはHDRPじゃない通常のBuilt-in-Render-Pipelineにもあるやつですね。
What are light probes


ライト プローブは、ベイクされたライティングのもう 1 つのコンポーネントです。 Scene 内の動的オブジェクトに間接照明を適用するために使用されます。 I
1. シーンに立方体を追加し、その座標を x = 30 、 y = 2 、 z = 6 に設定します。
立方体がライト プローブによって適切に照らされ、近くの壁から緑色の間接光を受けていることがわかります。
2. 立方体をツリー ケージに近づけます。 立方体が強い光のプールに近づくにつれて、立方体に影響を与える間接照明がどのように明るくなるかに注目してください。
じゃあ追加してみます。


動かしてみたら確かに光の照らされ方が変わってますね。


Explore the light probes


ライトプローブの探検
プローブを視覚化するには、Scene ビューでギズモが有効になっていることを確認し、Window > Rendering > Lighting Window の下部で、Light Probe Visualization を All Probes No Cells に設定します。 . I 2/3 X ライト プローブ グループは、Hierarchy Lighting > Light Probe Group にあります。 これらのライトプローブは手作業で配置されました。 ライト プローブ グループを選択し、インスペクタで [ライト プローブの編集] ボタンをクリックして、プローブを選択、移動、または複製します。 ライト プローブは、Generate Lighting ボタンを使用して、Lighting Window で手動でベイクされます。
上級者向けのヒント • ライト プローブ グループはリアルタイムではないため、シーンに顕著な変更を加えた場合は、ライティングを再度生成することを忘れないでください。 前 上の画像の球体は、対応する位置でライト プローブによってキャプチャされた照明を視覚化したものです。 オブジェクトはデフォルトでライト プローブから照明を受け取るように設定されており、最も近い 4 つのプローブからのブレンドとして照明を受け取ります。 したがって、プローブ間の補間をより正確にするために、照明のコントラストが高い領域でプローブの密度を高めることが重要です。 ライトマップからではなく、ライト プローブからグローバル イルミネーションを受け取るように、より小さい固定メッシュ レンダラーを設定することをお勧めします。 ライト プローブはライトマップよりもかなり高速にベイクされ、ライト プローブ データはライトマップのデータよりもかなり小さくなります。 主な構造物 (壁、床など) を除いて、このサンプル シーンのほとんどのオブジェクトは、ライト プローブからグローバル イルミネーションを受け取るようにタグ付けされています。 これにより、ライティングのベイク時間と全体的なメモリ フットプリントが削減されます。
日本語化してるから「ライトプローブ可視化」になってたけどこれかな。


Light Probe Groupはここにあった。


Reflection Probes
リフレクションプローブはHDRPじゃないBuilt-in-Render-Pipelineにもあったやつですね。
鏡を作るのに使ったやつ。
What are reflection probes


リフレクションプローブとは?
反射プローブは、周囲の環境をキャプチャし、その結果をテクスチャに保存します。このテクスチャを使用して、Reflection Probeの境界内にあるオブジェクトに反射を発生させることができます。
のボリュームがあります。
反射プローブは、特にインテリアや空の影響を直接受けないエリアで、適切なマテリアル再現を実現するために非常に重要です。
また、反射プローブは重なり合うことができ、その境界ではスムーズなフェードが可能です。オブジェクトは、反射プローブの位置と各反射プローブに設定されたフェード距離に基づいて、反射プローブ間で自動的にブレンドされます。最後に、オブジェクトのタイプは、ベイクド(Baked)とリアルタイム(Realtime)があります。また
formerは、その結果をディスク上のテクスチャに焼き付ける、
であるのに対し、後者は実行時に常に更新されることで
真のリアルタイム反射を実現することができますが、より高い精度が要求されます。
リアルタイム反射は品質設定をよく見ないと反映されないことがあって、以前詰まったことがあったな…。
Toggle Reflection Probes


トグル反射プローブ
手持ちの反射プローブの影響を受けないオブジェクトは、自動的に空からの反射を受けることになります。そこで、テンプレートの各ROOMに局所的な反射プローブを配置することで、「光漏れ」と呼ばれる現象を回避し、通常なら遮蔽されている部分に空の影響を与えないようにすることがTequiredです。
1.階層で、[照明] > [反射プローブ]を展開します。
2.この部屋のすべてのローカル反射プローブを含むRoom2 GameObjectを無効化します。この部屋のローカル反射プローブを無効にすると、空が自動的に反射されることがわかります。
それは、すべての物体に照射されるため、不要な光漏れを発生させます。
反射プローブには、2種類の形状があります:
・箱型 部屋のような環境での反射を設定するのに便利です。
・球形 開放的な屋外に適しています。
ここかな。


Room2をインスペクターオフにしたら見た目が変わったけど、オブジェクトに空のスカイボックスが映ってる感じ?
細かくローカルでリフレクションプローブを設定しないと、スカイボックスが物体に反射しちゃうってことかな?
前回やったグローバルボリュームとローカルボリュームみたいに、局所的に細かく設定したほうが良いのかもしれない。
違ってたらごめん(;^_^A
Proxy Volume


プロキシボリューム
【影響ボリュームをプロキシボリュームとして使用】チェックボックスを有効にすると、反射プローブで撮影した反射マップがカメラ位置と反射プローブの形状に基づいてワープされるようにすることができます。これにより、反射のより良い近似が得られ、周囲との接地が試みられます。
1.階層構造で、照明 > 反射プローブ > Room 3 の下にある、Reflection Probe Room 3 Ceilingを選択します。
2.インスペクタ]で、[影響ボリュームを代理ボリュームとして使用]チェックボックスを切り替えます。
このチェックボックスを有効にすると、反射サーフェスはより正確な反射を受けることができます、
これかな。


これみたいです。


うん確かにチェックが付いてるほうが反射がリアルになっているかな?
じゃあこれは常時オンで良い感じかな?
Light Cookies
What are light cookies?


ライトクッキーとは何ですか?
ライトクッキーは、ライトに割り当てられる2Dまたはキューブマップのテクスチャで、発光する光の形状、強度、色を制御することができます。
ランプや電球の自己閉塞感や欠陥をシミュレートすることができ、また、光を素早く増加させることができます。
シーンのビジュアルクオリティを高める。
Inspect light cookies


ライトクッキーを検査する
LightコンポーネントでLight Cookieを割り当てることができます。
1.プロジェクトウィンドウで、「Light _Spot_1600Im」を選択します。
2.その Inspector の Emission フォールドアウトで、Cookie プロパティを選択し、割り当てられたテクスチャを削除します。
3.この変更を元に戻します。
エッジが滑らかに変化しなくなり、ライトの中心部の細かいディテールが失われていることに注意してください。




なるほど。確かに削除すると光のグラデーション感がなくなってるかな?
これは「こういう機能があるよ」という説明みたいな感じかな(;^_^A
Light Layers
What is light layers?


ライトレイヤーとは?
ライトレイヤーは、ライトや反射プローブの影響を受けるオブジェクトを指定するために使用できます。
ライトレイヤーは、特定のオブジェクトの選択的な照明、光漏れの問題の解決、他のオブジェクトに影を落とすために許可する光のコントロールに使用することができます。
ライトレイヤーを理解することは、ライティングの作業において重要な要素です。
unityはどのオブジェクトにもタグやレイヤーが設定されてるけど、それのライト版ってことかな?
特定のレイヤーにだけ光を当てたり影を落としたりできる感じか?
Toggle light layers


ライトレイヤーをトグルする
ライトレイヤーがどのように起動するのかを見てみましょう。
1.プロジェクトウィンドウで、「アセット」→「設定」の中に入ります、
HDRPアセット(HDRPMediumQualityの可能性が高い)を選択します。
2.そのInspectorで、Lighting> Light layersを無効にします。
のチェックボックスをオンにします。
ライトレイヤーをオフにした状態で、一番上のランプのガラス面が、兄弟に不要な影を落としていることに注意してください
と床の上に置く。
3.ライトレイヤーを再びオンにします。
ガラスが影を落とさなくなったことに注目してください。このシナリオでは、ライトレイヤーを使って、各ガラスが照明器具の他のスポットライトからの光を受けないように強制しています。
注:デフォルトでは、新規プロジェクトではライトレイヤーはオフになっています。


確かに光の感じが変わっていますね。
Set up light layers


ライトレイヤーのセットアップ
ライトレイヤーをオブジェクトやライトに割り当てる方法について説明します。
1.Hierarchyで、Props > Room3 > CeilingLamp_01 > CeilingLamp_Lamp_01 > CeilingLamp Glass_01_LODOを選択します。
2.インスペクタで、レンダリングレイヤーマスクのパラメータがLampsOnlyに設定されていることに注目します。
3.Props > Room3 > CeilingL.amp_01 > Light Spot_1200Im を選択します。
ライト レイヤー] が [混合] に設定されていることに注目し、ドロップダウンを展開すると、[ランプのみ] レイヤーが無効になっていることを確認します。
照明器具のスポットライトがLamp Oniyレイヤーに影響を与えることができないので、Lamps Onlyレイヤーに置かれたガラス片は、スポットライトから照明や影を受けることができません。そのため、不要な影が発生することはありません。
専門家のアドバイス
現実には光を遮断することはできないので、ライトレイヤーは物理的に正しくないことは明らかです。しかし、実際には、この機能は、より困難な照明シナリオで不要な照明、影、光漏れを避けるために非常に便利です。
ライトレイヤーは、屋内外の光漏れを修正したり、他の環境や他のキャラクターに影響を与えずにキャラクターのカットシーンを選択的に照らすために使用することができます。




ここはライトレイヤーなんて見つからなかったな…混合はあったけど。


ここちょっと意味不明(~_~;)
>ドロップダウンを展開すると、[ランプのみ] レイヤーが無効になっていることを確認します。
のところが確認できなかったので飛ばします。
Visual Effects
Visual Effects


視覚効果
Assets > Particies folderに配置されている視覚効果をVisual Effect Graphsと呼びます。このグラフを編集するにはVisual Effect Graphウィンドウを使います。
このノードベースのエディターにより、クリエイターはGPUベースの高度なエフェクトをデザインすることができます。
正しくはAssets/SampleSceneAssets/Particlesフォルダみたいです。


Visual Effect Graphウィンドウはこれかな。


なんかこんな感じのウィンドウが開きました。


Create new Visual Effect Graphを押して新しいのを作成したらなんかノードグラフっぽいのが作成されたΣ(゚Д゚)


spawnしてupdate particleの処理に繋げる…なんとなく分かるような気がするけど、多分Built-in-Render-Pipelineのパーティクルの設定と似た感じっぽいかな。
パーティクルが出現してからの処理を書いていけばいいっぽい。
まぁここまでやらなくてもリアルっぽくはできると思うので、そこまではやらないかな(;^_^A
Tune the Dust VFX


チューン・ザ・ダスト VFX
このシーンで作成したDustの視覚効果を検査する。
1.ヒエラルキーで、VFX > FloatingDust Cage を選択します。
2.インスペクタでオンとオフを切り替えます。
塵の粒子がシーンのリアリズムにどのように寄与しているかに注目してください。
うーん見た目はあんまり変わらないかな?
Tune the Butterflies VFX


チューン・ザ・バタフライ VFX
それでは、ButterfliesのVFXを見てみましょう。
1. Hierarchyで、VFX>Butterfliesを選択します。
2.そのインスペクタで、「Wing Animation Speed」を「0.1」に設定します。
アニメーションがどのように遅くなるかに注目してください。
動くスピードは変わらないけど羽ばたくスピードは遅くなってるっぽいですね。
Explore the Butterflies VFX Graph


蝶のVFXグラフを探る
バターフィーを操作するためのVFXアセットを開いてみましょう。
VFXです。
1.プロジェクトウィンドウで、Art>Particlesと進み、以下のように開く。
Butterflies.vfx.
2.グラフ上部のSpawnブロックを探し、Countノードを削除します。
3.Spawnブロックで、Countを50に増やします。
4.ウィンドウの左上にあるCompileを選択して、VFXをリフレッシュします。
木のカゴの中で、より多くの蝶が飛んでいることに注目してください。
Art<Particlesはないな… Assets/SampleSceneAssets/Particles/ButterFlies.vfxにありました。


これをダブルクリックするとグラフが開きますが、結構複雑な感じΣ(゚Д゚)


COUNTノードを削除し、50にすれば良いらしい。
ちなみにやる前はこんな感じ↓三匹くらいしか飛んでいないが…。
↓がやった後。めっちゃ飛んでるΣ(゚Д゚)
多分50匹飛んでるってことかな?
まぁこんな感じで既存のVFXをいじって勉強すると良さそう。
Decals
What are decals?


デカールとは何ですか?
デカールとは、デカール素材を他のサーフェスに投影できるGameObjectです。
主に、追加のメッシュを使用せずにテクスチャの詳細を追加したり、テクスチャのタイリングの繰り返しを減らすために使用されます。
Inspect the decals


シンプルなサーフェイスの見栄えを劇的に向上させるデカールについて見ていきましょう。
1 階層で、「構造」→「デカール」を選択します。
2.Lnspectorで、GameObjectのオフとオンを切り替えます。
デカールがコンクリート表面に変化を与え、テクスチャのタイリングを崩している様子をご覧ください。
3.構造]>[デカール]>[水たまり]>[デカール]を選択します。
プディー{11)ー
4.そのインスペクタで、水たまりの乾燥をシミュレートするために、Fade Factorパラメータを小さくします。
OUt
専門家のヒント
-デカールレイヤーを使用して、どのサーフェスがどのデカールの影響を受けるかを指定します。
-カスタムピボットを使用して、投影の原点をオーバーライドします。
-デカールの描画距離を短くし、パフォーマンスへの影響を最小限に抑えます。
これは前回やったような気がする。
これね。


次はこれか。


フェードファクターをいじると確かに薄くなってますね。
デカールはマテリアルみたいな感じらしいけど、設定項目が見たことない感じだから普通のシェーダーをと少し違うのかな?
White Balance
What is white balance?


ホワイトバランスとは?
現実の世界では、カメラと人間の脳は、強い色かぶりを補正しようとします。この原理は
ホワイトバランスと呼ばれます。
特に、暖色系の人工照明を使用したシーンでは、ランプの赤みが強く、色の正確性や芸術性によっては好ましくない場合があるため、バランスをとることが重要です。
さらに、ホワイトバランスでは、シーンの全体的な温度を調整し、寒く感じたり暖かく感じたりすることができます。このテクニックは、特定の時間帯を演出したり(例:夜は青く、日没は赤く)、特定の感情を伝えるために使用されます。
PostProcessingみたいに画面の色調を変える感じかな?
Tune the white balance


このテンプレートでホワイトバランスがどのように活用されているのか、シーンを探ってみましょう。
1.階層」で、「照明」→「ボリューム」→「ボリュームルーム3座り」を選択します。
2.ホワイトバランスボリュームオーバーライドをオンとオフに切り替えます。
をオフにします。
このシナリオのホワイトバランスは、以下のように適用されることに注意してください。
の強いオレンジ色とのバランスをとるために、ライトブルーのカラーフィルターを使用しています。
椅子の上のランプ
3.温度」スライダーを操作して、画像の青や赤のレベルを上げてみる。
4.この変更を元に戻す。
専門家のアドバイス
– 人工照明の色温度は暖色系であることが多く、ホワイトバランスとは、シーンにおける「白」の認識を調整する方法です。
– 屋外の青空のあるシーンでは、青みがかった色になりやすいため、より暖かいホワイトバランス設定が必要となります。
これかな。


ちょっと色の感じが変わっていますね。
これはVolumeを追加すれば使えるのかな?
割と使いやすいかもしれない。
Explore Other Learning Resources 他に学べるリソース
色々紹介されています。
HDRPで使えるサンプルアセットもあるみたいです。

Fontainebleau Demo

Spaceship Demo

HDRPRayTracingScenes

VRAlchemyLab

おわりに
とりあえず一応全部触ることはできた。
ある程度さわりの部分はこれでできたんだろうけど、あとはチュートリアル動画とかも見ながら設定していくしかないか…。
あとは一からシーンを作って設定できるかどうかが問題かな(;^_^A
でもとりあえずHDRPにして適当にVolumeを設定するだけでもかなりリアルな感じになったので、理解できるところだけ使っていけば良いかもしれない。
まぁもう少しいじってみます(*^-^*)