Motion Controller - Gestové ovládání her
Autoři:
Liudmila TaganashkinaVladimir Efimov
Úvodní obrazovka
O projektu
Motion Controller je aplikace pro bezkontaktní ovládání počítačových her pomocí pohybů těla. Využívá běžnou webkameru a technologie strojového učení k detekci pózy uživatele v reálném čase, kterou převádí na herní vstupy (klávesnice a myš).
Odkazy
GitHub: https://github.com/LiudmilaTa/Motion-Controller
Realizovaná myšlenka
Původní nápad byl vytvořit univerzální herní ovladač bez speciálního hardwaru. Cílem bylo umožnit hráčům ovládat hry pouze pomocí pohybů těla před webkamerou, čímž se stane hraní interaktivnějším a dostupnějším.
Co jsme implementovali
Detekce pózy v reálném čase:
- Využití MediaPipe od Google pro detekci klíčových bodů těla
- Zpracování 30 snímků za sekundu s latencí < 50 ms
- Normalizované souřadnice nezávislé na rozlišení kamery
Mapování pohybů na vstupy:
- Levá ruka: WASD ovládání (pohyb ve hrách)
- Pravá ruka: Ovládání kurzoru myši + detekce kliknutí
- Tělo: Skok (mezerník) při zvednutí ruky
Vyhlazování a stabilizace:
- Implementace dead zone pro eliminaci třesu
- Vyhlazování pohybu myši (smoothing algoritmus)
- Prahové hodnoty pro prevenci falešných vstupů
Vizualizace v reálném čase:
- Vykreslení ovládacích zón
- Real-time feedback o stavu detekce
Technologie
- Python 3.8 - Hlavní programovací jazyk
- MediaPipe 0.10.8 - ML framework pro detekci pózy
- OpenCV 4.8.1 - Zpracování video streamu
- NumPy 1.23.5 - Matematické operace
- PyDirectInput 1.0.4 - Simulace herních vstupů
- PyAutoGUI 0.9.54 - Univerzální ovládání myši/klávesnice
Aktuální stav projektu
Projekt je ve funkčním stavu a obsahuje všechny plánované základní funkce:
Plně funkční:
- Detekce pózy pomocí webkamery
- Real-time mapování pohybů na vstupy
- Ovládání WASD a myši
- Vizuální feedback
Známé problémy:
- Vyžaduje dobré osvětlení pro přesnou detekci
- Vyšší CPU náročnost (40-60%)
- První spuštění může trvat dele (3-5 minut (načítání ML modelů)), je to normální.
Možná budoucí vylepšení
- Kalibrace: Individuální nastavení pro různé uživatele
- GPU akcelerace: Využití CUDA pro lepší výkon
- Více gest: Detekce komplexnějších pohybů rukou
- Profily: Různá mapování pro různé typy her
- Konfigurátor: GUI pro nastavení citlivosti
Závěr
Motion Controller úspěšně demonstruje možnosti využití počítačového vidění a strojového učení pro herní ovládání. Projekt dosáhl funkčního stavu s real-time detekcí a responsivním ovládáním. Díky standalone distribuci je aplikace snadno sdílitelná a použitelná bez technických znalostí.