Why is Animation Blueprint Update is called before Begin Play?

4.17 has added a new Begin Play event for Animations Blueprints. However I just tried using it instead of Initialize, but found that Update is called before the Begin Play event. What is the point of having a Begin Play event if it is not called before the first Update tick. Normally you would use Begin Play to set up references and such to things like the Character, which Update is expecting to exist. So I’ve just had to go back to using Initialize instead as it is always called before the first Update. Seems like Begin Play is a bit of a waste of time unless there is some other use case for it I’m not aware of.

Still having this problem to this day

The tool tip reads “executed when being play is called on the owning component”…
Is Begin Play called in your owning component?

Ether way, as per the tool tip Begin Play is not where one would initialize things. Just like Begin Play, this is not supposed to be where where you initialize things.
Normally, you override the construction script to take care of initialization and storing of one-off calculations.

Either way, you should probably file a bug report here.
In my brief test with a print string I have the following stack
Update Anim
Anim Begin Play
Character begin play

that’s just off, going by their own tool tips…

Yes, file a bug report please. This is not working as expected and I never ended up using it because of it.

That’s interesting because I’m using the Update event without any BP errors. Then again I’m doing initialization in Initialize Animation and not Begin Play (I think).

You are not the only one:

In the meantime you could actually get the same basic functionality by initializing your variables on AnimUpdate using a DoOnce or a Gate. It’s not ideal since it does add a single branch on each AnimUpdate, but in practice you won’t notice it.