Class CinemachineComposer
This is a CinemachineComponent in the Aim section of the component pipeline. Its job is to aim the camera at the vcam's LookAt target object, with configurable offsets, damping, and composition rules.
The composer does not change the camera's position. It will only pan and tilt the camera where it is, in order to get the desired framing. To move the camera, you have to use the virtual camera's Body section.
Inheritance
Inherited Members
Namespace: Cinemachine
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[AddComponentMenu("")]
public class CinemachineComposer : CinemachineComponentBase
Fields
m_BiasX
A non-zero bias will move the targt position away from the center of the soft zone
Declaration
[Range(-0.5F, 0.5F)]
[Tooltip("A non-zero bias will move the target position horizontally away from the center of the soft zone.")]
public float m_BiasX
Field Value
Type | Description |
---|---|
Single |
m_BiasY
A non-zero bias will move the targt position away from the center of the soft zone
Declaration
[Range(-0.5F, 0.5F)]
[Tooltip("A non-zero bias will move the target position vertically away from the center of the soft zone.")]
public float m_BiasY
Field Value
Type | Description |
---|---|
Single |
m_CenterOnActivate
Force target to center of screen when this camera activates.
If false, will clamp target to the edges of the dead zone
Declaration
[Tooltip("Force target to center of screen when this camera activates. If false, will clamp target to the edges of the dead zone")]
public bool m_CenterOnActivate
Field Value
Type | Description |
---|---|
Boolean |
m_DeadZoneHeight
Camera will not rotate vertically if the target is within this range of the position
Declaration
[Range(0F, 2F)]
[Tooltip("Camera will not rotate vertically if the target is within this range of the position.")]
public float m_DeadZoneHeight
Field Value
Type | Description |
---|---|
Single |
m_DeadZoneWidth
Camera will not rotate horizontally if the target is within this range of the position
Declaration
[Range(0F, 2F)]
[Tooltip("Camera will not rotate horizontally if the target is within this range of the position.")]
public float m_DeadZoneWidth
Field Value
Type | Description |
---|---|
Single |
m_HorizontalDamping
How aggressively the camera tries to follow the target in the screen-horizontal direction. Small numbers are more responsive, rapidly orienting the camera to keep the target in the dead zone. Larger numbers give a more heavy slowly responding camera. Using different vertical and horizontal settings can yield a wide range of camera behaviors.
Declaration
[Space]
[Range(0F, 20F)]
[Tooltip("How aggressively the camera tries to follow the target in the screen-horizontal direction. Small numbers are more responsive, rapidly orienting the camera to keep the target in the dead zone. Larger numbers give a more heavy slowly responding camera. Using different vertical and horizontal settings can yield a wide range of camera behaviors.")]
public float m_HorizontalDamping
Field Value
Type | Description |
---|---|
Single |
m_LookaheadIgnoreY
If checked, movement along the Y axis will be ignored for lookahead calculations
Declaration
[Tooltip("If checked, movement along the Y axis will be ignored for lookahead calculations")]
public bool m_LookaheadIgnoreY
Field Value
Type | Description |
---|---|
Boolean |
m_LookaheadSmoothing
Controls the smoothness of the lookahead algorithm. Larger values smooth out jittery predictions and also increase prediction lag
Declaration
[Tooltip("Controls the smoothness of the lookahead algorithm. Larger values smooth out jittery predictions and also increase prediction lag")]
[Range(0F, 30F)]
public float m_LookaheadSmoothing
Field Value
Type | Description |
---|---|
Single |
m_LookaheadTime
This setting will instruct the composer to adjust its target offset based on the motion of the target. The composer will look at a point where it estimates the target will be this many seconds into the future. Note that this setting is sensitive to noisy animation, and can amplify the noise, resulting in undesirable camera jitter. If the camera jitters unacceptably when the target is in motion, turn down this setting, or animate the target more smoothly.
Declaration
[Space]
[Tooltip("This setting will instruct the composer to adjust its target offset based on the motion of the target. The composer will look at a point where it estimates the target will be this many seconds into the future. Note that this setting is sensitive to noisy animation, and can amplify the noise, resulting in undesirable camera jitter. If the camera jitters unacceptably when the target is in motion, turn down this setting, or animate the target more smoothly.")]
[Range(0F, 1F)]
public float m_LookaheadTime
Field Value
Type | Description |
---|---|
Single |
m_ScreenX
Horizontal screen position for target. The camera will rotate to the position the tracked object here
Declaration
[Space]
[Range(-0.5F, 1.5F)]
[Tooltip("Horizontal screen position for target. The camera will rotate to position the tracked object here.")]
public float m_ScreenX
Field Value
Type | Description |
---|---|
Single |
m_ScreenY
Vertical screen position for target, The camera will rotate to to position the tracked object here
Declaration
[Range(-0.5F, 1.5F)]
[Tooltip("Vertical screen position for target, The camera will rotate to position the tracked object here.")]
public float m_ScreenY
Field Value
Type | Description |
---|---|
Single |
m_SoftZoneHeight
When target is within this region, camera will gradually move to re-align towards the desired position, depending onm the damping speed
Declaration
[Range(0F, 2F)]
[Tooltip("When target is within this region, camera will gradually rotate vertically to re-align towards the desired position, depending on the damping speed.")]
public float m_SoftZoneHeight
Field Value
Type | Description |
---|---|
Single |
m_SoftZoneWidth
When target is within this region, camera will gradually move to re-align towards the desired position, depending onm the damping speed
Declaration
[Range(0F, 2F)]
[Tooltip("When target is within this region, camera will gradually rotate horizontally to re-align towards the desired position, depending on the damping speed.")]
public float m_SoftZoneWidth
Field Value
Type | Description |
---|---|
Single |
m_TrackedObjectOffset
Target offset from the object's center in LOCAL space which the Composer tracks. Use this to fine-tune the tracking target position when the desired area is not in the tracked object's center
Declaration
[Tooltip("Target offset from the target object's center in target-local space. Use this to fine-tune the tracking target position when the desired area is not the tracked object's center.")]
public Vector3 m_TrackedObjectOffset
Field Value
Type | Description |
---|---|
Vector3 |
m_VerticalDamping
How aggressively the camera tries to follow the target in the screen-vertical direction. Small numbers are more responsive, rapidly orienting the camera to keep the target in the dead zone. Larger numbers give a more heavy slowly responding camera. Using different vertical and horizontal settings can yield a wide range of camera behaviors.
Declaration
[Range(0F, 20F)]
[Tooltip("How aggressively the camera tries to follow the target in the screen-vertical direction. Small numbers are more responsive, rapidly orienting the camera to keep the target in the dead zone. Larger numbers give a more heavy slowly responding camera. Using different vertical and horizontal settings can yield a wide range of camera behaviors.")]
public float m_VerticalDamping
Field Value
Type | Description |
---|---|
Single |
Properties
IsValid
True if component is enabled and has a LookAt defined
Declaration
public override bool IsValid { get; }
Property Value
Type | Description |
---|---|
Boolean |
Overrides
Stage
Get the Cinemachine Pipeline stage that this component implements. Always returns the Aim stage
Declaration
public override CinemachineCore.Stage Stage { get; }
Property Value
Type | Description |
---|---|
CinemachineCore.Stage |
Overrides
TrackedPoint
Internal API for inspector
Declaration
public Vector3 TrackedPoint { get; }
Property Value
Type | Description |
---|---|
Vector3 |
Methods
ForceCameraPosition(Vector3, Quaternion)
Force the virtual camera to assume a given position and orientation
Declaration
public override void ForceCameraPosition(Vector3 pos, Quaternion rot)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | pos | Worldspace pposition to take |
Quaternion | rot | Worldspace orientation to take |
Overrides
GetLookAtPointAndSetTrackedPoint(Vector3, Vector3, Single)
Apply the target offsets to the target location. Also set the TrackedPoint property, taking lookahead into account.
Declaration
protected virtual Vector3 GetLookAtPointAndSetTrackedPoint(Vector3 lookAt, Vector3 up, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | lookAt | The unoffset LookAt point |
Vector3 | up | Currest effective world up |
Single | deltaTime | Current effective deltaTime |
Returns
Type | Description |
---|---|
Vector3 | The LookAt point with the offset applied |
GetMaxDampTime()
Report maximum damping time needed for this component.
Declaration
public override float GetMaxDampTime()
Returns
Type | Description |
---|---|
Single | Highest damping setting in this component |
Overrides
MutateCameraState(ref CameraState, Single)
Applies the composer rules and orients the camera accordingly
Declaration
public override void MutateCameraState(ref CameraState curState, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
CameraState | curState | The current camera state |
Single | deltaTime | Used for calculating damping. If less than zero, then target will snap to the center of the dead zone. |
Overrides
OnTargetObjectWarped(Transform, Vector3)
This is called to notify the us that a target got warped, so that we can update its internal state to make the camera also warp seamlessy.
Declaration
public override void OnTargetObjectWarped(Transform target, Vector3 positionDelta)
Parameters
Type | Name | Description |
---|---|---|
Transform | target | The object that was warped |
Vector3 | positionDelta | The amount the target's position changed |
Overrides
PrePipelineMutateCameraState(ref CameraState, Single)
Sets the state's ReferenceLookAt, applying the offset.
Declaration
public override void PrePipelineMutateCameraState(ref CameraState curState, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
CameraState | curState | Input state that must be mutated |
Single | deltaTime | Current effective deltaTime |