Formats/Model

From Unvanquished
Jump to: navigation, search

Tutorials

See Tutorials#Modeling.

Tools

See Tools/Modeling and Tools/IQM.

While members of the team may have used Zbrush, 3ds Max, Maya, and other software, Blender is preferred as it is used by most of the team and is freely available, making it accessible to anyone.

Using software other than Blender can create problems in collaborating on work. Please be aware that in transferring data between software some information may be lost, such as animation data. At a minimum, transferring model and UV (unwrap) data is almost guaranteed with the Wavefront .obj format.

When doing props for maps, some people may prefer doing them in NetRadiant the same way they do their maps, see Mapping.

Licensing

The following licenses are suitable for models:

Information 48x48.png

Note

The following licenses are suitable for media files (images, models, sound files…):

The default contribution license is CC BY-SA 4.0, unless you specify another license, by contributing to Unvanquished you are placing your work under CC BY-SA 4.0 license. You must have right to.

Older licenses like CC BY-SA 3.0, CC BY-SA 2.5, and CC BY-SA 3.0, CC BY-SA 2.5 are fairly acceptable for importing existing media. Many of our older media use such licenses, but please not use those older licenses for brand new content when you have full power to use latest version of those licenses. If you can get permission from original author to get a newer or more permissive license, please get it. For Creative Commons licenses older than 3.0, please ask us before merging.

See the page Licenses/Media for details.

Supported formats

When you produce a model with an editor like Blender, you'll better convert it to IQM, see IQM#Tools for Blender importer and exporter. You can them convert the IQM file to IQE, see iqm_to_iqe.py from asstools.

When you produce a model with an editor like NetRadiant, you usually compile the .map file to BSP with Q3map2 then convert the BSP to ASE or OBJ using Q3map2. It's possible to convert directly from .map to ASE or to OBJ but the model will not be optimized when doing so.

See also Exporting models.

Supported formats for rendering in engine

  • IQM, a model format with skeletal animation, can embed multiple meshes and animations in one file, ✅️ Recommended;
  • MD5 (MD5Mesh, MD5Anim), a model format with skeletal animation, every mesh and animation are stored is separate files;
  • MD3, a model format with vertex animation, ⚠️ Discouraged.

Supported formats for baking in maps

Information 48x48.png

Note

Baking models (misc_model) will produce lightmaps on them but baking may change their curves and make the normals not optimal, you may want to prefer to include models in maps in a way the engine load them instead (env_anim_model), but they will be lit by the lightgrid instead.

Recommended formats

Information 48x48.png

Note

The recommended format to store models in Unvanquished data repositories is the IQE format which is the text-based counterpart of IQM. Neither NetRadiant, Q3map2 and the Dæmon Engine supports IQE so they're usually converted from IQE to IQM after fetching repositories. Many Unvanquished models are translated/rotated/scaled when converted from IQE to IQM so implementing IQE loading in those tools would display them wrongly anyway as translation, rotation ans scaling would not be done.

Those are recommended model formats to be used in source repositories and in game to be delivered to players, and related tools.

Purpose Kind Format Tool
Source All model files compressed .blend + .iqe Blender, see also Tools/IQM.
Purpose Kind Format Tool
Release All model files IQM Iqmtool, see also Tools/IQM.

In repositories

It's recommended to store model sources as compress .blend files. Either you tick the compression option in Blender when saving, either you recompress them with gzip tool and rename the .blend.gz to .blend (that's basically what Blender does when you enable compression).

It's required to also store the model in an non-modeler-specific format in repository.

Models to be baked in maps must be stored in a format like IQE so the Urcheon tool can convert them to IQM supported by the NetRadiant editor and the Q3map2 map compiler, or in a format like MD3, OBJ or ASE.

Models to be loaded by the engine in maps must be stored in a format like IQE so the Urcheon tool can convert them to IQM supported by the Dæmon engine, or in a format like MD5, or MD3.

When storing models in repositories prefer text formats like IQE, MD5, ASE or OBJ over binary formats like MD3.

When possible, prefer IQE.

Software-specific help

Workflow overview

The process from start to finish typically goes like this:

  1. Modeling — A 3D model is created in any of a number of applications; you do not need to worry about what software you use for this stage as long as it can export in a format such as Wavefront .obj. At this stage, it may be either high or low-poly.
  2. Texturing — The model is unwrapped and textured. If a high-poly model is available, its normals are baked onto the low-poly model.
  3. Rigging — The model is rigged. From this point forward, if the unwrap (and texture) is to be changed, this must be done in the same program that animation is being done in.
  4. Animation — The model is animated. If you are using Blender, simply animate the model with its different animations in different keyframe ranges. The order is unimportant. For example, the death animation might occupy frames 0-60 and the pain animation occupy frames 61-120. See the list of animation names for more information as to what animations must be made for each model. Also, when using Blender, have the model face in the +Y direction. The newer MD5 exporter has an option to reorient the model to face in the +X direction.
  5. Exporting — The engine obviously cannot read .blend files, so the model must be exported to another format that it understands. IQM is currently the preferred format. The process for doing this is described in detail on the Exporting Models page. This is a multi-step process involving configuration editing and packaging.