逆転オセロニア画面を解析して自動でダメージ計算
逆転オセロニアとはオセロのルールで駒を置いていき、スキルやコンボを駆使して相手のHPを削ったら勝ちという対戦型のスマホゲームアプリになります。
そのためダメージ計算はかなり重要な部分になってきます。
詳しくは
で確認してみてください。
その逆転オセロニアのダメージ計算を自動で行うためのプログラムを1年ほど前に作成していましたが、
その時の作業手順を思い出しながら少しだけ解説していこうと思います。
オセロニアの画面を解析してダメージ計算できるプログラムを作ってみました(●´ω`●)
— とよとよ (@toyotoyo_) October 25, 2018
端数の計算が間違ってるなど、まだまだ問題だらけです(@_@;) pic.twitter.com/WL7FaiBmz3
オセロニアで画像解析を行いましたが、他のスマホアプリにも応用が利くと思います。
今回はiPhoneに表示されている画面を、Windows10でキャプチャするまでで、画像解析の前までになります。
※ プログラムの完全公開は今のところ考えていません。
オセロニアをパソコンで表示
オセロニアのダメージ計算を自動でできないか?
というのを考えた結果、
オセロニアに映っているATKの数値をパソコンで読み取ることは可能か?
というのをまず考えてみました。
私はiPhone7とWindows10を使っているので
LonelyScreen
というソフトを入れて、とりあえずパソコンにiPhoneの画面を映し出すことにしました。
※ 他にもパソコンに映し出すソフトはあります
LonelyScreen のインストール
LonelyScreen公式
https://www.lonelyscreen.com/download.html
「Download for Windows」
ボタン押下
インストーラーがダウンロードされるので実行
インストール完了後起動してみると確認ダイアログが出ます。
今回は無料版で使うので
「Maybe Later」
ボタンを押下
iPhone側で下からスワイプしコントロールセンターを開き
「画面ミラーリング」
を押下します
画面ミラーリングで
「LonelyScreen」
を押下するとPC画面にiPhone画面が表示されます。
オセロニアを起動すると
のようにパソコン画面でオセロニアを確認できるようになります。
オセロニア画面をスクリーンキャプチャ準備
続いてその画面をキャプチャし、ATKの数値を読み取るため
画像処理ならPython!と安易な考えで
Anaconda
を入れてPython実行環境を作りました。
Anaconda のインストール
Anaconda公式のダウンロードページ
https://www.anaconda.com/download
Python 3.7 versionの
「64-Bit Graphical Installer (486 MB)」
を選択
インストーラーがダウンロードされるので実行
インストール完了後スタートメニューから
「Jupyter Notebook (Anaconda3)」
を実行するとJupyter Notebookの画面が立ち上がります。
右上にある
New
Python3
を選択
これでPythonの実行環境は完了です。
スクリーンキャプチャ実行
スクリーンキャプチャをとるのに座標が必要なので解像度を合わせます。
ディスレイ設定を開き
拡大縮小とレイアウト
100%
解像度
1920×1080
に変更して進めてみます。
LonelyScreen画面を最大表示にし
Jupyter Notebookがオセロニアの右側に来るように配置します。
スクリーンキャプチャには PIL を使用しています。
In [ ]: と書いている右の枠部分にスクリーンキャプチャ用のプログラムを書きます。
from PIL import Image, ImageTk, ImageGrab
url_img = 'othellonia.png'
ImageGrab.grab(bbox=(600, 0, 1920, 1030)).save(url_img)
を入力後
Run
ボタンを押下
Jupyter Notebookの最初のページに戻ると
othellonia.png
ができていると思います。
othellonia.png
を確認してみると
スクリーンキャプチャが取得できています。
このように座標指定でキャプチャ出来るのでLonelyScreenを最大化しておけば、ATKの座標が固定で取れますね!
今回はここまでです。
気力があれば続きも書いていきたいと思います。
続きを書きました!
[「逆転オセロニア」を画像解析して自動ダメージ計算 part2 (文字識別編)]
(https://qiita.com/toyotoyo_/items/161496e1bcf685e6ecb3)