從3DS MAX中匯出骨骼動畫注意的幾件事

2021-06-09 01:18:11 字數 938 閱讀 9188

編寫外掛程式從max中匯出骨骼動畫的幾點注意事項.

1.首先要遍歷所有的mesh,和bone,並匯出0時刻的mesh所有頂點位置及索引,和bone的世界變換矩陣的逆矩陣.這些資訊可以單獨放到乙個檔案中,以後加入動作時,每個動作可以做為乙個檔案.

2.如果使用physique做為蒙皮外掛程式以下是尋找該修改器的**:

modifier* findphysiquemodifier (inode* nodeptr)

// next modifier stack entry.

modstackindex++;

}objectptr = derivedobjectptr->getobjref();

}// not found.

return null;

}3.在匯出動畫時,max中的四元數是反向的.比如我們對骨骼以軸(0,0,1)旋轉(90)度.通過control * rotcont = ibone->gettmcontroller()->getrotationcontroller();

inumkeys = ctlrot->numkeys();

for( i=0; i < inumkeys; i++ )

得到的是 以軸(0,0,-1)旋轉(90)度

所以要對四元數的x,y,z分量,(也就是軸方向分量與角度一半的正弦積)求負.才能正常的顯示動畫.

4.getnodetm 函式得到的是節點相對世界空間的變換,在匯出動畫的時候往往要得到相對於它的父節點的變換.所以要做如下變換:

matrix3 matrelativetm;

matrix3 matparenttm;

matrix3 mattm = getbonetm(pnode,keytime);

if (bonenode.mparentid == -1)

else

else

}

3ds Max匯出FBX動畫模型在OSG中使用

3ds max做好動畫模型 匯出選項 包含 動畫 附加選項 勾選使用場景名 這樣動畫名就是場景名 高階選項 單位 勾選自動 否則匯出的模型很小 匯出檔名假設a.fbx 使用osgconv工具旋轉座標軸,因為fbx的座標軸和osg座標軸x相差乙個90度 osgconv a.fbx o 90 1,0,0...

3ds max 匯出外掛程式開發後記

一直以來。3ds max 匯出外掛程式的開發這部分對我都是神秘的黑盒子。直到乙個月前,不得不去做這個事,我才開始一步步走近他。通過網路上的只言片語和 揣摩。終於在兩周的時間搞定了匯出外掛程式和骨骼動畫的檢視器。我用的vs2005進行開發。對應 3ds max 2008sdk,3ds max 2009...

3ds max 匯出外掛程式開發後記

一直以來。3ds max 匯出外掛程式的開發這部分對我都是神秘的黑盒子。直到乙個月前,不得不去做這個事,我才開始一步步走近他。通過網路上的只言片語和 揣摩。終於在兩周的時間搞定了匯出外掛程式和骨骼動畫的檢視器。我用的vs2005進行開發。對應 3ds max 2008sdk,3ds max 2009...