Jump to content
reyhard

Jets - HUD improvements

Recommended Posts

Anybody knows whether it is possible to add a simple static text to HUDs of all vanilla and moded planes without destroying their existing HUDs?

 

Share this post


Link to post
Share on other sites

Not sure on that one.  I would assume its possible if you pull the inheritence from the parent class and just make another class MFD referencing the Parent class.  For Example adding a G Meter

 

Class MFD

       {

           Class Your_New_Hud: Inherited_HUD_Class

                   {

                     Class Bones{};

                     Class Draw

                       {

                        class CrzNumberG_symbol
                        {
                            type = "text";
                            source = "gmeter"
                            
                            sourceScale = 1;
                            sourcePrecision = 1;
                            align = "left";
                            scale = 1;
                            pos[] = {{0.81,0.16},1};
                            right[] = {{0.85,0.16},1};
                            down[] = {{0.81,0.2},1};
                        };

                      };

                    };

         }

 

Maybe just a thought..... Not actually tested 

 

 

Share this post


Link to post
Share on other sites

For anyone interested, community wiki was updated with some recent addition to MFD technology.

 

Two most important things are "texture" parameter for polygons (was actually introduced month ago) & simple expressions for color & alpha channel.

 

Texture parameter should be interesting to all those who were struggling in unfair fight versus class MFD dot game. By using polygon group it's possible to render texture in HMD. Bear in mind that caution is advised because using plenty of them in single cockpit my negatively affect your framerate.

 

Improvement to color & handling should solve issue brought by sammael page before. Basically, it's possible to adjust transparency and intensity of HUD/HMD depending on the daytime or usage of NVG, so your eyes are intact during the night while HUD still offers proper visibility during daytime. Yet to be implemented in A3 ;)

 

  • Like 6

Share this post


Link to post
Share on other sites

Thanks Reyhard for pulling me over to the forum, and for your help.  Currently working on a Custom HUD and upgrade all of the systems of 1.70 with my little project for our Group piggy backing off of Firewills UH-80R, as well as help from Kimi and others.

 

Also nice work on placing poly's and render textures.  Would make for some really cool start-up Sequences with the HUD when the aircraft is first powered on.   maybe like flashing a "software Version" or a quick Logo Flash from the mod developer then disappears. 

 

Was able to make certain features like a flashing "FUEL" low fuel warning, as well as a type of limited Ground Prox / GPWS to flash rapidly on the HUD when certain criteria are met AltitudeAGL< and speed.

Really love the new functions and conditions BI has put into the Class MFD system.

 

 

This is what I used.   Obviously not looking out as a projected path as a warning, but still a start.

 

condition =  "((30-altitudeAGL) min 1) * ((speed*3.6) > 50)";
                                color[] = {0,1,0.3};
                                blinkingPattern[] = {.2,.2};
                                blinkingStartsOn = 1;

 

 

 

Shrike

 

111_SOG_Shrike_Signature.png

 

  • Like 1

Share this post


Link to post
Share on other sites

If I wanted to put a small circle with a dot in the middle for the AH-9 Pawnee for aiming, how would I do this?

 

thanks,

Reed

Share this post


Link to post
Share on other sites

@reed

Try this in your class MFD,  I still stink at circles but this might give you a nice Recticle cross.

