Ruby/OpenCVでスプラトゥーン2の戦況を可視化する索敵補助ツール作ってみた


はじめに

本ツールは、 https://qiita.com/Kazuma_Kikuya/items/4767afe581c94b0c16f1 の別実装です
(画像処理をやったことがなかったのですが、元記事には解析に必要な要点がまとめられており、本ツールを作る上で非常に参考になりました。)

元記事はスタンドアローン型でしたが、本ツールはサーバ/クライアント型で構成しています。
サーバ/クライアント型にしたことで、1人が画像解析した結果をwebページ経由で味方全員に提供できるようになりました。

概要

switchから取り込んだ画像をPCで解析し、解析結果をwebsocket経由で送信して、webページ上でイベントに合わせてなんらかをする、というツールです。
websocket経由で送信することで、通知の受信が用意になりました。

下記図にある、 通知受信用WEBアプリ(client) はheroku上で動いています。

switch -> 解析用アプリ:
解析用アプリ-> 解析用アプリ: 画像解析
解析用アプリ-> 解析用アプリ: イベントデータの生成
解析用アプリ -> redis : イベントデータの送信
redis -> 通知受信用WEBアプリ(client): 
通知受信用WEBアプリ(client) -> ブラウザ: 
ブラウザ -> ブラウザ: 音を鳴らす

機能の説明

本ツールでは、webページを開いているだけで通知を受け取れるので、リグマやっているときの味方にこのURLを共有しておくと味方に情報を伝えることができます。

元記事から機能をだいぶ削っていて、敵復活時点のみ音を出すようにしています。生存時間を表示する機能は実装予定です。

おわりに

詳細な実装に関することは http://blog.jiikko.com/152 に日記みたいな感じで書いています。

ガチマッチで本ツールを使っている動画をアップロードしました。
https://www.youtube.com/watch?v=QFrYSWYJ3lw

通知受信用WEBアプリ のソースコードは公開しています。
https://github.com/splaspla-hacker/splatoon2_enemy_visualizer_frontend
画像解析のソースコードは準備中です。

以上。