Mario's Guide To Ragdolling

**UPDATE:** (July 03, 2009)
>> It's come to my attention that after a period of not logging into filefront, alot of my files were deleted due to acccount inactvity.
so links in this post may be obsolete. if you find a bad link, please inform me through PM, and I'll try to amend and fix these.
>>Also I'm aware that FP has recently started closing large topics, and this ones likely to get locked soon.
if anyone needs questions answered, please feel free to PM me, or email my hotmail.

Gmod Ragdolling with 3dmax
This tutorial was created to re-enforce megnet’s Original Video Tutorial on Ragdolling. It showed a BananaMan which he rigs in 3dmax then shows the scripting of a QC file. Which combined with the other info provided around FacePunch I was able to compile models for SOURCE. Through each experience compiling, I learned more about 3dmax, and how models are presented in the 3Dworld. I want to share this with others so that everyone gets a chance at the amazing world of 3D!
*>>Please read the overview below, so you can get a better grasp of what the tutorial will explorer

I would also recommend you have a gander at the Glossary Page, since I’ve developed a type of Slang, which some may get confused about.

All in all if you have questions, post them! I will answer.*

Last Update: February 13, 2009.
Note: I used two accounts so that the board wouldn’t auto merge my posts, when I was making place holders.

Table of Contents
Section 1 - Getting setup [JumpLink]
Section 2 - Learning 3dmax [JumpLink]
Section 3 - Using 3dripperDX [JumpLink]
Section 4 - Compiling A Prop [JumpLink]
Section 5 - Compiling a “Basic Ragdoll” [JumpLink Part1] [JumpLink Part2] [JumpLink Part3] [JumpLink Part4]
Section 6 - Compiling a “Ragdoll with Eyeposing” [JumpLink]
Section 7 - Compiling a “Ragdoll with Flexes” aka face and finger posing [JumpLink]
Section 8 – Using Advanced VMT Materials [JumpLink]
Section 9 – FAQ [JumpLink]
Section X – Glossary [JumpLink]
*NEW Section XI – Advanced 3DMAX Tips [JumpLink]

TIP: Use CTRL + F to help you jump between Sections.

The Overview
To place this entire guide into a nutshell, I want to break the tasks into “5 Major Area’s” that you will have to know and learn!
Now want you to look at these 5 parts, and not get intimidated by this super long ass tutorial/guide.
the steps to compiling are very easy. and I promise if you read this, you will get results

  1. 3Dmax (Must Rig your Model to a Skeleton, then Create a Collision model. Then Export as SMD)
  2. QC Scripting (you need to create a QC file, which will tell the compiler what to do. which is the key to face posing and eye poser)
  3. Compiling with SDK (you need to understand what tools to use, and how to use them to improve your ragdoll)
  4. Textures & Materials (Materials in HL2 need a text based instruction file to tell the game how to present the surfac of your model. Keep in mind textures and materials are completely different things)
  5. Final Compile (Through out the 4 steps you will constantly go back and forth to refine your ragdoll. you’ll likely encounter many problems. this is where trouble shooting begins.)

Don't Feel Like Reading? - Checkout the Complete Video Series to Ragdolling! *(Don't forget to click on the HD


**Part 1 : ** - Getting Alyx from HL2 (includes me getting banned bonus)
**Part 2 : ** - Smoothing your Model & Creating a Skeleton
**Part 3 : ** - Rigging your model
**Part 3B: ** - Rigging your model Extended
**Part 4 : ** - Creating your Collision Model & Exporting Your SMDs
**Part 4B: ** - Optional Exporting in 3dmax 2009 (Only for People Using 3DSMAX 9, 2008, or 2009)
**Part 4C: ** - Amending Mistake in Part 4 (Exporting Proper Ragdoll.SMD)
**Part 5 : ** - QC Setup & Compiling
**Part 5B: ** - QC Scripting for Face Flexes (Only Applies to 3dmax 6, 7, or 8 users)
**Part 6 : ** - Setting matterials
**Part 6B: ** - Amending Mistake in Part 6 (Shows VMT Fix)
**Part 7 : ** - Setting Bone Constraints
**Part 8 : ** - Showing Phong Materials


1a.) Acquiring Programs
(Recommend you install them in Order as listed)
> Half-Life2 (Legit-installed&ready)
> Gmod9 or 10 (Download 4 Gmod10: Garry’s Mod) (Download 4 Gmod9: FileFront Mirror:

error - removing links

> 3DMax8 or 9 (Download 4 3Dmax9: [url=]AutoDesk
) (Download 4 3Dmax8:
> 3D Ripper DX (Download 4 DrDX: [)
> SMD Import/Export Plugins for 3Dmax (Download 4 smdi/e: url=)
error - removed links, links caused -32 smart

> MDLCompiler (Download 4 MDLC: (use GUI StudioMDL below; if your have troubles installing this one)
> GUI StudioMDL (Download 4 GUI StudioMDL:

1b.) Installation of Programs
(Takes a good 2-3 hours …really)

i.) Half-Life2 {C:\Program Files\Valve\Steam\SteamApps***********\half-life 2}
> I’m aware of three valve games that you have to own, in order for SDK to work (I only own HL2ep1)

-OrangeBox = don’t know nothing about it, but your SDK is installed to the following;
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\orangebox\bin

-HL2 ep2 = Don’t own this one either sad.gif
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin

-HL2 ep1 = you need to add a startup command to your SDK in order for it to start with HL2ep1
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin

To do this Open Steam, and and click on the “Tools” Tab. From there right-click on “Source SDK”, and goto “properties”. You should now see a button that says “Set Launch Options” then enter the following commands and press OK

-applaunch 211 -beta sdk -engine ep1

Now try to start Source SDK. if it runs, you should get a bunch of configuration errors, that’s normal

iii.) 3DMax
> 3D max is a $$1,000.oo program, so finding this is up to you, though above I have provided the link to the developers site which offers a 30 day trial. All the features are still in the trial and will server you just as well as a full licenced one. (3dmax8 prefered)

ix.) 3D Ripper DX {“C:\Program Files\3DRipperDX\DX3DRipper.exe”}
> When you install this the most important this is installing the 3dmax PLUGIN, which would be in our 3dmax folder;
“C:\Program Files\Autodesk\3dsMax8\plugins”
Make sure you get this install correctly, or 3dmax won’t be able to open the 3dr files

v.) SMD Plugins (ONLY FOR 3Dmax6-8)
> Another very very critical part of 3Dmax is the SMD plugins you are going to need. without these compiling your model is going to be impossible.
> Also notice on Cannon’s Download page there are only 3dmax plugins for 3dmax6 and 7. Now this will work with 3dmax 8. but not with 3dmax9 unfortunately :frowning: Someone has made 3dmax9 ones, but I’m unable to find the link to it, so try google’n for it yourself

vi.) MDLCompiler {C:\Program Files\Valve\Steam\SteamApps***********\sourcesdk\bin}
> this program is a little weird, it tries to add itself to STEAM, but a recent STEAM update stops this as being a possible security threat. so this program will likely not work when you start it up. When I find the proper fix for this I’ll post it. you have to edit some text files.
>Anyway if you can not get this to work, use "GUI StudioMDL " one, its 100% stable.


We will be learning the basics of 3d max, and how to create some basic objects

