载具用户指南

虚幻引擎4蓝图载具用户指南。

Windows
MacOS
Linux

本指南结束时,您将具有功能完整的载具,可在您自己的游戏项目中使用。

目标

在本指南中,我们将介绍如何在新空白项目中使用 轮式载具(Wheeled Vehicle) 蓝图类创建载具。本指南假定您已具有准备就绪的 骨架网格体物理资源 可供使用,并将带领您完成创建可以发挥作用的载具所需的所有必需编辑器项目的创建过程。本指南结束时,您将具有功能完整的载具,它与载具游戏或载具模板中的载具类似。

如果您需要有关如何将载具骨架网格体和物理资源导入到引擎中的信息,请参阅载具内容指南。或者您可以以 载具模板载具游戏 项目为基础,获取预构建的骨架网格体和物理资源。载具模板 位于 虚幻项目浏览器新建项目(New Project) 菜单中,载具游戏 位于 Epic Games启动程序学习(Learn) 选项卡上。

目标

在跟着本教程动手操作的过程中,您将在虚幻引擎4(UE4)中创建构成载具的关键组件。某些组件需要用到您在UE4外部创建的资源,但是大部分组件都可在编辑器中直接创建!

以下是构成我们将构造的载具的各个资源:

  • 一个骨架网格体

  • 一个物理资源

  • 一个动画蓝图

  • 一个载具蓝图

  • 一个或多个轮子蓝图。

  • 一个TireConfig数据资源

overview.png

本指南结束时,您将了解如何设置其中的每个资源类型并了解这些资源如何相互配合以使载具动起来!

  • 如何配置TireConfig数据资源

  • 如何为前后轮配置轮子蓝图。

  • 如何为载具设置专用动画蓝图。

  • 如何使用骨架网格体、动画蓝图和轮子蓝图配置载具蓝图。

  • 如何配置轴映射和绑定以操控载具。

  • 如何创建和指定新的游戏模式以生成载具。

1 - 必要的项目设置

  1. 从启动器打开 虚幻引擎(Unreal Engine)。将出现项目浏览器

  2. 单击 新建项目(New Project) 选项卡,然后选择 C++ 选项卡。然后,选择 基础代码(Basic Code),以便我们有一个干净的起点,并确保设置了 具有初学者内容(With Starter Content)。我们需要输入一个项目名称,所以我们将使用“QuickStart”。我们现在可以单击 创建项目(Create Project) 开始。

    CreateProject.png

    虚幻编辑器(Unreal Editor) 现在将打开我们的新项目。Visual Studio 也将打开并加载我们的项目创建的解决方案文件。

    BlankProject.png

2 - 创建TireConfig数据资源和轮子蓝图

在创建我们自己的载具的第一个步骤中,我们用两个部件组成载具的轮子;即TireConfig数据资源和轮子蓝图类。我们将首先创建TireConfig数据资源,然后创建包含轮子属性的轮子蓝图,包括分配TireConfig数据的位置。

按照下面的步骤开始创建TireConfig数据,然后将其与轮子蓝图一起使用。

Tire Config数据资源

TireConfig数据资源 用于控制 摩擦力比例(Friction Scale)。该值不仅影响轮胎的原始摩擦,还可调整相关数值,以控制载具急转弯时出现轮胎打滑的难易度。还有一个 轮胎摩擦力比例(Tire Friction Scale) 的额外选项,使用此选项,您能够为不同的物理材质类型指定特定的摩擦力比例。

tires02.png

创建TireConfig数据资源

  1. 内容浏览器 中单击 新增(Add New) 按钮,将鼠标悬停在 其他(Miscellaneous) 上方,然后从上下文菜单中选择 数据资源(Data Asset)

  2. 选择数据资源类(Pick Data Asset Class) 窗口中,选择 TireConfg 以创建该类型的数据资源。 1.新资源将在 内容浏览器 中创建。确保给它起一个可识别的名字,方便以后查找。

newDataAsset.png

选择数据资源类(Pick Data Asset Class) 窗口中,您会注意到这里也有一个 TireType 数据资源类。这是一个已弃用的函数,只在将旧项目升级到虚幻引擎4.15版本(或更新版本)时使用。如果使用的是版本4.15(或更高版本)的虚幻引擎,则不应该有任何理由使用此数据资源类型。

轮子蓝图

大多数情况下,您将至少有两种类型的轮子;受转向影响的轮子和不受转向影响的轮子。此外,可能会有不同大小的前后轮,在这种情况下,您可以完全控制对不同的半径、质量、宽度、手刹效果、悬架和许多其他属性的设置,以获得您想要的载具操控效果。

WheelBlueprintDetailsPanel.png

单击图像以查看大图。

