Files
braf/braf_armored/BRAF_Guarani/GuaraniPhysics.hpp

187 lines
6.8 KiB
C++

////////////////////////////////////////// Physics Parameters
////////////////////////////////////////// Land Behavior
slowSpeedForwardCoef=0.3; // fator que limita a velocidade do veículo quano a AI recebe o comando "Car Slow Foward".
normalSpeedForwardCoef=0.6; // fator que limita a velocidade do veículo quano a AI recebe o comando "Car Foward".
terrainCoef=1.5; // Importância do 'SurfaceFriction" ao limitar a velocidade do veículo.
turnCoef=3; // Ângulo máximo de esterçamento das rodas.
dampersBumpCoef=2; // Define o quanto os amortecedores reagem à pequenas imperfeições do terreno. EFEITO VISUAL APENAS!
brakeDistance=5; // Velocidade de frenagem valor padrão 5m/s.
maxSpeed=95; // Velocidade máxima em Km/h.
fuelCapacity=86; // Capacidade de combustível do veículo, seu consumo é definido pela RPM do motor.
ace_refuel_fuelCapacity=300; // ACE
brakeIdleSpeed=0.2; // Velocidade que os freios são aplicados automaticamente.
simulation="carx"; // Tipo de simulação do veículo.
class complexGearbox // Parâmetros de caixa de marcha
{
GearboxRatios[]=
{
"R1",-7.38,
"N",0,
"D1",5.1,
"D2",3.52,
"D3",2.31,
"D4",1.81,
"D5",1.15,
"D6",1.0
};
TransmissionRatios[]=
{
"High",3.58
};
AmphibiousRatios[]=
{
"R1",-10,
"N",0,
"D1",30
};
gearBoxMode="auto";
moveOffGear=1;
driveString="D";
neutralString="N";
reverseString="R";
};
changeGearMinEffectivity[]=
{
0.45,
0.0,
0.85,
0.85,
0.85,
0.85,
0.85,
0.85
};
switchTime=0.15; // Tempo de troca de marcha em segundos.
latency=1.4; // Tempo mínimo entre a troca de marchas, deve ser maior que o 'switchTime'.
differentialType="all_limited"; // Tipo de diferencial
frontRearSplit=0.5;
frontBias=1.3;
rearBias=1.3;
centreBias=1.3;
clutchStrength=35;
dampingRateFullThrottle=0.08;
dampingRateZeroThrottleClutchEngaged=2;
dampingRateZeroThrottleClutchDisengaged=0.35;
torqueCurve[]=
{
{ "(600/2000)","(0/2120)" },
{ "(800/2000)","(1785/2120)" },
{ "(1000/2000)","(2120/2120)" },
{ "(1200/2000)","(2065/2120)" },
{ "(1400/2000)","(1980/2120)" },
{ "(1600/2000)","(1875/2120)" },
{ "(1800/2000)","(1810/2120)" },
{ "(2000/2000)","(1350/2120)" }
};
maxOmega=220; // Velocidade rotacional máxima do motor em radianos por segundo. expresso por (maxRpm*2*Pi)/60.
enginePower=380; // Potência do motor em kW.
peakTorque=2120; // Torque máximo do motor.
idleRPM=400; // RPM em "ponto morto".
redRPM=2200; // RPM máximo do veículo.
thrustDelay=0.2; // Tempo em segundos que o input do acelerador leva pra ir de 0 a 1.
engineShiftY=1.1;
antiRollbarForceCoef=2; // Sistema que reduz o risco de capotagem do veículo.
antiRollbarForceLimit=2;
antiRollbarSpeedMin=50;
antiRollbarSpeedMax=80;
accelAidForceYOffset=-2.5;
wheelCircumference=3.794; // Perímetro da circunferência da roda.
numberPhysicalWheels=6; // Número de rodas físicas do veículo.
class Wheels
{
class L1
{
boneName="wheel_1_1"; // Nome da roda.
steering=1; // Define se a roda esterça ou não.
side="left"; // Lado da roda em relação ao veículo.
center="wheel_1_1_axis"; // Ponto d ememória que define o centro da roda.
boundary="wheel_1_1_bound"; // Ponto de memória que define o limite exterior da roda.
width=0.42; // Largura do pneu em metros.
mass=100; // Massa de cada roda em Kg.
MOI=60; // 0.5*mass*(Raio_da_Roda)^2 --> Ver raio da roda no modelo
dampingRate=0.1;
dampingRateDamaged=1;
dampingRateDestroyed=1000;
maxBrakeTorque=45000; // Torque máximo do freio.
maxHandBrakeTorque=9000; // Torque máximo do freio de mão.
suspTravelDirection[]={-0.125,-1,0}; // Arranjo de vetores apontando a direção do curso da suspensão.
suspForceAppPointOffset="wheel_1_1_center"; // Ponto de aplique da suspensão.
tireForceAppPointOffset="wheel_1_1_center"; // Ponto de aplique da suspensão exceto para forças laterais e longitudinais que afetam o pneu.
maxCompression=0.1; // Compressão máxima da suspensão em metros.
maxDroop=0.15; // Extensão máxima da suspensão em metros.
sprungMass=2432; // Peso suportado pela roda. Dividir o peso total do veículo, (sem as rodas), pelo numero de rodas.
springStrength=87521.2; // sprungmass*(natural_freq)^2 --> natural_freq=~4 a 8
springDamperRate=7782.4; // "DampingRatio"*2*sqrt(springStrength*sprungMass) --> DampingRatio=~0.8 a 1,2
longitudinalStiffnessPerUnitGravity=10000;
latStiffX=25;
latStiffY=180;
frictionVsSlipGraph[]=
{
{0,1},
{0.5,1},
{1,1}
};
};
class L2: L1
{
boneName="wheel_1_2";
steering=1;
center="wheel_1_2_axis";
boundary="wheel_1_2_bound";
suspForceAppPointOffset="wheel_1_2_center";
tireForceAppPointOffset="wheel_1_2_center";
};
class L3: L1
{
boneName="wheel_1_3";
steering=0;
center="wheel_1_3_axis";
boundary="wheel_1_3_bound";
sprungMass=4864;
suspForceAppPointOffset="wheel_1_3_center";
tireForceAppPointOffset="wheel_1_3_center";
maxHandBrakeTorque=300000;
};
class R1: L1
{
boneName="wheel_2_1";
center="wheel_2_1_axis";
boundary="wheel_2_1_bound";
suspTravelDirection[]={0.125,-1,0};
suspForceAppPointOffset="wheel_2_1_center";
tireForceAppPointOffset="wheel_2_1_center";
steering=1;
side="right";
};
class R2: R1
{
boneName="wheel_2_2";
steering=1;
center="wheel_2_2_axis";
boundary="wheel_2_2_bound";
suspForceAppPointOffset="wheel_2_2_center";
tireForceAppPointOffset="wheel_2_2_center";
};
class R3: R1
{
boneName="wheel_2_3";
steering=0;
center="wheel_2_3_axis";
boundary="wheel_2_3_bound";
sprungMass=4864;
suspForceAppPointOffset="wheel_2_3_center";
tireForceAppPointOffset="wheel_2_3_center";
maxHandBrakeTorque=300000;
};
};
////////////////////////////////////////// Water Behavior
canFloat=1; // Pode boiar 1-sim 0-não. (Precisa de um LOD de buoyance)
maxFordingDepth=0.5; // Altura da água em que o motor pode sofrer dano.
waterangulardampingcoef=10; // Suaviza movimento do veículo na água, CUIDADO com valores muito altos.
waterLinearDampingCoefX=0.5; // Afeta o quanto desliza o veículo ao fazer curvas.
//waterLinearDampingCoefY=5.5; // Afeta a velocidade com que o veículo atravessa as ondas - valores mais altos fazem com que ele flutue mais sobre as ondas.
waterPPInVehicle=0; // Ativa/desativa o shader de água.
waterResistanceCoef=0.75; // Resistência do veículo ao "cortar" a água, quanto maior o valor, maior a resistência w afeta a aceleração e a velocidade máxima.
waterLeakiness=10; // Quantos litros de água entram no veículo quando destruído ou emborcado de cabeça pra baixo.