アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UEFN】水辺の地形とサーフボードで遊ぼう

UEFNの記事も作ってみます(*‘ω‘ *)

勉強会でUEFNを学ぶ機会がありまして、

地形編集などの情報が少なそうかなと思ったので、

今回紹介していこうかなと思います。

※UEFNのバージョンの指定は特にないです。

参考資料紹介

実は今回参考にした資料等は特にありません。

細かい操作方法とかはUEFNのドキュメントが良いかなと思います。

・目次に戻る

UEFNとは?

そもそもUEFNとはなんでしょうか?
という方もいらっしゃると思うのでまずはUEFNの説明から、
行っていこうかなと思います。

UEFNとはUnreal Engine For Fortnite」の略称で、
UnrealEngineエディターで物を配置することが可能になってます。
※UnrealEngineとは別として扱われます。

作成した島は公開することができて、
コードをSNSで紹介している方々などもいらっしゃいます。

とりあえず何もわからないという方は公式ドキュメントの、
下記リンクのページから順番に見ていくのが良いかと思います。

・目次に戻る

地形の作成方法について

まず最初にUEFNを購入する必要があります。
購入するといっても無料で受け取るという形になります。

UEFNの無料購入方法

購入完了したらUEFNのインストールを行います。
インストールが完了したらUEFNをダブルクリックして起動します。

ライブラリ内の確認とインストール

起動したら島を選択します。
今回は草地の島を選択して作成します。
正常に作成された場合は島とエディタが表示されます。

島のプロジェクト追加作業

島とエディタの起動

地形を編集する際に使用するIslandやLake・Oceanなどは、
All>Fortnite>Environment>Waterの中に配置されています。
今回はLakeをドラッグアンドドロップして配置してあげます。

湖の配置

配置が完了したら必要に応じて形を変更してみましょう。
Lakeなどの地形編集はスプラインと呼ばれる曲線や直線で、
形を形成しているのでスプラインの使い方も紹介していきます。
※基本的には配置してスプラインで形を形成するという流れになります。

スプラインの設定については下記に2点の流れで行います。
1.スプラインの接続点の追加。
2.接続点の移動による地形生成

スプラインの仕組みと行うこと

右クリックメニューでスプラインの複製・削除・選択・リセット等行えます。
スプラインの追加は複製で行います。

右クリックメニューでの表示

続いて川の地形となるRiverを配置してジャンプ台みたいなものを作ってみます。

川の地形もスプラインで再現しているためRiverを配置したら、

スプラインで形を調整してあげます。

川の追加設定

あとは皆さん自由に作成してオリジナルのステージを、
作ってみていただければと思います。

・目次に戻る

サーフボードの配置とキャラの登場

地形だけだとゲームとして楽しみがあまりないので、
せっかく地形を作ったのでサーフボードで遊んでみようと思います。
その前にプレイヤーが登場させるプレイヤースポナーを配置します。
こちらもドラッグアンドドロップで配置可能です。
※Fortnite/Devicesフォルダ内にプレイヤースポナーがあります。

プレイヤースポナーで設定する

そうしたら今度はサーフボードスポナーを配置します。
こちらもプレイヤースポナー同様でドラッグアンドドロップで配置します。
※Fortnite/Devicesフォルダ内にサーフボードスポナーがあります。

ドラッグアンドドロップでサーフボードスポナーを配置

配置したらそのサーフボードスポナーが選択されているので、
詳細タブのユーザーオプションにある、
「乗り物破壊不可」を選択して壊れないように設定しておきます。

乗り物破壊不可

作成したステージを実際にテストしてみようと思います。
テストする際は「セッションを開始」を選択して開始してあげます。

セッションの開始を選択

実際にテストした動画は下記の動画になります。

以上がサーフボードの配置説明になります。

勉強会で実際に地形を色々改良して動かしてみたのが下記ツイートになります。

・目次に戻る

【UE5】SubstrateMaterial(基礎編)

