DIY OGRE的面部動畫

通過前面[1,2]將OGRE中的facial.mesh轉換爲xml進行分析後,明白了OGRE中Pose Animation的實現原理:在頂點初始位置與偏移位置(由poseoffset指定)之間進行線性插值。比如:頂點位置爲:x = 1 , y = 1 , z = 1,poseoffset指定該點的相對偏移量爲:pox = 2 , poy = 2 , poz = 1,如果規定在100s完成動畫,並假設FPS = 1(這有點誇張),則應該將相對偏移量進行100等分,每一秒在原來的頂點座標上增加:deltax = 0.02,deltay = 0.02,deltaz = 0.01。

程序中通過解析xml文件得到:submesh信息、每個submesh對應的poseoffset集。下面是其數據結構:

每個submesh用鏈表串起來,而一個submesh中可能存在多個pose動畫,這些pose動畫也採用鏈表結構。在程序中允許用戶選擇一個submesh作爲當前submesh,如果該submesh有pose動畫則在左邊列表中給出,用戶點擊相應的pose動畫可以播放。

發佈了69 篇原創文章 · 獲贊 2 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章