View Full Version : Automatic Smart skin deformer.

09-26-2003, 09:53 PM
Automatic Smart skin.

I've been thinking about this for a while now. If I knew how to program in C++, I would have just written a plugin to do this but I'll ask for it anyway:

The idea is that once you select a joint in the object deform plugin, you then give it some dynamic properties like muscle density (you can associate a weight map if you'd like), Skin thickness, area of influence (defaults to the bone rest length), etc., etc. Then tell it what axis you want it to work on and press "Bake". It then bakes a simulation of the joint bending and the skin smooshing against it's self and stretching around the bones using a simple soft body dynamics. Each frame of the simulation is then added to a simple vertex morph based on the angle of the bone (just like most smart skin). I think it would be best if it was geared toward the properties of a joint and not just general dynamics. What this means is that the programmer would need to model an accurate simulation of a joint first before you could find what settings to offer the animator. The great thing would be to get this thing to run on a bunch of joints at once. So, there would probably be a batch list you could add joint simulations to before you got to the actual individual joint settings.

I don't know... what do you think?


09-27-2003, 12:59 PM
That's far too convoluted! Setting this up could take even longer than using the current workarounds. What's really missing in the LW feature set is something like a deformation lattice or at least more versatile effectors - it's as simple as that. Setting something like this up is as simple as 3 mouse-clicks in Maya (and XSI and MAX as well I suppose). If it can take advantage of all built-in dynamics - all the better.


09-27-2003, 03:50 PM
I think the best way to do smartskin would be to be able to correct point position and have that new position remembered relative to that bone angle. So for example, raise the arm up, fix any points around the shoulder joint, even shape up the pec muscle flexing. Now whenever you raise the arm up, the points assume the newly corrected positions. Lower the arm, fix the points, and again, automatic morphing at that position. The points would then interpolate between the up position, the down position and their natural rest position. And of course, it should all be done within Layout. No jumping back to modeler and no manual setup of expressions for smartskinning like the current implmentation.

09-27-2003, 05:20 PM
Wow... Now I'm really sorry I posted this.

09-27-2003, 10:55 PM
Why ngrava?

The whole idea of the discussion forum is to discuss ideas around Lightwave. The idea of smartskin has been requested hundreds of times on these boards (do a search on the old boards, you'll find a lot) and there have been many ideas on how to implement it. Best you can do right now is to get your idea in. Let the developers decide which is the most plausible and effective way to do it.

09-28-2003, 01:45 AM
Wait a minute! What am I saying... Sorry, Got a little to discouraged there.

Mylenium: chill, it's not as hard as it sounds. The main place this would be applied to is on the elbows, knees, shoulders and hips. The rest of the joints are easy enough to deal with. Setting up the dynamics wouldn't be that hard either. It's supposed to be automatic. The idea being that once you got the hang of it, it would just be a matter of setting a few properties and pressing "Bake". The baked deformations are then automatically handled by actual morphing part of the plugin. You don't have to take them and apply them to some other plug in yourself.

The main idea here is that you get perfectly realistic joint deformations because they aren't based on trying to model them by hand. Not that that's really that hard to do but hell, we could all be using pencils and paper right? ;)

A lattice deformer like the flexors in Maya would be cool too. It's to bad they only work on rigid bound skins in Maya. By the way, I use Maya too and it's hardly 3 clicks to get this to work. Actually, I never use the lattice flexors because of how difficult they are to apply correctly. The ones in Max are... Interesting. XSI doesn't have flexors though. It surprisingly lacks any kind of built in joint deformations which is weird because they used to have them in the previous SoftImage. However, you can to angle based deformations which are really just XSI's version of Smart Skin.

I was actually thinking that what might make this plugin really cool, is if a new class of plugin could be created called "Joint deformer". They would get applied to the bone and be able to effect there parent too. You could get people writing all kinds of neat custom joint handlers like wrist twisters, elbow bulgers, muscle flexors just to name a few.

hrgiger: I'm sure people have asked about smart skin before. What I wasn't sure about is whether anyone had asked about creating it with Soft body Dynamics. I'm sure you know that Hash has a very good implementation of it but even then, it can take hours or even days to get it looking right on all the joints. By the way, I'm not sure if you know about this but there's already a plugin called Smart Skin for LightWave. It comes with a cool modeler plugin called Rotate Bone that allows you to rotate Skelegons in Modeler, make an endo, rotate the joint, make an endo, ect, ect. This also takes a really, really long time. Not to mention that the morphs happen in a liner fasion. Meaning, they don't happen smoothly as you would expect and they don't go into overdirive like normal morphs so what you make is all you get.

The point of my idea was just to automate the process of modeling the deformations with Dynamics. I had originally thought of this as just being a soft body joint deformer. But, the more I thought about it the more I realized that it would really slow things down. But what if you could just run a simulation of all possible joint rotations and there self collisions and use the baked solutions as morphs? Why not?

If you happened to be handy with motion designer you could probably figure out how to do this right now. Alas... Motion Designer is much to mysterious to me to be of any use. The plugin I'm thinking of would be much easier to use by the way. ;-)



09-28-2003, 09:10 AM
Hash's Animation Master was the program I used before I got Lightwave. I would have to disagree that it takes long to setup smartskin in it. Certainly not days like you suggest. Minutes is more like it.

I have actually asked for a smartskin feature in Lightwave before using dynamics. Sort of a muscle collision detection sort of thing. But that was a long time ago and now what I realize is that the whole idea behind smartskin is to have total control over what your bent joint looks like and my personal preference is to sculpt the shape myself. I get what you're saying but that still means leaving it up to the computer to decide what your joints look like and then you endlessly tweaking the settings to get it just right. And you want to do this for each joint? No way, I'll do a little sculpting which would take a couple of minutes anyday before I would want to setup some dynamics, run a simulation, tweak the settings, re-run the simulation, tweak them again, etc.... Now you're talking days.

I've used the Lightwave plug-in for smartskin like deformations but it involves work between modeler and layout which is a poor workflow. I'm suggesting something that would work in only Layout without the need for seperate morph targets. It's nice we have it but you have to setup your weightmaps with harsh breaks to get the thing to work and I don't like having to do that because that means you have to correct the joint on all axises if it happens to have more then say just pitch. I don't think that smartskin should be relied upon to give great deformations, it should just be there to tidy up your motions and keep your muscles scupted how you want them through the range of the motion.

Originally posted by ngrava:
The main idea here is that you get perfectly realistic joint deformations because they aren't based on trying to model them by hand.

That's almost like saying we should have a make "cool model" button because it wouldn't be realistic if we had to model it by hand. ;)

Your idea is fine ngrava and I'm not trying to take away from it, I was just adding in that my personal preferences would be to correct my deformations manually.

09-28-2003, 11:41 AM
Alright. Whatever makes you happy.