Boneweights fuck up?

So I got a small problem. It seems that the boneweights don’t export correctly.

If I let it animate the model looks like:

But it’s not the rigging because thats fine:

The boneweights in HLMV look like:

But in Milkshape 3d they are like this:

Also I seem to have a minor texture issue:

I didn’t touch any of the boneweights and the only rigging I did was adding props to the ragdoll, and they are rigged correctly in both GMod and MS3D. The phymodel works. So it just has to be the boneweights…

Oh yeah, the QC:


$cd "C:\Users\JASPER\Modeling\random\engineerbattlesuite"
$modelname "dakarun/battle_engineer.mdl"
$model "engineer" "engineerbattlesuit_reference.smd"

$poseparameter body_pitch -45.00 45.00 360.00
$poseparameter body_yaw -45.00 45.00 360.00

$cdmaterials "models\player\engineer\"
$cdmaterials "models\buildables\dispenser\"
$cdmaterials "models\buildables\sentry1\"
$cdmaterials "models\buildables\sentry2\"
$cdmaterials "models\buildables\sentry3\"
$cdmaterials "models\props_2fort\"
$cdmaterials "\models\player\items\engineer\"

$texturegroup skinfamilies

{
	{"models/player/engineer/engineer_red.vmt"
 "models/player/engineer/engineer_head_red.vmt"
}
 	{"engineer_blue.vmt"
 "engineer_head_blue.vmt"
}
 	{"engineer_red_invun.vmt"
 "engineer_head_red_invun.vmt"
}
 	{"engineer_blue_invun.vmt"
 "engineer_head_blue_invun.vmt"
}
	{ "models/player/items/engineer/weldingmask_red.vmt" }
	{ "weldingmask_blue.vmt" }
}
 }
 
$hboxset "engineer"
$hbox 1 "bip_head" -6.000  -11.000  -8.000  6.000  4.000  6.000
$hbox 3 "bip_spine_0" -9.000  -2.000  -10.000  9.000  4.000  4.000
$hbox 3 "bip_spine_1" -9.000  -3.000  -10.500  9.000  3.000  4.500
$hbox 2 "bip_spine_2" -10.000  -3.000  -9.000  10.000  3.000  5.000
$hbox 2 "bip_spine_3" -10.000  -3.500  -10.000  10.000  1.500  4.000
$hbox 4 "bip_upperArm_L" 0.000  -3.500  -2.750  12.000  3.500  3.250
$hbox 4 "bip_lowerArm_L" 0.000  -2.250  -3.250  13.000  2.250  3.250
$hbox 4 "bip_hand_L" -3.500  -10.000  -3.000  1.500  0.000  5.000
$hbox 5 "bip_upperArm_R" 0.000  -3.500  -2.750  12.000  3.500  3.250
$hbox 5 "bip_lowerArm_R" 0.000  -3.250  -2.750  13.000  3.250  2.750
$hbox 5 "bip_hand_R" -2.500  0.500  -3.500  2.500  9.500  4.500
$hbox 6 "bip_hip_L" 2.000  -4.000  -5.000  16.000  4.000  4.000
$hbox 6 "bip_knee_L" 0.000  -2.250  -4.500  16.000  3.250  2.500
$hbox 6 "bip_foot_L" -2.000  -10.000  -3.000  2.000  2.000  3.000
$hbox 7 "bip_hip_R" 2.000  -4.000  -5.000  16.000  4.000  4.000
$hbox 7 "bip_knee_R" 0.000  -3.250  -4.500  16.000  2.250  2.500
$hbox 7 "bip_foot_R" -2.000  -2.000  -2.500  2.000  10.000  3.500

// Model uses material "models/player/engineer/engineer_red.vmt"
// Model uses material "models/player/engineer/engineer_head_red.vmt"
// Model uses material "engineer_blue.vmt"
// Model uses material "engineer_head_blue.vmt"
// Model uses material "engineer_red_invun.vmt"
// Model uses material "engineer_head_red_invun.vmt"
// Model uses material "engineer_blue_invun.vmt"
// Model uses material "engineer_head_blue_invun.vmt"

