Alexa Web API for Gamesとは



Alexa Web API for Gamesとは

Alexa Web API for Gamesを利用すると、Alexa Skills Kit(ASK)ディレクティブと使い慣れたウェブテクノロジーを組み合わせて、リッチで没入感のある音声対応ゲームを作成できます。たとえば、JavaScript、HTML5、CSS、ウェブオーディオなどが使えます。これらのテクノロジーを使用すると、カスタムアニメーションを利用したAlexaゲームを開発したり、既存のHTMLゲームをAlexa搭載デバイス(Echo ShowやFireTVなど)で動作するマルチモーダルゲームエクスペリエンスに変えたりすることができます。

次の図は、Alexa搭載デバイスでの音声対応ゲームを開始するユーザーを示しています。

画面付きAlexa搭載デバイスでの音声対応ゲームの開始
  1. ユーザーがデバイスに話しかけて、ゲームの開始をリクエストします。
  2. デバイスが発話をクラウドにあるAlexaサービスに送信し、
  3. Alexaサービスは、自動音声認識(ASR)でテキストへ変換し、自然言語理解(NLU)でテキストのインテントへの紐付けをして発話を処理します。次に、Alexaサービスがスキルのバックエンドにリクエストを送信します。
  4. スキルは、デバイスがHTMLディレクティブをサポートしていることを示すリクエストを受け取ります。スキルは、ウェブアプリを起動するための応答を送信し、その際にウェブアプリをホストするウェブサーバーのURLを指定します。
  5. Alexaがデバイス上でブラウザを起動します。
  6. 指定されたURLにあるゲームがブラウザでロードされます。ブラウザは、従来のウェブサイトと同様に、含まれる各アセットに対して複数のリクエストを送信します。
  7. ユーザーが、音声、タッチスクリーン、リモコンを使ってゲームを操作します。ゲームロジックがスキルのバックエンドに含まれている場合は、ウェブアプリがスキルのバックエンドとやり取りします。

ユーザーによるゲームの操作

ユーザーは通常どおりスキルを呼び出して対話します。スキルは、Alexaサービスからの標準的なリクエストに応答して、ウェブアプリ部分のエクスペリエンスを開始します。たとえば、ユーザーにゲームを開始する準備はよいかをたずねるスキルをデザインするとします。

ユーザー: アレクサ、マイウェブゲームを開いて
Alexa: マイウェブゲームへようこそ。プレイの準備はいいですか?
ユーザー: はい
Alexa: わかりました。エンジンを起動します…(サウンドエフェクト)
スキルはウェブアプリを起動し、開始ページを表示します。

ウェブアプリが起動したら、ユーザーはタッチと音声、またはリモコンと音声を使ってアプリを操作します。たとえば、次のようなことができます。

  • 画面上のボタンを押すと、ウェブアプリ内のAlexa音声やその他のアクションをトリガーできます。
  • ゲームにコマンドを話しかけます(「アレクサ、ビームを発射して!」など)。
  • アプリがトリガーした音声プロンプトに答えます(「外れました! もう一度発射しますか?」など)。

この対話は、ウェブアプリが閉じるまで続きます。たとえば、ユーザーが「アレクサ、終了して」と言った場合です。

Alexa Web API for Gamesを使った開発

Alexa Web API for Gamesを使ってゲームを開発する際は、次の2つのパートを作成します。

スキルを開発する際は、これらのパートを別々に作成してから、統合することもできます。たとえば、ゲームのウェブアプリですべての機能が動くようになってから、Alexa音声と音声操作の呼び出しを追加することができます。ウェブアプリまたはスキルのバックエンドにゲームロジックを含めるようにゲームをデザインできます。

スキルとウェブアプリとの通信

Alexa Web API for Gamesのインターフェースを使用して、ユーザーのゲーム操作中に、スキルとウェブアプリ間の通信を行うことができます。

  • Alexa.Presentation.HTMLインターフェースは、スキルにウェブアプリとの通信を行うディレクティブとリクエストを提供します。スキルは、ディレクティブを使用してウェブアプリに情報を送信し、ウェブアプリから受け取るイベントを待機するリクエストハンドラーを使用します。
  • Alexa JavaScript APIインターフェースはウェブアプリに、スキルとの通信に使うメソッドとプロパティを含むAlexaクラスを提供します。ウェブアプリはこのクラスでメソッドを呼び出してスキルにメッセージを送信し、スキルから受け取るイベントを待機するコールバックを登録します。

以下の図は、通信フローを示しています。

スキルとウェブアプリとの通信
  1. ユーザーがスキルを呼び出します。
  2. Alexaサービスが発話を処理し、LaunchRequestまたはIntentRequestを送信します。
  3. スキルコードのリクエストハンドラーが、応答でAlexa.Presentation.HTML.Startディレクティブを返します。応答には、デバイスにロードするウェブページのURLとオプションの音声応答が含まれます。
  4. Alexaサービスが、ウェブアプリを起動するようデバイスに指示します。
  5. デバイスがウェブアプリを起動します。
  6. デバイスに開始ページが表示されます。
  7. ウェブアプリがAlexa.create()を呼び出して、Alexa Clientオブジェクトのインスタンスを作成します。
  8. ユーザーが通常どおりウェブアプリの操作を始めます。
  9. ウェブアプリがalexa.skill.sendMessage()を呼び出してスキルにメッセージを送信します。このメッセージには、ユーザーに対して音声入力のプロンプトを出すようAlexaに指示するイベントなどが考えられます。
  10. alexa.skill.sendMessage()により、Alexa.Presentation.HTML.Messageリクエストが送信されます。
  11. スキルが、これらの受信したリクエストを処理してから、ディレクティブと出力音声で応答します。
  12. スキルが、アプリにメッセージを送信するAlexa.Presentation.HTML.HandleMessageディレクティブを返します。
  13. ウェブアプリが、alexa.skill.onMessage()を使用して、スキルから送信されたメッセージに応答するコールバックを登録します。
  14. この対話中、スキルセッションは開いたままです。ユーザーがゲームを終了するまで続きます。

ウェブアプリでAlexa音声の開始や終了といったその他のイベントを使って、画面上のイベント(ボタンの押下など)と音声コマンドとの間のフローを構築できます。スキルとウェブアプリの通信を使って音声操作と対話を組み込む方法の例については、ウェブアプリに音声操作と対話を追加するを参照してください。

スキルとウェブアプリの要件

Alexa Web API for Gamesを使用するには、スキルとウェブアプリが次の要件を満たす必要があります。

  • HTMLディレクティブに対応するようスキルのコンフィギュレーションを行います。
  • インターネットからアクセス可能なHTTPSエンドポイントでウェブアプリをホストします。ウェブサーバーが有効で信頼できるSSL証明書を示している必要があります。詳細については、Alexa Web API for Gamesを使った開発を参照してください。
  • ウェブアプリでAlexa JavaScript APIを使ってアプリの実行中にスキルと通信します。

サポートするデバイス

次のデバイスは、Alexa Web API for Gamesをサポートしています。Echo Show 10はモーション対応デバイスです。

Echoデバイス

  • Echo Show(第1世代)
  • Echo Show(第2世代)
  • Echo Show 5
  • Echo Show 8
  • Echo Show 10

Fire TVデバイス

  • Fire TV Stick(第2世代)
  • Fire TV Stick 4K
  • Fire TV Stick(2020)
  • Fire TV(第3世代)
  • Fire TV Cube(第1世代)
  • Fire TV Cube(第2世代)