STEAM GROUP
Blender Source Tools BleST
STEAM GROUP
Blender Source Tools BleST
283
IN-GAME
1,719
ONLINE
Founded
8 November, 2013
All Discussions > Help > Topic Details
MosquitoFork 27 Jun, 2019 @ 10:18pm
Compiled models with shape keys don't work
Once a model is compiled as .smd that has shape keys, in Garry's mod, they look like the photos I have attached. I have no idea whether it's an issue with crowbar, the qc file, or blender itself, but I have been pulling my hair out trying to solve this problem. The only things that I do the mesh are some multiresolution, and some minor sculpt changes. When testing the shape keys inside of blender, they work fine. Any help or questions are HIGHLY appreciated. I will also attach my .QC, in case that's what the problem is. I am very new to blender, and modeling for the source engine as a whole, so I wouldn't be surprised if I just don't really know what i'm doing.

https://steamuserimages-a.akamaihd.net/ugc/781853393500988733/CAE20420E54AE860E15A1294A36A8BA7E3C8A75C/
https://steamuserimages-a.akamaihd.net/ugc/781853393500988567/B36C39FC94BD9AF9401087A753353BC78982FE72/
https://steamuserimages-a.akamaihd.net/ugc/781853033298189149/BDEB6F20FE4B14FDE0ADE9012C6160247C76DE8F/
https://steamuserimages-a.akamaihd.net/ugc/781853033298189051/123337EC045F6970DA67C78310761D9C9A2A89CD/
https://steamuserimages-a.akamaihd.net/ugc/781853033298188928/DFE767F86509324DAD73D0594F5322DC68F20C31/
https://steamuserimages-a.akamaihd.net/ugc/941719408115554931/AB9ECA4D612CDFC9F3FEF9C5B81DB0FC9246330E/
Originally posted by Artfunkel:
If you are using 2.80 then I just fixed an issue related to shape keys, so please update to grab that change.

But this looks like a completely different issue to me. Are you compiling the SMD and VTA exported by Blender together?

Given how much detail there is in this model, this might even be a limitation of the Source engine...
< >
Showing 1-5 of 5 comments
MosquitoFork 27 Jun, 2019 @ 10:20pm 
QC flexfile

// Created by Crowbar 0.58

$modelname "minic23/citizens/male_04_colorable.mdl"

