Animation Export
Common Guideline
Animations are stored in the .a2d
format. To export an animation from 3ds Max,
follow these steps:
Ensure Visibility: All layers containing bones, as well as the bones themselves, must be unhidden and visible.
Export Settings: Specify the starting and ending frames for the animation in the export settings. Automatic frame detection does not work.
Add Note Tracks: In the Track View▸Dope Sheet, add a Note Track to any of the animated bones.
See also
For more information on adding and editing Note Tracks, see Add Note Track.
Add two keys to the Note Track:
At frame 0: set a key with the label
start
.At the last frame: set a key with the label
end
.
These keys correspond to the
key_start
andkey_end
parameters in theanimtree.blk
file of the unit. You can change the labels as needed.See also
For more information, see .blk File Format.
Bone Consistency: The number of bones and their linking order must match between the target model (the one the animation will be applied to) and the bones exported to the
.a2d
file.
Asset Transfer Between Projects
When transferring assets between projects, shader discrepancies may occur, resulting in errors. To address this:
Use
F4
to edit the.dag
files in FAR (configured for studio-specific settings) and ensure shader compatibility.Note that the
dynamic_simple
shader is universally available across studio projects and is recommended during the initial stages of asset transfer.
Custom Properties in 3ds Max cannot be adjusted post-transfer.
Unfortunately, importing .dag
files may cause skin data to break. However, you
can modify the properties using Alt
+F4
in FAR.
Warning
Be cautious with the syntax: errors in syntax will not trigger warnings, and unsaved changes will be discarded.
Limitations
Bone Limit: A maximum of 200 bones per node with skin is supported. While theoretically extendable to 255, current shader limitations cap the limit at 200.
Triangle Limit: A maximum of 65,534 triangles per node is allowed.
Project-Specific Custom Object Properties
Different projects may have unique requirements for Custom Object Properties to ensure proper generation of virtual assets. For example:
Enlisted: Each skinned object must include the following properties:
animated_node:b=yes collidable:b=no massType:t="none"
Omitting these properties will result in general errors during dynamic model generation.
CRSED: Such requirements do not apply.
Tip
If you have questions regarding this section, reach out to the author directly at a.vlasov@gaijin.team.
Animation Description in animtree.blk
Animations must be described in the animtree.blk
of the corresponding block.
For War Thunder-based projects, this involves two blocks:
AnimBlendNodeLeaf{} block:
AnimBlendNodeLeaf{ a2d:t="animation_file.a2d" // Animation file name continuous{ name:t="animation_name" // Animation name key_start:t="start" // Start key key_end:t="end" // End key time:r=1 // Playback duration own_timer:b=yes eoa_irq:b=yes addMoveDirH:r=-90 // Direction of unit movement addMoveDist:r=1.33 // Distance covered per playback time } }
hub{} block:
hub{ name:t="animation_file" // Animation name const:b=yes // Indicates whether the animation loops }
Remember that the animtree.blk
is also an exportable resource. To see it in
the game, you must perform a daBuild
.
Animation Export Description in .blk
The export description for animations in .blk
format:
file:t=some.a2d
opt:b=yes // Conservative optimization
posEps:r=0.01
rotEps:r=0.2
sclEps:r=0.1
For .folder.blk
files:
virtual_res_blk{
find:t="^(.*)\.a2d$"
className:t="a2d"
contents{
opt:b=yes // Conservative optimization
posEps:r=0.01
rotEps:r=0.2
sclEps:r=0.1
}
}