1. Post #3801
    Vasey105's Avatar
    June 2012
    1,169 Posts
    It probably doesnt duplicate, but there there are two heads to begin with that are posed the same, and only one gets posed, making it look like it duplicates.
    How do I fix this, then? There's only one citizen head in the SMDs.
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  2. Post #3802
    Gold Member
    simkas's Avatar
    May 2005
    21,674 Posts
    How do I fix this, then? There's only one citizen head in the SMDs.
    Are there any other SMDs in use? Since it's not moving at all with faceposing, it's gotta be in something separate from the main ref SMD.
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Denmark Show Events

  3. Post #3803
    Dennab
    October 2015
    1,270 Posts
    Chains for the shield, gauntlets, and tassels all modeled, baked, and rigged. That only took a week.
    All that's left are the upper arms and back of the greaves. If I'm lucky I can finish by tomorrow night.

    For reference, this is what it looked like before.
    looks good. you really don't wanna rig those for jiggle animation tho... do you?!? this might add alil more. and is easy automatic, rather then manual. anyway...

    i hope you don't mind i featured that before video for a lil giggle of browser 'benchmark' snaps. i just happened to notice that crap right there. *shrugs*
    Reply With Quote Edit / Delete Windows 7 Firefox Germany Show Events Dumb Dumb x 4 (list)

  4. Post #3804
    Vasey105's Avatar
    June 2012
    1,169 Posts
    Are there any other SMDs in use? Since it's not moving at all with faceposing, it's gotta be in something separate from the main ref SMD.
    Just to clarify, face posing does move one of the faces.



    Apart from the physics, reference and some LODs in the main compile bit with the QC, these are the only other SMDs.
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  5. Post #3805
    Gold Member
    simkas's Avatar
    May 2005
    21,674 Posts
    Just to clarify, face posing does move one of the faces.



    Apart from the physics, reference and some LODs in the main compile bit with the QC, these are the only other SMDs.
    I'm assuming that the head_base and spine_base are both loaded onto the model? If so, are you sure you didn't accidentally include the head mesh on both or something?
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Denmark Show Events

  6. Post #3806
    Vasey105's Avatar
    June 2012
    1,169 Posts
    I'm assuming that the head_base and spine_base are both loaded onto the model? If so, are you sure you didn't accidentally include the head mesh on both or something?
    They're loaded onto the model in the QC, but they don't have the head mesh on them. 90% of the files in here are the files of the body. To be honest, I'm not even sure what they do, they were just there in the decompile.

    An example of the code for the head_base.
    Code:
    $Animation "a_Head_base" "player_basic_anims\a_Head_base.smd" {
        fps 30
        // This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
        subtract "a_pose_neutral" 0
    }
    Those are the only times it's mentioned in the QC, and the SMD itself is just the skeleton.
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  7. Post #3807
    Gold Member
    simkas's Avatar
    May 2005
    21,674 Posts
    Can you post the whole qc?
    Reply With Quote Edit / Delete Windows 7 Chrome Denmark Show Events

  8. Post #3808
    Vasey105's Avatar
    June 2012
    1,169 Posts
    I think there's a lot useless stuff in here that's a remainder from the code it needed to work in Dark Messiah, and this is my first.

    Code:
    $ModelName "NPC\Player\player_basic.mdl"
    $Model "studio" "player_basic_reference.smd" {
    
    	eyeball "eye_right" "SK_Head" -1.297800 -3.604599 67.681902 "eyeball_r" 1 4 "iris_unused" 0.66
    	eyeball "eye_left" "SK_Head" 1.287400 -3.604599 67.663401 "eyeball_l" 1 -4 "iris_unused" 0.66
    
    	eyelid upper_right "male_09.vta" lowerer 23 -0.22 neutral 0 0.17 raiser 24 0.26 split 1 eyeball "eye_right"
    	eyelid lower_right "male_09.vta" lowerer 25 -0.3 neutral 0 -0.21 raiser 26 -0.04 split 1 eyeball "eye_right"
    	eyelid upper_left "male_09.vta" lowerer 32 -0.22 neutral 0 0.17 raiser 33 0.26 split -1 eyeball "eye_left"
    	eyelid lower_left "male_09.vta" lowerer 34 -0.3 neutral 0 -0.21 raiser 35 -0.04 split -1 eyeball "eye_left"
    
    	mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0
    
    	flexfile "male_09.vta" 
    	{
    		defaultflex frame 0
    		flexpair "AU12" 1 frame 1
    		flexpair "AU12" 1 frame 2
    		flex "AU12AU25" frame 3
    		flexpair "AU15" 1 frame 4
    		flexpair "AU17" 1 frame 5
    		flexpair "AU10" 1 frame 6
    		flex "AU16" frame 7
    		flexpair "AU6" 1 frame 8
    		flexpair "AU9" 1 frame 9
    		flexpair "AU25" 1 frame 10
    		flexpair "AU18" 1 frame 11
    		flexpair "AU18" 1 frame 12
    		flexpair "AU22" 1 frame 13
    		flexpair "AU20" 1 frame 14
    		flex "AU32" frame 15
    		flex "AU24" frame 16
    		flex "AU38" frame 17
    		flex "AU31" frame 18
    		flexpair "AU26" 1 frame 19
    		flexpair "AU27" 1 frame 20
    		flexpair "AU26Z" 1 frame 21
    		flexpair "AU27Z" 1 frame 22
    		// Already in eyelid lines: flex "upper_right" frame 23
    		// Already in eyelid lines: flex "upper_right" frame 24
    		// Already in eyelid lines: flex "lower_right" frame 25
    		// Already in eyelid lines: flex "lower_right" frame 26
    		flex "AU42" frame 27
    		flexpair "AU1" 1 frame 28
    		flexpair "AU2" 1 frame 29
    		flexpair "AU4" 1 frame 30
    		flexpair "AU1AU2" 1 frame 31
    		// Already in eyelid lines: flex "upper_left" frame 32
    		// Already in eyelid lines: flex "upper_left" frame 33
    		// Already in eyelid lines: flex "lower_left" frame 34
    		// Already in eyelid lines: flex "lower_left" frame 35
    	}
    
    	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 -30 30 head_rightleft
    	flexcontroller head range -15 15 head_updown
    	flexcontroller head range -15 15 head_tilt
    	flexcontroller eyes range -30 30 eyes_updown
    	flexcontroller eyes range -30 30 eyes_rightleft
    	flexcontroller body range -30 30 body_rightleft
    	flexcontroller chest range -30 30 chest_rightleft
    	flexcontroller head range -0.2 0.2 head_forwardback
    	flexcontroller gesture range -1 1 gesture_updown
    	flexcontroller gesture range -1 1 gesture_rightleft
    
    	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 + (%AU27ZR + %AU27ZL) * 0.5 * 0.7 + %AU16 * 0.4
    }
    $BodyGroup "Player"
    {
    	studio "player_basic_reference.smd"
    }
    
    $LOD 20
    {
    	replacemodel "player_basic_reference.smd" "player_basic_player_reference_basic_lod1.smd"
    }
    $LOD 40
    {
    	replacemodel "player_basic_reference.smd" "player_basic_player_reference_basic_lod2.smd"
    }
    $ShadowLOD
    {
    	replacemodel "player_basic_reference.smd" "player_basic_player_reference_basic_lod3.smd"
    }
    
    $SurfaceProp "default"
    
    $Contents "solid"
    
    $EyePosition 0 0 82
    
    $MaxEyeDeflection 90
    
    $CDMaterials "models\NPC_Player\"
    $CDMaterials "models\Humans\Male\Group01\"
    $CDMaterials "models\Humans\Male\"
    $CDMaterials "models\humans\male\"
    
    $Attachment "CameraEyes" "SK_Camera_Eyes" 0 0 0 rotate -90 180 0
    $Attachment "MMeyes" "SK_Head" -3.26 0 -0.11 rotate -86.29 180 0
    $Attachment "Center" "SK_Root" 0 0 0 rotate -90 -90 0
    $Attachment "Chest" "SK_Spine_3" 0 0 0 rotate -90 -90 0
    $Attachment "RightHAnd" "SK_R_Hand" -2 0 0 rotate 90 0 0
    $Attachment "LeftShield" "SK_L_Forearm" 2 2 -1 rotate 15 80 0
    $Attachment "LeftHand" "SK_L_Hand" 2 0 0 rotate 0 0 0
    $Attachment "LeftHand_bow" "SK_L_Hand" 2 0 0 rotate 0 0 0
    $Attachment "LeftHand_Daggers" "SK_L_Hand" 2.8 -0.2 0 rotate -90 0 0
    $Attachment "RightHand_Daggers" "SK_R_Hand" -2.9 0.4 -0.2 rotate 90 0 0
    $Attachment "RightHand_Staff" "SK_R_Hand" -3.2 0.2 -0.2 rotate 90 0 0
    $Attachment "LeftHand_Staff" "SK_L_Hand" 3.2 0.2 -0.2 rotate -90 0 0
    $Attachment "RightHand_Lockpick" "SK_R_Hand" -3.2 0.2 -0.2 rotate 90 0 0
    $Attachment "LeftHand_Lockpick" "SK_L_Hand" 3.2 0.2 -0.2 rotate -90 0 0
    $Attachment "Quiver" "SK_Spine_4" 0 0 -8 rotate -90 -60 0
    $Attachment "Helmet" "SK_Head" 10 0 0 rotate -90 180 0
    $Attachment "ring" "SK_R_Finger_C1" -1 -0.15 -0.1 rotate 0 -70 0
    $attachment "eyes" "SK_Head" 0.00 -0.00 69.85 absolute
    $attachment "mouth" "SK_Head" 0.80 -5.80 -0.15 rotate 0 -80 -90
    
    $CBox 0 0 0 0 0 0
    
    $BBox -13.884 -26.638 0.007 12.353 26.919 75.817
    
    
    $PoseParameter "move_yaw" -180 180 360
    $PoseParameter "body_pitch" -38.43747 71.35991 0
    $PoseParameter "body_yaw" -47.71033 47.71035 0
    $PoseParameter "body_roll" -35.78942 35.78944 0
    
    $Animation "a_pose_neutral" "player_basic_anims\a_pose_neutral.smd" {
    	fps 30
    }
    
    $Animation "a_Head_base" "player_basic_anims\a_Head_base.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_Spine_base" "player_basic_anims\a_Spine_base.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_body_rot_lt" "player_basic_anims\a_body_rot_lt.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_body_rot_rt" "player_basic_anims\a_body_rot_rt.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_body_rot_z_lt" "player_basic_anims\a_body_rot_z_lt.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_body_rot_z_rt" "player_basic_anims\a_body_rot_z_rt.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_body_rot_down" "player_basic_anims\a_body_rot_down.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Animation "a_body_rot_up" "player_basic_anims\a_body_rot_up.smd" {
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Sequence "ragdoll" {
    	"player_basic_anims\ragdoll.smd"
    	activity "ACT_DIERAGDOLL" 1
    	fadein 0.2
    	fadeout 0.2
    	fps 30
    }
    
    $Sequence "body_rot_x" {
    	"a_body_rot_down"
    	"a_Spine_base"
    	"a_body_rot_up"
    	autoplay
    	blend "body_pitch" 71.35991 -38.43747
    	blendwidth 3
    	delta
    	fadein 0.2
    	fadeout 0.2
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Sequence "body_rot_y" {
    	"a_body_rot_lt"
    	"a_Spine_base"
    	"a_body_rot_rt"
    	autoplay
    	blend "body_yaw" 47.71035 -47.71033
    	blendwidth 3
    	delta
    	fadein 0.2
    	fadeout 0.2
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Sequence "body_rot_z" {
    	"a_body_rot_z_lt"
    	"a_Spine_base"
    	"a_body_rot_z_rt"
    	autoplay
    	blend "body_roll" -35.78942 35.78944
    	blendwidth 3
    	delta
    	fadein 0.2
    	fadeout 0.2
    	fps 30
    	// This subtract line guesses the animation name and frame index. There is no way to determine which $animation and which frame was used. Change as needed.
    	subtract "a_pose_neutral" 0
    }
    
    $Sequence "Bind" {
    	"player_basic_anims\Bind.smd"
    	fadein 0.2
    	fadeout 0.2
    	fps 30
    }
    
    $IncludeModel "NPC\Player\Player_animations.mdl"
    
    $CollisionJoints "player_basic_physics.smd"
    {
    	$mass 90
    	$inertia 10
    	$damping 0
    	$rotdamping 1.5
    	$rootbone "SK_root"
    
    
    	$jointconstrain "SK_R_Leg" x limit -40 40 0.04
    	$jointconstrain "SK_R_Leg" y limit -20 35 0.04
    	$jointconstrain "SK_R_Leg" z limit -50 30 0.04
    
    	$jointconstrain "SK_R_Knee" x limit 0 0 0
    	$jointconstrain "SK_R_Knee" y limit -10 100 0
    	$jointconstrain "SK_R_Knee" z limit 0 0 0
    
    	$jointconstrain "SK_L_Leg" x limit -40 40 0.04
    	$jointconstrain "SK_L_Leg" y limit -20 35 0.04
    	$jointconstrain "SK_L_Leg" z limit -30 50 0.04
    
    	$jointconstrain "SK_L_Knee" x limit 0 0 0
    	$jointconstrain "SK_L_Knee" y limit -10 100 0
    	$jointconstrain "SK_L_Knee" z limit 0 0 0
    
    	$jointconstrain "SK_L_Heel" x limit 0 0 0
    	$jointconstrain "SK_L_Heel" y limit 0 0 0
    	$jointconstrain "SK_L_Heel" z limit 0 0 0
    
    	$jointconstrain "SK_Spine_3" x limit -35 40 0
    	$jointconstrain "SK_Spine_3" y limit -25 25 0
    	$jointconstrain "SK_Spine_3" z limit -25 25 0
    
    	$jointconstrain "SK_R_Shoulder" x limit -40 40 0.04
    	$jointconstrain "SK_R_Shoulder" y limit -85 60 0.04
    	$jointconstrain "SK_R_Shoulder" z limit -40 90 0.04
    
    	$jointconstrain "SK_R_Forearm" x limit 0 0 0
    	$jointconstrain "SK_R_Forearm" y limit 0 0 0
    	$jointconstrain "SK_R_Forearm" z limit 0 0 0
    
    	$jointconstrain "SK_R_Hand" x limit -40 40 0.04
    	$jointconstrain "SK_R_Hand" y limit 0 0 0.04
    	$jointconstrain "SK_R_Hand" z limit -30 50 0.04
    
    	$jointconstrain "SK_L_Shoulder" x limit -40 40 0.04
    	$jointconstrain "SK_L_Shoulder" y limit -85 60 0.04
    	$jointconstrain "SK_L_Shoulder" z limit -40 90 0.04
    
    	$jointconstrain "SK_L_Forearm" x limit 0 0 0
    	$jointconstrain "SK_L_Forearm" y limit 0 0 0
    	$jointconstrain "SK_L_Forearm" z limit 0 0 0
    
    	$jointconstrain "SK_L_Hand" x limit -40 40 0.04
    	$jointconstrain "SK_L_Hand" y limit 0 0 0.04
    	$jointconstrain "SK_L_Hand" z limit -30 50 0.04
    
    	$jointconstrain "SK_Head" x limit -40 40 0.04
    	$jointconstrain "SK_Head" y limit -60 50 0.04
    	$jointconstrain "SK_Head" z limit -30 30 0.04
    
    	$jointconstrain "SK_R_Heel" x limit 0 0 0
    	$jointconstrain "SK_R_Heel" y limit 0 0 0
    	$jointconstrain "SK_R_Heel" z limit 0 0 0
    }
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  9. Post #3809
    Dennab
    October 2015
    1,270 Posts
    ninjaed edit: you have two reference models. remove the bodygroup below the model.
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Germany Show Events Useful Useful x 1 (list)

  10. Post #3810
    Gold Member
    Kali's Avatar
    November 2008
    8,714 Posts






    More pictures of the finished bayonets for my AK pack.

    Both versions have four skins, which are roughly supposed to be: Russian, East German, Hungarian, and Polish. The Hungarian and Polish versions are a little inaccurate, but the correct combination of knife/sheath can be made since both sheath types are available as bodygroups on the sheath models.
    Reply With Quote Edit / Delete Windows 7 Firefox United Kingdom Show Events Winner Winner x 19Artistic Artistic x 1 (list)

  11. Post #3811
    Vasey105's Avatar
    June 2012
    1,169 Posts
    ninjaed edit: you have two reference models. remove the bodygroup below the model.
    Yup, that was it. Thanks man, works fine now.

    Edited:

    One of the last things I need to do to make this a usable model is make the elbow joint the one that actually rotates. The model's skeleton has an elbow joint, but for some reason the forearm joint is the one that can be moved and stuff.

    The elbow can be moved in-game with the joint tool but that doesn't really help as the forearm stays still.

    Any chance there's a super simple way to just make the elbow joint the one that moves?
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  12. Post #3812
    Dennab
    October 2015
    1,270 Posts
    Any chance there's a super simple way to just make the elbow joint the one that moves?
    i don't think so. you could text edit the skeleton hierachy in all the smds you got, but i'd guess that'd f*ckup all the player animations. the 'correct' way would be to use the elbows as procedural bones. that should move them with the forearm. if you got a correct .vrd for those that might do the trick.
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Germany Show Events

  13. Post #3813
    SageJFox's Avatar
    May 2009
    256 Posts
    i'm dragging my ass through learning how to headhack and such, and for whatever reason the shadows decide to look like a wacky noodle armed demon ridign a headcrab

    what gives??
    The $ShadowLOD mesh must be wrong or terribly weighted, or both.
    Reply With Quote Edit / Delete Windows 7 Firefox Show Events Agree Agree x 1 (list)

  14. Post #3814
    RenaFox's Avatar
    July 2013
    1,316 Posts
    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events Winner Winner x 10Funny Funny x 1 (list)

  15. Post #3815
    BlueFlytrap's Avatar
    November 2012
    1,321 Posts
    looks good. you really don't wanna rig those for jiggle animation tho... do you?!? this might add alil more. and is easy automatic, rather then manual. anyway...
    Can't be done. Weights are split between 3 bones on all of them.
    Reply With Quote Edit / Delete Windows 7 Waterfox Canada Show Events

  16. Post #3816
    Gold Member
    Sergeant Stacker's Avatar
    April 2009
    2,139 Posts

    Decided to try and make another gas mask citizen model to replace this really shitty one I made a while back.VV

    I'll probably replace the head with something else and I'm considering shortening the apron because there are a lot of clipping problems with the apron and his legs
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events Winner Winner x 2 (list)

  17. Post #3817
    Dennab
    October 2015
    1,270 Posts
    Can't be done. Weights are split between 3 bones on all of them.
    doesn't work with a hierarchy either? i mean... parent the topmost chain jigglebone to the leg and rig the chains just with the jigglebones. that's the idea i had thinking that'd do the trick. mmh...
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Germany Show Events

  18. Post #3818
    LordOvermind's Avatar
    May 2010
    144 Posts
    Hello people. I was bored, so, this.









    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events Artistic Artistic x 3Winner Winner x 1Informative Informative x 1 (list)

  19. Post #3819
    Gold Member
    Nomad's Avatar
    July 2010
    6,197 Posts
    Compiled that Sniper Wolf model I posted about a while ago:

    Still needs faceposing and some rigging fixes but I think it's pretty good so far. Sadly I had to use $alphatest for the hair since I just couldn't get it to right in any way with $translucent but I think it looks okay that way too.
    I'm trying to remember but something about the front facing side of the hair can have $translucent so long as there is duplicate geo of the hair behind it with $alphatest?

    Wish I had the post that the person made.
    Reply With Quote Edit / Delete Windows 7 Chrome Canada Show Events Agree Agree x 1 (list)

  20. Post #3820
    Please waste more of your money changing this title again.
    Gmod4ever's Avatar
    August 2005
    8,223 Posts
    Yeah, Source transparency is really trivial, once you're aware of the bugs it has and how to get around them.

    Take your mesh that uses transparency (and only the mesh that uses transparency - if you're doing hair, and it has like solid ribbons or something, then don't select the ribbons!) and duplicate it. For posterity's sake, we will call your original mesh "transhair" and the duplicate "alphahair."

    Assign transhair and alphahair their own materials, which we will also call "transhairMAT" and "alphahairMAT".

    Select all of the faces of alphahair and flip them.

    Export out both transhair and alphahair as a single hair SMD, for $bodygroup or $model, whatever you're doing.

    In the VMTs, give transhairMAT $translucent, and give alphahairMAT both $alphatest and $nocull.

    That's really all there is to it. Kind of an obtuse process, but it's really straightforward once you get the hang of it.
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events Friendly Friendly x 2Useful Useful x 1 (list)

  21. Post #3821
    LunaSkywalker's Avatar
    December 2015
    92 Posts
    A VR hardware test using assets of the Portal VR demo was on Steam for a little while (but appears to be gone now). I was able to download it in time, and it seems there's some really nice Source 2 models here.

    Unfortunately, its not ".mdl" but its actually ".vmdl_c"...And even though the DOTA 2 Source 2 tools recognize this file as a model, it refuses to import it. It just gives a really generic error

    Even the textures and particles are in a similar fashion




    EDIT: It can supposedly still be downloaded through here if anyone else wants to take a look
    Reply With Quote Edit / Delete Windows 8.1 Chrome United States Show Events Informative Informative x 1 (list)

  22. Post #3822
    Gold Member
    simkas's Avatar
    May 2005
    21,674 Posts
    Yeah, Source transparency is really trivial, once you're aware of the bugs it has and how to get around them.

    Take your mesh that uses transparency (and only the mesh that uses transparency - if you're doing hair, and it has like solid ribbons or something, then don't select the ribbons!) and duplicate it. For posterity's sake, we will call your original mesh "transhair" and the duplicate "alphahair."

    Assign transhair and alphahair their own materials, which we will also call "transhairMAT" and "alphahairMAT".

    Select all of the faces of alphahair and flip them.

    Export out both transhair and alphahair as a single hair SMD, for $bodygroup or $model, whatever you're doing.

    In the VMTs, give transhairMAT $translucent, and give alphahairMAT both $alphatest and $nocull.

    That's really all there is to it. Kind of an obtuse process, but it's really straightforward once you get the hang of it.
    I had tried that already, it still looked wrong. I ended up just having one mesh with $allowalphatocoverage alongside $alphatest and that ended up looking more or less perfect:
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Denmark Show Events

  23. Post #3823
    Vasey105's Avatar
    June 2012
    1,169 Posts
    So I'm trying to get a model onto the valve skeleton for a playermodel.



    Obviously, the mesh and the skeleton don't line up. If I move the skeleton to match up with the mesh (and move the ragdoll, physics etc), will it still be the 'valve skeleton' and be usable to create a playermodel?
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  24. Post #3824
    Gold Member
    cynaraos's Avatar
    June 2015
    643 Posts
    So I'm trying to get a model onto the valve skeleton for a playermodel.

    -image-

    Obviously, the mesh and the skeleton don't line up. If I move the skeleton to match up with the mesh (and move the ragdoll, physics etc), will it still be the 'valve skeleton' and be usable to create a playermodel?
    I personally did this with a DayZ character model to test the ValveBiped rigging, and it worked without any mis-alignments.

    basically, it should work.
    Reply With Quote Edit / Delete Windows 10 Chrome Norway Show Events

  25. Post #3825
    Vasey105's Avatar
    June 2012
    1,169 Posts
    I personally did this with a DayZ character model to test the ValveBiped rigging, and it worked without any mis-alignments.

    basically, it should work.
    Are there any limitations to how far I can manipulate the skeleton?
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  26. Post #3826
    Gold Member
    cynaraos's Avatar
    June 2015
    643 Posts
    Are there any limitations to how far I can manipulate the skeleton?
    I don't know, because I haven't had to try manipulating bones 'weirdly'.
    I would presume that a model that's skinned properly in your 3D editor should be skinned properly when compiled.
    Reply With Quote Edit / Delete Windows 10 Chrome Norway Show Events Informative Informative x 1 (list)

  27. Post #3827
    Please waste more of your money changing this title again.
    Gmod4ever's Avatar
    August 2005
    8,223 Posts
    I had tried that already, it still looked wrong. I ended up just having one mesh with $allowalphatocoverage alongside $alphatest and that ended up looking more or less perfect:
    The problem was most likely due to how the transparency is done, and how it interacted with alphatest.

    In a nutshell, alphatest takes the alpha value of any given pixel, and divides it by 128, then rounds down. Anything that's 0-127 becomes a 0 (fully transparent). Anything that's 128-255 becomes a 1 (fully opaque).

    As a result, the alphatest under-mesh can sometimes look really flaky, and it just overall look bad.

    If that happens, the solution you found is one, but whether or not it looks good really depends on the hair. I'm glad to hear it works good for Sniper Wolf, though.

    Another more general solution is to make a duplicate of the hair texture and modify its alpha channel, lowering it across the board (curves is a fast way to do this, but even just using brightness/contrast is sufficient). The idea is to have more of the pixels fall into that 0-127 range, to make the transparent edges (which are typically the ends of the hair) less brutal.
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events

  28. Post #3828
    Gold Member
    huntingrifle's Avatar
    January 2009
    2,860 Posts
    You can move the skeleton as much as you want, the only real thing that matters is how you weight the bones to the mesh once the skeleton is in place.
    Reply With Quote Edit / Delete Windows 8.1 Firefox United States Show Events

  29. Post #3829
    Dennab
    October 2015
    1,270 Posts
    Are there any limitations to how far I can manipulate the skeleton?
    the scale and proportions are limited. that gotta align. means the bones gotta have the relatively same length and relative positions to each other. you could cross reference with a decompiled player model animation loaded to see how much it deforms. or you could just use that player reference skeleton like you have. important is to POSE it - NOT EDIT - 'in the shape' of your model's reference mesh. then 'freeze' the pose and move/align the not so fitting mesh's shape onto the skeleton and rig/weight it properly.
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Germany Show Events

  30. Post #3830
    Vasey105's Avatar
    June 2012
    1,169 Posts
    A lot of this terminology is lost on me. I assume weighting to the bone is assigning the mesh to the bones so that when the bones are rotated, the correct segments of the mesh go along with it?

    the scale and proportions are limited. that gotta align. means the bones gotta have the relatively same length and relative positions to each other. you could cross reference with a decompiled player model animation loaded to see how much it deforms. or you could just use that player reference skeleton like you have. important is to POSE it - NOT EDIT - 'in the shape' of your model's reference mesh. then 'freeze' the pose and move/align the not so fitting mesh's shape onto the skeleton and rig/weight it properly.
    I'm unsure what the difference is between 'posing' and editing it is. So far I've done this.
    Reply With Quote Edit / Delete Windows 8 Chrome United Kingdom Show Events

  31. Post #3831
    Gold Member
    huntingrifle's Avatar
    January 2009
    2,860 Posts
    Your idea of weighting is correct.
    And episoder isn't known for his description skills. I assume he means that once you have fully weighted the skeleton and the mesh together, you cannot edit the mesh or the skeleton on their own. Moving either the skeleton or the mesh after weighting everything will cause animation issues and errors (seemingly broken limbs, improper rotations, etc). If you really need to edit the skeleton or the mesh, you'd have to completely unweigh the skeleton from the mesh (I don't know how Blender does it, but in 3DS Max you would simply delete the "Skin" modifier), do your edits, then reweight the entire thing.
    Reply With Quote Edit / Delete Windows 8.1 Firefox United States Show Events

  32. Post #3832
    Gold Member
    mralexs's Avatar
    January 2011
    2,490 Posts
    Anyone know how to export a skeleton in Blender?
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events

  33. Post #3833
    Gold Member
    Itauske Roken's Avatar
    October 2010
    3,056 Posts
    Anyone know how to export a skeleton in Blender?
    well if it's an smd it's automatically exported with the attached models.
    as in it's part of the model
    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events

  34. Post #3834
    Gold Member
    mralexs's Avatar
    January 2011
    2,490 Posts
    well if it's an smd it's automatically exported with the attached models.
    as in it's part of the model
    So how do you make and smd like that a ragdoll? A lot of tutorials I see have the skeleton as a separate smd
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events

  35. Post #3835
    Gold Member
    Itauske Roken's Avatar
    October 2010
    3,056 Posts
    So how do you make and smd like that a ragdoll? A lot of tutorials I see have the skeleton as a separate smd
    a nice little model called physics mesh.
    Or physmesh
    which is basically a model made up of separate sections weighted to a bonegroup.
    You can only have 32 of these though so make sure the basics you want to have physics get them.
    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events

  36. Post #3836
    Gold Member
    mralexs's Avatar
    January 2011
    2,490 Posts
    a nice little model called physics mesh.
    Or physmesh
    which is basically a model made up of separate sections weighted to a bonegroup.
    You can only have 32 of these though so make sure the basics you want to have physics get them.
    That sounds fun to make
    Reply With Quote Edit / Delete Linux Chrome United States Show Events

  37. Post #3837
    Masterlegodude's Avatar
    January 2009
    1,715 Posts
    I'm unsure what the difference is between 'posing' and editing it is. So far I've done this.
    Looking at the bones for the toes, i can tell you might experience some problems after exporting and compiling the model, such as the model being distorted, or the limbs not rotating correctly as a ragdoll

    The way bones work in Milkshape 3D is that they become rotated to be proportionate with their parent bone, but the bones used by the Valve skeleton are rotated a certain way that allows the mesh to animate and be rotated in a normal looking manner

    So if you load in a pre-made skeleton and then make even the slightest adjustment to it, all of the joints are gonna be corrected to be proportionate with the bones they're connected to, and this will break the flow of the skeleton

    I don't know if there's a way around this except by using a more competent 3D modeling program such as Blender or 3DS Max
    Reply With Quote Edit / Delete Windows 10 Chrome United States Show Events Agree Agree x 1 (list)

  38. Post #3838
    Gold Member
    Katra804's Avatar
    September 2011
    4,360 Posts
    I don't know if there's a way around this except by using a more competent 3D modeling program such as Blender or 3DS Max
    There are ways around it, but it's honestly a significantly larger hassle to do than just using something like Blender or 3DS Max instead.
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events

  39. Post #3839
    Dennab
    October 2015
    1,270 Posts
    the edit vs. pose magic is about the local rotation axis of the bones. i haven't re-rigged a model and used 'alien' animations yet. but the dislocation and derotation with wrong relative angles in the edited reference pose might distort the player animations. it's 3d math. quarternions. the joint is slightly rotated. i gotta check that tho. so... gotta stop here. :)

    edit: snip
    Reply With Quote Edit / Delete THIS BUG NEEDS FIXING, BUT I DONT KNOW WHAT CAUSES IT, SO SHUT UP AND STOP POSTING ABOUT IT. Thanks. Germany Show Events Funny Funny x 12Artistic Artistic x 1 (list)

  40. Post #3840
    Gold Member
    mralexs's Avatar
    January 2011
    2,490 Posts
    a nice little model called physics mesh.
    Or physmesh
    which is basically a model made up of separate sections weighted to a bonegroup.
    You can only have 32 of these though so make sure the basics you want to have physics get them.
    Would this work?
    Reply With Quote Edit / Delete Windows 7 Chrome United States Show Events