设置门


在下列步骤中我们将创建一扇角色进入/离开触发框时自动开关的门。

创建项目

在这部分中我们先设置项目。

  1. Unreal Project Browser 窗口中创建一个 New Project,然后使用 Blueprint Third Person 模板。

    images/MatineeHowTo.jpg

  2. 启用 Include starter content 选项。

  3. 为项目命名。

  4. 上述步骤设置完成后,点击 Create Project 创建新项目。

放置门和触发器

在这步中我们放置门并为门放置触发器。

  1. Content Browser 中选择 Props 文件夹,找到 SM_DoorFrame 静态网格体。

    MHT1_DoorFrame.png

    如未发现 Props 文件夹,请重新查看 创建项目 步骤,确认已启用 Include Starter Content

  2. SM_DoorFrame 静态网格体上 单击左键 将其拖放进 关卡视口

    images/MHT_DoorFrameDragIn.jpg

  3. 在 Props 文件夹中找到 SM_Door 静态网格体并拖放进关卡视口。

    images/MHT_DoorDragIn.jpg

  4. 在 Content Browser 中再次找到 SM_Door 静态网格体,双击 将其在 静态网格体 查看器中打开。

  5. Details 面板中,在搜索栏中输入 Collision,将 Collision Complexity 设置设为 Use Complex Collision as Simple

    images/MHT_CollisionComplexity.jpg

    以上步骤将在门上应用碰撞机制。

  6. 在关卡视口中选择 SM_Door,前往 Details 面板。在 TransformRotation 设置中将 Z 轴值设为 -180

    MHT1_RotateDoor.png

    它将自动调整为 -179.99,为正常现象。

  7. 使用 平移(Translation) 控件将门放入门框内。

    MHT1_MoveDoor.png MHT1_MoveDoor2.png

  8. Modes 菜单的 Basic 标签下选择 Box Trigger 并将其拖放进关卡视口中的门框内。

    images/MHT_DragInBoxTrigger.jpg

  9. 在 Details 面板中的 Shape 部分选择 TriggerBox,将 X 轴的 Box Extent 数值改为 140

    MHT1_TriggerBoxSize.png

    注解:触发框 在门框里向里延伸出一部分,使门提前向里打开(在玩家到达之前)。

    玩家使用 蓝图 从任意一边进入 触发框,使门向不同方向打开。关于这类实例,请查阅 2.4 - 带触发器的门 中的内容范例。

  10. 门和触发器已放置好,下一步我们将添加一个 Matinee Actor 控制开关。

添加 Matinee Actor

在这步中,我们将添加 Matinee Actor 并设置 关键帧(Keyframes) 控制门的开关。

  1. 工具栏 菜单中选择 Matinee 并点击 Add Matinee 按钮。

    images/MHT_AddMatinee.jpg

  2. 在出现的 Matinee 撤销提示上点击 继续 按钮。

    MHT1_MatineeWarning.png

  3. Matinee Editor 窗口将打开。

    点击查看全图。

  4. Tracks 窗口(All 下的空白部分)中 单击右键,然后从快捷菜单中选择 Add New Empty Group

    MHT1_TrackContextMenu.png

  5. 窗口提示为出现的群组输入 New Group Name 时,为该群组命名(在此例中我们命名为 Door)。

  6. 最小化 Matinee 窗口,然后前往 主编辑器 中的 World Outliner 窗口并选择 SM_Door 将其高亮。

    MHT1_SelectDoor.png

  7. 返回 Matinee 窗口并在群组(门)上 单击右键 呼出快捷菜单,选择 Actors,然后选择 Add Selected Actors

    MHT1_AddDoorToGroup.png

    此操作将把 SM_Door Actor 添加至 Door 群组。

  8. 再次在群组(门)上 单击右键 呼出快捷菜单,然后选择 Add New Movement Track

    MHT1_AddMovementTrack.png

  9. 运动轨迹(Movement Track) 被添加后,将在时间 0.00 上沿轨迹自动添加新 关键帧(下图 1 所示)。

    MHT1_TrackExplained.png

    注解:图中 2 框内包含开始/结束标记(红色三角)、循环部分(绿色三角)和 时间条(Time Bar)(黑色条)。

  10. 时间条单击左键 将其拖至时间 0.50,然后按下 Enter 键添加一个新的 关键帧

    MHT1_AddKey.png

  11. 最小化 Matinee 窗口,在选中 SM_Door 的情况下返回关卡视口,按下 E 键进入 旋转(Rotation) 模式。

    MHT1_RotateWidget.png

  12. 左键单击 旋转 控件的 蓝色 弧(控件会发生变化),向右旋转至 -90.0 度。

    MHT1_DoorOpen.png

  13. 返回 Matinee 窗,左键单击 红色箭头 结束标记,然后将其移至左边 0.50 的位置。

    MHT1_EndPointMoved.png

  14. Matinee 序列设置已完成。在下一步中,我们将把 Matinee 和 触发器 衔接起来,完成操作。

Matinee触发器 衔接起来

在这步中我们将把 Matinee触发器 衔接起来,达成角色进入触发器时门自动打开,角色离开触发器时门自动关闭的效果。

  1. 工具栏 菜单中选择 Blueprints 并点击 Open Level Blueprint 按钮。

    images/MHT_OpenLvlBlueprint.jpg

  2. 最小化 关卡蓝图(Level Blueprint),然后在 关卡视口World Outliner左键单击 MatineeActor 选中。

    MHT1_MatineeSceneOutliner.png

  3. 打开 关卡蓝图 窗口,在 事件图表(Event Graph)单击右键,在快捷菜单中选择 Add Reference to MatineeActor 选项。

    images/MHT_MatineeReference.jpg

  4. 此操作将把 MatineeActor 添加至 关卡蓝图事件图表

    MHT1_MatineeAddedToBP.png

  5. 最小化 关卡蓝图(Level Blueprint),然后在 关卡视口World Outliner左键单击 TriggerBox 选中。

    MHT1_TriggerBoxSceneOutliner.png

  6. 打开 关卡蓝图 窗口,在 事件图表单击右键,然后在快捷菜单中的 Add Event for TriggerBoxCollision 下方选择 Add OnActorBeginOverlap 选项。

    MHT1_AddOnBeginOverlap.png

  7. 再次在 事件图表单击右键,重复之前步骤(选择 Add OnActorEndOverlap 选项除外)。

    MHT1_AddOnEndOverlap.png

  8. 事件图表左键单击 MatineeActor 节点并 拖动 输出引脚(蓝色圆圈)呼出快捷菜单,然后在搜索框中输入 Play 并选择 Play 选项。

    MHT1_DragOffPlay.png

  9. 再次 拖动 MatineeActor 节点,在快捷菜单的搜索框中输入 Reverse 并选择 Reverse 选项。

    MHT1_DragOffReverse.png

  10. 找到 OnActorBeginOverlap 节点,拖动 执行(Execute) 输出引脚并将其和 Play 节点的输入引脚连接起来。

    MHT1_ConnectOverlapToPlay.png

  11. 重复上述步骤,把 OnActorEndOverlap 节点的输出引脚和 Reverse 节点的输入引脚连接起来。

    MHT1_BlueprintConnected.png

  12. Level Blueprint's Toolbar 菜单中,点击 Compile 按钮。

    MHT1_ClickCompile.png

  13. 蓝图现已完成,触发框 已和 Matinee Actor 衔接起来。

  14. 最小化关卡蓝图,然后在主工具栏中点击 Play 按钮即可在编辑器中进行游戏。