ADPF Unreal Engine プラグイン

Unreal Engine 用の Android Dynamic Performance Framework)(ADPF)プラグインは、安定したパフォーマンスを提供し、サーマル スロットリングを防ぎます。

GitHub からプラグインをダウンロードできます。

ADPF Unreal Engine プラグインの使用方法

  1. プラグインをダウンロードする

  2. プラグインをプロジェクト プラグイン フォルダにコピーする

  3. Unreal エディタで ADPF Unreal Engine プラグインを有効にする

  4. Unreal エディタを再起動する

  5. ゲームをビルドして調理する

ADPF Unreal Engine プラグインを有効にします。
図 1. ADPF Unreal Engine プラグインを有効にする。

プラグイン コンソールの構成

このプラグインには、実行時にプラグイン オプションを変更できる次の 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 スケジューリングの調整を行います。

ADPF Unreal Engine プラグインのフローチャート。
図 2. ADPF Unreal Engine プラグインのフローチャート

温度の状態に基づいてグラフィックの画質を変更する方法

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

Unreal Engine のスケーラビリティ。
図 3. Unreal Engine のスケーラビリティ

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 を使用する前に、ゲームのパフォーマンスを詳細にプロファイリングします。このデータは、プラグインの実装後に比較する際の重要なベンチマークとして機能します。
    ADPF Unreal Engine のベスト プラクティス
    図 4.ベースラインを確立します。
  • Unreal のスケーラビリティを活用する: Unreal のスケーラビリティを試すには、パフォーマンス向上が中程度しか行われない場合でも、試してみましょう。これにより、あまり労力をかけずにパフォーマンスのメリットを得ることができます。
    ADPF Unreal Engine のベスト プラクティス
    図 5.Unreal のスケーラビリティを活用
  • ゲーム内のグラフィック設定を優先する: ゲーム内のグラフィックの品質レベルを最適化します。これらの設定はゲームのコンテンツに合わせて調整されており、スムーズなフレームレートとより優れた温度管理を実現します。
    ADPF Unreal Engine のベスト プラクティス
    図 6.ゲーム内のグラフィック設定を優先します。