Blendshapes can be very difficult to create if you don’t understand the rules. As many of the modellers I have worked with can attest they’re are many to create convincing blendshapes so here is the list that I preach:
Continue Reading!
Things to remember while creating blendshapes:
- The kinds of operations your allowed to do are drastically limited!*
No freezing transforms
Good habits aside, this can create a ton of more work for yourself. Before you say that’s not true: While blendshapes can be successfully done with frozen transforms it requires you to have all you heads stacked on top of each other, almost an impossible workflow when editing. To fix this it would require you to duplicate all your blends from the active base shape – why bother when it’s just one less step to begin with.
Don’t alter the mesh
No deleting faces/edges/verts or creating new ones unless you want to start over. If your worried about performance there are other ways to control that eg edit membership on the blendshape node itself. This will tell maya which verts to evaluate the blendshape on and which to ignore. While the there is overhead to tell it which to ignore, it’s really not all that bad, really it isn’t.
Don’t alter the mesh (again)
No combine/seperate/extract/mirror geo. To mirror a shape from the left to the right use a blendshape script like ijUtils which can be found in the downloads section or one of the other handfull on highend3d.com
Don’t alter the mesh (still? – yep)
Never work on the original head – make a duplicate of that which should be named base to create additional duplicates/targets from. More often than you’d like to think I have found people with many blendshapes but no original head because they edited directly on it, this is a safety step that will cost you a few KB of space to the file, but perhaps hours of time – sounds like a steal to me.
Duplicate with transform to create new targets
ONLY use duplicate with transform (default hotkey shift + d ) to
create duplicates of the head this will insure vert order matches. While you can set the options on duplicate to do this aswell, shift + d always has the correct settings and can even speed up making a bunch of copies and spacing them out to work on. Again one of thoose prevent the forest fire things while it’s easy rather than try and put it out once it’s a 5 alarm blaze.
Motion test, motion test, motion test
Remember to motion test your blendshapes and be aware of the issues that animating multiple blends together creates. Thinking to yourself that made no sense, just keep reading and I’ll touch on that next.
Things to watch for while testing your blendshapes:
Verticies slippage:
With blends you are basically making ONE keyframe and every vert tweens to that ONE frame over the same amount of time. So if vert A moves farther than vert B… it also has to move faster to get there at the same time that ver b reaches its destination. When vert A and B are belong to the same muscles and this occurs it BREAKS the belief that they are driven by the same forces.
Double Transformation:
Test L and R shapes together – observe the results this should be
apparent in definition. If you are unable to grasp why it happens refer to verticies slippage for conceptual background.
Poor Deformation Falloff:
When animating the blend from 0-1 the border of the blend is too
aparent, or is too regional, or isn’t regional enough. It’s common to see people NOT touch the R side of the face when creating the L
Many motions on the L will effect the R. That said be SUTBLE and be warry of double transformations. If your succesfull your blendshapes will come to life!
Anatomical awarness:
We are recreating a physical form, muscles/bones/tendons all have roles and effects on how things move. Clearly define that for yourself and then test if your blends obey the priciples you laid down
Maitaining volume:
While animating a blend from 0-1 do you maintain the volume of the head?
Okay you made it this far now for some tricks/advice
You can use the paintable attributes in Maya 7 to artistically create the left and right blends from a single (and avoid generating double transformations too!) Simply generate a full smile, add it as a blendshape, make it active then go to deform >paint blendshape weights tool. Then replace the whole head with 0 for the smile influnce and paint in the left or right side. Then when you have it at a point you like – shift + d and you have it, or you can just add the full head again and paint the other side. You used to need a plugin or a complex script like joBlendTaper for that kind of stuff horrary for paintable attributes on blendshapes
It can be hard to generate proper shapes for things like jaw open because of it’s rotation. I advise using a joint/skinning to help aid you in generating your arcs/inbetweens. Then making slight modifications to them.
PERMALINK :: Share your tricks/rules and save everyone some headache! [2]
No matter what you call it: enveloping, weighting, skinning, binding is a tedious and slow process or is it? I’ve been using a technique that has allowed me to weight characters at ‘break-neck’ speeds for over a year and I think it’s about time I share my workflow.
Continue Reading!
Prerequisite knowledge:
When I first started getting into rigging I spent some time taking a hard look at how Maya reacts to different workflows for weighting. I came to realize by watching the component editor in Maya while painting weights – stray or loose values could/would be caused by numerous tools available to you while painting weights. Below is a review of the discoveries I found as a result.
- 1)Many of the tools/options available are present because they were easy to implement and add – not because they aid or increase the functionality of the toolset. For example:
- a.Radius (L) – I always have that set to 0. In fact is it’s above 0 I have found that it interferes with my ability to use the ‘b’ hotkey to control the size of the brush on-the-fly.
- b.Opacity: This is always set to 1, why not just use the hotkey ‘n’ to control the value.
- 2)Every paint operation but ‘add’ has the potential to create stray values.
- a.Replace with any value other than 1.
- b.Scale with any value.
- c.Smooth with any value and more than 2 influences.
As a result I have limited my painting toolset to radius (U), value, add, mirror, smooth. I’ve also discovered some rules to increase the reliability of various functionalities. For example any weight I/O process (export/import/mirror) works best with normalized (all influences add to 1) weights.
Now for the good stuff – Overweighting:
As a result of that knowledge I found it extremely important to find a way to skin a character and avoid stray and un-normalized values. The workflow I came up with, and have since dubbed ‘overweighting’ is simple and requires some practice but once your used to it is the fastest way of weighting a character I’ve seen and has allowed me to weight characters in a single pass to more than acceptable quality. The concept is this – never add weight to an influence twice. Rather overweight an influence and go down chain till you run out of influences to weight.
But if a picture is worth a thousand words, than a video must be a box set of novels so here you go:
Overweighting (h264 codec/qt7 req)
So the general workflow:
Paint all your weights using the overweighting method (add only) then mirror to get the best data for an optional smooth/mirror pass.
The execptions!
Like all methods/workflows there are exceptions, however I find this methodology works on almost all models I recieve. That said, my early warnings on replace/scale don’t hold when painting cluster weights. I find scale helpful during that operation. Unforutnatly I never use replace – add is far less likely to redistrubute values.
PERMALINK :: Share your knowledge - leave a comment! [1]
An in-depth tutorial for every animator that wants to gain the ability to setup their own characters in stride. Covers joint placement, control systems, weighting, prop rigging, constrainting objects to a rig.
Continue reading »
A tutorial on one possible method of building an ik/fk limb like an arm/leg. A truly minamilistic/elegant approach that is very fast to setup and very fast to use. Check it out.
Continue reading »
A tutorial that focuses on connecting a tail to a deforming mesh aka the bouncing ball. Goes over useful nodes like normalConstraint, pointOnSurface etc. Check it out.
Continue reading »
|