触发事件并切换可视性


在以下步骤中,我们将使用 Matinee 事件(Matinee Events)可视性(Visibility) 轨迹创建在倒计时结束后爆炸的岩石和破碎效果。

创建项目

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

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

    MatineeHowTo.jpg

  2. 启用 Include starter content 选项。

  3. 为项目命名。

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

添加 Matinee Actor 和道具

在这步中,我们将添加用于此场景的 Matinee Actor 和资源。

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

    MHT1_AddMatinee.png

  2. 如出现 Matinee 撤销警告提示,点击 继续 按钮。

    MHT1_MatineeWarning.png

  3. Matinee Editor 窗口将打开。

    点击查看全图。

  4. 最小化 Matinee,在 Content BrowserGame/Props 文件夹中,右键单击 SM_Rock 并选择 Create Destructible Mesh

    MHT8_CreateDM.png

  5. Destructible Mesh 窗口将打开,点击工具栏中的 Fracture Mesh 按钮。

    MHT8_FractureMesh.png

  6. Destructible Settings 中,打开 Fracture Effects0,然后在 Particle System 下点击下拉菜单选择 P_Explosion

    MHT8_AssignParticleEffct.png

  7. 在相同部分点击 Sound 下拉菜单并选择 Explosion01 资源。

    MHT8_AssignSound.png

  8. 从工具栏点击 Save 按钮然后关闭窗口。

  9. Content Browser 中,将 SM_Rock_DM 拖入关卡。

    MHT8_DragRockIn.png

  10. Content BrowserGame/Particles 文件夹中,将 P_Fire 效果拖放进关卡里的岩石中。

    MHT8_AddFire.png

  11. P_FireDetails 面板中,向下滚动,找到 Activation 部分并 取消勾选 Auto Activate

    MHT8_UncheckAutoActivate.png

    此操作将使资源处于关卡内但不会启动,直到我们通过 Matinee 发出指令。

  12. 选择 TextRenderActor 文本并将其移至下图所示的小方块处(按 E 键进入旋转模式使其朝前)。

    MHT8_MoveTemplateText.png

  13. 在 TextRenderActor Details 面板中的 Text 部分下,将文本框中的文本替换为 3

    MHT8_3.png

    它将作为引发爆炸的倒数计时器。

  14. Details 面板中,记录 Transform 下的文本 Location 数值,稍后将会用到。

    MHT8_TextLocation.png

  15. 在关卡视口中选中文本,按下 Control+W 复制 Text Render Actor。

  16. 在新 Text Render Actor 的 Details 面板中,将 Location 数值设为和其他的 Text Render Actor 相同,将 Text 设为 2

    MHT8_2.png

  17. 重复以上两个步骤 创建另一个 Text Render Actor。在和其他相同的位置进行设置,将文本设为 1

  18. 为 Details 面板中 Rendering 下每个 Text Render Actors 勾选 Actor Hidden In Game

    MHT8_ActorHiddenInGame.png

    我们将通过 Matinee 控制 Actors 的可视性以及其默认隐藏的属性。

Matinee 添加资源并设置轨迹