I’ll cover your basics, what you need, and how to use it. just bare in mind it took me 3years to get past the intimidation that is 3dmax. just remember practice, practice, practice. also make some sticky notes, it’ll help speed up your learning, really!
Alright, so now you are asking, what the heck do i need to do this. well A you need 3dmax (3dmax8, 3dmax9, or 3dmax2008)
So you can download 3dmax as a trial, or you can also purchase the product at their main site and please no >> show your support, common. :wink:
*Download and Install until you read on to the next step

Orientation of 3Dmax
Now assuming you have 3dmax now installed on your computer. I will overview the UI (user interface) and how you will get around it.
I’ll show this through various screenshots, to show the break down of the areas i will be explaining :smiley:

A. - File Menu
this is real simple… you need only pay attention to your save as/save option here. this will save your progress so it is not lost forever! - save often.
merge may also become helpful to you, as you can, you guessed it! …combine 2 of your saved files into on, big file.
Import/Export are primarily used for trading models from other 3d programs, which comes in handy. it supports a large library of other formats :slight_smile: More commonly doa will comes as (*.3ds)

B. - MainToolBar

we have 5 tools, the ones i don’t know, i labeled with ?? these will not be covered.
Pointer - well it is like a normal pointer finger… it doesn’t do anything but look like a spearhead… haha you figure that one out.

List Manager - click this will open a new box, which will show you everything you have open in the scene. like the model you have in it, or a light you create, bones, what ever you make it will be listed here.

Mover - This will move your model, or other objects in the scene like cameras, lights, etc and reposition them based on X Y Z. you can see in this diagram how each of the veiwports control each of the XYZ’z
X - Left/Right
Y - Up/Down
Z - Back/Forth
Perspective is cool, it controls these all at once and shows the scene in full 3d!
And while we are on the topic of veiwports, i will show you this other diagram;
by right clicking on the upper left text in the corner of each wiewport, you will have options to change what view you want to have. incase you want to re arrange your setup or you can also toggle on and off wire or shade mode here

Rotator - Again this is simple, instead of moving side to side, up and down, this just rotates, turns whatever objects are in your scene to whatever angle you wish.

Resizer - This will make the things smaller or bigger, really comes in handy :slight_smile:

C. - Snap Tool

This invention really helps. say you have 2 boxes and you want to bud them right to each other. well this will snap them together, perfectly without a gap. i won’t be using this much at all in further tuts, but ever good app has snap, and here is this one.
also right clicking on the snap button will bring up the options for snap, which you can then toggle how snap will work, ok.

D. - Mirror Tool

yet again another tool i probably will not speak of again, but this tool will mirror your work and create a double. good for making models from scratch.

E. - Command Panel
THIS IS VERY IMPORTANT! this controls everything you want to do or create, everything is done from this side panel.
here we will really need to deal with these 2 Tabs in the panel

The pointer tab is the Creation tab, and the blue bridge is the Modifier tab
Here I’ll show a frame frame of each sub tab under the Create tab
I’ve also highlighted in purple what you would normally use under each subtab when creating that sort of thing.
Now the Modifier Tab this really can’t be explained until you have an object/model in you scene. but once you do you will have a drop down with many options.

F. - Navigation Controls
This is what you use to rotate the perspective viewerport around your model to get a better look at things. try it out
There are 3 ones you’ll primarily use. **Zoom, Pan **and Rotate
Alternatively these navi controls can be done with the mouse’s scroll button.
Scrolling = Zoom
Hold Scroll+Drag = Pan
hold both Ctrl key + Scroll Button = Rotate.

G. - World Space
It sounds cooler then it really is, this will just display the position in XYZ of an object or model you highlight. also Pressing F12 will bring up a floating window, of the world space display, encase you want to move it around…

H. - Property Menu
Oops forgot to label it in the initial UI diagram… ok heres another shot of it. you’ll get this when you right click on an object or model in any of the viewports.

useful are the hide/unhide commands, these can help you hide cameras or or other models that are cluttering up you scene. freeze also works simular but leaves a grey outline of the object frozen. Also pay attention to the convert to menu you may need this later on, ok.

-SECTION 2- [MODEL RIPPING] ======================================================
2a.) Launching DX RipperDX

Ok when you start it up, it’ll prompt you with a legal disclaimer, agree to continue or cancel to exit.

Now once started, dx shouldn’t require any configuration, except for the entry of your execute which you intend attempt to rip from. So click on the browse button and navigate and open our target “#.exe” then press ok. now dx should display a full path in the destination box; “:\”

Next press ok at the bottom right hand corner of DX to start your target program. In which DX will attempt to “Hook” the our program, and if it does, there will be yellow text at the top left hand corner of our target program screen:
* * * * * * * * * * * * * * * * * * * * * * * * * *
TroubleShoot: (read only if process did not hook)
If there is no yellow text, this mean DX did not hook onto the process and has shutdown, meaning no capture can be made. And there is really nothing that can be done to work around this. There are a few reasons why DX wouldn’t hook. Common are
-the target program isn’t running Directx, maybe it’s running OpenGL or a combination of OGL supporter drivers.
-Target program is not Directx9c compliant, meaning your game is another version of Directx, which dx does not support yet.
-target may be running a another unsupported shader, ex v4.0 pixel shaders
-target had a front program which caused DX to miss our target program. an example of this is STEAM or any other type of window that pops up that is not the “game” or not using any graphics.
-you msy not have the latest directx
-final, maybe system complications or possible safe guard placed on our target may have prevented a clean hook.
* * * * * * * * * * * * * * * * * * * * * * * * * *

Now that you successfully booted our target program and the yellow text indicator is in the top left hand corner, we can make our rip by pressing “F11” in which the program should freeze and afterwards say frames captures to C://…

Now for this example we want to capture a model for making a ragdoll, so go there here and get a capture of that guy.

Once done, exit our target program by pressing the ESC key, which should take you out of ""dd.

>>YAY if all went well, then you should have successfully made a model rip.

To see this we’re going to OPEN 3Dmax now, and locate the frames folder. to do this goto File>Import> and change the file type in the file browser to 3DR if not already. and open
the last file in the list which should be the capture we took of ""dd

Opon Importing the 3dr you’ll get an 3dr import option screen, which also shouldn’t need much attention, unless we are ripping from a PS2 game. But in this case we are not, so just press ok, without changing any options.

Hopefully your seeing something what I got -> a giant mass of wires (Our Model Rip!!)
Next we get pretty 3dmax intense as we need to fix our model. if you can see the rip is skewed, lop sided and out of portion. ...but hey we got the model
Now what you are going to do is use the 3 areas of 3dmax. the blah bla, the navi controls and the modifier panel.

-SECTION 2B- [ ALTERNATIVE MODEL RIPPING METHOD] ======================================================

OK! say that a particular model you wanted wasn’t accessable by 3dripperDX, either that it did not work, or say it was on the xbox360 or PS3…
We have to kind of go through the backdoor, and get the models directly from the game files!

This method is known as reverse engineering, and its not as hard as some may think. Below is a intro guide on using max, to invade “ANY” binary file

Use MaxScript to Import Models [Video Guide]

the PMD samples I got from the MikUMikuDance, some PMD were packed with the program.

and here is the sample script I did in the video

f = fopen "E:\\Hacking Projects\\PMD\\MEIKO.pmd" "rb"

fn ReadFixedString bstream fixedLen =
    local str = ""
    for i = 1 to fixedLen do
        str0 = ReadByte bstream #unsigned
        if str0!=0xFD AND str0!=0xFC do str+= bit.intAsChar str0


fileName =ReadFixedString f 3
fileVersion=readfloat f
modelName=ReadFixedString f 20
comments=ReadFixedString f 256

count=readlong f #unsigned

for x = 1 to count do(

vx=readfloat f
vy=readfloat f
vz=readfloat f
p4=readfloat f
p5=readfloat f
p6=readfloat f
tu=readfloat f
tv=readfloat f
p9=readshort f
p10=readshort f
p11=readshort f
append Vert_array[vx,vz,vy]
append UV_array[tu,tv,0]

count=readlong f #unsigned

print count

for x = 1 to count/3 do(
fa=readshort f #unsigned+1
fb=readshort f #unsigned+1
fc=readshort f #unsigned+1
append Face_array[fc,fb,fa]

msh = mesh vertices:Vert_array faces:Face_array
msh.numTVerts = UV_array.count
buildTVFaces msh
-- convertTo msh PolyMeshObject
for j = 1 to UV_array.count do setTVert msh j UV_array[j]
for j = 1 to Face_array.count do setTVFace msh j Face_array[j]

Print ("Last Read @ 0x"+((bit.intAsHex(ftell f))as string))
fclose f


This only covers the “bare bones” basics of prop porting. Keep in mind you can animate props, give them special properties… but I don’t know how to do it. -sorry

I’m going to keep this short and sweet, since most of everything is exactly the same as doing a normal ragdoll.

Download this QC template, also included is Alyx model to help with size comparison;12667896;/fileinfo.html

1.) Open 3Dmax and Import your “Prop”
a) OPTIONAL: again you may wish to import the decompiled Alyx model. Use this as guideline of how big your prop should be, in proportion to humans in the game.
(for help on how to move, size and rotate; refer to section 2 of this guide, above )

2.) Once your happy with the size and rotation of your prop, try to move it to the center of the grid (make sure you already deleted alyx from the scene)
a) NOTE: you don’t need to attach the model into one. If you notice mine has two selection boxes indicating there are 2 separate objects in my scene. For props this doesn’t matter, only for ragdolls

3.) Export your model as SMD
In 3dmax -File > Export > SMD > save as “prop.smd” (in the export box check Reference)

a) NOTE: Always make sure when you export your model has UVs and Textures. If not, you will crash the compiler. To assign textures you can drag a image from a folder onto your model in 3dmax.

4 Export your model again as SMD, only as a skeleton
In 3dmax -File > Export > SMD > save as “ragdoll.smd” (in the export box check Skeleton)
a) NOTE: even though this isn’t a ragdoll, it is possible to animate your props, so a ragdoll skeleton file is still required for the compiler. But you don’t need to actually make any bones, so don’t worry.

5.) Open Notepad
In Windows –START > Accessories > Notepad

Now find the QC file I had you download before. Left-Click and drag that file into the empty notpad, and drop. You should see the following;

$cd "C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin"
$modelname "MyProp.mdl"
$model "studio" "prop.smd"
$cdmaterials "models\myprops\"

$hboxset "default"
$surfaceprop "metal"
$keyvalues  { prop_data { "base" "metal.Small"  } } 
$sequence idle "ragdoll.smd" fps 1.00
$collisionmodel "prop.smd" {
	$mass 0.2
	$inertia 1.00
	$damping 0.00
	$rotdamping 0.00

NOTE: your QC should be in the same directory as your exported Model that we saved as SMD. You should have “prop.qc”, “prop.smd”, and “ragdoll.smd” in your folder

6 There are a few things you need to change.
a) $cd “C:…” change that to the location of your SMDs (this is only important for the DOS compiler)
b) $modelname “MyProp.mdl” should be changed to another name, like “circularsaw.mdl”
c) $cdmaterials “models\myprops” should also be changes to like;
$cdmaterials “models\sawtextures”
d) $surfaceprop “metal” well for this purpose metal will do, sometimes I’ll use glass, wood, or plastic
e) $mass 0.2 usually no reason to increase the mass, unless your porting something that needs to drop fast, like the Moon from majora’s mask.

OK, SAVE. –File > Save (or, CTRL + S)

7 Open your compiler, and compile the prop.qc  DONE!
NOTE: if your new to having a compiler, I recommend using the GUIStudio compiler

it may ask you to configure some paths

Bare in mind the “studiomdl.exe” and “gameinfo.txt” are both located in your SDK folder
C:\Program Files\Valve\Steam\SteamApps<YOUR STEAM NAME>\sourcesdk\bin\ep1\bin\

After its configured you can compile a model, by going to –File > Load QC > Compile (the big button)

8.) Open your HLMV.exe (Half-Life Model Viewer)

9.) to set materials I use CannonFodder’s StudioCompiler GUI, but… after doing a recent STEAM update the compiler finally no longer works (Cannon’s was the best) …but will no longer run with the new SDK drivers 

So heres the alternative method that takes x10 times longer!! Yay

a) First prep your textures, make sure your textures are in the TGA image format. Photoshop, and paintshop pro handle a lot of formats. A common format is DDS, you may require a DDS plugin; get it from here

if your trial ran out for photoshop or paintshoppro, heres a Freeware program that supports DDS to TGA

obviously they all work the same.
-Open > *.DDS
-Save As > *.TGA

b) Also double check that your textures have compatible dimensions for HL2. these are normally powers of 2 for height and width. Example; 128x128pixels, 512x512pixels… or even 8x4096. make sure the dimensions are of one of the following, otherwise resize the texture/image. Keep inmind resizing the texture will not effect how the texture is shown on the model. 8,16,32,64,128,256,512,1024,2048,4096

c) Now before you compile your TGAs into VMT/VTF you need to create the actual folder (>.<) yeah this is annoying… you have to actually create the folders manually. Geez!

Recall that in our QC, the line;

$cdmaterials “models\sawtextures”

So we need to go into our Halflife2 materials/models/ …folder and create sawtextures

You should now have the following path (of course your could be different)
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\half-life 2\hl2\materials\models\sawtexture\

d) Now Open VTFEdit
NOTE: If you don’t have this tool, get the installer here.

In VTFEdit goto;
Tools > Convert Folder

A “Batch Convert” box will appear, just double check and click on options button in the bottom left. Make sure Alpha Format is set to DXT5, then press OK to back to the Batch Convert Box

Just set the Input and Output folder.
Input: the folder with your TGA textures
Output: the folder you created in materials/models/ (mine was /sawtextures/)
NOTE: yeah I’m aware this takes forever to set the paths, I had to expand 20 folders to get to the right one. 

C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\half-life 2\hl2\materials\models\sawtexture\

Once there set press the big CONVERT button. And your DONE!

e) go back to the HLMV and press the F5 key to refresh the model. You should now have textures like below… if not then haha you’ve screwed up your paths. You’ll have to just repeat all the steps. Likely your QC material path does not match your actual folder path

8.) Moving your prop into Gmod10 is pretty easy. Just move the files from the HL2 directory to the Gmod directory.

