ちょぎそん2 クリエイティブがいるチーム(仮)

昨年末に行われた超技研主催のハッカソン”ちょぎそん vol.2”の参加チームに成果物について記事にしていただきました。最後は唯一のクリエイティブチームの紹介です。

ではどうぞ

クリエイティブがいるチーム(仮)

どーも。竹村と申します。
日頃は品質管理室でアプリなどと戯れる日々を送っています。

何故、チーム名に(仮)が付いているのにも実は大きな意味がありまして、それも含めて紹介していきます。

LINE BOT

クリエイティブ部がいる=他のチームにない強み。だからこそのモノを作りたいと思い、企画会議を続けてきましたが、なんかピンとくるものがなく悶々とする日々、〆切が迫る…。

そんな時、「LINE BOT AWARDという、LINE BOTのコンテストがあるらしいよ、優勝賞金1000万だよ!目指してみようよ」との意見が。

今回のちょぎそんのコンセプトにも合うしチームの強みも活かせるし、コレだ!ということで企画は決まりました。

LINE BOTで何をやるの?

サービスをやるには時間やデータが足りない、どうするのか?

「アドベンチャーゲームを作ろう」

他チームの待ち時間に遊べる、暇つぶし出来る、データとか必要ない、LINEでアドベンチャーゲームはみたことない、チームの強みも活かせそうということで決まりました。

シナリオは、案を出した自分が書くことに(大学時代に映画学科でシナリオの勉強していたことがこんなとこで役に立つとは思いませんでした)

どんなストーリー?

チーム名を盗まれたっていうのはどうですか?という案を採用
チーム名を(仮)としたのもそのせいなんすね。
ただのLINE BOTのアドベンチャーゲームだけでなく、リアルとも繋がりができるしいいなーと。

どんなシナリオにするの?

LINE BOTは話しあえるのがプレイヤーとLINE BOTのみ。色んな登場人物を登場させてもBOTのアイコンは話す相手ごとに変えられない、違和感しかない。これをどうクリアするかが問題でした。

で思いついたのが、安楽椅子探偵(現場に行かず話だけ聞いて解決する探偵の事)、ポート〇ア連続殺人事件(“犯人はヤス”で有名なファミコン時代の名作アドベンチャーゲーム)

プレイヤーが安楽椅子探偵役・ボス役、LINE BOTが色んな登場人物に話を聞いてプレイヤーに伝える役。それならプレイヤーをLINE BOT役にしてしまえばいい!

チーム名を盗まれた人役のLINE BOTが謎を解決できないからLINE BOT役のプレイヤーに頼むというシナリオに決定。

結果

ちょぎそんのコンセプトに合致していることと、ひまつぶし作戦が功を奏し、優勝(QRコードを書いたチラシをメイドが配るという作戦も勝ちの要因の一つか)
DSC_1133
そして案件化!
LINE BOT AWARDに向けて本格的に活動開始!

シナリオ練り直し

仕組み(後述します)はそのままで問題ないとして、コンテストに出すにはシナリオはボリュームが足りないということに。
それなら新しく考えようと思い立ったものの、いい案が浮かばず1カ月。頭の中にあるのは「LINE BOTを複数の人間に見立てる方法はないか?」

タイムリープBOT

やばい、これ以上遅らせると開発の時間がなくなる!という頃に思いついたのが、”タイムリープもの”

タイムリープなら時間軸によって同じ人が別人になる=BOTを複数の人間にすることができる。タイムリープものは名作シュタイン〇・ゲートのおかげでアドベンチャーゲームとして受けいれられやすい。

LINE BOT AWARDに未来にはこんなBOTあったらいいねというネタとしても面白い。

シナリオ完成

シナリオは完成したものの、次はアイコンなどの画像。

クリエイティブ部に入社した新人さんがイラストを描けるということで急きょお願いすることに。おかげ様でそれっぽい雰囲気の画面になりました!

タイトル

主人公

ヒロイン

楽しかった

残念ながらLINE BOT AWARDで受賞はできませんでしたが、プレイした人たちから「面白かった」「クリアできない」などの感想を頂き、すごくうれしかったです。

ゲームシナリオを書きたいという大学時代の夢が叶うとは思いませんでした。夢を追いかけて2年間ニートしていたのは無駄ではなかったようです(笑)

技術的な話

シナリオは分岐が分かりやすいようにエクセルでフロー図のように作成しました

シナリオ - コピー

アドベンチャーゲームの選択肢はLINE BOTのカルーセル機能を使いました。カルーセルの画像はクリエイティブ部が作成

カルーセル1
カルーセル2

本当はPush通知を使って、新しいエピソード配信→「また事件が起こった」という風にしたかったのですが、法人の無料アカウントではPush通知を使えず断念しました。

その他、詳しい開発環境等は以下の通り。

開発環境

  • サーバーサイド
  • Rails

  • StateMachine
  • Swift

    タイムリープBOT の主な流れは以下の図のようになります

    linebot

    1. タイムリープBOT の方でメッセージを入力またはボタンのタップなどのアクションを実行することでその情報が LINE が提供する MassagingAPI に json 形式で送られます

    2. MessagingAPI を経由し自社のサーバーにコールバックされます – コールバックされたデータをもとに StateMachine で入力に応じた State を返します

    3. StateMachine によって選別されたデータによってサーバーが State に応じた json を MessageAPI に返します

    4. MessageAPI はサーバーから送られてきたデータを BOT に送り新たなメッセージとして表示されます

    StateMachine

    StateMachine では下記のようにイベントや状態を state として定義しています

    Initial State Event 0 state 1
    Initial State Event 1 state 2
    Initial State Event 2 state 3

    イベント、状態、遷移などのデータは Excel に羅列して作成しました

    スプレットシート

    Excel で作成したデータを swift で読み込みコンパイルして、出力用の json ファイルと StateMachine の json ファイルを作成しています

    Server

    swift で作成した StateMachine の json を DB に保持するようにしています。入力されたデータと BOT が表示している現在のシーンによって適した出力用 json を返しています

    最後にタイムリープBotは現在も運用中です。
    興味を持たれた方は以下のQRコードからLINEの友達登録することができます。

    タイムリープBotQR

    You may also like...