Mediapipe4u-plugin icon indicating copy to clipboard operation
Mediapipe4u-plugin copied to clipboard

编译为安卓程序后,四肢没有动补,手指和躯干转动有动作。

Open caviar-cn opened this issue 11 months ago • 17 comments

MediaPipe4U 版本

zzz

UnrealEngine 版本

5.4.x

平台

Android

UnrealEngine 类型

Launcher

问题类型

其他

错误详细描述

编译为安卓程序后,四肢没有动补,手指和躯干转动有动。 在一天时间里尝试了所有参数,都无法让四肢在安卓手机上进行动补运动。 也许是有不知道的内容或者设置? 表现为,转动身体躯干会跟随,手指的运动可以捕捉到,但是四肢僵直无响应。 期待回复。

caviar-cn avatar Dec 12 '24 19:12 caviar-cn

检查动画蓝图是否是上半身模式 (half body), 检查关节是否 lock

endink avatar Dec 14 '24 03:12 endink

收到您的提示后,一直在测试,有点绝望,问题依旧 身体骨骼设置默认是 half body 关节也没有lock锁,于是我增加代码重新设置,问题依旧。 有几个特征 在win上运行正常,在安卓上前后模块有延迟问题,貌似哪里顺序不对会卡住。若同时app会山崩退出。 打开摄像头设置回显后,要在设置参数前加延迟,否者设置有可能无效。 我设置参数里吧关节都lock 后,是有效的,所以代码无错。 下面是设置代码截图 image 下图有点迷惑,您的范例工程里,用 FindMediaPipeAnimationInstance 可以读取的 MediaPipeAnimInstance 我只能在 FindFirstMediaPipeAnimInstance 里读取出来,在win上测试起来无差别,不知有没有什么差别。 image 测试手机是3000元安卓性能尚可。 期待回复。

caviar-cn avatar Dec 14 '24 17:12 caviar-cn

崩溃可以上传一个崩溃日志(其他问题可以开新的 issue).

不用绝望,我开发时候遇到的问题可能是你的好多倍?我想我们可以一起解决你的问题.

让我们继续检查这些:

  1. 你现在的动画蓝图在 windows 下是否有正常?
  2. 安卓运行时候日志中是否有错误或警告?
  3. 是否检查过 M4U 动画蓝图节点上的LOD属性和Mesh 上的 LOD 设置是否匹配, LOD 配置中是否有删除骨骼.

如果 1 正常, 那么几乎可以确定是LOD设置问题.

endink avatar Dec 15 '24 02:12 endink

在win下是正常的,动补也是正常的,动画蓝图 和 骨骼网格体,是在您提供的demo上复制过来的,没有改动 在安卓上,只要启动时,打开摄像头,和创建回放,不并发启动,改为线性,就不会崩溃 骨骼绑定和 LOD,我只是略懂,仔细核对下了感觉相同,因为我是在Demo上复制过来没有删改感觉没什么问题,刚刚我把之前的删除,从新把所有骨骼和动画蓝图又从新在demo上复制过来一次,问题依然如故。 下面是2个切图, pc上动补切图: 隐藏 安卓手机上的截图: 隐藏 安卓上,手指动补是正常的,只是腿 和胳膊 在打开动补的时候会动一下之后几乎不动,转身的时候躯干转动是有跟随转动的,转动头的时候,骨骼网格体整个躯干也会转动,类似转身

caviar-cn avatar Dec 15 '24 05:12 caviar-cn

那应该就是 mesh 上的LOD 问题了, 你强制 LOD 数量为1. 就是强制使用 LOD0 应该就没问题

endink avatar Dec 15 '24 05:12 endink

另外除非你要自己做后期, 否则不建议你在 android 上用 control rig,有性能损失

endink avatar Dec 15 '24 05:12 endink

似乎问题如您所述,我测试了下强制用 LOD0 无效问题依旧,于是我把 LOD 1 2 3 都删掉了,只保留LOD0,编译后,安卓手机上看不到 mesh 骨骼了,说明安卓用的是除 lod0 之外其他 的LOD,那么安卓强制用lod0无效,删掉其他的,就不显示了,该怎么办呢。先留下回复,我出去溜达一圈回来继续研究这个问题。

caviar-cn avatar Dec 15 '24 05:12 caviar-cn