SubStrateMaterial基礎紹介(*'ω'*)

UE5.1から登場している実験段階のSubstrateMaterialの

基礎的部分の紹介になります。

今回は関数やノードの紹介で作例などは応用編で説明予定となります。

※使用するバージョンは「UE5.2.1」になります。

参考資料紹介

今回参考にさせていただいた情報ページリンクは下記になります。

個人的には機能別サンプルのSubstrateの紹介マップにとてもお世話になりました。

Substrate Materials | Course

How to Make Glass in Unreal Engine 5 | Substrate Materials Tutorial - YouTube

機能別サンプル:UE 機能サンプル - UE マーケットプレイス

※今回下記のような方向けに書こうと頑張ってみてます。

・SubstrateMaterialを触ってみたい方

・SubstrateMaterialがどういった原理か知りたい方

・目次に戻る

SubstrateMaterialとは?

SubstrateMaterialとはUE5.1から追加された実験機能、
SubstrateのUE5.2に変更されたものとなります。

一つのマテリアルの設定で内側は別のマテリアル表現、
外側に近い方を別のマテリアル表現にするといったことが可能になっています。

SubstrateMaterialでは以前のマテリアルも自動的にSubstrateMaterial用に、
変換されてしまうのでご注意ください。
Substrate機能を切ってもそのままの状態になるので注意です。

※試す場合は新規プロジェクトや機能別サンプルがおすすめです。

・目次に戻る

準備と主に使用する関数の紹介

SubstrateMaterialを使用する場合まずプロジェクト設定で、

SubstrateMaterialの設定を有効にする必要があります。

プロジェクト設定で「substra」と検索すると、
Substrate用の項目が出てきます。

三つのチェックボックスにチェックを入れます。

※一番上だけでも問題はなさそうですが今後デバッグなども使うのですべて選択。

Substrateの項目の3つのチェックボックス

実際に主に使用するノードや関数などを紹介していきます。

まず大本となるシェーディングモデルを指定する、

SubstrateBSDF関連のノードを説明していきます。

SubstrateBSDFというのは目や髪の毛・波などの、

シェーディングモデルを指定するノードになります。

ノードとしては7種類用意されています。

SubstrateBSDFをまとめたノード群の画像

今回はBlendノード等で組み合わせることが可能な、

SubstrateSlabBSDFSubstrateSimpleClearCoatを使用した例を紹介します。

◎SubStrateSlabBSDFの各種パラメータ
Diffuse Albedo→BaseColorの代わりの色

F0→表面で垂直に見た時の反射で見える色

F90→垂直ではなく視野角での反射で見える色
※そのまま着色だとフレネルのような見た目

Roughness→いつも通り全体の粗さの設定(0~1で設定)

Anisotropy→異方性反射の設定(0~1で設定)
※異方性反射とは入ってきた光の方向とは異なる方向に反射される現象で、
 髪の毛の天使の輪やブレーキやレコードなど円盤でよくある白い反射のことです。
 詳しい説明については下記の記事などが有効かなと思います。
[UE4]Anisotropy(異方性反射)の使い方とそのTangentについて - Qiita
【UE4】異方性反射マテリアルを使ってみた - トンコツ開発ブログ

Tangent→上記で説明した異方性反射が横方向に伸びる値になります。

Normal→いつも通りのノーマルマップになります。

SSS MFP→ こちらは密度を制御しておりF0の色が黒に近いほど、

                 SSM設定した値の色身が強くなります。

F0の色が白の場合は白が適応

F0の値が黒に近い場合SSSMFPの色味が強くなるSSS MFP Scale→上記MFPの適応度合い(0~1で設定)
SSS Phase Anisotropy → 段階的な異方性反射の設定(0~1で設定)

Emissive Color → いつも通りのエミッシブカラー

Second Roughness → 通常のラフネスに加えて内部がラフネスがかかり
           よりぼやけた表現を作るために使用?
Second Roughness Weight → 2番目のラフネスの強度

Second Roughness設定前

