3.2 Microsoft Kinect interface
3.2.4 First person mode
The lack of ability to change the center of interest fluently through traditional camera controls created a demand for a new type of camera control, more suitable for Kinect interface. In the new approach the traditional controls are abandoned. Instead, the cam-era is directly controlled through its parameters. A requirement for this approach was to combine all the available continuous actions under the same mode. Another requirement
was to increase the naturalness of the interface. From these premises the first person mode was created.
In first person mode, the camera is being manipulated so that the view looks like a person is walking in 3D world. Camera manipulation is done by setting the camera to 1.80 m height from 3D world’s xy-plane, and moving the view so that the camera stays always 1.80 m above the ground. This is illustrated in figure 3.8.
Figure 3.8. First person mode: The camera is set to look 3D world from 1.80 m height from the floor.
The first person mode can be divided in three main tasks that can be performed sim-ultaneously. These tasks are: moving, turning and tilting. This subchapter explains these functions in more detail and tells about implementing them to the interface. Also, the most important option of first person mode, limiting the movement is explained in this subchapter.
Moving
Moving the camera is done in two dimensions. The user can move the camera forwards or backwards and to left or right. Moving can be done towards either single dimension or combine elements from two dimensions and simultaneously move towards both. The elements must be from different dimensions. This means that the user cannot simultane-ously go forwards and backwards or left and right. When moving, the position of the camera changes, but the rotation of the camera stays still.
Head tracking is used for moving the camera. Camera moves continuously with the speed of 0.75 m/s, independent of direction. Neutral area for movement is located be-tween 2.0 m and 2.5 m from the camera and it is 1.0 m wide. When the user is standing in this area, the camera does not change its place.
If the user wants to move the camera forwards, he/she has to move closer than 2.0 m from the camera, but because of Kinect field of view, not closer than 1.5 m from the camera. [68] Respectively, when moving backwards, the user has to move further than
2.5 m from camera. In order to move the camera left, the user has to move to the left of the camera so that the head is 0.5 m left from the camera center line, but not further than 1 m away from the center line. [68] The same rules apply for moving the camera to right; user’s head must be 0.5 m to 1.0 m right from the center line. For instance, when the user’s head is 1.8 meters away from the camera and 0.8 to left from the camera cen-ter, the camera moves simultaneously forwards and left. Map of camera movement di-rections is illustrated in figure 3.9.
Figure 3.9. Kinect camera movement map: User steps from the neutral area to moving area and camera starts moving at the speed of 0.75m/s towards the direction that the
arrow indicates.
Turning
Changing the direction of the camera is done by manipulating the rotation parameters of the camera. Camera can be turned towards left or right by manipulating the camera’s yaw rotation parameter. The horizontal rotation of the camera affects the direction of movement.
Turning the camera left or right is done by rotating the shoulders. The camera is turned in the way that the user is turning. The application uses the distance of the shoul-ders from the camera to determine the direction of rotation. When the difference of
shoulder positions is 0.1 m – 0.4 m the camera starts turning with the speed of 15 de-grees in a second. When the difference of shoulder positions is greater than 0.4 m, the camera starts turning faster, with the speed of 75 degrees in a second. For example, when the user turns right, by moving his/her right shoulder 0.2 m closer to camera than left shoulder, the camera starts turning to right with the speed of 15 degrees in a second.
This is illustrated in figure 3.10. Respectively, when the user turns left, by moving his/her right left shoulder forwards 0.4 m more than the right shoulder, the camera starts turning left with the speed of 75 degrees in a second. The camera can be turned when standing in any position of Kinect movement area, which is illustrated in figure 3.9.
Figure 3.10. Turning the camera left, the right shoulder is 0.2 m closer to the camera than the left shoulder. Camera starts turning left with the speed of 15 degrees in a
se-cond.
Tilting
Tilting the camera upwards or downwards is done by manipulating the camera’s pitch parameter. Tilting the camera is used only for looking, therefore tilting the camera does not affect the direction of movement.
Tilting camera up and down is done with the right hand. There are two neutral zones for tilting the camera. First zone is below the waistline, and second zone is located at the shoulder height. The tilting mode is activated when the user raises his/her right hand above the waistline to shoulder height. To tilt the camera upwards, the user raises his/her right hand above the shoulder line. Camera rotates upwards with the speed of 15 degrees in a second until the hand is lowered to shoulder level. This is illustrated in fig-ure 3.11. To tilt the camera downwards, the user has to lower his/her right hand below the shoulder line, but above the waistline. Camera rotates downwards with the speed of 15 degrees in a second, until the hand is raised to shoulder height. When the user lowers
his/her right hand below the waist line, the tilt angle is reset to the value that it was be-fore tilting.
Figure 3.11. Tilting the camera: Right hand is raised above the shoulder level. The Camera is tilting upwards with the speed of 15 degrees in a second.
For tilting the camera the head tracking was considered first to be more natural, but the idea was abandoned as the user also has to see the screen while he/she is performing the gesture. For instance, if user looks down in order to tilt the camera downwards, it becomes really hard to see the screen at the same time.
Limiting the movement
The movement can be limited to a certain floor type by setting a parameter from the application and covering the area with this floor type where the movement is wanted.
By restricting the movement, the walk in 3D world can be made more realistic. For ex-ample, the camera can be restricted to areas where people walk normally. The floor can be tilted sideways, for example to follow stairs. When the camera arrives to tilted floor it follows its plane 1.80 m above it. By not restricting the movement to a certain floor type, the application allows free movement. With this option the camera goes through all the layout elements of 3D world.
Evaluation of first person mode:
Positive observations:
All of the required functions are under a same mode.
Moving and turning the camera is easy and natural.
Previous problems are fixed.
Negative observations:
Tilting the camera is not natural and requires more learning than other functions.