Custom L4D2 Character

I have been out of l4d2 modding for a while now but a buddy of mine named ZeqMacaw has been keeping up! He made an even better tutorial based on my original posted here. https://sites.google.com/site/zeqmacaw/tutorials/convert-a-model-to-left-4-dead-2-survivor

I recommend using his! It is more organized and stays up to date with any changes valve makes to it's game. Happy Modding! :D

[b]ITS FIXED :D!!!!!! Thanks to Tribalizer for the fix! Ill add his fix to the end of the tut.[/b]

[img]http://i45.photobucket.com/albums/f94/Dabarker/me2.jpg[/img] Custom L4D2 Character Step By Step tutorial For a L4D character you can use this tutorial: http://www.l4dmods.com/index.php?option=com_content&view=article&id=218&Itemid=5 I used the above tutorial to get my L4D2 character to work. Except for L4D2 you don't edit the main files you just put a final VPK in the addons folder. Trying to get a custom character model into l4d2 as one of the team huh? This took me a few days to figure this out and it is knowledge wasted if I only use it to create one character for myself... so here we go. Stuff you need: First you need to own l4d2. Ok open up steam and go to the tools tab. Install Source SDK, Source SDK Base, and Source SDK Base - Orange Box. (not sure if having SDK Base - Orange Box is required for this.) Install the L4D2 Add-on Support and the Authoring Tools. Once this is all downloaded go to "C:\Program Files (x86)\Steam\steamapps\common\left 4 dead 2\bin\ " and make a shortcut on your desktop to the "vpk.exe" in this folder. To do this you probably already know you need a 3d program for starters. I have been using 3ds max for years n it works for me and it works for this process. I have also used XSI for a few months on a modeling job... not bad.
Ok now we need some plugins and programs... get the "SMD import" and the "SMD export" plugin and "GUI StudioMDL" from: http://www.wunderboy.org/

addonDescription "replacement for Ellis in L4D2"

addonContent_BackgroundMovie 0 //Provides a replacement for the background movie. addonContent_Survivor "Nick" //Provides a new survivor model. 0=false, 1=true, String in quotes if replaces specific single character, i.e. "Francis" addonContent_BossInfected 0 //Provides a new boss infected model. Break these out? addonContent_CommonInfected 0 //Provides a new common infected model addonContent_WeaponModel 0 //Provides a new appearance to existing weapons, but does not change their function addonContent_weapon 0 //provides new weapons or new zombie killing functionality, i.e. guns, explosives, booby traps, hot tar, addonContent_Skin 0 //0 if no new skin textures for existing models. 1 if multiple skin pack. String in quotes if specific single skin addonContent_Spray 0 //Provides new sprays. addonContent_Map 0 //Add-on provides a standalone map }

Ok now save that and close it. Now add the folders "materials" and "models". In the models folder add a folder named "survivors". In the materials folder add the folder tree "models"\"survivors"\"mechanic". Ok lets get the garrus model into 3dsmax :) To get the smd plugins to work in max put them in your plugins folder. Mine is here: "C:\Program Files\Autodesk\3ds Max 2010\plugins" FYI I use windows 7 and max 2010 so messing with anything not in the Program Files (86x) to work is unexpected. Go to the downloaded "me2models\ME2Models\models\slash\garrus" Here you will see a garrus.mdl file. Open the mdl file in Notepad++. The fist line should read "IDST0" change it to "IDST," save and close notepad++.

