3.1 KiB
3.1 KiB
title, date, excerpt, tags, rating
title | date | excerpt | tags | rating |
---|---|---|---|---|
未命名 | 2025-04-06 12:14:25 | ⭐ |
前言
- UE4.27:https://dev.epicgames.com/documentation/zh-cn/unreal-engine/vehicle-user-guide?application_version=4.27
- UE5.4:https://dev.epicgames.com/documentation/en-us/unreal-engine/vehicles-in-unreal-engine?application_version=5.4
- Vehicle蓝图
- Vehicle SkeletalMesh
- Physics Asset
- Vehicle动画资产
- 多个Wheel Blueprints.
- TireConfig Data Asset
- Vehicle SkeletalMesh
Vehicle c++项目:
- AWheeledVehiclePawn -> AVehiclePawn
- AVehicleOffroadCar
- AVehicleSportsCar
c++ Vehicle Template
AVehiclePawn
父类为AWheeledVehiclePawn
-> APawn
。AVehiclePawn
的其他派生类为(C++模版实现类):
- AVehicleOffroadCar:越野车
- AVehicleSportsCar:跑车
UVehicleWheelFront(前轮)& UVehicleWheelRear(后轮)
父类为UChaosVehicleWheel
。两者的差别是:
- 轴向类型不同。
- 前轮的转向角度为40度,默认为50度。
- 前轮的bAffectedBySteering为true,即受到转向系统影响。
- 后轮的bAffectedByHandbrake、bAffectedByEngine为true,即受到刹车与发动机影响。
UVehicleWheelFront::UVehicleWheelFront()
{
AxleType = EAxleType::Front;
bAffectedBySteering = true;
MaxSteerAngle = 40.f;
}
UVehicleWheelRear::UVehicleWheelRear()
{
AxleType = EAxleType::Rear;
bAffectedByHandbrake = true;
bAffectedByEngine = true;
}
UVehicleSportsWheel
UVehicleSportsWheelFront::UVehicleSportsWheelFront()
{
WheelRadius = 39.0f;
WheelWidth = 35.0f;
FrictionForceMultiplier = 3.0f;
MaxBrakeTorque = 4500.0f;
MaxHandBrakeTorque = 6000.0f;
}
UVehicleSportsWheelRear::UVehicleSportsWheelRear()
{
WheelRadius = 40.f;
WheelWidth = 40.0f;
FrictionForceMultiplier = 4.0f;
SlipThreshold = 100.0f;
SkidThreshold = 100.0f;
MaxSteerAngle = 0.0f;
MaxHandBrakeTorque = 6000.0f;
}
UVehicleOffroadWheel
UVehicleOffroadWheelFront::UVehicleOffroadWheelFront()
{
WheelRadius = 50.0f;
CorneringStiffness = 750.0f;
FrictionForceMultiplier = 4.0f;
bAffectedByEngine = true;
SuspensionMaxRaise = 20.0f;
SuspensionMaxDrop = 20.0f;
WheelLoadRatio = 1.0f;
SpringRate = 100.0f;
SpringPreload = 100.0f;
SweepShape = ESweepShape::Shapecast;
MaxBrakeTorque = 3000.0f;
MaxHandBrakeTorque = 6000.0f;
}
UVehicleOffroadWheelRear::UVehicleOffroadWheelRear()
{
WheelRadius = 50.f;
CorneringStiffness = 750.0f;
FrictionForceMultiplier = 4.0f;
SuspensionMaxRaise = 20.0f;
SuspensionMaxDrop = 20.0f;
WheelLoadRatio = 1.0f;
SpringRate = 100.0f;
SpringPreload = 100.0f;
SweepShape = ESweepShape::Shapecast;
MaxBrakeTorque = 3000.0f;
MaxHandBrakeTorque = 6000.0f;
}
AVehiclePlayerController
父类为APlayerController。
- 添加UI与UI更新逻辑。
- 绑定增强输入组件。
- OnPossess()绑定AVehiclePawn。