Actor rotation doesn't change in animation blueprint

In first blueprint is how I rotate my character, it works well.
In second animation blueprint actor rotation == 0 always. What may be wrong?

Could it be that your “Character” variable is not being set?

If you remove the Character input from “GetActorRotation” in “Event Blueprint Update Animation” and leave it as “self”, does it still produce 0,0,0?

Character is set of course in animBP and works well, for example, char->get velocity->vectorlength shows what it must, only problem with rotation

Apologies, I didn’t notice that it was your animation blueprint shown in the white box!

If you do a PrintString from the result of Try Get Pawn Owner, do you get the expected owner?

Yes. As I said above everything works well with that actor, only problem is rotation. When I get this actor transform while moving it around location changes but rotation always the same, but it turns visually as it must.

Anyone know a work around for this? UE5 doesn’t seem to update the actors rotation in animation blueprints either.

Figured out a workaround. I created an “angle” variable in my character blueprint which is updated in the tick event and made it public so my animbp could read it.

I submitted a bug report.

I have same problem…

Old thread but I had the same issue and poked around in code to dig up the cause (in my case, anyway). In case someone stumbles upon this - I suspect the issue is the “control rotation” (driven by PlayerController) fighting your character BP for which is actually setting the actor’s rotation.

By default this setting is true, which causes some code to update the character rotation (which is subsequently stomped on by your character BP). Untick this box and you’ll likely be good to go.

character-controlrotation

Old thread as it may be, it’s 100% wrong.

Animation blueprints should have exactly 0 code/logic.

The rotation happens on the actor - the actor sends a value to the animation blueprint - the animation blueprint uses that value somewhere (in a state machine).

This was indeed wrong from inception, its just that epic never bothered correcting any sample code, so its been wrong for 10 plus years.

Second.
The “rotation” for an actor means next to nothing to an animation because the animations are in Local space.

Third.
after a cast you always Is Valid at least once before use.
This prevents crashes as well as editor warnings.

Fourth, in case the preamble wasnt clear.
Send the rotation from the cbaracter BP to the animation blueprint by:

  1. drag in skeletal mesh. Drag off it. Type anim instance.

  2. cast anim instance to class.

  3. validate value (isvalid?) And store. On false, probably repeat the process, or issue a warning.

  4. save value of casted/validated animation blueprint.

  5. set a bool when is valid is true.

  6. on tick or whatever, check the bool you stored before using the animation blueprint variable.
    Or, possibly check that the variable is not null (type == out of a drag. Compare to nothing).

  7. drag off the animation blueprint variable, and set the rotation variable value to the character rotation.

Done.