Rigging - constraint compensation

   2842   6   1
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Howdy,
Similar to a “Keep Position When Parenting” type of compensation, in XSI there's a “Keep Transf. When Constraining” (actually called “constraint compensation”) which has a similar role when toggled ON - it allows a constrained object to keep its transforms instead of adopting the transforms of the constraining object when creating the constraint.

When trying to constrain a bone to a null using the blend constrain I've discovered that the bone snaps its transformations to the nulls and there's no way to keep them, as there's no such “constraint compensation” toggle in Houdini. The workaround I found is to put a transform node between the constraining obj and the blend node in the constrained object's chops and to copy and adjust the transform values from the constrained in order to manually compensate.

Needless to say, this is a chore, especially when building an entire rig setup. I'm interested if there's an easier solution to this or even better, a “constraint compensation” toggle that I've missed somewhere.
User Avatar
Member
355 posts
Joined: Nov. 2015
Offline
If you're using the shelf tools, there's an option called ‘keep position’, set that to ‘after’ so the object keeps its position after its constrained. Its done by using the object offset or offset node in CHOPS, so if you're building the network yourself, those are the nodes.
hou.f*ckatdskmaya().forever()
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Damn it! Because of the triviality of the problem, I had a feeling that I might not be the first to think of this so I had the presence of mind to first post this on forums before I file a RFE. I often overlook that top toolbar for the various creation tools, for some reason.

Anyway, the issue is not settled as far as I'm concerned. The problem I see with the offset created when that option is activated upon creation, is that it's more like a black-box. As opposed to the solution I've come up with, it offers no transformations adjustments after the fact, in the off chance I have to precisely readjust the position of the constrained object. From this PoV, a transformation node before the blend seems like a better solution than the current default one.
What am I missing here?

Thanks, miccetro, for your answer.
User Avatar
Member
355 posts
Joined: Nov. 2015
Offline
yeah, it still needs some work from sidefx in my opinion, but on the offset CHOP nodes, there is an ‘Update Offset’ button, so if you reposition your constrained object after the constraining is done, you can hit this button and your constrained objects' offsets will now update and it will move it to the correct location.
hou.f*ckatdskmaya().forever()
User Avatar
Member
1755 posts
Joined: March 2014
Offline
I saw it and experimented with it. Black-box analogy still stands. I agree - this node/workflow is rather non-procedural IMO. The transformation node solution I've mentioned above, although cumbersome, it seems like a rigger go-to current solution. I guess RFEs will ensue now.
Again, thanks for your feedback.
Cheers!
User Avatar
Member
85 posts
Joined: May 2011
Offline
You can also simply set a transform hierarchy above your object , like that for example :

obj_grp –> obj_offset –> obj

The first is constrained with a simple blend CHOP node
The second act like your transform chop node
and the last … well
— dedeks 3000 —
User Avatar
Member
1755 posts
Joined: March 2014
Offline
Thanks, dedeks 3000
I did consider that, but In keeping with the idea of maintaining setup rigs as simple as possible for performance and managing reasons, adding more nodes when I can get away without doing that, is not my first option. This is a feature other 3d programs, renowned for their animation capabilities, have implemented more elegantly and I think Houdini should follow suit on this regard.
  • Quick Links