Javascript Threejs:PropertyBinding:无法分析轨迹名:。骨骼[]。位置

Javascript Threejs:PropertyBinding:无法分析轨迹名:。骨骼[]。位置,javascript,parsing,animation,three.js,Javascript,Parsing,Animation,Three.js,版本:THREE.webgls91dev 我正在尝试为three.js中的胸部开口制作一个简单的动画,但是在尝试创建动作时,我一直遇到以下错误 PropertyBinding:无法分析轨迹名:。骨骼[]。位置 动画JSON对象的完整版本位于pastebin:。简要总结如下: { "name": null, "fps": 30, "length": 0.5333333333333333, "hierarchy": [{ "parent

版本:THREE.webgls91dev

我正在尝试为three.js中的胸部开口制作一个简单的动画,但是在尝试创建动作时,我一直遇到以下错误

PropertyBinding:无法分析轨迹名:。骨骼[]。位置

动画JSON对象的完整版本位于pastebin:。简要总结如下:

{
    "name": null,
    "fps": 30,
    "length": 0.5333333333333333,
    "hierarchy": [{
                "parent": -1,
                "keys": [{
                            "time": 0,
                            "rot": [
                                0,
                                0,
                                0,
                                1
                            ],
                            "scl": [
                                1,
                                1,
                                1
                            ],
                            "pos": [
                                0,
                                0,
                                0
                            ]
                        },
我使用以下命令创建动画片段

    var clip = THREE.AnimationClip.parseAnimation(animation, armSkeleton.bones);
    geometry.animations.push(clip);
clip的值如下所示:

duration: 0.6
name: "default"
tracks: […]
0: Object {
    name: ".bones[].position",
    times: […],
    values: […],
    …
}
1: Object {
    name: ".bones[].quaternion",
    times: […],
    values: […],
    …
}
2: Object {
    name: ".bones[].scale",
    times: […],
    values: […],
    …
}
3: Object {
    name: ".bones[].position",
    times: […],
    values: […],
    …
}
4: Object {
    name: ".bones[].quaternion",
    times: […],
    values: […],
    …
}
5: Object {
    name: ".bones[].scale",
    times: […],
    values: […],
    …
}
length: 6
__proto__: Array[]
uuid: "3E37E10B-74D0-4421-92AF-7A366CF3804F"
问题是,当我尝试使用剪辑时:

mixer = new THREE.AnimationMixer(mesh);
mixer.clipAction(mesh.geometry.animations[0]).play();

我得到一个错误,threejs无法解析trackname.bones.position,即使parseAnimation函数返回的是trackname.bones.position?如果有人能指出我正在做的蠢事,我会非常困惑,我将不胜感激。

在反复研究这个问题之后,我发现出现错误的原因是AnimationClip希望骨骼被命名。因此,在将每个骨骼传递到三个.AnimationClip.parseAnimation之前,只需为每个骨骼指定一个唯一的名称,即可消除此错误。

很高兴您能够解决此问题!如果您使用three.js Blender exporter创建动画,您可能需要提交一个错误,也许它可能检测到了这一点或发出了警告。.解析模型和动画都是在浏览器中完成的,因此Blender exporter没有故障。