LuckyRobotsUnreal/Source/Luckyrobots/TP_VehicleAdvSportsCar.cpp

69 lines
3.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "TP_VehicleAdvSportsCar.h"
#include "TP_VehicleAdvSportsWheelFront.h"
#include "TP_VehicleAdvSportsWheelRear.h"
#include "ChaosWheeledVehicleMovementComponent.h"
ATP_VehicleAdvSportsCar::ATP_VehicleAdvSportsCar()
{
// Note: for faster iteration times, the vehicle setup can be tweaked in the Blueprint instead
// Set up the chassis
GetChaosVehicleMovement()->ChassisHeight = 144.0f;
GetChaosVehicleMovement()->DragCoefficient = 0.31f;
// Set up the wheels
GetChaosVehicleMovement()->bLegacyWheelFrictionPosition = true;
GetChaosVehicleMovement()->WheelSetups.SetNum(4);
GetChaosVehicleMovement()->WheelSetups[0].WheelClass = UTP_VehicleAdvSportsWheelFront::StaticClass();
GetChaosVehicleMovement()->WheelSetups[0].BoneName = FName("Phys_Wheel_FL");
GetChaosVehicleMovement()->WheelSetups[0].AdditionalOffset = FVector(0.0f, 0.0f, 0.0f);
GetChaosVehicleMovement()->WheelSetups[1].WheelClass = UTP_VehicleAdvSportsWheelFront::StaticClass();
GetChaosVehicleMovement()->WheelSetups[1].BoneName = FName("Phys_Wheel_FR");
GetChaosVehicleMovement()->WheelSetups[1].AdditionalOffset = FVector(0.0f, 0.0f, 0.0f);
GetChaosVehicleMovement()->WheelSetups[2].WheelClass = UTP_VehicleAdvSportsWheelRear::StaticClass();
GetChaosVehicleMovement()->WheelSetups[2].BoneName = FName("Phys_Wheel_BL");
GetChaosVehicleMovement()->WheelSetups[2].AdditionalOffset = FVector(0.0f, 0.0f, 0.0f);
GetChaosVehicleMovement()->WheelSetups[3].WheelClass = UTP_VehicleAdvSportsWheelRear::StaticClass();
GetChaosVehicleMovement()->WheelSetups[3].BoneName = FName("Phys_Wheel_BR");
GetChaosVehicleMovement()->WheelSetups[3].AdditionalOffset = FVector(0.0f, 0.0f, 0.0f);
// Set up the engine
// NOTE: Check the Blueprint asset for the Torque Curve
GetChaosVehicleMovement()->EngineSetup.MaxTorque = 750.0f;
GetChaosVehicleMovement()->EngineSetup.MaxRPM = 7000.0f;
GetChaosVehicleMovement()->EngineSetup.EngineIdleRPM = 900.0f;
GetChaosVehicleMovement()->EngineSetup.EngineBrakeEffect = 0.2f;
GetChaosVehicleMovement()->EngineSetup.EngineRevUpMOI = 5.0f;
GetChaosVehicleMovement()->EngineSetup.EngineRevDownRate = 600.0f;
// Set up the transmission
GetChaosVehicleMovement()->TransmissionSetup.bUseAutomaticGears = true;
GetChaosVehicleMovement()->TransmissionSetup.bUseAutoReverse = true;
GetChaosVehicleMovement()->TransmissionSetup.FinalRatio = 2.81f;
GetChaosVehicleMovement()->TransmissionSetup.ChangeUpRPM = 6000.0f;
GetChaosVehicleMovement()->TransmissionSetup.ChangeDownRPM = 2000.0f;
GetChaosVehicleMovement()->TransmissionSetup.GearChangeTime = 0.2f;
GetChaosVehicleMovement()->TransmissionSetup.TransmissionEfficiency = 0.9f;
GetChaosVehicleMovement()->TransmissionSetup.ForwardGearRatios.SetNum(5);
GetChaosVehicleMovement()->TransmissionSetup.ForwardGearRatios[0] = 4.25f;
GetChaosVehicleMovement()->TransmissionSetup.ForwardGearRatios[1] = 2.52f;
GetChaosVehicleMovement()->TransmissionSetup.ForwardGearRatios[2] = 1.66f;
GetChaosVehicleMovement()->TransmissionSetup.ForwardGearRatios[3] = 1.22f;
GetChaosVehicleMovement()->TransmissionSetup.ForwardGearRatios[4] = 1.0f;
GetChaosVehicleMovement()->TransmissionSetup.ReverseGearRatios.SetNum(1);
GetChaosVehicleMovement()->TransmissionSetup.ReverseGearRatios[0] = 4.04f;
// Set up the steering
// NOTE: Check the Blueprint asset for the Steering Curve
GetChaosVehicleMovement()->SteeringSetup.SteeringType = ESteeringType::Ackermann;
GetChaosVehicleMovement()->SteeringSetup.AngleRatio = 0.7f;
}