次の方法で共有


Xbox によって設計されたハンドヘルド互換性プログラムのガイドライン

Xbox によって設計されたハンドヘルド互換性プログラムは、ゲームがゲーム ハンドヘルドで適切に動作することをプレイヤーに確信させるのに役立ちます。 ハンドヘルド デバイス上でゲームをスムーズに機能させる方法については、同じゲームの PC デスクトップ環境での動作と比較する際、考慮事項にいくつかの項目を追加する必要があります。 ハンドヘルド上で実行されるゲームは PC ゲームと同じものですが、ハンドヘルドでうまく機能させるには、表示画面が小さいこと、ユーザーの目との距離が 12 インチ (30 センチメートル) 程度であること、入力デバイスがマウスとキーボードではなくゲームパッドであることを考慮する必要があります。

開発者の考慮事項は、5 つのガイドラインに大きく分けられます。 このドキュメントでは、それら 5 つのガイドラインの概要を説明し、ゲーム開発者がそれらのガイドラインを満たす方法のガイダンスを提供します。

ガイドライン 1: 設定を変更しなくても快適に使える既定値

ゲーマーは、ゲーム専用コンソールと同じように快適なエクスペリエンスをハンドヘルドにも期待します。 設定メニューを見つけてゲームをハンドヘルド モードに切り替えるといった操作を要求することは、ゲーマーの期待に反しています。 ゲームに含まれるすべての要素間の移動は、コントローラー操作のみで実行できる必要があります。 カスタマイズやレンダリング オプション (黒レベル、シャドウ、パフォーマンスと品質のバランス) を変更できることも必要ですが、ゲーマーは、やはり既定の状態で快適なエクスペリエンスが得られることを期待します。

既定値のままで "快適に使える" ようにするには、現在の動作環境がゲーミング ハンドヘルドであるかどうかを認識することが重要です。 ゲームの動作環境がゲーミング ハンドヘルドであるかどうかは、以下のコードで判断できます。

#ifndef DEVICEFAMILYDEVICEFORM_GAMING_HANDHELD
#define DEVICEFAMILYDEVICEFORM_GAMING_HANDHELD    0x0000002E 
#endif
  
DWORD DeviceForm; 
RtlGetDeviceFamilyInfoEnum(nullptr, nullptr, &DeviceForm); 
  
if (DeviceForm == DEVICEFAMILYDEVICEFORM_GAMING_HANDHELD) 
{ 
   // Do stuff for a handheld 
} 

ゲームが起動されたときに、そのデバイスがゲーミング ハンドヘルドであるかどうかをチェックします。 ゲーミング ハンドヘルドの場合には、そのゲームを快適にプレイできるよう、以下のような既定値を設定します。

  • 一般的なハンドヘルドの機能に適した解像度と設定を選択します。
  • 既定の入力デバイスはゲームパッドであるという想定に変更し、テキスト入力が必要なときは仮想キーボードをポップアップ表示します。
  • フォントを大きくします (詳細については、下の「ガイドライン 4: UI の読みやすさ」セクションを参照してください)。

ハンドヘルド デバイス向けの開発では、単にゲームの動作環境がハンドヘルドであることを検出するだけでなく、その先を考慮することが重要です。 マウスとキーボードではなくゲームパッドを主な入力デバイスにすることが、プレイヤー エクスペリエンスにどのような影響を及ぼすかを考慮することが重要です。 影響が及ぶ対象には、ユーザーがインターフェイスを操作する方法や、フォーカスの管理方法などがあります。

また、ゲームパッドではマウスのような高精度の操作がしにくいという事情など、入力の難しさへの対処が必要になる場合もあります。 これを補うには、エイム アシストのような機能が役立つ可能性があります。

ハンドヘルド上で確実に "既定値のままで快適に使える" 状態を実現するにあたっては、以下のアクセシビリティ ガイドラインが非常に良い参考リソースとなります。

ガイドライン 2: アイコンなどの情報表示

画面に表示するアイコンなどのヒントは、ゲーム内の移動操作やプレイ方法について、ゲーマーの理解を助けるものです。 ハンドヘルドでネイティブに利用することができない入力方法について、利用できるかのように見える表示を出さないように注意しましょう。

ガイドライン 3: テキスト入力

PC 用のゲームは、通常、マウスとキーボードが接続されていることを想定して作成されています。 しかし、ゲーミング ハンドヘルドの場合はゲームパッドが既定の入力デバイスになります。 ゲーム内のテキスト入力については、ゲーマーが仮想キーボードとゲームパッドだけを使用してテキストを入力できる必要があります。

