C++ 7가지 복습 정리
BVH loader
- BioVision hierachical data로, Biovision에서 개발된 파일 형식
- Motion Capture data를 전달하는 text file 포맷
- 구성 section
- Hierarchy : skeleton의 hierarchy와 initial pose에 대한 정보
- Motion : motion data에 관한 정보
- BVH file은 Right-handed Coordinates 기준
(z축의 양의 방향이 앞으로 나오는 )
BVH Hierarchy Section


- Hierarchy 라는 키워드로 시작하며
ROOT 이후에 나오는 키워드를 (ex.Hips) 통해 Root를 지정.
정해진 Root joint는 앞으로 나올 skeletal structure의 시작점
- Offset은 각 Joint의 위치를 Parent Joint를 기준으로 정의하는 값,
부모 관절로부터 얼마나 떨어져 있는지에 대한 상대적 위치
- Channel은 각 Joint의 Transformation에 대한 data를 저장하는 공간
- Position Channels: 관절의 위치
- Rotation Channels: 관절의 회전
- 각 프레임마다 실제 Motion Data가 Channel에 기록됨.
- 그림과 같이 ROOT 관절의 Channel이
Xposition, Yposition, Zposition, Zrotation, Xrotation, Yrotation 순서라면,
해당 Joint의 움직임은 이 순서대로 BVH 파일의 Motion Data에 기록됨.
- Joint 에 Child가 없는 경우 End Site Section으로 연결
BVH Motion Section
- MOTION 라는 키워드로 시작
- 이후 Frame 수를 나타내는 줄이다.
- Frame Time은 data의 sampling rate를 나타내는 키워드.
가령 0.033333이라면, 이는 초당 30프레임을 의미.
- 이후는 Motion Data이다.
- 각 줄은 하나의 frame에서의 motion data이다.
- 각각의 숫자는 Channel에 대한 값이며
각 값의 순서는 Channel의 순서와 동일하다.
- rotation channel의 값의 단위는 degree이다.
시연 영상