Pray this will freakin decompile correctly ok. Take your mdldecompiler and move the executable to "C:\Program Files (x86)\Steam\steamapps\da1barker\sourcesdk\bin\orangebox\bin" and or " C:\Program Files (x86)\Steam\steamapps\da1barker\sourcesdk\bin\ep1\bin" Now open your mdldecompiler and uncheck Use Steam File Access. In Choose Model file grab your garrus.mdl and in the output put it in the same folder. This part of the process is usually a roadblock. If you get an error ask here. Sometimes the mdldecompiler is not in the mood to do a good job at giving you your files. Run it again and check results if needed. Now back in the folder it should have spewed out a few .smd files and a .qc file. Ok open up max and try to import the Garrus.smd. You don't need to check anything the default settings should be fine. Wow awesome import! Wish the rig would work for this... o well. Trash everything except the main mesh. Don't worry if your new to this cuz there is this guy named mariokart64n and he is epic. Here is his tutorial thread: http://www.facepunch.com/showthread.php?t=542906

$cd "C:\Program Files (x86)\Steam\steamapps\common\left 4 dead 2\left4dead2\tools\misc\garrus"$modelname "survivors/survivor_mechanic.mdl" $model "garrus" "garrus.smd" { //-doesn't work eyeball righteye ValveBiped.Bip01_Head1 -1.152 -1.027 69.740 eyeball_r 1.000 4.000 mechanic_head_color 0.500 //-doesn't work eyeball lefteye ValveBiped.Bip01_Head1 1.152 -1.027 69.740 eyeball_l 1.000 -4.000 mechanic_head_color 0.500  mouth 0 "mouth" ValveBiped.Bip01_Head1 0.000 1.000 0.000  }$poseparameter body_pitch -90.00 90.00 360.00 $poseparameter body_yaw -90.00 90.00 360.00$poseparameter head_pitch -90.00 90.00 360.00 $poseparameter head_yaw -90.00 90.00 360.00$cdmaterials "models\survivors\mechanic\" $cdmaterials "models\survivors\"$cdmaterials "" $texturegroup skinfamilies { {"TUR_ARM_HVYb_Diff_Base.vmt" "TUR_ARM_HVYb_Norm_Base.vmt" "TUR_EYE_Diff.vmt" "TUR_EYE_Iris_Norm.vmt" "TUR_HED_PROGarrus_Damage_Norm.vmt" "TUR_HED_PROGarrus_Diff.vmt" }  {"TUR_ARM_HVYb_Diff_Base.vmt"  "TUR_ARM_HVYb_Norm_Base.vmt" "TUR_EYE_Diff.vmt" "TUR_EYE_Iris_Norm.vmt" "TUR_HED_PROGarrus_Damage_Norm.vmt" "TUR_HED_PROGarrus_Diff.vmt" } }$attachment "eyes" "ValveBiped.Bip01_Head1" 2.32 -2.55 0.06 rotate 0.00 -89.37 -90.00 $attachment "mouth" "ValveBiped.Bip01_Head1" 0.76 -5.54 -0.14 rotate -0.00 -80.00 -90.00$attachment "survivor_light" "ValveBiped.Bip01_Spine2" 5.73 22.92 -0.00 rotate -0.00 -0.00 -0.00 $attachment "forward" "ValveBiped.forward" -0.00 0.00 0.00 rotate 0.00 -0.00 0.00$attachment "pistol" "ValveBiped.Bip01_R_Thigh" -3.16 1.95 -5.18 rotate -3.66 -0.47 88.48 $attachment "weapon_bone" "ValveBiped.weapon_bone" 0.00 0.00 0.00 rotate 0.00 0.00 -0.00$attachment "medkit" "ValveBiped.Bip01_Spine4" -1.22 -5.31 -1.25 rotate 5.03 77.16 0.00 $attachment "primary" "ValveBiped.Bip01_Spine4" 2.92 -4.69 -2.50 rotate -13.70 170.19 174.29$attachment "attach_R_shoulderBladeAim" "ValveBiped.Bip01_Spine4" -10.07 -1.33 -4.85 rotate -90.00 -102.85 0.00 $attachment "attach_L_shoulderBladeAim" "ValveBiped.Bip01_Spine4" -10.07 -1.33 3.36 rotate -90.00 -102.85 0.00$attachment "melee" "ValveBiped.Bip01_Spine4" 2.61 -5.06 4.98 rotate 24.08 175.37 97.14 $attachment "molotov" "ValveBiped.Bip01_Spine" -3.43 -2.62 7.54 rotate -63.44 -74.67 -101.41$attachment "grenade" "ValveBiped.Bip01_Spine" -0.73 1.26 8.48 rotate -90.00 -175.23 0.00 $attachment "pills" "ValveBiped.Bip01_Spine" -4.48 3.86 -7.36 rotate -39.75 -103.16 -81.96$attachment "lfoot" "ValveBiped.Bip01_L_Foot" 0.00 4.78 -0.00 rotate -0.00 -0.00 -0.00 $attachment "rfoot" "ValveBiped.Bip01_R_Foot" 0.00 4.77 0.00 rotate -0.00 0.00 -0.00$attachment "muzzle_flash" "ValveBiped.Bip01_L_Hand" 0.00 0.00 0.00 rotate 0.00 0.00 -0.00 $attachment "survivor_neck" "ValveBiped.Bip01_Neck1" -0.00 0.00 -0.00 rotate -0.00 0.00 -0.00$attachment "forward" "ValveBiped.forward" -0.00 0.00 0.00 rotate 0.00 -0.00 0.00 $attachment "bleedout" "ValveBiped.Bip01_Pelvis" 9.07 9.55 4.78 rotate -0.00 0.00 0.00$attachment "survivor_light" "ValveBiped.Bip01_Spine2" 5.73 22.92 -0.00 rotate -0.00 -0.00 -0.00 $attachment "legL_B" "ValveBiped.attachment_bandage_legL" 0.00 0.00 0.00 rotate -90.00 -90.00 0.00$attachment "armL_B" "ValveBiped.attachment_bandage_armL" 0.00 0.00 0.00 rotate -90.00 -90.00 0.00 $attachment "armL_T" "ValveBiped.attachment_armL_T" 0.00 0.00 0.00 rotate -90.00 -90.00 0.00$attachment "armR_T" "ValveBiped.attachment_armR_T" -0.00 0.00 0.00 rotate -90.00 -90.00 0.00 $attachment "armL" "ValveBiped.Bip01_L_Forearm" 0.00 0.00 0.00 rotate -0.00 0.00 0.00$attachment "legL" "ValveBiped.Bip01_L_Calf" 0.00 0.00 0.00 rotate -0.00 -0.00 -0.00 $attachment "thighL" "ValveBiped.Bip01_L_Thigh" 0.00 0.00 0.00 rotate -0.00 -0.00 -0.00$attachment "spine" "ValveBiped.Bip01_Spine" 0.00 0.00 0.00 rotate -90.00 -90.00 0.00 $includemodel "survivors/anim_mechanic.mdl"$includemodel "survivors/anim_gestures.mdl" $surfaceprop "flesh"$eyeposition -0.000 0.000 70.000 $illumposition -0.315 -1.427 34.650$sequence garrus "garrus" fps 30.00 $sequence ragdoll "ragdoll" ACT_DIERAGDOLL 1 fps 30.00$ikchain rhand ValveBiped.Bip01_R_Hand knee 0.707 0.707 0.000 $ikchain lhand ValveBiped.Bip01_L_Hand knee 0.707 0.707 0.000$ikchain rfoot ValveBiped.Bip01_R_Foot knee 0.707 -0.707 0.000 $ikchain lfoot ValveBiped.Bip01_L_Foot knee 0.707 -0.707 0.000$ikchain ikclip ValveBiped.weapon_bone_Clip knee 0.707 -0.707 0.000 $collisionjoints "phymodel.smd" { $mass 100.0
$inertia 10.00$damping 0.05
$rotdamping 5.00$rootbone "valvebiped.bip01_pelvis"
$jointrotdamping "valvebiped.bip01_pelvis" 3.00$jointmassbias "valvebiped.bip01_spine1" 8.00
$jointconstrain "valvebiped.bip01_spine1" x limit -10.00 10.00 0.00$jointconstrain "valvebiped.bip01_spine1" y limit -16.00 16.00 0.00
$jointconstrain "valvebiped.bip01_spine1" z limit -20.00 30.00 0.00$jointmassbias "valvebiped.bip01_spine2" 9.00
$jointconstrain "valvebiped.bip01_spine2" x limit -10.00 10.00 0.00$jointconstrain "valvebiped.bip01_spine2" y limit -10.00 10.00 0.00
$jointconstrain "valvebiped.bip01_spine2" z limit -20.00 20.00 0.00$jointmassbias "valvebiped.bip01_r_clavicle" 4.00
$jointrotdamping "valvebiped.bip01_r_clavicle" 6.00$jointconstrain "valvebiped.bip01_r_clavicle" x limit -15.00 15.00 0.00
$jointconstrain "valvebiped.bip01_r_clavicle" y limit -10.00 10.00 0.00$jointconstrain "valvebiped.bip01_r_clavicle" z limit -0.00 45.00 0.00

$jointmassbias "valvebiped.bip01_l_clavicle" 4.00$jointrotdamping "valvebiped.bip01_l_clavicle" 6.00
$jointconstrain "valvebiped.bip01_l_clavicle" x limit -15.00 15.00 0.00$jointconstrain "valvebiped.bip01_l_clavicle" y limit -10.00 10.00 0.00
$jointconstrain "valvebiped.bip01_l_clavicle" z limit -0.00 45.00 0.00$jointmassbias "valvebiped.bip01_l_upperarm" 5.00
$jointrotdamping "valvebiped.bip01_l_upperarm" 2.00$jointconstrain "valvebiped.bip01_l_upperarm" x limit -15.00 20.00 0.00
$jointconstrain "valvebiped.bip01_l_upperarm" y limit -40.00 32.00 0.00$jointconstrain "valvebiped.bip01_l_upperarm" z limit -80.00 25.00 0.00

$jointmassbias "valvebiped.bip01_l_forearm" 4.00$jointrotdamping "valvebiped.bip01_l_forearm" 4.00
$jointconstrain "valvebiped.bip01_l_forearm" x limit -40.00 15.00 0.00$jointconstrain "valvebiped.bip01_l_forearm" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_l_forearm" z limit -120.00 10.00 0.00$jointrotdamping "valvebiped.bip01_l_hand" 1.00
$jointconstrain "valvebiped.bip01_l_hand" x limit -25.00 25.00 0.00$jointconstrain "valvebiped.bip01_l_hand" y limit -35.00 35.00 0.00
$jointconstrain "valvebiped.bip01_l_hand" z limit -50.00 50.00 0.00$jointmassbias "valvebiped.bip01_r_upperarm" 5.00
$jointrotdamping "valvebiped.bip01_r_upperarm" 2.00$jointconstrain "valvebiped.bip01_r_upperarm" x limit -15.00 20.00 0.00
$jointconstrain "valvebiped.bip01_r_upperarm" y limit -40.00 32.00 0.00$jointconstrain "valvebiped.bip01_r_upperarm" z limit -80.00 25.00 0.00

$jointmassbias "valvebiped.bip01_r_forearm" 4.00$jointrotdamping "valvebiped.bip01_r_forearm" 4.00
$jointconstrain "valvebiped.bip01_r_forearm" x limit -40.00 15.00 0.00$jointconstrain "valvebiped.bip01_r_forearm" y limit 0.00 0.00 0.00
$jointconstrain "valvebiped.bip01_r_forearm" z limit -120.00 10.00 0.00$jointrotdamping "valvebiped.bip01_r_hand" 1.00
$jointconstrain "valvebiped.bip01_r_hand" x limit -25.00 25.00 0.00$jointconstrain "valvebiped.bip01_r_hand" y limit -35.00 35.00 0.00
$jointconstrain "valvebiped.bip01_r_hand" z limit -50.00 50.00 0.00$jointmassbias "valvebiped.bip01_r_thigh" 7.00
$jointrotdamping "valvebiped.bip01_r_thigh" 7.00$jointconstrain "valvebiped.bip01_r_thigh" x limit -25.00 25.00 0.00
$jointconstrain "valvebiped.bip01_r_thigh" y limit -10.00 15.00 0.00$jointconstrain "valvebiped.bip01_r_thigh" z limit -55.00 25.00 0.00

$jointmassbias "valvebiped.bip01_r_calf" 4.00$jointconstrain "valvebiped.bip01_r_calf" x limit -10.00 25.00 0.00
$jointconstrain "valvebiped.bip01_r_calf" y limit -5.00 5.00 0.00$jointconstrain "valvebiped.bip01_r_calf" z limit -10.00 115.00 0.00

$jointrotdamping "valvebiped.bip01_r_foot" 2.00$jointconstrain "valvebiped.bip01_r_foot" x limit -20.00 30.00 0.00
$jointconstrain "valvebiped.bip01_r_foot" y limit -30.00 20.00 0.00$jointconstrain "valvebiped.bip01_r_foot" z limit -30.00 50.00 0.00

$jointmassbias "valvebiped.bip01_l_thigh" 7.00$jointrotdamping "valvebiped.bip01_l_thigh" 7.00
$jointconstrain "valvebiped.bip01_l_thigh" x limit -25.00 25.00 0.00$jointconstrain "valvebiped.bip01_l_thigh" y limit -10.00 15.00 0.00
$jointconstrain "valvebiped.bip01_l_thigh" z limit -55.00 25.00 0.00$jointmassbias "valvebiped.bip01_l_calf" 4.00
$jointconstrain "valvebiped.bip01_l_calf" x limit -10.00 25.00 0.00$jointconstrain "valvebiped.bip01_l_calf" y limit -5.00 5.00 0.00
$jointconstrain "valvebiped.bip01_l_calf" z limit -10.00 115.00 0.00$jointrotdamping "valvebiped.bip01_l_foot" 2.00
$jointconstrain "valvebiped.bip01_l_foot" x limit -20.00 30.00 0.00$jointconstrain "valvebiped.bip01_l_foot" y limit -30.00 20.00 0.00
$jointconstrain "valvebiped.bip01_l_foot" z limit -30.00 50.00 0.00$jointmassbias "valvebiped.bip01_head1" 4.00
$jointrotdamping "valvebiped.bip01_head1" 3.00$jointconstrain "valvebiped.bip01_head1" x limit -50.00 50.00 0.00
$jointconstrain "valvebiped.bip01_head1" y limit -20.00 20.00 0.00$jointconstrain "valvebiped.bip01_head1" z limit -26.00 30.00 0.00


}

