动画蒙太奇

动画蒙太奇(简称蒙太奇)是一种多功能工具,通过它可以实现多种动画效果,主要与公开代码或 蓝图可视脚本 中的动画控件相关。它也可用于创造各种动画效果,包括动画的智能循环,基于逻辑的动画切换,等等。

蒙太奇是可以创建并存在于 内容浏览器 中的动画资产。您可在运行时将这些资产直接插入动画图中,并修改它的任何状态。例如您可以跳转到不同片段,也可以重新链接不同的片段。这主要用于代码驱动的动画或一次性动画(例如近身攻击),让您能够控制触发器,在需要的时候停止,或者变换状态(循环或不循环)。

如果您的动画启用了 根运动 ,蒙太奇还提供了一种在互联的游戏之间复制根运动的方法。

蒙太奇示例

Montage_Screen2.png

上图是一个近身攻击动画,含有 3 个片段 [开始、循环和结束]。当玩家用鼠标 左键单击 时,目前情况下就会在您要求播放该蒙太奇的时候触发 开始(Start) 片段。中间的片段名为 循环(Loop)(它设置为循环播放),会紧跟着 开始(Start)片段播放,并不断循环。如果玩家松开鼠标按键,它就会停止,但您不希望动画立刻停止,因为这样的话动画就会在循环中突兀地停下。您希望将 循环(Loop)重新链接到 结束(End)片段,这样就会过渡到结束片段,并结束动画。

蒙太奇的部分其他用途包括:

  • 能够从动画蓝图事件图 中播放动画。

  • 将复杂的一系列动画串联起来,让它们成为一个动画。

  • 根据代码或蓝图脚本仅循环一个或多个动画中的特定部分。

  • 根据代码或蓝图脚本处理多个动画的基于事件的切换。

  • 能够将复杂的动画序列分配到可在代码或蓝图中切换的指定槽中。

  • 根据代码或蓝图脚本在各种动画序列之间精确切换。

动画内容示例 页面的第 1.5 节下也可以看到一个应用于角色的蒙太奇。

蒙太奇属性

以下是蒙太奇资产属性的详细列表。在 Persona 中查看蒙太奇时就可以看到这些属性,还可以通过在 内容浏览器右键单击 蒙太奇并从快捷菜单中选择“属性”(Properties)来访问它们。

MontageProperties.png

蒙太奇属性

蒙太奇(Montage)

混入时间(Blend In Time)

蒙太奇开始播放时角色从其当前姿势混入所用的时间。

混出时间(Blend Out Time)

蒙太奇结束播放时角色重新混合到其原始姿势所用的时间。

混出触发时间(Blend Out Trigger Time)

从序列结束到触发混出的时间。< 0 则使用混出时间,即混出在蒙太奇结束时结束。> = 0 则使用序列结束-混出触发时间来触发混出。

附加设置(Additive Settings)

预览基本姿势(Preview Base Pose)

设置一个用于附加混合空间的基本预览姿势。

动画(Animation)

速度比例(Rate Scale)

决定蒙太奇播放速度的乘数值。默认值为 1.0。

骨架(Skeleton)

包含与此蒙太奇关联的骨架。不能在编辑器中更改。

元数据(Meta Data)

元数据(Meta Data)

这是可以随资产保存的元数据。元数据是从 Anim Meta Data 类衍生的 Blueprintable 类。这允许您将定制元数据添加到动画资产(动画序列、动画蒙太奇、动画合成和混合空间都受到支持)。在 C++ 中可以通过调用 GetMetaData() 方法或对动画蒙太奇使用 GetSectionMetaData() 来查询动画资产中的数据。

缩略图(Thumbnail)

轨道俯仰角(Orbit Pitch)

摄像机围绕对象的轨道的俯仰角。

轨道偏航角(Orbit Yaw)

摄像机围绕对象的轨道的偏航角。

轨道缩放(Orbit Zoom)

相对于资产的界限球体距离的偏移。

蒙太奇 UI

在 Persona 中观察蒙太奇时,了解每个区域的构成和作用很有用。

MontageUI.png

  1. 蒙太奇(Montage)区域

  2. 片段(Sections)区域

  3. 元素计时(Element Timing)区域

  4. 通知(Notifies)区域

  5. 曲线(Curves)区域

蒙太奇(Montage)区域

蒙太奇(Montage)区域的组成如下:

MontageArea.png

  1. 片段轨道 - 显示所有已经为此蒙太奇定义的 片段 。可以用鼠标左键将片段拖动到时间轴上的不同位置。

  2. 槽轨道 - 显示当前的 ,并在右侧显示槽名称。可以根据需要在槽中填充任意数量的动画,它们将会按顺序播放。请注意,槽轨道中的多个动画的位置是错开的 - 一个在上,一个在下,以此类推。这可以帮助您区分不同的动画。

在一个蒙太奇中可以有任意数量的槽轨道,每一条都有自身的名称,并包含自身特有的动画。但是,每个蒙太奇只能有一条片段轨道。

片段

蒙太奇片段提供了一种将槽分解为动画的多个不同部分的手段。每个片段都有一个名称,并且在槽的时间轴中有自己的位置。您可以使用名称直接跳转到某个特定片段,或将某个片段安排为接在当前片段结束时播放。在蓝图中,您可以查询当前片段,跳转到某个片段,或设置将要播放的下一个片段。

可以把片段想象成音乐播放列表中的歌曲,而槽就是音乐专辑。就像使用许多现代的媒体播放器时一样,您可以选择要接在当前歌曲结束后播放的歌曲,或者直接跳转到您想立刻听的歌曲。

在片段轨道上 右键单击 并选择 新建蒙太奇片段(New Montage Section)就可创建片段。

在蒙太奇中,一个 就是一条轨道,其中可容纳任意数量的动画。您可以为槽命名,然后通过调用槽名称混合到特定的动画。这里最好用角色给武器装填弹药的动画来举例。您可以制作不同版本的填弹动画,分别用于角色站立时、蹲伏时和匍匐时。只要这 3 个动画都使用相同的时间设置,您就可以在蒙太奇中将每个动画分别放到一个独立的槽中;可以将这些槽命名为站立、蹲伏和匍匐。在动画蓝图的 动画图 中,您可以使用槽节点来决定根据角色的当前状态要播放的动画。当角色站立时,您可以使用站立槽中的动画结果。当角色匍匐时,您可以使用匍匐槽的结果。

有一点需要牢记,虽然许多蒙太奇控制将发生在动画蓝图事件图 中,但槽实际上是在 动画图 中受到处理的。这是通过槽节点来完成的,这类节点会提取槽的名称。将此节点放置在动画图执行的关键点上,就可以设置多个使用同一槽名称的蒙太奇。

片段(Sections)区域

在“片段”(Sections)区域中您可以为在“蒙太奇”(Montage)区域中定义的片段建立相互关系。例如,您可能希望动画的某一个片段(或一组片段)按特定顺序播放,甚至循环播放。

SectionsArea.png

  1. “创建默认”(Create Default)和“清除”(Clear)按钮 - 创建默认(Create Default)在所有片段之间创建默认关联,将它们逐一串联起来。清除(Clear)清除所有关联。

  2. 片段按钮 - 在此区域,您将看到您在“蒙太奇”(Montage)区域中定义的每个片段都有一个对应的按钮。选择某个现有片段,然后单击这些按钮之一,就可以将该按钮对应的片段与选定的轨道关联起来。例如,在上图中,我们使 Swing2 与 Swing1 关联。顺序实际上是 Swing1、Swing2,然后又是 Swing1,从而造成循环。请参见下面的 循环播放 部分了解详细信息。

  3. 片段关联轨道 - 在这里您可以显现并预览动画片段之间的关系。单击各个 预览(Preview)按钮可以分别查看每一条轨道的结果,单击 预览所有片段(Preview All Sections)按钮可看到所有片段依次播放。

循环播放

可以将片段设置为无限循环播放,这对于任何需要重复的动作极为有用。在一条片段关联轨道中多次关联同一片段就可以使该关联循环运行。片段将变为蓝色以表示循环。例如,假设一个动画中角色在给散弹枪装弹,一次装一发。您可以提取出角色塞弹入膛的片段,让它循环播放。然后您可以使用通知在蓝图中创建通知事件,每当该动画播放一次就使弹药计数加一。一旦该计数达到设定的数字(装弹已满),您就可以切换到角色关闭装弹口并恢复闲散姿态的动画。

元素计时(Element Timing)区域

“元素计时”(Element Timing)区域从“蒙太奇”(Montage)区域和“通知”(Notifies)区域提取信息,以帮助设定不同片段的时间。

ElementTiming1.png

轨道中的每个节点都有一个号码,表示该对象在整个蒙太奇中的触发顺序,并且带有与其描述的内容相符的颜色。默认颜色为:

  • 红色 - 通知、通知状态和通知状态结束标记

  • 浅蓝色 - 分支点通知

  • 绿色 - 蒙太奇片段

