Unreal Engine 5.7 プロジェクトにおける PC 最適化
Unreal Engine

Unreal Engine 5.7 プロジェクトにおける PC 最適化

著者GameDev Base
日付2026年10月17日
14分で読める

Unreal Engine 5.7 プロジェクトにおける PC 最適化:ハードウェアターゲット、アセット管理、およびプロフェッショナル向けプロファイリング戦略

本レポートは、Unreal Engine 5.7(UE5.7)プロジェクトにおけるPC最適化に関し、プロフェッショナルな開発ワークフローおよびインディエンジニア向けの実践的戦略を提供するものです。ターゲットハードウェア階層(Low/Mid/High/Ultra)、パフォーマンスバジェット(FPS、フレームタイム、CPU/GPUリソース配分)、アセット最適化(メッシュ、LOD、テクスチャ、Nanite、バーチャルテクスチャなど)、レンダリング設定(Lumen、レイトレーシング、シャドウ、リフレクション、ポストプロセス)、品質およびスケーラビリティ設定、プロファイリングツール(Unreal Insights、GPU Profiler、RenderDoc、PIX等)およびその分析ワークフロー、パッケージング/ビルドパイプライン(クック、シェーダーコンパイル、レベルストリーミング)、自動・手動テスト戦略、CI/CDを通じたパフォーマンス回帰テスト、ハードウェア・ドライバー固有の最適化、メモリ・ストリーミング管理、ならびにマルチプレイヤー・ネットワーク同期までを網羅的に解説します。


各工程に対して具体的な作業手順、推奨パラメーター値/範囲、メリット・デメリット、典型的なアンチパターン、および推定工数を提示します。さらに、スケーラビリティプリセット、プロファイリングツールの適用シナリオ、アセット最適化手法の改善効果を比較表として整理しています。最後に、コンソールコマンド、自動化スクリプト例、およびCIテストの最小構成例を掲載しています。

ハードウェアターゲットとパフォーマンスバジェット

PCプラットフォームは極めて多種多様なハードウェア構成が存在するため、ターゲットシステムを明確に分類・層化することが不可欠です。


  • Low階層: 統合GPU(iGPU)や旧世代GPUを中心としたエントリー環境

  • Mid階層: 現行のミドルレンジGPU(例: GTX 1660)および汎用CPUで構成される基準環境

  • High階層: モダンなアッパーミドル〜ハイエンドGPU(例: RTX 3070)環境

  • Ultra階層: 最上位構成(例: RTX 4080以上)のウルトラ環境


最小動作目標としては「1080p / Medium設定 / 30 FPS」、推奨動作目標としては「1440p / High設定 / 60 FPS」を設定します。60 FPS達成時のフレームバジェットは約16.66 ms、30 FPS達成時は約33.33 msとなります。パフォーマンスバジェット設定の際は、解像度、グラフィックスプリセット、最小・推奨システム要件(CPU、GPU、RAM、VRAM)を包括的に考慮し、プロファイリング作業は常に一定のハードウェアおよびドライバー環境下で実施する必要があります。


  • フレームバジェット指標: 60 FPS ≒ 16.7 ms、30 FPS ≒ 33.3 ms(モバイルまたはLow環境ターゲット時)。高リフレッシュレート/VR用途では 144 FPS ≒ 6.9 ms が目標となります。フレーム時間の分配はCPUとGPUの負荷に応じて均等またはターゲットの特性に合わせて調整します。GPU使用率が95%を超える場合はGPUバウンド、GPU使用率が低くGameThread時間が長い場合はCPUバウンドと判断します。

  • ハードウェアプロファイル調整: Intel Arcなどの最新iGPU構成も評価対象に含めます。Steamハードウェア調査結果やGPUベンチマークスコアを基に初期プロファイルを設定します。プロファイリング実施時は、常に最新の安定版GPUドライバーを使用し、バックグラウンドの不要プロセスを終了, GPUオーバークロックを解除(定格動作)してください。また、Windowsの「ハードウェアアクセラレータによるGPUスケジューリング(HAGS)」をオフにすることで、正確なCPU/GPUプロファイルを取得できます。

アセット(Asset)最適化

メッシュおよびLOD管理

複雑な3Dモデルには適切なLOD(Level of Detail)を設定します。各スタティックメッシュに対して3〜5段階のLODを生成することで、遠景描画時のジオメトリ負荷を大幅に軽減できます。低い詳細度のLODではポリゴン数を50%〜90%削減可能です。例えば、樹木モデルにおいてLOD0からLOD3へ移行させることで、シェーディングおよびDraw Callのコストを劇的に下げられます。


Naniteの適用は、原則として高ポリゴンかつ不透明(Opaque)なオブジェクトに限定することを推奨します。Naniteは、高密度な巨木や岩石群などのジオメトリ・ストリーミングを自動制御し、手動でのLOD作成の手間を排除します。これにより、極めて高密度な配置(例: 25万本の樹木配置において、従来描画の41 FPSに対しNanite適用で58 FPSを維持)が可能となります。ただし、単一プレーンで構成される草木カードのような単純なジオメトリでは従来のパイプラインの方が高速な場合があり、またVRAM追加消費が発生するため、stat RHIコマンド等を用いてメモリ使用量を常時監視する必要があります。マテリアルの複雑さは極力簡素化・共通化し、マルチマテリアルを単一のテクスチャアトラスへ集約します。遠景の建築物等に対してはHLOD(High-Level LOD)を構築してDraw Call数を削減し、シャドウ用の軽量プロキシメッシュ(Merge ActorsやGeometry Scriptの活用)を導入してシャドウ描画コストを抑制します。

テクスチャおよびバーチャルテクスチャ(VT)

ターゲットVRAM容量に応じてテクスチャ解像度の上限を設定します。Low環境向けには最大1K〜2K、High環境向けには4K以上を割り当てます。Mipmapを確実に有効化し、不要なVRAM占有および帯域幅の浪費を防ぎます。


ストリーミング・バーチャルテクスチャ(SVT)は広大な広域マップ等でVRAM消費を抑える強力な手段ですが、シェーダー演算の複雑化および追加処理コストが発生します。広大なオープンワールドで8Kの個別テクスチャを多用することは、パフォーマンスの向上ではなくメモリ負荷の増大につながります。基本原則として、バーチャルテクスチャは複雑なディテールと厳格なメモリ制約が両立するプロジェクトで採択し、単純なシーンでは通常のテクスチャストリーミングに戻すのが適切です。Oodle Texture等の圧縮技術を活用することで、パッケージサイズを50%以上削減し、ロード時間を短縮できます。

マテリアル最適化

マテリアル命令数は可能な限り削減します。シーン内で使用されるユニークマテリアル数を制限し、アトラス化によってDraw Callを最小化します。マルチレイヤーマテリアル、マスク制御、ダイナミック変形(WPO: World Position Offset、Vertex Displacement)を含むマテリアルはGPUコストを急増させるため、必要な箇所および近景オブジェクトのみに限定して適用します。不透明度の高いアルファテスト(Masked)テクスチャもオーバードローを増大させるため最適化が必要です。描画カリング(Culling)のために適切な描画距離(Cull Distance)を設定し、例えば小型の低木等は300〜500m手前でカリング処理を行います。

レンダリング設定とライティング

Lumenとレイトレーシング

Lumen動的グローバルイルミネーション(GI)は高品質なライティングを提供しますが、処理負荷は高めです。Low〜Mid構成をターゲットにする場合は、Lumenのディテールレベルを低下させるか、無効化を検討します(CVars: r.LumenSceneDetail, r.LumenReflections.Quality)。完全なリアルタイム・ハードウェア・レイトレーシングの代わりにLumenソフトウェアトレース等を活用し、CPU/GPUコストを回避します。シャドウ処理にVirtual Shadow Maps(VSM)を使用する場合、低スペック環境では r.Shadow.NaniteLODBias を調整してシャドウ用NaniteのLOD詳細度を下げます。VRAMが制限された環境で複雑なマルチレイヤー・レイ・リフレクションが必要な場合は、スクリーンスペース・リフレクション(SSR)へフォールバックします。

シャドウおよびリフレクション

動的シャドウはレンダーパイプライン中で最も高コストな処理の一つです。Low設定ではディレクショナルライトのCSM(Cascade Shadow Maps)解像度を下げ(r.ShadowQuality, r.CascadeDistributionExponent)、統合GPUやモバイル環境ではシャドウ距離を制限・無効化(r.Shadow.DistanceScale の削減)します。リフレクションキャプチャの配置数を最小限に抑え、旧世代/ミドルレンジ環境では平面リフレクション(Planar Reflections)やスクリーンスペースリフレクション(r.SSR.Quality)を優先採用します。

ポストプロセスおよびビジュアルエフェクト(VFX)

ポストプロセス(Depth of Field、Motion Blur、Bloom、Tone Mapping等)の負荷を管理します。不要な場合は被写界深度や被写体ブレをオフにします(r.DepthOfFieldQuality=0, r.MotionBlurQuality=0)。ボリューメトリックフォグやレンズフレアはLow設定でOFFまたは低クオリティ化します。スクリーンパーセンテージ(r.ScreenPercentage)はターゲット設定に応じて70%〜150%の間で微調整します。例えばUltra設定で100%(またはTSR適用)、Low設定では70〜80%に設定することで、視覚品質の低下を最小限に抑えつつGPU負荷を著しく軽減できます。

スケーラビリティと品質設定

UE5.7は、ハードウェア性能に応じてグラフィックス品質を動的にスケーリングするための「Engine Scalability」機能を提供します。標準プリセットとして Low、Medium、High、Epic、Cinematic が用意されています。これらは多数のコンソール変数(CVars: アンチエイリアス、シャドウ、テクスチャ、ポストプロセス、VFXレベル等)を統合的に変更します。初期設定では、自動ベンチマーク(synthbenchmark)を実行して最適な初期プリセットを選択し、必要に応じて Device Profiles や DefaultScalability.ini を編集してカスタマイズします。開発中および実機テスト時には、設定パネルまたは r.ScalabilityQuality などのコマンドから動的変更が可能です。


プリセット

スクリーン率

描画距離

シャドウ

テクスチャ

エフェクト

Low

70%

低 (0)

低 (0)

低 (0)

低 (0)

Medium

85%

中 (1)

中 (1)

中 (1)

中 (1)

High

100%

高 (2)

高 (2)

高 (2)

高 (2)

Epic

120%

最高 (3)

最高 (3)

最高 (3)

最高 (3)

Cinematic

150%

ウルトラ (4)

ウルトラ (4)

ウルトラ (4)

ウルトラ (4)


また、Significance Managerを活用することで、プレイヤーからの距離や重要度に応じてアクターのTick頻度や描画レベルを動的に制御できます。

プロファイリングツールと分析ワークフロー

UE5.7においてボトルネックを特定するための主要ツールおよびコマンド群です。


  • Unreal Insights: 複数フレームにわたるCPU/GPU/スレッドアクティビティを詳細記録します。エディター上で UnrealInsights.exe を起動し、ゲーム側から Trace.Send 127.0.0.1 または Trace.Pause / Trace.Resume を実行してデータを収集します。

  • Stat コマンド: リアルタイムの各種メトリクス表示。stat fps, stat unit, stat unitgraph(フレームタイム・各スレッド時間)、stat gpu(GPU描画負荷)、stat scenerendering(描画パス詳細)、stat nanite(Naniteジオメトリ統計)、stat RHI(VRAM・メモリ計測)などを活用します。FrameTimeに対してDrawTimeが大きければGPUバウンド、GameTimeが大きければCPUバウンドと判定します。

  • ProfileGPU: r.ProfileGPU=1 により、単一フレームのGPUレンダーパスとタイムラインをログ出力・可視化します。

  • RenderDoc: DirectX 12 / Vulkanの単一フレームキャプチャを行い、シェーダーパイプラインやDraw Callの低レイヤー解析を実施します。

  • PIX (Windows): Microsoft製のDX12 GPU解析ツール。グラフィックスAPI呼出し、パイプライン時間、イベントマーカー等を追跡します(AttachPixパラメータ使用)。

  • PresentMon: GPU/CPU使用率の時系列データを取得し、ボトルネックの発生傾向を可視化します。

  • GPUView: Windows Performance Toolkitと連携し、D3D作業キュー、コンテキストスイッチ、ハードウェアカーネルレベルの挙動を分析します。

  • VTune / uProf: Intel VTune / AMD uProf を使用し、CPUコードのホットスポット、キャッシュミス、メモリ帯域幅を深層解析します。


