设置输入

关于如何在虚幻引擎 4 中进行输入设置的操作指南。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

在你导入或创建了人物、载具或宇宙飞船等资源后,你需要定义其如何对玩家输入做出反应。输入的定义主要是通过用户定义的动作映射绑定(用于按键的按下和释放)和坐标轴映射(用于连续性的输入)来实现。

在你定义完映射之后,便可以将它们与蓝图或 C++ 中的行为相绑定。

实现指南

本页面的内容

在本指南中,你将创建一个简单人物并对其进行设置以便接收输入,之后将该人物分配到一个 GameMode ,使之作为游戏过程中的默认 Pawn。如果你熟悉人物设置或拥有一个要接受输入的人物(同时设置了一个使用该人物的 GameMode ),你可以跳过人物创建部分,直接去新建输入并实施它们。

创建一个简单人物

在该部分中,我们将创建一个可对其分配输入的人物(如果你已经有一个 Character Blueprint ,可以跳过这一步)。

在此示例中,我们将使用 Blank 项目模板并启用 Starter Content

  1. 在项目的 Shapes 中, Right-click Shape_NarrowCapsule 图形并选择 Asset Actions - Create Blueprint Using

    Input2_1.png

    这就是我们将要控制的简单人物。

  2. Blueprints 文件夹中,打开新创建的蓝图,然后单击 File Reparent Blueprint 选项。

    Input_2.png

    我们需要将蓝图类型从 Actor 更改为 Character

  3. 在弹出的窗口内选择 Character 选项。

  4. 在蓝图窗口的右上角单击 Components 选项卡。

  5. Components 窗口下的 Components 选项卡中,单击 Add Component 并添加一个 Spring Arm

    Input2_3.png

    Spring Arm 组件会尝试让其子对象与父对象之间保持一个固定距离,但如果发生碰撞,就会将子对象撤回,如果没有碰撞,则使之发生回弹。这里的子对象将是一个 Camera ,所以我们将拥有第三人称视角。

  6. 选择 Spring Arm 后,在 Details 中搜索 rotation

  7. Camera Settings 中选中 Use Pawn Controller Rotation 选框。

    Input2_4.png

  8. 再次单击 Add Component 按钮并添加一个 Camera ,然后将其拖放到 Spring Arm 组件上。

    Input2_5.jpg

    这样就可以将它指定为 Spring Arm 的子对象。

  9. 选择 Camera 后,将 Location Rotation 值(位于 Transform )设置为 0

    Input_7.png

  10. 选择 StaticMesh1 组件,然后在 Details 中将 Location Z 值设置为 -90.0

    Input_6.png

  11. Compile Save ,然后关闭蓝图。

创建一个可使用简单人物的游戏模式

我们已经创建了一个简单人物,现在需要创建一个 GameMode 并让它使用我们的新人物。

  1. Content Browser 中,单击 New 按钮,然后单击 Blueprint 选项。

  2. 在弹出的窗口内单击 Game Mode 按钮。

    Input_8.png

  3. 命名后打开 GameMode 蓝图并单击 Defaults 选项卡。

  4. Defaults 选项卡的 Classes 部分,单击 Default Pawn Class 下拉菜单并选择新人物。

    Input2_9.png

  5. Compile Save ,然后关闭蓝图。

  6. 在主编辑器窗口中,单击菜单栏上的 Edit 按钮并选择 Project Settings

    Input_10.png

    现在,我们要让我们的项目使用新建的 GameMode

  7. Project Settings 中,单击 Maps & Modes 选项。

  8. Maps & Modes Default Modes 部分,单击 Default GameMode 下拉菜单并选择你的 GameMode

    Input2_11.png

新建输入(Action/Axis Mappings)

以下步骤将指引你为项目添加新的 Action Axis Mappings ,然后你可以将其分配给你的人物。

  1. Project Settings 菜单的 Engine 中,单击 Input 选项。

  2. Bindings 中,单击 + 符号(位于 Action Mappings Axis Mappings 旁边)以重建下面的设置。

    Input_12.png

  3. 为空映射填入内容(如下所示)。

    Input2_13.png

    你需要在这里为每一个映射命名,然后为其分配一个输入。请务必将高亮显示的 Scale 值设置为 -1.0 ,因为在累加坐标值的时候, Scale 充当了按键值的乘数(这可以让我们得到相反方向)。

在蓝图中实施动作/坐标轴映射

通过 Project Settings 创建输入后,你便可以从 Blueprint 内调用这些输入了。在这一部分中,我们将针对简单人物(或是你已有的人物)实施这些输入设置。

  1. 在你的项目中,打开要分配输入的 Character Blueprint Shape_NarrowCapsule )。

  2. 在蓝图中, Right-click 图表上的任意位置,搜索 Turn ,然后添加 Turn 坐标轴事件。

    Input2_14.png

  3. 拖开 Axis Value 并搜索 Yaw ,然后添加 Add Controller Yaw Input 节点。

    Input_15.png

  4. 在图表中 Right-click ,然后添加 LookUp 坐标轴事件。

  5. 拖开 Axis Value 并搜索 Pitch ,然后添加 Add Controller Pitch Input 节点。

    Input_16.png

  6. 在图表中 Right-click ,然后添加 Jump 坐标轴事件。

  7. 拖开 Pressed 针并搜索 Jump 函数。

    Input2_17.png

  8. 在图表中 Right-click ,然后添加 MoveForward 坐标轴事件。

    Input2_18.png

  9. 拖开 Axis Value 并添加 Add Movement Input 节点。

  10. 在图表中 Right-click ,然后添加 MoveRight 坐标轴事件。

  11. 拖开 Axis Value 并添加 Add Movement Input 节点。

    Input2_19.png

    事件添加完成,但我们还需要为每个事件指定方向。

  12. 在图表中 Right-click 并搜索 Get Control Rotation

    Input2_20.png

  13. 拖开 Return Value 并添加一个 Break Rot 节点(用于将旋转分解为俯仰(Pitch)、偏航(Yaw)和横滚(Roll))。

  14. 拖开 Yaw 针并添加一个 Make Rot 节点(根据Pitch、Yaw和Roll做出旋转)。

    Input2_21.png

  15. Right-click Make Rot 节点并选择 Break link to Break Rot (Yaw)

    Input2_22.png

    我们要将 Pitch Roll 归零,仅仅保留 Yaw

  16. Break Rot Yaw 连接至 Make Rot Yaw

  17. 拖开 Make Rot Return Value 并添加一个 Get Forward Vector Get Right Vector 节点。

  18. Get Forward Vector 连接至与 MoveForward 事件绑定的 World Direction

  19. Get Right Vector 连接至与 MoveRight 事件绑定的 World Direction

    Input_23.png

    具体顺序应当与上面类似。

  20. Compile Save ,然后关闭蓝图。

  21. 在编辑器中运行。

现在,你应当可以用我们创建的胶囊人物(或是你选用的人物)在场景中四处移动或跳跃。

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消