Thanks for the details ! It is an interesting case indeed. Having re-read the whole thing, I understand much better know. I initially missed the fact that we're lerping from the current pos for a chase-behaviour.
And no need to apologise ! I hope I didn't make you feel you had to, because I didn't mean to be hard or aggressive or anything. My apologies, instead
If you don't like the lerps, why not breakdown the computations and do something you understand and you're comfortable with ; something you can re-use and tweak in future projects, and not rely on black-voodoo-magic. Is it important that your gun catches up exactly in x frames ? If not, maybe something like :
Every tick, if the Gun.pos is far from Player.ImagePoint
compute direction dir towards the destination : dir = Player.ImagePoint - Gun.pos
compute normalised vector v towards the destination : v = dir/dir.length (so that this vector has a length of 1)
move Gun along v depending on its speed and dt : Gun.pos = Gun.pos + Gun.speed*dt*v
for good effect, add a clamp() to make sure you don't overshoot if the gun is already close to the mount point
It's a bit less fancy, but if that makes more sense to you, maybe it'll be easier to get it to work the way you want. This ensure uniform speed, but doesn't guarantee the time for the Gun to catch up with the destination.
(for people interested in this kind of problems and modelisation, a spline arc-length reparametrisation would be a good fit. Out of the context of C2 built-in behaviours, but maybe a useful plugin )