混合空间总览

讲述混合空间的使用方法,以及不同类型的混合空间资源。

Windows
MacOS
Linux
本页面的内容

混合空间 利用基于特定属性或条件进行混合的资源,降低创建单个硬编码节点进行混合动画的需求。它使动画师或程序员能够指定输入、动画,以及输入在动画之间进行混合的方式,实际上任何类型的混合都能通过混合空间泛型来执行。

这与动画树在虚幻引擎 3 中执行相同任务的原理完全相反。任何复杂混合都需要创建一个新节点来处理混合。而混合空间是完全的泛型,决定混合的因素在每个单独的混合空间上均有所不同。每个混合空间均有输入,可接收数值。这些数值可在 动画蓝图 的更新周期中进行计算(通过 EventGraph),由游戏性代码或其他方式驱动(如下表所示)。这些特性使得混合空间灵活性极强,可把主动权交到 AnimGraph 的创建者手中,以符合其需求的方式混合动画。

Input Flow

上图中,事件图表、游戏性代码或驱动着每个变量。反之,这些变量决定混合空间中的哪个动作将用作最终动作。

混合空间

混合空间可被视为一个 2D 图表,每个输入值均沿一根轴,动画则分布在图表上的各点处。混合动画由图表上动画之间的混合基于当前输入值所指定的位置进行计算。 举例而言,定向跑步动画和待机动画之间的混合就是基于角色移动的方向和速度。

在虚幻引擎 3 中,这样的混合是使用方向混合节点结合速度混合节点来实现。这些每个节点均为硬编码,只执行特定的混合。用于执行混合的数值隐藏在代码之中,因此对混合进行的修改只能由程序员执行。如果对代码中的数值进行了修改,将会对使用数值的每个动画树中的每个节点实例产生影响。这并非理想的工作方式。

而使用混合空间时,相同的混合可使用单一的混合空间进行执行。 角色的方向(下图黄色水平框中所示)和速度(下图黄色垂直框中所示)就是作为输入传至混合空间的数值。 动画(下图中的白色钻石)将被设为基于这些输入值进行适当的混合,使最终的动作出现在游戏中(下图中的绿色钻石)。

BlendSpaceDirection.png

下图中,AnimGraph 实现了混合空间。我们可以调整对其的输入(在此例中为 Speed)来驱动混合。

AnimGraphBlendSpace.png

如预览器中所示,调整输入值后即可调整并驱动混合空间中的混合。

混合空间 1D

混合空间也可在单维度格式中创建,称之为 Blend Space 1D。它们可在任意数量的动作或动画之间进行混合,但只基于单个输入值。 混合空间 1D 的一个使用范例是角色自动朝向其移动的方向。 如角色无法在多个方向横跨或移动,一个混合空间 1D 资源可用于基于单个 Speed 值从待机动画混合到行走动画,最终混合到奔跑动画(如下例所示)。

除只拥有一个轴外,混合空间 1D 和标准两轴混合空间完全一致。

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见