There are 2 paths we need to copy files from.
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\half-life 2\hl2\models
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\half-life 2\hl2\materials\models

First copy

  • circularsaw.phy
  • circularsaw.dx80.vtx
  • circularsaw.dx90.vtx
  • circularsaw.mdl
  • circularsaw.sw.vtx
  • circularsaw.vvd
  • (some may not have this file)

and place them in…;
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\garrysmod\garrysmod\models

Next for the materials/models/
Copy this folder;

  • sawtextures

and place this in;
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\garrysmod\garrysmod\materials\models

9 Lastly you need to create a spawn menu, this is more or less optional since gmod10 lets you browse folders to open models. But still its easier and more professional to have a spawn menu :stuck_out_tongue:

a) goto;
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\garrysmod\garrysmod\settings\spawnlist

b) right click and create a New Text Document.txt rename it “MyProps.txt” and double click on it, (NotePad should open it)
c) Next just copy and paste this into it


	"name"			"My Props"

	"model"		"models/circularsaw.mdl"

d) Save and close, your DONE!
NOTE: change that line “models/circularsaw.mdl” to whatever you put in your qc.

10.) test in Gmod10, and give me feed back on the guides helpfulness. Thanks for reading


  • Open your model in 3dmax, as you can see I am using a model that’s not in a tpose. you’ll encounter this often if you use 3dripperdx to gather your own models.

NOTE: *there are 2 critical things you have to check before you continue. that is
*How many polygons the model is, and
*How many textures the model uses.
*No more then 32 textures,
Not more then 20 000 polygons Models

To check for How many textures your model uses, first save your scene.
File>Save then goto File>OpenRecent>and reopen your file you’ve just saved.

this will reload the scene but also now create a list of textures. to check this list goto File>Asset Tracking. other wise the quick key is “Shift+T”. aha, and we’re ok, its only using like 6 textures.

Next we need to check the polygon count
to do this Click on the Tab that looks like a

hammer(Utilities) then click on the “Buttons Sets” button

. A new box will appear, scroll down and find polygon counter. LeftClick and drag over to a slot and it’ll replace another item.

Now click ok, and you’ll notice Polygon Counter now has an icon under your tab. Click on it to bring up a the polygon counter box. As you can see we’re well under the 20 000 polygon limit, so this means we are all set to continue.
NOTE: (encase your model does have more textures or polygons then limits I mentioned, it is still portable. but I usually throw my hands down to these, because reducing polygons and baking textures is time consuming)

  • Another very important thing is to have your model as a single mesh/model. If you click on the Selection List

(quickkey: “H”) you’ll notice our model is broken into several pieces… :frowning: not good, we want to combine these parts and weld and holes, so that when the arms move, they don’t break apart.

So what you are going to do is exit the Selection List, and highlight one of those model parts, by left clicking on one. Then right-click to bring up the quad menu. now near the bottom you’ll see “Convert To” hover your cursor above that and it’ll expand. then click on Editable Poly. in editable poly mode we get more tools then in editable mesh, but just remember to convert it back to editable mesh. before you export for compiling.
NOTE: *I’ve never had problem with it but I’m been told it can cause problems. Since editable poly allows for polygons with more then 3 edges or sides, and the compiler may not support that
*Editable Mesh = Triangles (always use for games)
Editable Poly = Quads (great for 3dmax) (bad for games)

Now right-click again on your model and you’ll notice that you have different options. or if your model was already editable poly, to start with when i said convert it to editable poly, then no there won’t be any changes. But you’ll notice there is a feature called “Attach” and to the left of that there is a little icon. click on it. (not the text the image icon)

you’ll now have a selection list of all the model pieces you’d like to attach. Click on “Select All”, then click “Attach” you’ll get prompted about merging materials, just press OK.

Now before you forget, convert your model make to editable mesh, you’ll lose all your cool options, but we’re done with them.

Go into the modifier stack to expand Editable Mesh, and left click Vertex to Enter Vertex Mode. also select all the vertices so they turn from blue to red. easiest way to to press “CTRL+A” otherwise go to “EDIT> Select All” at the top of your 3dmax.
Now under the Modifier Stack are the VertexMode “Rollouts” scroll down till you find “Weld” and type in 0.001 then click on the button “Selected” to weld. after leftclick on Vertex again to exit Vertex mode.

  • I’d also like to address another common problem people keep having trouble with. and that is if your model has holes. I’ll just simulate with my model what a person would see.

or if you haven’t enabled Active Maps I also see this from people

This is super easy to fix in most cases, first enter polygon mode by highlighting your model, expanding editable mesh and leftclicking on Polygon. you are going to Select All (CTRL+A) and under the Surface Properties Rollout, click on “Unify”

As you can see this was not an end all solution we still have some flipped polygons on her hip. So make sure your on your selector tool, and left click and drag across on the area

NOTE: Encase this didn’t work for you, this likely means that your model has what is called “Double Faced Polygons.” Since this is unusual and rare, I’m going to spare the rest you the time of me explaining it. but if unify is not working, you have to remove any double sided polygons before it’ll work. for more information on how to do this refer here for a tutorial

Also encase you didn’t know how to enable textures in the viewer ports goto Views>Activate All Maps

  • Now next thing we need to do is size this model to the HL2 world. This is easily done by importing a model from HL2 (like alyx) and use her as a reference to size the height or your model.
    To save you the trouble, here is alyx’s collision model,
    -link removed-

Import this into your 3dmax scene. remember that you only want to import triangles for this, because we won’t be using alyx’s skeleton.

WOW, looks like our character is way too small. so use the scale tool

to make her the same height, also use the move tool

so that she is standing in the same position as alyx. then use the rotate tool

so that she faces the same direction. then delete the alyx model, as we’re done with it.

  • We’re going to start creating the bones for our model,
    Note: you should not create bones in the perspective viewer port. use the front or left viewer port

So we’ll start from the lower left window (Left View) and create the spines including the head. You’ll notice I made three bones, starting from her butt, to the stomach, then right to the head.
To create a bone goto your “Create Tab” then the “Systems” Icon, and you should get a bunch of options. Click on Bones when your ready to start making the bones. it works much like paintshops pen tool, leftclick once to start, then move the mouse to where you want the next bone and left-click again to start another chain. Once you want to stop, press “ESC” or right-click.

NOTE: *stay simple for now because this will make weighting the model easier for you. if you make 6 spines of course you are going to have one hell of a time making it work. *

Before we do the arms I just want to check that the spine is in the center of the model. switch back perspective mode. and right-click the mode. From there pick properties, to bring up the object properties menu. then tick on See-Through, and press OK to close the menu.

As you can see we can now see through the model, and see where the bone is in relation to the inside of the model. but from what I can see it’s pretty darn close, so we’ll leave it at that.

Now doing the arms should be pretty easy depending how your model rip is. if the rip you took is badly deformed in some funky looking pose… then you’d either try to get a better rip or try your best placing and moving the bones. and remember its very important to keep your bones center! and that were the 2 bones meet is called a pivot. this pivot must be at the place you want the model to bend

And do the same for the other side

and then the same for the legs…

Now, switch to perspective view, and move the bone into place, as you can see the bones don’t fit inside the arm quite, nor do the legs.

