javascript - examples - three min js download
Tres js: ¿puedes clonar animaciones cargadas desde un archivo collada? (1)
Dado que esta pregunta fue escrita hace unos años, el sistema de animación three.js ha sido reescrito. Ya no es necesario "clonar" animaciones, simplemente puede aplicarlas a otros objetos utilizando diferentes mezcladores. Ejemplo:
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();
Esto no es exclusivo de COLLADA, funciona para FBX, glTF y cualquier otro formato compatible con three.js.
Básicamente estoy haciendo la misma pregunta que la que se encuentra aquí - https://github.com/mrdoob/three.js/issues/1883 - Usando tres js puedo importar una escena collada con animación básica de fotograma clave y reproducir esas animaciones lo suficientemente fácil, pero me gustaría copiar los datos de animación de un objeto de escena a otro.
¿Es eso posible?
En tiempo de ejecución me he dado cuenta de que los objetos collada.animations contienen un - collada.animations [n] .node - que parece ser un objeto THREEJS.Mesh, que he intentado reemplazar en tiempo de ejecución (en vano). También he notado que el objeto collada.animations [n] .hierarchy [n] también contiene propiedades de nodo que se ven así:
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"
Este objeto aparece, por .name y .id, para vincularlo al "nombre_de_objetoexportado" que creé con mi paquete 3D (Blender) ... No sé para qué sirve este nodo. ¿Cómo puedo cambiar el objeto collada.animation [n] lo suficiente para usar la misma animación en un objeto de escena creado dinámicamente?