Dynamic movement with FPS mesh while looking around/moving

I’m trying to replicate an effect that is present in most first person games which is the movement of the first person mesh while looking around or moving. For example, if the player looks up, the first person mesh (hands/weapon) would slightly drag behind the camera, causing it to sort of ease into position. Such an effect is present in Counter Strike and similar games.

How can I add this effect? I would prefer through C++ but if a simpler Blueprints method is available then that is fine.

Video by CSPSpy (Source SDK):

The concept behind it is getting the weapon model’s current position and interpolating it to the next.
Unfortunately, I am still beginning C++ and have no idea how to implement this at the moment. Nor have I tried doing it in Blueprints.

P.S. It’s also called “Weapon Sway”.

However, here are some links which may be useful:
How do i make my weapon sway? - Unity Answers ,


“Free Aim” - Red Orchestra-like.

float FreeaimMultiplier = 5.0f;

float Pitch = FreeAim.Y;
float Yaw = FreeAim.X;
Pitch *= FreeaimMultiplier;
Yaw *= FreeaimMultiplier;

SetRelativeRotation(Pitch,Yaw, 0);

// Code by Aussiemandias (Jlea on YouTube).

Hope it helps and good luck achieving it and do share if you did. :slight_smile:

Thanks for the great reply. I’ll play around with it and share when I find the effect I like!