I want to run animation for several models immediately.
But the mixer takes only one model so I added it in a group
model = new THREE.Mesh(new THREE.BoxGeometry(5,5,5), material);
group.add(model)
model2 = new THREE.Mesh(new THREE.BoxGeometry(3,5,2), material);
group.add(model2)
import { MDDLoader } from './three/examples/jsm/loaders/MDDLoader.js';
const loader = new MDDLoader();
loader.load(url, function ( result ) {
const morphTargets = result.morphTargets;
const clip = result.clip;
material.morphTargets = true
// set new material
group.children.forEach(function(item, i) {
group.children[i].geometry.morphAttributes.position = morphTargets;
});
const geometry = new THREE.BoxGeometry();
geometry.morphAttributes.position = morphTargets;
const mesh = new THREE.Mesh( geometry, material );
scene.add( mesh );
mixer = new THREE.AnimationMixer( group);
mixer.clipAction( clip ).play(); // use clip
} );
function animated() {
const delta = clock.getDelta();
if ( mixer ) mixer.update( delta );
renderer.render( scene, camera );
}
I get an error
THREE.PropertyBinding: Trying to update property for track: undefined.morphTargetInfluences but it wasn't found.
Explain to me how to apply the animation to each model and after run it