Kozma Hunor

PhasmoBot

Python alapú AI bot, ami automatizálja a Phasmophobia játékmenetét képfelismerés segítségével.

PhasmoBot demo

A Kihívás (The Challenge)

A Phasmophobia egy időigényes játék, és érdekelt, hogy képes lennék-e egy olyan botot írni, ami emberi beavatkozás nélkül képes játszani, navigálni a menükben, és végrehajtani a játék alapvető feladatait, mint a szellem kiválasztása.

A Megoldásom (My Solution)

Egy Python szkriptet fejlesztettem, ami az OpenCV könyvtárat használja a játék képernyőjének elemzésére. A bot egy állapotgép (state machine) alapján működik, és előre definiált képminták (template matching) segítségével azonosítja a gombokat és menüpontokat. A `pydirectinput` könyvtárral szimulálja az egérmozgásokat és kattintásokat, hogy végrehajtsa a szükséges lépéseket a játékban, a főmenütől a szellem kiválasztásáig.

Felhasznált Technológiák (Tech Stack)

  • Python: Ideális választás volt a gyors prototípus készítéshez és a rendelkezésre álló képfeldolgozó könyvtárak miatt.
  • OpenCV: A projekt kulcseleme, ez a könyvtár biztosította a valós idejű képfelismerési képességeket, amivel a bot 'látja' a játékot.
  • pydirectinput: Alacsony szintű input szimulációt tett lehetővé, ami megbízhatóbban működött a játékokkal, mint a hagyományos `pyautogui`.

Technikai Mélymerülés (Technical Deep-Dive)

A legizgalmasabb rész a bot 'szemének' finomhangolása volt. A sima template matching nem mindig volt elég robusztus a változó fényviszonyok vagy a játék apró grafikai frissítései miatt. Ezért egy olyan funkciót implementáltam, ami több, kissé eltérő méretű és szürkeárnyalatos változatban is keresi a template-eket, és a legmagasabb egyezési pontszámot adó találatot fogadja el. Ez jelentősen növelte a bot pontosságát és megbízhatóságát a UI elemek felismerésében.