Repository navigation
Releases: SXDIST/DayZObjectBuilder
Release list
v5.1.1
Fixed
.xobimport was mirrored. Reported and fixed by @Strykar86, thank you! Imported models had the vanilla body'sLeft*bones on the right-hand side, because Enfusion's left-handed Y-up space was converted with a rotation instead of a reflection. The import now swaps Y and Z the same way the.p3dand.anmpaths do, and reverses the face winding so the normals stay outward. The imported skeleton now matchesdayz_master_rig.blendto within 1 mm. A regression test (tests/xob.py) pins the conversion against the vanilla bodies.
What's Changed
- docs: bring both READMEs in line with 5.1.0 by @SXDIST in #3
- Fix mirrored .xob import (5.1.1) by @SXDIST and @Strykar86 in #4
Full Changelog: v5.1.0...v5.1.1
v5.1.0
You can install this over 5.0.0 without changing anything. Nothing was removed, every property stored in your .blend files keeps its name, and Blender 4.4.0 is still the minimum. A few import and export defaults did change; each one can be switched back, see Changed.
Highlights
- All three binarized model versions now import. Version 53 is written by the DayZ Tools binarizer, so almost every mod on disk is in it. The game's own files are 54. The current AddonBuilder writes 55.
- Debinarizing a whole mod rebuilds its
model.cfg. The skeleton,sections[]and the animation classes are reconstructed from what binarization folded into the model. Without that file, recovered geometry has no moving parts and no hidden selections. - Held items sit in the hand where the game draws them. The grip matrix is measured in a running game, not derived by hand, and a regression test checks the result against vanilla data.
model.cfgexport works again. In 5.0.0 it failed on every run.
Added
Binarized (ODOL) models
- Import reads ODOL v53 and v55 in addition to v54.
- Every UV set of a binarized model is kept. Previously only the first one survived.
model.cfgis rebuilt from a binarized model, written in the same layout as vanilla files:CfgSkeletonswith the bone hierarchy;sections[];- an
Animationsclass with each animation's type, source, limits and selection.
- Tools for a whole mod (in
tools/):debinarize_mod.pyconverts every ODOL model in a mod to editable MLOD and writes the rebuiltmodel.cfgnext to it. It runs on the system Python, without Blender.generate_lods.pybuilds the resolution LOD stack from decimated copies of the visual LOD.generate_lods_batch.pyrunsgenerate_lods.pyacross a whole mod. If Blender crashes on a model, it restarts after that model.
Held items and animation
-
New Item Grip panel (sidebar, Object Builder tab):
- Attach To Hand hangs the active object off
RightHand_Dummy, using the grip matrix the engine applies. - Align Item Upright rotates the grip bone until the held item stands upright. It applies one constant offset to every keyframe, so the animation itself is unchanged.
- Solve From Probe Log reads the output of an in-game probe and solves the grip bone. The result is a table covering every measured frame. A bone that is perfect in one hand pose can be 60–90° out in another, so a single number is not enough.
- Copy Bone Channel takes one bone's channel out of an
.anmand puts it into the current action, using the add-on's own.anmreader.
- Attach To Hand hangs the active object off
-
Item Grip preferences tab. It holds the measured grip matrix, with Update From Log (paste a new probe reading) and Reset To Measured.
-
Gear IK on ANM import. The new Gear IK field applies an item's gear IK clip (
anims/anm/player/ik/gear/<item>.anm) on top of the imported clip. The viewport then shows the grip hand the game draws, instead of an open hand. -
ANM export warns when a clip is shaped differently from vanilla clips. This covers two cases:
- translation written on every keyed bone (vanilla movement clips use it on five);
- right-hand finger bones in an action clip (vanilla takes those from the gear layer).
These are notes, not errors, and the file is still written.
Rigging
- Names To Lowercase and Names To PascalCase in the vertex group menu.
- The character rig is added organised into collections. The bone shape helpers and the FPS camera armature go into their own sub-collections, which are hidden from the view layer.
- The master rig's
LeftHand_Dummyis now a mirror ofRightHand_Dummy. Before, it was an unused stub inside the palm.
Changed
- ANM export writes only the bones the action keys (Bones: Keyed Only). Partial clips stay partial, so the engine still takes the missing bones from the layer below. Choose Whole Armature to write every bone as before.
- P3D export keeps the case of selection names. DayZ bone names such as
PelvisandLeftForeArmare no longer turned into lowercase. Force Lowercase Paths now applies only to file paths and named properties. - P3D import restores PascalCase for known DayZ skeleton selections (PascalCase Selections, on by default). Other names are left as they are.
- P3D export normalizes skin weights (Normalize Weights, on by default). Blender normalizes weights while it displays a mesh, but the P3D format stores exactly what is written. A model can look fine in the viewport and still have broken weights in game.
Fixed
Import and export
model.cfgexport failed on every run in 5.0.0 with aTypeError.- Binarized models imported lying flat and squashed, because the axis swap and face winding were wrong.
- ODOL to MLOD conversion now keeps several things it used to lose:
- The converted file can be opened again by this add-on.
- LOD named properties and per-point mass are kept.
- Per-vertex flags, which hold texture clamping and lighting mode, are kept.
- Named selections kept their faces on a read/write round trip. They used to lose them, so after binarizing, every section was empty and
hiddenSelectionsTextureshad nothing to texture. - A LOD that contained keyframes was dropped entirely.
- A zero-area face could crash Blender during import (access violation). Such faces are now removed before the mesh is built, and the import reports how many there were.
- Very small selection weights were written as zero, so vertices dropped out of a selection on export.
- Per-bone flags of an
.anmclip are kept on a round trip. Vanilla values other than 0 and 1 used to be lost.
Rigging
- Cleanup in the weight tools no longer crashes on vertices whose bone weights are all zero. Such vertices are common after an import.
LOD generator
- Fire geometry is a real convex hull. It is hulled again after decimation.
- Generated LODs stay aligned with the source model.
- The bounding box is measured in world space. On imported models it used to come out up to five times too wide.
- Running the generator a second time no longer builds the LODs from a previously generated LOD.
- Collections are looked up per scene. With several models in one
.blend, generated LODs no longer end up in another scene. - Fire Geometry no longer copies the source model's selections.
Proxy preview
- Dragging a proxy no longer re-imports its
.p3don every mouse move. - The console no longer fills with tracebacks in background mode.
Full changelog: v5.0.0...v5.1.0
v5.0.0
Added
- Native import of DayZ
.xob(Enfusion) models — rigged base bodies come in directly, including armature, mesh, UVs, skin weights, normals, and materials, with no external conversion tool needed. - Native import and export of DayZ
.anmanimations, including note/event tracks, so animations can round-trip through Blender without external tools. - Auto LODs Generator: LOD generation (resolution, view pilot, geometry, memory, fire geometry, view geometry) is now built in, folding in what used to be a separate addon.
- "Add DayZ Character Rig" command that inserts a ready-to-use DayZ master rig for retargeting animations and testing garment weighting against imported
.xobbodies. - DayZ Tools integration: a "DayZ Tools" install path preference and "Find DayZ Tools" operator, with binarized
model.cfgconversion via DayZ Tools' CfgConvert. - "Add DayzTemporarySkeleton" rigging preset with the correct 159-bone DayZ skeleton and PascalCase vertex-group naming.
- Imported
.xobarmatures now default to a Stick display shown in front, for easier viewing alongside the mesh. - Import and export menu entries are now grouped under a single "DayZ" submenu with icons, instead of being scattered across the File menus.
Changed
- All operator IDs and class names moved from the
a3ob./A3OB_namespace todzob./DZOB_, and UI text now refers to DayZ instead of Arma 3. Existing setups using the old identifiers are not drop-in compatible. - Removed RTM animation support (import/export, RTM properties panel, batch conversion scripts) in favor of DayZ's Enfusion animation pipeline.
- Built-in proxy and penetration material presets now point at vanilla DayZ content instead of Arma 3 paths; Arma-only presets with no DayZ equivalent were dropped.
- README and in-app descriptions rescoped to DayZ, dropping Arma 3 positioning (upstream credits/license retained).
- Removed the in-repo changelog and "Open Changelog" command; version history is now published as GitHub release notes.
- Corrected the minimum supported Blender version to 4.4, matching the animation API actually used.
Fixed
- Silenced Python
SyntaxWarnings caused by unescaped backslashes in regex and path strings.
v4.2.4
Added
- Added import support for binarized (ODOL) P3D files alongside existing MLOD import — DayZ v54 ODOL models are now detected automatically and converted to MLOD, including LOD geometry, UVs, faces, named selections and bone weights.
- Added a Texture Auto-Search tool: point it at a mod's root folder to automatically resolve and fill in diffuse/normal textures and RVMAT paths, per-material or in a batch over selected objects, with a found/partial/missing report.
- Releases are now published automatically to GitHub and to extensions.blender.org.
- Restyled the README with a banner, logo, badges and a feature overview table.
Changed
- Renamed the fork to DayZ Object Builder (DZOB) with updated branding, links and manifest; internal operator and property names were kept unchanged so existing
.blendfiles remain compatible.
Fixed
- Malformed or truncated ODOL P3D files no longer hang or crash the import — they now fail with a clear error and are skipped.
- Fixed export failing with a "Context missing active object" error when searching for components on certain LOD objects.
- Fixed a typo in a BMTR conversion log message.