Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 59 reacties

De Nederlandse ontwikkelaar Engine Software heeft bewegingsdetectie op de Nintendo DSi mogelijk gemaakt. Het bedrijf brengt nog voor de zomer een game met de software uit, en de programmatuur zal ook in games van derden worden gebruikt.

Het in Doetinchem gevestigde Engine Software heeft een video vrijgegeven waarin het de software demonstreert. Nintendo's DSi beschikt niet over motion sensors, maar met de software van Engine blijkt het toch mogelijk te zijn om beweging te detecteren. De techniek zal uiteraard vooral gebruikt worden om games te besturen.

Tegenover Tweakers.net gaf Engines Ivo Wubbels aan dat het bedrijf aan een toepassing voor de programmatuur werkt; de desbetreffende game zal nog voor de zomer als DSiWare te downloaden  zijn. Volgens Wubbels zijn er echter ook enkele grote uitgevers die de techniek in DSi-games willen gebruiken, al wilde hij geen namen noemen.

De software van Engine maakt gebruik van de in de DSi ingebouwde camera om bewegingen van de handheld te detecteren. Engine Software spreekt om die reden dan ook van een 'tilting mechanisme.' Volgens Wubbels, oprichter en managing director van Engine, is het idee eenvoudig, maar was de uitvoering 'erg gecompliceerd'. Hij vindt echter dat de implementatie erg goed geslaagd is: 'het voelt erg natuurlijk aan, het werkt precies zo als je verwacht dat het werkt.'

Nintendo-directeur Satoru Iwata maakte eerder deze week bekend dat de Japanse gamesgigant  eveneens bewegingsdetectie voor de opvolger van de huidige DSi ontwikkelt. De vraag is alleen nog of Nintendo bewegingen met software of met hardware detecteert.

Moderatie-faq Wijzig weergave

Reacties (59)

Zo "complex" is dat toch niet? Ik bedoel...

- Maak plaatje1
- Maak plaatje2
- Vergelijk de beide
- Check in welke richting het beeld is verschoven.
tja, klinkt simpel, maar je moet wel rekening houden met de beperkte processingpower...
Oke daar heb je wel een punt ja daar heb ik niet aangedacht :P het is immers geen computer.
Ja wel, het is wel een computer
ik vraag me af, is dit niet eigenlijk hetzelfde als een optische muis? Dat zijn namelijk ook gewoon camera's die 2 plaatjes vergelijken en daar dan een beweging aan koppelen. En zoveel rekenkracht heeft een muis niet :)
ja, alleen hoeft die muis geen rekening te houden met mensen die langs de camera lopen.
of licht dat ineens even wegvalt.
"Zo "complex" is dat toch niet?"

Totdat je je gaat afvragen welke programmeeropdrachten je gaat intypen om dmv een vergelijking de bewegingsrichting te bepalen. Een functie in de trant van CheckDirectionOfMovement() is niet standaardonderdeel van een programmeertaal.
Het zal niet heel veel anders zijn als een richtings-vector produceren tussen een aantal punten op frame 1 en een aantal punten op frame 2. Als je een punt of 5 neemt en die averaged dan kom je al een heel eind, daarna hoef je de zy beweging alleen maar om te zetten naar xz beweging. Volgens mij is het niet extreem complex om te doen.

Het enige echte probleem is om het performant te houden want vziw heeft dat ding niet eens een vector unit, of uberhaupt floating point ondersteuning. Kortom, er zal best hardcore fixed-point gedaan moeten worden, maar dat is iets wat je op zich wel mag kunnen verwachten van een DS developer.

[Reactie gewijzigd door PrisonerOfPain op 7 januari 2010 22:37]

Je Tweakers CV ziet er indrukwekkend uit en je praat met dure woorden, maar toch vraag ik me af of je enig idee hebt waar dit over gaat!!!

Ben zelf eens met beeldverwerking bezig geweest voor de HTS, kan je verzekeren dat het niet eenvoudig was. En dan deden we dat slechts met zwart wit foto's die van goede kwaliteit waren. Dan maakten we ook nog eens gebruik van een krachtige PC met een goed rekenpakket (Matlab). Functies als erosie om verschillende vormen te detecteren zijn met 256 kleuren dan nog goed te doen. Maar met kleuren afbeeldingen zal dit echt niet zo makkelijk gaan!!!
Onzin. Het kan inderdaad zo eenvoudig als prisonerofpain zegt.
In de eerste plaats vind ik het een beetje apart dat je denkt dat matlabscriptjes representatief zijn voor de performance. Uit ervaring weet ik wel dat in matlab met wat optimalisatie real-time tracking van vormen uit 256-bit 320x240 kleurenafbeeldingen met 15fps rauw uit een webcam prima lukt, waarbij je gewoon een vector met plaatsinformatie terugkrijgt, voor een stuk of 5 vormen per plaatje. Als je hier je eigen C-routines van maakt draait het op een PC van 10 jaar geleden net zo vloeiend (waarschijnlijk afgezien van het grabben van de plaatjes van de webcam). Matlab is gewoon crap qua performance en een heleboel algoritmes zijn inefficient (qua tijd/aantal operaties; soms is er een reden om iets op een bepaalde manier te doen) geschreven. Daarnaast zijn de meeste mensen gewoon crappy programmeurs omdat het vaak niet meer nodig is om efficient code te schrijven. Ik heb behoorlijk vaak variabeledeclaraties in een loop voorbij zien komen. Of matrices die 'omdat het zo netjes lijkt' aan het eind van een operatie weer helemaal op nul worden gezet, om vervolgens weer helemaal overschreven te worden in de volgende operatie.