创建轮子蓝图

  1. 内容浏览器 中,单击 新增(Add New) 按钮,并从菜单中选择 蓝图类(Blueprint Class)

  2. 选取父类(Pick Parent Class) 窗口中,在 所有类(All Classes) 下搜索“轮子(wheel)”,然后选择 载具轮子(VehicleWheel)

  3. 新资源将在 内容浏览器 中创建。确保给它起一个可识别的名字,方便以后查找。

  4. 可选(Optional) - 重复这些步骤,设置一个 轮和 轮类型。

newWheels.png

编辑轮子蓝图

现在您已获得轮子蓝图,在蓝图编辑器中打开它,可以看到所有可用于编辑轮子的选项!

我们首先需要为每个轮子更改五个属性,当您开始在自己的游戏中测试载具时,其余的属性将更改载具的性能(稍后应该进行调整)。

  • 形状半径(Shape Radius)

  • 形状宽度(Shape Width)

  • 受手刹影响(通常仅限后轮)

  • 转向角(通常仅影响前轮)

wheelProps.png

这里的属性设置为匹配载具游戏中的车辆。如果使用自己的骨架网格体,您可能需要使用不同的 形状半径(Shape Radius)形状宽度(Shape Width) 值。

现在,在 轮胎(Tire) 部分下,您可以分配起初使用 轮胎配置(Tire Config) 选择框创建的Tire Config数据资源。

TireConfig.png

最终结果

此时,您已经设置了Tire Config数据资源,该资源用于控制轮胎在任何表面上的打滑程度,还设置了轮子蓝图,可用于指定轮子的所有不同属性。在下一步中,您将通过创建用于处理我们的车辆所需的所有动画信息(如旋转轮胎、转向、悬挂等)的动画蓝图来继续创建所需的资源,这些资源构成我们的载具。

3 - 创建载具动画蓝图

此时,您已经创建了TireConfig数据资源和轮子蓝图,稍后将在载具蓝图中使用它们。在此步骤中,您将通过创建一个动画蓝图来继续准备您的内容,该蓝图将驱动您对载具轮子的所有动画需求。

动画蓝图

动画蓝图将用于控制我们的载具骨架网格体的动画,使其具有特定于载具的动画,如旋转轮胎、悬架、手刹和转向。为了减轻为这些类型的东西创建动画的工作量,您可以使用 Wheel Handler 节点来驱动这些类型的动画。

Wheel Handler节点

动画蓝图用于获取和控制载具的动画,更具体地说,Wheel Handler 节点使得控制载具的所有动画变得相当容易,几乎不需要额外的设置。它只是从轮子上获取必要的信息(它旋转的速度有多快?它是否受手刹影响?该轮子的悬挂设置如何?)并将查询结果转换为与轮子关联的骨骼上的动画。

wheelHandler02.png

创建动画蓝图

  1. 内容浏览器 中,单击 新增(Add New) 按钮,然后将鼠标悬浮在 动画(Animation) 上,并从菜单列表中选择 动画蓝图(Animation Blueprint)

  2. 创建动画蓝图(Create Animation Blueprint) 窗口中,从您的载具列表中找到并选择 您的 骨架。然后单击 OK(确定)

    或者,您可以直接从骨架网格体创建动画蓝图,方法是 内容浏览器 中选择动画蓝图,可在其中选择 创建(Create) > 动画蓝图(Anim Blueprint)

    newAnimBP.png

  3. 现在您已经有了一个动画蓝图,您可以选择并双击它,以从 内容浏览器 打开它。从主工具栏中选择 类设置(Class Settings),然后在 细节(Details) 面板中将 父类(Parent Class) 设置为 VehicleAnimInstance

    AnimBPParentClass.png

    如果未正确设置为正确的 父类(Parent Class),您将无法访问本指南后面需要的节点。

  4. 动画图表(Anim Graph) 中,开始时您将需要右键单击打开上下文菜单,然后搜索 Mesh Space Ref Pose 节点。从列表中选择它并创建到位。

    meshSpace.png

  5. 接下来,右键单击 动画图表(Anim Graph) 以打开上下文菜单,然后搜索 车轮处理器(Wheel Handler),并从列表中选择以创建它。

    wheelHandler01.png

  6. 现在连接节点,使您的 动画图表(Anim Graph) 类似如下。

    animBPanimGraph.png

  7. 另外,如果您有额外的框架或其他悬挂需求(如来自载具游戏的车辆),您将需要动画图表中额外的节点来处理影响这些多边形的节点。载具游戏中的车辆中,额外的关节用于控制轴与轮子的连接。这些是由一个简单的 Look At 节点驱动的,当给定轮子节点时,该节点将由 Wheel Handler 节点驱动,而 Look At 节点将确保悬挂保持附着在轮子上。

    fullVehGameAnimBP.png

最终结果

您已完成动画蓝图的设置!Component to Local 转换节点将自动创建,且动画蓝图现在将驱动载具车轮。继续下一步,学习如何创建一个包含所有之前步骤的载具蓝图。

4 - 创建载具蓝图

到目前为止,您已经创建了一些不同的资源(TireConfig数据资源、轮子蓝图和动画蓝图),您需要将这些资源组合在一起,在虚幻引擎4(UE4)中创建一个功能齐全的载具。在此步骤中,您将使用之前创建并设置的资源创建载具蓝图。

创建和编辑载具蓝图

  1. 内容浏览器 中,单击 新增(Add New) 按钮,并从菜单中选择 蓝图类(Blueprint Class)

  2. 选取父类(Pick Parent Class) 窗口中,在 所有类(All Classes) 下搜索“轮子(wheel)”,然后选择 轮式载具(WheeledVehicle)

  3. 内容浏览器 中,将创建新的蓝图资源。确保给它起一个可识别的名字,方便以后查找。

    newVehicle.png

  4. 从内容浏览器中,选择并打开新创建的载具蓝图。

    MyVehicleBP.png

  5. 组件窗口(Components Window) 中单击名为 Mesh骨架网格体组件(Skeletal Mesh Component)。然后在其 细节(Details) 面板中,将 骨架网格体(Skeletal Mesh) 选择框设置为您的载具自身的骨架网格体资源。

    ComponentsWindow.png

  6. 动画蓝图生成的类(Anim Blueprint Generated Class) 设置为本指南步骤2中创建的您载具的动画蓝图。

    AnimBPandSkelMesh.png

  7. 返回 组件(Components) 窗口并选择 添加组件(Add Component) 按钮,然后选择 摄像机组件(Camera Component)

    addCamera.png

  8. 使用蓝图编辑器中的视口将摄像机定位于要使其相对于您载具的位置。在下图中,它定位于载具后面,微微抬起,朝载具倾斜。

    cameraPlacement.png

  9. 在选中 摄像机(Camera) 组件的情况下(在 摄像机设置(Camera Settings) 下的 细节(Details) 面板中),禁用 使用Pawn控制旋转(Use Pawn Control Rotation) 的选项。这将锁定到摄像机的视图方向(而不是玩家控制器的视图方向)。

    cameraControllerOff.png

  10. 下一步,在组件(Components)窗口中选择 载具移动组件(Vehicle Movement Component)

    ComponentsWindow2.png

    载具设置(Vehicle Setup) 部分下的 细节(Details) 面板中,展开 轮子设置(Wheel Setups) 旁的箭头,并为各个轮子(0-3)进行如下设置:

    • 轮子类(Wheel Class) 设置为您创建的轮子蓝图。

    • 骨骼名称(Bone Name) 设置为应由轮子控制的关节。

      wheelsSetup.png

      上图中的 骨骼名称(Bone Name) 特定于此骨架网格体。如果使用载具游戏中的载具,可以使用这些骨骼名称。

    如果是前轮或后轮,轮子的分配顺序无关紧要,只有 骨骼名称(Bone Name)轮子类(Wheel Class) 有影响。出于组织的目的,最好将轮子(前后)放在一起。

    如果需要超过4个轮子,可以单击 轮子设置(Wheel Setups) 属性旁的“+”图标添加更多。

最终结果

此时,假设您的载具并不比小型货车大多少,那么默认值将是您进入本指南下一步的一个合适的起点,您将在这里设置输入和控件来正确地测试车辆。

5 - 设置和测试功能

到目前为止,除了能够在游戏中进行控制外,您已经通过在虚幻引擎4中创建轮子蓝图、动画蓝图和载具蓝图完成了实现一辆功能齐全的载具所需要做的一切!在这一步中,我们将向您展示如何设置必要的轴映射和绑定,以便您可以驾驶载具四处行驶并全面测试其功能。

因为有几种方法可以设置测试载具,假设您从一个空白的项目模板开始,那就需要添加所有的输入来控制载具。如果您从现有的模板开始,这些轴映射和绑定中的一些(或全部)可能已经在您的项目中可用。

