PDA

View Full Version : Need help with Discreet Char Rigging tutorials!


valoukh
06-30-2005, 08:33 AM
Hi there!

I've been running through the Character Rigging tutorials which are shipped with MAX (7.0 SP1) and I have encountered a few problems. If anyone can help, it will probably be someone who knows the tutorials well! I understand that it's a difficult query to answer.

1) I am now on the "Rigging the Legs and Feet" section, and have just added a controller object for the Knee. The problem is, when I assigned the controller to the Knee (by adding it as an IK Solver Plane target under the Motion Panel) the knee immediately snapped the wrong way. I can't seem to get it to stay forward, even though the Knee Controller object is in front of it! Here's a screenshot:

http://img224.imageshack.us/img224/3559/foot9uh.jpg

2) Earlier in the tutorial I was instructed to use Wire Parameters to control the limits of, for example, the foot's rotation. This was done by using the command "degToRad" to convert the degrees of the rotation with various amounts and multipliers. The problem is that the figure which was given in the tutorial is too much for my character. Here's a screenshot:

http://img224.imageshack.us/img224/4430/foot22cd.jpg

So, my question, as I don't fully understand this, is "can I go back and change these figures (in the Wire Parameteres dialog), or do I need to enter the whole string again?" Let me simplify that. Let's say I'm wiring my large controller object to one of the helpers. I do so, and the Wire Parameters dialog is displayed. I enter a string to change it's rotation limits (and so on), then close the window. Then, upon testing the rotation, I realise that it's rotating too far on the ankle before switching to the toe tips (for a more natural movement). If I wanted to change the values/limits, would I link the controller object to the helper again, or is there a way to bring up your old string so that you can edit it? Here's a screenshot of the window I'm looking at:

http://img224.imageshack.us/img224/845/foot35er.jpg


Thank you very much for any help that you can give on this, and I'm sorry it's a little unclear!

-valoukh

valoukh
06-30-2005, 10:55 AM
It has just come to me that the second problem is probably linked to the fact that the foot is going through the floor!I read somewhere that this could be caused by the user missing out one of the instructions in the tutorial (perhaps one which locks the foot on the floor-level?), but, as I'm pretty sure in myself that I followed the tutorial correctly, I'm finding it difficult to pick out the thing which I (may) have missed. Has anyone any idea what might be needed to stop this from happening? As far as I'm aware, I've made all the necessary connections (in wires and links), and my limited knowledge of rigging is preventing me from being able to diagnose the situation! I loaded up the tutorial file with this leg setup, and, when the foot is rolled forward, everything works perfectly.

I've only just realised how serious a problem this is - surely one can't animate a character if the foot goes through the floor whenever it rolls forward! I wonder, then, does anyone know what link (or wire) might be missing? And would it be possible to make this link now, or would I have to start the entire rig again? I'm simply not sure as to what extent the rig can be changed once it's been created.

Thanks again,
-valoukh

Bao2
06-30-2005, 11:02 PM
These days I am reading these same Max Tutorials. I had no problem with
this Legs and Feet Tutorial. So I think I can help you. But I need examine your file.
So, send me the file you rigged what have the problem to my email:
jmbbao2(at)terra.es (use the correct arroba sign instead "at" of course)
Because you and me are reading the same tutorials I think we can help
one to another. I hope so.

Un saludo desde Espaņa :).

olli96
07-01-2005, 06:58 PM
hard to tell what went wrong...can you upload the file ?

Olli

valoukh
07-01-2005, 07:02 PM
Here you go!

Thanks a lot,
-valoukh

olli96
07-01-2005, 07:24 PM
ok, you somehow adjusted the pivot or you rotated the bones. in which viewport did you created the bones ? recreate them in the left viewport, then it should work.

to see that something went wrong, create another leg in the left viewport and apply a hi-solver from the upperleg to the ankle and activate the select and manipulate tool (next to the snap tools). you will see that your swivel manipulator is facing to the back of the leg, thats why it snaps to the back when you assign the swivel target. if you create the legs in the left vwport, you shouldnt have this problem. i cant tell you a quick way to fix this in your setup, so just create the legs agian, takes 5 minutes ;)

Olli