Om terug te komen op je post: zwart-wit- of kleurenfoto's van een goede kwaliteit lijken me helemaal niet nodig, ik denk dat je met de juiste thresholding met een binair plaatje al een heel eind komt (het lichtste punt / de lichtste punten uit een afbeelding lijkt me bij kleine bewegingen niet zoveel veranderen).
En, hoe weet de DS welke 5 punten hij moet pakken? Juist, dat moet je eerst laten bepalen. En voor het volgende frame moeten wel dezelfde 5 feature points gebruikt worden, anders gaat het mis. Er is geen sprake van een Wii-bar met een paar lichtjes als vast referentiekader, dat zou het inderdaad redelijk eenvoudig maken, maar hier gaat het om "onbekende" beeldinput, en dat is een stuk lastiger/rekenintensiever.
Hmm, is het werkelijk?

Hoe detecteer je linksom? Hoe detecteer je rechtsom? Hoe leg je de processor uit dat dit het geval is? Hoe leg je de processor uit hoe snel dit gaat? Hoe leg je de processor uit in welke hoek dit precies gaat?

Komt toch langzaam aan wat meer bij kijken he? Detectie is 1 ding, uitleggen is nr. 2
Uhh uitleggen? Als je het eenmaal gedetecteerd hebt dan ben je er toch?
Als je weet hoeveel bepaalde punten verschoven zijn, moet je daaruit nog de snelheid, acceleratie, draaiing etc. berekenen.
Iets als gezichtsherkenning is ook heel complex terwijl het voor ons mensen heel simpel lijkt. Ik denk dat hier toch net wat meer complexiteit achter zit dan 2 plaatjes met elkaar vergelijken.
Dat is toch net wat anders.
-het perspectief verandert
-de lichtinval verandert
-de kwaliteit is slecht
-je hebt een erg kleine rekenkracht