在这步中,我们将把所有资源添加到 Matinee,并定义用于驱动序列的轨迹。

  1. World Outliner 或视口中 选择 Matinee,然后在 Details 面板中选择 Open Matinee,打开后将其最小化。

  2. 选择 视口中的石块,然后返回 Matinee 的 Tracks 窗口单击右键 并选择 Add New Empty Group

    MHT8_AddEmptyGroup.png

    在弹出菜单中为新群组命名,在此例中我们将其简单命名为 Rock

  3. 在群组上 单击右键,从快捷菜单中选择 Add New Event Track

    MHT8_AddEventTrack.png

  4. 选中事件轨迹,将 时间条 移至 4.00 处,按下 Enter 键添加一个关键帧,然后将事件命名为 Explode

    MHT8_EventTrackComplete.png

  5. 5.00 处的红色结束标记上 单击右键 并选择 Move To Longest Track Endpoint,将序列缩短至 4.00

    MHT8_SetLength.png

  6. 最小化 Matinee 并选择在 World Outliner 中设为 3Text Render Actor。

  7. 返回 Matinee 的 Tracks 窗口,单击右键 并选择 Add New Empty Group,将群组赋予 Text-3 之类的命名。

    MHT8_Text3Added.png

  8. 在群组上 单击右键 并选择 Add New Visibility Track

    MHT8_AddNewVisTrack.png

  9. 重复以上两步 创建两个新群组(Text-2Text-1),使两者均拥有 可视性 轨迹。

    MHT8_MatineeSetupComplete.png

  10. 点击 Track-3 的可视性轨迹,将时间条移至 1.00 处并按下 Enter 键,然后从弹出菜单中选择 Show 添加一个关键帧。

    MHT8_Show3.png

  11. 将时间条移至 2.00 处并按下 Enter 键,然后从弹出菜单中选择 Hide

    MHT8_Hide3.png

    1.002.00 之间将创建一个条,表明 text 3 将显示 1 秒钟。

  12. 重复之前两步展示/隐藏 2.003.00 的文本 2,以及 3.004.00 的文本 1,然后关闭 Matinee。

    MHT8_MatineeFinished.png

蓝图中使用 Matinee Actor

在这步中,爆炸 事件在 Matinee 序列中被调用时将触发事件,Matinee 结束后开启粒子效果。

  1. 在关卡视口或 World Outliner 中选择 MatineeActor,然后在主工具栏点击 Blueprints 按钮并选择 Open Level Blueprint

    MHT8_OpenLevelBlueprint.png

  2. 在图表窗口中 单击右键 并选择 Add MatineeController 选项。

    MHT8_AddMatineeController.png

  3. 最小化 关卡蓝图 并选择关卡中的石块,然后返回关卡蓝图,在图表中 单击右键 并选择 Add Reference to SM_Rock_DM

    MHT8_AddReferenceToRock.png

  4. 再次最小化关卡蓝图并选择 P_Fire 资源,然后返回关卡蓝图,单击右键 并选择 Add Reference to P_Fire

    MHT8_ReferencesAdded.png

  5. 左键单击并拖动 SM_Rock_DM 节点的输出引脚,在出现的窗口中输入文本 Apply,然后点击 Apply Radius Damage

    MHT8_ApplyRadiusDamage.png

  6. 左键单击并拖动 MatineeActorExplode 输出引脚,将其连接至 Apply Radius Damage 节点的输入引脚,然后将各自的 float 值设为 12000

    MHT8_ExplodeComplete.png

  7. 左键单击并拖动 SM_Rock_DM 节点的输出引脚,在出现的窗口中输入文本 Location,然后选择 Get Actor Location

    MHT8_GetActorLocation.png

  8. 左键单击并拖动 Get Actor Location 节点的输出引脚,将其和 Apply Radius Damage 节点的 Hurt Origin 输入引脚连接起来。

    MHT8_HurtOrigin.png

  9. 左键单击并拖动 P_Fire 节点的输出引脚,在出现的窗口中输入文本 Activate,然后选择 Activate 选项。

    MHT8_ActivateNode.png

  10. 左键单击并拖动 MatineeActorFinished 输出引脚,将其和 Activate 节点的输入引脚连接起来。

    MHT8_BlueprintFinished.png

  11. 点击工具栏上的 Compile 按钮并关闭关卡蓝图

    MHT8_Compile.png

  12. 在 World Outliner 中点击 MatineeActor,然后在 Details 面板中点击 Play on Level Load 选项。

    MHT8_PlayOnLoad.png

  13. 在主工具栏中点击 Play 按钮即可在编辑器中进行游戏。

    可以在场景中看到倒计时开始,石块爆炸,出现粒子效果和音效,之后石块位置上将出现火焰。