―画像認識による高機能な艦これ
ユーティリティへの挑戦―
作成者:YSR(@YSRKEN)
専用Twitterアカウント:https://twitter.com/orikou_hisyo
配布先(Vector):http://www.vector.co.jp/soft/win95/game/se509326.html
配布先(GoogleDrive):
https://drive.google.com/folderview?id=0B22mWPiNr-6-
fklYcWRIWGFlU0NiOVpTV2haUGdrWm14VkdqX2F6QkhiOGVBU292dj
lqVDQ&usp=sharing
専用スレ:http://anago.open2ch.net/test/read.cgi/software/1424098430/
艦これのユーティリティは大別すると5種
類に分けられる
• BOT系
• マクロ系
• プロキシ系
• 画像認識系
• 計算補助系
まずはそれぞれについて大まかに説明する
艦これはFlashPlayer上で動作するゲーム
FlashPlayerの代わりにコマンド(API)を叩く
と、画面処理を無視して進行できるため非
常に高速にゲームをプレイ可能
また、FlashPlayerの動作を加速させても同
様に高速プレイ可能
ソフト例:KanColleBot(KCB)
艦これはマウス操作でプレイするゲーム
人間の代わりにプログラムでマウスを操作
させれば、自動で遠征を回したり、自動で
レベリングさせることが可能になる
状況判断には、タイマーの他、プロキシに
よる通信読み取りや画像認識が利用される
ソフト例:ねこヘルパー
艦これはJSONファイルをやりとりする
全く暗号化されてないため、プロキシサー
バを用意すれば容易に内容を読み取ること
ができる
BOT系と違い、あくまで読むだけに徹する
のでまず気づかれないのが特徴
ソフト例:提督業も忙しい!
艦これはUI構成がある程度パターン化され
ている(アプリケーションなら当然だが)
画像処理により場面を判定したり、表示さ
れる数値・文字を読み取ることも可能
通信を読んでないので限度こそあれ、相当
量の情報を自動で取得できる
ソフト例:赤城さんのお風呂タイマー
艦これは、有志による分析が進んでいる
制空値や索敵値などは、手計算よりツール
化した方が圧倒的に早く算出できる
自作も容易な他、Webアプリケーションと
して既に様々なツールが出回っている状況
ソフト例:艦載機計算器
公式Twitter(@KanColle_STAFF)の中で規約
絡みのツイートのまとめ
http://wikiwiki.jp/kancolletool/?official_response
つまりツールについての見解はこんな感じ
• BOT系とマクロ系は完全にアウト
• プロキシ系も規約違反だが前2つの方が優先的に
処理される(サーバに負荷があるか否かの問題)
• 画像認識系と計算補助系は言及なし
今回紹介する「おりこうさんな秘書」は、
前記の状況を踏まえて開発された
フレーム毎に画像を取得し、画像認識によ
りシーン振り分け・情報取得を行う
通信やマクロにはタッチしないことで規約
に触れないように配慮し、かつ既存ツール
を超える情報量を確保することが目標
初
期
化
メ
イ
ン
ル
ー
プ
メ
イ
ン
ル
ー
プ
画
像
取
得
画
像
認
識
結
果
表
示
中
間
処
理
【画像取得ステップ】
Windows用なのでWinAPIのBitBlt()を使用
取得先は次の2種類がある
• デスクトップウィンドウのデバイスコンテキスト
• 艦これをプレイしてるブラウザウィンドウのデバ
イスコンテキスト(GetForegroundWindow()や
WindowFromPoint()を使用)
後者だと艦これの画面が他画面に隠れても
読み取れるためおすすめ
【画像認識ステップ】
読み取った画像から、シーンおよび数値な
どのデータを読み取る
シーン検出は、800×480(100%表示)に限れ
ば数点のRGB値を読むだけで判定できるの
で非常に高速に処理できる
文字認識はシーン検出より重いので工夫が
必要(頻繁には読まない、など)
【中間処理ステップ】
認識結果より、種々の処理を行う
種々の処理例
• シーン毎に画像データをバッファに貯めておく
• 数値データから資材ログを保存する
• 文字データから艦隊の艦娘を把握する
• 母港・マップ・戦闘画面ならBGMを流す
この辺は完全に趣味でいいと思います
【結果表示ステップ】
ユーザ(提督)の操作に合わせて結果表示
GUI周りはセンスが問われるが、あいにく
お世辞にもセンス○とは言えない私なので
あった……(動作例は次スライドに掲載)
まあ、使いやすかったら問題ないよね?
昔から使い慣れていた言語であるHSP(Hot
Soup Processor)で記述
同人ゲーム用言語のくせにライブラリが多
方面に充実しているので、ちょっとした
ユーティリティを書く分には最適だと思う
だけど言語仕様は割とダメダメだ!
できれば他言語に移行したい!!!
それと、画像認識にはOpenCVのライブラ
リを使用しています
知名度を上げて利用者数を増やす
• 動画をアップロードしたりしました
 http://www.nicovideo.jp/watch/sm26755860
• 自身が一部おーぷん民に嫌われているのが課題
より便利な情報を提供したい
• 開発・建造時にレシピをそっと表示する
• 練度状況などをまとめた図表を表示する
• 通信を介さず専ブラ以上の機能を目指す
• etc…
別言語で書き直す
• 大事なことなので(ry
こんな拙いプレゼンを最後まで読んでくだ
さりありがとうございました。

おりこうさんな秘書 ―画像認識による高機能な艦これユーティリティへの挑戦―