Not much more then 15min work, and the bones look perfectly placed inside the model :stuck_out_tongue: really it is not hard if you can get use to navigating in perspective mode. remember to rotate around in the perspective view hold ALT+the scroll button. hopefully you have a scroll button O.O

Bones are VERY critical, they effect how the model will move. so make sure your happy with how the bones are before you carry on. also make sure any extra uneeded bones are deleted. for instance everytime you exit from creating a bone chain, alittle stub is created. these arn’t needed, so delete these.

just one more thing to do with the bones before we start to rig the model and that’s to attach the arms to the spine we created. if we don’t do this the arms and legs will fall off when you spawn the model. its funny as hell, but undesired…

So right click the model and click on hide selection. the model will disappear you’ll have clear sight of all the bones.

Just pick the Link tool, leftclick and hold on a bone, and drag it to a spine then release. this will now attach the arm bones to the spine, and repeat for the legs.

and to test that everything is attached to something, just rotate the first spine you created otherwise known as the Pelvis bone. Seeing that everything moves together, we’re ok :wink: if not click on the undo button and attach the unlinked bone to another bone. very simple.

Right-Click anywhere in the viewer and click on Unhide all.

We’re now going to start to rig the character. I’m also going to refer you to magnets tutorials for this, since it offers more visual guidance.

Start by adding your skin modifer from the Modifer List, and adding all the bones to the skin list.

Now left-click on your model and rightclick. and freeze the model, now the model will fade disallowing us for selecting it.

Now I’d like you to use the rotate tool to move the bones into a Tpose. meaning arms out, and the body and leg bones being straight up and down as possible.

Looks awesome, except for the arms :wink: but essentially that’s it. You’ve successfully Rigged a model :slight_smile: the question now is, can you weight the model? this just means can you fix all the rigging errors, like how here arms are stretched to her hip

Now rightclick and unfreeze the model, highlight the model once again and enter Skin Mode. you’ll notice once you do that the model will turn red. red just means stiffness, orange is flexible and blue is very lose. If you watched Magnets Video tutorial you’d have a better understanding of this.

Gonna Move onto fixing the arm, but before we do that it’ll be a good idea to turn on wireframe mode, it’ll be easier to see where our weights are. Do this by right clicking on the text in the viewer that says Perspective, and pick “Edges Face”

now that we can see the vertices, we’re going to have to turn on vertex selection this by ticking on vertices under the Skin>Perimeters rollout.

then should might aswell also open up the weight tool. just scroll down a bit and its the Icon that looks like a wrench.

now select the spine in the chest by left clicking till you see the red gizmo highlight.

now select the stray vertices that have been pulled towards the arm. and with the help of the grow tool you can expand the selected vertices, without having to pick them one by one. remember hold CTRL to select more vertices, or ALT to deselect vertices.

once you’ve selected the messd up parts, click on the BIG “1” to weight the vertices back to the chest, like so.

I’m not going to go step by step screen shooting every bone I fix, so try your best to fix all the weight errors. there is only one last tip on this I can give you, and that is to use the blend button when in doubt! if your confused as shit, select an area of vertices and 3dmax will average the weights between the bones. and most of the time will make weighting a breeze. also I use this on all my blends so there is nothing stiff, it is all averaged out, blended or smoother when the arm or legs bend.

INTERMISSIONS, if you finally done that, save have a nap -sleep or eat something

OK time warp!, 9hours later.
here’s my outcome, the orange areas are from me selecting vertices of an area and using the blend button. only use this on bends or where to bones meet.

Right so you weighted the model, or you still have no clue and your model is terribly weighted. but! you did rig it! and so its time to prepare this model to be compiled :slight_smile:
so lets just put everything back, right-click on the viewer text that says Perspective, and turn off Edge Faces, then highlight your model, right click, goto properties. then turn off see through, we’re now done with this.
Also encase you didn’t already figure it out here are the QuickKeys to toggle see-through, and EdgeFaces Modes
Edge Faces: F3
See-Through: ALT+X

NOTE: …for more information on quickkeys, otherwise known as hotkeys, here is a very good guide of all 3dmax’s quickkeys

It’ll come in handy if you accidentally hit a key on the keyboard and can’t figure out how to disable it. :wink: happens to everyone.

Now before we can prepare this to be compiled, it be wise to rename the bones. by default 3dmax will name them Bone01, Bone02, Bone03, etc… but when you setup a QC to compile the model, it’s gonna be confusing having Bone01, and Bone02, ?what was Bone02??? >.<

So highlight the model and select Hide, so all that is visible are the bones. then select the modify tab, and above the modifier box is an empty box. now use your pointer and select a bone. notice the name of the bone is now displayed in that white box. easy enough rename it, and select a new bone. rename all the bones till everything has been renamed.

it doesn’t matter what you name yours, you could leave it bone01 etc and it will still compile. this was just more personal preference, but I encourage the practice.

alright rightclick in the viewer and unhide all, so that your model is showing again. if you are happy about how she is posed, and the name of her bones. then save!!!, save the scene because we are now going to create a collision model

This is VERY IMPORTANT, don’t screw it up! Now goto File>“Save as” and save the file as another name “phymodel.max”

NOTE: just so were straight you should have saved the max file you were just working on. lets say you called it girl.max But now you should have saved all your changes to girl.max, then you should have created a copy of girl.max called phymodel.max

that was important because we are going to dice our model in order to create the collision model for the ragdoll.
so lets begin, start by collapsing the stack modifier

TIP:* I like to convert Editable Poly when doing model editing such as deleting edges, also it would be best to switch to your “Front” view when doing this.*

Now enter Edge Mode. you are going to hold “Shift” and with the pointer tool select and areas where 2 bones meet. we refer to this as a joint

I’ve basically highlighted the neck, torso, thighs, knees, ankles, wrists etc…

once you do that, just release the shift key, and press the “Delete” key :slight_smile: and you’ll now have gaps in the model. you want large gaps, but not too large of gaps.

TIP: just a heads up, i’ve screwed up and forgotten to delete edges for the shoulders and upper body. I’ll explain a few lines how to fix this

Now exit edge mode, and convert your model from Editable Poly, back to Editable Mesh if not already

then highlight your model, and add a SKIN modifier from the modifier list. Add all your bones to the SKIN list open the weight tool. also turn on vertices, and Select Element. *that is important

Now I’ve selected all, and weighted everything 1 one bone! *again this follows along with magnets teachings in his ragdoll video. Any how it is important that the model is rigid, meaning you can’t use blend, we want Red only or clear only.

Now start rigging your model parts to each relating bone.

*Oops I forgot a few bones, not a problem. under skin go into editable mesh, again in edge mode, select the areas, and delete. then return to skin mode

now continue to weighting each model piece for every bone…

to illustrate what you want, and don’t want to do…

This is BAD! you don’t want this

This is good, all your bones should be like this

Do this till again your entire model is weighted to your bones. >>again I’ll time warp 10mins later…
Now to check you didn’t miss anything, click on the bone that we first weighted everything to(refered to as the parent bone). in my case it was the bone called “spine” So i left-clicked on it and it highlighted all the vertices used by that bone. this trick will reveal any stray vertices. which I do have, so I’ll have to reweight the leg there

NOTE: not done yet, we still have to export and compile, set the materials, adjust the movement of the ragdoll, create a spawnlist, then we can test our rig in gmod