Second Roughness使用時Fuzz Roughness → 布の表面ざらざら感
Fuzz Amount → 布の色の強度
Fuzz Color → 布の色
実際に作成した場合に下のような見え方になります。

布用マテリアルの作例

◎SubStrateSlabBSDFの特有のパラメータ

Clear Coat Coverage → 外枠の透明な部分のカバー量(0~1の設定)
Clear Coat Roughness → 外枠の透明な部分のラフネス(主に模様付け)

使い分けとしては色々細かい設定をしたい場合はSlabで、
細かく指定しない場合はSimpleClearで良いかなと思います。

今回紹介するSubstrateのシェーダーモデルノード

続いてすでに用意されているSubstrateMaterial関数ブロックについてです。

実はSubstrateの初期段階の設定をすでにしてある関数が用意されています。

Substrate Building Blocksという中にそろえてくれています。

すでに用意されているSubstrateMaterial関数群

SubstrateBuildingBlocksのそれぞれの関数

上記関数は先ほど使用したBSDFなどがすでに使用された関数となっているため、
そのままFrontMaterialの接続に接続して使用します。

接続ピンが関数にいくつかありますがこれは関数内のパラメータを、
変更したい場合に使用します。
※別に設定しなくても動きますがパラメータを設定する場合が多いと思います。
 SMF_UE4Unlitの中身を確認しようとするとエディタが終了するので注意です。

SMF_Coatの関数に内部の色と拡散光の色とエミッシブを変更した例になります。

SMF_Coat使用時

SubstrateMaterialは通常のマテリアルの拡張版なので、
当然Lightマテリアルやデカールなどのマテリアル変換用のノードなどもあります。
今回は細かい説明を割愛しますが応用編で使用した際に紹介したいと思います。
※主にそれぞれの用途に変換する用のノードだと覚えておけばOKです。

SubstrateExtrasの各種項目

SubstrateHelpersのマテリアルノードについては、
各種変換やその他表現が主なノードとなっています。

SubstrateHelpersの項目

先ほど説明したSecondRoughnessへの変換用ノードである、
Substrate Haziness-ToSecondary-Roughnessなども、
こちらの項目のノードとして用意されています。
※こちらも細かい説明は応用編でやります。
 実用例を交えて説明した方が分かりやすいかなと思います。

各SubstrateHelpersマテリアル

最後にマテリアルの重ね合わせ等で使う、
ノードが集約されたSubstrateOperators項目になります。
こちらにはどのようにマテリアルを重ね合わせるのか設定する、
4種類のノードが用意されています。

SubstrateOperators項目の各種ノード

それぞれ使用した場合の画像を紹介します。

その前に今回作成したマテリアル関数それぞれの中身になります。

その1:金色でごつごつとした簡単なマテリアル。

金色でごつごつとしたマテリアル

その2:水色のぶつぶつとした簡単なマテリアル。

水色でぶつぶつとしたマテリアルそれでは実際にブレンドした場合の説明をしていこうと思います。
Addの説明になります。これはAとBを重ね合わせる形になります。

Addでブレンドしたときの動作

Substrate Coverage WeightはWeightで設定している以外の部分が適応されます。
※Weightの値に応じて色も一部変化します。CoverageWeight

HorizontalBlendではMixの設定に合わせてブレンドされるような形になります。

HorizontalBlendのマテリアル例

VerticalLayerに関してはSubstrateCoverageWeightと組み合わせます。

VerticalLayer

以上がSubstrate用に用意されているノードの説明になります。
基本はSubstrate用のノード以外のマテリアルと組み合わせて、
いろんな見た目のマテリアルを作成していきましょう!

・目次に戻る

最後に

以上がSabstrateMaterialの基礎的なマテリアルの紹介になります。

今回紹介しなかったシェーディングモデルや他機能については、

応用編を頑張って作った時にでも紹介しようと思います。

githubに作例も載せられていきます。

最後まで見ていただきありがとうございました。

・目次に戻る