第0071回 / trueSKY | HK-87@UEのブログ

HK-87@UEのブログ

UE4で理想のVRゲームを作るまでの軌跡

trueSKY を試してみる。

以下、UE4標準ライティングから、TrueSKY に移行する際にやったことメモ。

(1) プラグインの有効化

(2) "Window"メニューから > "Initialize trueSKY" を実行

SkyLightやら、HeightFogやら
UE4標準のライティング用Actor を消すよ?というチェックのついたダイアログが表示される。

なるほど、そりゃそうだろう。
しかし一旦 trueSKY を試すと後戻りがしづらいな・・・。

念のため既存の各種ライティング用Actor達を別のレベルにコピーしてから実行する。

Sequence というもので雲の表情を選択できるっぽいけれども、
どれがどんな見た目になるのか確認できないのでとりあえずデフォルトのまま先にすすむ。

これは後でゲーム画面を見ながら簡単に切り替えられたので調整は後で。

太陽光として制御する Directional Light も選択。

・・・
結果、TrueSkyLight と TrueSkySequenceActor という2つのアクターが生成された。
ポストプロセスマテリアルにも TruSkyTranslucent というマテリアルが追加されている。

BP_Sky_Sphere はなぜか消えてくれなかったので、自分で消した。
※本来はこのダイアログで消してくれるはずのようだ。
プロジェクト用にBPをコピーして使っていたからだろうか?
 

・・・
 

もうこれだけで見た目のクオリティが格段に上がった。
これは期待できる。

負荷は気になるけれど、そもそもまだ調整、最適化作業はしていないので
今後trueSKYありきで調整していけばいいだろう。


(3) BPで制御していた時間変化に伴うライティング制御部分をいろいろ置き換える。

いろいろライティング系のアクターが消えたので、時間変化系のBPにも手を入れなくてはならない。
これでまた後戻りがしづらくなった、けれども前に進む。

・SkyLight から LightComponent を取得して設定いた箇所を、TrueSkyLight から取得する形に変更。
・TruSkyLight の Source Type を CaptureScene から Cubemap に切り替え。
・BP_Sky_Sphereに設定していた Sun Brightness や Cloud Opacity は
・現在時刻を TrueSkySequenceActor の Set Time で設定する。0.0~24.0で設定すればよいようだ。(値域を変えることもできる)

そもそも時刻に合わせて DirectionalLight を動かす処理とかは必要なのだろうか?
trueSky がやってくれそうな気がする。
消してみる。
 -> やはり不要だった。消す。


(4) 雲を動かすには・・・?

公式ドキュメントの 
https://docs.simul.co/tutorials/clouds/tutorials.html

Cloud Movement の動画に従って、
https://www.youtube.com/watch?v=XQ-BDpAR-sY

キーフレームを作成して、位置をずらせば雲が動くっぽい。
理屈はまだよくわかっていないが、とりあえず位置の違うキーフレームが2つあれば動きはする?

-> 適当な時間に2つキーフレームを打つと、行って戻って、という不自然な雲の動きになってしまった。

逆戻りの時間帯が無いように、0時と24時にキーフレームを打ってみる。
-> 問題なさそう?

適当な設定にしているので、きちんと連続性をもってループするのだろうか?という疑問はあるが、
現状、夜が暗くてよくわからないので、まぁいいや。次。

しかし、マウスドラッグだと細かい調整がし辛い・・・。
キーフレームの時間手入力できないのだろうか?



(5) 雲を動かすには・・・?その2

TrueSkySequenceActor に Clouds > Wind Speed MS というプロパティがある。
ここに値を設定しても雲は動くようだ。

ただし、この方法だと雲の形は変わらない。
(4) が設定されていれば、(5)は要らないかな。


(6) 雲が動くとグリッド状の点々模様が見える。

これはなんだろう?何かの補間処理?

 

・・・
どうやら雲の更新を数フレームに分割して行っているようだ。

TrueSkySequenceActor の "Clouds" > "Render" > "Amortization" の値を 1 にすれば直った。

数が大きい方が負荷的に優しいのだとは思うが、2でもグリッドが見えてしまうので 1 にするしかない。


(7) 太陽が小さい?

TrueSkySequenceActor の Adjust Sun Radius にチェックを入れたら改善した。

なにをしているのかはわからないけれど。


(8) 星が暗い?

TrueSkySequenceActor の Star Brightness を大きくする。


(9) 雲を動かすと、TVの走査線が流れるように雲の陰が更新されていくような画が見えてしまう。


なめらかに遷移しない。これはなに?
グリッドに依存する問題?

雲の動きを止めても更新タイミングが見える。
平行光の移動に伴う陰の更新がリアルタイムではない感じ?

どこの問題だろうか?

-> わからん。

太陽の動きが速くなければそれほど目立たないので

今はあきらめるか・・・。



(10) 雲の形や時間帯によってグリッド模様が目立つことがある


これも解決策はわからない。
サンプリング方式を変えられたりできれば完全すると思うのだけれども。
Indieラインセンスではソースが見れないのでどうにもならない。

---

結果



動画

 


課題
・HeightFogもなくなってしまったので調べないと。
・夕方雲がやたらと光ってみえるのはなぜ?
・公式FAQに Niagara と一緒に使うとパッケージ化できない、とか書いてある。
・パラメータの調整はエースコンバット7の事例が参考になりそう。
https://cedil.cesa.or.jp/cedil_sessions/view/2023


いくつかソースを弄らないと解決できなさそうな問題があるのが厳しいけれど
空のクオリティは圧倒的に上がる。
ひとまずこのまま進めてみよう。

UE4.26で正式に入るというVolumetricCloudとどちらが使いやすいか。