Right so lets export this thing! save your work, then goto File>Export>SMD then save the smd in your SDK folder. call it "phymodel.smd"
NOTE: where you save the file doesn’t matter. but I usually place them in my bin folder or in another subfolder if I have alot of files. just remember you have to also copy the file path of where you save your SMD, in your QC.

here’s where your SDK folder is by the way (again you don’t need to save here, but my QC has this path in it)

C:\Program Files\Valve\Steam\SteamApps\********\sourcesdk\bin\ep1\bin

You’ll also get a prompt, asking two things. Export as Skeleton Model, or Reference Model. Pick Reference Model then press ok. (Picture above)

Okay, close that and open up your original max file, which I last referenced as “girl.max” then goto File>Export>SMD then save as “reference.smd” and again save as reference model.

Then with the same MAX file up Export a SMD again, only call it “ragdoll.smd” and save it as a Skeletal Animation this time.

That’s it!, we’re done with 3dmax work, finally! you can close it down and give yourself a huge pat on the back. you’ve just accomplished what took me 3 years to get to, in about probably a day or 2.

We to now make an instruction file to tell the compiler what to do with the three SMD files.
this is the QC you will be using, you can download the file directly here;

NOTE: make a notepad txt document and paste the following code into it. then save it as “myragdoll.qc” or you may also download the QC file here:

$cd "C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin\Basic_Ragdoll_Template"
$surfaceprop "flesh"
$modelname "myragdoll.mdl"
$cdmaterials "models	extures\"

$model studio "reference.smd"
$sequence ragdoll 	"ragdoll.smd" FPS 30 		activity ACT_DIERAGDOLL 1
$collisionjoints "phymodel.smd" {
	$mass 60.0
	$inertia 10.00
	$damping 0.01
	$rotdamping 1.50
	$rootbone "Bone01"

NOTE: Note open a QC easily in notepad; double click on the file; you should get a “Windows Could Not Open” prompt. pick choose from list and press OK

then a list of programs will appear, pick notpad from the list and press OK. from now on, all you have to do is double click and notpad will handle the QC files. you can now easily Edit the QC files. :slight_smile:

Now the QC can be saved anywhere, as long as you place edit the path of your SMDs in the QC when we configure it. Though in my case, I’m going to save it in my SDK folder, so I don’t go losing it.
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin\BasicRagdollQC.qc

Configuring The QC
You need to make some changes with the QC, so open it up with notepad
Note: if you haven’t already assigned QC to notepad, just right click the file and click on “Open With…” and find the notepad).

Now once you have the QC open in notepad, you’ll see exactly what I quote above.

First line you need to edit, is the path to your SDK folder. if you have HL2ep1, (everyone should) then your path will be the same as mine, except yours won’t be in a folder called mariokart64n. so adjust your path accordingly, by replacing mariokart64n with your STEAM account name.

Second we have it set for “flesh” if you want to make your ragdoll make a different noise when you shoot it. use can “metal” or “glass” instead of “flesh”. there’s a whole list on the HL2 Wiki:

Third I’ve named the mdl myragdoll.mdl you may wish to change this to something else, like girl.mdl…

Fourth the model will ALWAYS store all its textures and materials in this folder
C:\Program Files\Valve\Steam\SteamApps*your steam name*\half-life 2\hl2\materials

our QC says “models exture” which translates to;
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\garrysmod\garrysmod\materials\models extures

to keep organized stay in the model folder, but change the subfolder “textures” to something else. like "$cdmaterials “models\ragdollgirl”

the last part we need to use HLMV.exe to paste in, which can only be done after the smd’s are compiled.

After you’ve made the apporiacte edits to your QC, save the QC, and for now open Wunderboy’s GUIStudioMDL.exe (Don’t Close your QC yet)

Note: if your trying to use CannonFodder’s Studio Compiler, it doesn’t work with the lastest HL@ updates anymore. don’t use it

IMPORTANT: there is a bug with HL2 EP1, you must have HLMV open, in order for it to work. So open HLMV prior to compiling.

you can open HLMV one of two ways;

  1. Open STEAM, then Tools. double Click on Source SDK. then double click HLMV from the list
  2. you can also open the file directly:
    C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin\hlmv.exe

Alright once you have HLVM, let hop back over to Wunderboy’s GUIStudioMDL.exe.

It may prompt you about configuring the program when you first start it.
basically just goto “Configure” at the top of the program and set the two paths
the path of these two items are here, and here
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin\studiomdl.exe
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin\GameConfig.txt

Also make sure your target is set to “Half-Life2”,
Then goto the Top: FILE > Load QC File… and find the QC you edited and saved as “BasicRagdollQC.qc”

Now to the left of the program under actions click "COMPILE"

should spit some info out and end with “Completed” :slight_smile:

…if you get and error It’ll indicate the line in the QC it chocked on. if you can’t figure the error ok, post the error from the compiler output, and I’ll have a look.

OK, if things went good, you should now be able to open the model in HLMV (File > Load Model)

:open_mouth: holly shit man, she’s checkered!!
until we set the materials, she’ll remain purple and blacked checkered. I covered this in the other guide on making static props. but I’ll recap it.

before that, we want to check the phymodel real quick (do that by checking on Physics Model)

the physics model is shown in wireframe mode, and that’s about what you want to see. if see the the parts of the collision model touching another piece, you should go back and edit your phymodel.max and reexport. compile again till your phymodel is a bit more free. you see this model is used to calculate physics and collision. and even it’s collision to itself. meaning if the parts touch your ragdoll will be stiff or won’t flex properly. also if you have one huge ball as your collsion model, you totally screwed up the entire phymodel step.

here’s an example of EPIC fail. you DO NOT WANT YOURS LOOKING LIKE THIS!

OK. now I’m just going to recap getting your materials to work, encase you skipped reading my Prop guide.

Setting Materials
in HalfLife2 Textures are converted to VTF, and a material file is created VMT. the VMTjust instructs the game how to shade the texture on your model. like reflection, or to be transparant, to glow… etc.

Source SDK comes with a tool to convert your textures to VTF, but it requires your textures to be in TGA first.

Luckily we have this handy tool called VTFEdit, which now allows us to convert from DDS straight to VTF. which is good since 3DripperDX saves textures in DDS

NOTE: HalfLife2 can only use textures having dimensions of the following;
if your textures came from 3DRipperDX, your fine. but in the rare case you’ve downloaded a fanmade model you may have uncompatible textures. if that’s true you will have to get photoshop or paintshoppro in order to rescale your images.

Now time to convert your texture. If you don’t already have VTFEdit, get the installer here.*

one thing VTFEdit doesn’t so is create the folder we need. so first we must create the actual folder that our VTF/VMTs will go (>.<) yeah this is annoying… you have to actually create the folders manually. Geez!

Recall that in our QC, the line;

$cdmaterials “models extures”

We need to go into our Halflife2 materials/models/ …folder and create that folder.
In my case I have this in my QC $cdmaterials “models\ragdollguide”
So I have created the following folder.
(of course your could be different) just make sure the path matches what you wrote in the QC
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\half-life 2\hl2\materials\models\ragdollguide

Now Open VTFEdit and goto;
Tools > Convert Folder

A “Batch Convert” box will appear, just double check and click on options button in the bottom left. Make sure Alpha Format is set to DXT5, then press OK to back to the Batch Convert Box

also since we are dealing with DDS, not TGA. type this into the filter type box “*.dds” no quotes
then set the Input and Output folder.
Input: the folder with your DDS textures
Output: the folder you created in materials/models/ (mine was /ragdollguide/)
NOTE: yeah I’m aware this takes forever to set the paths, I had to expand 20 folders to get to the right one. (~_~) *if anyone knows of a better faster way, or tool. please let me know

C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\half-life 2\hl2\materials\models\ragdollguide\

Once there set press the big CONVERT button. And your DONE!

e) go back to the HLMV and press the F5 key to refresh the model. You should now have textures like below… if not then haha you’ve screwed up your paths. You’ll have to just repeat all the steps. Likely your QC material path does not match your actual folder path

…hrm. that’s not quite right is it. let’s inspect the VMT file.

yeah that’s not right. the converter gave the translusant command to all our textures, which we don’t want.

	"$baseTexture" "models/ragdollguide/207b4870"
	"$translucent" 1

your going to have to open all the VMT files in your folder and replace the translucent string with halflambert… (don’t forget to press CTRL + Save or goto File Save, to save changes)

	"$baseTexture" "models/ragdollguide/207b4870"
	"$halflambert" 1

do that to all the VMT’s then press F5 again in HLMV

…Alot better, except if you realized you just disabled all transparency on your model. I did this on purpose, HL2 actually has difficulties displaying transparency properly. as you say she went bald for a while.

NOTE: I’ll Cover setting up Proper transparency in the Section discussing Advanced VMT Materials

Iif you what to see a quick example of what I mean. I will place the translusant command back

.actually not so bad on this model. but the areas I circled in red show that the layers get confused. you have the eyelashes rendering in front of the hair, and the ponytail also in front. on more complex model this becomes more devastating.

ok wait I’ll now enable 2bit transparency on the hair, which HL2 supports very well. maybe you’ll see the difference in layering

	"$baseTexture" "models/ragdollguide/207b4a90"
	"$halflambert" 1
	"$alphatest" 1
	"$nocull" 1

you’ll notice the layers are now correct, but we loose the blending, since we’re using 2bit, over 4bit(16colours) big difference eh. anyway use translusant(4bit) or alphatest(2bit) until i cover advance VMTs and how to hide this problem.

Setting Bone Constraints
This is the LAST part to compiling your ragdoll :slight_smile:

Hop back to HLMV with your model open. and toggle to the Physic’s Tab
here you’ll be able to set the complete motion of each bone or body part of your ragdoll.
haha, yes you have to give rules to every bone in your model!

Tick on Highlight and toggle the drop down to various bones used by your ragdoll.
In the screenshot above you can see I’ve selected L_UpperArm which shows sliders and XYZ. I can also set the Mass, for the entire ragdoll. 60 is standard.

Now for every bone, your going to go to X and set the Min and the Max, which also means the Forward and backward motion of the bone rotation. once you set a value to the Min and Max Slider, use the Test Slider to test the motion of that bone on the chosen Axis. In my example above you can see I’ve set the Min for 41, and used the test slider. I can see 41 degree’s isn’t quite enough for her arm to reach down to her side. so I’m going to increase it till her arm can touch her thigh

you should repeat this until all your bones are done, and yes I do this same process for every ragdoll I make. it takes about a good 15minutes

OK great once your finished, Click the “Generate QC” Button (this copies the bone data to your clipboard)

Now hop back to your QC file for your ragdoll, open it and look for this line. highlight the following text, right click and paste.

and that should paste all the bone data in your QC. except it has pasted some duplicated data we need to delete before using the QC to compile again.

$cd "C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\sourcesdk\bin\ep1\bin\Basic_Ragdoll_Template"
$surfaceprop "flesh"
$modelname "basicgirl.mdl"
$cdmaterials "models\ragdollguide\"

