2013-05-31 25 views
1

我目前正在嘗試使用Three.js顯示簡單的動畫3D模型。文件出口從細3ds Max軟件,但是當我嘗試動畫它,我得到的錯誤:Three.JS - DAE Animation Without Skins

Uncaught TypeError: Cannot read property 'morphTargetInfluences' of undefined

我用了http://threejs.org/examples/webgl_loader_collada.html

function animate() { 

    requestAnimationFrame(animate); 
    controls.update(); 

    for (var i = 0; i < skin.morphTargetInfluences.length; i++) { 

     skin.morphTargetInfluences[ i ] = 0; 

    } 

    skin.morphTargetInfluences[ Math.floor(explode * 30) ] = 1; 

    render(); 
} 

找到了動畫代碼,我跟蹤誤差降事實上我的模型沒有皮膚。無論如何,我可以爲它製作動畫嗎?導入的Three.js對象在動畫數組中只有一個條目。

回答

2

我知道這是一箇舊帖子,但我也有同樣的問題,當試圖加載.dae文件使用ColladaLoader,所以張貼評論,以防有人在他們的頭撞相同的問題。

如果您的骨骼超過30個,則可以加載動畫。

如果你看一下ColladaLoader.js,有一行:

if(sortedbones.length < maxbones) 

和maxbones設置爲30。所以,如果有不超過30根骨頭,geometry.morphTargets是未定義。

如果你不想有這麼多的骨頭,你可以破解ColladaLoader文件,並設置maxbones爲1


添加到我的評論。

我認爲,新版本的ColladaLoader沒有這個問題。 我不知道我從哪裏得到舊文件...

您可以從GitHub獲取最新的文件。 https://github.com/mrdoob/three.js

+0

乾杯隊友,羞恥的賞金有一個到期日期。 –