126 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 未命名
date: 2025-04-06 12:14:25
excerpt:
tags:
rating: ⭐
---
# 前言
- 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 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即受到刹车与发动机影响。
```c++
UVehicleWheelFront::UVehicleWheelFront()
{
AxleType = EAxleType::Front;
bAffectedBySteering = true;
MaxSteerAngle = 40.f;
}
```
```c++
UVehicleWheelRear::UVehicleWheelRear()
{
AxleType = EAxleType::Rear;
bAffectedByHandbrake = true;
bAffectedByEngine = true;
}
```
### UVehicleSportsWheel
```c++
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
```c++
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。
1. 添加UI与UI更新逻辑。
2. 绑定增强输入组件。
3. OnPossess()绑定AVehiclePawn。
## UChaosWheeledVehicleMovementComponent
## 动画蓝图中的相关逻辑