5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

「逆転オセロニア」を画像解析して自動ダメージ計算 part1 (iPhone PC表示編)

Last updated at Posted at 2019-10-12

逆転オセロニア画面を解析して自動でダメージ計算

逆転オセロニアとはオセロのルールで駒を置いていき、スキルやコンボを駆使して相手のHPを削ったら勝ちという対戦型のスマホゲームアプリになります。

そのためダメージ計算はかなり重要な部分になってきます。

詳しくは

逆転オセロニア最速攻略wiki

で確認してみてください。

その逆転オセロニアのダメージ計算を自動で行うためのプログラムを1年ほど前に作成していましたが、
その時の作業手順を思い出しながら少しだけ解説していこうと思います。



オセロニアで画像解析を行いましたが、他のスマホアプリにも応用が利くと思います。

今回はiPhoneに表示されている画面を、Windows10でキャプチャするまでで、画像解析の前までになります。

※ プログラムの完全公開は今のところ考えていません。

オセロニアをパソコンで表示

オセロニアのダメージ計算を自動でできないか?

というのを考えた結果、

オセロニアに映っているATKの数値をパソコンで読み取ることは可能か?

というのをまず考えてみました。

私はiPhone7とWindows10を使っているので

LonelyScreen

というソフトを入れて、とりあえずパソコンにiPhoneの画面を映し出すことにしました。
※ 他にもパソコンに映し出すソフトはあります

LonelyScreen のインストール

LonelyScreen公式
https://www.lonelyscreen.com/download.html
LonelyScreen.png

「Download for Windows」

ボタン押下

インストーラーがダウンロードされるので実行

インストール完了後起動してみると確認ダイアログが出ます。

LonelyScreen起動時の確認ダイアログ.png

今回は無料版で使うので

「Maybe Later」

ボタンを押下

iPhone側で下からスワイプしコントロールセンターを開き

iPhoneコントロールセンター.PNG

「画面ミラーリング」

を押下します

iPhoneミラーリング.PNG

画面ミラーリングで

「LonelyScreen」

を押下するとPC画面にiPhone画面が表示されます。

LonelyScreen接続完了.png

オセロニアを起動すると

オセロニア画面表示.png

のようにパソコン画面でオセロニアを確認できるようになります。

オセロニア画面をスクリーンキャプチャ準備

続いてその画面をキャプチャし、ATKの数値を読み取るため
画像処理ならPython!と安易な考えで

Anaconda

を入れてPython実行環境を作りました。

Anaconda のインストール

Anaconda公式のダウンロードページ
https://www.anaconda.com/download

Anaconda公式ダウンロード.png

Python 3.7 versionの

「64-Bit Graphical Installer (486 MB)」

を選択

インストーラーがダウンロードされるので実行

インストール完了後スタートメニューから

「Jupyter Notebook (Anaconda3)」

を実行するとJupyter Notebookの画面が立ち上がります。

JupyterNotebook初期.png

右上にある

New

を選択するとコンテキストが出るので
JupyterNotebook_New.png

Python3

を選択

これでPythonの実行環境は完了です。

スクリーンキャプチャ実行

スクリーンキャプチャをとるのに座標が必要なので解像度を合わせます。

ディスレイ設定を開き

拡大縮小とレイアウト
100%

解像度
1920×1080

ディスプレイ設定.png

に変更して進めてみます。

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)

JupyterNotebook_スクリーンキャプチャ.png

を入力後

Run

ボタンを押下

Jupyter Notebookの最初のページに戻ると

othellonia.png

ができていると思います。

JupyterNotebook_HomePage.png

othellonia.png
を確認してみると

othellonia.png

スクリーンキャプチャが取得できています。

このように座標指定でキャプチャ出来るのでLonelyScreenを最大化しておけば、ATKの座標が固定で取れますね!

今回はここまでです。

気力があれば続きも書いていきたいと思います。

続きを書きました!
[「逆転オセロニア」を画像解析して自動ダメージ計算 part2 (文字識別編)]
(https://qiita.com/toyotoyo_/items/161496e1bcf685e6ecb3)

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?