创建骨骼和反向运动动画

本部分介绍如何绘制骨骼动画。

骨骼概述

使用骨骼,可以在为角色创建任何几何体之前,创建完整的角色动画序列。

使用“Animation”>“IK”>“New Skeleton” 创建骨骼,然后使用“Animation”>“IK”>“Add IK Handle”“Animation”>“Tools”>“Create Constraint”“Animation”>“Keyframe”>“Set keyframe”“Animation”>“Keyframe”>“Auto Keyframe” 来通过旋转和平移参数设置角色的动画。

您可以独立于动画为角色创建层次几何体,然后可以使用“Animation”>“Editors”>“Skeletons” 将该层次中的 DAG 节点转换为关节 DAG 节点。之后,可以使用“Animation”>“Edit”>“Overlay Skeleton” 将动画和其他骨骼属性覆盖在模型中相应的关节节点上。

复制骨骼

  1. 使用“Animation”>“IK”>“New Skeleton” 创建骨骼。使用反向运动(使用“Animation”>“IK”>“Add IK Handle”)或任何标准动画工具设置骨骼的动画。
  2. 使用“Animation”>“IK”>“New Skeleton” 创建另一个骨骼,或者对与第一个骨骼有相同骨骼拓扑的现有模型使用“Skeleton editor”“Animation”>“Editors”>“Skeletons”)。
  3. 选择“Animation”>“Edit”>“Overlay Skeleton”。系统将提示:
    Select the root of the skeleton that is to be copied.
    
  4. 通过选择用于定义骨骼根的关节节点来拾取要复制的骨骼。您可以从 SBD 窗口中拾取该关节,也可以在建模窗口中选择一个关节。

选择“Animation”>“Tools”>“Bone Style” 指定骨骼样式。

下图演示了各种骨骼样式。

  1. 一旦拾取了关节节点,系统将提示:
    Select the root of the skeleton to be copied to.
    Pick the root node of the destination skeleton that is to receive the same animation and skeleton attributes as the source skeleton.
    

    在选择了目标骨骼之后,源骨骼中每个关节节点的平移和旋转动画都将复制到目标骨骼中相应的关节节点。

    有关关节信息的完整描述,请参见“Animation”>“Editors”>“Skeletons”

    另外,关节限制以及其他关节信息也将复制到目标骨骼中相应的关节节点。

骨骼拓扑匹配

如果骨骼 1 的每个关节节点与骨骼 2 中相应的关节节点具有相同数量的直接子关节节点,则表示这两个骨骼的拓扑相同。在下面的 SBD 窗口图中,“Skeleton 1”和“Skeleton 2”的拓扑相同。

这些图表明可以将拓扑相同的骨骼的非关节 DAG 节点组合到关节节点上方、下方或同级项的任何位置。通过 DAG 节点层次确定骨骼时,非关节 DAG 节点将被忽略。

有时,两个骨骼具有相同的拓扑,但是其拓扑的意义有所不同。例如,两个骨骼可以有两个分支,每个分支由三个组关节节点组成,分别代表腿的髋关节、膝关节和踝关节。区别在于,一个骨骼中的第一个分支代表右腿,而另一个骨骼中的第一个分支代表左腿。

如果使用“Overlay skeleton”将一个骨骼的动画复制到另一个骨骼,则左腿的动画将会复制到右腿,而右腿的动画被复制到左腿。若要确保将动画复制到相应的正确分支,请使用 SBD 交换图标(位于 SBD 窗口标题栏上)或 +箭头键 (Windows) 或 +箭头键 (Mac) 组合来交换 SBD 窗口中不同分支的位置。

绘制骨骼

可以使用“Animation”>“IK”>“New Skeleton” 创建由轴心点或关节位置定义的骨骼。

创建关节节点

使用 “Animation”>“IK”>“New Skeleton” 创建骨骼。

在创建每个关节时,会向场景结构图 (SBD) 中添加一个 DAG 节点,而且系统会在建模窗口中绘制一个将该关节与上一个关节连接的骨骼。

在绘制骨骼之后,可使用“Edit”>“Duplicate”>“Mirror” 复制和镜像该骨骼,从而创建原始骨骼的反向副本。

还可以通过在骨骼编辑器(“Animation”>“Editors”>“Skeletons”)中切换关节状态,将现有的 DAG 节点转换为关节节点,或者使关节节点成为一般的 DAG 节点。