プロファイリング実施の際は、エディターオーバーヘッドを排除するため、必ず「Test」または「Shipping」ビルド設定を使用してください。Developmentビルドを使用せざるを得ない場合は、-dpcvars=r.D3D12.DRED=0,r.D3D12.LightweightDRED=0 などを指定して診断デバッグオーバーヘッドを解除します。

パッケージングおよびビルドパイプライン

製品版ビルドには Unreal Automation Tool (UAT) を用いたクックおよびパッケージング処理を行います。以下は代表的な自動ビルドコマンドラインです。


RunUAT.bat BuildCookRun -project="MyGame.uproject" -noP4 -platform=Win64 -clientconfig=Shipping -cook -allmaps -archive -archivedirectory="Build" -pak -prereqs全マップのクック、OodleによるPAKファイル圧縮に加え、シェーダーの事前キャッシュ(-BuildAllShaderFiles)およびPSO(Pipeline State Object)キャッシュの適用(-CacheShaders)を確実に行い、ゲーム実行中のシェーダースタッターを回避します。

手動・自動テスト戦略およびCI/CD回帰テスト

  • 手動テスト: BugItコマンド(例: BugItGo x y z)を活用して位置を完全固定し、再現性のある同一アングルからフレームタイム計測を実施します。

  • 自動テスト: シーケンサーや自動移動スクリプトと連携し、規定ルート上のFPS・フレームタイムを自動取得・ログ出力するベンチマーク機能を構築します。

  • CI/CD パイプライン: JenkinsやGitHub Actions等のCI環境上で定期的に自動ビルド・ベンチマークを実行します。得られたメトリクスを過去データと比較し、許容値を超えた性能劣化(Performance Regression)が発生した際に自動アラートを発報させます。


UE4Editor-Cmd.exe MyGame.uproject -run Automation.RunTests PerfBenchmark.TestSuite -log PerfTest.log

プラットフォーム、メモリ、ネットワーク最適化

  • プラットフォーム・ドライバー: Windows環境ではDirectX 12をデフォルトAPIとして採択します。ドライバは最新版に維持し、テスト時はOSの電源プランを「高パフォーマンス」に設定、VSyncをオフ(-novsync)にします。

  • メモリ・ストリーミング管理: r.Streaming.PoolSize でVRAM上限を設定し、オーバーフロー時の無駄なMipMap破棄を防ぎます。Level StreamingおよびWorld Partitionを最適化し、SizeMapツールでアセット参照の肥大化を防止します。LLM(Low Level Memory Tracker)を有効化してメモリリークを監視します。

  • マルチプレイヤー・ネットワーク: マルチプレイヤー環境ではCPUのTick負荷とネットワーク帯域がボトルネックとなります。Replication Update RateやNet Relevancyを設定し, RPCの最適化(Fast TArray構造体の利用など)を実施してパケットサイズを削減します。

インディ開発者向け推奨サードパーティツール

  • 無料プロファイリング: Unreal Insights, RenderDoc, PIX, PresentMon, GPUView, AMD RGP

  • アセット圧縮: Epic標準提供の Oodle Data / Oodle Texture, 標準統合された ACL (Animation Compression Library)

  • GPU/CPU詳細解析: NVIDIA Nsight, AMD uProf

  • メッシュ・テクスチャ最適化: Simplygon, UE Geometry Tools, Quixel Bridge


*情報 : 画像は Google Gemini によって生成されました。

OptimizationUE5PCOptimizationNaniteFoliageCIDCPipeline
ディープリサーチツール
ChatGPT
ChatGPT
翻訳ツール
Google Gemini
Google Gemini

共有