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.58k stars 256 forks source link

What is "xxx_virtual" joints produced by the function "build_joint_topology" in skeleton.py? #46

Closed ANYMS-A closed 4 years ago

ANYMS-A commented 4 years ago

Hi there, I got a question about the function "build_joint_topology" in skeleton.py.

I could understand that this function is mapping the "edges" to "joints" thus we could write the info of "joints" into a .bvh file.

But why we need to add "xxx_vitual" joints to the skeleton?

And I was kind of confused about the role of the variable named "out_degree" defined in the line#295.

PeizhuoLi commented 4 years ago

BVH file only allows rigid child bones. But in this work we use edge representation and it's not rigid. So we create virtual bones with zero offsets from their parent to deal with this problem.

ANYMS-A commented 4 years ago

BVH file only allows rigid child bones. But in this work we use edge representation and it's not rigid. So we create virtual bones with zero offsets from their parent to deal with this problem.

Thanks a lot!