如果使用“New skeleton”,那么,每次在建模窗口中单击时,就会创建一个新的关节节点作为活动关节节点的子节点,而且系统将会在这两个关节之间绘制一个骨骼。

每次您以这种方式创建关节 DAG 节点时,该节点的轴心点位置会位于您上次在该窗口中单击的位置(还可以通过在键盘上输入轴心点位置来创建新的关节 DAG 节点)。

创建骨骼

骨骼是在关节节点与距其最近的祖先节点之间,通过连接这两个节点的旋转轴心点而绘制的。可以更改骨骼的形状(请参见“Animation”>“Tools”>“Bone Style” )或完全关闭骨骼的显示(请参见“Animation”>“Show”>“Skeletons” )。

三维骨骼的实际尺寸由轴心点之间的距离定义。骨骼的较大一端显示其上方关节 DAG 节点的旋转轴心点所在的位置,骨骼的较小一端指向其下方关节 DAG 节点的旋转轴心点。由于骨骼是由轴心点定义的,因此您可以使用“Transform”>“Local”>“Set Pivot” 来更改骨骼的长度。

可以通过在应用程序窗口中多次单击来创建关节链。若要创建层次,请在按住 键的同时按小键盘上的四个箭头键之一,在关节节点层次中四处移动。

显示骨骼

本部分介绍如何在应用程序窗口中打开或关闭骨骼及其相关约束或 IK 控制柄的显示。

  1. 使用“Animation”>“IK”>“New Skeleton” 或骨骼编辑器(“Animation”>“Editors”>“Skeletons”)创建骨骼。该骨骼 (skeleton) 将与类似于骨骼 (bone) 的几何体一起显示。
  2. 选择“Animation”>“Show”>“Skeletons” 关闭这些骨骼的显示。各个窗口中的所有骨骼都不会显示。若要重新显示它,请再次选择该功能。

向骨骼中添加 IK 控制柄

使用反向运动 IK 控制柄,可以控制骨骼不同部分的移动而不会干扰骨骼其他部分。

“Animation”>“IK”>“Add IK Handle” 是一种连续操作工具,可以每次向骨骼中添加一个 IK 控制柄。若要添加单链控制柄,请在该工具的选项框中选择“Single-chain”。然后选择根关节,最后选择末端效应器关节。该工具在执行此操作之后仍然保持激活状态,因此您可以继续选择骨骼的其他部分,以便放置其他 IK 控制柄。

添加 IK 控制柄

  1. 选择“Animation”>“IK”>“Add IK Handle” 或单击其图标。
  2. 系统将提示:
    Pick a joint as the root of a single-chain (multi-chain or spline) handle.
    Pick a root joint to start the handle. (You can drag a pick box around a joint to select it.)
    
  3. 系统将提示:
    Pick a descendant joint as the end-effector of the single chain (multi-chain or spline) handle.
    Pick an end joint.
    
  4. 如果您创建了样条曲线控制柄,但是未选择“Create Curve”来创建新曲线,系统会提示您:
    Pick a curve node as the target of the spline handle.
    Pick the curve.
    
  5. 在创建了一个控制柄之后,系统会提示您创建另一个控制柄。
  6. 若要查看、更改或禁用控制柄的参数,请打开“Information window”,然后选择控制柄。
  7. 可以在“Skeleton Editor”中编辑有关控制柄的限制和关节信息。若要查看控制柄信息,请从“Skeleton Editor”“Animation”>“Editors”>“Skeletons”)中的“List Type”弹出菜单上选择“Handles”

限制

样条曲线控制柄的使用提示

可以通过以下多种方式,在建模窗口中控制样条曲线控制柄:

如果拾取的是根控制柄,可以采用以下任一方式:

如果拾取的是主控制柄,请使用“Transform”>“Rotate” 扭曲该链。

控制骨骼的形状

您可能希望使用样条曲线 IK 来控制骨骼的形状,但不控制骨骼在空间中的位置。如果您希望使用一条曲线来控制不同位置的多个相似对象的形状,该功能非常有用。执行以下操作:

  1. 将骨骼的根关节约束到所需的对象。
  2. 创建一个样条曲线控制柄。

为 IK 骨骼创建中性姿势

使用“Animation”>“IK”>“Set Rest Pose” 定义中性姿势。

单链 IK 解算器使用静止姿势,其所有的唯一解都源于该姿势。静止姿势是关于各个关节的一组值,为 IK 解提供初始值。

每个骨骼关节都“记住”其平移和旋转的静止值(X、Y 和 Z 值)。静止姿势可以复制和镜像到相似的骨骼。有关还原为静止姿势的信息,请参见“使关节和 IK 骨骼恢复为静止姿势”。

为 IK 骨骼创建中性姿势

  1. 使用“Animation”>“IK”>“New Skeleton” 创建骨骼。
  2. 使用“Animation”>“Pick”>“Joint” 和必要的“Transform”工具,根据需要定位该骨骼。
  3. 选择“Animation”>“IK”>“Set Rest Pose”

或者,可以拾取 IK 控制柄,为 IK 链上的所有关节设置静止姿势。

使关节和 IK 骨骼恢复为静止姿势

使用“Animation”>“IK”>“Assume Rest Pose”可将骨骼恢复为其中性姿势。

每个骨骼关节可以采用静止值作为其平移值、旋转值、X 值、Y 值和 Z 值。还可以将关节或一般节点恢复为其中性姿势(即,将其平移值、旋转值、X 值、Y 值和 Z 值均设置为零)。

注:

默认情况下,静止姿势和中性姿势相同。可以使用“Animation”>“IK”>“Set Rest Pose” 更改静止姿势。详细信息请参见“为 IK 骨骼创建中性姿势”。

如何使骨骼恢复为中性姿势或静止姿势

  1. 使用“Animation”>“IK”>“Set Rest Pose” 创建静止姿势。
  2. 使用“Animation”>“Pick”>“Joint” 和“Transform”工具,根据需要对骨骼重新定位。
  3. 选择“Animation”>“IK”>“Assume Rest Pose”将骨骼恢复为其静止姿势。

    还可以拾取一个 IK 控制柄,使 IK 链上的所有关节均采用静止姿势。

查找有关 IK 控制柄的信息

使用“Windows”>“Information”>“Information Window”菜单项可显示详细信息。

查找有关 IK 控制柄的信息

  1. 选择所需的 IK 控制柄。
  2. 选择“Windows”>“Information”>“Information Window”
Name

IK 控制柄的名称。可以编辑此字段。

Bounding Box

关闭 IK 控制柄的边界盒的显示。

Invisible

关闭 IK 控制柄的显示。

Layer
Translate

控制柄的平移坐标。此时,这些坐标是唯一可以编辑的坐标,因为对于“Control type”选择了“TRANSLATION ONLY”。旋转和缩放功能不用于控制该控制柄的行为。

Rotate Pivot

控制柄的旋转轴心点坐标。

Local Axes

控制柄的局部坐标轴坐标。

Scale Pivot

控制柄的缩放轴心点坐标。

Bounding Box Min/Max/Size

为控制柄的边界盒(由“Limb axis”和“Plane indicator”组成)设置的限制。

Bounding Box Size

边界盒的尺寸。“Size”=“Max”-“Min”

Handle Type

IK 控制柄的类型:单链、多链或样条曲线。

On/Off

单击这些按钮可启用或禁用 IK 控制柄。处于禁用状态的 IK 控制柄仍然可见,但是对 IK 链不起作用。若要完全隐藏它,请在 IK 控制柄部分的顶部单击“Invisible”

root

位于骨骼层次中最顶层的受 IK 控制柄影响的关节。

end-effector

位于骨骼层次中最底层的受 IK 控制柄影响的关节。

Control type

一个单链 IK 控制柄有三个级别的控制设置,可从“Control type”弹出菜单访问这些设置。

  • TRANSLATION ONLY — 这是默认控制设置,适合最基本的 IK 使用。“TRANSLATION ONLY”意味着您只能对 IK 控制柄的平移通道进行移动或设置动画。
  • PLANE ROTATION — 此设置使您能够对 IK 控制柄进行更精确的控制。利用该设置,您可以旋转骨骼平面(包含在 IK 控制柄中的关节所在的平面)。如果 IK 控制柄的所有关节不在一个平面上,将会选择最合适的平面。如果选择该选项,则可以使用“Plane rotate”框中的值旋转 IK 控制柄,从而可以对平面指示器和骨骼平面进行重定向,在该链中创建更复杂的运动。
  • 还可以通过拾取 IK 控制柄并将 与“Rotate”工具(“Transform”>“Rotate”)结合使用来控制平面轴的旋转。
  • PLANE/POLE ROTATION — 此设置使用一组新的选项,对 IK 控制柄提供高级的专业控制。在某些情况下,组合使用平移和平面旋转选项可能会导致 IK 解发生无法控制的翻转。通过设置两个“Pole rotate”框中的值可以修改骨骼的平面,同时使极点相对于骨骼平面的方向保持不变。
  • 使用鼠标中键和鼠标右键可以旋转 IK 解的极轴及其投影。

