Improved blender plugin to import/export crossout formats (textures, models, animations, lands)
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-27 15:37:48 +03:00
targem land export 2026-09-27 15:37:48 +03:00
tests land export 2026-09-27 15:37:48 +03:00
.gitignore batch 2026-07-21 15:53:32 +03:00
__init__.py land export 2026-09-27 15:37:48 +03:00
anim_export.py .land and maps import (requires unpacked game folder in settings) 2026-07-17 17:53:14 +03:00
anim_import.py Big import bugfixes 2026-07-11 09:16:20 +03:00
assets.blend Move from github 2026-05-15 02:06:30 +03:00
batch_convert.py Fix 2026-07-21 23:23:21 +03:00
blender_worker.py Fix 2026-07-21 23:23:21 +03:00
bone_fixer.py Move from github 2026-05-15 02:06:30 +03:00
coords.py Big import bugfixes 2026-07-11 09:16:20 +03:00
DUMPER.py Add DUMPER 2026-06-27 17:51:44 +03:00
enumerated_techniques.xml Move from github 2026-05-15 02:06:30 +03:00
export_presets.py Move from github 2026-05-15 02:06:30 +03:00
land_export.py land export 2026-09-27 15:37:48 +03:00
land_import.py land export 2026-09-27 15:37:48 +03:00
LICENSE Initial commit 2026-05-14 22:13:24 +00:00
material_import.py Texture fix 2026-07-18 19:40:24 +03:00
material_shaders.py Move from github 2026-05-15 02:06:30 +03:00
mdf_export.py .land and maps import (requires unpacked game folder in settings) 2026-07-17 17:53:14 +03:00
model_export.py .land and maps import (requires unpacked game folder in settings) 2026-07-17 17:53:14 +03:00
model_import.py Move from github 2026-05-15 02:06:30 +03:00
paint_import.py Move from github 2026-05-15 02:06:30 +03:00
physics_export.py Big import bugfixes 2026-07-11 09:16:20 +03:00
README.md land export 2026-09-27 15:37:48 +03:00
slot_operators.py Move from github 2026-05-15 02:06:30 +03:00
specular_packer.py Move from github 2026-05-15 02:06:30 +03:00
targem_packer.py Move from github 2026-05-15 02:06:30 +03:00
texture_export.py Move from github 2026-05-15 02:06:30 +03:00

io_targem_neko

Improved blender plugin to import/export crossout formats (textures, models, animations, lands)

Current Blender version: 5.0.1

Functions

  • Import/Export textures
  • Import/Export full model pipeline
  • Import/Export animations
  • Import/Export maps (.land / land.dat): terrain heightmap, ground textures blended via surfmap (BC7), props (props.mxml) and scene entities (scene.mxml)

Map import notes

  • Set "Unpacked game folder" in addon preferences to the unpacked game root (needed for prop models, ground textures from assets/surfaces.mxml and def resolution from gamedata/def/*.lua)
  • File > Import > Targem Landscape (.land), pick <map>/land/land.dat
  • Headless regression test: blender --background --factory-startup --python tests/bl_land_import.py -- maps_examples/bridge (game root is taken from TARGEM_GAME_ROOT env or FULL_UNPACK/ next to the addon)

Map editing (land.dat + grass.dat)

Sidebar (N) > Targem tab after importing a map.

  • New map: "New Targem Landscape" writes a flat land.dat (size multiple of 64 cells, one ground surface from assets/surfaces.mxml) plus land/colormap/surfmap.tfh/.tfd (BC7, all weights = base layer) and opens it. Save it as <map>/land/land.dat.
  • Own mesh: any mesh can be exported onto the grid of an existing land.dat — select it and use "Set Source land.dat"; heights are ray-cast onto that grid.
  • Terrain: "Sculpt Landscape" enters Sculpt Mode (Draw raises, Ctrl+Draw lowers, Smooth, Grab to drag hills sideways). Edit Mode + proportional editing (O) works too. "Stretch Heights" scales the relief vertically (x2 = twice as high, 0.5 = flatter) around the lowest point / average / 0 / 3D cursor; in Edit Mode only the selection.
  • Grass: every preset is a point-cloud object in "Map Grass". Make one active and run "Grass Brush": LMB paints, Ctrl+LMB erases (active layer or all layers), [ ] radius, Shift+[ ] density, RMB/Esc exit. "Add Grass Layer" creates a layer for any preset of assets/grass.mxml. Points can also be deleted in Edit Mode.
  • Export: File > Export > Targem Landscape (or the button in the panel). Writes land/land.dat and <map>/grass.dat; originals are copied to *.bak once.
    • Grid size, surface slots and surfmap are taken from the source land.dat (only heights change); normals/tangents and bounding boxes are recomputed.
    • If vertices moved sideways, heights are resampled by ray casts onto the grid.
    • Grass that stood on the terrain follows the new heights; grass on props is kept.
  • Formats are documented in targem/landscape.py. Headless test: blender --background --factory-startup --python tests/bl_land_export.py -- <map_dir>

TODO (updateable)

  • Fix import bones
  • Fix animation export
  • Check car import function
  • Refactor code

Installation

Pack in zip archive files and drop to blender window


If you need to import car designs, do this:

  • Clone repo
  • Run DUMPER.py
  • Insert path to folder with unpacked game (gamedata + models folders should exist)
  • Pack into zip