1
$\begingroup$

Warning: Many pictures! May be annoying... ;)

I'm trying to build together a rig where I can animate with armature most of the times, and fix something or add some specifics with mesh modifier. There are 2 problems with that. Let me explain my setup.

To represent my complex mesh I've created a cylinder.

Complex-like mesh

Then I've assigned 2 vertex groups

Vertex Groups

Then added 2 cubes to represent my mesh modifier cages.

Cages

Then added mesh deform modifier to a cylinder to modify it with cubes.

Mesh deform modifier

Then added armature and rigged cubes.

IniSetup

Works good. My result is something like this:

Result

Not quite what I want, but now I can go to edit mode and fix whatever I don't like. I can even animate changes with animall addon, but not with an ease that I would like to. So, I've added a hook.

Hook added

Ok, but now whenever I use armature, hook stays in place.

Hook stays

Still can modify mesh with hook, but something that stays out of place would be bad in a real complex mesh situation. Just imagine 20 hooks are out of place and you don't really know what changes what... I tried to parent, to copy transforms, etc.,etc.,etc., but to no avail.

Right now, I am manipulating a cage that is manipulating an object. So the 2nd problem comes when I want to manipulate an object directly with armature, and then fix with mesh deform modifier.

If I rig my model and not my mesh cage, then whenever I move my object with an armature the cage obviously stays in place like a hook, creating a mess and if I rig both, then it's obviously doubles all the deformations

MeshModArmature

Is there any way to do it right?

Blend File if needed: Test.blend

$\endgroup$
2
$\begingroup$

Your use of mesh deform is not really warranted here in my opinion. Keep your bones, maybe subdivide them into many smaller bones (in edit mode, "w" -> subdivide). Then, change armature to object mode. Select cylinder, then shift+select armature, ctrl+p, "with automatic weights".

This should give you a nice smooth deformation.

If you are going to use mesh deform, why do you use 2 cubes. It should be one mesh. I think a better explanation of your exact problem may assist in answering in a more detailed fashion.

I will add another note. Maybe a better solution for you is to use shape keys to correct issues after armature deform. There is another method, add object -> lattice. In mesh panel subdivide it more. Then add modifier to your object -> lattice and select the lattice you created as the source. You can parent the lattice to bones just fine.

$\endgroup$
  • $\begingroup$ Cylinder was just to simplify the matter. Look, imagine a girl with a huge rack running on the beach and you need to animate all this wibbly-wobbly motions. Of course you can simulate it with soft bodies but it will never be as good and controllable as animating by hand. So you use armature for limbs and mesh modifier for chest movements. It is extremely useful for anything squishy, like toys or rubber. $\endgroup$ – Vitaliy Mar 17 '15 at 21:56
  • $\begingroup$ Why have I used 2 cubes? Because if you are rigging a character then it consists of a normal parts that have just bone deforms and parts like belly that can have mesh modifier. Imagine a huge guy jumping. Things like that. Oh and you can't use lattice, because it won't move when armature is in pose mode. $\endgroup$ – Vitaliy Mar 17 '15 at 22:00
  • $\begingroup$ When I need to "tackle" that type of problem... I use mesh deform as well. I make a cage around the parts I want to act as soft body. Normally the character is moved with the armature, and so is the cage. But the cage is a soft body (only covering part of the mesh, and make sure its CLOSED mesh no open holes). Then you make a vertex group. It represents the "soft bits". The mesh deform only affects this group, and the armature affects the INVERSE of this group (there is an inverse button on the modifier for this exact reason). :) $\endgroup$ – beiller Mar 18 '15 at 14:09
  • $\begingroup$ Also you can still use lattice. Parent the lattice to the bone and add a soft body to it. It works! It also must use a vertex group for its influence. $\endgroup$ – beiller Mar 18 '15 at 14:11
  • $\begingroup$ But you can't control it by hand this way.... $\endgroup$ – Vitaliy Mar 18 '15 at 16:59
1
$\begingroup$

Instead of using hooks you can create a "corrective" shapekey. Usually this is easier if the armature modifier is enabled in edit cage mode.

enter image description here

Starting with a bad deformation pose, create a new shapekey, edit the mesh so that the shapekey makes it look good. Once you have the shapekey setup you can either drive the shapekey with a bone position/rotation or you can keyframe it to fix on a specific frame.

This tutorial shows an example with a driver setup. You may also find the Add Corrective Shapekey addon of interest.

$\endgroup$
  • $\begingroup$ To freely manipulate an object this way you need at least 3 shape keys. 1 for all the axis. With a complex mesh it will be a nightmare to animate it.... $\endgroup$ – Vitaliy Mar 18 '15 at 16:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.