PDA

View Full Version : Char joint/mesh deformation avoiding !?


AniMo
01-03-2004, 07:42 PM
im currently rigging my char and im nearly done i think
with paintingall weight maps
but in some areas like in the T pose of the body (arms)
i get nasty deformations when lowering arms down.
too much bulge!

so i ask myself do we/you still use lattice with driven keys for deformations like in earlier maya versions ?
or is it meanwhile replaed by a new workflow !?

i just wanna go the best way for this and not suff due to a wrong decision in the beginnig :)

thx for any advice

rokandic
01-03-2004, 08:59 PM
Usually I rather use influence objects for cases like this. Another way would be using a blendshape controlled by driven keys which works fine too.

-rok

AniMo
01-05-2004, 03:22 AM
hmm ok i did that and used some spheres in places like shoulder elbow and lupper stomach
to avoid too much deformation there which works in first case
but it seem it kills my wight painted settings when i add an influence object
i tested it
once ihave added 1 or 2
and test my other deformations on my char
it bends like before i painted weights
-> its just gone like default pait weights...
any suggestions !?

rokandic
01-05-2004, 08:52 AM
In the "Add Influence Options" make sure you have "lock weights" option on and "Default Weight" set to 0. This way it will only add your sphere as influence to skinCluster but will not change any weights.

alesmav
01-05-2004, 05:42 PM
As Rok said, influences are great for getting bad deformations right, but remember - it all stars with modelling. If your shoulder was modelled with all deformations in mind you can even get away without influences. I would suggest visiting the following page, where you can take a look how a shoulder area should be modelled:

http://www.cane-toad.com/tuteRig_Shoulder.htm

ALES

AniMo
01-06-2004, 11:34 AM
well in my case
it doesnt makes realy sense since i have a very cartonn character
and also its my very first char
so i dont go for all be perfect in first attempt u know :)

but though
____________________________________________________In the "Add Influence Options" make sure you have "lock weights" option on and "Default Weight" set to 0. This way it will only add your sphere as influence to skinCluster but will not change any weights.
____________________________________________________
well i did this
and now my wight maps remain but the influence object has no influence any more O_O

i can move the influence object around and the mesh chills^^
now its like it has jsut no effect on the area i put it ^^
any further tips?

AniMo
01-06-2004, 03:21 PM
plz i need some help
my whole project is stucked now because of this :(

strarup
01-06-2004, 06:05 PM
Hi AniMo,

eh... as I recall you can also use a blendshape together with driven keys...

let's e.g. say you take the arm down into the position you want to modify... then copy the mesh... tweak the copied mesh so it will look like you want it to be (without the bulge thingie)... then attach the blendshape and let it be used with driven keys... so the more the arm goes down the more it will change into the modified blendshape...

it's something like that, I can't unfortunately not remember the whole procedure, but it's something like what's mentioned above...

I will see if I can find my notes somewhere... :)

regards

Strarup

modi
01-06-2004, 06:18 PM
Originally posted by strarup
Hi AniMo,

eh... as I recall you can also use a blendshape together with driven keys...

let's e.g. say you take the arm down into the position you want to modify... then copy the mesh... tweak the copied mesh so it will look like you want it to be (without the bulge thingie)... then attach the blendshape and let it be used with driven keys... so the more the arm goes down the more it will change into the modified blendshape...

Strarup

How do u do this, say i twist the arm using my joints, then copy the mesh, tweak it and make a blend shape out of it. Woudn't that cause double transforms(for the lack of words) i mean the cvs are moving twice the amount, one from the blend shape and the other from the joint rotation. How do u tweak the mesh without getting it into the twist position.

strarup
01-06-2004, 06:48 PM
Hi Modi,


How do u do this, say i twist the arm using my joints, then copy the mesh, tweak it and make a blend shape out of it. Woudn't that cause double transforms(for the lack of words) i mean the cvs are moving twice the amount, one from the blend shape and the other from the joint rotation. How do u tweak the mesh without getting it into the twist position.

