入門Power Automate Desktop：第七話「画像認識でゲームを自動化しよう」

# 自動化する作業
1. デスクトップから「Minecraft」のアイコンを探し出して起動する。
1. ランチャーの「プレイ」ボタンを識別してクリックする。
1. 「シングルプレイ」ボタンを識別してクリックする。
1. 「ワールド新規作成」ボタンを識別してクリックする。
1. ワールド読み込み完了をゲームUIで識別する。

ゲーム内のボタンはUI要素として識別できません。
その様な条件下で自動化するパターンの例題となります。

# 実際にフローを作る
## 0. 事前準備
目的が一目でわかる名前でフローを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/a67e5d15-5252-a8b2-6748-54073361c1bf.png)

## 1. デスクトップから「Minecraft」のアイコンを探し出して起動する。

### 1-1. デスクトップを表示する。
アクションから「デスクトップを表示」をドラッグしてフローにドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/210765a7-8aeb-a46e-2cb6-9597155d60b5.png)
アクションの設定画面が表示されるので、「すべてのウィンドウを最小化」を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/28f982dd-f275-3ef9-b1b5-7d503e31f853.png)

### 1-2. 「Minecraft」のアイコンを探し出して起動する。
アクションから「マウスを画像に移動します」をドラッグしてフローにドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/6fcb70aa-913d-d172-25f9-190958797d74.png)
アクションの設定画面が表示されるので、「画像のキャプチャ」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/0b8ac9e6-41c0-ddf8-8bc7-7f6e89cc29ab.png)
画像のキャプチャモードになるので、アイコンの画像をキャプチャします。(滅茶苦茶動作が重いです)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/cfc1e994-6e87-1acd-a56d-7fa561fef9e4.png)
「マウスの移動後にクリックを送信します」を有効化して、「クリックの種類」を「ダブルクリック」に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/83029696-2365-1df2-9fe7-8cff87fc43f8.png)
追加されるとこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/877c9ef7-0409-e4b6-733d-851cfdcc0d70.png)

## 2. ランチャーの「プレイ」ボタンを識別してクリックする。
アクションから「マウスを画像に移動します」をドラッグしてフローにドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/6fcb70aa-913d-d172-25f9-190958797d74.png)
アクションの設定画面が表示されるので、「プレイ」ボタンをキャプチャします。
「マウスの移動後にクリックを送信します」を有効化して、「クリックの種類」を「左クリック」に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/1f82639a-97c7-d699-87f2-affa77c1e7de.png)

## 3. 「シングルプレイ」ボタンを識別してクリックする。
2と同じ手順で「シングルプレイ」ボタンの処理を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/b270f9a6-8f24-a629-2624-7baa003de11d.png)

## 4. 「ワールド新規作成」ボタンを識別してクリックする。
2と同じ手順で「ワールド新規作成」ボタンの処理を設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/8d960861-eea8-2654-d8cb-3e78d4e41d39.png)

## 5. ワールド読み込み完了をゲームUIで識別する。
アクションから「画像が存在する場合」をドラッグしてフローにドロップします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/f9105515-0d9d-370f-5b2d-55c533c1a28f.png)
アクションの設定画面が表示されるので、ゲームUIをキャプチャして設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/f1f0b0e7-5c31-2824-80bf-33af0909e52f.png)
起動完了を示すダイアログを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/3a52e9b9-e782-3647-ba6a-077c5835924c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/b4fc55c2-419b-6ce4-53ee-e6ff95cd1ef3.png)
追加されるとこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/2bc6e73f-9f52-db67-a0ba-a8e44e39ec8f.png)

# 作成したフローを実行してみる
デスクトップのみが表示され後、Minecraftのワールド生成→起動まで進み、ダイアログが出れば成功です。

# TIPS
## 判定に使う画像はなるべくパーツ単体で撮影する。
ボタンの後ろの背景などが判定画像に入り込むと、許容値から外れてしまい意図した判定を行ってくれません。
### 悪い例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/14eee7df-e05a-c0ae-6787-783ac8b61dfa.png)

### 良い例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/7dcffb8d-83db-b66d-6dec-ddc93dc8da96.png)



## うまく判定されない時は「許容値」を調整してみる。
元の画像とどれだけ一致しているかで判定しているので、その基準を甘くしてやれば解決する場合があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587410/b29d35cf-1ca4-700d-e385-2a030b2050a0.png)