Jump to content
Sign in to follow this  
riouken

Amphibious Vehicle Config Example

Recommended Posts

Does anyone know of an Amphibious config example?

Share this post


Link to post
Share on other sites

in the config just add

canfloat = 1;

Add a physx LOD in the p3d and that's it

If it is a car (derivative of class car) you can adjust this value:

waterspeedcoef = 0.2;

it is this or something similar.

This line controls the maximun speed of the vehicle when it is floating in water as a coeficient of the overland speed. hope it helps

Share this post


Link to post
Share on other sites

Thanks, I have it floating, but it will not move in the water, the engine is running but it will not move in the water.

Share this post


Link to post
Share on other sites
Gnat;2591681']Maybe try adding these two MEMORY LOD points and this config code;

memoryPointsLeftEngineEffect = "EngineEffectL";
memoryPointsRightEngineEffect = "EngineEffectR";

Points must be below the waterline.

See related;

http://forums.bistudio.com/showthread.php?170549-ship-config-pointers

Thanks Gnat. But even with those it still will not move. It works fine on land, it floats great, just will not move or steer in the water.

Share this post


Link to post
Share on other sites

Do you have a BI example that DOES move ingame? Name?

If so, we can look at the AllInOne config to seem hints of what makes it tick ......

Share this post


Link to post
Share on other sites

No we are working to port the AAV from Arma 2 in to A3. Unfortunately there is only a wheeled amphibious veh. I'm unaware of any tracked ones.

