Skin and Morpher - modifier stack order


#1

Normally, I use a morpher (for facial expressions) before the skin modifier. I have noticed on my current model (which has a lot of skin envelopes) the morph performance is terrible. When I change a setting - like using a morph to make the character frown - the update can take more than 10 seconds.

If I put the morpher above the skin, the performance is great. Is this an okay thing to do? If not, what are the risk?

Thanks.

Guy Galer
Very Very Small Studios, LLC.


#2

this might not help that much, but I have been doing that way for about a year and havent really run into any problems yet


#3

the morpher should always go below the skin because the modifier panel is calculated from the bottom up. ie. morphing will be calculated, then skin will move the verts according to the bones.

if the morpher is over the skin, you will find that you animated your character via bones just fine, and then when you use a morph target, all the verts of the character returns to its original position in space into the ‘morphed pose’


#4

The last character I did I used a whole body (as one object) skinned. I then skinned the morph head. I then skin wraped the head to the body. I then created CA to control the morphs on the body. It worked well for what I needed. This is just another option to explore.

-Eric


#5

If you have turboSmooth on the top of the stack that is most likely what is slowing it down the most. Turn it off when you animate or set it to Off In Viewport so that it will render but not calc in the viewport. You can also do this by setting the viewport levels to 0 and the render levels to what you will need how ever this is not as fast as setting it to Off In Viewport as the modifier is still calcualting normals.


#6

Thanks for the feedback. I am not using meshsmooth. Here are the stats:

(This is on a Xeon Dual 3.6Ghz - 2 Meg memory - Max 9).

My base character is 59K polys. If I do full body morphs - the lag is around 11 seconds with every change in morpher %. If I turn off skin (which is above the morpher) - the performance is real-time.

I detached the head from the body (still around 32K polys) and the performance is now about a 2 second lag.

Since I tend to have the morph % change throughout the entire scene, it will really slow things down.


#7

What does the whole stack look like?


#8

The stack goes in this order - starting at the bottom - Editable Poly / Morpher / Skin

The skin has 84+ bones. I found that if I detach the head and then remove bones from the skin excluding the neck and head - the performance returns to almost normal. However, I would rather not do it this way - I have a bunch of morphs on the full body that I would have to move around.

Guy

ps. Paul - I have your first 3 training DVDs. Great stuff. Thanks.


#9

What do you mean by remove the head? Is it a sperate object? And if so do you have your skin modifier instanced? If skin is instanced, make it unique and I think that will solve your problem.


#10

No it is not a seperate object. As an experiment - I did a detach and found it still slower than I would like. The Skin is an instance - I just tried making it unique but it did not affect performance on the full body morphs.

On the file I am experimenting with - with the detached head - the skin is instanced. By making it unique - it still has a lag of 3 seconds. The skin still has references to all the bones that made up the body - if I take those out - the performance is pretty good. This could be a workaround - but it would mean reworking everything and full body morphs would be difficult to use.


#11

I don’t know why you are seeing such slow downs. I don’t think that I get that kind of hit. because of skin. Are you skin weights baked? Or are you using Envelopes? If you are using envelopes then what might be happening is the weights of the verts in skin are dynamicly changing as you morph. This isn’t what you want if this is the case. Select all the verts in skin and press the bake button (it looks like an oven).

Let me know if that helps.


#12

That was the problem. Once I baked them - the performance is now back to normal. Thanks for all the help. You rock.

Guy


#13

Because you had left then unbaked you were going to start seeing other errors as well. This isn’t just a performance issue. If your morpher changed the shape of the base model enough eventualy the mesh may have passed outside one of the envelopes. This means those verts would then suddenly pop back to their origin. I’m gussing that with weight all verts on it would stop this but you would definitly see a major change in the weighting of those verts, and I suspect, not what you would want.


#14

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.