From Unvanquished
Jump to: navigation, search

Blender is a cross-platform 3D modeler and animator (and much more) available for GNU/Linux, macOS, Windows and more operating systems.

Blender is free software and is the recommended way to edit and animate models for Unvanquished.


The Blender website is

The Blender documentation can be found on

The Blender source repository is


Blender is a very large and complex piece of software. For working on Unvanquished, we suggest using the latest version.

If you are still using 2.4 because you are comfortable with its GUI, make the switch! There are too many new features to take advantage of not to, and it will be easier to work with other artists on the team if you do.

Organizing Large Files

Vertex Groups

🚧️ TODO: Write a naming convention.
  • Keep your vertex groups organized by name. If there are too many vertex groups to do this by hand, open a python console and use the following command at the prompt after selecting the object whose vertex group names are to be sorted:
     >>> bpy.ops.object.vertex_group_sort()
  • Do not create vertex groups for bones that are not intended to deform the mesh.
  • When parenting an armature to a mesh, do not select "With Automatic Weights". This may save you the time of creating vertex groups, but you will likely have groups that you do not want, such as for pose bones (i.e., those that manipulate other bones indirectly with constraints but are not intended to deform the mesh), or will assign too many vertex weights to vertices. (The daemon engine, for performance reasons, only supports four weights per vertex.)

Naming Conventions for Objects

Name objects using a period-delimited (.) hierarchy. Generally speaking, name datablocks with the same name as the object but with a .d suffix to distinguish them from objects.

For example:

  • Leg.Upper.Left
  • Leg.Upper.Right
  • Leg.Lower.Left
  • Leg.Lower.Right

You are free to organize this hierarchy however you see fit, but please be consistent.

In some instances, using the suffixes _L and _R instead of .Left and .Right may be necessary for certain features to work. This is also acceptable.

Managing Textures

Place all textures in a subdirectory named "Textures". Ensure that your file paths in Blender use the matching case so that users on case-sensitive filesystems will not have problems.

Use relative file paths for textures, and the following naming convention:

  • Name — (Required) The name of the model. If the model is a character class or weapon, use that name.
  • TextureType — (Required) A name indicating the type of information the texture contains. Please use one of the following:
    TextureType Description
    Alpha An alpha map.
    Diffuse The diffuse (albedo) color.
    DiffuseAlpha A diffuse map with an alpha channel.
    Glow A glow map.
    Normal A normal map.
    SpecValue A specular color map.
    SpecHilight A specular hilight map.
  • AlternateResolution — (Optional) The resolution of the texture in the form WidthxHeight. Only include the resolution of the texture in the name if there are multiple resolutions to choose from.
  • format — (Required) The format of the image. For JPEG images, the jpg extension is preferred over jpeg for consistency.

Do's and Don'ts

  • Don't create a diffuse texture without appending _Diffuse to the name.
  • Don't create a stand-alone alpha map that is not in greyscale; if you create a stand-alone alpha map with an alpha channel containing alpha, the filesize will only be larger (if only slightly).

Tips and Tricks

  • The desired playback framerate can be set under Properties → Render → Dimensions → Frame Rate.
  • When sharing work between computers, use relative filepaths. Start a pathname with "//" and Blender looks starting relative to the folder that the .blend file is in.


White marks are visible around the edges of alpha-mapped textures

Enable "Premultiply Alpha".

Python Scripting

Please see the full article.


Blender 2.4

Blender 2.5/2.6

Note that the Blender Python API is constantly in flux, so these may or may not work with newer versions of Blender than they were written for.


Purpose Format Last updated Known to work with Link Notes
Export MD5 Unknown 2.59 (partially) Warning: this exporter does not work with newer versions of Blender, and never worked very well to begin with! There is a newer exporter that you should use instead. Please see the exporting guide for more information.
Import MD5 Unknown Unknown None.
Export MD3 Unknown Unknown None.