xianfei / SysMocap

A real-time motion capture system for 3D virtual character animating.
Mozilla Public License 2.0
2.49k stars 415 forks source link

作者您好,似乎在动作那边存在一些bug #56

Open 2849236173 opened 11 months ago

2849236173 commented 11 months ago

[目标在进行蹲下的动作时,反而会出现抬腿的动作。所使用视频为

https://github.com/xianfei/SysMocap/assets/116887183/184ebd95-761b-4307-b8fc-5cf291c65088

xianfei commented 11 months ago

确实很有可能出现这样的问题,我之前是发现了的可是我没想好怎么修

2849236173 commented 11 months ago

那能确定是哪个位置出了问题吗。我之前尝试修复,发现他小腿坐标y和z 始终为0。因此可能因为这个导致下蹲动作变成抬腿。但是好像这个坐标是那个库的solve解析出来的,而放如solve函数的是result,这部分应该是识别那边的出来的。所以后面就完全没思路修改了

icynic commented 10 months ago

看了毕业论文。我觉得是骨架结构转换这一部分出了问题。

由于本系统驱动虚拟形象骨骼时只使用旋转信息(因为模型与视频中人物身高、臂长、腿长等均不相同,使用位置信息驱动虚拟形象可能导致其变形、扭曲),所以即使动作捕捉的精度足够高,驱动虚拟形象时也仅能还原其大致位置。

因为只对骨骼之间进行了相对旋转,所以躯干的位置是一直不变的。这个条件下,做出下蹲动作就会变成抬腿。

如果确定一个根关节作为坐标系中心,用它的移动带动整个身体,或许可以解决问题。移动的幅度也需要是相对的。

xianfei commented 10 months ago

看了毕业论文。我觉得是骨架结构转换这一部分出了问题。

由于本系统驱动虚拟形象骨骼时只使用旋转信息(因为模型与视频中人物身高、臂长、腿长等均不相同,使用位置信息驱动虚拟形象可能导致其变形、扭曲),所以即使动作捕捉的精度足够高,驱动虚拟形象时也仅能还原其大致位置。

因为只对骨骼之间进行了相对旋转,所以躯干的位置是一直不变的。这个条件下,做出下蹲动作就会变成抬腿。

如果确定一个根关节作为坐标系中心,用它的移动带动整个身体,或许可以解决问题。移动的幅度也需要是相对的。

应该是这样的,可是我也不知道该怎么改(