Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[3.1.2] - 2024-10-01
Added
- Added CinemachineVirtualCameraBaseEditor, to facilitate making conformant inspectors for custom virtual cameras and virtual camera managers.
- Added Padding option to CinemachineConfiner2D.
- Added CinemachineSplineSmoother for creating smooth splines suitable for camera paths. This replicates the behaviour of CinemachineSmoothPath in CM2.
- Added Easing option to CinemachineSplineRoll.
- Added SaveDuringPlay support to CinemchineSplineRoll.
- Added preference option to show spline normals instead of the railroad-track gizmo.
Changed
- The presence of a tracking target no longer affects whether the CinemachineCamera state's position and rotation are pushed back to the transform.
- TargetPositionCache.GetTargetPosition() and TargetPositionCache.GetTargetRotation() are now public, so that custom classes can support cached timeline scrubbing.
Bugfixes
- Sometimes a deeply-nested passive camera's position would creep due to precision inaccuracies.
- When coming out of a cutscene, sometimes the original camera would fail to be restored.
- Spline roll direction was inverted.
- The upgrader sometimes failed to delete all obsolete components.
- The path upgrader was creating knots using Broken instead of Mirrored mode, and was not setting knot rotations correctly. This resulted in spline Up vectors not always being smooth.
[3.1.1] - 2024-06-15
Added
- New Rotation Control behaviour SplineDollyLookAtTargets lets you specify LookAt points at desired positions along a Spline Dolly trajectory.
- Added Recenter Target setting to CinemachinePanTilt.
Fixed
- Bugfix: InputAxis.TriggerRecentering() function caused the axis to immediately snap to its recenter value.
- Bugfix: When multiple CM Brains were present, FixedUpdte cameras were sometimes being updated too frequently, resulting in jittery motion.
- Regression fix: StateDrivenCamera inspector was failing to correctly set the states in the instruction list.
- Bugfix: Decollider ignored terrain layers when resolving obstacles.
- Bugfix: The GroupAverage Rotation Mode in CinemachineTargetGroup was not calculated properly.
- Bugfix: added missing null check in CinemachineTargetGroup.WeightedMemberBoundsForValidMember.
- Bugfix: added missing null check in CinemachineDeoccluder.PushCameraBack().
- Bugfix: Cinemachine did not work properly with scaled splines.
Changed
- CinemachineGroupFraming now has a compatibility mode so that it can work with CinemachineConfiner2D out of the box.
- Removed FadeOutNearbyObjects sample scene and shader, because they do not show anythng useful.
- SimplePlayerController no longer uses PlayerController.isGrounded because it's not reliable outside of FixedUpdate.
[3.1.0] - 2024-04-01
Fixed
- Bugfix: index out of range exception when adding a Cm Shot to a timeline track whose CinemachineBrain is inactive.
- Bugfix: OrbitalFollow with 3-ring setup would inappropriately damp in respose to vertical input if LookAt and Follow were at different vertical positions.
- Bugfix: StateDrivenCamera min activation time was broken.
- Bugfix: Solo not updating when brain is in FixedUpdate.
- Bugfix: Spline roll was being calculated incorrectly when spline was rotated.
- Bugfix: "Freeze When Blending Out" didn't work when switching betwen two cameras multiple times.
- Bugfix: Cinemachine cameras would sometimes unnecessarily dirty the scene due to floating-point imprecision when setting transform rotations.
Added
- Added CinemachineDecollider to resolve camera intersection with colliders and terrains, without necessarily preserving line-of-sight to target.
- CinemachineDeoccluder has the option to resolve towards the Follow target instead of the LookAt target.
- Added CinemachineShotQualityEvaluator which is a standalone version of the evaluation code in Deoccluder.
- Added StateDrivenCamera.CancelWait() method to cancel the current wait on a pending state change.
- Added FlyAround sample scene showing a simple fly-around camera.
- Added IgnoreTimeScale option to InputAxisControllerBase.
- Added confirmation dialog when exiting play mode, if Save During Play is enabled and changes have been made to saveable properties.
Changed
- SplineDolly and SplineCart: position on spline is preserved when units change.
- SimplePlayerAimController sample upgraded to work on arbitrary surfaces (no longer depends on world up).
- SimplePlayerController sample has logic to avoid input gimbal lock when player is upside-down relative to the camera.
- PlayerOnSphere sample is now PlayerOnSurface - can walk on arbitrary surfaces.
- Axis recentering happens independently on axes with differing recentering tmes, so that input on one axis does not impact the recentering state of the others.
- FreeLookOnSphericalSurface sample is improved, adding a moving surface and second camera.
- Replaced SameAsFollowTarget with RotateWithFollowTarget (SameAsFollowTarget still exists but is deprecated).
- Deoccluder evaluates shots in the Finalize stage instead of Aim.
[3.0.1] - 2023-11-27
Fixed
- Bugfix: Divide-by-zero error in InputAxis.CancelDeltaTime if deltaTime is zero.
- Regression fix: CinemachineCamera inspector Solo functionality was not updating correctly.
- Regression fix: Legacy Lens settings had lost their ability to be animated.
- Bugfix: Upgrader was not correctly upgrading animation bindings in some cases.
Added
- Added CinemachineVirtualCameraBase.CancelDamping() convenience method to snap camera to its target position.
- Added CinemachineOrbitalFollow.TargetOffset to reposition orbit center.
- Added CinemachineGroupFraming.CenterOffset to reposition group center on the screen.
- Added LookAtOffset to CinemachineHardLookAt behaviour.
- Added support for the new Camera Overlay.
Changed
- RuntimeUtility.GetScratchCollider and RuntimeUtility.DestroyScratchCollider are now public, to allow custom extensions to use them.
- SaveDuringPlay supports multi-scene editing.
[3.0.0] - 2023-10-25
Fixed
- Regression fix: Extensions and components were unable to modify the blend hint.
- Bugfix: HardLockToTarget component was ignoring PreviousStateIsValid flag.
Added
- Cancellation of active blend is now possible in ManagerCameras, same as in CM Brains.
Changed
- CinemachineBrain.TopCameraFromPriorityQueue() is now protected virtual.
[3.0.0-pre.9] - 2023-10-01
Fixed
- Regresion fix: Sequencer inspector child camera popups were not being populated.
- Regresion fix: Manager Camera's child camera warning icons were not being updated correctly.
- Regresion fix: ManagerCameras were crushing PreviousStateIsValid in their children.
- Bugfix: CinemachineInputAxisController editor was missing foldout arrows on the Driven Axis items.
[3.0.0-pre.8] - 2023-09-22
Fixed
- Bugfix: Occasional precision issue when camera rotation is exactly 180 degress, causing rotational flickering.
- Bugfix: Deceleration at the end of axis range was too aggressive.
- Bugfix: Orbital recentering should not be forced when transitioning to a camera.
- Bugfix: InheritPosition takes the actual camera position, so it works consistently if transitioning mid-blend.
- Bugfix: CinemachineDeoccluder was causing a pop when OnTargetObjectWarped was called.
- Bugfix: Spurious camera cut events were being issued, especially in HDRP.
- Bugfix: Null reference exceptions when inspector is hidden behind another tab.
- Bugfix: GroupFraming inspector was displaying incorrect warning when LookAt target is a group.
- Bugfix: GroupFraming displays more accurate group size indicator in the game view.
- Bugfix: nullrefs in log when target group was deleted but was still being referenced by vcams.
- Regression fix: CinemachineCollider generated NaN positions if no target was set.
Added
- New sample: ThirdPersonWithAimMode showing how to implement a FreeLook camera with Aim mode.
- Added Recentering Target to OrbitalFollow. Recentering is now possible with Lazy Follow.
- Added API in Deoccluder and ThirdPersonFollow to access which collision objects are impacting the camera position.
- Added ICinemachineTargetGroup.IsValid property to detect deleted groups.
- Added option to disable deltaTime scaling in CinemachineInputAxisProvider.
Changed
- Improved OrbitalFollow's ForceCameraPosition algorithm.
- Deoccluder accommodates camera radius in all modes.
- Renamed CinemachineSplineDolly.CameraUp to CameraRotation, which more accurately reflects what it does.
- Renamed InputAxis.DoRecentering() to InputAxis.UpdateRecentering()
- StateDrivenCamera: child camera enabled status and priority are now taken into account when choosing the current active camera.
Deprecated
- Removed CinemachineToolSettings overlay.
[3.0.0-pre.7] - 2023-05-04
Added
- Added CinemachineCore.GetCustomBlender and BlendCreatedEvent to allow custom blend behaviour.
- New Custom Blends sample scene illustrating how to customize the blend algorithm.
- CinemachineChannels can now be named via the CinemachineChannelNames asset. OutputChannel struct has been removed.
- Added CinemachineCameraManagerEvents behaviour.
- Added the option of defining CINEMACHINE_NO_CM2_SUPPORT, to lighten the package by removing legacy CM2 support.
- ThirdPerson Shooter sample scene now has an option to swap shoulders.
Changed
- Improved handling of nested blends.
- CinemachineCameraEvents and CinemachineBrainEvents and CnemachineCameraManagerEvents can be added to any GameObject, not only to the target objects.
[3.0.0-pre.5] - 2023-04-25
Fixed
- Bugfix: MixingCamera calls OnTransitionFromCamera correctly for all its children.
Added
- New BlendHint: IgnoreTarget will blend rotations without considering the tracking target.
- New BlendHint: FreezeWhenBlendingOut will blend out from a snapshot of the camera state.
- InputAxisController has the option to suppress input while the attached camera is blending.
- Added CinemachineCameraEvents and CinemachineBrainEvents behaviours for event processing.
- Added BlendFinished and CameraDeactivated events.
- Add split screen sample for the input system.
- Samples UI works with both legacy input and Input package.
- Timeline: Added Track Priority field in CinemachineTrack to control track precedence when tracks are contained in nested timelines.
- New 2D platformer sample showing custom camera manager.
Changed
- Minimum Unity version is now 2022.2.15, for best inspector experience.
- All namespaces changed from "Cinemachine" to "Unity.Cinemachine".
- "Cinemachine.Utility" namespace folded into to "Unity.Cinemachine".
- CinemachineBlendListCamera has been renamed to CinemachineSequencerCamera.
- Renamed .asmdef files to follow the convention: Unity.[PackageName].
- TrackedObjectOffset renamed to TargetOffset.
- Improved layout of PositionComposer and RotationComposer inspectors.
- LensSettings was refactored to improve handling of SensorSize and other physical properties.
- Full physical camera support for builtin pipeline.
- LensPresets and PhysicalLensPresets are now separate assets.
- CinemachineInputAxisController refactored to be more easily customized.
- Samples are compatible with Built-in, Universal, and High Definition Render Pipelines.
- CinemachineUpgradeManager re-opens original scene after upgrade is complete.
- Events system refactored.
- Refactored CinemachineCameraManagerBase to be more useful for customizing.
- CinemchineCore refactored to remove singleton.
[3.0.0-pre.4] - 2023-02-09
Added
- Progress bar added to Cinemachine Upgrader.
- CinemachineDeoccluder is a new class, not just a rename of CinemachineCollider.
- CinemachineAutoFocus extension is now available for built-in and URP pipelines, with reduced functionality compared to HDRP.
- Camera.focusDistance is driven by CM when the camera is in physical mode.
- Confiner2D provides API to adjust the confiner to the current window size when the lens or aspect changes.
- TargetGroup now ignores members whose gameObjects are inactive.
- Cinemachine Samples can import their package dependencies.
- CinemachinePathBase search radius fixed for not looped paths.
- Add SplineAutoDolly.ISplineAutoDolly.Reset() method and SplineAutoDolly.Enabled flag.
- Confiner2D and Confiner3D support smooth stop at bounds edge.
- URP: add temporal effects reset on camera cut.
- Add Weight setting to CinemachinePostProcessing and CinemachineVolumeSettings.
- GroupFraming also works on LookAt target.
- Several new Sample scenes were added.
Changed
- Improved performance of CINEMACHINE_EXPERIMENTAL_DAMPING algorithm.
- Path gizmo drawing was optimized.
- Confiner2D does less gc alloc.
- CinemachineSmoothPath is upgraded to Splines correctly now.
- InputAxis refactor for recentering and momentary axis support.
- CinemachineIndependentImpulseListener renamed to CinemachineExternalImpulseListener.
- CmCamera is now CinemachineCamera.
- The SimpleFollowWithWorldUp binding mode has been renamed to LazyFollow.
- CinemachineExtension API changes to VirtualCamera, GetAllExtraStates, OnTargetObjectWarped, and ForceCameraPosition.
- Third person shooter sample use object pooling for the projectiles.
Deprecated
- CinemachineConfiner is deprecated. New behaviour CinemachineConfiner3D to handle 3D confining. Use CinemachineConfiner2D for 2D confining.
- 3rdPersonFollow and 3rdPersonAim are deprecated and replaced by ThirdPersonFollow and ThirdPersonAim respectively.
Fixed
- Regression fix: POV and PanTilt handle ReferenceUp correctly.
- Bugfix: Lens blending was wrong.
- Bugfix: CinemachineDeoccluder Pull Forward strategy only pulls forward even with Camera Radius bigger than 0.
- Bugfix: Extensions were not respecting execution order on domain reload.
- Bugfix: AxisState was not respecting timescale == 0.
- Bugfix: priority ordering was wrong when the difference between any priority values were smaller than integer min or bigger than integer max values.
- Bugfix: Very occasional axis drift in SimpleFollow when viewing angle is +-90 degrees.
- Bugfix: Physical lens settings were not being properly applied.
[3.0.0-pre.3] - 2022-10-28
- Bugfix: rotation composer lookahead sometimes popped
[3.0.0-pre.2] - 2022-10-20
- Add Show Hierarchy Icon preference option.
- New icons for cinemachine (cameras, components, extensions, tracks).
- Freelook ForcePosition is more precise now.
- Confiner2D supports BoxCollider2D now.
- Added "Place Objects At World Origin" preference option support.
- Added Channel setting, to use for multiple CM Brains, instead of piggybacking on the layer system.
- CinemachineCollider renamed to CinemachineDeoccluder.
- New inspector and API for composition guides.
- Game View Guides now indicate when they are hot and can be dragged.
- CinemachineTrack assigns the default CinemachineBrain on creation.
- Add support for HDRP 14 (Unity 2022.2).
- Bugfix: StateDrivenCamera/Clearshot: Transition glitch when backing out of a transition in progress.
- Bugfix: Occasional 1-frame glitch when transitioning between some freelooks.
- Bugfix: Transposer with LockToTarget binding sometimes had gimbal lock.
- Bugfix: InputValueGain mode of axis input was not framerate-independent.
- Bugfix: POV starts up in its centered position, if recentering is enabled.
[3.0.0-pre.1] - 2022-06-01
- Upgrade mechanism for upgrading Cinemachine 2 to Cinemachine 3.
- VirtualCamera refactor: CinemachineVirtualCamera is now CmCamera.
- FreeLook refactor: CinemachineFreeLook is now CmCamera with FreeLook Modifier.
- Combine Follow and LookAt Targets to single Tracking Target with optional LookAt Target.
- Add flag for custom priority setting.
- HDRP only: Added FocusDistance setting to lens
- HDRP only: New AutoFocus extension. Use instead of VolumeSettings for Focus Tracking. Includes Automatic mode that queries depth buffer instead of tracking a specific target.
- Added Lens Mode Override property to CM Brain. When enabled, it allows CM cameras to override the lens mode (Perspective vs Ortho vs Physical).
- Added Unity Spline support. Old Cinemachine Paths are deprecated in favour of Unity Splines.
- Added customizable Auto Dolly to cameras and Spline Cart.
- Added IShotQualityEvaluator to enable customization of shot quality evaluation for ClearShot
- Bugfix: No redundant RepaintAllViews calls.
- Bugfix: Collider damping is more robust with extreme FreeLook configurations
[2.9.0] - 2022-08-15
- Bugfix: CinemachineConfiner was not confining correctly when Confine Screen Edges was enabled and the camera was rotated.
- Bugfix: Confiner2D confines to midpoint when camera window is bigger than the axis aligned bounding box of the input confiner.
- Bugfix: 3rdPersonFollow shows a warning message when no follow target is assigned like the rest of the body components.
- Bugfix: FadeOut sample scene shader was culling some objects incorrectly.
- Bugfix: Freelook had wrong heading at first frame, which could cause a slight jitter.
- Bugfix: FramingTransposer and Composer had a slight rounding error in their Bias fields when the Screen X and Y fields were modified.
- Bugfix: Fixed spurious Z rotations during speherical blend.
- Bugfix: Blending speed was not set correctly, when blending back and forth between the same cameras.
- Regression fix: POV is relative to its parent transform.
- Bugfix: SensorSize is not saved when not using physical camera.
- Clipper library dependency is no longer conflicting with users.
- AimingRig sample is only optionally dependent on UnityEngine.UI.
- Bugfix: Transposer with LockToTarget binding sometimes had gibmal lock
- Bugfix: StateDrivenCamera/Clearshot: Transition glitch when backing out of a transition in progress
[2.9.0-pre.7] - 2022-03-29
- Bugfix: memory leak with PostProcessing if no PP layer is present on the camera
- Bugfix: Standalone profiler no longer crashed with CM.
- Bugfix: Cinemachine does not produce compiler error in unity editor versions older than 2020, when Input System package is installed.
- Bugfix: EmbeddedAssetProperties were not displayed correctly in the editor.
- Timeline guards added to scripts that rely on it.
- Bugfix: SaveDuringPlay works with ILists now.
- Bugfix: Paste VirtualCamera and FreeLook components onto prefab works for subcomponents
- Bugfix: CinemachineInputProvider now correctly tracks enabled state of input action
- Bugfix: POV orientation was incorrect with World Up override
- Added AutoEnable option to CinemachineInputHandler
[2.9.0-pre.6] - 2022-01-12
- Bugfix: Negative Near Clip Plane value is kept when camera is orthographic.
- Regression fix: could not change the projection of the main camera if a CM virtual camera is active.
- Regression fix: Axis input was ignoring CM's IgnoreTimeScale setting.
- Removed legacy .unitypackages
- New feature: CinemachineBrain may control other GameObject instead of the one it is attached to.
- Bugfix: Cinemachine assigns a default input controller delegate that returns 0 when the legacy input system is disabled.
- Cinemachine example scenes show informative text when used with Input System instead of throwing error messages.
- Regression fix: compilation errors when physics module is not present.
- GameObjects created with Gameobject menu items now follow Unity naming conventions.
- Regression fix: virtual cameras no longer forget that they are targeting groups on domain reload.
- Moved Cinemachine tools into the main Tools overlay (2022.1+), moved Freelook rig selection to a separate overlay, updated icons to support light and dark themes.
- Bugfix: 3rdPersonFollow logged console messages when looking straight up or down.
- BugFix: InputProvider no longer causes a tiny gc alloc every frame.
- Regression fix: CinemachineCollider smoothing time did not reset correctly, so it was working once only.
- Cinemachine supports Splines package. Added new Body component: CinemachineSplineDolly.
- Bugfix: Overlay tooltip names were incorrect.
- Bugfix: Confiner2D now displays the calculated confining area when its vcam is selected.
- Samples no longer throw errors with HDRP and URP. 3rdPersonWithAimMode and Timeline samples no longer have invalid references.
[2.9.0-pre.1] - 2021-10-26
- Added ability to directly set the active blend in CinemachineBrain.
- Bugfix: OnTargetObjectWarped() did not work properly for 3rdPersonFollow.
- Bugfix: POV did not properly handle overridden up.
- Regression fix: removed GC allocs in UpdateTargetCache.
- Bugfix: async scene load/unload could cause jitter.
- Bugfix: Input system should be read only once per render frame.
- Bugfix: Blends were sometimes incorrect when src or dst camera is looking along world up axis.
- Bugfix: Improve accuracy of Group Framing.
- New feature: Added scene view overlay tools for Cinemachine components.
- Regression fix: Lookahead works again.
- Cinemachine3rdPersonAim exposes AimTarget, which is the position of where the player would hit.
[2.8.0] - 2021-07-13
- Bugfix: Freelook prefabs won't get corrupted after editing the Prefab via its instances.
- Bugfix: 3rdPersonFollow works with Aim components now.
- Bugfix: Blends between vcams, that are rotated so that their up vector is different from World up, are correct now.
- Bugfix: POV recentering did not always recenter correctly, when an axis range was limited.
- Bugfix: Collider sometimes bounced a little when the camera radius was large.
- Bugfix: CinemachineVolumeSettings inspector was making the game view flicker.
- Bugfix: CinemachineVolumeSettings inspector displayed a misleading warning message with URP when focus tracking was enabled.
- Bugfix: Rapidly toggling active cameras before the blends were finished did not use the correct blend time.
- AimingRig sample scene updated with a better reactive crosshair design.
- Added API accessor for Active Blend in Clearshot and StateDrivenCamera.
- Bugfix: Virtual Cameras were not updating in Edit mode when Brain's BlendUpdateMode was FixedUpdate.
- Bugfix: Lens mode override was not working correctly in all cases.
- Collider2D inspector: added warning when collider is of the wrong type.
[2.8.0-pre.1] - 2021-04-21
- Switching targets (Follow, LookAt) is smooth by default. For the old behaviour, set PreviousStateIsValid to false after changing the targets.
- Bugfix: Reversing a blend in progress respects asymmetric blend times.
- Regression fix: CmPostProcessing and CmVolumeSettings components setting Depth of Field now works correctly with Framing Transposer.
- Regression fix: 3rdPersonFollow kept player in view when Z damping was high.
- Regression fix: Physical camera properties were overwritten by vcams when "override mode: physical" was not selected.
- New sample scene: Boss cam demonstrates how to setup a camera that follows the player and looks at the player and the boss. Boss cam also shows examples of custom extensions.
- Added simplified modes to Impulse Source.
- Added secondary reaction settings to Impulse Listener.
- Added Storyboard support for ScreenSpaceOverlay and ScreenSpaceCamera camera render modes.
- Added DampingIntoCollision and DampingFromCollision properties to Cinemachine3rdPersonFollow to control how gradually the camera moves to correct for occlusions.
- Added CinemachineCore.OnTargetObjectWarped() to warp all vcams targeting an object.
- Added ability for vcam to have a negative near clip plane.
- Added Draggable Game Window Guides toggle in Cinemachine preferences. When disabled, Game Window guides are only for visualization.
- Added button to virtual camera inspectors to auto-generate the CinemachineInputProvider component if it is missing.
- Default PostProcessing profile priority is now configurable and defaults to 1000.
- Cinemachine3rdPersonFollow now operates without the physics module and without collision resolution.
- Bugfix: 3rdPersonFollow collision resolution failed when the camera radius was large.
- Bugfix: 3rdPersonFollow damping occured in world space instead of camera space.
- Bugfix: 3rdPersonFollow stuttered when Z damping was high.
- Regression fix: CinemachineInputProvider stopped providing input.
- Bugfix: Lens aspect and sensorSize were updated when lens OverrideMode != None.
- Bugfix: Changing targets on a live vcam misbehaved.
- Bugfix: Framing transposer did not handle empty groups.
- Bugfix: Interrupting a transition with InheritPosition enabled did not work.
- Bugfix: Cinemachine3rdPersonFollow handled collisions by default, now it is disabled by default.
- Bugfix: SaveDuringPlay saved some components that did not have the SaveDuringPlay attribute.
- Regression fix: Entries in the custom blends editor in CM Brain inspector were not selectable.
- GameView guides are drawn only if appropriate inspector subsection is expanded.
- FreeLook rigs are now organized in tabs in the inspector.
- New sample scene: Boss cam sample scene demonstrates a camera setup to follow the player and to look at the player and the boss. The scene provides examples of custom extensions.
- New Sample scene: 2D zoom, showing how to zoom an orthographic camera with mouse scroll.
- New Sample scene: 2D fighters, showing how to add/remove targets gradually to/from a TargetGroup based on some conditions (here, it is the y coord of the players).
- Bugfix: CinemachineCollider's displacement damping was being calculated in world space instead of camera space.
- Bugfix: TrackedDolly sometimes introduced spurious rotations if Default Up and no Aim behaviour.
- Bugfix: 3rdPersonFollow's shoulder now changes smoothly with respect to world-up vector changes.
[2.7.2] - 2021-02-15
- CinemachineConfiner2D now handles cases where camera window is oversized
- New sample scene (FadeOutNearbyObjects) demonstrating fade out effect for objects between camera and target using shaders. The example includes a cinemachine extension giving convenient control over the shader parameters
- Bugfix (1293429) - Brain could choose vcam with not the highest priority in some cases
- Bugfix: SaveDuringPlay also works on prefab instances
- Bugfix (1272146) - Adding vcam to a prefab asset no longer causes errors in console
- Bugfix (1290171) - Impulse manager was not cleared at playmode start
- Nested Scrub Bubble sample removed (filenames too long), available now as embedded package
- Compilation guards for physics, animation, and imgui. Cinemachine does not hard depend on anything now
- Bugfix: CM StoryBoard had a 1 pixel border
- Bugfix: CM StoryBoard lost viewport reference after hot reload
- Bugfix: FramingTransposer's TargetMovementOnly damping caused a flick.
- Bugfix: FreeLook small drift when no user input if SimpleFollowWithWorldUp
- Bugfix: InheritPosition did not work with SimpleFollow binding mode
- Bugfix: cleanup straggling post processing profiles when no active vcams
- Bugfix: Checking whether the Input Action passed to CinemachineInputHandler is enabled before using it.
- Bugfix: 3rdPersonFollow FOV was blended incorrectly when ReferenceLookAt was set to a faraway target
- Bugfix: Position predictor not properly reset
- Bugfix: Create via menu doesn't create as child of selected object
- Bugfix: Post-processing profiles not cleaned up when no active vcams
- Bugfix: Install CinemachineExamples Asset Package menu item was failing on 2018.4 / macOS
- New sample scene (2DConfinerComplex) demonstrating new CinemachineConfiner2D extension.
- Updated CharacterMovement2D script in 2D sample scenes (2DConfinedTargetGroup, 2DConfiner, 2DConfinerUndersized, 2DTargetGroup) to make jumping responsive.
- Updated 2DConfinedTargetGroup and 2DConfiner scenes to use new CinemachineConfiner2D extension.
[2.7.1] - 2020-11-14
- New feature: CinemachineConfiner2D - Improved 2D confiner.
- Added ApplyAfter option to ImpulseListener, to add control over the ordering of extensions
- UI update - Moved Cinemachine menu to GameObject Create menu and Right Click context menu for Hierarchy.
- Virtual Camera Lens inspector supports display of Horizontal FOV
- Virtual Camera Lens can override orthographic and physical camera settings
- Bugfix (1060230) - lens inspector sometimes displayed ortho vs perspective incorrectly for a brief time
- Bugfix (1283984) - Error message when loading new scene with DontDestroyOnLoad
- bugfix (1284701) - Edge-case exception when vcam is deleted
- Storyboard Global Mute moved from Cinemachine menu to Cinemachine preferences.
- Bugfix - long-idle vcams when reawakened sometimes had a single frame with a huge deltaTime
- Bugfix - PostProcessing temporarily stopped being applied after exiting play mode
[2.6.3] - 2020-09-16
- Regression fix (1274989) - OnTargetObjectWarped broken for OrbitalTransposer
- Bugfix (1276391) - CM Brain Reset did not reset Custom Blends asset in inspector
- Bugfix (1276343) - CM Brain inspector custom blends misaligned dropdown arrow
- Bugfix (1256530) - disallow multiple components where appropriate
- Bugfix: BlendList camera was incorrectly holding 0-length camera cuts
- Bugfix (1174993) - CM Brain logo was not added to Hierarchy next to Main Camera after adding vcam for the first time after importing CM.
- Bugfix (1100131) - Confiner is aware of 2D collider's offset attribute.
[2.6.2] - 2020-09-02
Bugfixes
- Regression fix: OnCameraCut Memory leak when using Cinemachine with PostProcessing package
- Bugfix (1272146): Checking for null pipeline, before drawing gizmos.
- Add support for disabling Physics module
[2.6.1] - 2020-08-13
Bugfixes
- Regression Fix: PostProcessing/VolumeSettings FocusTracksTarget was not accounting for lookAt target offset
- Regression fix: Confiner no longer confines noise and impulse
- Bugfix: StateDrivenCamera was choosing parent state if only 1 clip in blendstate, even though there was a vcam assigned to that clip
- Bugfix: vertical group composition was not composing properly
- Bugfix: CinemachineNewVirtualCamera.AddComponent() now works properly
- Bugfix: removed compile errors when Physics2D module is disabled
- Bugfix: brain updates on scene loaded or unloaded
- Bugfix (1252431): Fixed unnecessary GC Memory allocation every frame when using timeline
- Bugfix (1260385): check for prefab instances correctly
- Bugfix (1266191) Clicking on foldout labels in preferences panel toggles their expanded state
- Bugfix (1266196) Composer target Size label in preferences panel was too big
- Bugfix: Scrubbing Cache was locking virtual camera transforms beyond the cache range
- Improved performance of path gizmo drawing
- Timeline Scrubbing Cache supports nested timelines, with some known limitations to be addressed with a future Timeline package release
- Added support for deterministic noise in the context of controlled rendering (via CinemachineCore.CurrentTimeOverride)
- Added Target Offset field to Framing Transposer
- Added Multi-object edit capabilities to virtual cameras and extensions
- Added inspector button to clear the Scrubbing Cache
[2.6.0] - 2020-06-04
New Features and Bugfixes
- Added AxisState.IInputProvider API to better support custom input systems
- Added CinemachineInpiutProvider behaviour to support Unity's new input system
- Added Timeline Scrubbing cache: when enabled, simulates damping and noise when scrubbing in timeline
- Added ManualUpdate mode to the Brain, to allow for custom game loop logic
- VolumeSettings/PostProcessing: added ability to choose custom target for focus tracking
- Added CinemachineRecomposer for timeline-tweaking of procedural or recorded vcam Aim output
- Added GroupWeightManipulator for animating group member weights
- Impulse: Added PropagationSpeed, to allow the impulse to travel outward in a wave
- Impulse: added support for continuous impulses
- Added CinemachineIndependentImpulseListener, to give ImpulseListener ability to any game object
- Added 3rdPersonFollow and 3rdPersonAim for dead-accurate 3rd-person aiming camera
- Added ForceCameraPosition API of virtual cameras, to manually initialize a camera's position and rotation
- Added example scenes: Aiming Rig and Dual Target to show different 3rd person cmera styles
- FramingTransposer does its work after Aim, so it plays better with Aim components.
- Framing Transposer: add Damped Rotations option. If unchecked, changes to the vcam's rotation will bypass Damping, and only target motion will be damped.
- Refactored Lookahead - better stability. New behaviour may require some parameter adjustment in existing content
- Composer and Framing Transposer: improved handling at edge of hard zone (no juddering)
- Orbital Transposer / FreeLook: improved damping when target is moving
- CustomBlends editor UX improvements: allow direct editing of vcam names, as well as dropdown
- Add Convert to TargetGroup option on LookAt and Follow target fields
- Confiner: improved stability when ConfineScreenEdges is selected and confing shape is too small
- Extensions now have PrePipelineMutateState callback
- CinemachineCore.UniformDeltaTimeOverride works in Edit mode
- Added TargetAttachment property to vcams. Normally 1, this can be used to relax attention to targets - effectively a damping override
- Bugfix: Blend Update Method handling was incorrect and caused judder in some circumstances
- Bugfix: VolumeSettings blending was popping when weight was epsilon if volume altered a non-lerpable value
- Bugfix (1234813) - Check for deleted freelooks
- Bugfix (1219867) - vcam popping on disable if blending
- Bugfix (1214301, 1213836) - disallow structural change when editing vcam prefabs
- Bugfix (1213471, 1213434): add null check in editor
- Bugfix (1213488): no solo for prefab vcams
- Bugfix (1213819): repaintGameView on editor change
- Bugfix (1217306): target group position drifting when empty or when members are descendants of the group
- Bugfix (1218695): Fully qualify UnityEditor.Menu to avoid compile errors in some circumstances
- Bugfix (1222740): Binding Modes, that don't have control over axis value range, are not affected by it.
- Bugfix (1227606): Timeline preview and playmode not the same for composer with hand-animated rotations
- Bugfix: Confiner's cache is reset, when bounding shape/volume is changed.
- Bugfix (1232146): Vcam no longer jerks at edge of confiner bound box.
- Bugfix (1234966): CompositeCollider scale was applied twice.
[2.5.0] - 2020-01-15
Support HDRP 7 and URP simultaneously
- Accommodate simultaneous precesnce of HDRP and URP
- Regression fix: Axis was always recentered in Edit mode, even if recentering is off
[2.4.0] - 2020-01-10
HDRP 7 support and bugfixes
- Storyboard: added global mute function
- New vcams are by default created matching the scene view camera
- Added ApplyBeforeBody option to POV component, to support working with FramingTransposer
- Added RectenterTarget to POV component
- Added OnTransitionFromCamera callback to extensions
- Added Damping to SameAsFollowTarget and HardLockToTarget components
- URP 7.1.3: added CinemachinePixelPerfect extension
- Added Speed Mode to AxisState, to support direct axis control without max speed
- New example scene: OverTheShoulderAim illustrating how to do over-the-shoulder TPS cam, with Normal and Aim modes
- Impulse Manager: added option to ignore timescale
- Framing Transposer: added OnTransition handling for camera rotation if InheritPosition
- Upgrade to support HDRP and Universal RP 7.0.0 API
- Upgrade to support HDRP and Universal RP 7.1.0 API
- Removed Resources diretories
- Sample scenes now available via package manager
- Added optional "Display Name" field to Cinemachine Shot in Timeline
- Added "Adopt Current Camera Settings" item to vcam inspector context menu
- Composer and FramingTransposer: allow the dead zone to extend to 2, and the Screen x,Y can range from -0.5 to 1.5
- HDRP: lens presets include physical settings if physical camera
- Regression Fix: Framing Transposer: ignore LookAt target. Use Follow exclusively
- Bugfix: Framing Transposer was not handling dynamic changes to FOV properly
- Bugfix: PostProcessing extension was not handling standby update correctly when on Manager Vcams
- Bugfix: PostProcessing extension was leaking a smallamounts of memory when scenes were unloaded
- Bugfixes: (fogbugz 1193311, 1193307, 1192423, 1192414): disallow presets for vcams
- Bugfix: In some heading modes, FreeLook was improperly modifying the axes when activated
- Bugfix: Orbital transposer was improperly filtering the heading in TargetForward heading mode
- Bugfix: added EmbeddedAssetHelper null check
- Bugfix: composer screen guides drawn in correct place for physical camera
- Bugfix: FreeLook was not respecting wait time for X axis recentering
- Bugfix: FreeLook X axis was not always perfectly synched between rigs
- Bugfix (fogbugz 1176866): Collider: clean up static RigidBody on exit
- Bugfix (fogbugz 1174180): framing transposer wrong ortho size calculation
- Bugfix (fogbugz 1158509): Split brain.UpdateMethod into VcamUpdateMethod and BrainUpdateMethod, to make blending work correctly
- Bugfix (fogbugz 1162074): Framing transposer and group transposer only reached half maximum ortho size
- Bugfix (fogbugz 1165599): Transposer: fix gimbal lock issue in LockToTargetWithWorldUp
- Bugfix: VolumeSettings: handle layermask in HDAdditionalCameraData
- Bugfix: use vcam's up when drawing gizmos (orbital transposer and free look)
[2.3.4] - 2019-05-22
PostProcessing V3 and bugfixes
- Added support for PostProcessing V3 - now called CinemachineVolumeSttings
- Added CinemachineCore.GetBlendOverride delegate to allow applications to override any vcam blend when it happens
- When a blend is cancelled by the opposite blend, reduce the blend time
- Orthographic cameras allow a Near Clip of 0
- Timeline won't auto-create CM brains when something dragged onto it
- Confiner: Improvement in automatic path invalidation when number of path points path changes
- Added CinemachineInpuitAxisDriver utility for overriding the default AxisState behaviour
- CinemachineCameraOffset: added customizable stage for when to apply the offset
- Added Loop option to BlendList Camera
- Improved Lookahead: does not automatically recenter
- Brain no longer applies time scaling to fixed delta
- Added dependency on Unity.ugui (2019.2 and up)
- Bugfix: potential endless loop when using Ignore tag in Collider
- Bugfix: Allow externally-driven FeeLook XAxis to work properly with SimpleFollow
- Bugfix: vcams with noise would sometimes show one noiseless frame when they were activated and standby update was not Always
- Bugfix: Generate a cut event if cutting to a blend-in-progess (fogbugz 1150847)
- Bugfix: reset lens shift if not physical camera
- Bugfix: Collider must consider actual target position, not lookahead position
- Bugfix: FreeLook heading RecenterNow was not working
- Bugfix: lookahead now takes the overridden Up into account
- Bugfix: screen composer guides drawn in wrong place for picture-in-picture
- Bugfix: FreeLook now draws only 1 active composer guide at a time (fogbugz 1138263)
- Bugfix: cameras sometimes snapped when interrupting blends
- Bugfix: Path handles no longer scale with the path object
- Bugfix: Framing Transposer Center on Activate was not working properly (fogbugz 1129824)
- Bugfix: FreeLook inherit position
- Bugfix: collider was pushing camera too far if there were multiple overlapping obstacles
- Bugfix: use IsAssignableFrom instead of IsSubclass in several places
- Bugfix: when interrupting a blend in progress, Cut was not respected
- Bugfix: collider minimum occlusion time and smoothing time interaction
- Bugfix: TargetGroup.RemoveMember error (fogbugz 1119028)
- Bugfix: TargetGroup member lerping jerk when member weight near 0
- Bugfix: Transposer angular damping should be 0 only if binding mode not LockToTarget
[2.3.3] - 2019-01-08
Temporary patch to get around a Unity bug in conditional dependencies
- Removed Cinemachine.Timeline namespace, as a workaround for fogbugz 1115321
[2.3.1] - 2019-01-07
Bugfixes
- Added timeline dependency
- OnTargetObjectWarped no longer generates garbage
[2.3.0] - 2018-12-20
Support for Unity 2019.1
- Added dependency on new unity.timeline
- Added conditional dependence on PostProcessingV2
- No copying CM gizmo into assets folder
- FreeLook: if inherit position from similar FreeLooks, bypass damping
- Timeline: improve handling when vcam values are tweaked inside shot inspector (fogbugz 1109024)
[2.2.8] - 2018-12-10
Bugfixes, optimizations, and some experimental stuff
- Transposer: added Angular Damping Mode, to support quaternion calculations in gimbal-lock situations
- Framing Transposer and Group Transposer: group composing bugfixes, respect min/max limits
- Added ConemachineCameraOffset extension, to offset the camera a fixed distance at the end of the pipeline
- Dolly Cart: added support for LateUpdate
- State-driven-camera: added [NoSaveDuringPlay] to Animated Target and Layer Index
- Added AxisState.Recentering.RecenterNow() API call to skip wait time and start recentering now (if enabled)
- Added NoLens blend hint, to leave camera Lens settings alone
- Updated documentation (corrections, and relocation to prevent importing)
- Upgrade: added support for nested prefabs in Unity 2018.3 (fogbugz 1077395)
- Optimization: position predictor is more efficient
- Optimization: Composer caches some calculations
- Optimization: Fix editor slowdown when Lens Presets asset is missing
- Experimental: Optional new damping algorithm: attempt to reduce sensitivity to variable framerate
- Experimental: Optional new extra-efficient versions of vcam and FreeLook (not back-compatible)
- Timeline: play/pause doesn't kick out the timeline vcam
- Path editor: make sure game view gets updated when a path waypoint is dragged in the scene view
- Composer guides are shown even if Camera is attached to a renderTexture
- Bugfix: allow impulse definition to be a non-public field (property drawer was complaining)
- Bugfix: added null check for when there is no active virtual camera
- Bugfix: CollisionImpulseSource typo in detection of 2D collider
- Bugfix: PasteComponentValues to prefab vcams and FreeLooks were corrupting scene and prefabs
- Bugfix: Timeline mixer was glitching for single frames at the end of blends
- Bugfix: Added OnTransitionFromCamera() to POV and OrbitalTransposer, to transition axes intelligently
- Regression fix: if no active vcam, don't set the Camera's transform
[2.2.7] - 2018-07-24
Mostly bugfixes
- Bugfix: fogbugz case 1053595: Cinemachine Collider leaves hidden collider at origin that interferes with scene objects
- Bugfix: fogbugz case 1063754: empty target group produces console messages
- Bugfix: FreeLook Paste Component Values now pastes the CM subcomponents as well
- Bugfix: added extra null checks to support cases where current vcam is dynamically deleted
- Bugfix: reset BlendList when enabled
- Regression fix: FreeLook axis values get transferred when similar vcams transition
- Bugfix: cutting to BlendList vcam sometimes produced a few bad frames
- Bugfix: smart update tracks the targets more efficiently and correctly, and supports RigidBody interpolation (2018.2 and up)
- Enhancement: POV component interprets POV as relative to parent transform if there is one
- API change: OnCameraLive and CameraActivated events take outgoing vcam also as parameter (may be null)
[2.2.0] - 2018-06-18
Impulse Module and More
- New Cinemachine Impulse module for event-driven camera shakes
- New Event Helper script CinemachineTriggerAction takes action on Collider and Collider2D enter/exit events, and exposes them as UnityEvents
- New performance-tuning feature: Standby Update. Controls how often to update the vcam when it's in Standby.
- New NoiseSettings editor with signal preview
- Added Focal Length or Named FOV presets for Camera Lens
- Added support for Physical Camera: focal length and Lens Offset
- New improved Group framing algorithm: tighter group framing in GroupComposer and FramingTransposer
- Collider: now returns TargetIsObscured if the target is offscreen (great for cameras with fixed aim)
- Collider: added Minimum Occlusion Time setting, to ignore fleeting obstructions
- Collider: added Transparent Layers mask, to specify solid objects that don't obstruct view
- Collider: damping will no longer take the camera through obstacles
- Collider: Added separate damping setting for when target is being occluded vs when camera is being returned to its normal position
- Collider: added Smoothing setting, to reduce camera jumpiness in environements with lots of obstacles
- NoiseSettings: added checkbox for pure sine-wave instead of Perlin wave
- If no LookAt target, PostProcessing FocusTracksTarget offset is relative to camera
- TrackedDolly: Default up mode sets Up to World Up
- Virtual Camera: New Transitions section in inspector that gives more control over blending:
- Blend Hint provides some control over how the position and rotation are interpolated
- Inherit Position checkbox to ensure smooth positional handoff from outgoing camera
- OnCameraLive event gets fired when the camera activates. Useful for custom handlers.
- Added ScreenSpaceAimWhenTargetsDiffer as a vcam blend hint. This influences what happens when blending between vcams with different LookAt targets
- Increased stability of vcams with very small FOVs
- Framing Transposer no longer requires LookAt to be null
- LensSettings Aspect, Orthographic, IsPhysicalCamera, SensorSize properties no longer internal
- Noise Profiles: don't magically create assets. Prompt user for filename and location of new or cloned profiles
- Refactored interaction between timeline and CM brain, to improve handling of edge cases (fogbugz case 1048497)
- Bugfix: StateDrivenCamera Editor was not finding states if target was OverrideController
- Bugfix when dragging orbital transposer transform: take bias into account
- Bugfix: SaveDuringPlay was not handling asset fields correctly - was sometimes crushing assets
- Bugfix: SimpleFollow transposers were not initilizing their position correctly at game start
- Bugfix: Timeline with CM shot was causing jitter in some FixedUpdate situations
- Bugfix: Multiple brains with heterogeneous update methods were not behaving correctly. CM will now support this, but you must make sure that the brains have different layer masks.
- Example scenes now include use of CinemachineTriggerAction script.
[2.1.13] - 2018-05-09
Removed dependency on nonexistant Timeline package, minor bugfixes
- Bugfix: Custom Blends "Any to Any" was not working (regression)
- Bugfix: Composer was sometimes getting wrong aspect if multiple brains with different aspect ratios
- Bugfix: could not drag vcam transforms if multiple inspectors and one is hidden
- Bugfix: Framing Transposer initializes in the wrong place - noticeable if dead zone
[2.1.12] - 2018-02-26
Storyboard, Bugfixes and other enhancements. Also some restructuring for Package Manager
- Project restructure: Removed Base, Timeline, and PostFX folders from project root. PostProcessing code must now be manually imported from Cinemachine menu. No more dependencies on scripting defines.
- New Storyboard extension, to display images over the vcams. Comes with a Waveform monitor window for color grading
- New option to specify vcam position blend style: linear, spherical, or cylindrical, based on LookAt target
- Added API to support seamless position warping of target objects: OnTargetObjectWarped().
- Added support for custom blend curves
- Lookahead: added Ignore Y Axis Movement option
- Added support for cascading blends (i.e. blending from mid-blend looks better)
- POV/Orbital/FreeLook axis: exposed Min, Max, and Wrap in the UI, for customized axis range
- FreeLook: added Y Axis recentering
- POV: Added recentering feature to both axes
- Path: Added Normalized Path units option: 0 is start of path, 1 is end.
- Path: added length display in inspector
- Timeline Clip Editor: vcam sections are now collapsible
- API enhancement: added Finalize to Pipeline stages, called even for manager-style vcams
- Bugfix: PostProcessing V2 DoF blending works better
- Bugfix: OrbitalTransposer works better with WorldUp overrides
- Bugfix: Remove StateDrivenCamera "not playing a controller" warning
- Bugfix: Handle exceptions thrown by assemblies that don't want to be introspected
- Bugfix: vcams following physics objects incorrectly snapped to origin after exiting play mode
- Bugfix: predictor now supports time pause
- Bugfix: Moved StartCoroutine in Brain to OnEnable()
- Bugfix: Collider was causing problems in Physics on Android platforms
- Bugfix: dragging a vcam's position updtaes prefabs properly
- Bugfix: All extension now respect the "enabled" checkbox
- Bugfix: Undo for Extasion add will no longer generate null references
[2.1.10] - 2017-11-28
This is the first UPM release of Unity Package Cinemachine.
- New Aim component: Same As Follow Target simply uses the same orientation as the Follow target
- Perlin Noise component: added inspector UI to clone or locate existing Noise profiles, and to create new ones
- Noise Presets were moved outside of the Examples folder
- Example Assets are now included as embedded package, not imported by default
- Bugfix: FreeLook with PositionDelta was not properly updating the heading
- Bugfix: Transitioning between FreeLooks simetimes caused a short camera freeze
- Bugfix: Added some null checks to FreeLook, to prevent error messages at build time
[2.1.9] - 2017-11-17
Initial version.
Version 2.1.9 cloned from private development repository, corresponding to package released on the asset store