Jump to content
Sign in to follow this  
mankyle

The answer you were waiting for: carriers are possible in arma 3

Recommended Posts

I have been tinkering with Shipx and submarinex simulation classes and I have finally enabled two examples, one a ship and another a submarine, that work in arma 3.

This morning I was doing some tests with the ship and landed a chopper on it. And amazingly, the chopper didn't fall when the ship started moving!!!!

Carriers and moving frigates with landing pads are possible.

you must add a new geometry LOD, write in its type 4e13 and enable the new simulation class (shipx or submarinex) in the config.

The main problem is adjusting the mass in the GEO LOD. It must be correctly balanced and adjusted, otherwise the ship sinks or gets upside down. It has taken me two days to get a ship not to sink.

The submarinex simulation class requires the same, but it has come with another problem.

The engine calculates the position of the driver and rest of the cargo as under the surface, so the man entities die drowned unless they are divers. More work to do!!!

I will try to release some examples soon

EDIT: I don't know why but if I follow with other model what I have done with these examples I cannot get them to work. Now in this very moment only the submarine works :(

Edited by mankyle

Share this post


Link to post
Share on other sites

Im going to spend rest of my life to make carrier now.

Share this post


Link to post
Share on other sites

If there would be a "Thank you" button, I would click it now!

Share this post


Link to post
Share on other sites

+1 and i had a friend testning the concept for me yesterday... Too little weight makes it a ballon so our submarine flew away :)

Share this post


Link to post
Share on other sites
Carriers and moving frigates with landing pads are possible.

Great to hear mate.

Hopefully the proper tools or BIKI will make setup much less a random success.

Share this post


Link to post
Share on other sites

got one small boat working perfectly with physx.

Started on a bigger corvette with helicopter pad, it worked fine to land on it when static and few waves. The chopper moved a bit but maintained the "overall" position, however it was impossible on a moving ship. It just went off, not too different from arma2.

Now, not sure what you used, but I had a roadway that was slightly above the geo lod (i think, not looking at the model right now)..

So you did you use roadway?

Share this post


Link to post
Share on other sites

good news! Would it work for a plane (moving passengers inside while the plane is moving)?

Share this post


Link to post
Share on other sites

GranQ in the beginning I didn'use any RLOD. That is only necessary for the man class it seems. After that I added an RLOD. I will try to do a video with the ship I created. I have also compiled an explanation of what the config.cpp parameters do. Specifically for shipx and submarinex simulation classes.

I will also post the example. Bear in mind that both objects (in this case chopper snd ship) must belong to a phisx class. (I.e. they must use a simulationx class).

Hope it helps. Btw GranQ, and Gnat i will send you a revised example of the collins class submarine with a revised config and almost functional.

EDIT: I have repeated the experiment and depending on the mass of the transported vehicle the results are different. For example, with a Hummingbird there was no problem. With a Ghosthawk it happened what you said. And I couldn´t do with the Green transport helicopter.

More work to do!!!

Edited by mankyle

Share this post


Link to post
Share on other sites

hm, strange I used the hummingbird, will also try a few different settings tonight.

My friend totally trolled me btw by saying something with, "did you try simulation=carrierx".. I had updated my code, packed the pbo and checked it ingame (didn't work at all of course) before realized it was just something he said.. shame on you for teasing me subroc ;)

but it would had been awesome with a class like that. :)

Will also post some video today I hope.

Share this post


Link to post
Share on other sites

An open example would be the best present for all of us I believe ... :)

Share this post


Link to post
Share on other sites

download the swedish forces pack 0.1.8 and unpbo the sfp_gruppbat.pbo.

That works with physx and isn't binarized.

EDIT. WIthout roadway, I have less problem with the chopper moving, however the chopper says its moving and I ain't allowed to get out.

Edited by granQ

Share this post


Link to post
Share on other sites
download the swedish forces pack 0.1.8 and unpbo the sfp_gruppbat.pbo.

That works with physx and isn't binarized.

EDIT. WIthout roadway, I have less problem with the chopper moving, however the chopper says its moving and I ain't allowed to get out.

Thanks a lot for this info ... I didn't knew this "resource".

Share this post


Link to post
Share on other sites

