PDA

View Full Version : Squash and Stretch rigging..Help


mindspin00
01-28-2005, 06:41 PM
Hey all! Been trying to post on this for a couple days, so hopefully this post will make on the boards.

A couple years back I came across a file (I think it was included with Maya5) called “NINO.MA”. It was a demonstration rig created by Olivier Georges with some FANTASTIC squashing and stretching built into the rig. Unfortunately, the rigging is slightly out of my knowledge so I’m not quite able to reverse-engineer the rig to figure out what is going on. I know he’s using math nodes, etc…but it’s just beyond me how he’s doing it.

For anyone that wants to take a look, I’ve copied the file here….Hope I’m not violating any copyrights…(if so, I’ll instantly remove).

http://www.idsoftware.com/private/eric/rig/nino.ma (http://www.idsoftware.com/private/eric/rig/nino.ma)

Anyhow, if someone could offer some advice as to what’s going on, and how he’s doing it, I would be ETERNALLY GRATEFUL. I have some personal projects I’m working on that I would love to apply those techniques to. I’ve looked at a couple different ways people doing this same type of technique, but they don’t really seem to get the same result as this one.

Anyhow…please take a moment and help a goofball figure this out, if ya can :)

-eric
eric@idsoftware.com

littlepixel
01-30-2005, 07:29 PM
I've been trying to formulate a reply to your message and I've been trying to analyze mr. Georges' model, but I suppose only he will fully know every single tweak he's made to this model.

I propose we attempt our own stretchy skeleton using nurbs. I even have a proposed method, which I will delay posting until this evening. Let's try to attack the problem from first principles. I guess you must agree that we will need a skeleton with extra bones?

-Alex

clalan
01-31-2005, 09:17 AM
the rig doesn't use extra joints to create the stretch and squash effect. unhide the joint layer, click on one of the stretchy joints and look at the connections in the hypergraph. first they measure the distance, using condition utilities and expressions they calculate a new size and then alter the scaling of the bones. this is just at first glance, so it's probably a little more complicated than this :)

mikefeil
01-31-2005, 11:40 AM
this rig is awesome, he leaves comments through it but yeah...there french...might have to use babbelfish.

Anyway, I'm all for reverse engineering this, and then maybe as we rebuild it, make a tutorial ? Cause this stuff look pretty original? or maybe not.

:D

mindspin00
02-01-2005, 05:09 AM
I'm all for reverse engineering it to figure out what's going on. Prob is, it's still a little out of my league. Wish we had someone that knows something about to help out. The guy that did it still hasnt emailed me back, but I understand....hey, people are busy :)... if we get something working similiar to it, or come up with a tutorial, I would be happy to host.

About to make a new post re: blendshapes.

clalan
02-02-2005, 01:31 PM
I took the rig apart and used the same method to build a stretching arm. I created a step by step overview of the process and I'll add a link to the document. I must warn you tho, it's five pages of plain old text (although I added some colors :) ).

the setup is based on a three stage principle: normal, stretching and over-stretching. nothing revolutionary, but the way he used utilities to slap the whole thing together is pretty clever.

the rig relies heavily on two utilities: condition and multiplydivide.

one condition checks for stretching and outputs new values for the bones: stretching or non-stretching. the stetching values are determined by another condition that checks for over-stretching. so we get three states:

non-stretching: pass default values to the bones
stretching but not over-stretching: pass the calculated stretch values to the bones
stretching and over-stretching: pass the limit values to the bones

here is the step-by-step with full explanation:

www.alanclaes.info/nino_reverse.doc (http://www.alanclaes.info/nino_reverse.doc)

let me know what you think!

mikefeil
02-02-2005, 02:42 PM
thankyou so much,

me and a pal spent about a day at college try to work it out an replicate it..

so many values tho, and so many changes..aw god...the brain hurt.

hehe

nice one tho :)

Vril3D
02-02-2005, 02:44 PM
clalan

Many thanks mate

isometrix an I had been playing with this for a few days when we had time.
You have really helped answer the questions that still had us a bit baffled .
I really like what Olivier Georges did with this rig, its such a cool way to rig for this type of deformation.
Anyway its making me look at rigging in a new way, which is good.
Thanks again.

mindspin00
02-02-2005, 03:52 PM
Thanks so much clalan! I'm really thrilled and amazed at how much you guys got into trying to figure this out. When I first made the post I never thought anyone would care about it enough to try it out. What a great example of the community pulling together.

Unfortunatly, I'm out of town until Friday, but I would be happy to host that document as well. I'll make another post when I get it up there.

Thanks again clalan!

-eric

mikefeil
02-03-2005, 12:24 AM
mirrored http://www.mikefeil.net/nino_reverse.doc :)

and some notes that I made, pretty much useless now I guess tho..heh

http://www.mikefeil.net/nino.doc

clalan
02-03-2005, 04:12 AM
hey guys, thanks for the response. It was interesting to pick this rig apart and build something similar from scratch. writing down an explanation like that sure helps you to understand it better! utilities are pretty powerfull, I think I'll start using them more now :)

nice work isometrix, I think you captured the "flow" of the calculations quite nicely.

