the usual ragdoll help(please read)

so i need help with everything on making a ragdoll after making it in blender and rigging it(like with smd export making it able for source qc text and finally can be spawned in gmod) yes i tried looking for tutorials but non of them even help a little bit.i been looking for like half a month and it’s very frustrating. :emo: :psypop:

Which problems are you having, specifically?

when i smd export do i have to anything before i export it,and if you look in the gmod ragdolls downloaded and look in models folder there is deferent files for the ragdoll like .vvv and .phy and other files i dont know how to get,also writing the qc text(i already have the textures in vmt format so dont need help with that)

p.s im making this borderlands model if you wanted to know:http://everydaygamers.com/wp-content/uploads/2010/01/madmoxxi_01.jpg

Okay. Is this the first time you’ve made a model? If so, a ragdoll probably isn’t the best place to start, but I’ll go over the basics with you.

The files you see included with the models you download are created when the model is compiled. Models are compiled by running your *.qc file through a program called studiomdl, which is included with the source SDK in the ‘\sourcesdk\bin\orangebox\bin’ folder. studiomdl.exe is command-line based, so feeding your *.qc through is as easy as dragging it onto the icon. Simply drag the *.qc file onto the studiomdl.exe icon and it will attempt to compile it.

Before you can compile your model, you’ll have to have a few parts in order, the following are the example components of a basic, properly-assembled ragdoll:

mymodel_reference.smd
mymodel_phy.smd
mymodel.qc

The first *.smd contains the model’s geometry. The second contains its collision data and the last one is your *.qc that you will used to compile the components. Models containing geometry are always exported as ‘reference’ models (not ‘sequence’ models). Both the reference smd and phy smd contain geometry.

If I were going to compile the model above as a ragdoll, my *.qc would look like this:


$cd "C:\folder_that_my_smds_are_located_in"
$modelname "mymodel.mdl"
$model "mymodel" "mymodel_reference.SMD"
$cdmaterials "models\mymodel"
$surfaceprop "flesh"

$sequence idle "mymodel_reference" ACT_IDLE 1 loop fps 30.00
$sequence ragdoll "mymodel_reference" ACT_RAGDOLL 1 fps 30.00

$collisionjoints "mymodel_phy.smd" {

	$mass 30.0
	$inertia 10.00
	$damping 0.50
	$rotdamping 1.50
	$rootbone "Bone0"

	$jointconstrain "Bone1" x limit -50.00 -15.00 0.20
	$jointconstrain "Bone1" y limit -35.00 35.00 0.20
	$jointconstrain "Bone1" z limit -61.00 61.00 0.20

	$jointconstrain "Bone2" x limit -1.00 -1.00 0.20
	$jointconstrain "Bone2" y limit 0.00 0.00 0.20
	$jointconstrain "Bone2" z limit 3.00 106.00 0.20

	$jointconstrain "Bone4" x limit -15.00 15.00 0.20
	$jointconstrain "Bone4" y limit -20.00 27.00 0.20
	$jointconstrain "Bone4" z limit -82.00 30.00 0.20

	$jointconstrain "Bone5" x limit 0.00 0.00 0.00
	$jointconstrain "Bone5" y limit 0.00 0.00 0.00
	$jointconstrain "Bone5" z limit 3.00 93.00 0.20

	$jointconstrain "Bone6" x limit -3.00 3.00 0.20
	$jointconstrain "Bone6" y limit -10.00 10.00 0.20
	$jointconstrain "Bone6" z limit -39.00 30.00 0.20

	$jointconstrain "Bone7" x limit -15.00 15.00 0.20
	$jointconstrain "Bone7" y limit -3.00 3.00 0.20
	$jointconstrain "Bone7" z limit -8.00 8.00 0.20

	$jointconstrain "Bone9" x limit -32.00 32.00 0.20
	$jointconstrain "Bone9" y limit -43.00 43.00 0.20
	$jointconstrain "Bone9" z limit -50.00 50.00 0.20

	$jointconstrain "Bone10" x limit -91.00 95.00 0.20
	$jointconstrain "Bone10" y limit 0.00 0.00 0.00
	$jointconstrain "Bone10" z limit -155.00 -21.00 0.20

	$jointconstrain "Bone12" x limit -48.00 48.00 0.20
	$jointconstrain "Bone12" y limit -64.00 64.00 0.20
	$jointconstrain "Bone12" z limit -53.00 53.00 0.20

	$jointconstrain "Bone13" x limit -91.00 84.00 0.20
	$jointconstrain "Bone13" y limit 0.00 0.00 0.00
	$jointconstrain "Bone13" z limit -153.00 6.00 0.20

	$jointconstrain "Bone8" x limit -30.00 30.00 0.20
	$jointconstrain "Bone8" y limit -35.00 35.00 0.20
	$jointconstrain "Bone8" z limit -19.00 19.00 0.20

	$jointconstrain "Bone3" x limit -3.00 3.00 0.20
	$jointconstrain "Bone3" y limit -10.00 10.00 0.20
	$jointconstrain "Bone3" z limit -39.00 30.00 0.20
}

The $collisionjoints block at the bottom is the brain of the ragdoll. It lists all of the moveable parts that respond to ragdoll physics and anchors them to the root bone (Bone0) via the $rootbone parameter. The rootbone is always the pelvis.

I really admire your ambition! Ragdolls are definitely a high point on the learning curve for beginners, so if you don’t get it the first time, don’t get discouraged; it’s a lot to digest.

