Unreal Engine 用の Android Dynamic Performance Framework)(ADPF)プラグインは、安定したパフォーマンスを提供し、サーマル スロットリングを防ぎます。
GitHub からプラグインをダウンロードできます。
ADPF Unreal Engine プラグインの使用方法
プラグインをダウンロードする
プラグインをプロジェクト プラグイン フォルダにコピーする
Unreal エディタで ADPF Unreal Engine プラグインを有効にする
Unreal エディタを再起動する
ゲームをビルドして調理する

プラグイン コンソールの構成
このプラグインには、実行時にプラグイン オプションを変更できる次の Unreal Engine コンソール変数が用意されています。
CVar |
有効な値 |
デフォルト値 |
説明 |
---|---|---|---|
r.AndroidPerformanceEnabled |
0、1 |
1 |
Android Performance プラグインを有効または無効にします。このプラグインは Android Adaptability API を使用して、デバイスの温度ステータスに基づいてゲーム設定を調整し、必要に応じて CPU を調整します。 0: オフ(無効) 1: オン(有効) |
r.AndroidPerformanceHintEnabled |
0、1 |
1 |
Performance Hint Manager を有効または無効にします。サポートされている Android デバイスでスレッド ブーストを最適化するには、この設定を有効にします。 0: オフ(無効) 1: オン(有効) |
r.AndroidPerformanceChangeQualities |
0、1、2 |
1 |
熱ステータスでゲームの忠実度レベルを調整する方法を選択します。 0: 設定は何も調整しません 1: サーマル ヘッドルームに応じて設定が調整されます 2: サーマル リスナーに合わせて設定が調整されます |
ADPF Unreal Engine プラグインの仕組み
プラグインはフレームごとに Monitor()
関数を呼び出し、前回のサーマル チェックからの経過時間をチェックします。1 秒以上経過すると、プラグインは現在の温度を読み取り、グラフィック品質の変更が必要かどうかを判断し(ゲームがサーマル スロットリングされているか、サーマル スロットリングのしきい値に近いかなど)、それに応じて設定を調整します。
また、プラグインはターゲット フレームと実際のフレーム時間をパフォーマンスのヒントのセッション API に報告し、必要に応じて CPU 周波数のブーストや CPU スケジューリングの調整を行います。

温度の状態に基づいてグラフィックの画質を変更する方法
このプラグインは、Thermal API からのフィードバックに基づいて、Unreal Engine Scalability を使用してグラフィックの品質を調整します。Unreal Engine のスケーラビリティには、3(最高品質)から 0(最低品質)の 4 つのレベルがあります。各レベルは、解像度スケール、ビュー距離、アンチエイリアス、後処理、その他の機能にマッピングされます。

ADPF には、サーマル ヘッドルームと温度ステータスの 2 つの方法でデバイスの温度状態を判断できます。サーマル ヘッドルームはより正確な値を提供するため、プラグインはデフォルトでサーマル ヘッドルームを使用し、Thermal Status API を無効にします。
Unreal Engine のスケーラビリティは、次の熱値に基づいて変化します。
サーマル ヘッドルーム
- 0.75 未満: 品質レベル 3
- 0.75 ~ 0.85: 品質レベル 2
- 0.85 ~ 0.95: 品質レベル 1
- > 0.95: 品質レベル 0
温度ステータス
- なし: 品質レベル 3
- 光: 品質レベル 2
- 中: 品質レベル 1
- 重大かつ重大: 品質レベル 0
詳細については、Thermal API をご覧ください。
Performance Hints API
このプラグインには、ゲームスレッド用とレンダリング スレッド(レンダリング スレッドと RHI スレッド)用の 2 種類のパフォーマンスのヒント セッションがあります。この 2 種類のパフォーマンスのヒントは、各フレームの実際の持続時間とターゲット時間をレポートするために使用されます。実際の期間がターゲット期間と異なる場合、システムは CPU 周波数を調整してスケジューリングを適切に選択します。
詳しくは、Performance Hint API をご覧ください。
おすすめの方法
このプラグインは、サーマル スロットリングを防止し、基本的な実装で持続的な目標 FPS を提供します。すぐに結果を得るには、デフォルトの Unreal Engine スケーラビリティ レベルで ADPF を適用します。
ただし、ゲームごとに異なるため、解像度スケール、視距離、アンチ エイリアス、後処理、シャドウ、テクスチャ、エフェクトなどのパラメータごとにスケーラビリティ レベルを微調整して、ADPF がゲームの動的なパフォーマンスを十分に実現できるようにします。
ADPF Unreal プラグインを使用して最適な結果を得るための 3 つの主なステップは次のとおりです。
- ベースラインを確立する: ADPF を使用する前に、ゲームのパフォーマンスを詳細にプロファイリングします。このデータは、プラグインの実装後に比較する際の重要なベンチマークとして機能します。
図 4.ベースラインを確立します。 - Unreal のスケーラビリティを活用する: Unreal のスケーラビリティを試すには、パフォーマンス向上が中程度しか行われない場合でも、試してみましょう。これにより、あまり労力をかけずにパフォーマンスのメリットを得ることができます。
図 5.Unreal のスケーラビリティを活用 - ゲーム内のグラフィック設定を優先する: ゲーム内のグラフィックの品質レベルを最適化します。これらの設定はゲームのコンテンツに合わせて調整されており、スムーズなフレームレートとより優れた温度管理を実現します。
図 6.ゲーム内のグラフィック設定を優先します。