yup... I guess so I just found my notes, there was something I had forgotten, I can see...

it's the neutral pose/bind pose you copy, and not the modified position pose that should be copied...
and then you put your object to the position of where, you want to modify it... and modify the copied one afterwards...

and it's the copied neutral pose mesh, you add as a blendshape... then you tweak the copied mesh, while the original character is in the position you want to modify... while tweaking the copied mesh, you can see the result on the original...

I will just translate my notes, and try to make it into a step by step guide thingie... :)

regards

Strarup

rokandic
01-06-2004, 08:48 PM
well i did this
and now my wight maps remain but the influence object has no influence any more O_O

i can move the influence object around and the mesh chills^^
now its like it has jsut no effect on the area i put it ^^
any further tips?
Yes, that's ok because what you actually did is just added the object as another influence but without any weight modification. If you select a few CVs or vertices and look into the component editor you'll see that all vertex weight values for new influence is 0. Just raise those numbers for shoulder vertices. If you look at smooth bind paint weight options you'll also see the object added to influence object list. Select add or replace mode and change values for new object influence...
I hope this is what you were looking for.


About the blendshape method. You can use the following technique:
Lets say you have a deformation problem when you rotate the shoulder joint in Z axis 60 degrees.
1. Rotate shoulder joint Z=60.
2. Duplicate the geometry without any history. Rename the duplicate to blendShoulderGeom.
3. Isolate select blendShoulderGeom so you can easily model the deformation, but don't reset shoulder joint values. Leave everything as it is since it's no reason to go back at this point.
4. Deform the blendShoulderGeom the way you would like to see when shoulder joint is at Z=60.
5. Select blendShoulderGeom and original geometry.
6. Deform->Create Blend shape (with local option on).
7. Select the created blendShape and set 'blendShoulderGeom' attribute to 1. The original geometry and blendShoulderGeom should overlap completely.
8. Delete blendShoulderGeom.
9. Set shoulder joint Z value to 0.
10. What you see is you is the deformed blendShape model at rest position.
11. Now you can use set driven keys for this deformation:
-Shoulder joint Z=0 -> blendShape.blendShoulderGeom=0
-Shoulder joint Z=60 -> blendShape.blendShoulderGeom=1

Now when you rotate the shoulder joint in Z axis it should deform correctly.

-rok

modi
01-06-2004, 09:59 PM
awesome, thanks.

AniMo
01-07-2004, 12:21 AM
thx for the great tips X_o
i will try to go for the blend shape variant
hopefully i get it to work hehe

well i never have used this component editor since i find it very confusing on first view
and i also think if i alter the values of the vertices influence
then probably my mesh doesnt deforms the was i expect when bendeing the back to the sides for eample
so the blendshape variation seems to me the more pro solution ;)

:thumbsup:

strarup
01-07-2004, 08:59 AM
Hi,

here are my translated notes... :)

before you start, here are a few preparing tips...

set a key on your arm in neutral start position/Bind pose... then go some frames further and move your arm down to the position you want your blendshape to modify the mesh, and set a key there also... in this way you can later see if it works by hitting play... however it also make it a bit easier so don't have to remember the value of the position when the arm is down...

and other tip is to create an extra perspective view, (if you not allready have that)... so you later can have the 2 perspective view next to eachother i a " viewport layout"... to make an extra perspective view, goto the menu in one of the viewports, and click on panels... --> perspective... --> New...

create a new layer and call it e.g. BodyBlendshapes...

1.)

a.) select the Mesh object you want to modify, and create a blendshape node for it... (in Animation Mode menus)... goto "Deform" --> "Create Blendshape - Option Box"...
b.) click on reset settings... this should make it have "Origin" set to Local... and that "Check Topology" is Marked... then give your Blendshape node a name... (since I don't know how your character is build I assume that it is a full body Mesh which isn't seperated in a upper and lower body)... so in this case I will name it "BS_Main_Body"....
c.) click on "create"...
d.) only if your mesh is seperated, and you also want blendshapes for them... just repeat a, b and c...


