In the attached project, the controller Blueprint is set to apply rotation based on a pair of bool values indicating whether the A (Rotate Left) or D (Rotate Right) keys are pressed. The controller Blueprint has a function (Apply Rotation) that is called on tick that calls Add Yaw Input and provides either a negative or positive input depending on which key is pressed.

When the Apply Rotation function is called from within the controller Blueprint, the yaw input is not actually applied. However, if the character Blueprint gets its controller and casts to it, then calls Apply Rotation, the yaw input is applied as expected. It is unclear why the yaw input functions as expected when called from the Character Blueprint, but not when called from the Controller Blueprint.

No. The same behavior occurs in 4.20.3 (and reportedly in previous versions of the Engine as well).

Steps to Reproduce
  1. Download the attached project.
    • Project created in Main at CL 4573698.
  2. Associate the project with your Engine.
  3. Open the project in the Editor.
  4. Start PIE.
  5. Click in the viewport to give the viewport focus.
  6. Press the A and/or D keys to attempt to rotate the camera.
    • Note that nothing happens.
  7. Stop PIE.
  8. Open the BP_TestCharacter Blueprint.
  9. In the Event Graph, connect the execution pin from the Cast To BP_TestController node to the Apply Rotation node.
  10. Compile and save the BP_TestCharacter Blueprint.
  11. Start PIE.
  12. Press the A and/or D keys to attempt to rotate the camera.

The camera only rotates as expected when the Apply Rotation function in the BP_TestController is called from within the BP_TestCharacter Blueprint.

The camera rotates as expected with Apply Rotation being called from within the BP_TestController Blueprint.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-66786 in the post.

Login to Vote

ComponentGameplay - Blueprint
Affects Versions4.
CreatedNov 20, 2018
UpdatedNov 22, 2018