unreal engine 4 中变形目标的疯狂值

Crazy values on morph targets in unreal engine 4

Oy 我正在 Maya 2019 中制作一些动画,在 Unreal Engine 4.20 中导出后我遇到了一些问题。
对于导出,我使用 File > Game Exporter 菜单。 (到目前为止,我尝试过的任何其他导出工作流都会导致在 Unreal 中冻结导入)。
使用 Game Exporter 一切顺利,我在 UE4 中导入时确实有一些错误,但一切看起来都很好,除了一件事:

我角色的脸全乱了。经过一些挖掘,我发现这都是关于一些具有疯狂值的面部变形目标:

如果我手动将所有这些疯狂的值设置为 0,一切看起来都很好。这可能是什么原因造成的?

如果我检查网格资产,变形目标被限制在 -1 到 1 之间,当我移动滑块时它们看起来应该是这样。

导入动画时出现的错误是:

Imported bone transform is different from original. Please check Output Log to see detail of error.
Mesh [Geometry have no name] in the fbx file is not reference by any hierarchy node. 

感谢您的帮助。

有时候困难的方法实际上是最简单的方法。

我无法使用 Game Exporter 或使用插件进行任何工作,所以我自己制作了一个脚本来烘焙我的动画,包括我的校正变形,并将结果导出到 FBX 2018 中。它有效。

下面是我编写脚本的方式:

首先我 select 导出 selection 集(它包含我的几何体和变形关节),然后点击 Key > Bake Simulation(你必须在 Animation set 菜单中有键菜单显示)。我打开脚本编辑器并复制以 "bakeResults" 开头的命令行(如果您之前已经 select 编辑了很多东西,很容易找到它:脚本编辑器末尾有很长的一行).

从那里我有我的脚本基础,但它不包括我的混合形状的烘焙。

因此,对于每个要烘焙混合形状的对象:

  • select大纲中的对象
  • 在通道框中双击其混合形状输入
  • 复制它的名字
  • 将其粘贴到脚本末尾,就在 };
  • 之前
  • 确保遵守语法:每个列表元素必须介于两个 " 之间,并用逗号和 space 分隔。在 };
  • 之前的最后一个元素之后没有逗号,也没有 space

看起来像这样:

bakeResults -simulation true -t "1:60" -sampleBy 1 -oversamplingRate 1 -disableImplicitControl true -preserveOutsideKeys true -sparseAnimCurveBake false -removeBakedAttributeFromLayer false -removeBakedAnimFromLayer false -bakeOnOverrideLayer false -minimizeRotation true -controlPoints false -shape true {"element_to_bake", "another_thing_to_bake"};

但列表中的元素更多。

注意行中的 -t "1:60":这是您要烘焙的帧范围。您需要根据您的需要调整这些数字。 一旦你有了这条线,我建议你将它保存在某个文件中。

要使用它,请在烘焙前保存您的项目,然后将脚本粘贴到 UI 左下角的 MEL 命令行中,如果需要调整时间范围,然后按 ⏎ ENTER执行烘焙脚本。
烘焙完成后,您可以导出 FBX,然后重新加载保存的项目文件。