So you want custom portraits for your character for the lobby, in game mug shot, and the incap survivor portrait. Well lets add that to our character addon. In the garrus mechanic replacement folder in materials make a folder named " VGUI". Now lets jump back into GCFScape and open back up the pak01_dir. In here go to materials/vgui/ and grab the s_panel_lobby_mechanic.vmt and .vtf, the s_panel_mechanic.vmt and .vtf, and the s_panel_mechanic_incap.vmt and vtf. and export them to the vgui folder you made. Open the vtf files in VTFEdit and export them as tgas to edit in photoshop or whatever. Make sure that when you edit the incap image that you export it back out at a 32 bit targa to keep the alpha channel. Over write the original vtf files with your new images and your done. You can drag the garrus mechanic replacement folder onto the vpk shortcut to make a .vpk addon for l4d2.


currently not working -> So you want custom names for your survivors. Well this is a little tricky. "If you have a different mod working with the same character there may be a conflict of interest and the game will only display one of the addons." This applies to this part especially. Make a new folder outside your garrus folder and name it New Names. Inside make a folder named "resource". Now lets jump back into GCFScape and open back up the pak01_dir. In here go inside the resource folder and select " l4d360ui_english.txt" and export it to your resource folder. Open the txt file and go down to "L4D360UI_Mechanic" "Ellis" change ellis to garrus and save the file. That's it! You can drag the New Names folder onto the vpk shortcut to make a .vpk addon for l4d2. Edit this addon for changing the names of other players in your game. FYI: Using this tutorial you will NOT have to edit the pak01_dir.vpk or whitelist.cfg

