Some Rigging Questions

Whenever I rig, I always end up messing something up. I’m not sure if it’s the bones or the weights. For example, there are some models that are too big for the Valve Biped so I scale down the model.
The legs and feet align perfectly but the arms or fingers don’t.
What are some ways to do so? Also, is there a way to mirror the bones from one side to another so I don’t have to redo the rigging on the other side?
Any help would be appreciated.

What I do is I scale down the forearm and it scales down the hands/fingers along with it. And yes there is a way to copy weights from one side to another but its usually only good if the model is symmetrical, forgot the process but there is a mirror mode if you look it up on youtube it involves copying the vertex weights if im not mistaken.

I meant the bones and not the weights. :quagmire:

The bones or the mesh?

Scale the bone.

Okay, I’ll let you know later.

I usually try to line up the model at the shoulders because that’s basically a four-way intersection of bones. If necessary then the pelvis can be pulled down, the arms pulled out, and/or the feet pulled up until it fits the valve biped. I’ve been experimenting on a way to allow for custom proportions but for the time being, everybody has generally just stretched the model a bit if needed.

I’ve always done that but thought it would make the model’s bones stretched out. I later read that the bones and mesh automatically shrink back to match the HL2 biped when compiled for use in the Source Engine. Thanks for the advice.

Does anyone know how to take advantage of the Garry’s Mod mouth movement? The one where when you speak with your mic and it moves your model’s mouth accordingly.

So I was working on porting some Skyrim skeleton models and the fingers are very long. Is there a way to shorten them?

http://puu.sh/aX1Ml/6447280a0e.jpg

Are you talking about shortening the mesh or bones. If you want to shorten the mesh just cut the skin modifier if you have one then click on the mesh then edit by element then use the scale tool to scale it down. You can paste the skin modifier back in after.

Been working on some Team Fortress 2 player models.

Is there anyway to fix these eyes?

http://puu.sh/b5s1r/34994e3b50.jpg



$modelname "tf2\player\scout.mdl"

$model "scout" "scout_reference.smd" {

	eyeball "eye_right" "ValveBiped.Bip01_Head1" -1.19 -2.56 67.35 "eyeball_r" 1.00 4 "eye-iris-blue" 0.63
	eyeball "eye_left" "ValveBiped.Bip01_Head1" 1.19 -2.56 67.35 "eyeball_l" 1.00 -4 "eye-iris-blue" 0.63

	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
}

$texturegroup skinfamilies
{
    { "scout_red"}
    { "scout_blue"} 
}

$mostlyopaque

$cdmaterials "models\player\scout\"

$attachment "eyes" "ValveBiped.Bip01_Head1" 0.00 -2.56 67.35 absolute
$attachment "mouth" "ValveBiped.Bip01_Head1" 0.80 -5.80 -0.15 rotate 0 -80 -90
$attachment "chest" "ValveBiped.Bip01_Spine2" 5 4 0 rotate 0 90 90
$attachment "forward" "ValveBiped.forward" 0 0 0 rotate 0 0 0
$attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" 0 0 0 rotate -90 -90 0
$attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" 0 0 0 rotate -90 -90 0
$attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" 0 0 0 rotate -90 -90 0

$surfaceprop "flesh"

$contents "solid"

$eyeposition 0 0 70

