Download

Controller is created after Animation

If I want to access the Controller of a pawn in Initialize Animation Event, the Controller is always invalid.

If I want to access to Controller within Update Animation Event or within a pose, it is invalid only once, after that it works.
Which indicates that the Controller is created AFTER the Animation.

This horrible for an input-driven AnimationBlueprint.

If you suggest to “move the Input to the Pawn class” : No.

The output is “Invalid”

You can just add a half second delay node to solve your problem. But the input events are better to be on pawn for many reasons.

The purpose of the controller is that you can reuse it with different pawns.
If i put the input in every pawn I control, the code is duplicated. Code duplication is almost everytime a bad style.
It makes the controller class useless If I need to put the controls in my pawns.

Delay won’t work, since I use the controller in some poses.

Input is pawn specific so it must be in pawns. A character pawn uses the input differently than a vehicle pawn. You get around code duplication by having a master character with all logic inside and many child blueprints that inherit from the master character. Also it is a bad idea to use the controller in game logic because it exists only in the server and on owning player. If in future you decide to add multiplayer in your game you will have to redo all your blueprints.