公式のfabのホームページには、「 UltraDynamicSky 」は惑星に対応していないと記載されています。しかし実際には惑星に応じた天球を作るオプションがあります。アップデートで対応してそのままホームページの記載を変更し忘れたのかは不明ですが、天球を惑星に対応させる手順を備忘をかねてまとめておきます。
アンリアルエンジン アセットのURL「 UltraDynamicSky 」
https://www.fab.com/ja/listings/84fda27a-c79f-49c9-8458-82401fb37cfb
結論
やはり公式HPに記載されているように惑星に対応させるには全機能が対応していないっぽくて、惑星用の天球にするにはやや微妙な感触。もっと調べてみて対応できる方法などが分かれば随時更新して手順を記録しておきたいと思います。
やりたいこと(今後調べること)
- 天球を惑星型に調整して、夜には天球の星が見えるようにしたい。
- オーロラを夜の惑星に表示させたい。
- 惑星上のフォグを生成して、空気遠近法で3km〜の景色はフォグで見えにくくさせたい。
参考動画(雲を惑星状に変更する方法)
How to Make Stunning Planetary Clouds in Unreal Engine 5
手順
雲を惑星の球体にそった形状に変更する
- UltraDynamicSkyをインストールしたプロジェクトで、空のレベルにUltra_Dynamic_Sky ブループリントを配置
- コンポーネントのSkyAtmosphereを選択
- Planet → TransformModeを ( Planet Center at Component Transform )に変更
「 なぜか自分の環境UE5.4.4ではコンポーネントのSkyAtmosphereのトランスフォームが勝手に動くバグ?に遭遇しました。リセットでトランスフォームを0に設定してもエディターでカメラを動かすとX=-891774、Y=474686、Z=0に強制的に移動してしまいます。 」
→ UltraDynamicSkyブループリントの関数の → UpdateSky → Camera Location Dependent Updates → Low Frequency Updates → Update Sky Atmosphere Location(Current Camera Locationピンが刺さっている)のノードの実行を無効にすれば、エディター状でSkyAtmosphereの大きさが勝手に変わることはなくなりました。 - Ground Radiusで惑星の大きさにSkyAtmosphereの描画を調整
- VolumetricCloudのPlanetRadiusも同様に惑星の大きさに調整
- UltraDynamicSky(Self)を選択 → Cloud Coverageで密度を調整
- 画面を遠ざけると球体状の雲が確認できる → 惑星が大きい場合は惑星表面に薄っすらと雲が描画されている場合あり。
- UltraDynamicSky(Self)のProjectModeを参考動画ではCinematic/OfflineにしていたがFPSが20以下に低下するのでゲームで使用する場合はGame/Real-Timeを選択
- 惑星の大きさと、雲の球体の大きさを調整して惑星の表面に雲が位置するようにスケールなどを調整 → UltraDynamicSky(Self)のVolumetric-CloudカテゴリのBottomAltitudeで雲の高さを調整できるが2.0以上設定することができない。
- Ultra_Dynamic_SkyのVolumetric CloudsのVolumetric Cloud Rendering ModeをFull Cinematic Qualityに変更
- Cloud Coverageで雲の密度を調整 → あまり濃くしすぎるとFPSが下がる可能性あり
- HeightFogのFog Max Opacityを0にするとZ軸マイナス方向のフォグに隠れていた部分が見えるようになる
- Ultra_Dynamic_SkyのVolumetric Clouds → Tracing Max Start Distanceを大きな値にするとエディター状で描画されるときの距離が変わる(どの距離から雲を描画するか?→小さい値だと雲に近づかないと描画されずに雲が確認できない) → 実験プロジェクトでは変更できたが、本番のプロジェクトでは値を変更しても自動的に初期値に戻された。
スカイボックスの描画を消す(動画内9:45付近)
- UltraDynamicSky(Self) → Cloud Wisps → Cloud Wisps Color Intensityを0にすると周囲に描画されている天球が描画されなくなる(10:30)
大気の空気の層の描画を調整する
- Atmosphere → Atmosphere Heightで大気の高さを調整
- Atmosphere Rayleigh → Rayleight Scattering Scale を調整すると惑星に沿った淡い大気のような効果を調整できる。
太陽の位置を変える
- UltraDynamicSky(Self) → E1- Sun → Sun Yaw を変更することでエディター上の位置を変えることができる。
( LongitudeとLatitudeで変更したいが、何故かエディター上では反映されない、ゲームをプレイするとシュミレーションが走って反映される仕様なのかもしれない。)
問題点
赤道付近の雲の描画が不自然?
画像のように赤道付近の雲は南北方向に縦に引き伸ばされたような雲になってしまいます。ゲームの方向性にもよりますが、この不自然な描画は好みではないと思う人もいるのではないでしょうか?自分もあまり良いとは思わず、UltraDynamicSkyで雲を作るのは止めておこうかと思っています。
まとめ
今回(24-12-06)の調査では、雲を惑星状に変更する方法と、宇宙と大気の境界線を調整する方法しか分かりませんでした。また追加の調査で冒頭のやりたいことができるかを調査して、本格的にゲームに組み込むかを検討します。
25-01-09に実際のゲームプロジェクトに取り込んで操作方法の説明も少し追加修正しました。
コメント