Alexaで面白いゲームスキルを作る!AAJUG 関東支部 Vol.4 – 「Alexaでゲームをつくる」参加レポート #aajug

2019.05.17

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Alexaでゲームスキルを作ろう!

本日2019年5月17日に開催されたAAJUG 関東支部 Vol.4 - 「Alexaでゲームをつくる」に参加してきました!

Amazon Echoと戯れるにはまずはやっぱりゲームスキル。ということでVUIでゲームスキルを作るための勘所を学ぶため、AAJUGのテーマはゲームスキルについてです。

そのレポートを公開したいと思います!

「ゲームのレシピ」

弊社タケダノより、ゲームについての考え方について解説しました。

  • ゲームの定義
    • ゲームは簡単に定義はできない
    • 今日は楽しいことを全てゲームとする
  • ゲーム作りに対する姿勢
    • 作りたいゲームがある場合は自由に作った方が良い
    • 今日の話は軸としてはまとまるけどつまらなくなる可能性がある
  • ゲームのレシピ
    • 文化的嗜好の話
    • 日本人は高コンテキストが好き
    • コンテキスト文化とゲーム作り
    • 時間が分断される = 低
    • 空間が分断される = 低
    • 東洋は高コンテキストが好き
    • 西洋は低コンテキストが好き
    • アメリカで生まれたAlexaは低コンテキストの土壌を持つ
  • ゲーム分類
    • RPG : 反射神経不要、高コンテキスト
    • アクション : 反射神経必要、低コンテキスト
    • 嗜好系パズル
    • 格闘、FPS、バトルロイヤル
    • Alexaは低コンテキストから高コンテキストに持ち上げるように考えるのはどうか
  • 入力と出力
    • TVゲーム : コントローラーで入力し、画面と音声で出力
    • Alexa : マイクで入力して音声で出力する(Echo Showなどは画面も)
  • どうやってつなぎ目を無くすか
    • 出力と入力の流れをどうやって繋げるか?
  • 演出と本質
    • 本質 : メカニズムが大事(ジャンケンのように)
    • 演出 : メカニズムは同じでも、魅せ方が違うと違うゲームになる
    • 視覚、聴覚、触覚に頼る
    • 現実を再現するのでも誇張するのでもなく、あくまで頭の中の気持ち良さを再現する最適値を模索する
  • 心理
    • ゲームは欲求を持たしてくれる
    • マズローの欲求段階説
      • 精神的な欲求の方が強い
      • Haveニーズ -> Doニーズ -> Beニーズ
      • 〜になりたい、〜されたいがもっとも強い欲求
    • 動機づけは「目標」
    • 目標を達成するまで辞めない状況を作るためのゲームバランス
    • 褒める褒める褒める
    • 目標が正しく設定されて
    • そこそこ難しくて
    • 技術介入性があって
    • 褒められる

最後に私が突貫で作成した育成ゲームのスキルのデモを行いました。近日公開??

Alexaゲームスキル作成の勘所 -Audio Labyrinth~脱出ゲーム~の事例-