Het idee erachter is idd vrij simpel, maar ga dat maar eens uitwerken. Het is heus niet 2 keer exact hetzelfde plaatje bekijken, en zien hoe de tweede versie enkel maar verschoven is. Het gaat een pak verder. En dat moet je dan allemaal vlot geprogrammeerd krijgen op zo'n apparaat. Peuk werk zeg ik daartegen!
Klinkt als een geavanceerde versie van een optische muis, die doet toch zo'n beetje hetzelfde. Alleen moet je nu wel rekening houden met dat de beelden op de plaatjes niet helemaal hetzelfde zijn, door bewegingen van de gebruiker of achter hem. Een hele opgave dus als iemand in de trein voor het raam gaat zitten bijvoorbeeld. Een hele hippe optische muis dus.
met histogram kun je dit soort dingen maken
Nou leg je het weer iets tť simpel uit, want met een histogram weet je nog niets als je er niet een bepaald algoritme op loslaat.
Mathlab for the wi... Oh ja tis een DS... :(
?! yeah right, dit is real time en real life, en dus geen matlab op een quad core.
Beetje kort door de bocht, mag je mij vertellen hoe jij dat softwarematig gaat oplossen! Ik weet wel een manier, maar heb het magische woord hier nog niet gelezen (nml: auto correlatie).

[Reactie gewijzigd door jjkewl op 8 januari 2010 00:19]

Ik snap deze niet helemaal :
'De vraag is alleen nog of Nintendo bewegingen met software of met hardware detecteert."
Leuk maar hardware kan toch niet functioneren zonder software ?
Die begrijp ik ook niet helemaal..het zal altijd wel hardware zijn, misschien slaat dit op de complexiteit? (balletje in tube of een gyroscoop)?

Of is het nou dat een camera wordt gebruikt?

[Reactie gewijzigd door citruspers op 7 januari 2010 20:04]

Ze bedoelen of Ninendo ook iets met de bestaande hardware doet om een tilt sensor te emuleren of dat men bijvoorbeeld een sensor in de cartridge in heeft gebouwd.
Ik denk dat ze bedoelen:

Hardwarematig - Een X/Y/Z axis accelometer binnenin een DS kaartje (wat er al is bij sommige homebrew kaarten)

Softwarematig - Software controlleert elke frame die de camera maakt, en kijkt zo of je beweegt.

Beide gebruiken natuurlijk software, maar een Acceleratie meter werkt met stroom IPV camerabeelden
Ze bedoelen met software waarschijnlijk dat er geen extra hardware wordt gebruikt die nog niet in de DSi zit, en met hardware dat er dus wel hardware bij wordt gedaan. (gyroscoop e.d).

De oplossing uit het artikel is dan softwarematig omdat het gebruikt van de hardware die al op het apparaat zit (de camera)
kan je beter een kaartje met hardware support nemen zoals deze: http://www.ic2005.com/sho...roductid=101&cat=5&page=1 ik iwl geen reclame maken maar das gewoon een flashcart die beweging ondersteunt.
Alleen is het kaartje voor de DS, niet voor de DSi
Is ook zo lekker officiŽel van Nintendo en zo, dat kaartje :X ....
Ik zou het wel fijn vinden dat dit bedrijf de grote namen kan strikken voordat Nintendo dat zelf doet.

En als de camera de bewegingen waarneemt betekend dat je je DS niet hoeft te bewegen maar gewoon met de hoofd kan bewegen, en als je de DS beweegt en je beweegt mee zal de DS misschien geen beweging registreren.
Maar is dat nou net niet een nadeel? als dus de software 'denkt' dat jij de DSi beweegt, maar dit niet doet... ik zie dit eerder dus als een nadeel dan als een voordeel.
Dit is toch voor de DSi, die heeft toch 2 camera's, zou er dan niet gewoon gebruik gemaakt worden van de camera aan de andere kant?

Moet je natuurlijk niet te veel met je benen bewegen :P
Tja heb je bij de Wii ook als je aan je reet wil krabben. Een lekkere controller of muis heeft daar geen probleem mee.
'K zie mezelf ook niet op het OV met mijn hoofd wiebelen langs alle kanten ipv een Dpad te gebruiken die we al decennia gebruiken en die onmogelijk nog kan verbeterd worden. En de nekpijn missen we natuurlijk ook allemaal liever.
Ik denk niet dat de camera een geschikte manier is hiervoor. Het werkt wel, maar het is te foutgevoelig. Als jijzelf beweegt en het apparaatje niet, zal hij toch beweging registreren, denk ik. De beste manier is toch echt om het met een accelerometer te doen.

Dat scheelt een hoop rekentijd, registreert alle richtingen en rotaties, en past op een heel klein chipje dat zelfs in de gamecartridge zou passen (alleen geen id of de cartridge-interface actieve chips ondersteunt... maar op de SNES kon het iig wel met de SuperFX chip).

[Reactie gewijzigd door _Thanatos_ op 7 januari 2010 21:37]

Alleen kun je een accelerometer niet downloaden (ze hebben het hier over DSiWare).

Bovendien kost het een publisher meer geld om een GameCard met extra hardware uit te brengen (geen idee of een DS GameCard slot daar een interface voor heeft; alle bestaande hardware uitbreidingen werken mbv het GBA cartridge slot en die ontbreekt op de DSi).
Het zou eventueel met het SD-slot kunnen, mits een accelerometer zo plat kan. Dan is het een kwestie van continu die SD "kaart" uitlezen om zo coŲrdinaten en versnellingen te lezen. Dat kan met een cartridge natuurlijk ook, maar dan moet iedere accelero-enabled game diezelfde techniek inbouwen. Via SD staat het iig los van de cartridge.

[Reactie gewijzigd door _Thanatos_ op 8 januari 2010 00:30]

Want we weten allemaal hoe goed bewegingsdetectie werkt met de PS3 controller, en hoe precies de detectie van de wii is. :Y)

Cynisme aside, ben ik natuurlijk benieuwd of nintendo met iets goeds op de proppen kan komen, of dat het een grote gimmick wordt.

[Reactie gewijzigd door citruspers op 7 januari 2010 19:55]

Beweging op de PS3 gaat imo veel nauwkeuriger en sneller dan op een Wii. Bij de PS3 is eerder het probleem dat plat ook betekent dat je de controller plat moet houden, niet leuk als je in de zetel kruipt met een controller. De Wiimote is sowieso te traag om nog verdere nadelen te moeten ervaren.

Ms had al jaren gamepads die je kon tilten en echt interessant zijn die daar ook niet geworden. Er zijn gewoon veel betere inputs.
In Japan bestaat toch een NDS spel dat gebruik maakt van bewegingsdetectie genaamd Slide Adventure: Mag Kid?
En op de GBA Warioware: Twisted! en Yoshi's Universal Gravity (ook speelbaar op de NDS)
Dit gaat zeker onmogenlijk bestuurbaar worden als het maar een beetje duister word.. Zo gaat het ook met mijn mobiel!
Geinig maar vraag me af hoe goed het werkt als er heel veel achter je beweegt

Ik denk niet dat het goed genoeg werkt om er hele games mee te maken

[Reactie gewijzigd door Rendeer op 7 januari 2010 19:16]

Als er heel veel achter je beweegt kun je met een normale D-pad ook niet normaal spelen.
leuk dat het eens van eigen bodem komt

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True