Why do we need to pass Get Control Rotation to Spawn Actor?

I just finished watching section 1 and video 22 in Unreal Engine 5 C++ Developer: Learn C++ & Make Video Games.

The mentor Mr. Pattuzzi explained how to fire a projectile with blueprint as follows (except for the line joining Get Control Rotation and SpawnActor BP Projectile nodes that I intentionally removed).

In my mental model, when the projectile is just a sphere, spawning it with Spawn Transform Location suffices. We don’t need to specify Spawn Transform Rotation because no body can see the orientation of the spawned spherical projectile.

Still in my mental model, when a projectile is spawned, its initial velocity is zero. And if I apply an impulse in the forward direction of the player, the projectile will move in that direction regardless of the the spawning rotation.

Based on this hypothesis, I remove the line joining the Get Control Rotation and SpawnActor BP Projectile nodes but unfortunately the projectile now moves unexpectedly.

Could you tell my why Get Control Rotation is mandatory to spawn projectile even though the direction of applied impulse is already given correctly (with forward vector)?

They are two different things. Consider this magnificent paint illustration.
image

Say red is the projectile and the black is the pawn, the arrow shows the forward/control rotation. Up is also forwards in the world.

If you remove the control rotation the spawned projectile then this is an illustration of looking right
image
The projectile wouldn’t have been rotated so the forwards vector of it is the same.

You could add an arrow component or, a persistent debug line, or a non symmetrical mesh to showcase this.

Thank you very much master Dan!

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.