Hmm, interesting stuff, might have to check it out... though I haven't really touched modding the game in a couple years. I did hop on A3 today though to try something that popped into my head regarding this, that never occured to me before. It worked better than expected, but unfortunately still not good enough.

Anyway what I tried with my carrier was having a loop and inside of it, figuring out the offset of the carrier since the last time the code ran, then applying that offset to the player. It works, but is quite jittery - at least on my carrier. I also tried it on the "bridge" Training Object, and it was very smooth looking. It also makes going up/down stairs more or less a random (and low) chance of success.

This was mostly just for experimenting and I knew it wouldn't be a "clean" solution, but if anyone is interested here's the small script. Just need a "ship" and "man" object.

shiporig = getposasl ship select 1;
ship0 = getposasl ship select 0;
ship1 = getposasl ship select 1;
ship2 = getposasl ship select 2;
int = 0;

oneachframe{
ship0D = (getposasl ship select 0) - ship0;
ship1D = (getposasl ship select 1) - ship1;
ship2D = (getposasl ship select 2) - ship2;

hintSilent format["Total: %1\nFrame: %2\nCount: %3", ship1 - shiporig, ship1D * 100, int];

man setPosasl[(getposasl man select 0) + ship0D, (getposasl man select 1) + ship1D, getposasl man select 2];
ship0 = getposasl ship select 0;
ship1 = getposasl ship select 1;
ship2 = getposasl ship select 2;

int = int + 1;
//sleep 0.02;
}

Also for you guys experimenting with this stuff, would it be helpful if I made a portion of the nimitz source files available to you to test with? That way you had something large and meant for it, in case you don't already. Just throwing the offer out.

Share this post


Link to post
Share on other sites

you must add a new geometry LOD, write in its type 4e13 and enable the new simulation class (shipx or submarinex) in the config.

Please excuse my ignorance but ... where exactly I must write the 4e13 in order to enable the second geometry lod ?

Share this post


Link to post
Share on other sites

take one of the BIS arma I sample models.

Open it up with Oxygen, nevermind the model, for example, one of the RHIBs.

Go to the Geometry LOD.

Select all and copy

create a new LOD, and when you get to the little window where you select what kind of LOD you want, just type 4313.

Copy there the GEO LOD, erase all proxies and reduce it to the bare minimum, just the Hull and little else and you are set.

Adjust then the config.cpp parameters and that's it

Share this post


Link to post
Share on other sites
take one of the BIS arma I sample models.

Open it up with Oxygen, nevermind the model, for example, one of the RHIBs.

Go to the Geometry LOD.

Select all and copy

create a new LOD, and when you get to the little window where you select what kind of LOD you want, just type 4313.

Copy there the GEO LOD, erase all proxies and reduce it to the bare minimum, just the Hull and little else and you are set.

Adjust then the config.cpp parameters and that's it

Now its clear ... thanks mate, appreciate your help.

Share this post


Link to post
Share on other sites

Well I've added a type 4e13 geometry lod removing the proxies and the most un-necessary objects ... I've changed the simulation to shipx into my config.cpp ... binarize the model ... and ... every time I'm trying to test my boat into game editor, I'm getting a CTD .... :(

Share this post


Link to post
Share on other sites
Well I've added a type 4e13 geometry lod removing the proxies and the most un-necessary objects ... I've changed the simulation to shipx into my config.cpp ... binarize the model ... and ... every time I'm trying to test my boat into game editor, I'm getting a CTD .... :(

For the moment binarizing doesn't work with thst extra LOD. Try loading the model without binarizing

Share this post


Link to post
Share on other sites

Is that a fact !! omg ... I thought that this is stable ... anyway thanks mate ;)

Share this post


Link to post
Share on other sites

@Jdog very cool!!! Nice to see that you have not entirely gave up on it. :D

@Gnat Do you gonna update & import NAVAL units to ARMA 3? ;)

Share this post


Link to post
Share on other sites

quick question on subs...I made a quick model of a sub, and I can get it to float and move without flipping over, but it WILL NOT submerge. Does it require a land contact LOD? What sort of weight did you use? I tried 1,000 and 1,000,000 and it never changed keel depth. Without a land contact lod it just floats a foot above the lowest part of the resolution lod. Adding a land contact LOD seems to change the depth but has strange effects on the sub, making it roll over on an arbitrary axis. How big was you example sub? Mine is 170m long.