$model studio "reference.smd"
$sequence ragdoll 	"ragdoll.smd" FPS 30 		activity ACT_DIERAGDOLL 1
$collisionjoints "phymodel.smd" {
$collisionjoints ragdoll {

	$mass 60.0
	$inertia 10.00
	$damping 0.01
	$rotdamping 1.50
	$rootbone "bone01"

	$jointconstrain "spine" x limit 0.00 0.00 0.00
	$jointconstrain "spine" y limit 0.00 0.00 0.00
	$jointconstrain "spine" z limit 0.00 0.00 0.00

BlAH BLAH BLAH BlAH BLAH (removed to save on quoted space)

	$jointconstrain "l_foot" x limit 0.00 0.00 0.00
	$jointconstrain "l_foot" y limit 0.00 0.00 0.00
	$jointconstrain "l_foot" z limit 0.00 0.00 0.00
$sequence ragdoll 		"ragdoll_pose" 		FPS 30 		activity ACT_DIERAGDOLL 1

Remove the line before the Mass Command
“$collisionjoints ragdoll {”

then at the very bottom remove the line under the bracket
“$sequence ragdoll “ragdoll_pose” FPS 30 activity ACT_DIERAGDOLL 1”

…that’s it. save the changes to the QC and compile!!

Creating Gmod9 / Gmod10 Spawnlist’s

A Spawn List is a file that instructs gmod on where to find the models, so that they can be spawned or created in the game. Unfortunately I suck at scripting, so once again I have a template for you.

Both Gmod9 and Gmod10 use SpawnLists, unfortunately they store them is different places, and the script format is different between them.

So Lets Cover Gmod9, first got the following directory and Create a notepad by right clicking and going to New > NotePad. Name this notepad whatever you want, obviously not conflicting with any other lists you already have.
C:\Program Files\Valve\Steam\SteamApps\SourceMods\gmod9\settings\menu_props

open that text file, and paste the following into it.

//   = prop
// # = ragdoll
// : = car
// ! = effect
// ' = sprite
// ~/@ = label
// = = run console command

 	"~SubTitle"		""
        "#ModelName"		"models/FileName.mdl"

I labbled the areas within the quotes, there pretty much self explanatory.
Title, is what you spawn list will show up as when you press Q and toggle your gmod9 stuff.
Subtitle… same thing.
Model Name, is a little tricky. I’ve added the switches above. placing a #before the name, will enable you to spawn a ragdoll. and removing the # character, leaving no switches “modelname” means prop. um the rest of the switches I never had the chance to use yet.
FileName, you have to be clear on the name and full path of your model. if it’s wrong your model won’t spawn in gmod9. just have a look in your QC to get the absolute path.

$modelname "basicgirl.mdl"

For Example, this is the only line you need to look at. by default the compiler always compiles to the model folder. so anything you make will naturally be written as /model/blehbleh.mdl. unless in your QC you’ve compiled as $modelname “mario/basicgirl.mdl” then my spawn list would be;

    "#Basic Girl"		"models/mario/basicgirl.mdl"

well that’s pretty simple, save the changes to the the doc, and test out your spawn list’s. let me know if there’s any trouble.

Next making a a spawnlist for Gmod10, this seems a whole lot complicated, since I don’t understand half of the values and brackets it uses. <_< really that’s way too many.

again create a notepad, but only in this directory. yours will be under your steam account name.

once again copy and paste this into your blank notepad and save changes.
C:\Program Files\Valve\Steam\SteamApps\mario_kart64n\garrysmod\garrysmod\settings\spawnlist


	"name"			"Title"

	"model"		"models/FileName.mdl"


From what I can figure out, you only need to change the 2 things.
Title - Name Shown when pressing Q and toggling your ragdolls.
FileName - the full path and name of your MDL

theres obviously alot of other stuff to change, but ??I have no clue. hehe

OK YOUR DONE, go try all this shit out. that’s all there is to it. A - Z man!
I’ll start with more advanced stuff where you’ll do more QC scripting, more HLMV configuring and generally more 3dMAX. but that’s for other crap.

ok good night (X_X) this whole tut took way longer then I expected to write

-SECTION 5D- [Basic Ragdoll]

awesome tutorial, but where is tutorial 7?

Awesome, can’t wait to see it completed. (Because I can see Basic Ragdoll doesn’t have all the images yet)

Looks very nice, helped explain some things I wasn’t sure about.

-SECTION 6- [Ragdoll with Eyeposing]

Really nice, well done.

How about making it a PDF?

This looks like it’s going to be a very comprehensive tutorial.

This should help many people pick up on the trade. Some of the steps are rather unnecessary and passable, but those shortcuts come with experience.

For those just learning, this is great.

Keep up the good work, and welcome back!

-SECTION 7- [Ragdoll with Flexes]

The new 3dmax does NOT support VTA exportation. VTA is the native flex format use in the HL2 Engine. In the future there maybe a plugin for 3dmax2008, 9, and 2009. but at current there is NONE!

Only 3DMAX 6,7,8 work, and since 3Dmax 8 is the only version that has the latest tools to even rig models. …if you DO NOT OWN 3dmax8. this Section is completely useless to you!

Here’s the 3dmax8 VTA Export Plugin:

Flexes as you know control facial movement, and even in some ragdolls even finger posing. using flexes for finger posing was an old trick people would use, when they weren’t able to move the bones. unlike gmod10 today, we have control over the bones in the hand, and can move the fingers is all sorta of weird positions.

but even still using flexes for the fingers is just effective, since usually all your character would have to do, is hold a gun. though I will cover adding the bones for having the gmod10 type finger posing.

Adding Face Expressions
First off, a flex, are also known as a morph target, it’s like a frame in an animation. which would take your model from one shape to another without the need of a bone.

So lets start with a friendly example, giving our model a smile :slight_smile:

First backups again are important. so I’m going to make a copy of my rigged model and call is morphs.
Secondly, the way morphing works in 3dmax you have to make make a copy of your model, modify it, then reinject it back. because this process can get messy by copy / pasting models around in 3dmax. it’s good to have a backup.

right, so before I begin, I’ve opened up the scene, right-clicked and went to unhide all.
then I select and highlight everything in the scene by pressing (CTRL+A).
Next by holding SHIFT and draging the model across, it creates a ""Copy or as 3dmax calls it, a “Clone”. release your left click for the Clone propmt to appear, make sure you pick “COPY” not instance or reference.
Also I’m going to name the clone smile for organization reasons obviously. not that it’s important to the process. but… do it anyway

you of course can rename anything in your scene later by highlighting the object then once under the Modify Tab, you may rename the object here;

Ok, so now that I have a copy called “Smile” I’m going to select it, and goto the modify tab. I have 2 things in the stack, skin and editable mesh. I know want to add a 3rd modifier to the stack, called edit mesh, which is in the modifier drop down list

I’m going to Expand Edit Mesh, and click on Vetex, to enter Vertex Edit Mode. From there I’m going to go directly below to the Edit Mesh Rollouts and find “Soft Selection” Expand that rollout and turn on “Use Soft Selection”.
Now that that is ON, select or highlight one vertex on the face. at first everything will likely be orange. the rainbow colours represent the amount of pull that one vertex will have over the entire model. Red maens more pull, i think blue is less. anyway toggle the falloff in the Soft Selection Rollut, till you have a smaller pull zone on the face.

Now it’s just a matter of trial and error and moving points around to form the expressions for your model. Soft Select also has two more options, Pinch and Bubble. these also come in hand sometimes, especially for doing a simple smile. So I’ve selected a vertex on both sides of the models mouth. more so away from the corners of the mouth. and played a bit with the values. I do that by selecting what I want to move, then toggling the three options, I look at the colours of the pull, then pull the verts up, so see the effect. if the effect was crap, I just press UNDO (CTRL+Z)

anyway here I’ve gotten a good pull using a bubble value of -0.7
I just move the verts up, and it looks good. :slight_smile:

but now what if you wanted the mouth to open?
well depending on the complexity of your model, you can just manually select the upper or lower lip, and just move it up or down.

otherwise you will have to goback to your main model and actually add a bone for the mouth. then weight the mouth. you’ll then be able to move the mouth like it had a jaw, up or down. the thing about this way, is if your not good at skin weighting… well your no better off than if you just attempt to move polyon by polygon.

And just so you don’t feel intimidated, I’m going to show you how to closed the eyes, the same using the same way I did the mouth. Only I’m going to use polygon mode over Vertex mode.
once again I select the main model, and craete another clone. I add another Edit Mesh Modifier and enter now Polygon Mode

but before I can tackle the eyelids, you’ll notice my models has polygons in front, for hair. I’m simply going to highlight them, and under the Edit Mesh Selection rollout, I can press hide.

now I have a better view, and since my Soft Selection is pretty much already calibrated, I just select the top of the eye lid and drag down. done

once you practice, and learn patience… well you’ll get better results.

anyway unhide from the Selection Rollout, and that’s done. Now time to add these back to your main model.

so return back to the main model, highlight it and add a Mopher Modifier tothe stack from the Modifier List. then scroll down to the Morpher Rollouts. you’ll notice a bunch of empty slots, whigh you can right click on, and pick one option. “Pick From Scene” click that, then simply left-click on any of the models we modified.

once their all imported to your Morpher, you can delete the other model, they are actually apart of your main model now, I can even toggle them at will; check it

the sliders go from 0 - 100, and even can go to 200 or -200 if you wanted. 0 being off, 100 being on.

anyway that’s all there is to it, I would do the exact same thing for the fingers as well. but it’s easier to make a fist, rather then moving each finger. that’s why I will also explaining finger with bones, alter one. since its best if you wish to have full usage of the models digits

before we export, select Morpher modifier from your stack, and make sure everything is turned off. meaning all the morph slots are at 0%

next drag the animation slider at the bottom of 3dmax to 10/100 and press the “AutoKey” button.

now we can begin to export each of our Morphs, which I’ll also be referencing now as flexes in the QC.

So Slide Smile to 100%, everything else should be at 0% and goto File > Export > VTA
save it as smile.vta.

repeat for the rest, except remember to turn off smile. only one slider should be at 100%, rest should be 0%

I’m 15, but don’t tell no-one. :ssh:


Also, did you mean % not &? :eng101:

-SECTION 8- [Advanced VMT Materials]

Just thought I’d supply this.

Link to 3dsmax 8 installer
this is just the installer that came from the autodesk site before they released 3ds9, I had a copy and I uploaded it. no warez here


Delete the asterisk in the link.
I don’t know if the censor is still there.

Excellent thread mariokart.