ゲームの テクスチャには、インゲームで適切にレンダリングするための特定の要件があります。インポートした 画像を使用して Unreal Editor for Fortnite (UEFN) でテクスチャを作成する場合は、ソース画像ファイルの高さと幅に 2 の累乗 が使用されていることを確認してください。これにより、各種 プラットフォーム での島の互換性と安定性が向上します。
グラフィックス プロセッシング ユニット (GPU) 用の圧縮ファイル形式は、すべてのコンソール、PC、モバイルで 2 の累乗のテクスチャを使用する必要があります。 2 の累乗のルールを遵守していないテクスチャは、ローエンドのプラットフォームでは不安定になり、ゲームがクラッシュする可能性があります。 2 の累乗は、搭載メモリの少ないプラットフォームでテクスチャ解像度を下げるために、テクスチャ ストリーミングでも使用されます。
テクスチャ ストリーミングは以下に役立ちます。
-
テクスチャの解像度の変更。
-
ゲームのロード時間の特定。
-
ゲームのビジュアル品質の向上。
-
GPU メモリの節約。
2 の累乗とは
コンピュータやコンソールは、データを一度にまとめて処理するのではなく、限定された数のチャンクで管理および処理します。これは、World Partition を使用して背景をレンダリングする方法と同様の原理です。
ゲーム データのチャンクが 2 の累乗のルールを遵守している場合、データ チャンクによって、メディアに対してハードコードされた物理的な制限が課されます。これらの制限を遵守しない限り、ゲーム エンジンは アセット を適切に レンダリング しようとしてリソースを浪費します。
2 の累乗は、ゲーム データおよびレンダリング画像を最適化することで、ビジュアル エクスペリエンスを効率的に表示する方法です。
使用可能な画像サイズの例としては、256x256、512x512、1024x2048 などが挙げられます。2 の累乗を使用しないテクスチャは最適化されないため、不安定になり、島のパフォーマンスが低下します。
2 の累乗のテクスチャを使用すると、UEFN は次の 3 つの主要な機能を使用できます。
-
テクスチャの圧縮:最小限のビジュアルの負荷でメモリ サイズを約 8 分の 1 に削減する。
-
ミップマッピング:低解像度のバリアントを自動生成する。
-
テクスチャ ストリーミング:高解像度のデータがメモリにストリーミングされる前に、低解像度のバリアントを表示する。
これらの機能を組み合わせることで、4K テクスチャを使用したハイエンド アセットでも、あらゆる プラットフォーム でレンダリングすることができます。これは、テクスチャが 解像度 が低減された高品質のバリアントを持つためです。
たとえば、アルファ レイヤーのない 4000x4000 のテクスチャには、64 MB のメモリが必要です。このテクスチャは一度にロードする必要があるため、プレイヤーから遠く離れた小さな広告看板で エイリアシング を引き起こしていたとしても、4000x4000 で表示されます。テクスチャのサイズが大きすぎると、十分なメモリを搭載していないデバイスではクラッシュする可能性があります。
対照的に、デフォルトの圧縮を使用する 4096x4096 バージョンのテクスチャは、わずか 8 MB しか消費しないため、徐々にストリーミングされ、遠くの領域で発生するエイリアシングも軽減されます。 テクスチャのサイズが大きすぎると、パッケージ サイズも増大しますが、ゲームプレイでクラッシュが発生することはありません。
UEFN のテクスチャ サイズ要件
すべての島が確実にすべてのターゲット プラットフォームで適切に動作するよう、UEFN はテクスチャ アセットに対して特定の要件を適用します。
プロジェクトにこれらの要件に準拠していないテクスチャ アセットが含まれている場合、それらのテクスチャは検証に失敗し、プロジェクトのアップロードがブロックされます。
-
テクスチャが UI テクスチャ グループに割り当てられている場合、その寸法は最大サイズの 2048x2048 未満である必要があります。ただし、テクスチャの寸法は 2 の累乗である必要はありません (UI テクスチャは通常ストリーミングされないため、常に可能な限り鮮明に表示されます)。
-
テクスチャが UI テクスチャ グループに割り当てられていない場合、その寸法は最大サイズの 4096x4096 未満である必要があります。さらに、最小しきい値 (1024 x 1024、つまり 1048576) を超えるピクセルが含まれている場合は、ストリーミング可能な状態である必要があります。つまり、
-
各寸法は 2 の累乗 である必要があります (例:256x256、512x512、1024x1024 など)。
各次元が 2 の累乗でさえあれば、画像は正方形である必要はありません。たとえば、256x512、512x1024、256x1024 などです。
-
-
Never Stream プロパティを無効にする必要があります。
-
ミップマップ を生成するように設定する必要があります。
-
プロジェクト内のすべての非ストリーミング テクスチャの合計メモリ コストは、事前に設定された最大バジェット未満である必要があります。プロジェクトのメモリ コストは、Never Stream プロパティが有効になっているすべてのテクスチャのメモリ コストを合計することによって決定されます。内容:
-
寸法が 2 の累乗ではないすべてのテクスチャ (パディングとサイズ変更プロパティを使用して 2 の累乗にパディングまたは引き伸ばされていないもの)。これらのテクスチャでは、「Never Stream」プロパティが常に自動的に有効になります。
-
Never Stream プロパティが手動で有効になっている、その他のすべてのテクスチャ。
-
すべてのテクスチャには、予想される使用方法を示すテクスチャ グループ設定があります。このグループと、上記の他のテクスチャ プロパティを設定するには、コンテンツブラウザでテクスチャ アセットをダブルクリックしてテクスチャ エディタを開きます。
テクスチャのサイズを変更する
UEFN では、不均一な寸法や肥大化したサイズを使用する古いインポートされたテクスチャを 2 の累乗に基づいてスケールすることができます。 不具合のあるテクスチャを見つけて修正するには、以下の手順を実行します。
-
コンテンツ ドロワー または コンテンツ ブラウザ を開き、左側のファイル ツリー パネルで FortniteGame にあるプロジェクトの ルート コンテンツ フォルダ を選択します。
-
「All」にある「YourProjectName Content」というフォルダを見つけます。
-
コンテンツ ドロワー上部の検索バーで「
NeverStream==true&&TextureGroup!=UI
」と入力します。これにより、クエリが実行され、影響を受けるアセットが特定されます。
このフィルタされたビューに表示されるすべてのアセットは影響されます。 修正には時間がかかりますが、レベルのパフォーマンスが向上します。
UI グループにない影響されるテクスチャを更新するには、次の 2 とおりの方法があります。
オプション A は、UEFN の 一括編集 機能を使用して、テクスチャをグループ化し、ワンステップで編集します。これは、正しいアスペクト比になるようにテクスチャをパディングすることで、最もすばやくテクスチャを自動的に修正できる方法です。ただし、このパディングにより不必要なメモリの使用が生じる可能性があります。
オプション B は若干時間がかかるものの、複数の影響を受けるテクスチャを解決する必要がある場合、メモリ バジェットを最適に使用することができます。このオプションは、テクスチャを編集して再アップロードすることで、不要なパディングを避けることができます。
オプション A
-
コンテンツブラウザ の検索バーの横にある ハンバーガー メニュー をクリックし、[Textures (テクスチャ)] を選択します。コンテンツ ブラウザで、すべてのテクスチャが分離されます。
-
[Settings (設定)] アイコンをクリックして、[Columns (列)] をオンにします。これで、すべてのテクスチャがコンテンツ ブラウザの列にリストされます。
-
[Dimensions (寸法)] 列で、2 の累乗を使用していないアセットを検索します。
-
2 の累乗ルールを遵守していないテクスチャをすべて選択します。
-
コンテンツ ブラウザ 内を右クリックして、[Asset Actions (アセット アクション)] > [Edit Selection in Property Matrix (プロパティ マトリックスで選択内容を編集)] を選択します。これで一括エディタ ツールが開き、選択したすべてのテクスチャが [Component Editor (コンポーネント エディタ)] タブでアイテムごとに表示されます。
-
[Root (ルート)] セクションですべての テクスチャ ファイルの名前 を選択します。
-
[Pinned Columns (ピン留め済み列)] タブで [Texture (テクスチャ)] オプションを開きます。
-
[Power Of Two Mode (2 の累乗モード)] ドロップダウン メニューから [Pad to Power Of Two (2 の累乗にパディング)] を選択します。エディタ ウィンドウの一番下に進捗バーが表示されます。
テクスチャがすべて 2 の累乗に変換され、どのプラットフォームでも機能するようになります。
オプション B
-
テクスチャをダブルクリックして、テクスチャ エディタ を開きます。
-
[Details (詳細)] パネルの上部の検索バーで、ソース ファイル の名前を入力します。その結果、テクスチャの元のソース ファイルとして使用される PC 上のファイル パスが表示されます。
-
GIMP や Paint.NET 5 などの画像エディタを使用して、テクスチャのサイズを最も近い 2 の累乗サイズに変更します。テクスチャにアルファ レイヤーが含まれていない場合は、ペイントを使用することもできます。
-
2 の累乗サイズには、256、512、1024 などがあります。
-
たとえば、500x500 のテクスチャは 512x512、600x256 のテクスチャは 512x256 に変更します。
-
アスペクト比の変更が、島にマイナスの影響を及ぼすことはありません。
-
-
コンテンツ ブラウザ でテクスチャを右クリックして [Reimport (再インポート)] を選択します。
元のテクスチャ画像がファイルにない場合は、次の手順を実行します。
-
コンテンツ ブラウザ でテクスチャを右クリックして、[Asset Actions] > [Export (エクスポート)] を選択して、新しいコピーを取得します。
-
テクスチャのサイズを最も近い 2 の累乗のサイズに変更します。次に、コンテンツ ブラウザ でテクスチャを右クリックして、[Reimport With New File (新しいファイルで再インポート)] を選択します。ファイルをインポートしたら、テクスチャをダブルクリックして、テクスチャ エディタ を開きます。
-
[Details] パネルの検索バーで、「Never Stream」と入力し、このオプションを オフ に設定します。オフ に設定できない場合は、上部にある [Imported (インポート済み)] の指定で、画像のサイズが 2 の累乗であることを確認してください。
-
[Details] パネルで、[Mip Gen Settings (ミップ全般設定)] オプションを探します。次にドロップダウン メニューで、[From Texture Group (テクスチャ グループから)] を選択します。
-
[Details] パネルで、[Compression Settings (圧縮設定)] オプションを探して、ドロップダウン メニューで [Default (DXT1/5) (デフォルト (DXT1/5))] を選択します。
この手順が完了したら、コンテンツ ブラウザ の検索バーで再度「NeverStream==true&&TextureGroup!=UI
」を検索し、制限されたテクスチャが正常に削除されたかどうかを確認します。これで、更新したアセットがここに表示されなくなります。
個々のテクスチャを変更する
2 の累乗のルールを遵守していないテクスチャが 1 つしかない場合は、以下の手順を実行します。
-
テクスチャをダブルクリックして、テクスチャ エディタ を開きます。
-
[Details] の検索バーに「Power of Two Mode」と入力します。次に、[Padding and Resizing (パディングとサイズ変更)] ドロップダウン メニューで、[Pad to Square (正方形にパディング)] を選択します。
-
[Never Stream (ストリーミングしない)] オプションを探して、オフ に設定します。
-
[Mip Gen Settings] オプションを探します。次にドロップダウン メニューで、[From Texture Group] を選択します。
-
「Compression Settings」を検索して、ドロップダウン メニューで [Default (DXT1/5) (デフォルト (DXT1/5))] を選択します。
この手順が完了したら、コンテンツ ブラウザ の検索バーで「NeverStream==true&&TextureGroup!=UI
」を検索し、制限されたテクスチャが正常に削除されたかどうかを確認します。これで更新したアセットがリストに表示されなくなります。
無効なテクスチャを見つける
上記の要件に準拠していないテクスチャ アセットは、コンテンツ ブラウザでエラー アイコンでマークされます。アセットの上にマウスを置くと、ツールチップの上部に特定の問題に関する詳細が表示されます。
無効なテクスチャを準拠させる
外部ファイルからインポートした無効なテクスチャを修正するには、テクスチャ作成に使用した元のアプリケーションでテクスチャを編集し、アセットを再インポートするのが最善です。UEFN に再インポートする前に、別の専用の画像編集アプリケーションを使用してテクスチャを編集することもできます。
各画像の寸法が、上記の最大寸法よりも小さいことを確認してください。画像を UI に使用しない場合は、画像の高さと幅を両方とも 2 の累乗にします。各次元が 2 の累乗でさえあれば、画像は正方形である必要はありません。
UEFN では、別の方法として、UEFN のテクスチャ サイズ要件に自動的に準拠する、組み込みの機能を利用することもできます。利用するには、次の手順を実行してください。
-
コンテンツ ブラウザ で、1 つ以上の無効なテクスチャを選択します。
-
テクスチャのサムネイルを右クリックし、コンテキスト メニューから [Conform Texture (テクスチャを適合)] を選択します。
エディタは、検証の問題を回避するために、選択したテクスチャのプロパティを調整し、その結果をアウトプット ログに書き込みます。
この操作を行うと、以下のような結果になります。
-
テクスチャが UI テクスチャ グループにあり、その寸法が最大許容サイズより大きい場合、[Compression (圧縮)] > [Advanced (詳細設定)] > [Maximum Texture Size (最大テクスチャサイズ)] 設定が調整され、実行時に読み込むことができるテクスチャの最大解像度が制限されます。
-
テクスチャが UI テクスチャ グループに含まれておらず、その寸法が最大許容サイズより大きい場合、テクスチャの [LOD Bias (LOD バイアス)] 設定は調整され、テクスチャの最大のミップマップが破棄されます。これにより、実行時に読み込むことができるテクスチャの最大解像度が実質的に制限されます。
-
テクスチャが UI テクスチャ グループに含まれておらず、その寸法が 2 の累乗でない場合は、テクスチャの [Padding and Resizing] 設定は [Stretch To Power of Two (2 の累乗にストレッチ)] に設定されます。
-
テクスチャが UI テクスチャ グループにない場合、その [Never Stream (ストリーミングしない)] 設定は無効になります。