故障排除
本节介绍使用Unreal Engine Plugin的常见问题。 如果Unreal Engine Plugin无法正常工作,请参阅以下信息进行故障排除。
常见问题
- 内容浏览器中无法看到mocopi实时链接文件夹
- 放置后,场景中无法看到Unreal人体模型
- 角色不动(无法接收运动数据)
- 使用UDP未接收到运动数据(未列出源对象名称)
- 未接收到运动数据(源为黄点或未列出源实例)
- mocopi人体模型不动,但正在接收运动数据(源为绿点)
- Unreal人体模型不动,但正在接收运动数据(源为绿点)
- Unreal数字人不动,但正在接收运动数据(源为绿点)
- 角色从初始位置大幅移动/偏移
- 正在跟踪角色变换和旋转数据,但未接收到其他动画数据
- 记录器记录内容为空数据
- 无法创建mocopi源;收到有关“库缺失”的错误信息
- 编译、打包:无法在Mac上编译UE插件,算术编译错误
- 打包:在Mac上,mocopi插件打包成功,但游戏无法运行
- 打包失败,收到有关“数字人和/或UE人体模型资产缺失”的错误信息
- 打包:打包失败,”已添加具有相同密钥的项目,密钥:MocopiLiveLink
内容浏览器中无法看到mocopi实时链接文件夹
- 在内容浏览器中,找到右上角的“设置”,确保已选中“显示插件内容”。
放置后,场景中无法看到Unreal人体模型
- 确保已配置Unreal人体模型所需资产,因为插件假定已配置此类资产。插件会使用“第三人称游戏项目”模板中的UE人体模型资产(Manny)。
角色不动(无法接收运动数据)
无数据输入时,源对象名称尚未列出。 检查以下内容:
- 检查开发者环境是否符合要求。
- 如果使用WiFi连接,检查手机是否已启用WiFi,是否已连接到与计算机(PC)相同的接入点。
- 确认mocopi应用程序处于“Motion”>“Send”模式(而非“Motion”>“Save”模式),且“流式传输”已启动。
- 检查mocopi应用程序连接目的地的IP地址是否是运行Unreal Engine的计算机的IP地址。
- 检查发送和接收UDP的端口号是否匹配。
- 检查mocopi应用程序传输格式是否已设置为“mocopi(UDP)”。
- 如果以上设置没有问题,请参阅使用UDP未接收到运动数据。
使用UDP未接收到运动数据(未列出源对象名称)
UDP传输可能在防火墙处受阻。 检查开发环境操作系统的防火墙设置,确保从mocopi应用程序接收UDP传输的端口号处允许通信。如果通信受阻,请将其设置为允许。
此外,如果使用WiFi,请检查路由器设置,确保允许使用UDP协议和端口。
以下为Windows防火墙配置示例。
- 在Windows中打开“具有高级安全性的Windows防火墙”。
- 单击[入站规则]以显示列表。
- 右键单击“Unreal编辑器”,打开“属性”。
- 在[高级]选项卡中的“配置文件”下,勾选与开发环境相对应的网络。
- 确保“协议和端口”选项卡中的“协议类型”字段已设置为“任意”或“UDP”。
未接收到运动数据(源为黄点或未列出源实例)
此种情形下,数据输入会持续一段时间,然后流式传输因某种原因而中断。
- 检查开发者环境是否符合要求。
- 确认mocopi移动应用程序上的数据传输未停止
- 如果使用WiFi,确认手机未切换到其他Wifi网络
- 如果在手机上使用有线网络适配器,检查电缆或适配器是否松动
- 检查mocopi应用程序传输格式是否已设置为“mocopi(UDP)”。
- 确认Unreal计算机未连接到多个网络(Wifi和有线),且获取的IP与手机处于同一网络
mocopi人体模型不动,但正在接收运动数据(源为绿点)
此种情形下,插件正在与mocopi应用程序通信并接收运动数据,但是运动未反映到角色中。
- 检查驱动角色的mocopi源是否仍存在(未删除)、是否已启用(复选框已选中)
- 检查ABP_mocopi文件中的选定mocopi源名称(实时链接源)是否与项目中mocopi源的对象名称相匹配
- 如果多个角色共享同一自定义名称,确保正确角色名称的复选框已启用(在任何给定时间,共享同一名称的多个角色中仅可启用1个角色)
Unreal人体模型不动,但正在接收运动数据(源为绿点)
此种情形下,插件正在与mocopi应用程序通信并接收运动数据,但是运动未反映到角色中。
- 首先,参阅mocopi人体模型不动,但正在接收运动数据(源为绿点)。
- 在“人体模型角色”文件的“Source_SkeletalMesh”详情中,检查“动画类别”是否为“ABP_Mocopi”,“骨骼网格”是否为“MocopiMannequin”(如用户指南中所述)。可重新选择文件,以确保存在正确的文件链接
- 在“人体模型角色”文件的“Target_SketletalMesh”详情中,检查“动画类别”是否为“ABP_Mannequin”,“骨骼网格资产”是否为“SKM_Manny”或兼容UE5.x的Unreal人体模型(如用户指南中所述)。可重新选择文件,以确保文件链接正确
- 如果多个角色共享同一自定义名称,确保正确角色名称的复选框已启用(在任何给定时间,共享同一名称的多个角色中仅可启用1个角色)
Unreal数字人不动,但正在接收运动数据(源为绿点)
此种情形下,插件正在与mocopi应用程序通信并接收运动数据,但是运动未反映到角色中。
- 首先,参阅mocopi人体模型不动,但正在接收运动数据(源为绿点)。
- 确保项目中已启用数字人生成动画需启用的所有插件,以及所有必要设置
- 检查待生成动画的数字人的蓝图(BP)文件,确认“Source_SKM”中的mocopi引用正确无误,如用户指南中所述。如果愿意,也可重新选择文件,以确保文件链接正确
- 检查待生成动画的数字人的蓝图(BP)文件,确认“身体”骨骼网格详情显示的动画类别正确无误,如用户指南中所述。
- 如果多个角色共享同一自定义名称,确保正确角色名称的复选框已启用(在任何给定时间,共享同一名称的多个角色中仅可启用1个角色)
角色从初始位置大幅移动/偏移
- 为确保最佳动画质量,我们鼓励定期重新校准,包括记录前立即重新校准。
- 执行重置位置会将角色重置至初始位置,且会纠正整个记录过程中可能累积的渐进偏移。
正在跟踪角色变换和旋转数据,但未接收到其他动画数据
这是因为Unreal不清楚应将运动数据置于何处。常见解决方法如下:
- 在角色的实时链接设置中,检查“实时链接身体对象”中是否已选中“MocopiSkeleton”。
- 确保“使用实时链接身体”未选中
- 在角色的实时重定向设置中,确认“使用实时重定向模式”未选中。
记录器记录内容为空数据
如果遇到记录内容的所有值和关键帧均为空的错误,请确保源中已启用“使用源时间码”设置,并在发送运动数据时使用最新mocopi移动应用程序。
无法创建mocopi源;收到有关“库缺失”的错误信息
如果尝试创建新mocopi源时出现错误。
- 重新安装插件,确保所有插件文件已就位。
编译、打包:无法在Mac上编译UE插件,算术编译错误
如果在Mac环境下尝试编译插件,却发现编译错误,显示不同枚举类型之间存在算术运算,可将以下代码片段添加到C++项目“Target.cs”文件中的“目标”定义内,以解决此问题:
{
bOverrideBuildEnvironment = true; AdditionalCompilerArguments = "-Wno-deprecated-anon-enum-enum-conversion";
}
打包:在Mac上,mocopi插件打包成功,但游戏无法运行
在Mac上打包BP项目(在最新版本UE 5.1、UE 5.0上)并将插件安装到项目中时,可能出现此情况。若要成功打包,需打包到C++游戏中。如果已有BP项目,可将空类别添加到项目中,将其转换为C++游戏。之后,需添加本页中提到的“编译器标志”,以防出现“算术编译错误”。
打包失败,收到有关“数字人和/或UE人体模型资产缺失”的错误信息
如果项目中没有数字人或Unreal人体模型资产,将需删除以下所列文件才可成功打包:
- Plugins/MocopiLiveLink/Content/Metahuman/ABP_Metahuman
- Plugins/MocopiLiveLink/Content/UnrealMannequin/ABP_Mannequin
打包:打包失败,”已添加具有相同密钥的项目,密钥:MocopiLiveLink
如果项目和Unreal Engine中均已安装插件,且尝试将蓝图项目打包,最新版本Unreal Engine中可能出现此问题。
我们只支持C++项目打包,需将BP项目转换为C++项目。之后,可能需添加本页中提到的“编译器标志”,以防UE 5.0、UE 5.1版本在Mac上出现“算术编译器错误”。