PDA

View Full Version : Skin Sliding


kiaran
02-28-2005, 12:02 AM
Hello everyone!

It's been a while since we've had a good discussion here about that elusive holy grail of creature deformations.
SLIDING SKIN
So my question to everyone is, do you account for this subtle effect in your animations? If so, how?

To start things off, I've compiled a list of techniques along with some pros and cons as I understand them:

Skin Sliding Techniques:

1.) Sculpt Deformers: Perhaps the oldest trick in the book. Sculpt deformers can be used to simulate the look of muscles sliding under the skin. While relatively easy to setup, sculpt deformers are not the ideal solution. The main problem is that the sliding is very localized, unless you setup a bazillion of them. Another disadvantage is that sculpt deformers come in only one shape, a sphere. Sure you can use any NURBS surface as a stand in, but that is so SLOOOWW and generally difficult to control.

2.) Rigid Body Muscles, w/ Soft Body Skin: While I've yet to see anyone actually use this technique to good effect (maybe someone here can prove me wrong), the technique is unlikely to be a viable solution in a production environment. The main problem seems to arise from annoying vibrations and long calculation times.

3.) Syflex / Maya Cloth: Like in #2, this technique relies on dynamics to calculate the collision of muscle surfaces with a skin surface. I remember seeing a deformation demo (it was frontpage a while back) where someone managed to use Maya Cloth to simulate skin sliding over a regularly rigged smooth skinned creature. The results were cool but judging from the forum, it was extremely difficult to control and prone to just flying off into cyber space. Syflex now has a 'flesh' and 'skin' simulator (as of version 3.0) but I've yet to have the chance to try it out myself and I haven't heard from anyone who has so I can't comment on this any further.

4.) Skin Relaxation: This is a term that got bandied about shortly after The Hulk came out and then sort of vanished. This quote from a ILM TD explains how they used a proprietary simulation engine to simulation skin sliding over a pose space deformed Hulk rig:

"The physics of Flesh Light are similar to other [software], but it's a completely new engine with new code," explains Gutschmidt. "Imagine you have a shape for the mouth opening and another shape for a frown. If you do that at the same time, you need to define what happens in between areas. How does the skin stretch? How does it look when it's not stretching? All that goes into skin relaxation. How do you blend that in a realistic way? How do you make the skin go over the bones while it's doing that? Our answer is Flesh Light. Consider Flesh Light like a web of springs we use to define specific behavior. Everything depends on the behavior of the springs. The software allows us to program for stretching or compression of the springs with a threshold. Flesh Light is designed to give you good behavior in a way that is efficient to calculate. I haven't seen that kind of behavior in any other package. You can see skin-over-bone in other packages, but not with as much realism. The behavior of the springs is just beautiful to look at."

While this certainly sounds like the best solution, there is no such simulator available in Maya or any other off-the-shelf software package (that I am aware of).

In my opinion, the combination of a pose space deformer (like this http://www.comet-cartoons.com/toons/MELfiles/poseDeformer.html ) and a skin relation simulation would be the ideal, fully controllable and stable production worthy solution for creating believable skin deformations.

Let's get this discussion going guys! What have I missed, what do you use, know any cool tricks or interesting links on the topic?
:)

kiaran
03-01-2005, 06:13 PM
Seriously guys? Nobody has anything to say about skin sliding? :(

seven6ty
03-02-2005, 02:02 AM
Ummm...

It looks pretty damned cool when they get it to work in the movies? :)

kiaran
03-02-2005, 03:19 AM
lol, thanks seventy. ;)

stormtroopar
03-02-2005, 07:54 AM
Skin sliding is always an interesting topic. To me personally anyway. It is something I have been looking into and testing for a while. However, for production, it is not always needed, as a matter of fact, it is probably not needed most of the time. People would be surprise how far a really good deformation can go. At least this is what my workplace believe and I unfortunately am finding this to be more and more true.... But the curiosity in me is still pursuing this area.

Prior to working at Sony, the method I ended up using, sparingly when needed for skin sliding is sculpt deformers. Its not the greatest, but it works. The slidebuldge plugin did a good job and suprising works pretty fast with high res mesh as well (it actually made popping less with higher res mesh) but it is not stable enough to use in production. Other times I have tried using blendshapes to fake sliding, it is difficult to do and time consuming, but it was the most controllable way without any plugin. Cloth methods I would not use in production. Even for LOTR, it was not until Return of the King that they perfect their muscle system. Prior to that, they did a lot of "shot sculpting" when their muscle system would explode all the time and the modelers would have to go in and fix it frame by frame... haha yes! And they have developed that thing for a few years.

