Closed JunfengLiu1 closed 1 year ago
好的,我想通过您的项目学习动捕方面的知识。我仍然有一些疑惑:
1.在getAxisAngle函数中,在求w旋转轴的时候,w = poses[i:i+3]/(theta+1e-6)
为什么要加上1e-6呢?
2.我并不是很了解骨头坐标系。我的理解是:根节点是“cam_trans”对应的点,它的子节点是pelvis,然后每个bone的轴角都是相对于它的父节点(还是都是相对于根节点呢?求解)。请问是否是这样的呢?
3.请问为什么要将整个坐标系进行一个旋转呢,我在unity中驱动自己的与smpl骨骼相似的模型时也需要这样吗?
4.我注意到在‘driveCharacter’函数中,if scene.translation: bones['Pelvis'].location = Vector((100 * translation[0], -100 * translation[1], -100 * translation[2]))
您直接把‘cam_trans’赋值给了pelvis的位置,可cam_trans不是root的坐标吗https://github.com/Arthur151/ROMP/blob/a349c6bf4d6229b8fba2e900d38ef210888937d0/simple_romp/romp/smpl.py#L102
https://github.com/Arthur151/ROMP/issues/403#issuecomment-1379961202
而且我注意到您好像只对pelvis的位置进行了赋值,那么其他节点的location是怎么来的呢?
感谢!
好的,我想通过您的项目学习动捕方面的知识。我仍然有一些疑惑: 1.在getAxisAngle函数中,在求w旋转轴的时候,
w = poses[i:i+3]/(theta+1e-6)
为什么要加上1e-6呢? 2.我并不是很了解骨头坐标系。我的理解是:根节点是“cam_trans”对应的点,它的子节点是pelvis,然后每个bone的轴角都是相对于它的父节点(还是都是相对于根节点呢?求解)。请问是否是这样的呢? 3.请问为什么要将整个坐标系进行一个旋转呢,我在unity中驱动自己的与smpl骨骼相似的模型时也需要这样吗? 4.我注意到在‘driveCharacter’函数中,if scene.translation: bones['Pelvis'].location = Vector((100 * translation[0], -100 * translation[1], -100 * translation[2]))
您直接把‘cam_trans’赋值给了pelvis的位置,可cam_trans不是root的坐标吗https://github.com/Arthur151/ROMP/blob/a349c6bf4d6229b8fba2e900d38ef210888937d0/simple_romp/romp/smpl.py#L102 Arthur151/ROMP#403 (comment) 而且我注意到您好像只对pelvis的位置进行了赋值,那么其他节点的location是怎么来的呢? 感谢!
好的,我想通过您的项目学习动捕方面的知识。我仍然有一些疑惑: 1.在getAxisAngle函数中,在求w旋转轴的时候,
w = poses[i:i+3]/(theta+1e-6)
为什么要加上1e-6呢? 2.我并不是很了解骨头坐标系。我的理解是:根节点是“cam_trans”对应的点,它的子节点是pelvis,然后每个bone的轴角都是相对于它的父节点(还是都是相对于根节点呢?求解)。请问是否是这样的呢? 3.请问为什么要将整个坐标系进行一个旋转呢,我在unity中驱动自己的与smpl骨骼相似的模型时也需要这样吗? 4.我注意到在‘driveCharacter’函数中,if scene.translation: bones['Pelvis'].location = Vector((100 * translation[0], -100 * translation[1], -100 * translation[2]))
您直接把‘cam_trans’赋值给了pelvis的位置,可cam_trans不是root的坐标吗https://github.com/Arthur151/ROMP/blob/a349c6bf4d6229b8fba2e900d38ef210888937d0/simple_romp/romp/smpl.py#L102 Arthur151/ROMP#403 (comment) 而且我注意到您好像只对pelvis的位置进行了赋值,那么其他节点的location是怎么来的呢? 感谢!
4的话虽然不知道作者为什么能这样做,我对相机标定也不太熟悉;但是smpl的root就是pelvis节点
@zhewei-mt 感谢您的回答!5.可是作者驱动的人物模型不是smpl模型呀,应该也不是6890个顶点,在自己的人物模型中怎么算呢 4.romp好像有一个root点,然后导出的.npy中的包括pelvis的所有24个节点的3d位置都是相对于这个root的 2.请问pelvis的轴角的原点是什么呢,其他的都是父节点,pelvis的轴角是否比较特殊呢?
- 驱动的是blender里面的数字人,不用算这个关节点的位置,只需要知道每个关节点的旋转信息就可以了,blender根据旋转信息去转每个关节
- 那我就不清楚了
- pelvis的原点就在pelvis啊;pelvis的轴角对应整个人物全局的旋转,比如正对着,背对着等。其他23个关节点都是相对父节点的旋转信息。两个的意义是不一样的
好的我明白啦,再次感谢!
作者您好,我有以下两个问题: 1.我注意到您使用四元数来表示旋转的。请问在driveCharacter(rotations, translation)中的rotation参数是如何从romp的结果中转换而来的呢
2.在
中,每一个bone的旋转向量的原点是什么呢