$hboxset "default"
$hbox 1 "ValveBiped.Bip01_Head1" -1.25 -6.5 -3.19 8.25 3.5 3.31
$hbox 4 "ValveBiped.Bip01_L_UpperArm" 0 -2.75 -2.75 12.51 1.75 2.25
$hbox 4 "ValveBiped.Bip01_L_Forearm" 0 -2.19 -2.38 13 1.81 1.62
$hbox 4 "ValveBiped.Bip01_L_Hand" 0.06 -2 -1.5 4.06 1 2.5
$hbox 5 "ValveBiped.Bip01_R_UpperArm" 0 -3 -2.25 12.39 2 2.75
$hbox 5 "ValveBiped.Bip01_R_Forearm" -0.5 -2.2 -1.55 12.5 1.8 2.45
$hbox 5 "ValveBiped.Bip01_R_Hand" 0.06 -2 -2.5 4.06 1 1.5
$hbox 6 "ValveBiped.Bip01_L_Thigh" 0 -3.75 -3.25 17.85 3.75 3.25
$hbox 6 "ValveBiped.Bip01_L_Calf" 0 -3.51 -3.28 15.64 3.49 2.72
$hbox 6 "ValveBiped.Bip01_L_Foot" -1.07 -2 -2.84 5.04 5 2.16
$hbox 6 "ValveBiped.Bip01_L_Toe0" -0.5 -3 -2.19 2.5 0 2.46
$hbox 7 "ValveBiped.Bip01_R_Thigh" 0 -3.75 -3.25 17.85 3.75 3.25
$hbox 7 "ValveBiped.Bip01_R_Calf" 0 -3.51 -2.82 15.64 3.49 3.18
$hbox 7 "ValveBiped.Bip01_R_Foot" -1.06 -2.01 -2.28 5.05 4.99 2.72
$hbox 7 "ValveBiped.Bip01_R_Toe0" -0.5 -3 -2.6 2.5 0 2.1
$hbox 3 "ValveBiped.Bip01_Pelvis" -7.5 -5.5 -6 7.5 8.5 5
$hbox 2 "ValveBiped.Bip01_Spine2" -2.5 -2.5 -7 14.5 7.5 7
$skipboneinbbox

$sequence "ragdoll" "ragdoll.smd" {
	fps 30
	"ACT_DIERAGDOLL" 1
}

$includemodel "m_anm.mdl"

$ikchain "rhand" "ValveBiped.Bip01_R_Hand" knee 0.707 0.707 0
$ikchain "lhand" "ValveBiped.Bip01_L_Hand" knee 0.707 0.707 0
$ikchain "rfoot" "ValveBiped.Bip01_R_Foot" knee 0.707 -0.707 0
$ikchain "lfoot" "ValveBiped.Bip01_L_Foot" knee 0.707 -0.707 0

$ikautoplaylock "rfoot" 1 0.1
$ikautoplaylock "lfoot" 1 0.1

$collisionjoints "phymodel.smd"
{
	$mass 90
	$inertia 10
	$damping 0.01
	$rotdamping 1.5


	$jointconstrain "ValveBiped.Bip01_Spine2" x limit -48 48 0
	$jointconstrain "ValveBiped.Bip01_Spine2" y limit -25 25 0
	$jointconstrain "ValveBiped.Bip01_Spine2" z limit -25 50 0

	$jointconstrain "ValveBiped.Bip01_R_UpperArm" x limit -39 39 0
	$jointconstrain "ValveBiped.Bip01_R_UpperArm" y limit -79 95 0
	$jointconstrain "ValveBiped.Bip01_R_UpperArm" z limit -93 23 0

	$jointconstrain "ValveBiped.Bip01_L_UpperArm" x limit -30 30 0
	$jointconstrain "ValveBiped.Bip01_L_UpperArm" y limit -95 84 0
	$jointconstrain "ValveBiped.Bip01_L_UpperArm" z limit -86 26 0

	$jointconstrain "ValveBiped.Bip01_L_Forearm" x limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_L_Forearm" y limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_L_Forearm" z limit -149 4 0

	$jointconstrain "ValveBiped.Bip01_L_Hand" x limit -37 37 0
	$jointconstrain "ValveBiped.Bip01_L_Hand" y limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_L_Hand" z limit -57 59 0

	$jointconstrain "ValveBiped.Bip01_R_Forearm" x limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_R_Forearm" y limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_R_Forearm" z limit -149 4 0

	$jointconstrain "ValveBiped.Bip01_R_Hand" x limit -60 60 0
	$jointconstrain "ValveBiped.Bip01_R_Hand" y limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_R_Hand" z limit -57 70 0

	$jointconstrain "ValveBiped.Bip01_R_Thigh" x limit -12 12 0
	$jointconstrain "ValveBiped.Bip01_R_Thigh" y limit -8 75 0
	$jointconstrain "ValveBiped.Bip01_R_Thigh" z limit -97 32 0

	$jointconstrain "ValveBiped.Bip01_R_Calf" x limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_R_Calf" y limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_R_Calf" z limit -12 126 0

	$jointconstrain "ValveBiped.Bip01_Head1" x limit -20 20 0
	$jointconstrain "ValveBiped.Bip01_Head1" y limit -25 25 0
	$jointconstrain "ValveBiped.Bip01_Head1" z limit -13 30 0

	$jointconstrain "ValveBiped.Bip01_L_Thigh" x limit -12 12 0
	$jointconstrain "ValveBiped.Bip01_L_Thigh" y limit -73 6 0
	$jointconstrain "ValveBiped.Bip01_L_Thigh" z limit -93 30 0

	$jointconstrain "ValveBiped.Bip01_L_Calf" x limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_L_Calf" y limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_L_Calf" z limit -8 126 0

	$jointconstrain "ValveBiped.Bip01_L_Foot" x limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_L_Foot" y limit -19 19 0
	$jointconstrain "ValveBiped.Bip01_L_Foot" z limit -15 35 0

	$jointconstrain "ValveBiped.Bip01_R_Foot" x limit 0 0 0
	$jointconstrain "ValveBiped.Bip01_R_Foot" y limit -25 6 0
	$jointconstrain "ValveBiped.Bip01_R_Foot" z limit -15 35 0
}