“Pole order”字段用于确定要使用哪两个自由度来旋转极轴。在前面的平面旋转图解示例中,骨骼是在 XY 平面中绘制的。因此,在创建 IK 控制柄时,极轴将自动沿 Z 轴(即,垂直于骨骼平面)放置,而且极点顺序是 ZXY。这意味着,所创建的极轴将与 IK 控制柄的 Z 轴平行(因此与 Z 轴一样也是蓝色),轴方向将通过对极轴先后应用局部 X 旋转和 Y 旋转来调整。

Orientation

IK 控制柄的解将自行定向到与坐标系同向,以便正常工作。坐标系的方向与关节(“LOCAL”)或场景(“WORLD”)方向一致。

何时对 IK 控制柄使用平面旋转设置

如果 IK 链始终不需要改变其静止位置的方向,则在对骨骼设置动画时只需使用默认设置“Translation Only”。例如,如果行走循环中一个简单两足动物角色的腿部朝向一个固定方向(即,膝部总是朝向前方),则只需平移腿的 IK 控制柄。

但是,如果需要使这个两足动物角色具有“罗圈腿”或“八字脚”外观,或者该角色正在跳舞,则可能需要旋转两条腿的骨骼平面才能实现此效果。在这种情况下,请在“Information Window”中为这些控制柄选择“Plane Rotation”设置,并相应地调整“Plane Rotate”字段。

使用平面/极点旋转设置

只有在要将骨骼链的动画设置为在场景中的很大范围内运动时,才需要使用“Plane/Pole Rotation”设置来调整极轴的旋转。特别是,如果链的肢体轴靠近极轴,则该链可能会发生意外的“翻转”;通常,您将需要对极轴进行移动/动画设置,使控制柄的肢体轴不会在给定的场景期间过于靠近极轴。

在链上创建单链 IK 控制柄时,会创建一个与骨骼静止时所在平面垂直的极轴。只要该链不是从距离静止位置很远的位置进行扭曲,而且该链的肢体轴不靠近极轴,则适合从极轴的这一默认位置对骨骼设置动画。否则,可能需要调整极轴或对其设置动画,才能避免该链翻转。

复杂的单链示例

下面是两个躯干的示例,演示了如何利用“POLE/PLANE ROTATION”来实现各种手臂移动效果。

在该示例中,两个躯干完全相同,左手臂上都有 IK 控制柄。“Plane rotate”的默认值是 90 度。“Pole rotate Y”和“Pole rotate Z”的默认值都是零度。左侧的躯干需要执行一个喝水运动,而右侧的躯干将执行跳跃运动。

  1. 对于要喝水的躯干,不需要进行极点旋转,因此“Pole rotate Y”和“Pole rotate Z”都是零。“Plane rotate”保持在 90 度。
  2. 对于要跳跃的躯干,请将“Plane rotate”更改为零,将“Pole rotate Y”更改为 -90,将“Pole rotate Z”更改为零。
  3. 在拾取 IK 控制柄之后,选择“Transform”>“Move” 以便向上拖动手臂,从而模拟喝水运动。
  4. 打开“Information Window”
  5. 继续向上移动手臂,以便为右侧的躯干创建跳跃运动。在某一点,当左手臂的肢体轴跨过极轴时,您将看到左手臂略微“翻转”。因为极轴指向前方,所以右手臂不会翻转,因此,右手臂的肢体轴绝对不会靠近极轴。

限制

  • 世界方向不适用于具有非等比缩放的单链控制柄。

    如果单链控制柄的根关节继承非等比缩放,则平面的世界空间方向将不起作用。

  • 在从一个帧切换到下一个帧时,如果单链 IK 的关节角度动画输出从 -180 度跳到 180 度(或者从 180 度跳到 -180 度),则运动模糊将无法正常工作。

    可使用“Run IK”中的运动模糊补偿选项。这样会在靠近跳跃位置的运动模糊采样点处插入其他关键帧。

  • 对于使用约束或表达式设置了具有 IK 的关节动画的各模型,在回放时的运动可能不一致。

