Documentation
Русский
  • Gem RTS v1 Documentation
  • Foundational Knowledge
    • Game local files and Player Profile locations
    • Game resource architecture
      • Packages
      • Package file structure
    • Basic knowledge about configuration files
      • Include instruction
      • Define instruction
      • Mod instruction
  • Mod Development
    • Creating mod
    • Advanced package configuration
    • Creating Settings templates
  • Editor
    • Camera control in the Editor
    • Useful Editor shortcuts and Console commands
    • Map Editor
      • Creating a new map
      • Scene Editor
      • Entity Editor
      • Landscape Editor
        • Heights Editor
        • Polygons Editor
        • Terrains Editor
        • Color Editor
        • Flags Editor
        • Material Editor
        • Grass Editor
        • Foliage Editor
      • Water Editor
      • Specifics of Map Editing
        • Creating destroyed vehicle entities for map entourage
        • Creating terrain folds
          • Creating Ground Surface relief
          • Rock and cliff entities
        • Stone entities
        • Entity for water sound effects
        • Building entities
      • Creating a minimap
    • Mission Editor
      • Mission Properties Editor
    • FX Editor
    • Environment Editor
      • Basic knowledge about HDR
      • Creating environment preset
      • Setting Environment preset parameters
    • Debug Tools
      • Console
      • Debug Processes Window
      • Render Layer List Window
    • Simulation Mode
  • Textures and Materials
    • Physically Based Rendering
      • Texture compression formats in GEM RTS
      • PBR parameters
      • Texture Conversion in Gem RTS
      • Texture conversion to PBR materials using Nvidia Texture Exporter
  • Modeling
    • 3ds Max Plugin
    • Vehicle Model Setup Pipeline
      • Bone hierarchy in vehicle models
        • Body
        • Turret
        • Engine
        • Gun
        • Secondary bones
        • Transmission
          • Сhassis mechanisms
  • Localization
    • Variable strings in localization
    • Adding a new localization language
  • Game settings
    • Movement on slopes
    • Configuration of movement types for human units
    • Configuring entity interaction with wind
    • Sensor
    • User control sound
Powered by GitBook
On this page
  • Basis bone
  • Placement and orientation of the basis bone
  • Visible bones of the vehicle model
  • Primary bones
  • Secondary bones
  • Bone properties
  • ID values for vehicle components
  • Animation types for components
  • Helper bones
  • Vision bones
  • Special effects bones
  • Boarding animation bones
  • Passenger seating bones
  • Crew and gunner bones
  • Machine gun bones
  • Volumes
  • Creation and configuration of volumes
  • Rules for naming volumes
  • Reassigning Material ID for polyhedron volume surfaces
  • Volumes for cabin windows
  • Special-purpose volumes
  1. Modeling
  2. Vehicle Model Setup Pipeline

Bone hierarchy in vehicle models

Last updated 3 months ago

Basis bone

The basis bone serves as the root bone in the skeletal hierarchy of any vehicle model. It functions as a dummy helper that defines critical properties of the model, including:

  • model type;

  • export path for the model to the game;

  • wheel rotation speed and size (applied if all wheels are uniformly sized; otherwise, sizes are set in individual wheel bones);

  • inverse kinematics (IK) parameter IKType=revolute with rotation constraints, if the vehicle supports body rotation.

  • animation type and duration for key sequences;

Placement and orientation of the basis bone

  • The basis bone is positioned at the origin point (X=0, Y=0, Z=0) in world space, ensuring the model aligns correctly within the game.

  • In the "Front" orthographic view, the vehicle is displayed from the right side, which must be accounted for during configuration.

  • The forward movement vector of the basis bone—and consequently the entire model—is aligned with the positive X-axis.

Accurate orientation of the basis bone is vital for:

  • proper alignment and movement of the model in the game space;

  • correct placement and visualization of the selection circle sprite beneath the model.

Visible bones of the vehicle model

Visible bones of the model are the primary bones and secondary bones in the model's element hierarchy that contain the meshes of the model's components.

Primary bones

Primary bones represent the parent bones in the model element hierarchy, forming the primary part of the visible mesh of vehicle components

