Hello!
To support a wide variety of intended animation systems and styles, especially where multiple layers of animation are involved, the current implementation of the runtime doesn't automatically reset skeleton parts the way the editor does between Animations.
You need to explicity code what you want to happen and put animation keys where it's needed, etc.
If one animation needs to have certain parts at a specific pose, you need to key them. This is because any other animations could be keying them too.
For cases without mixing, it's as easy as addding this code:
void Start () {
// Make the Skeleton return to Setup Pose every time a new Animation starts playing.
skeletonAnimation.state.Start += delegate {
skeletonAnimation.skeleton.SetToSetupPose();
};
}
For cases with mixing, this experimental implementation of AnimationState removes certain requirements for where you need to place keys. It's not for everyone, but it makes more assumptions and it removes the task of matching keys between animations in Spine editor if you only have one layer of animation.
A future version of the standard AnimationState will have the behavior of this experimental version as an option. This will likely happen a while after Spine 3.3 is released.