Class CinemachineOrbitalTransposer
This is a CinemachineComponent in the the Body section of the component pipeline. Its job is to position the camera in a variable relationship to a the vcam's Follow target object, with offsets and damping.
This component is typically used to implement a camera that follows its target. It can accept player input from an input device, which allows the player to dynamically control the relationship between the camera and the target, for example with a joystick.
The OrbitalTransposer introduces the concept of Heading, which is the direction in which the target is moving, and the OrbitalTransposer will attempt to position the camera in relationship to the heading, which is by default directly behind the target. You can control the default relationship by adjusting the Heading Bias setting.
If you attach an input controller to the OrbitalTransposer, then the player can also control the way the camera positions itself in relation to the target heading. This allows the camera to move to any spot on an orbit around the target.
Inheritance
Inherited Members
Namespace: Cinemachine
Syntax
[DocumentationSorting(DocumentationSortingAttribute.Level.UserRef)]
[AddComponentMenu("")]
public class CinemachineOrbitalTransposer : CinemachineTransposer
Fields
m_Heading
The definition of Forward. Camera will follow behind.
Declaration
[Space]
[Tooltip("The definition of Forward. Camera will follow behind.")]
public CinemachineOrbitalTransposer.Heading m_Heading
Field Value
Type | Description |
---|---|
CinemachineOrbitalTransposer.Heading |
m_HeadingIsSlave
Drive the x-axis setting programmatically. Automatic heading updating will be disabled.
Declaration
[HideInInspector]
public bool m_HeadingIsSlave
Field Value
Type | Description |
---|---|
Boolean |
m_RecenterToTargetHeading
Parameters that control Automating Heading Recentering
Declaration
[Tooltip("Automatic heading recentering. The settings here defines how the camera will reposition itself in the absence of player input.")]
public AxisState.Recentering m_RecenterToTargetHeading
Field Value
Type | Description |
---|---|
AxisState.Recentering |
m_XAxis
Axis representing the current heading. Value is in degrees and represents a rotation about the up vector
Declaration
[Tooltip("Heading Control. The settings here control the behaviour of the camera in response to the player's input.")]
public AxisState m_XAxis
Field Value
Type | Description |
---|---|
AxisState |
Properties
RequiresUserInput
OrbitalTransposer is controlled by input.
Declaration
public override bool RequiresUserInput { get; }
Property Value
Type | Description |
---|---|
Boolean |
Overrides
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
GetAxisClosestValue(Vector3, Vector3)
What axis value would we need to get as close as possible to the desired cameraPos?
Declaration
public float GetAxisClosestValue(Vector3 cameraPos, Vector3 up)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | cameraPos | camera position we would like to approximate |
Vector3 | up | world up |
Returns
Type | Description |
---|---|
Single | The best value to put into the X axis, to approximate the desired camera pos |
GetTargetCameraPosition(Vector3)
Internal API for the Inspector Editor, so it can draw a marker at the target
Declaration
public override Vector3 GetTargetCameraPosition(Vector3 worldUp)
Parameters
Type | Name | Description |
---|---|---|
Vector3 | worldUp | Current effective world up |
Returns
Type | Description |
---|---|
Vector3 | The position of the Follow target |
Overrides
MutateCameraState(ref CameraState, Single)
Positions the virtual camera according to the transposer rules.
Declaration
public override void MutateCameraState(ref CameraState curState, float deltaTime)
Parameters
Type | Name | Description |
---|---|---|
CameraState | curState | The current camera state |
Single | deltaTime | Used for damping. If less than 0, no damping is done. |
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
OnTransitionFromCamera(ICinemachineCamera, Vector3, Single, ref CinemachineVirtualCameraBase.TransitionParams)
Notification that this virtual camera is going live. Base class implementation does nothing.
Declaration
public override bool OnTransitionFromCamera(ICinemachineCamera fromCam, Vector3 worldUp, float deltaTime, ref CinemachineVirtualCameraBase.TransitionParams transitionParams)
Parameters
Type | Name | Description |
---|---|---|
ICinemachineCamera | fromCam | The camera being deactivated. May be null. |
Vector3 | worldUp | Default world Up, set by the CinemachineBrain |
Single | deltaTime | Delta time for time-based effects (ignore if less than or equal to 0) |
CinemachineVirtualCameraBase.TransitionParams | transitionParams | Transition settings for this vcam |
Returns
Type | Description |
---|---|
Boolean | True if the vcam should do an internal update as a result of this call |
Overrides
OnValidate()
Legacy support for old serialized versions
Declaration
protected override void OnValidate()
Overrides
UpdateHeading(Single, Vector3, ref AxisState)
Update the X axis and calculate the heading. This can be called by a delegate with a custom axis. Note that this method is obsolete.
Declaration
public float UpdateHeading(float deltaTime, Vector3 up, ref AxisState axis)
Parameters
Type | Name | Description |
---|---|---|
Single | deltaTime | Used for damping. If less than 0, no damping is done. |
Vector3 | up | World Up, set by the CinemachineBrain |
AxisState | axis |
Returns
Type | Description |
---|---|
Single | Axis value |
UpdateHeading(Single, Vector3, ref AxisState, ref AxisState.Recentering, Boolean)
Update the X axis and calculate the heading. This can be called by a delegate with a custom axis.
Declaration
public float UpdateHeading(float deltaTime, Vector3 up, ref AxisState axis, ref AxisState.Recentering recentering, bool isLive)
Parameters
Type | Name | Description |
---|---|---|
Single | deltaTime | Used for damping. If less than 0, no damping is done. |
Vector3 | up | World Up, set by the CinemachineBrain |
AxisState | axis | |
AxisState.Recentering | recentering | |
Boolean | isLive | true if the vcam is live |
Returns
Type | Description |
---|---|
Single | Axis value |
UpdateInputAxisProvider()
API for the inspector. Internal use only
Declaration
public void UpdateInputAxisProvider()