【Unity】HDRPで光跡を表現する
まだPreview版のHDRP上で光跡を表現する方法.
完成するもの.
完成版のサンプルはここ
https://github.com/nmxi/Unity_HDRP_LightTrail_Example
Environment
- Windows 10 64bit
- Unity2019.1.12f1
- HDRP 5.16.1-preview
Method
0.HDRPのインストール
PackageManagerからHDRPをインストール.現時点2019-09-16ではまだPreviewのHDRPをインストールする.
執筆時点でのHDRPのバージョンは5.16.1-preview
インストールに結構PCのリソースが持ってかれるので,ゲームをやりながらインストールしたりするとフレームレートが落ちてキルレが落ちる(*´ω`*)
HDRPのインストールが完了したら,HDRPアセットを作成する.
ProjectタブでCreate → Rendering → HDRP Assetから作成できる.
HDRP Assetを作成し,インスペクターで確認すると以下のような詳細設定画面が出現する.
ここで描画パイプラインの詳細設定を行える.
HDRP Assetの作成が完了したら,ProjectSettings → GraphicsのSRP Settingsに今作成したプロファイルをアタッチする.

1.色空間をGammaからLinerに変更
HDRPがGanmma出力に対応していないため,Linerにする必要がある.
PlayerSettingsからColor SpaceをLinerに変更する.
2.SkyBoxの新規作成
空のゲームオブジェクトを作成し,名前をSkyBoxなどにする.
Volumeコンポーネントを追加し,Is Globalにチェック,ProfileをNewから新規作成する.
Add OverrideからHDRI SkyをVolumeコンポーネントに追加
今回 HDRMAPS からHDRP画像を拝借した. https://hdrmaps.com/ CC BY 4.0
https://hdrmaps.com/freebies/sunset-over-cabo-de-gata
HDRI画像の設定を以下の様に設定する.
- Texture ShapeをCubeに設定
- MappingをLatitude-Longtude Layoutに設定
そしたら,先程作成したSkyBoxオブジェクトのVolumeコンポーネント内,HDRI Skyの設定にHDRI画像を指定し
Volumeコンポーネントで再び Add OverrideからVisual Environmentを追加する.
Visual Environmentで SkyのTypeにチェックを入れ,HDRI Skyを指定する.
するとHDRI Skyが表示される.
3.Scene Settingsを作成
ヒエラルキー上でScene Settingsを作成する.
Scene Settingsで以下を変更する.
- SkyのTypeをHDRI Skyに変更
- FogのTypeをVolumetric Fogに変更しておく
4.Fogの作成と設定
ヒエラルキー上でRendering → Density Volumeの作成
分かりやすいようにFogとかに名前を変えておく
Dencity Volumeコンポーネントの設定を以下のように変更する.
- Fog Distanceを100に設定,Fogの濃さが変わる.密度?(後で変更する)
- VolumeのSizeを50, 50, 50に変更.この値はFogの発生している範囲の大きさ.カメラ,被写体が入るように設定する.
Scene Settingsの方の設定も変更する.
- Volumetric Fogを追加する
- 以下3つのパラメータのチェックを入れ有効化する
- Base Fog Distanceを150に設定
- Global Anisotropyを0.65に設定
- Distant Fogにチェックを入れる
また不要な場合,Procedural SkyとExponemtial Fogを削除する.
次に,Directional Lightの傾きをHDRI画像の光源と合わせておく.
光跡を確認する用のオブジェクトを複数追加した.
5.Fogの設定を再度細かく設定していく
先程,FogのDencity VolumeのFog Distanceの値を100に設定したが,下げるとFogの濃さが高くなるのでちょうどいいところまで数字を下げる.
すると以下の様に光跡ができあがる.
6.ポストプロセスを添えて
適宜Fog DistanceやDirectional LightのIntensityの値を変えて画作りを行う.
以下は例.
7.完成
このような画になった.
オブジェクトをアニメーションさせたりすることで,さらに光跡が効果的に見えるようになる.