Page MenuHome

depgraph failure (and success) examples per ton's request
Closed, InvalidPublic

Description

From the meeting notes:
- Animation system: the dependency graph still fails in cases where
2.4x did work. Bassam Kurdali will provide simple .blend cases for bug
tracker. Ton proposed to at least hardcode fix the current C code for
all transformation related properties. Dependencies involving custom
properties or other non-transform topics (like colors) will be moved
to the todo as a 2.6 topic.

-in an attempt to document this topic , I've made an example .blend file that has a different driving relationship in each layer. To test, grab the driving object (or drag the driving property) and move / change it with the mouse. hit esc to cancel: if the depgraph functions, the driven thing should jump back to the original position, if not, it will 'stick' to the new position, but grabing it an wiggling it forces it to jump back)

-Please not that there are some working things that did not work in 2.4! for instance, custom properties driving bones. Please do not 'fix' this to not-work, as it was added most likely to make Sintel rigs work, and many riggers are now depending on this! so please, if it works, don't fix it ;)


-second note: I didn't so far make a 2.4 blend file, it is quite possible that what this .blend shows is one to one compatibility with 2.4. (this is actually what I would expect, given that the depgraph code is mostly unchanged). I'll test in 2.4 and verbally post, though I will probably not provide a 2.4 blend file , since fixing 2.4 is not the target here :)

-third note: I will add more simple .blend files to this bug, with simple setups like this one.

Details

Type
Bug

Event Timeline

Ok, I've checked the file, and I guess I should make some comments about some of these:
- Layer 1: Due to evaluation order, it cannot work "as-is". However, it you change the bone to be in "local space" using animation-only result (not + constraints), it should work fine.
- Layer 5: Same as above. Turn on "local space" and it should work.
- Layer 6: Once again, due to evaluation order, it cannot work "as-is". However, in this case there is not workaround.

The problem with the evaluation order is as follows:
- Animation data is evaluated on frame change once.
- Per object (as sorted by depsgraph)
- Drivers are then evaluated based on animation data results (or "final" transforms if they can be obtained, but that only applies to objects already evaluated, not dependent objects or the subdata in current object)
- Animation+Driver stuff for object is then evaluated

This means that trying to use "final transforms" for the local object goes wrong.

---

PS. that test file would be great to have in our test-suite ;)

Thanks Joshua! confirmed, setting to local space makes layer 1 and 5 work.
I'm also pretty sure that this is *not* something that was possible in 2.49 that is now not possible in 2.5, hence not on ton's list to fix. I'm actually not sure that we're going to find bona-fide cases where depgraph success in 2.49 have turned to failure in 2.5, but I'll do some more tests.
I hope doing this is at all useful, in the very least, it provides some written documentation for those who do 'setup X' and wonder why it doesn't work.
Cheers
Bassam

Thanks Joshua! confirmed, setting to local space makes layer 1 and 5 work.
I'm also pretty sure that this is *not* something that was possible in 2.49 that is now not possible in 2.5, hence not on ton's list to fix. I'm actually not sure that we're going to find bona-fide cases where depgraph success in 2.49 have turned to failure in 2.5, but I'll do some more tests.
I hope doing this is at all useful, in the very least, it provides some written documentation for those who do 'setup X' and wonder why it doesn't work.
Cheers
Bassam

Marked this in our todo wiki + added comment about depsgraph project.
http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Tools#Animation

(close report :)

Ton Roosendaal (ton) closed this task as Invalid.Nov 24 2010, 7:33 PM

Thanks Ton.
At some point I'll post further examples here, that can help testing when the todo is revisited.