UE4 设置基础的车辆动力学

此中文页面内容对应的英文页面有后续更新,如需浏览最新文档可切换至英文页面浏览。

载具用户指南

本页面的内容:

该文档讲述在空白项目中使用 Wheeled Vehicle 蓝图类创建载具。此过程包含编辑器中所有必要项目的创建, 但前提是您已为载具备好 骨骼网格体 和 物理资源

如需了解在引擎中设置载具骨骼网格体和物理资源的内容,请查阅 载具内容指南 。 或者您可通过 Vehicle Template 或 Vehicle Game 获取预建的骨骼网格体和物理资源。

内容

虚幻引擎 4 中的载具由多种资源组成:

  • 一个骨骼网格体

  • 一个物理资源

  • 一个动画蓝图

  • 一个载具蓝图

  • 一个或多个轮子蓝图

  • 一个 TireType 数据资源

overview.png

该文档包含在虚幻引擎 4 中构建正常运行的载具所需的蓝图设置,并以您拥有可使用的载具资源为前提。如需了解骨骼网格体和物理资源 的设置,请查阅 载具美术设置 。

创建载具蓝图

如需新建一个 载具蓝图:在 Content Browser 中点击 Add New 按钮 -> Blueprint -> 搜索“vehicle”并在列表中点击 WheeledVehicle

newVehicle.png

创建轮子蓝图

如需新建一个 轮子蓝图:在 Content Browser 中点击 Add New 按钮 -> Blueprint -> 搜索“wheel”并在列表中点击 VehicleWheel。重复该步骤至少一次, 设置前轮和后轮。

newWheels.png

多数情况下存在至少两种轮子类型:一种轮子受转向影响,而另一种不受影响。此外还可对不同半径、质量、宽度、手刹效果、 悬挂,以及其他多种属性进行设置,使载具获得预期的操控。

创建 TireType 数据资源

如需新建一个 TireType 数据资源:在 Content Browser 中点击 Add New 按钮 -> Misc -> Data Asset -> 选择 TireType -> 点击 Select 按钮。

newDataAsset.png

TireType 数据资源 只包含一个数值:Friction Scale。该值不仅影响轮胎的原始摩擦,还可调整相关数值,以控制载具急转弯时出现轮胎打滑的难易度。 以控制载具急转弯时出现轮胎打滑的难易度。

VehicleWheel 蓝图类上有一个 TireType 数据资源 的属性槽。

创建动画蓝图

如需新建一个 动画蓝图:在 Content Browser 中点击 Add New 按钮 -> Animation -> Animation Blueprint -> 在列表中选择属于您载具的 Skeleton -> 选择 VehicleAnimInstance -> 点击 Ok 按钮。

newAnimBP.png

编辑动画蓝图

在 Content Browser 中 双击 Animation Blueprint,以便在 Persona 中编辑载具动画蓝图。在 4.2 更新版本中,载具的 Anim Graph 已 大幅简化。

  1. 在 Anim Graph 中 单击右键,在快捷菜单中搜索并选择 Mesh Space Ref Pose 节点,将其创建。

    meshSpace.png

  2. 在 Anim Graph 中 单击右键,在快捷菜单中搜索并选择 Wheel Handler 节点,将其创建。

    wheelHandler01.png

  3. 连接 Mesh Space Ref Pose 至 Wheel Handler 节点

  4. 连接 Wheel Handler 至 Final Animation Pose 节点

animBPPreAnimGraph.png

大功告成!Component to Local 转换节点将被自动创建,动画蓝图将驱动载具的轮子。

animBPanimGraph.png

Wheel Handler 节点

wheelHandler02.png

Wheel Handler 节点负责处理轮子的所有动画需求:旋转、转向、手刹、以及悬挂。无需进行额外的设置,它从轮子上获取 所有必需信息(它的旋转速度有多快?它能转向吗?它是否受手刹影响?该轮子的悬挂设置如何?)并将这些信息 传递到轮子相关骨骼的动画中。

如有额外的支柱和其他悬挂需求,需在 Anim Graph 中添加额外的节点,处理影响这些多边形的连接点。Vehicle Game 中的 载具拥有一些额外的连接点,它们控制轮子的轮轴连接。它们由简单的 Look At 节点驱动:

fullVehGameAnimBP.png

Vehicle Game 的载具 Anim Graph 中额外的节点使得支柱连接点朝向轮子连接点。Wheel Handler 节点驱动轮子连接点, Look At 节点确保悬挂和轮子连接在一起。

编辑轮胎数据资源

在 Content Browser 中 双击 TireType Data Asset

tires02.png

TireType 数据资源 只包含一个数值:Friction Scale。该值不仅影响轮胎的原始摩擦,还可调整相关数值,以控制载具急转弯时出现轮胎打滑的难易度。 以控制载具急转弯时出现轮胎打滑的难易度。

编辑轮子蓝图

在 Content Browser 中 双击 Wheel Blueprint,呼出蓝图编辑器。

  1. 将蓝图编辑器切换至默认编辑模式:

    defaultsMode.png

  2. 需要执行初始设置的属性为:

    • Shape Radius

    • Shape Width

    • Affected by Handbrake(通常限于后轮)

    • Steer Angle(通常限于前轮)

      wheelProps.png

  3. 最后需要设置 Tire Type。

    tireType.png

需要对每个轮子进行 5 项属性的设置。其他属性将影响载具的工作方式,可在测试载具时进行 调整。

编辑载具蓝图

它使载具成为一个整体。如果已有美术资源,轮子也已设置好,则可以开始搭建一个功能齐全的载具。

在 Content Browser 中 双击 Vehicle Blueprint,呼出蓝图编辑器。

  1. 点击名为“Mesh”的 骨骼网格体组件,在其 Details 面板中将 Skeletal Mesh 属性设为载具的骨骼网格体资源。

    componentsMode.png

  2. 将 Anim Blueprint Generated Class 设为 载具的动画蓝图。

    AnimBPandSkelMesh.png

  3. 返回 Components 面板并添加一个 摄像机组件

    addCamera.png

  4. 将此摄像机组件 放置 在所需位置。下图中摄像机组件被放置在载具背后。

    cameraPlacement.png

  5. 禁用 Camera Settings -> Use Controller View Rotation,此操作将把摄像机锁定在其取景方向,而并非玩家控制器的方向。

    cameraControllerOff.png

  6. 选择 Vehicle Movement Component,在 Vehicle Setup 类目下打开 Wheel Setups

    defaultsMode.png

  7. 每个轮子(0-3):

    1. 将 Wheel Class 设为 一个您创建的轮子蓝图。

    2. 将 Bone Name 设为 轮子控制的连接点名。

      wheelsSetup.png

      上图中的 Bone Name 为该骨骼网格体所独有。

    轮子的指派顺序不会决定其为前轮或后轮,真正起作用的是 Bone Name 和 Wheel Class

    如需要设置超过 4 个的轮子,可点击 Wheel Setups 属性旁的 “+” 图标进行添加。

如果您的载具大小和一辆小型货车相差不大,使用默认值即可开始测试。

测试

有多种方法对测试的载具进行设置,部分步骤将取决于所使用的模板。

  1. 控制

    input.png

    1. Project Settings -> Input

    2. 点击 Axis Mappings 属性旁的 “+” 符号 添加 一个 Axis Mapping

    3. 点开 Axis Mappings

    4. 将 Axis Mappings 从 “None” 重命名 为 Forward

    5. 点击 Forward Axis Mapping 旁的 “+

    6. 点开 Forward Axis Mapping

    7. 将第一个 “None” 设为 “W

    8. 将第二个 “None” 设为 “S

    9. 将 “S” 映射的数值 设为 “-1.0”

    10. 点击 Axis Mappings 属性旁的 “+” 符号 添加 另一个 Axis Mapping

    11. 将新建 Axis Mapping 从 “None” 重命名 为 Right

    12. 点开 Right Axis Mapping

    13. 将第一个 “None” 设为 “D

    14. 将第二个 “None” 设为 “A

    15. 将 “A” 映射的数值 设为 “-1.0”

    16. 点击 Action Mappings 属性旁的 “+” 符号 添加 一个 Action Mapping

    17. 点开 Action Mappings 属性

    18. 将新建 Action Mapping 从 “None” 重命名 为 “Handbrake”。

    19. 点开 Handbrake Action Mapping

    20. 将 “None” 设为 “Space Bar

  2. 新游戏模式

    1. 新建游戏模式蓝图。

      newGameMode.png

    2. 双击 新游戏模式蓝图进行编辑。

    3. Game Mode Category -> Default Pawn Class,将 “None” 改为 Vehicle Blueprint

      defaultPawnClass.png

  3. World Settings -> Game Mode,将 GameMode Override 设为 “Your Game Mode”。

    setGameMode.png

  4. 可在载具的蓝图中调用 Project Settings Input 类目中创建的 Axis 和 Action 事件。

    1. 编辑 载具蓝图,然后打开 Event Graph

      graphMode.png

    2. 油门

      throttleBP.png

    3. 转向

      steeringBP.png

    4. 手刹

      handbrakeBP.png

  5. 玩家出生点

    • 如世界场景中不存在 Player Start Actor,可在 Modes Panel -> Placement Mode -> Basic 路径下点击并 将一个 Player Start 拖入世界场景。

    playerStart.png

    可设置 Play in Editor,从当前的摄像机位置开始游戏。

  6. 一切设置妥当之后,即可使用 Play in Editor 对载具进行测试。

    Play.png

    按以上设置的轴和操作绑定,W 为油门、S 为刹车、A 为左转、D 为右转、 空格键 为手刹。

  • 6
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
UE4车辆动力学模型是基于动力学模型进行建模和仿真的。动力学模型分析是无人车控制模块的基础,它涉及到车辆的轮胎坐标系模型、车辆的状态空间方程以及车辆与参考路径的误差计算等内容。\[1\] 在UE4中,车辆动力学模型可以简化为线性二自由度的自行车模型。这个模型假设车辆沿x轴的纵向速度不变,只有沿y轴的侧向运动和绕z轴的横摆运动两个自由度。同时,它忽略了方向盘与前轮转角的关系、地面重构单元的悬架系统影响以及驱动力对轮胎侧偏特性的影响等因素。\[2\] UE4中的车辆动力学模型主要涉及到VehiclePhysicsControl和WheelPhysicsControl两个参数。其中,dampingRate是阻尼率,用于控制车辆的阻尼效果;clutch_strngth是离合器强度,用于控制离合器的工作状态。这些参数可以根据具体需求进行调整和优化。\[3\] 总之,UE4车辆动力学模型是基于动力学模型进行建模和仿真的,通过对车辆的状态空间方程和误差计算等进行模拟,实现对车辆行驶和控制的模拟和仿真。 #### 引用[.reference_title] - *1* *2* [Apollo控制部分3-- 车辆动力学模型详解](https://blog.csdn.net/qq_42589654/article/details/129531678)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [carla二次开发(三)车辆动力学模型](https://blog.csdn.net/weixin_41652700/article/details/128252805)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值