Custom Info – Arma 3
m (Removed Arma 3: Components link (It was never created)) |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
Line 1: | Line 1: | ||
{{SideTOC}} | |||
{{ | |||
UI window elements that encompass various display modules and gadgets (Navigation, Camera feeds, Radar...) | UI window elements that encompass various display modules and gadgets (Navigation, Camera feeds, Radar...) | ||
Forum topic: [https://forums.bistudio.com/topic/200468-jets-custom-info/ Main thread] | Forum topic: [https://forums.bistudio.com/topic/200468-jets-custom-info/ Main thread] | ||
=User Interface= | |||
== User Interface == | |||
[[File: Arma_3_Custom_Info_overview.jpeg|frameless|upright=1.5]] | [[File: Arma_3_Custom_Info_overview.jpeg|frameless|upright=1.5]] | ||
==Action keybinds (default)== | |||
=== Action keybinds (default) === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| ''' [''' || next module on left panel | | '''[''' || next module on left panel | ||
|- | |- | ||
| ''' ]''' || next module on right panel | | ''']''' || next module on right panel | ||
|- | |- | ||
| '''RCTRL + [''' || | | '''RCTRL + [''' || toggle submodes on current left panel module | ||
|- | |- | ||
| '''RCTRL + ]''' || toggle submodes on current right panel module | | '''RCTRL + ]''' || toggle submodes on current right panel module | ||
Line 29: | Line 31: | ||
|} | |} | ||
== Modules == | |||
=== Modules === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! Module !! Description !! Sub-mode | |||
|- | |- | ||
| '''NAV''' || Navigation - requires either a GPS item or GPS-equipped vehicle || rotation | | '''NAV''' || Navigation - requires either a GPS item or GPS-equipped vehicle || rotation | ||
Line 38: | Line 42: | ||
| '''SLA''' || Sling-load Assistant - only available in vehicles capable of slingloading || n/a | | '''SLA''' || Sling-load Assistant - only available in vehicles capable of slingloading || n/a | ||
|- | |- | ||
| '''SENS''' || | | '''SENS''' || Sensors Display - tactical awareness display that combines information about tracked targets from all sensors and about threats ([[Arma_3_Sensors#User_Interface]] || ranges | ||
|- | |- | ||
| '''CAM Drone''' || Drone Feed - requires UAV terminal item || spectrum | | '''CAM Drone''' || Drone Feed - requires UAV terminal item || spectrum | ||
Line 55: | Line 59: | ||
{{note|The CAM modules only work with PIP enabled!}} | {{note|The CAM modules only work with PIP enabled!}} | ||
=Configuration= | |||
== Configuration == | |||
The new Sensor system gets enabled by defining a VehicleSystemsDisplayManagerComponentLeft (left display) or VehicleSystemsDisplayManagerComponentRight (right display) class inside the vehicle's [[Arma_3_Components|Components]] class. | The new Sensor system gets enabled by defining a VehicleSystemsDisplayManagerComponentLeft (left display) or VehicleSystemsDisplayManagerComponentRight (right display) class inside the vehicle's [[Arma_3_Components|Components]] class. | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="cpp"> | ||
class MyVehicle_F : MyBaseVehicle_F | class MyVehicle_F : MyBaseVehicle_F | ||
{ | { | ||
class Components : Components | |||
{ | |||
class VehicleSystemsDisplayManagerComponentLeft : DefaultVehicleSystemsDisplayManagerLeft | |||
{ | |||
}; | |||
class VehicleSystemsDisplayManagerComponentRight : DefaultVehicleSystemsDisplayManagerRight | |||
{ | |||
}; | |||
}; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 76: | Line 82: | ||
For tank roles - each template adds camera feeds from the other two positions | For tank roles - each template adds camera feeds from the other two positions | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="cpp"> | ||
VehicleSystemsTemplateLeftDriver | VehicleSystemsTemplateLeftDriver | ||
VehicleSystemsTemplateRightDriver | VehicleSystemsTemplateRightDriver | ||
Line 86: | Line 92: | ||
For (some) pilots and copilots - template adds a Sensors display and a Driver feed camera (e.g. [[A3_Targeting_config_reference#class_pilotCamera|pilotCamera]]) | For (some) pilots and copilots - template adds a Sensors display and a Driver feed camera (e.g. [[A3_Targeting_config_reference#class_pilotCamera|pilotCamera]]) | ||
<syntaxhighlight lang=" | <syntaxhighlight lang="cpp"> | ||
VehicleSystemsTemplateLeftPilot | VehicleSystemsTemplateLeftPilot | ||
VehicleSystemsTemplateRightPilot | VehicleSystemsTemplateRightPilot | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==Automatic usage & backwards compatibility== | === Automatic usage & backwards compatibility === | ||
If the Vehicle doesn't have the VehicleSystemsDisplayManagerComponent defined one of the two default pairs is used. | |||
<syntaxhighlight lang=" | If the Vehicle doesn't have the VehicleSystemsDisplayManagerComponent defined one of the two default pairs is used. | ||
<syntaxhighlight lang="cpp"> | |||
// core definitions, do not override | // core definitions, do not override | ||
DefaultVehicleSystemsDisplayManagerLeft | DefaultVehicleSystemsDisplayManagerLeft | ||
DefaultVehicleSystemsDisplayManagerRight | DefaultVehicleSystemsDisplayManagerRight | ||
DefaultVehicleSystemsDisplayManagerLeftSensors | DefaultVehicleSystemsDisplayManagerLeftSensors | ||
DefaultVehicleSystemsDisplayManagerRightSensors | DefaultVehicleSystemsDisplayManagerRightSensors | ||
</syntaxhighlight> | </syntaxhighlight> | ||
The pair of defaults with Sensors suffix is used whenever the vehicle had [[A3_Targeting_config_reference#radarType|radarType]] defined as ''air radar'' or ''ground radar''. It adds Sensors display in addition to the normal default displays. | The pair of defaults with Sensors suffix is used whenever the vehicle had [[A3_Targeting_config_reference#radarType|radarType]] defined as ''air radar'' or ''ground radar''. It adds Sensors display in addition to the normal default displays. | ||
== Properties == | === Properties === | ||
<syntaxhighlight lang=" | |||
<syntaxhighlight lang="cpp"> | |||
class VehicleSystemsDisplayManagerLeft | class VehicleSystemsDisplayManagerLeft | ||
{ | { | ||
Line 110: | Line 118: | ||
y = (safezoneY + safezoneH - 21 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)); | y = (safezoneY + safezoneH - 21 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)); | ||
left = 1; | left = 1; | ||
defaultDisplay = "CrewDisplay"; | defaultDisplay = "CrewDisplay"; // display to be selected when player changes vehicle and had "empty" previously selected | ||
class Components | class Components | ||
{ | { | ||
class MinimapDisplay | class MinimapDisplay // GPS | ||
{ | { | ||
componentType = "MinimapDisplayComponent"; | componentType = "MinimapDisplayComponent"; | ||
resource = "RscCustomInfoMiniMap"; | resource = "RscCustomInfoMiniMap"; | ||
}; | }; | ||
class SlingLoadDisplay | class SlingLoadDisplay // Slingload Assistant | ||
{ | { | ||
componentType = "SlingLoadDisplayComponent"; | componentType = "SlingLoadDisplayComponent"; | ||
resource = "RscCustomInfoSlingLoad"; | resource = "RscCustomInfoSlingLoad"; | ||
}; | }; | ||
class SensorsDisplay | class SensorsDisplay // Combined display showing sensors, detected and tracked targets, info about marked target and threats | ||
{ | { | ||
componentType = "SensorsDisplayComponent"; | componentType = "SensorsDisplayComponent"; | ||
range[] = {8000,4000,2000}; | range[] = {8000,4000,2000}; // accepts an integer or an array of available ranges (submode) | ||
showTargetTypes = 1+2+4+8+16+32+64+128+256+512+1024; // 1 - Sensor sectors, 2 - Threats, 4 - Marked tgt symbol, 8 - Own detection, 16 - Remote detection, 32 - Active detection, 64 - Passive detection, 128 - Ground tgts, 256 - Air tgts, 512 - Men, 1024 - Special (laser, NV) | showTargetTypes = 1+2+4+8+16+32+64+128+256+512+1024; // 1 - Sensor sectors, 2 - Threats, 4 - Marked tgt symbol, 8 - Own detection, 16 - Remote detection, 32 - Active detection, 64 - Passive detection, 128 - Ground tgts, 256 - Air tgts, 512 - Men, 1024 - Special (laser, NV) | ||
resource = "RscCustomInfoSensors"; | resource = "RscCustomInfoSensors"; | ||
}; | }; | ||
class UAVFeedDisplay | class UAVFeedDisplay // Drone camera feed | ||
{ | { | ||
componentType = "UAVFeedDisplayComponent"; | componentType = "UAVFeedDisplayComponent"; | ||
// resource = "RscCustomInfoAVCamera"; // hardcoded | // resource = "RscCustomInfoAVCamera"; // hardcoded | ||
}; | }; | ||
class VehicleDriverDisplay | class VehicleDriverDisplay // Camera feed from driver's optics | ||
{ | { | ||
componentType = "TransportFeedDisplayComponent"; | componentType = "TransportFeedDisplayComponent"; | ||
source = "Driver"; | source = "Driver"; | ||
// resource = "RscTransportCameraComponentDriver"; // hardcoded | // resource = "RscTransportCameraComponentDriver"; // hardcoded | ||
}; | }; | ||
class VehicleGunnerDisplay | class VehicleGunnerDisplay // Camera feed from gunner's optics | ||
{ | { | ||
componentType = "TransportFeedDisplayComponent"; | componentType = "TransportFeedDisplayComponent"; | ||
source = "PrimaryGunner"; | source = "PrimaryGunner"; | ||
// resource = "RscTransportCameraComponentPrimaryGunner"; // hardcoded | // resource = "RscTransportCameraComponentPrimaryGunner"; // hardcoded | ||
}; | }; | ||
class VehicleCommanderDisplay //Camera feed from commander's optics | class VehicleCommanderDisplay // Camera feed from commander's optics | ||
{ | { | ||
componentType = "TransportFeedDisplayComponent"; | componentType = "TransportFeedDisplayComponent"; | ||
Line 154: | Line 162: | ||
// resource = "RscTransportCameraComponentCommander"; // hardcoded | // resource = "RscTransportCameraComponentCommander"; // hardcoded | ||
}; | }; | ||
class MissileDisplay | class MissileDisplay // Camera feed from missile's warhead | ||
{ | { | ||
componentType = "TransportFeedDisplayComponent"; | componentType = "TransportFeedDisplayComponent"; | ||
Line 160: | Line 168: | ||
// resource = "RscTransportCameraComponentMissile"; // hardcoded | // resource = "RscTransportCameraComponentMissile"; // hardcoded | ||
}; | }; | ||
class CrewDisplay | class CrewDisplay // List of all crew members, cargo and transported or slingloaded vehicle | ||
{ | { | ||
componentType = "CrewDisplayComponent"; | componentType = "CrewDisplayComponent"; | ||
resource = "RscCustomInfoCrew"; | resource = "RscCustomInfoCrew"; | ||
}; | }; | ||
class CustomDisplayXY | class CustomDisplayXY // Custom display using custom resource | ||
{ | { | ||
componentType = "CustomDisplayComponent"; | componentType = "CustomDisplayComponent"; | ||
resource = "RscCustomInfoMyCustomRadModule"; | resource = "RscCustomInfoMyCustomRadModule"; | ||
}; | }; | ||
class EmptyDisplay | class EmptyDisplay // Empty display - hide panel | ||
{ | { | ||
componentType = "EmptyDisplayComponent"; | componentType = "EmptyDisplayComponent"; | ||
Line 182: | Line 190: | ||
left = 0; | left = 0; | ||
right = 1; | right = 1; | ||
forcedDisplay = "SensorsDisplay"; | forcedDisplay = "SensorsDisplay"; // display to be selected when player enters the vehicle no matter what was selected before | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
= | |||
== See Also == | |||
* [[Arma 3 Sensors]] | * [[Arma 3 Sensors]] | ||
* [[Arma 3 Targeting]] | * [[Arma 3 Targeting]] | ||
* [https://forums.bistudio.com/topic/200468-jets-custom-info/ Custom Info thread] | * [https://forums.bistudio.com/topic/200468-jets-custom-info/ Custom Info thread] | ||
[[Category:Arma 3: Editing]] |
Revision as of 00:50, 30 May 2020
Template:SideTOC UI window elements that encompass various display modules and gadgets (Navigation, Camera feeds, Radar...)
Forum topic: Main thread
User Interface
Action keybinds (default)
[ | next module on left panel |
] | next module on right panel |
RCTRL + [ | toggle submodes on current left panel module |
RCTRL + ] | toggle submodes on current right panel module |
no default keybind | close left display |
no default keybind | close right display |
no default keybind | close left display |
no default keybind | close right display |
Modules
Module | Description | Sub-mode |
---|---|---|
NAV | Navigation - requires either a GPS item or GPS-equipped vehicle | rotation |
SLA | Sling-load Assistant - only available in vehicles capable of slingloading | n/a |
SENS | Sensors Display - tactical awareness display that combines information about tracked targets from all sensors and about threats (Arma_3_Sensors#User_Interface | ranges |
CAM Drone | Drone Feed - requires UAV terminal item | spectrum |
CAM Driver | Driver Feed - usually available for commanders and gunners in tanks and for pilots (as a Targeting Pod or a Sling-load camera feed) | spectrum |
CAM Gunner | Gunner Feed - usually available for pilots and drivers and commanders in tanks | spectrum |
CAM Commander | Commander Feed - usually available for drivers and gunners in tanks | spectrum |
CAM Missile | Missile Feed - available mostly on few attack aircrafts, feed is initiated after a missile with camera feed capability is fired | n/a |
CREW | Crew Display - shows crew members' names, cargo occupancy, transport capacity, sling-loaded vehicle | n/a |
Configuration
The new Sensor system gets enabled by defining a VehicleSystemsDisplayManagerComponentLeft (left display) or VehicleSystemsDisplayManagerComponentRight (right display) class inside the vehicle's Components class.
class MyVehicle_F : MyBaseVehicle_F
{
class Components : Components
{
class VehicleSystemsDisplayManagerComponentLeft : DefaultVehicleSystemsDisplayManagerLeft
{
};
class VehicleSystemsDisplayManagerComponentRight : DefaultVehicleSystemsDisplayManagerRight
{
};
};
};
For simplicity the class can inherit from one of the defaults. You can also inherit from one of the premade templates that are available in the configFile root.
For tank roles - each template adds camera feeds from the other two positions
VehicleSystemsTemplateLeftDriver
VehicleSystemsTemplateRightDriver
VehicleSystemsTemplateLeftCommander
VehicleSystemsTemplateRightCommander
VehicleSystemsTemplateLeftGunner
VehicleSystemsTemplateRightGunner
For (some) pilots and copilots - template adds a Sensors display and a Driver feed camera (e.g. pilotCamera)
VehicleSystemsTemplateLeftPilot
VehicleSystemsTemplateRightPilot
Automatic usage & backwards compatibility
If the Vehicle doesn't have the VehicleSystemsDisplayManagerComponent defined one of the two default pairs is used.
// core definitions, do not override
DefaultVehicleSystemsDisplayManagerLeft
DefaultVehicleSystemsDisplayManagerRight
DefaultVehicleSystemsDisplayManagerLeftSensors
DefaultVehicleSystemsDisplayManagerRightSensors
The pair of defaults with Sensors suffix is used whenever the vehicle had radarType defined as air radar or ground radar. It adds Sensors display in addition to the normal default displays.
Properties
class VehicleSystemsDisplayManagerLeft
{
componentType = "VehicleSystemsDisplayManager"; //mandatory
x = (safezoneX + 0.5 * (((safezoneW / safezoneH) min 1.2) / 40));
y = (safezoneY + safezoneH - 21 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25));
left = 1;
defaultDisplay = "CrewDisplay"; // display to be selected when player changes vehicle and had "empty" previously selected
class Components
{
class MinimapDisplay // GPS
{
componentType = "MinimapDisplayComponent";
resource = "RscCustomInfoMiniMap";
};
class SlingLoadDisplay // Slingload Assistant
{
componentType = "SlingLoadDisplayComponent";
resource = "RscCustomInfoSlingLoad";
};
class SensorsDisplay // Combined display showing sensors, detected and tracked targets, info about marked target and threats
{
componentType = "SensorsDisplayComponent";
range[] = {8000,4000,2000}; // accepts an integer or an array of available ranges (submode)
showTargetTypes = 1+2+4+8+16+32+64+128+256+512+1024; // 1 - Sensor sectors, 2 - Threats, 4 - Marked tgt symbol, 8 - Own detection, 16 - Remote detection, 32 - Active detection, 64 - Passive detection, 128 - Ground tgts, 256 - Air tgts, 512 - Men, 1024 - Special (laser, NV)
resource = "RscCustomInfoSensors";
};
class UAVFeedDisplay // Drone camera feed
{
componentType = "UAVFeedDisplayComponent";
// resource = "RscCustomInfoAVCamera"; // hardcoded
};
class VehicleDriverDisplay // Camera feed from driver's optics
{
componentType = "TransportFeedDisplayComponent";
source = "Driver";
// resource = "RscTransportCameraComponentDriver"; // hardcoded
};
class VehicleGunnerDisplay // Camera feed from gunner's optics
{
componentType = "TransportFeedDisplayComponent";
source = "PrimaryGunner";
// resource = "RscTransportCameraComponentPrimaryGunner"; // hardcoded
};
class VehicleCommanderDisplay // Camera feed from commander's optics
{
componentType = "TransportFeedDisplayComponent";
source = "Commander";
// resource = "RscTransportCameraComponentCommander"; // hardcoded
};
class MissileDisplay // Camera feed from missile's warhead
{
componentType = "TransportFeedDisplayComponent";
source = "Missile";
// resource = "RscTransportCameraComponentMissile"; // hardcoded
};
class CrewDisplay // List of all crew members, cargo and transported or slingloaded vehicle
{
componentType = "CrewDisplayComponent";
resource = "RscCustomInfoCrew";
};
class CustomDisplayXY // Custom display using custom resource
{
componentType = "CustomDisplayComponent";
resource = "RscCustomInfoMyCustomRadModule";
};
class EmptyDisplay // Empty display - hide panel
{
componentType = "EmptyDisplayComponent";
};
};
};
class VehicleSystemsDisplayManagerRight : VehicleSystemsDisplayManagerLeft
{
x = ((10 * (((safezoneW / safezoneH) min 1.2) / 40)) + 0.5 * (((safezoneW / safezoneH) min 1.2) / 40)));
left = 0;
right = 1;
forcedDisplay = "SensorsDisplay"; // display to be selected when player enters the vehicle no matter what was selected before
}