My animators are looking for a constraint system where they can drive an object with the right hand and grip that object with the left, but also drive the object with the left and grip it with the right. I made a system that turns constraints on and off, but its janky and breaks pretty easily. Using offset matrices kind of worked but still has issues reevaluating as the animator scrubs through the timeline. have any of you guys made a system that can compensate for this?
I’ve actually implemented this approach as a custom constraint in Maya before. However, relying purely on constraints definitely introduces issues, particularly when it comes to animation baking.
In order to evaluate a bi-directional constraint within the Maya DG, the consumer and producer nodes must swap roles. This topological switch needs to be recorded at mouse click event.
I ended up solving this by making custom manipulator.
Feel free to reach out if you’d like more details.
to make it actually bidirectional you will introduce cycle issues as this is not possible in the maya environment. there was a company that did this in the past but i remember it had too much issues that the product was taken offline: https://www.youtube.com/watch?v=Y2L7mgKdXmE
your best bet would probably be a custom rig solution that builds the setup for your animation purpose and then bakes it back to the joints like the ephemeral rig by raf anzovin or by using tools like the space switching done by Richard Lico if you want a clean representation.
I had looked into richard licos stuff and its a gold mine of hierarchy work arounds. I use mgear so everything I make is built around it, whihc actually isnt too bad since its open source.
Im digging further into turning constraints on and off and keeping track of world positions using locators baked at build time. It’s actually working pretty well now, but definitely needs work to be used like any other switcher.
So I’m gonna suggest the KISS solution just so its out there: Could you do a reverse foot style rig?
I know it’s not as conceptually nice as bidirectional constraints, but there’s nothing custom to build that fights with the DAG. Plus, Your animators probably know how to deal with it already, and it’s something you know how to build.
It may not be The Answer ™, but it could be good enough for now.
This is a plugin. True to what was said above, you don’t necessarily have to fight with the DAG, but I took this on as a personal challenge. I’d be happy to show more demo videos if anyone is interested.
Interesting problem. A clean space-switching setup might be more stable than turning constraints on and off. Curious to see what solutions others recommend.
We added a bunch of constraint options and let the animators sort it out. Each of our handheld weapon prop rigs has an attach point control for right and left hand, plus a control for the prop itself. Each of these controls has a nested child control up to allow offsetting anything constrained.
This allows animators to use Maya to constrain things in a variety of ways. One hand cand drive the prop while the prop drives the other hand, or the weapon can drive both. Animators can keyframe the constraint weights to change things.
All of this does have to play well with how the engine attaches and naimates objects at runtime.
The overall simplest solution to this type of problem is to add some global prop control that the prop object and both ik wrists can follow via space switching.
Have used some version of this many times and animators liked it just fine.