I'm trying to make a sniper aim prediction for an Unreal Engine 4 game. I've found this interesting question Projectile Aim Prediction with Acceleration, and I tried to implement in C++ what DMGregory said. The result I got isn't bad at all, but I've some doubts about something in his explanation.
First, what does he mean with
v_T? Should I calculate it as
FVector v_T = targetVelocity - myVelocity;
FVector v_T = targetVelocity - myPosition;?
myPosition are respectively the velocity and the position of the shooter (me).
Then, I noticed that the sniper projectile trajectory doesn't seem to be a perfect parabola, so I avoided the
v_p calculation, and I've simply calculated the predicted target position as
FVector predictedTargetPosition = targetPosition + targetVelocity * deltaTime + targetAcceleration * deltaTime * deltaTime * .5f;
where the 3 vectors
targetAcceleration are relative to the game world axis.
After that, I simply added to the Z component of the predictedTargetPosition the following amount:
recalculatedTargetPosition.Z += fabs(bulletAcceleration.Z) * deltaTime * deltaTime * .5f;
in order to compensate the loss of height of the projectile in time.
What do you think about it?
Thanks in advance.