Skip to content

Releases: SXDIST/DayZObjectBuilder

v5.1.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 17:54
7dca172

Fixed

  • .xob import was mirrored. Reported and fixed by @Strykar86, thank you! Imported models had the vanilla body's Left* 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 .p3d and .anm paths do, and reverses the face winding so the normals stay outward. The imported skeleton now matches dayz_master_rig.blend to within 1 mm. A regression test (tests/xob.py) pins the conversion against the vanilla bodies.

What's Changed

Full Changelog: v5.1.0...v5.1.1

v5.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 15:04
8ca8f7e

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.cfg export 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.cfg is rebuilt from a binarized model, written in the same layout as vanilla files:
    • CfgSkeletons with the bone hierarchy;
    • sections[];
    • an Animations class with each animation's type, source, limits and selection.
  • Tools for a whole mod (in tools/):
    • debinarize_mod.py converts every ODOL model in a mod to editable MLOD and writes the rebuilt model.cfg next to it. It runs on the system Python, without Blender.
    • generate_lods.py builds the resolution LOD stack from decimated copies of the visual LOD.
    • generate_lods_batch.py runs generate_lods.py across 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 .anm and puts it into the current action, using the add-on's own .anm reader.
  • 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_Dummy is now a mirror of RightHand_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 Pelvis and LeftForeArm are 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.cfg export failed on every run in 5.0.0 with a TypeError.
  • 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 hiddenSelectionsTextures had 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 .anm clip 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 .p3d on every mouse move.
  • The console no longer fills with tracebacks in background mode.

Full changelog: v5.0.0...v5.1.0

v5.0.0

Choose a tag to compare

@github-actions github-actions released this 24 Jul 06:15
4e93973

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 .anm animations, 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 .xob bodies.
  • DayZ Tools integration: a "DayZ Tools" install path preference and "Find DayZ Tools" operator, with binarized model.cfg conversion via DayZ Tools' CfgConvert.
  • "Add DayzTemporarySkeleton" rigging preset with the correct 159-bone DayZ skeleton and PascalCase vertex-group naming.
  • Imported .xob armatures 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 to dzob./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

Choose a tag to compare

@github-actions github-actions released this 23 Jul 12:00

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 .blend files 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.