Raycaster picking failed after updating skeletal animation

I put all the objects that the model needs to pick into an array, pass them to raycaster, and update the vertex data of each picked object simultaneously during animation updates

Raycaster.js
const intersects = this.raycaster.intersectObjects(
    this.world.model.rayCasterObjs,
    false
  )
Animations.js
  updateModelSkinnedMeshMatrixWorld() {
    if (this.model) {
      this.model.rayCasterObjs.forEach((obj) => {
        obj.updateMatrixWorld(true)
        const box = new THREE.Box3().setFromObject(obj)
        obj.geometry.computeBoundingBox()
        obj.geometry.computeBoundingSphere()
        // obj.skeleton.update()
      })
    }
  }

If the camera changes maybe raycaster.setFromCamera like in Raycaster docs.

If you’re animating a SkinnedMesh you should be updating an AnimationMixer e.g.

// setup
const animationMixer = new THREE.AnimationMixer(rootObject3d);
const animationAction = mixer.clipAction(animationClip);
animationAction.play();

// loop
mixer.update(deltaMs)

Then transforming rootObject3d should work.

Edit: Not sure what you’re doing with box. You’re computing bounds of obj, then you don’t use these bounds.