Today we’re going to create an item for Dota 2 from scratch. First of all you’ll need some 3D software, like 3Dsmax, Maya or Blender. Some image editing software like Photoshop or Gimp. And a bunch of little neat plugins, but more on that later.
First thing we should do is that we should create concept for our item. This will help you out immensely on all levels, from defining your lines and shapes to figuring out fine details. I’m creating a weapon for Naga Siren as the wave of her items has passed.
Naga wields curved swords, so first of all i got some references on that, and after combining my original thought of seawave themed weapon with some neat curved swords I’ve matched the size to fit original weapon.
Your concept doesn’t have to be super detailed, but it will be better if your concept shows silhouette, volume, feel and the theme of your item. Defining color will help you later on the texturing stage.
With that done we should head to the Dota 2 Workshop requirements page, check out Naga Siren requirements and download her model. Naga Siren requirements for weapon gives us lots of room for nice details both texture and polygon wise.
After you’ve downloaded Naga Sirens model and unpacked it, it’s time to import her weapon into your 3D program of choice. I use 3Dsmax, and to import anything there, you’ll need some extensions first. Download and install SMD Importer for 3Dsmax (and here’s SMD Importer for Maya and SMD Importer for Blender), it’s super easy, just follow the instructions on the page.
After you’ve installed it, unpacked your Naga Siren assets, you can import it now!
Just agree with everything for now.
And voila! It’s in the viewport.
But we should hide it for now, because we’re starting on the blade mesh. First, you should position your concept in your scene, so you could model around it. Some folks use textured plane as the backdrop, i just use “viewport background” function.
Don’t hold back on your base mesh, tris count and optimization will come much later, just form away your base mesh.
After some tweaking we export our base mesh and start sculpting.
Mostly people use Zbrush or Mudbox for their sculpting, but you can use your software of choice. Sculpting allows you to model with ease, and after you’re done you can bake most of the maps you’ll use for easier texturing.
Importing our sword into Zbrush is easy
After that you just need to drag across the viewport and your base model is in!Zbrush is a powerful tool and i won’t be diving into it right away, but know that advanced Zbrush users can sculpt, paint and retopo all in Zbrush! But we won’t be jumping that high today and will just stay on the sculpting level.
i strongly recommend making your mesh symmetrical, that will save you twice the texture space and half the sculpting.
After some sculpting around and maybe redefining some lines for smoother flow we’ve got something more detailed
I’ve decided to drop guardstraps, redefined some lines, but overall it’s pretty close to the original. Now it’s time to add some detailing. While our concept is pretty clean, we could always add some wear, natural metal noise and improve the definiton. But don’t overdo it, some wear is nice, but you’ll never go into battle with the dull blade.
Now it’s time to export! After exporting your high poly and lowpoly (just go to the lowest subdivision level and export it) import your lowpoly back into Max and delete half of the model.
No we’ll map it! Now is the best time to optimize and decide if we want something changed!. Thankfully my model fits the requirements and i even got some tris left! (You can check your tris count by right-clicking your model and selecting Object properties.)
370 x 2 = 740. So we’ve got some to spare! I’ve decided to optimize some stuff and put some nice stuff near the guard, to fully use Nagas original weapon silhouette.
There are bunch of mapping tutorials for every 3D software out there, just google UV mapping and you’ll get bunch of tutorials even on Youtube. While mapping, remember that you should use less space for the parts of the model that will be rarely seen, like the handle. And place your seams where they’re hard to spot, like on the natural edges or between the parts of the geometry like on the edge of the handle and the blade. use mirroring as much as possible, this will allow you to keep your textures sharp even in the confined space of Dota textures.
After we’re done mapping, we disconnect the ribbon, mirror the blade and export it, ready for baking.
Once again, there’re bunch of ways to bake your stuff, i use xNormal. Neat little tool that will allow you to bake your maps from the highpoly to the lowpoly. it’s pretty easy, just watch some instructional videos. You just need to pick highpoly, lowpoly and select which maps you want to bake. I bake AO, Height map and Normal map.
After baking those 3 maps, we’re going to get us spec map using CrazyBump
After putting all these maps together and dropping some basic colors underneath, we’re going to finally see it ingame for the first time!
Fist of all, you’ll have to aplly material to your mesh, and position it where there original naga weapon was. After that you just Skin your mesh to Sword_R bone and export it.
But we’re far from over. Now we’ll have to create some placeholders. First of all we’ll need fake lod1 model. Just delete most of the vertices on your model and export is as lod1_modelname.smd
After that you’ll need some empty mask files which you can devise from the original weapon textures.
Putting everything in..
And voila, we’ve got our first problem.
Two problems, actually. First of all, i forgot that i rotated the original naga weapon and mismatched my model, and second of all, Weapon slot should be skinned to sword_L, contrary to what requirements page says. After some repositioning we’ve got ourselves in place.
Ignore the stiff ribbon for now, we’ll skin that later. While it looks mighty fine already, we’re going to do bunch of texture tweaks now!
First we’ll do the base color pass, while smoothing out some hard edges
I’m using Corel Painter for most of my paintovers. And it really works with the painted look of Dota 2.
And here, after some tweaking, we’ve got our close-to-final texture
Here are diffuse, normal, mask1 and mask2
Now we just have to skin the ribbon, for that, just get back to the mesh, detach the ribbon, skin the blade back to the Sword_L, and skin the ribbon to ropeL_r0c0 and ropeL_r1c0
And it jiggles!!
Note that Dota 2 doesn’t use jigglebones, instead it uses custom animations and clothing simulation. So if you want something jiggly it should be either done by Valve, or by you, using existing bones.
Now we just need to create that lod1 model we faked, and we’re all set! For that, get back to your model and optimize the hell out of it. Note that lod1 is used when you can’t really see the item clearly, so don’t be afraid to smooth out some details, just keep the overall silhouette intact.
I usually do this via Optimize and some manual tweaking. To minimize your UV losses, delete half of your model if it’s symmetrical and optimize the half, that way you’ll have to fix just one side. So after the optimizing we’ve got this.
Not very good with our mapping, so I’ll just do it manually. This way it’s really nicer.
Now we just need to unwrap UVW. And after connecting the dots and reskinning, we test it
And it looks mighty fine!
now it’s time to grab some neat pics
And some videos
And it’s done! Check it out on the workshop!