重新定位
重新定位是将运动从一个项目层次转移到另一个项目层次的过程。通常,这可能是角色的行走或奔跑周期,将在另一个角色上重复使用该角色,其比例可能与原始角色不同。该运动可以源自场景中现有的关键帧动画,也可以导入运动,例如使用动画FBX文件或导入BVH运动捕捉格式。重新定位的命令和工具可以在Retargeting的部分Actors & Sets工具栏位于Setup界面布局。
重新定位的准备
来源骨架
源骨骼是重新定位(包含动画的关节)的运动源。而在Setup模式,必须将此骨架设置为默认T形姿势(如下图所示),并将其所有旋转设置为0 (零)。尽管某些文件可能将手臂垂直放置,但T姿势通常用于运动捕获数据中。看到导入动作欲获得更多信息。
目标骨架
运动数据加载到的骨架必须是单个连续的项目层次结构。无法将运动重新定位到未连接的单个项目上。该骨架也必须处于标准的T姿势。但是,由于手臂和腿部经常弯曲以帮助变形和IK解算, Modo在应用重新定向的运动时对此进行补偿。所有其他关节应保持静止。骨架还必须面向Z +轴,其根部以X和Z轴的原点为中心。但是,它可能会在Y轴上偏移。
标记目标骨架
帮助Modo在重新定位过程中确定目标骨骼中的特定关节时,应该为它们分配通用名称,并遵循标准方案(运动捕捉通常是这种情况)。Modo使用角色工作室两足动物命名约定(如下所示),因为在绝大多数免费的运动捕捉文件中都可以找到该命名约定。Note:此步骤是可选的,但可以大大减少将运动重新定位到骨骼上所花费的时间。这种命名结构允许Modo自动执行各种任务,例如缩放运动以适应不同大小的骨骼,等等。
要为关节指定名称,只需选择目标项目,然后从弹出菜单中选择适当的预定义名称即可。 Retargeting的部分Actors & Sets工具栏(位于Name菜单)。选择一个项目后,菜单将更新以显示当前分配的名称。要从项目中删除标签,请选择(none)菜单顶部的选项。
定义目标演员
重新定位使用Actor,Action和Pose功能来帮助识别目标关节。如果您不熟悉此功能,请参阅创建演员,动作和姿势话题。要将层次结构分配为Actor,请双击目标骨架的根项(通常是臀部),选择整个层次结构,然后选择Actor > New来自的选项Actors & Sets工具栏打开创建New Actor对话。确保From Selected Items选项设置为Mode并输入骨架名称(例如'SimpleGuy_Retarget'),然后按OK组成演员组。
导入动作
BVH格式的动作
的.bvh这种格式是由一家现已倒闭的动作捕捉公司Biovision开发的,该公司名为Biovision,是他们将动作传递给客户的一种方式。此格式由于其简单性和易于实现性而一直成为行业标准。每个Biovision(*.bvh)运动捕获文件包含骨骼的定义以及实际运动数据。文件中的骨架定义需要在以下位置创建Modo为了对其应用初始运动数据。但是,一旦完成,就进一步.bvh可以将使用相同骨架层次结构的文件作为其他Action状态加载到同一Actor。
加载一个.bvh文件,选择Create from BVH中的选项Actors > New工具菜单Actors & Sets工具栏(如下所示)。这将打开特定于操作系统的文件请求程序,导航至所需.bvh文件并单击Open加载文件。加载后, Modo根据定义自动构建骨架.bvh文件,创建包含骨架项的Actor,并创建包含运动捕捉数据的Action。默认情况下,生成的Actor名为“ ActorBVH”,而包含动作的Action由导入的文件命名(例如,“ Run.bvh”)。
为了减轻各种尺寸问题,在对导入的运动进行适当调整以使其匹配时,生成的骨架会自动缩放为2m高(约6英尺)。它还可以将“设置”姿势以原点为中心(如有必要),并将根部沿Y +方向向上定位,将脚放在地面上。激活了包含导入动作的新动作,从而可以在3D视口中预览动画。
如果还有.bvh使用相同骨架的文件,其运动可以作为其他动作加载到同一Actor中。选择Import from BVH来自Actions > New工具菜单。这将打开特定于操作系统的文件请求程序,导航至所需.bvh文件并单击Open加载文件。加载后,将创建一个新的Action,其名称为.bvh文件。只要它们都使用相同的骨架,就可以以这种方式加载任意数量的其他运动。通过从弹出菜单的可用选项中选择所需的“动作”,可以正常方式在各种动作之间进行切换。
FBX格式文件
的.fbx格式是一种场景数据交换格式,用于在应用程序之间传输几何图形,动画和其他数据。包含骨骼和动画数据的文件可以加载并重新定位到其他角色。的.fbx必须先使用加载文件File > Import...命令,将文件的内容加载到当前场景中。这将创建一个应用了运动信息的骨骼。
要进行重新定向,必须使用与上述相同的方法将此骨架指定为整个骨架的Actor 以上。骨骼还必须处于默认的T姿势Setup模式。如果没有,则必须旋转所有关节直到旋转为止。完成此操作后,必须将骨骼中的运动传递给动作。为此,请先确保退出Setup模式,然后使用New按钮。
这将打开New Action对话框。为操作指定适当的名称,并确保Transfer选项已启用,可将动画从场景移到“动作”中。
由于没有骨架就无法加载FBX运动数据,因此将多个运动加载到同一Actor中的过程与用于.bvh文件。每个步骤都需要遵循以下步骤.fbx文件。
1. | 导入.fbx文件。为骨架创建一个新的Actor。 |
2. | 如上所述,创建一个新的动作并传输动画。 |
3. | 完成此操作后,可以将动作复制到目标Actor,通过在弹出菜单中选择原始Actor,使其成为当前的Actor。 |
4. | 接下来,选择Import from Action来自的命令New动作工具菜单。 |
在出现的对话框中,确保Actor设置为Source。然后选择所需的Actor,其中包含刚加载的动作以及Source Action转移。为结果操作指定名称New Action Name字段(如果保留空白,则默认为源操作的名称)。
请点击OK将动作复制到当前Actor。可以针对每个FBX运动重复此序列。传输完所有运动后,就可以删除(现在不再需要)源骨骼了。
重新定位
重定向工具
现在已经正确设置了“源”和“目标”框架,现在是进行实际重定向的时间了。这是在执行Setup模式使用互动工具。
注意: 骨骼可以具有不同的大小和比例。
要激活该工具,请首先选择源骨骼的根关节,然后选择目标骨骼的根关节(按此特定顺序)。然后点击Retargeting Tool按钮。可以在Retargeting的部分Setup版式工具箱(在Actors and Sets子标签,默认情况下也可以将其最小化)。Modo使用其全身IK为了帮助解决重定位问题,“重定位”工具首先检查是否已将IK分配给目标骨架,并根据需要添加它,并显示以下对话框。
然后,重定向工具会要求提供重定向地图文件。这些文件存储一对骨架的重定目标信息,从而可以自动应用重定目标。如果这是第一次映射这些骨架,请选择No继续下一步。如果骨骼之前已经映射过,并且已经为其保存了映射文件(请参见映射文件),然后选择“是”打开文件请求者。选择映射文件,然后单击OK。然后将应用所有重新定向,并且您可以立即在3D视口中查看角色的动作。
然后,重定向工具会在3D视图中绘制其手柄。暂时将源框架移回以帮助使连接更清晰,在禁用该工具时将其恢复。如果未选择映射文件,则该工具会使用在设置阶段定义的关节名称来识别匹配的关节,从而检查骨架并自动建立尽可能多的连接。由于根项目在3D视图中可能难以访问,因此该工具会自动将其映射,并添加一个位置图钉(如下面所描述的)。
该工具使用颜色编码的连接手柄(以实心圆绘制)以允许建立新链接并提供有关现有连接的反馈。
• Blue:源骨骼上的未映射关节
• Red:目标骨骼上未映射的关节
• Green:映射的关节
重定位链接在映射的关节之间以虚线绘制。目标骨骼上已映射关节的线框颜色更改为绿色,以表明该关节当前是由重新定向驱动的,即使关闭了“重新定向”工具也是如此。一旦从骨骼中删除了重新定向,关节的原始颜色就会恢复。通过单击并将其从蓝色源连接手柄拖到红色目标手柄中,可以添加新链接。链接可以通过以下方式删除Ctrl+单击源或目标连接句柄。
Adding a new link.
The skeleton fully mapped.
定位销
如上所述,重定位链接将源关节的旋转映射到目标关节的旋转。平移映射(实际运动)通过使用定位销来实现。它们占据源关节的位置,并按比例将其应用于目标关节的位置。缩放比例基于目标骨骼与其来源相比的比例和大小的差异。定位针几乎总是需要施加到目标骨架的根部,因此在激活“重定向”工具时会自动添加它们。
将位置销分配给关节后,绿色圆形手柄将变为绿色正方形。启用定位销作为切换,通过右键单击源或目标手柄来打开和关闭它们。您可以通过以下方式删除位置图钉Ctrl+点击它。
链接不同比例的骨骼时应用的自动比例缩放有助于减少任何脚部滑动。在角色的脚上添加定位销可以进一步改善效果。如果需要,这些销钉也可以应用于骨架的其他部分。例如,如果动作涉及角色的手搁在地面上(例如倒立),则可以将定位销钉应用于手腕以帮助将其固定到位。
注意: 如果尚未将重新定向标签分配给目标骨架,则无法应用自动缩放,需要手动设置和调整。的全身IK设定Position Task属性有一个Scale可以用于此目的的渠道。这对于调整(如果需要)从重新定位标记计算得出的自动比例也很有用。
手动添加和删除链接
使用重定向工具可以使某些关节难以使用。这可能是因为它们可能非常靠近其他关节,甚至处于相同位置。在这种情况下,可以使用Add Link和Remove Link下方的按钮Retargeting Tool。这些可以在工具打开或关闭时使用。要添加链接,请选择源关节,然后选择目标关节,然后单击Add Link按钮。要删除链接,请选择目标关节,然后单击Remove Link按钮。
预览动作
分配所有重定向目标链接后,退出Setup模式可让您预览现在已应用于角色的重定位动作。绘制连接器点以使映射更清晰。你可以进出Setup编辑重新定向时,根据需要在“重新定向”工具处于活动状态的情况下可以选择“否”模式。
如果源Actor具有多个Action,则可以在它们之间进行切换,并查看应用于角色的每个动作。
映射文件
映射文件存储骨架对的重定目标信息,从而允许在需要时自动重定目标。重新定位完成后,最好保存骨骼的映射文件,以防将来在从目标骨骼中移除重新定向后将来需要进一步运动时使用。
只要在“角色”弹出菜单中选择了目标骨骼的“角色”并将重定目标应用于骨骼关节,即可随时保存映射文件。激活“重定向”工具时,将加载映射文件,一个请求者出现,询问是否应加载一个文件。
注意: 文件中的项目是通过名称标识的,因此最好在场景中使用最少其他项目来进行重新定向。
删除重定向
可以通过单击Remove Retargeting工具栏中的按钮。这必须在Setup模式,并选择了目标骨架。
单击按钮启动删除操作,打开一个警告确认对话框。点击Yes从骨架中删除重新定向的链接,定位销和任务,然后将关节恢复为其设置和原始颜色。“全身IK”当前未删除。
烘焙动画
烘焙通过为骨骼中的每个关节生成运动的实际关键帧(在每个帧处),将重定目标应用于目标骨骼的关节。烘焙后,可以删除重定目标,以便手动编辑关键帧,例如调整运动或清除运动捕获数据中发现的任何抖动。通过选择目标骨架的根元素并单击Bake Retargeting工具箱中的按钮。
此操作将打开Bake Retargeting对话框面板Start和End框架已定义。
烘焙将每一帧的关键帧写入目标骨架的当前活动Action或场景Action(如果一个未激活)。点击OK在烘烤开始之前打开一个警告对话框。
为避免覆盖动作,最简单的选择是确保在烘焙目标Actor之前当前未选择任何动作。如果烘焙动作令人满意,则可以在之后创建一个新的动作。点击OK在将警告应用于烘焙后,警告对话框上的会显示进度条。烘焙完成后,将显示一个对话框,询问是否应从目标框架中删除重定目标。选择Yes如果将单个动作烘焙到目标骨骼,或者No当源骨骼上还有其他动作需要烘焙时。删除重定目标将删除所有重定目标链接,定位销,并恢复目标关节的原始设置和颜色。如有必要,它还会停用重新定位工具。
烘焙完成后,可以为烘焙动作创建一个新的动作。选择目标骨架的Actor,然后单击New...在里面Actions工具栏部分。在对话框中输入新操作的名称,并确保Transfer选中该选项可将动作从场景动作复制到新动作。
烘焙多个动作
如果源Actor具有多个动作,则可以将所有这些动作一起烘焙,然后再删除重新定向。从源Actor中选择要烘焙的Action。选择目标骨架的根,确保目标Actor没有活动的Action。点击Bake Retargeting按钮。在对话框中提示是否应删除重定向时,选择No。为目标Actor创建一个新的Action,并从场景Action(如前所述)。对属于源Actor的每个动作重复这些步骤。烘焙完所有动作后,可以从源骨骼中删除重定目标,并且目标Actor中的每个动作都有单独的动作。