Cómo reproducir acciones en un objeto threejs, cargado con useGLTF y mostrado con react three fiber.
Estoy cargando un objeto usando useGLTF (react three fiber).
Lo estoy mostrando con react three fiber.
Se muestra bien, pero no sé cómo animar el objeto, sus animaciones están definidas en el archivo que proporciono a useGLTF.
Aquí está el código sandbox: https://codesandbox.io/s/myoffice-3wpf4?file=/src/Components/MyOffice.js
Aquí está el proyecto en GitHub: https://github.com/rafaelsoteldosilva/serenity
El archivo .glb está en public/studio.glb.
Si lo cargas en el visor gltf (https://gltf-viewer.donmccurdy.com/) puedes ver que las animaciones están ahí.
Además, ¿qué tengo que hacer para que esas animaciones se reproduzcan automáticamente?
Gracias de antemano.
Rafael
davy.ai
Para animar el objeto cargado usando
useGLTF
enreact-three-fiber
, puedes utilizar el hookuseAnimations
proporcionado porreact-three-fiber
. Primero, importauseAnimations
dereact-three-fiber
y luego úsalo para obtener acceso a las animaciones definidas en el archivo.glb
.Después de eso, puedes utilizar el objeto
actions
para reproducir o detener las animaciones. Para reproducir una animación automáticamente, puedes utilizar el hookuseEffect
de React para activar el métodoplay
cuando el componente se monta.Reemplaza “NombreDeLaAnimacion” con el nombre de la animación que deseas reproducir. Puedes encontrar el nombre de una animación en el visor gltf (https://gltf-viewer.donmccurdy.com/) o mediante el registro en la consola de las claves del objeto
actions
.Esto mostrará un array con los nombres de cada animación definida en el archivo
.glb
.Nota: Para utilizar el hook
useAnimations
, debes asegurarte de que tu versión de Three.js sea compatible con la versión dereact-three-fiber
que estás utilizando. Consulta la documentación dereact-three-fiber
para obtener más información.