Class MFD
{

class BASE_HUD_1
            {
                topLeft = "HUD_top_left";
                topRight = "HUD_top_right";
                bottomLeft = "HUD_bottom_left";
                borderLeft = 0;
                borderRight = 0;
                borderTop = 0;
                borderBottom = 0;
                color[] = {0,1,0.3};//color[] = {0.15,1,0.15,1};
                enableParallax = 1;//0
                class Bones{};

                class Draw{};

                helmetMountedDisplay = 1;
                helmetPosition[] = {-0.04,0.04,0.1};
                helmetRight[] = {0.08,0,0};
                helmetDown[] = {0,-0.08,0};

           };

 

 

          class AirplaneHUD_Mini: BASE_HUD_1
            {
                turret[] = {-2};
                class Bones
                {
                    class WeaponAim
                    {
                        type = "vector";
                        source = "impactpointtoview";
                        pos0[] = {0.5,0.5};
                        pos10[] = {0.734,0.73};
                    };
                };
                class Draw
                {
                    alpha = 1.0;
                    color[] = {0.15,1.0,0.15,1.0};
                    condition = "mGun";
                    class Static
                    {
                        type = "line";
                        width = 3.0;
                        points[] = {{"WeaponAim",1,{-0.02,0.0},1},{"WeaponAim",1,{-0.01,0.0},1},{},{"WeaponAim",1,{0.01,0.0},1},{"WeaponAim",1,{0.02,0.0},1},{},{"WeaponAim",1,{0.0,-0.01},1},{"WeaponAim",1,{0.0,-0.02},1},{},{"WeaponAim",1,{0.0,0.01},1},{"WeaponAim",1,{0.0,0.02},1},{}};
                    };
                    class GunnerNumber
                    {
                        type = "text";
                        source = "static";
                        text = "GUN";
                        sourceScale = 0.001;
                        align = "center";
                        scale = 1;
                        pos[] = {"WeaponAim",{-0.002,-0.07},1};
                        right[] = {"WeaponAim",{0.045,-0.07},1};
                        down[] = {"WeaponAim",{-0.002,-0.03},1};
                    };
                };
            };

};

 

 

 

 

 

 

 

 

Hat tip to kimi

 

Shrike

 

 

111_SOG_Shrike_Signature.png

 

Share this post


Link to post
Share on other sites

Reyhard,


Experimenting with the Poly Drawing of paa files and logos.


Anything I am doing wrong here ?  does it depend on the parent dimensions and size of the paa ? are they limited to a certain size ?

 

Dont worry about the structure but the meat of the class is it limited to certain things alpha or size vs size of the image.paa ? 

 

Thanks

 

Shrike

 


111_SOG_Shrike_Signature.png

class MFD
{

class Polytest_main
            {
                topLeft = "HUD_top_left";
                topRight = "HUD_top_right";
                bottomLeft = "HUD_bottom_left";
                borderLeft = 0;
                borderRight = 0;
                borderTop = 0;
                borderBottom = 0;
                color[] = {0,1,0.3};
                helmetMountedDisplay = 1;
                helmetPosition[] = {-0.0375,0.0375,0.1};
                helmetRight[] = {0.075,0.0,0.0};
                helmetDown[] = {0.0,-0.075,0.0};
                class Bones{};
                class Draw{};
};

class PolygonTest: Polytest_main
                    {
                        condition = "rpm<800";
                        color[] = {0.082,0.408,0.039}; // use to define color
                        class Polygon
                        {
                            type    = "polygon";
                            texture = "fir_ghosthawk_acc\images\mod.paa"; // only alpha channel will be used for drawing
                            points[] = // space where texture should be drawn
                            {
                                {{0,0.1},1},
                                {{1,0.1},1},
                                {{1,1},1},
                                {{0,1},1}
                            };
                        };
                    };
};

 

Share this post


Link to post
Share on other sites

@shrike88 - it need to be inside draw class as a all other elements that rendered on MFD/HMD/HUD

  • Like 1

Share this post


Link to post
Share on other sites

Thanks for the Quick response,  I just simplified it for the forum thread and wanted to condense it.  It is in the Draw class with other items that work .  Sent you a PM with it.  Need more Coffee

 

Thanks

 

Shrike

Share this post


Link to post
Share on other sites

Hi there. I would like to make a suggestion (havnt been following the thread but i was directed to post this suggestion here). The new huds are really nice but my only problem with them is that you cant change the colors of it. For people who are colorblind the hud display is way to Bright when following enemy planes in air (hud vs sky). Its like the ccip gets ivisible. So my suggestion is either make it customizable to change colors or put in some more green tone so it gets clearer to see in dog fights. I Think its a pretty important feature coming from a pro pilot :). Keep up the good work

