|
1 | 1 | # bvh-python |
2 | 2 | Python module for parsing BVH (Biovision hierarchical data) mocap files |
| 3 | + |
| 4 | +#### Instance Bvh object from .bvh file |
| 5 | +```python |
| 6 | +>>> from bvh import Bvh |
| 7 | +>>> with open('tests/test_freebvh.bvh') as f: |
| 8 | +>>> mocap = Bvh(f.read()) |
| 9 | +``` |
| 10 | + #### Get mocap tree |
| 11 | +```python |
| 12 | +>>> [str(item) for item in mocap.root] |
| 13 | +['HIERARCHY', 'ROOT mixamorig:Hips', 'MOTION', 'Frames: 69', 'Frame Time: 0.0333333'] |
| 14 | +``` |
| 15 | + #### Get ROOT OFFSET |
| 16 | +```python |
| 17 | +>>> next(mocap.root.filter('ROOT'))['OFFSET'] |
| 18 | +['0.0000', '0.0000', '0.0000'] |
| 19 | +``` |
| 20 | + #### Get JOINT OFFSET |
| 21 | +```python |
| 22 | +>>> mocap.joint_offset('mixamorig:Head') |
| 23 | +(-0.0, 10.3218, 3.1424) |
| 24 | +``` |
| 25 | + #### Get Frames |
| 26 | +```python |
| 27 | +>>> mocap.nframes |
| 28 | +69 |
| 29 | +``` |
| 30 | + #### Get Frame Time |
| 31 | +```python |
| 32 | +>>> mocap.frame_time |
| 33 | +0.0333333 |
| 34 | +``` |
| 35 | + #### Get JOINT CHANNELS |
| 36 | +```python |
| 37 | +>>> mocap.joint_channels('mixamorig:Neck') |
| 38 | +['Zrotation', 'Yrotation', 'Xrotation'] |
| 39 | +``` |
| 40 | + #### Get Frame CHANNEL |
| 41 | +```python |
| 42 | +>>> mocap.frame_joint_channel(22, 'mixamorig:Spine', 'Xrotation') |
| 43 | +11.8096 |
| 44 | +``` |
| 45 | + #### Get all JOINT names |
| 46 | +```python |
| 47 | +>>> mocap.get_joints_names() |
| 48 | +['mixamorig:Hips', 'mixamorig:Spine', 'mixamorig:Spine1', 'mixamorig:Spine2', 'mixamorig:Neck', 'mixamorig:Head', 'mixamorig:HeadTop_End', 'mixamorig:LeftEye', 'mixamorig:RightEye', 'mixamorig:LeftShoulder', 'mixamorig:LeftArm', 'mixamorig:LeftForeArm', 'mixamorig:LeftHand', 'mixamorig:LeftHandMiddle1', 'mixamorig:LeftHandMiddle2', 'mixamorig:LeftHandMiddle3', 'mixamorig:LeftHandThumb1', 'mixamorig:LeftHandThumb2', 'mixamorig:LeftHandThumb3', 'mixamorig:LeftHandIndex1', 'mixamorig:LeftHandIndex2', 'mixamorig:LeftHandIndex3', 'mixamorig:LeftHandRing1', 'mixamorig:LeftHandRing2', 'mixamorig:LeftHandRing3', 'mixamorig:LeftHandPinky1', 'mixamorig:LeftHandPinky2', 'mixamorig:LeftHandPinky3', 'mixamorig:RightShoulder', 'mixamorig:RightArm', 'mixamorig:RightForeArm', 'mixamorig:RightHand', 'mixamorig:RightHandMiddle1', 'mixamorig:RightHandMiddle2', 'mixamorig:RightHandMiddle3', 'mixamorig:RightHandThumb1', 'mixamorig:RightHandThumb2', 'mixamorig:RightHandThumb3', 'mixamorig:RightHandIndex1', 'mixamorig:RightHandIndex2', 'mixamorig:RightHandIndex3', 'mixamorig:RightHandRing1', 'mixamorig:RightHandRing2', 'mixamorig:RightHandRing3', 'mixamorig:RightHandPinky1', 'mixamorig:RightHandPinky2', 'mixamorig:RightHandPinky3', 'mixamorig:RightUpLeg', 'mixamorig:RightLeg', 'mixamorig:RightFoot', 'mixamorig:RightToeBase', 'mixamorig:LeftUpLeg', 'mixamorig:LeftLeg', 'mixamorig:LeftFoot', 'mixamorig:LeftToeBase'] |
| 49 | +``` |
| 50 | + #### Get single JOINT name |
| 51 | +```python |
| 52 | +>>> mocap.get_joints_names()[17] |
| 53 | +'mixamorig:LeftHandThumb2' |
| 54 | +``` |
| 55 | + #### Get JOINT parent index |
| 56 | +```python |
| 57 | +>>> mocap.joint_parent_index('mixamorig:Neck') |
| 58 | +3 |
| 59 | +``` |
| 60 | + #### Get JOINT parent name |
| 61 | +```python |
| 62 | +>>> mocap.joint_parent('mixamorig:Head').name |
| 63 | +'mixamorig:Neck' |
| 64 | +``` |
| 65 | + #### Search single item |
| 66 | +```python |
| 67 | +>>> [str(node) for node in mocap.search('JOINT', 'LeftShoulder')] |
| 68 | +['JOINT LeftShoulder'] |
| 69 | +``` |
| 70 | + #### Search all items |
| 71 | +```python |
| 72 | +>>> [str(node) for node in mocap.search('JOINT')] |
| 73 | +['JOINT mixamorig:Spine', 'JOINT mixamorig:Spine1', 'JOINT mixamorig:Spine2', 'JOINT mixamorig:Neck', 'JOINT mixamorig:Head', 'JOINT mixamorig:HeadTop_End', 'JOINT mixamorig:LeftEye', 'JOINT mixamorig:RightEye', 'JOINT mixamorig:LeftShoulder', 'JOINT mixamorig:LeftArm', 'JOINT mixamorig:LeftForeArm', 'JOINT mixamorig:LeftHand', 'JOINT mixamorig:LeftHandMiddle1', 'JOINT mixamorig:LeftHandMiddle2', 'JOINT mixamorig:LeftHandMiddle3', 'JOINT mixamorig:LeftHandThumb1', 'JOINT mixamorig:LeftHandThumb2', 'JOINT mixamorig:LeftHandThumb3', 'JOINT mixamorig:LeftHandIndex1', 'JOINT mixamorig:LeftHandIndex2', 'JOINT mixamorig:LeftHandIndex3', 'JOINT mixamorig:LeftHandRing1', 'JOINT mixamorig:LeftHandRing2', 'JOINT mixamorig:LeftHandRing3', 'JOINT mixamorig:LeftHandPinky1', 'JOINT mixamorig:LeftHandPinky2', 'JOINT mixamorig:LeftHandPinky3', 'JOINT mixamorig:RightShoulder', 'JOINT mixamorig:RightArm', 'JOINT mixamorig:RightForeArm', 'JOINT mixamorig:RightHand', 'JOINT mixamorig:RightHandMiddle1', 'JOINT mixamorig:RightHandMiddle2', 'JOINT mixamorig:RightHandMiddle3', 'JOINT mixamorig:RightHandThumb1', 'JOINT mixamorig:RightHandThumb2', 'JOINT mixamorig:RightHandThumb3', 'JOINT mixamorig:RightHandIndex1', 'JOINT mixamorig:RightHandIndex2', 'JOINT mixamorig:RightHandIndex3', 'JOINT mixamorig:RightHandRing1', 'JOINT mixamorig:RightHandRing2', 'JOINT mixamorig:RightHandRing3', 'JOINT mixamorig:RightHandPinky1', 'JOINT mixamorig:RightHandPinky2', 'JOINT mixamorig:RightHandPinky3', 'JOINT mixamorig:RightUpLeg', 'JOINT mixamorig:RightLeg', 'JOINT mixamorig:RightFoot', 'JOINT mixamorig:RightToeBase', 'JOINT mixamorig:LeftUpLeg', 'JOINT mixamorig:LeftLeg', 'JOINT mixamorig:LeftFoot', 'JOINT mixamorig:LeftToeBase'] |
| 74 | +``` |
0 commit comments