So I made some models a few weeks back for sfm
Im trying to port them to gmod, but ive run into a bit of a snag.
The problem I have is when I bring the gmod compile of the characters into gmod I get
“Model uses STRIP_IS_QUADLIST_REG - will crash in this engine - so not loading!”
I would like to import the hwm flexes, the tf2 mercs have hwm and run fine in gmod.
My QC and other related files:
$cd "F:\Steam\SteamApps\common\sourcefilmmaker\content\Source Studio\modelsrc\rantis\mascots appet"
$upaxis Y
$modelname "rantis/mascots/tappet.mdl"
$proceduralbones "Tappet_helper_bones.vrd"
$hboxset "default"
$hbox 0 "Bip01_Pelvis" -6.76 -7.33 -4.11 8.33 7.33 5.39
$hbox 0 "Bip01_Spine" -6.48 -6.85 -3.19 7.43 6.85 6.32
$hbox 0 "Bip01_Spine1" -5.94 -6.24 -2.41 6.09 6.24 6.78
$hbox 0 "Bip01_Spine2" -7.91 -5.41 -2.13 5.21 5.41 6.43
$hbox 0 "Bip01_Spine4" -5.28 -3.77 -2.20 3.45 3.69 4.52
$hbox 0 "Bip01_L_Clavicle" -2.92 -5.31 -2.80 3.91 1.58 3.61
$hbox 0 "Bip01_R_Clavicle" -3.91 -1.58 -3.68 2.92 5.31 2.78
$hbox 0 "Bip01_Head1" -0.22 -6.79 -8.55 13.60 7.29 8.54
$hbox 0 "L_Ear01" -0.11 -0.77 -0.77 2.96 0.77 0.77
$hbox 0 "L_Ear02" -0.84 -0.92 -0.93 3.40 0.92 0.91
$hbox 0 "L_Ear03" -1.07 -0.99 -0.99 3.36 0.97 0.97
$hbox 0 "L_Ear04" -0.63 -0.99 -0.99 3.31 0.97 0.97
$hbox 0 "L_Ear05" -0.67 -0.99 -0.99 3.30 0.97 0.97
$hbox 0 "L_Ear06" -0.76 -0.96 -0.97 2.27 0.94 0.93
$hbox 0 "L_Ear07" -1.40 -0.83 -0.83 0.27 0.81 0.77
$hbox 0 "R_Ear01" -2.96 -0.77 -0.77 0.11 0.77 0.77
$hbox 0 "R_Ear02" -3.40 -0.92 -0.91 0.84 0.92 0.93
$hbox 0 "R_Ear03" -3.36 -0.97 -0.97 1.07 0.99 0.99
$hbox 0 "R_Ear04" -3.31 -0.97 -0.97 0.63 0.99 0.99
$hbox 0 "R_Ear05" -3.30 -0.97 -0.97 0.67 0.99 0.99
$hbox 0 "R_Ear06" -2.27 -0.94 -0.93 0.76 0.96 0.97
$hbox 0 "R_Ear07" -0.27 -0.81 -0.77 1.40 0.83 0.83
$hbox 0 "Bip01_L_UpperArm" 0.00 -1.19 -1.72 8.56 1.52 1.50
$hbox 0 "Bip01_L_Forearm" -1.71 -1.01 -1.04 7.27 1.14 1.56
$hbox 0 "hlp_l_ulna" -3.28 -0.89 -1.14 2.76 1.11 1.25
$hbox 0 "Bip01_L_Hand" -1.85 -1.01 -1.11 2.75 0.82 1.36
$hbox 0 "Bip01_L_Finger0" -0.79 -0.66 -0.99 1.04 0.63 0.67
$hbox 0 "Bip01_L_Finger01" -1.29 -0.49 -0.87 0.78 0.54 0.33
$hbox 0 "Bip01_L_Finger1" -0.79 -0.66 -0.84 1.34 0.61 0.45
$hbox 0 "Bip01_L_Finger2" -0.40 -0.56 -0.88 1.52 0.48 0.82
$hbox 0 "hlp_l_elbow" -2.96 -1.12 -1.03 2.45 1.20 1.70
$hbox 0 "Bip01_L_Bicep" -4.87 -1.81 -1.75 2.05 1.53 2.22
$hbox 0 "hlp_l_shoulder" -2.97 -3.18 -2.33 2.47 1.59 2.44
$hbox 0 "hlp_l_trap" -2.52 0.00 -1.58 0.38 1.73 1.53
$hbox 0 "Bip01_R_UpperArm" -8.56 -1.52 -1.50 0.00 1.20 1.72
$hbox 0 "Bip01_R_Forearm" -7.27 -1.14 -1.56 1.71 1.01 1.04
$hbox 0 "Bip01_R_Hand" -2.75 -0.82 -1.36 1.85 1.00 1.11
$hbox 0 "Bip01_R_Finger0" -0.79 -0.66 -0.67 1.04 0.63 0.99
$hbox 0 "Bip01_R_Finger01" -1.29 -0.49 -0.34 0.78 0.54 0.87
$hbox 0 "Bip01_R_Finger1" -1.34 -0.61 -0.45 0.79 0.66 0.84
$hbox 0 "Bip01_R_Finger2" -1.52 -0.48 -0.82 0.40 0.56 0.88
$hbox 0 "hlp_r_ulna" -2.76 -1.11 -1.25 3.28 0.89 1.14
$hbox 0 "hlp_r_elbow" -2.45 -1.20 -1.70 2.96 1.12 1.03
$hbox 0 "Bip01_R_Bicep" -2.05 -1.53 -2.22 4.93 1.71 1.75
$hbox 0 "hlp_r_shoulder" -2.47 -1.59 -2.44 2.97 3.18 2.30
$hbox 0 "hlp_r_trap" -0.38 -1.73 -1.53 2.52 0.00 1.58
$hbox 0 "Bip01_L_Thigh" -9.10 -3.15 -3.79 4.25 8.77 5.22
$hbox 0 "Bip01_L_Calf" -3.20 -4.95 -3.32 6.36 2.64 3.86
$hbox 0 "Bip01_L_Foot" -4.28 -8.07 -2.89 2.23 1.62 3.61
$hbox 0 "Bip01_L_Toe" -4.61 -1.92 -3.40 0.57 1.60 1.41
$hbox 0 "Bip01_R_Thigh" -4.25 -8.77 -5.22 9.34 3.15 3.79
$hbox 0 "Bip01_R_Calf" -6.36 -2.64 -3.86 3.20 6.26 3.32
$hbox 0 "Bip01_R_Foot" -2.23 -1.62 -3.61 4.28 8.07 2.89
$hbox 0 "Bip01_R_Toe" -0.56 -1.92 -3.40 4.60 1.60 1.40
// --------- geometry ---------
$model studio "parts/dmx/base_hwm_gmod.dmx"
$bodygroup Upper
{
studio "parts/dmx/Arms.dmx"
studio "parts/dmx/Mitts.dmx"
studio "parts/dmx/NoArms.dmx"
}
$bodygroup Lower
{
studio "parts/dmx/legs.dmx"
studio "parts/dmx/NoLegs.dmx"
}
$jigglebone "L_Ear01" {
is_flexible {
yaw_stiffness 500
yaw_damping 10
pitch_stiffness 500
pitch_damping 10
allow_length_flex
along_stiffness 500
along_damping 10
tip_mass 500
length 10
angle_constraint 25
}
}
$jigglebone "L_Ear02" {
is_flexible {
yaw_stiffness 400
yaw_damping 10
pitch_stiffness 400
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 1000
length 10
angle_constraint 45
}
}
$jigglebone "L_Ear03" {
is_flexible {
yaw_stiffness 300
yaw_damping 10
pitch_stiffness 300
pitch_damping 10
allow_length_flex
along_stiffness 300
along_damping 10
tip_mass 1500
length 10
angle_constraint 90
}
}
$jigglebone "L_Ear04" {
is_flexible {
yaw_stiffness 200
yaw_damping 10
pitch_stiffness 200
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 2000
length 10
angle_constraint 90
}
}
$jigglebone "L_Ear05" {
is_flexible {
yaw_stiffness 100
yaw_damping 10
pitch_stiffness 100
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 2500
length 10
angle_constraint 90
}
}
$jigglebone "L_Ear06" {
is_flexible {
yaw_stiffness 50
yaw_damping 10
pitch_stiffness 50
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 3000
length 10
angle_constraint 90
}
}
$jigglebone "L_Ear07" {
is_flexible {
yaw_stiffness 25
yaw_damping 10
pitch_stiffness 25
pitch_damping 10
tip_mass 3500
length 5
angle_constraint 90
}
}
$jigglebone "R_Ear01" {
is_flexible {
yaw_stiffness 500
yaw_damping 10
pitch_stiffness 500
pitch_damping 10
allow_length_flex
along_stiffness 500
along_damping 10
tip_mass 500
length 10
angle_constraint 25
}
}
$jigglebone "R_Ear02" {
is_flexible {
yaw_stiffness 400
yaw_damping 10
pitch_stiffness 400
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 1000
length 10
angle_constraint 45
}
}
$jigglebone "R_Ear03" {
is_flexible {
yaw_stiffness 300
yaw_damping 10
pitch_stiffness 300
pitch_damping 10
allow_length_flex
along_stiffness 300
along_damping 10
tip_mass 1500
length 10
angle_constraint 90
}
}
$jigglebone "R_Ear04" {
is_flexible {
yaw_stiffness 200
yaw_damping 10
pitch_stiffness 200
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 2000
length 10
angle_constraint 90
}
}
$jigglebone "R_Ear05" {
is_flexible {
yaw_stiffness 100
yaw_damping 10
pitch_stiffness 100
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 2500
length 10
angle_constraint 90
}
}
$jigglebone "R_Ear06" {
is_flexible {
yaw_stiffness 50
yaw_damping 10
pitch_stiffness 50
pitch_damping 10
allow_length_flex
along_stiffness 400
along_damping 10
tip_mass 3000
length 10
angle_constraint 90
}
}
$jigglebone "R_Ear07" {
is_flexible {
yaw_stiffness 25
yaw_damping 10
pitch_stiffness 25
pitch_damping 10
tip_mass 3500
length 10
angle_constraint 90
}
}
$surfaceprop "flesh"
$cdmaterials "models/rantis/mascots"
// --------- Animation sequences -------
$sequence "idle" parts/dmx/base.dmx fps 24
$sequence "testanim" parts/dmx/testanim.dmx fps 24
$collisionjoints "parts/smd/phymodel.smd" {
$mass 100.0
$inertia 10.00
$damping 0.05
$rotdamping 0.01
$rootbone "bip01_pelvis"
$jointrotdamping "bip01_pelvis" 3.00
//$jointskip "bip01_l_hand"
//$jointskip "bip01_r_hand"
//$jointskip "bip01_l_foot"
//$jointskip "bip01_r_foot"
$jointmassbias "Bip01_L_Clavicle" 4.00
$jointrotdamping "Bip01_L_Clavicle" 6.00
$jointconstrain "Bip01_L_Clavicle" x limit -15.00 15.00 0.00
$jointconstrain "Bip01_L_Clavicle" y limit -10.00 10.00 0.00
$jointconstrain "Bip01_L_Clavicle" z limit -0.00 45.00 0.00
$jointmassbias "Bip01_R_Clavicle" 4.00
$jointrotdamping "Bip01_R_Clavicle" 6.00
$jointconstrain "Bip01_R_Clavicle" x limit -15.00 15.00 0.00
$jointconstrain "Bip01_R_Clavicle" y limit -10.00 10.00 0.00
$jointconstrain "Bip01_R_Clavicle" z limit -0.00 45.00 0.00
$jointmassbias "bip01_head1" 4.00
$jointrotdamping "bip01_head1" 3.00
$jointconstrain "bip01_head1" x limit -50.00 50.00 0.00
$jointconstrain "bip01_head1" y limit -20.00 20.00 0.00
$jointconstrain "bip01_head1" z limit -26.00 30.00 0.00
$jointmassbias "bip01_spine2" 9.00
$jointrotdamping "bip01_spine2" 5.00
$jointconstrain "bip01_spine2" x limit -10.00 10.00 0.00
$jointconstrain "bip01_spine2" y limit -10.00 10.00 0.00
$jointconstrain "bip01_spine2" z limit -20.00 20.00 0.00
$jointmassbias "bip01_spine1" 8.0
$jointrotdamping "bip01_spine1" 5.00
$jointconstrain "bip01_spine1" x limit -10.00 10.00 0.00
$jointconstrain "bip01_spine1" y limit -16.00 16.00 0.00
$jointconstrain "bip01_spine1" z limit -20.00 30.00 0.00
$jointmassbias "bip01_spine" 8.0
$jointrotdamping "bip01_spine" 5.00
$jointconstrain "bip01_spine" x limit -10.00 10.00 0.00
$jointconstrain "bip01_spine" y limit -16.00 16.00 0.00
$jointconstrain "bip01_spine" z limit -20.00 30.00 0.00
$jointmassbias "bip01_r_upperarm" 5.00
$jointrotdamping "bip01_r_upperarm" 2.00
$jointconstrain "bip01_r_upperarm" x limit -15.00 20.00 0.00
$jointconstrain "bip01_r_upperarm" y limit -40.00 32.00 0.00
$jointconstrain "bip01_r_upperarm" z limit -80.00 25.00 0.00
$jointmassbias "bip01_l_upperarm" 5.00
$jointrotdamping "bip01_l_upperarm" 2.00
$jointconstrain "bip01_l_upperarm" x limit -15.00 20.00 0.00
$jointconstrain "bip01_l_upperarm" y limit -40.00 32.00 0.00
$jointconstrain "bip01_l_upperarm" z limit -80.00 25.00 0.00
$jointmassbias "bip01_r_forearm" 4.00
$jointrotdamping "bip01_r_forearm" 4.00
$jointconstrain "bip01_r_forearm" x limit -40.00 15.00 0.00
$jointconstrain "bip01_r_forearm" y limit 0.00 0.00 0.00
$jointconstrain "bip01_r_forearm" z limit -120.00 10.00 0.00
$jointmassbias "bip01_l_forearm" 4.00
$jointrotdamping "bip01_l_forearm" 4.00
$jointconstrain "bip01_l_forearm" x limit -40.00 15.00 0.00
$jointconstrain "bip01_l_forearm" y limit 0.00 0.00 0.00
$jointconstrain "bip01_l_forearm" z limit -120.00 10.00 0.00
$jointmassbias "bip01_r_hand" 1.00
$jointrotdamping "bip01_r_hand" 1.00
$jointconstrain "bip01_r_hand" x limit -25.00 25.00 0.00
$jointconstrain "bip01_r_hand" y limit -35.00 35.00 0.00
$jointconstrain "bip01_r_hand" z limit -50.00 50.00 0.00
$jointmassbias "bip01_l_hand" 1.00
$jointrotdamping "bip01_l_hand" 1.00
$jointconstrain "bip01_l_hand" x limit -25.00 25.00 0.00
$jointconstrain "bip01_l_hand" y limit -35.00 35.00 0.00
$jointconstrain "bip01_l_hand" z limit -50.00 50.00 0.00
$jointmassbias "bip01_r_thigh" 7.00
$jointrotdamping "bip01_r_thigh" 7.00
$jointconstrain "bip01_r_thigh" x limit -25.00 25.00 0.00
$jointconstrain "bip01_r_thigh" y limit -10.00 15.00 0.00
$jointconstrain "bip01_r_thigh" z limit -55.00 25.00 0.00
$jointmassbias "bip01_l_thigh" 7.00
$jointrotdamping "bip01_l_thigh" 7.00
$jointconstrain "bip01_l_thigh" x limit -25.00 25.00 0.00
$jointconstrain "bip01_l_thigh" y limit -10.00 15.00 0.00
$jointconstrain "bip01_l_thigh" z limit -55.00 25.00 0.00
$jointmassbias "bip01_r_calf" 4.00
$jointrotdamping "bip01_r_calf" 5.00
$jointconstrain "bip01_r_calf" x limit -10.00 25.00 0.00
$jointconstrain "bip01_r_calf" y limit -5.00 5.00 0.00
$jointconstrain "bip01_r_calf" z limit -10.00 115.00 0.00
$jointmassbias "bip01_l_calf" 4.00
$jointrotdamping "bip01_l_calf" 5.00
$jointconstrain "bip01_l_calf" x limit -10.00 25.00 0.00
$jointconstrain "bip01_l_calf" y limit -5.00 5.00 0.00
$jointconstrain "bip01_l_calf" z limit -10.00 115.00 0.00
$jointmassbias "bip01_r_foot" 1.00
$jointrotdamping "bip01_r_foot" 2.00
$jointconstrain "bip01_r_foot" x limit -20.00 30.00 0.00
$jointconstrain "bip01_r_foot" y limit -30.00 20.00 0.00
$jointconstrain "bip01_r_foot" z limit -30.00 50.00 0.00
$jointmassbias "bip01_l_foot" 1.00
$jointrotdamping "bip01_l_foot" 2.00
$jointconstrain "bip01_l_foot" x limit -20.00 30.00 0.00
$jointconstrain "bip01_l_foot" y limit -30.00 20.00 0.00
$jointconstrain "bip01_l_foot" z limit -30.00 50.00 0.00
$jointcollide bip01_head1 Bip01_L_Clavicle
$jointcollide bip01_head1 Bip01_R_Clavicle
$jointcollide bip01_head1 bip01_l_hand
$jointcollide bip01_head1 bip01_r_hand
$jointcollide bip01_l_hand bip01_pelvis
$jointcollide bip01_l_hand bip01_l_thigh
$jointcollide bip01_l_hand bip01_r_thigh
$jointcollide bip01_r_hand bip01_pelvis
$jointcollide bip01_r_hand bip01_l_thigh
$jointcollide bip01_r_hand bip01_r_thigh
$jointcollide bip01_l_forearm bip01_r_upperarm
$jointcollide bip01_l_forearm bip01_r_forearm
//$jointcollide bip01_l_forearm bip01_l_thigh
//$jointcollide bip01_l_forearm bip01_r_thigh
//$jointcollide bip01_l_forearm bip01_l_calf
//$jointcollide bip01_l_forearm bip01_r_calf
//$jointcollide bip01_l_forearm bip01_pelvis
$jointcollide bip01_l_forearm bip01_spine1
//$jointcollide bip01_l_forearm bip01_spine2
$jointcollide bip01_l_forearm bip01_head1
//$jointcollide bip01_r_forearm bip01_l_thigh
//$jointcollide bip01_r_forearm bip01_r_thigh
//$jointcollide bip01_r_forearm bip01_l_calf
//$jointcollide bip01_r_forearm bip01_r_calf
//$jointcollide bip01_r_forearm bip01_pelvis
$jointcollide bip01_r_forearm bip01_spine1
//$jointcollide bip01_r_forearm bip01_spine2
$jointcollide bip01_r_forearm bip01_head1
$jointcollide bip01_spine2 bip01_r_upperarm
$jointcollide bip01_spine2 bip01_l_upperarm
$jointcollide bip01_spine1 bip01_l_hand
$jointcollide bip01_spine1 bip01_r_hand
$jointcollide bip01_spine2 bip01_l_hand
$jointcollide bip01_spine2 bip01_r_hand
$jointcollide bip01_l_thigh bip01_r_thigh
$jointcollide bip01_l_calf bip01_r_calf
$jointcollide bip01_l_calf bip01_r_foot
$jointcollide bip01_r_calf bip01_l_foot
$jointcollide bip01_r_foot bip01_l_foot
}
My HWM lua:
-- Set the game mod to be tf_movies - all actors live in the tf_movies mod
vs.SetGame( "Source Studio" );
-- load in the actor source file
Load( vs.ContentDir() .. "modelsrc/rantis/mascots/tappet/parts/dmx/Base_Raw.dmx", "relative" );
base = "base";
-- define what the separator is for selection, as currently some of the select shapes are "SELECT-eyes" and some are "SELECT_eyes
selectSeparator = "_";
-- flag what parts of the face are going to be compiled
upperFaceSwitch = true ;
lowerFaceSwitch = true ;
-- lock teeth and throat socket.
if lowerFaceSwitch then
dofile( vs.GameDir() .. "../sdktools/lua/face_lockJawTappet.lua" );
end
-- generate corrective combinations.
dofile( vs.GameDir() .. "../sdktools/lua/face_correctorsTappet.lua" );
ResetState();
-- SaveDelta( "TongueBack" );
-- SaveDelta( "TongueCurlDown" );
-- SaveDelta( "TongueCurlUp" );
-- SaveDelta( "TongueFunnel" );
-- SaveDelta( "TongueLeft" );
-- SaveDelta( "TongueNarrow" );
-- SaveDelta( "TongueOut" );
-- SaveDelta( "TongueRight" );
-- SaveDelta( "TongueV" );
-- SaveDelta( "TongueWide" );
SaveDelta( "SELECT-tongue" );
-- group eye controls
GroupControls( "CloseLid", "CloseLidLo", "CloseLidUp" );
GroupControls( "BrowInV", "WrinkleNose", "RaiseBrowIn" );
GroupControls( "NoseV", "PressNose", "SneerNose" );
GroupControls( "NostrilFlare", "SuckNostril", "BlowNostril" );
GroupControls( "CheekH", "DeflateCheek", "InflateCheek" );
GroupControls( "JawD", "SuckJaw", "JutJaw" );
GroupControls( "JawH", "SlideJawR", "SlideJawL" );
GroupControls( "JawV", "ClenchJaw", "OpenJaw" );
GroupControls( "LipsV", "CompressLips", "OpenLips" );
GroupControls( "LipUpV", "JutUpperLip", "OpenUpperLip" );
GroupControls( "LipLoV", "RaiseChin", "OpenLowerLip" );
GroupControls( "Smile", "SmileFlat", "SmileFull", "SmileSharp" );
GroupControls( "FoldLipUp", "SuckLipUp", "FunnelLipUp" );
GroupControls( "FoldLipLo", "SuckLipLo", "FunnelLipLo" );
GroupControls( "ScalpD", "ScalpBack", "ScalpForward" );
GroupControls( "TongueH", "TongueLeft", "TongueRight" );
GroupControls( "TongueCurl", "TongueCurlUp", "TongueCurlDown" );
GroupControls( "TongueD", "TongueBack", "TongueOut" );
GroupControls( "TongueWidth", "TongueNarrow", "TongueWide" );
-- reorder controls
ReorderControls(
"CloseLid",
"InnerSquint",
"OuterSquint",
"EyesUpper",
"EyesLower",
"EyesBlink",
"EyesBlinkU",
"EyesBlinkD",
"EyesCurlU",
"EyesCurlD",
"OuterEyesFlattenLower",
"InnerEyesFlattenLower",
"OuterEyesFlattenUpper",
"InnerEyesFlattenUpper",
"EyesWall",
"EyesCross",
"EyesUp",
"EyesDown",
"EyesWideV",
"EyesWideH",
"EyesSmall",
"EyesLarge",
"BrowInV",
"BrowOutV",
"Frown",
"NoseV",
"NostrilFlare",
"CheekV",
"CheekH",
"JawD",
"JawH",
"JawV",
"LipsV",
"LipUpV",
"LipLoV",
"Smile",
"Platysmus",
"FoldLipUp",
"FoldLipLo",
"PuckerLipUp",
"PuckerLipLo",
"LipCnrTwst",
"Dimple",
"PuffLipUp",
"PuffLipLo",
"ScalpD",
"TongueD",
"TongueH",
"TongueV",
"TongueCurl",
"TongueFunnel",
"TongueWidth"
);
-- SetEyelidControl("CloseLid", true );
-- setup stereo controls
SetStereoControl("CloseLid", true );
SetStereoControl("InnerSquint", true );
SetStereoControl("OuterSquint", true );
SetStereoControl("OuterEyesFlattenLower", true );
SetStereoControl("InnerEyesFlattenLower", true );
SetStereoControl("OuterEyesFlattenUpper", true );
SetStereoControl("InnerEyesFlattenUpper", true );
SetStereoControl("EyesCurlU", true );
SetStereoControl("EyesCurlD", true );
SetStereoControl("EyesLower", true );
SetStereoControl("EyesUpper", true );
SetStereoControl("EyesBlinkU", true );
SetStereoControl("EyesBlinkD", true );
SetStereoControl("EyesBlink", true );
SetStereoControl("EyesWall", true );
SetStereoControl("EyesCross", true );
SetStereoControl("EyesUp", true );
SetStereoControl("EyesDown", true );
SetStereoControl("EyesWideV", true );
SetStereoControl("EyesWideH", true );
SetStereoControl("EyesSmall", true );
SetStereoControl("EyesLarge", true );
SetStereoControl("BrowInV", true );
SetStereoControl("BrowOutV", true );
SetStereoControl("Frown", true );
SetStereoControl("NoseV", true );
SetStereoControl("NostrilFlare", true );
SetStereoControl("CheekV", true );
SetStereoControl("CheekH", true );
SetStereoControl("JawD", false );
SetStereoControl("JawH", false );
SetStereoControl("JawV", false );
SetStereoControl("LipsV", true );
SetStereoControl("LipUpV", true );
SetStereoControl("LipLoV", true );
SetStereoControl("Smile", true );
SetStereoControl("Platysmus", true );
SetStereoControl("FoldLipUp", true );
SetStereoControl("FoldLipLo", true );
SetStereoControl("PuckerLipUp", true );
SetStereoControl("PuckerLipLo", true );
SetStereoControl("LipCnrTwst", true );
SetStereoControl("Dimple", true );
SetStereoControl("PuffLipUp", true );
SetStereoControl("PuffLipLo", true );
SetStereoControl("ScalpD", true );
SetStereoControl("TongueV", false );
SetStereoControl("TongueH", false );
SetStereoControl("TongueCurl", false );
SetStereoControl("TongueD", false );
-- add control dominators
AddDominationRule( { "BrowOutV" }, { "WrinkleNose"} );
AddDominationRule( { "FunnelLipLo" }, { "PuffLipLo"} );
AddDominationRule( { "FunnelLipLo" }, { "PuffLipUp"} );
AddDominationRule( { "FunnelLipUp" }, { "PuffLipLo"} );
AddDominationRule( { "FunnelLipUp" }, { "PuffLipUp"} );
AddDominationRule( { "LipCnrTwst" }, { "Dimple"} );
AddDominationRule( { "OpenJaw" }, { "InflateCheek"} );
AddDominationRule( { "OpenLips" }, { "PuffLipLo"} );
AddDominationRule( { "OpenLips" }, { "PuffLipUp"} );
AddDominationRule( { "OpenLowerLip" }, { "CompressLips"} );
AddDominationRule( { "OpenLowerLip" }, { "FunnelLipLo"} );
AddDominationRule( { "OpenLowerLip" }, { "PuffLipLo"} );
AddDominationRule( { "OpenLowerLip" }, { "PuffLipUp"} );
AddDominationRule( { "OpenLowerLip", "OpenUpperLip" }, { "OpenLips"} );
AddDominationRule( { "OpenUpperLip" }, { "CompressLips"} );
AddDominationRule( { "OpenUpperLip" }, { "FunnelLipUp"} );
AddDominationRule( { "OpenUpperLip" }, { "PuffLipLo"} );
AddDominationRule( { "OpenUpperLip" }, { "PuffLipUp"} );
AddDominationRule( { "Platysmus" }, { "FunnelLipLo"} );
AddDominationRule( { "Platysmus" }, { "FunnelLipUp"} );
AddDominationRule( { "Platysmus" }, { "LipCnrTwst"} );
AddDominationRule( { "Platysmus" }, { "PuckerLipLo"} );
AddDominationRule( { "Platysmus" }, { "PuckerLipUp"} );
AddDominationRule( { "PuckerLipLo" }, { "SmileFlat"} );
AddDominationRule( { "PuckerLipLo" }, { "SmileFull"} );
AddDominationRule( { "PuckerLipLo" }, { "SmileSharp"} );
AddDominationRule( { "PuckerLipLo" }, { "SuckLipLo"} );
AddDominationRule( { "PuckerLipLo", "OpenJaw" }, { "FunnelLipLo"} );
AddDominationRule( { "PuckerLipUp" }, { "SmileFlat"} );
AddDominationRule( { "PuckerLipUp" }, { "SmileFull"} );
AddDominationRule( { "PuckerLipUp" }, { "SmileSharp"} );
AddDominationRule( { "PuckerLipUp" }, { "SuckLipUp"} );
AddDominationRule( { "PuckerLipUp", "OpenJaw" }, { "FunnelLipUp"} );
AddDominationRule( { "SmileFull" }, { "InflateCheek"} );
AddDominationRule( { "SmileFull" }, { "SuckLipUp"} );
dofile( vs.GameDir() .. "../sdktools/lua/face_lipZipper.lua" );
dofile( vs.GameDir() .. "../sdktools/lua/face_wrinkleScales.lua" );
ComputeNormals();
ComputeWrinkles();
-- generate wrinkle weights maps for the teeth to stop them from glowing.
dofile( vs.GameDir() .. "../sdktools/lua/face_wrinkleTeeth.lua" );
-- create wrinkle deltas for glowing tongue
ResetState();
SetState( "SELECT-tongue" ) ;
ComputeWrinkle( "OpenJaw", 1 );
DeleteDelta( "SELECT-tongue" );
-- cleanup
dofile( vs.GameDir() .. "../sdktools/lua/face_cleanup.lua" );
-- Save a version of the head for the sfm.
Save( vs.ContentDir() .. "modelsrc/rantis/mascots/tappet/parts/dmx/Base_morphs.dmx" );
Merge( vs.ContentDir() .. "modelsrc/rantis/mascots/tappet/parts/dmx/Base.dmx", vs.ContentDir() .. "modelsrc/rantis/mascots/tappet/parts/dmx/Base_HWM.dmx" );
Source files for tappet
https://dl.dropboxusercontent.com/u/62168572/TappyGmod.zip