Class CinemachineFreeLook
A Cinemachine Camera geared towards a 3rd person camera experience. The camera orbits around its subject with three separate camera rigs defining rings around the target. Each rig has its own radius, height offset, composer, and lens settings. Depending on the camera's position along the spline connecting these three rigs, these settings are interpolated to give the final camera position and state.
Inheritance
Implements
Inherited Members
Namespace: Cinemachine
Assembly: solution.dll
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[DisallowMultipleComponent]
[ExecuteInEditMode]
[ExcludeFromPreset]
[AddComponentMenu("Cinemachine/CinemachineFreeLook")]
public class CinemachineFreeLook : CinemachineVirtualCameraBase, ICinemachineCamera
Fields
Name | Description |
---|---|
CreateRigOverride | Override component pipeline creation. This needs to be done by the editor to support Undo. The override must do exactly the same thing as the CreatePipeline method in this class. |
DestroyRigOverride | Override component pipeline destruction. This needs to be done by the editor to support Undo. |
m_BindingMode | The coordinate space to use when interpreting the offset from the target |
m_CommonLens | If enabled, this lens setting will apply to all three child rigs, otherwise the child rig lens settings will be used |
m_Follow | Object for the camera children wants to move with (the body target) |
m_Heading | The definition of Forward. Camera will follow behind |
m_Lens | Specifies the lens properties of this Virtual Camera. This generally mirrors the Unity Camera's lens settings, and will be used to drive the Unity camera when the vcam is active |
m_LookAt | Object for the camera children to look at (the aim target) |
m_Orbits | The radius and height of the three orbiting rigs |
m_RecenterToTargetHeading | Controls how automatic recentering of the X axis is accomplished |
m_SplineCurvature | |
m_Transitions | Collection of parameters that influence how this virtual camera transitions from other virtual cameras |
m_XAxis | The Horizontal axis. Value is -180...180. This is passed on to the rigs' OrbitalTransposer component |
m_YAxis | The Vertical axis. Value is 0..1. Chooses how to blend the child rigs |
m_YAxisRecentering | Controls how automatic recentering of the Y axis is accomplished |
Properties
Name | Description |
---|---|
Follow | Get the current Follow target. Returns parent's Follow if parent is non-null and no specific Follow defined for this camera |
LookAt | Get the current LookAt target. Returns parent's LookAt if parent is non-null and no specific LookAt defined for this camera |
PreviousStateIsValid | Set this to force the next update to ignore deltaTime and reset itself |
RigNames | Names of the 3 child rigs |
State | The cacmera state, which will be a blend of the child rig states |
Methods
Name | Description |
---|---|
ForceCameraPosition(Vector3, Quaternion) | Force the virtual camera to assume a given position and orientation. |
GetLocalPositionForCameraFromInput(float) | Returns the local position of the camera along the spline used to connect the three camera rigs. Does not take into account the current heading of the camera (or its target) |
GetRig(int) | Get a child rig |
InternalUpdateCameraState(Vector3, float) | Internal use only. Called by CinemachineCore at designated update time so the vcam can position itself and track its targets. All 3 child rigs are updated, and a blend calculated, depending on the value of the Y axis. |
IsLiveChild(ICinemachineCamera, bool) | Check whether the vcam a live child of this camera. Returns true if the child is currently contributing actively to the camera state. |
OnDestroy() | Makes sure that the child rigs get destroyed in an undo-firndly manner. Invalidates the rig cache. |
OnEnable() | Updates the child rig cache |
OnTargetObjectWarped(Transform, Vector3) | This is called to notify the vcam that a target got warped, so that the vcam can update its internal state to make the camera also warp seamlessy. |
OnTransitionFromCamera(ICinemachineCamera, Vector3, float) | If we are transitioning from another FreeLook, grab the axis values from it. |
OnValidate() | Enforce bounds for fields, when changed in inspector. |
UpdateInputAxisProvider() | API for the inspector. Internal use only |