设置功能按钮

  1. 转到主菜单并选择 编辑(Edit) > 项目设置(Project Settings) 以打开项目设置(Project Settings)窗口。然后,在侧面板的 引擎(Engine) 部分下,选择 输入(Input)

    input.png

  2. 在绑定(Bindings)菜单中,设置以下功能按钮(如果当前未列示它们):如果已列示它们,明智的做法是再次检查它们是否像这里列出的那些一样设置好了,这样您就知道您的载具将可以正常工作。

    1. 首先,我们将单击动作映射(Action Mappings)属性旁的 + 号来设置 动作映射(Action Mappings)

      1TF.png

    2. 将动作映射从“NewActionMapping_0”重命名Handbrake。然后,展开此属性,使用选择框将键值从“无(None)”更改为 空格键(Space Bar)

      2TF.png

    3. 接下来,我们将单击轴映射(Axis Mappings)属性旁边的 + 符号来设置 轴映射(Axis Mappings)。重复这个步骤,这样就有了两个轴映射,就像这样:

      3TF.png

    4. 将轴映射从“NewAxisMapping_0”重命名Forward。然后对第二个进行相同的操作,并将其从“NewAxisMapping_1”重命名为 Right

      4TF.png

    5. 展开(Expand) 前向(Forward) 轴映射,然后单击 + 符号一次,这样您就可以在“前向(Forward)”下列出两个轴映射。然后将第一个“无(None)”设置为使用 W 键进行输入。将第二个“无(None)”设置为使用 S 键。

      5TF.png

    6. 前向(Forward) 轴映射下的 S 键输入旁,将 比例(Scale) 值设置为 -1

      6TF.png

    7. 展开(Expand) 右向(Right) 轴映射,然后单击 + 符号一次,这样您就可以在“右向(Right)”下列出两个轴映射。然后将第一个“无(None)”设置为使用 D 键进行输入。将第二个“无(None)”设置为使用 A 键。

      7TF.png

    8. 右向(Right) 轴映射下的 A 键输入旁,将 比例(Scale) 值更改为 -1

      8TF.png

    设置完行动映射和轴映射之后,您的绑定应如下所示:

    SetupInputs.png

  3. 既然已经设置了功能按钮,就需要对它们进行实际操作。因此,打开您创建的 载具蓝图(Vehicle Blueprint) 并找到 事件图表(Event Graph),可在其中调用您在项目设置输入部分中创建的这些轴和动作事件。

    MyVehicleBP.png

  4. 在事件图表中,为油门设置创建以下内容:

    throttleBP.png

  5. 在事件图表中,为转向设置以下内容:

    steeringBP.png

  6. 在事件图表中,为手刹设置以下内容:

    handbrakeBP.png

最终结果

现在,随着这些输入事件的添加,您就拥有了一个可以接受输入移动且功能齐全的载具!在下一个也是最后一个步骤中,您将设置一个新的游戏模式,在您启动游戏时使用您的载具pawn作为默认pawn。

6 - 设置新游戏模式

在前面的步骤中,您已经完成了载具蓝图的设置,并分配了使其正常工作所需的所有功能按钮。最后一步,您将设置一个新的游戏模式,该模式使用您自己的载具蓝图作为游戏的默认Pawn。

如果您在开始按本指南操作时没有使用空白项目模板,您可能会发现,分配给您的游戏模式与您将在此步骤中创建的游戏模式冲突。使用下面的步骤创建一个新的游戏模式,这样您就可以在整个指南中创建的载具内生成角色。

创建新游戏模式

  1. 内容浏览器 中,单击 新增(Add New) 按钮,并从菜单列表中选择 蓝图类(Blueprint Class)

  2. 选取父类(Pick Parent Class) 窗口中,选择 游戏模式基础(Game Mode Base),然后单击 选择(Select) 按钮创建游戏模式蓝图。

    newGameMode.png

  3. 内容浏览器 中,双击打开新的游戏模式蓝图,以便进行编辑。在 类(Classes) 下的 细节(Details) 中,在 默认Pawn类(Default Pawn Class) 旁,使用下拉菜单选择 您的载具蓝图(Your Vehicle Blueprint)(即在步骤3中创建的蓝图)。

    defaultPawnClass.png

    之后,可单击 保存(Save),然后 关闭(Close) 此窗口。

  4. 在主视口(Main Viewport)窗口中,在 游戏模式(Game Mode) 部分下的 世界设置(World Settings) 选项卡中,将 游戏模式覆盖(GameMode Override) 设置为 您的游戏模式蓝图(Your Game Mode Blueprint)

    setGameMode.png

最终结果

Play.png

祝贺您!现在,当您在编辑器中运行(PIE)时,您应该使用自己创建的工具自动生成。您已经了解了在UE4中创建自己的工作载具所需的所有知识。在学习本指南的过程中,您了解到:

✓ 如何配置TireConfig数据资源。
✓ 如何为前后轮配置轮子蓝图。
✓ 如何为载具设置专用动画蓝图。
✓ 如何使用骨架网格体、动画蓝图和轮子蓝图配置载具蓝图。
✓ 如何配置轴映射和绑定以操控载具。
✓ 如何创建和指定新的游戏模式以生成载具。

在虚幻引擎中对载具进行更多操作

有关载具的更多资源,可以看看以下页面:

标签
Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见