HDIK Setup in 3DS Max 7.5 |
|---|
Welcome to my first 3DS Max tutorial.
Please inform me if you have any trouble following the instructions below or if you can't download the example file.
- First, download the zip file on the right
- Use winzip or Windows XP's built in unzip utility (which should kick in if you simply double click the file once it's on your hardrive) to open the file
- Once the file is unzipped, open the file in 3DS Max 7 or higher
|
|
In order to create a working piston a history dependent IK chain must be created.
The first step in this process is to create 3 dummy objects that will be linked in a specific order to the piston objects.
One dummy will be at the top or “parent level” of the hierarchy where the piston joins the main body of the loader.
The other 2 will be at the bottom or “child level” of the hierarchy.
- Create a dummy object and name it piston_main01_dummy
- Align the new dummy object with the pivot point of piston_main01
|
|
- Create another dummy object (making sure that it is slightly larger than piston_main01_dummy) and name it yoke_dummy_top
- Now align yoke_dummy_top to piston_main01_dummy (The smaller dummy will be nested within the larger one)
|
|
This takes care of the 2 dummys at the end of the hierarchy chain; now one more must be created for the top of the chain.
- Create a dummy object and name it piston_main_dummy
- Align this dummy with the pivot point of piston_main
|
|
Once the dummies are in place, all of the objects must be linked together to form a hierarchy.
- Select piston_main and open the hierarchy panel
- Once there, under pivot > adjust transform > reset, click on the transform button and the scale button
- Now select piston_main01 and repeat the same process
- Resetting the transform and scale of each object will prevent the objects from mysteriously changing scale once the IK solver is applied (this crucial step was discovered after much wailing and gnashing of teeth on the author’s part…)
|
|
- Select piston_main01_dummy
- Link piston_main01_dummy to piston_main01
- Now link piston_main01 to piston_main
- Then link piston_main to piston_main_dummy
|
|
Now that the hierarchy has been established it’s time to set up the inverse kinematic chain. At this point make sure that you save your progress. If there are any problems with the IK solver it’s easier to simply reload the file.
- Select piston_main01_dummy
- In the animation drop down menu click IK Solvers > HD Solver
- A small dotted line will now appear with one end attached to piston_main01_dummy and the other attached to the cursor
- Click on piston_main_dummy
- This establishes an inverse kinematic chain that connects all of the objects in the hierarchy
- If the objects suddenly re-oriented themselves after the HD solver was applied don’t panic
- The next step in the process should fix that problem
- However, if the scale of the objects has changed, it may be necessary to reload the saved file and reset the transform and scale of the piston objects (as described in the previous section…)
|
|
With the IK Solver applied it’s now time to decide how the piston is going to move when it is animated. To define how the objects will move and interact with one another “limits” must be placed on the joints that will define the range and type of motion that will occur.
- Select piston_main01 then click on the hierarchy panel
- Under rotational joints make sure that none of the axes (x, y, z) are active
- To do this make sure none of the check boxes are checked
|
|
With the IK Solver applied it’s now time to decide how the piston is going to move when it is animated. To define how the objects will move and interact with one another “limits” must be placed on the joints that will define the range and type of motion that will occur.
- Next, under sliding joints, activate the y axis by clicking the box next to the letter
- A check will appear in the box indicating that that axis is now active and can be animated
|
|
With the IK Solver applied it’s now time to decide how the piston is going to move when it is animated. To define how the objects will move and interact with one another “limits” must be placed on the joints that will define the range and type of motion that will occur.
- Now check the limited box
- With that done left click and drag in the from box which is directly below the limited option in the menu (don’t panic if the geometry goes a little crazy at this piont… just keep holding that mouse button down and dragging until things start to look normal again!)
- As the numbers are manipulated the object piston_main01 will move along its Y axis
- Manipulate the numbers until the object has telescoped inside the other half of the piston as far as can realistically be expected
- Release the mouse button and that value has been set as the “from” limit on that sliding joint
- Now do the same for the “to” joint and release the mouse when the joint has extended as far as it realistically could without popping out of the larger half of the piston
- The object will now slide within the assigned limits when the dummy at the end of the IK chain is animated
|
|
With the IK Solver applied it’s now time to decide how the piston is going to move when it is animated. To define how the objects will move and interact with one another “limits” must be placed on the joints that will define the range and type of motion that will occur.
- Next select the object piston_main
- Under rotational joints make sure that the x axis is active and that y and z are not
- Under sliding joints make sure that none of the axes are active
- The object will now only rotate around that axis
|
|
Now that the joint limits have been defined the piston should look normal again. It is now time to attach the entire piston assembly to the yoke. To do this the last object in the chain must be “bound” to the yoke.
- Now select yoke_dummy_top then link it to the yoke object
- Once linked the yoke_dummy_top will rotate with the yoke object
- Select piston_main01_dummy and open the hierarchy panel
- At the top of the panel there are 3 buttons
- Click on the IK button (it’s the one in the middle)
- Under object parameters click on the bind button
- Now click and drag from the piston_main01_dummy to the yoke_dummy_top
- The dummy will now try to maintain it’s connection to the yoke_dummy_top
- Now when the yoke object is rotated the piston will rotate and telescope along with it, creating the illusion of a working hydraulic piston
|
|
Now when the yoke object is rotated the piston will rotate and telescope along with it, creating the illusion of a working hydraulic piston
Back to Tutorials
|