Here is the config: (please excuse the formating im going to fix it later.)

   class AAV: Tracked_APC
   {
       scope = public;
       side=TWest;
       faction=BLU_F;
       displayName="AAVP7A1";
       vehicleClass = "Armored";
       model =\AAVB\AAV;
       icon="\AAVB\data\icomap_AAV_CA.paa";
       picture="\AAVB\data\AAV_CA.paa";
       mapSize = 9;
       accuracy=0.70;
       threat[]={1, 1, 0.3};
       armor=210;
       damageResistance = 0.01168;
       cost=4000000;
       maxSpeed=72;
       canFloat = true;
       supplyRadius = 5;
       wheelCircumference=2.001;


       hiddenSelections[] =
       {
           "Camo1",
           "Camo2"
       };
       hiddenSelectionsTextures[] =
       {
           "\aavb\data\aav_ext_co.paa",
           "\aavb\data\aav_ext2_co.paa"
       };


       cargoAction[] = {"passenger_generic01_leanleft", "passenger_apc_narrow_generic01", "passenger_apc_narrow_generic01", "passenger_apc_narrow_generic03", "passenger_apc_generic03", "passenger_apc_narrow_generic02", 


"passenger_generic01_foldhands", "passenger_generic01_leanright"};
       transportSoldier = 19;


       getInAction = GetInHigh; // driver
       getOutAction = GetOutHigh;
       driverAction = crew_tank01;
       driverInAction = AAV_Driver;


       driverForceOptics = 0;
       commanderUsesPilotView = true;
       driverOpticsModel = "\a3\weapons_f\reticle\Optics_Driver_01_F";
       /// PhysX part
       simulation = "tankX";
       enginePower = 650;
       maxOmega = 395;
       peakTorque = 4932;
       torqueCurve[] = {{0, 0}, {(1600/2640), (2650/2850)}, {(1800/2640), (2800/2850)}, {(1900/2640), (2850/2850)}, {(2000/2640), (2800/2850)}, {(2200/2640), (2750/2850)}, {(2400/2640), (2600/2850)}, {(2640/2640), (2350/2850)}};


       thrustDelay = 1;/// how much time does it take to get the full thrust (default 1), used to reduce initial wheel slipping
       clutchStrength = 160.0;
       fuelCapacity = 1885;
       brakeIdleSpeed = 2;/// speed in m/s below which braking is applied
       latency = 0;
       tankTurnForce = 600000; /// Random magic number, expected to be something like 11 x mass of vehicle
       // inwater check
       precision = 15;
       steerAheadSimul = 0.5;
       steerAheadPlan = 0.35;
       predictTurnPlan = 0.8;
       predictTurnSimul = 0.6;
       brakeDistance = 5.0;
       acceleration = 15;
       turnCoef = 3.75;
       overSpeedBrakeCoef = 0.2;
       waterLeakiness = 55.5;
       waterLinearDampingCoefY = 5;
       waterLinearDampingCoefX = 2.0;
       waterAngularDampingCoef = 1.2;
       waterResistanceCoef = 0.005;
       rudderForceCoef = 14;
       rudderForceCoefAtMaxSpeed = 18;
       waterEffectSpeed = 5;
       engineEffectSpeed = 5;
       waterFastEffectSpeed = 8;
       memoryPointsLeftWaterEffect = "waterEffectR";
       memoryPointsRightWaterEffect = "waterEffectL";
       memoryPointsLeftEngineEffect = "EngineEffectL";
       memoryPointsRightEngineEffect = "EngineEffectR";


       waterspeedcoef = 0.2;
       waterSpeedFactor = .50;
       // in water check ends 


       /// Gearbox and transmission
       idleRpm = 200; // RPM at which the engine idles.
       redRpm = 2990; // RPM at which the engine redlines.
       engineLosses = 5; // power losses on the engine's crank-shaft (before the gearbox) in Nm. (Multiplied by the gear ratio)
       transmissionLosses = 90; // power losses on wheel axis (in/after the gearbox) in Nm. (Constant)


       class complexGearbox {
           GearboxRatios[]    = {"R2",-1.5,"N",0,"D1",5.7,"D2",3.6,"D3",2.5,"D4",2.0,"D5",1.5,"D6",1.105,"D7",0.85};
           TransmissionRatios[] = {"High",13};
           gearBoxMode        = "full-auto"; //gearbox can be of type: full-auto (only requires 'W' or 'S'), auto (requires shift between drive and reverse), semi-auto, manual
           moveOffGear        = 1; // defines what gear an automatic or semi-automatic gearbox will move off from stationary in. 1 by default.
           driveString        = "D"; // string to display in the HUD for forward gears.
           neutralString      = "N"; // string to display in the HUD for neutral gear.
           reverseString      = "R"; // string to display in the HUD for reverse gears.
           transmissionDelay  = 0;
       };
       /// end of gearbox


class Wheels {
   class L2 {
       boneName = "wheel_podkoloL1";
       center   = "wheel_1_2_axis";
       boundary = "wheel_1_2_bound";
       damping  = 5.0;
       // tanks do not have steerable wheels
       steering = 0;
       /// We need to distinguish the side to apply the right thrust value
       side = "left";
       /// weight of the wheel is defined per wheel, it reduces overall mass of vehicle
       weight = 150;
       mass = 150;
       MOI = 27;
       latStiffX = 20;
       latStiffY = 200;
       longitudinalStiffnessPerUnitGravity = 100000;
       maxBrakeTorque = 45000;
       sprungMass = 7000.0;
       springStrength = 324500;
       springDamperRate = 50990; // good so far
       dampingRate = 0.1;
       dampingRateInAir = 8855.0;
       dampingRateDamaged = 10.0;
       dampingRateDestroyed = 10000.0;
       maxDroop = 0.15;
       maxCompression = 0.15;
   };
   class L3: L2 {
       boneName = "wheel_podkolol2";
       center   = "wheel_1_3_axis";
       boundary = "wheel_1_3_bound";
   };
   class L4: L2 {
       boneName = "wheel_podkolol3";
       center   = "wheel_1_4_axis";
       boundary = "wheel_1_4_bound";
   };
   class L5: L2 {
       boneName = "wheel_podkolol4";
       center   = "wheel_1_5_axis";
       boundary = "wheel_1_5_bound";
   };
   class L6: L2 {
       boneName = "wheel_podkolol5";
       center   = "wheel_1_6_axis";
       boundary = "wheel_1_6_bound";
   };
   class L7: L2 {
       boneName = "wheel_podkolol6";
       center   = "wheel_1_7_axis";
       boundary = "wheel_1_7_bound";
   };
   // rear left wheel, usually Idler or Drive Sproket
   // Note, this wheel may not always be touching the ground, but we need it anyway!
   class L9: L2 {
       boneName = "wheel_podkolol9";
       center   = "wheel_1_9_axis";
       boundary = "wheel_1_9_bound";
       sprungMass = 1500.0;
       springStrength = 37500;
       springDamperRate = 7500;
       maxDroop = 0;
       maxCompression = 0;
   };
   // front left wheel, usually Idler or Drive Sproket
   // Note, this wheel may not always be touching the ground, but we need it anyway!
   class L1: L2 {
       boneName = "";
       center   = "wheel_1_1_axis";
       boundary = "wheel_1_1_bound";
       sprungMass = 1500.0;
       springStrength = 37500;
       springDamperRate = 7500;
       maxDroop = 0;
       maxCompression = 0;
   };


   class R2: L2 {
       boneName = "wheel_podkolop1";
       center   = "wheel_2_2_axis";
       boundary = "wheel_2_2_bound";
       side = "right";
   };
   class R3: R2 {
       boneName = "wheel_podkolop2";
       center   = "wheel_2_3_axis";
       boundary = "wheel_2_3_bound";
   };
   class R4: R2 {
       boneName = "wheel_podkolop3";
       center   = "wheel_2_4_axis";
       boundary = "wheel_2_4_bound";
   };
   class R5: R2 {
       boneName = "wheel_podkolop4";
       center   = "wheel_2_5_axis";
       boundary = "wheel_2_5_bound";
   };
   class R6: R2 {
       boneName = "wheel_podkolop5";
       center   = "wheel_2_6_axis";
       boundary = "wheel_2_6_bound";
   };
   class R7: R2 {
       boneName = "wheel_podkolop6";
       center   = "wheel_2_7_axis";
       boundary = "wheel_2_7_bound";
   };
   // rear right wheel, usually Idler or Drive Sproket
   // Note, this wheel may not always be touching the ground, but we need it anyway!
   class R9: R2 {
       boneName = "wheel_podkolop9";
       center   = "wheel_2_9_axis";
       boundary = "wheel_2_9_bound";
       sprungMass = 1500.0;
       springStrength = 37500;
       springDamperRate = 7500;
       maxDroop = 0;
       maxCompression = 0;
   };
   // front right wheel, usually Idler or Drive Sproket
   // Note, this wheel may not always be touching the ground, but we need it anyway!
   class R1: R2 {
       boneName = "";
       center   = "wheel_2_1_axis";
       boundary = "wheel_2_1_bound";
       sprungMass = 1500.0;
       springStrength = 37500;
       springDamperRate = 7500;
       maxDroop = 0;
       maxCompression = 0;
   };
};
/// End of PhysX



Share this post


Link to post
Share on other sites

This might be stupid but have you tried to change "waterSpeedFactor = .50;" to "waterSpeedFactor = 0.50;" ? I think ".50" it is not an accepted value for the game engine (maybe I'm wrong on that but it is my first time saw that in any config).

I haven't found the time to check all your config values (I'll do it in case this I said above is not working) so please excuse me if my remark it sucks.

EDIT : Another thing I'd like to ask ... do you have an "Geometry Buoyancy" lod into your model ? if not try to make one (simple - one component only).

Edited by Aplion

Share this post


Link to post
Share on other sites

Yes we do have the buoyancy lod in.

I will check on the floating points. But I'm pretty sure that format is ok.

Share this post


Link to post
Share on other sites

Personally I can't make my TRACKED APC float as inherits from default BIS tracked APC which aren't float either, so if you can explain how you did it ... it will be much help for all of us :)

