html5-canvas - Three.JS - 无皮肤 DAE 动画

标签 html5-canvas three.js webgl collada 3dsmax

我目前正在尝试使用 Three.js 显示一个简单的动画 3D 模型。该文件可以从 3DS Max 导出,但当我尝试对其进行动画处理时,出现错误:

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 数组中有一个条目。

最佳答案

我知道这是一篇旧帖子,但在尝试使用 ColladaLoader 加载 .dae 文件时也遇到了同样的问题,因此发布评论以防有人敲打他们的头也有同样的问题。

如果您有超过 30 个骨骼,您也许可以加载动画。

如果您查看ColladaLoader.js,会发现有一行:

if(sortedbones.length < maxbones)

并且 maxbones 设置为 30。因此,如果骨骼不超过 30 个,则 geometry.morphTargets 未定义。

如果您不想拥有这么多骨骼,您可以破解 ColladaLoader 文件并将 maxbones 设置为 1。


添加到我的评论中。

我想,较新版本的 ColladaLoader 不会有这个问题。 我不确定我从哪里得到旧文件...

您可以从 GitHub 获取最新文件。 https://github.com/mrdoob/three.js

关于html5-canvas - Three.JS - 无皮肤 DAE 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16853618/

相关文章:

html - 如何使用html5/css3实现这种效果

javascript - THREE.js 用子级和更多 Material 克隆父级网格

web-applications - 在 iOS 上缩放 Canvas 似乎会使 Mobile Safari 崩溃

javascript - Three.js canvas.toDataURL() 在 Chromium 中损坏了吗?

javascript - 以编程方式从坐标中选择 Fabricjs Canvas 中的对象

opengl-es - 使用 OpenGL ES 绘制轮廓

javascript - 在 WebGL 中的两个着色器之间使用相同的统一变量

javascript - Three.js 中对象之间的倾斜旋转

html - 如何在 dragstart 之前缓存整个图层并将其还原回 dragend?

node.js - 使用 JSBarCode 创建条形码