I'm making a FPS game, I like to move camera back(relative to local coordinate) to simulate powerful recoil. So I do the following: 1.AK47 is a gun model with arm, and the virtual camera follow it. 2.gameobject named "Impulse" has Cinemachine Impulse Source component, and raw signal is Recoil Noise.asset. 3.Recoil Noise.asset only set Position Z with Frequency 4 and Amplitude 1. 4.call _impulseSource.GenerateImpulse method. Code (CSharp): //_impulseSource.GenerateImpulse(); _impulseSource.GenerateImpulse(transform.forward); // transform is gun model itself I try these two method, and the camera just move along with Z(world coordinate) and back, no matter what direction My gun model facing to. So my question is how to make camera move back(relative to local coordinate of gun model).