bevy
bevy copied to clipboard
Scheduling dependency for animation systems relative to `inherit_weights` is probably backwards
Explanation
bevy_animation::animate_targets
currently runs after bevy_render::mesh::inherit_weights
(which sets the MeshMorphWeights
of child entities based on MorphWeights
of the parent. MorphWeights
is what animate_targets
actually animates (i.e. overwrites), which means that currently there is a one-frame delay between the setting of MorphWeights
by the animation system and its propagation to child entities.
Desired fix
Invert this ordering. Ideally (long-term), maybe we could lump inherit_weights
in with transform propagation in the same bin in PostUpdate
to have other things order relative to. Basically, from my perspective, "animation stuff" should generally run prior to "propagation stuff" which should generally run prior to rendering.