XPlane2Blender
XPlane2Blender copied to clipboard
Imp: Animation Overview
Things have gotten pretty messy with all these bug reports in disarray, so, here is my attempt to collect them all and update it
Animation Stack Algorithm
- [ ] Animation push down stack algorithm
- [x] Algorithm handles 0 levels of nesting
- [x] Code
- [x] Unit test (simple_locrot.test.blend)
- [ ] Algorithm handles 1-n levels of nesting
- [x] Code
- [ ] Unit test (covered by unfinished permutations testing)
- [x] Algorithm handles 1 dataref
- [x] Code
- [x] Unit test (simple_locrot.test.blend)
- [ ] Algorithm handles n datarefs
- [x] Code
- [ ] Unit test
- [x] Algorithm handles 0 levels of nesting
- [ ] Correct parent is given
- [x] ROOT is used when no nesting
- [x] Code
- [x] Unit test (covered by simple_locrot.test.blend)
- [x] Animated TRIS uses top of stack for parent
- [x] Code
- [x] Unit Test (testing that nested levels works, basically)
- [x] ROOT is used again after last ANIM_end is encountered
- [x] Cube
- [ ] Unit test
- [x] ROOT is used when no nesting
So, as you can see we're missing unit testing for the complex cases
Features
-
[ ] Multiple location dynamic datarefs (v1: 1, v2: 2, "dref1", v1: 34, v2: 56, "dref2") do not overwrite each other, add keyframes on 1, 2, 3, and 4 - See #640
-
[ ] Multiple copies of the same dataref with different values (v1:-1, v2: 1, "dref1", v1:444, v2: 777, "dref1") count as 2 datarefs that would take up keyframes 1 - 4
- [ ] Code
- [ ] Unit test
-
[x] Show/Hide works
- [x] Code
- [x] Unit test (show_hide_show.test.blend)
-
[x] Keyframe Loop #656
- [x] Code
- [ ] Unit test (keyframe_loop.test.blend)
-
[x] ANIM_trans/rotate v1,v2,dataref parsed
- [x] Code (but, should this matter? After all, we're going to optimize this away right?)
- [ ] Unit test
-
[x] All directives themselves have been covered
Optimizations
Currently we make an empty for each dataref encountered, which creates lots of unneeded empties.
- [ ] Flatten and combine animations for all parent-single-child-children
- [x] Code
- [ ] Unit test (covered by hide_show_hide.test.blend, need cover for proving rotations flatten)
- [ ] Turn static ANIM_trans/rotate animations into location/rotation offsets instead of animations
- [ ] See #654 and #652
- [ ] Turn ANIM_trans/rotate_keys that turned out to be static into an ANIM_trans/rotate directive
- [ ] See #653