This is part one and it only covers the basics; for more advanced stuff, check out Part Two!
For this tutorial, I'm going to go over the basics of what you need to do to make your steering wheels on models work, so let's dive in.
I'll be using a student license of 3DS Max provided by my college, but you can either obtain a free student license from the Autodesk education site, or find one somewhere else. You'll also need the Wall Worm model tools, or Wunderboy's .SMD Importer/Exporter plugins depending on what version of Max you're using. I'll be using the Wunderboy plugins.
If you're familiar with Source modding, you can skip Step One as this just covers basic setup of the tools.
1. Step OneThe model we will be using for this is the Buggy from HL2. You can use Crowbar to Compile and Decompile and we're going to be using it later, so I'd suggest downloading it from the official group.
To extract the model, you'll need GCFScape so download that as well.
After you download and install GCFScape, navigate to your HL2 directory to obtain the model. Usually it's C:/program files (x86)/steam/steamapps/common/half-life 2/hl2. The file we are looking for is called "hl2_misc_dir.vpk" and once you find it, open it up with GCFScape.
In GCFScape, you should now see this:
Open the models folder and find the buggy model:
Then right-click and hit extract:
Extract the model to your desktop for now, as it will be where we're working from for this tutorial.
Then launch Crowbar. You should see something near the middle of the program that looks like this:
Click the "Set Up Games" button and set up the paths to the folder for the game you want to compile to, the screen should look like this:
Click "Save and Close" when done.
Now, open the decompile tab at the top:
As you can see I've already navigated to my extracted HL2 buggy. Once you've done the same, decompile it, and remember where your decompiled files are.
Before we move on to Step Two, go ahead and open your copy of Max.
2. Step TwoImport the model of your choosing into 3DS Max by going to Max Button > Import > Import and then set the shown file type at the bottom below the file name bar to "All formats". Navigate to your model's .SMD reference mesh, and import it.
You should get a pop up like this:
Uncheck "Import Bones" as we don't need them for what we're doing.
After import, you should see something like this:
To my knowledge, I haven't found a way to make working posing groups without re-creating the bone structure. Now, we need to create two bones: a base, and one for the steering wheel.
Go to Create > Systems > Bones IK Chain:
Next, anywhere in the scene left click, drag a short distance, right click, and then hit delete. This will create a bone (left click), set the size (dragging), end the bone and cap it (right click), and delete the extra cap bone (delete).
On the right side of your screen, name the bone "base":
Next, at the top, go to the button that looks like 4 arrows pointing away from a cube:
This is the move gizmo, and it's what we use to move object around. You can either click this button, or press the "E" key to hotkey it.
Next, press "F12" to open the movement panel:
Right click on all three of the arrow sets to reset them to 0, so that the location of the bone is 0 0 0 like this:
Now we need to do the same for the rotation. Select the rotation gizmo gizmo either at the top with the circle-arrow button, or by pressing "R" and the gizmo should change to this:
Now, with the F12 menu open still, reset the rotation the same way, by right clicking on the arrows:
Now that out base bone is reset, we need to make the steering wheel bone. Zoom in on the steering wheel on the Left viewport, and next create a bone that follows the steering column:
Remember to delete the cap bone it creates.
We also need to set up our steering wheel bone's location, so in the Top or Front view, select the bone, and use the move tool to move the bone in line with the steering column:
Remember to name the bone "steeringwheel":
Next we need to link our "steeringwheel" bone as a child of the main "base" bone using the chain icon at the top of the screen:
This is the link button, and the broken chain next it is the unlink button, which as the name implies, unlinks whatever is selected from whatever it is parented to.
Select the "steeringwheel" bone, and with the link button selected, press "H" to open the list of objects to link to:
Don't like it to a mesh (a sphere icon), link it to the bone (the two part bone icon).
Next, select the selection tool to exit the link action, and we're ready to move on:
Next, we need to do a basic skin modifier rig on our model. Select the reference mesh by clicking on it, and on the right side look for a button that looks like a rainbow:
This is the modify panel, and we are going to do work through here.
Before we can add and weight our model, we need to delete the old skin modifier:
Now, you should see a drop-down box that says "Modifier List" in it. Find the one labeled as "Skin" and click it to add it to the list:
Now, add the bone named "base" to the weight list by clicking the "Add" button in the "Parameters" rollout box:
But we're not done yet! Click on the modifier that says "Editable Mesh" and then click on the red cube under "Selection":
We need to hide all the other meshes except the steering wheel itself. With the Element selector selected, drag over the model in selection brackets and highlight each portion of the buggy (it will turn red when selected) and hide it using the "Hide" button:
Now we need to rig our steering wheel mesh to the steering wheel bone. Unselect the element (un-select the red cube in the Editable Mesh modifier) and select the skin modifier. Add another bone to it just as you did before and add the "steeringwheel" bone.
Next we need to check the bone at the top of the "Parameters" rollout that says "Edit Envelopes" and then check "Vertices":
Now, drag a selection box over the steering wheel:
To weight the verts, we need to select the weight painting tool, so select the wrench under the "Parameters" rollour:
With the verts selected, select the "steeringwheel" bone:
And click the "1" button:
We're done with the wheel, but adding another bone has auto-weighted some of the mesh to it. Unselect the "Edit Envelopes" button, and now go back to the element selection button you were at before, and un-hide the rest of the mesh with the "Unhide All" button under the "Selection" rollout box. Next we want to hide ONLY the steering wheel, and select the rest of the mesh with the weight painting tool as we did before:
We should now be done with the reference mesh weight painting!
3. Step ThreeNow that we rigged our mesh, we're going to export a "neutral" pose, which is basically what the name implies - a pose that has no mods to it that the other poses will subtract or add to.
Go to Max Button > Export and navigate to a subfolder of your decompiled model folder, or create one somewhere else if you have somewhere else you wish to save your files.
You should see something like this in your export screen:
Save it as "neutral" and you should get a new pop up screen with more options:
Notice that I'm saving it as a sequence from frame 0 to 1; when it comes to static props or posable props, you only need one frame, and having more than that can marginally increase the file size of the .smd sequence files. While this might not matter, it's worth noting.
After this, we're going to pose the prop's turn LEFT sequence. Select the steering wheel bone first; it should be named "steeringwheel".
If you need to locate the bone quickly, press the "H" key and it will open the pop up selection menu which shows all the objects currently visible in the scene. It should be near the bottom of the list if you expand the brackets:
For this tutorial, just to cover the basics, we're only going to animate the steering wheel in this step, so once you've selected the steering wheel, select the rotation gizmo either at the top with the circle-arrow button, or by pressing "R"
At the top you should see a drop down butrton next to the gizmo buttons:
This is the axis selection drop down, and for this step we need to make sure we have the rotation gizmo active, and the drop down box set to "Local" rotations.
After this, your gizmo should go from this:
This is how we're going to make our steering wheel rotate correctly when we rotate it so that it doesn't rotate in a non-realistic way such as rotating off the steering column.
Before we start roating however, there is another button we need to set turned to on: rotational snapping.
At the top in the action tool bar look for an icon that looks like this:
This is the angle snap tool. It will allow us to snap our angles to precise degrees of rotation. I have my personal one set to 5 degrees, but you can set it to whatever you want.
If you right click on the icon it will show the options panel:
If you want to set your degree snaps, change the value of "Angle".
With your angle set to a multiple of 5, and the rotational axis set to "Local", go into view of your choice and rotate on the axis matching the steering column to the LEFT:
Always make your rotations on player vehicles rotate 60 degree to the left and right when you do them as this will match up with the default HL2MP animations for driving.
Next, export this scene as another sequence .smd named "turn_left":
After this, reset the steering wheel to the center position, either with undo or by manually rotating it back. Next we're going to do the same with the RIGHT rotation:
Next export it, just as you did before, naming this file "turn_right":
For our final step, we need to export the actual reference mesh itself so that we have an actual model to work with.
Export the scene as you did before, by going to Max Button > Export and saving the scene as "reference.smd":
Before you save it though, notice that I have selected, "Use Explicit Normals" in the check boxes. What this does is preserves the original smoothing groups on the model that it had when you imported it into the scene, so that it won't look like it has no smoothing.
Now we're ready to move on to the .QC file editing!
4. Step FourIt's highly recommended you use NotePad++ for the editing of .QC files as it has context highlighting, but you can also use standard Notepad for this as well. Do not use Wordpad.
In NotePad++ copy and paste the following PasteBin's page content:
For this tutorial, we're skipping physics models and other things like that for now since the focus of this tutorial is on posing paremters.
Save this as "buggy.qc" in NotePad++:
Next, open the .QC file in Crowbar's Compile tab:
And click the compile button in the middle.
You should see the box below the compile button fill with text:
It should come out error-free if you followed my instructions, so next click the button at the bottom that says "Use in View" to open it in the view tab:
At the bottom, click the button that says "View" to open the selected model in HLMV:
If it worked, HLMV will open shortly. Go get a cup of cola.
You should now see this:
Click on the tab that says "Sequence" and look for a drag line that says "steeringwheel":
This is the posing control for our steering wheel! Zoom in on the steering wheel and see if it moves:
Congrats! You've made your first posable bone in HLMV!
Want to test your skills? See if you can do the following to this and any other models:
- Moving pedals
- Steering tyres as well as the steering wheel
- Windshield wipers
- Speedometers & tachometers
Leave comments & things I should clear up in the comments below.
Also, I did a speedy video tutorial that more or less has me doing all the steps on a caffine rush:
Part Two is Here!