Left 4 Dead 2

Left 4 Dead 2

211 ratings
Custom Melee Mod (3DS Max or Blender)
By Splinks
The following guide will be showing the process and tools needed to successfully replace a melee's mesh with 3ds Max or Blender.


PLEASE NOTE:
This tutorial is just the bare basics of model importing for weapons and my personal take of explaining it as simple as I can think of.


For those wanting a quick glance of what to expect please watch the Video Overview for a quick recap of this tutorial in action.

If you're running into issues, feel free to leave a comment on this page
or visit the chat room over at Dead for Mods
.


If this tutorial helped you out, please give a shout out to help spread the word. Thank you :)
 
Rate  
Favorite
Favorited
Unfavorite
Video Overview
    The videos above is merely quick screen captures of this tutorial in action; it's meant for those that have a general idea of how to source mod or anyone that needs a quick recap of the process.
    For further details of the actions in the video it would be heavily advisable to read this tutorial before asking questions.
    :)
Tools Needed
Program
Steps
GCFScape
http://nemesis.thewavelength.net/index.php?p=26
  • Click installer and have a cupcake
Crowbar (model decompiler and compiler interface)
http://steamcommunity.com/groups/CrowbarTool
  • On the steam group page, click the DOWNLOAD Crowbar link at the right
  • Scroll to the bottom of the page and download latest version
  • Maybe read the important info in the group's description and on the download page, to find out about known errors and where to report new errors. :P
L4D2 Authoring Tools
  • Open Steam -
  • Click Library
  • Click the search bar and choose TOOLS
  • Scroll down and install Left 4 Dead 2 Authoring Tools
  • Wait for the download to finish and twiddle your thumbs
Addoninfo.txt
https://sites.google.com/site/zeqmacaw/tutorials/modding-a-left-4-dead-2-survivor/creating-a-l4d2-survivor-replacement-addon/creating-the-addoninfotxt-file
  • Follow the instructions on page
  • Or in summary....
  • Copy content > Paste in notepad > make adjustments > save as addoninfo.txt
Notepad++ (OPTIONAL...But Heavily Suggested)
http://notepad-plus-plus.org/download/
  • Click Notepad++ Installer
  • Click Next > Next > Next > Okay
  • Or in other words. Just install the bloody program ^^
Gimp VTF Plugins
http://registry.gimp.org/node/24882
  • Download Attachment on page
  • Open the downloaded ZIP file and follow the README.TXT





[/tr]
3DS Max (v5 > 2012) SMD Plugins
http://www.chaosincarnate.net/cannonfodder/cftools.htm
  • Scroll down and download the importer and exporter plugins for your VERSION of 3ds Max
  • Place plugins in the 3ds Max installation>Plugins folder
      Mostly located in
      C:\Program Files\Autodesk\3dsMax...\plugins
      C:\Program Files (x86)\Autodesk\3dsMax...\plugins
  • Have another cupcake
Blender Source Tools (plugin for SMD and DMX import/export)
http://steamcommunity.com/groups/BlenderSourceTools
  • Install Blender 2.66 or later.
  • On the Blender Source Tools steam group page, click the Download the Blender Source Tools link at the right. Do NOT unzip this file.
  • In Blender:
    • Select File > User Preferences... menu item
    • Click the Addons button in the bar at the top
    • Click the Install From File... button at the bottom
    • Find and select the downloaded zip file
    • Click the Install From File... button near the upper right
    • Click the User button in the Categories at the left (to filter the list to user-made addons
    • Tick the check-box for Import-Export: Blender Source Tools. Wait a moment for activation to complete.
    • Click Save User Settings button at the bottom
Getting Started
So before we all jump into the exciting world of L4D2 modding we will all need some resources to get things rolling.


First ingredient will be a starter kit.

The Starter Kits can be found within
L4D2 Authoring Tools > Example Content
or inside the following folder
*\Steam\SteamApps\common\Left 4 Dead 2\sdk_content
After opening the Zip file, navigate to: Starter Kits > Melee
Now select a folder of the melee weapon of your choice and copy it to the desktop.


Now on to the second step, the decompiling of the Reference SMD files

  • Head on to your L4D2 directory
    Steam\SteamApps\common\Left 4 Dead 2\
  • Open the folder called
    Steam\SteamApps\common\Left 4 Dead 2\left4dead2
  • Locate pak01_dir.vpk and open it with GCFScape
  • Now navigate inside GCFScape to the folder
    Models > weapons > melee
  • Copy the V_ and W_ files of the weapon you chose in the starter kits.
      So for me I will be needing:
      • v_machete.dx90.vtx
      • v_machete.mdl
      • v_machete.vvd
      • w_machete.dx90.vtx
      • w_machete.mdl
      • w_machete.phy
      • w_machete.vvd
  • Paste the files into the starter kit's models\weapons\melee Folder you have on the desktop.
  • Now with this extracted content in your grasp, drag the MDL files (one at a time) to Crowbar.
  • From here name the sub-folder whatever you like
      I suggest naming the folders
        • VIEW for the v_.MDL
        • WORLD for the w_.MDL
  • Then click the Decompile MDL File button
  • Open the VIEW and WORLD folders
  • Copy the _Reference.SMD to the Compiling Files Folder
  • Delete VIEW and WORLD folders and files used to create them.
    You should be left with only the Compiling Files Folder.
  • Your "Compiling Files" folder should look something like the image to the right.


And lastly, let's top it off with a touch of modifications to the Addoninfo.TXT file
    To obtain this file please go back to the TOOLS NEEDED step of this tutorial and try again. If you're here already prepared, have a cupcake and feel good about your focusing abilities.

You will need to have the Addoninfo.txt in the base of the starter kit folder. So for me I will have this
"AddonInfo" { AddonTitle "MOD's NAME" AddonVersion "1.0" AddonDescription "A mod that does something" AddonAuthor "YOUR NAME or USERNAME" AddonAuthorSteamID "YOUR STEAM USERNAME" AddonURL0 "MOD'S WEBSITE OR AUTHOR'S PROFILE" AddonSteamAppID 550 AddonContent_BackgroundMovie 0 AddonContent_BossInfected 0 AddonContent_Campaign 0 AddonContent_CommonInfected 0 AddonContent_Map 0 AddonContent_Music 0 AddonContent_Prefab 0 AddonContent_Prop 0 AddonContent_Script 0 AddonContent_Skin 0 AddonContent_Sound 0 AddonContent_Spray 0 AddonContent_Survivor 0 AddonContent_Weapon 0 AddonContent_WeaponModel 0 }

Because I'm doing a custom melee model for the machete I will be adding a 1 to AddonContent_WeaponModel.
The result of the Addoninfo.txt should look like what's below

"AddonInfo" { AddonTitle "Machete Mod" AddonVersion "1.0" AddonDescription "A mod that replaces the machete model" AddonAuthor "Splinks" AddonAuthorSteamID "Splinks" AddonURL0 "http://steamcommunity.com/id/splinks" AddonSteamAppID 550 AddonContent_WeaponModel 1 }
Obtaining a Custom Model
At this point you can use a custom-made model or grab one from a web page in corners of the internet somewhere. I assume you have familiarized yourself with the basic concepts of 3D modeling, so for the sake of this tutorial we’re not going to cross that bridge.


Where you get the model doesn’t really matter ultimately as long as you have permission and not making profit on others' work…basically any format your 3D program can import is just dandy.

Here's a few of my favorite 3D Resources.


http://tf3dm.com/new/all
This is a decent one just because it has a lot of models already in friendly formats.

http://www.models-resource.com/
Full of old-school game models and a few slightly newer ones. Also organizes models from what game and platform they came from for easy navigation.

http://www.garrysmod.org/downloads/
    Another good resource, but requires that you actually own Garry’s Mod and log in through Steam to prove it.
    You will need to decompile the models the same way you extract the models from L4D2
XNALara Community[xnalara.home-forum.com]
    This Community is full of models and has a great set of folks that has made more rips then a fat man in skinny jeans. Also they have a lot of custom content made by dedicated fans as well.

To find models just Google "xnalara models"
or visit two of the following sites

These models must be extracted with a specific program:
    XNALARA: Link[www.tombraiderforums.com]
    XNALARA XPS: Link[xnalara.home-forum.com]





So for now, I’ll just go with the first site to keep things simple. Looking around, I see some nifty weapons from Injustice: A God Among Us; they all have OBJ files and have very nice normal and specularity maps. All that equals WIN.

If you wish to follow along with me, here's the link to Hawk Girl's Mace I'll be using for this tutorial.
http://tf3dm.com/3d-model/hawkgirl-mace-74574.html
3DS MAX

World Model
We begin with opening 3DS Max.

After everything is loaded direct your attention to the top-left of the program's window and click the 3ds max icon.
Click Import > Import




  • Locate the content of the custom model.
    For me it's Hawkgirl's Mace.

  • Sense I'm working with an OBJ file I need to make sure a few things are checked
    • "Import as Single Mesh"
    • "Smoothing Groups"

  • After importing check to see if the model needs any adjustments or have any flaws that need attending to.







Now let's import the weapon we wish to replace.

I shall start by doing the World Model of the weapon first sense it'll be the least overwhelming

For those that either forgotten or blanked out it's the (W_ *.smd)




Sense we're not going to be needing to see the prettiness of the machete's texture I have chosen to uncheck "Prompt for missing Textures"




As you can see from the screen-cap not all models are the same size so press R to scale that Mofo to the size of the machete.




With that done brings us to the ol' switch-a-roo. In 3DSMax this procedure is done with the Skin Wrap feature.

Be sure line that sexy scaled beast of a Mace to match up with the handle of the machete.

This is located in the Modifier List drop down menu






Now listen carefully young Jedi these steps are important and tend to be the most common step people mess up or stop while thinking their program has froze.

  • 1st Click the Add button
  • 2nd place your cursor on the Mactete's mesh and click it
  • 3rd WAIT AND BE PATIENT!!! Your cursor will be in a loading animation. Depending on the complexity of your mesh the time for this may vary.
  • 4th after the loading is done Check "Weight All Points" and press "Convert to Skin"





    DELETE:
    • Mechete's Mesh
    • Skin Wrap Tab

Pretty much self-explanatory












YA! We get to make a model ready for compiling

Do this by Exporting the project to the location of the W_ model you originally imported.


For me it'll be
Desktop\Machete\models\weapons\melee\Compiling Files\w_machete_reference.smd









You'll have a nifty couple of popup windows.
Just hit yes to the replacing of the original file.
Now on the HL2 SMD Exporter you will need to make sure the "Reference" option is checked before exporting


View Model




It time to test that memory of yours.

Oɴᴛᴏ ᴛᴏ ᴛʜᴇ Vɪᴇᴡ ᴍᴏᴅᴇʟ!!!

Like the world model start by importing the Reference.smd for the view model.











  • Line the Mace to the machete
  • perform a skin wrap
[/b]
[/list]





Nᴏᴡ ғᴏʀ sᴏᴍᴇ ʀᴇᴀsᴏɴ ɪғ ʏᴏᴜ ʜᴀᴠᴇ ᴀ ᴍᴏᴅᴇʟ ᴛʜᴀᴛ ɪs ʀᴇǫᴜɪʀɪɴɢ ᴍᴜʟᴛɪᴘʟᴇ ʙᴏɴᴇs ɪᴛ ᴡᴏᴜʟᴅ ʙᴇ ᴀᴅᴠɪsᴇᴅ ᴛᴏ ᴄʜᴇᴄᴋ ᴛʜᴇ Sᴋɪɴ Tᴀʙ ᴏғ ᴛʜᴇ ᴏʀɪɢɪɴᴀʟ ᴍᴇsʜ ᴛᴏ sᴛᴜᴅʏ ᴡʜᴀᴛ ʙᴏɴᴇs ᴀʀᴇ ᴜsᴇᴅ ᴛᴏ ᴡᴇɪɢʜᴛ ᴡʜᴀᴛ ᴘᴀʀᴛs ᴏғ ᴛʜᴇ ᴍᴏᴅᴇʟ.

"This is helpful for gun rigs and survivor models"

In this case it seems that the whole mesh is weighted to ValveBiped.weapon_bone






Let's check to see if the Mace has adopted the new weights proper.

Everything seems to be in order and behaving properly, but lets say it wasn't.

In comes the Good trusty Weight Tool.
You'll need to select the bone first then highlight the desired vertices you wish for that bone to control

For the purpose of this tutorial we need all the vertices need to be set to 1 on the ValveBiped.weapon_bone.



And here we are back at full circle replacing the reference model we started out using for all of this. Ah yes the memories we have made. ■ Importing Mace ■ Importing Reference.smd ■ Lining and scaling up the Mace's Mesh to the Reference Mesh ■ Adding a Skin Wrap to the Mace ■ Adding weights from Reference to Mace ■ Converting it to a Skin ■ Deleting the Skin Wrap and reference ■ And finally saving the project and exporting the mace over the Reference.smd [/b]
good times, good times. :)
BLENDER



So before we begin, just a fair warning if you plan on asking questions.
    I started teaching myself blender during the making of this tutorial,
    so please direct questions to the following Steam Group.
http://steamcommunity.com/groups/Dead4Mods
World Model







This is the way we Import the smd
Import the smd, Import the smd
This is the way we Import the smd
So early in the process









I shall start by doing the World Model of the weapon first sense it'll be the least overwhelming

For those that either forgotten or blanked out it's the (W_ *.smd)










  • Locate the content of the custom model.
    For me it's Hawkgirl's Mace.

  • After importing check to see if the model needs any adjustments or have any flaws that need attending to.

  • As you can see from the screencap not all models are the same size and/or rotational direction so scale and rotate that Mofo to the size of the machete.






With that done brings us to
the ol' switch-a-roo.

  • To start this process open up the "Hawkgirl_A_Mace" and "w_machete.dmx"


  • Click and select "Hawkgirl_A_Mace" tab.

Navigate to the bottom right part of the window and click the following icon.

The icon will now become the following.

  • Continue by Adding a modifier.
    As you can see from the screencap to the right the "w_machete.dmx" has an Armature modifier.

    Which means the Hawk Girl's Mace will need the same treatment.


  • Now finish it all off by Checking "Vertex Groups" and adding the Machete Skeleton
  • [/list]







    Left click the original mesh (Machete)
    Follow that by holding Shift and Left Click the Mace


    It's important to select the original (source) mesh 1st and the custom (target) mesh 2nd











    Now my pupil navigate to the bottom of the window and change
    Object Mode > Weight Paint











    To the left to the left
    Everybody click Transfer Weight that's over on the Left

    Everything you need in the box to the left















    Your Mace should now have the same Modifiers and Vertex groups of the machete














    Well Machete your job is done here.
    This is where we say our good byes





    *deletes Machete's Mesh*





















    Okay Computer basics 101 folks

    Drag the mace onto the Machete Skeleton tab. On the popup window choose OBJECT[/b]














    And here we are. It's time to export the fruit of our labor.


    First click the following icon

    You can choose either of the Export formats, but I tend to stick with SMD due to compatibility with 3DS Max.

    This file will need to be exported into the "Compiling Files" folder on your machete project folder

    Finally just hit Export Button


    Please Note:
    • You will need to open up the "Compiling Files" Folder and rename your exported file to
      w_machete_reference.smd
    View Model


    Hope you don't mind abit of déjà vu.
    Oɴ ᴛʜᴀᴛ ɴᴏᴛᴇ ʟᴇᴛ's ᴛᴇsᴛ ᴛʜᴀᴛ ᴍᴇᴍᴏʀʏ ᴏғ ʏᴏᴜʀs.

    • Start off by Importing Hawk Girl's Mace.

    • Import the View model the same way you did for the World Model.

    • Scale and Rotate the mace to the proper proportion and direction of the machete

    • Line up the mace to the machete.
    All you really need to make sure that lines up is the handles..sense that's where the survivors' hands will be and could partitionally clip into the Mace's Mesh






    Continue by selecting the Mace's mesh.

    • Aᴅᴅ ᴀɴ Aʀᴍᴀᴛᴜʀᴇ Mᴏᴅɪғɪᴇʀ.
    • Sᴇʟᴇᴄᴛ :
      Mᴀᴄʜᴇᴛᴇ_ʀᴇғ.ᴅᴍx_sᴋᴇʟᴇᴛᴏɴ
      ғᴏʀ ᴛʜᴇ Oʙᴊᴇᴄᴛ: ᴏᴘᴛɪᴏɴ.
    • Mᴀᴋᴇ sᴜʀᴇ "ᴠᴇʀᴛᴇx ɢʀᴏᴜᴘs" ɪs ᴄʜᴇᴄᴋᴇᴅ
    [/list]





    Onwards to creating the Vertex Groups.

    • Select the machete first
    • Shift+Left Select the Mace
    • Change "Object Mode" to "Weight Paint"
    • Click on "Transfer Weights" on the Tools Tab






    Nᴏᴡ ғᴏʀ sᴏᴍᴇ ʀᴇᴀsᴏɴ ɪғ ʏᴏᴜ ʜᴀᴠᴇ ᴀ ᴍᴏᴅᴇʟ ᴛʜᴀᴛ ɪs ʀᴇǫᴜɪʀɪɴɢ ᴍᴜʟᴛɪᴘʟᴇ ʙᴏɴᴇs ɪᴛ ᴡᴏᴜʟᴅ ʙᴇ ᴀᴅᴠɪsᴇᴅ ᴛᴏ ᴄʜᴇᴄᴋ ᴛʜᴇ "Vᴇʀᴛᴇx Gʀᴏᴜᴘs" ᴏғ ᴛʜᴇ ᴏʀɪɢɪɴᴀʟ ᴍᴇsʜ ᴛᴏ sᴛᴜᴅʏ ᴡʜᴀᴛ ʙᴏɴᴇs ᴀʀᴇ ᴜsᴇᴅ ᴛᴏ ᴡᴇɪɢʜᴛ ᴡʜᴀᴛ ᴘᴀʀᴛs ᴏғ ᴛʜᴇ ᴍᴏᴅᴇʟ.

    "This is helpful for gun rigs and survivor models"

    In this case it seems that the whole mesh is weighted to ValveBiped.weapon_bone



    Let's check to see if the Mace has adopted the new weights proper.

    Everything seems to be in order and behaving properly, but lets say it wasn't.

    In comes the Painting Weight tools.
    You'll need to be in the "Weight Paint" option and then select the bone.
    You will then be able to paint on the weights by left clicking....Just google it :)

    For the purpose of this tutorial we need all the mesh to be highlighted RED on the ValveBiped.weapon_bone.





    After everything checks through feel free to delete the Machete's Mesh.

    Originally posted by Splinks...in the Blender "World Model" Steps:

    First click the following icon

    You can choose either of the Export formats, but I tend to stick with SMD due to compatibility with 3DS Max.

    This file will need to be exported into the "Compiling Files" folder on your machete project folder

    Finally just hit Export Button

    Please Note:
    • You will need to open up the "Compiling Files" Folder and rename your exported file to
      v_machete_reference.smd








    .QC Adjustments
    World Model .QC
      $modelname weapons\melee\w_machete.mdl $cdmaterials models\weapons\melee\ $body w_machete "dmx\w_machete.dmx" $surfaceprop "default" $root "ValveBiped.weapon_bone" $attachment "null" "ValveBiped.weapon_bone" 0 0 0 rotate 0 0 0 $attachment "attach_blade" "ValveBiped.weapon_bone" 0 20 0 rotate 0 0 0 $bonemerge "ValveBiped.weapon_bone" $sequence machete "dmx\w_machete.dmx" frames 0 0 numframes 10 //$physskin 2 //$physmaxpenetration 1 $collisionmodel "dmx\w_machete_phy.dmx" { // Mass in kilograms $Mass 20 $concave $rotdamping 3 }



    From here you'll need to replace the following with the paths of the W_reference.smd
    $body w_machete
    $body is used to add a reference mesh to a model. Without at least one $body the model will be invisible (exception: models with facial animation use $model instead).

    So in simpler terms. This will be the model you'll be seeing in game.
    $sequence machete
    Most commonly static props have 1 sequence named "$sequence Idle", so FYI for future use.

    All models must have at least one $sequence.
    If you don't actually want any movement, it's easiest to re-use your reference SMD.
    $collisionmodel
    This command is to tell the game what the boundaries are of the model.
    Some people tend to call this the Hitbox model for characters models.
    For this tutorial we can do a few shortcuts and simply use the reference model as the collision mesh. But later down the road it tends to be more professional and better on the rendering of the game engine to have a low-res model in place of the collision model.


    For those that aren't following, the results should be something like this
    $body w_machete "dmx\w_machete.dmx"
    >>>
    $body w_machete "w_machete_reference.smd"
    $sequence machete "dmx\w_machete.dmx"
    >>>
    $sequence machete "w_machete_reference.smd"
    $collisionmodel "dmx\w_machete_phy.dmx"
    >>>
    $collisionmodel "w_machete_reference.smd"






    View Model .QC
      $modelname weapons\melee\v_machete.mdl $cdmaterials models\weapons\melee\ $include "Bones_Scripts\definebones.qci" $include "Bones_Scripts\bonemerge.qci" $body "Body" "dmx\Machete_ref.dmx" $surfaceprop "default" $origin 0 1 58 $attachment attach_blade "ValveBiped.weapon_bone" 0 20 0 rotate 0 0 0 RIGID // --------- Unique Animation sequences ------- $pushd "dmx\animation" $sequence deploy "deploy.dmx" ACT_VM_DRAW 1 $animation a_pose_neutral "look_poses" frame 1 1 $animation a_pose_trans_neutral "look_poses" frame 1 1 subtract a_pose_neutral 0 $animation a_pose_trans_up "look_poses" frame 2 2 subtract a_pose_neutral 0 $animation a_pose_trans_down "look_poses" frame 0 0 subtract a_pose_neutral 0 $sequence vaims { a_pose_trans_down a_pose_trans_neutral a_pose_trans_up blend ver_aims 1 -1 delta hidden } $animation a_run "run.dmx" fps 30 $animation a_idle "machete_idle.dmx" $sequence idle { a_run a_idle a_run blendwidth 3 blend move_x -1 1 addlayer vaims loop ACT_VM_IDLE 1 } //----- VIEWMODEL ANIMATIONS ------------------------------------- $sequence attack_ne_sw "attack_ne_sw.dmx" fps 40 ACT_VM_PRIMARYATTACK 1 { event AE_CL_CREATE_PARTICLE_EFFECT 7 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence attack_ne_sw_layer "attack_ne_sw.dmx" fps 40 ACT_VM_SHOOT_LAYER 1 { event AE_CL_CREATE_PARTICLE_EFFECT 7 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence attack_e_w "attack_e_w.dmx" fps 40 ACT_VM_HITLEFT 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence attack_e_w_layer "attack_e_w.dmx" fps 40 ACT_VM_HITLEFT_LAYER 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence attack_w_e "attack_w_e.dmx" snap fps 35 ACT_VM_HITRIGHT 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence attack_w_e_layer "attack_w_e.dmx" snap fps 35 ACT_VM_HITRIGHT_LAYER 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence strong_swing "attack_n_s_strong.dmx" ACT_VM_SWINGHARD 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence strong_swing_layer "attack_n_s_strong.dmx" ACT_VM_SWINGHARD_LAYER 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence secondary_attack "secondary_attack_r_hand.dmx" ACT_VM_SECONDARYATTACK 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" } $sequence secondary_attack_layer "secondary_attack_r_hand.dmx" ACT_VM_SECONDARYATTACK_LAYER 1 { event AE_CL_CREATE_PARTICLE_EFFECT 4 "weapon_melee_blur_machete follow_attachment attach_blur" }


    So ya..."that's a ♥♥♥♥♥♥♥♥ of code for a begginer" you may be thinking.
    However at this current point all we're worried about is replacing the Reference.


    $body "Body" "dmx\Machete_ref.dmx"
    >>>
    $body "Body" "v_machete_reference.smd"
    You see it wasn't all that bad.
    Just remember a v_model is just a reference with alot of animation information in it.





    Texture Paths
    Now currently the texture paths for this machete mod are at it's default location
    $cdmaterials models\weapons\melee\

    This means a series of folders will need to be made in the Machete project folder on your desktop in this structure "Materials/models/weapons/melee"

    $cdmaterials defines the folders in which the game will search for the model's materials (subfolders are not searched). Each path is relative to <game>\materials\.


    Now you are welcome to alter this path to your choosing but to avoid confusion I will leave it at it's default.
    Compiling



    Drag each QC onto Crowbar

    (only drag one at a time)




    First off click the following button

    ^--not this one, but rather the one in the program

    Proceed by choosing Left 4 Dead 2 as the game
    Next adjust the l4d2 directories to find gameinfo.txt and studiomdl.exe

    For me I have my game on my D:\ DRIVE.





    This step is pretty straight forward


    If all the moons and stars align, you should be granted with the holy message

    Completed "NAME_OF_QC_HERE.qc"






    Navigate to the following folder
    \Steam\SteamApps\common\Left 4 Dead 2\left4dead2\models\Weapons\melee

    You should be seeing a series of files with the name of the weapon you're replacing.

    Simply move these files into the project folder. If your attention span is firing you should be noticing the folder structure you grabbed these files from is a lot like the folder you will be putting these files into.
    *\PROJECT_FOLDER\models\weapons\melee
    Texturing
    Open base texture in VTFedit




    A quick note.
    The standard and usually the best Format to have is DXT5
    It supports transparency and has a lower file size with hardly any distortion

    If you model has no transparency(Alpha) on the base model feel to use the DXT1 Format




    Save in Materials/models/melee under same name of it's original file.

    So in my case I will be naming my TGA image into a VTF with the exact name




    Open Normal map in gimp ....I hope I'm not needed to explain this step




    Drag specularity map in a layer over normal map

    In most case Specularity maps are grey-scaled version of the base texture with spots highlighted to tell the game how much brightness and shiny each part of the texture need to be when light hits it. the whiter the brighter





    Export as vtf (NOT SAVE....just EXPORT)

    And sense we're making a texture with multiple layers you'll need this to be set on DXT5

    You will need to have the bump option on.

    Set "Use Layer as Alpha Channel:" to the specularity map.

    Everything else is optional, but usually my favorite setup is what's on the image to the left




    If you exported everything right and reopen the vtf in GIMP you should see a setup with a normal texture with a mask layer over it.






    • Open base texture back up in vtfedit

    • In the menu bar Click "Create VMT File"

    • In the Textures tab you should have the base texture set.

    • Click the "..." on the Bump Map 1 and find the bump map texture

    • Now click on in the Options Tab

    • Change Shader to "VertexlitGeneric"
      If this isn't selected chances are you will have an invisible texture ingame
    Packaging
    Well Here we are with all materials at hand and ready to test.

    You could just copy the materials and models folders to the "Left 4 Dead 2/left4dead" folder, but luckily for us we have the power of the mighty VPK file format.

    To do this you will need to get a hold of the VPK.exe within
    *\Steam\SteamApps\common\Left 4 Dead 2\bin

    I suggest making a shortcut to this program on your desktop.

    Now comes the magic.....Are you ready Mr Krabs!?!?!
    drag the the project folder onto the vpk.exe


    HOT SHIITAKE!!!! We Have the power He-man


    Place that bad boy into the following folder
    *\Steam\SteamApps\common\Left 4 Dead 2\left4dead2\addons
    Clean Up
    So here we are at last my pupil. My how we have grown and got through this all.
    All that seems to be now is tidying up and sending you off. *manly tears*

    So allow me to give you a few Protips.

    Rename project folder something like "Machete - Hawkgirl's Mace"
      This is just for easy organizing and helps if you ever need to make another VPk and feel to lazy to rename every Vpk after it's creation"

    Delete or Move "Compiling Files" Folder
      This is just to help save all that precious cloud space and nobody likes to download files they don't need.
    < >
    139 Comments
    Chao the FaceSquid Oct 28 @ 12:48am 
    Does this guide still work? I was going along with it, but when I got to the .QC Adjustments part, there were some things that were completely different.
    #func_halloween Jul 22 @ 7:44am 
    @Bourbon Thats probably because you loaded the w_reference SMD file and not the DMX.

    I'm having a weird issue with the modifier part on the W model in Blender. Instead of (in my case) w_bat.dmx_skeleton there's a bunch of random characters. I didnt really think much of that, but then I realized that there are no vertex groups, and whenever I hit apply on the armature modifier anyways it doesnt do anything. I've been stuck on this for around 20-30 minutes now and I'm starting to lose hope, please help.
    ZeqMacaw Jan 22 @ 9:38am 
    Tools change, so do not expect the names used in this guide to be exactly what you see. The guide shows what Splinks saw at the exact time and with the exact tool versions he used. You will have to figure out if you have the correct mesh (you probably do) and the right attachment (not sure, but probably fine if it's the only one).
    Bourbon Jan 22 @ 1:29am 
    It shows "w_machete_reference_skeleton", not "w_machete.dmx_skeleton" for me, and my Vectrex on the Cube side (I'm using my own Blender model) doesn't display "valvebiped.weapon_bone" at all, only "ValveBiped.w_machete"

    Please help me here, as I've followed all the steps thus far, to my knowledge. My Blender model appears Red, and not Blue, as shown in your "like twins" picture, by the way, I left it on Weight Paint.
    ^1MaZ_TeR_ Dec 13, 2016 @ 6:45am 
    Can you make a tutorial for custom guns and animations?
    StinginP Dec 8, 2016 @ 1:41am 
    Hey Splinks, Firstly thanks for the tutorial.
    I am having issues with getting the hawkgirl_a_mace to be visible ingame. I realize you covered this already but nothing seems to be helping.
    I've verified the material name in blender is my VMT file name, the path in the qc files, as well as selected vertexlitgeneric. The only thing I can find different is when exporting from gimp I am not given a settings option of "bump". Would this be my issue? I don't normally post and am new to modding but I am losing it. Any help would be appreciated.
    Galactic Idol Mecha Gaige-tan Nov 19, 2016 @ 6:10am 
    I'm trying to replace the m60 model but when I open the reference model that came with the starter kit (the reference model I get from decompiling breaks animations) I have no idea what to do since it looks completely different from anything on this guide.

    Here's some screenshots of what I see in blender.
    http://imgur.com/a/mN9HV

    Instead of one model, there's a separate mesh for every single part of the gun, and there's no vertex groups or weights on any of the meshes. Before I read the entire blender user manual, is there an easy way to work with this?
    Galactic Idol Mecha Gaige-tan Nov 12, 2016 @ 4:11pm 
    Yeah, I figured it out just now xD. I accidentally deleted a quotation mark in the line before. Lol I'm an idiot. Thanks for putting up with me.
    Splinks  [author] Nov 12, 2016 @ 3:59pm 
    @a vehicle
    Do you have a folder called Bones_scripts in the root folder where the QC is
    Do you have a QCI file by the name of DEFINEBONES in that folder.
    ...
    If yes to both then you have a type in the qc
    Galactic Idol Mecha Gaige-tan Nov 12, 2016 @ 3:41pm 
    I tried making a custom model for the tonfa, but I get this error when I try to compile the view model:

    ERROR: unknown command "Bones_Scripts\definebones.qci""

    The file it's referring to is there, so I'm not sure why Crowbar can't read it.