Share this post


Link to post
Share on other sites

I was really surprised to find out the Jets DLC doesn't have an LCOSS (Lead Computing Optical Sights System) for dogfight gun targeting. The current lead indicator is inconvenient, unclear, unfriendly and above all unrealistic (much for the same reasons). Having to guide the plane's bore-sight into the lead indicator to ensure a hit is really not how it's suppose to be done and a disappointing implementation for what should have been the most fun activity for jets - Dogfighting. Not only that, the current implementation does not really work because having to guide the W symbol into the lead indicator leaves one with the question - what part of the W is actually the boresight point? As it's a rather large symbol.

 

Please, implement what's obvious and really required - an LCOSS system. See example below of how it should look like. Simulators since the 80's had that, it's really a must have in my opinion. TLDR: put the target in the sight and shoot, instead of the current - put the big-fat-larger-than-the-target-symbol in the other symbol and shoot.

 

  • Like 3

Share this post


Link to post
Share on other sites

Guys, can I use multiple sources, for example I want to add estimated time to waypoint? I want to use sources speed and wpdist to calculate estimated time. Is that possible?

Share this post


Link to post
Share on other sites

giphy.gif

New mfd sources: impactpointtoviewweaponRelative & impactpointweaponRelative - available soon on devbranch

Requires target lead (BCTargetLead aka 4) in ballisticsComputer bitflags list

 

 

 

On 20.06.2017 at 2:39 PM, czechu777 said:

Guys, can I use multiple sources, for example I want to add estimated time to waypoint? I want to use sources speed and wpdist to calculate estimated time. Is that possible?


I'm afraid it's not possible right now

 

@Alacazain - there is possibility in engine to have custom colors in HUD yet it's not utilized in vanilla assets at the moment. I might add "user" controllers for colors to HUDs soon, so at least modders will be able to play with it a little bit before some proper solution arrives. 

 

  • Like 6

Share this post


Link to post
Share on other sites
On 22.06.2017 at 9:17 AM, reyhard said:

I'm afraid it's not possible right now

Thank you for clarifying.. I got another question. Would you be so kind to explain me what to do, to make target hud match the target in the world? Now it just kinda follows it, but when I turn it goes wherever it wants. I know I have to edit pos0 and pos10, but how?

Share this post


Link to post
Share on other sites
On 06/23/2017 at 10:20 AM, czechu777 said:

Thank you for clarifying.. I got another question. Would you be so kind to explain me what to do, to make target hud match the target in the world? Now it just kinda follows it, but when I turn it goes wherever it wants. I know I have to edit pos0 and pos10, but how?

Im afraid there is no easy way to calculate it except trail & error method and using macros that I mentioned here few times

  • Like 1

Share this post


Link to post
Share on other sites
14 hours ago, czechu777 said:

What do you guys think about my HUD? 

 

 

Czechu, that HUD looks amazing!

 

On a side note: has anyone been able to use custom user conditions? (user0...user50)

Share this post


Link to post
Share on other sites
16 hours ago, czechu777 said:

What do you guys think about my HUD? 

 

 

Looks awesome (BI take note.. ;)).

 

What is the steerpoint information based on? Shift click left mouse or editor waypoint?

Share this post


Link to post
Share on other sites
5 hours ago, jone_kone said:

 

Looks awesome (BI take note.. ;)).

 

What is the steerpoint information based on? Shift click left mouse or editor waypoint?

On that and on the waypoint given in mission editor. If the waypoint is from mission editor it will be indexed (001,002,003 etc), but if you have waypoint made by shift+left mouse it will display "C" for Custom.

  • Like 1

Share this post


Link to post
Share on other sites
20 hours ago, czechu777 said:

I made a tool for creating circles I will post it here soon.

are you aware that you can create circles pretty easily with macros?

 

