]> git.xonotic.org Git - xonotic/xonotic.wiki.git/blobdiff - Exporting-a-weapon-for-Xonotic.md
Resize table of contents
[xonotic/xonotic.wiki.git] / Exporting-a-weapon-for-Xonotic.md
index 635b4c44ae83c49fa00345c5036ee4c0255ca84c..a0d8e687b31abb06c549396c6cfc9f2f31831082 100644 (file)
@@ -1,9 +1,24 @@
-_This article looks complete, [old methodology](#old-methodology) isn't a very complete section due to  the obsolescence_
+_This article looks complete, [old methodology](#old-methodology) isn't a very complete section due to  the obsolescence._
+
+# _Table of Contents_
+> ### 1. [Modeling requirements](#modeling-requirements)
+> ### 2. [Introduction to export a weapon](#introduction-to-export-a-weapon)
+> ### 3. [Textures and UV map](#textures-and-uv-map)
+> ### 4. [Starting to export](#starting-to-export)
+> > 4.1. [Modifiers](#modifiers)<br/>
+> > 4.2. [Bones and animations](#bones-and-animations)<br/>
+> > 4.3. [Textures and materials](#textures-and-materials)
+> ### 5. [New methodology](#new-methodology)
+> > 5.1. [SMD (includes IQM converter and dpmodel guide)](#smd-includes-iqm-converter-and-dpmodel-guide)
+> ### 6. [Export troubleshooting](#export-troubleshooting)
+> ### 7. [Old methodology](#old-methodology)
+> > 7.1. [MD3](#md3)<br/>
+> > 7.2. [IQM](#iqm)
 
 # Modeling requirements
 ### To follow this, you need knowledge about modeling using Blender
 
-Blender version recommended: 2.79b or later
+Blender version recommended: [**2.79b**](https://download.blender.org/release/Blender2.79/) or [**later**](https://www.blender.org/)
 
 You need [dpmodel](https://icculus.org/twilight/darkplaces/files/) to convert SMD files:
 - [dpmodel tool](https://icculus.org/twilight/darkplaces/files/dpmodel20091008beta1.zip)
@@ -58,10 +73,14 @@ If you didn't this, the model will be invisible and it won't be able to interact
 
 # Starting to export
 
+## Modifiers
+
 Keep in mind, you need to set these modifiers for the mesh/model object: 
 
 <img src="uploads/447f6abe0f73c6d6cadce97e4ed66e8b/blendermodifiersiqmandmd3.jpg" alt="blendermodifiersiqmandmd3" />
 
+## Bones and animations
+
 MUST contain `tag_handle`, `tag_shell` and `tag_shot` bone names attached. These tag_names MUST be attached, if not the model will cause errors.
 
 `tag_Somename` is another one, you can add if you need some optional animation in this bone. (Not useful for [old methodology](#old-methodology))
@@ -76,6 +95,8 @@ Required animations:
 - `idle`
 - `reload`
 
+## Textures and materials
+
 Please note that before exporting, about textures and materials, you have to assign the same as the script like this example shader file (`crylink.shader` file):
 ```
 crylink_new // your material/texture name
@@ -128,19 +149,29 @@ Save those compiled model files into `models/weapons/` folder where they belong.
 
 **Conclusion**: Sometimes, renaming formats can be useful to save effort. Note: it's a kind of weird way to do stuff, file formats are hardcoded in the gamecode rather than dynamically obtained. The issue of model resources was found here: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2629#note_686988936
 
-## Export troubleshooting
+# Export troubleshooting
 
-- Spamming CSQC errors:<br/>
+- _**Spamming CSQC errors:**_<br/>
 If you received spamming errors like that:<br/>
 <img src="uploads/1f769ede89975be78d88eaad1b062a3d/spammingerrorstagweapon.jpg" alt="spammingerrorstagweapon" width=450 /><br/>
 It's because you didn't do correctly the steps after exporting the models. Remember, `g_*` and `v_*` MUST contain one bone. 
 
-- Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):<br/>
-To solve this, the possible way is exporting as IQM, selecting bone and mesh (both highlighted). Usually, this issue happens in `g_*` and `v_*` ones.
+- _**Broken shadow artifacts (enabled with `r_shadows 2` and disabled `r_shadow_shadowmapping 0`):**_<br/>
+To solve this, the possible way is exporting to IQM from Blender, selecting bone and mesh (both highlighted). Usually, this issue happens in `g_*` and `v_*` ones.
 <br/>Reference: https://gitlab.com/xonotic/xonotic-data.pk3dir/-/issues/2667
 
+- _**When exporting to IQM, get duplicated names in the texture:**_<br/> 
+<img src="uploads/cdb90908aab4a52580019c871a936156/duplicatedtexturenameloadingerror.jpg" alt="duplicatedtexturenameloadingerror" width=700 /><br/>
+Take a closer look what is telling here:<br/>
+_The "Materials" option controls how material names are generated. "material+image-ext" combines the name of the material and the name of the UV-map image (without its extension or directory) to generate the material name, "material" uses only the name of the material, and "image" just uses the name of the UV-map image (without its directory)._ <br/><br/>
+When you export to IQM, you need to watch out that detail after selected File > Export > Inter-Quake Model (.iqm, .iqe).<br/>
+Pay attention to this [section](##textures-and-materials) when you need to export correctly, the material/texture(image) should be one thing, in Export IQM > Materials: > select `material` or `image` instead `material+image-ext`.<br/>
+<img src="uploads/4fa75dca8ebb724b89d5fd5513fd2787/exportiqmiqeblenderdetails.jpg" alt="exportiqmiqeblenderdetails" width=200 /><br/>
+
 # Old methodology
 
+*Note: this section is obsolete.*
+
 **IMPORTANT**: In this methodology, you can't make cool animations with separated objects, because `h_*.iqm` here is a plane mesh with bones.
 
 Note: the model should be rotated as YXZ, instead being XYZ. Because the tip of the weapon is Y, horizontally is X.
@@ -153,6 +184,8 @@ Before to export, you need to select all objects in the scene. (Pressing A, seei
 
 <img src="uploads/f3f39c9a06a408bffd5e48bc5e07eac6/exporttutorialMD3.jpg" alt="exporttutorialMD3" />
 
+And export the model to MD3. _Attention: You can't export a model over than 8192 triangles/polys._
+
 ## IQM
 
 Before to export, you need to select all objects and bones in the scene. (Pressing A, seeing all objects highlighting orange or red)
@@ -161,9 +194,9 @@ Before to export, you need to select all objects and bones in the scene. (Pressi
 
 <br/>
 <br/>
-There's a post from InsideQC Forums explaining about IQM:
+For `h_*.iqm`, you will need to make a simple plane with a scale reduced to 0.01 and the following bones attached: `tag_weapon`, `tag_shell` and `tag_shot`.
 
-For `h_*.iqm`, you will need to do this:
+There's a post from InsideQC Forums explaining about IQM:
 
 There is a simple way: