Alexa Web APIを使った新しいマルチモーダルゲームをデザインする

Joe Muoio Mar 11, 2021
Share:
Design Tips & Tools Game Skills Multimodal
Blog_Header_Post_Img

このブログはDesigning New Multimodal Games with the Alexa Web APIを翻訳したものです。

Alexa Web API for Gamesは、新しいマルチモーダルエクスペリエンスをプレイヤーに提供するためのツールを備えており、Alexaを使ったゲームの新境地を開きます。既存の音声のみのゲームを強化する場合でも、画面上でのエクスペリエンスを中心とした新しいスキルを作成する場合でも、この記事で紹介するデザインのベストプラクティスに従えば、印象的なゲームエクスペリエンスを備えたスキルを実現できます。

一般的なマルチモーダルのベストプラクティスに基づいて開発する

Alexa Presentation Language(APL)での経験から、優れたマルチモーダルエクスペリエンスを実現するためのベストプラクティスが判明しました。このインサイトに基づいてWeb API for Gamesのスキルを設計することで、よりアクセシビリティに優れた、楽しくプレイできるゲームを開発できます。以下に、マルチモーダルなAlexaスキル全般に通じるベストプラクティスをご紹介します。

音声ファーストとするが、音声限定にはしない

Alexa Web API対応デバイスでのみプレイ可能なゲームを開発する場合でも、Alexa Web APIを使用して音声限定ゲームを強化する場合でも、Alexaのエクスペリエンスは音声を中心としたものであり、プレイヤーは主に自分の声を使ってゲームをプレイすることを期待しています。つまり、次のことを考慮してゲームをデザインする必要があります。

  • ゲームプレイの中心手段は音声にする: プレイするうえで画面を見ることが必須がある場合でも、メインゲームは音声対話で進められるようにします。
    • 画面上の各タッチ操作(またはリモート操作)対象には、対応する音声コマンドを必ず用意します。ゲームを進めるうえでタッチ/リモート操作をプレイヤーに強いることがないよう注意してください。
    • ゲームにとって意味があるのであれば、プレイヤーが簡単に操作方法を切り替えられるようにするとよいでしょう。プレイヤーが音声対話とタッチ対話のどちらを好む(または必要とする)かは状況によって異なるため、中核的なゲームコントロールには、対応するタッチ対話をオプションとして追加することをお勧めします。ほとんどのDOMイベントは完全にコントロールできるため、これらをデザインに組み込むことをお勧めします。
       
  • タイムリーかつ便利で楽しいエクスペリエンスを画面上で提供する: ゲームプレイ中の最も重要な瞬間は、便利かつ楽しい対話で強調しましょう。ゲームのスコアなど状況に合った重要なデータや、勝者を示す視覚的なフィードバックなどを必ず表示するようにします。最高にインパクトのある瞬間やキャラクター、ユーザーとの対話をデザインすることに重点を置いてください。たとえば、キャラクターを使用する場合は、キャラクターをアニメーション化したり、ステージクリア時にタイミングよく音声やアニメーションでプレイヤーをお祝いしたりすることをお勧めします。

アクセシビリティ、見つけやすさ、読みやすさを考慮してデザインする

Alexa Web API for GamesはFire TVとEcho Showデバイスに対応しているため、ユーザーがこれらのデバイスをどのように使用するかを考慮してデザインしてください。多くの場合、ユーザーは1~3m程度離れた場所からFire TVやEcho Showの画面を見ます。

  • 最適な視聴距離を考慮してデザインする: ゲームの重要な部分は3mの距離からでも見えるようにし、その他の画面上の要素は1m離れた場所から視認できるようにします。リビングルーム、キッチン、デスクなど、プレイヤーの環境に合わせて、 適切なサイズおよび太さの見やすいフォントを使用します。また、各種デバイスのピクセル密度を調整する際には、ベストプラクティスを考慮してください。詳しくは、Alexaデザインガイドの文字の表現に関するベストプラクティスを参照してください。

  • アクセシビリティに優れた効果的な色を選択する: 意味や視覚的階層を伝える場合は色を活用してください。デザイン要素の重要度に応じて、より目立つ色を使用します。前景色と背景色のコントラスト比は、4.5:1以上にします。この比率は、オンラインの計算ツールで求められます。詳しくは、Alexaデザインガイドの色に関するベストプラクティスを参照してください。

  • プレイヤーに役立つレイアウトをデザインする: 最も重要な情報やコントロール、アクションが、画面上で最も多くの面積を占めるようにします。同様の機能を持つ画面は、必ず同じようにプレイヤーに表示します。たとえば、ゲームプレイ中に画面右下の部分に統計情報のヘッドアップディスプレイ(HUD)を表示する場合は、プレイヤーがその情報を要求したときに必ずその場所に表示します。詳しくは、Alexaデザインガイドのグリッドを使用したわかりやすいレイアウトの作成方法を参照してください。

  • だれでもプレイできるゲームにする: 可能であれば、画面に表示されている内容をユーザーに伝えるためのインテントをサポートします。簡潔な音声応答ではすべてを把握することは難しいかもしれませんが、次に行うべきことをプレイヤーが判断するうえで最も重要な情報を応答で伝えるようにします。詳しくは、Alexaデザインガイドのだれでも利用できるスキルのデザイン方法を参照してください。

