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

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

> ハードウェアの自動検出、既定値の調整、電源の変化への対応により、ROG XBOX Ally などの Windows ハンドヘルドでパフォーマンスとバッテリー寿命のバランスを取ります。

![ASUS ROG XBOX Ally X](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)

XBOX はプラットフォームとして進化を続け、プレイヤーをコンソールからあらゆる画面へと導いています。XBOX on PC、スマート TV、ストリーミング デバイス、モバイル デバイス、Web ブラウザーなどです。この拡大には、バッテリーで動作する何百万台ものゲーミング デバイスが含まれます。これらの全体的な取り組みの詳細については、[https://aka.ms/sustainablegamedev](https://aka.ms/sustainablegamedev) を参照してください。

ここでは、最新のゲーミング カテゴリである Windows ハンドヘルドでゲームを快適に動作させるために、ゲーム開発者に役立ついくつかの記事とハブ ページを紹介します。

* ハンドヘルドの互換性 ([https://aka.ms/hhcompatguide)。ポータブルでタッチ対応、ゲームパッド優先のデバイスで優れたゲーム](https://aka.ms/hhcompatguide\)。ポータブルでタッチ対応、ゲームパッド優先のデバイスで優れたゲーム) エクスペリエンスを構築するためのガイド、ツール、サンプルです。
* ハンドヘルドのパフォーマンス ([https://aka.ms/hhperfguide)。このシリーズでは、モバイル](https://aka.ms/hhperfguide\)。このシリーズでは、モバイル) デバイス上のゲームをより長く、より速く動作させるために開発者が実行できる簡単な手順に焦点を当てています。

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

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

### ゲーム内設定が重要な理由

シリーズの概要 ([https://aka.ms/hhperfintro](https://aka.ms/hhperfintro)) で説明したように、ゲーム内設定は、バッテリー駆動のデバイスでゲームをより効率的に実行する方法を開発者が制御できるいくつかの方法のうちの最初のものです。プレイヤーがストアで XBOX on PC ゲームを表示すると、最も一般的な (通常は既定の) ゲーム設定を使用してそのデバイスでゲームを 30FPS 以上でプレイできる場合、製品詳細ページ (PDP) に Performance Fit 機能による推奨が表示されます。

![XBOX on PC の Performance Fit エクスペリエンス](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)

*図 1 - XBOX on PC ストアの製品詳細ページ (PDP) の例。強調表示された四角形 (黄色) は、Performance Fit の推奨が表示される場所を示しています。*

目標は、開発者が簡単に定義できる既定のゲーム設定を Windows ゲーミング ハンドヘルドで有効にして、優れた初回プレイヤー エクスペリエンスを実現することです。

* **はい、これは PC です!** Windows ゲーミング ノート PC と同様に、ハンドヘルド ゲーミング デバイスはポータブル PC です。タッチ スクリーンを備え、さまざまな電源状態でバッテリー駆動し、パフォーマンスと動作時間のバランスを取ることができます。
* **いいえ、単なる PC ではありません!** Windows ゲーミング ノート PC とは異なり、ハンドヘルド ゲーミング PC はバッテリー電源で何時間もゲームをプレイできることが期待されており、それを実現するためのスマートなゲーム設定が必要です。ハンドヘルド PC にはキーボードやマウスがない場合があります。XBOX on PC エクスペリエンスからゲーム ランチャーとの操作、プレイ中に表示される可能性のあるすべてのプロンプトに至るまで、ユーザー インターフェイスのすべてのレイヤーでコントローラーのサポートが必要です。また、ゲームでネイティブのタッチ サポートを提供すると、プレイヤーの利便性とアクセシビリティが大きく向上します。

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

この記事の重要なポイントとセクションの概要を次に示します。

1. **Windows ゲーミング ハンドヘルドで快適に動作するようにゲームをスケーリングします。** これは、開発者がバッテリー駆動のデバイス専用の設定をテストして作成することを意味します。これらの設定では、ゲームプレイや全体的なアート スタイルを犠牲にすることなく、バッテリー寿命が延びるようにゲームをスケール ダウンする必要があります。開発者は、市場の代表的なデバイス (たとえば、高効率の ROG XBOX Ally ハンドヘルド) でこれらの設定をテストする必要があります。
2. **ハードウェアの自動検出とゲーム内設定の適用を実装します。** 一部のゲームではすでにこれを実装しています。開発者は、スマートな既定値を作成するために、ハードウェアの機能に対応するどのようなオプションがゲームで利用できるかを検討する必要があります。
3. **ROG XBOX Ally と ROG XBOX Ally X を最初の指針にします。** これらのデバイスは、このシリーズで言及している設定の最適化を搭載した最初の Windows ゲーミング ハンドヘルドであり、XBOX + ASUS によって実装されています。

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

ネイティブ C++ サンプル ([https://aka.ms/hhexpsample](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 | デバイスを Windows ゲーミング ハンドヘルドとして識別させたい場合、相手先ブランド製造 (OEM) がこのフラグを追加します。 |
| BaseBoard 製品名\* ([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 Product ID: 150E | Vendor ID: 1002 Product ID: 163F | GPU の VID/PID は、ハードウェアのパフォーマンス層を最も広く示す指標となります。 |
| メモリ構成\*\*\* ([GetMemoryInfo.cpp](https://github.com/microsoft/Xbox-GDK-Samples/blob/main/Samples/Handheld/Snippets/GetMemoryInfo.cpp)) | 合計メモリ: 16 GB 専用 VRAM: 6 GB (合計 16 GB から共有)  | 合計メモリ: 24 GB 専用 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 の読みやすさに関して望ましくない結果が生じる場合があります。ゲーム デザイナーに役立つ可能性のある、画面サイズとブレークポイントに関する一般的なアプリのガイダンスについては、[/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 + G キーを押して Windows Game Barの 1 秒あたりのフレーム数 (FPS) メーターにアクセスするか、PresentMon を実行して (詳細については、[GitHub プロジェクト](https://github.com/GameTechDev/PresentMon) を参照してください) FPS をリアルタイムで記録および追跡します。
> 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 つの電源状態 (電源接続時またはバッテリー駆動時) に対応し、理想的には、ゲームの実行中に電源モードの変更イベントに応答できます。

> **プレイヤーの期待**
>
> 特に Windows ゲーミング ハンドヘルドでは、電源に接続した状態とバッテリー電源の状態を
> 頻繁に行き来するため、ゲームがパフォーマンスとバッテリー寿命の両方を可能な限りうまくバランスさせることを期待しています。ゲームは快適にプレイするために必要なものを把握しており、既定で最適な設定でインストールされ、最低でも 1080p30 のパフォーマンス (例: ROG XBOX Ally X) または 720p30 のパフォーマンス (ROG XBOX Ally) を提供します
>
> **テスト手順**
>
> 1. **バッテリーでテストします。** 既定の設定で、*電源を外してバッテリーを満充電した* ハンドヘルド デバイスにゲームをインストールして起動します。
> 2. **起動時と、アセットが読み込まれて IO が安定した後の両方で、FPS メーターを使用してパフォーマンスを監視します。** Windows + G キーを押して Windows Game Barの 1 秒あたりのフレーム数 (FPS) メーターにアクセスするか、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. **検出方法を実装します。** この記事の動的プリセットの検出に関するセクションを参照してください。
>
> **予想される結果**
> ゲームの起動時、または電源モードが変更されたという
> 通知を受けたときに適用される、最大 \[4] つの
> ゲーム内設定を作成/取得します。
> これらのゲーム内設定は、Windows ゲーミング ハンドヘルドの高パフォーマンス クラスと高効率
> クラスに対応するだけでなく、頻繁にバッテリーを切り替える場合の各デバイスの電源接続時と
> バッテリー駆動時の状態にも対応します。

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

* **動的 (推奨):** タイトルが、既知の [電源設定 GUID](https://learn.microsoft.com/windows/win32/power/power-setting-guids) のいずれかを指定して **RegisterPowerSettingNotificiation** API を使用し、電源プラン/プロファイルの変更を受け取るように登録すると、WPARAM 値が **PBT\_POWERSETTINGCHANGE** に設定され、LPARAM 値に追加の詳細が含まれた **WM\_POWERBROADCAST** メッセージも送信されます。たとえば、**GUID\_POWERSCHEME\_PERSONALITY** に登録すると、システムがバランスから高パフォーマンスなどに変更された場合に通知されます。**GUID\_ACTIVE\_POWERSCHEME** を使用すると、電源プロファイルの変更が発生した場合に通知されます。**GUID\_ENERGY\_SAVER\_STATUS** を使用すると、デバイスがバッテリー節約機能/省エネ モードになった場合に通知されます。
* **静的:** サンプルに示すようにデバイスに手動でクエリを実行して、デバイスが電源に接続されているか、バッテリーで動作しているかを簡単に判断できます。

### サポート | ハンドヘルド ゲーミング PC 向けのゲーム設定の最適化について質問や懸念がある場合はどこに問い合わせればよいですか?

次のリソースの概要に加えて、ID\@XBOX などの XBOX 開発者プログラムに参加している開発者は、フォーラム ([https://forums.xboxlive.com](https://forums.xboxlive.com) – 有効な [NDA アカウントでのサインインが必要](https://developer.microsoft.com/games/articles/2023/11/publishing-pathways-id-at-xbox/)) で Microsoft とつながることができます。また、すべての開発者は、Microsoft Game Dev Discord サーバー ([https://discord.gg/msftgamedev](https://discord.gg/msftgamedev)) で Microsoft とつながることができます。

* **Microsoft Game Dev ハンドヘルド開発ハブ:** [https://developer.microsoft.com/games/resources/handheld-development/](https://developer.microsoft.com/games/resources/handheld-development/)
* **Microsoft Windows ゲーミング ハンドヘルド コード サンプル:**[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 開発者フォーラム:** [https://forums.xboxlive.com](https://forums.xboxlive.com) ("handheld" タグを使用すると、リクエストが Microsoft の専門家に送られます)

***


## Related topics

- [PC ハンドヘルド概要](https://docs.xbox.com/ja-jp/build/gdk-and-engines/handheld/overview.md)
- [ハイブリッド CPU 環境でのゲーム パフォーマンス](https://docs.xbox.com/ja-jp/build/gdk-and-engines/guides/hybrid-cpu-performance.md)
- [パフォーマンスとリテンション](https://docs.xbox.com/ja-jp/services/playfab/data-analytics/legacy/insights/performance-retention.md)
- [パフォーマンスの設定](https://docs.xbox.com/ja-jp/services/playfab/api-references/rest/insights/analytics/set-performance.md)
- [Insights の価格](https://docs.xbox.com/ja-jp/services/playfab/data-analytics/legacy/insights/pricing.md)
