ゲーム
Windows 8.1 には、最新のセンサーを使ったタッチとペンが中心のタブレットから高解像度のノート PC やデスクトップ PC まで、これまでにない範囲の多様なデバイスが用意されています。このようなリーチの拡大は、ゲームの発行元にとってさまざまなシナリオでエクスペリエンスを実現できるまたとないチャンスです。この記事では、ゲームに Windows の原則と UX ガイドラインを取り入れると同時に、ユーザー エクスペリエンスを向上させ、関心を集める方法について説明します。
次の Windows 8.1 の新機能は、ゲームにとって特に重要です。
- ライブ タイルと通知—スタート画面にスコア、達成度、チャレンジ、他のプレイヤーからの招待などを示すタイル アクティビティにより、ゲームにプレイヤーを引き込みます。ゲームのプレイやその他のユーザー アクティビティの途中での通知によって、プレイヤーはすばやく、頻繁にゲームを再開することができます。
- 共有コントラクト—アプリ間の調和により、システム、Windows ストア、Web にインストール済みの他のアプリにゲームを接続して、より社会性のあるエクスペリエンスをユーザーに提供します。
- さまざまなユーザー操作のサポート—Windows 8.1 は、タッチ、ペン、キーボード、マウス、外部接続のゲーム コントローラーによる操作をサポートします。
- センサー— Windows 8.1 では、光センサー、ジャイロスコープ、加速度計、位置センサーなど、最新のセンサーがサポートされます。
- さまざまなフォーム ファクターと画面サイズのサポート—大画面からタブレットまで、あらゆるフォーム ファクターでゲームを楽しむことができます。 ゲーム コントロールはウィンドウのサイズや画面のサイズに合わせてさまざまなレイアウトで表示できるので、最良のゲーム エクスペリエンスを得ることができます。
- Windows ストア—Windows ストアは、ゲームやアプリ内の機能を配布、宣伝、販売する新たな機会をアプリ開発者に提供します。 Windows ストアにより、コードを記述しなくても簡単に無料試用版を提供できます。
この記事では、これらの機能が Windows 8.1 のゲームの設計と開発に与える影響について学習します。 Cut the Rope、Microsoft Solitaire、Tankster、PuzzleTouch、Cannon Ball というゲームを例に、これらの原則について説明します。
"最も優れている長所" の説明文
ゲームの設計を開始する前に、少し時間をとって "最も優れている長所" の説明文を書き出します。これは、ユーザーに提供するエクスペリエンスを示します。 設計するゲームの最も優れているシナリオは何でしょうか。同じシナリオのゲームと比較して優れている点はどこでしょうか。 "最も優れている長所" の説明文に従って設計プロセスを作成し、採用するシナリオや機能、採用しないシナリオや機能を判断します。
Cannon Ball というゲームの場合、プラットフォームの中でボールを動かしてコインを集めることによって音楽を作成できるシンプルで楽しいゲームであることが "最も優れている長所" です。 ゲームを計画する際は、この説明文に基づいて採用するシナリオを判断します。 ボールを動かしてコインを集めるためには、プラットフォームの角度をユーザーが変えられる必要があります。 このシナリオを実現するために、タッチ、キーボード、マウスによる入力コントロールを実装しました。 この説明文は、採用しないシナリオを判断するためにも使います。 たとえば、このアプリではゲームプレイ中に作られた音楽を保存するシナリオは採用しませんでした。 音楽を保存する機能はゲームプレイに必要な要素ではないため、実装されませんでした。
ライブ タイル、セカンダリ タイル、通知
ライブ タイルを使って、スタート画面からユーザーをゲームに引き込むことができます。 ライブ タイルを使うと、プレイヤーの直近のスコア、達成度、ゲーム上の現在の状態に関する情報を表示できます。 ゲームが更新されてゲームのオブジェクトやレベルなどの新しいコンテンツが追加される場合、この情報をライブ タイルに表示して、新しいコンテンツをプレイするようにユーザーを引き込むことができます。
ターン制のゲームなど、進行が複雑なゲームや複数のユーザーが同時にプレイできるゲームの場合、ゲームの保存した状態や特定の対戦をスタート画面にセカンダリ タイルとしてピン留めすることを検討してください。 これにより、指定のゲームを直接起動することができます。ライブ タイルについて詳しくは、「タイルとバッジのガイドラインとチェック リスト」をご覧ください。
トースト通知を使って、ターン制のゲームでユーザーに自分のターンであることを伝え、友人がハイ スコアを更新した際に通知するように設定することも、別の作業を行っているユーザーをゲームに引き込む方法として有効です。 「トースト通知のガイドラインとチェック リスト」のガイドラインに従ってトースト通知を実装してください。
ユーザーがタイル サイズ (小、普通、大、ワイド) を選択できるようにすることを検討します。タイル上の視覚効果や情報が魅力的であるほど、ユーザーはそれらに多くの画面領域を割り当てるようになります。さまざまなタイル サイズ、色、コンテンツを試してみて、ゲームに最もふさわしいものを見つけます。アプリ マニフェストで目的のタイル サイズを宣言し、他のタイル サイズについても適切なアセットを含めます。アプリ マニフェストでのタイル サイズについて詳しくは、「DefaultTile」をご覧ください。タイル更新について詳しくは、「タイルのスキーマ」をご覧ください。
図 1: Cannon Ball のライブ タイルでは、TileWideImageAndText02 タイル テンプレートを使っています。 このタイル テンプレートにより、開発者はカラフルなゲーム画面を表示し、ユーザーのハイ スコアや集めたトレジャー数などの最新情報を提供することができます。 その他のタイル フォーマットについて詳しくは、「タイル テンプレート カタログ」をご覧ください。
スプラッシュ画面とプログレス コントロール
ゲームを開始して、最初にプレイヤーに表示される画面がスプラッシュ画面です。 スプラッシュ画面は、起動されたゲームをプレイできる状態にスムーズに切り替える役割があります。 大量のアセットにより、ゲームの読み込みに最大で 3 秒以上かかる場合も少なくはありません。このような場合は、スプラッシュ画面の表示時間を延ばし、BGM や読み込み状況を示すリングを使って、ゲームの読み込み中であることをユーザーに示すようにしてください。スプラッシュ画面について詳しくは、「スプラッシュ画面のガイドラインとチェック リスト」をご覧ください。
追加スプラッシュ画面は、新しいレベルを読み込んでいる間や凝ったカットシーンの再生を準備している間など、ゲームのプレイ中にアプリでリソースを取得する必要があるときにも役立ちます。ゲームの応答までに 0.5 秒以上かかる場合は、ゲームのプロセスが進行中で、クラッシュしているのではないことを示すために、プログレス コントロールをユーザーに表示する必要があります。
アプリの読み込み中にユーザーを飽きさせないために、BGM を再生したり、ゲームのブランドをアピールするアニメーションを同時に表示するのも良い考えです。
レイアウトとナビゲーション
ゲームのナビゲーションやコマンドについては、無数のオプションをホストする階層化されたメニューが備わった機能豊富で複雑なものから、パズル ゲームのようにメニューやオプションのないシンプルで軽量なものまで、さまざまな種類があります。ユーザーにとってエクスペリエンスが 1 つしかないゲーム (ゲーム自体) もあれば、成績画面、スコア ボード、マルチプレイヤーのロビーなどをホストできるゲームもあります。 魅力的な Windows 8 ゲームでは、複数のエクスペリエンス間のナビゲーションが軽快かつ柔軟になります。ナビゲーション パターンは、ゲームによって提供されるエクスペリエンスの種類によって決められる必要があります。 階層型のフラットなナビゲーション パターンについて確認し、理解している必要があります。ナビゲーション構造の決定に役立つのは、ゲーム自体でなく、ゲーム内の他のコンテンツであることがよくあります。
ゲーム以外にも充実したエクスペリエンスが複数備わっている場合は、階層パターンを使います。階層パターンでは、コンテンツをすべてトップ レベルに配置します。コンテンツをメニューの背後に隠さないでください。ゲームがプレイされるたびに、入念に作られたエクスペリエンスをプレイヤーの目の前に配置します。ゲームプレイが唯一のエクスペリエンスの場合は、フラット パターンをお勧めします。フラット パターンを使うと、ゲーム内の複数のセッション間をすばやく移動できます。1 対 1 のゲームを複数の友人とプレイする場合などに便利です。
アプリの最適なナビゲーション パターンの選択については、「ナビゲーション パターン」をご覧ください。
「アプリの機能の概要」シリーズの「フラット ナビゲーション パターン」と「階層型のナビゲーション パターン」をご覧ください。
階層パターン
階層パターンを使うと、すべてのコンテンツをメイン ハブ ページでユーザーの目の前に配置することができるため、1 つで完全なエクスペリエンスが実現します。ゲームのハブでは、ゲームを始める前のレベルの選択や、新しくゲームを始めるかゲームを続きから再開するかの選択などのほか、最新の結果、友人の一覧、その他の領域のコンテンツなどをすべて、水平方向のパニング サーフェスに表示できます。これにより、プレイヤーがハブを表示するたびに最新のコンテンツが表示され、ユーザーがゲーム自体をプレイしていなくてもアクティビティによって活性化されます。各領域には、プレイヤーが直接操作することができるコンテンツが表示されます。セクション ヘッダーをナビゲーションの起点として、指定のカテゴリのコンテンツの内部に入ることができます。ハブを使って、ゲームの特徴やブランドを伝えることもできます。たとえば、ユーザーが特定のレベルを選ぶと、ユーザーが表示しているレベルに合わせてセクション ページの背景が変化する場合があります。
Microsoft Solitaire Collection では、階層パターンを使って、ユーザーがゲームのさまざまなエクスペリエンス間を移動できるようにしています。
ゲーム内には、ハブに戻る方法を必ず設定してください。多くの場合、ヘッダーに配置された戻るボタンを使います。ポイントは、メニューの検索を行っているというよりも、ゲームのコンテンツ内を自然に移動しているようにユーザーに感じてもらうことです。 ユーザーがセクション間を簡単に移動できるように、セマンティック ズームの実装を検討します。 ユーザーがメイン ハブの特定のセクションを表示している場合、ピンチ操作によってセマンティックにズーム アウトすると、アプリの他のセクションにすばやく移動できます。
Microsoft Solitaire Collection では、ユーザーがセマンティック ズームを使って、ハブ セクション間をすばやく移動できます。
階層パターンを使うと、ユーザーはエクスペリエンス間をシームレスに移動できるので、常にゲームのコンテンツに没頭することができます。 これは、ゲームプレイにさまざまなオプションがあるゲームや、セカンダリ エクスペリエンスの多いゲームでは便利な機能です。
フラット パターン
フラット パターンでは、ゲーム エクスペリエンスが常に中央の前面に配置されます。これは、他にスタンドアロンのエクスペリエンスが存在しないゲームの場合に便利なレイアウトです。 フラット パターンでは、ユーザーをさまざまなコンテンツが散らばったハブに移動する代わりに、上部のアプリ バーをナビゲーションのホームとして使います。そこにはユーザーのさまざまなセッションが表示され、ユーザーはそのセッション間をシームレスに移動できます。ゲームが起動準備段階にある場合や、一時停止中の状態にある場合は、画面にゲームのブランド情報を表示するか、ゲーム内で "ホーム" と認識される場所を表示することを検討してください。ゲームの起動時にアプリ バーを表示する必要はありません。たとえば、Internet Explorer のアプリを起動すると、ユーザーが前回表示していた Web ページが表示され、アプリ バーを呼び出してタブを移動するかどうかはユーザーの操作に依存します。
次の図のゲームには、ゲーム セッション以外のエクスペリエンスがなく、エクスペリエンス間を移動する手段もありません。この数少ない機能をハブに移動しようとするのではなく、フラット パターンを使って、ゲームのすべてのコンテンツをユーザーの目の前に配置し、ユーザーがすばやく確実にコンテンツに移動できるようにしています。
レイアウトに関する追加の考慮事項: アプリは単一方向のスクロールを維持する必要があります。 水平方向にパニングするハブ ページがある場合、アプリ内のすべてのフィールドも水平方向にパニングする必要があります。 垂直方向にパニングするインスタンスは存在しないようにしてください。 たとえば、本来垂直方向に表示される長いスコアボードは、コンテンツを折りたたんで列レイアウトに表示する必要があります。 情報のリストが長い場合は、セマンティック ズームを使って端からもう一方の端まで移動可能にすることを検討してください。
ゲームプレイの操作
タッチ操作: ゲームをコントロールする手段としては、直接操作を強くお勧めします。Windows 8.1 では、強力なマルチタッチ操作 (最大 5 つの同時入力) をサポートしています。これにより、ユーザーはパニング、ズーム、コマンドなどの操作を同時に実行したり、ゲーム内のプレイヤーやカメラを操作するのと同時に標的を撃つこともできます。 センサーやタッチ機能のないデバイスであっても、必ず、マウスやキーボードを使ってゲームをプレイできるように対話式操作を設計してください。
仮想コントロール (仮想方向パッドを使ってキャラクターを操作する、指を左右にスライドして乗り物のハンドルを切るなど) を使うと、ボタンやコントロールなどがキャンバスのスペースを占領しないので、ユーザーは空いているスペースを活用してゲームを操作できます。 W、A、S、D キーや方向キーは、仮想方向パッドと共に含めることができるナビゲーション用のキーボード操作として自然な選択肢です。ゲームのキャンバスで仮想方向パッドやボタン コントロールを表示している場合は、ユーザーがそのコントロールのサイズや位置をカスタマイズしたり、ユーザーが指を置いた場所を基準にしてコントロールを表示することを検討してください。人間工学的にすべてのユーザーにとって心地良い万能な位置はありません。仮想ジョイスティック コントロールの既定の位置は、ユーザーがタブレットを持っているときの親指の位置にすることを検討してください。
ユーザーのタッチ操作によって、画面の左側から別のアクティブなアプリをプルしたり、チャームをプル アップしたりと、エッジ動作を偶発的に呼び出す可能性があるかどうかを考えてみましょう。 ゲーム内コマンドやそのコマンドの操作は、チャームやアプリ バーなどの UI 要素に影響しないように、必ず画面の端から 20 ピクセル以上離してください。エッジの近くでスワイプ操作が行われないように、目に見える "障壁" を追加したり、エッジの近くで偶発的なスワイプが行われないようにコントロールを修正することを検討してください。 また、マウスを画面の角に移動することを要求するようなゲーム コマンドは使わないでください。ユーザーがマウスで操作している場合、画面の角はチャームを開いたり別のアクティブなアプリケーションをプルするために使われるためです。 ゲームでマウスルック コントロールを使ってゲームの仮想カメラを駆動する場合は、「マウス コントロールの開発」に示されているプラットフォームのベスト プラクティスを取り入れることを検討してください。
複数の入力モード: ゲームはタッチ以外にも、キーボード、マウス、ゲーム コントローラー、ペンなどによる入力をサポートする必要があります。あらゆるフォーム ファクターで優れたエクスペリエンスを実現するために、ゲームでは可能な限りすべての入力モードをサポートし、どの入力モードでも滑らかな動作と一定のコントロール スキームを備えている必要があります。 入力の切り替えは、動的にリアルタイムで処理される必要があります。 たとえば、タッチ イベントが検出された場合、タッチ操作に適用されるコントロールをフェード インします。マウス クリックが検出された場合、タッチ操作にのみ適用されるコントロールをフェード アウトします。 入力の切り替えは、可能な限り動的に処理してください。 タッチ コントロールのオン/オフの切り替えや特定の入力モードの選択をユーザーに強制する手動設定を使わないでください。 ゲームのプレイに使う入力メソッドをユーザーに選ばせることはしないでください。 モードの切り替えが発生することなく、すべてのコントロール モードを平等かつシームレスにサポートすることを目指します。
アプリ バーのコマンド: 可能であれば、コンテンツ内で動作するコマンドを操作するのではなく、キャンバス内のコンテンツを直接操作してプレイできるようにゲームを設計してください。 追加のコマンドやナビゲーション コントロールが必要な場合は、アプリ バーから使うことができるようにしてください。 複数のページがあるゲームでは、ナビゲーション コマンド (通常、上部のアプリ バーにある) やその他のセカンダリ コマンド (通常、下部のアプリ バーに配置される) を使うことができます。 新しいゲームを始めるなどの常に利用可能なコマンドは、下部のアプリ バーの右側に配置されます。左側には、状況依存のコマンドを追加できます。それらコマンドは、ハブ内のユーザーの場所やハブ内の選択によって変わります。たとえば、ハブにロールプレイ ゲームの保存されたゲームの一覧があり、ユーザーがそのうちの 1 つを選択して下部のアプリ バーを呼び出した場合、バーの左側には削除のコマンドが表示されることが予想されます。
コントロールをキャンバスと下部のアプリ バーのどちらに配置するかについては、次の 2 つの質問の回答を基に決めてください。
- このコントロールを頻繁に使うか。
- このコントロールがゲームのプレイに必要か。
いずれかの回答が "はい" である場合は、コントロールをキャンバス自体に配置することを検討してください。これにより、ユーザーは、ゲームを先に進めるためだけにアプリ バーを頻繁に表示しなくてはならないことで苛立ちを感じることがなくなります。
次の図では、キャンバスにコントロールがありません。ユーザーは直接操作によりゲームをプレイします。ユーザーはタッチ操作やマウスでプラットフォームを回し、コインに向けてボールを動かします。 必要に応じて、下からスワイプ操作を行うかマウスを右クリックすると、アプリ バーが表示され、ゲームの一時停止や装備する武器を変えるなどの操作を行うことができます。
ゲームを一時停止した場合、ユーザーはアプリ バーをプル アップすることでレベルを再開できます。
また、ゲーム プレイを再開するためのプレイ/一時停止のトグル アイコンを画面に配置することも検討してください。
Cut the Rope では、やり直しが重要な操作であるため、[元に戻す] ボタンをキャンバス上に配置することをお勧めします。この操作はこのゲームで頻繁に行われるアクションであるため、右上の角に配置されます。
アプリ バー、ボタン、進行状況バーのスタイルを変更して、ゲームの特徴やブランド情報を伝えることもできます。 これらの要素は、お好みの形、色、サイズを指定できます。
アプリ バーのコントロールのレイアウト方法について詳しくは、「コマンド パターン」をご覧ください。
センサー
Windows 8.1 で実装されたセンサーにより、ゲームや対話的なエンターテインメントのエクスペリエンスに新たな操作感を実現します。加速度計、コンパス、ジャイロ、光センサーなどの搭載により、ゲームプレイを設計者が意図したとおりのより動的でイマーシブなものに変えることができます。Windows 8.1 の Sensor Fusion により、細かい方向設定や位置データの調整を実現し、ゲームではこれを最大限活用することができます。
センサーを活用するゲームを開発する際には、活用できる範囲を検討し、コア シナリオをサポートするセンサーを判断してください。 動作に適したセンサーを選択してください。
- 車のステアリングやゲーム要素の傾きを表現するには、加速度計を使います。
- デバイスの動きと連動してキャラクターを回転させたりカメラの視点を変更したりできます。
- 敵の攻撃から身を守ったり、パズル ゲームのゲーム ボードをリセットしたりするのに、デバイスをシェイクするのも良いアイデアです。
- 光センサーを活用して雰囲気を変えたり、表示の明るさを変えたりして、ゲームの魅力を増すこともできます。
- マイクやカメラで、リアルな環境要素をゲームに組み込むことができます。
- 物探しゲームに内蔵カメラや Sensor Fusion を活用し、"隠し" 要素を表現することによって、拡張現実を表現することができます。
すべてのセンサーがすべてのゲームにとって意味をなすとは限りませんが、さまざまな可能性を秘めています。少しの創造性を加えることによって、簡単なジェスチャや動作が大量のメニューやコマンドに取って代わる可能性があります。 活用できるセンサーについて詳しくは、位置情報やセンサーを活用した活気のあるアプリの作成に関するブログ投稿をご覧ください。
コントラクト
コントラクトにより、ゲームと Windows 8.1 の他のエクスペリエンスを関連付け、ゲームのエクスペリエンスを向上させることができます。コントラクトについて詳しくは、「アプリ コントラクトと拡張機能」をご覧ください。実装すると便利なコントラクトのサンプルをいくつか紹介します。
検索: ゲームには、興味深い検索シナリオが多数用意されている場合があります。ユーザーがゲーム内の任意の場所から検索するシナリオについて考えてみましょう。 たとえば、友人の成績や統計情報、一緒にゲームをプレイする友人、入手したゲーム内のアイテムについて検索を有効にする場合を考えてみます。 このような場合は、検索ボックスを使う場面について、既にある検索ガイドラインに従うことをお勧めします。 検索について詳しくは、「検索のガイドライン」をご覧ください。
共有: 共有コントラクトを使うと、ゲームの達成度や状態のほか、ゲームプレイ中のスクリーン ショットやショート クリップを共有して、ゲームをプレイする人を他のプレイヤー、ソーシャル メディアの表示機能、友人などとつなげることができます。このコントラクトを使うと、ゲーム間でデータを共有することもできます。たとえば、ロールプレイ ゲーム用のアイテムを友人がゲーム内で使うために送ったり、友人にパズルを送って解いてもらうこともできます。
共有する内容を選ぶときには、共有情報のスタイルを設定する際にブランドを伝える方法を検討してください。 URL、メール、ソーシャル アプリ、クラウド サービスなど、さまざまな形式で共有することができるので、ゲームを持っていないユーザーや別のプラットフォームのユーザーとも共有することができます。 共有された情報からブランドを効果的に伝えることができれば、より多くのユーザーをゲームに引き込むことができます。
他のアプリからのデータを加工してゲームに組み込むことができる場合は、アプリを共有ターゲットに定義することを検討してください。 たとえば、PuzzleTouch ゲーム アプリはフォト アプリから写真を受け取り、それをユーザーの好みに合わせてパズルに作り替えています。共有について詳しくは、「共有のガイドラインとチェック リスト」をご覧ください。
デバイス: デバイスの実装は、ゲームをプレイする前にゲームパッドやその他の周辺機器をデバイスに接続したり、より大きな画面にゲームのコンテンツを表示したりするのに便利な方法です。デバイス チャームを使って印刷することもできます。
設定とオプション
ゲームの設定、オプション、プライバシー ポリシー、バージョン情報、クレジット、ヘルプ コンテンツなどは、設定チャームからアクセスできる必要があります。設定チャームとは、すべての Windows ストア アプリがその設定とオプションをホストする場所です。ゲームのサウンド効果を調整したりゲームプレイの縦横比を変更する場合、ユーザーは最初にこの場所を確認します。 ゲームの設定へのアクセスは、ゲームプレイ中に頻繁に行われる動作でない限り、ゲーム サーフェスやアプリ バーでは処理されません。 ユーザーは設定を変更する際には設定チャームを確認するので、設定チャームと機能が重複するメニューや設定ウィンドウを開くための UI 要素は存在しません。
Windows 8.1 にはグローバルな音量コントロールが用意されていますが、ゲームには独自の複雑なサウンド設定 (音楽、効果音、音声用の個別の音量スライダーなど) が用意されている場合があります。 オーディオ設定がゲームに固有であることを明確にするには、ラベルを使います。オーディオ設定のスライダーやボタンには、変更のコミットに [適用] や [OK] を押すなどの 2 次的な操作を要求することなく、リアルタイムに変更が反映されるように設定してください。
最初のゲームプレイ時にチュートリアルなどのトレーニングやヘルプがある場合、この情報へのパスを設定チャームに配置してください。 また、チュートリアルをゲームプレイの一部として利用可能にすることもできます。 この例を次の図に示します。ここでは、Cut the Rope アプリでチュートリアルを最初のゲームプレイ時のエクスペリエンスの一部としています。
アプリ内ヘルプとチュートリアルの提供について詳しくは、「説明 UI のガイドライン」をご覧ください。
プレイヤーのアカウント
プレイヤーのアカウントは、プレイヤーのゲームの進行状況の追跡、プレイヤーとソーシャル ネットワークのリンク、収益モデルの実現に役立ちます。プレイヤーのアカウントをサポートすることにより、ユーザーが繰り返し友人と一緒にプレイできる、より魅力的なエクスペリエンスを作ることができます。
ユーザーのサインイン: ユーザーのデータやつながりへのアクセスを必要とするソーシャル ネットワーク ゲームなど、ユーザーのサインインがゲームのエクスペリエンスにとって重要な場合、サインインしないとゲームをプレイできない旨をプレイヤーに伝えるのではなく、ゲームの "ランディング エクスペリエンス" を強調してサインインするよう促してください。できる限り、ユーザーの Microsoft アカウントやゲームの以前のセッションでキャッシュされたサインイン情報から、サインイン情報を取得してください。
サインインせずにプレイすることができるゲームでも、サインインすることを強くお勧めします (たとえば、ゲームの収益モデルがユーザーのサインイン情報を利用して、ユーザーがまだ持っていないダウンロード可能なコンテンツを宣伝するような場合)。この場合、ハブにサインイン専用のスペースを確保するか、ランディング エクスペリエンスを専用に表示するスペースを確保することもできます。ハブのスペースをこのように活用すると、ユーザーがサインインしていないことが明確に伝わります。ユーザーがサインインしたら、サインイン セクションを完全に削除するか、ユーザー固有のコンテンツに置き換えます。ランディング エクスペリエンスを強調してサインインを促す場合でも、サインインをスキップできるオプションをユーザーに提供する必要があります。また、ユーザーがサインインしないことを選んだ場合は、その決定を尊重し、ユーザーを最初に戻して同じセッションを繰り返すようなことはしないでください。このような場合は、サインインを処理するためのスペースをハブに準備します。
サインインを省略できるような場合、サインイン エクスペリエンスは [設定] ウィンドウに配置する必要があります。[設定] ウィンドウは、ユーザーがサインイン エクスペリエンスを探すことができるように、アプリを開始したときに開くように設定できます。
どのような場合でも、[設定] の [アカウント管理] ペインからログインできる必要があります。
アカウント管理とサインアウト: ユーザーのメール アドレスの更新やパスワードの変更などのアカウント管理シナリオは、[設定] ペインで行います。同様に、サインアウト エクスペリエンスも他のオプションと共に [設定] でホストする必要があります。
ゲームの一時停止
すべてのゲームで一時停止のサポートが必要であるとは限りません。 ターン制のゲームなどには、一般的に一時停止という概念がありません。また、ユーザーの操作によって進行するゲームであれば、タイマーや時計などの外部要因がない限り、一時停止を設定するメリットがありません。これらのケースでは、ユーザーがゲームから離れたときにゲームを一時停止する機能は必要ありません。ユーザーがゲームに戻ったときに、戻る前と同じエクスペリエンスを提供する必要があります。それができない場合 (複数のプレイヤーが参加するゲームで、ゲーム セッションが終了した場合など) は、ユーザーに対してその状況を明確に通知する必要があります。
一時停止に意味があるゲームでは、ユーザーが画面の左端、下端、右端からスワイプ操作を行ったときや、システム ダイアログ ボックスが表示されるときなど、ゲームがフォーカスを失う場合にゲームを一時停止してください。 テンポの早いゲームや時間制限付きのゲームの場合は、ウィンドウ サイズやレイアウトが変わったときに一時停止するように設定してください。 このサポートにより、ユーザーは一時停止を解除して新しいウィンドウ サイズやレイアウトでゲームを再開することができます。 ただし、一時停止が必要なのはフォーカスが失われた場合のみとは限りません。 ユーザーが操作やマルチタスクを一時停止できるようにするボタンをゲームに含めることを検討します。 このトピックの「ゲームプレイの操作」セクションで検討したコマンドの配置場所と同じ考慮事項に基づいて、一時停止コマンドの配置場所を決めてください。
一時停止状態の通知: ゲームが一時停止状態にある場合にユーザーに通知します。一時停止のオーバーレイや一時停止画面を表示できます。パズル ゲーム、戦略ゲーム、時間制限付きゲームでは、一方のユーザーが一時停止中にゲーム ボードを確認して対戦相手が不利にならないように、一時停止中はゲーム キャンバスを見えにくくすることをお勧めします。
ゲームの一時停止解除は、一時停止を行う場合と同様に、簡単な操作にしてください。一時停止のオーバーレイや一時停止画面を設定した場合、ゲームの一時停止を解除する手段を設定する必要があります。ユーザーがハブ ページに移動する場合は、必ずゲームが一時停止するように設定してください。 ユーザーがゲームに戻るかゲームの一時停止を解除すると、ゲームを同じ状態で再開できる必要があります。
ユーザーがゲームの一時停止を解除する際は、操作を再開する前に、ユーザーが現在の状況を確認できるようにしてください。これには、カウントダウンをお勧めします。
タイム フロー コントロールを表示するゲーム (都市開発ゲームなど) では、時間の流れを "一時停止" できますが、これはゲームの一時停止とは異なります。一時停止とは、ユーザーによるゲーム操作を完全に中断することですが、アニメーションが再生され続けるなど、背景のレンダリングは続く場合があります。
画面の向きとウィンドウのサイズの変更
ユーザーは、アプリのサイズを全画面から最小幅までの範囲で変更すること、縦向きまたは横向きにデバイスや画面を回転すること、複数のアプリを画面上に並べて配置することができます。ゲームでは、可変ウィンドウ サイズと向きの変更をサポートする必要があります。プレイヤーのエクスペリエンスを円滑で連続的なものにするために、ウィンドウのサイズを変更するときには、ゲームの状態が維持されるように注意してください。 横向きのビューから縦向きのビューに切り替える場合、ホーム画面に戻す必要はありませんが、元のページのサイズ変更した後のバージョンをユーザーに対して表示する必要があります。
ゲームでサポートする必要がある最小幅は 500 ピクセルですが、320 ピクセルの最小幅をサポートすることによって、ユーザーの関心を高めることができます。ゲームを選んだ最小幅に至るまでの幅でプレイできる状態にし、後は表示をスペースに合わせて調整するだけで済むようにしてください。
ゲーム内でより小さい幅に合わせて調整できます。ゲームの性質によって、調整するために選ぶ方法を決定するのに役立つ場合があります。
サイズ変更とレターボックス: 固定縦横比を維持し、小さい幅に合わせてゲームをレターボックス化します。この方法は、代替ウィンドウ サイズに合わせて動的に再配置できない、柔軟性のないコンテンツのゲームに最適です。コンテンツを黒い帯を使ってレターボックス化する代わりに、ゲームにふさわしい色やパターンを使うことを検討してください。Cut the Rope では、次の画像で示しているようにこの方法を使っています。
パン、トリミング、ズーム: ユーザーが、パン、トリミング、ズームした状態で、ゲームの特定のセクションを同時にプレイできるようにします。PuzzleTouch では、次の画像で示しているようにこの方法を使っています。
適合: 異なるレイアウトでもユーザーがプレイできるように、ゲームのコンテンツのレイアウトを調整します。複数のゲーム画面やページを、最も効率的な方法で利用可能なウィンドウ幅を使うビューに組み込むことができます。たとえば、ゲーム画面を画面の上部に配置し、スコアボードや達成度をその下に配置します。Microsoft Solitaire では、次の画像で示しているようにこの方法を使っています。
フォーカスがゲームから画面上の別のアプリに移動した場合、そのゲームは適切に調整または一時停止される必要があります。
ゲームを狭い幅でプレイできるようにすると、マルチタスクが有効になります。これにより、システムで他の操作を行いながら引き続きゲームをプレイできるので、より長い時間ユーザーをゲームに引き込むことができます。この手法は、画面全体を占有することなくユーザーの注意を引くことができる、軽量でシンプルなゲームの場合に特に便利です。たとえば、狭い幅のビューで引き続きパズルを解いたり、ターン制のゲームで自分の番の手を打ったり、ボード ゲームをプレイしたりできます。ゲームに付随するアクティビティ (友人とのチャット、マップの表示など) がある場合、そのアクティビティは狭い幅でも注目を集めることができます。
次の例では、Cannon Ball を狭い幅でプレイできます。 ゲーム要素は狭いウィンドウに合わせて並べて表示、再配置、サイズ変更され、ページはユーザーがより多くのレベルを見られるように拡大/縮小されます。
ユーザーがウィンドウを狭い幅にサイズ変更した場合のタッチ操作について検討してみましょう。 幅が狭くなると、ユーザーがエッジ アクションを間違って呼び出す可能性が高くなります。 コントロールを変更して意図しない端のスワイプ操作を防ぐ方法を検討してください。 また、コマンドの配置を検討することも重要です。 アプリが狭い幅の状態の場合は、アプリ バーにすべてのコマンドが収まらない可能性もあります。 このような場合、コマンドをグループ化するか、より対象を限定したエクスペリエンスを用意し、必要なコマンドを少なくします。 アイコンのラベルを表示できないくらいウィンドウの幅が狭くなった場合、既定では標準的なアプリ バーのボタンのラベルは非表示になります。したがって、ラベルがなくても識別しやすいアイコンを選ぶようにしてください。
小さい表示サイズではゲームをプレイできない場合、またはゲームを先に進めるには画面上のスペースがさらに必要な状態になった場合は、ゲームを一時停止し、ユーザーに対して、アプリをサイズ変更して幅を広げないとこれ以上の操作が不可能であることを説明する必要があります。一時停止時やサイズ変更時に、ゲームの状態やコンテキストが失われないようにしてください。ユーザーがアプリの表示を大きいサイズに戻した場合に、ゲームをシームレスに続けることができる必要があります。ウィンドウ サイズについて詳しくは、「ウィンドウ サイズと画面に合わせたスケーリングのガイドライン」と「縦長で幅の狭いレイアウトに対するウィンドウ サイズの変更のガイドライン」をご覧ください。
画面の解像度や DPI 設定が異なる場合に、ゲームをそれに合わせてスケーリングする方法を検討することは必須です。通常、ゲームを拡大縮小すると、ゲーム アセットがぼやけたり、不適切な縦横比になったりするため、見た目が良くありません。 スケーリングを直接行うよりも、解像度に合わせて表示を調整するレイアウトを作成することを検討してください。たとえば、大きな画面では、表示を拡大するのではなく、より多くのコンテンツ (レベルなど) が表示されるようにします。画面に合わせたスケーリングについて詳しくは、「画面に合わせたスケーリングのガイドライン」をご覧ください。
状態の管理と保存
ゲームは、Windows ストア アプリの状態モデルに従う必要があります。ゲームの最新の状態を記憶して、ゲームがアクティブになったときにユーザーをその状態に戻す必要があります。
ゲームを中断する場合、中断前に既に一時停止状態にある必要があります。ただし、一時停止モードが組み込まれていないゲームは除きます。アプリに一時停止モードがない場合は、ゲームに復帰すると、ユーザーは直接ゲーム エクスペリエンスに戻ります。
永続的なマルチプレイヤー ゲームでは、ユーザーが表示していたセッションが終了した場合、ユーザーには、ゲーム終了後の画面を表示するか、ゲームのセッションが終了したことを通知する必要があります。
このような状態管理ガイドラインは、ゲーム自体の "チェックポイント" や "保存ファイル"、複数のデータの保存などの概念とは関係がありません。これらのガイドラインは、Windows 8.1 のプロセス ライフ サイクルにのみ関連します。 状態管理について詳しくは、「アプリの一時停止と再開のガイドライン」をご覧ください。
クラウドへのローミング
ゲーム状態と設定のローミングによって、デバイス間で連続性のあるエクスペリエンスを実現し、デバイスに関係なく、ユーザーがゲームを中断したところから再開できるようにします。設定と状態をローミングによって維持することで、キッチンで家族が使う PC から仕事用 PC、個人用のタブレットまで、どこにいてもゲームを快適にプレイできるようにします。詳しくは、「アプリのデータのローミングのガイドライン」をご覧ください。
アクセシビリティ
Windows ユーザーの中には、障碍を持っている方もいます。 障碍を持っている人がプレイできるようにゲームを作り直すことができる場合は、これらのユーザーに対応するようにしてください。 Windows ストアに提出する際に、ゲームをアクセシビリティ対応とマークすると、障碍を持っているユーザーは、アクセシビリティ対応のアプリ検索機能を使って、そのゲームを探すことができます。 アクセシビリティに対応した設計原則に従っておくことで、ゲームの対象ユーザーの間口が広がり、ゲームのユーザーを増やすことができます。 特に設計プロセスの初期段階で検討した場合、アクセシビリティ機能を Windows ストア アプリに追加するのは簡単です。 ゲームにアクセシビリティ機能を追加すると、すべてのユーザーにとって遊びやすくなります。 たとえば、ゲームのコントロールをユーザーが手を置いた位置に基づいて再配置できると、利き手が左右どちらであっても、それぞれが最も使いやすい配置でゲームをプレイできます。
アクセシビリティを設計する際には、いくつかの重要なシナリオを検討する必要があります。
視覚に障碍があるユーザー向けの設計: 視覚に障碍があるユーザーは、ゲームの UI を頭の中に描くために、スクリーン リーダーを使います。 スクリーン リーダーをサポートするには、ゲーム内のすべての UI 要素に、名前、役割、説明、状態、位置、その他関連する情報が正確にラベル付けされている必要があります。 システム全体に関するアクセシビリティのオプション ([簡単操作] 設定) で、[画面上のすべてのものを大きくする] やハイ コントラスト モードに設定した場合などの UI の見た目を検討することは重要です。 ハイ コントラスト モード用に代わりのアセットを作成する必要がある場合や、システム全体でハイ コントラスト モードを有効にすると、ゲームのビジュアルを調整するためにコードを追加する必要がある場合があります。 色覚に障碍があるユーザーが識別できるカラー スキームを採用し、ゲーム内で情報を伝えるのに色を使う部分がある場合は、テキスト、形状、アイコンなどの別の手段で伝えてください。
Cannon Ball はハイ コントラスト モードでプレイできます。 このために、開発者は、システムがハイ コントラスト モードに設定されたときに呼び出される、一連の代替アセットを作成しました。
キーボード アクセシビリティと代替入力の設計: キーボードは、スクリーン リーダーを使うユーザーや、スイッチ コントローラーやアイ トラッカーなどの代替入力メカニズムを使うユーザーにとって必要不可欠です。 すべての UI 要素に Tab キーや方向キーを使ってアクセスできるようにしてください。 UI 要素は、Space キーと Enter キーを使ってアクティブ化できる必要があります。 コマンドとコントロールは、キーボード ショートカットを使ってアクセスできる必要があります。 キーボードのみを使ってゲームをプレイできる方法を検討してください。 たとえば、Cannon Ball では、方向キーを使ってプラットフォームを回すことができれば、キーボードの入力のみを使ってゲームをプレイできます。
聴覚に障碍があるユーザー向けの設計: ゲームにオーディオ キューや音声によって情報を伝える部分がある場合は、聴覚に障碍があるユーザー向けに字幕を表示する必要があります。 すべてのオーディオ要素に字幕を設定し、音がなくてもゲームの雰囲気や意味が伝わる必要があります。 効果音と台詞など、複数の音を同時に鳴らすような場合は、聴き取りやすいように別個のボリューム コントロールを用意してください。
認知機能に障碍があるユーザー向けの設計: 可能であれば、ゲームをさまざまな難易度やゲーム スピードで遊べるようにします。 学習障碍や認知障碍があるユーザーがゲームをプレイできる方法を検討してください。 ゲームは読解が困難なユーザーでもプレイすることができますか?可能であれば、運動障碍や学習障碍を持つユーザーのために、サンドボックスや時間制限のない無料プレイ モードを設定します。
まとめ
ゲームには、ユーザーが操作できる多くのリッチ コンテンツが用意されています。Windows 8.1 の優れたゲームでは、そのコンテンツがユーザーの目の前に配置され、邪魔になる UI が表示されないようにします。ここで紹介したアドバイスやガイドラインに従ってゲームの各コンポーネントを調整し、最高のゲーム エクスペリエンスを実現することができます。