文系忘備録

どこにでもいる文系大学生の忘備録です

MENU

Pythonでマインクラフト自動化してみた with pydirectinput

事の発端はマインクラフトをしていた時にふと「課題やりたいけどTP狩りも続けてえええ」ってなったことです。なんで今回は自動クリックとかそういう単純作業の自動化を目指します。

PythonGUI(今回はマインクラフト)って言ったら大体pyautoguiを使うことが多いんですが。実はマインクラフトはpyautoguiでは操作出来ません。

というのもマインクラフトなどDirectXを使用しているゲームは仮想キーを受け付けません。
なので今回はpydirectinputというライブラリを使います。このライブラリは使い方と機能はほとんどpyautoguiと同じですが、DirectXを使用しているゲームでも操作することが出来ます。

さっそくインストールから
ちなみに私はwindows環境です(python 3.9.2)

pip install pydirectinput

インストール確認

PyDirectInput                1.0.4

マインクラフトの剣の待機時間も考えてコードは大体こんな感じ?

import pydirectinput as direct
import time
import sys

try:
    while True:
        direct.click()
        time.sleep(0.7)
except KeyboardInterrupt:
    sys.exit()

これに色々付け加えて作っていきます。
pydirectinputのほかの文法については基本的にpyautoguiと同じなので各自調べてもらえれば。

そんな感じでGUIを順序通り操作するコード書いてみました。
(win32guiがあるのにdllを読み込んでウィンドウをアクティブにしているのは私の知識不足です。なのでpythonnet通さなくてもwin32guiだけでも代用できます。)

先に言っておきますがプログラミング初心者です。クラスとか全然使ってません。許容してください。

一応youtubeもやってます。そっちではもうちょっと詳しく紹介してるのでどうぞ
youtu.be