Class CinemachineStateDrivenCamera
This is a virtual camera "manager" that owns and manages a collection of child Virtual Cameras. These child vcams are mapped to individual states in an animation state machine, allowing you to associate specific vcams to specific animation states. When that state is active in the state machine, then the associated camera will be activated.
You can define custom blends and transitions between child cameras.
In order to use this behaviour, you must have an animated target (i.e. an object animated with a state machine) to drive the behaviour.
Inheritance
Implements
Inherited Members
Namespace: Cinemachine
Assembly: solution.dll
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[DisallowMultipleComponent]
[ExecuteInEditMode]
[ExcludeFromPreset]
[AddComponentMenu("Cinemachine/CinemachineStateDrivenCamera")]
public class CinemachineStateDrivenCamera : CinemachineVirtualCameraBase, ICinemachineCamera
Fields
Name | Description |
---|---|
m_AnimatedTarget | The state machine whose state changes will drive this camera's choice of active child |
m_CustomBlends | This is the asset which contains custom settings for specific child blends. |
m_DefaultBlend | The blend which is used if you don't explicitly define a blend between two Virtual Camera children. |
m_Follow | Default object for the camera children wants to move with (the body target), if not specified in a child rig. May be empty |
m_Instructions | The set of instructions associating virtual cameras with states. These instructions are used to choose the live child at any given moment |
m_LayerIndex | Which layer in the target FSM to observe |
m_LookAt | Default object for the camera children to look at (the aim target), if not specified in a child rig. May be empty |
m_ShowDebugText | When enabled, the current camera and blend will be indicated in the game window, for debugging |
Properties
Name | Description |
---|---|
ChildCameras | The list of child cameras. These are just the immediate children in the hierarchy. |
Description | Gets a brief debug description of this virtual camera, for use when displayiong debug info |
Follow | Get the current Follow target. Returns parent's Follow if parent is non-null and no specific Follow defined for this camera |
IsBlending | Is there a blend in progress? |
LiveChild | Get the current "best" child virtual camera, that would be chosen if the State Driven Camera were active. |
LookAt | Get the current LookAt target. Returns parent's LookAt if parent is non-null and no specific LookAt defined for this camera |
State | The State of the current live child |
Methods
Name | Description |
---|---|
CreateFakeHash(int, AnimationClip) | API for the inspector editor. Animation module does not have hashes for state parents, so we have to invent them in order to implement nested state handling |
ForceCameraPosition(Vector3, Quaternion) | Force the virtual camera to assume a given position and orientation |
InternalUpdateCameraState(Vector3, float) | Internal use only. Do not call this method. Called by CinemachineCore at designated update time so the vcam can position itself and track its targets. This implementation updates all the children, chooses the best one, and implements any required blending. |
IsLiveChild(ICinemachineCamera, bool) | Check whether the vcam a live child of this camera. |
OnDisable() | Base class implementation makes sure the priority queue remains up-to-date. |
OnEnable() | Makes sure the internal child cache is up to date |
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 seamlessly. |
OnTransformChildrenChanged() | Makes sure the internal child cache is up to date |
OnTransitionFromCamera(ICinemachineCamera, Vector3, float) | Notification that this virtual camera is going live. |