Feedback about Cinemachine

Some of these feedback might have been already implemented and I haven’t found out about it yet :slight_smile:

About the CM freecamera:

  • it could be cool to have a simple way to quickly recenter the camera, like camera.RecenterNow();
  • I’m not concern about it, but a checkbox to invert controls.

About the CM collider:

  • When walking on a slope, the collider should check if it can go “UP” before going “Forward” that cause zoom jittering when going down a hill for instance.

  • Temporize the camera zoom when colliding to avoid zoom jittering.

  • You already know that, but collider doesn’t seem to work if “Preserve line of sight” is not enabled.

  • Hook to the Occlusion Culling to see if the “target” is in an occluded area.

  • have a checkbox to have a “FPS view” if the camera is in “Minium distance from camera”

For the error:
Attempted to use HeadingDerivationMode.Velocity to calculate heading for /CM FreeLook1/TopRig. No RigidBody was present on Defaulting to position delta

As the CharacterController have velocity on it, It should not be necessary to add a rigidbody.

That’s it for now :slight_smile:

FreeLook:
-Right now the simplest way is just setting your X/Y Axis values inside Inspector window, or you can just make simple editor script where you will be settings those values before CM team will make something.
-Checkbox is coming Freecamera axis inversion - Unity Engine - Unity Discussions

About the resetting, I wrote a little script for now, just add it to your FreeLook camera, set your values and click on the little gear icon on the right to reset the values.

using UnityEngine;
using Cinemachine;

public class FreeLookReset : MonoBehaviour {
    public float X_Value;
    public float Y_Value;
    [ContextMenu ("Reset")]
    void Reset()
    {
        GetComponent<CinemachineFreeLook>().m_XAxis.Value = X_Value;
        GetComponent<CinemachineFreeLook>().m_YAxis.Value = Y_Value;
    }
}
1 Like

Thanks Jacob, I did almost the same but added the EulerAngle so it automaticaly get behind the player

        public void ReinitCamera()
        {
            cinemachineFreeLook.m_XAxis.Value = mainChar.transform.rotation.eulerAngles.y;
            cinemachineFreeLook.m_YAxis.Value = 0.5f;
        }
1 Like