/// PhysX part simulation = tankX; enginePower = 433; maxOmega = 300; //209; peakTorque = 2254; torqueCurve[] = { {(700/2640), 0}, {(1600/2640), (2150/2850)}, {(1800/2640), (2800/2850)}, {(1900/2640), (2850/2850)}, {(2000/2640), (2800/2850)}, {(2200/2640), (2750/2850)}, {(2400/2640), (2600/2850)}, {(3640/2640),0} }; /* torqueCurve[] = { {0 , 0}, {0.14 , 0.02}, {0.29 , 0.06}, {0.43 , 0.12}, {0.57 , 0.18}, {0.71 , 0.24}, {0.86 , 0.28}, {1 , 0.3}, };*/ thrustDelay = 0.1; /// how much time does it take to get the full thrust (default 1), used to reduce initial wheel slipping clutchStrength = 180.0; fuelCapacity = 520; brakeIdleSpeed = 1.78; /// speed in m/s below which braking is applied latency = 0.1; tankTurnForce = 330000; /// Random magic number, expected to be something like 11 x mass of vehicle //17000;//600000; /// Gearbox and transmission idleRpm = 500; // RPM at which the engine idles. redRpm = 2000; // RPM at which the engine redlines. engineLosses = 25; // power losses on the engine's crank-shaft (before the gearbox) in Nm. (Multiplied by the gear ratio) transmissionLosses = 15; // power losses on wheel axis (in/after the gearbox) in Nm. (Constant) //,"D6",1.425,"D7",1.25 changeGearMinEffectivity[]={0.5,0.15000001,0.94999999,0.97999999,0.94999999,0.95999999,0.96999998}; class complexGearbox { GearboxRatios[] = {"R2",-8.9,"N",0,"D1",4.5,"D2",3.3,"D3",3.0,"D4",2.7,"D5",2.6}; TransmissionRatios[] = {"High",5}; gearBoxMode = "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.1; }; /// end of gearbox class Wheels { class L2 { boneName = "wheel_podkoloL1"; center = "wheel_1_2_axis"; boundary = "wheel_1_2_bound"; damping = 75.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 = 25.1; latStiffX = 25; latStiffY = 280; longitudinalStiffnessPerUnitGravity = 100000; maxBrakeTorque = 40000; sprungMass = 4000.0; springStrength = 324000; springDamperRate = 36000; dampingRate = 1.0; dampingRateInAir = 8030.0; dampingRateDamaged = 10.0; dampingRateDestroyed = 10000.0; maxDroop = 0.15; maxCompression = 0.15; /*frictionVsSlipGraph[]= { {0,1.2}, {0.5,1.2}, {1,1.3} };*/ }; 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"; }; // 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"; }; // 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