Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Feedback about Cinemachine

Discussion in 'Cinemachine' started by sebsmax, Jul 24, 2017.

  1. sebsmax

    sebsmax

    Joined:
    Sep 8, 2015
    Posts:
    118
    Some of these feedback might have been already implemented and I haven't found out about it yet :)

    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 :)
     
    Last edited: Jul 24, 2017
  2. JakubSmaga

    JakubSmaga

    Joined:
    Aug 5, 2015
    Posts:
    417
  3. JakubSmaga

    JakubSmaga

    Joined:
    Aug 5, 2015
    Posts:
    417
    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.

    Code (CSharp):
    1. using UnityEngine;
    2. using Cinemachine;
    3.  
    4. public class FreeLookReset : MonoBehaviour {
    5.     public float X_Value;
    6.     public float Y_Value;
    7.     [ContextMenu ("Reset")]
    8.     void Reset()
    9.     {
    10.         GetComponent<CinemachineFreeLook>().m_XAxis.Value = X_Value;
    11.         GetComponent<CinemachineFreeLook>().m_YAxis.Value = Y_Value;
    12.     }
    13. }
     
    sebsmax likes this.
  4. sebsmax

    sebsmax

    Joined:
    Sep 8, 2015
    Posts:
    118
    Thanks Jacob, I did almost the same but added the EulerAngle so it automaticaly get behind the player

    Code (CSharp):
    1.  
    2.         public void ReinitCamera()
    3.         {
    4.             cinemachineFreeLook.m_XAxis.Value = mainChar.transform.rotation.eulerAngles.y;
    5.             cinemachineFreeLook.m_YAxis.Value = 0.5f;
    6.         }
     
    JakubSmaga likes this.