夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

UnrealEngineでランドスケープを作成する その③ランドスケープの高度でテクスチャを変える

本日はUnrealEngine枠です。

今回は前回に引き続きランドスケープのマテリアルを観ていきます。

redhologerbera.hatenablog.com

前回まででペイントを使用してランドスケープで複数のテクスチャを使用することができるようになりました。

現実世界では高度によって環境が変わることがよく見られます。

例えば高度が高い山には雪が積もります。今回は山に雪を降らせます。

〇環境

・Windows11PC

・UnrealEngine5.4

〇高さを取得する

①前回作成したランドスケープマテリアルを開き絶対ワールド位置ノードを追加します。

これはWorldPositionなどで調べることでヒットしますが、UnrealEngine内での座標を取得することができます。

絶対ワールド位置ノードのZ出力を新たに追加するStepに接続し、その出力をMultiplyノードでLandscape Layer Blendノードと計算しベースカラーにつなぎます。

StepノードはZ座標の指定した高さを基準に指定した高さより上なら0,下なら1を返します。 これによってStepノードの値に応じて山間部の上部が0=テクスチャが張られない状態となります。

OneMuinusノードを追加しStepの出力に追加でつなぎます。

これは1-という意味で例えば0.6という値が入力された場合0.4(1-0.6)が返されます。

これをベースカラーに接続すると次のような値が取得できます。

OneMuinusノードの出力に雪のTexuteをMultiplyで掛け算し、その結果をAddノードにつなぎなおします。

これによってある高さ以上で雪のテクスチャを設定することができました。

この手法では一律にある高さで雪が積もってしまいます。実際の雪山は様々な条件で積雪がみられ、グラデーションがかかっています。次回は積雪をなじませていきます。。

本日は以上です。