endink / Mediapipe4u-plugin

379 stars 52 forks source link

bvh recorder 闪退 #124

Closed AntiF0 closed 6 months ago

AntiF0 commented 1 year ago

MediaPipe4U 版本

20231011

UnrealEngine 版本

5.1.x

平台

Windows

UnrealEngine 类型

Launcher

问题类型

运行错误

错误详细描述

参考了 M4U 动补数据导出 视频,预计在 StaticImageSource 源关闭后对 bvh 文件进行保存,StaticImageSource 源的导入和播放程序运行正常,但是添加了 BVHRecorder 后,点击运行即报错,添加 BVHRecorder 的流程如下:

  1. Plugins\MediaPipe BVH C++ Classes\MediaPipeBVH\Public 文件夹下向场景添加 MediaPipeBVHRecorder image
  2. BP_MediaPipeComponent 蓝图暴露 BVHRecorder 变量,并选中刚刚添加的 MediaPipeBVHRecorder image
  3. BP_MediaPipeComponent 蓝图中,参考 demo 项目,在 Start 函数后调用 Open 函数,并在延迟2s后,调用 Close and Save 函数,图示如下(如果不添加 BVH保存 这块的蓝图,程序可以执行): image image

依照以上添加流程,点击运行后,程序闪退报错: image 根据观察报错部分主要为:

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:E:\Epic Games\UE_5.1\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 763] Array index out of bounds: 344 from an array of size 342

完整报错文件为:MetaHuman_M4U.log 请问作者是否有解决方法,或者是否一定需要使用 demo 项目中的 Save BVHFile Dialog 蓝图块?非常感谢!

endink commented 1 year ago

闪退一定是 BUG 引起的,我会按照你的步骤来尽可能复现

endink commented 1 year ago

Save BVHFile Dialog 只是为了选择文件路径,并不是必要的流程

endink commented 1 year ago

你可以排查一下 LOD 的问题,看起来 344 这种索引像是一个骨骼索引,请检查:

  1. 是否你的模型上启用了 LOD
  2. LOD 改变是否会引擎骨骼数量变化?
AntiF0 commented 1 year ago

你可以排查一下 LOD 的问题,看起来 344 这种索引像是一个骨骼索引,请检查:

  1. 是否你的模型上启用了 LOD
  2. LOD 改变是否会引擎骨骼数量变化?
  1. LOD修改了设置,参考了 MetaHuman 单目摄像头动作,手指,表情捕捉全流程 视频将 m_med_nrw_body 文件中的 Number of LODs 改为了 1,刚刚尝试了改回 4 也会闪退: image
  2. Number of LODs 值的改变应该不会引起骨骼数量变量,查看了一下 Mesh Bones 骨骼数量均为 342 (查看的地址是 m_med_nrw_body 中的 Skeleton Tree 选项,从这里看似乎确实是骨骼索引导致的问题) image
AntiF0 commented 1 year ago

似乎只要向场景中添加 MediaPipeBVHRecorder 就会导致闪退, 另外根据文档内容,想问问是否必须添加 MediapPipeAnimInstance

动补数据导出功能依赖 MediapPipeAnimInstance ,它和 MediapPipeAnimInstance 紧密集成,不可单独使用。

endink commented 1 year ago

DEMO 工程也闪退吗

AntiF0 commented 1 year ago

DEMO 工程也闪退吗

demo工程不闪退,可以正常导出

Pilot-Labs-Dev commented 1 year ago

我也有同样的问题,似乎是metahuman的骨骼体不支持MediaPipeBVHRecorder,demo工程的小金人骨骼体就没问题。

endink commented 1 year ago

回头测试一下 MH, 从日志看是索引问题,通常这只会是 LOD 导致骨骼更改,确保锁定 LOD 0 应该就可以

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 15 days with no activity.

github-actions[bot] commented 11 months ago

This issue was closed because it has been inactive for 14 days since being marked as stale.

endink commented 6 months ago

mark start fix this

endink commented 6 months ago

fixed at version 202405XX