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="Sea grey">class MFD1 {...}; | ||
class MFD2 {...}; | class MFD2 {...}; | ||
... | ... | ||
Revision as of 14:53, 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 points need
topRight = "HUD PH"; //to be present in model of vehicle.
bottomLeft = "HUD LD";
borderLeft = 0.05; //Offsets used to finetune the actual displayarea. The values
borderRight = 0.05; //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-degree dive (used 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 the 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, incase 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 TL = Top Left BR = Bottom Right
clipBR[] = {1.0,0.90};
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[],right[],down[] define the box (size) of the first letter.
pos[]={SpdMove2,{-0.05,-0.03},1};
right[]={SpdMove2,{0.01,-0.03},1};
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: instrumented landing system
- horizon: artifical horizont
Available Draw Types:
- group: if no type is defined, type is assumed to be group
- line: drawing a line
- text: drawing text
Available Conditions:
Aircrafts: *on: engine on *ils: gear down *mgun: current weapon is a mgun *missile: current weapon is a missile Landvehicles: