How to move a GameObject to get Cinemachine working smooth?

Hi there!

First of all, i want to appreciate Cinemachine dev team for the great tool! At this moment i working on mobile flight simulator and i’m sure that the Cinemachine able to implement all my ideas out the box. But, i have some troubles to understanding how working with that in some cases.

To move fighters i have my own controller that hard control angular speed, movement speed and other properties and it works in Update() method.
My problem is - jet fighters move extremely fast (up to 1000 m/s on the high altitude) and in this case, any frame time spikes have huge effect to Cinemachine smooth experience. I don’t know what type of Magic happens “under hood” to dumping and smoothing, but i really don’t understand what goes wrong.

There is simple moving, it have a huge jittering.

public class Moving : MonoBehaviour
{
    private void Update() => transform.Translate(Vector3.forward * Time.deltaTime * 1000f);
}

You can check it in a ready example, that i have attached to the thread.

Can anybody help me and explain, how i need to move an objects from C# script to get Cinemachine smooth tracking?

Unity 2021.1.3f1
Cinemachine 2.7.3

7057786–838054–Cinemachine Jitter Test.zip (28 KB)

Hi
I think, you will get a better result if you use physics and FixedUpdate to move your airplanes. Unity - Scripting API: MonoBehaviour.FixedUpdate()

CinemachineBrain will detect that your target is updated in Fixed Update. (If not, you can change the CmBrain’s UpdateMethod to Fixed Update).

Thanks for the answer

Yes, using FixedUpdate give smooth results But this approach means move all components that working with Camera or Tracked objects to FixedUpdate. It huge part of game mechanics (HUD markers, Ryacast checkings, interception point calculations, aiming a missiles and turrets and etc).

Does it good practice?