Technical requirements for items
Below you'll find all the technical information you'll need in order to create a valid item. However, technical requirements are only a small part of creating a successful item. Before you get started, please take a moment to read our articles on character
and shader mask
Links to hero models and guidelines
General Submission Requirements
- The original content for heroes can be downloaded from their individual budget page. Please do so rather than decompile the mdl's.
- The geometry budgets listed per hero are in triangles.
- For geometry source content, we accept .SMD .DMX or .FBX
- For texture source content, use .TGA
Due to unique design of every hero - each of them has different geometry budgets for his items. Be sure to check the individual hero page for specific information on item budgets.
Each item can have two models with different level of detail (LOD). LOD 0 model is used in the portrait, LOD 1 model is used in-game. LOD 0 is approximately twice as detailed as LOD 1. . Internally we create LOD 1 out of LOD 0 by optimizing and removing small details.
Your item should be approximately the same dimensions as the hero's default items. A hero's selection area will not grow or shrink to fit custom items.
Most hero items are created on top of the geometry of bare hero. For example, the geometry of a hero's forearms is not removed; his bracers sit on top of it.
Hard edges and smoothing groups are OK to use, but are best kept to a minimum, as they break up the vertices and add to an item's vertex count.
Your item's geometry should be skin-weighted to the default hero skeleton from their "_model.ma" maya file. Additional bones may be added but must be rooted to one of the joints in the hero skeleton.
That said, there are constraints on the number of bones a hero may have, so be conservative in using them. If this is an issue we will let you know.
Please note that Dota 2 does not support double-sided materials; you will need to create geometry where a backside is needed.
UVs and Texturing
Due to unique design of every hero - each of them has different textures budgets for his items. Be sure to check the individual hero page for specific information on item budgets.
To achieve better texture details you can overlap UVs on symmetrical or repeating parts of the model but do not weld them through. Internally we offset overlapping UVs +1 in U direction
Texture seams are better kept to a minimum as they break up the vertices and add to an item's vertex count.
In general, you can push an item's UVs to the texture borders closer than usual because hero's and item's textures all added together in-engine.
Item textures do have some very specific requirements in order to be accepted. These rules are:
- All textures must be present - color, normal, mask 1 and mask 2
- All textures for an item should have the same resolution equal or higher to the item resolution specified on hero's page. If they don't, the submission tool will scale them up or down which might result in reduced quality.
- We author source textures 4 times larger than the in-game size for painting and promotional purposes. E.g. a typical weapon has texture resolution of 256x256 pixels in game but source art is 1024x1024
- The "_color" texture can be 24 or 32 bit.
- Alpha channel of 32 bit "_color" texture can be used as opacity for your item if alpha is allowed for this hero.
- The "_normal" texture should be 24-bit and use the 3dsmax format(red channel is left; green is up; blue is top). If you aren't creating a custom normal map, use a flat normal color (128,128,255).
- "_mask1" is a 32-bit texture and every channel is used.
Red is the detail map mask.
Green is the diffuse and fresnel warp mask.
Blue is the metalness mask which controls where the Color and Fresnel are suppressed. Works best in combination with mask 2 blue channel "tint specular by base color" which brings the color back through specular.
Alpha is the self-illumination mask, where the color is drawn from Color texture. Even if you are not using this, fill it with black and pixel of non-black in the corner of the material. This is done in order for texture compiler to keep this channel. If it is entirely black or white, it will be thrown out and the shader will think it's pure white and your item will be full bright.
- "_mask2" is 32-bit and again every channel is used.
Red is specular intensity.
Green is rimlight intensity.
Blue is "tint specular by base color", white color in this channel will color specular highlights by diffuse color from _color texture, black will keep specular highlights of whatever color light affecting the surface is.
Alpha is the scale factor of specular exponent from hero shader(vmt). For example, if the specular exponent is set to 16, then values for this channel of 0...255 will control exponent values from 0 to 16. Even if you are not using this, fill it with white and pixel of non-black in the corner of the texture. This is done in order for texture compiler to keep this channel. If it is entirely black or white, it will be thrown out resulting in a different texture format when compiled.
If you haven't already, please take some time to read our articles on character
design. And keep in mind, very busy designs with a lot of high-frequency detail don't work well. If you can not see it from in-game perspective - it's probably not worth doing. Normal maps work best in combination with high specular and other masks. Also, always avoid pure white and black color.
All shader settings for all of a hero's items will be derived from the base hero material. The game automatically creates single model and texture out of the hero and his currently equipped items, and assigns a single shader to everything. We do not support item shaders that differ from the hero shader. For example, an additive item on a solid hero isn't supported, but the hero material is very powerful and supports a range of effects, so there is almost always a way to achieve the desired effect. Because of this, the quickest way to create a material file for your item is to simply copy the hero material file as your item material file and replace his texture names with the item's texture names.
Again, we do not support double-sided materials; you will need to create geometry where a backside is needed.
Vertex Based Particle Effects for Items
For items which have effects on them by default, such as edge glows, item authors will be required to submit a .dmx or .fbx mesh which defines where these particles should go on their item. This will use base effect authored for the item and place the particles accordingly.
To do this, create a new mesh, much like creating an LOD. However, this mesh will represent particle positions, one per vertex. Triangles, faces, and general connectivity do not matter on this mesh. The best way to create a mesh for this is to treat it as a single polygon. Keep in mind that particles will be created from all vertices in the mesh, so do not attempt to create valid convex or closed triangles in the traditional sense if this creates vertices in undesired locations.
While it is possible to use the vertices from the original mesh, generally speaking the density will not end up being appropriate for the effect. In addition, UV's, hard edges, etc. can create duplicate vertices in some cases which is generally undesirable.
There is a hard limit to the particle count allowed for each item.
While each piece of modeling software will vary, here is an example of how to quickly create effects for an item in Maya :
First, start with your finished geometry. Select this mesh and Modify->Make Live. This will allow us to use the base mesh to draw vertices for our new mesh, while constraining them to the topology of the original.
Next switch to the Mesh->Create Polygon Tool. This will allow you to draw the new FX mesh locked to the live geo. The entire mesh will be a single polygon. Draw points where you wish to see particles, such as along a blade edge. The density of these points will usually be higher than that of the normal mesh, it may require a bit of trial and error to get the proper density for the desired look.
Once you've added all the points, you can export just the effects mesh. Name your mesh the same as the item with a _fx postfix, similar to an LOD.
Loading the effect into the item submission tool will show you a preview.
If you so choose, your item can modify a hero's animations when they equip it. More information on that to come.