おばんです、最近白髪も増えて徹夜のできない体になってきたしょぼしょぼの田中です。
2016/4/16-4/17に
SPAJAM2016というハッカソンの東京B予選に友人と参加してきました。
残念ながら受賞できませんでしたが、その時実装した設計と得た知見の共有とポエミーなこと書きます。(サーバーサイド担当が友人で、僕はフロントiOSだったので詳しくは語れませんが)
前提
ハッカソンのテーマが「不注意にそなえる」というテーマでした。
僕のチームは居眠り運転などの不注意から起こる交通事故 -> 突然の死など大きな問題ではなく、夜更かしや会議中トイレに行きたいなどの普段意識から外れがちな低レイヤーな不注意を防ぐという目標を持ちました。
夜更かしなどの低レイヤーの不注意にそなえることは心の余裕を持つことにつながり、結果として大きな不注意、危険度の高い高レイヤーな不注意も防ぐことができます。一石二鳥。
作ったもの
ということで作ったものが以下。
黄色が特に可愛い。うちのチームのデザイナー神。
メッセンジャーはオウム返しまでできた。
コビトさんがグーグルカレンダーから前後の予定を見て、予定にない低レイヤーな不注意をおしらせしてくれるリマインダー。アプリには実装されてないけれど、「トイレ行っといた方がいいよ!」とか注意を促してくれます。
リマインダーをこなしていくとアプリ上でポイントをもらえて、それでガチャを引くと新しい個性的なコビトさんがもらえるというもの。もらったコビトさんは設定するとbotに反映される。口調とか性格がそれぞれ違う。
キャラクターに小人さんを選んだのは、寝落ちして気付くとバグがいつの間にか直っているという奇跡が小人さんの仕業だというエンジニア界隈の都市伝説から。
アーキテクチャ
これで利用したアーキテクチャが以下の図になります。
仕組みとしては難しくありません。
FB Messengerアプリ, Lineアプリを使ってbotと会話します。
そのbotはサーバー側で管理していて、メッセージのやりとりを見ています。
メッセージのやりとりが行われたら、その情報を拾って自分のアプリとデータのやりとりをします。
アプリ側からはコンソールのような形でキャラクターを変えるとかでbotの設定を変えてやるもよし、ゲーム要素を取り入れてなんらかのパラメータをやりとりするもよし。
今回はプラスアルファとしてGoogle Calendarの情報も同じように自分のアプリとサーバー側で共通のカレンダーを参照するようにして一つのデータベースのような形で扱いました。
それによって、botが自分の予定を知っていて注意喚起してくれるという状況を作り出しました。
使っているのが普段使っているMessengerやLineなところにリアリティが生まれました。
彼女が欲しい
この例を使うとなんと彼女が作れます。
(まだ実際には作ってないけど)
やはりFacebook MessengerやLineなどのリアルと密接したメッセンジャーの結果がアプリに反映されるリアル感が良いですし、そこにゲーミフィケーションの要素を自作アプリにつけることも可能です。
もうギャルゲですね。
日常的な会話をしたいじゃないですか。
予定を共有して把握していてほしいじゃないですか。
そこからの会話の発展とか、自分のことを知ってほしいじゃないですか。
このアーキテクチャなら彼女が出来ます。
展望
以下が実現できるとよりアツいと思う
・蓄積したデータによるキャラの学習
・蓄積したデータによるユーザーとの関係性の変化
・「「自発的に」」情報の取得、ニュースの情報を拾ったりして日常会話へ反映
・プラットフォーム化(Bot ShopやSDK)
ツンデレライブラリ、ヤンデレライブラリ、ケモミミライブラリ、ドジっ子ライブラリなどアツくないですか。
耳があることによる身体的な常識から生じる日常会話の変化や、ドジなので約束したことをGoogle Calendarに入れ忘れるとか。
あ、ヤンデレだったらカレンダーから誰と何してるかの情報が筒抜けですね。とかとか...。
さいごに
途中からbotとしてなら普通のこととか色々ノイズが入っちゃってましたが、いいんです、真姫ちゃんが可愛いです。
技術的には、Line botはLine側とのSSL関係で1〜3日かかってしまうケースもあるようなので注意が必要です。
Facebook Messenger botは初回の設定項目が多くて大変なようです。
なお、現実彼女を作ることに関してはそもそも女性の分母が少ないエンジニア界隈をターゲットにするのは間違っていると友人に指摘されました。料理教室通うとかデザイナーのいる勉強会に行くとかその他の施策をオススメされました。
0 件のコメント:
コメントを投稿