In Heroes, the model file structure is like this:
There is a Model file, sometimes it comes without a label, and inside it are links to files:
Material
Skeleton
Geometry
The first file points to a Texture file, which in turn points to a dds file with a normal texture – you can open it and recolor it.
Skeleton and Geometry contain data about the model, namely codes that reference the skeleton and the model.
For models from the original game, these can be written directly into the Model file itself.
Take Psatkh's mod and try to find such a file there.
You can even reference files from the original game, like the Revenger does.
model file
1
Now about animation:
the AnimSet file
Inside this file, paths to files responsible for different animations are written.
animset
attack00
happy
hit
idle00
move
stir00
stir01
Inside each animation, there is also a numeric code responsible for it, a path to the sound file, and a path to the EFFECT file.
individual animation
0C9C5A1E-FC1C-4F9A-A2D5-F5E7C2649C9F
Global
0
0
0
1
250
To start, you need to practice on models with ready-made effects; for example, the Revengers have an attached helmet, shield, left and right pauldrons, and a sword.
In the effect file, there is a link to each attached model, specifically to the ModelInstance file.
effect
false
1
2.5
Now about ModelInstance:
These files contain the path to the attached model, its position on xyz, rotation around the same axes, scaling, and bone attachment.
modelinstance
0
0
0.2
0
0
0
1
1
0
0
0
1
Head
Effects should be edited through the map editor. When you launch it, the map properties window will automatically pop up. Place a Psatkh creature on the map, select it, and then the map properties window will change into an object properties window. Find the line with the path to the mapobject file. Click on the path; a button with an ellipsis and a New button will appear – click the ellipsis.
A window with paths to the model and animset files will open. You also need to click on the animset line and select the ellipsis, then open the desired animation (idle) the same way, then the effect, and the required ModelInstance. In it, you need to change the position, rotation, and scale parameters until the model sits correctly.