[TUTORIAL] WoW Weapons & Armor

BrixtanBrixtan Posts: 2,289
edited November 2013 in General Modding
Some additional reading:
My original modding thread
Sixshot Overdrive's Armor Models Guide
Dusho's Import/Modify/Export meshes in Blender guide
Sixshot Overdrive's material editing Guide (interesting read)

Thanks to Sixshot, Dusho, and Phanjam for your initial advice and help last year. I'd still be lost without your input! :lol:

BEFORE YOU BEGIN!

You will need the following programs installed, in this order preferably.
1. World of Warcraft (for obvious reasons).

2. WoW Model Viewer (here on out, I'll refer to this as simply WMV) - grab the most recent version:
http://code.google.com/p/wowmodelviewer/downloads/list.

3. Python - this is a program that includes scripts to run Blender, a free 3D modeling program. You really need to have python installed first before you install Blender. So go grab python (version 2.6.2) here:
http://www.python.org/download/releases/2.6.2/.

4. Blender - this is the modeling program you'll be using to import & export models. Grab version 2.49b here:
http://download.blender.org/release/Blender2.49b/ for your respective computer OS. I used blender-2.49b-windows.zip.

5. OgreCommandLineTools - this little add-on thingy works inside Blender to import & export the files that Torchlight uses for all it's items. Grab it here:
http://www.ogre3d.org/download/tools. It's at the very bottom under Miscellaneous - the ogrecommand-linetools.

6.Import/Export scripts - you need to place these scripts within your Blender directory.
First, grab the Blender Import script for Ogre: http://www.ogre3d.org/tikiwiki/BlenderImport. You want to place this script in your c:\blender\blender-2.49b-windows\.blender\scripts\* - Now open it up with notepad or some text editing program and go to line 127. You need to edit this line and tell it where your ogrexmlconverter.exe is located (what you downloaded in #5 above). For example, here is how I have mine set-up:
IMPORT_SCALE_FACTOR = 1
IMPORT_OGREXMLCONVERTER = "C:\OgreCommandLineTools\OgreXmlConverter.exe"
#IMPORT_OGREXMLCONVERTER = "F:\\Projekte\\rastullah\checkout\\rl\\branches\python\dependencies\ogre\Tools\Common\\bin\\release\\OgreXmlConverter.exe"

Second, you need the Blender export script, found here: http://www.ogre3d.org/forums/viewtopic.php?t=45922 - link is on the first post of the forumn in .zip format. This script will tell Blender how to export your 3d model in Blender to the appropriate format so that Torchlight recognizes it (or something like that I think). Place the ogrehelp, ogrepkg, and ogremeshexporter.py in the same folder that you placed your other python import script. I don't believe you need to text edit the export script like you did for the import script.

Third, you need this importTL.py script here for any armor editing you plan on doing, as they require you to have a both a .mesh and .skeleton merged together. The script is here, courtesy of Dusho, http://code.google.com/p/torchlight-to-blender/downloads/detail?name=importTL.py&can=2&q=. Preference really, but I found this import script to be far easier and noob friendly then doing the merging of both .mesh and .skeleton manually. Although it's user preference. Dusho has written up a very nice guide for doing it manually here: http://www.dusho.net/tutorials.tl_SkeletMesh.htm. Regardless, when you install the importTL.py script, you need to edit it in a notepad or text editing program. Go to line 61 and make sure you direct it to where your ogrexmlconverter.exe is located, just like you did with the initial import script. Here's how mine reads:
# here place path to your OgreXmlConverter
ogreXMLConverter = "C:\OgreCommandLineTools\OgreXmlConverter.exe -q"

Fourth, you need to download the armatureexport.zip, again, posted by Dusho from his write-up here: http://www.dusho.net/tutorials.tl_SkeletMesh.htm. The link is 3/4 down the page under the "Exporting Mesh" section - grab it, and replace it with the one already found in your '.blender\scripts\ogrepkg\' directory.

This should be all of the downloads you need to start modding.

Troubleshooting:
If you get an error message when you try to open Blender, saying something about the side by side configuration could not be established...blahblahblah, I found a workaround for it. Download the Microsoft Visual C++ 2008 SP1 Redistributable Package (x64) from here. For whatever reason, this resolved that error for myself and many other blender users who encountered that error.

Part I. Weapons & Shields

Noob modders and those with no prior experience using these programs should start here. Importing new weapons and shields into Torchlight is fairly simple and straightforward. Once you feel confident here, you can move on to Part II. Helmets & Shoulders.

Disclaimer: I'm a bit OCD, so the way I do things may involve a couple more steps. But I've found that if things go south, or you need to find and edit that 89th sword you imported last week, it's much easier to grab it if you organize yourself before you start modding away into the night.

Set-up

I set-up my mod folder in Torchlight like this: C:\Users\Robert\AppData\Roaming\runic games\torchlight\mods\*
The * is any mod folder within your TL mod directory. Let's name this folder WoW Mod for simplicity sake. Now, let's go ahead and setup our WoW Mod Folder's hierarchy. It should look like this:
WoW Mod\media\models\weapons\
WoW Mod\media\models\weapons\armor\shields\
Every weapon or shield you put into TL needs to go it's own named folder within either of these respective directories. When you import a new weapon into TL, you'll place it all in a named folder, like Starsword, and place the starsword.mesh, starsword.material, and starsword_texture.png within that folder. You then place it in WoW Mod\media\models\weapons\Starsword. Pretty self-explanatory.

Secondly, you'll need to place these additional folders in your WoW Mod folder (I'll explain why as we go):
WoW Mod\media\UI\itemicons
WoW Mod\media\units\items

Third, within your WoW\media\units\items\ folder you need to place a sub-folder with the corresponding weapon type or shield. This is so TL knows where to search for your item and what type of item it is.

Example:
WoW Mod\media\units\items\axes
WoW Mod\media\units\items\swords
WoW Mod\media\units\items\polearms
WoW Mod\media\units\items\rifles
WoW Mod\media\units\items\staves
WoW Mod\media\units\items\swords
WoW Mod\media\units\items\wands
WoW Mod\media\units\items\maces
WoW Mod\media\units\items\pistols
WoW Mod\media\units\items\crossbows
WoW Mod\media\units\items\bows
WoW Mod\media\units\items\shields

Within each of weapon folders, you will place your .dat file (a text document with .dat at the end) that will essentially tell TL where to find your mesh, what it's name is, and all it's stats. Very important! We'll cover the .dat file section a little later in this tutorial.

