PDA

View Full Version : Lastest Character Rig


PEN
07-07-2005, 12:19 PM
Just thought that I would post this. We are still working on the character and this image doesn't have all the parts rendered as they are not rigged yet.

Erin Nicholson is modeling and texturing the character and I'm doing all the rigging.

The rig is a spline IK (not the built in one but one similar to what is on my DVD's) with an FK over drive system. The arms are IK/FK with and auto clavicle and rotation lock on the wrist. Legs are stright IK but I have set up a funky foot roll that handles the natual curve lf the sole of the boot.

I'm using a simulated muscle set up to help with deformations in the legs and shoulders using built in tools. Cloth and hard body sims will be used for clothing and chains that are not seen in this pic and real hair will be added using the built in hair tools.


http://paulneale.com/production/BromComposit.jpg

LoneRobot
07-07-2005, 01:03 PM
jesus!

what else can i say Paul - just amazing. Great work. Will be nice to see some test anim of the rig in action

PEN
07-07-2005, 01:04 PM
I might set up some test renders of the deformation working on the Skin today. Ill see if i can find the time.

So far it is working great.

PEN
07-07-2005, 01:32 PM
Just a quick render of the shoulder area.

http://paulneale.com/production/BromShoulder.jpg

lucasfeld
07-07-2005, 02:03 PM
hey paul, looking great, I know those textures are probably temp, but I'd rerender them as grey materials... they just look really "max plastic" and kinda dull... I think the color choices are also going a long way to flatten it... I say, show off the best parts, and leave the in progress till they are done :P. Also was the camera used with a wider pov? the head looks a bit odd, has that 30mm lens look, not sure if it's the camera or the model...

Just your friendly neighborhood nitpicker :P

L:F

PEN
07-07-2005, 03:20 PM
Shoulder rig and deformation wmv

http://paulneale.com/movies/BromShoulder.wmv

trybul
07-07-2005, 03:30 PM
Paul,

Amazing work, every time i see a rig from you it is getting more and more complicated. I still find it amazing that you are incorperating muscles using just standard max, with out plugs. This is great work, Keep it up, and keep us posted.

trybul

grundelboy
07-07-2005, 08:55 PM
Dude you got mad rigging skills. Keep em comming.

ReneAlex
07-08-2005, 12:10 AM
Looking forward for more movies, those screencaps are just has useful like your tutorials... very inspiring just like those of the arnold rig in your website.

btw... what´s up with the vol 4 of the cg-academy's dvd?

greetings and ciao :)

Mahlon
07-08-2005, 01:04 AM
That is wicked. Is her jacket held together with skinwrap? And are you using Skin Morph Modifiers? I understand if you can't answer questions about her.


Thanks,
Mahlon

erilaz
07-08-2005, 01:46 AM
Are those muscles some kind of wired flex mod? That's really very impressive!

groutcho
07-08-2005, 08:09 AM
Amazing work. But this is becoming an ordinary word to describe your work. Juste one question : in order to get the muscles actually deforming the skin around them, what method do you use ?

- Groutcho

joconnell
07-08-2005, 08:26 AM
Heya Paul!

The rig looks great - the shoulder area in that test is really nice - Are the muscle objects purely a visualization object or do they get included in the skinning too?

Also I'm workin on an automated rig for my company partially based on your dvds - When it's fairly solid I'd love to get your thoughts on it if you're not bonkers with work.

Cheers,

John

hamu73
07-08-2005, 09:26 AM
wow this is just great!
Is this rig similar to your DVD rig?
Have you added some element? what are they?

As for the skinning, how much influence do those muscle objects have?

thanks

Wahooney
07-08-2005, 11:03 AM
Brilliant work as always Paul!

There is just a few things I'd like to know.

How do you make the auto-clavicle? (just the basics)
Can it switch to a manual clavicle?
What is that contol inside your hand movement control? FK Wrist?
How do you rig the your curved muscles? (Neck/Clavicle Muscle)
Thanks.

joconnell
07-08-2005, 11:51 AM
Heya Wahooney,

you can do an auto clavicle using either a reaction controller or a script controller:

A reaction controller can be setup to make a bone start rotating when another bone rotates past another point (in the case of the clavicle it can check the upper arm and when the upper arms rotation starts to go past 0 degrees in parent space, start rotating).

A script controller works the same way, by checking the upper arm bone and rotating the clavicle after a certain rotation value. The only difference is that the xcript controller allows you a lot more control but has a much less friend;y interface.

Any bone can be made automatic and manual by using list controllers (a rotation list controller with the first controller being your automatic script or reaction controller and the second being a euler xyz for manual control)

PEN
07-08-2005, 12:01 PM
Thanks every one. Here are a few answers to your questions.

Korben
Looking forward for more movies, those screencaps are just has useful like your tutorials... very inspiring just like those of the arnold rig in your website.

btw... what´s up with the vol 4 of the cg-academy's dvd?


Just as usful eh...I'll dumb then down a bit then, I don't want to give away to many secrets;) Just kidding.

As for DVD #4 well it is still in the making. I have just about completed work on a feature film that was taking up all my time and have started work on this project for another client. Once this is out of the way I will have some time to get DVD #4 completed and then start on a character production pipe line DVD series that I have been looking forward to starting.

Mahlon
That is wicked. Is her jacket held together with skinwrap? And are you using Skin Morph Modifiers? I understand if you can't answer questions about her.


So far I have not got around to Skin Morph, this is all just skinning. I have been using skin wrap but only to wrap objects like the jacket and then convert it to a skin modifier. If I get time I will be using Skin wrap more for the muscle deformations.

erilaz
Are those muscles some kind of wired flex mod? That's really very impressive!

Nope, just bones. They will be getting spings and flex mods once I get around to setting those up. I will use the same methods that I used on the Bull rig to clamp the springs and flex to the velocity of the character so that I don't get over shoot. Here is an example avi of the bull if you have not seen it.

http://paulneale.com/temp/gp2/Bull3-4Front_04.avi
http://paulneale.com/temp/gp2/BullTex01.mov

groutcho
Amazing work. But this is becoming an ordinary word to describe your work. Juste one question : in order to get the muscles actually deforming the skin around them, what method do you use ?

Well this is the power of Max, I'm not doing anything fancy, just stretchy bones and skin at the moment. I will be doing other methods but I have not had the time to set them up as of yet. The muscle will become dynamic and I will be wrapping to them. Skin sliding it out of reach for the base tools in Max but I have found that it you know how to rig doing all kinds of fancy simulations isn't always the best production solution as it might cause way more problems then it is worth. I don't know of any features where they claim to have used muscle systems that didn't fake a whole lot as well to get around the hassle of sims.

joconnell
Heya Paul!

The rig looks great - the shoulder area in that test is really nice - Are the muscle objects purely a visualization object or do they get included in the skinning too?

Also I'm workin on an automated rig for my company partially based on your dvds - When it's fairly solid I'd love to get your thoughts on it if you're not bonkers with work.


Hey John, I would love to see what it is you have set up. I share in the hopes that other will share with me. I learn something new ever day still.

As for the muscles they are pure visuals at the moment but I hope to use them as muscles so that I can get some dynamic jiggle in them.

hamu73
wow this is just great!
Is this rig similar to your DVD rig?
Have you added some element? what are they?

As for the skinning, how much influence do those muscle objects have?

This is very similar but I have changed up the way that I do the spine a bit, same idea but the mid control for the spine is different and I also added the FK setup to it as well. Arms are IK/FK and I didn't cover that on the DVD's

Those muscles have lots of influence. In areas like the thigh there is very little weight on the actual thigh bones.


Wahooney
Brilliant work as always Paul!

There is just a few things I'd like to know.




How do you make the auto-clavicle? (just the basics)
Can it switch to a manual clavicle?
What is that contol inside your hand movement control? FK Wrist?
How do you rig the your curved muscles? (Neck/Clavicle Muscle)


The auto clav is a tricky one since you can't pull a rotation from the shoulder to drive the clavicle in an IK solved joint. This is because you will get a dependancy loop. So I use a system with lookAt constraints and reaction manager. I'll say no more;)

Yes, it was blend from auto clav to manual. The manual is on all the time and can be animated on top of the auto clav at any time. Then if the auto clav is not doing what you want you can ramp it off and just go manual. At the moment the auto clav is just on the IK system since if you are going with Fk it is usualy so that you get full control anyway.

Control inside is the Fk control system. I will have those hide and unhide depending on the mode that you are in.

Curved muscle in the neck has just been modeled that way so that it is just inside the mesh. You can also do it with multiple bones like in the thigh.


Well I hope that has answered some questions. Erin Nicholson will be doing more work on the model and the texture as well we have to set up hair, cloth and har body sims as well.




http://paulneale.com/temp/brom/TwistBones.jpg


http://paulneale.com/temp/brom/ChestRig.jpg


http://paulneale.com/temp/brom/LegRig.jpg

Chris Thomas
07-08-2005, 02:00 PM
Yeah, thats looking very cool Paul, its good to see your pushing the envelope again with this rig. It's going to be very cool :) looking at the rig, some of it seems to be familiar whilst other areas not, like the muscles for instance. Just how much of this rig is covered in our CG Academy rigging DVDs (http://www.cg-academy.net/pages/topic_rigging/dvds_rigging_intermediate_1/dvds_rigging_intermediate_1.htm)? I guess those areas not covered so far will be in future DVDs in your CG Academy range.

Also, do you plan to do a full facial rig or is the character mainly only going to be used in an action scene i.e. are we talking a full phoneme setup and so on? It'll be good to see that kind of stuff covered in your (very eagerly awaited) Intermediate Rigging DVD4.

On the topic of hair/cloth, I can imagine you'd be ok there, but I wonder how much of a need there is out there for specific DVDs on both of those new systems. I'm guessing a lot of people may need a decent introduction to both technologies when the latest version of Max ships, I assume both will come as standard in 8+.

On another note, people have been wishing for cloth and hair in a big way, and now they have them. I wonder what other wishes will be realised by AME in 8, it seems Discreet/AME have been listening pretty well of late.

Anyway, back on topic. Looking forward to seeing the rig develop, and the same with the model once its tweaked some more by Erin. Top works guys ;)

msouza
07-08-2005, 06:37 PM
Cool Paul. Another very nice Rig. :) I worked on the Bull project with you, and that was a great change to work with such talented "Rigger"... lol

I liked that muscle solution. I would like to see the deformations on a more fluid mov, when you have time... :)

Shoulders and articulations always need some trick to became more natural. I like this shouders deformations. The volume keeps balanced over the animation.

About Cloth...Hey Chris ! How are you man !... Sorry about to not reply your last mails. I will answer them asap. Sorry.

I think Max ClothFx, is so easy to need an entire DVD about it. Maybe a DVD with advanced effects including Hair/Cloth and another "advanced" feature, could be nice, but only for hair, or cloth... I don't know. :)

martinc
07-08-2005, 11:21 PM
Looking nice Paul!

PEN
07-09-2005, 12:45 AM
Well I think this is just about the final look of the rig. A few more things still to do with it though.

http://paulneale.com/production/BromRig.jpg

Promineo
07-09-2005, 10:10 AM
One more time, sorry for my english.

I only can say....Awesome work!! thanks a lot Paul, every day, I can learn more by you, I love your methods... I never saw, your bull project, can you show us, any more about it?.

I'm working in a special UI with flash, actionscript with maxscript for rig, I hope end it in two months, and show you here.

Tughan
07-10-2005, 10:53 AM
Paul, new rig looks awesome man. It's like watching magic. :)
It must've been very fun to animate it. Whoever animate that "Brom Girl" will be a very lucky character animator indeed. :D

Wahooney
07-11-2005, 06:59 AM
I hope the secrecy about the Auto-Clavicle is because it's going to be on DVD4 ;)

PEN
07-11-2005, 10:55 AM
The auto clav will not be on DVD 4 as that DVD will be all about facial. I wanted to add it to the advanced DVD series but I guess I could explain a bit more.

Set a look at con on a point helper (we will call it. laPt), have it look at the IK wrist control. This object is out side of the hierarchy of the arm so you will not get a dependancy loop. Pull the rotation from laPt to drive the clavicle. I use reaction manager for this and the extract transform helper.

Thanks for the praise everone. Who ever gets to animate it will have a lot of fun I hope.

ReneAlex
07-11-2005, 04:24 PM
hehe... I guest right... thats is the kind of info I manage to figure out from the arnold video, the only thing was the method to get the rotations my first guest was a expression ctrl, then in R7 I guess; a expose trans helper and a wire param would be easy to setup... but the reaction ctrl gives you the limits w/o hassle.

the simple answer almost always is the right one

thanks again Paul!

hamu73
07-14-2005, 10:55 AM
do you do the auto-clavicle a similar way as in Maya?
You also use look at constraints (aim con) with point helper...
well I think I will try the Maya way in Max!

so Thanks for your help Paul

groutcho
07-14-2005, 12:25 PM
I tried to do such a muscle system, here's what I did :

http://site.voila.fr/groutcho/muscle_test.gif

Ik chain from bone 1 to 3, IK handle linked to Bone 4, Muscle linked to Bone 1 and Bone 4 linked to muscle
Is it the right way mr neale ?

stevesherrin
07-17-2005, 01:51 PM
I attempt to link them as shown above, but when i Make the last link (usually I save linking muscle to bone 1 for last) everything explodes off in odd directions (I'm assuming it has to do with creating a cyclic link, but not sure). WHat am I doing differently?

groutcho
07-17-2005, 02:00 PM
Send me your Max scene to compare, here I didn't understand your approach.

- Groutcho

Kanga
07-17-2005, 03:19 PM
Looking good man!

Cant wait to see the rig in action:thumbsup:

PEN
07-17-2005, 06:41 PM
A stretch muscle in Max is easy as you have done and you shouldn't get a blow up. I use two bones, one being the nub bone on the end so really it is one bone and a nub bone. I also use two point helpers. First aligned to the root bone of the muscle and the second aligned to the nub bone. LInk the root bone to the first point helper and Look At constrain it to the second point helper. I also set the upnode to be the first helper so that it doesn't spin around when the character starts moving. Postion constrain the nub bone to the second point helper. Now you can link the two point helpers to what ever you need to get it to follow the rig. Simple as that.

I have also done the squash with a squash modifier but this will not be affected by skin as it only using node transform data. Skin Wrap will how ever use the vert data to deform it. For this reason you can also use flex on the muscle to get it to jiggle a bit. I then write some functions that check for velocity and ramp the effect of the flex on and off based on the speed of the muscle so that I don't get over shooting of the flex mod. This should all be considered a sim and don't expect it to run real time as you are animating.

As for the auto clav I have see some people do it the same way in Maya as I do in Max but I have also seen some setups that have another bone chain, I don't know why as they don't work any better then this one. In Maya I do it just the same as I do it in Max.

groutcho
07-17-2005, 06:50 PM
I have also done the squash with a squash modifier but this will not be affected by skin as it only using node transform data.

Strange. The squash i've done is performed with a checkbox in the bone panel, and it indeed deforms the skin around it, with just the skin modifier. Is there a difference between this checkbox and the squash modifier ?

- Groutcho

Aearon
07-18-2005, 12:55 PM
Looks awesome so far Paul!

I'm currently building a rig that is all about good deformations, it will be used with mocap for a lady with very tight clothing ;) If you could give me some pointers that would be great :thumbsup:

Are all those muscles squashing bones or do you do anything special for some of them?

how well is the number of muscles you have working for you? i needed to put a few more muscles in my rig to get clean deformations in all poses. especially the leg (at the hip joint), it's actually got as many muscles as my shoulder rig. how do you get that area to work well without muscles between hip and thigh?

one of the problems i'm still trying to solve is neck deformations. i have a sterno-cleido-mastoid like you do, and it works great in all poses (chin on chest, head very far back, turned to side) except a full 90° turn, there the neck looses some volume on the side that the head turns to, because the mastoid will vanish inside the head. any tricks to get around this? i have thought about making the mastoid a 2-bone chain so it can curve around the neck, have you tried anything like this?

PEN
07-19-2005, 01:25 PM
groutcho:

The squash that the bones do is actualy a seperate matrix, it is the stretch matrix. Really it is the same as scaling the bone but it will not affect the rotation matrix as scaling would. For this reason skin will react to the changes in the stretch matrix. You can altualy fine tune skin to this as well with the squash value found in the parameters rollout.

Using any sort of vertex deformations on the bones will not affect skin and you will need to start working on other solutions like using skin wrap in these cases.

Aearon:

Most of the muscle bones have squash turned on but often I will just use stretch as well. I skin to all the muscle bones but I also skin to the rest of the bones in the rig as well. What I tend to do for a work flow is to skin to the usual bone set and get it as close as I can. Then I start to add the muscle bones to start getting the feeling of skin sliding and stretching. Then I use Skin Morph on top of it all to do final corrections in areas like elbows. This character still doesn't have skin morph applied as I'm not sure that it isn 't going to change still. Erin has been very busy and not been able to complete it.

The number of muscle that I have is working great, I have added some and still might add more. The goal is to not build the perfect human but to get the skin deforming correctly. Building ever muscle in the body isn't nessesary. The other thing is this character will have cloth sims run on the clothing so much of the sutle skin defformations might get lost along the way.

I have often worked with up to three bones in a chain to get the twist that you are talking about. Although you can't see it this is the way that the Arnold project on my site is working and some of the Ogre project as well. In both these cases I have created muscle bones, skinned muscles geo to them and then wrapped to the muscle geo to get the final results. A lot of work.

The Sternocleidomastoid will start to colapse in this setup as well if the neck rotates to far. This is the problem with most of the bone setups in plugins that I have seen. There is no good way to bend them. Some use a method of sim-ing the muscles and the skin and although it alows for skin sliding and very realistic muscles it is almost never needed and can be faked without the head aches. Use a two or three bone system here and you get around that. I'm all about getting the project done on time and on budget and making it look as good as it can. Sims are great but the more complecated they are the more unknowns there are and the more likely you will go over budget to get the job done.

http://paulneale.com/production/bromGirl/bromBack.jpg

http://paulneale.com/production/bromGirl/bromLegs.jpg

Wahooney
07-19-2005, 01:33 PM
Hey Paul,

I hope you're taking notes on the questions from this topic for your Advanced Rigging DVD set ;)

ReneAlex
07-19-2005, 01:46 PM
hey paul, I just notice that you got 2 segments in the femur bone.

is this is for better deformations like in the shoulder?

if that is the case; how much it rotates in X compare to the long segment? and how you approach this.

thx in advance.

PEN
07-19-2005, 02:30 PM
Wahooney: Lots of notes taken;)

Korben:
You can see it much better in this screen grab. I have four bones in the upper arm and 5 in the lower. The upper arms extra three bones are set up as anti twist bones. Refer to my DVD's for ways to set it up. This helps a lot in the deformations of the shoulder area as I dont' get the tearing that happens if you don't do this. Hold your right hand on the top of your left upper arm area just below the shoulder. The hold your left hand as though you are going to wave to someone. Now rotate your shoulder forward and back and you can see that the muscle at the top of the arm don't rotate with the upper arm bone but slide over it and the skin slides on it some more. Setting up anti twist bones cheats this affect.


http://paulneale.com/temp/brom/ChestRig.jpg

trybul
07-19-2005, 02:32 PM
Paul,


very impressive, would like to see some motion test of the rig, and muscles in action. I notice that you have two bone for the glutiusmaximus, are you going to add a muscle into this area, or are you leaving it as bones. I would assume that by adding a your muscles here it would add alot. Ie as you said before you can add a slight flex to it, to get some "jiggle", as well as the flex of muscels in that area is quite noticable when a person is doing anything more then walking.

keep up the great work..
hope to see an update soon.

trybul

Chris Thomas
07-19-2005, 03:50 PM
That rig is really comming along Paul, can't wait to see an update from Erin also....

Quick question. I understand your also pretty skilled at rigging in Maya? Given the different tools sets between the two software, how do you find 3dsmax these days for character rigging? Do you think Maya is superior and have any of the recent additions to Max, especially in 7.0 done anything to re adress the balance here?

ReneAlex
07-19-2005, 04:19 PM
Yes.. I see it cleary... but I mean the legs... :P

in this grab:

Its show in the upper FEMUR a 2 segment bone, you know what I mean?

http://paulneale.com/production/bromGirl/bromLegs.jpg

I got the cg-academy dvds... BTW THEY ARE GREAT!!

PEN
07-19-2005, 05:52 PM
trybul:
The butt is a great place to add some dynamics on a character like this. Just a little jiggle and she will be that much more sexy. I'm using bones at the moment to spread the weights out so that it doesn't colapse when the leg lifts. I'm getting good deformations with this so I don't think that muscle bones are nessesary. I can do jiggle right on the two bones with a spring controller that is ramped on and off through a velocity check function that I add to a control object. This way I dont' get over shoot of the spring. I'm sure this will be on the advanced DVD's.

jmonkey2000:
Sniff, sniff, I think I smell smoke.
I don't want this thread to become a flame war of apps so if you are a maya guy dropping in I know that I can write the tool in Mel or use a plugin, I can do the same in Max so they cancel each other out. I'm going to comment on built in tools that I have used in production that has a dead line.

There was a point in time that Maya was way up on XSI (soft at the time) and Max when it came to doing character based productions. Maya still have some great tools for doing it but here is the way I'm seeing it now.

Since Max 4 many changes have taken place. Each version has added more and more to the character tools in Max. Maya on the other hand hasn't change much at all. I have worked on several TV productions in Maya starting at V4 and now on a feature where we are on V6.5. The tools just are not getting better.

Bones in Max I find much better. They are a bit strange for Maya people to get an handle on in Max because they are not open GL but instead geo that can be modeled. Mayas bones are a real pain because you are forever trying to realign them to the child bones. When you move a child bone in Maya the parent bone doesn't stay pointing at it. There is a built in tool that is designed to correct this but it works maybe 50% of the time. There are a host of scritped solutions in Mel that work better but are always a pain I find. Max's bones don't need this at all since as you move a child bone the parent stays pointing at the child. Squash and stretch is built in as well and affects skin where as in Maya if you skin to one bone and stretch it skin is not affected. You either have to scale the joint or skin to two joints, doing either is far more of a pain then setting it up in Max.

Skin in Max has advanced far beyond that of Maya. Maya's has many small issues, all that you can get around but you have to all the time. Many of the tools that you use with skin don't work very well like mirroring weights, this is a crap shoot and if it doesnt work there are no settings to change to make it work. In Max tools like mirroring that you use all the time work very well and before you ever press the mirror button you have a good idea of what you are going to get because of the visual information that it gives you. There realy is a lack of tools that I want in Maya, again a whole host of scripts solves this but I don't have to for the main tools in Max. I can write tools that are specific to the way I work instead of writting the ones that should be built in.

Skin Wrap is far ahead of the Wrap Deformer. Wrap deformer is memory hungy and from every Maya guru that I have worked with you just shouldn't use it. Max's you can use very well. Once again it has many more tools for working with the weighting and includes the ability to convert the to a skin modifier creating a great work flow for adding bits to a character. It also doesn't seam to be memory hungry like maya's and I don't have a case yet where I have used it that it cause me problems.

Skin Morph just doesn't exist in Maya, yes...I know..Mel right? well I used to do that solution in Max as well and Skin Morph has changed all that. This is a fantasic tool for creating corrective targets for joints, it is fast you can mirror the targets and solutions and it makes creating better characters deformations easy and fast. Remember what I said up top about tools I have used in production that have dead lines.

I do really like the node based system in Maya for connecting utility nodes. It creates fast rigs and is easily scriptable in mel. There isn't really anything that I can't do in Max to create the same results but Maya has many util nodes already for use that I have to write the expression for in Max. Maya wins on this one but not by a whole lot.

Constraints I like in both packages. Maya's have some control that I don't have in Max but there is a different work flow in Max and I find that I don't need them. For instance in Maya you can type in the offset value for a point constraint. In Max there is a check box, but if I want to use anoff set that I can type in well I just use list controllers and I can do anything that I can in Maya's.

All in all both packages have some great tools. Long gone are the days that Maya's character rigging tools are better then Max's. All this is just my opinion, anyone reading this should go learn the other package in a production environment and decide for them selves.

Korben:
Sorry, I saw the word shoulder and went off and a tangent:S
The leg works just the same as the upper arm and for the same reasons. I also tie the butt bones into the anti twist bones as well . There are actualy two anti twist bones and the original bone that IK solution solves. Doing this set up really helps with the tearing that happens in the crotch of a character and makes it very easy to skin without getting an ugly mess.

kees
07-19-2005, 08:01 PM
looks great as usual Paul.


-Kees

Jynks
07-20-2005, 04:24 AM
Is that a facny muscle system you are using .. some kind of plugin.. or is it just pretty rendered normal streach/squash/jiggle stuff?

Chris Thomas
07-20-2005, 11:17 AM
"I don't want this thread to become a flame war of apps "

Same here, ditto...

"Skin in Max has advanced far beyond that of Maya. Maya's has many small issues, all that you can get around but you have to all the time....."

I've heard that when Maya's skin is applied that its default skinning is better than what you get with Max's envelopes. Do you find that to be the case? If so, why is Max's skin so much better than Maya's?

"Skin Wrap is far ahead of the Wrap Deformer. Wrap deformer is memory hungy and from every Maya guru that I have worked with you just shouldn't use it. Max's you can use very well....."

I had the impression that max's Skin Wrap was actually inspired by the wrap deformer in Maya, its interesting to hear that the Max implementation of the concept is so much better.

"Skin Morph just doesn't exist in Maya, yes...I know..Mel right? well I used to do that solution in Max as well and Skin Morph has changed all that."

A friend of mine that works a WETA said pretty much the same thing i.e. he showed the new Skin morph tool to the Maya rigging guys there and their jaws dropped. I beleive they said something along the lines of "gimmie, gimmie, gimmie !!" :). How easy is it to use in practice though? I assume this is something that is going to receive some attention in your Advanced series?

"I do really like the node based system in Maya for connecting utility nodes. It creates fast rigs and is easily scriptable in mel. There isn't really anything that I can't do in Max to create the same results but Maya has many util nodes already for use that I have to write the expression for in Max. Maya wins on this one but not by a whole lot."

Interesting. These util nodes, could the be coded in 3dsmax and become part of the core, or are they specific to Maya's architecture? I know under the surface that both packages are node based of course, so is there anything stopping these nodes being hard coded?

I've been working on a DVD at the momment on Proceduralism in 3dsmax, and to illustrate the whole Procedural concept I've also demonstrated the same workflow in Max, Maya and Houdini. In Maya to re-wire various elements to get the example to work I had to use the Hypergraph (schematic node editor) in concert with the Connection Editor (Wire Editor in Max). Do you find Max's workflow in this regard to be more clunky, I know Max's schematic was revised in a recent release, do you think its gone far enough? BTW, I certainly prefere Maya's connection editor to Max's wire dialogue. Mind you, the wire system does allow for expressions per wire, so its swings and roundabouts here I guess...

"Constraints I like in both packages. Maya's have some control that I don't have in Max but there is a different work flow in Max and I find that I don't need them. For instance in Maya you can type in the offset value for a point constraint. In Max there is a check box, but if I want to use anoff set that I can type in well I just use list controllers and I can do anything that I can in Maya's."

Maybe those differences (and more) could be incorporated in a future release of 3dsmax?

PEN
07-20-2005, 12:49 PM
I've heard that when Maya's skin is applied that its default skinning is better than what you get with Max's envelopes. Do you find that to be the case? If so, why is Max's skin so much better than Maya's?

It is, but it far from complete. I find it faster in Max to do the next pass on skinning becasue of the envelopes. So they kind of balance out. I have written a system for Max that works just like Maya when you add the joints to the bind node but I dont' think that it rally saves me any time because you loose the use of the envelopes. This isn't the be all and end all of skinning though. One tool in Max that I wish Maya had all durring the film is the Always Deform check box. Turning this off in Max allows you to move joints without deforming the mesh if you need to change the pivot placements. In Maya you have to unbind the mesh and leave history, then rebind it. The amount of times that this failed drove me nuts. Also if the vert count changes in Maya to the mesh it kills the bind node, In Max skin will try to update it the best it can. There are ways of doing it in Maya but again it takes way longer to do.


I had the impression that max's Skin Wrap was actually inspired by the wrap deformer in Maya, its interesting to hear that the Max implementation of the concept is so much better.

I think it was, but Max got it right. Maya's needs a big update one of these days. Max's is enveloped based so the vert count can change in the mesh that you are wrapping and it still works perfectly. Each envelope is adjustable in several ways. I think Mayas had one fall off value you can adjust. I haven't looked at it in a bit so I'm not a 100% sure on that but I do know there is little that you can do with it. It could be paintable for the weights where in Max you can't because you have the envelopes.


A friend of mine that works a WETA said pretty much the same thing i.e. he showed the new Skin morph tool to the Maya rigging guys there and their jaws dropped. I beleive they said something along the lines of "gimmie, gimmie, gimmie !!" . How easy is it to use in practice though? I assume this is something that is going to receive some attention in your Advanced series?

Ya, this has been the same response that I have seen as well. I can't live without it now.


Interesting. These util nodes, could the be coded in 3dsmax and become part of the core, or are they specific to Maya's architecture? I know under the surface that both packages are node based of course, so is there anything stopping these nodes being hard coded?

Actualy Max currently has one util node, using Maya terms there, it is the Extract Transform helper and it returns rotation and position data about objects. This works just like the system in Maya where you connect to it but in Max you use the wire parameters or any other controller like expressions or script controllers. I would like to see more of them in Maxbut they are not nessesay to create what you need. I think that I will start writting them in C++ for where I need them.


I've been working on a DVD at the momment on Proceduralism in 3dsmax, and to illustrate the whole Procedural concept I've also demonstrated the same workflow in Max, Maya and Houdini. In Maya to re-wire various elements to get the example to work I had to use the Hypergraph (schematic node editor) in concert with the Connection Editor (Wire Editor in Max). Do you find Max's workflow in this regard to be more clunky, I know Max's schematic was revised in a recent release, do you think its gone far enough? BTW, I certainly prefere Maya's connection editor to Max's wire dialogue. Mind you, the wire system does allow for expressions per wire, so its swings and roundabouts here I guess...

Schematic in Max isn't used like it is in Maya, one becasue you just don't need it with the work flows in Max and two, it just isn't as good, probaby because you just don't need it the same. That is just part of the difference in work flows of the two packages. There is no point of a Max user that is now having to use Maya to try and use it like Max and the same holds true the other way around. The two packages are similar in the core but the way that they have been developed for the end user is a fair bit different.

The connection editor is easier to use because it only does one thing, it connects a to b. In Max the parameter wire allows for expressions like you point out. I agree that it could use a better work flow though but it works very well. And I find it much faster to use then when you have to include some simple math like multipling by 10. Because of the node based system in Maya you would have to create a multiply divide node, connect a to the md node then connect that to what you are going to drive. Open the dialog of the md node and change the value to 10. Works great but it is a slow process compared to the param wire in Max where I would just type *10 and press connect. Really the connection editor in Maya is more like instancing a controller in Max then it is like the Param Wire. Although in Max both the Param Wire and instancing controllers can be a two way connection. In Maya this can't be done.


Maybe those differences (and more) could be incorporated in a future release of 3dsmax?

Sure it can, no reason why not but I guess it is all about what is needed most and is there time to add everything. Rushing in features like in Max and Maya results in unusable and unstable features...Just look at Maya;) Then again Max has its fair share as well but it looks as though they have changed the way that they are developing max and going for less features that are more stable and usable.

ThE_SP
07-20-2005, 05:02 PM
Hey Everyone,

Very nice stuff indeed Paul. I'm going through the process of learning Max, being a Maya TD for several years. I find the most difficult thing is just being out of your comfort zone. Once you look beyond all the hype, the two apps arn't really all that different. Each package seems to insulate the user from having to know different high level functions of 3D. I think ultimatly, knowing both will help any 3D artist learn and master their craft.

Just my .002

Cheers,
Shawn

Mahlon
07-20-2005, 06:43 PM
Paul,
Hi, speaking of the SkinMorph modifier (above), do you think this is something you'll cover in your DVD? ---Alternatively, I could open a discussion on it in the forum.----

I find that I'm not knowledgeable enough to use it with GOOD technique. I understand what it does and mostly how it does it, but I'm lacking some 'approach' and technique in using it most effectively. I still get popping-vertices-a-plenty.

There must by some guidelines and method to using it correctly. Like, "well, you set up this shoulder rotation first, then you'll want to set up this axis after that..." etc. Or maybe it's not that complicated. At any rate, it's not very well covered in max's reference.

Thanks,
Mahlon

PEN
07-20-2005, 07:06 PM
Mahlon:
It isn't covered very well but this one is going to have to wait till the advanced series that I will start in the fall.

Like any rotation based system it will have problems that you need to know how to get around. It does work great, you just need to know how to finess it. I just don't have time at the moment to out line it so maybe a new thread should be started.

peekoot
07-20-2005, 08:10 PM
great info in this thread! i have had a chance to see some of maya's tools for character animation and my experience was very similar to PEN's.. especially regarding the wrap deformer and sking weighting...

to PEN: i've downloaded the videos, and red the thread, but might have missed it so sorry if this has been asked before: i can see that rig can perform very well, but what is it's actuall speed in the viewport? does it perform real time? (i'm asking because custom rigs i've been making tended to consume too much system resources)

another one, i see that people are talking about skin wrap when it comes to binding those muscles to character geometry.. this is something that poped 1st to my mind too, but one thing is bothering me- skin is supposed to slide over muscles and they should push the skin out, but if you use skin wrap they would pull skin as well... how do you plan to make it to push only? excellent example of this would be adam's apple.. not a muscle.. ok :) but serves good as an example: if we had an object for adam's apple and skin wrapped char. geo. to that object it wouldn't look good at all... because adam's apple slides beneath the skin and push it out.. i'm looking fwd to receive any comments on this!

excellent rig btw! i'm especially amazed by that bull rig you posted..

PEN
07-21-2005, 12:08 PM
peekoot:

to PEN: i've downloaded the videos, and red the thread, but might have missed it so sorry if this has been asked before: i can see that rig can perform very well, but what is it's actuall speed in the viewport? does it perform real time? (i'm asking because custom rigs i've been making tended to consume too much system resources)

The speed in the view port is good even with all the muscles working. Once you have the skinned character in the view port it gets slower but that is to be expected in any package. I would never actualy wish a rig like this on an animator. What I have done is to create two rigs, anmation rig and skin rig. The animation rig doesn't have any muscles or even twist bones in it. It only has cut up geo parented to the bones for volume reference. The Skin rig doesn't have any control objects or any of the structure for controlling things like IK/FL arms. It just has the main hierarchy as an FK system. Then though a set of tool I off load the animation from the animation rig to the skin rig. All sims take place on the Skin rig.

So in answer to your question, the full rig that you see here could actualy be animated with and is fairly fast. The Animation rig that I have created from this is very fast.