image 直接设置 Lod 数量为1 在安卓上会不显示mesh 必须要加一个移动设备的最小 lod 然后改为0 才能在只有 一个 lod0 时,在安卓设备上显示 网格体,这雷我测试了不下20次,编译->传到手机->如此往复,还是在ue的官方文档找到的 https://dev.epicgames.com/documentation/zh-cn/unreal-engine/setting-up-per-platform-lods 这雷的记下来,不知以后多少人会踩,我感觉安卓用的是lod2 他没用lod3 . 结论,即使用了LOD0 设置为 lod数量为1 ,胳膊腿还是不动,故障依旧,想哭。。。。 期待回复。

caviar-cn avatar Dec 15 '24 08:12 caviar-cn

你看一下输出里有骨骼映射的表格,min LOD = 0就是强制LOD0的意思, 检查动画蓝图每个节点的 LOD设置,这些都是UE基础知识了, 最后仔细看日志, LOD 问题或者其他错误插件都有日志输出, windows 和 android 用法一样的。window 可以 android 就应该可以, 都测试过

endink avatar Dec 15 '24 09:12 endink

应该不是LOD问题,我在动画蓝图,把 MediaPipePoseSolver 骨骼 删掉,在安卓手机上,打开动补的时候,mesh 模型的胳膊腿都是初始状态,不会变化。在动画蓝图里,把 MediaPipePoseSolver 加上,在安卓手机上,mesh 模型的 胳膊腿,会偶尔变化一下位置。貌似是哪里卡住了,这些在 win系统上都正常。在安卓上 pose 动补 极端卡顿。是卡顿,不是不动。 另外 UE5 里写的 最小LOD 的意思是引用最小那个,不是下标最小。如果设置0 ,是使用所有。翻译成中文有歧义。 希望大师能在安卓上测试下,我就一个小白,接触ue也就几个月。是个dos时代的老古董程序员,多多指导,我虚心学习。 期待回复。

caviar-cn avatar Dec 15 '24 22:12 caviar-cn

5.4是开发版本,测试过的,那等有空我上传一个 DEMO吧

endink avatar Dec 16 '24 02:12 endink

有没有一种可能,你的摄像头拍不到你的手肘,导致 landmark 评分很低,MediaPipeAnimationInstance (动画蓝图基类)上有三个属性:

  • MinPoseScoreThresh
  • MinHandScoreThresh
  • MinFaceScoreThresh

代表了三个算解器的阈值,设置为 0 可以无条件信任关键点,默认是评分 >= 0.5

endink avatar Dec 16 '24 05:12 endink

image 效果是,胳膊腿不乱崩了,保持初始状态,不会动。 我尽量的拉远距离,整个身体都在手机摄像头内,依然如故。 实在难搞,白头发又多了。 只能期待您的安卓版的DEMO.来实现目标了。

caviar-cn avatar Dec 16 '24 17:12 caviar-cn

MeRuning.zip 我这的源码,您看看是不是我那写错了。 image 有个想法,打开摄像头后,用图片动补,在pc上没问题,在安卓上崩。能实现的话,app对图像的 可拓展空间就更大了。

您之前说在安卓上,做这些不地道,性能不够优秀,其实他更适合娱乐,和新鲜感,这些都是卖点。到不必要非要应用在动补上。所以能在安卓上工作也是一大亮点。

caviar-cn avatar Dec 16 '24 17:12 caviar-cn

这些阈值属性可以在动画蓝图的类定义的 detail view 上配置的,等有空发一个 DEMO 算了,这样搞很难说是什么问题

endink avatar Dec 17 '24 09:12 endink

image 找到了,测试了下,问题依旧。

caviar-cn avatar Dec 18 '24 15:12 caviar-cn

尝试新版本,Android Demo 工程也已经 release:

https://gitlab.com/endink/mediapipe4u-android-demo

这个工程是 5.4 ,由于 5.4 插件打包还有点问题,暂时没发布,你可以先用新版插件看一下,新版插件重构了很多代码,拆分了动补部分到新插件,现有蓝图中的函数可能要重新连接一下

endink avatar Apr 08 '25 14:04 endink

Android Demo 打包测试通过, 已经支持 5.5

endink avatar May 01 '25 15:05 endink

抱歉,之前一致无法复现是因为我使用 DEBUG GAME 调试,这个问题已经被定位,20250506 中将被修复

endink avatar May 06 '25 11:05 endink

Same as #221

endink avatar May 06 '25 11:05 endink