AdvanceVehicleSystem文档翻译
文件源链接:vehiclesystemdocumentation.
一、项目设置:ProjectSetting
1.MIN/MAX CONTACT SETTINGS
这并不是必须要修改的,但还是强烈建议把该值跳到ue4允许的最小值
如果保持默认的话,物体在经过两个表面时会乱跳(即便这两个表面高度一样,且速度越快越明显)
2.MAX TERMINAL AND ANGULAR VELOCITIES
他会限制你vehicle的最大速度和角速度,推荐的数值:
Default Terminal Velocity: 7600
Max Angular Velocity: 10000
二、创造一辆汽车
Step 0:前置条件
- SkeletalMesh的汽车或者StaticMesh汽车和对应轮子模型
StaticMesh汽车需要单独的轮子模型
在插件中有一辆基础staticmesh车和轮子,确保你勾选了Show Plugin Content来以找到他
SkeletalMesh应该是类似于ue4的轮车设置
- 拥有AdvanceVehicleSystem插件
- 对UE4有基础的理解
Step 1: 绑定输入按键
Step 2: 创建汽车基类
2.1 创建一个基于Vehicle_Base的蓝图
2.2 打开蓝图并创建springarm和camera
2.3 启动引擎
由于我们没有绑定引擎启动按键,所以在开始游戏时便自动启动引擎
2.4 绑定你之前设置的按键到指定功能
Step 3: 基于这个基类创建你所需汽车
3.1右键鼠标:创建子蓝图类
3.2 打开新创建的车辆蓝图,然后从列表中选择VehicleMesh组件并将其设置为所需的StaticMesh(SKeletalMesh详见Step 8)
3.3 添加车轮
在你所需车轮的地方添加"Vehicle Wheel“组件,之后移动到你需要的地方。
为每一个轮子命合适的名可以便于之后的管理
3.4 配置汽车
在组件列表中选择类名所在一栏,在细节面板中有4个以”Vehicle-“开头的类别,可以通过更改这里面的值实现整辆车的参数配置。目前我们只配置传动部分,打开 “Vehicle - Transmission”部分
在"Gear"一栏中,默认有两个档。其中0档默认为倒车档。新建两个新的挡位,并按下图所示设置数值
Step 4: 配置车轮
选择一个VehicleWheel组件,在细节面板中调节所需参数。如果指定mesh,则碰撞大小自动适配,如果不指定mesh,则会生成与碰撞同等大小的球体。下面的图像是一个后轮驱动车辆的设置。注意:如果你已经旋转了车轮组件,使你的车轮网面朝向相反的方向,你可能需要检查“ invert torque option”。
Step 5: 创建辅助配置的HUD
插件中包含了一个用于配置汽车的HUD。这一步并不是必须的,但如果你对UE4还不太熟悉的话我建议你跟着做。
创建PlayerContrller和Gamemode类
打开创建的PlayerController,如下图连接节点
注:如果没有找到VehicleSetup_HUD的话,请检查ShowPluginContent是否勾选
设置关卡Gamemode为我们创建的Gamemode,以及相应参数
Step 6: 测试
当前版本(1.0.2)下如果直接设置车辆PossesPlayer0会出现车辆无法移动的情况,如果时使用PlayerStart创建的话没问题,这个Bug会在之后的版本解决。
当前内容完成仅针对StaticMesh的车辆,SkeletalMesh请继续
如果你成功遵循了上面的操作,那么你已经能正常驾驶车辆了。你也可以通过按下"Shift+F1"来显示鼠标指针,以控制HUD中的各个按钮和滑动条。或者按PageUp和PageDown来进行Shifter操作。
Step 7: 设置SkeletalMesh
在本教程中,我使用了官方赛车项目的模型,资源地址: 官方赛车项目.
(我使用的是DriveableCar包里面的车辆,与作者教程不相同)
无论如何,你的SkeletalMesh都最少需要一个根骨骼以及每一个可动轮子的骨骼。
首先我们需要进入physicsAsset 界面,创建一个新的或者打开现有的都行
删除所有内容
结果:
现在创建一个车辆底盘的碰撞(教程作者:不会的话自己去找基础教程),不需要太精确。
但请确保你没有创建约束。
为车轮创建碰撞,不用管他的形状,因为实际上这些不用于碰撞
点击Root节点,在Primitives处右键->copy
随便找一个简单StaticMesh,然后将碰撞粘贴到他的Primitives里。
Step 8: 添加SkeletalMesh到蓝图
SkeletalMesh仅仅是用于表现效果,实际逻辑还是使用StaticMesh的碰撞。
设置VehicleMesh组件为刚刚设置了碰撞了StaticMesh
设置Visible为false/Hidden in game为true,不让其在游戏中显示
在之前的蓝图里添加SkeletalMesh组件,并对其赋值为我们的SkeletalMesh
选择你的轮胎组件,在轮胎的配置里勾选Connect to Bone并写上骨骼名,其会自动配置碰撞体大小。也可以手动调整大小
Step 9: 测试车辆
== 汽车的Shifter一开始为Park,是动不了的。需要用ShifterDown将其设置为Driver模式下才能前进。==