Skin wrap will not handle skin sliding, this has to be faked. For an area like the adams apple I would use an Affect Reigion modifier on the mesh and connect the end points of the gizmo to control point helpers , that will have to be done with a script controller. I did a tutorial on this in Max 5 or 6, I dont remember which. You can then parent the helpers to the rig. The Affect Region modifier push on the surface and you can slide it under the surface. The problem with most if not all of the sliding skin solutions that are out there is they need to have the mesh shrink wrapped to an under lying structure. The problem with this is you can't really model the character the same way that you would expect, the muscles model the mesh. This is very time consumming and not very intuitive.

Thanks on the rig and I hope this helps.

Kanga
07-21-2005, 01:36 PM
......I would never actualy wish a rig like this on an animator......

Hey Pen! Doesn't it come with driving instructions?

:thumbsup:

groutcho
07-21-2005, 01:47 PM
The complete 1500 pages user's reference is available in your nearest bookstore :twisted:

Well actually it seems that the more complex the rig seems, the easiest it is for the animator to deal with it. (Imagine if you had to do everything that a car does in order to roll :scream: ). The funny thing about the Technical Directors, is that they have to do the dirty job in order to deliver a fun product to those $£¤*ù@ animators. So the TDs have headaches and the animators have fun. Where is justice :rolleyes:

- Groutcho

peekoot
07-21-2005, 02:20 PM
The Affect Region modifier push on the surface and you can slide it under the surface. The problem with most if not all of the sliding skin solutions that are out there is they need to have the mesh shrink wrapped to an under lying structure. The problem with this is you can't really model the character the same way that you would expect, the muscles model the mesh. This is very time consumming and not very intuitive.

Thanks on the rig and I hope this helps.

thanks for the input Paul, it really helps a lot! nice workflow with animation/sim rig.. this is similar to what i have been doing only in more simple fashion since i lack scripting abilities (for now :))

affect region.. nice!.. i've been trying to do it with vol. select using mesh object and push modifier.. yields ok results but far from what i want.. anyway.. great news for me is that it is possible to link gizmo subobject to external object.. i've tried this many times but didn't find the solution.. i'll look up for that tutorial.. knowing that it's possible is half of the solution :)

btw i understand issues regarding skin sliding techniques and that it has to have underlying structure, but.. didn't anyoune tried to just give an offset to those vertices so it doesn't have to actually shrinkwrap? like to use 2 meshes, one that's original, and one that shrinkwraps then just make original follow corresponding vertices in shrinwrapped version.. little bit off topic.. i'm just curious :)

kobeone
07-21-2005, 03:40 PM
WOW, i guess christmas comes early this year. PEN your work rocks :buttrock:. How much of this character rig will end up in your advance character pipeline DVD.

PEN
07-21-2005, 05:32 PM
peekoot
knowing that it's possible is half of the solution

Well then...every thing is possible;) Learning to script will open up doors that you didn't know existed. Learning some 3D math will not hurt either. And just in case that scares the hell out of you, I'm 100% self taught, and trust me, I don't have a degree in anything, just a need to make it work.

It would be nice if there was a good way to get Skin Wrap to slide over a surface but I have not found a built in solution that is really good.

kobeone:
I think most if it, and alot more. Glad that you are interested.

groutcho:
The complete 1500 pages user's reference is available in your nearest bookstore :twisted:
That isn't way I wouldn't want an animator using it. Just will all that extra stuff on it, it does get slow. They just don't need to see it. Complexity of the rig isn't what makes it easier for the animator to deal with it is well choosen controls that work in an expected way. You can have a lot of controls but they all should have a purpose and the animator should never feel as though they are fighting the rig.

peekoot
07-21-2005, 06:14 PM
hey Paul thanks for the encouragement and valuable info... if the need to make it work is what it takes then i'll be good :)

didn't find the tutorial but all this inspired to do couple of tests of my own.. and yeah i've made it work (connecting gizmos to external object).. script is painfully simple :) this opens so many doors... just thought i should share my good mood :D

cu and keep up the good work everyone

Aearon
07-22-2005, 07:57 AM
Paul, is there any way you can give a rough overview on how you do your animation off-loading? i have to do this as well (have to link a deformation rig to a motion builder skeleton) and i'd be interested in how you solve this

Then though a set of tool I off load the animation from the animation rig to the skin rig. All sims take place on the Skin rig.

joconnell
07-22-2005, 09:16 AM
Bollox!

I just typed a huge reply there and hit the bloody backspace key with the text window unfocussed and lost it all - pants...

Kai - I've done a small animation import / export script for max as a proof of concept and a way of saving / loading my companies character animation without having to use merge animation which has a few irritations. I'm not sure how Pauls script works but here's a few ideas on how it may flow:



Set an output text file for your animation to go to - they can be be simple plain text for convinience
Select a set of objects to be exported
Count these objects to set a number of loop iterations for your export functions
For each object, write out he object name so they can be identified later
For the position controllers of the object, ideally loop through the controllers and find out their type. Record the type of controller - if a constraint, get it's targets and weights, if a script, get it's script, if a list controller go through it's sub controllers and record their parameters.
Do the same for rotation
Ditto scale
Now that you have the type of controllers, if they are keyeable , get the keycount of it and loop through them recording each keys time, value, tangent type and length.
Here's a little script I wrote that does part of this - it only supports position xyz and euler rotation controllers and doesnt record hierarchies or have error checking. To use it do the following:


Animate a set of objects using pos xyz and euler rot controllers
Run the script
Set your output filename
Select the animated objects
Hit the export animation button
Your animation info is written to a texfile.
To bring it back in you use the import animation button and select the file you just saved out - as the script is fairly basic it won't work in a production situation so to see it working, the handiest thing to do is select the objects that you just animated and delete all of their keys. Use the import animation button and it'll bring back in the exact same thing. Again it's got no error checking so don't expect much. It might give you some hints in the right direction though and has decent enough functions to write out key data to text files.

Save this text as a .ms file and use maxscript > run script to run it.

-- Written by John O'Connell - john@joconnell.com / oconnelljohn@gmail.com
-- If you use any of this code then please let me know of any errors / improvements so this little yokey can get a lot better

-- Functionality to be added at a future date:

-- Error Trapping
-- Scale keys
-- Full controller support
-- Hierarchy support
-- Controller assigning on import
-- Perhaps make a dummy object for missing objects on import?

Rollout ImportExportKeys "SS Import / Export Keyframes"
(
Group "Import Animation"
(
Button importAnim "Import Animation" align:#right width:150
)

Group "Export Animation"
(
Button SetOutFile "Set output Filename" align:#right width:150
Button ExportAnim "Export Animation" align:#right width:150
)

-- Function to Read in a keys time, value, in / out tangent type and in / out tangent length from a text file

Fn ReadAnimData TargetKeys KeyCount sourcefile =
(
for k = 1 to KeyCount do
(
TempKeyTime = readValue sourcefile
addNewKey TargetKeys TempKeyTime
TempKeyValue = readValue sourcefile
TargetKeys[k].value = TempKeyValue
TempInType = readValue sourcefile
TargetKeys[k].intangenttype = TempInType
TempIn = readValue sourcefile
TargetKeys[k].intangent = TempIn
TempOutType = readValue sourcefile
TargetKeys[k].Outtangenttype = TempoutType
TempOut = readValue sourcefile
TargetKeys[k].Outtangent = Tempout
TempInLength = readValue sourcefile
TargetKeys[k].inTangentLength = TempInLength
TempOutLength = readValue sourcefile
TargetKeys[k].OutTangentLength = TempOutLength
)
)

-- Function to write out a keys time, value, in / out tangent type and in / out tangent length to a text file

Fn WriteAnimData Keyarray destfile =
(
for k = 1 to Keyarray.count do
(
Format "%," Keyarray[k].time to:DestFile
Format "%," Keyarray[k].value to:DestFile
Format "%," Keyarray[k].intangenttype to:DestFile
Format "%," Keyarray[k].intangent to:DestFile
Format "%," Keyarray[k].outTangentType to:DestFile
Format "%," Keyarray[k].outTangent to:DestFile
Format "%," Keyarray[k].inTangentLength to:DestFile
Format "%," Keyarray[k].outTangentLength to:DestFile
)
)

on importanim pressed do
(
Global MyInFile = getOpenFileName caption:"Choose an animation file:" filename:"H://Databases//"

MyFile = OpenFile MyInFile

-- The first line of the text file contains the number of objects that have animation info stored in the above text file.

ObjCount = readline MyFile as integer

For i = 1 to objcount do
(
SourceObj = readline MyFile as string

TargetObj = execute ("$" + SourceObj)

TargetXCont = TargetObj.position.x_position.controller.keys
TargetYCont = TargetObj.position.y_position.controller.keys
TargetZCont = TargetObj.position.z_position.controller.keys

TargetXRotCont = TargetObj.rotation.x_rotation.controller.keys
TargetyRotCont = TargetObj.rotation.y_rotation.controller.keys
TargetzRotCont = TargetObj.rotation.z_rotation.controller.keys

XKeyCount = readline MyFile as integer
YKeyCount = readline MyFile as integer
ZKeyCount = readline MyFile as integer

XRotKeyCount = readline MyFile as integer
YRotKeyCount = readline MyFile as integer
ZRotKeyCount = readline MyFile as integer

ReadAnimData TargetXCont XKeyCount MyFile
ReadAnimData TargetYCont YKeyCount MyFile
ReadAnimData TargetZCont ZKeyCount MyFile
ReadAnimData TargetXRotCont XRotKeyCount MyFile
ReadAnimData TargetYRotCont YRotKeyCount MyFile
ReadAnimData TargetZRotCont ZRotKeyCount MyFile
)

)

on setoutfile pressed do
(
Global OutFile = getSaveFileName caption:"Choose the output filename" filename:"h:\\Databases\\"
SetOutFile.text = OutFile
)

on ExportAnim pressed do
(

MyOutFile = OutFile
AnimFile = CreateFile MyOutFile

MyObjects = Selection as array

-- the format command will literally print text to the listener - by using the to: attribute, you can direct the printing to a text file instead.

format "%\n" MyObjects.count to:AnimFile

for i = 1 to myObjects.count do
(

XposKeys = MyObjects[i].position.x_position.controller.keys
YPosKeys = MyObjects[i].position.y_position.controller.keys
ZPosKeys = MyObjects[i].position.Z_position.controller.keys

XrotKeys = MyObjects[i].rotation.x_rotation.controller.keys
YrotKeys = MyObjects[i].rotation.y_rotation.controller.keys
ZrotKeys = MyObjects[i].rotation.z_rotation.controller.keys



-- Object Name

format "%\n" MyObjects[i].name to:AnimFile

-- Key Counts

format "%\n" XposKeys.count to:AnimFile
format "%\n" YposKeys.count to:AnimFile
format "%\n" ZposKeys.count to:AnimFile

format "%\n" XrotKeys.count to:AnimFile
format "%\n" YrotKeys.count to:AnimFile
format "%\n" ZrotKeys.count to:AnimFile

-- Output keys

WriteAnimData XposKeys AnimFile
WriteAnimData YposKeys AnimFile
WriteAnimData ZposKeys AnimFile

WriteAnimData XrotKeys AnimFile
WriteAnimData YrotKeys AnimFile
WriteAnimData ZrotKeys AnimFile

Format "\n" "" to:AnimFile

)

Close AnimFile
)

)

CreateDialog ImportExportKeys Width:250

I'll get around to finishing this soon enough but I can't say exactly when. Paul can give you a load of information and probably make some good suggestions on a better way of doing this.

Hope this helps :)

joconnell
07-22-2005, 09:40 AM
Ah feck - completely missed the point there - You can do a number of things for this - you can set up a linking system to copy and paste key data from one rig to another, you could write a function to track one rig to another or you could use constraints. Again Paul will have to clarify this a bit more - the above thing is to take data from one animation to load into another and not what you want - I'll leave it up in case anyone else finds it useful.

Aearon
07-22-2005, 12:10 PM
You're right John, that's not exactly what i want to do, but thanks for the detailed info anyway, it will definitely be useful along the way! :thumbsup:

I haven't put too much time or thought into the linking problem, but it will come up pretty soon. i think i'll start a new thread for this discussion, i feel like i'm hijacking paul's thread here!

PEN
07-22-2005, 02:02 PM
Aearon:
This is all good and right on topic for the most part so keep it going right here.

I don't have time to respond will full answers so I will leave it to later, I have to get to a meeting.

PEN
07-23-2005, 11:52 AM
peekoot:
I just realized that it was part of the advanced amimation book that I worked on for Discreet and it wasn't part of the shipping tutorials. Sorry.

Aearon & joconnell:
I have been taking animation off the bones and not off the objects that are animated. For this reason there are no keys and the animation needs to be baked to get the correct result. What I mean by baked is you need to get the world transform value for each bone for each frame and same that in some way. You also have to do them in the correct order since you have to make sure that you set the part objects first and then work your way down the chains.

Here is some hack code to give you an idea.


path=(getDir #scripts)
animFile=createFile (path+myAnimFile.anm)

for t = animationRange.start to animationRange.end do
(
at time t
(
for x in selection do
(
format "%,%\,%n" (t as string) x.name x.transform to:animFile
)
)
)

close animFile



This was off the top of my head while watching cartoons so don't expect much. What it should do it write the name and transform of each object per frame out to a file. You just need to do the oposite to bring them in and set the values back to the bones. This also requires that you have two rigs setup. The skin rig needs to have all the animation controls removed.

Let me know how you make out.

Aearon
07-23-2005, 12:17 PM
thanks for the info paul, that's a simple and elegant way of doing it, i'll give it a shot!

joconnell
07-23-2005, 02:38 PM
Ah excellent - I did a similar thing to track hi res objects on to low res objects so I could run proxy simcloth rigid body simulations and have them drive a high poly scene = same thing, track the transform each frame.

At least this method means you can have simplified controllers on your skin rig rather than a more flexible layered setup on the ani rig.

peekoot
07-23-2005, 07:46 PM
A stretch muscle......... I also set the upnode to be the first helper so that it doesn't spin around when the character starts moving...


hey Paul (or anyone else who might know), what do you do when this doesn't do the trick? i have situation like that right now but bone still rotates (less, but still does).. how to go around this?


>>>>edit

i just found out that if i rotate point helper 90 degrees towards the bone bone doesn't spin around it's axis anymore...

PEN
07-23-2005, 09:46 PM
peekoot:
You need to have the orientation of the point helper aligned to the bone fro this to work with default settings. In general it is best when you are dealing with rotations to make sure that every thing is aligned to start with.

peekoot
07-24-2005, 02:50 PM
thanks again paul! it works ok now :thumbsup:

to tell you the truth when i saw you dvds, i thought 'hey great, but i already know that stuff'.. guess i'll rethink that :D lot's of those little things to know, the things you found out about when you're already in the middle of the project :rolleyes: for example, i used stretchy bones before, but not much and probably with not knowing it set the point orientations correctly...

Aearon
07-24-2005, 08:54 PM
Hey Paul,

I do really like the node based system in Maya for connecting utility nodes. It creates fast rigs and is easily scriptable in mel. There isn't really anything that I can't do in Max to create the same results but Maya has many util nodes already for use that I have to write the expression for in Max. Maya wins on this one but not by a whole lot.


Can you give examples of utility nodes and what they do? Sounds really interesting!

PEN
07-25-2005, 12:39 PM
peekoot:
What I find is I can learn some thing from anyone. Even if there knowledge of Max is no where near mine. They might stumble on a work flow or something that I have not though of. With other pros like Kees Rijnen and so many others we share ideas all the time because we all have ways that we prefer to work and have different problems that we have to solve.

Aearon:
The util nodes in Maya range from simple nodes that just add or multiply to values together to more complex ones that return data about polygons or curves.
What I don't like about the node based system is it can become a mess in a scene very fast if the people working with it don't know what they are doing. There is a reason that there are alot of technical people that work with Maya, there has to be just to get it to work in the first place.

luigi
07-25-2005, 08:42 PM
Hi Paul and others.I've been working in a pipe where you have a animation rig and a skinning rig. and the problem for me is in the feedback with the animator.

I explain the issue better, sometimes the animator have to take care about intersection and interaction between two characters or one character with objects.
So in this cases the animation rig doesnt display properly the mesh and you need to see the hiress and perfect skinned to solve the problems.
This happen normally in all the animation sequence where you have cloth simulation to deal with, and you have to check the animation so the arm doesnt intersect with the body .when one character is holding another character and ..
So in this casses you need to see both the animation rig and the skin one, and be to be able to tweek the animation one and see the result on the skin one.



So i have two solutions



. One is have a skin rig that is merged on the scene and with a script ( for make it quicker and easier) position and orentation constrain to the animation rig.so hidding or unhidding layers you can see the skin and animation rig.
You can make more advance and include the versión of the skin rig and change it
When it doesnt fit with the last skin version.( normally i change the skin rig when i solve some problems in diferents shots)


The other possibility is have the animation rig and add to it al the bones and helpers to do proper deformations , so wil have a animation rig with skin rig included.
when the animator wont to see the definitive mesh should export the animation from a only animation rig and merge it to the animation+skin rig.He will be able to tweek the animation but it will go slow.The good think is he can go back to the animation rig when he check the animation and solve the problems and get to a quickly animation rig exporting the animation again.
The only think about it if any part of the rig have been linked or link constrain should be baked for get properperly the animation.so befote you change to animation+skin you should bake link or link constrain.



Other posibilty should be by script like a export than will send the animation to a skin rig and bake the mesh in a point cache file and merge this mesh with point cache on the scene.
So you have the animation rig and the baked mesh than you can actualize the point cache hiting a buttom.



For me only baking the bones, and open a max file with the baked skin
rig ,check, go back to the file with the animation rig and fix is a very slow solution.
Did you have this problem too and how you solved it?

groutcho
07-25-2005, 09:00 PM
It's just a fuzzy idea but... Maybe if you create a script that creates a point helper (or something similar ) for, say, 1 vertex on 4 of the original Hi poly, you should obtain a kind of "points cloud" that would follow the skin data. And if one of these points interesects with another mesh than itself, it could appear in red so that you could see intersection quite fast without losing too much display and processing speed... Just an idea... :)

- Groutcho

PEN
07-26-2005, 11:47 AM
luigi:
Your very right, the process from animation rig to skin rig can make the animator feel disconnected from the work that they are doing. Your solution with using constraints is what I have done in the past as well. I actualy set this up with the ogre rig that is on my site, still not complete though. It works well but the scene gets very heavy with all the constraints that are needed and two rigs. I have an extensive tool that I have set up for working with this sort of rig setup that searches the scene for characters that are in it and allows in a push of a button for the skin rigs to be merged in and bound to the anim rig.

You can also use xrefs so that the scene references in the mesh only so that you can turn it off when not needed. You can then add a low res skinned version if you like as well and you can swap them as you need them.

Point caching is something that I would always want to do before rendering large and complex scenes. It cleans out every thing that you don't need for rendering.


groutcho:
Interesting thought but I don't know what would intersect. A point helper is just that, a point so it has no volume. A low res bounding mesh could be used but this would cause the same problems that we had in the first place. Without the high res mesh you can't be sure if it is coliding or not. I'll ponder the idea and see if there is some way to make that sort of set up work. The other issue ofcourse is what are they linked to since any given vertex that they represent could be weighted to any number of bones.

groutcho
07-27-2005, 11:15 AM
PEN : However, i noticed that displaying the edges could slow down max. On some scenes, wireframe is heavier than smooth+highlits. So, what about putting, instead of points helpers (made of lines...), some mesh vertices (the blue dots) on every vertex of the original mesh, but without linking them with edges. Now make those vertices visible even when they are not selected.

Now, imagine a network of vertices like this :

http://site.voila.fr/groutcho/dots.jpg

When a vertex is being crossing a face, and finding itself behind this face normal (Provided the crossed mesh has its normals pointing outward, the script could display the edges connecting this vertex, in red too :

http://site.voila.fr/groutcho/dots2.jpg

Since displaying edges is quite heavy, only the necessary edges could be shown with this script, for example creating temporary red splines from Vertex 1 to the adjacent ones.And as soon as any collision doesn't occur anymore, the splines are automatically deleted.

Hmm, what do you think about this ?

- Groutcho

PEN
07-27-2005, 12:00 PM
Interesting idea, I'm not sure that a setup like this would be any faster then the mesh itself. Especialy doing hit testing on the fly. I could see running it as a test after some animation has been done to see if there are any intersections.

A good fast solution, what ever it be, would be well accepted by the masses.

DJ_Lizard
08-01-2005, 09:18 PM
Hey PEN, why didn't you say that you're working on new MAX version? :eek: :bounce:
As I can see HERE (http://usa.autodesk.com/adsk/servlet/limage?siteID=123112&id=5659305&imageID=5683756) you are working on 3ds studio MAX 8 (!!!) :applause: umm, coul'd you tell if viewport perfomance is better than it was in MAX7 ??? And overall, what's your opinion no new MAX version : :deal:

RyanT
08-02-2005, 01:14 AM
Paul:

Why would you want to bake the animation onto the bones? Wouldnt it be better to save off the actual animation? I am currious how many people actualy have to bake animation onto their bone sets for games and such. Our game engine doesnt require this.

RyanT
Pipeworks Software
Foundation 9

PEN
08-08-2005, 02:14 PM
Hey PEN, why didn't you say that you're working on new MAX version? :eek: :bounce:
As I can see HERE (http://usa.autodesk.com/adsk/servlet/limage?siteID=123112&id=5659305&imageID=5683756) you are working on 3ds studio MAX 8 (!!!) :applause: umm, coul'd you tell if viewport perfomance is better than it was in MAX7 ??? And overall, what's your opinion no new MAX version : :deal:

Well I'm glad that you noticed, it was not my place to tell anyone that when I started the thread here about the character. Now that the cat is out of the bag I'm sure that I will be able to say more about the tools that I have used to create this rig and what its performace is like. I will clear this with my client, Autodesk, before I do though so stay tuned.


Why would you want to bake the animation onto the bones? Wouldnt it be better to save off the actual animation? I am currious how many people actualy have to bake animation onto their bone sets for games and such. Our game engine doesnt require this.


Well I'm not specificaly talking about games here. I have baked the animation in the past because it is easier to do so then saving the animation to a file. Now in Max 8 saving the animation is possible as it is built in, and I have to say it works great. Writting the keys of animation out to a file is way more work then just baking the data frame by frame, the over head is much higher but if that is not a concern that is doesn't matter as much. If you save the keys you also have to save the tangents with them or the animation will not come back in correctly. If I had the choice, I would save the anumation keys and data and I would not bake it. All just a matter of time and what you really need.

PEN
08-08-2005, 04:41 PM
OK, I can talk:)

The viewport speed in Max8 is definitly faster as are all the animation tools. Trackview, trackbar are fast with no lags in complex characters like has been seen in other versions. The new additions to skinning are great and make for some new and faster work flows for skinning characters.

Mahlon
08-08-2005, 06:54 PM
OK, I can talk:)

The viewport speed in Max8 is definitly faster as are all the animation tools. Trackview, trackbar are fast with no lags in complex characters like has been seen in other versions. The new additions to skinning are great and make for some new and faster work flows for skinning characters.

This is great news. Can you describe more about the faster workflow in skinning?

Thanks,
Mahlon

PEN
08-08-2005, 09:01 PM
There is a whole new set of tools called weight tools. Very cool, one of my favs is the scale weights that works on reletive values. There is also a blend weight for all selected verts. Quick buttons to set values and a few other tools.

Skin also has a weight all verts option so that when you first apply skin and verts are out side of the envelops they will be weighted to the nearest bone.

There are several other small features that are of alot of help.

Mahlon
08-09-2005, 01:53 AM
Ok. Thanks. Quick buttons to set values will be welcome. Any little things that will speed up assigning vert weights. Blend weights for selected verts sounds good, too.


Mahlon

Kuba
08-10-2005, 02:27 PM
Wow really cool Paul,

Your work has come a long way, cant wait to see more of your stuff and can't wait to try out max 8. Wicked stuff.

PEN
08-10-2005, 03:11 PM
Wow really cool Paul,

Your work has come a long way, cant wait to see more of your stuff and can't wait to try out max 8. Wicked stuff.

Hey Jakub, are you one of my old students?

PEN
08-11-2005, 07:38 PM
And yet another rig:

http://autodesk.paulneale.com/models/creature/reference/trollRig.jpg

John Chalfant is doing the model for this one but is still in the works. I will ask if I can post it as it gets completed.

neversong
08-15-2005, 03:14 PM
hi, Paul

awesome rigs again. I wonder if anyone can be better at rigging in MAX than you.

:D

by the way, could you show us how the skinned character moves with this rig please?


cheers,

Hwasup Song

loocas
08-15-2005, 03:55 PM
Hi there Paul, awesome work as always man :thumbsup: Keep it up!

Btw: I have a question for you as a uber-pro TD...

How would you go around rigging a character, a human, that is supposed to roll in a bed? For example the character has real bad nightmares so it waggles and rolls from side to side?

The point is, how would you setup a system that has a changing IK end applied to the whole skeleton?? :hmm:

Thanks for any thoughts, cheers...

toonman
08-15-2005, 04:07 PM
How would you go around rigging a character, a human, that is supposed to roll in a bed? For example the character has real bad nightmares so it waggles and rolls from side to side?

The point is, how would you setup a system that has a changing IK end applied to the whole skeleton?? :hmm:



You know... it's kinda funny... sometimes I see myself designing complex rigs for situations like these, and when I come to talk with the animators, they tell me "Just give me a freakin' FK rig and I'll take care of the animation!"... so I do, and they deliver a terrific shot... :).

As for other riggers, there are a lot of very talented people out there (you guys have someone else in this board! Kees!!), but I must say that Paul is doing a KICKA** TERRIFIC job for bringing rigging in max (and max in general) to a whole new level. Thanks Paul!!

loocas
08-15-2005, 04:20 PM
You know... it's kinda funny... sometimes I see myself designing complex rigs for situations like these, and when I come to talk with the animators, they tell me "Just give me a freakin' FK rig and I'll take care of the animation!"... so I do, and they deliver a terrific shot... :).

- :D you're right man... sometimes I tend to over-complicate some things... ;) tahnks for your bit...

As for other riggers, there are a lot of very talented people out there (you guys have someone else in this board! Kees!!), but I must say that Paul is doing a KICKA** TERRIFIC job for bringing rigging in max (and max in general) to a whole new level. Thanks Paul!!

- I second that, THX PAUL!!! :buttrock:

PEN
08-15-2005, 04:31 PM
I'm with Sergio on this for sure, keep it simple and let the animator do what they do best.

Thanks for the praise guys, there are many people as good and better and several of them are here from day to day like Sergio, Kees, Chris and many others. If I didn't add your name to that short list please don't send me hate mail;)

I think that people in general are starting to push Max in ways that people didn't think it could go. It is good to see many of them sharing.

PEN
08-15-2005, 04:33 PM
hi, Paul

awesome rigs again. I wonder if anyone can be better at rigging in MAX than you.

:D

by the way, could you show us how the skinned character moves with this rig please?


cheers,

Hwasup Song

This character hasn't been skinned as of yet. I hope to be getting to it soon.

PEN
08-15-2005, 05:10 PM
Here is a quick test on the Brom character that has now been named to Maxine.

Don't mind the animation it was mocap I had and I just threw it on.

http://autodesk.paulneale.com/models/bromGirl/mov/Maxine.mov

ReneAlex
08-15-2005, 07:16 PM
Hello paul.

In the feature list the Brom Girl RIG you say that it has wrist lock... can you explain this a little bit, I asume that this is not to be adjusting the orientation of the hand/wrist every time you move the IK Ctrl, but can you tell us more about this please.

THX!

loocas
08-15-2005, 07:57 PM
Here is a quick test on the Brom character that has now been named to Maxine.

Don't mind the animation it was mocap I had and I just threw it on.

http://autodesk.paulneale.com/models/bromGirl/mov/Maxine.mov

Awesome rigging man! :bowdown:

One thing thou, is it supposed to make those slight creases on the frontal area of the thights? I mean, it almost looks like your muscles are sliding below each other and pulling verts with them...

If it's intended then nevermind, the output isn't of film quality so it's hard to say, nevertheless I only want to help, not to criticise your work man :thumbsup:

PEN
08-15-2005, 09:06 PM
Awesome rigging man! :bowdown:

One thing thou, is it supposed to make those slight creases on the frontal area of the thights? I mean, it almost looks like your muscles are sliding below each other and pulling verts with them...

If it's intended then nevermind, the output isn't of film quality so it's hard to say, nevertheless I only want to help, not to criticise your work man :thumbsup:

Thanks, but i'm not sure where you mean with the creases, there are some on the inside of the legs that are supposed to be there.

Korben:
The wrist lock is in IK mode for the arms so that the hands stay aligned to the forearm. You can ramp that on and off so that the hands are either in world space or in the space of the forearms. I have done the same for the head as well.

bloggs
08-16-2005, 08:23 PM
Hi Paul,

really love this thread i must say this is the first time i've seen some great max rigging issus dicussed here. i think we all apreciate you sharing your techniques with us. cant wait to see some of the advanced dvd's when they come out

i notices that you use some sort of spring controlers in your riggs. I was wondering if you could adress somethings about them? How do you get around the problems with them slowing down you scene damaticaly. I find when i use them that if i save mid way through an amimation it takes ages to save your scene. is there an alternative to this and if not is there anyway you can switch them on or off as this would be a great work around.

is there anychance of seeing more of the Bull rigg that was very impressive esspecilly the floppy skin. i have atempted to do somthing similar for my minotaur character using skinwraped and a peice of cloth, however i have got no where nere the result you did btu i need to spend abit more time on this. did you say u used flex for this?


cheers


John

loocas
08-17-2005, 09:05 AM
Thanks, but i'm not sure where you mean with the creases, there are some on the inside of the legs that are supposed to be there.

I meant the areas where rectus femoris, sartorius and tensor fasciae latae are. Mainly the area of rectus femoris coming up from the knee. Somewhere in the middle of the thight.

However, if it's a compression/quality issue or if it is intended then nevermind :thumbsup:

PEN
08-17-2005, 12:35 PM
loocas:
I'll go and have a look. Could be some thing there that I'm missing. I have been rather rushed in getting most of this to work. I have a newer version almost ready and I will see if I can get some better animation onto her and post that.

bloggs:
Thanks for the praise. It is about time that people start to see what can be done in Max. We are lucky here at CG Talk to have some of the best Max TD in the business hanging around like Kees, Bobo, Sergio and many others.

As for the dynamics I'm using springs and flex in the bull. The animator doesn't need to see this when animating so it all gets turned off. Flex is easy as you can set the modifier to be Off In Views so that it will turn on automaticaly at render time. Springs you can trun off a couple of ways. First is to set the XYZ values to 0, second you can set the iterations to 0 and third if it is in a list controller you can set the weight of the controller to 0. What I have on the bull is a set of custom attributes that all the springs are connected to so that I can turn them all on and off at once as well as a callback script that runs in the back ground that on prerender it turns them all on as well.


One of the best methods for dealing with all this is to not have any of it in the scene when you are animating and off load the animation to a complex skin rig. This will all be covered in my advanced DVD sets.

bloggs
08-17-2005, 04:05 PM
Thanks Paul,

At the moment i have my springs in the seperate file and merged them in but this seems a good idea if you can set a perant waight to conect and disconect. do you know if springs only caluatle if it detects movment in a hirarchy? just want to get around that saving problem.
As for flex i just run a script that turns all flex mods on or off which works well!

At Cgcharacter we used a softbody script writen by Christoph sprenger thats you could paint on using vertex paint that made wobbley skin for one of the characters on A Sound of Thunder which gave us pritty good results. we contemplate the same sort of techinque but we got abit sick of spring controlers. i would like to use it agian but i'd rather make my own solution for my own work.

will you be covering flexible skin techinquies in the advance dvds?

Wahooney
08-22-2005, 07:09 AM
Paul, do you still use the three IK Chain foot in your rigs?

PEN
08-22-2005, 12:19 PM
Paul, do you still use the three IK Chain foot in your rigs?

Usualy I do but it al depends on the character and what the animators want.

bloggs:
Turning them off should get around the saving issue. I would like to know more about where you are seeing this problem though. Maybe we can get it fixed if that is possible.

bloggs
08-23-2005, 05:38 PM
hi paul,

I am using Spring2 controlers not sure if there is any differerace except the negative direction but unlinking them still gives me the same saving problem, but i have to try nail it down and try some more of the tecneques you suggested when i get some more time. i have them along a spline IK for floppy ears there is 4 each side so a total of 8 all on 1 iteration. the other problem i have is them going through the body mesh which i can counter animate but is there any way of making them colide? i was thinking of using cloth for this intead and using a morph target to dampen the mesh back if you know what i mean. which would probably get around the collison problem. who would you go about floppy ears?


chears


John

PEN
08-23-2005, 05:50 PM
hi paul,

I am using Spring2 controlers not sure if there is any differerace except the negative direction but unlinking them still gives me the same saving problem, but i have to try nail it down and try some more of the tecneques you suggested when i get some more time. i have them along a spline IK for floppy ears there is 4 each side so a total of 8 all on 1 iteration. the other problem i have is them going through the body mesh which i can counter animate but is there any way of making them colide? i was thinking of using cloth for this intead and using a morph target to dampen the mesh back if you know what i mean. which would probably get around the collison problem. who would you go about floppy ears?


chears


John

Spring2? is this a plugin?

As for floppy ears I find animators usualy want to animate then by hand, so just an fk chain would do it.

PEN
08-23-2005, 09:09 PM
Here are a couple of preview renders as I'm testing things. Don't mind the animation as they are just hand fulls of key frames. Man I haven't animated in a long time. I need the practice.

http://autodesk.paulneale.com/models/bromGirl/mov/Maxine.mov
http://autodesk.paulneale.com/models/bromGirl/mov/MaxineJump.mov
http://autodesk.paulneale.com/models/bromGirl/mov/MaxineJumpRig.mov

Chris Thomas
08-24-2005, 05:46 PM
Yeah, thats looking pretty cool Paul, a couple of momments though..

Myabe there's some kind of popping issues on her legs? Maybe reducing their full extension during the walk cycle would fix that, or some kind of extra rigging wizadry.

Second thing is in the jump animation her breasts seem to be too erm, heafty? i..e they seem to have to much weight and mass to them. I'd expect them to jiggle, sure enough, but right now they seem to have to much jiggle and mass?

Cheers

loocas
08-24-2005, 08:42 PM
I agree with jmonkey2000 about the "breasts-action", it is a bit too much to be realistic, nevertheless, I like it! :D

However I see you've fixed the problem with thights, either that or it really was a problem of the videoquality?? Have you touched the thights skinning?

Overall I love the rig! It's just awesome! Btw: can I have a question, what are those tiny little bones on the opposite side of the knee joint for?

Keep the great work up Paul! :thumbsup: :buttrock:

Btw: no hard feelings right? ;)

