• Issues with .QC File
    7 replies, posted
Hi all. New to modding. Anyway, I've been working on a reskin for a while of the old PMC Pack. I've been working on this for a while. I have all my textures and model stuff. Anyway; I have two $CDMaterials paths laid out in my .qc, but it only uses one. Below, I have it all posted. [QUOTE]$modelname "PMC\PMC_7\PMC__01.mdl" $model "PMC" "pmc__01_reference.smd" { eyeball "eye_right" "ValveBiped.Bip01_Head1" -1.265000 -3.574993 67.870008 "eyeball_r" 1 4 "iris_unused" 0.63 eyeball "eye_left" "ValveBiped.Bip01_Head1" 1.206000 -3.574993 67.876005 "eyeball_l" 1 -4 "iris_unused" 0.63 mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0 flexfile "pmc__01.vta" { defaultflex frame 0 flexpair "AU12" 1 frame 1 flex "AU12AU25" frame 2 flexpair "AU15" 1 frame 3 flexpair "AU17" 1 frame 4 flexpair "AU10" 1 frame 5 flex "AU16" frame 6 flexpair "AU6" 1 frame 7 flexpair "AU9" 1 frame 8 flexpair "AU25" 1 frame 9 flexpair "AU18" 1 frame 10 flexpair "AU22" 1 frame 11 flexpair "AU20" 1 frame 12 flex "AU32" frame 13 flex "AU24" frame 14 flex "AU38" frame 15 flex "AU31" frame 16 flexpair "AU26" 1 frame 17 flexpair "AU27" 1 frame 18 flexpair "AU1" 1 frame 19 flexpair "AU2" 1 frame 20 flexpair "AU4" 1 frame 21 flexpair "AU1AU2" 1 frame 22 } 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 %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 + (%AU27R + %AU27L) * 0.5 * 0.7 + %AU16 * 0.4 } $surfaceprop "flesh" $contents "solid" $eyeposition 0 0 70 $maxeyedeflection 90 $cdmaterials "models\PMC\PMC_7\" $cdmaterials "models\PMC\PMC_Shared\" $attachment "eyes" "ValveBiped.Bip01_Head1" 3.23 -3.49 0.12 rotate 0 -80.1 -90 $attachment "mouth" "ValveBiped.Bip01_Head1" 0.6 -5.5 0 rotate 0 -80 -90 $attachment "chest" "ValveBiped.Bip01_Spine2" 5 4 0 rotate 0 90 90 $attachment "forward" "ValveBiped.forward" 0 0 0 rotate 0 0 0 $attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" 0 0 0 rotate -90 -90 0 $attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" 0 0 0 rotate -90 -90 0 $attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" 0 0 0 rotate -90 -90 0 $cbox 0 0 0 0 0 0 $bbox -10.888 -26.364 -2.684 9.321 26.346 73.339 $ikchain "rhand" "ValveBiped.Bip01_R_Hand" knee 0.707 0.707 0 $ikchain "lhand" "ValveBiped.Bip01_L_Hand" knee 0.707 0.707 0 $ikchain "rfoot" "ValveBiped.Bip01_R_Foot" knee 0.707 -0.707 0 $ikchain "lfoot" "ValveBiped.Bip01_L_Foot" knee 0.707 -0.707 0 $sequence "ragdoll" { "pmc__01_anims\ragdoll.smd" activity "ACT_DIERAGDOLL" 1 fadein 0.2 fadeout 0.2 fps 30 } $includemodel "humans/male_shared.mdl" $includemodel "humans/male_ss.mdl" $includemodel "humans/male_gestures.mdl" $includemodel "humans/male_postures.mdl" $includemodel "humans/female_shared.mdl" $includemodel "humans/female_ss.mdl" $includemodel "humans/female_gestures.mdl" $includemodel "humans/female_postures.mdl" $includemodel "player/male_anims.mdl" $includemodel "player/female_anims.mdl" $collisionjoints "pmc__01_physics.smd" { $mass 0 $inertia 10 $damping 0.05 $rotdamping 5 $rootbone " " $jointrotdamping "ValveBiped.Bip01_Pelvis" 3 $jointconstrain "ValveBiped.Bip01_L_Thigh" x limit -12 12 0 $jointconstrain "ValveBiped.Bip01_L_Thigh" y limit -73 6 0 $jointconstrain "ValveBiped.Bip01_L_Thigh" z limit -93 30 0 $jointmassbias "ValveBiped.Bip01_L_Calf" 4 $jointconstrain "ValveBiped.Bip01_L_Calf" x limit -10 25 0 $jointconstrain "ValveBiped.Bip01_L_Calf" y limit -5 5 0 $jointconstrain "ValveBiped.Bip01_L_Calf" z limit -10 115 0 $jointconstrain "ValveBiped.Bip01_R_Thigh" x limit -12 12 0 $jointconstrain "ValveBiped.Bip01_R_Thigh" y limit -8 75 0 $jointconstrain "ValveBiped.Bip01_R_Thigh" z limit -97 32 0 $jointmassbias "ValveBiped.Bip01_R_Calf" 4 $jointconstrain "ValveBiped.Bip01_R_Calf" x limit -10 25 0 $jointconstrain "ValveBiped.Bip01_R_Calf" y limit -5 5 0 $jointconstrain "ValveBiped.Bip01_R_Calf" z limit -10 115 0 $jointconstrain "ValveBiped.Bip01_R_Foot" x limit 0 0 0 $jointconstrain "ValveBiped.Bip01_R_Foot" y limit -25 6 0 $jointconstrain "ValveBiped.Bip01_R_Foot" z limit -15 35 0 $jointmassbias "ValveBiped.Bip01_Spine" 8 $jointconstrain "ValveBiped.Bip01_Spine" x limit -10 10 0 $jointconstrain "ValveBiped.Bip01_Spine" y limit -16 16 0 $jointconstrain "ValveBiped.Bip01_Spine" z limit -20 30 0 $jointmassbias "ValveBiped.Bip01_Spine2" 9 $jointconstrain "ValveBiped.Bip01_Spine2" x limit -10 10 0 $jointconstrain "ValveBiped.Bip01_Spine2" y limit -10 10 0 $jointconstrain "ValveBiped.Bip01_Spine2" z limit -20 20 0 $jointmassbias "ValveBiped.Bip01_L_Clavicle" 4 $jointrotdamping "ValveBiped.Bip01_L_Clavicle" 6 $jointconstrain "ValveBiped.Bip01_L_Clavicle" x limit -15 15 0 $jointconstrain "ValveBiped.Bip01_L_Clavicle" y limit -10 10 0 $jointconstrain "ValveBiped.Bip01_L_Clavicle" z limit 0 45 0 $jointmassbias "ValveBiped.Bip01_L_UpperArm" 5 $jointrotdamping "ValveBiped.Bip01_L_UpperArm" 2 $jointconstrain "ValveBiped.Bip01_L_UpperArm" x limit -15 20 0 $jointconstrain "ValveBiped.Bip01_L_UpperArm" y limit -40 32 0 $jointconstrain "ValveBiped.Bip01_L_UpperArm" z limit -80 25 0 $jointmassbias "ValveBiped.Bip01_R_Clavicle" 4 $jointrotdamping "ValveBiped.Bip01_R_Clavicle" 6 $jointconstrain "ValveBiped.Bip01_R_Clavicle" x limit -15 15 0 $jointconstrain "ValveBiped.Bip01_R_Clavicle" y limit -10 10 0 $jointconstrain "ValveBiped.Bip01_R_Clavicle" z limit 0 45 0 $jointmassbias "ValveBiped.Bip01_R_UpperArm" 5 $jointrotdamping "ValveBiped.Bip01_R_UpperArm" 2 $jointconstrain "ValveBiped.Bip01_R_UpperArm" x limit -15 20 0 $jointconstrain "ValveBiped.Bip01_R_UpperArm" y limit -40 32 0 $jointconstrain "ValveBiped.Bip01_R_UpperArm" z limit -80 25 0 $jointmassbias "ValveBiped.Bip01_R_Forearm" 4 $jointrotdamping "ValveBiped.Bip01_R_Forearm" 4 $jointconstrain "ValveBiped.Bip01_R_Forearm" x limit -40 15 0 $jointconstrain "ValveBiped.Bip01_R_Forearm" y limit 0 0 0 $jointconstrain "ValveBiped.Bip01_R_Forearm" z limit -120 10 0 $jointrotdamping "ValveBiped.Bip01_R_Hand" 1 $jointconstrain "ValveBiped.Bip01_R_Hand" x limit -25 25 0 $jointconstrain "ValveBiped.Bip01_R_Hand" y limit -35 35 0 $jointconstrain "ValveBiped.Bip01_R_Hand" z limit -50 50 0 $jointmassbias "ValveBiped.Bip01_L_Forearm" 4 $jointrotdamping "ValveBiped.Bip01_L_Forearm" 4 $jointconstrain "ValveBiped.Bip01_L_Forearm" x limit -40 15 0 $jointconstrain "ValveBiped.Bip01_L_Forearm" y limit 0 0 0 $jointconstrain "ValveBiped.Bip01_L_Forearm" z limit -120 10 0 $jointrotdamping "ValveBiped.Bip01_L_Hand" 1 $jointconstrain "ValveBiped.Bip01_L_Hand" x limit -25 25 0 $jointconstrain "ValveBiped.Bip01_L_Hand" y limit -35 35 0 $jointconstrain "ValveBiped.Bip01_L_Hand" z limit -50 50 0 $jointmassbias "ValveBiped.Bip01_Head1" 4 $jointrotdamping "ValveBiped.Bip01_Head1" 3 $jointconstrain "ValveBiped.Bip01_Head1" x limit -50 50 0 $jointconstrain "ValveBiped.Bip01_Head1" y limit -20 20 0 $jointconstrain "ValveBiped.Bip01_Head1" z limit -26 30 0 $jointconstrain "ValveBiped.Bip01_L_Foot" x limit 0 0 0 $jointconstrain "ValveBiped.Bip01_L_Foot" y limit -19 19 0 $jointconstrain "ValveBiped.Bip01_L_Foot" z limit -15 35 0 } $collisiontext { animatedfriction { "animfrictionmin" "1.000000" "animfrictionmax" "400.000000" "animfrictiontimein" "0.500000" "animfrictiontimeout" "0.000000" "animfrictiontimehold" "0.300000" } editparams { "rootname" "valvebiped.bip01_pelvis" "totalmass" "20.000000" } }[/QUOTE] Anyway, as I was saying. I was testing the models in game, and I noticed that the models only used textures in PMC_Shared. I've looked everywhere, and can't find anything. Edit: Apologies for the post location. On the help page, clicking "Modeling" brought me here.
this thread would be better in modelling. But as for retextures, the texture name in the smd file needs to match the name of the material you're making. For example if I have LV_Neutral_Foliage_A_Grass_D_JSA.tga in my smd [t]https://i.imgur.com/u5Hzv4n.png[/t] My vmt needs to be called "LV_Neutral_Foliage_A_Grass_D_JSA.vmt"
If you have multiple skins you need to add those materials in blender too. Make sure that only one material is assigned to the mesh tho. Now in the .QC you need to add the skins too. as of now it only knows where to look but not what materials to switch around. Here's how it should look like: Underneath cdmaterial: [CODE] $texturegroup "skin families" { {"Your first material" } //this is the material that you also applied to the mesh {"Your second material"} }[/CODE] If you have more than one material to switch around: [CODE] $texturegroup "skin families" { {"Material1" "material2" "material3"} {"Material1_rep" "material2_rep" "material3_rep"} }[/CODE] For more information read here: [url]https://developer.valvesoftware.com/wiki/$texturegroup[/url]
[QUOTE=Stiffy360;53007790]this thread would be better in modelling. But as for retextures, the texture name in the smd file needs to match the name of the material you're making. For example if I have LV_Neutral_Foliage_A_Grass_D_JSA.tga in my smd [t]https://i.imgur.com/u5Hzv4n.png[/t] My vmt needs to be called "LV_Neutral_Foliage_A_Grass_D_JSA.vmt"[/QUOTE] So I'd have to mess with the .smd then?
[QUOTE=Meh____;53008689]So I'd have to mess with the .smd then?[/QUOTE] If the material name you want to use is not the same as the material in the smd, then yes. (just use find and replace in notepad++ it's ez)
Why would he have to mess with the .smd if he can just alter the .QC file and recompile? Or is this a situation where the model can't be opened in a modeling software.
[QUOTE=KingPommes;53010862]Why would he have to mess with the .smd if he can just alter the .QC file and recompile? Or is this a situation where the model can't be opened in a modeling software.[/QUOTE] The QC file only tells the compiler where to look for the material, not necessarily which material is assigned to what face and so forth.
[QUOTE=KingPommes;53010862]Why would he have to mess with the .smd if he can just alter the .QC file and recompile? Or is this a situation where the model can't be opened in a modeling software.[/QUOTE] the smd states which material the model is going to use. He doesn't need to open it in a modelling software as the smd format is human readable.
Sorry, you need to Log In to post a reply to this thread.