View Full Version : changing joint roatation on a bound character
04 April 2007, 05:16 PM
Ive got a bound and weighted character, but I would quite like to change the local roation axis of some of the joints, can I do this while it is still bound (without the skin going KERAAZY)? is there a way to detach changethe roatation and reattach and keep my weighting data?
cheers for the help
04 April 2007, 12:41 AM
Use one of the weight scripts on highend3d.com to write the weighting to your hard drive. Then tweak to your hearts content and copy everything back on.
04 April 2007, 12:20 PM
You can use the bindPreMatrix attribute to change the joints bind transform. I've had some success with this.
To do this:
1. Create a locator and parent it to the joint, then 0 out it's transform.
2. Parent the locator under the joint's parent and the joint under the locator. The joint will have a 0 transform now.
3. Check what the joint's index in the skin cluster is.
4. Connect the worldInverseMatrix of the locator into the skinCluster's bindPreMAtrix for the joint's index.
5. Translate, rotate, scale the locator to your heart's content. The joint will move with it and will cause no change to your mesh. The joint is effectively 'bound' at the locator's transform.
I actually posted something in my blog about this a week or two ago. It's actually a pretty cool little trick with a lot of uses.
After you've gotten the joints where you want, you can remove the whole thing by doing the export/import that Kiaran suggested as well. But this makes the tweaking of joint transforms process a lot quicker if you're not quite sure exactly where the joints should go.
Hope this helps.
04 April 2007, 12:13 PM
thanks for the advice! but im having trouble finding a script on highend that does this.
Does anybody knwo the name of it?
04 April 2007, 05:48 PM
I did a search for weights in the Maya scripts section:
I now use a save weights script I made myself to support multiple meshes and influence retargeting, but anyone of these scripts should work just fine.
04 April 2007, 06:04 PM
if you're just changing orientation / rotation on joints you've already weighted, couldn't you just detach with the 'keep history' option on, then manipulate your joints, then re-bind and the skincluster would still exist?
scripts would be necessary for retargetting or anything like that, but i've used that detach with history before and had success.
04 April 2007, 06:33 PM
I agree with Soulcialism, detach with history should do it unless you have something fancy going on. Failing that, I like Michael Comets save weights tool. Its great for importing/exporting weights when you need to mess with char rigs.
04 April 2007, 08:22 PM
If repositioning is needed, definitely use the bindPreMatrix that Geoff suggested as it's a great way of easily adjusting your skeleton without horribly making a mess of your mesh. If all you need to do is switch a few local rotation axis then surely your easiest solution is to simply detach with history as was suggested before.
04 April 2007, 12:23 PM
ah well that was ridiculously simple! ..thanks guys :D
04 April 2007, 12:23 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.