实现材质动画
在以下步骤中,我们将在对象上创建闪烁变化的 材质,并使玩家角色靠近时 材质 颜色发生变化。
创建项目
在这部分中我们先设置项目。
从 Unreal Project Browser 窗口中创建一个 New Project,然后使用 Blueprint Third Person 模板。
启用 Include starter content 选项。
为项目命名。
上述步骤设置完成后,点击 Create Project 创建新项目。
在 工具栏 菜单中选择 Matinee 并点击 Add Matinee 按钮。
如出现 Matinee 撤销警告提示,点击 继续 按钮。
Matinee Editor 窗口将打开。
点击查看全图。
关闭 Matinee,然后重复步骤 1-3 创建另一个 Matinee Actor,使关卡中存在两个 Matinee Actor。
关闭第二个 Matinee 窗口,然后在 Content Browser 的 Game/Props 路径下找到 SM_Chair,将其拖入关卡。
在 Game/Props 文件夹中将 SM_Stairs 拖入关卡。
可在关卡中随意放置椅子和台阶。
在 Modes 菜单的 Basic 标签下,点击将 Box Trigger 拖入关卡,然后按下 R 键 调整框的大小,使椅子位于其中。
玩家进入触发框后,椅子将改变颜色(将在本页之后的步骤中进行设置)。
在 World Outliner 中点击 Matinee Actor(添加的首个 Matinee),然后在 Details 面板中点击 Open Matinee。
最小化 Matinee,点击 SM_Chair,重新打开 Matinee,然后在 Tracks 窗口 中 单击右键 并选择 Add New Empty Group。
在 Name Group 窗口中,为群组赋予描述性的命名,如 Chair。
在 Matinee 的新群组上 单击右键 并选择 Add New Vector Material Parameter Track。
选择 Matinee 并打开其他 Matinee Actor。
最小化 Matinee,点击 SM_Stairs,重新打开 Matinee,然后在 Tracks 窗口 中 单击右键 并选择 Add New Empty Group。
在 Name Group 窗口中,为群组赋予描述性的命名,如 Stairs。
在 Matinee 的新群组上 单击右键 并选择 Add New Float Material Parameter Track。
选择关卡中的椅子,然后在 Materials 下的 Details 面板中点击 Browse To(放大镜)图表。
用于椅子的材质将在 Content Browser 中高亮,双击 M_Chair 材质 将其在 材质编辑器(Material Editor) 中打开。
向下滚动鼠标滚轮 拉远视角,点击带橘色方块的节点,然后在 Details 面板中点击 Default Value 条。
在 Color Picker 窗口中,点击并拖动橘色(黄色框中)到 Save Color 条保存颜色。
我们稍后会用到它,现在已经有了一个座位默认颜色的引用。
关闭 Color Picker 窗口(无需保存)并关闭材质。
在 Content Browser 中,右键单击 M_Chair 材质 并选择 Create Material Instance。
在 Content Browser 中将创建一个可用于编辑的 材质实例(Material Instance)。可沿用默认命名。
选择关卡中的椅子,在 Content Browser 中选择 M_Chair_Inst,然后在 Details 面板中点击 Arrow 图标。
此操作将把 材质实例(Material Instance) 指定给椅子。
打开 Matinee Actor(指定到椅子的 Matinee)并点击 ...Material Param(Material Parameter 轨迹)。
在右边的 Details 面板中点击 Add 图标。
返回 Content Browser 确认 M_Chair_Inst Material Instance 已高亮,然后在 Matinee 中点击 Arrow 图标。
在 Param Name 框中输入 ColorSeats(这是步骤 3 中材质中的节点名),之后进行修改。
点击材质参数轨迹,按下 Enter 键在 0.00 处添加一个关键帧,然后将 时间条 移至 2.00 并添加另一个关键帧。
在结束标记上 单击右键 并选择 Move To Longest Track Endpoint,将 Matinee 长度缩减至 2 秒钟。
在第一个关键帧上 单击右键 并选择 Set Color,然后在 Color Picker 菜单中选择顶部的条指定默认椅子颜色。
在第二个关键帧上 单击右键 并选择 Set Color,在 Color Picker 菜单中选择默认颜色外的任何颜色,然后关闭 Matinee。
这是玩家角色靠近时椅子将会进行混合的颜色。
在 World Outliner 中选择 Matinee Actor,然后从工具栏选择 Blueprints - Open Level Blueprint。
在 Level Blueprint Event Graph 窗口中,单击右键 并从快捷菜单中选择 Add Reference to MatineeActor。
最小化关卡蓝图,然后在 World Outliner 中选择 TriggerBox1 将其高亮。
重新打开关卡蓝图,在 事件图表 中 单击右键 并选择 Add Event for TriggerBox1、Collision、以及 Add OnActorBeginOverlap。
当 Actor(在此例中为玩家角色)和触发框发生重叠时,该事件将执行。
重复前一步骤,选择 Add OnActorEndOverlap。
点击并拖动 MatineeActor 节点的输出引脚,然后释放;在快捷菜单中搜索 Play,然后从菜单中选择 Play。
重复前一步骤,搜索并选择 Reverse。
Matinee 应该与 Play 和 Reverse 节点衔接起来。
点击并拖动 OnActorBeginOverlap 节点的 执行 输出引脚,将其和 Play 节点的 执行 输入引脚连接起来。
重复前一步骤,拖动 OnActorEndOverlap 节点将其与 Reverse 节点连接起来。
点击蓝图窗口左上角的 Compile 按钮。
关闭蓝图,然后在主工具栏中点击 Play 按钮即可在编辑器中进行游戏。
#player_Wr4AROZC4iU { margin: 0px; width: 640px; display: inline-block; position: relative; overflow: hidden; } #player_Wr4AROZC4iU:after { content: ""; padding-top: 360px; display: block; }椅子默认为橘色。玩家角色靠近时将进行颜色混合并变为所选颜色。
玩家角色离开椅子后,它将变回默认颜色。
在 Content Browser 的 Game/Materials 文件夹下,在 M_Basic_Wall Material 上 单击右键,选择 Create Copy 并为其命名。
双击 材质 的副本将其在 材质编辑器(Material Editor) 中打卡,然后点击并删除 Color 节点。
点击图片查看全图。
在图表窗口中 单击右键 并输入 scalar,然后从窗口中选择 ScalarParameter 选项。
将节点命名为 StepsColor,将其和 Material Attributes 节点的 Base Color 引脚 连接 起来。
按下 Apply 和 Save 按钮,然后关闭 材质编辑器 窗口。
选择关卡视口中的台阶将其高亮。
选择 Content Browser 中的 M_Basic_Wall Material 将其高亮。
在台阶 Details 面板的 Materials 下,点击 Element 1 的 箭头 图标指定材质。
在 Content Browser 中选中 步骤 1 中创建的材质,将其高亮。
在台阶 Details 面板的 Materials 下,点击 Element 0 的 箭头 图标指定材质。
在 World Outliner 中选择 MatineeActor1(与台阶相关的 Matinee),然后在 Details 面板中点击 Open Matinee 按钮。
点击 ...Material Param(材质参数)轨迹,然后在 Details 面板中的 Target Materials 下点击 Add 图标。
返回 Content Browser 确认步骤 1 中的材质已高亮,然后在 Matinee 中点击 Arrow 图标。
在 Param Name 框中 输入 StepsColor。
在材质参数轨迹上的 0.00、0.50、1.00 处添加关键帧,并将结束标记 移至 1.00。
在第二个关键帧上 单击右键,选择 Set Value 将值设为 1,然后 关闭 Matinee。
在 World Outliner 中选择 MatineeActor1,然后在 Details 面板中 Play 下勾选 Play on Level Load and Looping。
在主编辑器中,点击 Play 按钮在编辑器中进行游戏。
可以看到台阶阶梯在黑色和白色之间来回闪烁变化。
如需加快闪烁速度,在 Matinee 中将关键帧之间的时间调短即可。