Hmm Ill try to add the youtube vid of my: [L4D2] [MW2 Survivor Models by da1barker] [Modern Warfare 2]

[img]http://i45.photobucket.com/albums/f94/Dabarker/blogpromo.png[/img] Visit my Gaming Blog! :D http://timespentgaming.blogspot.com/

Oh noes! You're not a Member!

Want access to cool stuff? As a member you can:

• Post. Give the submitter your thoughts on this Tutorial.
• Say Thanks. Show your appreciation by sending the submitter points.
• Stamp Posts. Let other posters know what you think of their posts.
• Rate. Give this Tutorial a rating out of 10.
• Flag. Alert moderators and warn members of a problem with this Tutorial.
• Vote. Vote the submitter for the Monthly Awards.
• Subscribe. Get notified when this submitter submits again.

Interested? Register or Login

2 years ago:

Hey your Tutorial is Really good! Can u Make A video on YouTube About It??

3 years ago:

Is this still the way to go when making character mods? I would like to give it a try and the mention of Gary's Mods gives me hope for my next question. Would we be able to use character models from the Program called XNALara?

Bananite
3 years ago:

Okay, I've hit a dead end.

I've been following this tutorial to try and import Snow Villers from FFXIII to replace Nick, and the farthest I've gotten is the part where you jump from importing the Ellis file into 3DS Max to you saying "make sure you match up the bones."

