Alyx nesan.qc
出典: MediaArtWiki
Alyxを自分で作ったモデル(以下の例ではNesan)に置き換えるとする。 作成されるモデルの名前はAlyx.mdlとなる。
自作モデルにnesan01.smdと、 顔アニメーションのファイルnesan01.vtaを使う。 また、 mdldecompilerでオリジナルのAlyx.mdlから抽出した、 ragdoll.smdとphysmodel.smdもビルドに必要になる。
episode two用のAlyxモデルはAlyx.mdlとAlyx_ep2.mdlの二種類必要。
以下のqcファイルはmdldecompilerAlyx.mdlから得られたmdldecompiler.qc を参考にしたもの。
/*
==============================================================================
alyx nesan
==============================================================================
*/
$modelname Alyx.mdl
$cdmaterials sdk\models\Humans\Male
$eyeposition 0.000 0.000 65.000
$model alyx "nesan01.smd"{
flexfile "nesan01.vta" {
flex "AU42" frame 5 // 5 eyes half_closed; Upper eyelids, Half-Closed
flexpair "AU1" 1.0 frame 6 // 6 brow inner_raiser; Inner brow raiser - Inner portion of eyebrows raised.
flexpair "AU2" 1.0 frame 7 // 7 brow outer_raiser; Outer brow raiser - Outer and/or center portion of eyebrows raised.
flexpair "AU4" 1.0 frame 8 // 8 brow lowerer; Brow lowerer - Entire brow lowered, and pulled.
flexpair "AU1AU2" 1.0 frame 9 // 9 brow brow_raiser; Brow raise - Entire brow raised.
flexpair "AU12" 1.0 frame 10 // 10 mouth corner_puller; Lip Corner Puller - Smile with mouth closed.
flex "AU12AU25" frame 11 // 12 mouth open_mouth_smile; Open Mouth Smile
flexpair "AU15" 1.0 frame 12 // 13 mouth corner_depressor; Frown - pull corners of the mouth down.
flexpair "AU17" 1.0 frame 13 // 14 mouth chin_raiser; Chin Raiser - push up lower lip and chin muscle.
flexpair "AU10" 1.0 frame 14 // 15 mouth upper_raiser; Lip Raiser - raise upper lip.
flex "AU16" frame 15 // 17 mouth lower_lip_depressor; Lower Lip Down
flexpair "AU6" 1.0 frame 16 // 18 nose cheek_raiser; Cheek Raiser - The cheek motion part of an eye-squint.
flexpair "AU9" 1.0 frame 17 // 19 nose wrinkler; Nose wrinkler - Wrinkle your nose, but don't open your mouth.
flexpair "AU25" 1.0 frame 18 // 21 phoneme part; Lips part - Lips relaxed open, jaw neutral.
flexpair "AU18" 1.0 frame 19 // 22 phoneme puckerer; Lip Puckerer - Lips making the "oo" sound in "fool", jaw neutral.
flexpair "AU22" 1.0 frame 20 // 23 phoneme funneler; Lip Funneler - Lips funnel outwards, making the "ir" sound in "flirt". Jaw neutral.
flexpair "AU20" 1.0 frame 21 // 24 phoneme stretcher; Lip Stretcher - Lips pulled laterally into a "flat" smile. Jaw neutral.
flex "AU32" frame 22 // 25 phoneme bite; Lip Bite - Upper teeth biting the lower lip, used to make the "f" and "v" sound. Jaw neutral.
flex "AU24" frame 23 // 26 phoneme presser; Lip Presser - Lips pushed together, making the bilabial stop "b", "m", and "p". Jaw neutral.
flex "AU38" frame 24 // 28 nose dilator; Nostril Dilator - Flare out the nostril wings.
flex "AU31" frame 25 // 30 phoneme jaw_clencher; Jaw Clencher - Lips neutral, teeth (molars) touching.
flexpair "AU26" 1.0 frame 26 // 31 phoneme jaw_dropped; Jaw Dropped - Lips neutral, jaw drop is marked but not extreme (1 inch to 1 1/2 inches).
flexpair "AU27" 1.0 frame 27 // 32 phoneme mouth_stretch; Mouth stretch - Jaw position same as Jaw Dropped, but mouth is relaxed and open as wide as jaw.
flexpair "AU26Z" 1.0 frame 28 // 33 phoneme jaw_dropped; Jaw Dropped - Extreme.
flexpair "AU27Z" 1.0 frame 29 // 34 phoneme mouth_stretch; Mouth stretch - Extreme.
}
eyeball lefteye "ValveBiped.Bip01_Head1" 1.377 -2.1 64.934 "eyeball_l" 1 -4 "pupil_l" 0.63
eyeball righteye "ValveBiped.Bip01_Head1" -1.377 -2.1 64.934 "eyeball_r" 1 4 "pupil_r" 0.63
eyelid upper_right "nesan01.vta" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split 0.1 eyeball righteye
eyelid lower_right "nesan01.vta" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split 0.1 eyeball righteye
eyelid upper_left "nesan01.vta" lowerer 1 -0.2621 neutral 0 0.1287 raiser 2 0.2467 split -0.1 eyeball lefteye
eyelid lower_left "nesan01.vta" lowerer 3 -0.3409 neutral 0 -0.2156 raiser 4 -0.0736 split -0.1 eyeball lefteye
mouth 0 "mouth" ValveBiped.Bip01_Head1 0.000 1.000 0.000
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))))))))))))
}
//end eye/face data
$poseparameter move_yaw -180.00 180.00 360.00
$hboxset "default"
$hbox 1 "ValveBiped.Bip01_Head1" -2.250 -5.000 -3.150 7.250 5.000 3.350
$hbox 4 "ValveBiped.Bip01_L_UpperArm" -0.810 -2.250 -3.050 11.190 2.750 1.200
$hbox 4 "ValveBiped.Bip01_L_Forearm" -1.250 -1.880 -2.000 11.750 1.620 1.000
$hbox 4 "ValveBiped.Bip01_L_Hand" 0.000 -1.070 -1.500 6.000 0.680 3.000
$hbox 5 "ValveBiped.Bip01_R_UpperArm" -1.500 -2.250 -1.250 11.500 2.750 2.750
$hbox 5 "ValveBiped.Bip01_R_Forearm" -0.820 -1.900 -1.150 11.180 1.600 1.850
$hbox 5 "ValveBiped.Bip01_R_Hand" -0.500 -1.130 -3.250 5.500 0.630 1.750
$hbox 6 "ValveBiped.Bip01_L_Thigh" 0.500 -3.500 -3.250 17.500 4.500 3.250
$hbox 6 "ValveBiped.Bip01_L_Calf" 0.740 -2.350 -2.150 17.740 3.650 2.350
$hbox 6 "ValveBiped.Bip01_L_Foot" -2.000 -1.800 -1.450 6.000 3.200 2.050
$hbox 6 "ValveBiped.Bip01_L_Toe0" -0.170 -1.500 -1.300 2.570 0.300 1.700
$hbox 7 "ValveBiped.Bip01_R_Thigh" 0.500 -3.500 -3.000 17.500 4.500 3.000
$hbox 7 "ValveBiped.Bip01_R_Calf" 0.740 -2.350 -2.350 17.740 3.650 2.150
$hbox 7 "ValveBiped.Bip01_R_Foot" -2.000 -1.750 -2.150 6.000 3.250 1.350
$hbox 7 "ValveBiped.Bip01_R_Toe0" 0.000 -1.380 -1.630 2.740 0.380 1.630
$hbox 3 "ValveBiped.Bip01_Pelvis" -5.250 -3.880 -6.250 5.750 4.120 3.750
$hbox 3 "ValveBiped.Bip01_Spine1" -4.500 -2.000 -4.980 3.500 6.000 4.970
$hbox 2 "ValveBiped.Bip01_Spine2" -0.500 -2.500 -6.000 10.500 7.500 6.000
$attachment "eyes" "ValveBiped.Bip01_Head1" 0 -2.1 64.934 absolute
$attachment "lefteye" "ValveBiped.Bip01_Head1" 2.81 -3.89 -1.32 rotate 0.00 -80.10 -90.00
$attachment "righteye" "ValveBiped.Bip01_Head1" 2.81 -3.89 1.30 rotate 0.00 -80.10 -90.00
$attachment "nose" "ValveBiped.Bip01_Head1" 1.70 -5.30 -0.00 rotate 0.00 -80.00 -90.00
$attachment "mouth" "ValveBiped.Bip01_Head1" 0.20 -4.90 -0.00 rotate 0.00 -80.00 -90.00
$attachment "amulet" "ValveBiped.Bip01_Spine4" 0.30 5.00 0.00 rotate -0.00 90.00 90.00
$attachment "chest" "ValveBiped.Bip01_Spine4" -4.00 4.00 0.00 rotate -0.00 83.00 90.00
$attachment "hips" "ValveBiped.Bip01_Pelvis" 0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
$attachment "lefthand" "ValveBiped.Bip01_L_Hand" 3.50 -0.50 0.00 rotate -0.00 0.00 -0.00
$attachment "righthand" "ValveBiped.Bip01_R_Hand" 3.50 -0.50 0.00 rotate -0.00 -0.00 0.00
$attachment "pouch1" "ValveBiped.Bip01_Pelvis" 5.50 1.00 2.00 rotate -90.00 -90.00 0.00
$attachment "pouch2" "ValveBiped.Bip01_Pelvis" 6.50 0.50 -2.00 rotate -90.00 -90.00 0.00
$attachment "physgun_attachment" "ValveBiped.physgun_attachment" -0.00 0.00 0.00 rotate -90.00 -90.00 0.00
$attachment "emp" "ValveBiped.Anim_Attachment_RH" 0.00 -0.00 5.00 rotate -90.00 -90.00 0.00
$attachment "Emp_Holster" "ValveBiped.Bip01_Pelvis" -6.44 2.22 -1.95 rotate -1.37 -103.07 90.28
$attachment "forward" "ValveBiped.forward" 0.00 -0.00 0.00 rotate 0.00 0.00 -0.00
$attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" -0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
$attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" 0.00 -0.00 -0.00 rotate -90.00 -90.00 0.00
$includemodel "alyx_animations.mdl"
$includemodel "alyx_postures.mdl"
$includemodel "alyx_gestures.mdl"
$includemodel "humans/female_shared.mdl"
$includemodel "humans/female_ss.mdl"
$surfaceprop "flesh"
$illumposition 0.855 -0.052 34.763
$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 60.0
$inertia 5.00
$damping 0.01
$rotdamping 1.50
$rootbone "valvebiped.bip01_pelvis"
$jointmerge "ValveBiped.Bip01_Pelvis" "ValveBiped.Bip01_Spine1"
$jointconstrain "valvebiped.bip01_spine2" x limit -48.00 48.00 0.20
$jointconstrain "valvebiped.bip01_spine2" y limit -26.00 26.00 0.20
$jointconstrain "valvebiped.bip01_spine2" z limit -39.00 68.00 0.20
$jointconstrain "valvebiped.bip01_r_upperarm" x limit -64.00 64.00 0.20
$jointconstrain "valvebiped.bip01_r_upperarm" y limit -26.00 122.00 0.20
$jointconstrain "valvebiped.bip01_r_upperarm" z limit -122.00 50.00 0.20
$jointconstrain "valvebiped.bip01_l_upperarm" x limit -64.00 64.00 0.20
$jointconstrain "valvebiped.bip01_l_upperarm" y limit -122.00 28.00 0.20
$jointconstrain "valvebiped.bip01_l_upperarm" z limit -100.00 59.00 0.20
$jointconstrain "valvebiped.bip01_l_forearm" x limit 0.00 0.00 0.20
$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_l_forearm" z limit -140.00 0.00 0.20
$jointconstrain "valvebiped.bip01_l_hand" x limit -68.00 68.00 0.20
$jointconstrain "valvebiped.bip01_l_hand" y limit -37.00 41.00 0.20
$jointconstrain "valvebiped.bip01_l_hand" z limit -44.00 70.00 0.20
$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 -149.00 1.00 0.20
$jointconstrain "valvebiped.bip01_r_hand" x limit -75.00 93.00 0.20
$jointconstrain "valvebiped.bip01_r_hand" y limit -37.00 32.00 0.20
$jointconstrain "valvebiped.bip01_r_hand" z limit -48.00 66.00 0.20
$jointconstrain "valvebiped.bip01_r_thigh" x limit -50.00 48.00 0.20
$jointconstrain "valvebiped.bip01_r_thigh" y limit -19.00 70.00 0.20
$jointconstrain "valvebiped.bip01_r_thigh" z limit -79.00 73.00 0.20
$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 0.00 133.00 0.20
$jointconstrain "valvebiped.bip01_head1" x limit -61.00 61.00 0.20
$jointconstrain "valvebiped.bip01_head1" y limit -44.00 44.00 0.20
$jointconstrain "valvebiped.bip01_head1" z limit -32.00 50.00 0.20
$jointconstrain "valvebiped.bip01_l_thigh" x limit -39.00 39.00 0.20
$jointconstrain "valvebiped.bip01_l_thigh" y limit -59.00 23.00 0.20
$jointconstrain "valvebiped.bip01_l_thigh" z limit -84.00 66.00 0.20
$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 131.00 0.20
$jointconstrain "valvebiped.bip01_l_foot" x limit -23.00 23.00 0.20
$jointconstrain "valvebiped.bip01_l_foot" y limit -28.00 28.00 0.20
$jointconstrain "valvebiped.bip01_l_foot" z limit -46.00 46.00 0.20
$jointconstrain "valvebiped.bip01_r_foot" x limit -23.00 23.00 0.20
$jointconstrain "valvebiped.bip01_r_foot" y limit -23.00 23.00 0.20
$jointconstrain "valvebiped.bip01_r_foot" z limit -35.00 57.00 0.20
}

