ハンドヘルドのドック時の挙動
一部のハンドヘルドはドックした状態でプレイされます。ハンドヘルドがドックされているかを確認する API はありませんが、ドックされたデバイスには外部ディスプレイが接続されている可能性があります。EnumDisplayDevices および EnumDisplaySettings API を使用して、外部ディスプレイを確認できます。 ハンドヘルド デバイスがドックされている場合、次の方法で接続された外部ディスプレイを確認してください。- 追加のゲームパッドを確認します。ハンドヘルドの内蔵ゲームパッドは常に利用可能ですが、ユーザーは追加のゲームパッドを接続することもあります。
- 接続されたディスプレイの画面サイズを確認します。
- ゲームパッドが依然として主要な入力メカニズムであるため、仮想キーボードに関する推奨事項は引き続き有効です。
- 一部のプレイヤーは、コンソールと同様にマウスとキーボードを接続することがあります。
保証される入力
さまざまなゲーミング ハンドヘルドは追加の入力オプションを持つことがありますが、ハンドヘルド デバイスには以下の入力があります。- A、B、X、Y ボタン
- 左バンパー、右バンパー
- 左トリガー、右トリガー
- 左サムスティック、右サムスティック
- 方向パッド
- メニュー ボタン
- View ボタン
電源
ハンドヘルド デバイスがバッテリーではなく AC 電源を使用しているかを確認するには、GetSystemPowerStatus 関数を呼び出します。これは、デバイスが AC 電源を使用しているかを示し、バッテリー充電状態(high、low、critical、または charging)のサマリーを提供します。 ゲームが必要とする電力は常に明白ではないため、ゲームがデバイスのバッテリー寿命に与える影響を考慮してください。XBOX Sustainability Toolkit の可能な節電推奨事項は、ハンドヘルドにも適用できます。 次の方法で節電を最大化してください。- VSync を有効にして GPU にアイドル時間を増やし、消費電力を削減します。
- 内部レンダリング解像度を下げ、アップスケール パスを適用します。
- フレームレートを下げて電力を節約します。注: フレームレートを下げるとゲームプレイに影響することがあります。
- フル スクリーンのメニューや UI 要素が表示されているとき、またはゲームが一時停止しているときは、世界のレンダリングを停止します。
- 入力アイドルが検出され、プレイヤーが非アクティブな場合はゲームを一時停止します。
画面サイズ
異なるゲーミング ハンドヘルドはさまざまな画面解像度を持ちますが、次の標準は信頼できます。- 画面の対角サイズは少なくとも 7 インチ(17.8 cm)です。
- 画面のアスペクト比は 16:9 または 16:10 です。
ハンドヘルド体験のベスト プラクティス サンプル
ハンドヘルド デバイス向けにゲームを構築および最適化する方法に関する詳細については、Microsoft は 2 つのサンプル(ネイティブ C++ サンプルと Unity マネージド C# サンプル)をリリースしました。両方とも、API を使ってゲームのハンドヘルド体験を容易に管理する方法に関する類似のベスト プラクティスを提供します。- デバイスがハンドヘルドかを判定します。
- デバイスがバッテリー電源で動作しているか、充電中か、外部電源を使用しているかを判定します。
- 統合ディスプレイのプロパティを含む、デバイス固有のプロパティを参照します。
- DPI 変更を処理し、UI を適切にスケールします。
- テキスト入力に仮想キーボードを使用します。
- ネットワーク デバイスとタイプを参照します。
- ネットワークと Bluetooth® の接続を判定します。
- ゲームパッド、キーボード、マウスからの入力を処理します。
- 入力モダリティを判定します。たとえば、最も最近使われた入力デバイスの識別です。
- Native C++ Sample: GitHub 上の C++ サンプル。
- Unity Managed C# Sample: GitHub 上の Unity マネージド C# サンプル。
