(no subject)

Apr 21, 2008 21:11

So I've been talking to Tanis about my projects. Or rather, I've been going on about skeletons and rigs and how I feel like I'm not making any progress.
I spent the weekend working on my stuff, and achieved very little to show for it. Aside from learning what doesn't work for the small and random thing I was attempting to do. The entire weekend, seriously. Long days, too. It was very frustrating.

I'm working to two projects. We're only supposed to do one, but I liked my Thendrax and Kreesha so much that I'm rigging both.
I might wind up doing a third, a head, to practice facial blends. I might not, it could be the kreesha has enough complexity for its face that I can just stick with it. I might do a third anyway, we'll see how crazy I'm feeling.

This is the field I'm considering going into. Rigging isn't as popular a field, so there's less competition, so it'll be easier for me to find a job. And it helps to be technically minded, which I am. So it's profoundly frustrating to be having such a hard time with this.

Anyway, that was the weekend. Today I feel much better. My Thendrax rig is almost done. I could call it done, but there's one last tiny detail I want to fix, and it'll be even better! And I took screenshots so I could show Tanis what I've been talking about.
So, here's my rig. It's attached to a low poly simplified version of my Thendrax, so I can move things around without Maya chugging.
What you're seeing here is the low poly mesh, the skeleton (the black things showing through the mesh), and the controls for the rig (the yellow and blue stuff). The controls are sorted into primary and secondary controls - the primary are blue, secondary yellow. I have the yellow ones set to stay hidden until you tell them to show up, but I've got them all out so you can see my fantastic work. :P
The blue circles by the critter's feet are IK controls - Inverse Kinematics. These are shiny shiny things to have. With this, I can lift the foot and the entire leg follows. (Incidentally, you have no idea how long it took me to work out how to force the IK to get that particular motion for the leg) If I didn't have that, I would have to move the leg into the posistion I wanted by moving the base of the leg, then by moving the second joint, then by moving the third joint... that's Forward Kinematics, and while it has its place, it's not the best solution for legs.
With Inverse Kinematics, I can do all sorts of things to the body and the legs will stay put until I tell them to move!
This is actually pretty fantastic. I did all that with just one controller (except for the last, which used two). FK can't do that - if I had applied those transforms to a critter with FK legs, it would have moved as one rigid body.
Anyway, moving on.
FK is useful in its own right - IK can only do so much. My rig combines IK with FK, so I can pose the leg where I want it, and then use FK to adjust the leg. That's what those yellow controls are, they're for FK. Also, the purple skeleton there is a duplicate FK only skeleton, because I can't have IK and FK on the same bones. The mesh is attached to the FK skeleton, and the controllers are actually constrained to the IK skeleton. Then (and this is the really clever part) there's a node that adds the motion of the IK skeleton and the motion of the controllers, and uses that to control the FK skeleton. This means I can just move the IK skeleton and the FK skeleton will move with it, but I can also rotate the controllers, and that will move the FK skeleton too!
It avoids getting a doubled motion because of some fancy trickery with groups - when the IK skeleton moves, the controllers don't actually register the motion, even though they move with it. So when just the IK skeleton moves, it's 0 + IK motion being fed to the FK skeleton.
Attaching controllers to joints in the first place takes fancy trickery with groups. See, joints can have orientations that stick when you freeze their transforms (which sets translate, rotate, scale, and probably more to 0) Everything else... doesn't. But not freezing things and then trying to animate with them does Bad Things. We don't know what these bad things are, exactly, just that they're bad. I have some classmates who are lazy about freezing things, so when we get to Animation 2 perhaps we'll find out. Just freezing your controllers without bothering about orientations makes it hard to pose things later.
So, the solution! You make an empty group. You could make anything, really, but empty groups are handy in that they're impossible to select by accident. Which is good, because after the empty group is set up, you're going to ignore it for the rest of its existance.
So you've got your empty group. You constrain it to the joint, which snaps it there and rotates it until it matches the orientation of the joint. Then you set up whatever you're using to control the joint, freeze it, drop it into the group, freeze it again (that step is important), and do whatever you do to make the joint follow it. Usually that's another constraint. Now whenever you select your controller, it has clean transforms - rotate and translate are all set at zero - and it's oriented exactly the same as the joint! So shiny and fantastic! So aggravating when you've managed to do it wrong!
When this was explained on the first day, the class pretty much stared at the teacher in disbelief. It's a pretty convoluted process for just attaching a controller to a joint - but really, it's the only way if you want the thing to have proper orientation.

Anyway, that's enough rigging for the day. Tomorrow I'll head in again and finish the last bit of stuff for this rig, and then work on the Kreesha rig. I'll get at least the makework done for that, and go back to trying to bludgion the neck into submission...

school, maya

Previous post Next post
Up