Kiaran, I know you have used cgmuscleKit quite a bit, how is the muscle sliding in there with the softbody skin?

Besides that plugin, there are no real easy or available plugin available that does skin sliding.. not yet anyway.. ;) but I do think this will change in the next 2 years.

The only thing I have seen so far that I think is 'really' viable is what i have seen from Messiah's Texture Deform tool. i think that should be the direction of where these (skin sliding, realistic muscles...etc.) things should go, similar to what zbrush did to redefine digital sculpting. When you are dealing with geometry, you are always dealing with a finite resolution. With displacement and the ability to create sliding and deforming affect from maps, you get very high quality deformation, yet easy to control and tweak without very complicated setups. Check out taron's demo somewhere in this forum. He shows a great example of the possibility of this.

I am sure there is much more to discuss on this topic, but I will leave it at this for now. Shall be continued....

thematt
03-02-2005, 09:29 AM
Hello,

I actually try to answer yesterday but my message got erase for some reason, and didn't have time to write it back.
back to the topic, I think it's very cool this discution is taken place, i'm now in the process of skinning a character and I use a lot of the paint weight to mimic those skin sliding thing, By adding very small amout of weight at part that should not necessary move with that joint you can fake it quite good, sort of painting the musle flow, it's nice because it actually pull the vertex and give the impression of slide.
For complex part, I got it done with scult deformer, there are quite slow sometime and not always predicatble.
I try tried recently to come up with something with the softSelection, and I thought it would work good, but unfortunatly it was rather confusing, because it doesn't react accordingly from what I expect, as a test you can try, just connect the translate to the foloff center of the softmod and move it around..???I found it very hard to control the radius of te fallof afterward.should try more :(.

The demo from Taron is really nice, but the problem is that you probably have to do a render, every time you want to see what's going on..but definetly the ability to drive blend shapes with maps could be the way to go,I don't undestand why those deformer are not paintable without resorting to plugin.Xsi as that and peaople are using all the time !!!
I supposed driving the displacement could be just as good, but probably not as vissual as i say, you could do a mix of both to acheive great result,I'm sure, mostly when you have setup your moving map already with the blend shape, reusing it to fine tune with the diplace..mmm sound good.

Anyway great topic, keep it coming guy.
cheers

jgibz
03-02-2005, 01:38 PM
can you guys link to this Taron thing, I cant find it :(

kiaran
03-02-2005, 09:15 PM
However, for production, it is not always needed, as a matter of fact, it is probably not needed most of the time. People would be surprise how far a really good deformation can go.

I absolutely agree. This is likely why commercial solutions still aren't available. It's such a rarely needed (but still very appreciated) effect.

The only thing I have seen so far that I think is 'really' viable is what i have seen from Messiah's Texture Deform tool.

Can anyone expand upon this? I was unable to find anything in a google search. Really, skin sliding is fundamentally about separating the texture and the form. Of course, this can be accomplished my any means necessary, so I don't see why a UV deformation tool couldn't do the trick.

I too would like to see this Taron demo.

thematt
03-02-2005, 09:52 PM
you ask for it..:)

here it is.

http://www.cgtalk.com/showthread.php?t=187770

cheers

thematt
03-06-2005, 09:48 AM
so that discution's dead?

UP!

stormtroopar
03-06-2005, 10:08 AM
yes, quiet, no other opinions.....

In regards to using displacements and not being able to see feedback in the viewport with those techniques.

First of all, i don't think that is too big of an issue. One, in order to use these techniques sufficiently, you need a renderer that is very capable in doing displacement in the first place. Those renderers are usually very fast in rendering complex displacement so rendering to see result is not a big deal. Especially in production, many times you don't 'see' what you are doing til you render it or process something and that is a skill required in production anyway.

Second of all, with many advances in realtime rendering now, like High Quality Rendering in viewport, you can see real time normal map for example. This can be further enhance to include fake display of displacements so you can see things happening realtime as you work. These will be further sped up in the future so to have these aid a texture displace deform pipeline is not going to be a problem. I have setup a few characters that uses zbrush displacement pipeline already and I use the High Quality Rendering mode in viewport to displace the displacement real time to see the effects happening in the high detail level and I have no problems with it at all. Even without it, you can just display the map in the viewport and see what is going on.

Nonetheless, it would still be ideal to have a fast, reliable custom geometry sculpt deformer. Alias should look at XSI's shrinkwrap. It does just that. They should also add paintable capability to it though. So it would affect how much influence/sliding it has on the geometry.