筑波技術大学スマートスピーカーアプリ開発チームの皆様から「Audio Labyrinth~脱出ゲーム~」を事例にゲームスキルの勘所をお話いただきました。

  • 筑波技術大学スマートスピーカーアプリ開発チーム
    • 全盲2人、弱視2人で構成されたチーム
    • 探索ゲームスキル「Audio Labyrinth - 脱出ゲーム -」を開発
  • はじめに: VUIゲームについて重要なこと
    • リアルタイム性と没入感が重要
    • VUIの難しさ
    • 単位時間あたりの情報量が少ない(GUIは多い <-> VUIは少ない)
    • 対話モデル、情報の伝え方が重要
    • 情報の受け取り方: GUIは見ればいいけどVUIは拾い読みができない
    • 情報のアクセス: VUIはシリアル、表現が冗長になりがち
  • 今回使うサンプルスキル
    • 迷路ゲーム
    • トラップを避けながらゴールに進む
  • Theme1: ストレスフリーな対話モデル
    • もっともできの悪いスキル
    • 簡潔に統一された言い回しを使う
    • 親しみやすいフレンドリーな言い回しを使う
    • 答えやすい選択肢を使う
    • ヘルプインテントも活用する
    • 繰り返し使われる文言や操作はカットしていく
    • 最小限にして、わからなくなったらヘルプを呼び出すように設計しておく
  • Theme2: 効果音を使ってゲーム性を演出
    • 「決定」「キャンセル」は専用の効果音を使う
    • わかりやすくなる
    • イメージしやすい音を使う
    • 例 : 池であれば池に石が投げ込まれた音を使う
    • 効果音の不要な無音部分をカット
    • 編集で不要な部分をカットする
    • 不要な無音部分が多いとリアルタイム性が失われてイライラする
  • Theme3: SSMLを使って表現を豊かに
    • Amazon Pollyを使って表現を豊かに
    • 音声をTakumi(男性)に変えてみる
    • 今回のゲームの場合、男性の方が没入感が高まる
    • 音の高さを変更する
    • ヒントを高めの音にすることで、印象付ける
    • Speechcon
    • 発音が感情豊かに
  • Theme4: 物語(シナリオ)の伝え方を工夫
    • 例えばGUIで小説調に表現しているものをそのままVUIに変えてみる
    • 誰が何を言っているのか分かりにくい
    • セリフと情景の違いが分からない
    • 起伏がない
    • 工夫して改善した結果
    • セリフで掛け合い、効果音を使う、ナレーター視点ではなく当事者視点で伝え方を工夫

ゲーム開発の一例と考察

株式会社サイバード 技術統括部 技術2部 篠崎 敦さんの迷路スキル「強欲なうさぎの迷路」の開発の裏側についてお話いただきました。

  • 篠崎さん(しのやん)
    • 小学校2年からゲームプログラムを始める
  • 強欲なうさぎの迷路
    • Alexaスキルアワードに応募
    • 突然の脚光を浴びている
    • 紹介
    • 迷路ゲーム
    • 迷路を自動生成
    • ウィザードリィをイメージ
    • 8人日でリリース
    • 迷路ロジックは「穴掘り法」
  • 開発のコツ
    • インテントからインテントを呼ぶ
    • ユーザーの発話を待たずに進めたい
    • 他のインテントを呼んだ後に元のIntentに戻ってくる
    • ゲームモードの定義
    • タイトル、メニュー、オープニング、ゲームメイン、ゲームオーバー、スコア結果
    • ゲームのモードに合わせて条件に加えて処理する
    • ゲームモードの遷移
      • セッション情報を取得し、次に進ませる
    • 画面表示部分の汎用化
    • 音声動機の画像アニメーション
    • アセットと発話とDurationをリストで持たせてJSON山脈を作る
    • 作りながらドキュメンテーション
    • 熱が冷めないうちに記録する
    • ハマりどころベスト3
    • Promise
      • async/await 含み、正しく理解しよう
      • 他の人のソースを呼んで書き方を学ぼう
    • 多次元配列
      • 問題
      • 配列, 連想配列, JSONを混在できるけど値がうまく取り出せなくなってしまう
      • 参照渡しなのかどうなのかを考えて書く
      • これは文字列なの?数値なの?が起こる
      • 平たい配列族にしよう
      • 型を意識、TypeScriptを使う
    • APLのデバッグ
      • 構文チェック方法
      • APLレスポンスをログに取る
        • directives の中身を取る
      • コンソールでビルド -> 画面表示 -> ロードを使うと表示できて問題があるかチェックできる
  • 可能性を探る実験(公式ではサポートされていないので注意)
    • 画面再描画せずに動画再生しながらアニメ制御ができた
    • BGM再生しながらAlexaと対話できるので、場の雰囲気を壊さずに対話できるので効果的

まとめ

スピーカーのみなさん、ゲームについてかなり本気で考えられており、いかに面白いゲームスキルを作るか?について考え方的についても技術的についても大変勉強になりました。

とりあえず突貫で作ったゲームスキルはタケダノと仕上げたいと思います…!