teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

8

誤字の修正

2019/08/04 11:56

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -29,5 +29,5 @@
29
29
  また、Teratailが初めてで、至らない投稿をしてしまい、申し訳ありませんでした。編集・追記依頼を記入してくださった方々にも御礼を申し上げます。
30
30
  皆様、ありがとうございました。
31
31
 
32
- 最後になりますが、敵の探査のような大きめの範囲の画素値を取得しなければいけない場合に、これまではPrintWindowで画面を取得した後Numpyのasarray関数でarrayに変換して使用していたのですが、frombuffer関数を使用したほうが高速で、およそ3/5の時間で処理できることが分かりました。
32
+ 最後になりますが、敵の探査のような大きめの範囲の画素値を取得しなければいけない場合に、これまではPrintWindowで画面を取得した後Numpyのasarray関数でarrayに変換して使用していたのですが、frombuffer関数を使用したほうが高速で、およそ3/5の時間で変換できることが分かりました。
33
33
  備忘録がてら記載させていただきます。

7

謝辞

2019/08/04 11:56

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -21,4 +21,13 @@
21
21
  追記での申告となり申し訳ありません。(03:45, 2019年8月4日)
22
22
 
23
23
  パケット解析やメモリスキャン等が困難な状況なため、画像処理的な手段で作成しようと考えております。
24
- 後から何度も追記してしまい申し訳ありません。(16:57, 2019年8月4日)
24
+ 後から何度も追記してしまい申し訳ありません。(16:57, 2019年8月4日)
25
+
26
+ ### 謝辞
27
+ ImageGrabより負荷の軽い方法を示してくださったZuishin様をベストアンサーとさせていただきます。1ドットを監視すれば行える、体力自動回復、スキルの自動使用部分の負荷を下げることができました。
28
+ PrtScを使用する方法は、私の技術力不足により、どのようにすればバックグラウンドの画面を取得できるか分かりませんでした、申し訳ありません。
29
+ また、Teratailが初めてで、至らない投稿をしてしまい、申し訳ありませんでした。編集・追記依頼を記入してくださった方々にも御礼を申し上げます。
30
+ 皆様、ありがとうございました。
31
+
32
+ 最後になりますが、敵の探査のような大きめの範囲の画素値を取得しなければいけない場合に、これまではPrintWindowで画面を取得した後Numpyのasarray関数でarrayに変換して使用していたのですが、frombuffer関数を使用したほうが高速で、およそ3/5の時間で処理できることが分かりました。
33
+ 備忘録がてら記載させていただきます。

6

不足していた情報を追記

2019/08/04 11:55

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -18,4 +18,7 @@
18
18
  Python以外の言語の使用可否:可
19
19
  上記のBOTはバックグラウンドで動作することが必須なため、それが可能な言語であれば変更可能です。
20
20
  Win32apiで実現可能と思われるため、大抵の言語に変更が可能です。
21
- 追記での申告となり申し訳ありません。
21
+ 追記での申告となり申し訳ありません。(03:45, 2019年8月4日)
22
+
23
+ パケット解析やメモリスキャン等が困難な状況なため、画像処理的な手段で作成しようと考えております。
24
+ 後から何度も追記してしまい申し訳ありません。(16:57, 2019年8月4日)

5

文体の改善

2019/08/04 07:58

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -16,6 +16,6 @@
16
16
  Python 3.7.1
17
17
 
18
18
  Python以外の言語の使用可否:可
19
- 上記のBOTはバックグラウンドで動作することが必須なため、それが可能な言語であればも構いません
19
+ 上記のBOTはバックグラウンドで動作することが必須なため、それが可能な言語であれば変更可能
20
20
  Win32apiで実現可能と思われるため、大抵の言語に変更が可能です。
21
21
  追記での申告となり申し訳ありません。

4

間違い修正:Windows API→Win32api

2019/08/03 18:59

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -17,5 +17,5 @@
17
17
 
18
18
  Python以外の言語の使用可否:可
19
19
  上記のBOTはバックグラウンドで動作することが必須なため、それが可能な言語であれば何でも構いません。
