Javascript 三个js-你能克隆从collada文件加载的动画吗?

Javascript 三个js-你能克隆从collada文件加载的动画吗?,javascript,animation,three.js,collada,Javascript,Animation,Three.js,Collada,我问的问题与这里的问题基本相同——使用三个js,我可以导入具有基本关键帧动画的collada场景,并轻松播放这些动画,但我希望将动画数据从一个场景对象复制到另一个场景对象 可能吗 在运行时,我注意到collada.animations对象包含一个-collada.animations[n].node,它似乎是一个THREEJS.Mesh对象,我一直在尝试在运行时替换它(没有用)。我还注意到collada.animations[n].hierarchy[n]对象也包含如下所示的节点属性: came

我问的问题与这里的问题基本相同——使用三个js,我可以导入具有基本关键帧动画的collada场景,并轻松播放这些动画,但我希望将动画数据从一个场景对象复制到另一个场景对象

可能吗

在运行时,我注意到collada.animations对象包含一个-collada.animations[n].node,它似乎是一个THREEJS.Mesh对象,我一直在尝试在运行时替换它(没有用)。我还注意到collada.animations[n].hierarchy[n]对象也包含如下所示的节点属性:

cameras: Array[0]
channels: Array[9]
controllers: Array[0]
endTime: 2.5
geometries: Array[1]
id: "name_of_exported_object"
keys: Array[2]
matrix: THREE.Matrix4
name: "name_of_exported_object"
nodes: Array[0]
sid: null
sids: Array[9]
startTime: 0
transforms: Array[5]
type: "NODE"

此对象按.name和.id显示,与我用3D软件包(Blender)创建的“导出对象的名称”关联。。。我不太清楚这个节点对象的用途。如何充分更改collada.animation[n]对象,以便在动态创建的场景对象上使用相同的动画?

由于这一问题是几年前写的,three.js动画系统已经重写。您不再需要“克隆”动画,只需使用不同的混合器将它们应用于其他对象即可。例如:

var clip; // some THREE.AnimationClip instance.

var mixer1 = new THREE.AnimationMixer( object1 );
var mixer2 = new THREE.AnimationMixer( object2 );

var action1 = mixer1.clipAction( clip );
var action2 = mixer2.clipAction( clip );

action1.play();
action2.play();

这并不是COLLADA独有的,它适用于FBX、glTF和three.js支持动画的任何其他格式。

您找到方法了吗?我面临着同样的问题不,反正不是我想要的。我有一个非常简单的用例,我可以通过使用tweenjs()来解决它。不太清楚你在想什么,但如果我想尝试克隆一个复杂的动画,我会先看这个例子-好的,谢谢你的链接,我会尝试将它调整到collada模型,看看它是否有效。