laft’s diary

備忘録か日記

steam版ダンガンロンパV3のモノモノマシーン自動化

要約

pydirectinputを利用してsteam版ダンガンロンパV3のモノモノマシーン等の自動化を行った。 本編のネタバレはしません。

実装

import pydirectinput
import time

time.sleep(2)

for i in range(100):
    pydirectinput.press("w")
    pydirectinput.press("enter")
    time.sleep(2)
    pydirectinput.press("enter")

説明

github.com

上記のパッケージを利用した。 特にダンガンロンパのウィンドウをactive化する実装を含まないので、Alt+Tabなどで最初の2秒のスリープの間に自力でフォーカスしてください。

また、このスクリプトを実行している間は他の操作は不可能です。通常のキーボード入力等の操作をスクリプトが代行しているに過ぎないため。

感想

最初はWindows API叩くつもりだったけど、いい感じのラッパがあったので助かる。 pyautoguiはDirectX を利用するゲームには入力できないがちなので気をつける(1敗)。

pydirectinputはあんまりメンテされてないけどとても便利。 これをフォークしてるactiveなリポジトリもあったんだけど、こっちはなぜかうまくいかなかった。

pydirectinputについて付記しておくべき事項として、clickがうまくいかないので、clickが必要な場合はmousedown→mouseupするとよい。

おまけ

ギャラリーの解放も自動化した。これもかなりめんどいよね……。

import pydirectinput
import time

time.sleep(2)

for i in range(20):
    pydirectinput.press("enter")
    time.sleep(0.2)
    pydirectinput.press("enter")
    time.sleep(1)
    pydirectinput.press("s")