Bao2
07-01-2005, 11:18 PM
1) Knee Control:
Your bones have local X and Y axis correct BUT Z axis mirrored !!!
Double click on bone_leg_upper, choose Local for coordinate system
and choose the mirror tool.
Choose Mirror axis: Z only and Clone Selection: No Clone.
Now the knee control works.

2) You have wrong the wire for
footLCTRL > Modified Object > Attribute Holder > Custom_Attributes > Roll
-->
heelRotateLHELP > Transform > Rotation > X Rotation

you have: degToRad (0.6*Roll)

when in Tutorial it says: if (Roll < 0) then degToRad (0.6*Roll); else 0.0

3) In these Tutorials they say we must ZEROing the controllers we create. This
is a cumbersome task (create a helper, and intercalate it in the hierarchy), so I have created an script. I select all the controls I want ZEROing with HELPERS and push a button for create all the HELPERS correctly situated in the hierarchy.
See next post below. :)

Bao2
07-01-2005, 11:37 PM
Copy this code to a text file and then rename the file to "BaoZEROHelper 1.0.ms"
Place this file in Max/scripts folder. To run, in Utilities panel select Maxscript and
Run Script and select the BaoZEROHelper 1.0.ms file. Now in the dropdown list
appears this script but for run it you must open the dropdown and select again. Now
scroll down the utilities and next appears my script. It has three buttons: create,
delete all and delete selected.
Create: You select control objects and next push this button to create HELPERS
with the wireframe color you choose
Delete All: Delete all the helpers
Delete Sel: You can select all the objects in leg right for example and only the
ZEROing Helpers will be deleted.

You can create three boxes and link the three in hierarchy and test my script.


/* BaoZEROHelper 1.0
Create Helpers (displayed as a centermarker) for the selected objects with the same name
and appendix "_ZERO". Inserts the Helper in the Hierarchy as parent of the selected object.
So, we are zeroing the trackview curves for the selected objects.

Delete All Helpers delete all objects in the scene with "_ZERO" in its name.

Delete Selected deletes objects selected only if have "_ZERO" in its name.
*/
utility BaoZEROHelper "BaoZEROHelper 1.0"
( label bzhlabel1 "by Bao, 2005"
colorpicker bzhcolor "Helpers color:" color:[87,224,87] modal:false
button bzhbutcreate "Create ZERO Helpers"
button bzhbutdeleteall "Delete All"
button bzhbutdeletesel "Delete Selected"
label bzhlabel2 "CREATE: Select objects first!"
label bzhlabel3 "DEL.ALL: no selection required"
label bzhlabel4 "DEL.SEL: Only deletes the ZERO"
label bzhlabel5 "Helpers in selected objects"

on bzhcolor changed nuevocolor do
( --no hace falta hacer nada
)--end on

on bzhbutcreate pressed do
( for objeto in selection do
( nuevo=Point centermarker:on axistripod:off cross:off Box:off size:10 \
constantscreensize:off drawontop:off pos:[0,0,0]
nuevo.name=objeto.name+"_ZERO"
nuevo.wirecolor=bzhcolor.color
nuevo.pos=objeto.pos

padre=objeto.parent
if padre!=undefined then nuevo.parent=padre

objeto.parent=nuevo
)
)--end on

on bzhbutdeletesel pressed do
( for objeto in selection do
( resultado= findString objeto.name "_ZERO"
if resultado==undefined then deselectNode objeto
)
for objeto in selection do
( padre=objeto.parent
if padre!=undefined then
( hijo=objeto.children
hijo.parent=padre
) )
max delete
)--end on

on bzhbutdeleteall pressed do
( clearSelection()
for objeto in $* do
( resultado= findString objeto.name "_ZERO"
if resultado!=undefined then
( padre=objeto.parent
if padre!=undefined then
( hijo=objeto.children
hijo.parent=padre
)
selectMore objeto
) )
max delete
)--end on
) -- end of utility definition



If you are reading the rigging tutorials I think you appreciate this. :thumbsup:

olli96
07-02-2005, 09:55 AM
btw, instead of adding more nodes in your rig to zero-out the controls, you could use the freeze transform (alt+rmb) function. ;)

Olli

Bao2
07-02-2005, 06:11 PM
Yes. Yours is a more "modern" way. :thumbsup:

CGTalk Moderation
07-02-2005, 06:11 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.