HUD: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 14: | Line 14: | ||
<font color="Blue">class MFD | <font color="Blue">class MFD | ||
{ | { | ||
<font color=" | <font color="DarkGrey">class MFD1 {...}; | ||
class MFD2 {...}; | class MFD2 {...}; | ||
... | ... | ||
</font><font color="Blue"> | </font><font color="Blue"> | ||
};</font> | };</font> | ||
<font color=" | <font color="DarkGrey">Optional.</font> | ||
<font color="Black">with class MFD1 of the following structure:</font> | <font color="Black">with class MFD1 of the following structure:</font> | ||
<font color="Blue">class MFD1 | <font color="Blue">class MFD1 | ||
{ | { | ||
topLeft = "HUD LH"; //Those 3 points define the displayarea. These | topLeft = "HUD LH"; //Those 3 points define the displayarea. These | ||
topRight = "HUD PH"; //to be present in model of vehicle. | topRight = "HUD PH"; //points need to be present in model of vehicle. | ||
bottomLeft = "HUD LD"; | bottomLeft = "HUD LD"; | ||
borderLeft = 0.05; //Offsets used to finetune the actual displayarea. | borderLeft = 0.05; //Offsets used to finetune the actual displayarea. | ||
borderRight = 0.05; //can vary from 0 - 1. | borderRight = 0.05; //The values can vary from 0 - 1. | ||
borderTop = 0.02; | borderTop = 0.02; | ||
borderBottom = 0.1; | borderBottom = 0.1; | ||
color[]={0,1,0,0.1}; // | color[]={0,1,0,0.1}; //Obsolete, done over color values in class Draw, | ||
//but at the moment still required. | |||
class Bones //List of all bones | class Bones //List of all bones | ||
{ | { | ||
Line 44: | Line 46: | ||
};</font> | };</font> | ||
<font color="Black"> | |||
===Class Bones:=== | ===Class Bones:=== | ||
All bones that are used for positioning and animating of drawings. | All bones that are used for positioning and animating of drawings. | ||
Line 63: | Line 67: | ||
type = linear; | type = linear; | ||
source = fuel; | source = fuel; | ||
min = 0; // | min = 0; //Min value this bone can display | ||
max = 1; // | max = 1; //Max value this bone can display | ||
minPos[] = {0.5,0.2}; | minPos[] = {0.5,0.2}; | ||
maxPos[] = {0.5,0.5}; | maxPos[] = {0.5,0.5}; | ||
Line 82: | Line 86: | ||
type = vector; | type = vector; | ||
source = velocity; | source = velocity; | ||
pos0[] = {0.5,Pos0Center}; // | pos0[] = {0.5,Pos0Center}; //Position of 0-degree dive line | ||
pos10[] = {0.5+0.9,Pos0Center+0.7}; // | pos10[] = {0.5+0.9,Pos0Center+0.7}; //Position of 10 degree bank and | ||
}; //10-deg dive (to adjust scale) | |||
class ILS | class ILS | ||
{ | { | ||
type = ils; | type = ils; | ||
pos0[] = {0.5,0.4}; | pos0[] = {0.5,0.4}; //Position when centered | ||
pos3[] = {0.7,0.6}; // | pos3[] = {0.7,0.6}; //Position when 3-degree off in both directions | ||
}; | }; | ||
class Horizont | class Horizont | ||
{ | { | ||
type = horizon; | type = horizon; | ||
pos0[] = {0.5,0.27}; // | pos0[] = {0.5,0.27}; //Position of 0-degree dive line | ||
pos10[] = {0.5+0.9,3.4}; // | pos10[] = {0.5+0.9,3.4}; //Position of 10 degree bank and 10-degree | ||
angle = 0; // | //dive (used to adjust scale) | ||
}; | angle = 0; //Horizon angle to which this line | ||
}; //corresponds to | |||
};</font> | };</font> | ||
<font color="Black"> | |||
===Class Draw:=== | ===Class Draw:=== | ||
The class Draw is a "group", which consist of other groups or classes. | |||
Every group can have its own alpha, color[], clipTL[], clipBR[] and condition values, which will be valid for all classes/groups inside. | |||
Format for a point(for points[],pos[],right[] and down[] entries):</font> | |||
Format for a point ''(for points[], pos[], right[] and down[] entries)'':</font> | |||
<font color="Blue">{[bone1,] position1, blending weight1[, [bone2,] position2, blending weight2]...}</font> | <font color="Blue">{[bone1,] position1, blending weight1[, [bone2,] position2, blending weight2]...}</font> | ||
Line 111: | Line 121: | ||
<font color="Black">entries with [] are optional. | <font color="Black">entries with [] are optional. | ||
Points directly defined after each other are linked by a line, | Points directly defined after each other are linked by a line, in case you don't want to link place an empty point {} between those points. | ||
<font color="Blue">class Draw | <font color="Blue">class Draw | ||
Line 117: | Line 127: | ||
alpha = 0.8; | alpha = 0.8; | ||
color[] = {0.2,1,0.1}; | color[] = {0.2,1,0.1}; | ||
clipTL[] = {0.0,0.05}; //Defines the space in which the bone is drawn | clipTL[] = {0.0,0.05}; //Defines the space in which the bone is drawn | ||
clipBR[] = {1.0,0.90}; | clipBR[] = {1.0,0.90}; //TL = Top Left, BR = Bottom Right | ||
condition = "on"; | condition = "on"; | ||
Line 130: | Line 140: | ||
type = text; | type = text; | ||
align = left; | align = left; | ||
scale = 1; // | scale = 1; //Text size, obsolete (but still required) | ||
source = speed; | source = speed; | ||
sourceScale = 3.6; // | sourceScale = 3.6; //Convert from m/s to km/h | ||
pos[]={SpdMove2,{-0.05,-0.03},1}; //pos[],right[],down[] define the | |||
pos[]={SpdMove2,{-0.05,-0.03},1}; | right[]={SpdMove2,{0.01,-0.03},1}; //box (size) of the first letter. | ||
right[]={SpdMove2,{0.01,-0.03},1}; | |||
down[]={SpdMove2,{-0.05,0.03},1}; | down[]={SpdMove2,{-0.05,0.03},1}; | ||
}; | }; | ||
};</font> | };</font> | ||
==Short Reference:== | |||
===Available Sources:=== | |||
====Vectors:==== | |||
*velocity: Velocity vector | |||
*weapon: Current weapon aim vector | |||
*target: Vector to current target | |||
====Scalar:==== | |||
*altitudeAGL: Above ground level altitude (m) | |||
*altitudeASL: Above sea level altitude (m) | |||
*speed: Speed (m/s) | |||
*vspeed: Vertical speed (m/s) | |||
*targetDist: Distance to current target | |||
*rpm: Current engine rpm (0..1) | |||
*fuel: Fuel tank state (0..1) | |||
===Available Bone Types:=== | |||
*fixed: Non moving bone | |||
*linear: Linear moving bone | |||
*rotational: Rotating bone | |||
*vector: Vector bone | |||
*ils: Instrument landing system | |||
*horizon: Artifical horizon | |||
===Available Draw Types:=== | |||
*group: If no type is defined, type is assumed to be group | |||
*line: Drawing a line | |||
*text: Drawing text | |||
Available | ===Available Conditions:=== | ||
====Aircraft:==== | |||
*on: Engine on | |||
*ils: Gear down | |||
*mgun: Current weapon is a mgun | |||
*missile: Current weapon is a missile | |||
====Landvehicles:==== |
Revision as of 14:52, 30 April 2006
Introduction:
The idea: 2D elements animated by bones, used for displays inside vehicles.
Main Structure:
Add class MFD to class cfgVehicles.Yourvehicle.
Subclasses of MFD you can name as you want.
class MFD { class MFD1 {...}; class MFD2 {...}; ... };
Optional.
with class MFD1 of the following structure:
class MFD1 { topLeft = "HUD LH"; //Those 3 points define the displayarea. These topRight = "HUD PH"; //points need to be present in model of vehicle. bottomLeft = "HUD LD"; borderLeft = 0.05; //Offsets used to finetune the actual displayarea. borderRight = 0.05; //The values can vary from 0 - 1. borderTop = 0.02; borderBottom = 0.1; color[]={0,1,0,0.1}; //Obsolete, done over color values in class Draw, //but at the moment still required. class Bones //List of all bones { ... }; class Draw //List of all drawingmethods { ... }; };
Class Bones:
All bones that are used for positioning and animating of drawings.
Defined positions are relative to position the bone is binded to (by default {0,0} of display area).
Codesamples for each possible bone, with all needed values:
class Bones { class Fixed { type = fixed; pos[] = {0.05,0.9}; }; class Linear { type = linear; source = fuel; min = 0; //Min value this bone can display max = 1; //Max value this bone can display minPos[] = {0.5,0.2}; maxPos[] = {0.5,0.5}; }; class Rotational { type = rotational; source = targetDist; center[] = {0,0}; min = 100; max = 3000; minAngle = -120; maxAngle = +120; }; class Vector { type = vector; source = velocity; pos0[] = {0.5,Pos0Center}; //Position of 0-degree dive line pos10[] = {0.5+0.9,Pos0Center+0.7}; //Position of 10 degree bank and }; //10-deg dive (to adjust scale) class ILS { type = ils; pos0[] = {0.5,0.4}; //Position when centered pos3[] = {0.7,0.6}; //Position when 3-degree off in both directions }; class Horizont { type = horizon; pos0[] = {0.5,0.27}; //Position of 0-degree dive line pos10[] = {0.5+0.9,3.4}; //Position of 10 degree bank and 10-degree //dive (used to adjust scale) angle = 0; //Horizon angle to which this line }; //corresponds to };
Class Draw:
The class Draw is a "group", which consist of other groups or classes.
Every group can have its own alpha, color[], clipTL[], clipBR[] and condition values, which will be valid for all classes/groups inside.
Format for a point (for points[], pos[], right[] and down[] entries):
{[bone1,] position1, blending weight1[, [bone2,] position2, blending weight2]...}
entries with [] are optional.
Points directly defined after each other are linked by a line, in case you don't want to link place an empty point {} between those points.
class Draw { alpha = 0.8; color[] = {0.2,1,0.1}; clipTL[] = {0.0,0.05}; //Defines the space in which the bone is drawn clipBR[] = {1.0,0.90}; //TL = Top Left, BR = Bottom Right condition = "on"; class Line { type = line; points[] = {{Bone1,1},{Bone2,1}}; }; class Text { type = text; align = left; scale = 1; //Text size, obsolete (but still required) source = speed; sourceScale = 3.6; //Convert from m/s to km/h pos[]={SpdMove2,{-0.05,-0.03},1}; //pos[],right[],down[] define the right[]={SpdMove2,{0.01,-0.03},1}; //box (size) of the first letter. down[]={SpdMove2,{-0.05,0.03},1}; }; };
Short Reference:
Available Sources:
Vectors:
- velocity: Velocity vector
- weapon: Current weapon aim vector
- target: Vector to current target
Scalar:
- altitudeAGL: Above ground level altitude (m)
- altitudeASL: Above sea level altitude (m)
- speed: Speed (m/s)
- vspeed: Vertical speed (m/s)
- targetDist: Distance to current target
- rpm: Current engine rpm (0..1)
- fuel: Fuel tank state (0..1)
Available Bone Types:
- fixed: Non moving bone
- linear: Linear moving bone
- rotational: Rotating bone
- vector: Vector bone
- ils: Instrument landing system
- horizon: Artifical horizon
Available Draw Types:
- group: If no type is defined, type is assumed to be group
- line: Drawing a line
- text: Drawing text
Available Conditions:
Aircraft:
- on: Engine on
- ils: Gear down
- mgun: Current weapon is a mgun
- missile: Current weapon is a missile