すべてのデバイスに対応した魅力的なエクスペリエンスをデザインする

場合によっては、一部のAlexa搭載デバイスでは完全なゲームデザインを実現できないこともあります。Echo Dotなどのスピーカーのみのデバイスや、Echo Spotなどの古いデバイスは、Alexa Web API for Gamesをサポートしていません。Alexa Web API対応デバイスでのみプレイ可能なゲームをデザインする場合、次のベストプラクティスに従ってください。

  • 画面の付いていないデバイス向けにしっかりとした音声説明を提供する機能をサポートする: 音声のみのデバイスでも、適切な機能を利用できるようにします。たとえば、プレイヤーのスコアやマイルストーン、実績をトラッキングしている場合は、どのデバイスでも「アレクサ、ジョーの単語ゲームでスコアが一番高い人を教えて」などと質問できる必要があります。スピーカーのみのデバイスでも、ジョーの単語ゲームから答えが聞けるようにしてください。

  • スキルがサポートできることと、どこでゲームをプレイできるかをユーザーに伝える: スピーカーのみのデバイスでサポートされていないコマンドを備えたスキルにプレイヤーがアクセスした場合は、そのデバイスでスキルができることと、Alexa Web API対応デバイスでプレイヤーができることを伝えます。たとえば、プレイヤーが画面の付いていないデバイスで「アレクサ、ジョーの単語ゲームを始めて」と尋ねた場合は、「ジョーの単語ゲームはEcho ShowかFire TVでプレイできます。最新のスコアを聞きたいですか?」などと伝えます。

音声のみのエクスペリエンスについては、画面を使わないAlexaエクスペリエンス向けの音声ファーストスキルまたは音声限定スキルに関するベストプラクティスに従ってください。詳細については、Alexaデザインガイドを参照してください。

Web API for Games固有のガイダンス

Alexa Web API for Gamesは、これまでにないエクスペリエンスをプレイヤーに提供します。そのため、こうした対話のために、ほかにもいくつかデザインの可能性を検討する必要があります。

  • セッション時間と、プレイヤーがどのようにゲームをプレイするかを考慮します。ウェブアプリケーションは、対話がない状態でも30分間は開いたままにすることができます。このようにセッション時間が延長されているので、ウェブオーディオやアニメーションなどの再生が可能になります。ユーザーがスキルセッションを明示的に停止するために何かを言った場合(「終了」など)、ウェブアプリケーションは閉じられます。

  • ウェブオーディオを使用すると、複数の会話のターンにわたってサウンドの再生を動的にコントロールできます。アニメーションやスキルバックエンドのAlexa読み上げ機能と連動させながら、複数のオーディオトラックを同時に再生し、オーディオソースの音量調整、シーク、一時停止、ループを行うことができます。AlexaのJavaScriptライブラリユーティリティであるFetchAndDemuxを使用すれば、ウェブオーディオを活用してAlexaの読み上げを再生することもできます。

  • ウェブオーディオを使用する場合は、デフォルトでは音量を下げないことをお勧めします。プレイヤーが話すときに邪魔にならないように、音声イベントをリッスンして音量を下げるようにします。また、読み上げイベントをリッスンして、Alexaの読み上げが再生されているときにウェブオーディオの音量を上げることもお勧めします。

  • マイクAPIを使用してマイクの起動をリクエストすることをお勧めします。これにより、会話以外のエクスペリエンスをデザインできます。たとえば、画面上のボタンが押されたときや、ウェブオーディオの再生が停止した後にマイクを起動します。

  • ゲームプレイ中にウェイクワードを言うようユーザーに指示する場合は、プッシュツートーク専用デバイスに合わせて代替シナリオをデザインします。たとえば、Fire TV Stickにはウェイクワード検出機能がないため、「『アレクサ』と言ってください」ではなく、「マイクボタンを押してください」という指示をプレイヤーに伝えるオーバーレイを表示するとよいでしょう。

スキル側を主要部分とするデザイン

スキル側を主要部分とするAlexaゲームを制作する場合、ゲームロジックの中核をバックエンドに置くことになります。クラウド側がゲームの主要部分となり、HTML側のエクスペリエンスは単に補助的なものになります。これはAlexa Web API for Gamesを使わずに実践できる唯一のアプローチであるため、以前にAlexaスキルを開発したことがある方なら、このアプローチについてはよくご存知でしょう。 このアプローチの主な利点は、音声のみのエクスペリエンスを構築しやすく、より多くのプレイヤーにゲームを提供できることです。ここでは、スキル側を主要部分とするゲームを開発する際にデザインで考慮すべきことをいくつか紹介します。

  • 可能であれば、音声のみでゲーム全体をプレイできるようにします。スキル側を主要部分とするゲームとして開発していても、視覚要素がエクスペリエンスに欠かせないゲームもあるでしょう。しかし、中核的なゲームエクスペリエンスを提供できるのであれば、音声のみでプレイできるようにします。

  • スキル側のさまざまな変化に反応する視覚要素をデザインします。インテントハンドラーが呼び出されたときに、対応するアニメーションを再生したり、新しい状態を反映するように画面を更新したりします。そのためには、HandleMessageディレクティブを使用し、変化に応じてバックエンドから状態情報を送信する必要があります。

  • 一貫性を確保するために、スキル側で生成されたオーディオを使用します。また、fetchAndDemux APIを利用し、ウェブオーディオと読み上げの組み合わせを管理することで、視覚要素と読み上げの同期をさらにきめ細かくコントロールできます。ほかにもウェブオーディオを使用する場合、音声のみのエクスペリエンスでは、複雑化は避けられないことに注意してください。 動的なオーディオがゲームに必要で、すべてのAlexa搭載デバイスにそのオーディオを適用したい場合は、APL for Audioも最適なツールです。

HTML側を主要部分とするスキル

HTML側を主要部分とするスキルでは、メインのゲームロジックは、デバイス上で実行されているJavaScriptのウェブアプリケーションで処理されます。これは時間ベースやフレームベースのゲームに最適であり、ウェブ向けのJavaScriptゲームを開発したことがある方ならよくご存知でしょう。この種のエクスペリエンスでは、すべてのAlexa搭載デバイスでゲームの中核部分を利用できるわけではありません。しかし、斬新なゲームをより自由に試せるようになります。音声でのプレイが適していれば、開発済みのJavaScriptゲームを移植してもよいでしょう。

  • ウェブオーディオをほかにも使用することをお勧めします。ウェブオーディオはデバイス上のブラウザで再生されるため、Alexaサービスで課される240秒というオーディオの時間制限に縛られることはありません。音声のみのエクスペリエンスと同等のものを提供するという要件がなければ、2種類のオーディオエクスペリエンスを構築する複雑さがなくなり、動的なオーディオをより簡単に活用できます。

  • 音声コマンドはウェブアプリケーションにルーティングして処理します。中核的なゲームのインテントをメッセージ送信ディレクティブを使ってWebViewにルーティングすれば、Alexaスキル側を非常に簡素化できます。 ウェブアプリケーションの観点からゲームをデザインし、ゲーム内の重要なアクションすべてに音声コマンドを追加します。

  • シミュレーションゲームなどの時間ベースのゲームが可能になります。Alexaゲームスキルでの1つの可能性として、リアルタイムで項目を画面上で移動させて、クラウドにアクセスすることなくユーザーと対話することが可能になりました。

まとめ

Alexa Web API for Gamesを使用すれば、幅広いデザインを試すことができます。一般的なマルチモーダルスキルに関するデザイン知識の多くは今でも通用しますが、Alexa Web API for Gamesを活用すれば、可能性がさらに広がります。音声ファーストでデザインを行い、ベストプラクティスに従って、アクセシビリティに優れた、楽しくプレイできるゲームを開発しましょう。ウェブオーディオ、マイクインターフェース、拡張スキルセッションAPIを使用すれば、より多くのツールを自由に使えるようになり、斬新で没入感のあるゲームを開発できるようになります。皆さんが開発しているゲームを、ぜひTwitter(@JoeMoCode)で教えてください。

関連記事

Subscribe