Let's talk about our Relationships


#1

Hello, all.

I’ve got a rather technical question, here, concerning Smartskin Relationships.

Here’s the deal. I’m trying to devise a nice squash & stretch feature for Gaty’s arms. This is tricky, 'cuz a parent bone has to scale up (the biceps) while at the same time its grandchild has to remain the same size (the hand bone). With some creativity, I managed to get something pretty decent. Gaty’s arms can lengthen, while his hand scales down in order to remain the same size. I even used a some Muscle Mode work, to thin the arm up as it stretches. Gaty is not as stretchy as Elastigirl, but his right arm can now lengthen by 200%.

However, a problem occurs when he bends his arms and flexes his wrist:
http://www.sonic.net/raillard/hash/A.mov

The trouble you see, is the Smartskin Relationships at the elbow and wrist. These Relationships needs to be scaled, too. Those 'skins are still distorting the arm as if it was 200% bigger all around. This is actually a good default behavior for the program to have … but not in this case. Really, in this particular case Gaty’s arm is just lengthening; the joints actually shrink a little.

Animation Master lets me scale the enforcement percentage of Smartskin Relationships over time. In the PWS I just clicked on the “Show more than drivers” icon, on the right side of the Action file’s name. Then I burrowed into the model’s Relationships folder. I located the two troublesome 'skins, cracked open their disclosure triangles, advanced to the frame where the arm is fully stretched out at 200%, and set the Relationship’s enforcement settings to 50%. The results:
http://www.sonic.net/raillard/hash/B.mov

Problem solved, right? :slight_smile:

Well, not quite. :sad:

If I close the program, and reopen it, I lose the Smartskin Relationship percentage refinements. The drivers just vanish! Poof! And Gaty’s arm resumes its former dumbskin behavior. When I save out the Action file, and reimport it, the same loss occurs. As you might’ve guessed, the prospect of building these refinements into a Pose or a Scale Relationship are not looking very hopeful, either.

My question is this: Is the ability to animate a Smartskin Relationship’s enforcement percentage an intended feature of Animation Master? Or am I trying to do something that was never meant to be possible in the first place? Maybe I just attached a driver where no driver was supposed to go, and by some fluke it stuck … albeit temporarily. I don’t quite know what to think.

Thanks for any feedback.

Sincerely,

Carl Raillard


#2

(I can’t really help with your question, since I know crud about the bones system. I did notice, however, that your hand seems to shrink not stay the same size. Other than that, that’s pretty nifty :).


#3

Hi.

Yeah. 'Needs more keyframes. This is done in a Scale Relationship, on a control bone. I’m pretty sure I can maintain the hand size by typing in a few more keyframes, but I’m not gonna fine-tune the hand size until I get this smartskin problem out of the way.

If I can only get this to work, it would be so cool. I’ll be able to use an Aim At constraint on my arm control bone, with the scale to reach feature turned on. Then the arm will lengthen automatically, as the hand target is pulled away.

Sincerely,

Carl Raillard


#4

If you saw on the Hash FOrums there is a three new Tech Talk Vids available. One is on Expressions. It shows an example of a stretchy arm expression. Might be helpful.


#5

This is a pretty complex area. I have seen a very robust solutiuon to squash and stretch for arms (and legs and bodies etc.) that takes all the scaling and counter scaling into account. I am trying to contact the originator of said system to see if I can make some of it available for public consumption.

but the basic idea is that for the arm bones you have two sets of bones one that stretches and one that counter streteches. you drive the counter stretch with an expression along the lines of Transform.Scale = 1/…|…|…|Stretcher.Transform.Scale. Now you simply scale like the bone that most closely suits your needs, so for instance if the arms need to grow longer but you want the hand to remain it’s normal size you scale the hand like the counter stretch bone for the hand.

it’s a really great solution in general and has a lot of very useful applications. if I can get permission to do so I will post (or have the third party post) a file for everyone to look at. it maintains the volume pretty handily and avoids any weirdness that may be floating about.

-David


#6

Thanks for the headsup, Zaryin. Oddly enough, the way Bob has rigged “Hero Dude”, he has lost all FK capacity in the arm (the scale bone is attached to the bicep, instead of the forearm). I wonder if the setup would still work if the scale bone was just a child, off to the side? Well, in any case, it was very informative to see Bob create some actual Expressions. This is the most vaulable Tech Talk video to date, IMHO.:buttrock:

Tell me about it! Thanks for chiming in, David. I feel like I’m pretty close to my own solution, here. Can I ask you a question? Are we supposed to be able to vary the enforcement percentage of Smartskin Relationships, while animating? You wrote the book on Animation Master. You should know! :slight_smile: Bestow us with your wisdom. :bowdown:

Sincerely,

Carl Raillard


#7

I spent the evening doing some experiments with Expressions on a bone scale. The problem with such Expressions is that they do not seem to come to life when their target bone has an Aim at constraint with the “Scale to Reach” feature turned on. Apparently a bone that is growing and shrinking due to an Aim at constraint is not really scaling. It’s scale drivers are not really changing … and those are the drivers that are giving life to the Expression. Since Aim at constraints are the key to automated squash and stretch (IMHO) I kind of think Expressions will have limited usefulness is this application.

I’d love to be proven wrong. Maybe I’ll prove myself wrong. I might as well, since I’m replying to myself. :stuck_out_tongue:

Sincerely,

Carl Raillard

PS: Another test: http://www.sonic.net/raillard/hash/J_Accuse.mov


#8

Good discussion!

It should be possible to vary the enforcement of a relationship. I remember doing this once. You can link it to a slider or the rotation of a bone too.


#9

I might not know much about what you are talking about, but I am enjoying your workthrough here. And I do see mto be understanding a little more about bones.


#10

This is correct, what I do to circumvent this is use Scale Like which does effect the drivers… it adds a full additional layer of bones in there but at this point getting away from that will be a real pain :slight_smile:

As far as the driving of smartskin enforcement. I drive my eyelid sight lines this very way. where a null position drives a pose slider which in turn drives a relaionship enforcement percentage for the smartskin I can use this to drive the eyeline of my character interactively with the null (i could just use the slider but i find i like my controls in the window with the character more and more.)

The thing I am not 100% sure of is if the adjustment in an action will stick… this is why I keep the adjustment in a nice safe pose (although I suppose i could just put it directly in the null’s translate relaionship.)

-David


#11

Hello, all.

First, an apology.

In my last post I wrote:
I just did a test. This is possible. Instead of making the forearm the child of Bob’s scaler bone, you should leave it as a direct child of the bicep. Bob’s bone should just be an unnattached sibling of the forearm. Create the Expression, via Bob’s recipe, and then temporarily unnattach the forearm from the biceps. Then apply a scale like constraint onto the forearm, and dab the eyedropper onto Bob’s bone. Then reattach the forearm to the biceps. Voila! A kinematic chain that operates just like Bob’s demonstration.

Well, I was wrong. I tried reproducing the above test … and now it doesn’t work. :rolleyes:
What can I say? I don’t have an excuse. I must have garbled things up, yesterday. :blush: 'Sorry for the bum steer.

It looks like Bob’s technique is the only way to use Expressions for this purpose. But his recipe entails a loss of the FK chain. That’s quite a liability, in my opinion. I don’t think using Expressions is a good way of getting the arms to stretch. It is true that the bicep and the forearm bones must scale along the Z-axis … but the mesh, especially around the elbow and wrist regions, ought to remain the same. One doesn’t want the elbow to suddenly make a gentle sweeping bend, whenever the arm grows long. One wants the shafts of the bones to grow, not their proximal and distal “knuckles.” A Scale Relationship on a bone, with some Muscle mode drivers on them, seems like a more promising solution, to me.
If I could only tone down the Smartskin Relationships inside the Scale Relationship! :bounce:

Any fool can make a single joint stretchy. It’s making an FK chain of two (or more) bones stretchy that’s difficult. This thread is turning into the Elastigirl thread!

John, can I ask you (or anybody else?) to do a quick test?

Create and action file with a model that has Smartskin. In the PWS, on the model’s shortcut in the Action, click the “Show more than drivers” Icon. You’ll get a tree of data folders, filled with the model’s stuff. Expand the Relationships folder. Expand the Bones subfolder. Select a bone, and expand its Tranform Relationships folder, and it Rotate Relationships folder, until you reach a Smartskin Relationship. Crack open its disclosure triangle. Advance ten frames and change the skin’s enforcement percentage to 0%. Save the project. Close it. Reopen it.

Is the driver on the Relationship still there?

I don’t want to plan on a feature that was never meant to be possible.

Sincerely,

Carl Raillard

PS: I think I can divine Obnomauk’s idea. Have an FK chain that you can scale with impunity, and then attach the geometery bones to this scaler chain via orient like & translate to constraints. But I’m kind of reluctant to pursue this solution. The fact of the matter is Gaty’s arms are complicated enough! I wouldn’t be surprised if the little bugger has more bones than Control Points. I’ll use David’s idea if this is the only way of getting Elastigirl limbs … but it’s not my first choice.


#12

Ah! Thanks for chiming in, David.

Well, that is reassuring! On AMv10.5q, smartskin enforcement drivers don’t stick in poses, either. They are as evanescent as soap bubbles. You’re using v11, right?

Methinks it is foon tyme for me to upgrade.

Sincerely,

Carl Raillard


#13

Well, I decided to give David’s technique a try. I did a little test arm (zipped project file attached). While working on this thing, I got a feeling of deja vu. I recall trying to pull something off like this way back in v7 or v8. I couldn’t get it to work back then, because I stubbornly thought I could avoid using a pose slider. The way I had it rigged, though, the arm could no longer bend at the elbows; it always collapsed into itself, like a vacuum hose tube. That’s still a problem. The difference is that now I understand I cannot escape the use of pose sliders.

Anyway, in my project file I’ve included a test arm with two alternative ways of getting an Elastigirl arm. A good way, and a bad way. :hmm:

The bad way is the automatic way. This is demonstrated in Action1. I ought to forewarn everybody that I rigged the arm with my Chatterbuster system. On frame 20 the arm switches from the C-buster rig to an ordinary IK rig. Between frame 20 & frame 30 I pull the IK target (2 OUTSIDE HAND NULL) out. In the same interval of time Pose1 is set to 100%. This is the autoscaler pose. Hence, as the arm extends out, it lengthens automatically. HOWEVER there seems to be some mathematical slop in the process. The hand does not superimpose over its target null very well. Just go to frame 30 and try rotating the null a bit. The hand flickers around, imprecisely. I am not overly impressed with my attempt to automate this length, here. Anyway, from frame 30 to frame 40, the hand abandons the IK rig and zips back to the end of the Chatter-buster rig.

The better way of lengthening the arm is demonstrated in Action2. This method is to just do it manually, with a pose silder. On frame 0 the arm is bent. On frame 10 I increased its length by increasing Pose2 to 300%. On frame 20 I restore it to its normal 100% length.

I’m curious whether this is anything like the rig you had in mind, David? :shrug:

Oh, one more thing: I used Bob Croucher’s Expression recipe to keep my hand control bone from changing size. Thanks to Bob, I have finally created a working Expression! :applause: In my little test rig, here, the hand’s size is determined by the scale of the hand control bone (2 Hand). At anytime you can increase the scale of this Control Bone, and the hand swells. This is neat for creating big meaty fists, etc.

Over and out.

Sincerely,

Carl Raillard


#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.