About This File
I tried to implement the exporter only based on the information I found by investigating LOD files. I'm not a 3D Modeler myself. I only tested the exporter with rather simple object (hierarchies).
The bottom line is that I have no idea if the exporter works for you. So please give feedback.
Note: This plugin requires blender version 2.78 or 2.79. It is not compatible with blender versions 2.8+.
Open the Blender User Preferences - Add-ons Tab
(File -> User Preferences... -> Add-Ons)
Click "Install from File..."
Browse to and select the exporter python script "io_export_sf2_lod.py"
Click "Install from File..." (or double click on the script name)
In the Add-Ons Tab under Supported Level select Testing and enable "Import-Export: Strike Fighters 2 LOD Exporter"
The LOD exporter is now installed and enabled. Under File -> Export you should see the menu item "Strike Fighters 2 LOD (.lod)". It's greyed out until an exportable object is selected.
Select the object you want to export and click File -> Export -> Strike Fighters 2 LOD (.lod)
The file browser opens. In the lower left area you see the LOD exporter options:
-enable/disable writing the out file (text file with information about the exported object(s)).
-enable/disable animation export
This option is similar to the option in the original TW-Exporter: "Exporting using AllowDecals=0 causes the vertex to be shared, so it can reduce the size of the .LOD but also causes decals to "bleed" along the edges."
This dialog setting is used as default for all objects to be exported. However, it can be overwritten by each individual object via the custom object property "AllowDecals" = 0(false) or 1(true)
The selected object and all child objects are exported.
Two custom object properties are supported by the exporter:
-AllowDecals = 0 or 1, This option is similar to the option in the original TW-Exporter: "Exporting using AllowDecals=0 causes the vertex to be shared, so it can reduce the size of the .LOD but also causes decals to "bleed" along the edges."
-UseFlatNormal = 0 or 1, if set to 1 then all vertex normals are pointing straight up (normal = (0,0,1)) in the objects local coordinate system.
The objects must meet the following requirements:
-No scaling in the Transform Properties allowed (that means: scale x = y = z = 1.0). If your object has scaling, it should be applied to the mesh (Ctrl-A)
Scaling is only allowed for animations.
-A material must be assigned to the object. Only the first material of an object is exported.
The following material parameters are exported:
-Diffuse Color (the lod file format also contains ambient color. Currently the exporter set ambient color = diffuse color)
-Specular Hardness (I think in 3ds Max it's called glossiness)
-if "Shading -> Emit" > 0.0 then self illumination is enabled
-Transparency (if transparency is enabled, then the object doesn't cast and doesn't catch shadow. if transparency is disabled, then the object cast and catch shadow. The specific LOD format version the exporter writes, doesn't support arbitrary cast/catch shadow combinations. The other LOD formats I don't understand enough (yet). Sorry!)
-Diffuse texture image name (as diffuse texture the exporter uses the texture where "Influence -> Diffuse -> Color" is enabled)
-Normal map texture image name("Influence -> Geometry -> Normal" is enabled and the Normal value is also exported)
-Specular map texture image name("Influence -> Specular -> Intensity" is enabled)
-Normal and specular map can only be used together with a diffuse map. (If I exported a normal or specular map without diffuse map, then the LOD wasn't shown in the game or the game crashed. I don't know why...)
This exporter supports the following object animation types: location, rotation and scaling.
Frames 10, 20, 30, ..., 100 are exported as animation 1
Frames 110, 120, 130, ..., 200 are exported as animation 2, ...
Thanks to logan4 and angelp who provided me with specific lod files that helped me to understand the lod file format better.
-bugfix: didn't work in blender version 0.79
-added custom object properties: "AllowDecals" and "UseFlatNormal"