とあるゲームプログラマの挑戦と敗北の歴史

UE4とプログラミングとmayaとpythonとhtmlとマラソンを中心に情報を発信する元「技術ブログを目指すブログ」から再始動した毎日の日々を発信するブログです。

UE4:オンラインラーニング(プロシージャルジオメトリに基づいた雲の作成 )

UE4オンラインラーニング
プロシージャルジオメトリに基づいた雲の作成
を受講した際のおぼえ書きです。

https://learn.unrealengine.com/course/3536564



マテリアルの設定
あらかじめマテリアルノードの
マテリアル>MaterialDomain をSurface
マテリアル>BlendMode をTranslucent
マテリアル>ShadingModel をSubsurface
テセレーション>D3D11TessellationMode をPNTraiangles
にしておく必要があります。
f:id:toncrimentan_w:20210122092921p:plain


VertexNormalWSノード
VertexNormalWSノードを利用することで頂点の法線方向を取得することができます。
たとえば、ディスプレースメントピンを利用し法線方向に拡縮するとか
f:id:toncrimentan_w:20210122093405p:plain



テセレーションとノイズノードとVerteNormalWSノードだけでも
このようなマテリアルを作ることができます。
f:id:toncrimentan_w:20210122093337p:plain



絶対ワールド位置ノード
絶対ワールド位置ノードによりワールド座標を取得
WorldPositionと入力すると取得できます。
(このコースではAbsoluteWorldPositionでしたが4.26ではWorldPositionです。)
f:id:toncrimentan_w:20210122093642p:plain



フレネルノー
フレネルノードは1.0からカメラと法線の内積をを引いた値がとれるノードです。
(動画にいい図があったのでパクってきました)
f:id:toncrimentan_w:20210122093957p:plain

オパシティに入力することで、
このようにX線のようなシェーディングを行うことができます。
(1-xノードを利用してさらに反転するもよし)
f:id:toncrimentan_w:20210122094105p:plain



最終的にはこんなマテリアルをつくることができました。
f:id:toncrimentan_w:20210122094543p:plain



実際にできたもの
youtu.be



プロシージャルな雲の作成を通し、
テセレーションピン と ワールドディスプレースメントピンの利用方法が学べます。
アニメーションする雲がこんなに簡単に作れるのはとてもたのしいです。