bdeda
03-06-2005, 03:45 PM
Has anyone ever explored the possibility of animating uv coordinates to simulate the sliding with just a simple texture offset? Seems like you should be able to offset the uv's and tie it in with a SDK.

I'm not sure if this would work, or even if it's possible in maya, but from a programming perspective, it seems like it would. With OpenGL, you define each vert's texcoord in (u,v). Why shouldn't you be able to adjust those coord's with another objects attributes, such as a joint rotX?

Any ideas on pitfalls, other than maybe too much texture stretch in areas? With such a subtle effect, I would think that you could get around things like that with some artistic planning.

thematt
03-06-2005, 06:11 PM
Second of all, with many advances in realtime rendering now, like High Quality Rendering in viewport, you can see real time normal map for example. This can be further enhance to include fake display of displacements so you can see things happening realtime as you work. These will be further sped up in the future so to have these aid a texture displace deform pipeline is not going to be a problem. I have setup a few characters that uses zbrush displacement pipeline already and I use the High Quality Rendering mode in viewport to displace the displacement real time to see the effects happening in the high detail level and I have no problems with it at all. Even without it, you can just display the map in the viewport and see what is going on.



that's very intersting, it's true that the new option of viewport capability enable yuo to look at normal maping in real time, but still there is no simple way to drive that normal map and the effect is quite different from a displacement, but that's a good solution as a starting point to see what you're doing, really have to explore that more in depf..very intersting idea.

As far as animating Uv's i actually try once to key those Uv back in maya 5 day's and it was SO heavy!! it crashed my computer everytime.haven't done it anymore.
Messiah way of driving the map through those sort of deformer that you move around (sorry don't know the name) is really really powerfull..is there any big studio using messiah as an animating and rendering tool, seems like there tools are really powerfull.
I still would like very much to have alias work more in that way, giving us more option to drive map and be able to paint any deformer with mask.
Would be just great to use artisan as a paint tool for any animated map, because so far you can't paint animated maps in artisan.
unless I'm wrong.

Anyway the normal map display mix with dispalcemnt is an excellent alterantive, I will really go looking that way next time.thanks for that tip.

cheers

kiaran
03-14-2005, 05:24 AM
Taron's animated displacement map demo looks amazing. I'm sure this technique will have many applications for specific effects shots. My only concern, however, is that the underlying mesh would need to be constructed in such a way that it had enough resolution to convey more complex expression while being subtle enough to allow a wide range of displacement.

Consider this. Taron's demo apparently uses a base mesh with around 500 faces. Judging by the screen shots, this mesh is quite insufficient for complex facial targets. If you haven't already, you should check out the ZBrush demo that Taron did for the Zbrush user group meeting (http://pixologic.com/zbrush/interviews/pixomeeting.html). While the animation is very good, it could definetly have benefitted from a more refined base mesh.

Anyway, back on topic. I don't think animated displacment maps are a viable solution for skin sliding. They may work fine for helping blendshape bulging and creating pose-based creasing effects, but not for sliding.

thematt- So you've tried animating UV's in Maya? That's too bad that they are so slow. I imagine the workflow would be hell too. I can imagine it would turn into some sort of nightmare once you take into consideration the edges of UV shells, direction of layouts etc...

Does anyone here have any experience with the Softimage Shrink Wrap tool? How does it work? How fast is it? What kinds of influence objects can you use with it? It may be worth pitching this idea to be developed as a new deformer type in Maya.

Thanks for the helpful feedback people. :)

M.E.L.
03-14-2005, 06:08 PM
Shrink wrap in XSI is kinda like a hybrid of a wrap deformer and a sculpt deformer put together. Although XSI handles this type of deformation that much better by storing the vertex data in actual weight maps and clusters (something Maya lacks right now is actual weight MAPS).

The joys of XSI is that you can pretty much skin to anything object wise heh...can be good and bad if you pick the wrong thing sometimes :P

On a side note, search over on highend3d...there was a shrinkwrap up until Maya 3 or Maya 4 that someone was writing, don't know if it has been updated since though!

-shawn

stormtroopar
03-14-2005, 06:32 PM
On a side note, search over on highend3d...there was a shrinkwrap up until Maya 3 or Maya 4 that someone was writing, don't know if it has been updated since though!
-shawn

That shrinkwrap isn't the same thing. That works more like the old soft shrinkwrap where it just tries to geometrically wrap an object to another, sort of like conforming object A to object B based on vertex distances.

CGTalk Moderation
03-14-2005, 06:32 PM
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.