NathanSweet
cd982be60b
Fixed NaN when entire path or individual curve lengths are zero, eg when scaled to zero.
2016-09-15 13:16:31 +02:00
NathanSweet
dfe8e3b826
Refactoring bone transforms.
2016-09-15 13:16:26 +02:00
NathanSweet
56797953c2
Another try at disable inherit scale.
...
Still inherits shear and it flips with negative scale.
2016-09-07 10:59:17 +02:00
NathanSweet
0ecef9b2c5
Multiple mixingFrom animations.
2016-09-03 22:47:05 +02:00
NathanSweet
263b47c376
Proper rotation mixing.
...
#621
2016-08-29 19:45:08 +02:00
NathanSweet
b6660fa41c
Don't add skeleton position to bone worldX/Y.
2016-08-29 19:44:40 +02:00
NathanSweet
6bb3e49627
Remember all settings.
2016-08-29 19:44:26 +02:00
NathanSweet
7292b7d720
Lines for skeleton origin.
2016-08-29 14:21:14 +02:00
NathanSweet
ae7ca98b8e
Allow attachment loader to return null.
2016-08-27 14:53:02 +02:00
NathanSweet
bae19bdf32
Only compute timelinesLast for tracks that need it.
2016-08-25 16:03:07 +02:00
NathanSweet
81d7c1daeb
Never prefer empty animation when interrupting a mix.
2016-08-24 22:27:02 +02:00
NathanSweet
a840f4f959
Added timelinesLast to determine when to fade out. Clean up, fixes.
2016-08-24 21:04:25 +02:00
NathanSweet
5edcd916cc
Changed skeleton x,y to be propagated using the root bone world x,y.
...
Can't remember any good reason not to do this.
2016-08-24 21:02:55 +02:00
NathanSweet
5c9b41a748
Clean up.
2016-08-23 22:36:32 +02:00
NathanSweet
d9a1d76471
Moved interrupt to before start.
2016-08-23 21:28:16 +02:00
NathanSweet
014f229af9
Clean up, javadoc.
2016-08-23 18:25:01 +02:00
NathanSweet
c9fdfdf501
Added mixDuration resetTrack, added set/addEmptyAnimation methods.
2016-08-23 18:08:49 +02:00
NathanSweet
fd81d31278
Fixed resetTrack when a default mix time is used.
2016-08-23 17:38:37 +02:00
NathanSweet
bc05861a0c
Added resetTrack.
2016-08-23 17:09:59 +02:00
NathanSweet
3c57c03952
Searching for sanity.
2016-08-23 16:39:16 +02:00
NathanSweet
0a90565ba1
AnimationState#apply has no side effects.
2016-08-23 09:55:06 +02:00
NathanSweet
285aead074
Draw order timeline.
2016-08-22 22:54:58 +02:00
NathanSweet
4c2d2b0c0a
Moved track changes to update, so AnimationState can be applied to multiple skeletons without side effects.
...
Also:
- Moved queue drains outside of update loop.
- Better naming.
- Dirty flag after animations have been changed to avoid computing timelinesFirst more times than needed.
- Don't use timelinesFirst when mix == 1.
2016-08-22 21:39:42 +02:00
NathanSweet
ef2a440655
Always mix, even when mix duration is 0, to give the old animation a chance to reset its changes.
2016-08-22 19:39:48 +02:00
NathanSweet
42e3b95e33
Better timelines.
2016-08-22 16:51:45 +02:00
NathanSweet
280024a685
Added mixingOut parameter to Timeline#apply so timelines know which direction mixing is happening.
...
See ScaleTimeline which uses this to know which scale sign to use.
2016-08-22 14:43:33 +02:00
NathanSweet
b4924b0a49
Experimental WIP for mixing unkeyed bones to setup pose.
...
#621
2016-08-21 20:58:40 +02:00
NathanSweet
c59a58ae5b
Comment
2016-08-21 08:23:55 +02:00
NathanSweet
8f4ad90a17
AnimationState, allow delay to postpone the current track entry.
...
#621
2016-08-20 18:52:13 +02:00
NathanSweet
23f16c016c
AnimationState, don't mix from an animation that was never applied.
2016-08-20 17:59:55 +02:00
NathanSweet
a39c970a6a
AnimationState, javadoc, cleanup, tests.
...
#621
2016-08-20 15:47:13 +02:00
NathanSweet
0a8896a3e2
More AnimationState refactoring.
...
- Added `animationStart` so a portion of an animation can be looped.
- Changed timing fields to: trackTime, trackLast, trackEnd, animationStart, animationEnd, animationLast
- Removed default *Threshold fields. People can just set it on the track entry if they don't like the defaults.
- Removed `loopCount` from complete event. People can calculate it based on track time.
#621
closes #535
closes #593
2016-08-20 11:51:56 +02:00
NathanSweet
966c03e68f
AnimationState refactoring.
...
- Renamed `previous` to `mixingFrom` for clarity.
- Added `trackEntry` method to fully initialize TrackEntry.
- Moved `mixDuration` initialization to happen when TrackEntry is initialized. This allows mix times to be specified (or changed) through the TrackEntry, without using AnimationStateData.
- Made EventQueue static to ease porting.
- Javadocs.
#621
2016-08-19 19:14:17 +02:00
NathanSweet
4912ea8975
Fixed start event not being triggered when addAnimation is used on an empty track.
...
closes #634
2016-08-19 11:32:29 +02:00
NathanSweet
6aca4bd141
Updated AnimationState tests.
2016-08-19 11:21:56 +02:00
NathanSweet
b454d69b45
Fixed lastTime being > time for non-looping animations.
2016-08-19 11:21:44 +02:00
NathanSweet
5191cf4f5f
Wait until end of current loop when queuing an animation.
...
closes #626
2016-08-19 11:20:32 +02:00
NathanSweet
296d019bac
Formatting.
2016-08-19 08:47:43 +02:00
NathanSweet
e4e312626b
Better scale sign computation.
2016-08-18 21:59:30 +02:00
NathanSweet
5edeeb6035
When mixing scale, the sign of the last applied scale is used to avoid mixing across zero.
...
#621
2016-08-18 16:51:50 +02:00
NathanSweet
127c0fbbf5
AnimationState, added draw order threshold.
2016-08-18 15:17:13 +02:00
NathanSweet
c278cf77fb
Added event toasts to Skeleton Viewer.
2016-08-18 15:16:59 +02:00
NathanSweet
cc4f19da98
AnimationState, added attachment threshold. Defaults changed to NOT apply attachment timelines or fire events for an animation being mixed out.
...
#621
2016-08-18 14:46:15 +02:00
NathanSweet
b020bc0d44
Added event threshold setting to AnimationState.
...
#621
2016-08-18 14:05:24 +02:00
NathanSweet
6cc91d579c
Fixed world scale.
2016-08-18 11:01:57 +02:00
NathanSweet
c5d3d84f71
Better disable inherit rotation.
...
But not good, flips with negative scale.
2016-08-15 16:19:33 +02:00
NathanSweet
3160077207
Fixed Skeleton copy constructor.
...
It wasn't copying each bone's children.
2016-08-14 08:09:58 +02:00
NathanSweet
5a7cbf0a41
Removed world sign.
...
Doesn't make sense to compute a value that the runtime no longer uses and is unlikely for application code to need. If application code does need it, it's trivial to walk up the bone hierarchy and calculate it.
2016-08-13 20:08:07 +02:00
NathanSweet
5a45d3df30
Fixed IK constraint child bone using uninitialized world transform to calculate applied transform.
2016-08-13 19:57:23 +02:00
NathanSweet
217aa60c4f
Finished "applied transform" for arbitrary constraint order.
2016-08-13 08:38:41 +02:00