20
- Windows APIで実現可能と思われるため、大抵の言語に変更が可能です。
20
+ Win32apiで実現可能と思われるため、大抵の言語に変更が可能です。
21
21
  追記での申告となり申し訳ありません。

3

5行目、文章を修正

2019/08/03 18:55

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -4,7 +4,7 @@
4
4
  画面上の敵を攻撃し、体力が減ったら回復を行い、魔力に余裕があればスキルを使用し、ミニマップを確認しながら移動し…というもので、画面全体を何度もキャプチャする必要があります。
5
5
 
6
6
  Pythonにて、PillowのImageGrabを用いて試作してみたのですが、負荷が大きく、あまり実用的なものにはなりませんでした。
7
- (敵の探査に一番負荷がかかり、その次に重いのが画面キャプチャなので、それをどうにかしたい)
7
+ (敵の探査に一番負荷がかかり、その次に重いのが画面キャプチャなので、キャプチャ部分をどうにかしたいというのが、今回の質問の意図です)
8
8
  そこで現在、Win32apiを用いてプログラム全体を作り直している最中でして、画面の取得はPrintWindowで行っております。
9
9
 
10
10
  本題ですが、より負荷の少ない画面キャプチャ方法(関数名、ライブラリ名など)をご存じでしたらご教示いただければ幸いです。

2

不足していた情報を追記

2019/08/03 18:51

投稿

katakana
katakana

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
- 【Python】できるだけ軽い画面キャプチャ方法
1
+ できるだけ軽い画面キャプチャ方法
body CHANGED
@@ -1,14 +1,21 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- PythonでゲームのBOTを作成しています。
3
+ ゲームのBOTを作成しています。
4
4
  画面上の敵を攻撃し、体力が減ったら回復を行い、魔力に余裕があればスキルを使用し、ミニマップを確認しながら移動し…というもので、画面全体を何度もキャプチャする必要があります。
5
5
 
6
- 一度、PillowのImageGrabを用いて試作してみたのですが、負荷が大きく、あまり実用的なものにはなりませんでした。
6
+ Pythonにて、PillowのImageGrabを用いて試作してみたのですが、負荷が大きく、あまり実用的なものにはなりませんでした。
7
7
  (敵の探査に一番負荷がかかり、その次に重いのが画面キャプチャなので、それをどうにかしたい)
8
8
  そこで現在、Win32apiを用いてプログラム全体を作り直している最中でして、画面の取得はPrintWindowで行っております。
9
9
 
10
10
  本題ですが、より負荷の少ない画面キャプチャ方法(関数名、ライブラリ名など)をご存じでしたらご教示いただければ幸いです。
11
11
  (キャプチャというか、画面の特定の座標の画素値を低負荷で取得できる方法はないのでしょうか?)
12
+ 手法の名前だけなどでも構いませんので、回答よろしくお願いいたします。
12
13
 
13
14
  ### 補足情報(FW/ツールのバージョンなど)
15
+ Windows 10
14
- Python 3.7.1
16
+ Python 3.7.1
17
+
18
+ Python以外の言語の使用可否:可
19
+ 上記のBOTはバックグラウンドで動作することが必須なため、それが可能な言語であれば何でも構いません。
20
+ Windows APIで実現可能と思われるため、大抵の言語に変更が可能です。
21
+ 追記での申告となり申し訳ありません。

1

説明追加

2019/08/03 18:39

投稿

katakana
katakana

スコア7

title CHANGED
File without changes
body CHANGED
@@ -7,7 +7,7 @@
7
7
  (敵の探査に一番負荷がかかり、その次に重いのが画面キャプチャなので、それをどうにかしたい)
8
8
  そこで現在、Win32apiを用いてプログラム全体を作り直している最中でして、画面の取得はPrintWindowで行っております。
9
9
 
10
- 本題ですが、より負荷の少ない画面キャプチャ方法をご存じでしたらご教示いただければ幸いです。
10
+ 本題ですが、より負荷の少ない画面キャプチャ方法(関数名、ライブラリ名など)をご存じでしたらご教示いただければ幸いです。
11
11
  (キャプチャというか、画面の特定の座標の画素値を低負荷で取得できる方法はないのでしょうか?)
12
12
 
13
13
  ### 補足情報(FW/ツールのバージョンなど)