2.)

a.) goto your first keyframe, or just set your character into neutral position/bind pose...
b.) duplicate your original Mesh object...
c.) rename the duplicated object Mesh, so you easy can regonize it from the other objects... e.g. rename it to Body_Object_Base...
d.) add "Body_Object_Base" to the Layer "BodyBlendshapes"...
e.) move "Body_Object_Base" position away from the original Mesh... (makes it a bit easier to work with)...

3.)

a.) duplicate "Body_Object_Base"... ( so you still have a neutral base mesh e.g. for others area's that you want to make blendshapes for)...
b.) rename the duplicated "Body_Object_Base" to something meaningsful... e.g. if it's the Left Shoulder area that you want to modify... then we could call it "BS_left_shoulder"...

4.)

a.) go to your second Keyframe, or to the position in which you want your blendshape to affect the mesh... e.g. in this move the left arm down...
b.) select "BS_left_shoulder", and then "add" select the original mesh...
c.) goto menu "Deform" --> "Edit Blendshape" --> "Add optionbox"...
d.) in the "Add optionbox" window... set a mark in "Specify Node"-box, if there isn't a mark..
e.) in the Roll Down thingie, where it say "Existing Nodes"... Choose and click on "BS_Main_Body"... so that it in the Textfield by the "BlendShape Node" stands/says "BS_Main_Body"...
f.) make sure there's a "marker" in "Target Shape options"-"Check Topology"...
g.) click "Apply and Close"...

5.)
a.) select the original Mesh, click on the "BS_Main_Body" node under inputs in the channelbox... under envelope, there should also be a field which says "BS_left_shoulder", with a value of 0...
b.) change this value to 1... (to turn the blendshape on)...

6.) make a 2 viewport layout with the 2 perspective views, if you not allready have done it... just makes it a bit easier to work with... :)

7.)

a.) select "BS_left_shoulder" mesh, and modify/tweak it, look at the original mesh to see the changes...
b.) stop when the result is like what you wanted to have look like...

8.)

a.) select the original Mesh, and put it back to neutral position... (e.g. first keyframe)...
b.) goto inputs in the channelbox, and change the value of "BS_left_shoulder" (under the blendshape node "BS_Main_Body")... from 1 to 0...
c.) then rightclick on the input attribute "BS_left_shoulder" (just click on the name)... and then choose/click on "Set Driven Key"... under "Driven" it should now say "BS_Main_Body"... (if it doesn't
d.) then select the should joint, (or the joint that makes the arm go up & down)... and then click on "Load Driver"... (to make the joint position drive the blendshape changes)...
e.) with the Driver (the should joint)... click/select the rotation Axis in which direction your arms move up and down... and with the Driven click/select "BS_left_shoulder"...
f.) then move your arm to second Keyframe/or to the Modify position... change the input value for "BS_left_shoulder" from 0 to 1...
g.) and click button "Key"... in the "Set Driven Key" window"...

9.) if more objects have to have blendshapes just repeat the above... :)

I hope this wasn't to messy explained... :)

regards

Strarup

Herbal_Ice
01-08-2004, 03:41 PM
STarup .. i'm grateful for what you posted here. cause i actually needed this really badly eheh .. but i got a _stupi_ question ..


is it a problem if your character is already skinned with IK arms and all ..

or thats what it should be..

:)

strarup
01-08-2004, 03:51 PM
hi Herbal_Ice,

eh... if you use Maya 5.0 it shouldn't be a problem, however if you use 4.5 you might have to do it before the skinning...

but to be save, make a backup copy... :)

regards

Strarup

CGTalk Moderation
01-17-2006, 01:00 AM
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.