DeepMotionEditing / deep-motion-editing

An end-to-end library for editing and rendering motion of 3D characters with deep learning [SIGGRAPH 2020]
BSD 2-Clause "Simplified" License
1.55k stars 252 forks source link

Input data shape #187

Open phj128 opened 2 years ago

phj128 commented 2 years ago

Hi, thanks for your wonderful work. When I am reading your code carefully, I find that the input data offsets have the shape [4, 23, 3] while motion has the shape [4, 91, 156]. So the offsets have the shape [B, J, S] and motion has the shape [B, (J - 1) * Q + S, T], where Q = 4 and S = 3. If the last three is the position of the root, where is its rotation? I am new to this field, could you please help me with this? Thank you.

PeizhuoLi commented 2 years ago

Hi, thank you for your question. In retargeting part we use edge representation of the animation, where the root joint rotations in original joint representation is actually stored in the edges that are connected to the root joint.

phj128 commented 2 years ago

Hi, sorry to bother you again. I have noticed that in your code preprocessing the motion data in this line: https://github.com/DeepMotionEditing/deep-motion-editing/blob/master/retargeting/datasets/bvh_parser.py#L205 you choose the rotation of the edge[0] of the skeleton. However, for the joints connected with the root, (like 1, 9, 5 for example in 22 joints number) these joints' rotations are the same as the root rotation. I don't really understand why their rotations should be root rotations. The same situation also happens in joint 12 which connects the head and two arms. I would appreciate it if you could help me with this.