As I wrote in the 2nd post:,
navigation in a 3D virtual universe is challenging. It’s not that
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?
We spend most of our life on our feet. We don’t experience
the 3rd 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 2nd
post – and compare it to your last trip to IKEA. Yes – we sure all like rail
shopping J
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.
Fun vs. fitness
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.
In this post I will discuss several schemes for walking. Not
all those schemes are fully tested – but their certainly worth the discussion
Torso tilt - walking and strafing
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.
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.
Down to level design – it is not recommended for cases where
the user is expected to walk a lot.
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.
Rotation
While literal movement in place is limited to the living-room
space; rotation in place is not. But apart from my 2nd 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.
Some simple solutions
- Use the torso tilt for rotation purposes instead of strafing
- Begin automatic camera rotation to when the user’s torso bearing passes a certain threshold.
Another possibility is ‘asymmetric rotation mapping’.
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.
Let’s imagine the camera rotation happens only when the user’s
bearing changes away from 0 and ceases when it moves towards 0. The user
can rotation to any direction and maintain his virtual bearing when he
returns to face the screen.
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.
In place walking
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)
Running is achieved by actually moving the legs up and down
– in a walk in place fashion
To run forward, user need to raise legs alternately (left –
right – left – etc.)
Optionally:
To retreat quickly, the user can step in same leg (left –
left – left – etc.)
Walking in place with one leg forward and another backward
rotates the avatar
Hand walking
When we walk naturally we also move our hands from side to
side to maintain balance
This can be used to simulate walking instead of detecting
the legs motion
This scheme and many other advanced contextual gesture
parsing is demonstrated in Activate3D’s impressive ICM demo, downloadable inthe openNI Arena
Last words:
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.
Sometimes – you can consider cascading several techniques,
and allowing more than one way to work:
- Tilt to walk, walk in place – to run
- Both sideways tilt and asymmetric torso rotation
- Walking and reaching the edges of the play area to begin automatic walking.
- Requiring a tilt or in place motion to initiate/cease automatic walking, instead of asking the user to maintain it
great blog, man.
ReplyDelete2 notes:
1. what about menu navigation? we, as motion game designers, always forget about the menu. but its not that obvious too...
http://uxi.org.il/pages/13265
2. these guys have came up with the best solution i've seen so far for the 3D navigation issue you talk about in this post.
http://www.youtube.com/watch?v=eg8Bh5iI2WY&list=PL5C161BCD8D3A135F&index=13&feature=plpp_video
enjoy.
Hi Shachar - thanks for your comments!
DeleteYou are kind of bursting into an open door - as our main work focus for the past 2 years was to research and protorype numerous NUI paradigms
Latest work - involves Zooming User Interfaces and was presented in CES
http://www.youtube.com/watch?v=NKjkQLxwTek
Other approaches invoved touch emulation
http://www.youtube.com/watch?v=RzldQmW-YQs
or other simplified paradigms
http://play.kendincos.us/122223/Wvzrvrvrvtxhlrvlpfj-openni-compliant-real-time-hand-tracking-by-primesense.html
(There are many many others - if there is an interest - i can upload videos. those are simply the ones I found online)
About that video:
DeleteWell - if you can just walk naturally to move it’s a whole different ball game.
Such devices cost 100K$ and more - and are deployed by US Navy to train marines troops.
The interesting thing is that we don’t really require that level of technology to feel immersed. Our minds require far less: people that play FPS with keyboard and mouse reach a point where they are connected to their virtual self to a very high level. The audiences of the 1st motion pictures flew out of the cinema in horror after seeing a low quality, B&W, low frame rate clip of a train.
The art of the game designers is no different than that of the storytellers: how to take the medium and manage to compress and deliver the intended emotions (Never planned to do so, but I probably need to write a whole post discussing those aspects)
hi Micha,
ReplyDeleteposts are really interesting !! :)
i had an idea of using hand gesture as tactic infantry signals.
please take a look at the reference here:
http://team.airsocom.com/page/1733414:Page:11137
you can point to the exact direction that you would like to go.
you can stop quite easily
you can control an entire troop...
the torso navigation technique sounds really intuitive and sensitive for adjustment in the movement direction.
The airsocom link is fascinating! It definitely should come with the verbal commands thing
DeleteImagine your troops are now snitching quietly into enemy territory – you use gestures. But when you are detected – and firing begins, even talking is not enough – the commander must shout!
Shit! – This sounds too much like the real thing. I changed my mind – let’s forget it...
;)
Thanks for the nice and informative blog series!
ReplyDeleteI wonder if anybody tried to use moving one step forward or backward in real, to toggle walk or run in the game.
What are your thoughts about this approach?
"But apart from my 2nd grade teacher, you will not enjoy the graphics if you reach a point where your back is to the screen"
ReplyDeletehehe :)
thanks for the posts! really great
Hi. I can't find AngryBotsNI anywhere. The OpenNI Arena link doesn't work. Could you please provide an alternate download link?
ReplyDeleteHi Marshall, I'll try to upload the source to Github. Please feel free to contact me if you need it urgently.
DeleteThis comment has been removed by the author.
ReplyDelete