ORBAT Viewer – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
m (→‎Config: Added explanation for assets[] and tidied up indentation slightly.)
m (→‎Config: Fixed indentation)
 
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{SideTOC}}
{{TOC|side}}
[[File:A3_ORBATViewer.jpg|800px]]
[[File:A3_ORBATViewer.jpg|800px]]


=== Config ===
The ORBAT Viewer can be used to displayed the hiearchy of troops present in a scenario. Inside the ORBAT Viewer pressing {{Controls|H}} will toggle the visibility of the UI.
 
 
== Config ==
 
CfgORBAT can be defined in [[configFile]] or [[missionConfigFile]].
CfgORBAT can be defined in [[configFile]] or [[missionConfigFile]].


class CfgORBAT
<syntaxhighlight lang="cpp">
{
class CfgORBAT
class 7thInfantry
{
{
class 7thInfantry
id = 7;       {{codecomment|// Unit ID}}
{
idType = 0;   {{codecomment|// Unit ID type}}
id = 7; // Unit ID
side = "West"; {{codecomment|// Unit side from CfgChainOfCommand >> Sides}}
idType = 2; // Unit ID type
size = "Division"; {{codecomment|// Unit size from CfgChainOfCommand >> Sizes. Displays relevant icon above the Type icon}}
side = "West"; // Unit side from CfgChainOfCommand >> Sides
type = "HQ"; {{codecomment|// Unit type from CfgChainOfCommand >> Types}}
size = "Division"; // Unit size from CfgChainOfCommand >> Sizes. Displays relevant icon above the Type icon
insignia = "\ca\missions_f\data\orbat\7thInfantry_ca.paa"; {{codecomment|// Unit insignia, displayed in ORBAT background and in tooltip}}
type = "HQ"; // Unit type from CfgChainOfCommand >> Types
colorInsignia[] = {0,0,1,1}; {{codecomment|// Insignia image color (white default), can be either RGBA array, or class from CfgMarkerColors}}
insignia = "a3\missions_f_epa\data\img\orbat\b_aegis_ca.paa"; // Unit insignia, displayed in ORBAT background and in tooltip
commander = "Armstrong"; {{codecomment|// Name of unit commander. Can be either direct name, or class from CfgWorlds >> GenericNames (random name from the list is then selected)}}
colorInsignia[] = { 0, 0, 0, 1 }; // Insignia image color (white default), can be either RGBA array, or class from CfgMarkerColors
commanderRank = "GENERAL"; {{codecomment|// Rank of unit commander (by default selected based on unit size)}}
commander = "Armstrong"; // Name of unit commander. Can be either direct name, or class from CfgWorlds >> GenericNames (random name from the list is then selected)
tags[] = {BIS,USArmy,Kerry,Hutchison,Larkin}; {{codecomment|// Group tags. When opening ORBAT viewer, user can define what tags will be accepted.}}
commanderRank = "GENERAL"; // Rank of unit commander (by default selected based on unit size)
text = "%1 Combat Technology Research %3"; {{codecomment|// Custom text and short text, can still use some arguments when defined:}}
tags[] = { "BIS", "USArmy", "Kerry", "Hutchison", "Larkin" }; // Group tags. When opening ORBAT viewer, user can define what tags will be accepted.
{{codecomment|// %1 - ID (e.g. "7th")}}
text = "%1 Combat Technology Research %3"; // Custom text and short text, can still use some arguments when defined:
{{codecomment|// %2 - Type (e.g. "Infantry")}}
// %1 - ID (e.g. "7th")
{{codecomment|// %3 - Size (e.g. "Division")}}
// %2 - Type (e.g. "Infantry")
textShort = "%1 CTR %3";
// %3 - Size (e.g. "Division")
texture = "\ca\missions_f\data\orbat\customTexture_ca.paa"; {{codecomment|// Custom texture, will replace icon set by 'type' param.}}
textShort = "%1 CTR %3";
color[] = {0,0,1,1}; {{codecomment|// Custom color, will replace color set by 'side' param. Can be either RGBA array, or class from CfgMarkerColors}}
texture = "a3\ui_f_orange\data\displays\rscdisplayorangechoice\faction_nato_ca.paa"; // Custom texture, will replace icon set by 'type' param.
description= "All of your text would go here."; {{codecomment|// A brief description of the group or unit.}}
color = "ColorWest"; // Custom texture color for texture displayed on the map and in the ORBAT viewer, will replace color set by 'side' param. Can be either RGBA array, or class from CfgMarkerColors (e.g. color = "ColorWEST";)
assets[] = {{B_Heli_Transport_03_F,5},{B_Heli_Light_01_F,3},{B_Heli_Light_01_armed_F,4},B_Heli_Transport_01_camo_F}; {{codecomment|// Will display pictures of all available assets to the unit commander:}}
description = "All of your text would go here."; // A brief description of the group or unit.
{{codecomment|// Can be array with format {classname, [int active icons], [int greyed out icons]}, or simply a classname}}
assets[] = { // Will display pictures of all available assets to the unit commander:
subordinates[] = {2ndBCT}; {{codecomment|// Subordinates, searched on the same level as this class.}}
{ "B_Heli_Transport_03_F", 5 },
 
{ "B_Heli_Light_01_F", 3 },
{{codecomment|// When 'subordinates' are missing, child classes will be used. They can have their own subs - number of tiers is not limited.}}
{ "B_Heli_Light_01_armed_F", 4 },
class 1stBCT
"B_Heli_Transport_01_camo_F"
{
};
id = 1;
 
type = "Armored";
// Can be an array with format {classname, [int active icons], [int greyed out icons]}, or simply a classname
size = "BCT";
//subordinates[] = { "1stBCT", "2ndBCT" }; // Subordinates, searched on the same level as this class.
side = "West";
commander = "NATOMen";
tags[] = {"BLUFOR", "USArmy","Kerry"};
  };
};
class 2ndBCT
{
};
};


=== Valid Attributes ===
// When 'subordinates' are missing, child classes will be used. They can have their own subs - number of tiers is not limited.
==== ID Type ====
class 1stBCT
<spoiler>
{
*0 - Ordinal number, e.g. "7th" (default)
id = 1;
*1 - Roman numeral, e.g. "VII"
idType = 2;
*2 - NATO phonetical alphabet word, e.g. "Golf"
type = "Helicopter";
*3 - Color, e.g. "Red"
size = "Squadron";
</spoiler>
side = "West";
commander = "R3vo";
commanderRank = "Lieutenant";
description = "All of your text would go here.";
texture = "a3\ui_f_orange\data\displays\rscdisplayorangechoice\faction_nato_ca.paa";
insignia = "a3\missions_f_epa\data\img\orbat\b_aegis_ca.paa";
assets[] =
{
{ "B_Heli_Transport_03_F", 5 }
};
};


class 2ndBCT: 1stBCT
{
id = 2;
size = "Division";
commander = "NATOMen";
assets[] =
{
{ "B_Heli_Transport_03_F", 2 }
};
};
};
};
</syntaxhighlight>
== Attributes ==
=== ID Type ===
* 0 - Ordinal number, e.g. "7th" (default)
* 1 - Roman numeral, e.g. "VII"
* 2 - NATO phonetical alphabet word, e.g. "Golf"
* 3 - Color, e.g. "Red"
=== Side ===


==== Side ====
<spoiler>
* West
* West
* East
* East
Line 64: Line 91:
* Civilian
* Civilian
* Unknown
* Unknown
</spoiler>


==== Size ====
=== Size ===
<spoiler>
 
{{Columns|4|
* Army
* Army
* ArmyGroup
* ArmyGroup
Line 85: Line 112:
* Squadron
* Squadron
* Troop
* Troop
* Size1->11 (Ex, Size1 [Will not display an size-icon indicator, such as Ø])
* Size1..11
</spoiler>
}}
{{Feature|informative|{{hl|Size1}}..{{hl|Size11}} will not display a size-icon indicator, such as Ø.}}


==== Type ====
=== Type ===
<spoiler>
 
{{Columns|4|
* Airborne
* Airborne
* Armored
* Armored
Line 114: Line 143:
* UAV
* UAV
* Unknown
* Unknown
</spoiler>
}}


==== Rank ====
=== Rank ===
<spoiler>
 
{{Columns|2|
* Private
* Private
* Corporal
* Corporal
Line 126: Line 156:
* Colonel
* Colonel
* General
* General
</spoiler>
}}
 
=== Tags ===


==== Tags ====
Tags are used by [[BIS_fnc_ORBATOpen]]. The function will search and classes with given tags.
Tags are used by [[BIS_fnc_ORBATOpen]]. The function will search and classes with given tags.


=== ORBAT Group Module ===
[[File:A3 ORBATGroup Module.jpg|thumb|left|500px]]


==== CfgORBAT Path ====
[[File:A3 ORBATGroup Module.jpg|thumb|400px|The ORBAT Group module]]
== ORBAT Group Module ==
 
=== CfgORBAT Path ===
 
The group you want to be display on the map.
The group you want to be display on the map.


'''Example:'''
'''Example:'''
{{Inline code|[[missionConfigFile]] >> "CfgORBAT" >> "unitClassName" >> "subordinateUnitClassName"}}
<sqf>missionConfigFile >> "CfgORBAT" >> "unitClassName" >> "subordinateUnitClassName"</sqf>
 
=== CfgORBAT Ceiling ===


==== CfgORBAT Ceiling ====
The highest superior unit to display in the [[ORBAT Viewer]] while this group is selected. If blank, the '''CfgORBAT Path''' unit is displayed as the ceiling.
The highest superior unit to display in the [[ORBAT Viewer]] while this group is selected. If blank, the '''CfgORBAT Path''' unit is displayed as the ceiling.


'''Example:'''
'''Example:'''
{{Inline code|[[missionConfigFile]] >> "CfgORBAT" >> "unitClassName"}}
<sqf>missionConfigFile >> "CfgORBAT" >> "unitClassName"</sqf>


=== Tags ===
=== Tags ===
Groups containing at least on of these tags will be added
Groups containing at least on of these tags will be added


==== Max. Tiers ====
=== Max. Tiers ===
 
Defines how many tiers are are shown.
Defines how many tiers are are shown.


==== Working Example ====
=== Working Example ===
* Place a fire team in [[Eden Editor]]
 
* Place a fire team in [[:Category:Eden Editor|Eden Editor]]
* Place the '''ORBAT Group''' module
* Place the '''ORBAT Group''' module
* Syncronize the module with the group leader
* Synchronise the module with the group leader
* Open the module and fill in the following:
* Open the module and fill in the following:
**CfgORBAT Path: configfile >> "CfgORBAT" >> "BIS" >> "B_1_A_1_2"
** CfgORBAT Path: <sqf inline>configFile >> "CfgORBAT" >> "BIS" >> "B_1_A_1_2"</sqf>
**CfgORBATCeiling: configfile >> "CfgORBAT" >> "BIS" >> "B_1"
** CfgORBATCeiling: <sqf inline>configFile >> "CfgORBAT" >> "BIS" >> "B_1"</sqf>
* Leave '''Max. Tiers''' and '''Tags''' empty
* Leave '''Max. Tiers''' and '''Tags''' empty
* Enter the preview mode and open the map
* Enter the preview mode and open the map


== Create ORBAT Group during Runtime ==
<sqf>
//Create ORBAT icon
if isServer then
{
"ModuleStrategicMapORBAT_F" createUnit
[
getPosWorld player,
createGroup sideLogic,
toString {
this setVariable ["BIS_fnc_initModules_disableAutoActivation", false, true];
this setVariable [""Path"", ""missionConfigFile >> 'CfgORBAT' >> 'Support'"", true]; // ORBAT class that should be displayed
}
];
};
</sqf>




== Texture in missionConfigFile ==


As '''texture''' is treated as a ''new'' texture (rather than an image, as icon is), the game needs a direct path to it. Example:
"C:\Users\Kerry\Documents\Arma 3\Kerry\missions\MyMission.Stratis\someDirectory\SomeImage.paa"
"\ca\missions_f\data\orbat\customTexture_ca.paa"
Writing the direct path is not possible in a {{hl|CfgORBAT}} defined in [[Description.ext]] (as the mission changes path on different computers);
in that case the path to the texture can be defined with the following:
<syntaxhighlight lang="cpp">
texture = __EVAL(getMissionPath "someDirectory\SomeImage.paa"); // converts to "C:\Users\Kerry\Documents\Arma 3\Kerry\missions\MyMission.Stratis\someDirectory\SomeImage.paa"
</syntaxhighlight>


{{Feature|informative|See [[getMissionPath]].}}


==== Texture in missonConfigFile ====
As '''texture''' is treated as a ''new'' texture (rather than an image, as icon is), Arma needs a direct path to it. Example,
<code>C:\Users\Kerry\Documents\Arma 3\Kerry\missions\MyMission.Stratis</code>


However, as {{Inline code|CfgORBAT}} is defined in {{Inline code|description.ext}}, we cannot use SQF scripting like [[missionConfigFile]].
== Functions ==
But we can define a global variable in description.ext using [[PreProcessor Commands]] to our mission's folder. In this case, {{Inline code|MISSIONLOCATION}}.


<code>__EXEC (MISSIONLOCATION = __FILE__ select [0, count __FILE__ - 15])</code>
Listed in {{Link|Category:Function Group: Strategic|"Strategic" function group}}:
{{Columns|2|
* [[BIS_fnc_ORBATAddGroupOverlay]]
* [[BIS_fnc_ORBATAnimate]]
* [[BIS_fnc_ORBATConfigPreview]]
* [[BIS_fnc_ORBATGetGroupParams]]
* [[BIS_fnc_ORBATOpen]]
* [[BIS_fnc_ORBATRemoveGroupOverlay]]
* [[BIS_fnc_ORBATSetGroupFade]]
* [[BIS_fnc_ORBATSetGroupParams]]
* [[BIS_fnc_ORBATTooltip]]
}}


In our CfgORBAT, be it in a separate {{Inline code|.hpp}} file or your description.ext, we can now define the path to our texture with the following:


<code>texture = __EVAL(MISSIONLOCATION + "someFolder\SomeImage.paa");</code>
== See Also ==


==== Functions ====
* {{Link|https://forums.bohemia.net/forums/topic/159943-request-orbat-tutorial/?page{{=}}3|Various information about ORBAT Viewer}}
*[[BIS_fnc_ORBATAddGroupOverlay]]
*[[BIS_fnc_ORBATAnimate]]
*[[BIS_fnc_ORBATConfigPreview]]
*[[BIS_fnc_ORBATGetGroupParams]]
*[[BIS_fnc_ORBATOpen]]
*[[BIS_fnc_ORBATRemoveGroupOverlay]]
*[[BIS_fnc_ORBATSetGroupFade]]
*[[BIS_fnc_ORBATSetGroupParams]]
*[[BIS_fnc_ORBATTooltip]]


=== Other ===
*[http://killzonekid.com/arma-scripting-tutorials-mission-root/ Mission Root Tutorial]
*[https://forums.bohemia.net/forums/topic/159943-request-orbat-tutorial/?page=3 Various information about ORBAT Viewer]


[[Category:Arma 3: Editing]]
{{GameCategory|arma3|Editing}}

Latest revision as of 16:54, 3 November 2024

A3 ORBATViewer.jpg

The ORBAT Viewer can be used to displayed the hiearchy of troops present in a scenario. Inside the ORBAT Viewer pressing H will toggle the visibility of the UI.


Config

CfgORBAT can be defined in configFile or missionConfigFile.

class CfgORBAT
{
	class 7thInfantry
	{
		id = 7;												// Unit ID
		idType = 2;											// Unit ID type
		side = "West";										// Unit side from CfgChainOfCommand >> Sides
		size = "Division";									// Unit size from CfgChainOfCommand >> Sizes. Displays relevant icon above the Type icon
		type = "HQ";										// Unit type from CfgChainOfCommand >> Types
		insignia = "a3\missions_f_epa\data\img\orbat\b_aegis_ca.paa";		// Unit insignia, displayed in ORBAT background and in tooltip
		colorInsignia[] = { 0, 0, 0, 1 };					// Insignia image color (white default), can be either RGBA array, or class from CfgMarkerColors
		commander = "Armstrong";							// Name of unit commander. Can be either direct name, or class from CfgWorlds >> GenericNames (random name from the list is then selected)
		commanderRank = "GENERAL";							// Rank of unit commander (by default selected based on unit size)
		tags[] = { "BIS", "USArmy", "Kerry", "Hutchison", "Larkin" };	// Group tags. When opening ORBAT viewer, user can define what tags will be accepted.
		text = "%1 Combat Technology Research %3";			// Custom text and short text, can still use some arguments when defined:
		// %1 - ID (e.g. "7th")
		// %2 - Type (e.g. "Infantry")
		// %3 - Size (e.g. "Division")
		textShort = "%1 CTR %3";
		texture = "a3\ui_f_orange\data\displays\rscdisplayorangechoice\faction_nato_ca.paa";	// Custom texture, will replace icon set by 'type' param.
		color = "ColorWest";									// Custom texture color for texture displayed on the map and in the ORBAT viewer, will replace color set by 'side' param. Can be either RGBA array, or class from CfgMarkerColors (e.g. color = "ColorWEST";)
		description = "All of your text would go here.";			// A brief description of the group or unit.
		assets[] = {												// Will display pictures of all available assets to the unit commander:
			{ "B_Heli_Transport_03_F", 5 },
			{ "B_Heli_Light_01_F", 3 },
			{ "B_Heli_Light_01_armed_F", 4 },
			"B_Heli_Transport_01_camo_F"
		};

		// Can be an array with format {classname, [int active icons], [int greyed out icons]}, or simply a classname
		//subordinates[] = { "1stBCT", "2ndBCT" }; // Subordinates, searched on the same level as this class.

		// When 'subordinates' are missing, child classes will be used. They can have their own subs - number of tiers is not limited.
		class 1stBCT
		{
			id = 1;
			idType = 2;
			type = "Helicopter";
			size = "Squadron";
			side = "West";
			commander = "R3vo";
			commanderRank = "Lieutenant";
			description = "All of your text would go here.";
			texture = "a3\ui_f_orange\data\displays\rscdisplayorangechoice\faction_nato_ca.paa";
			insignia = "a3\missions_f_epa\data\img\orbat\b_aegis_ca.paa";
			assets[] =
			{
				{ "B_Heli_Transport_03_F", 5 }
			};
		};

		class 2ndBCT: 1stBCT
		{
			id = 2;
			size = "Division";
			commander = "NATOMen";
			assets[] =
			{
				{ "B_Heli_Transport_03_F", 2 }
			};
		};
	};
};

Attributes

ID Type

  • 0 - Ordinal number, e.g. "7th" (default)
  • 1 - Roman numeral, e.g. "VII"
  • 2 - NATO phonetical alphabet word, e.g. "Golf"
  • 3 - Color, e.g. "Red"

Side

  • West
  • East
  • Resistance
  • Civilian
  • Unknown

Size

  • Army
  • ArmyGroup
  • Battalion
  • BCT
  • Brigade
  • Company
  • Corps
  • Division
  • FireTeam
  • HBCT
  • IBCT
  • Platoon
  • Regiment
  • Section
  • Squad
  • Squadron
  • Troop
  • Size1..11
Size1..Size11 will not display a size-icon indicator, such as Ø.

Type

  • Airborne
  • Armored
  • Artillery
  • Assault
  • AttackRecon
  • AviationSupport
  • Cavalry
  • CombatAviation
  • Fighter
  • GeneralSupport
  • Helicopter
  • HQ
  • Infantry
  • Maintenance
  • Maritime
  • MechanizedInfantry
  • Medical
  • Mortar
  • MotorizedInfantry
  • Recon
  • Service
  • Support
  • UAV
  • Unknown

Rank

  • Private
  • Corporal
  • Sergeant
  • Lieutenant
  • Captain
  • Major
  • Colonel
  • General

Tags

Tags are used by BIS_fnc_ORBATOpen. The function will search and classes with given tags.


The ORBAT Group module

ORBAT Group Module

CfgORBAT Path

The group you want to be display on the map.

Example:

missionConfigFile >> "CfgORBAT" >> "unitClassName" >> "subordinateUnitClassName"

CfgORBAT Ceiling

The highest superior unit to display in the ORBAT Viewer while this group is selected. If blank, the CfgORBAT Path unit is displayed as the ceiling.

Example:

missionConfigFile >> "CfgORBAT" >> "unitClassName"

Tags

Groups containing at least on of these tags will be added

Max. Tiers

Defines how many tiers are are shown.

Working Example

  • Place a fire team in Eden Editor
  • Place the ORBAT Group module
  • Synchronise the module with the group leader
  • Open the module and fill in the following:
  • Leave Max. Tiers and Tags empty
  • Enter the preview mode and open the map


Create ORBAT Group during Runtime

//Create ORBAT icon if isServer then { "ModuleStrategicMapORBAT_F" createUnit [ getPosWorld player, createGroup sideLogic, toString { this setVariable ["BIS_fnc_initModules_disableAutoActivation", false, true]; this setVariable [""Path"", ""missionConfigFile >> 'CfgORBAT' >> 'Support'"", true]; // ORBAT class that should be displayed } ]; };


Texture in missionConfigFile

As texture is treated as a new texture (rather than an image, as icon is), the game needs a direct path to it. Example:

"C:\Users\Kerry\Documents\Arma 3\Kerry\missions\MyMission.Stratis\someDirectory\SomeImage.paa"
"\ca\missions_f\data\orbat\customTexture_ca.paa"

Writing the direct path is not possible in a CfgORBAT defined in Description.ext (as the mission changes path on different computers); in that case the path to the texture can be defined with the following:

texture = __EVAL(getMissionPath "someDirectory\SomeImage.paa"); // converts to "C:\Users\Kerry\Documents\Arma 3\Kerry\missions\MyMission.Stratis\someDirectory\SomeImage.paa"


Functions

Listed in "Strategic" function group:


See Also