Struct CameraState
The output of the Cinemachine engine for a specific virtual camera. The information in this struct can be blended, and provides what is needed to calculate an appropriate camera position, orientation, and lens setting.
Raw values are what the Cinemachine behaviours generate. The correction channel holds perturbations to the raw values - e.g. noise or smoothing, or obstacle avoidance corrections. Coirrections are not considered when making time-based calculations such as damping.
The Final position and orientation is the comination of the raw values and their corrections.
Namespace: Cinemachine
Syntax
public struct CameraState
Fields
BlendHint
These hints can be or'ed toether to influence how blending is done, and how state is applied to the camera
Declaration
public CameraState.BlendHintValue BlendHint
Field Value
Type | Description |
---|---|
CameraState.BlendHintValue |
kNoPoint
This constant represents "no point in space" or "no direction".
Declaration
public static Vector3 kNoPoint
Field Value
Type | Description |
---|---|
Vector3 |
Lens
Camera Lens Settings.
Declaration
public LensSettings Lens
Field Value
Type | Description |
---|---|
LensSettings |
OrientationCorrection
Orientation correction. This will be added to the raw orientation. This value doesn't get fed back into the system when calculating the next frame. Can be noise, or smoothing, or both, or something else.
Declaration
public Quaternion OrientationCorrection
Field Value
Type | Description |
---|---|
Quaternion |
PositionCorrection
Position correction. This will be added to the raw position. This value doesn't get fed back into the system when calculating the next frame. Can be noise, or smoothing, or both, or something else.
Declaration
public Vector3 PositionCorrection
Field Value
Type | Description |
---|---|
Vector3 |
PositionDampingBypass
This is a way for the Body component to bypass aim damping, useful for when the body needs to rotate its point of view, but does not want interference from the aim damping. The value is the camera rotation, in Euler degrees.
Declaration
public Vector3 PositionDampingBypass
Field Value
Type | Description |
---|---|
Vector3 |
RawOrientation
Raw (un-corrected) world space orientation of this camera
Declaration
public Quaternion RawOrientation
Field Value
Type | Description |
---|---|
Quaternion |
RawPosition
Raw (un-corrected) world space position of this camera
Declaration
public Vector3 RawPosition
Field Value
Type | Description |
---|---|
Vector3 |
ReferenceLookAt
The world space focus point of the camera. What the camera wants to look at. There is a special constant define to represent "nothing". Be careful to check for that (or check the HasLookAt property).
Declaration
public Vector3 ReferenceLookAt
Field Value
Type | Description |
---|---|
Vector3 |
ReferenceUp
Which way is up. World space unit vector. Must have a length of 1.
Declaration
public Vector3 ReferenceUp
Field Value
Type | Description |
---|---|
Vector3 |
ShotQuality
Subjective estimation of how "good" the shot is. Larger values mean better quality. Default is 1.
Declaration
public float ShotQuality
Field Value
Type | Description |
---|---|
Single |
Properties
CorrectedOrientation
Orientation with correction applied.
Declaration
public readonly Quaternion CorrectedOrientation { get; }
Property Value
Type | Description |
---|---|
Quaternion |
CorrectedPosition
Position with correction applied.
Declaration
public readonly Vector3 CorrectedPosition { get; }
Property Value
Type | Description |
---|---|
Vector3 |
Default
State with default values
Declaration
public static readonly CameraState Default { get; }
Property Value
Type | Description |
---|---|
CameraState |
FinalOrientation
Orientation with correction and dutch applied. This is what the final camera gets.
Declaration
public readonly Quaternion FinalOrientation { get; }
Property Value
Type | Description |
---|---|
Quaternion |
FinalPosition
Position with correction applied. This is what the final camera gets.
Declaration
public readonly Vector3 FinalPosition { get; }
Property Value
Type | Description |
---|---|
Vector3 |
HasLookAt
Returns true if this state has a valid ReferenceLookAt value.
Declaration
public readonly bool HasLookAt { get; }
Property Value
Type | Description |
---|---|
Boolean |
NumCustomBlendables
The number of custom blendables that will be applied to the camera.
The base system manages but otherwise ignores this data - it is intended for
extension modules
Declaration
public int NumCustomBlendables { readonly get; }
Property Value
Type | Description |
---|---|
Int32 |
Methods
AddCustomBlendable(CameraState.CustomBlendable)
Add a custom blendable to the pot for eventual application to the camera. The base system manages but otherwise ignores this data - it is intended for extension modules
Declaration
public void AddCustomBlendable(CameraState.CustomBlendable b)
Parameters
Type | Name | Description |
---|---|---|
CameraState.CustomBlendable | b | The custom blendable to add. If b.m_Custom is the same as an already-added custom blendable, then they will be merged and the weights combined. |
GetCustomBlendable(Int32)
Get a custom blendable that will be applied to the camera.
The base system manages but otherwise ignores this data - it is intended for
extension modules
Declaration
public CameraState.CustomBlendable GetCustomBlendable(int index)
Parameters
Type | Name | Description |
---|---|---|
Int32 | index | Which one to get. Must be in range [0...NumCustomBlendables) |
Returns
Type | Description |
---|---|
CameraState.CustomBlendable | The custom blendable at the specified index. |
Lerp(CameraState, CameraState, Single)
Intelligently blend the contents of two states.
Declaration
public static CameraState Lerp(CameraState stateA, CameraState stateB, float t)
Parameters
Type | Name | Description |
---|---|---|
CameraState | stateA | The first state, corresponding to t=0 |
CameraState | stateB | The second state, corresponding to t=1 |
Single | t | How much to interpolate. Internally clamped to 0..1 |
Returns
Type | Description |
---|---|
CameraState | Linearly interpolated CameraState |