Ragdoll has blank eyes

I’ve been working on the Punisher reskin of Ignyu’s Crysis marine, but whenever I try to use the model in-game he has no pupils. I had to recompile the model to get rid of some equipment, and the pupils disappeared after that. Can anyone help?

There’s a download link here: http://www.facepunch.com/showthread.php?t=851895

Would anyone be willing to take a look at this?

I don’t know, but i have that problem with EVERY npc/ragdoll, it is very strange

Did you try uninstalling and reinstalling Garry’s Mod? You should be able to just cut any addons you have out and paste them back in once it’s reinstalled.

You might want to use qc eyes for that. I’ve had the same problem myself with some headhacks, I use qc eyes and it worked.

How would I use QC eyes?

I would like to know as well.

In what way could that possibly help?

If you don’t know, don’t answer.

You might wanna take look at the .qc file, i had that problem as well and Silver told me that is either that, or the VTA FlexFile , maybe you can paste the .qc here so others can take a look at it.

It COULD help, since some addons tend to fuck up stuff, specially models.

You’ll have to decompile the model, open it in either XSI, Maya or 3DS Max. First fill in everything, and look around what options might be usefull. Select the center vertex of the eye. Get the Coördinates, fill them in on the Eye Position Right eye/Left Eye and generate the .qc. Then add it to your pre-existing .qc probably like this:


$model "studio" "utf_male05_reference.smd" {

Eye postion goes beneath surface prop

$surfaceprop "flesh"

$eyeposition -0.000 0.000 73.000

If you don’t have a .VTA file, I can’t really help you. I’ve only used this once, and that was for a headhack I was working on.

Well, here’s the QC:


$cd "C:\Program Files\Steam\steamapps\myusername\garrysmod\garrysmod\addons\Punisher"
$modelname "frankc\punishr\warzon\punisher_a1.mdl"
$model "head" "head_a1.SMD" {
     flexfile "mdldecompiler_expressions.vta" {
     }
     eyeball righteye ValveBiped.Bip01_Head1 1.230 -3.350 68.110 eyeball_r 1.000  -1.000 cry_caucasian_01 0.500
     eyeball lefteye ValveBiped.Bip01_Head1 -1.230 -3.350 68.110 eyeball_l 1.000  1.000 cry_caucasian_01 0.500
     // If you uncomment the following lines the eyes will be closed
     // I'm including it anyway in case anyone wants to experiment
     // eyelid  upper_right "mdldecompiler_expressions.vta" lowerer 4 -1.000000 neutral 4 0.000000 raiser 4 1.000000 split 0.1 eyeball righteye
     // eyelid  lower_right "mdldecompiler_expressions.vta" lowerer 4 -1.000000 neutral 4 0.000000 raiser 4 1.000000  split 0.1 eyeball righteye
     // If you uncomment the following lines the eyes will be closed
     // I'm including it anyway in case anyone wants to experiment
     // eyelid  upper_left "mdldecompiler_expressions.vta" lowerer 4 -1.000000 neutral 4 0.000000 raiser 4 1.000000 split -0.1 eyeball lefteye
     // eyelid  lower_left "mdldecompiler_expressions.vta" lowerer 4 -1.000000 neutral 4 0.000000 raiser 4 1.000000  split -0.1 eyeball lefteye
     mouth 0 "mouth"  ValveBiped.Bip01_Head1 0.000 1.000 0.000
     flexcontroller eyelid r_hand "range" 0.000 1.000
     flexcontroller eyelid l_foot "range" 0.000 1.000
     flexcontroller eyelid r_foot "range" 0.000 1.000
     flexcontroller eyelid gun "range" 0.000 1.000
     flexcontroller eyelid l_eyelid "range" 0.000 1.000
     flexcontroller eyelid r_eyelid "range" 0.000 1.000
     flexcontroller eyelid close_mouth "range" 0.000 1.000
     flexcontroller brow right_inner_raiser "range" 0.000 1.000
     flexcontroller brow left_inner_raiser "range" 0.000 1.000
     flexcontroller brow right_outer_raiser "range" 0.000 1.000
     flexcontroller brow left_outer_raiser "range" 0.000 1.000
     flexcontroller brow right_lowerer "range" 0.000 1.000
     flexcontroller brow left_lowerer "range" 0.000 1.000
     flexcontroller nose right_cheek_raiser "range" 0.000 1.000
     flexcontroller nose left_cheek_raiser "range" 0.000 1.000
     flexcontroller nose wrinkler "range" 0.000 1.000
     flexcontroller nose dilator "range" 0.000 1.000
     flexcontroller mouth right_upper_raiser "range" 0.000 1.000
     flexcontroller mouth left_upper_raiser "range" 0.000 1.000
     flexcontroller mouth right_corner_puller "range" 0.000 1.000
     flexcontroller mouth left_corner_puller "range" 0.000 1.000
     flexcontroller mouth right_corner_depressor "range" 0.000 1.000
     flexcontroller mouth left_corner_depressor "range" 0.000 1.000
     flexcontroller mouth chin_raiser "range" 0.000 1.000
     flexcontroller phoneme right_part "range" 0.000 1.000
     flexcontroller phoneme left_part "range" 0.000 1.000
     flexcontroller phoneme right_puckerer "range" 0.000 1.000
     flexcontroller phoneme left_puckerer "range" 0.000 1.000
     flexcontroller phoneme right_funneler "range" 0.000 1.000
     flexcontroller phoneme left_funneler "range" 0.000 1.000
     flexcontroller phoneme right_stretcher "range" 0.000 1.000
     flexcontroller phoneme left_stretcher "range" 0.000 1.000
     flexcontroller phoneme bite "range" 0.000 1.000
     flexcontroller phoneme presser "range" 0.000 1.000
     flexcontroller phoneme tightener "range" 0.000 1.000
     flexcontroller phoneme jaw_clencher "range" 0.000 1.000
     flexcontroller phoneme jaw_drop "range" 0.000 1.000
     flexcontroller phoneme right_mouth_drop "range" 0.000 1.000
     flexcontroller phoneme left_mouth_drop "range" 0.000 1.000
     flexcontroller mouth smile "range" 0.000 1.000
     flexcontroller mouth lower_lip "range" 0.000 1.000
     flexcontroller head head_rightleft "range" 0.000 1.000
     flexcontroller head head_updown "range" 0.000 1.000
     flexcontroller head head_tilt "range" 0.000 1.000
     flexcontroller eyes eyes_updown "range" 0.000 1.000
     flexcontroller eyes eyes_rightleft "range" 0.000 1.000
     flexcontroller body body_rightleft "range" 0.000 1.000
     flexcontroller chest chest_rightleft "range" 0.000 1.000
     flexcontroller head head_forwardback "range" 0.000 1.000
     flexcontroller gesture gesture_updown "range" 0.000 1.000
     flexcontroller gesture gesture_rightleft "range" 0.000 1.000
}
$model "body" "mainbody.SMD" {
     flexfile "mdldecompiler_expressions.vta" {
     }
     mouth 0 "mouth"  ValveBiped.Bip01_Head1 0.000 1.000 0.000
}
$poseparameter move_yaw -180.00 180.00
$poseparameter body_pitch -90.00 90.00
$poseparameter body_yaw -90.00 90.00
$cdmaterials "models\frankc\us_marine\"
$cdmaterials "models\frankc\Humans\blue\"
$hboxset "default"
$hbox 1 "ValveBiped.Bip01_Head1" -1.250  -6.500  -3.190  8.250  3.500  3.310
$hbox 4 "ValveBiped.Bip01_L_UpperArm" 0.000  -2.750  -2.750  12.510  1.750  2.250
$hbox 4 "ValveBiped.Bip01_L_Forearm" 0.000  -2.190  -2.380  13.000  1.810  1.620
$hbox 4 "ValveBiped.Bip01_L_Hand" 0.060  -2.000  -1.500  4.060  1.000  2.500
$hbox 5 "ValveBiped.Bip01_R_UpperArm" 0.000  -3.000  -2.250  12.390  2.000  2.750
$hbox 5 "ValveBiped.Bip01_R_Forearm" -0.500  -2.200  -1.550  12.500  1.800  2.450
$hbox 5 "ValveBiped.Bip01_R_Hand" 0.060  -2.000  -2.500  4.060  1.000  1.500
$hbox 6 "ValveBiped.Bip01_L_Thigh" 0.000  -3.750  -3.250  17.850  3.750  3.250
$hbox 6 "ValveBiped.Bip01_L_Calf" 0.000  -3.510  -3.280  15.640  3.490  2.720
$hbox 6 "ValveBiped.Bip01_L_Foot" -1.070  -2.000  -2.840  5.040  5.000  2.160
$hbox 6 "ValveBiped.Bip01_L_Toe0" -0.500  -3.000  -2.190  2.500  0.000  2.460
$hbox 7 "ValveBiped.Bip01_R_Thigh" 0.000  -3.750  -3.250  17.850  3.750  3.250
$hbox 7 "ValveBiped.Bip01_R_Calf" 0.000  -3.510  -2.820  15.640  3.490  3.180
$hbox 7 "ValveBiped.Bip01_R_Foot" -1.060  -2.010  -2.280  5.050  4.990  2.720
$hbox 7 "ValveBiped.Bip01_R_Toe0" -0.500  -3.000  -2.600  2.500  0.000  2.100
$hbox 3 "ValveBiped.Bip01_Pelvis" -7.500  -5.500  -6.000  7.500  8.500  5.000
$hbox 2 "ValveBiped.Bip01_Spine2" -2.500  -2.500  -7.000  14.500  7.500  7.000
// Model uses material "cry_caucasian_01.vmt"
// Model uses material "cry_teeth_02.vmt"
// Model uses material "eyeball_l.vmt"
// Model uses material "eyeball_r.vmt"
// Model uses material "cry_Marine.vmt"
// Model uses material "cry_Hand.vmt"
$includemodel "humans/male_shared.mdl"
$includemodel "humans/male_ss.mdl"
$includemodel "humans/male_gestures.mdl"
$includemodel "humans/male_postures.mdl"
$surfaceprop "flesh"
$illumposition -0.654 -0.000 36.127
$sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00
$ikchain rhand ValveBiped.Bip01_R_Hand knee  0.707 0.707 0.000
$ikchain lhand ValveBiped.Bip01_L_Hand knee  0.707 0.707 0.000
$ikchain rfoot ValveBiped.Bip01_R_Foot knee  0.707 -0.707 0.000
$ikchain lfoot ValveBiped.Bip01_L_Foot knee  0.707 -0.707 0.000
$collisionjoints "phymodel.smd" {

	$mass 90.0
	$inertia 10.00
	$damping 0.01
	$rotdamping 1.50
	$rootbone "valvebiped.bip01_pelvis"

	$jointconstrain "valvebiped.bip01_l_thigh" x limit -12.00 12.00 0.00
	$jointconstrain "valvebiped.bip01_l_thigh" y limit -73.00 6.00 0.00
	$jointconstrain "valvebiped.bip01_l_thigh" z limit -130.00 50.00 0.00

	$jointconstrain "valvebiped.bip01_l_calf" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_calf" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_calf" z limit -8.00 126.00 0.00

	$jointconstrain "valvebiped.bip01_l_foot" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_foot" y limit -19.00 19.00 0.00
	$jointconstrain "valvebiped.bip01_l_foot" z limit -15.00 35.00 0.00

	$jointconstrain "valvebiped.bip01_r_thigh" x limit -12.00 12.00 0.00
	$jointconstrain "valvebiped.bip01_r_thigh" y limit -8.00 75.00 0.00
	$jointconstrain "valvebiped.bip01_r_thigh" z limit -130.00 50.00 0.00

	$jointconstrain "valvebiped.bip01_r_calf" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_calf" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_calf" z limit -12.00 126.00 0.00

	$jointconstrain "valvebiped.bip01_r_foot" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_foot" y limit -25.00 6.00 0.00
	$jointconstrain "valvebiped.bip01_r_foot" z limit -15.00 35.00 0.00

	$jointconstrain "valvebiped.bip01_r_toe0" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_toe0" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_toe0" z limit -60.00 0.00 0.00

	$jointconstrain "valvebiped.bip01_spine1" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_spine1" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_spine1" z limit 0.00 0.00 0.00

	$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.00
	$jointconstrain "valvebiped.bip01_spine2" y limit -25.00 25.00 0.00
	$jointconstrain "valvebiped.bip01_spine2" z limit -25.00 50.00 0.00

	$jointconstrain "valvebiped.bip01_l_clavicle" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_clavicle" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_clavicle" z limit 0.00 0.00 0.00

	$jointconstrain "valvebiped.bip01_l_upperarm" x limit -39.00 39.00 0.00
	$jointconstrain "valvebiped.bip01_l_upperarm" y limit -95.00 110.00 0.00
	$jointconstrain "valvebiped.bip01_l_upperarm" z limit -120.00 60.00 0.00

	$jointconstrain "valvebiped.bip01_r_clavicle" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_clavicle" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_clavicle" z limit 0.00 0.00 0.00

	$jointconstrain "valvebiped.bip01_r_upperarm" x limit -39.00 39.00 0.00
	$jointconstrain "valvebiped.bip01_r_upperarm" y limit -95.00 110.00 0.00
	$jointconstrain "valvebiped.bip01_r_upperarm" z limit -120.00 60.00 0.00

	$jointconstrain "valvebiped.bip01_r_forearm" x limit -40.00 40.00 0.00
	$jointconstrain "valvebiped.bip01_r_forearm" y limit -40.00 40.00 0.00
	$jointconstrain "valvebiped.bip01_r_forearm" z limit -149.00 10.00 0.00

	$jointconstrain "valvebiped.bip01_r_hand" x limit -60.00 60.00 0.00
	$jointconstrain "valvebiped.bip01_r_hand" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_hand" z limit -57.00 70.00 0.00

	$jointconstrain "valvebiped.bip01_l_forearm" x limit -40.00 40.00 0.00
	$jointconstrain "valvebiped.bip01_l_forearm" y limit -40.00 40.00 0.00
	$jointconstrain "valvebiped.bip01_l_forearm" z limit -149.00 10.00 0.00

	$jointconstrain "valvebiped.bip01_l_hand" x limit -37.00 37.00 0.00
	$jointconstrain "valvebiped.bip01_l_hand" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_hand" z limit -57.00 59.00 0.00

	$jointconstrain "valvebiped.bip01_l_toe0" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_toe0" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_toe0" z limit -60.00 0.00 0.00

	$jointconstrain "valvebiped.bip01_head1" x limit -20.00 20.00 0.00
	$jointconstrain "valvebiped.bip01_head1" y limit -25.00 25.00 0.00
	$jointconstrain "valvebiped.bip01_head1" z limit -13.00 30.00 0.00
	$animatedfriction 1.000 400.000 0.500 0.000 0.300
}

I’ll try looking at the model in 3ds Max to see if that’s it.

So once I find the center vertex of the eye, how do I show what the coordinates are?

If you’re using max, select the vertex and then press right mouse button on the select and move button on your toolbar, it will give you the positions. Also you’ll have to replace the , with a .

What exactly should I type in the QC for the left and right eyes?

Do I need to create a new QC for the eyes or add info to the current QC?

Sorry for the late reply:

You will most likely get this from QC eyes:



//start eye/face data
$eyeposition 0 0 70

//head controllers
$attachment "eyes" "ValveBiped.Bip01_Head1" -0.06 -2.78 67.04 absolute
$attachment "mouth" "ValveBiped.Bip01_Head1" 0.80 -5.80 -0.15 rotate 0 -80 -90

$model filename_model "filename_reference.smd" {
	eyeball righteye "ValveBiped.Bip01_Head1" -1.29 -2.78 67.04 "eyeball_r" 1.00 4 "pupil_r" 0.63
	eyeball lefteye "ValveBiped.Bip01_Head1" 1.17 -2.78 67.04 "eyeball_l" 1.00 -4 "pupil_l" 0.63

	eyelid  upper_right "filename_expressions" lowerer 1 -67.04 neutral 0 -67.04 raiser 2 -67.04 split 0.1 eyeball righteye
	eyelid  lower_right "filename_expressions" lowerer 3 -67.04 neutral 0 -67.04 raiser 4 -67.04 split 0.1 eyeball righteye
	eyelid  upper_left "filename_expressions" lowerer 1 -67.04 neutral 0 -67.04 raiser 2 -67.04 split -0.1 eyeball lefteye
	eyelid  lower_left "filename_expressions" lowerer 3 -67.04 neutral 0 -67.04 raiser 4 -67.04 split -0.1 eyeball lefteye

	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0     // mouth illumination
	flexfile "filename_expressions" {
		$include "../standardflex_xsi.qci"
	}
	$include "../facerules_xsi.qci"
	$include "../bodyrules_xsi.qci"
}
//end eye/face data


The ones I mostly use that are generated are just these ones:



//start eye/face data
$eyeposition 0 0 70

//head controllers
$attachment "eyes" "ValveBiped.Bip01_Head1" -0.06 -2.78 67.04 absolute
$attachment "mouth" "ValveBiped.Bip01_Head1" 0.80 -5.80 -0.15 rotate 0 -80 -90

$model filename_model "filename_reference.smd" {
	eyeball righteye "ValveBiped.Bip01_Head1" -1.29 -2.78 67.04 "eyeball_r" 1.00 4 "pupil_r" 0.63
	eyeball lefteye "ValveBiped.Bip01_Head1" 1.17 -2.78 67.04 "eyeball_l" 1.00 -4 "pupil_l" 0.63

	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0     // mouth illumination

}
//end eye/face data


I don’t use eyelid upper_right etc, because it’s mostly out of range (Max is 0.5/-0.5) and the others I just don’t know where to put them.

When your done it could look something like thise (This quite a messy one, but it’s all about what QC Eyes had as a output):


$cd "E:\Users\Jasper\Modeling\RP\characters\utfmarine\male05"
$modelname "dakarun/utfmales/utfmale05.mdl"

$model "studio" "utf_male05_reference.smd" {
     flexfile "mdldecompiler_expressions.vta" {
          flex "upper_right" frame 2
          flex "lower_right" frame 4
          flex "upper_left" frame 6
          flex "lower_left" frame 8
          flex "AU42" frame 9
          flexpair "AU1" 1.0 frame 10
          flexpair "AU2" 1.0 frame 11
          flexpair "AU4" 1.0 frame 12
          flexpair "AU1AU2" 1.0 frame 13
          flexpair "AU12" 1.0 frame 14
          flex "AU12AU25" frame 15
          flexpair "AU15" 1.0 frame 16
          flexpair "AU17" 1.0 frame 17
          flexpair "AU10" 1.0 frame 18
          flex "AU16" frame 19
          flexpair "AU6" 1.0 frame 20
          flexpair "AU9" 1.0 frame 21
          flexpair "AU25" 1.0 frame 22
          flexpair "AU18" 1.0 frame 23
          flexpair "AU22" 1.0 frame 24
          flexpair "AU20" 1.0 frame 25
          flex "AU32" frame 26
          flex "AU24" frame 27
          flex "AU38" frame 28
          flex "AU31" frame 29
          flexpair "AU26" 1.0 frame 30
          flexpair "AU27" 1.0 frame 31
          flexpair "AU26Z" 1.0 frame 32
          flexpair "AU27Z" 1.0 frame 33
     }
**	eyeball righteye "ValveBiped.Bip01_Head1" -1.29 -2.78 67.04 "eyeball_r" 1.00 4 "pupil_r" 0.63
	eyeball lefteye "ValveBiped.Bip01_Head1" 1.17 -2.78 67.04 "eyeball_l" 1.00 -4 "pupil_l" 0.63
	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0**
     flexcontroller eyelid right_lid_raiser "range" 0.000 1.000
     flexcontroller eyelid left_lid_raiser "range" 0.000 1.000
     flexcontroller eyelid right_lid_tightener "range" 0.000 1.000
     flexcontroller eyelid left_lid_tightener "range" 0.000 1.000
     flexcontroller eyelid right_lid_droop "range" 0.000 1.000
     flexcontroller eyelid left_lid_droop "range" 0.000 1.000
     flexcontroller eyelid right_lid_closer "range" 0.000 1.000
     flexcontroller eyelid left_lid_closer "range" 0.000 1.000
     flexcontroller eyelid half_closed "range" 0.000 1.000
     flexcontroller eyelid blink "range" 0.000 1.000
     flexcontroller brow right_inner_raiser "range" 0.000 1.000
     flexcontroller brow left_inner_raiser "range" 0.000 1.000
     flexcontroller brow right_outer_raiser "range" 0.000 1.000
     flexcontroller brow left_outer_raiser "range" 0.000 1.000
     flexcontroller brow right_lowerer "range" 0.000 1.000
     flexcontroller brow left_lowerer "range" 0.000 1.000
     flexcontroller nose right_cheek_raiser "range" 0.000 1.000
     flexcontroller nose left_cheek_raiser "range" 0.000 1.000
     flexcontroller nose wrinkler "range" 0.000 1.000
     flexcontroller nose dilator "range" 0.000 1.000
     flexcontroller mouth right_upper_raiser "range" 0.000 1.000
     flexcontroller mouth left_upper_raiser "range" 0.000 1.000
     flexcontroller mouth right_corner_puller "range" 0.000 1.000
     flexcontroller mouth left_corner_puller "range" 0.000 1.000
     flexcontroller mouth right_corner_depressor "range" 0.000 1.000
     flexcontroller mouth left_corner_depressor "range" 0.000 1.000
     flexcontroller mouth chin_raiser "range" 0.000 1.000
     flexcontroller phoneme right_part "range" 0.000 1.000
     flexcontroller phoneme left_part "range" 0.000 1.000
     flexcontroller phoneme right_puckerer "range" 0.000 1.000
     flexcontroller phoneme left_puckerer "range" 0.000 1.000
     flexcontroller phoneme right_funneler "range" 0.000 1.000
     flexcontroller phoneme left_funneler "range" 0.000 1.000
     flexcontroller phoneme right_stretcher "range" 0.000 1.000
     flexcontroller phoneme left_stretcher "range" 0.000 1.000
     flexcontroller phoneme bite "range" 0.000 1.000
     flexcontroller phoneme presser "range" 0.000 1.000
     flexcontroller phoneme tightener "range" 0.000 1.000
     flexcontroller phoneme jaw_clencher "range" 0.000 1.000
     flexcontroller phoneme jaw_drop "range" 0.000 1.000
     flexcontroller phoneme right_mouth_drop "range" 0.000 1.000
     flexcontroller phoneme left_mouth_drop "range" 0.000 1.000
     flexcontroller mouth smile "range" 0.000 1.000
     flexcontroller mouth lower_lip "range" 0.000 1.000
     flexcontroller head head_rightleft "range" -30.000 30.000
     flexcontroller head head_updown "range" -15.000 15.000
     flexcontroller head head_tilt "range" -15.000 15.000
     flexcontroller eyes eyes_updown "range" -30.000 30.000
     flexcontroller eyes eyes_rightleft "range" -30.000 30.000
     flexcontroller body body_rightleft "range" -30.000 30.000
     flexcontroller chest chest_rightleft "range" -30.000 30.000
     flexcontroller head head_forwardback "range" -0.200 0.200
     flexcontroller gesture gesture_updown "range" -1.000 1.000
     flexcontroller gesture gesture_rightleft "range" -1.000 1.000
    localvar upper_right_raiser
    %upper_right_raiser = ( right_lid_raiser * (( 1.000 - ( right_lid_droop *  0.800)) * (( 1.000 -  right_lid_closer) * ( 1.000 -  blink))))
    localvar upper_right_neutral
    %upper_right_neutral = (( 1.000 - ( right_lid_droop *  0.800)) * (( 1.000 -  right_lid_raiser) * (( 1.000 -  right_lid_closer) * ( 1.000 -  blink))))
    localvar upper_right_lowerer
    %upper_right_lowerer = ( right_lid_closer + ( blink * ( 1.000 -  right_lid_closer)))
    localvar upper_left_raiser
    %upper_left_raiser = ( left_lid_raiser * (( 1.000 - ( left_lid_droop *  0.800)) * (( 1.000 -  left_lid_closer) * ( 1.000 -  blink))))
    localvar upper_left_neutral
    %upper_left_neutral = (( 1.000 - ( left_lid_droop *  0.800)) * (( 1.000 -  left_lid_raiser) * (( 1.000 -  left_lid_closer) * ( 1.000 -  blink))))
    localvar upper_left_lowerer
    %upper_left_lowerer = ( left_lid_closer + ( blink * ( 1.000 -  left_lid_closer)))
    localvar lower_right_raiser
    %lower_right_raiser = ( right_lid_closer + ( blink * ( 0.500 * ( 1.000 -  right_lid_closer))))
    localvar lower_right_neutral
    %lower_right_neutral = (( 1.000 -  right_lid_closer) * (( 1.000 - ( 0.500 *  blink)) * (( 1.000 - ( right_lid_tightener *  0.500)) * ( 1.000 - ( right_cheek_raiser *  0.250)))))
    localvar lower_right_lowerer
    %lower_right_lowerer =  0.000
    localvar lower_left_raiser
    %lower_left_raiser = ( left_lid_closer + ( blink * ( 0.500 * ( 1.000 -  left_lid_closer))))
    localvar lower_left_neutral
    %lower_left_neutral = (( 1.000 -  left_lid_closer) * (( 1.000 - ( 0.500 *  blink)) * (( 1.000 - ( left_lid_tightener *  0.500)) * ( 1.000 - ( left_cheek_raiser *  0.250)))))
    localvar lower_left_lowerer
    %lower_left_lowerer =  0.000
    %AU1R = ( right_inner_raiser * (( 1.000 -  right_outer_raiser) * ( 1.000 -  right_lowerer)))
    %AU1L = ( left_inner_raiser * (( 1.000 -  left_outer_raiser) * ( 1.000 -  left_lowerer)))
    %AU2R = ( right_outer_raiser * (( 1.000 -  right_inner_raiser) * ( 1.000 -  right_lowerer)))
    %AU2L = ( left_outer_raiser * (( 1.000 -  left_inner_raiser) * ( 1.000 -  left_lowerer)))
    %AU1AU2R = ( right_inner_raiser * ( right_outer_raiser * ( 1.000 -  right_lowerer)))
    %AU1AU2L = ( left_inner_raiser * ( left_outer_raiser * ( 1.000 -  left_lowerer)))
    %AU4R =  right_lowerer
    %AU4L =  left_lowerer
    %AU6R =  right_cheek_raiser
    %AU6L =  left_cheek_raiser
    %AU9R =  wrinkler
    %AU9L =  wrinkler
    %AU38 =  dilator
    localvar right_open
    %right_open = ( smile + (( right_part * ( 1.000 -  smile)) + ( right_puckerer + ( right_funneler + (( right_upper_raiser *  0.500) + ( lower_lip *  0.500))))))
    localvar left_open
    %left_open = ( smile + (( left_part * ( 1.000 -  smile)) + ( left_puckerer + ( left_funneler + (( left_upper_raiser *  0.500) + ( lower_lip *  0.500))))))
    localvar right_lip_suppressor
    %right_lip_suppressor = (( 1.000 /  %right_open) * (( 1.000 -  presser) * ( 1.000 -  bite)))
    localvar left_lip_suppressor
    %left_lip_suppressor = (( 1.000 /  %left_open) * (( 1.000 -  presser) * ( 1.000 -  bite)))
    %AU10R = ( right_upper_raiser * ( right_upper_raiser * ( 0.500 *  %right_lip_suppressor)))
    %AU10L = ( left_upper_raiser * ( left_upper_raiser * ( 0.500 *  %left_lip_suppressor)))
    %AU25R = ( right_part * (( right_part *  %right_lip_suppressor) * ( 1.000 -  smile)))
    %AU25L = ( left_part * (( left_part *  %left_lip_suppressor) * ( 1.000 -  smile)))
    %AU12AU25 = ( smile * ( smile * ( 0.500 * ( %right_lip_suppressor +  %left_lip_suppressor))))
    %AU18R = ( right_puckerer * ( right_puckerer *  %right_lip_suppressor))
    %AU18L = ( left_puckerer * ( left_puckerer *  %left_lip_suppressor))
    %AU22R = ( right_funneler * ( right_funneler *  %right_lip_suppressor))
    %AU22L = ( left_funneler * ( left_funneler *  %left_lip_suppressor))
    %AU17R = ( chin_raiser * (( 1.000 - ( jaw_drop *  0.500)) * (( 1.000 -  bite) * (( 1.000 - ( 0.600 * ( %AU25R + ( %AU18R +  %AU22R)))) * ( 1.000 -  smile)))))
    %AU17L = ( chin_raiser * (( 1.000 - ( jaw_drop *  0.500)) * (( 1.000 -  bite) * (( 1.000 - ( 0.600 * ( %AU25L + ( %AU18L +  %AU22L)))) * ( 1.000 -  smile)))))
    localvar right_depressor_suppressor
    %right_depressor_suppressor = (( 1.000 / (( %AU18R *  0.800) + (( %AU22R *  0.800) + ( %AU17R + ( bite + ( right_corner_puller + ( right_stretcher +  right_corner_depressor))))))) * (( 1.000 - ( jaw_drop *  0.500)) * ( 1.000 - ( smile *  0.500))))
    localvar left_depressor_suppressor
    %left_depressor_suppressor = (( 1.000 / (( %AU18L *  0.800) + (( %AU22L *  0.800) + ( %AU17L + ( bite + ( left_corner_puller + ( left_stretcher +  left_corner_depressor))))))) * (( 1.000 - ( jaw_drop *  0.500)) * ( 1.000 - ( smile *  0.500))))
    %AU15R = ( right_corner_depressor * ( right_corner_depressor *  %right_depressor_suppressor))
    %AU15L = ( left_corner_depressor * ( left_corner_depressor *  %left_depressor_suppressor))
    localvar right_corner_suppressor
    %right_corner_suppressor = (( 1.000 / (( %AU18R *  0.800) + (( %AU22R *  0.800) + ( %AU17R + ( bite + ( right_corner_puller + ( right_stretcher +  right_corner_depressor))))))) * (( 1.000 - ( jaw_drop *  0.500)) * ( 1.000 -  smile)))
    localvar left_corner_suppressor
    %left_corner_suppressor = (( 1.000 / (( %AU18L *  0.800) + (( %AU22L *  0.800) + ( %AU17L + ( bite + ( left_corner_puller + ( left_stretcher +  left_corner_depressor))))))) * (( 1.000 - ( jaw_drop *  0.500)) * ( 1.000 -  smile)))
    %AU12R = ( right_corner_puller * ( right_corner_puller *  %right_corner_suppressor))
    %AU12L = ( left_corner_puller * ( left_corner_puller *  %left_corner_suppressor))
    %AU20R = ( right_stretcher * ( right_stretcher *  %right_corner_suppressor))
    %AU20L = ( left_stretcher * ( left_stretcher *  %left_corner_suppressor))
    %AU32 =  bite
    %AU24 = ( presser + (( 1.000 -  presser) *  tightener))
    %AU31 = ( jaw_clencher * ( jaw_clencher / ( jaw_clencher +  jaw_drop)))
    localvar right_drop_suppressor
    %right_drop_suppressor = (( 1.000 / (( 0.500 *  %right_open) +  right_mouth_drop)) * (( 1.000 -  presser) * ( 1.000 -  bite)))
    localvar left_drop_suppressor
    %left_drop_suppressor = (( 1.000 / (( 0.500 *  %left_open) +  left_mouth_drop)) * (( 1.000 -  presser) * ( 1.000 -  bite)))
    localvar right_drop
    %right_drop = ( right_mouth_drop * ( right_mouth_drop *  %right_drop_suppressor))
    localvar left_drop
    %left_drop = ( left_mouth_drop * ( left_mouth_drop *  %left_drop_suppressor))
    %AU26R = ( jaw_drop * (( 1.000 -  %right_drop) * ( jaw_drop / ( jaw_clencher +  jaw_drop))))
    %AU26L = ( jaw_drop * (( 1.000 -  %left_drop) * ( jaw_drop / ( jaw_clencher +  jaw_drop))))
    %AU27R = ( jaw_drop * ( %right_drop * ( jaw_drop / ( jaw_clencher +  jaw_drop))))
    %AU27L = ( jaw_drop * ( %left_drop * ( jaw_drop / ( jaw_clencher +  jaw_drop))))
    %AU16 = ( lower_lip * (( lower_lip * ( 0.250 * ( %right_lip_suppressor +  %left_lip_suppressor))) * ( 1.000 - ( 0.500 * ( %AU27R +  %AU27L)))))
    localvar mouth
    %mouth = (( %AU27R *  0.500) + (( %AU27L *  0.500) + (( %AU22R *  0.350) + (( %AU22L *  0.350) + (( %AU18R *  0.250) + (( %AU18L *  0.250) + (( %AU25R *  0.350) + (( %AU25L *  0.350) + (( %AU32 *  0.500) + ( %AU12AU25 + ((( %AU27ZR +  %AU27ZL) * ( 0.500 *  0.700)) + ( %AU16 *  0.400))))))))))))
}

$poseparameter move_yaw -180.00 180.00
$poseparameter body_pitch -90.00 90.00
$poseparameter body_yaw -90.00 90.00

$cdmaterials "models\player\utf_marine\"
$cdmaterials "models\Humans\Male\Group01\"
$cdmaterials "models\Humans\Male\"

$hboxset "default"

// Model uses material "utf_marine_diffuse.vmt"
// Model uses material "mouth.vmt"
// Model uses material "van_facemap.vmt"
// Model uses material "dark_eyeball_l.vmt"
// Model uses material "dark_eyeball_r.vmt"
// Model uses material "pupil_r.vmt"
// Model uses material "glint.vmt"
// Model uses material "pupil_l.vmt"

$attachment "grenade0" "ValveBiped.Bip01_Pelvis" 7.00 1.50 1.00 rotate -0.00 0.00 -80.00
$attachment "grenade1" "ValveBiped.Bip01_Pelvis" 7.50 1.50 -3.50 rotate -0.00 0.00 -80.00
$attachment "grenade2" "ValveBiped.Bip01_Pelvis" -7.00 1.50 1.00 rotate -0.00 0.00 -80.00
$attachment "grenade3" "ValveBiped.Bip01_Pelvis" -7.50 1.50 -3.50 rotate -0.00 0.00 -80.00
$attachment "pistol" "ValveBiped.Bip01_R_Thigh" 8.00 1.00 -3.50 rotate 0.00 -0.00 0.00
$attachment "primary" "ValveBiped.Bip01_Spine2" 0.00 -4.00 -2.00 rotate -0.00 -0.00 -0.00
$attachment "defusekit" "ValveBiped.Bip01_Pelvis" 0.00 1.50 -8.00 rotate -90.00 -90.00 0.00
$attachment "lfoot" "ValveBiped.Bip01_L_Foot" 0.00 5.00 -0.00 rotate -0.00 0.00 0.00
$attachment "rfoot" "ValveBiped.Bip01_R_Foot" -0.00 5.00 -0.00 rotate -0.00 -0.00 0.00
$attachment "muzzle_flash" "ValveBiped.Bip01_L_Hand" 0.00 0.00 0.00 rotate 0.00 -0.00 -0.00
**$attachment "eyes" "ValveBiped.Bip01_Head1" -0.06 -2.78 67.04 absolute
$attachment "mouth" "ValveBiped.Bip01_Head1" 0.80 -5.80 -0.15 rotate 0 -80 -90**

$includemodel "humans/male_shared.mdl"
$includemodel "humans/male_ss.mdl"
$includemodel "humans/male_gestures.mdl"
$includemodel "humans/male_postures.mdl"

$includemodel "m_anm.mdl"
$includemodel "m_gst.mdl"
$includemodel "m_pst.mdl"
$includemodel "m_shd.mdl"
$includemodel "m_ss.mdl"

$includemodel "cs_fix.mdl"

$surfaceprop "flesh"

**$eyeposition 0 0 70**

$illumposition 4.248 -3.168 35.647

$sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00

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

$collisionjoints "phymodel.smd" {

	$mass 94.0
	$inertia 10.00
	$damping 1.00
	$rotdamping 10.00
	$rootbone "valvebiped.bip01_pelvis"
	$jointmassbias "valvebiped.bip01_pelvis" 2.60

	$jointmassbias "valvebiped.bip01_spine1" 2.00
	$jointconstrain "valvebiped.bip01_spine1" x limit -10.00 10.00 0.00
	$jointconstrain "valvebiped.bip01_spine1" y limit -16.00 16.00 0.00
	$jointconstrain "valvebiped.bip01_spine1" z limit -20.00 30.00 0.00

	$jointmassbias "valvebiped.bip01_spine2" 2.40
	$jointconstrain "valvebiped.bip01_spine2" x limit -15.00 15.00 0.00
	$jointconstrain "valvebiped.bip01_spine2" y limit -12.00 12.00 0.00
	$jointconstrain "valvebiped.bip01_spine2" z limit -20.00 20.00 0.00

	$jointrotdamping "valvebiped.bip01_r_clavicle" 6.00
	$jointconstrain "valvebiped.bip01_r_clavicle" x limit -15.00 15.00 0.00
	$jointconstrain "valvebiped.bip01_r_clavicle" y limit -10.00 10.00 0.00
	$jointconstrain "valvebiped.bip01_r_clavicle" z limit 0.00 45.00 0.00

	$jointmassbias "valvebiped.bip01_l_clavicle" 2.00
	$jointrotdamping "valvebiped.bip01_l_clavicle" 6.00
	$jointconstrain "valvebiped.bip01_l_clavicle" x limit -15.00 15.00 0.00
	$jointconstrain "valvebiped.bip01_l_clavicle" y limit -10.00 10.00 0.00
	$jointconstrain "valvebiped.bip01_l_clavicle" z limit 0.00 45.00 0.00

	$jointmassbias "valvebiped.bip01_l_upperarm" 0.80
	$jointconstrain "valvebiped.bip01_l_upperarm" x limit -40.00 40.00 0.00
	$jointconstrain "valvebiped.bip01_l_upperarm" y limit -20.00 91.00 0.00
	$jointconstrain "valvebiped.bip01_l_upperarm" z limit -80.00 24.00 0.00

	$jointmassbias "valvebiped.bip01_l_forearm" 0.60
	$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_forearm" z limit -123.00 -3.00 0.00

	$jointrotdamping "valvebiped.bip01_l_hand" 1.00
	$jointconstrain "valvebiped.bip01_l_hand" x limit -25.00 25.00 0.00
	$jointconstrain "valvebiped.bip01_l_hand" y limit -35.00 35.00 0.00
	$jointconstrain "valvebiped.bip01_l_hand" z limit -50.00 50.00 0.00

	$jointmassbias "valvebiped.bip01_r_upperarm" 0.80
	$jointconstrain "valvebiped.bip01_r_upperarm" x limit -40.00 40.00 0.00
	$jointconstrain "valvebiped.bip01_r_upperarm" y limit -20.00 91.00 0.00
	$jointconstrain "valvebiped.bip01_r_upperarm" z limit -80.00 24.00 0.00

	$jointmassbias "valvebiped.bip01_r_forearm" 0.60
	$jointconstrain "valvebiped.bip01_r_forearm" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_forearm" z limit -120.00 -3.00 0.00

	$jointrotdamping "valvebiped.bip01_r_hand" 1.00
	$jointconstrain "valvebiped.bip01_r_hand" x limit -25.00 25.00 0.00
	$jointconstrain "valvebiped.bip01_r_hand" y limit -35.00 35.00 0.00
	$jointconstrain "valvebiped.bip01_r_hand" z limit -50.00 50.00 0.00

	$jointmassbias "valvebiped.bip01_r_thigh" 1.30
	$jointconstrain "valvebiped.bip01_r_thigh" x limit -12.00 12.00 0.00
	$jointconstrain "valvebiped.bip01_r_thigh" y limit -8.00 33.00 0.00
	$jointconstrain "valvebiped.bip01_r_thigh" z limit -79.00 24.00 0.00

	$jointmassbias "valvebiped.bip01_r_calf" 0.80
	$jointconstrain "valvebiped.bip01_r_calf" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_calf" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_calf" z limit -6.00 116.00 0.00

	$jointconstrain "valvebiped.bip01_r_foot" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_foot" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_r_foot" z limit -26.00 53.00 0.00

	$jointmassbias "valvebiped.bip01_l_thigh" 1.30
	$jointconstrain "valvebiped.bip01_l_thigh" x limit -12.00 12.00 0.00
	$jointconstrain "valvebiped.bip01_l_thigh" y limit -8.00 33.00 0.00
	$jointconstrain "valvebiped.bip01_l_thigh" z limit -79.00 24.00 0.00

	$jointconstrain "valvebiped.bip01_l_calf" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_calf" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_calf" z limit 0.00 0.00 0.00

	$jointconstrain "valvebiped.bip01_l_foot" x limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_foot" y limit 0.00 0.00 0.00
	$jointconstrain "valvebiped.bip01_l_foot" z limit -32.00 59.00 0.00

	$jointmassbias "valvebiped.bip01_head1" 4.00
	$jointrotdamping "valvebiped.bip01_head1" 3.00
	$jointconstrain "valvebiped.bip01_head1" x limit -50.00 50.00 0.00
	$jointconstrain "valvebiped.bip01_head1" y limit -20.00 20.00 0.00
	$jointconstrain "valvebiped.bip01_head1" z limit -26.00 30.00 0.00
}

I just looked over the QC file for the model and found out that the eye positions are in the QC, but instead of “pupil_l” and “pupil_r”, there was “Cry_caucasian_1” instead. I tried replacing those lines, but the model turns invisible. Any thoughts?

Sorry for the bump, but the model is really close to being released otherwise.

Does the QC problem seem fixable or is it one of those bugs that have no solution?