The primary bones include the following bones:

  • body (hull);

  • turret;

  • cabin;

  • gun_rot (gun elevation mechanism);

  • gun;

  • engine;

  • track and wheel (transmission bones).

Secondary bones

Secondary bones of a model are bones that contain the mesh of additional visual elements for Сomponents. They are used to add detail and variability, complementing the primary components of the model, such as the Hull, Engine, or Turret.

The secondary bones include the following bones:

  • detail (visual detail);

  • shield (additional armor part);

  • enumerator (vehicle identifier);

  • cover/door;

  • bones associated with the vehicle's suspension mechanism.

Secondary bones are typically linked to the primary bones they are part of.

Bone properties

Properties of bones are defined in the Object Properties window.

Parameter
Description

poly

Defines bone visibility. Absence of this parameter makes the bone invisible.

ID=<value>

Component identifier. Links the bone to a specific vehicle component (e.g., Hull, Turret, Left track, Gun).

Animation=<name>

List of animations if the bone is animated

IKType=revolute,

IKType=socket,

IKSpeed=<value>,

IKLimit=<value>.

Inverse kinematics parameters allow the bone to operate under IK rules, setting the speed and rotation limits for the bone.

ID values for vehicle components

body

Hull

engine

Engine

cabin

Vehicle cabin

turret

Turret

gun

Gun

trackleft / trackright

Left /Right tracks

wheelright<N> / wheelleft<N>

Right and Left wheels (<N> is the wheel's index)

The ID value of secondary bones corresponds to the ID value of the primary bones of which they are a visual part.

Despite identical naming, a bone is not equivalent to a vehicle component.

A vehicle component can consist of multiple bones with different names but the same ID value. As a whole, bones with the same ID form a specific vehicle component in the game.

Examples:

  • the bones turret, cover, and detail, each assigned the property ID=turret, together form the Turret component in the game;

  • the bones body, cover, and detail, each assigned the property ID=body, together form the Hull component in the game.

Animation types for components

  • break: destruction animation assigned to the bone of the intact part of the model, representing the undamaged vehicle component.

  • repair: animation for repairing the х-model of a vehicle component.


To explore more about configuring the hierarchy of visible bones, consult the following articles

Helper bones

Helper bones are invisible objects that define linkage points to support the model’s visual, functional, and animation elements

Vision bones

  • visor1: an invisible helper linked to the turret bone, representing the turret's field of view.

  • visor2: an invisible helper acting as the "eyes" of the tank, aligned with the movement vector and linked to the body bone, positioned near the frontal armor's view slit.

These bones are aligned along the X-axis

Special effects bones

Special effect bones (effectors) are used to create visual effects in the game. These bones are aligned along the X-axis for correct effect orientation.

Effector name

Purpose

Naming rules and specifics

fxfire1

Engine fire effect

If multiple bones are needed, they are named sequentially (e.g., fxfire1, fxfire2, etc.).

fxfire2

Body fire effect

Similar naming convention as above.

fxfire3

Turret fire effect

The naming continues sequentially if additional bones are required.

fxshot

Dust effect from tank firing

This bone is used without variation in naming unless additional directional effects are required.

fxsmoke

Exhaust effects

For multiple exhaust effects, sequential numbering is added (e.g., fxsmoke1, fxsmoke2, etc.).

fxstop

Brake lights

If more than one brake light is needed, bones are named sequentially (e.g., fxstop1, fxstop2, etc.).

headlight

Headlight glow

If multiple headlights exist, side indices (L for left, R for right) are included in the names (e.g., headlightL).

fxlight

Additional headlight glow effects

Sequential numbering is added, but the first bone does not include a number (e.g., fxlight, fxlight1, fxlight2).

fxtrace

Dust and dirt from tracks or wheels

Bones are named sequentially with side indices (e.g., fxtraceL1, fxtraceR1, fxtraceL2, fxtraceR2).

foresight

Weapon or machine gun firing effects

If multiple effects are needed, the bones are numbered sequentially (e.g., foresight1, foresight2, etc.).

Boarding animation bones

Helper bones known as emit define the starting points for boarding animations of crew and passenger units. Proper positioning of these bones is essential for accurate animation playback.

Name
Description

emit0, emit1, emit2

Primary bones defining entry points for animations of crew boarding directly into the tank: emit1 and emit2 are positioned on either side of the model near the turret, while emit0 is optional and used for a driver's hatch animation if present.

emit3, emit4, emit5, etc.

Bones defining points in space near the tank, marking positions for soldiers boarding the vehicle's armor as passengers.

Rules for emit bones

  • The number of emit bones must match the animation requirements. Missing bones can cause incorrect unit behavior.

  • The pivot orientation of emit bones should align along the X-axis towards the body bone for proper crew alignment.

  • These bones remain invisible and do not require properties in the Object Properties window.

Passenger seating bones

Invisible seat bones define the seating positions for passengers on the vehicle’s armor and mark the endpoints of boarding animations starting from emit bones.

Bone name
Description

seat01, seat02, etc.

Bones placed opposite their corresponding emit bones for passengers

Rules for seat bones

  • The number of seat bones must match the emit bones for visible passengers.

  • Proper positioning ensures realistic passenger animations.

  • These bones remain invisible and do not require properties in the Object Properties window.

Crew and gunner bones

In tank and vehicle models with open-top compartments, helper bones must be added and configured for all visible units, including crew members and gunners. These bones define positions and enable realistic functionality and animations, such as operating or firing mounted weapons.

Bone name
Description

commander

Serves as the position for the tank commander and as a reference for playing animations related to the command role.

driver

Defines the position of the driver and enables animations for operating the vehicle.

charger

Serves as the position for the loader and as a reference for playing animations related to loading tasks.

gunner

Serves as the position for the main gunner and as a reference for playing animations related to using the machine gun.

gunner2

Serves as the position for the anti-aircraft gunner and as a reference for playing animations related to operating the anti-aircraft machine gun.

Rules for crew and gunners bones

  • Proper positioning ensures realistic animations for units.

  • These invisible bones do not require any settings in the Object Properties window.

Machine gun bones

Helper bones named mgun are used to designate machine gun mounting points on a vehicle. These bones can either be visible, incorporating a mounting mesh, or invisible, acting as a helper bone to mark positions, such as gun slots in the vehicle's hull. The mgun bone is linked to the component where the machine gun is intended to be mounted.

Properties of mgun bones

The properties of mgun bones are specified in the Object Properties window and can include the following parameters:

poly

Makes the bone visible. Should be applied if the machine gun mesh is part of the model. If the gun is hidden or only the mounting point is present, the bone remains invisible.

IKType=revolute

Enables inverse kinematics for rotational aiming.

IKMin=<value> IKMax=<value>

Defines the minimum/maximum rotation limit for inverse kinematics.

Linking effectors to mgun bones

Helpers named foresight are linked to mgun bones to spawn machine gun firing effects along the X-axis.

Naming rule for mgun-foresight linkage

If the vehicle has multiple additional machine guns, the naming of the foresight helper must match the corresponding mgun bone:

  • mgun → foresight3

  • mgun1 → foresight4

  • mgun2 → foresight5

  • mgun3 → foresight6

Failure to follow the naming convention will result in script errors.

Configuring mgun bones

When modeling, it is essential to include a sufficient number of mgun bones to accommodate the maximum possible machine gun placements on the vehicle.

Machine gun type
Description

aa

Anti-aircraft gun

hull

Fixed machine gun mounted in the chassis

coaxial

Coaxial machine gun mounted in the turret

rear

Rear-mounted machine gun

The configuration for linking machine guns to bones is defined in the model's .def file within placer blocks.

Syntax:

{placer "mgun<N>" [...]}
Where <N> represents the sequential number of the mgun bone.
Example of the mgun bone description in a .def file of a vehicle model
{place "mgun2"  
  {type "coaxial"}  
  {weapon "dt_vh" filled}  
  {foresight "foresight5"}  
  {gunner "gunner"}  
  {charger "gunner"}  
  ("sequential_aim")  
  ("abm_mgun")  
  {basic}  
}

Volumes

A volume is a parametric shape (e.g., box, sphere, cylinder) or a mesh-based form (edit poly) that envelops the model's mesh and is used to calculate the physical interactions of the unit in the game.

Creation and configuration of volumes

Bones of the volume type are created for all major bones of the model. Each primary bone requires its own volume or a set of volumes.

It is unnecessary to create volumes for detail bones because the game engine does not support volumes for visual parts.

The shape of the volume mesh should ensure realistic physical interactions. The volume parameter must be set in the Object Properties of the volume. A Material ID is assigned to the polygons of the volume mesh, which determines armor penetration calculations.

Volumes should be extruded from a rectangle in the Top viewport. This ensures that Material IDs are automatically assigned to the volume surface, eliminating the need for additional verification or reassignment according to the established rules.

Volumes must remain standard primitives. Converting a primitive into polygonal forms using editable poly tools is recommended only when the complex geometry of a part of the model cannot be represented with a primitive.

Geometry adjustments at the sub-object level are permissible if the created model is not a single volume. In such cases, creating multiple volume bones with identical properties is allowed. There should be no gaps between such volumes; however, minor overlaps are acceptable.

Examples of volume creation In the first screenshot, the volumes are created correctly. In the second screenshot, the volume is created incorrectly as it obstructs projectiles/bullets from hitting units located in the cabin.

Rules for naming volumes

The volume covering the mesh of the main bone includes the name of that bone. For example: body_vol, turret_vol, engine_vol.

If multiple volumes cover a single bone, numbering is used in the volume names. The naming template is: bonenameN_vol, where N is the serial number. For example: body01_vol, body02_vol, body03_vol.

Reassigning Material ID for polyhedron volume surfaces

In polyhedron volumes for the hull, each polygon must be assigned a Select ID value in the Material IDs parameter within the Polygon properties block. The value must strictly correspond to the following table:

  • Front - 1

  • Top - 2

  • Left - 3

  • Right - 4

  • Back - 5

  • Bottom - 6

The ID parameter determines the virtual armor of the vehicle components: front armor, side armor, rear armor, etc.

Volumes for cabin windows

For vehicles and other units with windows, volumes are created for the glass. They are named window<N>_vol, where <N> is the unique index of the volume.

To add glass destruction animations, the windowed property must be included in the props block of the unit's .def file.

Special-purpose volumes

Volume for ram collision

The ram_vol volume is used to calculate collisions during vehicle ramming. It is a polyhedron with a central convexity to minimize the chance of the vehicle getting stuck when colliding perpendicularly with other objects. Assigning Material ID to surfaces is not required.

Crew volume

The crew_vol volume ensures interaction with the crew inside the vehicle. It is used in models of heavy vehicles with open cabins or transport vehicles with open cargo areas. This volume can be implemented as a primitive geometric shape or as a polyhedron, depending on the model structure. Assigning Material ID to surfaces is not required.

Grenade catcher volume

The sticky_vol volume is responsible for attracting grenades thrown at the vehicle to specific zones. It is used in heavy vehicles with open cabins or transport vehicles with open cargo areas. The volume is formed based on the internal space of the vehicle to increase the likelihood of a grenade entering the vulnerable area.

Fuel tank volume

The fuel_vol volume defines the geometry for interacting with external fuel tanks on vehicles.

Cover
Body
Cover
Turret
Cover
Gun
Cover
Transmission
Cover
Engine
Cover
Secondary bones
Object properties of basis bone
Example Object Properties window of the basis bone
Example: Orientation of the basis bone in the "Front" orthographic view
Example: Orientation of the basis bone in the "Front" orthographic view
Example: Selection circle alignment under a tank model when the unit is selected
Example: Selection circle alignment under a tank model when the unit is selected
Primary bones hierarchy scheme
Illustration of linking secondary bones to the primary bone
Example of turret component properties
Example of turret component properties
Correct placement and orientation of emit bones for crew members and passengers boarding animations
Positioning of an invisible mgun bone
Positioning of an invisible mgun bone
Properties of a mgun bone operating with inverse kinematics
Properties of a mgun bone operating with inverse kinematics
Example of volumes for the Body and Engine
Example of volumes for the Body and Engine
Сorrect volume modeling example
Сorrect volume modeling example
Incorrect volume modeling example
Incorrect volume modeling example