PEN
08-24-2005, 08:53 PM
I agree with jmonkey2000 about the "breasts-action", it is a bit too much to be realistic, nevertheless, I like it! :D

However I see you've fixed the problem with thights, either that or it really was a problem of the videoquality?? Have you touched the thights skinning?

Overall I love the rig! It's just awesome! Btw: can I have a question, what are those tiny little bones on the opposite side of the knee joint for?

Keep the great work up Paul! :thumbsup: :buttrock:

Btw: no hard feelings right? ;)

No hard feelins:)

There has been some skinning changes but not to the legs. I have made changes to the muscles so that might have done it.

The little bones are for helping keep volume and helps drive muscles.

And I know the animation sucks!

loocas
08-24-2005, 09:10 PM
No hard feelins:)

- :thumbsup:

There has been some skinning changes but not to the legs. I have made changes to the muscles so that might have done it.

- Hmm... might have been that? :shrug: Anyways it's gone, so it's cool :thumbsup:

The little bones are for helping keep volume and helps drive muscles.

- Got it. Thanks. ;)

And I know the animation sucks!

- :D well, for the purpose of a test-animation it does just fine... :thumbsup:

PEN
08-24-2005, 09:13 PM
A couple most tests as I work on velocity functions for the muscles.

http://autodesk.paulneale.com/models/bromGirl/mov/MaxineJump01.mov
http://autodesk.paulneale.com/models/bromGirl/mov/MaxineJump01Rig.mov