可以在 动画编辑器 首选项中编辑这些颜色,可在 编辑器首选项(Editor Preferences)中找到这些设置。

将鼠标悬停在轨道中的任意节点上都会显示工具提示,说明该节点代表什么。

ElementTiming2.png

轨道右侧有一个下拉菜单,可以切换不同元素的可见性。

ElementTiming3.png

通知(Notifies)区域

NotifiesArea.png

动画通知(简称AnimNotifies或通知)使得动画相关的程序员可以设置在动画序列的特定点处发生的事件。通知通常用于这样的特效,比如走动时的脚步声、跑动动画或在动画中产生一个粒子特效。然而,它有很多种不同的用途,因为您可以使用自定义的通知类型来扩展该系统,从而满足任何类型游戏的需求。

请参见 动画通知 (通知) 了解更多信息。

曲线(Curves)区域

CurvesArea.png

曲线提供了在动画正在播放过程中改变材质参数或顶点变形目标的方法。 其工作流程非常简单,只需要您简单地指定您要修改的资源(一个材质或顶点变形目标),相应地命名该曲线,然后调整动画播放期间的关键帧的值。

请参见 动画曲线 了解更多信息。

播放蒙太奇

可以通过多种不同方式播放蒙太奇:

  • 您可以将它们指定为 骨骼网格要播放的动画

  • 可以通过 蓝图 脚本或 C++ 直接调用它们。

  • 可以将它们作为 动画蓝图 的一部分合并到 动画图 中。

请参见 使用附加动画 了解如何在动画蓝图中使用蒙太奇的示例。该示例演示了一个角色可以同时执行两个相互独立的动画(在此示例中角色可以同时移动和射击)。

播放多个蒙太奇

在虚幻引擎 4.6 版之前,您只能一次播放一个蒙太奇。但是从 4.6 版起,可以通过使用 动画槽动画组 播放任意数量的蒙太奇。

下面是关于该工作方式的概要介绍:

  • 可将动画编成动画组。可以每组播放一个蒙太奇。如果要同时播放另一个蒙太奇,可以为其创建一个新的动画组。

  • Persona 中,动画组和动画槽都集中在 动画槽管理器(Anim Slot Manager)选项卡中(请参见下面的 动画槽管理器 )。

  • 可以使用下拉 UI 在有效的槽之间选择。

  • 在创建新的蒙太奇时,槽节点在最初有一条 默认槽,这样它们就能立即发挥作用。

动画槽管理器

动画槽管理器 中您可以管理动画槽和动画组名称。它会显示一个层次结构视图,允许您进行更改。您可以在 Persona 中的蒙太奇中通过单击放大镜图标(见下图)来打开动画槽管理器。

OpenAnimSlotManger.png

这将打开动画槽管理器。

AnimSlotManager.png

组和槽保存在 骨架 资产中,以便同一系列的动画蓝图和蒙太奇都能使用相同设置。动画槽管理器中有 保存(Save)按钮,因此您每次进行更改时,都可以方便地将更改保存到骨架资产。

右键单击 槽名称时,会显示快捷菜单,通过它也可以将槽移动到需要的不同组。这进一步方便了您管理自己创建的槽,将它们移动到不同的组并按您认为合适的方式整理。

SlotClicking.png

编辑蒙太奇轨道上的槽

下面是 Persona 中的 蒙太奇编辑器 示例,下拉框(已突出显示)列出可用于该轨道的槽。

SlotExample1.png

如果您需要创建新的槽或组,单击放大镜图标就可转到 动画槽管理器

横跨顶部的状态栏会显示蒙太奇所属的组。这是由第一条轨道的槽决定的。

SlotExample2.png

如果您有多个槽,状态栏还会显示设置是否有问题。例如,如果您将属于不同组的槽混合搭配,将出现一个警告标志,您将鼠标悬停到该标志上就可查看关于问题的更多信息。

SlotExample3.png

编辑动画蓝图中的槽

在动画蓝图的动画图中,可以添加一个 槽(Slot)节点,选中该节点就可看到与蒙太奇轨道视图中所示选项相同的选项。

SlotNode.png

在这里您可以使用下拉框选取现有的槽名称,并用放大镜图标打开动画槽管理器。

附加提示:

  • 它向后兼容先前的设置。除了现有的槽成为“默认组”的一部分,您不会注意到任何变化。

  • 已经改进了蒙太奇蓝图和 C++ API,使其能引用蒙太奇资产。您可以通过此方式控制同时播放的不同蒙太奇。例如,请参见 蒙太奇设置播放速率 功能。