表情姿势编辑无疑是表情编辑器最重要的部分,也是较为复杂的编辑操作。
进入表情编辑的方法与进入其他模式的方法类似。 请确保你加载了正确的DNA,然后点击主页界面的编辑模式(Editing modes)分段中对应的按钮。
表情图表
此表情图表中的每个节点都代表了一个表情,其依赖项展示了表情的组合方式,或者后续应如何修正一个或多个表情。
节点的名称以及图表的拓扑结构是固定的,代表了绑定定义。
表情图表采用选项卡式视图。 为支持相关工作流程,你可以在工作流程的不同阶段添加新选项卡或锁定选项卡的导航。 完整的绑定视图选项卡始终可用,且始终位于最左侧。
表情图表的功能有二:显示表情依赖项及其状态的信息(能在你熟悉MetaHuman绑定时充当实用的调试工具甚至是学习工具);为关键操作设置上下文,例如将对表情的编辑传播(或不传播)到依赖的表情中。
场景组装
与其他模式一样,要编辑"姿势",你首先需要组装场景。
这将在Maya场景中创建一个功能完备的绑定。 与其他模式不同的是,组装时只支持LOD 0编辑,且自动默认采用LOD 0。
加载动画
我们强烈建议使用动画(不论是捕捉到的、手动设置关键帧的,还是人为控制绑定到特定表情中的动画),并将动画作为检查行为和确定是否需要干预的起始点。
你既可以将包含动画的FBX文件载入到Faceboard绑定,也可以将其直接载入到RigLogic通道。 你可以通过上方的按钮加载这些动画。每个按钮都会配置场景与Faceboard挂钩/解挂钩,并在相应的通道中加载动画。
加载动画对动画文件的内容有一定要求:
要在Faceboard上加载动画,FBX文件必须位于Faceboard控制点的相应通道上,因为这些控制点存在于"表情姿势编辑模式"下组装的场景中。
要加载RigLogic原始动画,FBX文件必须包含一个名为CTRL_expressions的对象,而该对象中会包含所有可设为关键帧的原始控制点特性(即CTRL_expressions.browDownL和类似名称的特性)。
帧分析
无论是手动摆出控制点姿势,还是在通道上加载动画,你现在都可以分析该绑定,以查看哪些节点处于活动状态并对当前帧的姿势产生了贡献。
单击"分析帧"按钮即可更新图表,并显示绑定姿势的活动热图(节点色卡的颜色越深、越暖,表示活动量越大)。
发现对帧的贡献最大的节点后,你就可以从右键菜单中开启预览所选节点(Preview Selected Node)功能,以将其结果孤立出来。 这将使视口显示所选项中最后一个节点的全部贡献。 该设置将被保存在用户偏好设置中。
确定了某个表情需要被编辑后,你就可以从任意现有图表视图展开工作,或者选择依赖项并使用"孤立所选节点(Isolate Selected Node)"功能来新建一个节点数量较少的选项卡。
主动编辑表情
表情编辑器的大部分工具包都可以校准目标表情,包括网格体和关节。
由于关节可以匹配网格体,而LOD 0又可以被无缝地降级到所有其他LOD,因此表情编辑模式仅适用于更改LOD 0。 虽然其他LOD也可以被显示并自动调整至符合标准的状态,但编辑操作被特意地限制为仅针对最高分辨率的LOD。
要编辑某个表情,你需要选择一个节点并按下带绿色圆圈的按钮。 另外,双击某个节点也可以编辑该节点的表情。
如果存在有效选择,则该按钮将改变状态和外观,而顶部工具栏的其他部分会被禁用。
除当前活动选项卡外的所有选项卡都将被禁用。 顶部工具栏也将被禁用,编辑模式按钮将变为红色。
你可以在当前选项卡中设置节点的锁定状态,以选择哪些表情会受编辑的影响(即增量传播)。 点击当前编辑节点的各个下游节点上的挂锁图标即可达成此效果。
节点的锁定状态是一种全局状态。 这意味着无论你是在哪个图表选项卡中更改了锁定状态,该更改都会影响所有选项卡。 节点的锁定状态也是有条件的。如果某个节点上游的所有节点都被锁定,则下游节点将不会接收增量。
对应的几何体和关节大纲视图应该会变得可见,同时出现并激活一个垂直工具栏。
如需了解各条命令的完整说明,请参阅UX概述下的实用工具栏小节。
预览上游表情
主动编辑表情的另一个关键元素是预览滑块。
这些滑块让你可以预览上游表情组合的混合效果。 如果某个表情的上游表情少于两个,则只有全局滑块可用。
位于该滑块组顶端的全局滑块会同时混合其他所有滑块。 这实际上就像是混合中性姿势和当前编辑的表情。
后续的滑块(如果存在)则分别控制上游表情的混合。 这是表情校准后最重要的美术/质量检查步骤之一,因为这让你可以预览较简单的(上游)表情的组合效果。
预览下游表情
预览滑块可以让你方便地预览上游表情,并验证这些表情是否完美地结合为你所主动编辑的组合,但预览滑块对被传播更改的下游表情没有任何作用。
在提交更改前,你需要通过预览网格体来检查下游的节点。
你可以用三个按钮创建预览网格体。
这三个按钮可以分别执行以下操作:
为表情图表中所有选定的节点创建预览网格体
为当前编辑的表情节点下游的所有未锁定节点创建预览网格体
删除上述任一操作或两种操作所创建的网格体
分阶段表情
在编辑时,分阶段表情滑块可以为你提供编辑表情的机会。 点击左侧或右侧即可浏览各个阶段。当关节变为红色时,你就可以编辑该阶段。 然后请使用滑块查看编辑完成后的效果。
提交更改至下游(增量传播)
除非你是一位经验丰富的技术美术师,非常熟悉表情的行为和组合方式,否则不建议你使用高级增量传播(Advanced Delta Propagation)。 实际上,这就相当于表情编辑器的"专家模式"。
增量传播模式有二,两者大为不同。 增量传播模式的切换由设置和偏好(Settings and Preferences)菜单中的一个选项控制。
默认增量传播 — 仅在主动编辑结束时(点击顶部工具栏中的圆形按钮,或双击另一个节点以更改编辑活动),才会将编辑内容完整地传播到所有未锁定和非停用状态的节点(非停用状态的节点是指至少有一个上游节点处于未锁定状态的节点)。
高级增量传播 — 在更改时,部分编辑内容会被传播到所有未锁定和未禁用的节点。更改节点的锁定状态,然后继续编辑,即可将编辑内容传播到新的所选项,而无需退出主动编辑模式。 此模式让你可以在编辑时将小幅调整传播到复杂的所选项,而无需改变编辑的模态。 不过,传播的范围越广,造成的更改就越难检查和验证。
当你对表情所做的更改、其与上游依赖项相混合的效果、向下游传播更改的效果让你感到满意后,就可以点击顶部工具栏上的圆形按钮或双击当前的活动节点,从而退出主动编辑模式。 这将完成对顶点的增量传播。
在退出表情的主动编辑模式后,场景会应用更改,但仅限于顶点的更改。 你完全可以使用绑定预览动画,但这时信息被完全存储在"变形目标"中;关节不会被重新定位,且只有在LOD 0可用。关节匹配被设计为单独的步骤,且应该遵循顶点的编辑。
在主动编辑前一个节点时双击另一个节点,也会使你退出前一个节点的当前活动、提交更改,并开始主动编辑被双击的[另一个]表情。
首次从表情编辑工具栏运行MLJM时,由于需要加载ML模型,该过程会花费几分钟时间(具体取决于机器规格)。 之后对该会话的使用将立即生效。
下一节将更详细地介绍关节匹配,但我们想在此指出的是,在表情编辑过程中,你就已经可以在表情级别上进行一定程度的关节匹配,不过这仅限于基于机器学习的关节匹配(工具栏中提供)。
场景级别的关节匹配
我们建议有条理地处理关节匹配,就像优化过程那样,而不是采取"美术化"的处理。 最好在表情编辑阶段对顶点进行创意贡献和逼真度匹配。而关节匹配的任务是最大限度地减少变形目标所产生的位移,从而仅依靠关节变换就能尽可能多地体现信息和准确性。
在大多数情况下,你可以运行关节匹配通道来自动完成这项工作,但我们强烈建议你进行检查。前几个阶段也常常需要一些修正。
最小化LOD 0(关节和顶点动画)和纯关节动画之间的差异不需要最小化关节和顶点之间的距离。 事实上,对表情而言,这样做往往会适得其反。
最小化应该追求使纯关节LOD(或无顶点动画的LOD 0)体积与LOD的全部细节尽可能地对齐。
影响多个顶点的关节和受多个关节影响的顶点很少会对齐中性姿势中与其接近的顶点,这样就比较好。
只有在中性姿势下,表面关节才有可能靠近顶点,而你很难对"表情"做到这一点。
关节匹配不仅仅是帧率相关的优化。 关节动画的插值方式是线性形状插值无法实现的。 即使你只打算在过场动画设置中使用LOD 0,我们也仍然建议执行关节匹配。 变形目标可以极大地丰富运动效果,但应以细微差别和最小位移为目标。
关节匹配分为两种:NLS和ML。
NLS关节匹配(NLSJM)是一种成熟的、更具分析性的过程,可用于各种关节集合,而ML关节匹配(MLJM)是一种试验性的、基于数据驱动的机器学习方法,它使用我们的数据库进行训练。
对于比例相对正常的人类而言,ML关节匹配(MLJM)可以快速地使用单个通道完成工作。 不过,当目标网格体偏离正常人体形态时,它的效果就会变差。 它的运行和结果检查通常都是一件"看运气"的事情。
运行MLJM后,你可能仍然需要运行一些NLS的预设来处理MLJM无法定位的关节,例如与头部转向相关的关节。 详情请参阅相关的已知问题。
而NLSJM则使用多通道运行,各通道负责影响各自的关节集。
NLS关节匹配
NLSJM会以"通道(Pass)"为单位运行。 通道是供算法运行的关节集,目的是重新定位关节。 每条通道在放置关节时会匹配网格体中表示表情的体积。我们为最有效的通道列出了一份完整的预设列表,这些预设被按顺序命名,以便于使用和指导。
运行关节匹配通道非常简单,只需选择要运行的通道并点击运行按钮即可。
预设选择只影响NLSJM,对MLJM没有任何影响。
关节匹配可以与人工修正交叉使用。我们将在下一节编辑建议中提供具体且通常有效的操作顺序的指导。
运行一套预设可能会花费几秒到几分钟的时间,具体取决于预设和预设中的关节数量。
即使你已经运行过了MLJM(请参阅MLJM小节的建议),也最好至少运行某些NLSJM通道。
ML关节匹配
MLJM是一款试验性功能。
MLJM是一款基于机器学习的关节放置系统,其训练所用的角色数据库与MetaHuman Creator所用的数据库相同。
它既可以操作单个表情(如表情编辑工具栏所示),也可以同时操作图表中的大多数表情。
ML关节匹配的关节排除项
表情编辑器会明确地阻止MLJM影响下列关节:
|
|
|
这通常与最终用户无关,但如果你直接使用库,而忽略表情编辑器的具体实现细节,那么可能需要考虑这一点。
MLJM对部分表情(如上所述)不会有影响,正因为如此,你更应该运行一些会影响表情的NLSJM通道。
更新DNA
内存中的DNA会被场景中的内容覆盖。
请注意关节匹配(不会更新场景)与此更新之间的交互。
建议在执行关节匹配后始终重新加载DNA,然后再开始或继续表情的编辑工作。
此命令会分析场景、网格体和关节中的表情状态,然后将所有表情重新编码到内存中的DNA中。 此命令会保存一份临时文件,但我们不建议使用该文件,因为该命令并不构成保存操作,而保存操作属于另一条命令(在其右侧)。
保存DNA
此操作会将内存中的DNA保存到文件中。 此操作不会进行其他计算,且用户有责任确保内存中的DNA反映了用户所希望保存的所有更改。
除非用户完全熟悉工作流程且清楚在什么时候能看到什么效果,否则我们建议在保存后始终重新加载DNA文件,然后再继续操作。
下一步
保存和导出数据
准备修改后的MetaHuman头部DNA以供在MetaHuman Creator和虚幻引擎中使用。