PC ではキーボードが物理的に接続されていることが一般的に想定されていますが、ゲームパッドやタッチ入力などの新しい入力モダリティの場合、この想定に異議が唱えられます。 これは、ハンドヘルドと本体を使用するゲーマーにとって特に重要です。 プラットフォームに応じて、仮想キーボードを起動するためのさまざまなソリューションがあります。 タイトルは独自の仮想キーボードを実装して作成できますが、システムは、プラットフォーム用に最適化された独自の仮想キーボードの代替手段を提供し、すべてのゲームで一貫したユーザー エクスペリエンスを提供します。
Windows では、新しい CoreInputViewKind::Gamepad
オプションを使用して TryShow
API を活用できます。 その後、TryHide
API を使用して、不要なときにキーボードを閉じることができます。 これは、次のコード サンプルに示されています。
#include <winrt/windows.ui.viewmanagement.core.h>
using namespace winrt::Windows::UI::ViewManagement::Core;
// 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();
本体の場合、GDK には仮想キーボードを使用したテキスト入力を処理するための 2 種類のソリューションがあります。 ほとんどのゲームでは、XGameUiShowTextEntryAsync を利用することを最もお勧めします。 複数行のテキストや 1024 文字以上の入力をレンダリングする必要があるゲームの場合、XGameUiTextEntryOpen に依存することができます。
この 2 つのソリューションの比較は、以下の表のとおりです。
説明 | XGameUiShowTextEntryAsync | XGameUiTextEntryOpen |
---|---|---|
マルチライン サポート | いいえ | はい |
最大文字数 | 1024 | 1024 * 32 |
入力フォーカス | 仮想キーボードで入力フォーカスを取得する | 仮想キーボードで入力フォーカスを取得する |
配置 | 修正済みの位置 | ゲーム単位での配置 |
テキスト レンダリング | 仮想キーボードで処理します。 | ゲーム単位で処理済み |
クラウド ストリーミングの動作 | クライアントに仮想キーボードを活用する | ストリーミング サーバー単位でレンダリング済み |
関連項目
Windows ハンドヘルド デバイス上の GDK ゲームのチェックリスト - チェック 3: テキスト入力XGameUiShowTextEntryAsync
XGameUiTextEntryOpen