$attachment "head" "bip_head" 0.00 -10.66 1.23 rotate 74.70 -90.00 -0.00
$attachment "flag" "bip_spine_2" 0.12 1.92 9.64 rotate 0.95 -6.92 -1.52
$attachment "head" "bip_head" 0.00 -10.66 1.23 rotate 74.70 -90.00 -0.00
$attachment "flag" "bip_spine_2" 0.12 1.92 9.64 rotate 0.95 -6.92 -1.52
$attachment "partyhat" "bip_head" 0.00 -9.26 -2.23 rotate 75.00 90.00 180.00

$includemodel "player/engineer_animations.mdl"

$surfaceprop "flesh"

$illumposition 1.347 -0.514 38.444

$sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00

$ikchain rhand bip_hand_R knee  0.000 0.000 0.000
$ikchain lhand bip_hand_L knee  0.000 0.000 0.000
$ikchain rfoot bip_foot_R knee  0.000 0.000 0.000
$ikchain lfoot bip_foot_L knee  0.000 0.000 0.000
$collisionjoints "phymodel.smd" {

	$mass 100.0
	$inertia 10.00
	$damping 0.00
	$rotdamping 12.00
	$rootbone "bip_pelvis"
	$jointmassbias "bip_pelvis" 2.00
	$jointrotdamping "bip_pelvis" 0.00

	$jointconstrain "prp_cord" x limit -30.00 120.00 0.00
	$jointconstrain "prp_cord" y limit -35.00 16.00 0.00
	$jointconstrain "prp_cord" z limit -130.00 95.00 0.00

	$jointmassbias "bip_hip_r" 0.80
	$jointrotdamping "bip_hip_r" 4.00
	$jointconstrain "bip_hip_r" x limit -45.00 25.00 0.00
	$jointconstrain "bip_hip_r" y limit -80.00 35.00 0.00
	$jointconstrain "bip_hip_r" z limit -25.00 25.00 0.00

	$jointmassbias "bip_knee_r" 0.80
	$jointrotdamping "bip_knee_r" 3.00
	$jointconstrain "bip_knee_r" x limit 0.00 0.00 0.00
	$jointconstrain "bip_knee_r" y limit 0.00 110.00 0.00
	$jointconstrain "bip_knee_r" z limit 0.00 0.00 0.00

	$jointmassbias "bip_foot_r" 0.75
	$jointrotdamping "bip_foot_r" 7.00
	$jointconstrain "bip_foot_r" x limit -10.00 35.00 0.00
	$jointconstrain "bip_foot_r" y limit -19.00 25.00 0.00
	$jointconstrain "bip_foot_r" z limit -42.00 24.00 0.00

	$jointmassbias "bip_hip_l" 0.80
	$jointrotdamping "bip_hip_l" 4.00
	$jointconstrain "bip_hip_l" x limit -45.00 25.00 0.00
	$jointconstrain "bip_hip_l" y limit -80.00 45.00 0.00
	$jointconstrain "bip_hip_l" z limit -25.00 25.00 0.00

	$jointmassbias "bip_knee_l" 0.80
	$jointrotdamping "bip_knee_l" 3.00
	$jointconstrain "bip_knee_l" x limit 0.00 0.00 0.00
	$jointconstrain "bip_knee_l" y limit 0.00 110.00 0.00
	$jointconstrain "bip_knee_l" z limit 0.00 0.00 0.00

	$jointmassbias "bip_foot_l" 0.75
	$jointrotdamping "bip_foot_l" 7.00
	$jointconstrain "bip_foot_l" x limit -10.00 35.00 0.00
	$jointconstrain "bip_foot_l" y limit -19.00 25.00 0.00
	$jointconstrain "bip_foot_l" z limit -42.00 24.00 0.00

	$jointmassbias "bip_spine_0" 1.60
	$jointconstrain "bip_spine_0" x limit -8.00 55.00 0.00
	$jointconstrain "bip_spine_0" y limit -15.00 15.00 0.00
	$jointconstrain "bip_spine_0" z limit -25.00 25.00 0.00

	$jointmassbias "bip_upperarm_r" 0.80
	$jointrotdamping "bip_upperarm_r" 16.00
	$jointconstrain "bip_upperarm_r" x limit -50.00 50.00 0.00
	$jointconstrain "bip_upperarm_r" y limit -20.00 55.00 0.00
	$jointconstrain "bip_upperarm_r" z limit -80.00 70.00 0.00

	$jointmassbias "bip_lowerarm_r" 1.80
	$jointrotdamping "bip_lowerarm_r" 4.00
	$jointconstrain "bip_lowerarm_r" x limit 0.00 0.00 0.00
	$jointconstrain "bip_lowerarm_r" y limit 0.00 0.00 0.00
	$jointconstrain "bip_lowerarm_r" z limit -85.00 20.00 0.00

	$jointmassbias "bip_upperarm_l" 0.80
	$jointrotdamping "bip_upperarm_l" 16.00
	$jointconstrain "bip_upperarm_l" x limit -50.00 50.00 0.00
	$jointconstrain "bip_upperarm_l" y limit -20.00 55.00 0.00
	$jointconstrain "bip_upperarm_l" z limit -70.00 80.00 0.00

	$jointmassbias "bip_lowerarm_l" 1.80
	$jointrotdamping "bip_lowerarm_l" 4.00
	$jointconstrain "bip_lowerarm_l" x limit 0.00 0.00 0.00
	$jointconstrain "bip_lowerarm_l" y limit -85.00 20.00 0.00
	$jointconstrain "bip_lowerarm_l" z limit 0.00 0.00 0.00

	$jointmassbias "bip_hand_l" 0.60
	$jointrotdamping "bip_hand_l" 8.00
	$jointconstrain "bip_hand_l" x limit -30.00 37.00 0.00
	$jointconstrain "bip_hand_l" y limit -30.00 50.00 0.00
	$jointconstrain "bip_hand_l" z limit -20.00 35.00 0.00

	$jointmassbias "bip_neck" 1.60
	$jointconstrain "bip_neck" x limit -30.00 30.00 0.00
	$jointconstrain "bip_neck" y limit -50.00 50.00 0.00
	$jointconstrain "bip_neck" z limit -26.00 23.00 0.00

	$jointmassbias "bip_head" 2.50
	$jointrotdamping "bip_head" 8.00
	$jointconstrain "bip_head" x limit -25.00 8.00 0.00
	$jointconstrain "bip_head" y limit -8.00 8.00 0.00
	$jointconstrain "bip_head" z limit -15.00 15.00 0.00

	$jointmassbias "bip_hand_r" 0.60
	$jointrotdamping "bip_hand_r" 8.00
	$jointconstrain "bip_hand_r" x limit -37.00 30.00 0.00
	$jointconstrain "bip_hand_r" y limit -40.00 50.00 0.00
	$jointconstrain "bip_hand_r" z limit -35.00 20.00 0.00

	$jointconstrain "prp_legpouch" x limit -57.00 17.00 0.00
	$jointconstrain "prp_legpouch" y limit -35.00 30.00 0.00
	$jointconstrain "prp_legpouch" z limit -20.00 30.00 0.00
}
$collisiontext {
	break { "model" "player\gibs\engineergib006" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\engineergib001" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\engineergib003" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\engineergib005" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\random_organ" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\engineergib002" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\engineergib004" "health" "0" "fadetime" "10"}
	break { "model" "player\gibs\engineergib007" "health" "0" "fadetime" "10"}
}


So, anyone got a idea how to fix this?

Is it really that hard? Come on folks, 87 views yet 0 replies.

It’s not the boneweights. You moved a joint outside of animation mode, or you added one to an existing skeleton. Can’t do that with MS3D, or you get the exact problem you are talking about.

Bloody hell… that explains a lot. Had to move it if I wanted to work comfortably, since the imported engineer was rotated 90 degrees counter clockwise. Too bad. Well it’s nice to finally have an answer. Thanks.