> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# パフォーマンスと電力効率のバランス

> ROG XBOX Ally のような Windows ハンドヘルドで、ハードウェアの自動検出、デフォルトのチューニング、電源変化への反応により、パフォーマンスとバッテリー寿命のバランスを取ります。

<img src="https://mintcdn.com/microsoft-4404708b/5IpvKlT-jmAaVkeY/images/handheld/rog-xbox-ally-x.png?fit=max&auto=format&n=5IpvKlT-jmAaVkeY&q=85&s=ee22349c5b67c9ab3bd01120f186f74c" alt="ASUS ROG XBOX ALLY X" width="946" height="417" data-path="images/handheld/rog-xbox-ally-x.png" />

プラットフォームとして、XBOX はコンソールからあらゆるスクリーン（PC 上の XBOX、スマート TV、ストリーミング デバイス、モバイル デバイス、Web ブラウザー）へとプレイヤーを届けるように進化しています。この拡大には、バッテリーで駆動する何百万ものゲーミング デバイスが含まれます。これらの全体的な取り組みは、こちらで詳しく説明されています: [https://aka.ms/sustainablegamedev](https://aka.ms/sustainablegamedev)。

以下は、ゲーム開発者が最新のゲーミング カテゴリである Windows ハンドヘルド上でゲームを良好に動作させるのに役立つ、いくつかの有用な記事とハブ ページです。

* Handheld Compatibility ([https://aka.ms/hhcompatguide](https://aka.ms/hhcompatguide))。ポータブル、タッチ対応、ゲームパッド ファーストのデバイス上で優れたゲーミング体験を構築するためのガイド、ツール、サンプル。
* Handheld Performance ([https://aka.ms/hhperfguide](https://aka.ms/hhperfguide))。このシリーズは、モバイル デバイス上のゲームをより長く、より高速に動作させ続けるために開発者が取れる簡単な手順に焦点を当てます。

この記事、これらのリソース、その他は [https://aka.ms/xboxhhdev](https://aka.ms/xboxhhdev) で紹介されています。

## ゲーム内設定の最適化

### なぜゲーム内設定が重要なのか？

シリーズの紹介 ([https://aka.ms/hhperfintro](https://aka.ms/hhperfintro)) で述べたように、ゲーム内設定は、バッテリー駆動デバイス上でゲームをより効率的に動作させるために開発者が制御できる最初のいくつかの方法の 1 つです。プレイヤーが XBOX on PC ゲームをストアで閲覧するとき、Product Details Page (PDP) は、そのデバイスが最も一般的な（通常はデフォルトの）ゲーム設定を使ってそのゲームを 30FPS 以上でプレイできるかを、Performance Fit 機能からの推奨として表示します。

<img src="https://mintcdn.com/microsoft-4404708b/MVw3uKm0dcJ_XQoZ/images/handheld/xbox-on-pc-performance-fit-experience.webp?fit=max&auto=format&n=MVw3uKm0dcJ_XQoZ&q=85&s=b6316d0ff68ee54b406d4cbc81c6c9bf" alt="XBOX on PC Performance Fit Experience" width="2264" height="1052" data-path="images/handheld/xbox-on-pc-performance-fit-experience.webp" />

*図 1 - XBOX on PC ストアの商品詳細ページ (PDP) の例。ハイライトされた矩形（黄色）は Performance Fit の推奨が表示される場所を示しています。*

目標は、優れた初回プレイヤー体験を可能にするために、開発者が定義しやすいデフォルトのゲーム設定を Windows ゲーミング ハンドヘルドで有効化することです。

* **はい、それは PC です！** Windows ゲーミング ラップトップと同様、ハンドヘルド ゲーミング デバイスはポータブル PC です。タッチ スクリーンを含み、パフォーマンスと動作時間のバランスを取るためにさまざまな電源状態を持ち、バッテリーで動作できます。
* **いいえ、単なる PC ではありません！** Windows ゲーミング ラップトップとは異なり、ハンドヘルド ゲーミング PC はバッテリー電源で数時間ゲームをプレイすることが期待されており、これを実現するのに役立つ賢いゲーム設定が必要です。ハンドヘルド PC にはキーボードやマウスがない場合があります。XBOX on PC 体験からゲーム ランチャーとのやり取り、プレイ中に現れる可能性のあるあらゆるプロンプトに至るまで、ユーザー インターフェイスのすべてのレイヤーでコントローラー サポートが必要です。ゲームは、プレイヤーの利便性とアクセシビリティのためのネイティブ タッチ サポートを持つことからも大きな恩恵を受けます。

### ゲーム内設定に関する主な推奨事項は何か？

この記事の重要な要点とセクションのサマリーは次のとおりです。

1. **Windows ゲーミング ハンドヘルドでうまく動作するようにゲームをスケールしてください。** これは、バッテリー駆動デバイス向けに専用の設定を開発者がテストし作成することを意味します。これらの設定は、バッテリー寿命が延びるようにゲームをスケール ダウンすべきですが、ゲームプレイや全体的なアート スタイルを犠牲にすべきではありません。市場に出ている代表的なデバイス（たとえば、高効率の ROG XBOX Ally ハンドヘルド）でこれらの設定をテストする必要があります。
2. **ハードウェアの自動検出とゲーム内設定の適用を実装してください。** 一部のゲームはすでにこれを持っています。開発者は、賢いデフォルトを作成するためにハードウェア能力にマップされる、ゲーム内で利用可能なオプションについて考える必要があります。
3. **ROG XBOX Ally と ROG XBOX Ally X を最初のガイドにしてください。** これらのデバイスは、XBOX + ASUS から実装された、このシリーズで参照される設定最適化を備えた最初の Windows ゲーミング ハンドヘルドです。

### ガイドライン | ハードウェアの自動検出とゲーム内設定の適用を実装する

ネイティブ C++ サンプル ([https://aka.ms/hhexpsample](https://aka.ms/hhexpsample)) と Unity マネージド C# サンプル ([https://aka.ms/hhexpsample\_unity](https://aka.ms/hhexpsample_unity)) を提供しています。これらのサンプルは、開発者が検出コードを自分のゲームにコピー & ペーストしやすくします。これらのコード スニペットを使って、デバイス内のハードウェア コンポーネントの能力に関する情報を取得できます。開発者はそれらの能力を使って、幅広いデバイスにわたってスケールするゲームの理にかなったデフォルトを作成できます。

例として、ROG XBOX Ally と ROG XBOX Ally X を使い、C++ サンプルのソース コード内でその値が見つかる場所へのリンクとともに、コード スニペットから返される値を以下に示します。表の下にアスタリスク (\*) 付きで詳しく説明した項目を参照してください。

| **コンポーネント**                                                                                                                                                      | **ROG XBOX Ally (2025)**\*                          | **ROG XBOX Ally X (2025)**                          | **注記**                                                                                     |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| IsHandheld ([IsDeviceHandheld.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/IsDeviceHandheld.cpp))                      | TRUE                                                | TRUE                                                | Original Equipment Manufacturer (OEM) は、デバイスを Windows ゲーミング ハンドヘルドとして識別させたい場合、このフラグを追加します。 |
| BaseBoard Product Name\* ([GetDeviceOEMInfo.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/GetDeviceOEMInfo.cpp))        | RC73YA                                              | RC73XA                                              | OEM はこの SMBIOS フィールドをプログラムし、互換 Windows ゲーミング ハンドヘルドとして設計された SKU を区別するために使用する場合があります。       |
| CPU ([Processor.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/Processor.cpp))                                           | AMD Ryzen Z2 A                                      | AMD Ryzen AI Z2 Extreme                             | GPU とともに、ハードウェアのクラスを最も可能性が高く示す最初の識別子を提供します。                                                |
| GPU ([GetGPUInfo.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/GetGPUInfo.cpp))                                         | Vendor ID: 1002<br />Product ID: 150E               | Vendor ID: 1002<br />Product ID: 163F               | GPU VID/PID はハードウェア パフォーマンス層の最も広範な指標を提供します。                                                |
| メモリ構成\*\*\* ([GetMemoryInfo.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/GetMemoryInfo.cpp))                           | 総メモリ: 16 GB<br /><br />専用 VRAM: 6 GB（16 GB の合計から共有） | 総メモリ: 24 GB<br /><br />専用 VRAM: 8 GB（24 GB の合計から共有） | テクスチャやキャッシュ マップのサイズなどの決定に有用です。                                                             |
| 画面解像度 ([GetDeviceResolutionAndRefresh.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/GetDeviceResolutionAndRefresh.cpp)) | 1920x1080\*\*                                       | 1920x1080                                           | デバイスのネイティブ解像度に合わせると、視覚品質が向上する場合もあれば、その他の設定最適化なしにパフォーマンスが低下する場合もあります。                       |

> * 「\*」 = VRAM 割り当ては **ユーザーが選択可能** です。これらはデフォルト値であり保証されるものではなく、ベースライン プロファイリング計算に使用する例です。
> * 「\*\*」 = このデバイスの推奨デフォルト解像度は 720p です。開発者は、ゲームでうまく動作するものを判定するために設定をテストし、適切に設定すべきです。さらに、より高い解像度で 30FPS を下回って実行されるとテストで示されたケースにおいて効率を改善するために、いくつかのゲーム別設定はゲームに広告される画面解像度をオーバーライドできますが、これはプレイヤーによってオーバーライドできます。
> * 「\*\*\*」 = DirectX ゲームでは、ビデオ メモリのゲーム バジェットを動的に決定するために [QueryVideoMemoryInfo](https://learn.microsoft.com/windows/win32/api/dxgi1_4/nf-dxgi1_4-idxgiadapter3-queryvideomemoryinfo) を使用することが既存の推奨事項です。例 [GetMemoryInfo.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/GetMemoryInfo.cpp) で使われている [(GlobalMemoryStatusEx)](https://learn.microsoft.com/windows/win32/api/sysinfoapi/nf-sysinfoapi-globalmemorystatusex) メソッドは、ゲームがメモリをどう使用するかの他の側面を知ることが価値ある場合に、追加の解決策となります。

**UI / スケーリング要素に関する重要な注意事項。** 画面解像度の違いへの調整は、特に小さな画面でゲーム内 UI の可読性に関して望ましくない結果を生む場合があります。ゲーム デザイナーに役立つ可能性のある画面サイズとブレイクポイントに関する一般的なアプリのガイダンスは、こちらで確認できます: [https://learn.microsoft.com/windows/apps/design/layout/screen-sizes-and-breakpoints-for-responsive-design](https://learn.microsoft.com/windows/apps/design/layout/screen-sizes-and-breakpoints-for-responsive-design)。

### ガイドライン | 静的ゲーム内設定を作成する

静的ゲーム内設定は、状態が最後にチェックされた単一の電源状態のハードウェア構成のみを考慮します。静的なゲーム内設定を作成することは、フレームレートのような客観的なメトリックを対象とすることから始まります。

> **プレイヤーの期待**
>
> ゲームは、うまくプレイするために何が必要かを理解し、デフォルトで最低 1080p30 パフォーマンス (例: ROG XBOX Ally X) または 720p30 パフォーマンス (ROG XBOX Ally) を提供する最良の設定でインストールされます。
>
> **テスト手順**
>
> 1. **バッテリーでテストする。** ハンドヘルド ユニットにデフォルト設定で、***電源から抜いたフル バッテリー*** の状態で、ゲームをインストールして起動します。
> 2. **起動時とアセットのロード後 / IO の安定後の両方で、FPS メーターでパフォーマンスをモニタリングする。** Windows Game Bar の Frames Per Second (FPS) メーターに Windows + G を押してアクセスするか、PresentMon を実行して FPS をリアルタイムでログして追跡します（詳細については [GitHub project](https://github.com/GameTechDev/PresentMon) を参照）。
> 3. **平均 FPS ではなく最小 FPS の設定に注目する。** FPS が最低 1080p30 (例: ROG XBOX Ally X または同等ハードウェア) または 720p30 (例: ROG XBOX Ally または同等ハードウェア) で一貫して実行されるまで設定を調整します。
> 4. **高性能ハードウェア構成と効率的なハードウェア構成の両方のゲーム内設定のライブラリを作成する。** 異なるハードウェア SKU（例: ROG XBOX Ally 対 ROG XBOX Ally X）向けの理想的な設定を確認する将来のテストのために、これらの設定を保存します。
>
> **期待される結果** Windows ゲーミング ハンドヘルドの高性能クラス（例: ROG XBOX Ally X）と高効率クラス（例: ROG XBOX Ally）の両方で安定したフレームレートを維持するのに等しく機能する、少なくとも \[2] つのゲーム内設定を作成 / キャプチャします。

### ガイドライン | 動的ゲーム内設定を作成する

動的なゲーム内設定は、静的なゲーム内設定よりもきめ細かいです。少なくとも 2 つの電源状態（電源接続時、またはバッテリー駆動時）にマップされ、理想的にはゲーム実行中の Power Mode 変更イベントに応答できます。

> **プレイヤーの期待**
>
> 特に Windows ゲーミング ハンドヘルドでは、電源接続とバッテリー駆動を行き来する際、ゲームがパフォーマンスとバッテリー寿命の両方を可能な限りバランスさせることを期待します。ゲームは、うまくプレイするために何が必要かを理解し、デフォルトで最低 1080p30 パフォーマンス (例: ROG XBOX Ally X) または 720p30 パフォーマンス (ROG XBOX Ally) を提供する最良の設定でインストールされます。
>
> **テスト手順**
>
> 1. **バッテリーでテストする。** ハンドヘルド ユニットにデフォルト設定で、*電源から抜いたフル バッテリー* の状態で、ゲームをインストールして起動します。
> 2. **起動時とアセットのロード後 / IO の安定後の両方で、FPS メーターでパフォーマンスをモニタリングする。** Windows Game Bar の Frames Per Second (FPS) メーターに Windows + G を押してアクセスするか、PresentMon を実行して FPS をリアルタイムでログして追跡します。
> 3. **平均 FPS ではなく最小 FPS の設定に注目する。** FPS が最低 1080p30 (例: ROG XBOX Ally X または同等ハードウェア) または 720p30 (例: ROG XBOX Ally または同等ハードウェア) で一貫して実行されるまで設定を調整します。
> 4. **高性能ハードウェア構成と効率的なハードウェア構成の両方のゲーム内設定のライブラリを作成する。** 異なるハードウェア SKU（例: ROG XBOX Ally 対 ROG XBOX Ally X）向けの理想的な設定を確認する将来のテストのために、これらの設定を保存します。
> 5. **検出メソッドを実装する。** この記事の Dynamic Preset detection のセクションを参照してください。
>
> **期待される結果** ゲームの起動時、または Power Mode が変更されたという通知を受けたときに適用される、最大 \[4] つのゲーム内設定を作成 / キャプチャします。これらのゲーム内設定は、Windows ゲーミング ハンドヘルドの高性能クラスと高効率クラスにマップされるだけでなく、各デバイスがバッテリーを頻繁に切り替えるときの電源接続とバッテリー駆動の状態にもマップされます。

### ガイドライン | ハードウェアの電源状態を検出する

* **動的 (推奨):** タイトルが既知の [Power Setting GUIDs](https://learn.microsoft.com/windows/win32/power/power-setting-guids) のいずれかを使って **RegisterPowerSettingNotificiation** API で電源スキーム / プロファイル変更の受信を登録した場合、WPARAM 値が **PBT\_POWERSETTINGCHANGE** に設定され、LPARAM 値に追加の詳細を含む **WM\_POWERBROADCAST** メッセージがさらに送信されます。たとえば、**GUID\_POWERSCHEME\_PERSONALITY** に登録すると、システムが Balanced から High Performance などに変わったときに通知されます。**GUID\_ACTIVE\_POWERSCHEME** を使用すると、任意の電源プロファイル変更が発生したときに通知されます。**GUID\_ENERGY\_SAVER\_STATUS** を使用すると、デバイスが Battery/Energy Saver モードに入ったときに通知されます。
* **静的:** サンプルに示されているように、デバイスに電力が供給されているか、バッテリーで動作しているかを容易に判定するために、デバイスを手動で照会できます。

### サポート | ハンドヘルド ゲーミング PC 向けのゲーム設定の最適化について質問や懸念があるときはどこに行けばよいか？

以下のリソース サマリーに加えて、ID\@XBOX のような XBOX Developer Program に参加している開発者は、フォーラム ([https://forums.xboxlive.com](https://forums.xboxlive.com) – アクティブな [NDA アカウントでのサインインが必要](https://developer.microsoft.com/games/articles/2023/11/publishing-pathways-id-at-xbox/)) で私たちと連絡を取ることができます。すべての開発者は、Microsoft Game Dev Discord サーバー ([https://discord.gg/msftgamedev](https://discord.gg/msftgamedev)) でも私たちと連絡を取ることができます。

* **Microsoft Game Dev Handheld Development Hub:** [https://developer.microsoft.com/games/resources/handheld-development/](https://developer.microsoft.com/games/resources/handheld-development/)
* **Microsoft Windows Gaming Handheld Code Samples:** [https://developer.microsoft.com/games/articles/2025/07/windows-gaming-handheld-code-samples/](https://developer.microsoft.com/games/articles/2025/07/windows-gaming-handheld-code-samples/)
* **Microsoft Game Dev Discord:** [https://discord.gg/msftgamedev](https://discord.gg/msftgamedev)
* **Microsoft NDA Developer Forums:** [https://forums.xboxlive.com](https://forums.xboxlive.com)（対象領域の専門家にリクエストをルーティングするために「handheld」タグを使用してください）

***


## Related topics

- [PC ハンドヘルド概要](/ja-jp/build/gdk-and-engines/handheld/overview.md)
- [ハイブリッド CPU 環境でのゲーム パフォーマンス](/ja-jp/build/gdk-and-engines/guides/hybrid-cpu-performance.md)
- [パフォーマンスとリテンション](/ja-jp/services/playfab/data-analytics/legacy/insights/performance-retention.md)
- [Insights の価格](/ja-jp/services/playfab/data-analytics/legacy/insights/pricing.md)
- [PIX の GPU キャプチャとパフォーマンス解析](/ja-jp/tools/tools-console/pix/gpu/index.md)
