CameraBot Clamp angle section setup

This session is made for the clamp angle of camera, the panel you may visualize in video will look like this:

clamp_angle

“Forward Reference”
when this parameter was set, developer will allow to override the “facing direction” of chase target,
e.g. During chase target facing South direction, giving the transform facing North-East, CameraBot will assume the chase target facing North-East instead of South. this feature allow developer to override the direction of current chase target.
it also affect the clamp angle, because the clamp angle and depend on the chase target forward as a reference to locate their current related angle with chase target.

“Rotation Reference”
the possible values for these parameter are { World, Local, Real Local, Custom }

  • World – the camera upward will always pointing world’s upward, it’s the fastest way and lowest performance cost
  • Real Local – the camera upward will depend on rotate angle, low performance cost and also fixed the “Gimbal lock” issue.
    the problem to using this setting, are combine with chase target & camera offset, when camera are far away from the orbit camera idea position, when user rotate the camera they may notify the camera result in “tilt angle”, or they will feel dizzy (Off-vertical axis rotation) when they rotate or move very fast.
    Gimbal lock := https://en.wikipedia.org/wiki/Gimbal_lock
    Gimbal lock on youtube : https://www.youtube.com/watch?v=zc8b2Jo7mno
    Polygon : How developers are trying to solve motion sickness in video games
  • Local – the setting will mix “Real Local” & “World up” solution, to perform a relative stable upward direction for the camera. but it take higher perform cost.
  • Custom – you can design your own upward reference to implement your solution.

“Left/Right range” – “Up/Down range”
in “Editor mode” preset will record the position and angle related to the chase target as the origin orbit position.
therefore the Left & Right direction are based on your orbit setup, Left & Right will represent the angle by transparent color in red,
and Up & Down represent the angle by transparent color in blue.
as the image shown below. (Left = 45 degree, Right = 180 degree, both related to the origin angle.
clamp_angle_example
In “Runtime” the player will only allow to drag or move the camera within the color area. the same logic apply on vertical (Up/Down axis)

“Enable Rebound”
The major feature for clamp angle section, to toggle rebound feature.
by enable this feature, developer will allow to control the camera behavior: when and how to return it origin angle of orbit camera.

“Rebound Delay”
The delay time to trigger rebound action for the camera angle. Each time player start input or calling UpdatePosition() APi, will reset the count down of rebound.
Rebound will start to count down based on this delay values, right after the player stop the input stream. (stop control camera angle)
after count down finish the rebound process will start.
E.g. Rebound Delay = 1.3, is representing after player stop input stream and wait 1.3 seconds, the rebound process will start.

“Rebound Period”
How long it will take from current distance to travel back to origin distance, unit on second(s).

“Rebound Curve”
The motion will based on this value. from left to right, current distance should be Zero (0.0f), and origin distance should be One (1.0f)
the animation curve time length will scale based on “Rebound Period”, we recommend alway setting this animation curve
time := within 0 ~ 1 seconds,
value := within 0 ~ 1 units.