PDA

View Full Version : rigging for shockwave


Bob216
07-13-2005, 05:00 AM
Hi there all, it's me Bob again. I have this problem. For those of you know shockwave rules, basically what I am tring to do is constrain my character's eyes to its head. Like I have seen in other posts and tutorials, I see you're suppose to use the point constraints in Maya. However, I notice that I can not use any of the Maya constraints at all because shockwave will just ignore them. I have also tried parenting the eye mesh to the head joint but this doesn't work either. However at least I found out why parenting a mesh to a joint doesn't work in shockwave and I will explain down below before I ask my question.

First off, to make sure we are in the same path, normally when you create a polygon surface in maya, there are 2 nodes that are created. The first node is a transform node, and the second node is a shape node which I belive the transform node holds the transformation info, and the shape node holds the mesh info as well as the shader info.

Now if I was to just export this one poly surface with no bones skinned to it, Maya will export both the transformation node and shader node as one node in shockwave (that is if shockwave even calls these things nodes). For example lets say I create a poly sphere for an eye ball, and I name the transform node rightEyeBallTransform. I then name the shape node rightEyeBallShape. When I export this eyeball, and import it to Director, the eyeball shows up as rightEyeBallTransform but the properties of the rightEyeballShape node gets added to the rightEyeBallTransform and the shape node is then deleted. So in other words, when you look at all of the eyeball's properties in Director, the shader, the mesh, who is it parent to, and it's coordinates properties are all in one big node called eyeBallTransform.