打开或关闭 IK 控制柄的显示

本部分介绍如何控制 IK 控制柄的显示。

显示 IK 控制柄

使用 “Animation”>“Show”>“IK Handles” 可打开或关闭 IK 控制柄的显示。

启用或禁用 IK 控制柄

打开或关闭 IK 控制柄可使其处于启用或禁用状态。

您可以执行下列操作:

  • 在不拾取任何 IK 控制柄的情况下切换所有 IK 控制柄的状态。
  • 将一组活动的 IK 控制柄设置为相同状态。
  • 仅更改选定类型的 IK 控制柄(例如,仅更改单链控制柄)。
  • 仅更改所拾取骨骼的 IK 控制柄。

当 IK 控制柄处于禁用状态时,其行为就像不存在一样,此时您无法选择该控制柄。可以从信息窗口启用或禁用各 IK 控制柄。

  1. 拾取 IK 控制柄(如果使用的是“Active”选项)。
  2. 选择“Animation”>“IK”>“IK Handles On/Off” 设置其状态(根据选项的设置启用或禁用)。

创建镜像副本

使用“Edit”>“Duplicate”>“Mirror” ,可以根据轴平面创建层次的对称副本。

这一功能适用于骨骼以及普通层次,可镜像 IK 控制柄、约束、静止姿势、限制、动画和所选控制柄。

使用该功能,可以执行下列操作:

  • 为镜像的层次(包括几何体)创建实际节点

    (与之相对,“Layers”>“Symmetry”按对象副本对称,因此,实际上并不会复制几何体)。

  • 从层次中的任意一层开始创建镜像副本,使得不仅是几何体,而且还有完整的层次、控制动画的 IK 控制柄和约束以及关节属性都沿指定轴平面镜像。

    (与之相对,“Layers”>“Symmetry”允许您使用任意对称平面,而且只有几何体变为对称(即,只有叶级别受到影响)。

    提示:

    若要最大程度地利用“Mirror”,请在原点创建角色,然后仅在镜像完成之后对该角色进行变换并执行任何簇附着操作。

选择“Edit”>“Duplicate”>“Mirror” 打开“Mirror Options”框。从该框中可以选择两种类型的镜像和三个镜像平面。

Mirror Type:Duplicate

允许您拾取一个分支作为源分支。该工具可复制此分支并将其节点镜像到新分支上。

  1. 选择“Edit”>“Duplicate”>“Mirror”
  2. 拾取层次的一个分支。

    此时将创建一个新分支作为所拾取分支的同级项。新分支将沿选项框中所定义的平面(“Mirror Across”设置)进行镜像。该分支上的所有 IK 控制柄、约束、动画和骨骼也将被复制和镜像。

    注:

    您还可以拾取该分支,然后选择“Mirror”项。

Mirror Type: Reshape

允许您拾取现有的分支作为目标分支,而不是使用该工具创建目标分支。选中此选项后,不会镜像几何体。

  1. 选择“Edit”>“Duplicate”>“Mirror”
  2. 拾取要重塑形状的分支。
  3. 拾取另一个用作镜像源的分支。

    第一个分支将重塑为第二个分支的镜像。第一个分支上的所有 IK 控制柄、约束、动画和骨骼将替换为根据第二个分支复制和镜像的新对象。

Mirror Across

在世界空间中,镜像提供三个镜像平面。此选项可指定用于以后的镜像操作的平面。

  1. 选择“Edit”>“Duplicate”>“Mirror” 打开“Mirror Options”框。
  2. 选择要使用的平面:“XY”、“YZ”或“XZ”

使用“Run IK”渲染动画

使用“Animation”>“IK”>“Run IK”,可借助于附着到骨骼的多链 IK 控制柄创建动画,以便对动画进行渲染。

  1. 使用“Animation”>“IK”>“New Skeleton” 创建骨骼。
  2. 选择“Animation”>“IK”>“Add IK Handle” 将 IK 控制柄附着到骨骼的各个关节。
  3. 使用任一 Alias 动画工具对 IK 控制柄设置动画。
  4. 设置骨骼,使其位于第一个动画帧的所需配置中。
  5. 拾取该骨骼的根并选择“Animation”>“IK”>“Run IK”

您可以通过约束动画的所有帧查看骨骼动画。在该操作结束时,系统将使用骨骼的 IK 控制柄设置骨骼的动画。