WOW! im speechless u just made it so much easier thx alot! i’ll let you know what happens if you want :slight_smile:

I’m happy I could help! Let me know how it turns out.

okay thx but i might have a problem but i think its me so i’ll let you know

It’s no problem.

your too kind

uhh when i put the qc in studiomdl it gives me this:

WARNING:AppFramework: unable to load mudule p4lib.dll!
WARNING:appframework : unable to load module materialsytem.dll!
WARNING:unable to load interface VMaterialsystem079 from materialsystem.dll

what does that mean?

Are you using the studiomdl.exe application in the ‘\sourcesdk\bin\orangebox\bin’ folder? If so, ensure that materialsystem.dll exists. If it doesn’t, launching the Orangebox SDK (Source Engine 2009) and opening modelviewer should force it to appear.

oh thanks would this qc be right?

$cd “C:\moxxie”
$modelname “moxxie.mdl”
$model “moxxie” “moxxie_reference.SMD”
$cdmaterials “moxxie_reference.SMD”
$surfaceprop “flesh”

$sequence idle “moxxie_reference” ACT_IDLE 1 loop fps 30.00
$sequence ragdoll “moxxie_reference” ACT_RAGDOLL 1 fps 30.00

$collisionjoints “moxxie_phy.smd” {

$mass 30.0
$inertia 10.00
$damping 0.50
$rotdamping 1.50
$rootbone “Bone0”

$jointconstrain "Bone1" x limit -50.00 -15.00 0.20
$jointconstrain "Bone1" y limit -35.00 35.00 0.20
$jointconstrain "Bone1" z limit -61.00 61.00 0.20

$jointconstrain "Bone2" x limit -1.00 -1.00 0.20
$jointconstrain "Bone2" y limit 0.00 0.00 0.20
$jointconstrain "Bone2" z limit 3.00 106.00 0.20

$jointconstrain "Bone4" x limit -15.00 15.00 0.20
$jointconstrain "Bone4" y limit -20.00 27.00 0.20
$jointconstrain "Bone4" z limit -82.00 30.00 0.20

$jointconstrain "Bone5" x limit 0.00 0.00 0.00
$jointconstrain "Bone5" y limit 0.00 0.00 0.00
$jointconstrain "Bone5" z limit 3.00 93.00 0.20

$jointconstrain "Bone6" x limit -3.00 3.00 0.20
$jointconstrain "Bone6" y limit -10.00 10.00 0.20
$jointconstrain "Bone6" z limit -39.00 30.00 0.20

$jointconstrain "Bone7" x limit -15.00 15.00 0.20
$jointconstrain "Bone7" y limit -3.00 3.00 0.20
$jointconstrain "Bone7" z limit -8.00 8.00 0.20

$jointconstrain "Bone9" x limit -32.00 32.00 0.20
$jointconstrain "Bone9" y limit -43.00 43.00 0.20
$jointconstrain "Bone9" z limit -50.00 50.00 0.20

$jointconstrain "Bone10" x limit -91.00 95.00 0.20
$jointconstrain "Bone10" y limit 0.00 0.00 0.00
$jointconstrain "Bone10" z limit -155.00 -21.00 0.20

$jointconstrain "Bone12" x limit -48.00 48.00 0.20
$jointconstrain "Bone12" y limit -64.00 64.00 0.20
$jointconstrain "Bone12" z limit -53.00 53.00 0.20

$jointconstrain "Bone13" x limit -91.00 84.00 0.20
$jointconstrain "Bone13" y limit 0.00 0.00 0.00
$jointconstrain "Bone13" z limit -153.00 6.00 0.20

$jointconstrain "Bone8" x limit -30.00 30.00 0.20
$jointconstrain "Bone8" y limit -35.00 35.00 0.20
$jointconstrain "Bone8" z limit -19.00 19.00 0.20

$jointconstrain "Bone3" x limit -3.00 3.00 0.20
$jointconstrain "Bone3" y limit -10.00 10.00 0.20
$jointconstrain "Bone3" z limit -39.00 30.00 0.20

}

Yes, but you have to replace the bones listed in the $collisionjoints block with the names of your model’s bones. Bone0 ($rootbone) should be replaced with your model’s pelvis bone and the rest should be replaced with the bones that respond to ragdoll physics. Things like fingers, necks, toes and shoulder blades do not need to be included in the list.

A Mad Moxxi model? Neato.

oh,sorry.well…time to do research.

WHOA!i was looking through source sdk and i found some file of the smg and the qc file and i noticed that the qc file is actually a qc file not a text document BabyFawnLegs do you know how to do that?(sorry for the biggest noob ever)

If you’re on XP - do you have show extensions for known filetypes on? If no turn it on.

Otherwise you can save a QC file by opening a text document in notepad and save it as “name.qc” those “” are required. It will save it as as txt file otherwise.

thanks for the advice.

ok now i compiled the model to see if it work(if it compiling worked)but now i come across a few problems,one of them is the bones part you told me to fix,like i don’t know how to label them right since the model has 72 bones not in order by body part,and the other one is the texture is missing.

this is what it looks like:http://s1197.photobucket.com/albums/aa436/Alejandro_Fix-ojeda/gmod/?action=view&current=gm_hl1_battlefield0000.jpg it’s stiff because of the bone problem i guess.

good to see it actually shows up in game with yours. im workin on a ragdoll myself (a neo model) with 3ds max. and the qc guide was helpful, but unfortunately im still stuck.