diff --git a/README.md b/README.md index 5e64243..6a9efe7 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,9 @@ -# WIP io_scene_a3d -Blender plugin to import the proprietary model format `A3D` used by the game [Tanki Online](https://tankionline.com/en/) from [Alternativa Games](https://alternativa.games/), it is not compatible with older the formats used by the flash based Alternativa3D engine (see [this plugin by Davide Jones](https://github.com/davidejones/alternativa3d_tools) instead). - -## File format -Check the wiki for file format documentation. +# io_scene_a3d +Blender plugin to import the proprietary model format `A3D` used by the game [Tanki Online](https://tankionline.com/en/) from [Alternativa Games](https://alternativa.games/), it is not compatible with older the formats used by the flash based Alternativa3D engine (see [this plugin by Davide Jones](https://github.com/davidejones/alternativa3d_tools) instead). The plugin can also import Tanki Online binary format maps: `map.bin`, both legacy maps and remaster maps work. ## Installation -### Requirments: Blender version 4.2+ +### Requirements: Blender version 4.2+ +### Optional: io_scene_3ds plugin for importing legacy maps (non remaster) Firstly download the repository by clicking the "Code" button and then "Download ZIP".
![step1](./images/step1.png)
@@ -15,50 +13,34 @@ In blender, go to Edit > Preferences and click the "add-ons" button. From there Select the zip folder you downloaded and you should be good to go. -## Demo -![A3D models used in a blender scene ready for render](./images/demo1.png)
-![UV and material surface showcase](./images/demo2.png)
-![Terrain mesh example](./images/demo3.png) +## Showcase +![Demonstration showing textured tank hull models](./images/demo1.png) +![Demonstration showing models related to particle effects](./images/demo2.png) +![Demonstration showing remaster map importing](./images/demo3.png) +![Demonstration showing legacy map collision meshes](./images/demo4.png) ## Status -### Work in progress, the project is mostly complete for readonly file access. -### A3D1 -No support, I have never seen one of these files and 99.999% of people will only be using A3D2 and A3D3 files so there isn't much point supporting them. -### A3D2 -Full readonly support, not all data is imported into blender. -#### Import -- [x] Materials -- diffuse map data is not used by the plugin because it references files that are only accessible if you work at Alternativa Games (such as texture `.psd` source files) -- [x] Meshes -- - [x] Submesh data -- - [x] Coordinates -- - [ ] Normals (data not imported into blender) -- - [x] UVs -- - [ ] Vertex colour (data not imported into blender, not very useful anyway) -- - [ ] Smoothing groups -- [x] Transform -- [x] Object data -#### Export -- [ ] Materials -- [ ] Meshes -- [ ] Transfoms -- [ ] Objects -### A3D3 -Full readonly support, not all data is imported into blender. -#### Import -- [x] Materials -- diffuse map data is not used by the plugin because it references files that are only accessible if you work at Alternativa Games (such as texture `.psd` source files) -- [x] Meshes -- - [x] Submesh data -- - [x] Coordinates -- - [ ] Normals (data not imported into blender) -- - [x] UVs -- - [ ] Vertex colour (data not imported into blender, not very useful anyway) -- - [ ] Boundbox (data not imported into blender, blender calculates its own boundbox data) -- [x] Transforms -- [x] Objects -#### Export -- [ ] Materials -- [ ] Meshes -- [ ] Transfoms -- [ ] Objects +### .a3d +The plugin only supports importing models and supports loading the majority of A3D data: +- Materials (color data imported but diffuse map is ignored as it is usually empty or references files that are not available to players) +- Mesh data (vertex positions, normals and UV channels) +- Material indices (each mesh can have multiple materials applied to it) +- Object data (object hierarchy/parents, object names) +- Transform data (object position, scale, rotation) + +The plugin only supports version 2 (map props) and version 3 (tank models) files, version 1 is not implemented because it is not currently used in game and I have never seen one of these files before. +### map.bin +The plugin can load Remaster and Legacy maps, legacy maps have incorrect transforms on some props due to the `.3ds` file plugin, not all data is required to import the files into blender, currently supported data is: +- Static geometry (the visual aspect of the map) +- Collision geometry (the collisions of the map) +- Spawnpoints (where tanks spawn) +The plugin also supports `lightmapdata` files that come with remaster maps, these files provide information about the lighting of the map: +- Sun angle and colour +- Ambient light colour +- Object shadow settings (can the object recieve or cast shadows) +- Lightmap UV coordinates (not imported) +- Lightmaps (not imported) +- Lightprobes (not imported) + +## File format +Check the wiki for file format documentation. \ No newline at end of file diff --git a/images/demo1.png b/images/demo1.png index 8295d19..9351e6e 100644 Binary files a/images/demo1.png and b/images/demo1.png differ diff --git a/images/demo2.png b/images/demo2.png index 38bbd4d..74a0179 100644 Binary files a/images/demo2.png and b/images/demo2.png differ diff --git a/images/demo3.png b/images/demo3.png index 53437fa..7187153 100644 Binary files a/images/demo3.png and b/images/demo3.png differ diff --git a/images/demo4.png b/images/demo4.png index 45f7d1b..449bafd 100644 Binary files a/images/demo4.png and b/images/demo4.png differ diff --git a/images/demo5.png b/images/demo5.png deleted file mode 100644 index 8a4f9f4..0000000 Binary files a/images/demo5.png and /dev/null differ diff --git a/images/demo6.png b/images/demo6.png deleted file mode 100644 index 00002d6..0000000 Binary files a/images/demo6.png and /dev/null differ diff --git a/images/demo7.png b/images/demo7.png deleted file mode 100644 index 131cac8..0000000 Binary files a/images/demo7.png and /dev/null differ diff --git a/images/demo8.png b/images/demo8.png deleted file mode 100644 index 63c440a..0000000 Binary files a/images/demo8.png and /dev/null differ