Step 1. Boot up Blender
If you've installed everything right, Blender should open with no problems. If you get a python error, it means one of many things, but most often it means that you don't have the correct version of python running Blender. Make sure you have Blender 2.49b and python script version 2.6 running, as they are compatible. When you open blender, a second dialog box always opens: yours should look like this:
pythonscript.png
If it does, pass go and keep going. If not, then check your python errors or google them (I'm not a python script guru).

Step 2. Boot up WoW Model Viewer
Now, open up your WMV and tell it where to find your WoW.exe so it can parse the data. Then, on the left-hand side of the menu, navigate to the the weapons and pick one.
WMV.png
For the purposes of this tutorial I'll pick the updated Sulfuras Mace that was just redone for the new 4.2 Firelands Patch - it's pretty cool!
sulfuras.png
To export this model into blender, hit File -> Export Model -> OgreXML (Note: the first time you run WMV, you may need to set your preferred exporter to ogrexml under export options). Then you need to tell WMV where you want the file exported to. I have a WIP folder on my desktop that I solely use for modding, so I'm going to export it there. Once export is complete, it's time to go to blender.

Step 3. Importing the model into Blender
With Blender up and running, you'll see it always opens to a default screen with a stupid box. DELETE IT. It should have a pink out-line around showing you that it's currently selected. Just hit the 'del' key and then 'enter' ...then ****** the annoying box is gone. Now select File -> Import -> OGRE (.mesh.xml)
blender1.png

Select your Sulfurus.mesh.xml from whatever directory you told WMV to export it in.
blender2.png

You should now have your imported model right in front of you - your screen should like like this:
blender3.png

Note: If this is your crash course in Blender, I'm going to give you detailed tips of how to manipulate these with minimal effort. Blender uses ALOT of keyboard keys as shortcuts, and it can be a bit daunting to figure it out if you're not used to how Blender works. Fear not!
Tip 1: see the pink outline around your mace? That means it's selected. What you want to do immediately here is as follows.
1. Hit the 'TAB' key, then 'A' (this changes blender to edit mode and selects everything on the screen, i.e. - the mace)
2. On your keypad, hit the number key '1' then key '3' (NOTE: Do not use the number keys that go across your keyboard, use the ones off to the right of your keyboard)

Commentary: The '1' and '3' on your keypad change the point of view in blender. As you have it right now, you're looking at the mace from the left side of your character in TL. If you ported this in right now, not only would it not be textured (to be covered next) but it would be positioned horizontially across their waste, which you don't want. Go ahead and zoom in with your mouse wheel. You can press and hold your mouse wheel button down and move the image so you can see around it as well. If you need to re-center, just hit '1' and then '3'.

Your screen should look just like this:
blender4.png

Now we're going to rotate the mace so that it aligns with the point of contact with the TL characters hand. Press the 'R' key to rotate it and line it up vertically as shown in the picture below.
blender5.png

Next, press 'R' twice, then rotate the mace so that it's facing the opposite way, as shown in the picture below. Also note that you may need to physically grab the weapon and center the hilt on the pink dot (press the G key to grab your weapon while it's actively selected):
blender6.png
Keep in mind that the pink dot you see is the point of contact the item will have with the TL character's hand in-game. Adjusting the weapons this way avoids you having to manually make 100 minor adjustments post-export because the model isn't lining up correctly in-game.

Now, this next step is something you can do immediately after importing your weapon models, but I decided to leave it until now for simplicity sake. We need to split the screen into 4 sections - quite simple. Hover your mouse arrow between the top bar and the grid until the arrow turns into a vertical two sided arrow - then right-click and select 'split area' from the drop down menu box.
blender7.png
Split the lower bar in half as well, the same-way. Your screen should look like this:
blender8.png

Now, click on the little square boxes in the corner of each sub-divided section. How you set them up is personal preference, but I do mine like as shown below in the spoiler/image. The top section is the 'outliner' option from the pop-up menu. The lower section is the 'UV/Image Editor'. You MUST have these two sections open and active on any modding you do.
blender9-1.png

Step 4. Texture Time

1. Alt-tab out of blender and open the folder that you had WMV export your sulfurus.mesh.xml assets to. In there should be a .tga file with the idential .mesh.xml file name as the model it's associated with, which is the models texture. Open up that file with a photo-editing software program (I use adobe photoshop) and simply save it as a .png file. I'll name mine sulfurustex.png for this tutorial.
2. Now, place the sulfurustex.png in your WoW Mod/media/models/weapons/sulfurus/ folder (as described in the part I. Set-up section).
3. Alt-tab back into blender.
4. If you split your screen like mine, then you have your UV/Image Editor in the lower right hand section. Select Image -> Open -> and then select the directory where you just placed your sulfurustex.png.
blender10.png
5. With your texture now selected in the UV/Image Editor, it's time to change the Draw Type from 'solid' where it is at default in blender to 'textured'. The picture below shows you where that button is. Now your model should be nicely textured!
blender11.png
6. Rename your mesh and material files listed in the 'Outliner' section that you split earlier. You do this by holding CTRL and left clicking on the material. You will become a pro at this, as you will have to do this every time you want to import any mesh into TL, be it a weapon/shield or armor. While you CAN name them practically anything, a few words of wisdom. First, there is a 21 character limit so keep the names relatively short. Second, name them something that you can recognize and associate with the model you are working with! While you can name this 'hotghettomess' if you want to, it might be a bit hard to tell what mesh/model it is when you're scanning through 100 of your items in your WoW Mod down the road. ;) I named mine as follows, and I'll tell you want each of the colored boxes means below the image.
blender12.png
The orange box is simply your overall project name, as far as I know. Regardless, I always name it whatever the .mesh is going to be called. So for this tutorial, Sulfuras is what I called it.
The green box is your actual mesh. This is the model that you are looking at right now on your screen. Name this what you will, I named mine Sulfuras.
The blue boxes are showing you the material(s) associated with this mesh. A .material file is what will connect your texture.png with the sulfuras.mesh. These are very important.
The red circle w/ exclamation mark is there to show you that you currently DO NOT have any texture associated with this model. You'll know you have a texture linked to the material when you see a little box with an face next to each material (which I'll be covering in the next step). In other words, if you were to export this model as is right now and run it in TL, it would drop un-textured. This is more of an informative FYI for newbie blender users.
Commentary: you'll note that some of the WoW weapons you import may have 1 material or 7+ depending on their complexity. While TL only really needs 1 material associated with a texture to render the item textured correctly in-game, it's best not to delete these materials when porting in weapons or shields into TL. Helmets and shoulders, which I'll cover in a later section in this tutorial, are a different matter and only have 1 material per mesh, but you need not worry about that yet. Just remember this for weapons and shields.

7. You now need to assign the texture we opened in step 4 to each of the materials. Simply 'left-click' on the first material to select it. You'll know which material is active because you'll see a faint grey circle surrounding the black circle icon next to each material. Now, look at the bottom of your screen - we've been ignoring the panels that run the length of the bottom of the screen up until now because, well, I didn't find them necessary to mention until now. With your material active, you need to then switch from the material button (which is always the default screen on the bottom when you select a material) to the texture button. You can either click it or press the 'F6' key - whichever is easier. Look at the picture below as a diagram, which I'll be explaining next.
blender13.png
The blue circle shows the active material you selected.
The light green circle is showing you the texture button you need switch to next.
The purple circle is showing you that you need to select 'Add New' from the menu. This will queue a second box to show-up directly to the right.
The red circle is showing you that you then need to select 'image' from the menu under the 'texture type' box.

Now you should see a 'Map Image' box appear to the right. The yellow circle is there to show you that you need to DE-SELECT the 'usealpha' button.
Next, move over to the 'Image' box and click the up/down arrow box next to the 'load' button, see the orange circle. This will pull up the sulfurastex.png that you opened up back in step 4.

8. You're almost done texturing the model! I'll walk you through this last part in the spoiler/image below.
blender14-1.png
First, switch back to the 'material button' by clicking on the red circle or pressing 'F5' as shown by the red circle #1 in the image above.
Second, click on the 'map input' tab, as shown by the blue circle #2 in the image above.
Finally, switch to 'UV' by selecting it, as shown by the orange circle #3 in the image above.
You are now officially done with texturing this material. However, you need to go back and repeat these steps for each additional material associated with the mesh. Simply select the second material in your 'outliner' section and repeat. Once you've assigned a texture to each material you're outliner should look like this:
blender15.png
Note that the green circle is showing you that you now have a texture associated with the material for this mesh. You are now ready to export this model and try it out in Torchlight.

Step 5. Exporting your weapon to Torchlight

1. First, make sure that your model is still actively selected. You can make sure it's active by looking in your 'Outliner' section and see that your project name, which we called Sulfuras, is showing as white text. See the pic below for a visual:
blender16.png

2. Second, select File -> Export -> Ogre Meshes
blender17.png

3. Set-up your Ogre Meshes Exporter screen as shown in the image below:
blender18.png
The green circle is showing you that you have your mesh, which we named Sulfuras, selected! It's always nice to double-check that you have your mesh actively selected before exporting.
The orange circle is showing you that you need to rename your material. Hint: I name my material the same as the mesh to make finding the files in windows easier. You can name it whatever you want, but again, keep it simple and keep it the same. I named mine sulfuras.material. Also note that Ogre will always have this set to scene.material by default, so you must re-name it everytime you export a new model.
The blue circles are there to show you that you need to select both 'Fix Up Axis to Y' and 'OgreXMLConverter'. Ignore the 'Skeleton name follow mesh' button.

4. The yellow circle is the 'preference' button - click on this now.

5. In the preferences section, you'll need to do several things as outlined in the image below:
blender19.png
The first time you export a model in blender, you'll need to tell it where to find your OgreXMLconverter.exe (commentary: part of ogrecommandlinetools that you downloaded way back at the start of all this!) Select the 'manual' button as shown in the orange circle. Then you'll have to manually select the ogreXMLconverter.exe, then click 'select converter'. Notice that you'll then see that blender has found your ogrexmlconverter.exe path as shown in the red circle.
Next, DE-SELECT both 'reorganize vertex buffers' and 'edge lists' as shown by the blue circles.
Finally, click 'OK' (as shown by the light green circle). This takes you back to the initial export screen you were just at. Simply click 'export'.

6. You'll see blender spit out a scrolling list of junk. None of which concerns you - but here's the screenshot just so you can see it. (I'm a bit OCD, remember?) :lol:
blender20.png

7. Now you're done with blender. Let's place the files in your mod folder and set up the .dat files so we can test Sulfuras!

Step 6. Setting up your Mod Folder

Now if you've already set-up your new mod folder as I described at the beginning under Set-up in Part I, then we can proceed. If you haven't done that yet, then please set up your mod folder then return to this step.

1. First, we start the oh-so-fun task of playing everyone's favorite game, "WheredidBlenderexportmymeshandmaterialfilestoo?" :lol: Normally, and I say this loosely, blender will export your *.mesh, *.mesh.xml, and *.material files to wherever you intalled blender. For me, it normally spits them out into c:\blender\blender-2.49b-windows\ folder. Go there, make a shortcut link to save yourself the headache of manually finding it in the future. Since we named our model sulfuras.mesh and sulfuras.material, go find those. Here they are in my folder, as shown in the image below:
tutorial1.png

2. Select both the sulfuras.mesh and sulfuras.material (note: I always place the *.mesh.xml file in the mod folder along with the actual .mesh and .material in case I have to go back and re-edit the model in the future. Blender can only import a .mesh.xml file, not just a .mesh. While you don't have to keep your sulfuras.mesh.xml file, I prefer it...you know, the whole OCD thing and all.) Cut and paste them into your Mod folder as shown below:
torchlight\mods\WoW mod\media\models\weapons\sulfuras
You want to place both your sulfuras.mesh and sulfuras.material in the same folder that your sulfurastex.png was placed originally. For our tutorial, we're placing them in the sulfuras folder located within the weapons folder.

Step 7. Creating your .DAT file

3. Now, we need to create a sulfuras.dat file and place it in the following directory:
WoW Mod\media\units\items\polearms

I'm placing it in the polearm folder because I want it to be a 2-hander. However, if you'd prefer it to be a 1-handed mace, place it the units\items\maces folder instead.
Think of your .dat file as the roadmap that tells torchlight where to find the item you just created for your mod. Below is the actual working sulfuras.dat file that I have in my mod folder right now. You can cut-and-paste this to get you started. I won't be going into all the finer details of .dat editing, assigning affixes, etc - that's for another tutorial. But for our purposes, this will do.
[UNIT]
<STRING>BASEFILE:media\units\items\polearms\base_polearm_unique.dat
<STRING>RESOURCEDIRECTORY:media/models/weapons/sulfuras2
<STRING>ICON:sulf2_icon
<INTEGER>RARITY:50
<INTEGER>LEVEL:90
<STRING>FALL_SOUND:Item Fall
<STRING>LAND_SOUND:MetalDrop
<STRING>TAKE_SOUND:MetalGet
<STRING>NAME:ragdrop2
<INTEGER>SPEED_DMG_MOD:100
<INTEGER>SPEED:125
<INTEGER>DAMAGE_PHYSICAL:100
<INTEGER>DAMAGE_FIRE:200
<FLOAT>STRIKERANGE:3
<INTEGER>RARITY:100
<STRING>SOCKETS:2
<INTEGER>ICON_SHEET:1
<TRANSLATE>DISPLAYNAME:Sulfuron, Heart of Ragnaros
<INTEGER>STRENGTH_REQUIRED:116
<INTEGER>DEFENSE_REQUIRED:0
<STRING>GAMBLER_ICON:hammer_02
<STRING>MESHFILE:sulfuras2
<STRING>MISSILE:ORDRAKFIREBALL
<INTEGER>VALUE:100
<INTEGER>RARITY_HARDCORE:50
<INTEGER>MINLEVEL:50
<STRING>UNIT_GUID:6014076367632863712
<TRANSLATE>DESCRIPTION:The Firelord has returned!
[AFFIXES]
<STRING>AFFIX:UNIQUE_ATTACK_SPEED5
<STRING>AFFIX:UNIQUE_CRIT_CHANCEXXX
<STRING>AFFIX:UNIQUE_CRITICAL_DAMAGE_BONUS8XXX
<STRING>AFFIX:UNIQUE_DAMAGE_ADD_4WEAPONSXXX
<STRING>AFFIX:UNIQUE_DEGRADE_ARMOR5
<STRING>AFFIX:UNIQUE_DIRECT_BURN_PERCENT_ALWAYS
<STRING>AFFIX:UNIQUE_FIREDEFENSE5
<STRING>AFFIX:UNIQUE_FLEE_SHORT_DURATIONXXX
<STRING>AFFIX:UNIQUE_GOLD_DROP9
<STRING>AFFIX:UNIQUE_ICEDEFENSE5
<STRING>AFFIX:UNIQUE_KNOCKBACKXXX
<STRING>AFFIX:UNIQUE_LIFE_STEALXXX
<STRING>AFFIX:UNIQUE_LUCKXXX
<STRING>AFFIX:UNIQUE_MANA_STEALXXX
<STRING>AFFIX:UNIQUE_MAX_HPXXX
<STRING>AFFIX:UNIQUE_MAX_MANAXXX
<STRING>AFFIX:UNIQUE_MELEE_DAMAGE_BONUS5
<STRING>AFFIX:UNIQUE_OFFLAME9
<STRING>AFFIX:UNIQUE_PERCENT_DAMAGE_TAKENXXX
<STRING>AFFIX:UNIQUE_PET_DAMAGEXXX
<STRING>AFFIX:UNIQUE_PET_HEALTH9
<STRING>AFFIX:UNIQUE_PET_VELOCITY5
<STRING>AFFIX:UNIQUE_THORNS9
<STRING>AFFIX:UNIQUE_TURN_ALIGNMENT_LONG_DURATIONXXX
<STRING>AFFIX:UNIQUE_VELOCITY5
[/AFFIXES]
[/UNIT]

Make sure you change the .dat file directories to whatever you named your own. I already had a sulfuron folder in my weapons directory so I had to name this one sulfuras2
&lt;STRING&gt;RESOURCEDIRECTORY:media/models/weapons/sulfuras2
Change sulfuras2 with whatever you named your folder under the WoW Mod\media\models\weapons\*

Make sure you tell TL where your newly export sulfuras.mesh file is located and what it's called.
&lt;STRING&gt;MESHFILE:sulfuras2
Note that I named mine sulfuras2, but if you're following the tutorial literally, just name it sulfuras. This tells TL to pull the sulfuras.mesh file from your directory that you assigned in the code directly above this.

Next, DELETE THIS STRING
&lt;STRING&gt;UNIT_GUID:6014076367632863712
This Unit_GUID:# is what TL assigns to each item in the game. The first time you're importing a newly created item, you need not have this string in your .dat file. TL will automatically write this string and # upon loading the game.

Next, input a name that you can enter into the console to spawn the item for the testing in-game.
&lt;STRING&gt;NAME:ragdrop2
Note that I named mine ragdrop2, but you can name it whatever you want. In the game, open up your console by hitting 'SHIFT' + '~' and then type 'ragdrop2' then 'ENTER'. If your .dat file is setup correctly, the item will drop. If TL crashes to the desktop, 9 times out of 10 that means you didn't input your directories correctly in the .dat file and TL couldn't generate the item. Go back and check your .dat file again for errors.

Commentary: There's been some talk on the forumns in the past about the the .dat.adm files. As far as I've seen, once TL has read your .dat file upon loading, it'll generate a second .dat.adm file. Just ignore them. If you ever need to change your .dat file, due to errors or whatnot, when you re-load TL it'll generate a new .dat.adm and overwrite the old .dat.adm file.

Lastly, if you want to create a custom icon for the item you just created, you can put the icon name here in the .dat file:
&lt;STRING&gt;ICON:sulf2_icon
you can name the icon anything, but it must always end with _icon - for myself, I named the icon I created sulf2_icon.

Step 8. Creating an ICON

Creating a custom icon is quite simple, but optional. TL will spawn your newly imported item with no icon attached, but that's no fun is it? You'll need to take a screenshot of your weapon in WMV. With WMV open to the weapon you imported (in our case, Sulfuras), select File -> Save Screenshot then designate a place to save the screenshot. I always send my screenshots to my WIP folder on my desktop. It'll spit it out as a .bmp format. You'll need to open the image in a photo editing program, rotate it to your liking, then resize it to 64W x 96H pixels. Save it as something like sulfuras_icon.png (I save all mine in .png format, icons and textures - never tried another format so can't speak to it).

Now place your sulfuras_icon.png in your Mod folder directory as shown below:
WoW Mod\media\UI\itemicons

Next, you'll need to create an .imageset file and name it the same as your icon file. For the purposes of this tutorial, we'll name it sulfuras.imageset
I bet you're asking, how the **** do I create an .imageset file?

Here's how: open up any text editing program (notepad will do) and cut and paste the following into it:
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;Imageset Name= "sulfuras" Imagefile="media/ui/itemicons/sulfuras_icon.png" NativeHorzRes="1024" NativeVertRes="768" AutoScaled="true" &gt;
	&lt;Image Name="sulfuras_icon" XPos="0" YPos="0" Width="64" Height="96" /&gt;
&lt;/Imageset&gt;
Save the file as sulfuras.imageset and then place it in the same folder with your sulfuras_icon.png. You're all set! You can repeat this for any new items you create, just switch out the name sulfuras for whatever you want the item to be called - duh! :roll:

Step 9. Testing your newly created item

So after all those steps, we're finally at the end. Go ahead and boot up TL or torchED (whichever you prefer, it matters not). Personally, I find it quicker to test newly imported weapons via torchED but whatever.

If all goes according to plan, when you pull up your console ('SHIFT' + '~') and type sulfuras, the item should drop like this:
07082011_150039450.png

Equip it and go smash some monsters - have fun!
07082011_150239136.png

Regarding shields, they are essentially the same to import/export as weapons are. Mostly, you need to play around with how you line up the shield in blender. See this pic for details:
shield1.png

View it from the side (marked 1) to make sure the pink dot (our point of contact) is somewhere in the middle. Then view it from the middle (marked 2 and 3) to make sure the pink dot is pretty much centered. Beyond that it's more trial and error with adjustments than anything.

Here's a screenshot of a shield correctly aligned:
dest_wrath.png

Here is a working shield .dat files for reference:
&#91;UNIT&#93;
&lt;STRING&gt;BASEFILE:media\units\items\shields\base_shield_unique.dat
&lt;STRING&gt;RESOURCEDIRECTORY:media/models/armor/shields/elementiumbulwark
&lt;STRING&gt;MESHFILE:bulwark
&lt;STRING&gt;ICON:bulwark_icon
&lt;STRING&gt;NAME:elebulwark
&lt;INTEGER&gt;RARITY:175
&lt;INTEGER&gt;VALUE:9999
&lt;BOOL&gt;ALWAYS_IDENTIFIED:true
&lt;BOOL&gt;MERCHANTINFINITE:false
&lt;INTEGER&gt;LEVEL:28
&lt;INTEGER&gt;MINLEVEL:1
&lt;INTEGER&gt;MAXLEVEL:9999999
&lt;INTEGER&gt;ARMORMIN:20
&lt;INTEGER&gt;ARMORMAX:20
&lt;TRANSLATE&gt;DISPLAYNAME:Elementium Bulwark
&lt;TRANSLATE&gt;DESCRIPTION:Chromaggus's prized possession.
&lt;BOOL&gt;SHADOWS:true
&lt;STRING&gt;GAMBLER_ICON:skeletonshield
&lt;STRING&gt;UNIT_GUID:1086234675334091232
&lt;INTEGER&gt;RARITY_HARDCORE:175
&lt;INTEGER&gt;RARITY_AMR_MOD:200
&lt;INTEGER&gt;SPECIAL_AMR_MOD:100
&lt;INTEGER&gt;ARMOR_PHYSICAL:75
&lt;INTEGER&gt;BLOCK_CHANCE:25
&lt;INTEGER&gt;ARMOR_FIRE:25
&#91;WARDROBE&#93;
&lt;STRING&gt;CLASS:ALCHEMIST
&#91;/WARDROBE&#93;
&#91;AFFIXES&#93;
&lt;STRING&gt;AFFIX:UNIQUE_ARMOR_BONUS3
&lt;STRING&gt;AFFIX:UNIQUE_ARMOR_PERCENT_BONUS2
&lt;STRING&gt;AFFIX:UNIQUE_DEFENSE_BONUS2
&lt;STRING&gt;AFFIX:UNIQUE_LIFE_STEAL2
&lt;STRING&gt;AFFIX:UNIQUE_LUCK3
&lt;STRING&gt;AFFIX:UNIQUE_MAX_HP3
&lt;STRING&gt;AFFIX:UNIQUE_MISSILE_REFLECT2
&lt;STRING&gt;AFFIX:UNIQUE_THORNS2
&#91;/AFFIXES&#93;
&#91;/UNIT&#93;
brixtan_by_hawkn93-d49csvz.png
"If a problem is too big to fix, one must break it into smaller problems."
WoW Weapons & Armor Modding Guide

Comments

  • BrixtanBrixtan Posts: 2,289
    Part II. Importing Helmets, Shoulders, and Armor

    Please note that this is far more difficult than importing weapons. If you're just starting out, I highly suggest you get your feet wet with importing some weapons before moving on into armor sets. I'm not going to hit all the details around manipulating models in Blender since they are covered in-depth in part 1, so if you have questions that are not directly addressed here, please refer back to the first part of this guide before PM'ing me.

    Step 1. Picking out an armor set in WMV

    For this tutorial, we'll be using the Warrior Tier 12 armor:
    armor5.png


    First thing you need to do is open WMV. Select Characters, then select the human male model (since the textures sit more evenly on him). Next, select the chest, legs, gloves, and boots and pull up the molten giant piece that corresponds with each (for the boots, type in cracked obsidian stompers).



    Now go to File -> Export Textures -> Export all to PNG. Find where you installed WMV to and open the export folder to find your textures:



    Step 2. Assembling the chest, gloves, and boot textures

    Now, we need to overlay the chest textures, pants textures, and arm textures into a template that Torchlight recognizes. I used a destroyer vulture chest pattern from the assets as my template, so go ahead and make a copy of the original one and open it up in paintbrush (or whatever paint program you prefer - I use paintbrush):
    vulture_chest.png


    First we need to combine the chest textures, since they are exported as a top (chest_TU) and bottom (chest_TL). After you line them up vertically, we need to split them right down the middle:
    armor9.png


    Make a copy of each side and attach it to it's respective pair as such:
    armor10.png


    Next, we need to copy the sleeve and both portions of the pants (the upper portion LU, and the lower portion LL) - finally, cut off the excess at the bottom (it bleeds into what will be our texture for the boots and needs to be discarded) Note that the sleeves are not currently shown in the image below, but in the next image:
    armor12.png


    When you are finished, it should look like the picture below. One last step before we save the newly created chest.png - we need to make the non-textured area transparent, otherwise those sections not covered by the chest texture will show up as white on our model. I do this by opening the image in Photoshop, going to Image -> Magic Extractor. This opens up a new window where you can paint the foreground image (your chest texture) with a stroke showing red, then the background with a blue stroke (these tools look like a brush with a + and - for foreground and background, respectively). After you are satisfied, click OK to finish, then save your image. For this tutorial, I'm saving the finished chest texture as moltenchest.png. Remember what you name your textures! You will have to cite these in your finished .dat files and in Blender for them to display correctly. The image should look like this:
    armor13.png


    Repeat this process for both your gloves and boots, again using a Torchlight glove/boot texture asset as your blueprint (make a copy, don't use the original!). Save your finished glove as moltengiantglove.png. Your gloves should look like the image below:
    moltengiantglove.png


    Save your boots as moltengiantboots.png. Your boots should look like this:
    moltengiantboot.png


    Step 3. Assembling your armor in Blender

    Now the fun begins! Open up blender and go to File -> Import -> OGRE for Torchlight. Now you need to make your way to your Torchlight assets folder (pak.zip) and find a model you want to use. For this tutorial, I'm importing the hvyleather_set.MESH.xml. I've already made copies of all the different character meshes/skeletons and put them into separate folders (one for the destroyer, alchemist, and vanquisher). We're using the destroyer for this tutorial because I find him easier to work with when you're just starting out.

    It's important to note that you always need a corresponding *.skeleton.xml for any *.mesh.xml so that the import script can merge the two together (the mesh of the character and the skeletal structure). Never import the *.skeleton.xml though or you'll get nasty errors. Your screen should look like this:
    armor15.png


    Yellow circles - I'm highlighting the various skeleton frames for you. They look like spines. Don't worry about these, you don't ever need to manipulate them.
    Blue boxes - here you need to rename your character meshes/skeleton. Pay attention to the red circle, you must leave that M at the end of your mesh name for this line only.
    Green boxes - these are your materials which will need to be renamed as well.

    In the following image, you can see that we've now renamed the player mesh and skeleton as molten and moltenM respectively. Also, we've unlinked the boxes attached to each material to remove them. Next, we've renamed the materials to the following four (deleting any extra materials), molten/face, molten/gloves, molten/chest, molten/boots.
    armor16.png


    Now we need to clean up our model by deleting the shoulder pads and helmet from the frame. You do this by making sure your model is actively selected (outlined in pink) by right clicking on him. Next, hit TAB to change the model to transparent with pink vertices. Next, press B once to change your cursor so that you can drag a box around vertices to select them. Once selected, hit DEL. A pop-up box will open - select vertices, and ****** your vertices and any attached polygons are now deleted. Do this until your model looks like mine (this takes some time so be patient and don't rush):
    armor19.png


    To texture the chest area, make sure your bottom right screen is sectioned off and is set to UV/Image Editor. Select Image -> Open -> and then find where you saved your moltenchest.png from earlier. Once open, click the thumbtack so it turns yellow, thus sticking the texture.
    armor21.png


    Now, highlight the chest, arms, and legs of the model by selecting the vertices in the same manner that you did before when cleaning up the model. With your model actively selected, press B twice this time to get a circular cursor that you can use to paint over the areas you wish to select. They will turn pink. If you mess up an area, just press your middle mouse button (or mouse wheel like I do) and paint over areas to remove your selection. You'll need to adjust your model throughout this process, turning him around to get at all the angles. Simply right click, then move him around, then return to selecting the areas with your circular cursor. You're end result should look like mine:
    armor20.png


    Next, change your draw type (that little gold nugget looking circle in the image below) from solid to textured and your texture in the UV/Image Editor should appear on your model as shown:



    You'll note that your texture is not nicely displayed across your model and there are some white gaps peeking through:
    armor24.png


    We need to manipulate the wire frame in our UV/Image Editor so that it lines up nicely with our model:
    armor23.png

    First, in UV/Image Editor, go to View -> Update Automatically and make sure this option is checked. This will update your texture on your model in real time as you adjust the wire frame in UV/Image Editor - very handy:
    armor25.png


    There isn't any real secret I can share for how to go about lining up your wire frame quickly and easily. You'll get better at it the more you practice. For now, I'm enclosing these screenshots so you can see the steps I took to get my textures lined up nicely on the model.

    First, select the right half of the chest wire frame (you use the same commands here that you do when manipulating meshes):
    armor26.png


    Next, invert it by pressing R twice making sure it's nice and flat. The yellow box shows your degrees, which you want to read 0.00 by -180:
    armor27.png


    Then press G to grab it and drag it over so that it lines up with the opposite side almost perfectly. Of note, if you select the matching vertices and press W, it should match them up together nicely (thanks Sixshot!) This will give you a nice mirrored image look on your model:
    armor28.png


    Adjust the textures for the sleeves and pants the same way as the chest, by selecting those corresponding sections of the wireframe. When you are satisfied, your model should look like this:
    armor29.png


    Before moving on to the gloves and boots, we need to assign this moltenchest.png texture to its respective material. See step 4 of Part 1 of the tutorial for how this is done if you've forgotten. When done, make sure your screen looks like the one below:
    material-1.png

    The orange box - this our chest material that we just finished adding the moltenchest.png texture too. You can tell that it has a texture assigned because there is a little face with moltenchest.png attached below the tex.001 (green check mark).

    For the boots and gloves, you simply need to repeat the steps you did for the chest. Highlight the gloves, open your moltengiantglove.png texture, adjust the wireframe, apply it to the molten/gloves material. Rinse and repeat for the boots as well. When finished your model should look like this:
    armor32.png


    Step 4. Creating Helmet and Shoulder drop meshes

    In the future, you can do step 4, which involves exporting of your helmets and shoulders from WMV, when you do the armor texture exporting at the beginning of this tutorial. I didn't mention it ahead of time because I didn't want to overwhelm folks with too much to-do work up front. If you are following this along completely, go ahead and save your current model work as something you'll remember! We'll be reopening the file later after we create helm and shoulder drop meshes to add them to the model.

    Let me explain what I mean by creating drop meshes. Helmets and shoulder armor work a bit differently in Torchlight. You actually have to do two steps to get them into the game and functioning. The first is to create a drop mesh, that is, a visible helm or shoulder item that will drop on the ground when a monster dies (or when you drop the helm/shoulder on the ground yourself):
    moltendrops.png


    In and of itself, these drop meshes will not display on your model. For that, you have to import your completed helm/shoulder drop mesh into our working model and join the two together. I'll be explaining that joining process later.

    First, we need to take a quick detour from our current project and export the moltengiant helm and shoulders from WMV. Open up WMV and find the molten helm. Items -> Objectcomponents -> Head -> helm_plate_raidwarrior_j_01_hum.m2 for the helm and Objectcomponents -> Shoulders -> rshoulder_plate_raidwarrior_j_01.m2

    Export these the same way you would a weapon. Save the texture as moltenhelm.png and moltenshoulder.png respectively. Before closing WMV, if you want to take sceenshots of both to helmet/shoulder icons for later, go ahead. This is the same process for weapons in part 1 of the tutorial.

    In your mod folder under Torchlight, you want to set up some additional folders as such:
    Torchlight/mods/wow mod/media/wardrobe/destroyer/*
    
    The * is where you will place all your helmet, shoulder, glove, boot, and chest textures. This is also where our finished helmet and shoulder drop meshes will be stored, along with actual molten armor mesh/skeleton files and the *.material files (more on all those later).

    Go ahead and place your moltenhelm.png texture in your mod folder, then open up blender. Import your molten giant helm, center it (if you want a centered helm when it drops in-game) and texture it. If you are unsure how to do this, refer back to part 1 of the weapons tutorial. It's the same process.

    Unlike weapons, before you export your helm you must name it in the following pattern: name_helm_drop.mesh
    We'll name this molten_helm_drop.mesh, along with the material attached to it. Assign the textures and then export it:
    armor47.png


    Do the same for the shoulders, except when in blender, make a duplicate copy of the shoulder so you have two (for the drop mesh). Make sure the mesh is active, then press SHIFT + D to duplicate it. Name your mesh and material molten_shoulder_drop, following the same pattern as we did for the helm. Texture it the same you would a weapon, then export it:
    armor48.png


    In your mod folder, place the following files:
    moltenhelm.png
    molten_helm_drop.material
    molten_helm_drop.mesh
    moltenshoulder.png
    molten_shoulder_drop.material
    molten_shoulder_drop.mesh
    

    Let's go ahead and set up the rest of the .dat files for these drop meshes while we're at it.
    Your .dat file for your helmet and shoulders go in the following directory in your mod:
    Torchlight/mods/wow mod/media/units/items/helms (for all helmets)
    Torchlight/mods/wow mod/media/units/items/shoulders (for all shoulders)
    


    I named my molten helmet .dat file HELM_MOLTEN.DAT. Here is my exact .dat file for you to see:
    &#91;UNIT&#93;
    &lt;STRING&gt;BASEFILE:media\units\items\helms\base_helm  _unique.dat
    &lt;INTEGER&gt;ARMOR_PHYSICAL:75
    &lt;INTEGER&gt;LEVEL:100
    &lt;STRING&gt;NAME:moltenh
    &lt;INTEGER&gt;RARITY:200
    &lt;INTEGER&gt;ICON_SHEET:1
    &lt;STRING&gt;ICON:moltenhelm_icon
    &lt;STRING&gt;RESOURCEDIRECTORY:media/wardrobe/destroyer
    &lt;TRANSLATE&gt;DISPLAYNAME:Molten Giant Helm
    &lt;STRING&gt;MESHFILE:molten_helm_drop
    &lt;INTEGER&gt;DEFENSE_REQUIRED:45
    &lt;INTEGER&gt;STRENGTH_REQUIRED:65
    &lt;STRING&gt;GAMBLER_ICON:leathercap
    &lt;INTEGER&gt;RARITY_HARDCORE:200
    &lt;INTEGER&gt;MINLEVEL:75
    &lt;INTEGER&gt;SPECIAL_AMR_MOD:100
    &lt;INTEGER&gt;RARITY_AMR_MOD:200
    &lt;INTEGER&gt;ARMOR_FIRE:25
    &lt;INTEGER&gt;ARMORMIN:50
    &lt;INTEGER&gt;ARMORMAX:50
    &lt;STRING&gt;SET:MOLTEN
    &lt;INTEGER&gt;VALUE:500
    &lt;STRING&gt;UNIT_GUID:5772301358675988960
    &#91;WARDROBE&#93;
    &lt;STRING&gt;CLASS:DESTROYER
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    &lt;STRING&gt;ITEM_MESH:media/wardrobe/destroyer/molten_helm_drop.mesh
    &#91;/WARDROBE&#93;
    &#91;AFFIXES&#93;
    &lt;STRING&gt;AFFIX:GEM_CHARCOAL_ARMOR
    &lt;STRING&gt;AFFIX:UNIQUE_ARMOR_PERCENT_BONUS
    &lt;STRING&gt;AFFIX:UNIQUE_BLOCK_CHANCE2
    &lt;STRING&gt;AFFIX:UNIQUE_LUCK2
    &lt;STRING&gt;AFFIX:UNIQUE_MAX_HP2
    &lt;STRING&gt;AFFIX:UNIQUE_PERCENT_DAMAGE_TAKEN
    &#91;/AFFIXES&#93;
    &#91;/UNIT&#93;
    


    The important portions of this .dat file to point out are the following:
    &lt;STRING&gt;NAME:moltenh
    This is the actual input for you to force drop the helm in-game with the console command
    
    &lt;STRING&gt;MESHFILE:molten_helm_drop
    This is the actual drop mesh that you just finished making in blender. 
    
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    This is eventually going to be our finished model mesh that we began work on. This tells Torchlight that the helm belongs to this specific mesh.
    
    &lt;STRING&gt;ITEM_MESH:media/wardrobe/destroyer/molten_helm_drop.mesh
    again, the helm drop mesh. Seems a little redundant but make sure you have this point back to the helm drop.mesh
    


    I named my molten shoulder .dat file SHOULDERS_MOLTEN.DAT. Here is my .dat file for you to copy/reference:
    &#91;UNIT&#93;
    &lt;STRING&gt;BASEFILE:media\units\items\shoulders\base_  shoulders_d_unique.dat
    &lt;INTEGER&gt;ICON_SHEET:1
    &lt;STRING&gt;ICON:moltenshoulder_icon
    &lt;STRING&gt;RESOURCEDIRECTORY:media/wardrobe/destroyer
    &lt;STRING&gt;MESHFILE:molten_shoulder_drop
    &lt;INTEGER&gt;RARITY:200
    &lt;INTEGER&gt;LEVEL:100
    &lt;INTEGER&gt;ARMOR_PHYSICAL:75
    &lt;STRING&gt;NAME:moltenp
    &lt;TRANSLATE&gt;DISPLAYNAME:Pauldrons of the Molten Giant
    &lt;INTEGER&gt;DEFENSE_REQUIRED:90
    &lt;INTEGER&gt;STRENGTH_REQUIRED:15
    &lt;STRING&gt;GAMBLER_ICON:heavyleathershoulders
    &lt;INTEGER&gt;RARITY_HARDCORE:200
    &lt;INTEGER&gt;MINLEVEL:75
    &lt;INTEGER&gt;ARMORMAX:40
    &lt;INTEGER&gt;RARITY_AMR_MOD:200
    &lt;INTEGER&gt;SPECIAL_AMR_MOD:100
    &lt;INTEGER&gt;ARMOR_FIRE:25
    &lt;INTEGER&gt;ARMORMIN:40
    &lt;STRING&gt;SET:MOLTEN
    &lt;INTEGER&gt;VALUE:500
    &lt;STRING&gt;UNIT_GUID:5772301362970956256
    &#91;WARDROBE&#93;
    &lt;STRING&gt;CLASS:DESTROYER
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    &lt;STRING&gt;ITEM_MESH:media/wardrobe/destroyer/molten_shoulder_drop.mesh
    &#91;/WARDROBE&#93;
    &#91;AFFIXES&#93;
    &lt;STRING&gt;AFFIX:UNIQUE_ARMOR_PERCENT_BONUS
    &lt;STRING&gt;AFFIX:UNIQUE_BLOCK_CHANCE2
    &lt;STRING&gt;AFFIX:UNIQUE_LUCK2
    &lt;STRING&gt;AFFIX:UNIQUE_MELEE_DAMAGE_BONUS
    &lt;STRING&gt;AFFIX:UNIQUE_THORNS
    &#91;/AFFIXES&#93;
    &#91;/UNIT&#93;
    


    After you have these set-up in your mod file ready to go, let's re-open our saved model in blender and pick up where we left off at the end of step 3.

    Step 5. Merging the helmet to our model

    Merging the helmet and shoulders takes awhile to explain, so I'm breaking them up into two separate steps for simplicity sake. With our work-in-progress model open in blender, import the molten_helm_drop.mesh from your mod folder where we saved it during the last step. File ->Import -> OGRE (not OGRE for torchlight!) -> find your molten_helm_drop.mesh
    armor30.png

    Note: the image above does not show a properly textured helmet. When I did this, I originally imported the initial helm mesh that I exported directly from WMV. You can do that as well if you skipped ahead and didn't make drop meshes for your helmet/shoulders from step 4 yet. Just know that you'll need to manually texture the helm/shoulders first before you go ahead and join them to the model. On the other hand, if you've been following along and imported your newly created molten_helm_drop.mesh, it should already display as textured when you switch to texture view in blender.

    Next, rename your helm mesh to read molten/helmet, along with the sub-mesh, and the material (delete any extra materials that may be present, we only need 1) so that they all read molten/helmet. With the helmet still actively selected, you can remove excess vertices (called removing doubles) to help smooth it out slightly by pressing W, then selecting remove doubles from the drop-down menu. This is optional. See the image below for further details:
    armor31.png

    Next, select both your helmet and your model so they are both active (highlighted in pink). Press CTRL +J to join the helmet to the model mesh. It will ask if you want to do this, select yes. Now you will see your molten/helmet is now merged beneath your moltenM model mesh:
    armor32.png


    Since you can no longer right-click on the newly joined helmet and manipulate it apart from the character model, you'll need to select the helm via a different method. Press TAB to change back to EDIT MODE, then press B like you did when we were cleaning up the model's excess armor at the beginning of the tutorial. Drag a box around the helm to select it, then press G to grab it. You can now drag it and position it on top of the models head:
    armor33.png


    Here are some keyboard shortcuts that you should commit to memory!
    G - grabs the selected mesh
    R - rotates the selected mesh. Press R several times to change the field of rotation.
    B - change your cursor to select vertices
    S - scales a selected mesh larger or smaller
    SHIFT + D - duplicate a selected mesh
    M - mirrors a selected mesh, often used in combination with X, Y, or Z to move it along each axis.
    


    Making sure your helmet mesh is still actively selected, press F9 to switch your bottom window to EDITING. Here is where we now anchor the helmet to specific bone groups in the model. This is how Torchlight will know where the helmet is suppose to be affixed to on your model when you pick it up in-game. Look at the following image and then read the directions, it's easier that way:
    armor34.png


    In the red box, change your vertex group to Bip01 Head and click assign. Next to that, the orange circle is showing you to click and make sure that your molten/helmet material (with texture!) is selected - click assign again.

    To verify that you correctly anchored your helmet mesh to the model's head, switch the view to WEIGHT PAINT and look. Your helmet should be glowing red when you have the Bip01 Head vertex group actively selected below. If the helm is not glowing red, you didn't anchor it to the head correctly:
    armor35.png


    Step 6. Merging shoulders to our model

    Thankfully, the initial steps here are the same with the helmet. You want to import your molten_shoulders_drop.mesh the same way you did with the helmet with one minor exception - delete one of the two pauldron meshes by selecting its vertices and pressing DEL. We'll recopy it later after merging it with the model.

    After joining the shoulder mesh to the model, rename it Molten/shoulders, along with each material...same pattern as with the other materials underneath our moltenM mesh. Next, we need to join it to the shoulders. Throughout this, make sure you keep your shoulder mesh actively selected so that you can manipulate it apart from the model. We don't want to move the model or helmet anymore, just the shoulder.

    I'm going to start lining up the shoulder on the right side first for this tutorial. Here's the image and what it all means:
    armor36.png

    There are actually 4 vertex groups you need to assign the shoulders to (2 for each arm);
    1. Bip01 L UpperArm, shown by the yellow circle
    2. Bip01 L Clavicle, shown by the blue circle
    3. Bip01 R Clavicle, shown by the red circle
    4. Bip01 R UpperArm, shown by the green circle

    The process is the same for anchoring the shoulder as it was for the helmet, except you're going to assign the Vertex group Bip01 L UpperArm first (remember, this is from the models point of view, not yours...so Bip L is THEIR left arm - remember that), making sure you have the molten/shoulder material assigned as well. Then, switch vertex groups to Bip 01 L Clavicle and assign that one too. You won't get any confirmation that it's been done to more than 1 vertex group until you switch to WEIGHT PAINT mode to see if glows red or not. If you did it correctly, you should see this:
    armor37.png


    Next, we want to create a duplicate of the shoulder mesh. With the shoulder mesh actively selected, press SHIFT + D to duplicate it, then press M (to mirror it) followed by X (to move it along the x axis). Doing this will switch the active mesh from your current shoulder pauldron to the newly cloned one. Once you have it positioned nicely on the opposite shoulder, you need to assign the other 2 vertex groups to this newly created mesh:
    armor38.png


    Assign this newly cloned shoulder pauldron to the Bip01 R UpperArm and Bip01 R Clavicle. IMPORTANT! You need to remove Bip01 L UpperArm/Clavicle vertex groups from this shoulder pauldron since it was a direct copy of the previous one. When you copied it, you also copied its previously assigned vertex groups. This will result in some bad alignment of the shoulder pauldrons in-game. Check your work with WEIGHT PAINT mode and flip through the various vertex groups you assigned to make sure that their respective shoulder pauldron glows red appropriately!
    armor40-1.png


    If you see this when you check the Bip01 L UpperArm (for example), then you forgot to remove it from the copied shoulder pauldron:
    armor39.png


    You'll know you did it correctly when it looks like this:
    armor42.png
    armor41.png

    Here's my end result, along with my Outliner display for you to see how the finished mesh and materials should be organized. Pay no attention to how I named the prefixes (D_molten), I do that to help me identify various armor meshes by which class they were for:
    armor44.png


    Before you export your model, there is one last thing we need to do. Very simply, you need to attach your characters body.png (which can be found in the original Torchlight assets) to the molten/face material:
    armor46.png


    If you don't and try to export, you'll likely get a python error:
    armor45.png


    You want to export it in a similar fashion as you would for a weapon, changing the material name to molten.material (again, refer back to part 1 of the tutorial for questions with exporting).

    Upon export, it should spit out molten.mesh, molten.material, and molten.skeleton. Place those here:
    Torchlight/mods/wow mod/media/wardrobe/destroyer/*
    


    Step 7. Folder organization and final DAT tweaks

    Lastly, before booting into Torchlight and trying out the gear, we need to make some final .dat files for this armor set, mainly the chest, gloves, and boots.

    Your chest piece goes here. Just save your .dat file as something like CHEST_MOLTEN.DAT and drop it in this folder:
    Torchlight/mods/wow mod/media/units/items/armor/*
    


    Here is my chest piece .dat file for you to use as a template:
    &#91;UNIT&#93;
    &lt;STRING&gt;BASEFILE:media\units\items\armor\base_ches  t_d_unique.dat
    &lt;INTEGER&gt;ICON_SHEET:1
    &lt;STRING&gt;ICON:alchemist_body_07
    &lt;STRING&gt;RESOURCEDIRECTORY:media/models/armor
    &lt;STRING&gt;MESHFILE:leatherpile
    &lt;INTEGER&gt;RARITY:200
    &lt;STRING&gt;NAME:moltenchest
    &lt;INTEGER&gt;LEVEL:100
    &lt;INTEGER&gt;ARMOR_PHYSICAL:75
    &lt;TRANSLATE&gt;DISPLAYNAME:Molten Giant Breastplate
    &lt;STRING&gt;SET:MOLTEN
    &lt;INTEGER&gt;DEFENSE_REQUIRED:70
    &lt;INTEGER&gt;STRENGTH_REQUIRED:50
    &lt;STRING&gt;GAMBLER_ICON:heavyleathervest
    &lt;INTEGER&gt;VALUE:1500
    &lt;INTEGER&gt;RARITY_HARDCORE:200
    &lt;INTEGER&gt;MINLEVEL:75
    &lt;INTEGER&gt;ARMOR_ICE:25
    &lt;INTEGER&gt;ARMOR_FIRE:25
    &lt;STRING&gt;UNIT_GUID:5772301341496119776
    &#91;WARDROBE&#93;
    &lt;STRING&gt;CLASS:DESTROYER
    &lt;STRING&gt;TEXTURE:media/wardrobe/destroyer/moltenchest.png
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    &#91;/WARDROBE&#93;
    &#91;AFFIXES&#93;
    &lt;STRING&gt;AFFIX:GEM_CHARCOAL_ARMOR
    &lt;STRING&gt;AFFIX:UNIQUE_ARMOR_BONUS9
    &lt;STRING&gt;AFFIX:UNIQUE_ARMOR_PERCENT_BONUS7
    &lt;STRING&gt;AFFIX:UNIQUE_BLOCK_CHANCE9
    &lt;STRING&gt;AFFIX:UNIQUE_DEFENSE_BONUS3
    &lt;STRING&gt;AFFIX:UNIQUE_LIFE_STEAL5
    &lt;STRING&gt;AFFIX:UNIQUE_LUCK9
    &lt;STRING&gt;AFFIX:UNIQUE_MAX_HP9
    &lt;STRING&gt;AFFIX:UNIQUE_MAX_MANA9
    &lt;STRING&gt;AFFIX:UNIQUE_MISSILE_REFLECT5
    &lt;STRING&gt;AFFIX:UNIQUE_PERCENT_DAMAGE_TAKEN5
    &lt;STRING&gt;AFFIX:UNIQUE_PET_HEALTH7
    &#91;/AFFIXES&#93;
    &#91;/UNIT&#93;
    


    The most important strings here are:
    &lt;STRING&gt;TEXTURE:media/wardrobe/destroyer/moltenchest.png
    This points to where you saved the moltenchest.png texture we assembled at the very beginning!
    
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    This points to our newly finished character mesh, which we saved as molten.mesh and placed in that folder tree shown.
    


    Your boots .dat file goes here:
    Torchlight/mods/wow mod/media/units/items/boots/*
    


    Here my BOOTS_MOLTEN.DAT:
    &#91;UNIT&#93;
    &lt;STRING&gt;BASEFILE:media\units\items\boots\base_boot  s_d_unique.dat
    &lt;INTEGER&gt;LEVEL:100
    &lt;INTEGER&gt;RARITY:200
    &lt;INTEGER&gt;ARMOR_PHYSICAL:100
    &lt;STRING&gt;NAME:moltenboots
    &lt;STRING&gt;ICON:vanq_assassin_boots
    &lt;STRING&gt;RESOURCEDIRECTORY:media/models/armor
    &lt;STRING&gt;MESHFILE:booticon
    &lt;TRANSLATE&gt;DISPLAYNAME:Molten Giant Sabatons
    &lt;INTEGER&gt;DEFENSE_REQUIRED:20
    &lt;INTEGER&gt;STRENGTH_REQUIRED:100
    &lt;STRING&gt;GAMBLER_ICON:heavyleatherboots
    &lt;STRING&gt;SET:MOLTEN
    &lt;INTEGER&gt;VALUE:500
    &lt;INTEGER&gt;RARITY_HARDCORE:200
    &lt;INTEGER&gt;MINLEVEL:75
    &lt;STRING&gt;UNIT_GUID:5772301350086054368
    &#91;WARDROBE&#93;
    &lt;STRING&gt;CLASS:DESTROYER
    &lt;STRING&gt;TEXTURE:media/wardrobe/destroyer/moltengiantboot.png
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    &#91;/WARDROBE&#93;
    &#91;AFFIXES&#93;
    &lt;STRING&gt;AFFIX:UNIQUE_LUCK2
    &lt;STRING&gt;AFFIX:UNIQUE_PERCENT_DAMAGE_TAKEN
    &lt;STRING&gt;AFFIX:UNIQUE_PET_TOWN_RETURN3
    &lt;STRING&gt;AFFIX:UNIQUE_PET_VELOCITY
    &lt;STRING&gt;AFFIX:UNIQUE_THORNS
    &#91;/AFFIXES&#93;
    &#91;/UNIT&#93;
    


    Your gloves .dat file goes here:
    Torchlight/mods/wow mod/media/units/items/gloves/*
    


    This is my GLOVES_MOLTEN.DAT file:
    &#91;UNIT&#93;
    &lt;STRING&gt;BASEFILE:media\units\items\gloves\base_glo  ves_d_unique.dat
    &lt;INTEGER&gt;RARITY:200
    &lt;STRING&gt;NAME:molteng
    &lt;INTEGER&gt;ICON_SHEET:1
    &lt;STRING&gt;ICON:vanq_heavy_leather_gloves
    &lt;STRING&gt;RESOURCEDIRECTORY:media/models/armor
    &lt;STRING&gt;MESHFILE:gloves
    &lt;INTEGER&gt;ARMOR_PHYSICAL:100
    &lt;TRANSLATE&gt;DISPLAYNAME:Gloves of the Molten Giant
    &lt;STRING&gt;SET:MOLTEN
    &lt;INTEGER&gt;DEFENSE_REQUIRED:45
    &lt;INTEGER&gt;STRENGTH_REQUIRED:55
    &lt;STRING&gt;GAMBLER_ICON:scalegloves
    &lt;INTEGER&gt;LEVEL:100
    &lt;INTEGER&gt;VALUE:500
    &lt;INTEGER&gt;RARITY_HARDCORE:200
    &lt;INTEGER&gt;MINLEVEL:75
    &lt;STRING&gt;UNIT_GUID:5772301354381021664
    &#91;WARDROBE&#93;
    &lt;STRING&gt;CLASS:DESTROYER
    &lt;STRING&gt;TEXTURE:media/wardrobe/destroyer/moltengiantglove.png
    &lt;STRING&gt;MESH:media/wardrobe/destroyer/molten.mesh
    &#91;/WARDROBE&#93;
    &#91;AFFIXES&#93;
    &lt;STRING&gt;AFFIX:UNIQUE_ATTACK_SPEED2
    &lt;STRING&gt;AFFIX:UNIQUE_CRIT_CHANCE2
    &lt;STRING&gt;AFFIX:UNIQUE_CRITICAL_DAMAGE_BONUS
    &lt;STRING&gt;AFFIX:UNIQUE_LUCK2
    &lt;STRING&gt;AFFIX:UNIQUE_MELEE_DAMAGE_BONUS
    &#91;/AFFIXES&#93;
    &#91;/UNIT&#93;
    


    Finally, double check that your...
    Torchlight/mods/wow mod/media/wardrobe/destroyer/*
    
    ...folder contains all the files that we created in this tutorial. Here are mine highlighted to show you:
    FINALFOLDERLAYOUT.png


    :D Here is our newly clad Destroyer in Molten Giant Tier 12 raid gear! :D
    2012-03-02_00001.jpg

    Have fun and go mod something!
    brixtan_by_hawkn93-d49csvz.png
    "If a problem is too big to fix, one must break it into smaller problems."
    WoW Weapons & Armor Modding Guide
  • PhanjamPhanjam Posts: 3,297 ✭✭✭
    Hi Brix!

    Can I re-post this tutorial of yours onto the tl2 modding wiki?

    I'm doing this to have content on the wiki quickly, but it would be much better if you could also join the wiki and maintain your tutorials there :mrgreen:
    Torchmodders
    Torchlight 1 Class Pack (TL1CP) Mod for TL2: Steam | RGF
  • BrixtanBrixtan Posts: 2,289
    Yeah sure thing, although the steps required to do weapons in TL2 differ significantly from my TL1 tutorial and likely won't help anyone stepping into modding TL2. Same goes for the armor - it's not transferable to TL2.

    So that's the disclaimer ;)
    brixtan_by_hawkn93-d49csvz.png
    "If a problem is too big to fix, one must break it into smaller problems."
    WoW Weapons & Armor Modding Guide
  • PhanjamPhanjam Posts: 3,297 ✭✭✭
    Hmm yeah I see now what you mean.

    Well it's STILL a FANTASTIC tut any way you cut it :D you da WoW master and always will be!
    Torchmodders
    Torchlight 1 Class Pack (TL1CP) Mod for TL2: Steam | RGF
Sign In or Register to comment.