roykapon / MAS

The official implementation of the paper "MAS: Multiview Ancestral Sampling for 3D Motion Generation Using 2D Diffusion"
MIT License
97 stars 3 forks source link

Why do you rotate the motions to facing the negative z-axis and multiply the z-axis values with -1? #5

Closed phj128 closed 3 months ago

phj128 commented 6 months ago

Hi, thanks for your awesome work. When I read the code about converting NBA data to SMPL, I found that you rotate the motions and make it face the negative z-axis. Then you multiply the z-axis values with -1. https://github.com/roykapon/MAS/blob/641737b4dc11b5146dab9ca57bfc917b2c667e3e/visualize/convert_skeleton.py#L12-L27 It seems like this is a mirror. Why do you have to do this?

roykapon commented 5 months ago

Hello @phj128, thank you for checking out our work! We rotate the character to face the z axis in order for the SMPLify method to work as expected. After rotating the character, it can either face forward (which is what we wish for) or backwards. If the character faces backwards, applying SMPLify can result in awkward results. This is why we sometimes need to mirror the character, but it is not correct for all cases. We noticed that most cases require mirroring so we left it in the code. If you see that your character appears awkward, we advice to cancel the mirroring. Thank you for pointing this out!