mikefeil
02-03-2005, 01:44 PM
hey clalan

I have gone through your reworking a few times now, and each time I havent been able to get it working all that well. I'm quite positive I have done everything you have said in your reworking. Here is my latest go at it. Its almost there but its not?

hehe, so close its driving me nuts.

clalan
02-03-2005, 05:40 PM
hey, there are just two little things wrong which seriously messes things up ;)

1. condition_stretch.colorIfTrueR is set to 0, instead of the original value of joint_elbow.translateX (which was 3.489 if I calculated correctly).

2. the operation for condition_overstretch should be set to "less or equal", it's still set to "equal"

I'm afraid you'll have to rebind your skin tho, you attached it while joint_elbow.translateX was set to 0 :(

I noticed that I forgot to include the part about setting the operation to "less or equal" in my document. I fixed it and put the new version online... sorry :)

mikefeil
02-04-2005, 12:51 AM
aw sweet..yeah cool..I guessed that about the missing operation..so I just tryed to wing it and try and guess..hehhe

ill have another crack at it today


edit:: just tryed it all again then...worked awesome...just gotta try to understand it all 100 percent to make a whole rig out of it...thanx alot once again

and btw I see that you are from id eric...what does id want with squash and stretch ;)
heh

mindspin00
02-05-2005, 09:30 PM
It's actually for a personal project I'm working on with an artist at the company. More of just testing out some different technologies, ways of rigging, ways of animating, etc. Not really anything relative to what we're doing at work. :)

I havent been able to really get this rig working well enough to have faith in it yet. I will admit that I'm not a great rigger though. Been getting better with it, but alot of what I know has been specific to what we've needed with our games, so.... Another potential problem is that I really prefer to animate with FK arms, and turn on IK only when I need it. Helps me to keep my arcs more clean, etc...Without having an IK solver in the arms, I cant imagine getting it to work.

I'm not abandoning it...I'm still going to play around with it. But, I am interested in looking at some other squash/stretch rigging ideas, if anyone knows of any, or has any themselves. I think the power of what you could do animation-wise with a good s/s rig is awesome!

-eric

clalan
02-06-2005, 12:25 PM
the fact that you can stretch this rig doesn't mean you can't include an IK/FK switch. you can just build a set of FK arms that you can use for "normal" animation and only use the IK version for stretching. IK just looks natural for stretching, like holding an elastic band at both ends and pulling it.

it all depends on what you need the stretching for. is it a character that can stretch his arms to reach for stuff? does he have spaghetti like arms? or do you just want a regular character with a bit of stretch and squash to give it a cartoony bounce?

if you give a description of what you want your character to do and how you, as an animator, would like to control it, then we could do a little brainstorm on how to achieve that :)

vfxcreator
02-07-2005, 05:41 AM
some sunday night browsing brought me here.... i don't usually post on forums (can't usually find the time), but since i have something relevant to say here that would probably interest you.... why not.

i took a quick look at the rig file, and just from glancing at the hypergraph, it looks like the connections are pretty similar to the setup that is done in the new (/plug) Advanced Rigging and Deformations book (authors - brad clark, john hood, joe harkins) that is coming in a month or so. I tech edited... basically the same technique is covered in the book - it also goes over setting it up for ik/fk, stretch/squash on ik AND fk... utility nodes rock :)

anyway, keep an eye out for it if you still want to dig this apart...

and eric, maybe you guys can come on down to austin for a maya usergroup - i think we're gonna hold one for when we get the book published... kind of a maya usergroup/book party.

-josh
Char TD ...among other things... @ the animation farm

mindspin00
02-07-2005, 06:03 AM
I had a couple ideas over the weekend about how to make a squash/stretch rig that actually is controllable....Did a really quick prototype on a simple poly-sphere. It worked great. I need to try it out a bit more, but I'll probably post what I did and see what you guys think.

Josh, I'd love to make it down. I'll fire you off an email tomorrow sometime.

-eric

vfxcreator
02-07-2005, 07:44 PM
ah, i also thought of another thing... if you do a little math and work out some volume preserving tools (like paul's muscle system math, or joe actually goes over that kind of math in the book as well...), you could use that to incorporate a kind of automated squash and stretch with influence objects.

OR
with maya 6.5, since you can now bind geometry to any transform nodes, you can setup a nice control system with nodes/locators, and use them as an added stretch/squash. it would just take some breaking of the rules... :)

just some lunch time ramblings!

cool eric, that would be sweet... shoot me an email at home or the farm...

anyone else in our area that is interested in the UG, feel free to shoot me an email too. we're always looking to bring more people in to the meetings :)

-josh

jcarey@theanimationfarm.com
joshuac@vfxcreator.com

mikefeil
02-08-2005, 12:43 AM
i'll definetly be buying those two rigging books (charater setup and the advanced one you said, from inspired) they sound like there going to be great if they cover this sought of stuff

steveblake
04-26-2005, 10:56 PM
Hmm - Be great to take a peek at that 'nino_reverse.doc' mentioned, anyone got a copy/mirror handy?

Thankyou kindly peeps....:)

CGTalk Moderation
04-26-2005, 10:56 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.