ST-16 1 Report post Posted Monday at 05:54 PM Buenas!! Tengo un problema con las animaciones que he creado con un determinado desplazamiento. Me explico: Todas las animaciones que inserto a mi personaje en Unity (hechas con blender) funcionan a las mil maravillas, pero el problema viene cuando quiero que una animación vaya acompañada de un desplazamiento, por ejemplo, una animación de ataque que empiece en un punto X, y acabe en otro punto Y. Consigo que el muñeco se mueva y haga la animación hasta el punto Y, pero al acabar la animación, vuelve automáticamente al punto X, y no se como demonios solucionar eso. Alguien sabe como solucionar esto? Como dato, os digo, que la animación y el movimiento de x a y, lo hago en blender y luego lo exporto a unity, no se si esto es correcto, o tengo que exportar la animación sin el movimiento del punto x al y, y ponerlo en unity directamente. Gracias de antemano! Share this post Link to post Share on other sites
rublo 4 Report post Posted Monday at 08:20 PM Sin ver lo que pasa... difícil decirte. En mi juego con los personajes andando sin moverse dentro de la animación no tengo esos problemas, los muevo con Unity según el golpe, este andando o corriendo. Share this post Link to post Share on other sites
Igor 336 Report post Posted Monday at 08:23 PM el personaje, en la animacion, deveria estar siempre en el centro, sin moverse. y luego moverlo lo que corresponda en unity 1 Share this post Link to post Share on other sites
rublo 4 Report post Posted Monday at 08:49 PM Entonces... Igual lo desplaza alguna colisión? Ya te digo que sin verlo es difícil ayudarte. Share this post Link to post Share on other sites
lightbug 832 Report post Posted Monday at 10:02 PM (edited) 4 hours ago, ST-16 said: Alguien sabe como solucionar esto? Tenes que usar "root motion", nada mejor que la documentación de Unity Unreal para explicar esto (mirá los videos de abajo): https://docs.unrealengine.com/en-US/AnimatingObjects/SkeletalMeshAnimation/RootMotion/index.html No es tan fácil, tenés que usar un hueso raíz (de ahí el root) que será el padre de los demas huesos (los deformables, no los de ayuda como pueden ser los IK) y además deberá contener la información del desplazamiento lineal/angular, es decir, tendrás que animar este hueso de tal manera de que represente el movimiento/rotación de tu personaje. En unity root motion se usa de dos maneras: Dándole a "Apply root motion" en el Animator. El Animator mueve a tu transform/rigidbody automaticamente. Extrayendo los datos del desplazamiento y re-aplicandolos (si fuera necesario) usando OnAnimatorMove. El animator, en este caso, te marca "handled by script". Aclaro: Root motion no es algo que debas hacer, como dijo @Igor probablemente con animaciones in-place sea más que suficiente (y procesar el desplazamiento/rotación dentro de un script). No se qué es realmente lo que intentas hacer. Edited Monday at 10:06 PM by lightbug 1 Share this post Link to post Share on other sites
ST-16 1 Report post Posted Monday at 11:17 PM (edited) 1 hour ago, lightbug said: Tenes que usar "root motion", nada mejor que la documentación de Unity Unreal para explicar esto (mirá los videos de abajo): https://docs.unrealengine.com/en-US/AnimatingObjects/SkeletalMeshAnimation/RootMotion/index.html No es tan fácil, tenés que usar un hueso raíz (de ahí el root) que será el padre de los demas huesos (los deformables, no los de ayuda como pueden ser los IK) y además deberá contener la información del desplazamiento lineal/angular, es decir, tendrás que animar este hueso de tal manera de que represente el movimiento/rotación de tu personaje. En unity root motion se usa de dos maneras: Dándole a "Apply root motion" en el Animator. El Animator mueve a tu transform/rigidbody automaticamente. Extrayendo los datos del desplazamiento y re-aplicandolos (si fuera necesario) usando OnAnimatorMove. El animator, en este caso, te marca "handled by script". Aclaro: Root motion no es algo que debas hacer, como dijo @Igor probablemente con animaciones in-place sea más que suficiente (y procesar el desplazamiento/rotación dentro de un script). No se qué es realmente lo que intentas hacer. De acuerdo, en realidad es esto exactamente lo que quiero hacer, pero si es tan complejo, quizás como afirmas y dice @Igor, de esa manera sea suficiente. No obstante, probare esta manera mas complicada, y asi al menos, aprendo hacerlo jajaja. Muchas gracias!!! Edited Monday at 11:17 PM by ST-16 Share this post Link to post Share on other sites