テキスト入力が必要なすべての場面に、仮想キーボードをトリガーするしくみを用意しましょう。 その一般的なやり方は 2 つあります。テキスト ボックスの "タッチ" 操作を検出したときに仮想キーボードを表示する方法と、テキスト ボックスに "入力フォーカス" があるときに "A" ボタンが押されたら仮想キーボードを表示する方法です。

ゲームの場合、独自の仮想キーボードを開発して提供するか、 Windows に組み込まれている仮想キーボードを利用するかは自由に選択できます。 以下のコードは、ゲームがゲームパッド モードで Windows 仮想キーボードを起動し、その後非表示にする方法を示しています。

#include <winrt/windows.ui.viewmanagement.core.h>
using namespace winrt::Windows::UI::ViewManagement::Core;
#pragma comment(lib,"windowsapp.lib")


// CoreInputViewKind::Gamepad enum requires headers from 26100.3624 Windows SDK or greater
// Otherwise, use static_cast<CoreInputViewKind>(7) for earlier SDKs

CoreInputView::GetForCurrentView().TryShow(CoreInputViewKind::Gamepad);

CoreInputView::GetForCurrentView().TryHide();

適切な ICoreInputView3 インターフェイスを取得し、新しいゲームパッド対応の仮想キーボードを表す識別子を渡して TryShow メソッドを呼び出しています。 TryHide は、現在キーボードが表示されている場合にキーボードを非表示にします。

注意

TryShow メソッドは、キーボードを表示することが適切であると Windows によって判断された場合にのみ、キーボードを表示します。 たとえば、物理キーボードが接続されている (および、その他の特性を備えている) デバイスでは、このメソッドを呼び出しても仮想キーボードは表示されない場合があります。 タッチスクリーン装備のハンドヘルド デバイスでは、この呼び出しは期待どおりに機能します。

注意

上記のこの API は、GDK に依存しません。 これは、Windows 10 にバージョン 10.0.17763.0 (2018 年 10 月リリース) で導入された Windows API ですが、CoreInputViewKind::Gamepad 列挙を使用するには Windows SDK 10.0.26100.3624 以降が必要です。

ガイドライン 4: UI の読みやすさ

ゲーミング ハンドヘルドでは、7 インチ サイズの小さい画面が一般的です。 こうした小さい画面では、ゲーム内のテキスト UI を読み取ることは難しい場合があります。 以下に、小さい画面に関するゲーム開発者向けガイダンスを示します。

  • 画面が 1280 x 720 の場合、テキストのピクセル単位の高さは少なくとも 9 ピクセルとし、高さ 12 ピクセル以上にすることをおすすめします。
  • 画面が 1920 x 1080 の場合、テキストのピクセル単位の高さは少なくとも 14 ピクセルとし、高さ 18 ピクセル以上にすることをおすすめします。

テキストの読みやすさは、アクセシビリティの問題を引き起こす大きな要因の 1 つです。 多くのゲームでは、これを認識して、フォント サイズのゲーム内設定項目があります。 テキストの読みやすさを確保する簡単な方法としては、ゲームがハンドヘルド デバイスで実行されていることを検出した時点で、これらの大きいテキスト サイズのいずれかを既定値として自動設定することが考えられます。

ほとんどのゲームにはビットマップ フォントが採用されていますが、ビットマップ フォントでは、画面サイズ、DPI、またはその他の Windows 設定に基づく自動的なサイズ調整は行われません。 ビットマップ フォントを使用する場合は大きいテキスト サイズの選択肢を用意しましょう。

ゲーム内で TrueType フォントを使用する場合は、テキスト表示に DirectWrite を使用できます。 DirectWrite では、フォントのサイズ調整、DPI、その他の Windows 設定などの主要な Windows 機能を利用できます。

ガイドライン 5: サポートされているディスプレイ

ゲームでは、画面の貴重なスペースを活用して優れたエクスペリエンスを提供します。 極端な横長表示や、ゲームプレイに支障が出るような縦横比でのレンダリングは避けましょう。 一般的なゲーミング ハンドヘルドの小さい画面では、極端な横長表示を使用すると表示領域がいっそう狭くなり、ゲームプレイに支障が出る可能性があります。

その他の考慮事項

このリストに示した 5 つのガイドラインに加え、「ハンドヘルド Windows デバイス用の GDK ゲームを開発するときのその他の考慮事項」も参照してください。