The third person controller may seem pretty hard coded however its actually very configurable and scriptable.
All functionality in the 3rd Person Controller is located in the Third Person Controller blueprint under the Character Movement
component.
If we want custom rotation for example, we can go to the rotation section
Then disable Orient Rotation to Movement
. This disables the rotation system and ensures we can now manipulate it.
To recreate this functionality (but in a more primitive way), we can just set our rotation every tick to the current velocity vector.
Now the player will run similarly, and then look forward when the direction vector is 0,0,0. We can further modify this now to better fit our rotation, whether in an AIM
state or elsewhere.