JR’s Scripts

I started to learn MaxScript at the beginning of the year, and I thought that it would be interesting to come up with some useful scripts. When I was working on my umbrella rig I realised that there are some repetitive tasks, which I may avoid, so I came up with following 3 Scripts which help me to achieve results really quickly. It was actually just an exercise for me, and I tried to do some foolproofing but don’t expect it to be perfect. They work and maybe you will find some other use in them as well.


Select Objects


This script is really simple, but provides a function that I haven’t found in 3Ds Max. You can easily select multiple arrays of objects with different names.

Example :

Let’s say you have a rigged character with properly named bones.

Naming convention in your rig is following : Bn_Char_L_Finger_01, Bn_Char_L_Finger_02 and so on. The same applies for other part of the body, just the name of the body part changes.

You want to select all Fingers and Toes on your right side of your character, as well as the Head.

In order to make the selection, you could write in the field : *R_Finger*, *R_Toe*, *Head_01

Your selection should be complete after pressing Select New. Remember, after pressing Select New, your current selection will disappear, if you want to keep it, you can press Add to selection button.

Create IK Solvers


A script that creates IK Solvers even for multiple arrays of objects. You can type in exactly as in the “Select Objects” script, and it will look through all the hierarchies of entered objects, and if a connection in form of IK Solver will be considered as possible, it will create one.

Your IK solver will be automatically named after your End Joint object, and you can change the prefix of your new IK Solver.

Example :

An IK Solver will be created between bone “Bn_Char_Arm_L_01” and “Bn_Char_Arm_L_03”

If you leave the settings as default shown in the picture, your newly created IK solver will have name : “HIIK_Char_Arm_L_03”

Delete first 3 digits means that it will in our example delete “Bn_” from the base name and place “HIIK_” instead.

You can create different types of IK Solver.

Wire Parameters

 Basically a tool foor creating one way wire connection between objects.
You can pick one object that you want to control other objects with, and then type in exactly as in “Select Objects” an array of objects that you want to be controlled.
Example :
 You have a circle shaped controller, that you want to use to control the rotation of all fingers of your character rig.
All the fingers all named as : Bn_Char_L_Finger_01, Bn_Char_L_Finger_02, …
In order to make that happen, you can pick your object, select its desired rotation, and then type in the field “Wire parameter to:”   *finger* and pick the desired rotation axis as well.
After pressing Wire Parameters, all objects should be connected together and you should be able to control your rotation of all fingers with your control object.
Custom Attribute Text : you can adjust connected attributes within this field.  I.e. If you type in “X_Position *0.5”, your connection will be 50% weaker.
Disconnect Parameters : This field affects only objects in “Objects to wire parameter to” group. Select desired axis to disconnect and type in objects that should be affected.


If you are interested in seeing those scripts in action, I would recommend you to check out my tutorial on Umbrella rig, I am using all of them there.

Create IK Solvers : 20:00

Wire Parameters : 29:20


Scripts download

download icon
Go back to browsing posts ...