elastigirl


#101

I experimented some while ago with ‘spline skinning’. While it works not quite bad on lips, for example (skinning a spline for the lip and control it via LinkedXForm), it seems to deform a simple cylinder in a non-wanted way. Imagine a cylinder, a 3-vertex spline skinned to it, and some kind of helpers to control vertex positions. If you move any helper, the mesh will follow the spline shape because of the skinning, but it gets some weird deformation too.

So Asa, how did you get rid of that deformation?

p.s.: if what I’m talking about it’s not clear, I can attach some images to explain it better.


#102

yes i had the same problem, i tryed to make all the vertex as corners, or smoothed but i found that the best way to avoid any bad deformation of the spline is too make the middle vertex a Beizer corner with very little handles, so they are very close to the vertex. that seemed to help it. can take a look at my setup in the attached file - it is max 7.


#103

Ngrava & all,

I wouldnt skin a spline to bones, your gunna get additional offset issues, combined axis etc. Plus i wouldnt use linked xform - it will kill your system if you have lots (trust me ive done it)

— continued

Yes ngrava i see, plus your skinning a nurbs-curve; isnt that a no no for memory issues? What im doing with besier stuff is firstly controlling each vertex via an expression with a simple point.

[-a.y,a.z,-a.x] - a being your vector controller. Its an inverted axis, for some reason.

Its just for linking the besier point to a helper point. Now i do this with all the besier handles that are being controlled. Then i have a very simple (ish), constraint system to weight the besier handles and link it into the ik stuff. It means you can weight it down, but still have stretch etc etc.

For the leg clip, there no bones in that system at all!, just point heirachies etc etc. If you want ngrave do you have msn? - we can discuss more there i’ll send you a PM with mine.

eek


#104

Hey Eek…why are you going to the trouble of controlling the points along the spline with expressions. Wouldn’t you get the same results with the “Spline IK Control” modifier?

Most people think that this modifier is only used for spline IK…but its acutally not. All it really does is create a helper at each vertex that controls that vertex.

Then you can control the tangents the same as you normally do…via expressions or whatever. I do this and it seems to work fine. And even though expressions are fast the modifier is probably fast since its compiled. Its also a lot less to set-up :slight_smile:


#105

light goes off in head…BANG…BANG…BANG

sound of head hitting desk…

Harvey, sometimes all this stuff goes to my head! Never thought of that!

eek


#106

Well, actually I thought of that, but I scared to tell it (and sound confused) after reading all that complicated expression stuff you’ve done heheheh. :beer:

Anyway, keep the progress goin’ on!:wip:


#107

Hahaha…I know exactly how you feel Eek. Many a time I have called someone over to my desk and said…hey look at this really cool thing i set-up…its all controlled via these funky expressions/constraints/other mysterious rigging magic…and they tilt there head sideways and say “yah…but what about this button…doesn’t that do the same thing?”

heheh.


#108

this is my second try of streachy arm without Linked xform or any splines, since it is a ik system you can’t break the joint.

Asa


#109

i did some research a while back on using *path deform. The nice thing about this is firstly its a deformer so you could tweak it with the sdk. Also it has controls such as twist, which is a really important factor in stretchy stuff.

You can also get at its controls:

rotation
stretch
percentage
twist

Ive found out how set its stretch against the length of your object just by doing a script on the stretch value.

d1 = $object.height/length
d2 = curvelength $line0X

d2/d1

Now you can do the same with the rotation against the swivel angle of the ik - or whatevers controlling it. Theres probably a degtorad thing going off in there. Ill post up some pics later today.

eek

edit:

So this idea does infact work and you can drive the rotation off the swivel angle, the only issue now is speed. So im gunna try and bridge the length system with the stretch system.


#110

hey guys,

i wrote a little script a while back that creates control objects for splineShapes… it creates controls for bezier handles as well and is intelligent about the type of knot (creates independent handles for bezier corner knots, linked handles for beziers, no handles for corners and smooth knots, and only one handle at the ends of the spline)

it has no interface yet (it’s basically one big hack) but i plan to take this further pretty soon

known issues:

  • one of the handles on bezier curves has inverse translation when you drag in the viewport because of 2way wiring
  • i use script controllers so it’s not the fastest way possible, and it’s name-dependent (until max8 comes out :wink: ) i might switch to splineIk for the knots themselves (thanks harvey :wink: )
  • (sort-of-issue) i have a seperate object that contains all the script controllers (i just put them in a scale list)

hope this can be of some use!

Expose_Spline_Handles.ms


#111

Fantastic, Kai! Thanks for sharing :slight_smile:


#112

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.