Include the current addon, terrain integrations, tools, regression tests and recorded development evidence.
3.9 KiB
Solid atlas asset
ERR_Atlas.blend is the editable, locally authored model, generated by
tools/build_atlas_model.py. No third-party geometry is copied. Runtime/import
files and four materials live in addons/core/Assets/Items/ERR_Atlas/.
The replacement has a 10 mm page block, separate covers, visible page-edge seams and a continuous 14-turn wire helix. These are mesh surfaces with real depth and silhouettes, not UI circles. The stock character map grip is retained; the rigid mesh is offset 15 mm right and 18 mm forward to fit that grip. The runtime map texture is assigned only to the front printable sheet. Its UVs account for the render target's vertical orientation and retain the existing layout gutter.
Rebuild from the repository root:
/home/jakub/devel/gabreta/build/toolchain/blender-4.5.3-linux-x64/blender \
--background --threads 2 --python tools/build_atlas_model.py
Then run the Workbench Build atlas model plugin, or rebuild
Assets/Items/ERR_Atlas/ERR_Atlas.fbx in Resource Manager. The existing XOB meta
file holds material assignments and collision settings. The .blend is outside
the addon; the source bundle includes the authored FBX/TXO and imported XOB.
The procedural model rebuild does not overwrite material or import settings.
Page-turn animation
AtlasTurn.agr/.agf wrap the stock map holding graph. The attachment must
explicitly start at ERRAtlasControl; merely setting the AGR default does not
change the attachment's entry point. The right arm uses the engine's two-bone IK
solver with a target relative to LeftHandProp, preserving the existing left
hand grip, aiming, stance and idle poses. The target reaches, sweeps across the
paper and returns through native state-machine blends. Forward turns use command
argument 1; backward turns use 2 and reverse the hand path and sheet rotation.
Direction compares the previous and new printed page numbers, including cover,
index and numpad jumps. It does not depend on the delayed rendered page.
The native item-use command CMD_HealSelf is reinterpreted only inside this
atlas attachment. The atlas has no consumable component or healing effect.
TryUseItemOverrideParams manages the character action instead of writing
character bones or moving the whole held item. An item use rejected by the
engine falls back to changing the selected page without a forced character pose.
ERR_AtlasLeaf.blend is a separate, lightly curved sheet. Its local visual entity
has no replication, physics or collision component. A page update creates one
near the viewer, turns it about the binding, commits the new page after crossing,
and removes the sheet and timer. The shallow sweep avoids the first-person near
plane. No turn ticks run when idle or on a dedicated server. Stowing, opening the
interactive map, death and deletion clean up the temporary sheet. Late joiners
see the current page without replaying old turns.
Rebuild both ERR_Atlas.fbx and ERR_AtlasLeaf.fbx after changing their generator.
The native imported meshes and exact graph assets are admitted by the source
bundle validator; editable Blender files remain outside the addon.
Bohemia references: attachment setup, state-machine timing.
Validation limits
Hidden, muted native Everon fixture: model import, standing held grip, correct
print orientation, page controls, capture ownership and ordinary-map coexistence.
The fixture also captures an oblique view to inspect binding and thickness.
The native hand-turn run verifies five repeated actions, actual hand positions,
return to idle and leaf cleanup; see
docs/evidence/held-atlas-hand-turn-20261011/.
This is not a dedicated-server/remote-holder or all-stance visual acceptance.
Nothing is deployed or published by the model builder.