Jump to content

.Tom

Member
  • Content Count

    6
  • Joined

  • Last visited

  • Medals

Posts posted by .Tom


  1. So, i'm having problems with the physx of this vehicle. Going forwards or backwards is fine but when i turn the tank, regardless of if i'm accelerating or not, it accelerates a lot; and if I press A-D repeatedly the tank accelerates a lot more, Once i got it to 3200 km/h.

    I suspect this has to do with the model of the tracks or a misplacement of memory points, but i have no idea

    Video


    Physx

    simulation = "tankX";
    dampersBumpCoef = 0.30000001;
    terrainCoef = 0;
    fuelCapacity = "650 * 0.165";
    ACE_refuel_fuelCapacity = 650;
    maxOmega = 251.33;
    minOmega = 83.78;
    enginePower = 530;
    peakTorque = 2000;
    engineMOI = 20;
    idleRpm = 800;
    redRpm = 2400;
    clutchStrength = 50;
    dampingRateFullThrottle = 0.25;
    dampingRateZeroThrottleClutchEngaged = 8;
    dampingRateZeroThrottleClutchDisengaged = 0.25;
    maxSpeed = 75;
    thrustDelay = 0.050000001;
    brakeIdleSpeed = 2.8;
    normalSpeedForwardCoef = 0.6;
    slowSpeedForwardCoef = 0.1;
    tankTurnForce = 150000;
    tankTurnForceAngMinSpd = 0.75;
    tankTurnForceAngSpd = 0.75;
    accelAidForceCoef = 6;
    accelAidForceYOffset = -2;
    accelAidForceSpd = 10;
    torqueCurve[]=
    {
    	
    	{
    		"(0/2500)",
    		"(0/2350)"
    	},
    	
    	{
    		"(357/2500)",
    		"(1900/2350)"
    	},
    	
    	{
    		"(714/2500)",
    		"(2100/2350)"
    	},
    	
    	{
    		"(1071/2500)",
    		"(2250/2350)"
    	},
    	
    	{
    		"(1428/2500)",
    		"(2350/2350)"
    	},
    	
    	{
    		"(1785/2500)",
    		"(2350/2350)"
    	},
    	
    	{
    		"(2142/2500)",
    		"(1965/2350)"
    	},
    	
    	{
    		"(2500/2500)",
    		"(0/2350)"
    	}
    };
    waterPPInVehicle=0;
    maxFordingDepth=-0.65;
    waterResistance=0;
    canFloat=0;
    waterLeakiness=15;
    antiRollbarForceCoef=50;
    antiRollbarForceLimit=20;
    antiRollbarSpeedMin=10;
    antiRollbarSpeedMax=65;
    class complexGearbox
    {
    	GearboxRatios[]=
    	{
    		"R1", -23,
    		"N", 0,
    		"D1", 50,
    		"D2", 40.123,
    		"D3", 28,
    		"D4", 23,
    		"D5", 18.6,
    		"D6", 16.2,
    		"D7", 13.91
    	};
    	TransmissionRatios[]=
    	{
    		"High",
    		1
    	};
    	gearBoxMode="auto";
    	moveOffGear=1;
    	driveString="D";
    	neutralString="N";
    	reverseString="R";
    };
    changeGearType="rpmratio";
    changeGearOmegaRatios[]=
    {
    	__EVAL(2400/2400)    , __EVAL(1000/2400),   // R1
    	__EVAL(800/2400)     , 0,                   // N
    	__EVAL(2350/2400)    , __EVAL(1900/2400),   // D1
    	__EVAL(2350/2400)    , __EVAL(1900/2400),   // D2
    	__EVAL(2100/2400)    , __EVAL(1900/2400),   // D3
    	__EVAL(2200/2400)    , __EVAL(1900/2400),   // D4
    	__EVAL(2200/2400)    , __EVAL(1900/2400),   // D5
    	__EVAL(2200/2400)    , __EVAL(2000/2400),   // D6
    	__EVAL(2350/2400)    , __EVAL(1900/2400)    // D7
    	
    };
    switchTime=0;
    latency=1.5;
    engineLosses=25;
    transmissionLosses=15;
    driveOnComponent[]={};
    wheelCircumference=2.2;
    numberPhysicalWheels=16;
    turnCoef=5;
    class Wheels 
    {
    	class L2 
    	{
    		boneName = "wheel_podkoloL1";
    		center   = "wheel_1_2_axis";
    		boundary = "wheel_1_2_bound";
    		steering=0;
    		side="left";
    		mass=150;
    		width=0.51999998;
    		MOI=14;
    		latStiffX=2.5;
    		latStiffY=50;
    		longitudinalStiffnessPerUnitGravity=18000;
    		maxBrakeTorque=37500;
    		sprungMass=3125;
    		springStrength=264063;
    		springDamperRate=17236;
    		dampingRate=260;
    		dampingRateInAir=260;
    		dampingRateDamaged=10;
    		dampingRateDestroyed=10000;
    		maxCompression=0.15000001;
    		maxDroop=0.15000001;
    		frictionVsSlipGraph[]=
    		{
    			{0,0.5},
    			{0.34999999,1.2},
    			{1,0.5}
    		};
    	};
    	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";
    		maxCompression = 0;
    		maxDroop = 0;
    		sprungMass=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";
    		maxCompression = 0;
    		maxDroop = 0;
    		sprungMass=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";
    		maxCompression = 0;
    		maxDroop = 0;
    		sprungMass=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";
    		maxCompression = 0;
    		maxDroop = 0;
    		sprungMass=0;
    	};
    };

     


  2. As the title says, i have a problem with the physx.hpp and the tank only reaches 12kph, it doesn't change gears.

    This is the physx that i'm using
     

    simulation= tankX;
    maxSpeed=75;
    waterResistanceCoef=0.4200;
    enginePower=536.904;
    maxOmega=251.327;
    minOmega=83.776;
    peakTorque=2000;
    
    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			= 0.42;    	/// how much time does it take to get the full thrust (default 1), used to reduce initial wheel slipping
    clutchStrength 		= 180.0;
    fuelCapacity		= 2000;
    brakeIdleSpeed		= 0.75; 	/// speed in m/s below which braking is applied
    switchTime			= 0;
    latency 			= 2;
    tankTurnForce		= 335500; /// Random magic number, expected to be something like 11 x mass of vehicle
    
    /// Gearbox and transmission
    idleRpm = 800; // RPM at which the engine idles.
    redRpm = 2400; // RPM at which the engine redlines.
    
    engineLosses = 20; // 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)
    changeGearType="rpmratio";
    changeGearOmegaRatios[] = {             
    	__EVAL(2400/2400)    , __EVAL(1200/2400),   // R1
    	__EVAL(800/2400)     , 0,                   // N
    	__EVAL(2300/2400)    , __EVAL(1200/2400),   // D1
    	__EVAL(2300/2400)    , __EVAL(1200/2400),   // D2
    	__EVAL(2300/2400)    , __EVAL(1200/2400),   // D3
    	__EVAL(2300/2400)    , __EVAL(1200/2400),   // D4
    	__EVAL(2300/2400)    , __EVAL(1200/2400),	// D5
    	__EVAL(2300/2400)    , __EVAL(1200/2400),   // D6
    	__EVAL(2300/2400)    , __EVAL(1200/2400)    // D7
    };
    
    class complexGearbox {
    	GearboxRatios[]    = {
    		"R2",-1.709,
    		"N",0,
    		"D1",6.267,
    		"D2",4.7,
    		"D3",3.318,
    		"D4",1.709,
    		"D5",1.128,
    		"D6",0.910,
    		"D7",0.752
    	};
    	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        = 2; // 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;
    		latStiffX = 25;
    		latStiffY = 280;
    		longitudinalStiffnessPerUnitGravity = 100000;
    		maxBrakeTorque = 40000;
    		sprungMass = 4000.0;
    		springStrength = 324000;
    		springDamperRate = 36000;
    		dampingRate = 1.0;
    		dampingRateInAir = 8830.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;
    	};
    };

     

×