3
$\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$
  • $\begingroup$ Move the Subdivision modifier down to the bottom of the modifier stack $\endgroup$ – Vader Apr 5 '14 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 Apr 5 '14 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 Apr 5 '14 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 Apr 5 '14 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$ – Thom Blair III Apr 5 '14 at 21:22
0
$\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$
  • $\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 Apr 17 '14 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 Apr 17 '14 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 Apr 19 '14 at 8:57

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.