• Material stretching issue
    7 replies, posted
I'm currently trying to detach heads of citizen models and make them a model of their own, but the material winds up becoming very odd-looking and stretched. Like so: [IMG]http://i34.photobucket.com/albums/d146/JakeSpringhorn/citizenhead_zps75c00327.png[/IMG] I'm not sure what I could have done in the "modeling" process considering I haven't had this problem with Combine. The mdldecompiler.qc: [CODE]$cd "C:\Users\Jake\Documents\decompiles\citizenfemalehead" $modelname "headspack\female_01_head.mdl" $model "male_06" "female_01_reference.smd" { flexfile "mdldecompiler_expressions.vta" { flex "upper_right" frame 2 flex "lower_right" frame 4 flex "AU42" frame 7 flexpair "AU1" 1.0 frame 8 flexpair "AU2" 1.0 frame 9 flexpair "AU4" 1.0 frame 10 flexpair "AU1AU2" 1.0 frame 11 flexpair "AU12" 1.0 frame 12 flex "AU12AU25" frame 13 flexpair "AU15" 1.0 frame 14 flexpair "AU17" 1.0 frame 15 flexpair "AU10" 1.0 frame 16 flex "AU10SL" frame 17 flex "AU10SR" frame 18 flex "AU16" frame 19 flexpair "AU6" 1.0 frame 20 flexpair "AU9" 1.0 frame 21 flexpair "AU25" 1.0 frame 22 flexpair "AU18" 1.0 frame 23 flexpair "AU22" 1.0 frame 24 flexpair "AU20" 1.0 frame 25 flex "AU32" frame 26 flex "AU24" frame 27 flex "AU31" frame 28 flexpair "AU26" 1.0 frame 29 flexpair "AU27" 1.0 frame 30 flexpair "AU26Z" 1.0 frame 31 } eyeball righteye ValveBiped.Bip01_Head1 -1.271 -4.220 67.559 eyeball_r 1.000 4.000 pupil_r 0.630 eyeball lefteye ValveBiped.Bip01_Head1 1.357 -4.220 67.551 eyeball_l 1.000 -4.000 pupil_l 0.630 eyelid upper_right "mdldecompiler_expressions.vta" lowerer 2 -0.262100 neutral 0 -0.000000 raiser 1070568413 0.000000 split 0.1 eyeball righteye eyelid lower_right "mdldecompiler_expressions.vta" lowerer 4 -0.340900 neutral 0 0.000000 raiser -1078798477 0.000000 split 0.1 eyeball righteye eyelid upper_left "mdldecompiler_expressions.vta" lowerer 5 -0.262100 neutral 0 -0.000000 raiser 1070568413 0.000000 split -0.1 eyeball lefteye eyelid lower_left "mdldecompiler_expressions.vta" lowerer 6 -0.340900 neutral 0 0.000000 raiser -1078798477 0.000000 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 localvar AU38 %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 + ( %AU16 * 0.400))))))))))) } $cdmaterials "models\Humans\female\Group01\" $cdmaterials "models\Humans\female\" $cdmaterials "models\Zombie_Classic\" $hboxset "default" $hbox 0 "ValveBiped.Bip01_Head1" -2.324 -6.769 -3.659 8.476 3.605 3.851 // Model uses material "eyeball_r.vmt" // Model uses material "eyeball_l.vmt" // Model uses material "mouth.vmt" // Model uses material "sandro_facemap.vmt" // Model uses material "Zombie_Classic_sheet.vmt" // Model uses material "pupil_r.vmt" // Model uses material "glint.vmt" // Model uses material "pupil_l.vmt" $attachment "eyes" "ValveBiped.Bip01_Head1" 3.76 -4.42 -0.04 rotate 0.00 -80.10 -90.00 $attachment "mouth" "ValveBiped.Bip01_Head1" 1.00 -6.30 -0.00 rotate 0.00 -80.00 -90.00 $surfaceprop "flesh" $eyeposition -0.000 0.000 70.000 $illumposition 1.307 -0.096 56.075 $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00 $collisionjoints "phymodel.smd" { $mass 20.0 $inertia 10.00 $damping 0.01 $rotdamping 1.50 $rootbone "valvebiped.bip01_head1" $jointconstrain "pind" x limit -20.00 20.00 0.20 $jointconstrain "pind" y limit -25.00 25.00 0.20 $jointconstrain "pind" z limit -13.00 30.00 0.20 } [/CODE] Anyone ever come across this problem or might have an idea of what to do? Thanks!
Someone else had this issue last week. If I recall the problem is due to decompiler placing the uvs outside the 0,1 UV space and the fix was to untick the clamp flags in the head sheet material files.
-snip-
[QUOTE=Anthracite;40799801]Someone else had this issue last week. If I recall the problem is due to decompiler placing the uvs outside the 0,1 UV space and the fix was to untick the clamp flags in the head sheet material files.[/QUOTE] You mean I should go into the GCF and manually do that? Would that affect anything else?
Pardon me for reviving an old thread like this, but does anyone know if this can be fixed without editing the materials? Like in 3ds max or something.
[QUOTE=typedef state;40856110]Pardon me for reviving an old thread like this, but does anyone know if this can be fixed without editing the materials? Like in 3ds max or something.[/QUOTE] I also apologise for eviving this thread, but yes typedef it is possible if the decompiler is simply offsetting the UVs, if you knew how so the UVs were being offset by you 'could' offset the UVs yourself so that once the offset of the decompiler has taken effect the UVs will be in the correct place. But surely it would be easier just to change some flags, the above method would be A LOT of messing about and would surely cause more problems than worth.
[QUOTE=EdAndrew;40900408]I also apologise for eviving this thread, but yes typedef it is possible if the decompiler is simply offsetting the UVs, if you knew how so the UVs were being offset by you 'could' offset the UVs yourself so that once the offset of the decompiler has taken effect the UVs will be in the correct place. But surely it would be easier just to change some flags, the above method would be A LOT of messing about and would surely cause more problems than worth.[/QUOTE] I'm using CannonFodder's Studiocompiler. Is there usually an issue with this program concerning offsetting UVs?
For some reason this is pretty common in decompiled models. To fix this, all you need to do is re-align the UV-map. 1) Add an Unwrap UVW modifier to the model. If there's a skin modifier, drag it under so it's above the Editable Poly (or Editable Mesh). [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step1.jpg[/IMG] 2) You'll probably notice your UVs are all pulled down like so: [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step2.jpg[/IMG] 3) Use the face selection located at the bottom (habit) and select everything using Ctrl+A. [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step3.jpg[/IMG] 4) Select the absolute/relative type-ins button at the bottom of the UV window. [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step4.jpg[/IMG] 5) Enter "1" in the V panel and press enter. This should slide everything back into place nice and neat for you. [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step5.jpg[/IMG] [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step6.jpg[/IMG] 6) Now you can just collapse the Unwrap UVW modifier if you no longer need it and it should apply the fixed UVs to it. Exporting and compiling should fix the wooden faces. [IMG]https://dl.dropboxusercontent.com/u/25812766/facepunch/wood-face/step7.jpg[/IMG]
Sorry, you need to Log In to post a reply to this thread.