However, lets say this time I also create a sphere to be the character's head. I name the transform node headTransform, and I name the shape node headShape. I then create 2 joints called headJoint, and rightEyeBallJoint. I then skin only the head mesh to the root joint called headJoint. Then I parent the rightEyeball mesh to the rightEyeBallJoint, and then export it to shockwave. Now here comes to the reason why this doesn't work. What happesn is first both the headTransform node and the headShape node are moved to a new node called headJoint-skeleton. This node has everything. And I mean everything, the bones, the mesh, the shaders, who is it parent to, the bones transformation properties, the mesh transformation properties, and the count of how many bones in total there are connected to this node. In addition, while in Maya you can't re-parent the eyeball mesh to this headJoint-skeleton node because Maya doesn't create this node but yet shockwave does. So in other words, in shockwave, both the rightEyeBallJoint and the rightEyeBallTransform nodes are parented together but these nodes are now useless because evething is on the headJoint-skeleton node. So if I can't use constraints and I can't parent the eye mesh to the eye joint in Maya, then how am I suppose to constrain these stupid eyes to the head? I know it can be done because I seen it done here (http://www.sticky3d.com/demos/%20gromit/Gromit_001.htm) (http://www.sticky3d.com/demos/%20gromit/Gromit_001.htm)as well as what about all those Shoot-em up chararter games that allows you to pick up new weapons etc.

Bob216
07-13-2005, 02:44 PM
Oh poo, the link doesn't work that I gave you guys above. I don't know why because it is not a broken link. Anywho, lets try it this way http://www.sticky3d.com/demos/gromit/Gromit_001.htm

Also, to give a better example of my above explaination, I placed an image of my outliner down below. In addition, I hilited the areas in different colors which I will descibe as follows....

The blue and yellow hilited nodes are the nodes that are not skinned. These nodes are for the eyes mesh. The green and red hilited nodes are the nodes that are the bones and meshes that are skinned together.

Now to descibe what happens to the blue and yellow nodes when exported to shockwave. The blue hilited nodes are the transform nodes, and the yellow hilited nodes are the shape nodes. What happens is when I open this up in shockwave, the yellow hilited nodes are compressed with-in the blue hilited nodes and then the yellow hilited nodes are deleted. So now I got the names as follows....

rightEyeTransform
leftEyeTransform

The properties that are held in these two above now have both the transform nodes, and the shape node properties all in one big list according to their cooresponding tranformation properties, who is it parent to, the shaderlist properties, and its visibility property.

Now to describe what happens to the green and red hilited nodes when exported to shockwave. All the green hilited joint nodes are compressed to a new name called neckJoint-skeleton. Then these joint nodes are still exported but they're useless now because they become just empty nodes because they have been moved to the new name neckJoint-skeleton. The rest of the green hilited nodes that are suppose to be the skinned surfaces, they too do the same thing just like what happens to the joint nodes. Meaning the headTransform node, the neckTransform node, the neckJoint node, the headJoint node, the pEyesJoint node, the rightEyeJoint node, and the leftEyeJoint node are now all in one big property list named neckJoint-Skeleton. This causes a problem because when I parent the rightEyeTransform node to the rightEyeJoint node in Maya, I am basicly just parenting the rightEyeTransform node to a useless node. This is becuase what use to be the rightEyeJoint node is now a useless node because its properties have been moved to this new neckJoint-skeleton property. This also is true when I do the samething to the leftEyeTransformNode. As for the red hilited nodes well they to get added to the neckJoint-Skeleton but these nodes get deleted in shockwave. So is there a trick to this which allows me to constrain the eyes to my character head or is this a bug?

I hope this clears things up becuase not only this post is probably confusing to you, it is confusing the heck out of me.

Bob216
07-14-2005, 12:50 AM
Ok guys,
This has really urked me for 3 days now but I think I finally figured it out. What I deffently figured out though with shockwave is that polygon surfaces can not be a child to a joint but you can make joints be a child of a polygon surface or a locator which I choose a locator to be my parent. So what I did was first I followed the way you add bones to surfaces with the respect of Plasma. Plasma says that you don't make one hiearchal of bones which are parented to the root pelvis bone when you rig characters. Instead you do it this way....


1. First, start by parenting the right foot, right shin, and right thigh surfaces in the same hiearchy order like you would with creating leg bones. Also make sure you stop at the right thigh poly surface and then do the same with the left leg.

2. Parent the right arm in the same hiearchy order when you create the bones for the arms and stop at the shoulders.

3. The last thing you parent is the neck and head with the neck being the parent.

... so now your outliner of polygon surfaces should be in this order....

>RightThighSurface
>>RightShinSurface
>>>RightFootSurface

...same with the left leg

>RightArmSurface
>>RightForearmSurface
>>>RightHandSurface
>>>>RightIndexSurface
>>>>RightMiddleSurface
>>>>RightRingSurface
>>>>RightPinkySurface
>>>>RightThumbSurface

...same with the left arm

>neckSurface
>>HeadSurface

.... and don't worry about the parenting the eyes, and the torso. These 3 surfaces don't get parented to anything.

4. Now do the same with creating the joints which the heiarchy should be in the same order as your surface hiearchy except this time add a torso joint located at the very bottom the torso just like you would normally start off with the hip bone, and also add the eye joints located at their dead centers of each eye.

5. Now skin each of the roots of the surfaces to their cooresponding root joints. Oh and don't forget to skin the torso to the torso joint, and skin each eye surface to each eye joint respectivly.

6. Next, create 4 locators by positioning the the first at the pelvis, the second between the shoulder and neck area, the third to its dead center of the right eye, and the fourth to its dead center of the left eye. It is important that the right and left eye joints and eye locators to be at their dead centers to each of the eyes because these 2 nodes become you pivot axis for the eyes.

7. Then, start with the right eye and have the rightEyeJoint being the child of the rightEyeLocator, and then do the same to the left eye.

8. Next work your way down starting with the neckJoint being the child of the shoulder/neck locator

9. then have the right and left eye locators be the child of the shoulder/neck locator and have the right and left shoulder joints be the child of the shoulder/neck locator as well.

10. Now start with both the thigh joints being the child of the pelvis locator as well as the torso joint being the child of the pelvis locator as well.

11. And the last parenting thing you do is you parent the shoulder/neck locator to the pelvis locator.

so now your locator/joints hiearchy looks something like this...

>Pelvis Locator
>>PelvisJoint
>>ShoulderNeckLocator
>>>RightEyeLocator
>>>>RightEyeJoint
>>>LeftEyeLocator
>>>>LeftEyeJoint
>>>NeckJoint
>>>HeadJoint

Then it is a good idea to double check your work by using the locators that you have created. Also if you decide to do animation keys in Director just remember that IK joints are not supported in shockwave. Thats why I didn't go about adding them to this tutorial and I don't think this would work anyways. So happy shockwaving ;)

Jens L
07-21-2005, 10:50 PM
Hi Bob216, I'm working on testing Maya exporting out into shockwave/director. Your posts are a bit ahead of where I'm at, although I've also encountered a rigging problem. The skeletons I'm working with aren't structured the way you've mentioned above, but they seem to work. The hang up I'm hitting is in NURBs curves - generally they are easier to work with / select than locators, so that's whats been used to animate a number of models. Now the issue is the Shockwave exporter is totally baffled by the NURBs curves, so I'm puzzled for a workaround that doesn't involve reanimating everything. Any ideas? Thanks! Jens.

CGTalk Moderation
07-21-2005, 10:50 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.