二维混合 (2D Blending)

混合节点 (Blend Node)检视器 (Inspector) 中的第一个选项是混合类型 (Blend Type)。此下拉菜单用于选择可以根据一个或两个参数混合的不同混合类型之一。二维混合 (2D Blending) 类型根据两个参数混合子运动。

不同二维混合 (2D Blend) 类型具有不同的适合用途。它们之间的差异在于计算各个运动影响力的方式。

二维简单方向 (2D Simple Directional)
最适用于运动表示不同方向时,如“向前行走”、“向后行走”、“向左行走”和“向右行走”或是“向上瞄准”、“向下瞄准”、“向左瞄准”和“向右瞄准”。可以选择包括位置 (0, 0) 处的单个运动,如“空闲”或“笔直瞄准”。在简单方向 (Simple Directional) 类型中,相同方向上不应存在多个运动,如“向前行走”和“向前奔跑”。
二维任意方向 (2D Freeform Directional)
此混合类型也在运动表示不同方向时使用,但是可以在相同方向上具有多个运动,例如“向前行走”和“向前奔跑”。在任意方向 (Freeform Directional) 类型中,运动集应始终包括位置 (0, 0) 处的单个运动,如“空闲”。
二维任意笛卡尔 (2D Freeform Cartesian)
最适用于运动不表示不同方向时。使用任意笛卡尔 (Freeform Cartesian) 时,X 参数和 Y 参数可以表示不同概念,如角速度和线速度。示例包括“向前行走而不转弯”、“向前奔跑而不转弯”、“向前行走并右转”、“向前奔跑并右转”等运动。

设置“混合类型” (Blend Type) 之后,需要执行的第一个操作是选择将控制此混合树 (Blend Tree)动画参数 (Animation Parameter) 。在此示例中,参数为 velocityX (扫射) 和 velocityZ (向前速度)。

随后可以通过单击 + -> 添加运动区域 (Add Motion Field) 将动画片段 (Animation Clip) 添加到混合树中,从而添加各个动画。完成后,它应类似于下面这样:

具有五个动画片段 (Animation Clip) 的二维混合节点 (2D Blend Node)。

二维混合中的位置类似于一位混合中的阈值,除了存在分别对应于两个参数的两个值,而不是一个值。其沿水平 X 轴上的位置对应于第一个参数,其沿垂直 Y 轴上的位置对应于第二个参数。向前行走动画可能 velocityX 为 0 并且 velocityZ 为 1.5,从而应将这些值键入运动的“位置 X”(Pos X) 和“位置 Y”(Pos Y) 数字字段。

二维混合示意图 (The 2D Blending Diagram)

检视器 (Inspector) 顶部的示意图显示二维混合空间中的子运动位置。这些运动显示为蓝色点。未分配动画片段 (Animation Clip) 或混合树 (Blend Tree) 的运动对混合没有影响力,显示为灰色点。可以通过在示意图中单击其点来选择运动。一旦选择后,该运动对混合空间中每个点的影响力会展示为蓝色区域。该区域在运动位置正下方最明显(其中运动具有完全影响力,这表示其动画权重为 1,而其他动画的权重为 0)。随着距离变远,影响力会下降,同时其他运动的影响力会逐渐占优势。

混合节点检视器 (Blend Node Inspector) 顶部的示意图形象地展示各个子运动在参数值范围内的权重。

红色点指示两个参数的值。如果在检视器 (Inspector) 底部的 预览 (Preview) 中按 播放 (Play) 并在示意图中四处拖动红色点,则可以看到参数值如何控制不同运动的混合。在示意图中,还可以看到各个运动的影响力(表示为围绕各个运动的圆形)。如果将红色点移动到表示运动的蓝色点之一上,则您会看到该运动的圆形会达到其最大半径,而所有其他运动的圆形会缩小为不可见。在介于几个运动之间的位置处,多个附近的运动会对混合具有一定影响力。如果选择其中一个运动以查看该运动的蓝色影响力区域,则可以看到,随着四处移动红色点,运动的圆形大小恰好对应于影响力区域在各个位置处的强度。

未选择任何运动时,示意图显示所有影响力区域的混合,其中单个运动占优势的位置处蓝色较深,许多运动参与混合的位置处蓝色较浅。

位置

可以通过单击运动在示意图中的对应蓝色点并四处拖动,来更改运动的位置。还可以通过在“位置 X”(Pos X) 和“位置 Y”(Pos Y) 列的数字字段中键入数字,在运动列表中编辑运动的位置坐标。

计算位置 (Compute Positions) 下拉菜单会通过从动画片段 (Animation Clip) 中的根运动获取的数据选择来设置位置。可供选择的数据有速度 (speed)、速率 (velocity) x、速率 (velocity) y 或速率 (velocity) z 以及角速度 (angular speed)(以度或弧度为单位)。如果参数 (parameters) 对应于这些属性之一,则可以使用“计算位置”(Compute Positions)下拉菜单计算“位置 X”(Pos X) 和/或“位置 Y”(Pos Y)。

属性:功能:
速率 XZ (Velocity XZ)根据各个运动的 velocity.x 设置其“位置 X”(Pos X),并根据其 velocity.z 设置其“位置 Y”(Pos Y)。
速度和角速度 (Speed And Angular Speed)根据各个运动的角速度(以弧度/秒为单位)设置其“位置 X”(Pos X),并根据其速度设置其“位置 Y”(Pos Y)。

而且可以选择计算位置 (Compute Position) -> X 位置 (X Position From) 和/或 计算位置 (Compute Position) -> Y 位置 (Y Position From) 以便一次仅自动计算其中之一(另一个保持不变),从而进行混合和匹配。

属性:功能:
速度 (Speed)根据各个运动的速度(速率的量级)设置其“位置 X”(Pos X) 或“位置 Y”(Pos Y)。
速率 X (Velocity X)根据各个运动的 velocity.x 设置其“位置 X”(Pos X) 或“位置 Y”(Pos Y)。
速率 Y (Velocity Y)根据各个运动的 velocity.y 设置其“位置 X”(Pos X) 或“位置 Y”(Pos Y)。
速率 Z (Velocity Z)根据各个运动的 velocity.z 设置其“位置 X”(Pos X) 或“位置 Y”(Pos Y)。
角速度(弧度)(Angular Speed (Rad))根据各个运动的角速度(以弧度/秒为单位)设置其“位置 X”(Pos X) 或“位置 Y”(Pos Y)。
角速度(度) (Angular Speed (Deg))根据各个运动的角速度(以度/秒为单位)设置其“位置 X”(Pos X) 或“位置 Y”(Pos Y)。

也就是说,例如您的参数对应于侧向速率和向前速率,并且有一个平均速率为 (0, 0, 0) 的空闲动画、一个平均速率为 (0, 0, 1.5) 的行走动画以及两个速率分别为 (-1.5, 0, 0) 和 (1.5, 0, 0) 的扫射动画。从下拉菜单中选择速率 XZ (Velocity XZ) 选项会根据这些速率的 X 和 Z 坐标设置运动的位置。

(返回 混合树 (Blend Tree))

Page last updated: 2013-01-28