Vai al contenuto
Tutti i lavori
  • #computer-vision
  • #automation
  • #roblox
  • #open-source
  • #freeware

Pet Sim 99 Autofish

Un assistente che legge lo schermo per il minigioco di pesca di Pet Simulator 99: trova i vortici con il template matching e ci tiene sopra il cursore, insieme a un autoclicker.

Ruolo
Sviluppatore unico.
Risultato
Ha girato da solo per tutta la notte e ha pescato diversi pet Huge. Un proof of concept di automazione basata sulla lettura dello schermo.
Anno
2024
Stato
completato
Stack
  • Python
  • OpenCV
  • NumPy
  • Pillow
  • PyAutoGUI
  1. L'inizio

    Ore a fissare l'acqua

    Pet Simulator 99, il gioco Roblox di BIG Games, ruota attorno al collezionare pet rari, e per ottenerli chiede parecchio grinding. Il minigioco di pesca ne è un buon esempio: le prede migliori arrivano dai vortici che compaiono e si spostano sull'acqua, e inseguirli vuol dire ore a fissare lo schermo, aspettando.

  2. L'obiettivo

    Lasciare che sia il computer a guardare

    Volevo vedere quanto poco codice serve per guardare l'acqua al posto mio: trovare un vortice, metterci sopra il cursore, seguirlo mentre si sposta, e andare avanti finché il gioco resta aperto. Un proof of concept di automazione basata sulla lettura dello schermo, e una scusa per entrare davvero nella visione artificiale.

  3. L'avventura

    Dai pixel a un'azione precisa

    Ho scritto un ciclo in Python che cattura la zona di pesca, la confronta con immagini di riferimento dei vortici usando il template matching di OpenCV e sposta il cursore sul risultato migliore, ancora e ancora. Un autoclicker esterno si occupa di lanciare la lenza, e così tiene anche attiva la sessione perché il gioco non disconnetta.

    I vortici di riferimento che il confronto cerca.
  4. Le difficoltà

    Bersagli mobili su acqua in movimento

    I vortici si spostano e l'acqua attorno è animata: proprio il tipo di scena che inganna un confronto ingenuo. Lo strumento aveva bisogno di più immagini di riferimento e di controlli aggiuntivi su forma e colore per scartare i falsi positivi, e doveva stare al passo in tempo reale senza rubare la CPU che serve al gioco.

  5. La fine

    Una notte di pesca, e qualche pet Huge

    Ha girato da solo per tutta la notte senza interruzioni e ha pescato diversi pet Huge, tra i più rari del gioco. È un ciclo minimo che legge lo schermo e trasforma un segnale visivo in un'azione precisa: lo stesso schema che sta dietro al resto dei miei lavori di automazione.

  • Riconoscimento delle immagini

    La visione artificiale individua i vortici, i punti di pesca migliori, appena compaiono sull'acqua.

  • Controllo preciso del cursore

    Posiziona il cursore proprio sul vortice trovato, dove il bottino è migliore.

  • Nessun intervento

    Osserva e si corregge di continuo, senza nessuno alla tastiera.

  • Lavora con un autoclicker

    Si abbina a un autoclicker esterno per lanciare la lenza, che tiene anche il gioco connesso.

  • Bottino migliore

    Puntare ai vortici vuol dire puntare alle ricompense migliori, pet rari compresi.

  • Tempo reale

    Analizza lo schermo di continuo e reagisce subito quando l'acqua cambia.

Il gioco dietro lo strumento

Pet Simulator 99 è un gioco Roblox molto popolare di BIG Games: si collezionano pet di rarità diverse, si scambiano e ci si unisce ai clan. È il suo grinding continuo ad aver ispirato questo strumento.

Il ciclo

  1. Cattura

    Prende la zona di pesca della finestra di gioco.
  2. Rilevamento

    Cerca i vortici con il template matching, più controlli su forma e colore.
  3. Posizione

    Calcola le coordinate esatte del risultato migliore.
  4. Mira

    Ci sposta sopra il cursore.
  5. Ripeti

    Ricomincia, così il cursore segue i vortici mentre si spostano.

Riconoscere un vortice

Il confronto avviene con queste immagini di riferimento. Ne servono diverse perché un vortice cambia aspetto in base alla dimensione, alla posizione e all'acqua che lo circonda.

I vortici di riferimento che il confronto cerca.
  • Template matching

    OpenCV

    Confronta zone dello schermo con i vortici di riferimento predefiniti.

  • Rilevamento dei contorni

    Forma

    Cerca gli schemi circolari che un vortice disegna sull'acqua.

  • Analisi del colore

    Colore

    Verifica i colori tipici dei punti di pesca migliori, per scartare i falsi positivi.

  • Tracciamento del movimento

    Movimento

    Segue gli elementi dinamici, come i vortici che si spostano e l'acqua animata.

Lo stack

  • OpenCV

    Visione artificiale

    Il template matching e l'elaborazione delle immagini attorno.

  • Pillow

    Immagini

    Manipolazione e analisi delle catture.

  • PyAutoGUI

    Schermo e cursore

    Cattura dello schermo e posizionamento preciso del cursore.

  • NumPy

    Array

    Il calcolo numerico sui dati delle immagini, abbastanza veloce per un ciclo in tempo reale.

Competenze acquisite

  • Visione artificiale

    Riconoscimento delle immagini

    Template matching, contorni e analisi del colore su una scena rumorosa e animata.

  • Analisi dello schermo in tempo reale

    Automazione

    Un ciclo di cattura e reazione che sta al passo senza rallentare il gioco.

  • Mappatura delle coordinate

    Controllo del cursore

    Trasformare un risultato trovato in un'immagine in una posizione esatta sullo schermo.

  • Integrazione di librerie

    Python

    OpenCV, Pillow, NumPy e PyAutoGUI che lavorano insieme in un piccolo strumento.

Lancia anche la lenza?

No, ci pensa un autoclicker esterno. Lo strumento fa la parte difficile: trovare i vortici e tenerci sopra il cursore.

Per quanto può funzionare?

Ha girato da solo per un'intera notte senza interruzioni.

Ha funzionato davvero?

Sì: quella notte di pesca ha portato diversi pet Huge, tra i più rari del gioco.

Con cosa è costruito?

Python, con OpenCV per la visione artificiale, Pillow e NumPy per i dati delle immagini e PyAutoGUI per la cattura dello schermo e il cursore.

Release

Le ultime release, direttamente da GitHub.

  1. v1.0

    PS99 AutoFish v1.0

    Nessuna nota di rilascio.

    GitHub

Ti serve qualcosa di simile?

Dimmi cosa deve fare, dove gira e per quando ti serve.

Contattami