Unreal Engine for Fortnite(UEFN)がリリースされ、UE5ユーザーの方でフォートナイトのマップを作成しようと考えている方も多いのではないでしょうか?
UEFNが登場したことで、UE5の知見を活かしてフォートナイト上にメタバースを作成できるのはとても大きなメリットです!
この記事では、UE5で作成したマップをUEFNに移行し、使用する方法をご紹介します!
ただし、UEFNはUE5より機能制限が多く、UEFNでは対応していない機能も多いです。
そのため、さまざまな機能を使用したUE5のマップでは、ほとんどの場合、エラーが出て、そのままプレイできません。
これらのエラーを解決する方法も詳しくご紹介します!
UE5のデータをUEFNに移行する
まずは、UEFN側でもプロジェクトを作成しておきましょう。
UE5のマップを使用するので、特に何もない「空白」がおすすめです。
UEFNではサブレベルを使用できません。
サブレベルを使用している場合は、全てのアクターを1つのレベルにまとめておきます。
(簡単なまとめ方は、後述の「サブレベルを1つのレベルにまとめる」で紹介しています)
UE5に戻り、UEFNで使用したマップを右クリックし「Asset Action」→「Migrate(移行)」を選択します。
こうすることでマップに含まれている全てのアセットをまとめて移行できます。
この画面では、移行するアセットとしないアセットを選択できますが、基本的にはそのまま「OK」を押します。
エクスプローラーが開くので、先ほど作成したUEFNのプロジェクトのフォルダを開きます「[プロジェクト名]/Plugins/[プロジェクト名]/Content」フォルダを選択して「フォルダの選択」をクリックします。
これでUEFNにマップとアセット一式を持っていくことができました!
該当のレベルを開くことで、移行したマップをUEFNで開くことができます。
下記の画像では、対応していない機能がマテリアルに使用されているなどで正しく表示されていない部分もあります。
実際にプレイするにはこれらのエラーの解決やいくつかの作業が必要です。
プレイするためにUEFN側で必要な作業
UE5からUEFNにマップを移行できたら、マテリアルのエラーなどのあるなしに関係なく、いくつかの作業が必要になります。
これらの作業を行ってから「セッションの開始」を行うようにしましょう。
UEFN非対応アセットの削除
UE5から移行してきたデータだと非対応アセットが含まれていることがよくあります。
非対応アセットが含まていると、データをサーバーにアップロードできないため、セッションを開始できまないので、削除します。
コンテンツブラウザのフィルタから「その他のフィルタ」→「Unsupported」を選択します。
これで非対応のアセットのみフィルタリングできます。
非対応アセットは全て削除しておきましょう。
「リファレンスされていります」と出る場合は基本的に「強制削除」で問題ない場合が多いですが(非対応で結局、機能していないため)、心配な場合や落ちてしまう場合は、該当のアセットを確認して、リファレンスを切っておきましょう。
リファレンスを切るというのは、例えば上の画像ですが、ブループリントやレベルでいくつかのアセットが使用されいるようなので、そのBPやレベルの中から該当のアセットを事前に削除しておくなどです
移行したマップのアクターを別のレベルにコピーする
上記の作業やマテリアルのエラーを解決しても、下記の記事にあるエラーで落ちてしまうことが多いです。
そのため、UEFNで作成したレベルにコピーする必要があります。
やり方は、上記の記事でも紹介されているので、割愛します。
コピペ時に落ちてしまう場合は、何回かに分けてコピー、ペーストするとできます。
どのくらいの量のアクターができるかはPCのメモリによります。
その他、メッセージログにあるエラーは解消しておきましょう。
そして、一旦「セッションの開始」してみます。
UEFNのエラーの解消方法
「セッションを開始」もしくは「変更をプッシュ」を押してもゲーム開始できない場合はエラーが出ています。
エラーがある場合は、メッセージログやアウトプットログに表示され、一つずつ解消していきます。
ここでは私が遭遇したいくつかのエラーの解決方法をご紹介します。
Total upload size (~KB) is too large. Maximum is 2097152KB.
これは、メモリ容量がオーバーしていることを示すエラーです。
UEFNでは、セッションを開始するには、レベル上のメッシュやテクスチャ、マテリアルなど含め2,048MBに抑える必要があります。
ちなみに島を公開する場合、データサイズは400MB以内に抑える必要があることに注意してください。
一度、セッションを開始すれば、どこで容量を使っているかを見ることができるのですが、この時点では何で容量を使っているか見ることができず、シーンの中でリソースを消費している部分を自分で探さなければなりません。
マーケットプレイなどのアセットを使用している場合、ほとんどがテクスチャによる容量使用です。
そのため、まず効率的な対策としてテクスチャの解像度を下げることをおすすめします。
テクスチャでフィルタリングして、右クリックから「アセットアクション」→「プロパティマトリックスで選択内容を編集」をすることで複数のテクスチャの設定をまとめて変更することができます。
「Maximum Texture Size」で最大解像度を設定することで解像度を下げます。
青で選択状態になっているものをまとめて変更できます。
クオリティをなるべく下げないようにという意味では、1つずつどのくらいの解像度が適切か見ていく必要があります。
あくまで参考までにですが、私が大雑把にやる際は
- ベースカラー:512~2048
- ノーマル:256~1024
- ラフネスやメタリック:128~512
にくらいにしています。
解像度の設定が終わったら全テクスチャを選択して、右クリックから「テクスチャインポートデータのサイズ変更」を押します。
一度、プレイを開始できればそれ以降は、何がリソースをどのくらい使用しているかを確認することができます。
Found disallow object type ~
UEFNではサポートされていないアセットやノードを使用していることを示しています。
UEFNのエディタには含まれていないテクスチャやノードをマテリアルで使用していことが多いです。
例えば
“Found disallowed object type /Engine/EngineResources/Black.Black…”
は、UE5ではエンジンに含まれているがUEFNでは含まれていない(使用できない)「Black」というテクスチャがエラー文の下に表示されているマテリアルに含まれていることを示しています。
該当のマテリアルを開き「Black」テクスチャを別のマテリアルに置き換える必要があります。
“Found disallowed object type /Script/Engine.MaterialExpressionCustom”
では、こちらもUEFNでは非対応のカスタムノードを使用していることを示しています。
該当のマテリアルを開き「検索結果」を使用して「Custom」などで検索すると簡単に見つかります。
その他、Atmosphere Fogなど使用できないアクターがレベル上にある際もFound disallowed object typeでエラーができます。
~には Effect Type アセットがありません
UE5から持ってきたアセットにNiagaraアセットがある時にでるエラーです。
該当のNiagaraアセットを開きます。
青いシステムプロパティで「問題を修正」を押すだけで解決できます。
Niagaraのコンパイルエラー:非推奨モジュール
メッセージログに詳細が出ないもののNigaraがコンパイルエラーを起こしており、セッションを開始できない場合があります。
その際はNiagaraアセットを開き、エラーを解消する必要があります。
特に多いエラー「非推奨モジュール」です。
その際は基本的に「新しいモジュールスクリプトを選択します」の「問題を修正」を押すことで、機能を壊さずに解決できることが多いです。
サブレベルを1つのレベルにまとめる
マーケットプレイスで購入した背景などはサブレベルで背景アセットやライティングなどで分かれていることが多いです。
UEFNはサブレベルをサポートしておらず、UEFN側で1つのレベルにまとめるのは面倒なので、UE5側でまとめておくのがおすすめです。
サブレベルについて詳しく知りたい方は、こちらをご覧ください。
レベル上のアクターは「ctrl + C」でコピーして、「ctrl+V」で別のレベルに位置情報などの設定を維持したままコピペできます。
これは全てテキスト情報になっているからです。
試しにコピーしてから、テキストエディタ等でペーストしてみるとわかると思います。
これを利用して、1つのレベルにまとめていきます。
サブレベルのウィンドウを開きます。
サブレベルのウィンドウでまとめる先のレベルをダブルクリックしておきます。
通常はパーシスタントレベルで良いと思いますが、私が使用したアセットでは「LV_Bazaar_Layout」に大量の背景アセットが入っていたので、ここにまとめることにしました。
他のレベルを右クリックし「Select Actors」をクリックすると、そのレベル内のアクターを全選択できます。
その状態で「ctrl+C」でコピーします
まとめ先のレベルが太文字(アクティブ状態)になっていることを確認して「ctrl+V」でペーストします。
これで他のサブレベルのアクターを別の(サブ)レベルにコピペできました。
これを必要なサブレベルの分、繰り返していき、1つのレベルにまとめます。
まとめ
UE5からUEFNにマップを移行し、ゲームを開始するまでの流れをご紹介しました。
マップを移行するのは簡単ですが、複雑なシーンや複雑なマテリアルがあるほど、エラーが多くなります。
それらを解決しないとゲームを開始できないので、骨が折れる作業になることもい多いです。
また、ハイエンドなプロジェクトほど高解像度なテクスチャをたくさん使用しているので、メモリに苦労することも多いと思います。
複雑なマップほど大変ですが、ぜひご自身のUE5のプロジェクトをフォートナイトで活かしてみてください!
ここにはないエラーに遭遇しましたら、コメントで教えていただけますと嬉しいです!
解決方法も併せていただけると更に嬉しいです!笑
解決方法がわからない場合は、時間があるときにこちらで調べて、追記いたします(必ずしも回答をお約束できるものではありません)
UEFNのおすすめの書籍
UEFNのおすすめのチュートリアル
このサイトでは、UE5の使い方やおすすめの書籍なども紹介しています!
UEFNでの島の作成にも役立ちますので、ぜひご覧ください!
コメント