2013-05-31 2 views
1

В настоящее время я пытаюсь показать простую анимированную трехмерную модель с помощью Three.js. Экспорт файлов штраф из 3DS Max, но когда я пытаюсь оживить его, я получаю сообщение об ошибке:Three.JS - DAE Анимация без скинов

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 имеет единственную запись в массиве Animations.

ответ

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

Улыбается дружеский, позорный день рождения. –

Смежные вопросы