Gra sterowana kamerą - pomaluj płot

19.05.2013 - Filip Mróz
TrudnośćTrudność

Sterowanie w grach zwykle odbywa się za pomocą klawiatury i myszy. Można jednak wykorzystać do tego obraz z kamery, tak jak robi to KINECT. W tym artykule samodzielnie napiszemy grę, używającą zwykłej kamerki, w której własnymi rękami pomalujemy wirtualny płot.




Przykładowa rozgrywka w naszej grze "Malowanie płotu"

Pomysł, żeby wykorzystywać obraz z kamery jako kontroler, nie jest nowy. Od dłuższego czasu jest on wykorzystywany w niektórych konsolach (np. EyeToy dla PlayStation). Zawsze jest to miła odmiana, zwłaszcza gdy w grze uczestniczy parę osób. W tym artykule zajmiemy się implementacją prostej gry takiego typu.

Nasza gra będzie polegała na malowaniu wirtualnego płotu. Pędzlem (wskaźnikiem) będzie dowolny przedmiot o wyróżniającym się, wcześniej wyznaczonym kolorze. Celem gracza będzie zamalowanie jak największej części płotu w wyznaczonym czasie. Najpierw napiszemy wersję dla jednego gracza, a następnie dodamy drugiego, malującego drugi płot.

Wykorzystamy do tego celu jedną kamerę i oprzemy się na prostych technikach przetwarzania obrazu. Jak zawsze w przypadku wykorzystania tych technik wymagane będzie dobre oświetlenie, by szumy były jak najmniejsze. Ważnym jest zadbanie również o to, żeby pędzel (wskaźnik, którym będziemy "malować" płot) odróżniał się od tła.

Dla zainteresowanych lub poszukujących dodatkowych objaśnień polecam artykuł Domowe efekty specjalne - podmiana tła, w którym wykorzystujemy tą samą bibliotekę oraz bardzo podobne pomysły.

Technologia

  • Aplikację napiszemy C++ z wykorzystaniem Visual Studio 2008 Express. Samodzielna kompilacja jest możliwa, ale nie jest wspierana.
  • Jako narzędzie do wczytywania i przetwarzania obrazów wykorzystamy darmową bibliotekę OpenCV w wersji 2.3 (z lipca 2011). Można ściągnąć źródła i samodzielnie ją przekompilować albo pobrać gotową skompilowaną wersję. Więcej informacji można znaleźć w instrukcji instalacji oraz spisie funkcji. W dalszej części artykułu zakładamy, że bibliotekę udało się poprawnie zainstalować.
  • Do działania programu potrzebna będzie również kamera. OpenCV obsługuje różne rodzaje kamer, od kamerek internetowych podłączanych przez USB, po używające interfejs FireWire.
5
Twoja ocena: Brak Ocena: 5 (2 ocen)

Copyright © 2008-2010 Wrocławski Portal Informatyczny

design: rafalpolito.com