4
$\begingroup$

I created simple model with Subdivision Surface modifier and I also added some bones to animate it. Now I need apply the modifier in order to have fully prepared model, but I encountered a problem with animation: before I apply the modifier, the model is animated correctly, i.e. polygons which are near end of animated area are animated fluently, but if apply the modifier and then animate, these parts are transformed exactly as the rest of animated area, which creates ugly glitches. Clearly I need to add some "weight" to vertexes at the end of the area (less then one).

So, my question is: how can I do it automatically during application of the modifier?

For better description, see the image bellow:

Image describing the problem

Top right: original model.

Top left: model with Subdivision Surface modifier.

Bottom left: correctly transformed model (this is how it looks like and animates if I don't apply the modifier in Blender).

Bottom right: glitched model (this is how it looks like when I apply the modifier and then animate; note: at the same time this is how it looks like when I switch order of modifiers, which is what I would expect).

Notes:

  • OS: Windows 7
  • Blender version: 2.70
  • Why I need to apply the modifier: it shouldn't matter why, but because there are people who will try convince me that I don't need that, here you are: I want to animate the model in Unity 3D which animates the model badly - it first applies the modifier and then the animation is glitched. I want the model to be animated in it correctly.
  • Yes, the model is from a tutorial, not my original work (but I created it).

Edit: requested weights: Weights of model

Description (from top to bottom):

  • Model without applied modifier.
  • Applied modifier.
  • Applied modifier and rotated with given bone.
$\endgroup$
12
  • $\begingroup$ Move the Subdivision modifier down to the bottom of the modifier stack $\endgroup$
    – Vader
    Commented Apr 5, 2014 at 19:20
  • $\begingroup$ @Vader I think the OP wants to apply the modifier (and it is below the armature modifier already, judging by the bottom left screenshot). $\endgroup$
    – gandalf3
    Commented Apr 5, 2014 at 19:33
  • $\begingroup$ I think the reason this happens (you might already know this) is because in the first example the mesh is deformed as a low poly "cube model" and then subsurfed. When the modifier is applied, the weights of the "cube model" are applied to all the subsurfed geometry, then deformed. $\endgroup$
    – gandalf3
    Commented Apr 5, 2014 at 19:39
  • 1
    $\begingroup$ First apply the sub surf modifier. Then parent the armature with weights. Your model will bend properly. $\endgroup$
    – Ali Jibran
    Commented Apr 5, 2014 at 21:14
  • $\begingroup$ Can you post a screenshot of your mesh weights? That could help. I have found that often automatic weight painting does not produce the weights you want -- I almost always have to go in and manually fix the automatically applied weights. $\endgroup$ Commented Apr 5, 2014 at 21:22

2 Answers 2

2
$\begingroup$

My first suggestion is : don't apply the subdivision surface. Leave it in the stack. "don't apply the subsurf" is a rule people have come up with after years of watching dudes drive off that cliff.

If you must apply the subsurf, you can probably work around this problem by adding a second bone. Call it "body" or something, and make it own the unowned vertices in the head and shoulders.

If you apply the subsurf modifier AFTER you have a body bone, it will probably create some counteracting weights to keep that shoulder from gnarling up.

You might have to ensure there's an edge at his neck that is owned by the body bone and not the arm bones.

$\endgroup$
3
  • $\begingroup$ I see, thank you - I'll be able to check this during weekend, then I'll be able to tell whether it works for me. $\endgroup$
    – Neelam
    Commented Apr 17, 2014 at 6:30
  • 1
    $\begingroup$ About your first suggestion... well, I wrote my reason for that in the original post for people like you. However, if Blender isn't good in applying subsurf, then it's not good for me (game development) as it requires engine which can work with blender files completely, including modifiers like subsurf, but most of them cannot. In that case, root of the problem lies somewhere else - it's wrong tool selection from my side. My bad. Now I understand why my colleagues (game artists) hate Blender so much - it's not designated for this... (Too bad Max is so extremely expensive) Thanks for the info! $\endgroup$
    – Neelam
    Commented Apr 17, 2014 at 6:41
  • $\begingroup$ Ok, so I finally tried your suggestion - it's definitely much better, but the animation is still little different... I guess that's the best result applying subsurf can give, so I'll mark your answer as the right one, but with following note: the problem cannot be solved automatically completely. This answer makes result look better, but for best result, it's needed to edit/polish weights manually. Or choose different tool, as I mentioned above, it looks like Blender is not sufficient for my purposes. Cheers. $\endgroup$
    – Neelam
    Commented Apr 19, 2014 at 8:57
0
$\begingroup$

The bone needs to have area of influence defined. I'm a newbie but there is a link from the bones page on the manual. Skinning is the blue title. It appears tricky but by this method spinning appears to precede armature animation.

$\endgroup$
1
  • 1
    $\begingroup$ Hi, welcome! It is good to provide answers with new ideas or new tools that maybe solve, or solve better, an issue. This question is 6 years old, and has an accepted answer so, if you add a new answer, it should much more detailed and it should perhaps explain why it's worth do be added, maybe. $\endgroup$
    – m.ardito
    Commented May 24, 2020 at 9:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .