目录
前言
在前面我们通过UE4完成了载具的制作,下面我们介绍一下如何通过UE5制作载具。
效果
![](https://img-blog.csdnimg.cn/direct/514ce2d4ec32426dbfcaf048588a1e06.gif)
步骤
一、制作载具模型
制作方法同【UE4 制作自己的载具】1-使用3dsmax制作载具
二、载具设置
- 启用"ChaosVehiclesPlugin"插件
![](https://img-blog.csdnimg.cn/direct/484d497ca2ef4b01aaba6ea6fef2e32f.png)
- 将我们制作好的车辆模型导入UE,如下包含骨骼网格体、物理资产、骨骼和一些材质
![](https://img-blog.csdnimg.cn/direct/8fbdabfd1b1e4f77a3da446cf98caad1.png)
- 打开物理资产,选中4个轮子的物理形体,设置基元类型为球体,然后点击"重新生成形体"
![](https://img-blog.csdnimg.cn/direct/d80ccb5e218541239428d57165a5b9c4.png)
4个轮子的物理类型设置为运动学
![](https://img-blog.csdnimg.cn/direct/527e910722c3486c8a1696b06e35beb1.png)
碰撞响应设置为"已禁用"
![](https://img-blog.csdnimg.cn/direct/095fa3acc7794b56b974a77113f38acb.png)
- 新建一个车辆控制的类,父类为"WheeledVehiclePawn"
![](https://img-blog.csdnimg.cn/direct/2bcc34a4fd274b70af8ffb6edf1df398.png)
这里命名为"BP_Jeep"
![](https://img-blog.csdnimg.cn/direct/24b8d54d7cd7434ebb781df61e818a84.png)
打开"BP_Jeep",选中"Mesh"组件,设置骨骼网格体资产
![](https://img-blog.csdnimg.cn/direct/90f2b070667346f0b9b072a3f93d876d.png)
选中"Vehicle Movement Component",添加4个车轮
![](https://img-blog.csdnimg.cn/direct/e159860ae3f049dca40290b2cd9fe325.png)
设置轮子的骨骼名称(注意:这里的骨骼名称要和骨骼资产中的4个轮子的骨骼名称一致)
![](https://img-blog.csdnimg.cn/direct/dc85a25884d14dff9beaeb691589db93.png)
![](https://img-blog.csdnimg.cn/direct/facb1b75e9fd40f2a9a1081178d7b742.png)
创建前轮的蓝图
![](https://img-blog.csdnimg.cn/direct/7fb5aab6162640f19a9f4d13741b0a6f.png)
在打开的"Wheel_Front"蓝图中设置类默认值中的"Axle Type"为Front
![](https://img-blog.csdnimg.cn/direct/9450e2e6a7f34a7fbab6321dc3154927.png)
然后我们需要设置轮子的半径和轮宽
- 我们可以先将车辆拖入场景中
![](https://img-blog.csdnimg.cn/direct/92d810fdbaad48cd88f270c74f4d9568.png)
然后切换到顶视图并用线框模式显示
![](https://img-blog.csdnimg.cn/direct/2fb4a7380e4d430a97d8ec1a2dc13502.png)
按住鼠标滑轮即可测量车轮宽度,这里为50cm,车轮直径为200cm
![](https://img-blog.csdnimg.cn/direct/7aa2fc0e3f7446f884ef2d36b2f6332d.png)
- 回到蓝图"Wheel_Front"中,设置轮子半径为100,轮宽为50
![](https://img-blog.csdnimg.cn/direct/32d3bce8b64e4934a407bd771a2f641b.png)
勾选"Affected by Steering",表示该轮子受方向盘影响,最大转向角为50°
![](https://img-blog.csdnimg.cn/direct/5fd7b1b584d34a45af1ce3d64470c9fc.png)
- 将前轮复制一份作为后轮
![](https://img-blog.csdnimg.cn/direct/32f93d57de384c6f9f6fcdd3eafb8570.png)
打开后轮,设置"Axle Type"为Rear;勾选"Affected by Handbrake",表示后轮会受手刹影响;勾选"Affected by Engine",表示该车辆为后驱;取消勾选"Affected by Steering",表示后轮不会转向。
![](https://img-blog.csdnimg.cn/direct/5f6ee0d967e44c2fb5607ad5361db1a4.png)
- 打开车辆蓝图,设置轮子类
![](https://img-blog.csdnimg.cn/direct/59499ec6e3474da2b882900758332b88.png)
创建车辆引擎扭矩的外部曲线资产
![](https://img-blog.csdnimg.cn/direct/58d2407459f6403db48a6157ac926dea.png)
- 这里命名为曲线为"Curve_JeepEngine"
![](https://img-blog.csdnimg.cn/direct/d8fd200fc383403eb91b7a7335b145c0.png)
打开"Curve_JeepEngine",添加4个关键帧。分别为(0,0)、(800,1000)、(4500,800)、(5000,0)
![](https://img-blog.csdnimg.cn/direct/0bb1fd7066804fcab79ba11d63d7da5a.png)
- 在车辆蓝图中设置"Max RPM"也为5000
![](https://img-blog.csdnimg.cn/direct/42596984077e4457ac7fa2c4c1b3ee25.png)
选中"Mesh"组件,勾选"模拟物理"
![](https://img-blog.csdnimg.cn/direct/f329ca8fa7bd41a3b25712cd65b3f33a.png)
我们可以在事件图表中添加如下节点,让车辆的油门输入为0.5
![](https://img-blog.csdnimg.cn/direct/435f52ae8c0b4463bd245ce8c18f1a82.png)
此时运行游戏就可以看到车辆在移动,但是轮子没有转动:
![](https://img-blog.csdnimg.cn/direct/b915bcdc44cb429b97f80fac65a33a14.gif)
- 创建车辆的动画蓝图,骨骼选择车辆的骨骼,父类选择"VehicleAnimationInstance"
![](https://img-blog.csdnimg.cn/direct/286736c3bdcd436880bb08d225b3d970.png)
这里命名为"ABP_Jeep"
![](https://img-blog.csdnimg.cn/direct/581907db45224fd4b5caa23532ac6bd5.png)
打开"ABP_Jeep",在动画图表中添加如下节点
![](https://img-blog.csdnimg.cn/direct/853393317e9b4adb9163c7d4579d5a18.png)
- 回到车辆蓝图中,设置Mesh组件的动画类为我们刚才创建的"ABP_Jeep"
![](https://img-blog.csdnimg.cn/direct/1851428220994925ba15998f223c89a0.png)
此时运行游戏可以看到车轮已经可以正常转动
![](https://img-blog.csdnimg.cn/direct/fcf2eb50af714a199e7af7f18c278b44.gif)
三、控制载具
这里基本照搬载具蓝图即可,首先需要有数据资产(输入映射上下文)
![](https://img-blog.csdnimg.cn/direct/d1c68462cdbe415185a8069555806417.png)
添加如下7个操作映射
![](https://img-blog.csdnimg.cn/direct/2116877124f4419d9c3e42d4a0972248.png)
![](https://img-blog.csdnimg.cn/direct/a658b08c3403413e817eae75266b6e95.png)
![](https://img-blog.csdnimg.cn/direct/b30d0d29c8db42669be76642008fc0ff.png)
![](https://img-blog.csdnimg.cn/direct/5d88fde0352444a7b397145880f658cc.png)
![](https://img-blog.csdnimg.cn/direct/7d614f19a12445b3b101d5171ec33259.png)
![](https://img-blog.csdnimg.cn/direct/e0114b2feabd4deca6f592610e774c77.png)
![](https://img-blog.csdnimg.cn/direct/9f91aa7f90404f1aaff8c6de13f0bcc7.png)
![](https://img-blog.csdnimg.cn/direct/65d20bcff6b243e4a8938595475e3a24.png)
![](https://img-blog.csdnimg.cn/direct/b2f9717d4341429c9853863fa2cc32a2.png)
![](https://img-blog.csdnimg.cn/direct/bd346496613d478188bd5dfd8667709f.png)
![](https://img-blog.csdnimg.cn/direct/68c86c17d5324a68bda6fec7ac37788a.png)
![](https://img-blog.csdnimg.cn/direct/d331ca3253eb47b5bdfb403e5a89ecfe.png)
在车辆蓝图中添加如下节点
![](https://img-blog.csdnimg.cn/direct/bcfa6d23934f4305913b5ba975d63536.png)
![](https://img-blog.csdnimg.cn/direct/c8dfa2adb0f1494e94ed5471d7b42b0e.png)
![](https://img-blog.csdnimg.cn/direct/877aacb76b904aa596fdbe9d7ae196d4.png)
![](https://img-blog.csdnimg.cn/direct/e57954d739d44d558341c7702b31c6b6.png)
![](https://img-blog.csdnimg.cn/direct/9a8033db21dd4ceebcb68ecbe0cb7ecc.png)
![](https://img-blog.csdnimg.cn/direct/85acbd7e23404b0c9a652f21995d33c2.png)
在玩家控制器中添加映射上下文
![](https://img-blog.csdnimg.cn/direct/8d752894ee4f40378ae3ea750834fc93.png)
此时运行效果如下,我们可以控制车辆的视角旋转,按WS键控制车辆前后运动,按AD控制车辆左右运行,按空格键刹车。此时效果如下所示
![](https://img-blog.csdnimg.cn/direct/3b4579561b1146a08a8c64af621fee99.gif)
四、方向盘旋转
在动画蓝图中新建一个变量,这里命名为"Steering Angle",表示方向盘旋转的角度
![](https://img-blog.csdnimg.cn/direct/e969c1672b7b4d1bad7322aa6f1eecc0.png)
在动画图表中添加如下节点,由于我们前轮的转向角为20,因此已限制范围节点的输入为-10~10,-120~120表示我们希望用方向盘转向的-120~120°表示前轮转向-10~10°
![](https://img-blog.csdnimg.cn/direct/2d31ad779184429b8588f78e88e9a5d0.png)
![](https://img-blog.csdnimg.cn/direct/876a4d257998408b81cdd0f52cf1e942.png)
在车辆蓝图中获取动画蓝图的引用
![](https://img-blog.csdnimg.cn/direct/3f1a187fec7541e3aed224cb655691df.png)
再在车辆蓝图的Tick中设置动画图表中的变量"Steering Angle"的值
![](https://img-blog.csdnimg.cn/direct/3b666475858c41f1bfd4ea6910f37fd2.png)
![](https://img-blog.csdnimg.cn/direct/6c7dfff56b1f4ab097a104d568b400bc.png)
最终效果如文章开头所示。
参考视频: