4: 2011-09-16 (Fri) 13:04:37 iseki  |
Cur: 2011-11-21 (Mon) 23:54:03 iseki  |
| | - SecondLife/OpenSim の内部用の最適化(バイナリ化)された [[BVH]] データ | | - SecondLife/OpenSim の内部用の最適化(バイナリ化)された [[BVH]] データ |
| | - see llkeyframemotion.cpp LLKeyframeMotion::deserialize(LLDataPacker& dp) | | - see llkeyframemotion.cpp LLKeyframeMotion::deserialize(LLDataPacker& dp) |
| | + | #br |
| | + | |
| | + | - http://wiki.secondlife.com/wiki/Internal_Animation_Format |
| | #br | | #br |
| | | | |
| | 03 00 00 00 "hand_pose", Hand Pose (U32, unsigned int) [mJointMotionList->mHandPose] | | 03 00 00 00 "hand_pose", Hand Pose (U32, unsigned int) [mJointMotionList->mHandPose] |
| | 12 00 00 00 "num_joints", Joint Count (U32) [Jointデータの数] | | 12 00 00 00 "num_joints", Joint Count (U32) [Jointデータの数] |
| | + | |
| | // Joint Data | | // Joint Data |
| | 6d 50 65 6c 76 69 73 00 "joint_name", Joint Name (mPelvis) (string) [joint_motion->mJointName] | | 6d 50 65 6c 76 69 73 00 "joint_name", Joint Name (mPelvis) (string) [joint_motion->mJointName] |
| | 04 00 00 00 "joint_priority", Priority Revisited (S32) [joint_motion->mPriority] | | 04 00 00 00 "joint_priority", Priority Revisited (S32) [joint_motion->mPriority] |
| | + | |
| | 24 00 00 00 "num_rot_keys", Number of Rotation Keyframes (int) [Rotationデータの数] | | 24 00 00 00 "num_rot_keys", Number of Rotation Keyframes (int) [Rotationデータの数] |
| | [joint_motion->mRotationCurve.mNumKeys] | | [joint_motion->mRotationCurve.mNumKeys] |
| | + | |
| | // Rotation Keyframe data blocks | | // Rotation Keyframe data blocks |
| | 73 04 "time", Time Code (U16->F32に変換, old_versionでは元々F32) In Point~Out Point にスケーリングし直し | | 73 04 "time", Time Code (U16->F32に変換, old_versionでは元々F32) In Point~Out Point にスケーリングし直し |
| | be 6a "rot_angle_y", Y (U16) | | be 6a "rot_angle_y", Y (U16) |
| | 1f 52 "rot_angle_z", Z (U16) | | 1f 52 "rot_angle_z", Z (U16) |
| | + | |
| | e7 08 "time", Time Code (U16->F32に変換, old_versionでは元々F32) | | e7 08 "time", Time Code (U16->F32に変換, old_versionでは元々F32) |
| | 38 6f "rot_angle_x", X (U16) | | 38 6f "rot_angle_x", X (U16) |
| | 5d 77 "rot_angle_z", Z (U16) | | 5d 77 "rot_angle_z", Z (U16) |
| | ......................... | | ......................... |
| - | | + | |
| | + | |
| | 56 00 00 00 "num_pos_keys", Number of Position Keyframes (S32) [Positionデータの数] | | 56 00 00 00 "num_pos_keys", Number of Position Keyframes (S32) [Positionデータの数] |
| | [joint_motion->mPositionCurve.mNumKeys] | | [joint_motion->mPositionCurve.mNumKeys] |
| | + | |
| | // Position Keyframe data blocks | | // Position Keyframe data blocks |
| | 73 04 "time", Time Code (U16->F32に変換, old_versionでは元々F32) In Point~Out Point にスケーリングし直し | | 73 04 "time", Time Code (U16->F32に変換, old_versionでは元々F32) In Point~Out Point にスケーリングし直し |
| | ff 7f "pos_y", Y (U16) | | ff 7f "pos_y", Y (U16) |
| | ca 7d "pos_z", Z (U16) | | ca 7d "pos_z", Z (U16) |
| | + | |
| | e7 08 "time", Time Code (U16->F32に変換, old_versionでは元々F32) | | e7 08 "time", Time Code (U16->F32に変換, old_versionでは元々F32) |
| | ff 7f "pos_x", X (U16) | | ff 7f "pos_x", X (U16) |
| | bb 7d "pos_z", Z (U16) | | bb 7d "pos_z", Z (U16) |
| | ......................... | | ......................... |
| - | | + | |
| | + | |
| | "num_constraints" (S32) | | "num_constraints" (S32) |
| | "chain_length" (U8) [constraintp->mChainLength] | | "chain_length" (U8) [constraintp->mChainLength] |
| | "ease_out_start" (F32) [constraintp->mEaseOutStartTime] | | "ease_out_start" (F32) [constraintp->mEaseOutStartTime] |
| | "ease_out_stop" (F32) [constraintp->mEaseOutStopTime] | | "ease_out_stop" (F32) [constraintp->mEaseOutStopTime] |
| - | | + | |
| | + | |
| | // Next Joint Data | | // Next Joint Data |
| | ......................... | | ......................... |