Jump to content
Sign in to follow this  
ST-16

Problema animaciones con desplazamiento.

Recommended Posts

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

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

el personaje, en la animacion, deveria estar siempre en el centro, sin moverse.

y luego moverlo lo que corresponda en unity

  • Like 1

Share this post


Link to post
Share on other sites

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
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:

  1. Dándole a "Apply root motion" en el Animator. El Animator mueve a tu transform/rigidbody automaticamente.
  2. 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 by lightbug
  • Like 1

Share this post


Link to post
Share on other sites

 

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:

  1. Dándole a "Apply root motion" en el Animator. El Animator mueve a tu transform/rigidbody automaticamente.
  2. 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 by ST-16

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...