Share this post


Link to post
Share on other sites

I have uploaded the Collins class submarine that uses submarinex simulation class.

http://www.freeuploadsite.com/uploads/13725721431.rar

There you have a working example.

Now, for the config:

The behaviour of the ship in the water does not depend anymore on the Landcontact points, but on the GEO and PHYSX LODs. The PHYSx LOD seems to represent the water displacement of the ship. If you put too much mass (a value over the displacement) the ship sinks. The PHYSx LOD must be similar in form and size, to the ship's hull. It must also follow the Geometry LOD rules (closed and convex) and must be composed of only one component (that's what BIS says in the VSB2 editing wiki)

GEO is very important. It has given me a lot of problems. You must balance the mass in all axis (plural axes? ) and keep the weight down so the ship doesn't turn and sinks. In subs it is specially important because it controls how it moves once submerged and how it mantains depth

airCapacity = 1209600;

Quite important for sumarines. Determines the time the crew inside the ship can be below the surface before dying suffocated for lack of air. It seems that when using class submarinex, the engine sets the crew as if they were below the water

verticalTurnCoef = 20.2;

This line seems to control the speed for ascending/descending.

waterSpeedFactor = 3.0;

No idea of what this does. I have tried a couple of values and I haven't seen changes

periscopeDepth = 15.5;

This is the depth the sub mantains when you activate the "Mantain periscope Depth" Action. It is important to know that for big models (not a SDV sized submarine) that this depth DOES NOT coincide with the depth marker in the left upper corner of the screen

idleRpm = 1000;

Selfexplaining

redRpm = 4000;

Idem

thrustDelay = 2;

Delay after we start executing a movement and the ship/submarine starts the actual movement

simulation = "submarinex";

o

simulation = "shipx";

PHYSx simulation classes

overSpeedBrakeCoef = 0.8;

Brake effectivity. If you follow VBS 2 explanations, this value is (overSpeedBrakeCoef*enginePower). The higher the value, the better it brakes

enginePower = 3278;

Engine power in HPs

engineShiftY = 2;

This lines tells where the engine applies the force related to the origin of the model. Esentially what one mus calculat is the distance in the vertical axis between the Y value of center of mass of the model and the Y Value of the propeller, waterjet or whaterver moves the shipcuando pegamos un acelerón y valores positivos que se hunda. Negative values tend to make the bow rise when you accelerate and positive values tend to make it dive

waterLeakiness = 1000;

This parameter determines the quantity of water (M^3 x S) that will fill the volume of the PHYSx LOD per second. Tipically lower vaues for boats, higher for bigger ships. Modifies the sinking rate of a ship when this suffers damage.

waterResistanceCoef = 0.01;

Represents the resistance if the hull. The higher the value the higher the resistance. This affects acceleration and maximum speed.

waterLinearDampingCoefX = 10.0;

This value represents lateral movements produced by waves. Higher values will make the ship corner better and slide less to the sides.

waterLinearDampingCoefY = 1.2;

This one represents vertical movements depending on the waves. Higher values will modify how much the ship sinks/goes down depending on the waves. It can also affect the flotation line mantaining the ame Ship mass. Higher values will also make a ship sink slower

waterAngularDampingCoef = 8.0;

Smooth the angular movement in all axis, higher values will reduce swinging/swaying, but may cause strange behavior in turns/rolling over waves.

 rudderForceCoef = 12;
     rudderForceCoefAtMaxSpeed = 15;

How the rudder works. The higher the value the more the ship will turn, BUT the more it will incline when turning. Values to high could even make a ship turn upside down (and sink) when turning. If you are transporting non scripted vehicles the can easily fall if this value is set too high.

There are two values. The first one is for low speed (usually ships turn better when sailing faster than a certain speed) and the second one when going at MEDIUM or FAST speed.

      memoryPointsLeftWaterEffect = "waterEffectR";
     memoryPointsRightWaterEffect = "waterEffectL";
     memoryPointsLeftEngineEffect = "EngineEffectL";
     memoryPointsRightEngineEffect = "EngineEffectR";   

These are points in the memory LOD that represent the spawning points for water particle FX. The first ones represent bow FX, the last ones represent the foam generated by the engine propeller

BUF, that was long. I hope it helps, guys (and gals)

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
Sign in to follow this  

×