ocean waves
必要なものを/Content/OceanWaves/Levels/EarthSizedOceanPlanetからcopyして持ってきましょう。
BP_EarthSizedSphericalMeshBP_EarthSizedOceanWaterVolume
BP_EarthSizedSphericalMeshのtransform-location-z:-63600000にします。Sphere Radius:63600000にします。SphereEdge Length:16000000になるはずです。
次に海上の影問題を修正するためMaterial Overrides, Material Outer/Innerをすべて変更します。私は/Vefects/Water/VFX/WaterMaterialsを使用しました。
次にBP_EarthSizedOceanのVolume MaaterialsでWaterVolumeをセットします。Above/Underwaterを/Vefects/Water/VFX/UnderWaterに変更します。height:0にします。これは海に入って出たときに海中を適用する高さを設定します。
city sampleで使うと空間にロードされていないアクタを参照
WaterVolume: 空間にロードされていないアクタを参照しています。
これはBP_EarthSizedOcean, BP_EarthSizedSphericalMeshの詳細からis spatially loadedのチェックを外します。
ocean wavesが遅い理由
これは/Content/OceanWaves/Blueprints/BP_SphericalMeshのCreateMeshAsyncIterationにあるSet Timer for Next Tick by Eventが原因です。
しかし、取り除くと海が消えます。ロードを待つほかありません。
海中でゲームオーバー
ocean underwaterを使います。海中にいる時間を記録して、その値に応じて溺れるモーション(ゲームオーバー)を追加します。
BP_OceanWavesTangentPlane -> UpdateUnderwaterMaskでoutputの前に変数を作り++を入れます。値に応じて条件を指定します。BP_OceanWavesTangentPlane -> SetVolumeMIDでIs Underwaterがありますので、falseの場合は0に戻します。