> ## 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.

# カスタム解像度の概要

> XGameStreamingSetResolution を使用して、XBOX Game Streaming の出力を 16:9 ではなく電話、タブレット、その他のクライアントのアスペクト比に合わせます。

XBOX Game Streaming では、電話、タブレット、その他 TV 以外のデバイスの出力解像度に基づいてゲームの解像度をカスタマイズできます。これは、デバイス間でよりリッチな体験を提供するのに役立ちます。[XGameStreamingGetDisplayDetails](/reference/system/xgamestreaming/functions/xgamestreaminggetdisplaydetails) と [XGameStreamingSetResolution](/reference/system/xgamestreaming/functions/xgamestreamingsetresolution) は、XBOX の 16:9 のアスペクト比から、電話、タブレットなどのさまざまなデバイスに合うアスペクト比にストリームを切り替えられるように導入されました。

たとえば、次の画像は、変更なしのストリーミング環境で、XBOX のゲームが通常の 16:9 の TV 画面と、縦モードのタブレットまたは電話でどのようにレンダリングされるかを示しています。

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/Letterbox_4_3Tablet.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=00e601ab2323aec3acd775323b1620eb" alt="The XBOX logo on a landscape tablet, with black bars on the top and bottom" width="1130" height="850" data-path="images/gdk/features/common/Letterbox_4_3Tablet.jpg" />

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/Letterbox_4_3Tablet_portrait.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=a84b5ea56442935ce6af972ee9b6bcab" alt="The XBOX logo on a portrait tablet with black bars on the top and bottom" width="712" height="940" data-path="images/gdk/features/common/Letterbox_4_3Tablet_portrait.jpg" />

**図 1. `XGameStreamingGetDisplayDetails` と `XGameStreamingSetResolution` なしで、さまざまなデバイスにレンダリングされるゲーム**

一方、次の画像は、上記の API を使用してアスペクト比を 4:3 に設定した場合、同じゲームがさまざまなデバイスでどのようにレンダリングされるかを示しています。タブレットでレンダリングするときに余白がなくなっている点に注目してください。

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/4_3Tablet_withCustomRes.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=a98a6638a2d9649d82f2eb9a02e561c4" alt="The XBOX logo filling the screen of a landscape tablet" width="1317" height="1000" data-path="images/gdk/features/common/4_3Tablet_withCustomRes.jpg" />

<img src="https://mintcdn.com/microsoft-4404708b/sIrPFR_ir_sNKVEv/images/gdk/features/common/16_9TV.jpg?fit=max&auto=format&n=sIrPFR_ir_sNKVEv&q=85&s=9cf9ad60e2e168f8f2864afe8f7f0b30" alt="The XBOX logo filling the screen of a 16:9 TV" width="1590" height="931" data-path="images/gdk/features/common/16_9TV.jpg" />

**図 2. `XGameStreamingGetDisplayDetails` と `XGameStreamingSetResolution` を使用して、さまざまなデバイスにレンダリングされるゲーム**

`XGameStreamingGetDisplayDetails` は、指定されたクライアントのディスプレイ詳細を返します。これは、レンダリングするカスタム アスペクト比や、[DirectCapture](/build/core-features/common/game-streaming/game-streaming-directcapture-overview) を有効にするために使用する解像度など、情報に基づいた判断を行うために使用できます。DirectCapture は、タイトルが互換性のあるフレームを提示したときにサーバー レイテンシーを最小化し、約 16 〜 72 ミリ秒のレイテンシーを排除するために構築されました。このレイテンシーの削減量は、ゲームのレンダリング出力に依存するため、ゲームごとに異なります。

`XGameStreamingSetResolution` は、タイトルが解像度を決定した後に使用します。この API はストリームの解像度を設定します。

これらの API は、DirectCapture の要件とクライアントの推奨解像度を公開しており、さまざまなタイトルがそれらを採用できるようにします。
<Note>DirectCapture の最小 / 最大要件やその他のルールに従う必要があります。</Note>

これらの API はホーム コンソール上にも存在しますが、TV との互換性を維持するために標準解像度のみが使用可能である (実質的に何もしない) 点にご注意ください。

## API を正しく使用する方法

1. **ストリームを接続する**

以前にゲームをストリーミングしたことがない場合は、[ゲーム ストリーミング テストの前提条件](/build/core-features/common/game-streaming/game-streaming-stream-your-game) の手順に従ってください。

1. **ディスプレイの詳細を取得する**

   ディスプレイの詳細を取得するには、ゲームは `XGameStreamingGetDisplayDetails` を呼び出せます。これは指定したクライアントのディスプレイ詳細を返します。

2. **解像度を選択する**

   これはゲームによります。以下のようないくつかの選択肢があります。

   a. 最適な一致として `preferredWidth`/`preferredHeight` を使用します。

   b. `XGameStreamingDisplayDetails` を使用して、事前に構成されたテスト済みの解像度セットから最も近い一致を見つけます。

   c. ゲームの PC 版で解像度ピッカーをオンにして、プレイヤーが解像度を選択できるようにします。`maxWidth` `maxHeight` および `maxPixels` の範囲内の解像度に制限することを検討してください。

3. **ストリーム解像度を設定する**

   `XGameStreamingSetResolution` を呼び出して、新しいレンダリング解像度にストリーミング解像度を変更します。ストリーム開始、リサイズ、デバイス回転アクションなど、ユーザーのアクションに応じて呼び出すのが最適です。

   この解像度は preferredWidth/preferredHeight と一致する必要はないことに注意してください。一致しない場合、ストリームは画面に合わせて拡大縮小され、残りのスペースを埋めるためにレターボックスまたはピラーボックスが追加される場合があります。

   > \[!NOTE]
   > ストリーム解像度の設定には時間がかかり、限られたリソースを使用し、プレイヤーに見える影響があるため、この API はまれにしか呼び出さないことに注意してください。たとえば、新しいクライアントが接続したときや、その推奨解像度が変更されたときなどです。

   `XGameStreamingSetResolution` を 200 ミリ秒に 1 回以上呼び出すと、一時的な引き伸ばしが発生します。この API はリアルタイム セーフでは*ありません*。

4. **レンダリングを開始する**

   カスタム解像度のレンダリングは、他の解像度のレンダリングと同じである必要があります。ウィンドウ サイズを設定し、新しい解像度でバック バッファーを構成します。

試してみたい場合は、[こちら](https://github.com/microsoft/Xbox-GDK-Samples/tree/main/Samples/xCloud/CustomResolution) のサンプルを参照してください。

## 関連項目

[カスタム解像度のベスト プラクティス](/build/core-features/common/game-streaming/game-streaming-custom-resolution-best-practices)

[カスタム解像度でのテスト (NDA トピック)](/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution)


## Related topics

- [カスタム解像度でのテスト](/ja-jp/build/core-features/common/game-streaming/game-streaming-testing-custom-resolution.md)
- [ゲーム ストリーミングにおけるカスタム解像度のベスト プラクティス](/ja-jp/build/core-features/common/game-streaming/game-streaming-custom-resolution-best-practices.md)
- [DirectCapture の概要](/ja-jp/build/core-features/common/game-streaming/game-streaming-directcapture-overview.md)
- [XGameStreamingDisplayDetails](/ja-jp/reference/system/xgamestreaming/structs/xgamestreamingdisplaydetails.md)
- [XBOX Game Streaming 向けにゲームを最適化する](/ja-jp/build/core-features/common/game-streaming/game-streaming-optimizing-your-game.md)
