[GASP UE 5.5] Can't get player character to face along the camera forward at 0 velocity

Hello, I hope everyone is doing well.

I’m using the Game Animation Sample Project in UE 5.5, I’ve added guns and aimed fire which is working great. I’m trying to implement hip fire.

In the function, UpdateRotation_PreCMC of CBP_SandboxCharacter, I’ve disconnected the whole execution and manually set

UseControllerDesiredRotation = true
OrientRotationToMovement = false
RotationRate = (0,0,-1)

This allows the character to look towards where the camera is facing. However, when the character stops moving, he stops following the direction of the camera and instead the camera starts moving around the character according to the camera input. I’ve searched a lot in the CBP and ABP but I can’t seem to find where this is implemented. When I debug the value of UseControllerDesiredRotation or OrientRotationToMovement or UseControllerRotationYaw, they don’t change based on character velocity. Kindly help me.

Hey Rafay, sounds like you’re on the right track! You’ve correctly identified the key settings — UseControllerDesiredRotation = true and OrientRotationToMovement = false — to make the character face the camera direction. But the issue you’re facing at 0 velocity is likely due to the animation blueprint (ABP) or character movement component still overriding your rotation when the character stops. UE5’s sample projects often have extra logic tied to velocity, especially within the AnimBP or movement mode transitions, which can reset or ignore your rotation settings when idle.

To fix this, I’d recommend checking the animation blueprint’s state machine and any blendspaces or rotation logic (like AimOffset or Rotate Root Bone settings). Also, ensure that UseControllerRotationYaw is enabled consistently and not being toggled off somewhere based on movement. It might help to create a custom boolean like bIsHipFiring and use that to control the rotation behavior manually, especially during idle. Keep debugging and tracing those settings frame by frame — that’s usually where the hidden override happens!

Regards

1 Like

Found the real issue, it was in ABP_SandboxCharacter function Update_States where it was setting movement state based on another function IsMoving, I just added a check before it so that it would only go into the moving state when hip firing and the Xdelta from Get_AOValue was greater than a certain amount of degrees (90) or the character was actually moving using the original logic. And obviously add IsHipFiring in addition to CharacterInputState.WantsToAim for the Weapon Overlay Blends. Thank you so much

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