Arma 3: Multi-Function Display (MFD) config reference

From Bohemia Interactive Community
Revision as of 21:57, 13 January 2017 by KiTooN (talk | contribs) (Created page with "'''MFD''' (Multi-Function Display) is implementation of '''HUD''' (Head-Up Displays) in Arma 3. Display can be fixed on helmet (move with player head) or cockpit (static posit...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

MFD (Multi-Function Display) is implementation of HUD (Head-Up Displays) in Arma 3. Display can be fixed on helmet (move with player head) or cockpit (static position). THIS PAGE IS WORK-IN-PROGRESS, USE AT YOUR OWN RISK.


Technical Basics

HUDs are defined in the MFD class of the source vehicle. The properties of each HUD are separated by a root class (conventionnally named AirplaneHUD in base content), although each new instance will render a new HUD and overlap with the previous. This makes it easier to configure HUDs by modular config (for example, navigation, targeting, etc...). All HUDs are defined through 3 base elements :

  • Bones : invisible elements used to transform/rotate other, similar to anchors/origins. Defined in the Bones class of any HUD.
  • Drawn elements : used to draw graphic elements. Defined in the Draw class of any HUD.
  • Sources : if an element displays complex variables or any bone needs to be in specific positions, it uses a source data. Defined in each instance of bone and draw classes when needed.

Example :

class MFD {
	class AirplaneHUD {
		globalProperty = ...; // global HUD properties
		// bones definitions
		class Bones {
			class BoneInstance {
				type = ...; // type of bone
				source = ...; // source for bone transformation
				properties = ...; // other bone properties
			};
		};
		// HUD-Elements definitions
		class Draw {
			class HUDElemetInstance {
				type = ...; // type of HUD-Element
				source = ...; // source for display value
				properties = ...; // other HUD-Elements properties
			};
		};
	};
};

Global HUD Properties

These are defined in each AirplaneHUD instance and affect every sub-sequent element. Some properties can be overwritten in each child element if needed (e.g color) :

  • color : [r,g,b,a] - color of all elements.
  • topLeft : "string" - memory point defining the top left position of the HUD and uses it as the absolute origin (0,0,0). Not used if helmetMountedDisplay = true.
  • topRight : "string" - memory point defining the top right position of the HUD and uses it as the far right limit (1,0,0). Not used if helmetMountedDisplay = true.
  • bottomLeft : "string" - memory point defining the bottom left position of the HUD and uses it as the bottom limit (0,1,0). Not used if helmetMountedDisplay = true.
  • borderLeft : float - adjust position inside of memory points LOD. Not used if helmetMountedDisplay = true.
  • borderRight : float - adjust position inside of memory points LOD. Not used if helmetMountedDisplay = true.
  • borderTop : float - adjust position inside of memory points LOD. Not used if helmetMountedDisplay = true.
  • borderBottom : float - adjust position inside of memory points LOD. Not used if helmetMountedDisplay = true.
  • fontHelicopterHUD : "string" - font used for this HUD instance.
  • helmetMountedDisplay : true/false - Defines if the HUD is attached to a fixed point of the aircraft or moves with the head of the pilot.