User Tools

Site Tools


tools:rotorlibafm_xml_tool_docs

This is an old revision of the document!


RotorLib XML Profile Authoring Guide

This guide walks through creating an Arma 3 Advanced Flight Model RotorLib XML profile for a custom helicopter. It is written to match the RotorLib XML Profile Builder workflow and assumes the final XML will be tested in Arma 3 with Advanced Flight Model enabled. The first XML is not a finished flight model. Treat it as a structured, documented starting point. Every estimated value should be recorded, tested, and replaced when better source data becomes available.

1. Prepare The Source Material

Before entering values, collect these files and references:

  1. The target helicopter addon source.
  2. The target model, memory points, Geometry LOD, LandContact points, and any proxy gear/wheel geometry.
  3. The target vehicle config class.
  4. Any existing RotorLibHelicopterProperties / RTDconfig reference.
  5. A closest matching BIS or mod RotorLib XML baseline.
  6. Real aircraft data, if available: mass, dimensions, rotor diameter, blade count, engine power, RPM, wheel dimensions, and gear layout.

Use the closest proven RotorLib XML as the baseline. Match by:

  1. Approximate aircraft mass class.
  2. Main rotor count and tail rotor arrangement.
  3. Landing contact type: wheels, skids, fixed hull/tail points.
  4. Role: light, attack, transport, heavy transport.
  5. Similar rotor RPM and engine/transmission layout.

Keep the selected baseline recorded in the tool. Some sections, especially drive trains and control-system conventions, are easier to preserve from a working profile than to recreate from documentation.

2. Coordinate System

RotorLib coordinates use:

Axis Direction
X Right
Y Forward
Z Up

All position values must be converted into this coordinate system. Do not assume Arma model-space labels or visual axes match the value names without checking the model and a known working XML. Useful rules:

  1. Positive X moves a point to the aircraft right side.
  2. Positive Y moves a point toward the nose.
  3. Positive Z moves a point upward.
  4. Wheel, skid, tail rotor, rotor hub, and stabilizer positions should be measured relative to the same aircraft reference/datum used by the baseline XML.

If the exact datum is unclear, compare the baseline XML values against visible geometry and memory points. Preserve the same convention when adapting it.

3. Step 1: Baseline And Target Identity

Enter:

Value Where To Find It Notes
Profile name XML file name or aircraft class name Use a readable name such as RTD_MyHelicopter.
Vehicle class CfgVehicles target class Must be the exact class that will reference the XML.
XML path in addon Planned packed PBO path Use addon-relative paths only. Do not use Q:\, C:\, or other local absolute paths.
Closest baseline XML Bundled BIS XML or another working profile Record this for later comparison and tuning notes.

Example Arma config pattern:

class RotorLibHelicopterProperties
{
    RTDconfig = "\my_addon\air\RTD_MyHelicopter.xml";
};

Verify the exact placement and property names against a working vanilla helicopter config before packing.

4. Step 2: Airframe

4.1 Mass

Enter mass in kilograms. Best sources, in order:

  1. Geometry LOD mass from the finished model.
  2. Existing addon config/source documentation.
  3. Real aircraft maximum takeoff weight or empty weight, depending on what you are modelling first.
  4. Closest baseline XML scaled to the new helicopter.

Start with a realistic operating/test mass, not necessarily the absolute maximum load. Later, test loaded and unloaded behavior separately.

4.2 Dimensions

Enter approximate dimensions in meters:

Value How To Measure
Length Nose to tail extent, excluding main rotor unless using it deliberately for rough inertia.
Width Left-right body/gear/skid span. For ground stability, gear/skid span is often more useful than fuselage width.
Height Bottom contact point to upper fuselage/mast area. Use a consistent rough body height for inertia estimates.

These dimensions are used for first-pass inertia and generated contact positions. They are not a substitute for measured contact or rotor stations.

4.3 Center Of Gravity

tools/rotorlibafm_xml_tool_docs.1784470183.txt.gz · Last modified: by rock