There is a suttle giggle in the legs now and the boobs have been toned down.

Here is the control panel for the character. This is all built in and doesn't need any other scripts to run.

http://autodesk.paulneale.com/models/bromGirl/reference/MaxineControls.jpg

loocas
08-24-2005, 09:28 PM
Is the rig and the model going to be included in max 8 as a sample scene?

Btw: much better now ;) I mean, realistic... :D

PEN
08-25-2005, 12:38 PM
Is the rig and the model going to be included in max 8 as a sample scene?

Btw: much better now ;) I mean, realistic... :D

Not sure about that.

loocas
08-25-2005, 12:52 PM
Not sure about that.

Why else the "ABOUT MAXINE" button? ;)

Nevertheless, it's a awesome rig! I'm looking forward to more updates Paul! :thumbsup:

PEN
08-25-2005, 01:20 PM
Well I'll give you credit for being sharp thats for sure.

The about box is the credits and help for how to use the character. I do this with many of the characters that I create for clients. It also gives animators a fast and easy way to read up on the character to see how to use it. Usualy I would point it to a spot on a network that ever one could see and I would drop text files that button would open.

loocas
08-25-2005, 01:39 PM
Well I'll give you credit for being sharp thats for sure.

- hehe, thanks :D

The about box is the credits and help for how to use the character. I do this with many of the characters that I create for clients. It also gives animators a fast and easy way to read up on the character to see how to use it. Usualy I would point it to a spot on a network that ever one could see and I would drop text files that button would open.

- This makes perfect sence. I'd probably include it in a POP-UP note, but then it may get pretty annoying if one doesn't know how to disable it, and it cannot hold an external link... can it? Haven't tried that yet, so I'm not 100% sure about that.

Ok, thanks again Paul, one learns new stuff all the times :thumbsup:

PEN
08-25-2005, 02:16 PM
- hehe, thanks :D



- This makes perfect sence. I'd probably include it in a POP-UP note, but then it may get pretty annoying if one doesn't know how to disable it, and it cannot hold an external link... can it? Haven't tried that yet, so I'm not 100% sure about that.

Ok, thanks again Paul, one learns new stuff all the times :thumbsup:

No, a popup just reads a persistent variable. You could easly script this but once the animator knows how to use it it would be a real pain. Also merging into a new scene which is always done with character would loose any popup notes. Also think about a scene with 20 characters in it:S

Chris Thomas
08-25-2005, 02:26 PM
Yep, those bubs are looking a lot better now ;)

loocas
08-25-2005, 02:42 PM
No, a popup just reads a persistent variable. You could easly script this but once the animator knows how to use it it would be a real pain. Also merging into a new scene which is always done with character would loose any popup notes. Also think about a scene with 20 characters in it:S

Yep, as I thought, that was not a very versatile solution. Cheers mate :thumbsup:

bloggs
08-25-2005, 03:55 PM
Hi paul,

spring 2 you use to be able to get at http://www.footools.com/ (http://www.footools.com/)

the differacnce is that you get positive and nagative direction in the spring, which was always a problem with maxes default spring controler but esetually its the edzact same thing.

not sure where you can get it now.

john

PEN
08-25-2005, 04:10 PM
Of course FooTools had to be taken down. To bad to as John is one of the best out there.

I'll look around for it.

loocas
08-25-2005, 04:17 PM
Of course FooTools had to be taken down.

Why is that? :shrug:

PEN
08-25-2005, 04:18 PM
Why is that? :shrug:

I believe that he was forced to. The company that he works at was bought out and they told him he was no longer alowed to give any of the tools away. Fair enough really.

loocas
08-25-2005, 04:30 PM
I believe that he was forced to. The company that he works at was bought out and they told him he was no longer alowed to give any of the tools away. Fair enough really.

Geez... :banghead: Policy/Money/Power... :argh:

kobeone
08-25-2005, 04:53 PM
Geez... :banghead: Policy/Money/Power... :argh:

Thats just how the world works, everyone is not as giving as PEN and a number of other people that surf this forum. More of a reason why we should really thank these people for everything that they teach us for free.

loocas
08-25-2005, 04:58 PM
Thats just how the world works, everyone is not as giving as PEN and a number of other people that surf this forum. More of a reason why we should really thank these people for everything that they teach us for free.

That's also one of the reasons why I admire Paul's work and many others' so much! :thumbsup:

Btw: did you say free training? :D Look at my signature... :thumbsup:

PEN
08-25-2005, 04:59 PM
Thats just how the world works, everyone is not as giving as PEN and a number of other people that surf this forum. More of a reason why we should really thank these people for everything that they teach us for free.

Well you have to understand that a company is in the business of making money. If they have tools that give them an edge over the competition why would they want to give it out. Also, the tools written by people like John are done at work for work and his time is being paid for by them so they own it. You don't go to work for micro soft, write a new piece of windows XP and are then allowed to give it out on the internet for free.

I have an advantage in this case since I own the company and if I choose to give you what PEN does for PEN then I can. You don't see me however posting all the work that I do for clients that don't want me to show it. It was paid for by them so they own the rights to it. There are many scripts that I have written while working for companies that are not available on my site and they will never be.

Just the way that it works.

kobeone
08-25-2005, 05:30 PM
Loocas - Downloading as i type. I'll get back to you about it.

PEN - O, you dont have to tell me. I am a business man, i'm always trying to find a edge over the competition. At the same time i think you still need to give back, similar to how you give back by sharing your expertise to the community for free. Then on top of that your a successful business man by making training videos (which i may add are freaking great, 75% of everything i know today about rigging came from your 3 DVD. I'm sure i'll learn even more with the fourth) and along with other things. Personally PEN, I want to say THANK YOU for everything you have done for the max community.

PEN
08-25-2005, 06:16 PM
Loocas - Downloading as i type. I'll get back to you about it.

PEN - O, you dont have to tell me. I am a business man, i'm always trying to find a edge over the competition. At the same time i think you still need to give back, similar to how you give back by sharing your expertise to the community for free. Then on top of that your a successful business man by making training videos (which i may add are freaking great, 75% of everything i know today about rigging came from your 3 DVD. I'm sure i'll learn even more with the fourth) and along with other things. Personally PEN, I want to say THANK YOU for everything you have done for the max community.

Your welcome:)

loocas
08-25-2005, 07:29 PM
Your welcome:)

No, we are not! You really deserve one big :bowdown:

:thumbsup:

csDevil
09-13-2005, 03:01 AM
I was downloading videos from discreet's site about Max8 new features... and couldn't avoid saying "hey, that's Paul Neale's Brom girl!" when I opened the video about loading and saving animations.

congrats, man!

ps: paul and loocas, stop that! you both are my inspiration on learning TD! you guys both deserve one huge :bowdown:

loocas
09-13-2005, 07:45 AM
Hehe ;) Thanks a lot csDevil :thumbsup:

Hey, Paul, was it you who was talking in most of the demo videos for max 8?

If so, then your accent is very easily recognizable ;)

If not... then sorry, but it must have been another Canadian, right?

It's a pitty that the one person that does all the demos doesn't introduce himself at first :( I'd like to know who that guy was. He should have given a little more credit to him, it's not selfish or up-himself but appropriate!

Anyways, the demos just SUPER-ROCK, oh man, I loved the Maxine chick! The rig is just jaw-dropping, NLA! Retargetting! New Controller and updated Script Controller! Oh boy! Oh boy! :bounce:

Wahooney
09-13-2005, 09:10 AM
Just watched all the vids, uber cool features! But I have a question...

Dig the new script controller, it needs a little more work to use, but it's damn well worth it guv'nor!

What are those noisy bands on the time slider? Do they just mark segments of time? Are they on still a need to know basis?

LoneRobot
09-13-2005, 09:51 AM
Pen wrote -
Here is the control panel for the character. This is all built in and doesn't need any other scripts to run.

Hey Paul,

Great stuff going on here but i was really interested in this built in script panel with the controls for the character - how does it work without external script access? is it embedded in a script controller or something? is it a rollout floater or does it come up on the modify panel when you have the character selected? thanks!

PEN
09-13-2005, 11:53 AM
Thanks every one, this has been a fun project. The guild lines for the project...Make really cool characters! Gota like those giuld lines.

csDevil: Thanks for noticing:)

loocas: No that wasn't myself, that was Shawn Hendriks. He heads up the people that do all the demos at Siggraph and other shows. He can be found at any of them introducing the speakers and if you are lucky doing demos. You can hear me only on my own DVD's;)

The new tools are great. Animation Load/Save will be a life saver.

Wahooney: Why do you think that the new script controller needs more work to be usable. It is fantastic the way that it is. Fast, name independant, fully scriptable. What is missing?

Sorry...can't say:)

pudgerboy: It is a custom attribute definition that is imbedded in the attribute holder modifier.

loocas
09-13-2005, 12:07 PM
loocas: No that wasn't myself, that was Shawn Hendriks. He heads up the people that do all the demos at Siggraph and other shows. He can be found at any of them introducing the speakers and if you are lucky doing demos. You can hear me only on my own DVD's;)

The new tools are great. Animation Load/Save will be a life saver.

- Aha, right :) I thought that it was you because of the accent ;) nevermind :D

And the new functions, man! those are some huge additions to max! I'd still like to see some improvements in already present functions and features, nevertheless these are just FREAKIN' AWESOME!, can't wait to test these out! :buttrock:

bloggs
09-13-2005, 01:37 PM
Paul do you use Block controllers at all? another TD i know sayed to me that they where somthing that was never finalized in max? i always thought theyd be usfull but i never had the chance to play around with them.



cheers

john

LoneRobot
09-13-2005, 03:51 PM
It is a custom attribute definition that is imbedded in the attribute holder modifier.

that's a really cool way of doing it. I've always generated custom tools to use with characters, but always have to install functions etc on the computers in the network so that they'll work with all characters. So you could have something stored which is relevant to each character. Is it possible to have the CA run the script when , for example the characters head is selected? That would be good if it showed the rollout floater for a characters expressions, etc. i assume since it executes it as a CA you dont need things like selection set callbacks?

With normal CA's you can only specify sliders and spinners. does the CA def read a script file or run a function containing the rollout items and their handlers?

Am i way off what they do here?

BTW thanks for your rigs, Paul, they make me weep equally with sadness and joy at the same time.

RyanT
09-14-2005, 01:01 AM
Pudgerboy you can do almost anything you need with a attribute modfier. You can open up the script on the modifier and add any sort of script to it. This way they will stay with the character. Paul actualy wrote a script editor for CA's that is on his site that I use all the time. You can also write scripts to add the custom attributes that you want to a custom attribute modifier.

RyanT
Pipeworks Software
Foundation 9

LoneRobot
09-14-2005, 08:40 AM
thanks Ryan, I checked paul's site but was a bit hungover from the cricket so i must have missed it. i'll have a look now.

Many thanks!

edit : I see now - its the PEN attribute holder! I have the standard attribute holder modifier so i had thought it was using that one!