https://pastebin.com/RT2qTxq1

beside that macro file (which I include as .hpp in root folder) you need to define pos0 & pos10 values which are changing per each type of HUD due to different sizes of screens & different distances between head & HUD.

 

// file that I posted on pastebin
#include "cfgHUDMacros.hpp"

#define PosX0Center 0.50
#define PosY0Center 0.27
#define PosYCenterHorizont 0.53
#define SizeX10deg 0.88
#define SizeY10deg 0.74

[...]
class Draw
{
[..]

	class Circle
	{
		type = "line";
		points[] =
		{
			CIRCLE_BIG(ImpactPoint,0.2)
		};
	};
	class Ring
	{
		type = "line";
		points[] =
		{
			POINT_MARK(ImpactPoint,0.2,110),
			POINT_MARK(ImpactPoint,0.2,105),
			POINT_MARK(ImpactPoint,0.2,100),
			POINT_MARK(ImpactPoint,0.2,95),
			POINT_MARK(ImpactPoint,0.2,90),
			POINT_MARK(ImpactPoint,0.2,85),
			POINT_MARK(ImpactPoint,0.2,80),
			POINT_MARK(ImpactPoint,0.2,75),
			POINT_MARK(ImpactPoint,0.2,70),
			POINT_MARK(ImpactPoint,0.2,65),
			POINT_MARK(ImpactPoint,0.2,60),
			POINT_MARK(ImpactPoint,0.2,55),
			POINT_MARK(ImpactPoint,0.2,50),
			POINT_MARK(ImpactPoint,0.2,45),
			POINT_MARK(ImpactPoint,0.2,40),
			POINT_MARK(ImpactPoint,0.2,35),
			POINT_MARK(ImpactPoint,0.2,30),
			POINT_MARK(ImpactPoint,0.2,25),
			POINT_MARK(ImpactPoint,0.2,20),
			POINT_MARK(ImpactPoint,0.2,15),
			POINT_MARK(ImpactPoint,0.2,10),
			POINT_MARK(ImpactPoint,0.2,05),
			POINT_MARK(ImpactPoint,0.2,00),
			{},
			#define MARK_SMALL 0.19
			#define MARK_BIG 0.18
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,110),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,100),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,90),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,80),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,70),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,60),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,50),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,40),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,30),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,20),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,10),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,00),{}
		};
	};
};

 

First is simple circle & second one is half circle with marks as seen on this picture below (without cross & rest of elements ofc)

 

As for HUD, seems a little bit too cluttered & I see on 1st pic that horizon is getting twisted - if you are using macros for them then it's matter of tweaking pos10 values. Overall, not bad ;)

 

On 3.07.2017 at 3:53 AM, kimi_uy said:

On a side note: has anyone been able to use custom user conditions? (user0...user50)

I've been using it recently & beside crash, that was fixed recently, everything seems to be working alright now. Is there something you need to know?

  • Like 1

Share this post


Link to post
Share on other sites
8 hours ago, reyhard said:

are you aware that you can create circles pretty easily with macros?

 

https://pastebin.com/RT2qTxq1

beside that macro file (which I include as .hpp in root folder) you need to define pos0 & pos10 values which are changing per each type of HUD due to different sizes of screens & different distances between head & HUD.

 


// file that I posted on pastebin
#include "cfgHUDMacros.hpp"

#define PosX0Center 0.50
#define PosY0Center 0.27
#define PosYCenterHorizont 0.53
#define SizeX10deg 0.88
#define SizeY10deg 0.74

[...]
class Draw
{
[..]