$model "male_04" "male_04_colorable_male_04_reference.smd" {

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

flexfile "male_04_colorable_01.vta"
{
defaultflex frame 0
flex "right_lid_raiser" frame 1
flex "left_lid_raiser" frame 2
flex "right_lid_droop" frame 3
flex "left_lid_droop" frame 4
flex "right_lid_closer" frame 5
flex "left_lid_closer" frame 6
flex "AU42" frame 7
flexpair "AU1" 1 frame 8
flexpair "AU2" 1 frame 9
flexpair "AU4" 1 frame 10
flexpair "AU1AU2" 1 frame 11
flexpair "AU12" 1 frame 12
flex "AU12AU25" frame 13
flexpair "AU15" 1 frame 14
flexpair "AU17" 1 frame 15
flexpair "AU10" 1 frame 16
flex "AU16" frame 17
flexpair "AU6" 1 frame 18
flexpair "AU9" 1 frame 19
flexpair "AU25" 1 frame 20
flexpair "AU18" 1 frame 21
flexpair "AU22" 1 frame 22
flexpair "AU20" 1 frame 23
flex "AU32" frame 24
flex "AU24" frame 25
flex "AU38" frame 26
flex "AU31" frame 27
flexpair "AU26" 1 frame 28
flexpair "AU27" 1 frame 29
flexpair "AU26Z" 1 frame 30
flexpair "AU27Z" 1 frame 31
}

flexcontroller phoneme range 0 1 "right_lid_raiser"
flexcontroller phoneme range 0 1 "left_lid_raiser"
flexcontroller phoneme range 0 1 "right_lid_droop"
flexcontroller phoneme range 0 1 "left_lid_droop"
flexcontroller phoneme range 0 1 "right_lid_closer"
flexcontroller phoneme range 0 1 "left_lid_closer"
flexcontroller eyelid range 0 1 "right_lid_raiser"
flexcontroller eyelid range 0 1 "left_lid_raiser"
flexcontroller eyelid range 0 1 "right_lid_tightener"
flexcontroller eyelid range 0 1 "left_lid_tightener"
flexcontroller eyelid range 0 1 "right_lid_droop"
flexcontroller eyelid range 0 1 "left_lid_droop"
flexcontroller eyelid range 0 1 "right_lid_closer"
flexcontroller eyelid range 0 1 "left_lid_closer"
flexcontroller eyelid range 0 1 "half_closed"
flexcontroller eyelid range 0 1 "blink"
flexcontroller brow range 0 1 "right_inner_raiser"
flexcontroller brow range 0 1 "left_inner_raiser"
flexcontroller brow range 0 1 "right_outer_raiser"
flexcontroller brow range 0 1 "left_outer_raiser"
flexcontroller brow range 0 1 "right_lowerer"
flexcontroller brow range 0 1 "left_lowerer"
flexcontroller nose range 0 1 "right_cheek_raiser"
flexcontroller nose range 0 1 "left_cheek_raiser"
flexcontroller nose range 0 1 "wrinkler"
flexcontroller nose range 0 1 "dilator"
flexcontroller mouth range 0 1 "right_upper_raiser"
flexcontroller mouth range 0 1 "left_upper_raiser"
flexcontroller mouth range 0 1 "right_corner_puller"
flexcontroller mouth range 0 1 "left_corner_puller"
flexcontroller mouth range 0 1 "right_corner_depressor"
flexcontroller mouth range 0 1 "left_corner_depressor"
flexcontroller mouth range 0 1 "chin_raiser"
flexcontroller phoneme range 0 1 "right_part"
flexcontroller phoneme range 0 1 "left_part"
flexcontroller phoneme range 0 1 "right_puckerer"
flexcontroller phoneme range 0 1 "left_puckerer"
flexcontroller phoneme range 0 1 "right_funneler"
flexcontroller phoneme range 0 1 "left_funneler"
flexcontroller phoneme range 0 1 "right_stretcher"
flexcontroller phoneme range 0 1 "left_stretcher"
flexcontroller phoneme range 0 1 "bite"
flexcontroller phoneme range 0 1 "presser"
flexcontroller phoneme range 0 1 "tightener"
flexcontroller phoneme range 0 1 "jaw_clencher"
flexcontroller phoneme range 0 1 "jaw_drop"
flexcontroller phoneme range 0 1 "right_mouth_drop"
flexcontroller phoneme range 0 1 "left_mouth_drop"
flexcontroller mouth range 0 1 "smile"
flexcontroller mouth range 0 1 "lower_lip"
flexcontroller head range 0 1 "head_rightleft"
flexcontroller head range 0 1 "head_updown"
flexcontroller head range 0 1 "head_tilt"
flexcontroller eyes range 0 1 "eyes_updown"
flexcontroller eyes range 0 1 "eyes_rightleft"
flexcontroller body range 0 1 "body_rightleft"
flexcontroller chest range 0 1 "chest_rightleft"
flexcontroller head range 0 1 "head_forwardback"
flexcontroller gesture range 0 1 "gesture_updown"
flexcontroller gesture range 0 1 "gesture_rightleft"

localvar upper_right_raiser
localvar upper_right_neutral
localvar upper_right_lowerer
localvar upper_left_raiser
localvar upper_left_neutral
localvar upper_left_lowerer
localvar lower_right_raiser
localvar lower_right_neutral
localvar lower_right_lowerer
localvar lower_left_raiser
localvar lower_left_neutral
localvar lower_left_lowerer
localvar right_open
localvar left_open
localvar right_lip_suppressor
localvar left_lip_suppressor
localvar right_depressor_suppressor
localvar left_depressor_suppressor
localvar right_corner_suppressor
localvar left_corner_suppressor
localvar right_drop_suppressor
localvar left_drop_suppressor
localvar right_drop
localvar left_drop
%right_lid_raiser = right_lid_raiser
%left_lid_raiser = left_lid_raiser
%right_lid_droop = right_lid_droop
%left_lid_droop = left_lid_droop
%right_lid_closer = right_lid_closer
%left_lid_closer = left_lid_closer
%upper_right_raiser = right_lid_raiser * (1 - right_lid_droop * 0.8) * (1 - right_lid_closer) * (1 - blink)
%upper_right_neutral = (1 - right_lid_droop * 0.8) * (1 - right_lid_raiser) * (1 - right_lid_closer) * (1 - blink)
%upper_right_lowerer = right_lid_closer + blink * (1 - right_lid_closer)
%upper_left_raiser = left_lid_raiser * (1 - left_lid_droop * 0.8) * (1 - left_lid_closer) * (1 - blink)
%upper_left_neutral = (1 - left_lid_droop * 0.8) * (1 - left_lid_raiser) * (1 - left_lid_closer) * (1 - blink)
%upper_left_lowerer = left_lid_closer + blink * (1 - left_lid_closer)
%lower_right_raiser = right_lid_closer + blink * 0.5 * (1 - right_lid_closer)
%lower_right_neutral = (1 - right_lid_closer) * (1 - 0.5 * blink) * (1 - right_lid_tightener * 0.5) * (1 - right_cheek_raiser * 0.25)
%lower_right_lowerer = 0
%lower_left_raiser = left_lid_closer + blink * 0.5 * (1 - left_lid_closer)
%lower_left_neutral = (1 - left_lid_closer) * (1 - 0.5 * blink) * (1 - left_lid_tightener * 0.5) * (1 - left_cheek_raiser * 0.25)
%lower_left_lowerer = 0
%AU1R = right_inner_raiser * (1 - right_outer_raiser) * (1 - right_lowerer)
%AU1L = left_inner_raiser * (1 - left_outer_raiser) * (1 - left_lowerer)
%AU2R = right_outer_raiser * (1 - right_inner_raiser) * (1 - right_lowerer)
%AU2L = left_outer_raiser * (1 - left_inner_raiser) * (1 - left_lowerer)
%AU1AU2R = right_inner_raiser * right_outer_raiser * (1 - right_lowerer)
%AU1AU2L = left_inner_raiser * left_outer_raiser * (1 - left_lowerer)
%AU4R = right_lowerer
%AU4L = left_lowerer
%AU6R = right_cheek_raiser
%AU6L = left_cheek_raiser
%AU9R = wrinkler
%AU9L = wrinkler
%AU38 = dilator
%right_open = smile + right_part * (1 - smile) + right_puckerer + right_funneler + right_upper_raiser * 0.5 + lower_lip * 0.5
%left_open = smile + left_part * (1 - smile) + left_puckerer + left_funneler + left_upper_raiser * 0.5 + lower_lip * 0.5
%right_lip_suppressor = 1 / %right_open * (1 - presser) * (1 - bite)
%left_lip_suppressor = 1 / %left_open * (1 - presser) * (1 - bite)
%AU10R = right_upper_raiser * right_upper_raiser * 0.5 * %right_lip_suppressor
%AU10L = left_upper_raiser * left_upper_raiser * 0.5 * %left_lip_suppressor
%AU25R = right_part * right_part * %right_lip_suppressor * (1 - smile)
%AU25L = left_part * left_part * %left_lip_suppressor * (1 - smile)
%AU12AU25 = smile * smile * 0.5 * (%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 - jaw_drop * 0.5) * (1 - bite) * (1 - 0.6 * (%AU25R + %AU18R + %AU22R)) * (1 - smile)
%AU17L = chin_raiser * (1 - jaw_drop * 0.5) * (1 - bite) * (1 - 0.6 * (%AU25L + %AU18L + %AU22L)) * (1 - smile)
%right_depressor_suppressor = 1 / (%AU18R * 0.8 + %AU22R * 0.8 + %AU17R + bite + right_corner_puller + right_stretcher + right_corner_depressor) * (1 - jaw_drop * 0.5) * (1 - smile * 0.5)
%left_depressor_suppressor = 1 / (%AU18L * 0.8 + %AU22L * 0.8 + %AU17L + bite + left_corner_puller + left_stretcher + left_corner_depressor) * (1 - jaw_drop * 0.5) * (1 - smile * 0.5)
%AU15R = right_corner_depressor * right_corner_depressor * %right_depressor_suppressor
%AU15L = left_corner_depressor * left_corner_depressor * %left_depressor_suppressor
%right_corner_suppressor = 1 / (%AU18R * 0.8 + %AU22R * 0.8 + %AU17R + bite + right_corner_puller + right_stretcher + right_corner_depressor) * (1 - jaw_drop * 0.5) * (1 - smile)
%left_corner_suppressor = 1 / (%AU18L * 0.8 + %AU22L * 0.8 + %AU17L + bite + left_corner_puller + left_stretcher + left_corner_depressor) * (1 - jaw_drop * 0.5) * (1 - 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 - presser) * tightener
%AU31 = jaw_clencher * jaw_clencher / (jaw_clencher + jaw_drop)
%right_drop_suppressor = 1 / (0.5 * %right_open + right_mouth_drop) * (1 - presser) * (1 - bite)
%left_drop_suppressor = 1 / (0.5 * %left_open + left_mouth_drop) * (1 - presser) * (1 - bite)
%right_drop = right_mouth_drop * right_mouth_drop * %right_drop_suppressor
%left_drop = left_mouth_drop * left_mouth_drop * %left_drop_suppressor
%AU26R = jaw_drop * (1 - %right_drop) * jaw_drop / (jaw_clencher + jaw_drop)
%AU26L = jaw_drop * (1 - %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.25 * (%right_lip_suppressor + %left_lip_suppressor) * (1 - 0.5 * (%AU27R + %AU27L))
%mouth = %AU27R * 0.5 + %AU27L * 0.5 + %AU22R * 0.35 + %AU22L * 0.35 + %AU18R * 0.25 + %AU18L * 0.25 + %AU25R * 0.35 + %AU25L * 0.35 + %AU32 * 0.5 + %AU12AU25 + (%AU27ZR + %AU27ZL) * 0.5 * 0.7 + %AU16 * 0.4
}
ZeqMacaw 28 Jun, 2019 @ 4:38am 
You can check if it is Crowbar messing up by decompiling the original model then compiling with no changes.
The author of this thread has indicated that this post answers the original topic.
Artfunkel 28 Jun, 2019 @ 11:16am 
If you are using 2.80 then I just fixed an issue related to shape keys, so please update to grab that change.

But this looks like a completely different issue to me. Are you compiling the SMD and VTA exported by Blender together?

Given how much detail there is in this model, this might even be a limitation of the Source engine...
MosquitoFork 28 Jun, 2019 @ 1:42pm 
Originally posted by ZeqMacaw:
You can check if it is Crowbar messing up by decompiling the original model then compiling with no changes.

Without changes, Crowbar seems to compile the model with no issue.
MosquitoFork 28 Jun, 2019 @ 6:13pm 
Originally posted by Artfunkel:
If you are using 2.80 then I just fixed an issue related to shape keys, so please update to grab that change.

But this looks like a completely different issue to me. Are you compiling the SMD and VTA exported by Blender together?

Given how much detail there is in this model, this might even be a limitation of the Source engine...

This seemed to do the trick! Thank you so much, you've truly taken a HUGE weight off of my shoulders.
< >
Showing 1-5 of 5 comments
Per page: 1530 50

All Discussions > Help > Topic Details
Date Posted: 27 Jun, 2019 @ 10:18pm
Posts: 5