From 85673a8f4e8433fbd82b0152cfc572ad16703ade Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Tue, 8 Apr 2025 11:14:59 +0800 Subject: [PATCH] vault backup: 2025-04-08 11:14:59 --- 03-UnrealEngine/Gameplay/Vehicle/载具笔记.md | 115 +++++++++++++++++++ 1 file changed, 115 insertions(+) diff --git a/03-UnrealEngine/Gameplay/Vehicle/载具笔记.md b/03-UnrealEngine/Gameplay/Vehicle/载具笔记.md index 747c0c5..c98a6a2 100644 --- a/03-UnrealEngine/Gameplay/Vehicle/载具笔记.md +++ b/03-UnrealEngine/Gameplay/Vehicle/载具笔记.md @@ -9,3 +9,118 @@ 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 + +## 动画蓝图中的相关逻辑 \ No newline at end of file