Me gustaría copiar la rotación de un objeto a otro en tiempo real. Entiendo que puedo hacer esto copiando el cuaternión del objeto 1 al objeto 2. Funcionalmente, logré que esto funcione al cargar nuevos objetos en los que se ajustarán a la posición del objeto 1. Me gustaría hacer esto en tiempo real frente a ajuste . Entonces, cuando giro el objeto 1, sigue el objeto 2. Entiendo que esto debe agregarse al renderloop pero tengo problemas de object1.getObjectByName('forearm') no es una función.
Código:
function init() { const quaternion = new THREE.Quaternion(); } function loadObject1(modelPath, x = 0.1, y = 0.1, z = 0.1) { gltf_loader.load(modelPath, function (gltf) { scene.remove(object1); object1 = gltf.scene; gltf.scene.traverse(function(object) { if(object.isMesh) object.frustumCulled = false; }); gltf.scene.scale.set(x, y, z); object1.position.set( 0, -2, 20) object1.getObjectByName('forearm').quaternion.copy(object2.getObjectByName('forearm').quaternion); scene.add(object1); }); } function render() { renderer.render(scene, camera); object1.getObjectByName('forearm').quaternion.copy(object2.getObjectByName('forearm').quaternion); } function loop() { requestAnimationFrame(loop); renderer.render(scene, camera); }