Class CinemachineBrain
CinemachineBrain is the link between the Unity Camera and the Cinemachine Virtual Cameras in the scene. It monitors the priority stack to choose the current Virtual Camera, and blend with another if necessary. Finally and most importantly, it applies the Virtual Camera state to the attached Unity Camera.
The CinemachineBrain is also the place where rules for blending between virtual cameras are defined. Camera blending is an interpolation over time of one virtual camera position and state to another. If you think of virtual cameras as cameramen, then blending is a little like one cameraman smoothly passing the camera to another cameraman. You can specify the time over which to blend, as well as the blend curve shape. Note that a camera cut is just a zero-time blend.
Inherited Members
Namespace: Cinemachine
Assembly: solution.dll
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[DisallowMultipleComponent]
[ExecuteInEditMode]
[AddComponentMenu("Cinemachine/CinemachineBrain")]
public class CinemachineBrain : MonoBehaviour
Fields
Name | Description |
---|---|
m_BlendUpdateMethod | The update time for the Brain, i.e. when the blends are evaluated and the brain's transform is updated. |
m_CameraActivatedEvent | This event will fire whenever a virtual camera goes live. If a blend is involved, then the event will fire on the first frame of the blend.
|
m_CameraCutEvent | This event will fire whenever a virtual camera goes live and there is no blend |
m_CustomBlends | This is the asset which contains custom settings for specific blends. |
m_DefaultBlend | The blend which is used if you don't explicitly define a blend between two Virtual Cameras. |
m_IgnoreTimeScale | When enabled, the cameras will always respond in real-time to user input and damping, even if the game is running in slow motion |
m_ShowCameraFrustum | When enabled, shows the camera's frustum in the scene view. |
m_ShowDebugText | When enabled, the current camera and blend will be indicated in the game window, for debugging. |
m_UpdateMethod | Depending on how the target objects are animated, adjust the update method to minimize the potential jitter. Use FixedUpdate if all your targets are animated with for RigidBody animation. SmartUpdate will choose the best method for each virtual camera, depending on how the target is animated. |
m_WorldUpOverride | If set, this object's Y axis will define the worldspace Up vector for all the virtual cameras. This is useful in top-down game environments. If not set, Up is worldspace Y. |
Properties
Name | Description |
---|---|
ActiveBlend | Get the current blend in progress. Returns null if none. |
ActiveVirtualCamera | Get the current active virtual camera. |
CurrentCameraState | The current state applied to the unity camera (may be the result of a blend) |
DefaultWorldUp | Get the default world up for the virtual cameras. |
IsBlending | Is there a blend in progress? |
OutputCamera | Get the Unity Camera that is attached to this GameObject. This is the camera that will be controlled by the brain. |
SoloCamera | API for the Unity Editor. Show this camera no matter what. This is static, and so affects all Cinemachine brains. |
Methods
Name | Description |
---|---|
ComputeCurrentBlend(ref CinemachineBlend, int) | Used internally to compute the currrent blend, taking into account the in-game camera and all the active overrides. Caller may optionally exclude n topmost overrides. |
GetSoloGUIColor() | API for the Unity Editor. |
IsLive(ICinemachineCamera, bool) | True if the ICinemachineCamera the current active camera, or part of a current blend, either directly or indirectly because its parents are live. |
ManualUpdate() | Call this method explicitly from an external script to update the virtual cameras and position the main camera, if the UpdateMode is set to ManualUpdate. For other update modes, this method is called automatically, and should not be called from elsewhere. |
ReleaseCameraOverride(int) | This API is specifically for Timeline. Do not use it. Release the resources used for a camera override client. See SetCameraOverride. |
SetCameraOverride(int, ICinemachineCamera, ICinemachineCamera, float, float) | This API is specifically for Timeline. Do not use it. Override the current camera and current blend. This setting will trump any in-game logic that sets virtual camera priorities and Enabled states. This is the main API for the timeline. |