flagflag  If you want to see English page, please click "English" Button at Left.
ページ内コンテンツ

binBVH anchor.png

Page Top

概要 anchor.png

  • SecondLife/OpenSim の内部用の最適化(バイナリ化)された BVH データ
  • see llkeyframemotion.cpp LLKeyframeMotion::deserialize(LLDataPack​er& dp)
     
Page Top

Data Format anchor.png

01 00                       "version" (U16)
00 00                       "sub_version" (U16)
04 00 00 00                 "base_priority", Priority (S32, int)  [mJointMotionList->mBasePriority]
b4 54 75 40                 "duration", Length (F32, float)  [mJointMotionList->mDuration]
00                          "emote_name", Expression Name (string)  [mJointMotionList->mEmoteName]
00 00 00 00                 "loop_in_point",  In Point  (F32)  [mJointMotionList->mLoopInPoint]
b4 54 75 40                 "loop_out_point", Out Point (F32)  [mJointMotionList->mLoopOutPoint]
01 00 00 00                 "loop", Loop (S32)  [mJointMotionList->mLoop]
00 00 00 3f                 "ease_in_duration",  Ease in Time  (F32   [mJointMotionList->mEaseInDuration]
33 33 33 3f                 "ease_out_duration", Ease out Time (F32)  [mJointMotionList->mEaseOutDuration]
03 00 00 00                 "hand_pose", Hand Pose (U32, unsigned int)  [mJointMotionList->mHandPose]
12 00 00 00                 "num_joints", Joint Count (U32) [Jointデータの数]  

// Joint Data
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]

24 00 00 00                 "num_rot_keys", Number of Rotation Keyframes (int) [Rotationデータの数]  
                             [joint_motion->mRotationCurve.mNumKeys]

// Rotation Keyframe data blocks
73 04       "time", Time Code (U16->F32に変換, old_versionでは元々F32) In Point~Out Point にスケーリングし直し
35 7b       "rot_angle_x", X (U16)  [rCurve->mKeys[time]]
be 6a       "rot_angle_y", Y (U16)
1f 52       "rot_angle_z", Z (U16)

e7 08       "time", Time Code (U16->F32に変換, old_versionでは元々F32)
38 6f       "rot_angle_x", X (U16)
e8 b9       "rot_angle_y", Y (U16)
5d 77       "rot_angle_z", Z (U16)
.........................


56 00 00 00               "num_pos_keys", Number of Position Keyframes (S32) [Positionデータの数]
                          [joint_motion->mPositionCurve.mNumKeys]

// Position Keyframe data blocks
73 04       "time", Time Code (U16->F32に変換, old_versionでは元々F32) In Point~Out Point にスケーリングし直し
ff 7f       "pos_x", X (U16)  [pCurve->mKeys[pos_key.mTime]]
ff 7f       "pos_y", Y (U16)
ca 7d       "pos_z", Z (U16)

e7 08       "time", Time Code (U16->F32に変換, old_versionでは元々F32)
ff 7f       "pos_x", X (U16)
ff 7f       "pos_y", Y (U16)
bb 7d       "pos_z", Z (U16)
.........................
 

"num_constraints" (S32) 
    "chain_length" (U8)  [constraintp->mChainLength]
    "constraint_type" (U8)  [constraintp->mConstraintType]
    "source_volume" (Binary 16bit, char*に変換)  [constraintp->mSourceConstraintVolume]
    "source_offset" (Vector3)  [constraintp->mSourceConstraintOffset]
    "target_volume" (Binary 16bit, char*に変換)  [constraintp->mTargetConstraintVolume]
    "target_offset" (Vector3)  [onstraintp->mTargetConstraintOffset]
    "target_dir" (Vector3)  [constraintp->mTargetConstraintDir]
    "ease_in_start" (F32)  [constraintp->mEaseInStartTime]
    "ease_in_stop" (F32)  [constraintp->mEaseInStopTime]
    "ease_out_start" (F32)  [constraintp->mEaseOutStartTime]
    "ease_out_stop" (F32)  [constraintp->mEaseOutStopTime]


// Next Joint Data
.........................
Page Top

Code anchor.png

  • mJointMotionList, joint_motion, joint_state
  • JointMotion* joint_motion = mJointMotionList->getJointMotion(i);
  • mJointMotionList->mConstraints.push_fron​t(JointConstraintSharedData);
	//-------------------------------------------------------------------------
	// JointMotionList
	//-------------------------------------------------------------------------
	class JointMotionList
	{
	public:
		std::vector<JointMotion*> mJointMotionArray;
		F32						mDuration;
		BOOL					mLoop;
		F32						mLoopInPoint;
		F32						mLoopOutPoint;
		F32						mEaseInDuration;
		F32						mEaseOutDuration;
		LLJoint::JointPriority	mBasePriority;
		LLHandMotion::eHandPose mHandPose;
		LLJoint::JointPriority  mMaxPriority;
		typedef std::list<JointConstraintSharedData*> constraint_list_t;
		constraint_list_t		mConstraints;
		LLBBoxLocal				mPelvisBBox;
		// mEmoteName is a facial motion, but it's necessary to appear here so that it's cached.
		// TODO: LLKeyframeDataCache::getKeyframeData should probably return a class containing 
		// JointMotionList and mEmoteName, see LLKeyframeMotion::onInitialize.
		std::string				mEmoteName; 
	public:
		JointMotionList();
		~JointMotionList();
		U32 dumpDiagInfo();
		JointMotion* getJointMotion(U32 index) const { llassert(index < mJointMotionArray.size()); return mJointMotionArray[index]; }
		U32 getNumJointMotions() const { return mJointMotionArray.size(); }
	};

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   新規 ページ一覧 単語検索 最終更新   ヘルプ   最終更新のRSS 1.0 最終更新のRSS 2.0 最終更新のRSS Atom
Counter: 1583, today: 1, yesterday: 0
最終更新: 2011-11-21 (月) 23:54:03 (JST) (4511d) by iseki

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

サブ メニュー

ミニカレンダー

前月2024年 3月翌月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
<今日>

オンライン状況

53 人のユーザが現在オンラインです。 (4 人のユーザが xpwiki を参照しています。)

登録ユーザ: 0
ゲスト: 53

もっと...

アクセスカウンタ

今日 : 5414541454145414
昨日 : 6869686968696869
総計 : 2317969723179697231796972317969723179697231796972317969723179697
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com