$collisiontext
{
	animatedfriction 
	{
		"animfrictionmin" "1.000000"
		"animfrictionmax" "400.000000"
		"animfrictiontimein" "0.500000"
		"animfrictiontimeout" "0.300000"
		"animfrictiontimehold" "0.000000"
	}
	editparams 
	{
		"rootname" "valvebiped.bip01_pelvis"
		"totalmass" "90.000000"
		"jointmerge" "valvebiped.bip01_pelvis,valvebiped.bip01"
		"jointmerge" "valvebiped.bip01_pelvis,valvebiped.bip01_spine1"
	}
}

$bonemerge "ValveBiped.Bip01_Pelvis"
$bonemerge "ValveBiped.Bip01_Spine"
$bonemerge "ValveBiped.Bip01_Spine1"
$bonemerge "ValveBiped.Bip01_Spine2"
$bonemerge "ValveBiped.Bip01_Spine4"
$bonemerge "ValveBiped.Bip01_R_Clavicle"
$bonemerge "ValveBiped.Bip01_R_UpperArm"
$bonemerge "ValveBiped.Bip01_R_Forearm"
$bonemerge "ValveBiped.Bip01_R_Hand"
$bonemerge "ValveBiped.Anim_Attachment_RH"



eyeball "eye_right" "ValveBiped.Bip01_Head1" -1.19 -2.56 67.35 "eyeball_r" 1.00 4 "eye-iris-blue" 0.63
eyeball "eye_left" "ValveBiped.Bip01_Head1" 1.19 -2.56 67.35 "eyeball_l" 1.00 -4 "eye-iris-blue" 0.63

Did you modify those values at all?

I used .qc eyes and got the data from the center vertex of the eyeball.

Then it should be working, not sure what’s the issue here. Maybe it’s some funkiness in the VMTs?

I left those as default.

Then yeah, maybe. If I recall the TF2 eye VMTs are different than HL2 ones.
Theoretically that shouldn’t make a difference, but maybe check anyway?

Didn’t want to bloat Facepunch with more threads so I’m just gonna ask here.

  1. Has anyone found out how to extract Plants vs. Zombies Garden Warfare models? If so, how?
  2. How do I port models from Dolphin Emulator?
  3. How do I port from The Sims 3?

Sorry for so many questions but I’d like to port some models.

Use NinjaRipper to grab models from Dolphin, but be sure to set it to the DX9 backend first, or else everything will come out flat.

From dolphine there is tutorial in youtube just type ninjarpper in youtube. From SIMS and Plants VS Zombies also try ninja ripper it should work.