← All ideas
  • Published 20 Apr 2018

Update Armature Constraint transformations on CTRL+Z

Issue

When you have objects in an Armature, and CTRL+Z (undo) a pose translate - when it's constrained to rotation to another bone - the bone snaps back in translation, but the rotation constraint doesn't update. Not till I move another bone. It hangs there looking like it's broken.

I have had this in all rigging - the CTRL+Z doesn't update all constrains in a bones stack.

Fix

Create/modify the constraint poll system backend to update all constraints in the stack every movement in pose mode and when you undo.

Cons

May update slow during an undo with many constraints - so in that case adding it as a toggle in the armature would be nice - update single transformation constraint or update all in pose mode.

75%

Development Status: Open

Upvote 3 Downvote 1
draise14
20 Apr 2018

7 Comments

jason

Is this rig-specific? Every time I've come across something like this, it's because I had a cyclic dependency somewhere in my rig.

1
draise14 Author

@Jason van Gumster: Yes, Armature specific. This may have something to do with IK constraints with the pole target or children with other constraints - but ultimately the rotation of a pole target constrained to the end of the chain shouldn't affect the IK chain children polling. There is no loopback as IK children don't inherit any rotation of a pole target unless specified. A quick poll in the rig resets the armature to the way it should work as if you were using it normally - would be nice if this does this with CTRL+Z so that I don't have to poll the rig to revert any pose changes.

jason

@draise14: It's my experience that the dependency graph will sometimes see cycles in things that we wouldn't expect there to be. I'm almost positive that this is a dependency graph issue more than anything else.

The bad news is that the fix is non-trivial. The good news is that there is a new dependency graph being worked on. Some of it is even in Blender now. Try running Blender with the new depsgraph option enabled ( blender --enable-new-depsgraph ) and see if that solves the issue for you.

draise14 Author

@Jason van Gumster: Nice tip. Will this cause more bugs? I do use this in production so.. if it causes problems cause of being in development, I may not use it. Yet.

jason

@draise14: It's at least worth testing to see if the new depsgraph (when made the default) will resolve your problem for you or if there needs to be a separate proposal.

draise14 Author

This also would be important with driver updates on CTRL+Z

draise14 Author

I've tried uploading a thumbnail with no success.. - firefox.