2.8K Views
October 09, 25
スライド概要
UE5 Mobile Game Development Essentials 2025 の講演における公開資料です。
Unreal Engineを開発・提供しているエピック ゲームズ ジャパンによる公式アカウントです。 勉強会や配信などで行った講演資料を公開しています。 公式サイトはこちら https://www.unrealengine.com/ja/
今 日 か ら UEでPC/コンソールゲームをスマホで動かすときの10の地雷 Epic Games Japan 湊 和久
本講演(”この“講演です!)のターゲット UE5ゲーム開発者 PCハイエンド コンソール経験者 UE5初心者/未使用者 ☞UE用語解説を仕込みましたので 雰囲気だけでもご堪能ください
重 た い の を な ん と か す る 見 た 目 の 違 い を 緩 和 す る と り あ え ず ス マ ホ で 動 か す 縦 マ ル チ の 心 得 ア ジ ェ ン ダ
重 た い の を な ん と か す る 見 た 目 の 違 い を 緩 和 す る と り あ え ず ス マ ホ で 動 か す 縦 マ ル チ の 心 得 ア ジ ェ ン ダ
第 一 部
問題 そもそもプロジェクトが ハイエンドすぎる モバイルなんて 考えてもなかった! どこから手を付けて いいのか わからない
解決策 心得 先にローエンドPCに対応し 次にモバイルに手を付ける心構えで
そもそも 我々はいま、 同一プラットフォーム内に 性能差がある世界に生きている
現代の縦マルチ時代の考え方 プラットフォームごとに ゲームを作る 「低」「中」「高」などの クオリティ設定ごとに調整する PCゲーは1本で低スぺから ハイスぺまで対応するもんね そこにプラットフォームを 当てはめりゃいいのか
※UEFNの基準より 4 シネマティック Xbox Series X PS5 3 Epic Xbox One PS4 2 高 Nintendo Switch 1 中 モバイル 0 低 パフォーマンス モード PC
①まず「PCゲーム」としてローエンドPC向けに最適化し、 ②それをモバイルで実行できるように作業を進めればよい 4 シネマティック Xbox Series X PS5 3 Epic Xbox One PS4 2 高 Nintendo Switch 1 中 モバイル 0 低 パフォーマンス モード ただし… ② ①品質単位と②デバイス単位 両方の設定を弄ります ① PC つまり…?☞
4 シネマティック Xbox Series X PS5 3 Epic Xbox One PS4 2 高 Nintendo Switch 1 中 モバイル 0 低 パフォーマンス モード ① PC ①「PCゲーム」としてローエンドPC向けに最適化の段階では、 全段階のデータを持った上で、ランタイムでどれを使わせるかという設定に向き合う 使用データの抑制... スケーラビリティ設定 の範疇ですな
4 シネマティック Xbox Series X PS5 3 Epic Xbox One PS4 2 高 Nintendo Switch 1 中 モバイル 0 低 パフォーマンス モード ② ① PC ②モバイルで実行できるようにする作業の段階では、モバイル固有の設定に加え、 使用しない高品質データをパッケージから除外する設定に取り組む 使用データの削減... こちらはデバイスプロファイル の範疇ですな
☞もっと知りたい 『スケーラビリティ』 『デバイスプロファイル』 詳しくは本日の鈴木、鍬農の講演で ご説明申し上げます!
重 た い の を な ん と か す る 見 た 目 の 違 い を 緩 和 す る と り あ え ず ス マ ホ で 動 か す 縦 マ ル チ の 心 得 ア ジ ェ ン ダ
第 二 部
地雷その1 ターゲットプラットフォーム設定が モバイルじゃない プロジェクト作成時の 設定のハナシ→ PCゲームとして プロジェクト作ったんだよなあ プロジェクト 作り直さないとだめ?
解決策 大丈夫だ、問題ない DefaultEngine.iniの一部の設定が異なるだけ (※エンジン設定ファイル)
デスクトップ設定 モバイル設定 [/Script/EngineSettings.GameMapsSettings] bUseSplitscreen=True [/Script/EngineSettings.GameMapsSettings] bUseSplitscreen=False [/Script/Engine.RendererSettings] r.SeparateTranslucency=True r.DefaultFeature.Bloom=True r.DefaultFeature.AmbientOcclusion=True r.HeterogeneousVolumes=True [/Script/Engine.RendererSettings] r.SeparateTranslucency=False r.DefaultFeature.Bloom=False r.DefaultFeature.AmbientOcclusion=False r.HeterogeneousVolumes=False [/Script/HardwareTargeting.HardwareTargetingSettin gs] TargetedHardwareClass=Desktop [/Script/HardwareTargeting.HardwareTargetingSettin gs] TargetedHardwareClass=Mobile [/Script/Slate.SlateSettings] bExplicitCanvasChildZOrder=True モバイル専用タイトルならともかく 縦マルチ時はデスクトップターゲット設定で正解
地雷その2 開発環境の構築が ややこしそう バージョン毎に 有志が動画作ってる印象 VerUpしたら 環境壊れるん?
解決策 セットアップのポイントを おさえよう
うまくいくときは本当にうまくいく ほぼ全自動でセットアップ 新しいバージョンほど便利になってる だがハマると本当にハマる 特にバージョンを戻すとき・・・? 今朝どはまりしました
確かに混乱の要因がある ● 最新バージョンは基本的に問題ない ● 古いUEバージョンの環境構築方法が最新の事情で変化する ● UEバージョンによってドキュメントが誘導するセットアップ手段が異なる ● 公式ドキュメントのドキュメント間リンクが不調 (UE5.5のドキュメントを読んでいたと思ったら、いつの間にかUE5.6の手順を追っていたぜ…) ● その結果、環境の手動インストールに挑戦することになり、みんなSDKの指 定でつまづいてるのではないか ドキュメントの問題に今朝気づきましたので フィードバックしておきます
「高度なインストール」DOCがより安定手段かも ● ①ランチャーのオプションでAndroid対応オプションをインストール ● ②指定バージョンのAndroid StudioとAndroid SDKをインストール ● ③環境変数 JAVA_HOME に②の jbr パスを指定 ● ④SetupAndroid.batを実行 ● ⑤プロジェクト設定「Android SDK」でSDKパスやバージョンを更新 (Androidの開発要件を参照) https://dev.epicgames.com/documentation/ja-jp/unreal-engine/advanced-setup-andtroubleshooting-guide-for-using-android-sdk
UE5.5だと…? ● Android NDK パス:SDKフォルダのndkサブフォルダから要件にあうもの ● NDK API Level:NDKがサポートするAPIレベルを調べて入れる (困ったら “latest”)
地雷その3 モバイルのメモリが少なすぎる 起動すらしねえ アイコンタップしたら 即落ちやん
それはそう
メモリはモバイル移植における 最大の障壁の一つ モバイルのメモリは PCとも違うし... コンソールとも違う...
PCとの違い - 仮想メモリあれどもスワップなし PC:メモリ不足時、スワップファイルへの退 避で、プロセスの即死を回避 モバイル:メモリ要求時に空きがなければ即ク ラッシュ
コンソールとの違い - 固定メモリなし コンソール:固定のメモリ総量を前提にできる モバイル:メモリの総量は「端末」「OSバー ジョン」「ベンダーのzRAM設定」などで変動 ※ストレージ⇔メモリ、メモリ→プロセッサ転送速度も 「桁違い」の差がある
Slay Animation Sample で実験 ゲーム開始後にカットシーン 再生するよう小改造しビルド ローエンドPC (2019) ぎりぎり動作 Galaxy Z Flip 5 (2023) 起動すらせず .OBBファイルは 1.8GBくらいあった Slayはそれほぼ全部 ロードするからねえ
解決策 アセットのサイズを削減しよう
一石四鳥:アセットのサイズ削減 動作に必要なメモリ量が減少 アプリが起動可能に ゲーム中のロード、転送が 間に合うようになる ゲームのダウンロードサイズ削減 お財布(サーバー維持費)に優しい Slayが動くところまで 削減するには... メモリ帯域幅への負荷減少 デバイス発熱、バッテリーに優しい
地雷その4 テクスチャがデカすぎる ぜんぶ4Kです ハイエンド向けに 作ってたので…
解決策 最大LODサイズ制限で 一律にサイズを下げよう
☞UE5用語『クック』 エディタで作成したアセットやコンテンツを 実行環境用に変換すること パッケージングの 1工程ですな
テクスチャLODグループで上限付与→クック時削減 [Android DeviceProfile] +TextureLODGroups=(Group=TEXTUREGROUP_World, MaxLODSize=512, LODBias=0, +TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap, MaxLODSize=512, LODBias=0, +TextureLODGroups=(Group=TEXTUREGROUP_WorldSpecular, MaxLODSize=512, LODBias=0, +TextureLODGroups=(Group=TEXTUREGROUP_Character, MaxLODSize=512, LODBias=0, … ● 最も高精細なLOD(LOD 0)のテクスチャサイズが512x512になる ● アセットが4Kでも、クックやメモリに乗るのはワーストで512x512 ● これをAndroidやiOSなどのモバイルデバイスのみに設定するのがポイント (詳しくは鈴木の講演にて紹介) Slay姉さんが 1.8GB→1.2GBになったわ でもまだ起動しねえ~
地雷その5 Naniteが使えない (※Nanite … 超高密度ポリゴン描画システム) 無段階LODウェ~イ ハイエンド向けに 作ってたので…
それはそう Forget Nanite~ (モバイル先進国・韓国のDevRelより)
非Nanite環境では通常のメッシュにフォールバック ↓ 一般的なLODを駆使した調整が必須
☞UE5用語『フォールバックメッシュ』 Naniteが使用できないときに利用される ポリゴン削減済みメッシュのこと 自動で作られるよ (手動で指定もできる)
解決策 非Naniteメッシュに 最小LODを指定してサイズを削る Nanite使用/未使用関係なく ローエンドではLOD戦だ!
☞キーワード『最小LOD』 ゲームで使える最高品質のLODレベル設定 (高コストのデータ利用に歯止めをかける仕組み) 例えば・・・ モバイルでは LOD 2が上限だよ
☞キーワード『最小LOD』 ゲームで使える最高品質のLODレベル設定 (高コストのデータ利用に歯止めをかける仕組み) これより高価なデータはクック時に除外! 使用メモリだけでなく、パッケージも減量 例えば・・・ モバイルでは LOD 2が上限だよ カクカクになったあ~
最小LOD指定のステップ ③Mobile設定を追加 ④最小LODを指定 ①LOD数を指定 アセットごとの 設定なのね ②変更を適用
二種類の最小LOD UE5標準 UEFN標準 Min LOD per Platform Min LOD per Quality ● デバイスごとに最小LODを指定 ● デフォルトで使用可能 ● 最小LODより高精細なものはパッケージ からストリップ(クックアウト) ● クオリティレベルごとに最小LODを指定 ● プロジェクト設定から有効化(UE) ● r.StaticMesh.MinLODQualityLevel でク ック時の基準を指定 ● 欠点:スマホのような機種間の性能差が 激しいプラットフォームが苦手 ● 欠点:クックアウト制御が分かりづらい MinLODQualityLevel = 3 … ~EpicまでのLODも保持 MinLODQualityLevel = 0 … Low超のLODは削除 MinLOD指定ではなく品質指定なので、 数字が大きいほど高級データを許容
スケルタルメッシュのLODも同様に設定可能 Per Qualityで設定の場合 プロジェクト設定で有効化し、 r.SkeletalMesh.MinLODQualityLevel で基準レベルを定める こっちも アセット単位なのね 「LOD設定」で グループ適用できるで
地道に削ること幾星霜 Slay姉さんついに起動成功! 1.2GB→0.8GBで ようやく起動
地雷その6 バーチャルパッドのボタン不足で ゲームを操作できない 起動したけど、 ゲームが進行できない! そもそも バーチャルパッドが出らん
Parrot Game Sampleで実験 ☞このプロジェクトは... Unity経験者向けに、 同じゲームをUE5/Unityで 別々に実装した学習教材 すぐスマホで 動きそうなツラだぜ さっそく 動かしてみよう!
ない
解決策 大丈夫!タッチインターフェイスを 取り急ぎ設定しよう!
☞UE5用語『タッチインターフェイス』 モバイルで使用するバーチャルパッドの 構成を定義する仕組み 仮想ボタンを配置し、物理 ボタンの役割を割り当て! 物理ゲームパッドと透過的 に扱えるのが強み
エンジンコンテンツに 2種の定義が付属 (スクリプト) プロジェクト設定 や ブループリントで有効化 DefaultVirtualJoystick s 左右に仮想サムスティック LeftVirtualJoysticOnly 左の仮想サムスティックのみ 要件を満たせなければ 自前定義を作ろう
Aボタンを(適当に)を足した例 ※ParrotサンプルではUMG(※UEのゲームUIシステム)の出し方で干渉を起こしたため、 ParrotHUD.cpp内のAddToPlayerScreen()をAddToPlayerViewportに変更して実 装
☞UE5用語『UMG』 UEのゲーム内UIをWYSIWYGでデザインし、 処理もノードグラフでかけるUIソリューション 低レベルUIシステム「Slate」 をラップしたもの UEのインゲームUIは大体 これで作られる
モバイルへの操作系移植の肌感 ゲームパッド操作 タッチインターフェイスで再 現可能 また、UMGで仮想ゲームパッ ドを自前実装するケースも PCクリック操作 UMGは指でそのまま操作可 また「Touch」装置として入 力アクションを取ることも可 注意:仮想パッドに触れてる とTouchはトリガーされない ジャンプなどにTouchを割り 当てないようにしよう UE5.6サードパーソン テンプレが自前実装に UE5.5以前のサード パーソンがコレだった ジェスチャー操作 パン、ピンチ、スワイプなど すべて自前実装が必要 Cropoutゲームサンプルに実 装例があるが万全ではない Fab(≒アセットストア)でサードパ ーティ製を探すのもアリ
重 た い の を な ん と か す る 見 た 目 の 違 い を 緩 和 す る と り あ え ず ス マ ホ で 動 か す 縦 マ ル チ の 心 得 ア ジ ェ ン ダ
第 三 部
地雷その7 シェーダコンパイルが 通らない ハイエンド向け マテリアルが… コンパイラすら 通らない
Parrot Game Sampleで実験 ☞このプロジェクトは... Unity経験者向けに..(略 すぐスマホで 動きそうな(略 さっそく 動かし(略
海が…!? PC版 モバイル版 ☞説明しよう! 実はParrotはUE5の上位機能を使いまくっている! 大域照明はLumen、海面には Single Layer Water … スマホ移植の格好の練習台といえる!
クック時のログを見ると確かにエラってる D:¥Projects2¥ParrotGameSampleUE56¥Content¥Materials¥Water¥M_SingleLayerWater.uasset: Failed to compile Material for platform SF_VULKAN_ES31_ANDROID, Default Material will be used in game. (Node DistanceToNearestSurface) Node not supported in shader platform VULKAN_ES3_1_ANDROID. The node requires DistanceField support. D:¥Projects2¥ParrotGameSampleUE56¥Content¥Materials¥Water¥M_SingleLayerWater.uasset: Failed to compile Material for platform GLSL_ES3_1_ANDROID, Default Material will be used in game. (Node DistanceToNearestSurface) Node not supported in shader platform OPENGL_ES3_1_ANDROID. The node requires DistanceField support.
クック時のログを見ると確かにエラってる D:¥Projects2¥ParrotGameSampleUE56¥Content¥Materials¥Water¥M_SingleLayerWater.uasset: Failed to compile Material for platform SF_VULKAN_ES31_ANDROID, Default Material will be used in game. (Node DistanceToNearestSurface) Node not supported in shader platform VULKAN_ES3_1_ANDROID. The node requires DistanceField support. D:¥Projects2¥ParrotGameSampleUE56¥Content¥Materials¥Water¥M_SingleLayerWater.uasset: Failed to compile Material for platform GLSL_ES3_1_ANDROID, Default Material will be used in game. (Node DistanceToNearestSurface) Node not supported in shader platform OPENGL_ES3_1_ANDROID. The node requires DistanceField support. VulkanやOpenGLと非互換のマテリアルノードが ある模様!
解決策 Feature Level Switchで モバイル用のバリアントを作ろう
☞UE5用語『Feature Level Switch』 プラットフォームのシェーダ機能レベルに応じて静的 にスイッチするマテリアルノード
実はこれじゃ直らないが… (とりあえずで……) まあ、こんな感じで 使います
地雷その8 一部の機能がモバイルで動かない 空が真っ黒だ フォグも出てねえ
モバイルでサポートされていない機能たち ● ● ● ● ● ● ● ● ● ● ● ● ● ボリュメトリッククラウド ボリュメトリックフォグ ハードウェアレイトレーシング パストレーサー カプセルシャドウ コンタクトシャドウ 事前計算された半透明シャドウ 動的半透明シャドウ Lumen スクリーンスペースGI スクリーンスペース反射 矩形ライト etc… https://dev.epicgames.com/documentation/ja-jp/unrealengine/rendering-features-for-mobile-games-in-unreal-engine
解決策 ローエンドで代替機能に切り替える 仕組みを実装しよう
例①:ストリーミングによる切り替え ハイエンド用レイヤ ・大気システム ・ボリュメトリッククラウド ・ボリュメトリックフォグ ゲームスタート ローエンド用レイヤ ・天球プログラム ・指数関数的高さフォグ プラットフォーム チェック & 分岐 どちらをロードするか 決める
エディタ拡張までやれば・・・完璧! ハイエンド用レイヤ ローエンド用レイヤ ・大気システム ・ボリュメトリッククラウド ・ボリュメトリックフォグ ・天球プログラム ・指数関数的高さフォグ エディタ拡張 1 プラットフォームプレビュー 変更時に読み替え実施
スライド 74 1 C++プロジェクト固有のクラスは、C++プレビュープラットフォームのトグルイベントを Kazuhisa Minato, 2025/10/02
例②:作りこみによる切り替え ハイエンド用 ローエンド用 ・大気システム ・ボリュメトリッククラウド ・ボリュメトリックフォグ ・天球プログラム ・指数関数的高さフォグ プログラムを書いて統合 ハイブリッド ・統合スカイアクタ ・統合クラウドアクタ ・統合フォグアクタ ・条件で起動コンポーネント切替 ・必須アセットはソフト参照 ・モバイルではアセットを除外指名 【利点】 ・PCでのオプション変更に耐えやすい ・エディタの環境変更に追従しやすい 【欠点】要追加実装コスト
地雷その9 Lumenが使えない (※Lumen = 動的GIシステム) 絵作り全部 Lumenでやってもーた Lumenがないと 見た目が全然ちがう!
それはそう
普及してる機種の大半でLumenは実行できない 次善の策を練られたし Forget Lumen~
次善策 ①SkyLight等を賢く使って同じ雰囲気を出す ②ミドルウェア『Enlighten』を導入する
①SkyLight等を賢く使って同じ雰囲気を出す 『The Talos Principle 2』での利用実績 ※ハイエンド Lumen/ローエンド GIなし
②ミドルウェア『Enlighten』を導入する 『インフィニティニキ』での導入実績 ※ハイエンド - Lumen/モバイル - Enlighten ☞詳細はシリコンスタジオ社に お問い合わせください
重 た い の を な ん と か す る 見 た 目 の 違 い を 緩 和 す る と り あ え ず ス マ ホ で 動 か す 縦 マ ル チ の 心 得 ア ジ ェ ン ダ
第 四 部
地雷その10 ハイエンド向けマテリアルが スマホで重い ハイエンド向けに 作ってきたので… ローエンド向けと 共存できるの?
解決策 Quality Switchノードで 軽量処理を組み込もう
☞UE5用語『Quality Switch』 設定された描画品質レベルごとに処理を静的に分岐 できるマテリアルグラフ用のノード
マテリアル品質はスケーラビリティで指定されるが... [EffectsQuality@1] r.MaterialQualityLevel=1 ; Medium [EffectsQuality@2] r.MaterialQualityLevel=2 ; High デバイスプロファイルで画一的にオーバーライドも可 [Mobile Device] ; モバイルではマテリアルクオリティをLowで固定 +CVar=r.MaterialQualityLevel=0
地雷その11 アニメーションが重い キャラいっぱい出ます アニメーションも いっぱいあります
解決策 既存の最適化機能を全ブッパする MMORPGも 動かしたッス
既存のアニメーション最適化機能 処理優先度を自動調整するシステム Significance Manager アニメーション更新を間引く Update Rate Optimization (URO) 同じ動きのキャラの再生コストを削減する Animation Sharing そのほか、仕様が許せば画面に出すキャラを減らすなどの大胆な対応も 【良資料紹介】 Unreal Engine 5 Character and Animation Optimizations | Unreal Fest 2024 https://www.youtube.com/watch?v=N_suMyUuork
地雷その12 PCGが配置するモノの物量が モバイル的にヤバイ フォリッジなんて 使ってませんよ きょうびはPCGで石も草も 大量配置ですわ!ガハハ
☞キーワード『PCG』 UE5に組み込まれた プロシージャルコンテンツ生成システム UE5に同梱されたHoudini やね(言い過ぎ感)
それは確かにヤバイ
本気したPCGがスマホで動きますか? = Electric Dreamsがスマホで動きますか? という問いに近い...
PCGのスケーラビリティは発展途上 ● 準公式的なアプローチを鋭意開発中 ● 現時点では、クオリティにあわせた密度の上げ下げが苦手 (PCGを使う=全プラットフォームで同じアクタ量を配置) ● ただし、強引な実例は存在 ○ 1つのPCGの仕事を、分布の異なる4つのPCGに分割 ○ ローエンドではうち1つのPCGしか稼働させない→物量が25%に! ○ ランタイム系PCGのみで利用可 ○ →PCG分割をすれば、Detail Modeで稼働切り分けができるかも? (詳細は鈴木の講演を参照) 力業!?
地雷その13 UMGがモバイルで重すぎる 動作も重い 描画も重い
それはそう
・・・ 解決策は!?
基本的にはLow環境向けに UMGを最適化するしかない ほとんどはこれで いいはずだ! しかし・・・
特に問題視されるもの 一部のPCゲーではおなじみの、 大量に出て、複雑に相互作用するUI これのモバイル移植は きつそうやな~
究極解決策!? とあるプロジェクトでの実例 ①デザイナーがUMGでUIを設計 ②エンジニアがUMGを受領 ③Slateで①の再現を自前実装 ①のUMGは実際の 製品では使わんそうだ 力業!?
地雷その14 サーマルスロットリングで 性能が落ちる
それはそう
☞用語『サーマルスロットリング』 高負荷などでスマホ発熱時、本体性能が 自動的に低下するバッテリー保護機構 ~ ~ ~ 冷えたら本気出す 本気出したら また冷やさなあかんがな
高すぎると問題が起こるけど、低すぎてもゲームを動かせない 絶妙な火加減が求められる 低温調理!?
解決策 ①サーマルAPIで自動調整する ②発熱要因を掴んで対応する
ADPF Unreal Engine プラグイン ● 発熱にあわせて自動的に グラフィックオプションを下げる ● iOSもサーマルAPIは存在 https://developer.android.com/games/engines/unreal/unreal-adpf
さまざまな要因で発熱・・・それがモバイル ● CPUやGPUの使用率を70%以下に ○ ゲームでは現実的ではない! ○ フレームレートを下げるくらい? ● 大量のメモリの読み書き ○ メモリ帯域幅いっぱいに使うと発熱してしまう! ○ じっくり読む分にはOK https://developer.arm.com/documentation/101897/0304/Optimization-basics/Memory-bandwidth
地雷その15 パッケージがでかすぎる ざっくり4GBに 収めなきゃ ストア申請時に リジェクトされちゃう
解決策 パッケージのデータを チャンクに外出ししよう
☞UE5キーワード『チャンク』 ゲームの標準パッケージに含まれない 追加のデータパッケージ DLCみたいなものね
チャンクへの分け方:概念編 Chunk Chunk ID:1 ID:8 Chunk Chunk ID:204 ID:79 アセット アセット アセット アセット アセット アセット アセット アセット アセット アセット アセット アセット
チャンクへの分け方:概念編 Chunk Chunk ID:1 アセット アセット ID:8 アセット アセット Chunk Chunk ID:204 ID:79 アセット アセット アセット アセット アセット アセット アセット 1アセットずつ指定していられないので、 さまざまな一括指定方法をサポート アセット
チャンクへの分け方:フォルダ単位で分けます編 ● ①プロジェクト設定>パッケージ>チャンク生成をチェック ● ②「プライマリアセットラベル」(データアセット)を作成し編集 ③Chunk IDを指定 ④常にクック ⑤ディレクトリ配下の 全アセットに自動ラベル ⑥ランタイム用動的アセット ロード管理用ラベルに指定
配信方法など、詳しくは各種資料をご参照ください https://www.docswell.com/s/EpicGamesJapan/5Q14NZue4-95204920 https://dev.epicgames.com/documentation/jajp/unreal-engine/cooking-content-and-creatingchunks-in-unreal-engine 枯れた技術なので、 昔の資料も十分通用!
第 五 部
本日説明した主なこと ● 「モバイル開発」は「スケーラビリティ対応」の一環 ● アセットのサイズを削減し、クックアウトを徹底 ● マテリアルはローエンド/モバイル用バリアントで対応 ● ローエンド表現への切り替えシステムの導入 ● PC/ハイエンドでは使わずに済んだ各種最適化技術の投入 ● 過剰発熱回避のため、デバイススペック以上に仕様を落とす必要性 ● チャンク移管で大容量データに対応
Special Thanks Epic Games Korea
ご あ ご 清 り ざ 聴 が い と ま う し た