Creating a basic GUI Rig in 3ds Max

GUI Rig

Rigging is an essential process that must be performed in order to efficiently animate a character or object. A GUI Rig is a simple user created interface within the 3D program to allow the animator complete and accurate control of the model. This tutorial will be an introduction to creating a GUI Rig in 3ds Max.

For now we will keep to the basics and use wire parameters to create a control for an eyeball.

Open up 3ds Max and create two rectangles in the front viewport - one 10x10, and the other 1x1. Right click on the move button and set all the amounts to zero for both rectangles to centre their position.

GUI Rig Controller

What we want to do is make the smaller rectangle the controller, and limit it's movement so it can't move outside the larger rectangle.

Firstly, select the smaller rectangle and link it to the larger controller using select and link. You should now be able to move the large rectangle and the smaller one should move without it being selected.

Open up Curve Editor by clicking "Graph Editors > Track View - Curve Editor". Select the smaller rectangle and in Curve Editor you should notice it is highlighted in yellow.



Right Click on X position and click 'Assign Controller'. A window will pop up, select 'Float Limit' and press ok.



Another Window titled Float Limit Controller will pop up. Here you enter half the height of your large rectangle, and this will limit movement to no more than this value.

On this occasion our rectangle is 10x10, so set the upper limit to 5 and the lower limit to -5 and press ok.

Your controller will now be limited to the width of the larger rectangle in the X direction.

Repeat exactly the same thing but this time to 'Y Position' in the curve editor, and your controller will be completely restricted.

There are slilghtly more advanced ways of doing this that automatically adapt to the size of the rectangle if it is resized, but this involved maxscript and not really suitable for a beginners guide.


Create a sphere and add an edit poly modifier to it. Go to polygon sub-object mode and select all polygons but the front two rings. Under Material ID's of the polygon sub-object mode set the ID to 1. Press 'Edit > Select Inverse' and set the ID of the front two rings to 2.



Open material editor (m) and create a new multi/Sub-Object material. Set ID 1 to White and 2 to Black and apply it to the eyeball.



Your scene should now look like this. Now we have everything set up we can link the eyeball movement to the controller.



If you try and link the eyeball rotation to the controller now, the eye will reset it's rotation to zero and look upwards. We obviously don't want this so need to tell 3ds Max that it's current rotation position is zero.

Select the eyeball and navigate to the 'Motion' tab on the top right.

Under Paramaters click on 'Rotation: Euler XYZ' and the press the Assign Controller button above with a question mark.

Click rotation List and press ok.

Expand the 'Rotation: Euer XYZ' and there should now be a parameter called 'Available'. Select Available and press 'Assign Controller' again, this time choosing 'Euler XYZ'.

Underneath there is an option called 'Rotation List' and it should list two Euler XYZ's. Double click on the lower (new) one to make it active.

Repeat this process for the small rectangle controller, but instead on the 'Position XYZ' instead of 'Rotation XYZ'. This will ensure that when wired up nothing will move out of place.



Now it's time to link the eyeball to the controller.

Right Click the eyeball and press 'Wire Parameters...'

Click Transform > Rotation > BOTTOM (newly created) Euler XYZ > Z Rotation, then a wire will appear following your mouse. Click on the smaller rectangle and press Transform > Position > X Position > Limited Controller: Bezier Float

A Window Will now pop up. Press the arrow that is pointing left and press 'Connect'. The controller should now move the eyeball. If the movement is too quick, on the bottom left add '/4' like in the picture to the left.



Repeat the exact same process for the X rotation.

Click Transform > Rotation > BOTTOM (newly created) Euler XYZ > X Rotation, then a wire will appear following your mouse. Click on the smaller rectangle and press Transform > Position > Y Position > Limited Controller: Bezier Float

Click on the arrow pointing left and press 'Connect'.

If the movement is inverted add '-' at the beginning of the text on the bottom left like in the picture. You can also slow down the movement by adding '/4' at the end of the text.



That's it! You should now have a working GUI rig controlling eyeball rotation. Hopefully this tutorial has shown you how powerful wire parameters can be, and how it can be implemented into various rigs.

You can download the scene here to look at the completed exercise.

Thanks for reading this, and I hope you will find it useful. Tim.

Comments - please feel free to leave a comment :-)
gurpreet says:
28th June, 2010 at 8:38am
thank you tim for this wonder ful tutorial ,i am gurpreet Singh from india and i have seen ur wrk adn ur workis awesome man and i was stuck with gui but ur this tutorial has helped me to cross this hurdle. and also i have no resource to learn 3d guys like u are my real hepers and thanu very much for this tutorial and keep up the good work. thanks again man