PDA

View Full Version : Disable Smooth Skin to move Joint


gtcable
02-04-2008, 07:06 PM
Is there a way to temporarily disable my smooth skin bind so that I can reposition a joint?

I've discovered my shoulder joint is too far in and I need to move it out so that it is more centered in the socket.

Robken
02-04-2008, 07:14 PM
since maya 2008 you can use the "move skinned joints tool" under the skin menu.

If you are on an older version of maya, you'll have to look into the "bindPreMatrix" attribute.

alec.tron
02-04-2008, 09:33 PM
There s also a free plugin by Michael Comet called resetjoint.dll (I think). Just check his website, it's up there for maya 7.
c.

gtcable
02-04-2008, 11:11 PM
I'm on Maya 8.5 Complete.
I poked around and could not find the "bindPreMatrix" you'd mentioned. I looked it up in the Help file... but it was no help.

I don't see that attribute in the skinCluster node.

gtcable
02-04-2008, 11:15 PM
Rats Alec.
I'm sorry to say I'm on an Intel Mac. Like so many other 3rd party pluggins they don't work on the Mac.

gtcable
02-04-2008, 11:59 PM
Rather than wait for a solution to move the shoulder joint I broke down and exported the soft bind weight maps. I then detached the bind, selected the shoulder, hit the HOME key and slid it horizontally in the Front Camera view.

When I went to do a Soft Bind back I got this error message:
Error: Skin on I1:L_shoulder was bound at a different pose. Go to the bindPose to attach new skins.

Evidentally I can't even alter the joint I need to fix at all.
Where did I go wrong?

NolanSW
02-05-2008, 04:48 AM
Delete the bindPose node...it's ok...it won't hurt anything.

or I have a simple little script that will reset it all and you can keep the bindPose node.


//Select the geo and run this
global proc resetBindPose()
{
string $selSkin[] = `ls -sl`;
string $infObj[] = `skinCluster -q -inf $selSkin[0]`;
select -r $infObj;
string $selJoints[] = `ls -sl`;
string $bind[] = `dagPose -q -bindPose`;
dagPose -reset $bind[0] $selJoints;
print ($bind[0] + " is reset");
select -cl;
}
resetBindPose ;

alec.tron
02-05-2008, 04:49 AM
If you want to know the full story, read up on the bindPose node and the whole concept behind...

If you quickly want to fix it, or to be exact, work around that error-message:
- DAG view in the outliner
- select & delete the bindPose node of the skeleton hierarchy (be shure you are in exactly teh pose [transforms] that you want to use as your future bindPose)
- now you're ready to write a new bindPose by applying a new skin modifier.

c.

gtcable
02-05-2008, 05:33 AM
Awesome!
You guys are life savers!

And not just the candy.

NolanSW
02-05-2008, 05:47 AM
Oh, I forgot to add, exporting the "skin weight maps" is really a less than exact way of saving the skinning data. You really need to export out the data at a component level. Now there are a couple of scripts that I go back and forth between that I use, cometSaveWeights (http://www.comet-cartoons.com/melscript.php)and zooWeightSave (http://www.macaronikazoo.com/). Using the weight maps is dependent apon the resolution of the maps. Using either script will be much more exact and will re-assign the wieghts based off of the vertex and not a map.

Cheers,
-S

gtcable
02-05-2008, 06:34 AM
Yet more good stuff.
Thanks again Robken.

Robken
02-05-2008, 09:07 AM
that's actually Sean Nolan that helped you there. But I'll never complain when being compared to him. He might get a little pissed being compared to me though ;).

anyway, about the bindPreMatrix, it's a total hack to work with it, but it works none the less. I think this video best explains what you can do with it.

http://sunekempf.com/blog/wp-content/movies/bindPreMatrix/bindPreMatrix.html (sune kempf)

gtcable
02-05-2008, 09:22 AM
:argh: D'oh!
Sorry Nolan.

I owe anyone of ya a mai tai if you're ever out my way. :thumbsup:

NolanSW
02-05-2008, 05:00 PM
that's actually Sean Nolan that helped you there.

Oh, come on!!! Flattery will get you everywhere. Hehe. Awesome Link. Sune is one smart dude.

alec.tron
02-05-2008, 08:49 PM
http://sunekempf.com/blog/wp-content/movies/bindPreMatrix/bindPreMatrix.html (sune kempf)

myomy...
that s a really neat way to have an animatable pivot inside maya...
anyone, or Sune in case you read here as well, has tested the parenting pre-bind connection trick with keys / animating it ?
Guess I ll try that somewhen the next days and see what happens.
c.

gtcable
02-06-2008, 01:08 AM
I just realized my hips were in a bad spot after I had reweighted as well.

I needed to reposition without unbinding.
I went to the video link you posted and at first I thought WONDERFUL!

Then I tried it.


In order to use the locater you have to parent the hip bone to it. That unparents it from the root joint.
I tried just connecting the World Inverse Matrix to the Bind Pre Matrix [45]. That allows me to move the bone without moving the vertices. The problem arises when you disconnect in the Connection Editor. You lose the Bind Pre Matrix attribute. Then the vertices fly off. If you don't disconnect and you try to move the root joint you'll see the vertices get dragged.
:shrug: Nothing is ever easy.

gtcable
02-06-2008, 02:15 AM
I just wasted an hour trying to install the two plug-ins Nolan suggested. I can't get either one to work. I have no idea if they were not designed for an Intel Mac or if I can't install them because I don't know what folders to put them in.

I so wish my company had bought a PC computer for animation purposes. There's lots of 3rd party plug-ins out there that I can't use because I'm on a Mac.

With Mac's totally different scripts, icons, application, preference folder layouts (not to mention the frickin' hidden folders) I'm at my wits end.

Why do Macs hate me? :cry:
I just wanna go home and hug my custom built PC.

Guess I have to export weight maps. I'll just do a high resolution image.

Boucha
02-12-2008, 06:28 AM
why don't u just detach the skin with history turned On "Keep history" u can then reattach the
mesh to skeleton by smooth skinnig again....once u manually adjusted the joint

..n yes also tweaking the paint skin for adjusted joints

gtcable
02-12-2008, 10:11 AM
That works too.
Unless I have already got IK attached. I can't get it back to bind pose after that. Even if I go into the solvers and disable the IK. It won't get the rotates back to zero.

Any tips there?

Boucha
02-13-2008, 04:00 AM
If so u can temporarily detach the skin as i hav mentioned, then u can delete the particular joint (Iks too) and rebuild that particular joint from scratch...and then rebind the skin including the new joint, then u can go on painting skin weights for that particular joint...

Hope that works....

Boucha
02-13-2008, 08:40 AM
U can detach the skin with "keep history"...then delete the joints with ik handles n all that stuff
redo the joint and skin again including new joints n tweak the paint weights....

refract
02-15-2008, 09:34 AM
ok.. I've watched this thread for a few days now.
My best solution for you is to ...
Zero out your joints, save a copy of it, delete your bind pose, edit anything and everything you want... (save a NEW copy of it to another location) then rebind your joints to your new mesh like usual,...and reference in the old good skinned mesh using "copy weights", to your new mesh. There are several options. It will not be perfect, but it will get you most of the way back to where you were.

I seriously would not recommend deleting history, and I do like Robkens idea but I have not tried it yet. Nolan has another good solution, but since you are on a mac, I'm not sure if it would work.
Keep in mind how Maya works, .. its bind pose remembers where it was originally bound, and it does not like any change.

Nenox
05-12-2008, 03:09 PM
http://sunekempf.com/blog/wp-conten...dPreMatrix.html (http://sunekempf.com/blog/wp-content/movies/bindPreMatrix/bindPreMatrix.html)

Damn, I sound stoned in this video :-) Ha ha (I'm not though..)

Sean, I hope the move and new job thing worked out great for you!

CGTalk Moderation
05-12-2008, 03:09 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.