Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ENJOY H@RMONY!!とボーダーbot

3,061 views

Published on

ENJOY H@RMONY!!

Published in: Entertainment & Humor
  • Be the first to comment

ENJOY H@RMONY!!とボーダーbot

  1. 1. ENJOY H@RMONY!!と ミリオンボーダーbot 2015/6/12 @treby006
  2. 2. About me ● treby ○ 所属ラウンジ ■ 無名ラウンジ→音ノ木(にじいろ)→HHV(IMC9)→未所属→R-Gray ○ 担当:馬場このみ ■ PSL4th(ミックスナッツ) 3位 エンドローラー ● http://imas.gree-apps.net/app/index.php/event/145/flash/endroll/from/memories ■ IMC9 個人30位/HHVの皆様ありがとうございました! ○ ENJOY H@RMONY!! 死ぬかと思った ■ まさかのこのみさん最激戦区 ■ 終盤になるにつれ「bot作ってる場合じゃねぇ」状態に ■ EHを一番エンジョイしたのはこのみPだと思ってる
  3. 3. ボーダーbotについて
  4. 4. ボーダーbotとは ● ミリオンのイベントボーダーを延々とつぶやいてく れるすごいやつだよ! ○ 一時間前のボーダーと比較した値も計算 ● コトがコトなのでこっそりやる(最重要) ○ 技術は楽しいことにもいけないことにも使えるのです
  5. 5. 2014年9月22日最初のツイート
  6. 6. 2014年9月30日運用開始
  7. 7. 当初の運用 ● ごく初期はボーダーのみツイート ○ 時速入れ始めたのは運用開始後1週間後くらいから ● 10分に1回ツイートしてた ○ 今から考えると鬱陶しい。しかも1回のタイミングでボー ダー・時速の2ツイートしてた。 ○ ツイート数がやたら多いのはその頃の名残です。 ● 9th TOKYOにて知り合いのPに布教 ○ 最初の2, 3人のフォロワーさん方だったり
  8. 8. ゴールデンキャッスルからはワンセット ボーダーbotの最近の構成 ボーダー調べるやつ ボーダーDB ファイル解釈して DBに格納するやつ ツイートするやつ (ボーダーbot先生) 一時 ファイル (1)調べて書き出し (2)読み込み解釈、格納 (3)取り出し、ツイート もろもろ定期実行
  9. 9. 詳しくは ● 『Border botを支える技術』 ○ 2014年12月発行 ○ 調べてくるとこ以外の技術面を紹介
  10. 10. ENJOY H@RMONY!!とボーダーbot
  11. 11. ENJOY H@RMONYでの反響 ● 異常とも言える反響 ○ 自分的KPIでは運用開始1年でフォロワー数4桁目指す、 というものだったが一瞬で達成…… ● ENJOY H@RMONY!!やばい ○ 担当アイドルへの愛にあふれてますね ○ 個人的にはアホみたい(失礼)に担当走りまくる人が好き ● 海外のPにもリーチしてるっぽい ○ アジア圏、北米方面 ○ アイマスコンテンツすげぇ
  12. 12. フォロワー数の推移
  13. 13. ツイート影響指標:普段の15倍
  14. 14. 最も反響の大きかったツイート
  15. 15. まとめ ● ボーダーbot史上最大の反響 ● 「ボーダーbot」という名前が定着した ○ それまでは、「border bot」とか「Border bot」とか自分の中 でもブレがあった ● ツイッターやってるP達を煽りまくったという問題 (噂)も…… ○ 批判が出てくる程には知名度が上がった ○ なかった場合より結果的に枠が開いた?
  16. 16. ENJOY H@RMONY!! ボーダーbotの舞台裏
  17. 17. EH中のボーダーbot裏側での動き ● 技術的な課題 ○ どうやってボーダーを調べるか:普段はイベントトップの み調べれば良いが、今回は…… ○ 上位報酬獲得者数(枠)という概念をどう既存システムに 盛り込むか ○ 取り込んだ情報をどうやって伝えるか ● イベントが特殊すぎるため、さりげにいろいろと 問題があった
  18. 18. どうやってボーダー調べるか ● 普段 ○ ページを取得→HTML(普通のページ)が返る→要素を 解析する(職人技)→ボーダーが何かを知る ● 今回 ○ このアイドルの情報が欲しいです><→JSON(扱いや すいデータ)が返る→そのまま使う ○ むしろ処理的には簡単になった ● やってみると意外と軽かった
  19. 19. どうやって既存システムに盛り込むか ● 普段 ○ 順位ごとに“border_”というprefixをつけて管理 ○ 10位ならborder_10、1200位ならborder_1200 ● 今回 ○ “border_”というprefixつける運用はそのまま、順位が入 る場所にアイドルIDを入れて流用 ○ 未来ならborder_14、このみさんならborder_39 ○ 枠数用に“reward_rank”という要素を新しく追加 ● これも重くはなかった
  20. 20. どうやってボーダーを伝えるか ● 主に140字との戦い:様々な懸案事項や思惑 ○ 必要な情報は何か ○ 削って良い情報は何か ○ 削ったことでわかりづらくならないか ○ 極力邪魔にならず、かつ有益な情報を届けるにはどうす るか ○ ボーダー高くないアイドルもフィーチャーしたい ● 今回一番チャレンジングだった部分 ○ 次に問題や事例を紹介(長いです)
  21. 21. 素直に全てツイート ● 最初期の実装 ○ 既存コードとほぼ変わらず ○ 3人ずつ、7回に分けてツイート
  22. 22. 問題:素直に全てツイート ● さすがにスパムっぽい ○ どう改善していくかの闘いの始まり ○ 多くても半分くらいのツイート数に収めたい ● ただこれはこれで反響が大きかった
  23. 23. 対応:ツイート数節約 ● やったこと ○ pt/時速をそれぞれ1000で割る ○ さらに、名前の最初一文字でアイドルを区別するように した ● 1回のツイート数7→3まで削減
  24. 24. 問題:ptを1000で割って表示 ● 知識がないと分からない ○ 1000で割られた値だという事前知識が必要 ● いささか単調 ○ 全て同じフォーマットで表示しているので盛り上がりに欠 ける
  25. 25. 機能:ボーダー上位陣をフィーチャー ● 盛り上げる工夫 ● ボーダー上位3人は素で表示 ○ 「激戦区」という言葉が登場 ○ ptが1000で割られている旨も表記 ● ツイートに通し番号を付与 ○ ツイート間の順番がわかるように ● ツイート数は4に……
  26. 26. 問題:可奈と可憐が区別つかない ● 名前の最初一文字でアイドルを表現 ○ 「可奈」「可憐」ともに「可」 ○ 美也がいたら美奈子と区別ついてなかった ● 何気なく見てたら気付いた
  27. 27. 対応:可奈可憐問題(Ruby) ● Before ○ omit_name = name[0] ■ # name = ‘可奈’ → omit_name => ‘可’ ■ # name = ‘可憐’ → omit_name => ‘可’
  28. 28. 対応:可奈可憐問題(Ruby) ● After ○ omit_name = name == ‘可憐’ ? ‘憐’ : name[0] ■ # name = ‘可奈’ → omit_name => ‘可’ ■ # name = ‘可憐’ → omit_name => ‘憐’ ● 超突貫修正
  29. 29. 問題:枠がいつ広がったのか分からない ● 報酬枠が広がったタイミングで通知が欲しい
  30. 30. 対応:枠開きのタイミングがわからない ● 上位報酬者数が増えたタイミングでお知らせ ○ botを構成する複数処理を一つにまとめて実現 ● 後にレイアウトを通常ツイートに統合 ● 枠が開いていく臨場感を演出
  31. 31. 問題:ツイートが多すぎる ● 一度で4回以上のツイート ○ せめて3回まで落としたい
  32. 32. 対応:ツイート多すぎ問題 ● ツイートを数珠つなぎにして文字節約 ○ Twitterのメンションなどに使われる機能を利用して一連 のツイートに関連を持たせる
  33. 33. ツイート群を一連のまとまりとして 表示してくれる (イベント告知やPixivイラストなどを 再度上げるときによく使われる手法の応用 )
  34. 34. 結果:ツイートを数珠つなぎに ● 全てのツイートに日時などのヘッダ情報が不要 になった ○ 最初のツイートに日時をつけていれば関連づくため ● 大幅な文字数の削減!
  35. 35. 問題:上位アイドル以外目立たない ● ボーダーの絶対値が高くないアイドルは目立ち にくい ○ 担当Pは見てておもしろくない
  36. 36. 対応:上位アイドル以外目立たない ● 仮説:総ptは難しくても、単位時間あたりの伸び では高くなりうるのではないか ● 注目ランキングの導入 ○ 単位時間あたりの伸びの高いアイドルを注目アイドルと してフィーチャーするように
  37. 37. 結果:注目(時速)ランキング導入 ● 総ptが高くないアイドルも、取り上げることがで きるようになった
  38. 38. 問題:ptの規模に起因する根本的な問題 ● そもそも桁が億単位なので、それだけで9文字 必要となる。 ○ さらに差分情報も勘案すると、安心できない ○ 1000で割って表示することで一情報あたり3文字は節約 できるが、限界が近づいている
  39. 39. それでもとうとう障害発生
  40. 40. 対応:pt桁数に関する根本問題 ● いくつかの仮説 a. そもそもポイントを詳細に表示しなくても良いのでは ■ 上から4桁くらいで十分ではないか b. ブレが激しい差分部分は適切に単位をつけてあげれば良 いのではないか ● →試してみた
  41. 41. Before After
  42. 42. 結果:ptの単位を億表記に&時速単位付表示 ● 文字数の大幅な削減 ○ 時速などの桁数によらずスケールする仕組みに。 ○ 上位6名以外は思い切って時速表記を省略することにし た:注目アイドルツイートで補完するイメージ ● 桁合わせや、アイドル名3文字まで表示できるよ うになった。 ○ 名前最初一文字じゃアイドルを識別しにくいという意見も あった ○ 読みやすさ大幅アップ
  43. 43. 問題:ツイート略されすぎ問題 ● ここまでの変更にて、パッとツイートを見た人が 何を言っているのか分からない状態に ○ 表記が略されすぎたり、数値の説明を省略したりしてい る関係で読み方がわからないという意見も……
  44. 44. 対応:補足説明を作成
  45. 45. 結果:マニュアル作成 ● 序盤こそ効果がないように見えた ○ が、時間が経つに連れ認知されてきたイメージ
  46. 46. 安定運用期(6/2〜) ● 億表記・ヒューマンリーダブル実装でようやく 140字戦争に終止符を打てた ● 一旦、本家ボーダーbotから離れられた ○ ボーダーbot観測所のEH対応など ○ どのアイドルにどのくらいランナーがいるか ■ ちなみに、このみさんがやばそうなのはこの辺りで認 知
  47. 47. 最後の週末対応(6/5) ● EHランナー向けに微調整 ● 枠開き時差分を時速(一時間前のptとの単純比 較)から枠開き前のptとの単純比較に変更 ○ 順位間のptの崖が見えるように ● 注目アイドル(時速)ランキングを廃止、全てのア イドルの時速を表示するようにした ● そして終焉へ
  48. 48. (4) ボーダーbotのEH最終のシステム構成 ボーダー調べるやつ (EH特別版) ボーダーDB ファイル解釈して DBに格納するやつ (EH特別版) ツイート コントローラー (枠開き・時間判定) 一時 ファイル (1)調べて書き出し (2)解釈、格納 全て一連の流れで行うことで、ほぼリアルタイム通知を実現 botちゃん (3)枠が開いているか、ツイートの 時間かの判定を行う (4)愚直にツイートする (3)
  49. 49. まとめ ● 技術的にもENJOY H@RMONY!!でした ● ENJOY H@RMONY!!を共に闘ってきたボー ダーbotのコード最終形態(一部) ○ 枠開き/定期ツイートトリガー(図の(3)) ■ https://gist.github.com/treby/86b8c47f14df911addd7 ○ ツイッター投稿(図の(4)) ■ https://gist.github.com/treby/76d2beab7e9dfdc5fa26
  50. 50. ENJOY H@RMONY!! 総括
  51. 51. 総括 ● ENJOY H@RMONY!!最後の大どんでん返し を上手く実況できていれば幸いです。 ○ 正直、最後の最後でGという単位が出てくるとは思わな かったw ● 走る人に対して枠数が広がりすぎたアイドルが 多かった印象 ○ このみさん200人以上走ってたんすよね…… ○ その点、爆死者のいない美奈子Pはすごい。
  52. 52. 総括 ● このみさんの最後の伸びは、実は特定時点での 各アイドル順位別pt分布を見れば早い段階から 予測可能でした。 ○ ガチで分析するなら見た方が良いけど、エンタメとしては、 今回のもので十分楽しめた(なら良いです) ○ し、あまり行儀悪くしすぎるのも……ね。 ● 何はともあれ、EHお疲れ様でした!!
  53. 53. Thank you!!

×