设置全身IK

有两种动画制作方法层次结构元素的组合(例如,使角色的手臂伸到桌子上的对象):正向运动学(FK)和逆向运动学(IK)。

使用FK,您可以通过放置根元素然后在链上向下调整所有元素来设置动画。首先,放置肩关节,然后放置肘部,最后放置腕部。只需几次尝试即可将手正确定位到对象上。

IK的工作方式相反,更加直观。使用IK,选择手并将其移动到对象。腕关节,肘关节和肩关节会自动调整,以保持其朝向目标(在本例中为手)的正确方向。

Modo有一个相当自动且非常强大的IK系统。它的Full IK是一个自动IK系统,可在各种装配情况下使用。它通常用于字符,但是您可以将其应用于基于定位器的项目的任何层次结构链。通过选择目标元素并应用命令来设置链在工具箱中找到SetupAnimate界面标签Inverse Kinematics子标签。

分配IK

Assign IK

在IK中使用Modo,首先必须将IK分配给您要使用的项目。你这样做Setup模式定义每个关节的静止位置。您可以将IK应用于项目的层次结构或整个项目骨架 —在绑定过程之前或之后。

要将IK分配给整个层次结构,请选择链中的项目,然后单击Assign IK按钮。Modo从根向外将IK分配给层次结构中的所有项目。

IK 1

选择Root层次结构的元素

 

IK 2

Apply IK将IK应用于整个链

要将IK仅分配给层次结构的一部分,请首先选择根项目。然后,选择IK终止的其他项目。最后,点击Assign IK按钮。

IK 1

选择RootTerminating元素

 

IK 2

Modo在选定元素之间应用IK

以这种方式分配IK之后, Modo保留对终止元素的选择。然后,您可以通过点击Add Goal按钮。现在,当你变换目标,连锁店会朝目标调整位置和旋转。然后可以退出Setup并开始定位链条。

IK 1

终止元素保持选中状态

 

IK 2

Add Goal按钮将目标添加到每个终止元素

链中的所有项目都必须属于同一层次结构,并且所有项目都必须是3D定位器类型的项目(例如,由“骨架”工具,定位器或“网格项目”创建的关节)。如果Modo遇到层次结构中的任何其他类型的项目,或者如果存在另一个IK链,则IK流程在该项目处终止。已缩放项目的任何层次结构都需要先冻结其缩放比例,然后才能为其分配IK。使用IK定义Modo创建一个IK解算器并将其作为根项的父项(FullBodyIK)。此项具有控制链整体行为的设置,可以在该项的Properties选择面板。(有关信息,请参阅全身IK话题。)

目标

定义了IK链后,FK(正向运动学)仍将直接控制目标元素,并且您仍可以单独变换链中的每个项目。通过添加GoalsTasks,您将自动激活IK。(目标是驱动IK链的项目的总称。操纵目标项目会导致IK链中项目的旋转发生改变,以使最终项目的位置或旋转与目标项目的位置或旋转相匹配。)可以将目标项目添加到属于IK链的任何项目中(除了链根),并且可以有多个目标。IK解算器试图找到满足所有目标的最佳解决方案。

Add Goal

要添加目标,请在IK链中选择一个项目,该项目代表应朝目标移动的链部分(例如手臂中的手/腕关节以对手指进行FK控制)。接下来,点击Add Goal IK工具栏中的按钮。Modo在所选链项目的位置和方向上放置一个小的立方体项目(作为定位器形状),添加位置和方向任务到选定的关节,并将它们与通道链接正确连接在一起。多维数据集具有初始自定义颜色来帮助识别它:绿色代表正侧,红色代表负侧。

Assign Goal

如果您有一个现有项目可以用作目标,则可以使用Assign Goal命令将其附加到链上。选择目标链项目和要用作目标的项目(任何顺序)。选择其中之一Assign Goal通过右键单击命令Assign Goal按钮。使用这些命令,您可以将一个项目指定为Position GoalOrientation Goal , 或两者。

Remove Tasks

您可以删除目标项目,方法是删除目标项目,然后选择目标所连接的链项目,然后删除目标项目。 Tasks通过使用IK工具栏中的按钮。

任务

分配给链的IK仅在以下情况下生效您添加Tasks链中的一个或多个项目。任务与目标相关,因为它们是关节保持位置,旋转或两者的指令。为一个Position Task IK解算器将尝试将链项目保留在添加任务时项目所在的“世界”位置。为一个Rotation Task,IK解算器将尝试使链项目保持与添加任务时相同的世界方向。Modo实施Tasks作为添加到关节的通道组。每个任务都有一组FK通道和一个Matrix通道。您使用这些通道来设置任务转换(在“世界”空间中),以便使用修饰符,通道链接或其他方式可以开车您可以将任务添加到链中的多个项目。如果这样做,则IK解算器将尝试找到最佳方案来满足链上的所有任务。您可以在项目链中的链项目中找到每个任务的设置Properties面板。

Position Task

分配一个Position Task,选择目标关节,然后单击Add Position Task按钮。Modo将附加的“位置任务”选项添加到关节中的关节属性中Properties选择关节时面板。

Orientation Task

分配一个Orientation Task,选择目标关节,然后单击Add Orientation Task按钮。Modo将附加的“定向任务”选项添加到关节的属性中Properties选择关节时面板。

添加到链中

您可以使用以下命令从链中添加或删除元素: AddRemove纽扣。

Orientation Task

要将关节或关节链添加到现有链中,新元素必须属于同一层次结构。添加元素的一种方法是选择目标链中的根项目,然后激活Skeleton工具。然后,您可以在链中选择父元素,然后从该元素上单击以绘制实际的关节,并在创建每个关节时在层次结构中添加其他关节。

第二种方法是通过使用育儿选项或放下动作 (尤其是使用ParentParent in Place选项)。将项目设为主层次结构的一部分后,请选择元素或新链的基础,然后单击Add to Chain纽扣

Orientation Task

要删除关节或关节链,请选择要删除的基础元素,然后单击Remove from Chain按钮。

调整链条

Orientation Task

您可能需要调整链条的各个部分,例如重新放置膝盖或肘关节。您可以在Setup模式。当在Setup模式,您可以调整关节,然后单击Update Rest Pose按钮更新IK链。您可能还需要更新驱动任务的任何目标项目的位置或方向, 比赛位置要么比赛轮换中的按钮Setup工具栏的标签。如果任务不是由目标驱动的,则链会更新自身以匹配任务通道的值。您可能需要根据设置手动进行编辑。

删除IK

Remove IK

您可以通过选择FullBodyIK项,然后单击Remove IK运动学逆工具箱中的按钮。Modo从每个项目中删除IK设置,并删除FullBodyIK场景中的求解器项。

平面IK

IK平面求解器可以处理两个或三个定位器关节。与双IK解算器相似,通过定位目标定位器,可以将关节定位为最适合的位置。