Now about movement ... I still believe that "waterSpeedFactor = .50;" value into your config should be changed to "waterSpeedFactor = 0.50;"

Anyway, as I'm still trying to make my APC float, I can't say anything about movement yet ... I'll keep you informed if I'll find anything relative to your issue.

Share this post


Link to post
Share on other sites

The biggest factor that has an effect on water speed (in my opinion) is "waterResistanceCoef". Play with the value between 0.01 and 0.1 and you'll see a difference. In my test vehicle it's a difference between 12 kph (at 0.1) and 60+ kph (at 0.01). I see a lot of regular vehicles at 0.5 and it's no wonder you can't get movement in the water.

waterResistanceCoef = 0.030000;

Share this post


Link to post
Share on other sites

Ok so after a great bit of trial and Error from one of our team members this seems to be a problem with the "tankX" simulation.

We reconfigured the AAV as a "carX" simulation and it worked fine in the water. But since the Track (tankX) and Wheel(carX) systems are very different this breaks the land operation. We are going to try and hack around with the config and the carX sim to try and make a tracked vehicle work in this simulation. But I don't have high hopes that this will work.

Could some one from BI confirm this, is this a "Bug" with tankX or is this "Working as intended"?

Share this post


Link to post
Share on other sites

Bump.

Has anyone successfully created a working tankx model that works on both land and water properly?

Share this post


Link to post
Share on other sites

Okay, I somehow managed to make BMP swimming - I took buoyancy geometry from boat and enlarged it like 2 times. Also zGuba suggest to remove autocenter property from geometry & geometry PsychX.

Editing: ahh, I didn't checked it to the end - steering problem still occurs :(

Edited by Reyhard

Share this post


Link to post
Share on other sites

is this still a problem? did anyone find a solution?

Share this post


Link to post
Share on other sites

As far as i know they still haven't fixed it.

Try opening a ticket in the feedback tracker, hopefully they'll come around and solve it.

Share this post


Link to post
Share on other sites

Hello guys, I heard this problems has been solved. I am having a really hard time making my vehicle at float. It is a M113 would anyone have a good example of a config. Some how my vehicle is driving under the water. What could it be?

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  

×