XPlane2Blender icon indicating copy to clipboard operation
XPlane2Blender copied to clipboard

Imp: Animation Overview

Open tngreene opened this issue 3 years ago • 0 comments

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
  • [ ] 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

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

tngreene avatar Mar 01 '21 22:03 tngreene