eek
09-14-2005, 08:48 AM
you can also (what im doing) is bind a script to use a ca via an appdata array. This way if you need to change attribute locked in the scene all you need to do is look up the appdata array, change the values and get the ca to relook at it.

Ive got scripts that do this - they 'get' the data out of the object. Then you can edit it and re'put' the data back in.

Also, this data can be offlined and as its just an aray, can be used between multiple characters.

eek

LoneRobot
09-14-2005, 09:39 AM
thanks Eek, Ryan T, I got the stuff now!

Paul - is this attribute holder and method of adding CA's replacing the other one in Max8? or has it always been possible to do this through scripting without the use of your nifty rigging utilities?

It's great because previously i'd set up sliders on the attribute modifer and the use a rollout floater to drive the sliders (so that i could have buttons to set different expression presets and mouth shapes for example) This is great because it removes this step and allows me to set things directly and remove the middle man. I'd always been scared of scripted plugins in the past! This is a good day to learn something!

edit -My confusion has finally subsided. It kind of sounded like dropping a large stone into the bottom of a large metal bucket. But with it came the realisation of finally being able to link my utilities into each charcter.

I had thought you built it into the functionality of the PEN attribute holder, but i realise now that your edit attributes script can apply it to either mod - you've just added the extra key all buttons to it.

Apologies all round for my slow realisation of this fact and my hijack of the thread. I got reading the wrong bit of the MXS help and that bluescreened my brain. back to the rig! and thanks for the help!

PEN
09-14-2005, 01:22 PM
bloggs: Block controllers sounded like a good idea, but only sounded that way. Don't bother looking into them as I have never found a good use. If any one does please share with us.

pudgerboy:.. and others, I don't see this thread as beeing hijacked. I have created these charaacters for Autodesk to try and show that complex characters and systems can be created. This thread is all about how it is done and what can be done.

Custom Attributes are the same as writting scripted plugins as far as the structure of the code goes. A CA def consists of parameter blocks and rollout as well as any functions and variables that you need. Any thing can happen in a CA def as you can see with Maxwell. I have tools for mirroring the right to left for arms, legs and body. This means I need to store reference to the parts of the body, have several functions to handle mirroring the matrix of the objects and a UI to control it.

You can also get access to functions, variables and parameter blocks from out side of the CA def so you can store functions that could be used by a script controller from another part of the character. Or store data in a CA that could be used by other tools.

Eek said that he is storing data in the AppData channels to call later. I actualy prefer using CA defs for this most of the time. I do use AppData in Maxwell as well but the problem with AddData is if you copy the object all of the Appdata is lost on the copy, with CA defs it isn't. You also have less chance that someone elses tool will be using the same channel as you add the CAdef as you need it.

My DVD's cover how to hand write CAdefs and what can be done for UI ellements but here is a quick test to run.


b=box()
c=circle()
tp=teapot()
s=sphere()

ca=attributes testCA
(
parameters testP rollout:testR
(
theNodes type:#nodeTab tabSizeVariable:true tabSize:0 --ui:nodeNames
)
fn printParamFn=
(
for x in theNodes do
(
format "Name: %\n\tNode: %\n\tClass: %\n" x.name x (classOf x)
)
)
rollout testR "test"
(
button printParam "Print All Node Data"
listBox nodeNames "Node Names:" items:#()

on printParam pressed do
(
printParamFn()
)
on nodeNames selected i do
(
format "Name: %\n\tNode: %\n\tClass: %\n" theNodes[i].name theNodes[i] (classOf theNodes[i])
)
on testR open do
(
nodeNames.items=for n in theNodes collect n.name
)
)
)
custAttributes.add s ca
append s.theNodes b
append s.theNodes c
append s.theNodes tp

select s
max modify mode

$sphere01.printParamFn()
clearListener()
actionMan.executeAction 0 "40472"

LoneRobot
09-14-2005, 03:00 PM
Thanks for clarifying that Paul -

So basically you specify the Parameter blocks for anything you wish to be editable (ie have a node) within the track view. There were good examples of this on your site that i could learn from. This is good to know. But also its good to have all the controls for a character built into that character so that they can be accessed all of the time. So in a really basic sense you can build (in my case a previous rollout floater) into the attributes so that you don't need to have reference to an external script file. This is a great way of building functionaltiy without having to install scripts onto each and every computer, and as well, you can have controlls specific to each character. great!

The other applications are also evident. I cobbled together a lipsynch method/toolbox for our current production, which used an external function and a macroscript for the phonemes on a separate mouth object. I could have embedded the script in the object meaning anyone could load up that file on any system and be able to set keys without having to copy startup script files etc. You could have a whole load of things like multiple morph channel settings from one button, as well as automated blinks etc. Just little things that speed up repetitive tasks.

I do have one question though, As that rollout is now defined inside the custom attributes, can you then launch it as a floater should anyone want to? would it keep the attributes in the modify panel? would it be lost when you closed the dialog?

many thanks Paul, thanks for stiring up a quality debate on character rigging in Max.:thumbsup:

PEN
09-14-2005, 03:17 PM
pudgerboy: Now your gettin it;) Chew on this!


b=box()
max modify mode
ca=attributes test
(
local openRollout
fn helloWorldfn=
(
format "Hello World!\n"
)
rollout testR "Test Rollout"
(
button floatRollout "Float Rollout"
button printHelloWorld "Print hello world"
on floatRollout pressed do
(
openRollout()
)
on printHelloWorld pressed do (helloWorldfn())
)
fn openRollout=
(
max create mode
createDialog testR
)
)
custAttributes.add b ca
select b

LoneRobot
09-14-2005, 03:42 PM
Now your gettin it;) Chew on this!

Brain... hurt....

i'm guessing you have tab to create mode because it cant build it while the CA's are open in the modify tab. I'm seeing a wealth of possibilities - your meshsmooth controls that you built into the CA's of maxine for example is a great timesaving tool. You could add eye controls for quick setting of where a character is looking. I'm liking it a lot.

PEN
09-14-2005, 04:20 PM
Well you can't have the rollout open in the modifier panel and floating at the same time. So you need to close the one in the modifier panel. Another way to do that is to just remove the rollout from the modifier panel and then float it.


fn openRollout=
(
--max create mode --Instead of doing this
removeRollout testR --Do this
createDialog testR
)

PEN
09-14-2005, 04:31 PM
Or another:

This one remembers the state of the rollout and opens it as a floater if that is how it was left when it was closed.


b=box()
max modify mode
ca=attributes test
(
local openRollout
parameters testP rollout:testR
(
floatRolloutState type:#boolean ui:floatRollout
)
fn helloWorldfn=
(
format "Hello World!\n"
)
rollout testR "Test Rollout"
(
checkButton floatRollout "Float Rollout"
button printHelloWorld "Print hello world"
on floatRollout changed state do
(
openRollout state
)
on printHelloWorld pressed do (helloWorldfn())
on testR open do
(
openRollout floatRolloutState
)
)
fn openRollout state=
(
if state then
(
removeRollout testR
createDialog testR
)else
(
destroyDialog testR
addRollout testR
)
)
)
custAttributes.add b ca
select b

PEN
09-14-2005, 04:38 PM
Or better again:

Two rollouts, the first handles the state of the second. This is really nice as you can have any object selected and still have the controls. Pinning the stack has a similar result but you can't get at other controls for other objects then. This way you can.


b=box()
max modify mode
ca=attributes test
(
local openRollout
parameters testP rollout:floatR
(
floatRolloutState type:#boolean ui:floatRollout
)
fn helloWorldfn=
(
format "Hello World!\n"
)
rollout floatR "Float rollout"
(
checkButton floatRollout "Float Rollout"
on floatRollout changed state do
(
openRollout state
)
on floatR open do
(
openRollout floatRolloutState
)
)
rollout testR "Test Rollout"
(
button printHelloWorld "Print hello world"
on printHelloWorld pressed do (helloWorldfn())
)
fn openRollout state=
(
if state then
(
removeRollout testR
createDialog testR
)else
(
destroyDialog testR
addRollout testR
)
)
)
custAttributes.add b ca
select b

eek
09-14-2005, 05:02 PM
Im still using beloved CAdef's Paul, im just accessing the values they use via appdate + or a external file.

Really its an external file, the appdata part is just the middle man, to talk between them.


eek

RyanT
09-14-2005, 05:06 PM
Pudgerboy another way to edit the attribute script is pauls utility. Its not the attribute holder its the "Pen_Rigging_Utils" there is a script tab called "Edit Attributes" this script allows you to open up the script currently on the attribute holder and edit it dirrecty. In the scripts Paul is showing you, you add the attribute holder. With his edit attributes script you can further modify the script a bit quicker.

-RyanT

PEN
09-14-2005, 06:05 PM
eek: Sounds interesting, love to hear more about it if you are willing to share:)

A few things to consider about CA defs in production. Instanced defs will over write each other when two characters are merged.

def.attribID will give you the unique identifier of the def. If they are the same on two characters but one character you added a new spinner to the ui, then you merge in the other character into the scene that has the same ID and the new spinner you added will disapear. To make sure this doesn't happen you need to make your defs unique.

I will be posting some updated functions that I use for working with CA defs at some point.

eek
09-14-2005, 06:37 PM
why certainly Paul, been flying though this stuff. Cant remeber if i added the def id stuff...

eek

catch you on msn soon - btw i fly out 10 days time!!!

LoneRobot
09-14-2005, 08:23 PM
Ryan T - Thanks for the heads up, I had actually found the rigging utils this morning, before Paul posted these examples. I was using it to load my previous rollouts i had made from the scripted character utilities. Thanks anyway!

Pen -

def.attribID will give you the unique identifier of the def. If they are the same on two characters but one character you added a new spinner to the ui, then you merge in the other character into the scene that has the same ID and the new spinner you added will disapear. To make sure this doesn't happen you need to make your defs unique.

sheesh I'd always wondered why that happened. I guess it's similar to a plugin where you use genclassid() to give a unique identifier for the plugin?

Thanks for those examples, and I look forward to picking through the custom functions!

thanks to Paul, RyanT and eek for all your help so far. you guys are the best.

PEN
09-14-2005, 08:31 PM
Ryan T - Thanks for the heads up, I had actually found the rigging utils this morning, before Paul posted these examples. I was using it to load my previous rollouts i had made from the scripted character utilities. Thanks anyway!

Pen -


sheesh I'd always wondered why that happened. I guess it's similar to a plugin where you use genclassid() to give a unique identifier for the plugin?

Thanks for those examples, and I look forward to picking through the custom functions!

thanks to Paul, RyanT and eek for all your help so far. you guys are the best.

It is identical to genClassID except you can't set the value. CA defs are the same as scripted plugins for the most part.

Wahooney
09-19-2005, 04:58 AM
PEN: Sorry for the tardy reply, I've been off sick with tracheitis, so I had no internet connection :sad: Nothing's missing, I'm just saying that there is a bit more work for the TD/Rigger to do to use the new controller, ie. defining the scene nodes as variables. But that is negligible when compared to the advantages of the new system.

PEN
10-12-2005, 04:51 PM
The thing is you don't have to do it if you don't want to. It still works the same way that it did before. The new script controller is way faster then the old because of the new features and doesn't run into the problems of name dependancy. I script a lot of the creation of controllers and it is also 100% scriptable which is great as well.

Wahooney
10-13-2005, 05:18 AM
I'm not complaining... I've played a bit with it and Imust say it's MUCH faster, and I see you don't need dependsOn any more... Uber cool!

PEN
10-13-2005, 10:18 AM
I'm not complaining... I've played a bit with it and Imust say it's MUCH faster, and I see you don't need dependsOn any more... Uber cool!

You don't need dependsOn because changes in the dependency graph are passed to the controller through the variables that you create so the controller knows that it should update. I have seen a time when I still had to use it and I keep for getting to report it and see if it is a bug or just the way my expression was written.

CGTalk Moderation
10-13-2005, 10:18 AM
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.