	class Circle
	{
		type = "line";
		points[] =
		{
			CIRCLE_BIG(ImpactPoint,0.2)
		};
	};
	class Ring
	{
		type = "line";
		points[] =
		{
			POINT_MARK(ImpactPoint,0.2,110),
			POINT_MARK(ImpactPoint,0.2,105),
			POINT_MARK(ImpactPoint,0.2,100),
			POINT_MARK(ImpactPoint,0.2,95),
			POINT_MARK(ImpactPoint,0.2,90),
			POINT_MARK(ImpactPoint,0.2,85),
			POINT_MARK(ImpactPoint,0.2,80),
			POINT_MARK(ImpactPoint,0.2,75),
			POINT_MARK(ImpactPoint,0.2,70),
			POINT_MARK(ImpactPoint,0.2,65),
			POINT_MARK(ImpactPoint,0.2,60),
			POINT_MARK(ImpactPoint,0.2,55),
			POINT_MARK(ImpactPoint,0.2,50),
			POINT_MARK(ImpactPoint,0.2,45),
			POINT_MARK(ImpactPoint,0.2,40),
			POINT_MARK(ImpactPoint,0.2,35),
			POINT_MARK(ImpactPoint,0.2,30),
			POINT_MARK(ImpactPoint,0.2,25),
			POINT_MARK(ImpactPoint,0.2,20),
			POINT_MARK(ImpactPoint,0.2,15),
			POINT_MARK(ImpactPoint,0.2,10),
			POINT_MARK(ImpactPoint,0.2,05),
			POINT_MARK(ImpactPoint,0.2,00),
			{},
			#define MARK_SMALL 0.19
			#define MARK_BIG 0.18
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,110),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,100),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,90),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,80),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,70),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,60),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,50),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,40),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,30),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,20),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_SMALL,10),{},
			CIRCLE_MARK(ImpactPoint,0.2,MARK_BIG,00),{}
		};
	};
};

 

First is simple circle & second one is half circle with marks as seen on this picture below (without cross & rest of elements ofc)

 

As for HUD, seems a little bit too cluttered & I see on 1st pic that horizon is getting twisted - if you are using macros for them then it's matter of tweaking pos10 values. Overall, not bad ;)

 

I've been using it recently & beside crash, that was fixed recently, everything seems to be working alright now. Is there something you need to know?

Somehow I missed that :O I needed to have a circle so I created simple cpp tool and then the trial and error method. 

This is my first HUD so I dont expect it to be amazing, but I like it :) Thanks for help and opinion :)

Share this post


Link to post
Share on other sites
On 4/7/2017 at 2:50 AM, reyhard said:

 

I've been using it recently & beside crash, that was fixed recently, everything seems to be working alright now. Is there something you need to know?

 

I know how to put them in the class MFD as conditions, but I don't know how to actually add the script to a vehicle.

 

Another thing: I've noticed now the HMDs are "slaved" to the player's zoom level, making some elements (all vectors) move within the HMD. It does keep the same ratio, so the symbology is still accurate, but it changes it's size.

For example, if you use a static HUD + HMD, the size of the symbology of the HUD will remain but the symbology of the HMD will shrink down.

 

Look at the pitch ladder and heading carat in the heading tape (^)

72e4012f71885305226e6cc9966af343.pngfe281fdcd0d4b8dc951b8458768d33d4.png

Now if I zoom in, the vector for the horizon and waypoint changes the ratio.

This makes the pitch ladder not work as intended, it's an attitude indicator that's represented in the HMD as an instrument, it shouldn't be slaved to the real horizon nor it should change ratio. :'(

 

Another example for the pitch ladder:

324367d32d7fcbec562e59ac0bd49b9c.png0367c3375bfefa2c71904b47da1f3bbd.png

Share this post


Link to post
Share on other sites
On 5.07.2017 at 6:33 PM, kimi_uy said:

I know how to put them in the class MFD as conditions, but I don't know how to actually add the script to a vehicle

you can take a look at Black Wasp tail hook script
https://community.bistudio.com/wiki/setUserMFDvalue

a3\Functions_F_Jets\Functions\Aircraft\fn_aircraftTailhook.sqf

_plane SetUserMFDvalue [0,0];

 

As for horizon shrinking I will take a look.

  • Like 1

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×