tag:blogger.com,1999:blog-136882317915412352024-03-20T15:25:02.949+02:00Beyond casual: thoughts about gesture gamingMicha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-13688231791541235.post-24105193143261577422012-06-23T21:04:00.002+03:002012-07-01T22:23:46.288+03:00ART&&CODE3D@CMUA presentation I gave a while ago in the <a href="http://artandcode.com/3d">ART&&CODE3D conference</a> @ Carnegie Mellon University
<P>
<iframe src="http://player.vimeo.com/video/44391556" width="400" height="300" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>
<P>
<I>Was a lot of fun and excitement – thanks Golan Levin for this great initiative!
</I>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com0tag:blogger.com,1999:blog-13688231791541235.post-78968255762796909492012-03-13T13:34:00.001+02:002012-03-14T08:22:03.129+02:00Raiders of the Lost Touch<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq_5MaOacKkRGr3BgC9z1d56MnBiLv9-3w8r7Ikrhk0VqiFv8P-FPB-XBZlU81e2ewViLJZmbsm6ca6xu64C7gfu2qA4GKRrlt-Nm_kumR_LM8-tMn0mnGS4nDoFjhXAVtYWL-JbInhg/s1600/corrected+glossy+hand.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq_5MaOacKkRGr3BgC9z1d56MnBiLv9-3w8r7Ikrhk0VqiFv8P-FPB-XBZlU81e2ewViLJZmbsm6ca6xu64C7gfu2qA4GKRrlt-Nm_kumR_LM8-tMn0mnGS4nDoFjhXAVtYWL-JbInhg/s200/corrected+glossy+hand.gif" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: -webkit-auto;">PrimeSense's NuPortal3 cursor</span> </td></tr>
</tbody></table>
<div style="text-align: justify;">
<i>Looking at modern UI designs, might get you think everything today must be smooth. 10 years ago, a button click triggered an instantaneous screen change, as the application switches states. Now we know better: we understand our users get disoriented by unnatural immediate changes. After all – we rarely experience such scene changes in real life (Except when we wake up from a nightmare – certainly not the desired experience for our daily interactions…)</i></div>
<br />
<div style="text-align: justify;">
So we want to animate our visuals. But just blindly adding animation to every interaction results an unresponsive system. In order to effectively plant visual feedback, we need to examine the interaction mental model, and consciously plan the sensation we target.</div>
<div style="text-align: justify;">
<br /></div>
<a href="http://michagalor.blogspot.com/2012/01/part-1-opening-and-on-body-items.html">As I mentioned in the 1st post</a> – man machine interaction got softer over the decades:<br />
<br />
<ul>
<li>Starting an electrical ignition car switch by rotating the key, is way easier than rotating a dynamo leaver to generate a spark in an antique car</li>
<li>Pressing a physical button is easier than pulling a leaver down to engage a high voltage power switch</li>
<li>Clicking a mouse button feels softer than physical button</li>
<li>Clicking a virtual button on a touch screen feels just like touching a piece of glass</li>
<li>Clicking something in mid-air in a 3D interface, by itself - does not feel at all. Crap.</li>
</ul>
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsXgxj6Eml4t-kekfQBQ64F9VLet8DL3MtykVTQtEfGBLIksy5guxLlWB5uJp6f4PvFw7p9D-tnWSakrse9nsvjbxUl-_O1DK6xgXpkOrj6DPLRdTObO52lSvIXPpHPZ2tKXotJPztew/s1600/image007.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsXgxj6Eml4t-kekfQBQ64F9VLet8DL3MtykVTQtEfGBLIksy5guxLlWB5uJp6f4PvFw7p9D-tnWSakrse9nsvjbxUl-_O1DK6xgXpkOrj6DPLRdTObO52lSvIXPpHPZ2tKXotJPztew/s320/image007.png" width="201" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px; text-align: center;"><span style="font-size: small; text-align: -webkit-auto;">Bagel cursor states</span> </td></tr>
</tbody></table>
<div style="text-align: justify;">
For each softening process, the designers had to compensate on its side-effects – most commonly, the reduction of natural feedback. Virtual buttons gets pressed down and up when clicked, and 1:1 animation happens when you scroll a list of items in your iOS device. You can actually hear a recording of a loud mechanical shutter when a modern camera phone shoots (In the poorly designed ones – you also hear the motor winding the virtual film…) When we migrated to touch screens, we lost the button click sensation. Going to in-the-air interface gives away with even the most elementary tactile feedback of touching a physical surface.</div>
<br />
<div style="text-align: center;">
<br /></div>
<div style="text-align: justify;">
In a simplified model, we are mentally capable of doing 2 operations in the same time. But those operations are not symmetric. Our visual focus can only maintain one target in the center, while the peripheral vision can not reach a comparable resolution or attention level. Adding sound effects are critical in order to allow the user to operate the system on his secondary attention 'slot'. Try to take a picture with your Smartphone without looking at the screen. Naturally – the sound effects supply you with reassuring, so you will know the machine followed your intention.</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNAGPx3N7GS8Dd-_7p1ZsU_cLeyv9CqNfksJY36JPgJKPgZyLeNDPUSlTWm31aAG9T3yO9U0b34IT3D5hck-A9cfV1KfCtel3u4Om-W7cyqOhCx0yGNJSR31E78cCNkPkyW4lN3cyGmQ/s1600/corrected+shadow+hand.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNAGPx3N7GS8Dd-_7p1ZsU_cLeyv9CqNfksJY36JPgJKPgZyLeNDPUSlTWm31aAG9T3yO9U0b34IT3D5hck-A9cfV1KfCtel3u4Om-W7cyqOhCx0yGNJSR31E78cCNkPkyW4lN3cyGmQ/s200/corrected+shadow+hand.gif" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: -webkit-auto;">Shadow touch queues</span> </td></tr>
</tbody></table>
<div style="text-align: justify;">
Consider simulating a virtual touch screen using gesture detection:<br />
When interacting with a real surface – we receive some visual queues as we get closer and closer to the surface. You will see dropped shadow that gets closer and darker as your finger gets close to the touch point. On a glossy surface, you might see a blurry reflection that merges with your finger tip upon touch. If you think stereo vision is the dominant queue here – try touching a non glossy back illuminated screen that does not have the other queues (Your screen can be a perfect candidate) Try to do it slowly. Can you accurately anticipate when you will reach the touch point?</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<div style="text-align: justify;">
After implementing several continues cursor feedback, the users get some initial depth perception. But then we encountered another issue. Weaving your hands in the air feels like… well – just that. It certainly does not feel like touching anything. But the virtual surface simulation was not about limitless in-the-air interaction! The moment of touch, should <i>feel </i>different, just as it is in real hard surface. While the feedback during hovering is continues, the touch moment must create a non-continuous sensation. An immediate, non-continuous visual change, combined with crafted sound effects on click and release are important.</div>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEKM6BRuJftTlOxmo_L3OTY-XGdz4hgKpOQc3yM_RvN64E5VqNpQZrAdDsX-f_xJiZ8btaSXVRubNksvc_ILVq1HnF061gEajlpDWV3Nt5v9xFI0xnggUlzkpcSQMgsrgNjg20TPXC7w/s1600/image011.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEKM6BRuJftTlOxmo_L3OTY-XGdz4hgKpOQc3yM_RvN64E5VqNpQZrAdDsX-f_xJiZ8btaSXVRubNksvc_ILVq1HnF061gEajlpDWV3Nt5v9xFI0xnggUlzkpcSQMgsrgNjg20TPXC7w/s1600/image011.gif" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: -webkit-auto;"> Non continuous touch point</span> </td></tr>
</tbody></table>
<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaVF7W-myjJaZF7I3ebzihaSxutVI0RbBSlouvhpxE2DbOcwRjBVYtCjbpRQM96umLpuJOzrDT_Nde5P8ZcYb80bXcV3cks7aGpLbSqYZ4gb90ULaMfQin9V3Fz0Jxy7jlvlc4GGqW_Q/s1600/image002.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaVF7W-myjJaZF7I3ebzihaSxutVI0RbBSlouvhpxE2DbOcwRjBVYtCjbpRQM96umLpuJOzrDT_Nde5P8ZcYb80bXcV3cks7aGpLbSqYZ4gb90ULaMfQin9V3Fz0Jxy7jlvlc4GGqW_Q/s200/image002.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: -webkit-auto;">Kinectimals / Frontier Developments</span> </td></tr>
</tbody></table>
<div style="text-align: justify;">
<i>When Microsoft launched the Kinect, back in November 2011, we took all 6 launch titles for a spin. Reaching Frontier Development's "Kinectimals" – and after, patiently, waiting for the annoying opening video to pass – we got a bit confused. There we stood, several gesture-savvy engineers and researchers, petting an adorable cub, and trying to figure out how it managed to track our finger interactions using our same PrimeSensor system found in the heart of Kinect. Of course, after a few embarrassing minute we figure it out - it didn't! The game's virtual hand avatar brilliantly interacts with the pet in a natural expected way. If you put your hand on top of the furry head, you just can't help but petting! </i></div>
<br />
<a name='more'></a><br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivwulm9nM5q6buZ-1vvB1PDddYpLJkttnZcK6h9UjMZdCtlxbT99pNmWeJHD5UBt528hoYSJ3nThjvvXueyJZT2QobB1vFATiVYBnm32k3INAtDJnkroNLxe7uz0QWwXNkiz4P82LXdA/s1600/image005.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivwulm9nM5q6buZ-1vvB1PDddYpLJkttnZcK6h9UjMZdCtlxbT99pNmWeJHD5UBt528hoYSJ3nThjvvXueyJZT2QobB1vFATiVYBnm32k3INAtDJnkroNLxe7uz0QWwXNkiz4P82LXdA/s200/image005.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: -webkit-auto;">Hand avatar – the super-metaphor</span> </td></tr>
</tbody></table>
<div style="text-align: justify;">
Sometime I refer to those realistic hand avatars as a "super-metaphor: not only you instantly understand the type of expected motion, you also can't help imitating it. When you get identified enough with the virtual hand, instincts drives to avoid conflicts. So its not only the machine tracks the user, the user tracks the machine! (Yet another observation backing the assumption we share a common ancestor with monkeys…)<br />
<br />
<i>Perhaps - this is how the modern age 'tool-tip' will look like</i> </div>
<br />
<div style="text-align: justify;">
Natural interaction is not limited to flat surfaces – the cursor should interact with buttons and menus in a natural way. Its true for gesture interfaces, just as it is true for touch screens. Again - It's all part of the fight against the lost feedback.</div>
<div style="text-align: justify;">
<br /></div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhATfAZ-8rZnfG8ajHVRdnnXVeGcpgt_4g4B3REdXXUPtq0kIyZRA9ukFcySutFE-58BWS5rhmkYwKfTSM8kdzhmtxcFf9FRW5HZPfnM22Sk4kSVjhdtED0FZhP9yRlQBwPEP5tpR1yAg/s1600/image003.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhATfAZ-8rZnfG8ajHVRdnnXVeGcpgt_4g4B3REdXXUPtq0kIyZRA9ukFcySutFE-58BWS5rhmkYwKfTSM8kdzhmtxcFf9FRW5HZPfnM22Sk4kSVjhdtED0FZhP9yRlQBwPEP5tpR1yAg/s200/image003.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="text-align: -webkit-auto;"><span style="font-size: small;">A brilliant visual feedback</span><br /><span style="font-size: small;"> Fruit Ninja / Halfbrick</span></span> </td></tr>
</tbody></table>
<div style="text-align: justify;">
<a href="http://michagalor.blogspot.com/2012/01/part-2-pov-and-basic-scenes.html">As pointed in the 2nd posts</a>, in an actual 3D rendered game environment – you should acknowledge the challenge of depth perception. If the avatar hits something, and manages to go right though, it will feel transparent. The moment of hit is something that might better give a non-continuous experience. The interaction should realistically move the enemies and avatar upon contact. If the avatar is supposed to be huge – impact might throw the enemies away, while you might get pushed back upon punching a giant ogre. But it does not only about physics: a real enemy charging towards you will certainly stop just on reaching melee attack distance – and the same is true for cases the player initiates the charge. Don’t try to challenge your users into getting the 'right' distance – as it will just break the illusion and bring them back to reality (Unless you want them to feel as if they are just lost teenagers, waving hands in front of their living room flat television…)
</div>
<br />
<br />
<br />
<div style="text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div style="text-align: center;">
<br /></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com3tag:blogger.com,1999:blog-13688231791541235.post-32126358021196498912012-02-23T13:47:00.002+02:002012-02-23T13:47:39.360+02:00From shooters to posters<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: justify;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHsk_anQNstQnJ5ZbSYDNRbGqD9EJd1hQ2NnuWILdj97UA6Ckf0veKlLWLSxWMH338FBAusN56I4Z9BiDbjec4fkS7KaBQOEGiA4wGFVFR0DqDFYavj6AzjnvVpS_loBkdR2ThFCSHaQ/s1600/image001.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHsk_anQNstQnJ5ZbSYDNRbGqD9EJd1hQ2NnuWILdj97UA6Ckf0veKlLWLSxWMH338FBAusN56I4Z9BiDbjec4fkS7KaBQOEGiA4wGFVFR0DqDFYavj6AzjnvVpS_loBkdR2ThFCSHaQ/s1600/image001.png" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px; text-align: center;"><span style="font-size: small; text-align: -webkit-auto;">Moon Patrol (1982)</span></td></tr>
</tbody></table>
<span style="text-align: justify;"></span><br />
<span style="text-align: justify;">The </span><a href="http://en.wikipedia.org/wiki/Parallax" style="text-align: justify;" title="Parallax"><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; color: #0b0080; font-family: Arial, sans-serif; font-size: 10pt; line-height: 115%;">motion parallax</span></a><span style="text-align: justify;"> effect has been
vastly used in computer games for decades. In the 80s its was something you
actually looked for in a game. If space invaders began with static camera,
moving craft was quickly simulated by moving the background. At some point –
the shooters and platformers rendering added the motion parallax effect – by showing
more then one layer of background, each moving at different speed. Back then, was
not simple – especially if you didn’t have access to</span><a href="http://en.wikipedia.org/wiki/Blitter" style="text-align: justify;"> HW 'blittering</a>'<br />
<span style="text-align: justify;"><br /></span><br />
<div class="MsoNormal" style="text-align: justify;">
<o:p></o:p></div>
<div style="text-align: justify;">
</div>
<div class="MsoNormal" style="text-align: justify;">
In our time – 3D rendering is commodity. And game programmers
don’t need to give it a 2<sup>nd</sup> thought – as moving the virtual camera
within the scene will also create the motion parallax. So for 3D content – we can
simply take it for granted. But history repeat itself – and motion parallax is
strong today in mobile platforms<o:p></o:p><br />
<br /></div>
<object style="height: 390px; width: 640px;"><param name="movie" value="http://www.youtube.com/v/x6pT_2E5xI0?version=3&feature=player_detailpage">
<param name="allowFullScreen" value="true">
<param name="allowScriptAccess" value="always">
<embed src="http://www.youtube.com/v/x6pT_2E5xI0?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="320" height="240"></object>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<h1>
Posters</h1>
</div>
<div class="MsoNormal" style="text-align: justify;">
<i>For every process of revolution there are countless
evolutions that derive from it or support it. After all, market mechanics do
not tend to throw away all existing material
s upon changes. Upon the wide adaptation of TVs, some shows were actually
hearing music with some static slide or even just showing the </i><i><span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Arial, sans-serif; font-size: 11.5pt; line-height: 115%;">orchestra</span>. For a notable period commercials
were a mixture of just hearing the reporter citing the vendor’s slogans, or
just still stream showing the printed advertisement poster. We continue to
consume the older media with the newer inventions, as the cost of creating
everything from scratch is intolerable. <o:p></o:p></i><br />
<i><br /></i></div>
<div class="MsoNormal" style="text-align: justify;">
With the dropping cost of flat panel displays – digital signage
is replacing the printed posters. Some of those continue to involve and add a
level of interaction – but what kind of content will populate it?<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
Totally new content can be customized for the poster
dimensions, user’s state of mind, and technical capabilities of the media (Like
touch and gesture detection). Just like the common annoying little flash banners
– such signs can offer you to kick a ball, punch sponge bob, leave a virtual graffiti
or a funny augmented picture of yourself <o:p></o:p><br />
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The whole thing deserves several posts for itself of course –
there are countless amazing possibilities here!<br />
<br />
But before the full revolution
happens – we already see those signs running legacy content:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="text-align: justify; text-indent: -0.25in;">
<br />
<ul>
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Non interactive TV
commercials</span></li>
<li><span style="text-indent: -0.25in;">Interactive internet flash advertisement</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font-family: 'Times New Roman'; font-size: 7pt;"> </span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Slideshow of static posters
– that were designed for the correct location and audience, but do not enjoy the
interactive and dynamic possibilities of the medium</span></li>
</ul>
<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="text-align: justify; text-indent: -0.25in;">
<o:p></o:p></div>
<h1 style="text-align: justify;">
“Its allllive!”<o:p></o:p></h1>
<div class="MsoNormal" style="text-align: justify;">
<o:p> </o:p> </div>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl-uYRTbvNcI4Som6sLXYzRxT9CwsDm2JE0txNm3GwMC1fAtBI_TsJTaaW4tgQPQxv59mN1qzKcD80x14ur3XE5L1jGJ7gBUTAyhEFHbeQP1ok97suL-XRoZpj4eOP9S1Wvnez8ll1BA/s1600/image002.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: justify;"><img border="0" height="146" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl-uYRTbvNcI4Som6sLXYzRxT9CwsDm2JE0txNm3GwMC1fAtBI_TsJTaaW4tgQPQxv59mN1qzKcD80x14ur3XE5L1jGJ7gBUTAyhEFHbeQP1ok97suL-XRoZpj4eOP9S1Wvnez8ll1BA/s200/image002.jpg" width="200" /></a></div>
<div style="text-align: justify;">
If we can track the viewer of the poster – wouldn’t it be
nice to give him some motion parallax as he moves? But – our legacy content is
not 3D… Do we really need to redesign all our posters for that?</div>
<br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
Let’s look on the design process of a poster. The designer
thinks on the place of the poster, at what distance the audience might be
standing. When done right, the visual composition is cleverly designed to draw
attention to the main merchandize and brand.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Technically speaking – he will be using Adobe Photoshop or similar package. Specifically –
he will use the features of <i>layers</i> extensively. There will be at least one
layer for the background, and separate layers for the objects, captions and
more. Before production – those layers will be flattened and sent to print.
Going back to the motion parallax – what if we consider taking the layers
before this process? The layer separation, can be combined with estimation of
the designated virtual distance of viewer, and printed items – and almost
automatically provides us with what we need in order to create a motion
parallax sign!<b><o:p></o:p></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><i>The focus here is not on technology – but of the production
process. Using this small idea – we can utilize the existing content and commonly
used tools. Solving the content evolution may be one of the kicks the industry
needs in order to justify the cost of adopting this new technology!<o:p></o:p></i></b></div>
<div class="MsoNormal">
</div>
<ul>
<li style="text-align: justify;">Conversion process:</li>
<ul>
<li style="text-align: justify;">The process begins by taking the original psd file that was
used to create a standard poster</li>
<li style="text-align: justify;">Estimate the user distance that was targeted by the designer
at the time of creation</li>
<li style="text-align: justify;">Estimate the appropriate distance of each layer from the plane
of the poster</li>
<li style="text-align: justify;">Simple geometry can now give us the ‘native’ scale and
distance of each layer</li>
</ul>
<li style="text-align: justify;">Rendering process:</li>
<ul>
<li style="text-align: justify;">Pick the active viewer (IE using face detection)</li>
<li style="text-align: justify;">Using the active viewer position, pan and scale each layer</li>
<li style="text-align: justify;">A nice addition is adding some ‘shallow depth of field effect’
on the background. It need not be accurate – our brain is not that sensitive (Our
pupil’s F-number changes all the times with various lighting conditions anyhow).
As the viewer get closer and closer –
the background can blur away. It also nicely draws the attentions towards the
main object</li>
</ul>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: justify;">
<span style="color: #0000ee; text-decoration: underline;"><br /></span></div>
<div style="margin-left: 1em; margin-right: 1em; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNFWXXLn1OqUvEguDZWH9yHtP6hxkRnVsickjppF4KjV2aXB7JMCBljNkik4AHZSLl_ADNO6N7N09F9csDzLjxwxXsGJX3ou_jDTj07-poMjRGT9amO0wYUZBxdk__OAI8a7al99J1w/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNFWXXLn1OqUvEguDZWH9yHtP6hxkRnVsickjppF4KjV2aXB7JMCBljNkik4AHZSLl_ADNO6N7N09F9csDzLjxwxXsGJX3ou_jDTj07-poMjRGT9amO0wYUZBxdk__OAI8a7al99J1w/s1600/image004.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidNFWXXLn1OqUvEguDZWH9yHtP6hxkRnVsickjppF4KjV2aXB7JMCBljNkik4AHZSLl_ADNO6N7N09F9csDzLjxwxXsGJX3ou_jDTj07-poMjRGT9amO0wYUZBxdk__OAI8a7al99J1w/s400/image004.png" width="400" /></a></div>
<br />
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOMVZjgqPEhjQFOLklZ2Ppxu2AZWknuQsP4UaAChJYzUVpmocEIc4rduzkdLPaLGs4JlfNGrXJXMN7P9tdnHcIOaIMp7pC_MGJZNRVir7SHD9-D-pyIw-6tWVu-lTyitPWncIdtjFyQ/s1600/image006.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjOMVZjgqPEhjQFOLklZ2Ppxu2AZWknuQsP4UaAChJYzUVpmocEIc4rduzkdLPaLGs4JlfNGrXJXMN7P9tdnHcIOaIMp7pC_MGJZNRVir7SHD9-D-pyIw-6tWVu-lTyitPWncIdtjFyQ/s400/image006.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-XzktxZUSplrPOgHQjxzu4FouPL_MkyfiqgxitCAx_qg82wyfFacnUgX2Z0TUwcYFdrk2ZhOpRIQOur6yeGW574w-JWxJFFh-JzOPOsoGqa1cnG5Mk79R7Lrx22UJot1mHylr71vymA/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="141" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-XzktxZUSplrPOgHQjxzu4FouPL_MkyfiqgxitCAx_qg82wyfFacnUgX2Z0TUwcYFdrk2ZhOpRIQOur6yeGW574w-JWxJFFh-JzOPOsoGqa1cnG5Mk79R7Lrx22UJot1mHylr71vymA/s400/image008.png" width="400" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcK5U_61Y-QObxDcTWgUPEb9nbzDs9w8kU3vnrK2zTCr0vJWiWIcIu3kHjHM-rFsjixFzW-a9iq4lQ548lKuoFN7f5FIw_lSqVAMqWK5GNADPU9h9DRAkpkyVYDvXLMCIH7qu8StjFyw/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcK5U_61Y-QObxDcTWgUPEb9nbzDs9w8kU3vnrK2zTCr0vJWiWIcIu3kHjHM-rFsjixFzW-a9iq4lQ548lKuoFN7f5FIw_lSqVAMqWK5GNADPU9h9DRAkpkyVYDvXLMCIH7qu8StjFyw/s400/image010.png" width="400" /></a></div>
<div style="text-align: right;">
<br /></div>
<br />Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com0tag:blogger.com,1999:blog-13688231791541235.post-32574818232395838842012-02-20T13:47:00.000+02:002012-02-23T08:31:58.147+02:00“Wake up! Wake up!” (“Rage Against The Machine”)<span style="text-align: justify;">If you follow this blog and still haven’t experienced different gesture
games modalities by yourself then -mister- something </span><i style="text-align: justify;">surely</i><span style="text-align: justify;"> went wrong! Its all too easy to get everything up and
running on your home desktop – there should not be any excuses </span><span style="font-family: Wingdings; text-align: justify;">J</span><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Today’s post features some technical clarifications (Mainly for readers new to the Kinect hacking community)<o:p></o:p></div>
<div class="MsoNormal">
<h1>
Get the HW</h1>
</div>
<h2>
<o:p></o:p></h2>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXlwmmVZp731DxVyq2Tf8XIPTpNeZ5dDlY7q9JYPxPKqbd09gM3Myn6Nt9QK8piGltsX9d9441kzge_VI_A2wXUlCH21wuYASFZ0Eh6Cyw0-v4Ni-Jjr8SW5gmUhBOUFRnSPBS5nZntw/s1600/image001.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXlwmmVZp731DxVyq2Tf8XIPTpNeZ5dDlY7q9JYPxPKqbd09gM3Myn6Nt9QK8piGltsX9d9441kzge_VI_A2wXUlCH21wuYASFZ0Eh6Cyw0-v4Ni-Jjr8SW5gmUhBOUFRnSPBS5nZntw/s320/image001.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: -webkit-auto;">PrimeSense powered devices: Xtion and Kinect</span>
</td></tr>
</tbody></table>
Get yourself an off-the shelf openNI compliant depth sensor:
it can be either a Kinect or an ASUS Xtion. <o:p></o:p><br />
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i>Amazingly, until recently such equipment was considered an ultra-high-end piece of technology – now the Kinect is out, you buy it online for around 150$...<o:p></o:p></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Purchase links:<o:p></o:p></div>
<div class="MsoNormal">
</div>
<ul>
<li>Kinect:</li>
<ul>
<li><a href="http://www.amazon.com/Kinect-Sensor-Adventures-Xbox-360/dp/B002BSA298">http://www.amazon.com/Kinect-Sensor-Adventures-Xbox-360/dp/B002BSA298</a></li>
<li><a href="http://www.microsoftstore.com/store/msstore/en_US/pd/productID.216507400">http://www.microsoftstore.com/store/msstore/en_US/pd/productID.216507400</a></li>
</ul>
<li>Xtion:</li>
<ul>
<li><a href="http://event.asus.com/wavi/product/WAVI_Pro.aspx">http://event.asus.com/wavi/product/WAVI_Pro.aspx</a></li>
<li><a href="http://www.amazon.co.uk/90IW0122-B01UA-XtionPro-Motion-Sensing-Solution/dp/B005UHB8EK/ref=pd_sim_sbs_computers_1/278-0899635-1192844">http://www.amazon.co.uk/90IW0122-B01UA-XtionPro-Motion-Sensing-Solution/dp/B005UHB8EK/ref=pd_sim_sbs_computers_1/278-0899635-1192844</a></li>
</ul>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<h1>
Drivers<o:p></o:p></h1>
<div class="MsoNormal">
You will need openNI, Nite and, <i>unless you are the proud owner of the Xtion</i>, also SensorKinect<o:p></o:p></div>
<div class="MsoNormal">
</div>
<ul>
<li>OpenNI</li>
<ul>
<li>An open source framework and APIs for Natural Interaction
(Backed mainly by PrimeSense)</li>
<li>For more info: <a href="http://openni.org/">http://openni.org/</a></li>
</ul>
<li>Nite:</li>
<ul>
<li>An openNI compliant computer vision middleware, free for users
of PrimeSense based sensors (Like Kinect). Nite gives full body tracking, hand
tracking, user segmentation and more.</li>
</ul>
<li>SensorKinect:</li>
<ul>
<li>An openNI compliant Kinect sensor – that will feed the depth
stream to the Nite computer vision algorithms.</li>
</ul>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A package of openNI, Nite and Xtion sensor driver, can be downloaded at:<o:p></o:p></div>
<div class="MsoNormal">
<br />
<ul>
<li><a href="http://www.openni.org/Downloads/OpenNIModules.aspx">http://www.openni.org/Downloads/OpenNIModules.aspx</a><br />Choose:</li>
<ul>
<li>OpenNI Compliant Middleware </li>
<li>Binaries</li>
<li>Stable</li>
<li>PrimeSense Unity Wrapper Stable Build v0.9.7.4</li>
</ul>
</ul>
</div>
<div class="MsoNormal">
Sensor Kinect win32 download:<o:p></o:p></div>
<div class="MsoNormal">
<ul>
<li><a href="https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Win32-v5.1.0.25.msi?raw=true">https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Win32-v5.1.0.25.msi?raw=true</a></li>
</ul>
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Sensor Kinect for other platforms (If needed)<o:p></o:p></div>
<div class="MsoNormal">
<br />
<ul>
<li><a href="https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Linux32-v5.1.0.25.tar.bz2?raw=true">https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Linux32-v5.1.0.25.tar.bz2?raw=true</a></li>
<li><a href="https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Linux64-v5.1.0.25.tar.bz2?raw=true">https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Linux64-v5.1.0.25.tar.bz2?raw=true</a></li>
<li><a href="https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-MacOSX-v5.1.0.25.tar.bz2?raw=true">https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-MacOSX-v5.1.0.25.tar.bz2?raw=true</a></li>
<li><a href="https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Win64-v5.1.0.25.msi?raw=true">https://github.com/avin2/SensorKinect/blob/unstable/Bin/SensorKinect091-Bin-Win64-v5.1.0.25.msi?raw=true</a></li>
</ul>
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<h1>
Unity<o:p></o:p></h1>
<div class="MsoNormal" style="text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD5Xo-10vpIj9iW0vgPBVAfN0yVVL7hKfu9cblH3Ve6Q7GY2Pf4QZfdTIPt4VgrnGFbPblLtsZjNU1aXLszid1aBblC9kde-fKIiXAKGlDKLHqhzoBGahNEDu4AlCztGnydyHLrI5g0A/s1600/image004.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD5Xo-10vpIj9iW0vgPBVAfN0yVVL7hKfu9cblH3Ve6Q7GY2Pf4QZfdTIPt4VgrnGFbPblLtsZjNU1aXLszid1aBblC9kde-fKIiXAKGlDKLHqhzoBGahNEDu4AlCztGnydyHLrI5g0A/s320/image004.png" width="285" /></a>In general: I highly recommend getting to know Unity. This
game engine has recently gained enormous momentum, due to many well-made
aspects: from its amazing IDE and workflow to its equally impressive cross
platform nature. Even the business model is impressive – you can start for
free!<o:p></o:p></div>
<div class="MsoNormal">
<a href="http://unity3d.com/unity/download/">http://unity3d.com/unity/download/</a><o:p></o:p></div>
<h1>
OpenNI Arena <o:p></o:p></h1>
<div>
</div>
<div class="MsoNormal" style="text-align: justify;">
A part of the openNI website. Basically it’s all free
downloads, many of which comes with full sources. You may register freely,
enjoy the available content and upload your own demos!<o:p></o:p></div>
<div class="MsoNormal">
<a href="http://arena.openni.org/">http://arena.openni.org/</a><o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<h1>
AngryBotsNI<o:p></o:p></h1>
<div class="MsoNormal" style="text-align: justify;">
Based on Unity3D’s AngryBots sample project, this is our concepts playground. Don’t be tricked to think this is just another
example. Inside you can find many game modalities, and experiments. Current version demonstrates: <a href="http://michagalor.blogspot.com/2012/01/part-1-opening-and-on-body-items.html">On
Body</a> Items, <a href="http://michagalor.blogspot.com/2012/02/part-3-shooting.html">Shooting</a>,
<a href="http://michagalor.blogspot.com/2012/01/part-2-pov-and-basic-scenes.html">POV</a>
changes, <a href="http://michagalor.blogspot.com/2012/02/part-4-clone-wars.html">cloning</a>,
etc..<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br />
<div class="MsoNormal">
AngryBotsNI sources and binaries are freely available in the openNI Arena<o:p></o:p></div>
<div class="MsoNormal">
<a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=583">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=583</a><i><o:p></o:p></i></div>
<div class="MsoNormal">
<br class="Apple-interchange-newline" /></div>
<br />
The guys keep evolving this – and coming versions will also
include <a href="http://michagalor.blogspot.com/2012/02/part-5-navigation.html">walking
schemes</a>, flying, gliding and more - so stay tuned!<o:p></o:p></div>
<div class="MsoNormal">
<br />
<div style="text-align: center;">
(Credits for this work belong to Len Zhong, Geva Tal and Ran Shani - thanks guys!)
</div>
<br /></div>
<div class="MsoNormal">
<div style="text-align: justify;">
<i><span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"><b>If you are serious in getting into gesture gaming – I
suggest downloading it and going over the various demonstrated
experiences. I can easily imagine how picking and polishing the right modalities, can combine with your original assets and game design, into a really
excellent – non casual game.</b></span><o:p></o:p></i></div>
</div>
<div style="text-align: center;">
<div style="text-align: -webkit-auto;">
</div>
</div>
<object style="height: 390px; width: 640px;"><param name="movie" value="http://www.youtube.com/v/OgQqy11fesU?version=3&feature=player_detailpage">
<param name="allowFullScreen" value="true">
<param name="allowScriptAccess" value="always">
<embed src="http://www.youtube.com/v/OgQqy11fesU?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object>
<BR/>
<BR/>
<BR/>
<br />
<div style="text-align: center;">
<div style="text-align: left;">
<span style="font-size: large;"><b>Few of the many examples found in openNI arena:</b></span></div>
<span style="font-size: large;"><b><br /></b></span><br />
<span style="font-size: large;"><b><br /></b></span></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/u0UKoPwaHwE?feature=player_embedded" width="640"></iframe>
Balloon Pop! / <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=146"><span style="color: windowtext; text-decoration: none;">SideKick </span></a></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<div style="text-align: center;">
<br /></div>
</div>
<div class="MsoNormal">
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/OX3mVp-AnXw?feature=player_embedded" width="640"></iframe>
ZenHero / <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=486"><span style="color: windowtext; text-decoration: none;">binaura </span></a><o:p></o:p></div>
</div>
<div class="MsoNormal">
<div style="text-align: center;">
<br /></div>
</div>
<div class="MsoNormal">
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/RUG-Uvq-J-w?feature=player_embedded" width="640"></iframe>
ar-ultra / <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=496"><span style="color: windowtext; text-decoration: none;">tomoto </span></a><o:p></o:p></div>
</div>
<div class="MsoNormal">
<div style="text-align: center;">
<br /></div>
</div>
<div class="MsoNormal">
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/NSq0S2XXuR4?feature=player_embedded" width="640"></iframe>
Fridge Frenzy! / <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=367">CurrentCircus </a></div>
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdWHtdoLlgt91NdEHJUuQp_E6OwZl29Hzvy7ZxbNoRAcqXCm8EsjuZb2Qn6rNO3PeZl5WRBm67Z_qebmlBI0w-9nTjZvpdBBqa9rwXmX_Qe6HpdZtcTjPNvrTQUnqC_WB7eg7VlEaPLQ/s1600/image008.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdWHtdoLlgt91NdEHJUuQp_E6OwZl29Hzvy7ZxbNoRAcqXCm8EsjuZb2Qn6rNO3PeZl5WRBm67Z_qebmlBI0w-9nTjZvpdBBqa9rwXmX_Qe6HpdZtcTjPNvrTQUnqC_WB7eg7VlEaPLQ/s320/image008.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: -webkit-auto;">TLE Dance Floor / </span><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=577" style="font-size: medium; text-align: -webkit-auto;">Eytan Majar </a>
</td></tr>
</tbody></table>
<div class="MsoNormal">
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMquGaW1TvmY5311M9X9tsWw3rkrcAcAZtr7GAfYr5ovyS6N14qHbccnm2sNMoidl-tcZMpCJbmqXABM9PhE0FmMtx7ghf68vGJxFCYRuV4QN9c6BF0SGzLa4Tj6iu4Q9pY1C347Lejw/s1600/image006.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMquGaW1TvmY5311M9X9tsWw3rkrcAcAZtr7GAfYr5ovyS6N14qHbccnm2sNMoidl-tcZMpCJbmqXABM9PhE0FmMtx7ghf68vGJxFCYRuV4QN9c6BF0SGzLa4Tj6iu4Q9pY1C347Lejw/s320/image006.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: -webkit-auto;">Body Measurement Tool / </span><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=344" style="font-size: medium; text-align: -webkit-auto;">CurrentCircus </a></td></tr>
</tbody></table>
</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
<br /></div>
<div class="MsoNormal">
<div style="text-align: center;">
<br /></div>
</div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com0tag:blogger.com,1999:blog-13688231791541235.post-418564078380852092012-02-12T16:33:00.001+02:002012-02-20T10:31:32.300+02:00Part 7: “Me Tarzan, You Jane?”<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="text-align: -webkit-auto;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF3QyDYyg-Ol88At5NpUnXkOx_r7XGgczjr0QszE3dMcunqT9OaL7YgQLmMjaUrgYCtpyt-R6N61tzFr5u2TJJSWXu4sQcq-fEbZfZ4Lw__sOb-c1HgiZu4dcoR9u3DutkoHba1HCtzA/s1600/JohnnyCab.jpg" imageanchor="1" style="font-family: Calibri, sans-serif; font-size: 15px; line-height: 17px; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF3QyDYyg-Ol88At5NpUnXkOx_r7XGgczjr0QszE3dMcunqT9OaL7YgQLmMjaUrgYCtpyt-R6N61tzFr5u2TJJSWXu4sQcq-fEbZfZ4Lw__sOb-c1HgiZu4dcoR9u3DutkoHba1HCtzA/s1600/JohnnyCab.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; font-family: Calibri, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;">“Johnny-Cab” / Total Recall (1990)</span>
</td></tr>
</tbody></table>
<br />
<b><span style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px;">Tarzan the Ape Man (</span><a href="http://www.imdb.com/year/1932/" style="color: purple; font-family: Cambria, serif; font-size: 13pt; line-height: 19px;"><span style="color: #4f81bd; text-decoration: none;">1932</span></a><span style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px;">)</span></b></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<i>From <span class="SpellE">IMDb</span>:</i></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivP3Dp0mYyhP3iZHsxtu76uXhQUQ8BY2wphuUMZ8b9apsQlZiKA4oxf8BRL9xaNuxCGFVG4kj13xPaYeMYVV_4VWfRkygwCpOFO15TLUTkdctH_gkcWfEfyjMNiv4kujTGrn9mjmCxDw/s1600/image002.jpg" imageanchor="1" style="font-size: medium; font-weight: normal; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEivP3Dp0mYyhP3iZHsxtu76uXhQUQ8BY2wphuUMZ8b9apsQlZiKA4oxf8BRL9xaNuxCGFVG4kj13xPaYeMYVV_4VWfRkygwCpOFO15TLUTkdctH_gkcWfEfyjMNiv4kujTGrn9mjmCxDw/s1600/image002.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; font-family: Calibri, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;">Tarzan the Ape Man (</span><a href="http://www.imdb.com/year/1932/" style="background-color: white; color: purple; font-family: Calibri, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;"><span style="color: windowtext; text-decoration: none;">1932</span></a><span style="background-color: white; font-family: Calibri, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;">)</span>
</td></tr>
</tbody></table>
<i><span style="background-attachment: initial; background-clip: initial; background-color: #f6f6f5; background-image: initial; background-origin: initial; color: #333333; font-family: Verdana, sans-serif; font-size: 10pt;">…At no point in this movie is the line "Me Tarzan, you Jane" spoken. When Jane and Tarzan meet, it is she who initiates the verbal exchange, repeatedly indicating herself and giving her name until he repeats it. She then points to him, indicating that she wants to know if there's a word for <span class="GramE">who</span> he is as "Jane" is the word for who she is, until eventually he understands and says, "Tarzan."<span class="apple-converted-space"> </span></span><o:p></o:p></i></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
It seems human communication combines words and gestures – could Tarzan and Jane communicate on voice only? And how did he <span class="GramE">got</span> that cool hair-cut living in the jungle? Man – it does not make any sense<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-family: 'Times New Roman'; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqlizz1LoAo2zPy3dxpmqmeMoHJI7Slwcm2rjSZyt_V5IvGk_Nw93TYWajQmTbEz62TOUOpRR_4acUJdBsX9ZjaEt1B-oIuwkpEAUdEht3371ItA-zNCQNds-dn6uTIqxX-u6SA9IwAw/s1600/image008.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqlizz1LoAo2zPy3dxpmqmeMoHJI7Slwcm2rjSZyt_V5IvGk_Nw93TYWajQmTbEz62TOUOpRR_4acUJdBsX9ZjaEt1B-oIuwkpEAUdEht3371ItA-zNCQNds-dn6uTIqxX-u6SA9IwAw/s1600/image008.gif" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="background-color: white; font-family: Calibri, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;">Jungle Hunt (1982) …totally unrelated sorry</span><span style="background-color: white; font-family: Calibri, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;"> </span><span style="background-color: white; font-family: Wingdings; font-size: 14px; line-height: 22px; text-align: -webkit-auto;">J</span> </td></tr>
</tbody></table>
<br /></div>
<h2 style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 10pt; page-break-after: avoid;">
The story of the personal virtual assistance</h2>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
When I speak with people about natural user interfaces (NUI) some people just think that voice is the answer to everything. “After all – talking is the most natural thing, right?<span class="GramE">”.</span> Yes, talking is natural – no argue about it. The verbal language is only a part of the picture.</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; font-family: 'Times New Roman'; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv-k06Rkk_Laq7ZkSUFIPmpCs_0vcg4q3Q2gx6_C_RhGOfC5DxlEX5lgVW0V3ifZMGlaXXPyaMExe-y9EZLyelX7hfI6Lv4NvuK8d6AOXHkO59Lm6d7WEhTJ3bqomUkddBMTC1-N9Kfw/s1600/image007.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiv-k06Rkk_Laq7ZkSUFIPmpCs_0vcg4q3Q2gx6_C_RhGOfC5DxlEX5lgVW0V3ifZMGlaXXPyaMExe-y9EZLyelX7hfI6Lv4NvuK8d6AOXHkO59Lm6d7WEhTJ3bqomUkddBMTC1-N9Kfw/s1600/image007.png" style="cursor: move;" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><a href="http://www.imdb.com/title/tt0062622/" style="color: purple; font-family: Calibri, sans-serif; font-size: 14px; line-height: 16px; text-align: -webkit-auto;"><span style="color: windowtext; text-decoration: none;">2001: A Space Odyssey (1968)</span></a> </td></tr>
</tbody></table>
Sci-Fi has always been much into the idea of having a digital servant to help us in our day to day tasks. And many wonder how come this didn’t became our day to day common interface with machines. But the full story is its not only related about the accuracy of the speech recognition algorithms alone. Having a butler that follows you is not a pleasant experience if this butler is just incapable. In order to really help you – he needs to be able to do things, and he needs to have a solid context of his master and surrounding.<br />
<br class="Apple-interchange-newline" /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<i>Perhaps – this is the main reason why Apple’s <span class="SpellE">Siri</span> is actually meaningful: for the first time, the assistant has solid context and capabilities. <span class="SpellE">Siri</span> knows me, where I am, who the people in my contact list are, and she can send messages, add reminders and even solve algebra (With the help of Wolfram Alpha). Apple just managed to bring the context to an interesting level.</i></div>
<h2 style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 10pt; page-break-after: avoid;">
Gesture + Voice</h2>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Adults use voice to communicate. But if you close your eyes – your comprehension level will drop significantly. We look at each other and use the whole body language when we communicate. In many cases – body language holds more information than the spoken word</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Imagine you go to shopping – when you will be asked which shoe you want you will probably just say ‘this one’. The communicated information is now encapsulated by your pointing gesture and surrounding context.</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Now - back to reality.</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Imagine an application that ask you which item you want to choose and you just point to it and say ‘this!<span class="GramE">’.</span> Hey – I don’t need even voice recognition for that! Just detecting the pointing gesture together with some synchronized vocal burst might be enough. And it will work in any language! (Just like Tarzan and Jane…). If you don’t give up on the decades of work done in speech recognition, you can simply use it to dramatically improve accuracy. Body language takes a huge part in our communication context.</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<h2 style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 10pt; page-break-after: avoid;">
Assistant vs. tool</h2>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Another way to look at modern life – is that we all want to be served. Just like kings of prior centauries. But everyone will be kings now!</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiyWLsiMtBk1z2Eqjoo5YubpYrpQX4a8tDMjX8CYC5eIJnEwaK_c9yjAKJ3pCHBGkmUs-dLn4oV2oaxYtQLJwQ1raCFwVxhZtlJ_7y32m1fQp-1DRZDWbXu1IClcYx_aBcEp1FuC78AA/s1600/image003.jpg" imageanchor="1" style="font-family: 'Times New Roman'; font-size: medium; line-height: normal; margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="148" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiyWLsiMtBk1z2Eqjoo5YubpYrpQX4a8tDMjX8CYC5eIJnEwaK_c9yjAKJ3pCHBGkmUs-dLn4oV2oaxYtQLJwQ1raCFwVxhZtlJ_7y32m1fQp-1DRZDWbXu1IClcYx_aBcEp1FuC78AA/s200/image003.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: Calibri, sans-serif; font-size: 14px; line-height: 16px; text-align: -webkit-auto;">A dining king</span>
</td></tr>
</tbody></table>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<i>So imagine the king and queen sit together to dine. They have like 5 cooks and 10 waiters. This surrounding staff is responsible to doing what is hard (IE: prepare a steak) or bringing what is out of reach. But if the food is on his plate, the king will prefer to take the fork and bring the food to his mouth by himself (Asking the servant to do it will be awkward and freaky)</i></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Yes – sometimes we prefer to do stuff ourselves. In such cases – we prefer to use tools.</div>
<object style="height: 390px; width: 640px;"><param name="movie" value="http://www.youtube.com/v/lq_cCgBIGoI?version=3&feature=player_detailpage">
<param name="allowFullScreen" value="true">
<param name="allowScriptAccess" value="always">
<embed src="http://www.youtube.com/v/lq_cCgBIGoI?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object>
<br />
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<div style="text-align: center;">
<div style="text-align: -webkit-auto;">
<br /></div>
</div>
</div>
<div class="MsoNormal" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17.25pt; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<span style="background-color: white; font-size: 11pt; line-height: 17.25pt;"> </span><span style="font-family: 'Times New Roman', serif; font-size: 24pt;">Making sounds while playing</span></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Actually – I could continue the philosophical MMI discussion for an hour – but you guys read this to have fun, right? Let’s bring on gaming!</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
There are only a few examples of game experiences that combine gestures and voice. Some examples:</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br />
<ul>
<li><span style="font-size: 11pt; line-height: 17px;">Upcoming mass effect lets you </span><a href="http://123kinect.com/first-impression-mass-effect-3-with-kinect/31486/" style="font-size: 11pt; line-height: 17px;">command your platoon using voice</a></li>
<li><span style="font-size: 11pt; line-height: 17px;">The small indie game</span><a href="http://www.sigmard.com/aliens-stole-my-beer/" style="font-size: 11pt; line-height: 17px;"> ‘Aliens Stole My Beer’</a><span style="font-size: 11pt; line-height: 17px;">, lets you shoot by shouting </span><span style="font-family: Wingdings; font-size: 11pt; line-height: 17px;">J</span></li>
</ul>
</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/AylM_p7KB5Y?feature=player_embedded" width="640"></iframe>
<br />
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<h2 style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 10pt; page-break-after: avoid;">
<span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;"><span style="color: black; font-family: Calibri, sans-serif; font-size: 14px; font-weight: normal; line-height: 16px;"><i>But let’s just stretch our imagination a bit furtherer…</i></span>
</span></h2>
<h2 style="color: #4f81bd; font-family: Cambria, serif; font-size: 13pt; line-height: 19px; margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 10pt; page-break-after: avoid;">
<span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;">"Bang <span class="SpellE">bang</span>, my baby shot me down"</span><i><o:p></o:p></i></h2>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<i>If you look at kids when they play around – you will notice many of their games are actually role playing. They imagine they are some hero and they try to imitate the appropriate comic gestures. It does not end with gestures –they are also imitating the sound effects!<o:p></o:p></i></div>
<div class="MsoListParagraphCxSpFirst" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 0.0001pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span dir="LTR"></span><i>Cowboys yell ‘bang <span class="SpellE">bang</span>’ as they shoot<o:p></o:p></i></div>
<div class="MsoListParagraphCxSpMiddle" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 0.0001pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span dir="LTR"></span><i>Kong-<span class="SpellE">fu</span> master make ‘<span class="SpellE">shhhh</span>, <span class="SpellE">ffff</span>’ to simulate impossibly quick karate chops<o:p></o:p></i></div>
<div class="MsoListParagraphCxSpLast" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span dir="LTR"></span><i>Wizards and other super-natural beings make all sort of <span class="GramE">sounds (</span>KAMEAMEA!)<o:p></o:p></i></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
By <span style="font-size: 11pt; line-height: 17px;">analyzing the audio stream, we can detect sounds coordinated to the gesture and give it some meaning:</span><br />
<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 0.0001pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span dir="LTR"></span>Karate chops and kicks gets powerful on many appropriate sounds: you see some white trail effects and it actually inflict more damage!<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 0.0001pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span dir="LTR"></span>A boxing hit explodes when the user say ‘boom’<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0.5in; margin-right: 0in; margin-top: 0in; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span dir="LTR"></span>A tennis racket get emphasized once the player shouts on the hit<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqmoB2QWuak_CHCn8aoh1C0rI_25mfYvqm28_cPR1WPiAF0dlUvNH2xiC6GWNMHHMJnzdVaS0tf7yHMDQarn40_br0yrUFzo0qGyyuNU85FzY2rPPOfIM5oKbFRhBCDHmBFYK1S_GKbg/s1600/image010.png" imageanchor="1" style="font-family: 'Times New Roman'; font-size: medium; line-height: normal; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqmoB2QWuak_CHCn8aoh1C0rI_25mfYvqm28_cPR1WPiAF0dlUvNH2xiC6GWNMHHMJnzdVaS0tf7yHMDQarn40_br0yrUFzo0qGyyuNU85FzY2rPPOfIM5oKbFRhBCDHmBFYK1S_GKbg/s1600/image010.png" /></a></div>
<br />
Instead of ‘collecting’ magic spells and scrolls, the master wizard can show you how to move and what to say in order to invoke magic!<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<i>This way you actually learn the magic spells that works in the imaginary virtual world of the game. The learning is practically done by the user’s mind – just like it is really imagined in the fantasy story!</i><o:p></o:p><br />
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZwOiXgILUTA31EHeytP4wUKsPYsKysb8utRqEfFK9YZnbGdNXOEYQdDFjILhv0gxmz79E8gr15wJQe69EgBhnEO9YhTAGX7vwGFDLcbNWxGc9iOkCbwrWbXOg884e7uFZ0nkodErJZA/s1600/image012.png" imageanchor="1" style="font-family: 'Times New Roman'; font-size: medium; line-height: normal; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZwOiXgILUTA31EHeytP4wUKsPYsKysb8utRqEfFK9YZnbGdNXOEYQdDFjILhv0gxmz79E8gr15wJQe69EgBhnEO9YhTAGX7vwGFDLcbNWxGc9iOkCbwrWbXOg884e7uFZ0nkodErJZA/s1600/image012.png" /></a>
</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br />
<br />
Another example is triggering ‘bullet time’ slow motion scene using sounds.</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
Imagine the player encounter many enemies coming towards him. He stands in a battle pose and start saying ‘ta-<span class="SpellE">ka</span>-ta-<span class="SpellE">ka</span>-ta-<span class="SpellE">ka</span>’. Then the system continues the ticking sounds. The enemies and world physics are now in slow motion. The player can easily hit all enemies. After a timeout – world time return to normal and all the enemies fall on the floor together!<o:p></o:p></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuuFmt-i9pgvICH0LiW0C8hbTWDoquLwAs4Mci_vDFrhBvv6QJf_chBomw2CMC1bFU3Pt9NW8Ac4yMT8ii28hZSBS9bjJHWKK59KPECgyHPN1LGVpt9n-Kjuuc2spQfByNVbGGSrJlZQ/s1600/image014.png" imageanchor="1" style="font-family: 'Times New Roman'; font-size: medium; line-height: normal; margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuuFmt-i9pgvICH0LiW0C8hbTWDoquLwAs4Mci_vDFrhBvv6QJf_chBomw2CMC1bFU3Pt9NW8Ac4yMT8ii28hZSBS9bjJHWKK59KPECgyHPN1LGVpt9n-Kjuuc2spQfByNVbGGSrJlZQ/s1600/image014.png" /></a>
</div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<br /></div>
<div class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 11pt; line-height: 17px; margin-bottom: 10pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com2tag:blogger.com,1999:blog-13688231791541235.post-65796627293259495012012-02-08T11:11:00.000+02:002012-02-15T11:36:11.317+02:00Part 6 : Flying<br />
<div class="MsoNormal" style="text-align: justify;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMC04R9UVtbJoGPYTSKzmhGvNHim18BuVt0iut9ok3w_AJo0WMj7X8gETlS0pOEq-dqvfYTym8Ekd-qHALpImoKlWX9ideDv5_85qSpwtXoblVIpHFA1oti-7z7XpQyczEwKWYMLBJcA/s1600/image002.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMC04R9UVtbJoGPYTSKzmhGvNHim18BuVt0iut9ok3w_AJo0WMj7X8gETlS0pOEq-dqvfYTym8Ekd-qHALpImoKlWX9ideDv5_85qSpwtXoblVIpHFA1oti-7z7XpQyczEwKWYMLBJcA/s200/image002.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Joust (1982)
</td></tr>
</tbody></table>
<b><i>One of the oldest cross cultural dreams involves flying. Humans
always looked up with envy at birds, as they fly across the sky. We learned to
build machines that help us compensate for our lack of wings or sufficient
strength, but boxing ourselves also means we lost the craved free flight experience.
And when we try to get it back, it is extremely dangerous – physics punish us
with the great gravitational pull of earth. Goodbye Newton – I am switching to my
virtual world!<o:p></o:p></i></b></div>
<br />
<br />
<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRy-5e0bTJXbwVPn87MXmx7LIfkRKsWTLK6dai6_VktlgPi5YeqGG1Rz-xsR1nt5TVAyXXqY5l8ejk5I3bxRSQ52M_kqt685WL51kZXUaEzldGhnthHRNrpNy_MfeTWJUN7Eo1BW0y0A/s1600/image004.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="202" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRy-5e0bTJXbwVPn87MXmx7LIfkRKsWTLK6dai6_VktlgPi5YeqGG1Rz-xsR1nt5TVAyXXqY5l8ejk5I3bxRSQ52M_kqt685WL51kZXUaEzldGhnthHRNrpNy_MfeTWJUN7Eo1BW0y0A/s320/image004.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><h2 style="background: white;">
<span style="color: windowtext; font-family: Calibri, sans-serif; font-size: 11pt; font-weight: normal; line-height: 115%;">Lilienthal’s “Fliegeberg</span><span style="font-weight: normal;">”<span style="font-size: small;"> (1894)</span></span><i><o:p></o:p></i></h2>
</td></tr>
</tbody></table>
<h2>
<span style="font-size: x-large;">
Gliding</span><o:p></o:p></h2>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1gGENZjqldGzds9qbIrFZQufPuAXC9GJ_coDyOaoxwXAnFSsIN0_VkHTdPBWzXW3PiuU3UYsh3Zu1j1yLNr5uFgQnWLww65UfQ5Dz-TdVyCM-rYIw4xrLubesNmGC1bHgE10SoEf66w/s1600/image010.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1gGENZjqldGzds9qbIrFZQufPuAXC9GJ_coDyOaoxwXAnFSsIN0_VkHTdPBWzXW3PiuU3UYsh3Zu1j1yLNr5uFgQnWLww65UfQ5Dz-TdVyCM-rYIw4xrLubesNmGC1bHgE10SoEf66w/s200/image010.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Para-Gliding</td></tr>
</tbody></table>
<div class="MsoNormal">
Let’s first discuss unpowered flight first.<o:p></o:p></div>
<br />
<div class="MsoNormal">
A natural full body gliding control can be inspired from free-fall
skydive sport<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Gliding forward by holding the hands backward<o:p></o:p></div>
<div class="MsoNormal">
Putting the hands closer to the body reduces the lift and
increase speed of fall (This can be related to the angle of the hands)<o:p></o:p></div>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; float: right; margin-bottom: 1em; text-align: center;"><tbody>
<tr><td><span style="margin-left: auto; margin-right: auto;"><a href="http://www.blogger.com/goog_154161161"><img border="0" height="110" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAjk9g_PODPAlsF6YwknXsITMmCo39j1h1uRGaKUHxls9p6Zc5gm98WSISayNZ4JGdDNoGYUVVNxANZGVPix0nNIHDnFSfljyyweYjPXH_wkwTowGLgOCSNmanq7hp-lJ59ipJySO3Aw/s200/image008.jpg" width="200" /></a></span></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><div class="MsoNormal">
<a href="http://www.sidekick.co.il/">SideKick’s SkyDive <o:p></o:p></a></div>
</td></tr>
</tbody></table>
Moving the hands down, reduces drag speed, and increase forward
motions, while spreading the arms slows down the gliding <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Regardless of the hand poses, actual body rotation should also
control bearing/pitch/yaw in parallel <o:p></o:p></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqib68VZT7s10dfjoCUEXRfmYgEMYRWDQgYM-TD1I1qHGg3KKECd0r5QY-g41_01jBpdZ3Sr5QjmoFD9r-KLXyECI5HegzrZvdlY97qVEp9NcZEt9qEJYq2CpxU-fcR92oBv3ka7NpSg/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="454" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqib68VZT7s10dfjoCUEXRfmYgEMYRWDQgYM-TD1I1qHGg3KKECd0r5QY-g41_01jBpdZ3Sr5QjmoFD9r-KLXyECI5HegzrZvdlY97qVEp9NcZEt9qEJYq2CpxU-fcR92oBv3ka7NpSg/s640/image007.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqib68VZT7s10dfjoCUEXRfmYgEMYRWDQgYM-TD1I1qHGg3KKECd0r5QY-g41_01jBpdZ3Sr5QjmoFD9r-KLXyECI5HegzrZvdlY97qVEp9NcZEt9qEJYq2CpxU-fcR92oBv3ka7NpSg/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqib68VZT7s10dfjoCUEXRfmYgEMYRWDQgYM-TD1I1qHGg3KKECd0r5QY-g41_01jBpdZ3Sr5QjmoFD9r-KLXyECI5HegzrZvdlY97qVEp9NcZEt9qEJYq2CpxU-fcR92oBv3ka7NpSg/s1600/image007.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><br />
<br />
<h2>
<span style="font-size: x-large;">
Flapping wings</span> <i><span style="font-size: 7pt; line-height: 115%;"><a href="http://en.wikipedia.org/wiki/Ornithopter">(<span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; font-family: Arial, sans-serif; font-weight: normal;">Ornithopter)</span></a></span></i></h2>
<h2>
<o:p></o:p></h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSJdUdcMEKq-uHXxKXfsRrdl_9SasaLJAZTqZvCJ9snZj4diMZFIFmY7xVpuE2B8-w1MhW089Co-hYM2yWHPwshxDVqyDiKy3gQS-rRKUbWUmgYC_gqLngrZojPemWE0I5qYM_T3ubwg/s1600/image013.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSJdUdcMEKq-uHXxKXfsRrdl_9SasaLJAZTqZvCJ9snZj4diMZFIFmY7xVpuE2B8-w1MhW089Co-hYM2yWHPwshxDVqyDiKy3gQS-rRKUbWUmgYC_gqLngrZojPemWE0I5qYM_T3ubwg/s1600/image013.png" /></a></div>
<div class="MsoNormal">
Moving the hands down creates lift. In our simplified model –
we can ignore the up motions (Unlike birds – it would be OK if don’t really
have to fold our ‘wings’ in the process) <o:p></o:p></div>
<div class="MsoNormal">
This lift gets stronger with the down motion <o:p></o:p></div>
<div class="MsoNormal">
<br />
Once airborne – the lift gets x3 stronger (So the best way
to liftoff, is to first jump together with a strong flapping motion) <o:p></o:p><br />
<br /></div>
<div class="MsoNormal">
The same mechanics can also support special super-jumps: if
the user simply jumps and uses his hands too – he will reach higher altitudes!<o:p></o:p></div>
<br />
<object style="height: 390px; width: 640px;"><param name="movie" value="http://www.youtube.com/v/vr602GCVcQI?version=3&feature=player_detailpage">
<param name="allowFullScreen" value="true">
<param name="allowScriptAccess" value="always">
<embed src="http://www.youtube.com/v/vr602GCVcQI?version=3&feature=player_detailpage" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></object>
<br />
<div style="text-align: center;">
<a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=415">Ice Glider Demo / Lumen</a></div>
<h1>
<span style="font-size: large;">
Building a physical model </span><o:p></o:p></h1>
<div class="MsoNormal">
<i>A full physical model is of course an overkill – but a carefully
thought simplified model can encapsulate the diversity of behaviors we require.
Going back to high-school physics books to refresh our knowledge of moments, torque,
and trigonometry can get us to a sufficient point (And to think you thought it
will never be useful…). <o:p></o:p></i></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYVD6OFNekoBZNyNoOFtU3vkYeu824TVmJIygLRqdkT5iTjRVkWro04N-RbnRuh1cqxaoDonh4E-1Nm57qzv6j3SmbuJU9vLeHgCu_ZX0UuFJYpnCyBtOBnB9vjFFR8ZgXvhE6fXLbyA/s1600/image015.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="436" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYVD6OFNekoBZNyNoOFtU3vkYeu824TVmJIygLRqdkT5iTjRVkWro04N-RbnRuh1cqxaoDonh4E-1Nm57qzv6j3SmbuJU9vLeHgCu_ZX0UuFJYpnCyBtOBnB9vjFFR8ZgXvhE6fXLbyA/s640/image015.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div class="MsoNormal">
We assume two rectangular ‘wings’, without any airfoil<o:p></o:p></div>
<div class="MsoNormal">
</div>
<ul>
<li>Lift forces are generated by the air-drag below the wings,
and in the upwards normal direction. The force magnitude is a factor of: the
combined virtual speed and the local hand motion, as well as the angle between
the wing and the air flow vector</li>
<li>Moving the hand s up changes the wing angle accordingly</li>
<li>Moving the hands forward/backward may also change the wing
rotation</li>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
You can freely add constants such as wing surface, drag
factor, and the universal gravity constant (g) – all those should be tuned until
you reach a fun experience, that matches the dynamics of the game.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i>And ppppplease: you don’t need HW accelerated Physics
engine to simulate a couple of trigonometric function per frame…<o:p></o:p></i></div>
<div class="MsoNormal">
<i></i><br />
<i></i></div>
<div class="MsoNormal">
</div>
<h1>
<span style="font-size: large;">
Rocketman!</span><o:p></o:p></h1>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtfv_3uLJnNv0eY3-wucsnHNYCVfy4bBdEliGaYl-yPb87hmoQii-rFf02tJItY2NhKCxcLvzVEnVhDgUZ454ai062hBWD0dFGveRCtF6ze_MAZTMlUYQ-ZK9aUjxlIhGM8MclUIeIRA/s1600/image016.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtfv_3uLJnNv0eY3-wucsnHNYCVfy4bBdEliGaYl-yPb87hmoQii-rFf02tJItY2NhKCxcLvzVEnVhDgUZ454ai062hBWD0dFGveRCtF6ze_MAZTMlUYQ-ZK9aUjxlIhGM8MclUIeIRA/s200/image016.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div class="MsoNormal">
The Flying Moonman / ahillel<span style="text-align: -webkit-auto;"> <o:p></o:p></span></div>
</td></tr>
</tbody></table>
<div class="MsoNormal">
Why bother flying with wings when we can have jets?<o:p></o:p></div>
<div class="MsoNormal">
Control model can simply use the hands as two elements that
can add drag<o:p></o:p></div>
<div class="MsoNormal">
This will translate to the following gestures:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<br />
<ul>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Slow down when spread
around</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Control pitch when moving hand
together forward and backwards</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Roll with one hand forward
and another backwards</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Change yaw/bearing by
spreading only one hand</span></li>
</ul>
<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<o:p></o:p></div>
<br />
<br />
<div style="text-align: center;">
<br /></div>
<div class="MsoNormal">
<div style="text-align: center;">
<object height="360" width="640"><param name="movie" value="https://www.youtube.com/v/h4arnATc04U&hl=en_US&feature=player_embedded&version=3">
</param>
<param name="allowFullScreen" value="true">
</param>
<param name="allowScriptAccess" value="always">
</param>
<embed src="https://www.youtube.com/v/h4arnATc04U&hl=en_US&feature=player_embedded&version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></embed></object>
"jetman" Yves Rossy<o:p></o:p></div>
</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<h1>
<span style="font-size: large;">Chicken and egg problem?</span><o:p></o:p></h1>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmm5lQWVA4UBpvsvIVLpyN_oLaOYpI9eP9SkAYzCzL1BQJnC2xCaL9h7teyxsixC8El_h-22SjoDXSHRchrHPulCn9RDWJULqgs2pZBCisBDdCMO3b16t5sIHkjEjXpYmKQ-MAvrNLA/s1600/image018.gif" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="90" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmm5lQWVA4UBpvsvIVLpyN_oLaOYpI9eP9SkAYzCzL1BQJnC2xCaL9h7teyxsixC8El_h-22SjoDXSHRchrHPulCn9RDWJULqgs2pZBCisBDdCMO3b16t5sIHkjEjXpYmKQ-MAvrNLA/s200/image018.gif" width="200" /></a></div>
<div class="MsoNormal">
<i>OK – so we can fly. It still does not mean it’s going to
be fun. If you play with any of the available bird/dragon controlling games,
you will discover most don’t really give you the satisfaction of flying. If it’s
too easy to fly – it just feels like another flight simulator. If it’s too hard to fly – we are back at <a href="http://michagalor.blogspot.com/2012/02/part-5-navigation.html">fitness
vs. fun equation of the previous post</a>. We need to find some special game
dynamics that will actually make it fun and challenging.<o:p></o:p></i></div>
<div class="MsoNormal">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFGBtH97cN_EhyphenhyphensulJaDcIXl0kv0hgPteYgHEKhgZmaNQ1mr60NFrqVHGLBXnsaclDQ1NlCtq9WpPyaPr-QTq1QCtkJz73g8wyQvqeATmT5thFVWVOJ1zfGFww9YjnYm9NbqN4tYFhQ/s1600/image003.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXFGBtH97cN_EhyphenhyphensulJaDcIXl0kv0hgPteYgHEKhgZmaNQ1mr60NFrqVHGLBXnsaclDQ1NlCtq9WpPyaPr-QTq1QCtkJz73g8wyQvqeATmT5thFVWVOJ1zfGFww9YjnYm9NbqN4tYFhQ/s320/image003.png" width="242" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><div class="MsoNormal">
Daedalus and Icarus<o:p></o:p></div>
</td></tr>
</tbody></table>
<i></i><br />
<i></i></div>
<div class="MsoNormal">
</div>
<ul>
<li>You can upgrade to allow flying by collecting/applying
limited magic. Imagine a game where you eat a special potion that turns your
hands into wings <span style="font-family: Wingdings;">à</span>
so your flapping lift gets amplified…</li>
<li>For the Darwinists, you can <i>evolve </i>and<i> </i>gradually
increase your wing surface (So you begin as a chicken and end as easily gliding
eagle – of course this has nothing to do with natural selection)</li>
<li>Alternately, you can create a game logic where everything is
possible without flying – by walking. You break the fitness/fun equation by only
allowing the user to fly a bit in order to jump higher / faster. The level
design should not encourage your players to overuse it.</li>
</ul>
<div>
<div class="MsoNormal">
<span style="font-size: large;"></span><br />
<span style="font-size: large;"></span></div>
<div class="MsoNormal">
<span style="font-size: large;">Feely downloadable examples from openNI Arena:</span><o:p></o:p></div>
<div class="MsoNormal">
</div>
<ul>
<li><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=539">Brooomzy / De-Panther : <br /><span style="color: windowtext; text-decoration: none;">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=539</span></a></li>
<li><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=522">The Flying Moonman / ahillel<br /><span style="color: windowtext; text-decoration: none;">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=522</span></a></li>
<li><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=415">Ice Glider / <span style="color: windowtext; text-decoration: none;">lumen </span><span style="color: windowtext; text-decoration: none;">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=415</span></a></li>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
</div>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<br />
<div class="MsoNormal">
<span style="font-size: large;">References:</span><o:p></o:p></div>
<div class="MsoNormal">
</div>
<ul>
<li><a href="http://www.ctie.monash.edu.au/hargrave/marey.html">Étienne-Jules Marey: http://www.ctie.monash.edu.au/hargrave/marey.html</a></li>
<li><a href="http://people.eku.edu/ritchisong/554notes3.html">Bird fly lecture: http://people.eku.edu/ritchisong/554notes3.html</a></li>
<li><a href="http://ornithopter.de/english/gait.htm">How Ornithopters Fly: http://ornithopter.de/english/gait.htm</a></li>
<li><a href="http://en.wikipedia.org/wiki/Otto_Lilienthal">Otto Lilienthal: http://en.wikipedia.org/wiki/Otto_Lilienthal</a></li>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com0tag:blogger.com,1999:blog-13688231791541235.post-89270648515972683552012-02-05T15:04:00.001+02:002012-02-15T11:36:11.320+02:00Part 5: Navigation<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb79bZUi6Qc1pFG7yX-xrAclmOuyQuLaw8WOw1Kpelyk_htLeNR9IPC0u0-gD6JJI26jBBsiONdvirHFyYoaIN-JZnznT6netx8sLBSjRHoHgkbslqh26Te4wOwxWAhDRCL0A5Jz6qDw/s1600/image001.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb79bZUi6Qc1pFG7yX-xrAclmOuyQuLaw8WOw1Kpelyk_htLeNR9IPC0u0-gD6JJI26jBBsiONdvirHFyYoaIN-JZnznT6netx8sLBSjRHoHgkbslqh26Te4wOwxWAhDRCL0A5Jz6qDw/s200/image001.jpg" width="200" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZX3oPYfes1zFeM8_68jYy8hvqBHhNDPF0myKh6uVi2y7rjQwju6jW9u9AOhcyEWNDrBUjsqldxfU-Gfr8xNHrUvDq1qQSIp1jQFzq2eedxiDKS5Aa-rnlaxbTJqFQx77lPsKchjc3Bw/s1600/image002.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZX3oPYfes1zFeM8_68jYy8hvqBHhNDPF0myKh6uVi2y7rjQwju6jW9u9AOhcyEWNDrBUjsqldxfU-Gfr8xNHrUvDq1qQSIp1jQFzq2eedxiDKS5Aa-rnlaxbTJqFQx77lPsKchjc3Bw/s200/image002.jpg" width="200" /></a><br />
<div class="MsoNormal">
<a href="http://michagalor.blogspot.com/2012/01/part-2-pov-and-basic-scenes.html">As I wrote in the 2<sup>nd</sup> post:</a>,
navigation in a 3D virtual universe is challenging. It’s not <i>that</i>
hard to implement a navigation scheme, but it is hard to design an enjoyable 3D level, that will not cause your players depth perception to be constantly challenged. Are we really living in a 3D universe?<br />
<br /></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<i>We spend most of our life on our feet. We don’t experience
the 3<sup>rd</sup> dimension in the same level birds or flying insect do. On
top of that – we are usually intimidated by full freedom of movement. Imagine
walking in a jungle where you can move anywhere freely. Can you feel secure
while constantly spending mental effort on choosing your path? Now imagine
there is a road you can follow. Maybe even a city with roads and sidewalks? Now
let’s think again on the ‘on-the-rails’ types of experiences discussed at the 2<sup>nd</sup>
post – and compare it to your last trip to IKEA. Yes – we sure all like rail
shopping </i><i><span style="font-family: Wingdings;">J</span><o:p></o:p></i></div>
<br />
<div class="MsoNormal">
But I already had a post with those excuses before – and the whole narrative
of my posts is definitely not claiming we all should remain in static camera /
rails games. Moving around in 3D virtual is challenging indeed – but it’s also
a very powerful experience. For gesture games – we will need to invent creative new
ways to make us feel on the move while remaining in front of the TV set.<o:p></o:p></div>
<h2>
Fun vs. fitness<o:p></o:p></h2>
<div class="MsoNormal">
Walking and running by jumping in place with alternate legs
is something you can experience in Kinect Sports, as a well as several other Kincet
games. It is quite effective in the experience sense – you feel as you are walking.
You even get tired. But if you are not into making fitness games, you should
consider need to find some ways to empower the user. In fiction – part of the
hero’s magic is easily achieving things that are considered hard or impossible.
You character imagined incredible fitness should probably allow him to walk
miles without giving it a second thought.<o:p></o:p><br />
<br /></div>
<div class="MsoNormal">
In this post I will discuss several schemes for walking. Not
all those schemes are fully tested – but their certainly worth the discussion<o:p></o:p></div>
<h2>
Torso tilt - walking and strafing</h2>
<h3>
<o:p></o:p></h3>
<div>
</div>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQymG_D6cuXulKPGbKX0FInVeBaZ5F8tnVYSmSP5Mz7ru6fnv7nObHZki-XvdFw571ubrG7AL_Rzh1LXEIN-nBOPfeLbhU3qBL_74zN3RKgK8AGNwG_8qmx5SdTPxv-w4KEyZWvFUXyg/s1600/image005.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQymG_D6cuXulKPGbKX0FInVeBaZ5F8tnVYSmSP5Mz7ru6fnv7nObHZki-XvdFw571ubrG7AL_Rzh1LXEIN-nBOPfeLbhU3qBL_74zN3RKgK8AGNwG_8qmx5SdTPxv-w4KEyZWvFUXyg/s320/image005.png" width="160" /></a>When the user’s torso is tilted above a certain angle –
motion in the appropriate direction begins. This is quite simple to implement
reliably, and you can also apply it to sideways strafes.<o:p></o:p></div>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9-EpkwT-IoxAQP7IBS-0nvk5XJi8basv8VGvU4IrqmtQlDw8ggJkYZLVmX9mCY4rEOZq79hZhIpwClxxjZZ89b5GqaR8K12_56rFaM2_laao4dPgB3Gs8_W5wr4IcwUmtSveT2cHfA/s1600/image006.png" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9-EpkwT-IoxAQP7IBS-0nvk5XJi8basv8VGvU4IrqmtQlDw8ggJkYZLVmX9mCY4rEOZq79hZhIpwClxxjZZ89b5GqaR8K12_56rFaM2_laao4dPgB3Gs8_W5wr4IcwUmtSveT2cHfA/s200/image006.png" width="156" /></a>The most problematic aspect of going with this scheme all
the way is that tedious and uncomfortable. The user will need to move his legs
in order maintain his balance, and when he will get lazy, he will begin to use
his back muscles and put high pressure on his spine.<o:p></o:p></div>
<div class="MsoNormal">
Down to level design – it is not recommended for cases where
the user is expected to walk a lot.<o:p></o:p></div>
<div class="MsoNormal">
If your game is sci-fi themed, you can use the jet-pack as a
nice metaphor that explains this scheme naturally: once the user decides to
power on the jets, his body tilt controls the motion.<o:p></o:p></div>
<br />
<h3>
Rotation</h3>
<h3>
<o:p></o:p></h3>
<div class="MsoNormal">
While literal movement in place is limited to the living-room
space; rotation in place is not. But apart from my 2<sup>nd</sup> grade
teacher, you will not enjoy the graphics if you reach a point where your back
is to the screen. We need to challenge with two problems: be able to continue facing
the screen after rotation and the camera angle changes.<o:p></o:p></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5s6KvCD7lG2j1YcKObEx5ugql8UjEMribTZoQ7xb-mdWmi4RMNmvb4KOtw2AIi4MWNIS_IoKcTgbEgIWwvzkYUTRxxUAbmEhwXgdYGWwKd3FvpiNJHEpGUaNA2dDYC6HAGwn9bvi8Tg/s1600/image008.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="138" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5s6KvCD7lG2j1YcKObEx5ugql8UjEMribTZoQ7xb-mdWmi4RMNmvb4KOtw2AIi4MWNIS_IoKcTgbEgIWwvzkYUTRxxUAbmEhwXgdYGWwKd3FvpiNJHEpGUaNA2dDYC6HAGwn9bvi8Tg/s320/image008.png" width="320" /></a></div>
<div class="MsoNormal">
Some simple solutions<o:p></o:p></div>
<div class="MsoNormal">
</div>
<ul>
<li>Use the torso tilt for rotation purposes instead of strafing</li>
<li>Begin automatic camera rotation to when the user’s torso bearing
passes a certain threshold.</li>
</ul>
<o:p></o:p><br />
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
Another possibility is ‘<b><i>asymmetric </i>rotation mapping</b>’.<o:p></o:p></div>
<div class="MsoNormal">
For the reference, let’s define the case of user facing the
TV as 0 degrees. Now the user can turn to right or left. Right turn is the
positive degrees change and left turn is negative. <o:p></o:p></div>
<div class="MsoNormal">
Let’s imagine the camera rotation happens only when the user’s
bearing changes <i>away</i> from 0 and ceases when it moves towards 0. The user
can rotation to any direction and maintain his <i>virtual</i> bearing when he
returns to face the screen.<o:p></o:p></div>
<div class="MsoNormal">
You can also multiply the user rotation by some factor when
moving ‘away’ from center bearing and creating a smaller scale on the return path
– it will all do the trick as long as it is asymmetric. <o:p></o:p></div>
<div class="MsoNormal">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMgdxqWRJn-D3i-HQWn26YhvPxlWP1E55dkzcfk2huaILaVa0AvYOeMrH5XimEHumkyV0aMYC9m-ATNAvVwlO29kQHz-O1CZSj3NaChy13oB8TD-RUht6XHzeg5v0g9s9_sM3t6uBnMA/s1600/image010.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMgdxqWRJn-D3i-HQWn26YhvPxlWP1E55dkzcfk2huaILaVa0AvYOeMrH5XimEHumkyV0aMYC9m-ATNAvVwlO29kQHz-O1CZSj3NaChy13oB8TD-RUht6XHzeg5v0g9s9_sM3t6uBnMA/s320/image010.png" width="320" /></a></div>
<br />
<h2>
In place walking<o:p></o:p></h2>
<div class="MsoNormal">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLvjy_QUN1_GTgMZhExnFU5neg7qFY6kpwIy8_PhZ2dHIJWf1Z-qeXnEXUBLP_qY6iG-OCobz3_gQVNo6JcAtaUOFpfj8Fiqv3cnNSXovf8reUYq4i6kxgqslYINTiaTnyceTSH963Yg/s1600/image011.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLvjy_QUN1_GTgMZhExnFU5neg7qFY6kpwIy8_PhZ2dHIJWf1Z-qeXnEXUBLP_qY6iG-OCobz3_gQVNo6JcAtaUOFpfj8Fiqv3cnNSXovf8reUYq4i6kxgqslYINTiaTnyceTSH963Yg/s1600/image011.png" /></a>Walking in place can be used to walk forward. If that is too
tedious (Fun or fitness?) you can reserve the actual walking in place to signal
on character running (So you don’t expect the user to walk all the time – but when
he does he get a gratifying empowerment by seeing his avatar running)<o:p></o:p></div>
<div class="MsoNormal">
Running is achieved by actually moving the legs up and down
– in a walk in place fashion<o:p></o:p></div>
<div class="MsoNormal">
To run forward, user need to raise legs alternately (left –
right – left – etc.)<o:p></o:p></div>
<div class="MsoNormal">
Optionally:<o:p></o:p></div>
<div class="MsoNormal">
To retreat quickly, the user can step in same leg (left –
left – left – etc.)<o:p></o:p></div>
<div class="MsoNormal">
Walking in place with one leg forward and another backward
rotates the avatar <o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLh2_F7IWMrhGou8p6BdakUqM7nqlq44F2kBUPRxlmfLuUwxmxB6bhAOM5cVVZ-KgGUGCJE2uwf1o0crdeI01eBVQQnfQvcX-2DU3XzlRx5EIBY8stPpqey_C598N9EUISs1ZagY2ITw/s1600/image013.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="108" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLh2_F7IWMrhGou8p6BdakUqM7nqlq44F2kBUPRxlmfLuUwxmxB6bhAOM5cVVZ-KgGUGCJE2uwf1o0crdeI01eBVQQnfQvcX-2DU3XzlRx5EIBY8stPpqey_C598N9EUISs1ZagY2ITw/s200/image013.png" width="200" /></a></div>
<br />
<br />
<h2>
Hand walking<o:p></o:p></h2>
<div class="MsoNormal">
When we walk naturally we also move our hands from side to
side to maintain balance <o:p></o:p></div>
<div class="MsoNormal">
This can be used to simulate walking instead of detecting
the legs motion<o:p></o:p></div>
<div class="MsoNormal">
This scheme and many other advanced contextual gesture
parsing is demonstrated in <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=570">Activate3D’s impressive ICM demo, downloadable inthe openNI Arena </a><o:p></o:p></div>
<div class="MsoNormal">
<br />
<br /></div>
<div class="MsoNormal">
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/VcLEqt1Rixo?feature=player_embedded" width="640"></iframe></div>
<h2>
Last words:<o:p></o:p></h2>
<div class="MsoNormal">
As mentioned in the opening to this post – navigation is a
big challenge. Some user might prefer one scheme over others. In example, the
user might feel natural and intuitive in the torso tilt scheme, but will not
enjoy using it for long periods. <o:p></o:p></div>
<div class="MsoNormal">
Sometimes – you can consider cascading several techniques,
and allowing more than one way to work:<o:p></o:p></div>
<div class="MsoNormal">
<br />
<ul>
<li>Tilt to walk, walk in place – to run</li>
<li>Both sideways tilt and asymmetric torso rotation</li>
<li>Walking and reaching the edges of the play area to begin
automatic walking.</li>
<li>Requiring a tilt or in place motion to initiate/cease automatic
walking, instead of asking the user to
maintain it</li>
</ul>
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="font-size: x-large;"><b><a href="http://michagalor.blogspot.com/2012/02/part-6-flying.html">Coming up next – Flying!</a></b></span><o:p></o:p></i></div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com10tag:blogger.com,1999:blog-13688231791541235.post-23743732692541216522012-02-02T22:18:00.000+02:002012-02-20T10:32:00.437+02:00Part 4: The Clone Wars!<div dir="rtl" style="text-align: right;" trbidi="on">
<div class="separator" dir="ltr" style="clear: both; text-align: center;">
</div>
<div style="text-align: left;">
</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOxjXLaDMG9ue8dn07azRwmBW6JrdynlLgD5jYNB8n8XrC3Zd5-jfBz2aNVwZj8ftnBf9kFTzFOC-yk6H9w_h7HBptmSWB3gy8DG_Cupuj0KPShhelGjHjTr2ZwbkF1biIggx1Rkh1oA/s1600/image002.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOxjXLaDMG9ue8dn07azRwmBW6JrdynlLgD5jYNB8n8XrC3Zd5-jfBz2aNVwZj8ftnBf9kFTzFOC-yk6H9w_h7HBptmSWB3gy8DG_Cupuj0KPShhelGjHjTr2ZwbkF1biIggx1Rkh1oA/s1600/image002.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Star Wars: - The Empire Strikes Back (1980)</td></tr>
</tbody></table>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvlp8ZYsU8Ahpr4b0kuUQ5nrT9puYNkKbGy5m53SO5H6e3jSAzRzQpsknReRNc37o2tNGStzHYicDds9UUGx_ICd63N_hOU7Q7v8TUUvLqzid0CrHdKKvcnBr1j_shTbKTLCkYSB-MA/s1600/image003.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-indent: 0px;"><br /></a><br />
<div style="text-align: left;">
</div>
<i><b>We like our own kind. </b></i><br />
<i>Our minds favor our offspring, which look similar to us, our family and
clan. This was curved by billions years of evolution – where natural selection
favored finding mates, and safety. Thanks to genetic engineering we will soon
need to face the social meaning of human cloning – and it might be scary.
Thanks to motion tracking algorithms and computer graphics – we can enjoy our
clones today!<o:p></o:p></i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Let’s first classify the cloning experience to two groups: <o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<br />
<ul style="text-align: left;">
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">‘<b>Collaboration experiences</b>’
getting empowerment from multiple copies of yourself that work together</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font-family: 'Times New Roman'; font-size: 7pt; font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">‘<b>Identifying experiences</b>’
seeing a version of yourself you can identify with</span></li>
</ul>
<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE4N1d3nOl_9uNy6YTpFqdJBn9ufhoTULBmp3doDqfU4qn40yAkcPkLBf9ExrvFA6mAPMT48FLUFC9ZucVGyeri4Ni7Ukb1rampngw-jTNvzpqskGGq8RgADgrcL55Igi8AIG1X7SfBg/s1600/image005.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="181" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiE4N1d3nOl_9uNy6YTpFqdJBn9ufhoTULBmp3doDqfU4qn40yAkcPkLBf9ExrvFA6mAPMT48FLUFC9ZucVGyeri4Ni7Ukb1rampngw-jTNvzpqskGGq8RgADgrcL55Igi8AIG1X7SfBg/s400/image005.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Matrix Reloaded (2003)</td></tr>
</tbody></table>
<h2 dir="ltr" style="text-align: left;">
Collaboration experiences</h2>
<h2 dir="ltr" style="text-align: left;">
<o:p></o:p></h2>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjayxO0ZhGIuPo8ncbi1_GAOhCsFGPyXQBAN2Lw-c0mRy2x0HKCLgPUZppWHS07Q3i6DIDxOfGPyBoAlQJWbslFra_LcagYjzghhMOu9yHqvurU9MeI8o7Q9lwFZb8cgnoDyUMR_Guo7w/s1600/image016.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjayxO0ZhGIuPo8ncbi1_GAOhCsFGPyXQBAN2Lw-c0mRy2x0HKCLgPUZppWHS07Q3i6DIDxOfGPyBoAlQJWbslFra_LcagYjzghhMOu9yHqvurU9MeI8o7Q9lwFZb8cgnoDyUMR_Guo7w/s200/image016.jpg" width="174" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"1942" Video Game (1984)</td></tr>
</tbody></table>
In computer games – this type of cloning is nothing new –
and you can find it as a collectible bonus in many old scrolling shooters. Once you collect it - you get more bombers/spaceships/other-collection-of-unrecognizable pixels (Back in the old days we called it graphics). all those fly with you, shoot with you - the odds just changed for the good guys!<br />
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs8VwCiP4018grDrhryfrwjN4f1uq6laDzWfNyeyEGi3jinskQKKQrSyW4NzdLoJeyDWBwT3ViRU2PBK3xGn2fIEYwkQF6D30bNYYU18XcWMw04khy-qBwd8lMW-5OPBK0a3NWrfw8jw/s1600/image021.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhs8VwCiP4018grDrhryfrwjN4f1uq6laDzWfNyeyEGi3jinskQKKQrSyW4NzdLoJeyDWBwT3ViRU2PBK3xGn2fIEYwkQF6D30bNYYU18XcWMw04khy-qBwd8lMW-5OPBK0a3NWrfw8jw/s200/image021.jpg" width="200" /></a></div>
In <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=586">AngyBotsNI</a>, this is demonstrated by raising your left
hand for a second. You can create as many clones as you want. You can dance with
them. But teleporting to a level with enemies, multiplying yourself and
shooting together gives a tremendously powerful emotional experience – that
might be somehow connected to our primates’ ancestors.<o:p></o:p></div>
<div class="separator" dir="ltr" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5DmcZ_w9BKtWEROY-1hlYslf1571MdW4MzOArAHyg_7071IHpRH4G019gZcA1rW1hFiOIs2h62WKNhK2JQrmF-ttCdpsXk751MuxWBSPgQCWftBiIpziW0PaLKaSf5C9KDq_qkTIIIw/s1600/image022.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="151" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5DmcZ_w9BKtWEROY-1hlYslf1571MdW4MzOArAHyg_7071IHpRH4G019gZcA1rW1hFiOIs2h62WKNhK2JQrmF-ttCdpsXk751MuxWBSPgQCWftBiIpziW0PaLKaSf5C9KDq_qkTIIIw/s200/image022.png" width="200" /></a></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
You see many copies of
yourself working with you and it is probably a similar to the experience of any clan of primates hunting together, or
fighting for survival.<o:p></o:p></div>
<h2 dir="ltr" style="text-align: left;">
</h2>
<h2 dir="ltr" style="text-align: left;">
</h2>
<h2 dir="ltr" style="text-align: left;">
<a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=586"><span style="background-color: white; color: #666666; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif; font-size: 14px; font-weight: normal; line-height: 15px;">AngryBotsNI: </span><span style="color: #888888; font-family: 'Trebuchet MS', Trebuchet, Verdana, sans-serif;"><span style="background-color: white; font-size: 14px; font-weight: normal; line-height: 15px;">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=586</span></span></a>
</h2>
<h2 dir="ltr" style="text-align: left;">
Identifying experiences<o:p></o:p></h2>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYEVuGPD2tGKoCJQVn5hANCsd54pfcjpI7kX3M9e4hzq1vuGT3rKsVZxlGX_rCTYILErai9M0MpXSZSJwM71ZT_jG-Gbe7wqIuOAXeItFs4GKI4GTSApXYFq5jHxMwgpv6Y9_7vfeEnw/s1600/image009.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="160" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYEVuGPD2tGKoCJQVn5hANCsd54pfcjpI7kX3M9e4hzq1vuGT3rKsVZxlGX_rCTYILErai9M0MpXSZSJwM71ZT_jG-Gbe7wqIuOAXeItFs4GKI4GTSApXYFq5jHxMwgpv6Y9_7vfeEnw/s320/image009.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Total Recall (1990)</td></tr>
</tbody></table>
<i>Some years ago, I worked in a company that developed a video
conference solution. During the development we had two PCs connected, sharing
video streams. One time – due to some horrible buffer management problem – the
video stream reached about 3 minutes delay. At some point of time – someone
entered the room and told me something that made me worried and disappointed.
He then left the room and my eyes were drawn to the screen. I saw the video of
myself sitting happily… I knew something bad was about to happen and I felt sorry
for myself when the whole scene repeated before my eyes again. </i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<i>Yes – it’s too
easy to identify with yourself!</i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<i><br /></i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK7ssCZH3T69daoPnAuAQnb_Ahhj-IiK8iQOZkp0mIVZuL-vsNCTRVwY1C4cYLN_EaMAkMq40MYXnl9BzFGdye_F_Li6KuqJtKsiz6wTKFI8t625R06q6jcRPMkNd4BUf180EYw6LWLw/s1600/image014.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="131" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgK7ssCZH3T69daoPnAuAQnb_Ahhj-IiK8iQOZkp0mIVZuL-vsNCTRVwY1C4cYLN_EaMAkMq40MYXnl9BzFGdye_F_Li6KuqJtKsiz6wTKFI8t625R06q6jcRPMkNd4BUf180EYw6LWLw/s400/image014.png" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">The Matrix Revolutions (2003)</td></tr>
</tbody></table>
But it’s not limited to your <i>exact</i> self. Anyone
having kids sometimes had similar feelings – seeing these little versions of
ourselves battling world of reality. It can be when you see them experience
social difficulties, or encounter hard challenges at school. It is extremely
hard to remain calm with it gets to violence.<br />
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
The identifying effect was vastly used in the cinema too –
but can we do anything to recreate it in computer games?<o:p></o:p><br />
<br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Imagine a game in which your whole motions are constantly
recorded. Sometimes you could spawn a clone of your avatar that will follow
your past movements.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Some ideas:<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbAZHlbvM5xd93sk6pFtWXEn-pynBC_6ougByFnoWEnGv3tDcTFZpHvSNa8KxQgoBxCUdfhYTlqRFs-RiS_d9nwfrCL24Emz2ZdQoUlqbNteHUHw-mZJNSmMAHsyp5MQRl2JGZiIb_6g/s1600/image019.png" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbAZHlbvM5xd93sk6pFtWXEn-pynBC_6ougByFnoWEnGv3tDcTFZpHvSNa8KxQgoBxCUdfhYTlqRFs-RiS_d9nwfrCL24Emz2ZdQoUlqbNteHUHw-mZJNSmMAHsyp5MQRl2JGZiIb_6g/s320/image019.png" width="320" /></a></div>
<ul style="text-align: left;">
<li>Imagine this is a controlled feature – when you can decide
to spawn the clones at a specific gesture. You can then use this as a tactical
move in battle or puzzles (Such as Portal)</li>
<li>It can also happen automatically when your avatar dies – you
have a chance to join your clone in his last battle, see yourself get beat or
maybe even change the outcome!</li>
</ul>
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<span style="font-size: x-large;"><i><a href="http://michagalor.blogspot.com/2012/02/part-5-navigation.html">Coming up next: Part5 - Navigation </a></i></span></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
</div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com1tag:blogger.com,1999:blog-13688231791541235.post-23497790334834521802012-02-01T14:53:00.000+02:002012-02-02T21:26:07.447+02:00Part 3: Shooting!<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div dir="rtl" style="text-align: right;" trbidi="on">
<div dir="ltr" style="text-align: left;">
</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<div style="text-align: left;">
Here it comes… the part you have all been waiting for –
Shooting!<o:p></o:p></div>
</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<i>For some reason – we are magnetized by the ability to fire
projectiles – and the combination of that with violence is, well, explosive.
But enough about crappy philosophy, shooting is an essential need for hard core
gaming experiences, so let’s explore it a bit.<o:p></o:p></i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<div class="separator" style="clear: both; text-align: left;">
<i><br /></i></div>
As briefly discussed in the <span id="goog_1013874339"></span><a href="http://michagalor.blogspot.com/2012/01/part-1-opening-and-on-body-items.html">opening <span id="goog_1013874340"></span>post</a>, the Kinect depth
resolution does not allow it to track fingers reliably when the player is
standing more than 2m away. For the discussion in this post, I will therefore
assume we need to find other means to pull the trigger.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Some may argue that it’s totally unacceptable, and pulling
the trigger with a finger is mandatory. In the fiction world of most action
movies, the heroes tend spraying around bullets in automatic mode. In reality –
of course – it is: A) Not efficient/accurate B) You will actually spray only if
someone else carries your ammunition. </div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Of course, games are more like the
movies. Back in the old days, some joysticks even had an ‘auto-fire’ switch –
to make it easier on the lazy gamer. My argument are: it might be acceptable to
find alternative to finger trigger firing, and single finger squeeze - single
shot is not a mandatory requirement for a non-casual games.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Let’s discuss several possible gestures for shooting and the
implementation considerations:<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<b>Single hand pistol<o:p></o:p></b></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWTywZvw98MAmf2IZDw2mOK1QaORWgr2O__eLop1DDafXZT2K9P3ijQ17PMF8wUEJ635j5i5mk97zgdgwBTVRt8-vJC0-yOv3PtSbxhBH_DmeYjQ19YdRFQSPEEHboiFF2QXM1f4XAeQ/s1600/Pistol.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWTywZvw98MAmf2IZDw2mOK1QaORWgr2O__eLop1DDafXZT2K9P3ijQ17PMF8wUEJ635j5i5mk97zgdgwBTVRt8-vJC0-yOv3PtSbxhBH_DmeYjQ19YdRFQSPEEHboiFF2QXM1f4XAeQ/s1600/Pistol.png" /></a>To release the trigger, the user emulates the recoil/kickback effect of a pistol, <o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
<ul style="text-align: left;">
<li>Since the same hand is used for aiming and triggering, this
scheme will not allow accurate ranged attacks.</li>
<li>The requirement from the algorithm to detect a back motion
creates a notable delay</li>
<li>The user needs to learn on the correct speed and length of a
short motion. Since it is too short to enjoy intermediate feedback – user will
probably suffer from exaggerated motion or missed gesture that might feel like
an unresponsive gun (Not fun in scenes you are under fire…)</li>
<li>It certainly puts too much the light on the finger tracking
limitation</li>
</ul>
</div>
<div dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<b>Dual hand pistol<o:p></o:p></b></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxRIGvlM0Z6cQOKsP8f6yaMJ0KJUbT4W8gnQUvbXJpulIzM9-Kk4k-jTjgaqkq-RnbvoZOm6XorX6NF8NdOiPU8KMjpXbeUZIM9Heu3Sxx01yMghENYMsRNP6m6pGKqV4Oh1dapX6z8Q/s1600/DualHandPistol.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxRIGvlM0Z6cQOKsP8f6yaMJ0KJUbT4W8gnQUvbXJpulIzM9-Kk4k-jTjgaqkq-RnbvoZOm6XorX6NF8NdOiPU8KMjpXbeUZIM9Heu3Sxx01yMghENYMsRNP6m6pGKqV4Oh1dapX6z8Q/s1600/DualHandPistol.png" /></a>Shooting a real pistol accurately requires two hand holding.
For the triggering, we tried a scheme where the hand holding the handle aims,
and bringing the 2<sup>nd</sup> hand starts auto-firing.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
In the movies, some westerns cowboys used the 2<sup>nd</sup>
hand to speed-up the hammer. This can also be emulated in gestures, by moving
then 2<sup>nd</sup> hand up/down or forward/backward behind the aiming hand.<o:p></o:p></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
</div>
<br />
<br />
<div class="MsoNormal" dir="ltr" style="text-align: left;">
While not obvious at first, there is a repeating problem in
all those possibilities: which is related to the <i>tracking </i>technology. Users
tend holding the aiming hand close to their body, and such poses are extremely
challenging for many computer vision algorithms. Getting inaccurate aim is
something you should expect and consider when choosing those schemes.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkSEhzNfcgDSOsI0CyU9mXKNCPfFiBbnGN2nwqVqXxHd5MKKV2GvF0NrvebDcgSc746UlazegDvYLxwbFa3WTOz9Opew6c5yFip4p3D_TLKwME51iJQMxTyo2DCnXTnsIB7Zrb-hrYBA/s1600/Rifle.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkSEhzNfcgDSOsI0CyU9mXKNCPfFiBbnGN2nwqVqXxHd5MKKV2GvF0NrvebDcgSc746UlazegDvYLxwbFa3WTOz9Opew6c5yFip4p3D_TLKwME51iJQMxTyo2DCnXTnsIB7Zrb-hrYBA/s1600/Rifle.png" /></a><b>Dual hand Rifle<o:p></o:p></b></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Rifles are much heavier then hand guns, and the natural
shooting pose involve two hands: one to hold the rifle weight, usually near the
far end of the gun, and another for squeezing the trigger. You can either fire
when the user moves his trigger hand back and forth, or begin auto-fire when
the 2<sup>nd</sup> hand gets close to the trigger.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Compared to pistol shooting, the aiming hand is relatively
far from the body – and thus reliably tracked<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
<br />
<br />
<br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<b>“To Infinity and beyond!”: The Buzz Light-year maneuver<o:p></o:p></b></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMDkQQWYDTNS9CY5wz6_QDfUn6xjVf0W3h49CS_4h2lhr6S0g1b4YZfrPZLNKCFSij8_gV5pgTS1y8Fuf58mQ4FGFyLFXLqgS9dCO8ETo7jjCs72VgOkyJiHUlbDL4WhsL0vyKBMNtoQ/s1600/BuzzLaser.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMDkQQWYDTNS9CY5wz6_QDfUn6xjVf0W3h49CS_4h2lhr6S0g1b4YZfrPZLNKCFSij8_gV5pgTS1y8Fuf58mQ4FGFyLFXLqgS9dCO8ETo7jjCs72VgOkyJiHUlbDL4WhsL0vyKBMNtoQ/s320/BuzzLaser.png" width="320" /></a></div>
Had he own a gun, Sheriff Woody would probably use the
pistol scheme – but his life friend Buzz has a much more advanced laser,
implanted directly above his<span dir="RTL"></span><span dir="RTL"></span><span dir="RTL" style="font-family: Arial, sans-serif;"><span dir="RTL"></span><span dir="RTL"></span> </span>forearm. For gesture gaming considerations, this scheme is quite
successful because the aiming hand is always straight in a ‘vision friendly’
pose. <o:p></o:p></div>
<div dir="ltr" style="text-align: left;">
</div>
<br />
<br />
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT8mG5GtBPXOl_VEuQw84C9SIGX0EQ4mdh_AvT7W-cSZ5yXgHsVK8kDv4_tIGAMV7nwcjXIuiK5gDMk7JI9r0Fm15pGTe4gX7QF0XeRfADf2Us4kHmBPKuYU_4y1aQ2VlGm8SvvRcdhQ/s1600/fire-icon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT8mG5GtBPXOl_VEuQw84C9SIGX0EQ4mdh_AvT7W-cSZ5yXgHsVK8kDv4_tIGAMV7nwcjXIuiK5gDMk7JI9r0Fm15pGTe4gX7QF0XeRfADf2Us4kHmBPKuYU_4y1aQ2VlGm8SvvRcdhQ/s200/fire-icon.png" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj68Ylm80cS45gVSOaXPQnIhnDTb64QAHbq8wAxHYsEFpnicqwhidbNnYxT67yEdRdj4KjDKq_lfLYtD6MeqA3GZhRYs0-9yhHtbMevh_w-9Bmwgr4QnizXddO44qO1yf8WJbLqGvyfZQ/s1600/The+real+Buzz.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj68Ylm80cS45gVSOaXPQnIhnDTb64QAHbq8wAxHYsEFpnicqwhidbNnYxT67yEdRdj4KjDKq_lfLYtD6MeqA3GZhRYs0-9yhHtbMevh_w-9Bmwgr4QnizXddO44qO1yf8WJbLqGvyfZQ/s1600/The+real+Buzz.jpg" /></a></div>
Buzz other abilities, such as foldable wings and rocket
boosters; definitely cry for someone to create a gesture game, any volunteers?<o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=586">AngryBotsNI </a>implements the Buzz Light-year Laser scheme<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<i>Coming up next: The Clone Wars!</i><o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<div style="text-align: left;">
<br /></div>
</div>
</div>
<a href="https://twitter.com/share" class="twitter-share-button" data-via="michagalor" data-size="large">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com6tag:blogger.com,1999:blog-13688231791541235.post-53958127528722659622012-01-31T16:46:00.000+02:002012-02-06T22:16:34.941+02:00Part 2 : POV and basic scenes<div id="fb-root">
</div>
<script>
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<br />
<div dir="rtl" style="text-align: right;" trbidi="on">
<div class="separator" dir="ltr" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" dir="ltr" style="clear: both; text-align: center;">
</div>
<div dir="ltr" style="text-align: left;">
<span style="font-family: inherit; font-size: large;"><b>Point Of View</b></span></div>
<h2 dir="ltr" style="text-align: left;">
<o:p></o:p></h2>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
It is quite common to use terms taken form spoken language
and storytelling as a metaphor for the game camera point of view. 1<sup>st</sup>
person shooters put you in the eyes of the character seeing your virtual hands
or weapon on the bottom of the screen. In 3<sup>rd</sup> person games you see
your avatar from behind. I usually use the term 2<sup>nd</sup> person
experience to looking at the front side of your character – in a mirror like
visualization.</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
At first 3<sup>rd</sup> person looks like an easy direction
for our gesture games (Especially if you consider the ‘On-Body’ ideas presented
in the <a href="http://michagalor.blogspot.com/2012/01/part-1-opening-and-on-body-items.html">previous post</a>) However –if your interaction also involve side facing
interaction, </div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
3<sup>rd</sup> person POV involved fundamental difficulties I
didn’t anticipate.</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
</div>
<div style="text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
If you assume the tracking system is based on data collected
from a front mounted camera (such as the Kinect and the most frequent
installation of the PrimeSense sensor). It means the best tracked limbs will be
those closer to the TV set. The leg and arm that are far from the set have high
probability to suffer from occlusion. Naturally – the tracking of occluded
limbs is less accurate – and highly depends on statistical pose models.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Let’s go back to the POV question – a 3<sup>rd</sup> person
representation will show the user the back side of his avatar. When side facing
– the occluded limb will be the most visible one – and will draw most of the
attention. <b>This fundamental effect is sometimes so strong that most players
will think something is wrong with the tracking algorithms.</b><o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
In 2<sup>nd</sup> person / mirror view, the non-occluded
limbs are the one also most visible to the user. The occluded limb inaccuracy
is easier to forgive, as it also seems occluded in the avatar’s rendering.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
I am not claiming at all that we should avoid 3<sup>rd</sup>
person completely – merely pointing out on the challenges involved, and the
considerations one should be aware of from the game design phase.<o:p></o:p></div>
<div dir="ltr" style="text-align: center;">
<br /></div>
<div dir="ltr" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-color: rgb(170, 170, 170); border-bottom-style: solid; border-bottom-width: 1pt; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; padding-top: 0in; text-align: left;">
<h1 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 1.2pt; margin-left: 0in; margin-right: 0in; margin-top: 0in; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; padding-top: 0in; text-align: left;">
<span style="font-family: Arial, sans-serif;"><span style="font-size: 25px; font-weight: normal;"><i><br /></i></span></span></h1>
</div>
<div dir="ltr" style="text-align: left;">
Some historical examples for 1st and 3rd person views:<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuwaLrI8mgM-Fz8N41OBVbUfMbPenNaeIeHRUlVyorPpALFeWYM6myBODqoB5P0Mtp2Bi-FCKhlTj7s49G3q-_RNyb69f3D-5vIp72bwOZ5HceMCmSF6UEqbgM9GIiIxrfPnnJJMtQtQ/s1600/MonsterMaze.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="163" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuwaLrI8mgM-Fz8N41OBVbUfMbPenNaeIeHRUlVyorPpALFeWYM6myBODqoB5P0Mtp2Bi-FCKhlTj7s49G3q-_RNyb69f3D-5vIp72bwOZ5HceMCmSF6UEqbgM9GIiIxrfPnnJJMtQtQ/s200/MonsterMaze.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="background-color: white; font-family: Arial, sans-serif; font-size: x-small;">1st person history: 3D Monster Maze (1981)</span>
</td></tr>
</tbody></table>
<h1 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 1.2pt; margin-left: 0in; margin-right: 0in; margin-top: 0in; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; padding-top: 0in; text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="font-size: 13px; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh91GzZ5SqKYzHw6kqRzNoF67JXRaKsbIelvk1jTmFF5TSOhJBi49rlaY4OTlr0x-Vjj3VD7VjDLj4pF0a8qO6buLY-ZDtlKHwoEMoVyrcWSxVfiu_3HrDxto1WvzHUAl6yYwrllQVBwg/s1600/CastleWolf3D.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh91GzZ5SqKYzHw6kqRzNoF67JXRaKsbIelvk1jTmFF5TSOhJBi49rlaY4OTlr0x-Vjj3VD7VjDLj4pF0a8qO6buLY-ZDtlKHwoEMoVyrcWSxVfiu_3HrDxto1WvzHUAl6yYwrllQVBwg/s200/CastleWolf3D.gif" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><h1 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; border-bottom-style: none; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 1.2pt; margin-left: 0in; margin-right: 0in; margin-top: 0in; padding-bottom: 0in; padding-left: 0in; padding-right: 0in; padding-top: 0in;">
<span style="font-family: Arial, sans-serif; font-weight: normal;"><span style="font-size: x-small;">1st person shooters history: Wolfenstein 3D (1992)</span></span></h1>
</td></tr>
</tbody></table>
<span style="font-family: Arial, sans-serif; font-size: x-small;"></span></h1>
<span style="font-family: Arial, sans-serif; font-size: x-small;"></span><br />
<span style="font-family: Arial, sans-serif; font-size: x-small;"></span></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghNAttNrzZvSA4h_TJdEuK5VsvcAktLYfzYUOmdw1KNJOFvy9KGqHlmb_WJX_hrnvpRRnosz7o_l_raWSObF3FhUf9LjJOGj9jdfei3RnH9NEd6_nfjhv799v6TfF9USiQpIouEpasQA/s1600/TombRider.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghNAttNrzZvSA4h_TJdEuK5VsvcAktLYfzYUOmdw1KNJOFvy9KGqHlmb_WJX_hrnvpRRnosz7o_l_raWSObF3FhUf9LjJOGj9jdfei3RnH9NEd6_nfjhv799v6TfF9USiQpIouEpasQA/s200/TombRider.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: left;">3rd person history: Tomb Raider 1996</span>
</td></tr>
</tbody></table>
<div dir="ltr" style="text-align: left;">
<br /></div>
<h2 dir="ltr" style="text-align: left;">
<span style="font-family: inherit;">Simple game scenes</span><o:p></o:p></h2>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
When people ask how you naturally walk forward in a gesture
game, I usually warn of the possibility of hitting the TV set. Navigation is
one of biggest challenges for 3D games in general – not only gesture games.
Regardless of the chosen paradigm; walking in a 3D virtual world, represented
on our 2D displays may be a very frustrating experience: you it’s hard to get a
good sense on the depth of the rendered items and scene walls. This is also why
so much 3D platform games sucks. Jumping to a higher platform and realizing it
is too far only after falling to a lake of lava is not an enjoyable experience!
At the end – only extremely talented level editors manage to create fun 3D
platformers. For this blog – let’s get lazy this time, and postpone the navigation
challenge to future posts…<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiopVTD0Qv3mVcSK5d_oSNLE1st_hKqPS_vURStFtWHBNnTNFf8R3lw4XWzGpmfn1h5DCFG-4sExeORAvUhwRsATPuNEfMx0LgVikdrOfKD2qEej2NbEh-VQCbH-qizy82Jeot6RoMV_Q/s1600/RailSketch.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="210" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiopVTD0Qv3mVcSK5d_oSNLE1st_hKqPS_vURStFtWHBNnTNFf8R3lw4XWzGpmfn1h5DCFG-4sExeORAvUhwRsATPuNEfMx0LgVikdrOfKD2qEej2NbEh-VQCbH-qizy82Jeot6RoMV_Q/s320/RailSketch.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: left;">Rail game</span></td></tr>
</tbody></table>
<br />
<br />
<div class="separator" dir="ltr" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbgC8Hr-xn6rqZde904vCMsjUbdnozMpw81rXbbcUAnuAF3FptaMoc2t6CGlamv7V7jBdkqHHCpsRsCZ_tYPqWohSG3j_oh-9Q7Hp2ajffElVXwhUqBcuQ9QULcGyvvXqf3oBC3-n2mQ/s1600/2ndPersonDance.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="217" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbgC8Hr-xn6rqZde904vCMsjUbdnozMpw81rXbbcUAnuAF3FptaMoc2t6CGlamv7V7jBdkqHHCpsRsCZ_tYPqWohSG3j_oh-9Q7Hp2ajffElVXwhUqBcuQ9QULcGyvvXqf3oBC3-n2mQ/s320/2ndPersonDance.png" width="320" /></a></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Actually – there are many fun experiences you can create
without actually dealing with the navigation problems:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" dir="ltr" style="text-align: left; text-indent: -0.25in;">
</div>
<ul dir="ltr" style="text-align: left;">
<li><span style="text-indent: -0.25in;">Static camera shooting
games where enemies pop out behind
cover, or come closer to the avatar to practice some martial art.</span></li>
<li><span style="text-indent: -0.25in;">On-the-rails’ shooters –
where the camera motion is predefined. Camera can stop when reaching enemies or
when the avatar is behind a cover and continue when level is cleared</span></li>
<li><span style="text-indent: -0.25in;">2</span><sup style="text-indent: -0.25in;">nd</sup><span style="text-indent: -0.25in;"> person
martial arts and melee combat</span></li>
<li><span style="text-indent: -0.25in;">2</span><sup style="text-indent: -0.25in;">nd</sup><span style="text-indent: -0.25in;"> person
dancing game</span></li>
</ul>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div dir="ltr" style="text-align: left;">
Some historical examples for static scene + on the rails:</div>
<div dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div dir="ltr" style="text-align: left;">
</div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuHOVkBWkSaC53T1YUB3okI6iwZxwRINiSAD3uZhxoRpmNPUTRKFHybKlU2oiudjL-sBqqHj3ZCPAb0eV4D5yK1gL7bw4PLErb0yhzZdIRjUaEn7enBT0FhHb2XYDM83VCWVP9ir45EA/s1600/Prohobition.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuHOVkBWkSaC53T1YUB3okI6iwZxwRINiSAD3uZhxoRpmNPUTRKFHybKlU2oiudjL-sBqqHj3ZCPAb0eV4D5yK1gL7bw4PLErb0yhzZdIRjUaEn7enBT0FhHb2XYDM83VCWVP9ir45EA/s200/Prohobition.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: left;">Static camera shooters history: Prohibition (1987)</span></td></tr>
</tbody></table>
<div dir="ltr" style="text-align: left;">
<br class="Apple-interchange-newline" /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXLS4Ao-8lhit73kcNJZ4JW8ImwAWWEZUqR28R1gZDqUmvoymllgup4q-akIGBdRaPCgLVxO1og57KxpYBJvGJfk2vtRjP9fcpgt0HvqI3Z-MS_ECjXI1ZxaAE8qGZ72Q8qyZE3hbefQ/s1600/OperationWolf.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXLS4Ao-8lhit73kcNJZ4JW8ImwAWWEZUqR28R1gZDqUmvoymllgup4q-akIGBdRaPCgLVxO1og57KxpYBJvGJfk2vtRjP9fcpgt0HvqI3Z-MS_ECjXI1ZxaAE8qGZ72Q8qyZE3hbefQ/s200/OperationWolf.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: left;">Static camera shooters history: </span> <span style="font-size: small; text-align: left;">Operation Wolf (1987)</span></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZlBd5u6Ko8EnTPAAG01w3SvMz_5WLIIxcVgk5ge1w2QLFoMJgHtQPB_NCVHhfwtrk0UI0qy9LAj92qvNlv6KUacbE6kc0LYvCuJwgMZ-f-KJtllFAjFt5v55tGxrQqkhfOz9Odz7dNA/s1600/OperationThunderbolt.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="150" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZlBd5u6Ko8EnTPAAG01w3SvMz_5WLIIxcVgk5ge1w2QLFoMJgHtQPB_NCVHhfwtrk0UI0qy9LAj92qvNlv6KUacbE6kc0LYvCuJwgMZ-f-KJtllFAjFt5v55tGxrQqkhfOz9Odz7dNA/s200/OperationThunderbolt.png" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="font-size: 13px;"><span style="font-size: small; text-align: left;">Rails history: Operation Thunderbolt (1988)</span></td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9hbdWKp3ln2BxW4e7BZLlgcGYNZSqwUQj1MBMc1ZcIYIxliYHWFkTEtJvGtQ6g4_ypR3oYU6dVWPDccZ_VyzABP2QHzmlXwJl5dAGf5blWB-G3EnHSonA2tiP0ujUnByaKVcn5BRmIg/s1600/HouseOfDead.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto; text-align: center;"><img border="0" height="149" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9hbdWKp3ln2BxW4e7BZLlgcGYNZSqwUQj1MBMc1ZcIYIxliYHWFkTEtJvGtQ6g4_ypR3oYU6dVWPDccZ_VyzABP2QHzmlXwJl5dAGf5blWB-G3EnHSonA2tiP0ujUnByaKVcn5BRmIg/s200/HouseOfDead.jpg" style="cursor: move;" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Rails History: House Of The Dead</td></tr>
</tbody></table>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
In <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=583">AngryBotsNI </a>– we tried to play with different POV
schemes:</div>
<ul dir="ltr" style="text-align: left;">
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">You begin in 2</span><sup style="text-indent: -0.25in;">nd</sup><span style="text-indent: -0.25in;">
person ‘get to know your avatar’</span></li>
<li><span style="text-indent: -0.25in;">Once you learn how to
teleport you can jump to different scenes or </span><i style="text-indent: -0.25in;">levels</i></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;"><span style="font: normal normal normal 7pt/normal 'Times New Roman';"> </span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Each level has different
POV, so you can experience also 3</span><sup style="text-indent: -0.25in;">rd</sup><span style="text-indent: -0.25in;"> person view</span></li>
</ul>
<div dir="ltr" style="text-align: left;">
<o:p></o:p></div>
<div dir="ltr" style="text-align: left;">
</div>
<div class="MsoListParagraphCxSpFirst" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<o:p></o:p></div>
<div dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5groXg0IhWVn2XnIbztRCT5ZoeIFj49VI61ls-CdvHmdeaz1-6gKaH9M4dBpJhDjvsaN0OUFP2XqoA9xnxoC-uq2XE3CmUxahyphenhyphen6QvdNfbM4gn18tnX_C7uD4mf-1j_XsfgdMd_NS5ZA/s1600/angryBotsNI-3rdPerson.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="165" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5groXg0IhWVn2XnIbztRCT5ZoeIFj49VI61ls-CdvHmdeaz1-6gKaH9M4dBpJhDjvsaN0OUFP2XqoA9xnxoC-uq2XE3CmUxahyphenhyphen6QvdNfbM4gn18tnX_C7uD4mf-1j_XsfgdMd_NS5ZA/s320/angryBotsNI-3rdPerson.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">AngryBotsNI 3rd person view</td></tr>
</tbody></table>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" dir="ltr" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3PIxQKh59oMvM1xqrP2mQT2ko1HJ9E2gIcAToS73ZDDxKyRawe4zSaAMS9qBYzyGP4IzWn9Fu8nvKORS_9d2P3MAYbW0y2P4ksGv2xoFgNKSaVb7lWthefP_5xiUrZwpWDeFfrPqoDg/s1600/angryBotsNI-2ndPerson.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3PIxQKh59oMvM1xqrP2mQT2ko1HJ9E2gIcAToS73ZDDxKyRawe4zSaAMS9qBYzyGP4IzWn9Fu8nvKORS_9d2P3MAYbW0y2P4ksGv2xoFgNKSaVb7lWthefP_5xiUrZwpWDeFfrPqoDg/s320/angryBotsNI-2ndPerson.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">AngryBotsNI 2nd person view</td></tr>
</tbody></table>
<div dir="ltr" style="text-align: left;">
<i><br /></i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<div style="text-align: left;">
<i><span style="font-size: large;"><a href="http://michagalor.blogspot.com/2012/02/part-3-shooting.html">Coming up next: Part 3 - Shooting!</a></span></i><o:p></o:p></div>
</div>
</div>
<a class="twitter-share-button" data-size="large" data-via="michagalor" href="https://twitter.com/share">Tweet</a>
<script>
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");
</script>
<br />
<div class="fb-like" data-send="true" data-show-faces="true" data-width="450">
</div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com1tag:blogger.com,1999:blog-13688231791541235.post-83417877617762958812012-01-31T11:26:00.000+02:002012-02-02T21:04:32.356+02:00Part 1: Opening and 'On-Body' Items<div id="fb-root"></div>
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div dir="rtl" style="text-align: right;" trbidi="on">
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal">
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Microsoft Kinect did exceptionally well in bringing full
body gesture gaming platform to the masses. The system consists of a 3D sensing
solution from PrimeSense, together with a fancy 4 microphones beam forming array,
speech recognition algorithms and top-notch computer vision algorithms running
on the Xbox. It’s not only HW and algorithms: Microsoft Studios division also
did a great job in bringing new experiences, such as those found in Kinect
Adventures, and newer interaction models found in some of the Kinect Fun Labs
(Check out Air Band!).<o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
But putting aside several success stories, such as Kinect
Sports, GunStringer, Halfbrick’s Fruit Ninja Kinect, Harmonix’s Dance Central;
the majority of the available Kinect games leave much to be desired. It looks
like gesture gaming creates ultra-casual experiences at best. In some cases –
it seems like it’s even a step backwards from the Nintendo Wii catalog. <o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Of course, current generation of the technology has its own
limitations – such as limited field of view (FOV) and less than finger
resolution. However – the fidelity of the available input is still light years
ahead of anything else we had in the past. <o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Until recently – the degrees of freedom available in the controller
was predefined – out of the scope of the game designer (Harmonix’s Guitar Hero
and Rock Band are of course an exception). The controller was something
pre-defined, by the console maker, the PC HW vendor, or by the OS (IE: If you
use a Windows machine – you can assume a keyboard and a 2 button wheal mouse). On
the other hand - endless degrees of freedom is not only a blessing –it takes tremendous
amount of design and research to define a successful new control scheme (Think
of how all the 1<sup>st</sup> person shooters, on the PC they converged to a
nearly identical keyboard mapping and mouse scheme)<o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwg8dmClqpRwIXuSp0uXsj1IAgNZ5Wvqnw43WQCJbb7b5-1MRTr_83zq4TtyaTG1IQnPtpkwEmWIpYAM5uBG5Q6j8hc1JVKqziUvFMua8KQd5oVhPR0dy-LSyHVjKiCkJg1cwDa4aQg/s1600/Atari2600+stick.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXwg8dmClqpRwIXuSp0uXsj1IAgNZ5Wvqnw43WQCJbb7b5-1MRTr_83zq4TtyaTG1IQnPtpkwEmWIpYAM5uBG5Q6j8hc1JVKqziUvFMua8KQd5oVhPR0dy-LSyHVjKiCkJg1cwDa4aQg/s200/Atari2600+stick.jpg" width="181" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">ATARI2600 Joystick</td></tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVmRhBXh6NFTzFczL4KWDZJEPG1DusV3CPIjn3FyxPwXaE9q2yovP9nRJHymJs4hJ8fTxDbw-hsm3_Qnm0BVexiQxhe8Msut0OJuTLYCFVnHW8T5BlbHIqy7mygDWyq2Gs0wXbQGSYyA/s1600/XBOX360+stick.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVmRhBXh6NFTzFczL4KWDZJEPG1DusV3CPIjn3FyxPwXaE9q2yovP9nRJHymJs4hJ8fTxDbw-hsm3_Qnm0BVexiQxhe8Msut0OJuTLYCFVnHW8T5BlbHIqy7mygDWyq2Gs0wXbQGSYyA/s200/XBOX360+stick.jpg" width="153" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">XBOX360 Controller</td></tr>
</tbody></table>
<i>Back in the 80s, Atari2600 featured a single button 8
direction Joystick and a peddle. The input was well defined and accessible by
both gamers and the rest of us. The NES added more buttons, but addressing the
gamer’s endless request for power, latest generations of the controllers found
in the Xbox and PlayStation feature 2 analog joysticks, 1 D-Pad, 4 action
buttons, and 4 triggers. They are master-pieces of design and ergonomics. If
you manage to get the hang of it you get exceptional level of control – most
probably exceeding those found in many professional markets and even military
devices. The F16 Joystick is years behind what the average teen uses to fly his
virtual battlefield!<o:p></o:p></i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt13xQ4cID0nlC3HmcS3cPq-u7hHYvd7Ek4rzX2LP8472Jtkk-P6z0LP6LNeowy2CFNfhTh2mAlHxo-ZyuU4SUir0AZV_lSgeXXHQ9yzlLlq_ifXo7qijduAwIYy-MH51mPvWDSoMiOA/s1600/PS+Move.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt13xQ4cID0nlC3HmcS3cPq-u7hHYvd7Ek4rzX2LP8472Jtkk-P6z0LP6LNeowy2CFNfhTh2mAlHxo-ZyuU4SUir0AZV_lSgeXXHQ9yzlLlq_ifXo7qijduAwIYy-MH51mPvWDSoMiOA/s200/PS+Move.jpg" width="111" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PS Move</td></tr>
</tbody></table>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8hl5UqWi3SD7ZHTyxYo-TcVxuJRgARYpZ5Dy14D8ecOtHPTsd1urIoupZU6WWJKJicVX3tLVtyJXT2tkBIHfgr9y05-E4zFYaTH7lQGKeLlbXWZjHKTY5QRMpzNzA9NK58uhYoXsNsw/s1600/XBOX+Kinect.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="125" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj8hl5UqWi3SD7ZHTyxYo-TcVxuJRgARYpZ5Dy14D8ecOtHPTsd1urIoupZU6WWJKJicVX3tLVtyJXT2tkBIHfgr9y05-E4zFYaTH7lQGKeLlbXWZjHKTY5QRMpzNzA9NK58uhYoXsNsw/s200/XBOX+Kinect.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">XBOX Kinect</td></tr>
</tbody></table>
The downside of this evolution is that it left behind the
majority of humanity. Those not interested that much in spending the time necessary
to master all the buttons and sticks have differentiated from those who do. We
call the two groups now ‘gamers’ and ‘casual gamers’. After my first play
experience with the Sony PS Move controller, I tried to compare it to Kinect
and had two main conclusions: “It’s better in that you have a button under your
pointing finger. But, its worst due all the rest of the buttons there … WTF!?” <o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Yes - I am old now. I don’t have patience to learn what to
press – it’s too much. I just keep pressing buttons until something happens.
But I certainly do not agree to be cast out of the gamers club!<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
One aspect of the GUI revolution was making the display
‘soft’. This means the application can alter the display according to its state
– to reflect the most useful controls at any given time. The contrast of an
analog mechanical gage might be better than the LCD representation, but the
benefits of being able to change it dynamically make it worth the sacrifice. The
gesture interfaces, NUI direction, are ‘softening’ the input device. You can
create a ‘virtual’ controller that will best suit the current application. You
have a wheel when you need to drive and a sword when you need to cut (Only
fruits – of course! Make salad not war!)<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Going back to the main topic – I believe it is well possible
to create responsive and challenging gesture games. Games that will be
really fun – and not only in ‘party mode’<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
Many people imagine gesture control as an interface in which users need to memorize
complicated gestures, that once detected trigger some kind of operation.
So – gestures are simply complicated full body encoding for the controller
buttons? Does not seem fun to my taste. I am much more in favor of gesture 1:1 <i>mapping,
</i>where the motions are analogically mapped to control aspects. <o:p></o:p><br />
<div style="text-align: center;">
<img src="http://arena.openni.org/images/openniLogo.png" />
</div>
</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
PrimeSense, as the provider of the 3D technology – created several
concept gaming interactions over the years. Thankfully – many of those demos are
available in the openNI Arena website. <o:p></o:p></div>
<div class="MsoNormal" dir="ltr">
Initial prototypes demonstrated boxing experience, as well
as basic body mapping – moving an Avatar in a boxed game area.<o:p></o:p><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><a href="http://www.blogger.com/goog_1169179238"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgEfYJ1CpU6rYt5vVhOZ9YnNOmKih08VWaUecjihE1-H9dKZgYYlF64cHM-xEOoXbHPHICYpq0XPRZhexg43zyDZKj8pc9PkYZsD3lsx4EnYfbjFld5lpbUVj0DdD8vcbRcVC91irSxA/s320/CKJ.jpg" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=528">CKJ</a></td></tr>
</tbody></table>
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><span style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><a href="http://www.blogger.com/goog_1169179233"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgF_w8mgsYv4Nw0DRoX7ALDyqMT2pZ0lvsInFL3VlzYCPlsURDQyfmk_UfUqvTks6GNbqSMilUmINHCvUolegr-3eivXtl2FRATaybLDuTZRVKCB1Q5TypQet4J0OuBSEWm_uhBnYarSA/s320/Boxing.png" width="320" /></a></span></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=477">Boxing</a></td></tr>
</tbody></table>
<br />
<br />
<br />
<ul style="text-align: left;">
<li>Boxing: <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=528">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=528</a></li>
<li>CKJ: <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=477">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=477</a></li>
</ul>
</div>
<br />
<h2 dir="ltr" style="text-align: left;">
</h2>
<h2 dir="ltr" style="text-align: left;">
</h2>
<h2 dir="ltr" style="text-align: left;">
</h2>
<h2 dir="ltr" style="text-align: left;">
</h2>
<h2 dir="ltr" style="text-align: left;">
<span style="font-size: large;">
Items on Body</span><o:p></o:p></h2>
<div>
Once skeleton tracking algorithms were stable enough – we also demonstrated full body tracking. Mapping the motion to the Ogre3D’s Sinbad character was an instant success – and not only due to the extremely good job made by the original modeler or the talented computer vision researchers. One could draw the swords Sinbad holds on his back – merely by bringing both hands behind your neck. Drawing the swords was an extremely pleasing experience. You could easily imagine how you could battle enemies attacking Sinbad (Even though – this demo does not have any enemies). This was the first demonstration of a concept in gesture game I call ‘Items on Body’
</div>
<iframe allowfullscreen="" frameborder="0" height="360" src="http://www.youtube.com/embed/O6xdopI9su4?feature=player_embedded" width="640"></iframe>
<br />
<div class="MsoNormal" dir="ltr" style="text-align: center;">
Sinbad<br />
<ul>
<li style="text-align: left;">SinbadNI: <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=466" style="text-align: left;">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=466</a></li>
</ul>
</div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=466"><o:p></o:p></a></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
There are several benefits to this approach:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" dir="ltr" style="text-align: left; text-indent: -0.25in;">
<br />
<ul style="text-align: left;">
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">You don’t need to memorize
gestures – as the interactions are defined by the visible items on your avatar.
It’s natural to touch what you see.</span></li>
<li><span style="font-family: Symbol; text-indent: -0.25in;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR" style="text-indent: -0.25in;"></span><span style="text-indent: -0.25in;">Since the interactions are mapped
to </span><i style="text-indent: -0.25in;">your</i><span style="text-indent: -0.25in;"> body – you don’t encounter depth perception problems often experienced
when trying to touch items in the virtual world. You can even enjoy ‘muscle memory’
once you know how to operate your items. The swords, in examples are always on
your back. In the heat of the battle you can keep your eyes on the enemies,
just as you would with real weapons you mastered</span></li>
</ul>
</div>
<div class="MsoNormal" dir="ltr" style="margin-left: 0.25in; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglA5-MjkhnZXcOYujgUUXhcy5V5TaO05wQpInBKf8zJWsf1uI8-L5tAKC-jmA0AjtRpmsu6n5pZtMDWCBD_kjI3WNsoISwIuwZzZ9Jp6REjd4gLiIVEa9dZd8pDrhes4GKnmb8YkgS3g/s1600/ItemsOnBody.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="331" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglA5-MjkhnZXcOYujgUUXhcy5V5TaO05wQpInBKf8zJWsf1uI8-L5tAKC-jmA0AjtRpmsu6n5pZtMDWCBD_kjI3WNsoISwIuwZzZ9Jp6REjd4gLiIVEa9dZd8pDrhes4GKnmb8YkgS3g/s400/ItemsOnBody.png" width="400" /></a><br />
<o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
This all sounds good and easy – but the reality is always
more challenging. To actually make it work, you will also need to deal with issues
of <b>retargeting </b>and <b>false activations</b><o:p></o:p><br />
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
In case the avatar model body proportions are significantly different
than those of the users, naive mapping the user’s skeleton joints to the avatar
will have undesired results. Imagine the user touching his head when the avatar’s
hands are much shorter. If you will implement the detection by a collision box
on the avatar – it will never be triggered. You can implement a collision box
on the user skeleton instead – but then you will sacrifice the learning curve,
as learning to interact with new items will not be according to the visible
interaction of the avatar’s hand with the item. This can be solved by smarter
<b>retargeting </b>algorithm that will take the proportions differences into account or
by scaling the model’s joints to match the user’s dimensions.<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br />
<b>False activations</b> are commonly related to the limitations of
the tracking algorithm, and its behavior on occlusion, complicated poses, or
motion blur. You can surely expect that the user’s hand will reach the item’s hot-zone
unintentionally. <o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
False triggering can be compensated by adding additional
activation requirements:<o:p></o:p></div>
<div class="MsoListParagraphCxSpFirst" dir="ltr" style="margin-left: 0.25in; text-align: left; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>Temporal requirement: A
short pause before triggering the item (During the pause there should be some
animation)<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="margin-left: 0.25in; text-align: left; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>Require two hands operation
(Like Sinbad's swords)<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="margin-left: 0.25in; text-align: left; text-indent: -0.25in;">
<span style="font-family: Symbol;">·<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>Add requirement of touching
and then moving in a certain direction<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="margin-left: 0.75in; text-align: left; text-indent: -0.25in;">
<span style="font-family: 'Courier New';">o<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>Examples:<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="margin-left: 1.25in; text-align: left; text-indent: -0.25in;">
<span style="font-family: Wingdings;">§<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>To remove the crown you
need to touch it and then raise your hand<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="margin-left: 1.25in; text-align: left; text-indent: -0.25in;">
<span style="font-family: Wingdings;">§<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>To remove sword, dagger or
arrow you need to touch and move in a sensible direction<o:p></o:p></div>
<div class="MsoListParagraphCxSpMiddle" dir="ltr" style="margin-left: 0.75in; text-align: left; text-indent: -0.25in;">
<span style="font-family: 'Courier New';">o<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>If after touching the hand
moved in another direction the operation is canceled<o:p></o:p></div>
<div class="MsoListParagraphCxSpLast" dir="ltr" style="margin-left: 0.75in; text-align: left;">
<span style="font-family: 'Courier New';">o<span style="font: normal normal normal 7pt/normal 'Times New Roman';">
</span></span><span dir="LTR"></span>One simple implementation
is defining two collision boxes for each item – and requiring the user to pass
through both in the right order to actually activate the item. As always – it is
highly recommended to add as many visual feedbacks to the correct operations (Popping
out the sword a bit, glowing and making sound)<o:p></o:p><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT1NpIhyphenhyphennJnSibtXlttNYsCZFgT7HDDX-LTfSgQU7dom-LypbzW46ro4dp_soGouDCNLnmOzV2WscdO77Q6tUvxRTNxXBA-2L67jmuLbpUhR8McZPFW8lgsUtMSjnuEUL-AGpYiDpPkw/s1600/Draw+sword.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="316" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjT1NpIhyphenhyphennJnSibtXlttNYsCZFgT7HDDX-LTfSgQU7dom-LypbzW46ro4dp_soGouDCNLnmOzV2WscdO77Q6tUvxRTNxXBA-2L67jmuLbpUhR8McZPFW8lgsUtMSjnuEUL-AGpYiDpPkw/s400/Draw+sword.png" width="400" /></a></div>
<br />
<br />
Some of those ideas are demonstrated in the new Unity3D integration example: AngryBotsNI<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNDJaEYTUUJ0A1NL5pxNpxubwxMRohxvfz37Iqa5kPFkz26S0-CCT0pYlZ8WhxYHdStWyzGESGxVQY1FzUl5PIcIOkFejjwx_QTL5ISiZjZFRsMRyqPjcU2qL2XKfa8meU8nAN3svJrw/s1600/angryBotsNI.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="315" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNDJaEYTUUJ0A1NL5pxNpxubwxMRohxvfz37Iqa5kPFkz26S0-CCT0pYlZ8WhxYHdStWyzGESGxVQY1FzUl5PIcIOkFejjwx_QTL5ISiZjZFRsMRyqPjcU2qL2XKfa8meU8nAN3svJrw/s400/angryBotsNI.png" width="400" /></a></td></tr>
<tr><td class="tr-caption">AngyBotsNI</td></tr>
</tbody></table>
<ul style="text-align: left;">
<li>AngryBotsNI: <a href="http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=586">http://arena.openni.org/OpenNIArena/Applications/ViewApp.aspx?app_id=586</a></li>
</ul>
</div>
<div class="MsoNormal" dir="ltr" style="margin-left: 0.25in; text-align: left;">
<o:p></o:p></div>
<div class="MsoNormal" dir="ltr" style="margin-left: 0.25in; text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<i><a href="http://michagalor.blogspot.com/2012/01/part-2-pov-and-basic-scenes.html"><span style="font-size: large;">Coming up next: Part 2 - POV and scene</span></a><o:p></o:p></i></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
<div class="MsoNormal" dir="ltr" style="text-align: left;">
<br /></div>
</div>
</div>
</div>
<a href="https://twitter.com/share" class="twitter-share-button" data-via="michagalor" data-size="large">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<div class="fb-like" data-send="true" data-width="450" data-show-faces="true"></div>Micha Galorhttp://www.blogger.com/profile/13580210731677403274noreply@blogger.com4