No oczywiscie, przeciez, z kazdym dostepnym web-cam'em robia takie rzeczy jak z Kinectem
Nic nie wiesz o PS Eye
(...)
Plus tekst tego typa
320x240 but I read that it can do 320 x 480 @ 180FPS
Rzeczywiscie typowy web-cam ...
(...)
Do tego nie potrzeba PS Eye, wystarczy typowa kamera RGB (którą zresztą PS Eye i Eye Toy są), czyli nadałby się też zwykły web cam. Plusem PS Eye jest to, że chodzi w 120fps w rozdzielczości 320x240px (a przynajmniej tak podaje Wikipedia), przez co w ciągu sekundy system dostaje więcej klatek do obrobienia, co wpływa na płynność animacji oraz zmniejszenie laga. Nie zmienia to jednak tego, że cała detekcja ruchu to nic innego, jak analiza poszczególnych pojedynczych klatek animacji (oczywiście możliwość wsparcia się poprzednią klatką animacji, żeby nie robić całej analizy od początku a jedynie wykryć zmiany w stosunku do poprzedniej klatki, bardzo pomaga). To samo możesz zrobić też za pomocą zwykłej kamerki internetowej (ba, kumpel robił coś takiego jako magisterkę). Sęk w tym, że przy chujowej kamerze animacja będzie gorsza/wolniejsza, ewentualnie jakość nagrywanego materiału będzie słaba.
Co do filmiku, który dałeś (ten drugi), to wciąż dałoby się zrobić na zwykłej kamerze. Ponownie, plusem PS Eye jest szybkość pobierania kolejnych klatek, jednak sama idea to nic innego jak nałożenie na Sixaxis'a (który posiada żyroskopy, można więc badać wychylenie pada) dwóch świecących się kulek i śledzenie ich położenia względem położenia początkowego. Dzięki temu można pobrać informację o tym, gdzie się pad znajduje oraz pod jakim wychyleniem (domyślam się, że zamknięcie/otwieranie ręki zrobione jest przez wciśnięcie guzików). Dokładnie na tej samej zasadzie działa zresztą Move. Jest kulka o określonej niezmiennej wielkości i dzięki temu, że system "wie" jaki rozmiar miała kulka w pozycji wyjściowej (kalibracja urządzenia) może na tej podstawie stwierdzić, gdzie dokładnie względem pozycji wyjściowej kulka znajduje się obecnie.
Czemu mam wrażenie, że niektórzy (większość?) osób, wypowiadająca się w tym temacie nie potrafi rozróżnić czym, w całym tym sterowaniu ruchami (czy to za pomocą Move, czy Kinecta, czy też nawet Eye Toy'a lub Wii), zajmuje się hardware, a czym zajmuje się software. Hardware jedynie dostarcza obraz (w przypadku PS Eye/Eye Toy jest to klatka animacji, w przypadku Kinecta mapa głębi + klata animacji), to, co się zaś z tym obrazem dzieje zależy już od pewnego API, software'u. Dlatego właśnie ludzie potrafią robić dema na Kinecta, nie wykorzystując kompletnie oprogramowania Microsoftu, a jedynie samemu przetwarzając to, co kamera zwraca (co zresztą niektórzy potrafili zignorować stwierdzając, że miecz świetlny na jednym z filmiku laguje, bo to Kinect, a nie dlatego, bo oprogramowanie do tego Kinecta programista-"amator" napisał w ciągu kilku tygodni/dni).
To, co wyróżnia Kinecta od PS Eye/Eye Toy'a, a co jakoś niektórzy nie potrafią zrozumieć, to to, że prócz informacji z kamery RGB dostarczana jest również informacja z kamery IR; prócz płaskiej klatki animacji urządzenie dostarcza również informację o głębi otoczenia. Dzięki temu nie potrzeba żadnych kulek, by stwierdzić, jak daleko od kamery znajduje się obiekt czy też w ogóle jak względem siebie są umieszczone obiekty i dzięki temu właśnie możliwe jest wykrywanie obiektu w przestrzeni XYZ bez wsparcia jakiegokolwiek kontrolera.
Weźmy przykład tego zdjęcia:
Wątpię, by sama kamera RGB, bez żadnych wspomagaczy, potrafiła oddzielić postać człowieka od wieży, która wyrasta mu między nogami; dla takiej kamery obraz jest płaski, a co za tym idzie, owa wieża byłaby częścią człowieka (oczywiście dałoby się to wyeliminować przygotowując odpowiednio algorytm tak, by ignorował wszystko, co nie znajduje się miejscu standardowych kończyn, ale nie o tym teraz mowa). W przypadku obrazu 3D z góry wiadomo, że wieża znajduje się daleko za człowiekiem więc nie ma nawet sensu przetwarzać informacji z nią związanych.
Dodatkowo, mając obraz 3D można przenieść dosłownie postać 3D gracza do gry (tak, jak to robi Your Shape: Fitness Evolved); tutaj ruchy gracza nie są mapowane na jakiś inny obiekt 3D, ale sam gracz staje się obiektem 3D i to on prowadzi interakcję z obiektami w grze. Jest to coś, co za pomocą zwykłej kamery RGB byłoby niemożliwe (albo cholernie trudne) do wykonania. Ludzie porównują np. rozbijanie bloczków z YS:FE do rozbijania bloczków w grach z Eye Toy'a. Różnica jednak polega na tym, że w większości gier na Eye Toy'a wystarczyło pomachać
za bloczkiem i gra to uznawała, wykrywała bowiem ruch w danym miejscu więc stwierdzała "ok, coś w ten bloczek trafiło"; często nawet nie musiała to być konkretna kończyna, po prostu "coś" (szczególnie dało się to odczuć na prezentacjach w sklepach, gdzie ludzie przechodzący blisko za plecami przeszkadzali w grze, bo ich ruch był wykrywany i traktowany, jako ruch gracza). W przypadku, gdy gra posiada dokładną informację o położeniu każdej z kończyn na osi XYZ takie coś nie przejdzie - ręka musi trafić w bloczek, musi być wyrzucona w przód, musi się z nim zetknąć nie tylko na osi XY, ale też i na osi Z. I nie jest śledzony tylko jeden punkt na tej ręce (tak jak jest to w przypadku Move/Wiimote, czy też przy prostym mapowaniu animacji na avatary w niektórych grach Kinecta), ale cała ręka stanowi obiekt.
Oczywiście, sam Kinect jest niewystarczający do bardziej złożonych gier. Brak przycisków, brak jakiegokolwiek krzyżaka/gałki do poruszania się całą postacią w przestrzeni 3D (dreptanie w miejscu przed telewizorem, symulując tym samym iście w danym kierunku, nie jest pewnie przyjemne) jest ogromnym minusem. Teoretycznie Microsoft już zapowiada, że powstają gry, które będą korzystały zarówno z Kinecta jak i pada jednocześnie. Fajnie by jednak było, by MS wydał coś w stylu navi controller/gruchy w Wii, czyli mały kontroler z kilkoma przyciskami i gałką, który można wygodnie trzymać w ręku; nie wyobrażam sobie bowiem grać w Kinecta trzymając w jednej ręce pada od X0.
(wyszła ściana tekstu
)