• Deformed/Low Quality Model After Compiling
    9 replies, posted
Fair warning: I am a total amateur at this stuff so expect me to have made some stupid mistakes. Apologies in advance. A couple years ago I was trying my hand at head-hacking/model hacking and had a few successes. I've been trying to get back into it with 3dsMax 2017 but I'm running into some problems. I was just trying to get an Asari head onto a Mass Effect 1 worker's body (was then gonna do some re-texturing to make everything match), but the issue I'm having is after I have compiled my model, everything just looks... off. I've attached a screenshot I took in HLMV as an example (can provide more as needed): [IMG]http://img.photobucket.com/albums/v245/canislupus/asari1_zpswyl0n40y.jpg[/IMG] These really odd, ugly, patches of shadow seem to get created all over and the model has an overall low-quality look to it. In addition, the hands seem to get deformed somehow. I've tried using two or three different model decompilers/recompilers, and have used both Wall Worms tools and Game Zombie's plugins to import/export the SMDs in and from 3dsMax but the same problem seems to arise no matter what. All my prior experience was in older versions of 3dsMax and limited anyway, so I have no idea what I'm doing wrong here. If anyone else can offer some advice I'd definitely appreciate it. Here's my QC as well just in case I made some kind of mistake in there: [CODE]// Created by Crowbar 0.34.0.0 $ModelName "savage\asari\asari_worker.mdl" $Model "studio" "asari_worker_reference.smd" { eyeball "eye_right" "Head" -1.261000 -3.701999 64.974000 "eyeball_r_hazel" 1 4 "iris_unused" 0.66 eyeball "eye_left" "Head" 1.189000 -3.701999 64.972001 "eyeball_l_hazel" 1 -4 "iris_unused" 0.66 mouth 0 "mouth" "ValveBiped.Bip01_Head1" 0 1 0 flexfile "asari_worker.vta" { defaultflex frame 0 flex "eyes_closed" frame 1 flex "eyes_wide" frame 2 flex "wink_left" frame 3 flex "wink_right" frame 4 flex "face_fatale" frame 5 flex "Cheek_Width_plus" frame 6 flex "Cheek_Width_minus" frame 7 flex "cheek_left" frame 8 flex "sneer" frame 9 flex "brow_afraid" frame 10 flex "brow_miffed" frame 11 flex "brow_up_left" frame 12 flex "brow_inner_down_l" frame 13 flex "brow_outer_down_l" frame 14 flex "brow_outer_up_l" frame 15 flex "cheek_right" frame 16 flex "brow_up_right" frame 17 flex "brow_inner_down_r" frame 18 flex "brow_outer_down_r" frame 19 flex "brow_outer_up_r" frame 20 flex "lip_upper_left" frame 21 flex "lip_upper_right" frame 22 flex "bite_lip" frame 23 flex "bite_lipnew" frame 24 flex "mouth_grimace" frame 25 flex "mouth_grin" frame 26 flex "mouth_open" frame 27 flex "mouth_open2" frame 28 flex "mouth_pout" frame 29 flex "mouth_pursed" frame 30 flex "mouth_drawn" frame 31 flex "mouth_hey" frame 32 flex "mouth_pucker" frame 33 flex "mouth_funnel" frame 34 flex "lips_part" frame 35 flex "tentacles_for_helmet" frame 36 flex "smirk_right" frame 37 flex "smirk_left" frame 38 flex "Neck_Thickness_plus" frame 39 flex "Neck_Thickness_minus" frame 40 flex "Face_Size_plus" frame 41 flex "Face_Size_minus" frame 42 flex "Chin_Height_plus" frame 43 flex "Chin_Height_minus" frame 44 flex "Chin_Depth_plus" frame 45 flex "Chin_Depth_minus" frame 46 flex "Chin_Width_plus" frame 47 flex "Chin_Width_minus" frame 48 flex "Jaw_Width_plus" frame 49 flex "Jaw_Width_minus" frame 50 flex "Mouth_Depth_plus" frame 51 flex "Mouth_Depth_minus" frame 52 flex "Mouth_Width_plus" frame 53 flex "Mouth_Width_minus" frame 54 flex "Mouth_Lip_Size_plus" frame 55 flex "Mouth_Lip_Size_minus" frame 56 flex "Mouth_Height_plus" frame 57 flex "Mouth_Height_minus" frame 58 flex "Nose_Height_plus" frame 59 flex "Nose_Height_minus" frame 60 flex "Nose_Depth_plus" frame 61 flex "Nose_Depth_minus" frame 62 } flexcontroller phoneme range 0 1 eyes_closed flexcontroller phoneme range 0 1 eyes_wide flexcontroller phoneme range 0 1 wink_left flexcontroller phoneme range 0 1 wink_right flexcontroller phoneme range 0 1 cheek_left flexcontroller phoneme range 0 1 cheek_right flexcontroller phoneme range 0 1 brow_afraid flexcontroller phoneme range 0 1 brow_miffed flexcontroller phoneme range 0 1 brow_up_left flexcontroller phoneme range 0 1 brow_up_right flexcontroller phoneme range 0 1 brow_inner_down_l flexcontroller phoneme range 0 1 brow_inner_down_r flexcontroller phoneme range 0 1 brow_outer_down_l flexcontroller phoneme range 0 1 brow_outer_down_r flexcontroller phoneme range 0 1 brow_outer_up_l flexcontroller phoneme range 0 1 brow_outer_up_r flexcontroller phoneme range 0 1 mouth_open flexcontroller phoneme range 0 1 mouth_open2 flexcontroller phoneme range 0 1 mouth_hey flexcontroller phoneme range 0 1 mouth_pucker flexcontroller phoneme range 0 1 mouth_funnel flexcontroller phoneme range 0 1 smirk_left flexcontroller phoneme range 0 1 smirk_right flexcontroller phoneme range 0 1 mouth_grin flexcontroller phoneme range 0 1 mouth_pout flexcontroller phoneme range 0 1 mouth_pursed flexcontroller phoneme range 0 1 mouth_drawn flexcontroller phoneme range 0 1 lip_upper_left flexcontroller phoneme range 0 1 lip_upper_right flexcontroller phoneme range 0 1 bite_lip flexcontroller phoneme range 0 1 bite_lipnew flexcontroller phoneme range 0 1 mouth_grimace flexcontroller phoneme range 0 1 face_fatale flexcontroller phoneme range 0 1 lips_part flexcontroller phoneme range 0 1 sneer flexcontroller phoneme range 0 1 tentacles_for_helmet flexcontroller phoneme range 0 1 FACE_MODIFIERS_BELOW flexcontroller phoneme range 0 1 Neck_Thickness_plus flexcontroller phoneme range 0 1 Neck_Thickness_minus flexcontroller phoneme range 0 1 Face_Size_plus flexcontroller phoneme range 0 1 Face_Size_minus flexcontroller phoneme range 0 1 Cheek_Width_plus flexcontroller phoneme range 0 1 Cheek_Width_minus flexcontroller phoneme range 0 1 Chin_Height_plus flexcontroller phoneme range 0 1 Chin_Height_minus flexcontroller phoneme range 0 1 Chin_Depth_plus flexcontroller phoneme range 0 1 Chin_Depth_minus flexcontroller phoneme range 0 1 Chin_Width_plus flexcontroller phoneme range 0 1 Chin_Width_minus flexcontroller phoneme range 0 1 Jaw_Width_plus flexcontroller phoneme range 0 1 Jaw_Width_minus flexcontroller phoneme range 0 1 Mouth_Width_plus flexcontroller phoneme range 0 1 Mouth_Width_minus flexcontroller phoneme range 0 1 Mouth_Depth_plus flexcontroller phoneme range 0 1 Mouth_Depth_minus flexcontroller phoneme range 0 1 Mouth_Lip_Size_plus flexcontroller phoneme range 0 1 Mouth_Lip_Size_minus flexcontroller phoneme range 0 1 Mouth_Height_plus flexcontroller phoneme range 0 1 Mouth_Height_minus flexcontroller phoneme range 0 1 Nose_Height_plus flexcontroller phoneme range 0 1 Nose_Height_minus flexcontroller phoneme range 0 1 Nose_Depth_plus flexcontroller phoneme range 0 1 Nose_Depth_minus flexcontroller phoneme range 0 1 blank localvar blank localvar FACE_MODIFIERS_BELOW %cheek_left = cheek_left %cheek_right = cheek_right %eyes_closed = eyes_closed %eyes_wide = eyes_wide %wink_left = wink_left %wink_right = wink_right %lip_upper_left = lip_upper_left %lip_upper_right = lip_upper_right %smirk_left = smirk_left %smirk_right = smirk_right %bite_lip = bite_lip %bite_lipnew = bite_lipnew %mouth_grimace = mouth_grimace %mouth_grin = mouth_grin %mouth_open = mouth_open %mouth_open2 = mouth_open2 %mouth_pout = mouth_pout %mouth_pursed = mouth_pursed %mouth_drawn = mouth_drawn %face_fatale = face_fatale %mouth_hey = mouth_hey %mouth_pucker = mouth_pucker %mouth_funnel = mouth_funnel %lips_part = lips_part %sneer = sneer %brow_afraid = brow_afraid %brow_miffed = brow_miffed %brow_up_left = brow_up_left %brow_up_right = brow_up_right %brow_inner_down_l = brow_inner_down_l %brow_inner_down_r = brow_inner_down_r %brow_outer_down_l = brow_outer_down_l %brow_outer_down_r = brow_outer_down_r %brow_outer_up_l = brow_outer_up_l %brow_outer_up_r = brow_outer_up_r %tentacles_for_helmet = tentacles_for_helmet %FACE_MODIFIERS_BELOW = FACE_MODIFIERS_BELOW %Neck_Thickness_plus = Neck_Thickness_plus - Neck_Thickness_minus %Neck_Thickness_minus = Neck_Thickness_minus - Neck_Thickness_plus %Face_Size_plus = Face_Size_plus - Face_Size_minus %Face_Size_minus = Face_Size_minus - Face_Size_plus %Cheek_Width_plus = Cheek_Width_plus - Cheek_Width_minus %Cheek_Width_minus = Cheek_Width_minus - Cheek_Width_plus %Chin_Height_plus = Chin_Height_plus - Chin_Height_minus %Chin_Height_minus = Chin_Height_minus - Chin_Height_plus %Chin_Depth_plus = Chin_Depth_plus - Chin_Depth_minus %Chin_Depth_minus = Chin_Depth_minus - Chin_Depth_plus %Chin_Width_plus = Chin_Width_plus - Chin_Width_minus %Chin_Width_minus = Chin_Width_minus - Chin_Width_plus %Jaw_Width_plus = Jaw_Width_plus - Jaw_Width_minus %Jaw_Width_minus = Jaw_Width_minus - Jaw_Width_plus %Mouth_Width_plus = Mouth_Width_plus - Mouth_Width_minus %Mouth_Width_minus = Mouth_Width_minus - Mouth_Width_plus %Mouth_Depth_plus = Mouth_Depth_plus - Mouth_Depth_minus %Mouth_Depth_minus = Mouth_Depth_minus - Mouth_Depth_plus %Mouth_Lip_Size_plus = Mouth_Lip_Size_plus - Mouth_Lip_Size_minus %Mouth_Lip_Size_minus = Mouth_Lip_Size_minus - Mouth_Lip_Size_plus %Mouth_Height_plus = Mouth_Height_plus - Mouth_Height_minus %Mouth_Height_minus = Mouth_Height_minus - Mouth_Height_plus %Nose_Height_plus = Nose_Height_plus - Nose_Height_minus %Nose_Height_minus = Nose_Height_minus - Nose_Height_plus %Nose_Depth_plus = Nose_Depth_plus - Nose_Depth_minus %Nose_Depth_minus = Nose_Depth_minus - Nose_Depth_plus %blank = blank } $SurfaceProp "flesh" $Contents "solid" $EyePosition 0 0 70 $MaxEyeDeflection 90 $CDMaterials "models\savage\asari\" $CDMaterials "models\savage\asari\worker" $TextureGroup "skinfamilies" { { "HMF_F1_Crew_Diff_1" } { "HMF_F1_Crew_Diff_2" } { "HMF_F1_Crew_Diff_3" } { "HMF_F1_Crew_Diff_4" } } $Attachment "eyes" "ValveBiped.Bip01_Head1" 2.63 -4.13 0.04 rotate 0 -80.1 -90 $Attachment "mouth" "ValveBiped.Bip01_Head1" -0.2 -5.8 0 rotate 0 -80 -90 $Attachment "forward" "ValveBiped.forward" 0 0 0 rotate 0 0 0 $CBox 0 0 0 0 0 0 $BBox -7.115 -22.805 -4.689 10.376 22.974 70.34 $Sequence "ragdoll" { "asari_Worker_anims\ragdoll.smd" activity "ACT_DIERAGDOLL" 1 fadein 0.2 fadeout 0.2 fps 30 } $CollisionJoints "asari_worker_physics.smd" { $mass 60 $inertia 10 $damping 0.01 $rotdamping 1.5 $rootbone "Pelvis" $jointconstrain "RightHip" x limit -35 90 0 $jointconstrain "RightHip" y limit -90 70 0 $jointconstrain "RightHip" z limit -50 90 0 $jointconstrain "RightKnee" x limit -12 12 0 $jointconstrain "RightKnee" y limit -5 5 0 $jointconstrain "RightKnee" z limit -115 15 0 $jointconstrain "RightAnkle" x limit -35 35 0 $jointconstrain "RightAnkle" y limit -35 35 0 $jointconstrain "RightAnkle" z limit -48 37 0 $jointconstrain "LeftHip" x limit -90 35 0 $jointconstrain "LeftHip" y limit -90 70 0 $jointconstrain "LeftHip" z limit -50 90 0 $jointconstrain "LeftKnee" x limit -12 12 0 $jointconstrain "LeftKnee" y limit -5 5 0 $jointconstrain "LeftKnee" z limit -115 15 0 $jointconstrain "LeftAnkle" x limit -35 35 0 $jointconstrain "LeftAnkle" y limit -35 35 0 $jointconstrain "LeftAnkle" z limit -48 37 0 $jointconstrain "LeftToe" x limit -20 20 0 $jointconstrain "LeftToe" y limit 0 0 0 $jointconstrain "LeftToe" z limit 0 0 0 $jointconstrain "Chest" x limit -50 50 0 $jointconstrain "Chest" y limit -43 43 0 $jointconstrain "Chest" z limit -30 30 0 $jointconstrain "Chest1" x limit -50 50 0 $jointconstrain "Chest1" y limit -43 43 0 $jointconstrain "Chest1" z limit -30 30 0 $jointconstrain "RightCollar" x limit -20 5 0 $jointconstrain "RightCollar" y limit -10 10 0 $jointconstrain "RightCollar" z limit -10 10 0 $jointconstrain "RightShoulder" x limit -70 90 0 $jointconstrain "RightShoulder" y limit -55 55 0 $jointconstrain "RightShoulder" z limit -90 90 0 $jointconstrain "RightElbow" x limit -20 120 0 $jointconstrain "RightElbow" y limit -135 135 0 $jointconstrain "RightElbow" z limit -100 20 0 $jointconstrain "LeftCollar" x limit -5 20 0 $jointconstrain "LeftCollar" y limit -10 10 0 $jointconstrain "LeftCollar" z limit -10 10 0 $jointconstrain "LeftShoulder" x limit -90 70 0 $jointconstrain "LeftShoulder" y limit -55 55 0 $jointconstrain "LeftShoulder" z limit -90 90 0 $jointconstrain "LeftElbow" x limit -120 20 0 $jointconstrain "LeftElbow" y limit -55 55 0 $jointconstrain "LeftElbow" z limit -100 20 0 $jointconstrain "ValveBiped.Bip01_L_Hand" x limit -90 90 0 $jointconstrain "ValveBiped.Bip01_L_Hand" y limit -100 100 0 $jointconstrain "ValveBiped.Bip01_L_Hand" z limit -90 90 0 $jointconstrain "ValveBiped.Bip01_Head1" x limit -55 55 0 $jointconstrain "ValveBiped.Bip01_Head1" y limit -25 25 0 $jointconstrain "ValveBiped.Bip01_Head1" z limit -25 35 0 $jointconstrain "RightToe" x limit -20 20 0 $jointconstrain "RightToe" y limit 0 0 0 $jointconstrain "RightToe" z limit 0 0 0 $jointconstrain "ValveBiped.Bip01_R_Hand" x limit -90 90 0 $jointconstrain "ValveBiped.Bip01_R_Hand" y limit -100 100 0 $jointconstrain "ValveBiped.Bip01_R_Hand" z limit -90 90 0 }[/CODE]
I can't say I know why your model has shadows, but have you tried checking for smoothing errors?
Get rid of the defaultflex. Just remove that line. I actually ran into this problem less than 24 hours ago, and it took like 90 minutes of debugging to solve it. I don't know [B]why[/B] the defaultflex is causing the problem, but it is.
[QUOTE=Gmod4ever;52050331]Get rid of the defaultflex. Just remove that line. I actually ran into this problem less than 24 hours ago, and it took like 90 minutes of debugging to solve it. I don't know [B]why[/B] the defaultflex is causing the problem, but it is.[/QUOTE] Dude, you are my hero. That fixed it (though now that I got it in game I'm realizing I mayyyy have forgotten to join some bones together and it's doing some body horror shit, but that I think I know how to fix) That's so bizarre. I've never had that problem with defaultflex before- at least I don't remember it causing problems in my past attempts.
defaultflex is a flex that the model is set to even when no flex sliders are activated. If the head mesh doesn't exactly match that flex it'll still try to force the vertices into the defaultflex positions. I've had several problems with it myself, I'm not sure why it's even a thing at all.
Ok, so, new reborn-newb problem. The issue I'm having now is with this model hack I'm doing, while I got the model working in game, the face flexes are either non-existent or broken, as are the eyes (just pure white with no posing ability). I'm using the original face flexes and vta file for the head component of the head hack. I remember I ran into this problem years ago and I can't for the life of remember me how I fixed it without making a whole new VTA file from scratch because I know for sure I never knew how to do that. Any more help there? May have to make a new thread to crack that chestnut.
You can't move the head at [B]all[/B], otherwise the existing VTA will break. The eyes are potentially the same problem. It's [B]also[/B] possible your main $model (with the VTA and eye-posing controls) is too high-poly.
[QUOTE=Gmod4ever;52053416]You can't move the head at [B]all[/B], otherwise the existing VTA will break. The eyes are potentially the same problem. It's [B]also[/B] possible your main $model (with the VTA and eye-posing controls) is too high-poly.[/QUOTE] Damn. That's a challenge, not being able to move the head. What's the way around that head issue? Can you just move the body/skeleton up to meet the head instead, or will that just cause a similar issue in reverse- or other problems?
Assuming the body has no associated VTA, that is in general the accepted solution. If you have a way to import the VTA into your program, you could also do that, and simply move and re-export the VTA with the head.
[QUOTE=Gmod4ever;52055233]Assuming the body has no associated VTA, that is in general the accepted solution. If you have a way to import the VTA into your program, you could also do that, and simply move and re-export the VTA with the head.[/QUOTE] That did it! I'm back in business again. Thanks again for indulging me, you've been a huge help. Still got some things to work on, but now I got a working model in game.
Sorry, you need to Log In to post a reply to this thread.