カスタム解像度の概要
Xbox Game Streaming では、スマートフォン、タブレット、その他のデバイスなど、テレビ以外のデバイスの出力解像度に基づいてゲームの解像度をカスタマイズできます。 これは、デバイス間でより豊富なエクスペリエンスを提供する上で役立ちます。 XGameStreamingGetDisplayDetails と XGameStreamingSetResolution が導入されました。これにより、Xbox の 16:9 縦横比から、スマートフォンやタブレットなどのさまざまなデバイスに一致する縦横比にストリームを切り替えることができます。
たとえば、次の図は、Xbox ゲームが通常の 16:9 テレビ画面と、ストリーミング環境の縦向きモードのタブレットまたはスマートフォンに対して、変更なしで、どのようにレンダリングされるかを示したものです。
図 1. XGameStreamingGetDisplayDetails
および XGameStreamingSetResolution
を使用しないさまざまなデバイスでのゲーム レンダリング
一方、次の図は、上記の API を使用して同じゲームが異なるデバイスでどのようにレンダリングされるかを示し、縦横比を 4:3 に設定します。 タブレットでのレンダリング時にスペースがどのように消えるかに注意してください。
図 2. XGameStreamingGetDisplayDetails
および XGameStreamingSetResolution
を使用したさまざまなデバイスでのゲーム レンダリング
XGameStreamingGetDisplayDetails
は、指定されたクライアントの表示の詳細を返します。 これを使用して、レンダリングするカスタム アスペクト比や、DirectCapture を有効にするために使用する解像度など、十分な情報に基づいた決定を下すことができます。 DirectCapture は、タイトルが互換性のあるフレームを提示するときにサーバーの待機時間を最小限に抑えるために構築され、約 16 - 72 ミリ秒の待機時間を排除しました。 この待機時間の短縮は、ゲームのレンダリング出力に依存するため、ゲームごとに異なります。
XGameStreamingSetResolution
は、タイトルが解像度を決定したら使用する必要があります。 この API は、ストリームの解像度を設定します。
API は、DirectCapture の要件とクライアントの推奨される解像度を公開して、異なるタイトルがそれらを採用できるようにします。
注意
最小/最大要件と他の DirectCapture ルールに従う必要があります。
これらの API はホーム本体に存在しますが、テレビの互換性を維持するために標準解像度のみを使用することを許可することに注意してください (実質的に非運用にします)。
API を適切に使用する方法
- ストリームを接続する
ゲームをストリーミングしたことがない場合は、次の手順に従ってください: 「Game Streaming Test の前提条件」
ディスプレイの詳細を取得する
ディスプレイの詳細を取得するために、ゲームから
XGameStreamingGetDisplayDetails
を呼び出せます。これにより、指定したクライアントのディスプレイの詳細が返されます。解像度を選択する
ゲームによって異なります。 次のようにいくつかのオプションがあります
a. 最適な一致として、
preferredWidth
/preferredHeight
を使用する。b.
XGameStreamingDisplayDetails
を使用して、事前構成済みの一連のテスト済み解像度で解像度に最も近い一致を見つける。c. PC バージョンのゲームの解像度ピッカーを有効にして、プレイヤーが解像度を選択できるようする。
maxWidth
maxHeight
とmaxPixels
の範囲内の解像度に制限することを検討してください。ストリーム解像度の設定
XGameStreamingSetResolution
を呼び出して、ストリーミング解像度を新しいレンダリング解像度に変更します。 ストリームの開始、サイズ変更、デバイスの回転アクションなど、ユーザーの操作に応じて呼び出すのが最善です。この解像度は preferredWidth/preferredHeight と一致する必要はありません。 一致しない場合は、残りのスペースを埋めるために文字または柱ボックスが追加された画面に収まるようにストリームをスケーリングできます。
注意
ストリーム解像度の設定には時間がかかり、限られたリソースが使用され、プレイヤーに表示される効果があるため、この API はまれにしか呼び出されません。たとえば、新しいクライアントが接続したり、優先解像度を変更したりする場合などです。
XGameStreamingSetResolution
を 200 ミリ秒ごとに複数回呼び出すと、短いストレッチが発生します。 この API はリアルタイムに対応していません。レンダリングを開始する
カスタム解像度のレンダリングは、他の解像度のレンダリングと同じである必要があります。ウィンドウ サイズを設定し、新しい解像度でバックバッファーを構成します。
試してみる場合は、こちらのサンプルに従ってください。