Jump to content

Recommended Posts

Hi all,

I decided to give  some time on existing Navy assets in community, even if Arma is much more a Land force milsim,... with few air assets.

First of all, BI has produced:

- the CVN Freedom, an object not really dynamic, but stated as a "dynamic airport" with some added components as radar or AA defenses from BI, but also cats and arresting wires.

- the FA 18 Black Wasp II , the only aircraft with a tail hook (mandatory if you want to stay aboard 😉)

 

On the other hand, the community produced, at least:

- the USS Nimitz, unfortunately also a "static dynamic airport", but with much more possibilities (moving excepted) than the USS Freedom,

- many outstanding mods, with plenty of aircraft, but for Navy, so planes with tail hook, the award is for Unsung one. In fact, I'm not sure you will find any other mod with Navy jets and planes able to land on deck of a carrier. After that... some mods are worth the trial, sometimes with better aerodynamics and realism: RHS, IFA3, CUP...

 

Why all aircraft carrier are static? Probably make them sailing and able to recover some played (or AI) aircraft is far too complex.(We are not on DCS). The Vehicle In Vehicle possibility (since Apex) is for transportation but doesn't really meet the requirement for deck handling.

 

Can we make them move (for a scenery or an attack by enemy)? Yes, at least for CVN USS Freedom.

Here is a little code I wrote for a pattern. The CVN start a leg of x seconds, turns left or right, and so on. The position is at the first leg start, choose the orientation of the pattern (no matter the orientation of the object (Land_Carrier_01_base_F) in editor, the leg duration (in sec.) , and the direction of the turn (right = true). This pattern is optimized for 60FPS which make it U-turn in 5 minutes (fast but realistic) and move the CVN at 60 km/h (roughly). I'd rather write 32 knots.


CVN PATTERN (CVN1 is the name of the BI aircraft carrier)

MGI_CVN_PATTERN = {
  params [["_CVN",objNull],["_firstDir",0],["_leg",300],["_rightTurn",TRUE]];
  if (!isServer) exitWith {};
  _CVN setdir ((_firstDir + 180) mod 360);
  _CVN setVariable ["CVNPattern",[_firstDir, getDir _CVN]];
  _CVN setVariable ["CVNTrueDir",_firstDir];
  _CVN setVariable ["CVNTimer",0.1 - diag_tickTime];
  ["movingCarrier","onEachFrame",
    {
      private _CVN = _this param [0,objNull];
      private _leg = _this param [1,300];
      private _rightTurn = _this param [2,TRUE];
      private _dir = _CVN getVariable "CVNTrueDir";
      private _t = _CVN getVariable "CVNTimer";
      _CVN setdir ((_dir + 180) mod 360);
      _CVN setPosWorld ASLToATL  (_CVN getpos [0.3,_dir]);
      [_CVN] call BIS_fnc_Carrier01PosUpdate;
      if (((diag_tickTime + (_CVN getVariable "CVNTimer")) mod _leg) < 0.1) then {
        _CVN setVariable ["CVNTimer", - diag_tickTime];
        _CVN setVariable ["CVNTrueDir",_dir + ([-0.01,0.01] select _rightTurn)];
        if (abs((360 +(_CVN getVariable "CVNTrueDir") mod 360) mod 360 - (_CVN getVariable "CVNPattern")#1) < 0.5) then {
          _CVN setVariable ["CVNTrueDir",(_CVN getVariable "CVNPattern")#1];
          reverse (_CVN getVariable "CVNPattern");
          _CVN setVariable ["CVNTimer",0.1 - diag_tickTime];
        };
      };
     },
    [_CVN,_leg,_rightTurn]
  ] call bis_fnc_addStackedEventHandler;
};

[CVN1,45,120,FALSE] call MGI_CVN_PATTERN;

So, the dynamic airport starts to be dynamic.

 

I added also the rescue helicopter "pedro" , following the CVN. You can take control on it, or let it do his job. It takes few seconds to be on station, at start.

 

PEDRO RESCUE:

 

MGI_rescuePedro = {
  params [["_helo",objNull],["_CVN",objNull]];
  if (!isServer or [_helo,_CVN] findIf {isNull _x} > -1) exitWith {}; currentPilot _helo disableAI "radioProtocol";
  _helo setdir (getdir _CVN +180);
  _helo setpos (_CVN modelToWorld [200,0,35]);
  _helo flyInHeight 30;
  _helo flyInHeightASL [50,50,50];
  [_helo,_CVN] spawn {
    params ["_helo","_CVN"];
    waitUntil {!isNil{_CVN getVariable "CVNTrueDir"} or !alive _helo};
    while {alive _helo} do {
      _dir = _CVN getVariable "CVNTrueDir";
      _helo move (_CVN modelToWorld [200,-400,35]);
      _helo limitSpeed (diag_fps * (1+ (0.005 * ((_helo distance2D (expectedDestination _helo #0))-500))));
      sleep 5
    }
  }
};
 
[this,CVN1] call MGI_rescuePedro;

 

What about deck landing?

You can test an approach, even a touch, but you can't stay aboard as for any other moving objects. Now, for the fun you can attach the jet on deck. I did a little trigger, itself attached to the CVN, but that is not really sexy.

 

What about USS Nimitz (mod)?

Unfortunately, I didn't succeed in making it sail properly... The result is a full flush deck, as the bridge dives... No time for workaround relative positions of all the parts.

 

So, we are still far from a realistic Navy ambiance. For example, the main tool for a deck landing: the Optical Landing System (OLS) is missing.

In a second step, I will comment the airplane simulation. I'm not a modder but there are some tips which could improve the game playability and immersion. That's not incompatible.

 

Have fun. All comments and remarks welcome as usual.

Pierre

  • Like 4
  • Thanks 1

Share this post


Link to post
Share on other sites

Awesome work Pierre!

Vanilla Navy assets are in need of attention and development from the community, and you are leading the way. I've been using the carrier a lot in my missions, and your input is a very useful addition.

Looking forward to the plane's part!

  • Like 1

Share this post


Link to post
Share on other sites

This looks really cool, thanks for putting in the time, and effort to make the naval assets come to life, and be more immersive. 

  • 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

×