IkaLogの裏側~「スプラトゥーン」のリアルタイム画像解析はどのように行われているのか

第1回 IkaLog誕生前夜

この記事を読むのに必要な時間:およそ 2 分

2015年5月に発売された大人気ゲームスプラトゥーン皆さんはプレイしていますか? 著者のまわりでは多くのコンピュータエンジニアが楽しんでいます。私は,スプラトゥーンの動画をリアルタイムに分析するソフトウェアIkaLogを開発し,オープンソースとして公開しています。本連載では,IkaLogの開発秘話(?)や画像認識に使っているアルゴリズム,開発の過程などについて紹介します。

今回は連載第1回目として,(たち)がどのようなきっかけからIkaLogを開発し始めたのかを紹介し,次回以降では具体的にどのような検討を経てIkaLogが実装されてきたかを説明します。

スプラトゥーンとの出会い

私がスプラトゥーンというゲームを知ったのは,発売が数日後に迫った日にインターネット上でトレイラームービーを見かけたときでした。スプラトゥーンは,三人称視点(TPS)でプレイヤーのインクリング(イカ人間)を操作し,ステージを自分のチーム色のインクで塗りつぶしてナワバリを広げていくゲームです。インターネットを介して国内ないしは全世界から8人のプレイヤーが集まり,ステージを塗り合う「ナワバリバトル」を繰り広げます。また,ステージ中のごく限られた一部に設定された「ガチエリア」の占有率を競ったり,目標物を相手チームの陣地に押し込む「ガチヤグラ」「ガチホコバトル」と呼ばれるガチマッチモードも存在します。

Splatoon E3 2014 出展映像

見た瞬間に,「これは絶対に面白いな」と思い,発売と当時に購入しました。

従来のFPSやTPSは実在兵器,もしくはSF的な武器が登場することが多いなか,スプラトゥーンではさまざまな色のインクが飛び出す「ブキ」を持って戦いに挑みます。そのブキも,シューターをはじめ,ローラー,バケツ,そして筆タイプなど多岐にわたります。

現実世界では殺傷力がなさそうなインクを使った対戦ゲームというのは,任天堂のWii U向けソフトらしいなと感じます。しかし,ガチマッチでは,おおまかにC,B,A,Sの4段階の「ウデマエ」と呼ばれるレーティングシステムでプレイヤーの強さが表されます。ウデマエは1回のゲームに勝てば上がり,負ければ容赦なく下がります。あなたの身近にいるスプラトゥーンプレイヤーも,より高いウデマエを目指して,さまざまな戦略や戦術,ブキの使い方を研究していることでしょう。

きっかけはモツ鍋

ゲーム発売から約2週間後のこと。

とあるIT業界のエンジニアとモツ鍋を食べていたところ,「スプラトゥーンでの勝敗をすべてExcelのスプレッドシートとして残している」という話を聞いて衝撃を受けました。「ゲームのためにそこまでのするのか」という思いのほか,「とてもマメだな」と思いました。スプラトゥーンのプレイは1回あたり3~5分程度。全ゲームを記録するということは,3~5分ごとに試合結果をメモしていることになります。私にはとても真似できそうにありません。しかし,話によれば,ゲームの試合結果をたくさんメモしていくと,以下のような傾向が見えてくるのだそうです。

ステージの得意/不得意
  • スプラトゥーンには戦いの舞台となるステージが合計14存在する。
  • ステージごとに,自分の勝率の傾向が異なる。
ルールの得意/不得意
  • ナワバリバトル/ガチエリア/ガチエリア/ガチホコバトルの各ルールで勝利条件が異なり,ゲーム中での立ち回り方にも違いがある。
  • ルールごとにも,やはり,プレイヤーの勝率が変化する。
ブキ
  • スプラトゥーンの世界では約70のブキがあり,自分の得意/不得意なブキ,一般的にステージで有利/不利と言われるブキがある。
  • このため,やはり,自分が使用するブキによって勝率が変化する。

スプラトゥーンに登場するブキ

スプラトゥーンに登場するブキ

相手を倒した回数/倒された回数
  • プレイヤーが操作するインクリングは,相手チームに倒されるとタイムペナルティが与えられ,さらにスタート地点に戻される。その間,ステージを塗ったり敵を倒したりできなくなるため,劣勢となる。
  • 相手を倒せばゲームを有利に進められ,倒されれば相手にゲームを有利に進められてしまう。

このほかにもいろいろなメトリックが考えられるのですが,おもにこのような情報を集計していき,自分の「勝ちパターン」を見つけ,スプラトゥーンの試合で勝率を上げることができるのではないか,というのです。後日,インターネット上でスプラトゥーンに関する情報を調べていると,このITエンジニアのほかにも,ゲームの戦績を記録しているプレイヤーがある程度いることもわかりました。

また,開発開始のきっかけとなった2015年6月は,INTEROPのカンファレンスでChainerが発表されたタイミングでもありました。

Deep Learning のフレームワーク Chainerを公開しました | Preferred Research
https://research.preferred.jp/2015/06/deep-learning-chainer/

分散深層強化学習によるロボット制御

カンファレンス会場でChainerを用いたデモを見ていたことから「同様に,ゲーム中のインクリングを自動操作できないだろうか?」ということも考えましたが,自分でチャレンジするには流石にハードルが高すぎます。このため,直近で実際に行われているプレイ記録を残す部分をソフトウェアで解決できないか検討することにしました。

その日のビールグラスとモツ鍋は,このExcelシートの話などをしているうちに,空っぽになりました。このスプラトゥーン談義から,彼が戦績として残していた情報をできるだけ自動的に記録するプログラムの検討を始めました。

著者プロフィール

長谷川猛(はせがわたけし)

(株)SRAで7年間のシステム構築&提案を経験したのち,Fusion-ioのセールスエンジニアを経て,フリーランスエンジニアとして活動中。『LDAP Super Expert』(技術評論社)に寄稿したほか,『Xen 徹底入門』(翔泳社)および『萌え萌えうにっくす!UNIX ネットワーク管理ガイド』(毎日コミュニケーションズ)の共著者のひとりである。

スノーボード,ごまラーメン,飼い犬のミニチュアシュナウザー「ラピス君」が大好き。

コメント

コメントの記入