What am I supposed to do inbetween? Is this some character rigging stuff that you've gotta have much more experience 3DS Max to use?

Am I just going about this like an idiot and missing the point completely?

I've literally hit a dead end here, and could any help I could get right now.

Bananite
3 years ago:

EDIT I figured out what my problem was, it was Blender. For future reference to everyone, YOU CANNOT USE BLENDER. You might be able to attach each bone like you need to, but there is not a script or addon in existance yet that exports an SMD correctly. As far as I can see, 3DS Max is our only option.

Anyway, I am at the end processes, making a QC file, and compiling it. I think I have a correct QC file made for this, but the compiler won't do anything. It says its creating the command line for it, and it just sits there. I have waited for over an hour for it, and checked the process as well, which showed that it was doing absolutely nothing. Can someone help me?

Bananite
• Anonymous
• Anonymous
4 years ago:

FACEPALMS How do you change names without editing the pak? :\ I've tried editing the l4d360ui_english.txt file and the subtitles_english.txt file but nothing :\

4 years ago:

i know you don usualy respond to comments but i wouldent ask unless i really need help! The SMD importer and exporter plugins wont work? When i load up 3Ds max it says invalid or something like that and then when it 3ds max i go to plugins and load all the plugins needed but i still cant import my hunter.mdl file? PLEASE HELP ME!

Snee Snee
4 years ago:

Hello you will make turtorial how to fix to work with "the sacrifice" or they will fix that?

4 years ago:

is there a way to like import skins from other valve games or mods ??i would like to have neotokyo skins :D if there a way easier that creating xD the skins tell me plz :D and i should give u a cookie :D

Bananite

Key Authors
da1barker

Submitter

da1barker
(Creator/Co-creator)

Expert
9.9/10

Genre
Other/Misc
Difficulty Level

Post Count
40
ViewCount
69,052