The owl example project was not keying the control bone, leading to incorrect additive blending. The export.sh and runtimes.sh script in example/export did not account for the folder structure change in spine-ts.
Previously: When a bone in the update cache is updated, the local transform is used. This causes any applied transform to be lost, losing the pose from any previously applied constraints.
After this commit: Before processing the update cache, first all bones applied transform is set to the local transform. Next, when a bone in the update cache is updated, the applied transform is used. This keeps the pose from any previously applied constraints. Additionally, instead of using the `appliedValid` flag, the applied transform is always updated after making changes to the world transform.
Forum discussion:
http://esotericsoftware.com/forum/Editor-Parent-constraint-order-breaks-child-constraints-15774?p=69494#p69494
Commit a321aa76d556a618a09abb3adeb7473a6c099304 added "|| timeline instanceof EventTimeline" to `computeHold`, so event timelines always use FIRST, never HOLD. This changed the timing slightly and broke the test, but the new timing is better.
* Timeline is an abstract base class rather than an interface.
* Timelines have a list of String property IDs rather than a single int ID.
* CurveTimeline is separated into percent and value timelines and the API is cleaned up.
* CurveTimeline stores Bezier curves more efficiently. Linear/stepped keys used to take up memory they didn't use (18 floats/key).
* Binary format knows how many keys are Bezier up front for more efficient loading.
* RotateTimeline is no longer limited to -180/180.
* ScaleTimeline and ShearTimeline no longer extend TranslateTimeline.
* PathConstraintSpacingTimeline no longer extends PathConstraintPositionTimeline.
AnimationStateTests failure was caused by a321aa76d556a618a09abb3adeb7473a6c099304, when `computeHold` was added, specifically `|| timeline instanceof EventTimeline`. The slight event order difference is unlikely to be an issue for anyone.