Description
Extended View directs the in-game camera to rotate or orbit depending on your head rotation and gaze point position on the screen, automatically moving what you want to look at into view and creating what feels like an automatic panning effect of the field of view. It lets you look around freely (within some specified angles appropriate for the game) instead of having the camera view completely locked to the forward move direction of the game character or vehicle. This means that Extended View rotates the camera without changing the character’s forward move direction. The crosshair is still controlled by traditional input methods like mouse and gamepad. Extended View will not center the game view on the gaze point, but rather move it closer to the center.
Design considerations
Orbital vs. non-orbital implementations
Orbital: This implementation takes the usual camera movement of orbiting around a centered player character, and adds Eye Tracking as an input method to manipulate it. In most cases, this means that you have max angles determining how far the camera will orbit, so you will not get the full control a player normally has with mouse/right stick. In some cases, for example when standing still in Steep, the camera orbits 360 degrees around the character.
Non-orbital: This gives the player a completely unique camera experience. Instead of having the same camera behavior as normal, the camera is now fixed in position and rotates around its own axis. In games like The Division, this allows the player to use extended view as a tool to better use “Cover at Gaze” or simply using the game’s own mechanics of moving between covers, as the angle allows for more surfaces which the indicator hit, allowing you to effortlessly move to covers that would normally be hard to hit with the indicator due to the constrained angle when the character is always centered.
Respect the crosshair
When turning the camera with Extended View, we are challenging the common assumption that screen center always aligns with the crosshair, and in turn corresponds to the character’s interaction point, line of fire and so on. This needs to be considered carefully.
Head/Gaze based camera manipulation should never affect what the character is aiming at/point of interaction is pointing at. Players usually look at the object they want to interact with, and as soon as they look around and the camera moves, it would be very difficult to aim the crosshair at the object you want to interact with. Using eye – and head tracking to consciously center the screen on a specific object is very difficult. This is extremely obvious when playing a third person shooter, such as Ghost Recon Wildlands, when the player relies on the crosshair for firing weapons accurately, a fundamental gameplay mechanic. It would be absolutely unacceptable that the weapon does not fire in the same direction as the crosshair, and it would be equally unacceptable to ask the player to use eye – and head tracking to manipulate the camera and by extension the centered crosshair.
- The solution to this is to always render the crosshair in the original “character center forward” position. This means that the crosshair will not always be equal to center of screen.
- The fact that the crosshair stays “character center forward” also doubles as a help with orientation. Normally, moving the character forward means moving in the direction of the crosshair. This stays true and while looking around and manipulating the camera with Extended View, the player always knows which way is “character forward” as the crosshair will not be anchored to the center of the screen.
Avoiding conflicts with other game mechanics
When using gaze to manipulate the orientation of the camera we need to consider the case when the user is looking at UI elements (which usually are located at the edges of the screen) as this will cause the camera to move. This effect may be unexpected as the player intended to look at a UI element, not to look around in the environment. Games like Shadow of the Tomb Raider that has extremely minimal UI dont suffer from this issue, however in more UI heavy games where the player rely on information found on the edges of the screen (combo meters, mini maps etc) it is every common to see the camera move around a lot as the player gathers this information from the UI.
- A way to combat this is to minimize the use of gaze and rely more on head tracking for camera manipulation.
- Another way is to introduce dead zones around UI elements that prevents the Extended View to kick in.
Head tracking vs eye tracking
A player’s natural movements should be taken into account when designing Extended View.
- A player normally sits fairly still when playing, the head mainly only moving when looking to the very far edge of the screen, especially if its a large widescreen monitor. In this sense, extra head movement to manipulate the camera is more deliberate, just like pressing the button on a controller; you move a body part to trigger a specific mechanic in the game.
- Eye movement, however, is a much more constant factor. A player look around on the screen all the time; looking for enemies, processing the environment, looking at UI elements and so on. Because of this constant and erratic input, Extended View should not react to every single thing the player looks at. The result would be constant, erratic camera movement which cause disorientation and even nausea.
- To avoid this, there are some things that can be done. One of them is having an oval shaped “dead zone” in the center of the screen; as long as the player doesnt look outside this area, the camera will not move. Depending on game, the size of the dead zone can be adjusted. The goal here is to not trigger camera movements all the time, preferably only when the player is presumably looking at the environment and not at the player character or objects around the center of the screen. Taking your eyes off the middle of the screen usually means the player is interested in things outside the main focus area, at which point the camera starts moving to accommodate this interest.
- Another thing to combat this is camera movement sensitivity and responsiveness, and separating them for eye – and head tracking. Head tracking can be an almost 1 to 1 response, where the camera instantly moves in sync with turning your head. An explicit movement from the player results in an equally explicit turn of the camera. Eye movement, in contrast, should not be an instant response in camera movement. An instant response would result in an extremely erratic camera movement which is very unpleasant game experience, given how often a player change fixation while playing. The camera movement should be smooth and accelerate/decelerate slowly.
- Players have different preferences when it comes to how they want to manipulate the camera, and settings should allow players to tailor their experience as close as possible to what they want. This means allowing a player to disable the eye or head tracking component of Extended View. A player who only wants to use head tracking for extended view should be able to do so, and vice versa.
Settings
Be advised: The first experience must be pleasant for most people, so go conservative on your default settings and let the user add more effect as he/she gets used to the experience. If applicable, investigate the possibility to boost speed / field of view when gamer gets more used to the experience, or for players who want to prioritize being able to do things quickly higher than how good it feels.
Suggested settings:
Extended view | checkbox | on / off | Turn the game camera by moving your eyes and head |
Head and Gaze Contribution Ratio | slider | 0 – 100 (Head – Gaze) | Determines how much each input contributes to camera movement. Setting set to 0 should mean that only gaze is used and head tracking is turned off, and we stop subscribing to head tracking completely. Setting set to 100 should mean that only head tracking is used. A setting set to 50 means that gaze and head contributes equally to extended view; half of the max angle is achieved with one type of input, the rest from the other. No matter which ratio is set, the max angle is not affected, and is determined by the Max Angle setting. |
Max Angle | slider | 0 – 100 | Adjust the maximum yielded pitch and yaw angles. |
Sensitivity | slider | 0 – 100 | Controls how sensitive the camera is to your head and eye movements. High sensitivity means only small eye or head movements are necessary to trigger camera movement. |
Responsiveness | slider | 0 – 100 | Controls how quickly the camera responds to your head and eye movements. High responsiveness means that the camera reacts very quickly to your eye movements. |
DO’s and DON’Ts
Any camera mode:
DO NOT use trigger zones at the edges of the screen.
First and Third Person view:
DO make sure that camera rotation during extended view doesn’t change the direction of character movement.
DO make sure that auto-center functionality of the game is disabled when using Extended View.
DO ensure that the default settings are tweaked for a smooth initial user experience – be conservative!
DO ensure to take care of situations when the user isn’t present or is not looking at the screen. Extended View should smoothly center the camera (TGI Extended View handles this)
DO consider to have a slightly wider max angle for driving situations in games where the player is both moving on foot and in various vehicles.
DO include an option to turn of Head Tracking for Extended View.
First Person View:
DO rotate only the head of the character.
DO NOT allow Extended View during aiming binoculars, cut scenes and in all the menus including radial menus, inventory etc. An exception can be made for the Tobii Eye Tracking settings menu.
Top Down View:
DO panning of the camera gradually from the center of the screen to the edge. The further from the center the player looks, the more the camera pans. Player character should always stay on the screen.
Racing games:
DO NOT use the pitch component in head rotation as it introduces jittering and is not needed in the game.
First and third person view:
DO use one of the following methods to avoid “drunken walk”
- Add Extended View as one of the camera modifiers. Let the game know about it and apply collision detection. Compensate shooting and walking direction to not be influenced by Extended View.
- Rotate a camera by extended view right before rendering and return it back right after so that the game logic doesn’t interfere with it if possible. This will fix the drunken walk problem.
First Person View:
DO rotate only the head of the character. If weapon camera is a child transform of the main camera, then rotate it back to match the forward direction. Make sure to scale the rotation angle by Field of View ratio between main camera and weapon camera.
DO offset in the “camera without Extended View” direction and project to the “rotated by Extended View screen” to get crosshair coordinates.
Third Person View:
DO use raycast to calculate crosshair position in a third person view game.
DO make sure that crosshair is not jittering during character rotation. Be sure that crosshair position is calculated for the current frame.
DO check that position of every crosshair/gizmo in the game is recalculated during Extended View.
DO make collision detection of the camera during orbital rotation. Try making it only once if possible. Preferably use the orbiting algorithm from the game code.
DO NOT place the auto center zone around the middle of the screen.
DO NOT use raycast to calculate the crosshair position in the first person view.