Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Problema exportar animación 3DMax to Unity

Iniciado por Challenger, Enero 27, 2017, 03:40:53 PM

Tema anterior - Siguiente tema
Hola a todos!, me ha surgido un problema y a ver si alguien le ha sucedido algo parecido, estoy preparando una animación en 3DMax con "bones" (no biped), el caso es que cuando exporto la animación del personaje, este no se mueve y además un "helper" que es un simple Spline que tenía para mover las piernas aparece en Unity y es el único que se mueve (y que no debería aparecer en la escena al igual que el resto de controladores que no aparecen), adjunto imagen.
 


Antes ya había realizado pruebas animando "bones" con "helpers" y usando referencias y no he tenido ningún problema, aunque también eran muy simple, en este caso controlas absolutamente todo del personaje.
 


Antes de ponerme a repasar uno por uno que me va a llevar bastante tiempo, ¿tenéis alguna idea de cuál ha podido ser mi error?
 


Gracias!
 


Hola, eso que tenes ahi no es un bidep? porque arriba pusiste que eran bones (no biped). La verdad no reconozco que herramienta estas utilizando pero sin son los biped de toda la vida se deberia de animar correctamente. Proba animarlo sin usar esos helpers, moviendo alguna extremidad y listo y ver si se exporta correctamente. Te fijaste en  las opciones del FBX, en la parte de animacion no recuerdo si habia algo referente a esos helpers, chequea por las dudas.
 
Otra cosa (que nada que ver con tu problema), yo no he usado pero por lo que he leido todo el mundo parece pasarse a CAT, dicen que es muy eficiente y ordenado a la hora de exportar clips simultaneos, lo conoces?

Enero 27, 2017, 11:15:34 PM #2 Ultima modificación: Enero 27, 2017, 11:39:34 PM por Challenger
Desde mi conocimiento (e ignorancia) de 3DMax para la animación tienes cuatro formas, bones(huesos) que puedes construir cualquier estructura para darle movimiento como puede ser humana, o una masa deforme, o un motor de coche, o el movimiento de un arbol por el viento...pero debes crearle las limitaciones de movimiento, después tienes el Biped que es un esqueleto con movimientos pre-establecidos para ayudarte animar humanos que tiene sus opciones al respecto, otra opción son los CAT que es lo más moderno de 3DMax y más facil, ya que viene con una base de datos de estructuras de todo tipo como puede ser humana o de un dragón (más aparte te puedes crear los tuyos propios) y con sus movimientos pre-establecidos, pero además incorpora más funciones como por ejemplo la función de musculo (aunque también lo tiene bones aunque es más complejo), y por último tienes la opción de MotionCapture, aunque sin un buen dispositivo poco puedes hacer.
 
Me habia metido con Bones ya que si controlas bones eres capaz de animar cualquier cosa, creo que este personaje intentare arreglarlo para que funcione con bones, ya que creo que es una herramienta básica para la animación, pero el siguiente personaje usaré CAT y seguro que aprenderé muchas cosas nuevas, tal vez acabe prefieriendo CAT y no bones, ya que he visto que incluso hoy en dia algunos juegos profesionales lo usan con personajes (cuando no usan el Motion Capture)
 
Y en cuanto a las opciones de animación de exportación FBX lo tengo tal como ves en la imagen, pero repito que hecho pruebas con otros objetos y funciona correctamente.
 
Si descubro mi error lo comentaré por si alguien le sucediera lo mismo, gracias por la ayuda :)
 
Edito:
 
Aprovecho y comento otra duda para ver si así me evito otro error.
 
El personaje cuando lo anime,como por ejemplo la opción de caminar, ¿también tengo que mover el personaje la distancia a la que se va a mover, o simplemente muevo las piernas y su cuerpo está parado, y ya en Unity se le diria la distancia que recorre cada paso? No se si me explicado correctamente :)  
 
 
 

 




   
      tal vez acabe prefieriendo CAT y no bones, ya que he visto que incluso hoy en dia algunos juegos profesionales lo usan con personajes (cuando no usan el Motion Capture)
   

[/quote]
 
Exacto, por eso te pregunte, hoy en dia los bipedos tradicionales han quedado un poco desactualizados aunque para propositos generales sobran y mucho. Pero CAT te da esa facilidad sobre todo para hacer rig es genial.
 



   
      El personaje cuando lo anime,como por ejemplo la opción de caminar, ¿también tengo que mover el personaje la distancia a la que se va a mover, o simplemente muevo las piernas y su cuerpo está parado, y ya en Unity se le diria la distancia que recorre cada paso? No se si me explicado correctamente :)  
   

[/quote]
 
Si la animacion es fija, es decir, es parte de un evento que involucra "dimensiones fijas", por ejemplo el personaje camina hacia la puerta (distancia que sabes con anterioridad) y de repente se cae (ponele) puede que animarlo enteramente en 3ds max este bien (aunque riesgoso si el escenario se modifica luego). Cuando digo enteramente me refiero tambien a los desplazamientos de un lugar a otro como en tu caso. Para el resto de los casos y sobre todo si el personaje es controlable siempre se debe animar en base a un punto de referencia (el 100% de los casos es entre los pies en el punto medio). El biped de 3dmax lo tiene en la pelvis creo. Es decir que terminas animando los pies pero sin desplazarlo, esta en vos luego moverlo en unity para sincronizarlo bien. Yo usaba dos variables "velocidad de Animacion" y "Distancia Desplazamiento", y jugando con ellas lograba lo que queria.
 
Algo asi:
 

 
 
 
Y si probas con la opcion bakeAnimations, total no perdes nada jaja
 
Saludos

Ah vale, gran aporte! Bufff pero animar sin desplazar no me será nada fácil, me miraré algún tutorial y miraré la opción de bakeAnimation que nunca lo he usado.

Cita de: Challenger date=1485559782Ah vale, gran aporte! Bufff pero animar sin desplazar no me será nada fácil, me miraré algún tutorial y miraré la opción de bakeAnimation que nunca lo he usado.


Este vid esta muy bien(ingles) sobre todo por la tecnica de las dos poses que explica, es para dibujo pero se aplica igual para 3D
 
https://www.youtube.com/watch?v=2y6aVz0Acx0
 
 

Enero 28, 2017, 08:36:13 PM #6 Ultima modificación: Enero 28, 2017, 08:41:46 PM por Challenger
Ya est descubierto el problema!
 
Los IK Solvers que sirven para mover los huesos de forma triangular imitando a los movimientos del cuerpo humano, almacenan los keys frame, pero los huesos no queda almacenada ninguna información de animación a pesar de que se muevan gracias al movimiento del IK.
 
Por lo tanto cuando pasas la escena a Unity, el programa solo reconoce los huesos y como no ve ningún frame (animación) almacenado en ellos, pues evidentemente el personaje no se mueve. Unity no es compatible con los IK Solvers (al menos por ahora)
 
Por lo tanto no es un problema de los controladores como me pensaba yo, ya que los controladores si que transmiten la animación a los huesos, y cuando lo pasas a Unity queda almacenda dicha animación.
 
Para solucionar esto, como bien has dicho Lightbug solo existe la opción de Bakeanimation, que traspasa la información de animación a todos los componentes (los huesos).
 
Lo único que no me gusta Bakeanimation es que copia frame a frame los movimientos del IK y los pega a los huesos, teniendo una barbaridad de Keys frames, y no se si está forma de animación recargará el procesador del movil leyendo frame a frame o tal vez de igual, pero debo informarme ya que si recarga demasiado los procesos del movil definitivamente el IK y por lo tanto los huesos no se puede utilizar en Unity.
 
¿Tú qué opinas Lightbug? crees que es posible que bakeanimation al incluir muchos más keys frames recargue el procesador del movil en exceso
 
Por cierto hice una prueba en CAT y no tiene ese problema.
 
Edito:
 
Cierto es que Bakeanimation tiene la opción de grabar frame a frame, aunque también puedes decir el intervalo de frames que queden almacenados, por ejemplo copiar un frame a los huesos cada cuatro de los IK, en vez de uno a uno que conlleva a que los bones tengan en cada frame una key.
 
 
 

 

Bien ahi lo encontraste! no creo que para nada recargue al movil, y si tenes mucha duda podes poner el profiler con la version de CAT (que dijiste que te anduvo bien) y esta version de muchos keys. y ver con exactitud cuanto mas pide de rendimiento una que otra.
 
Eso que decis de que en bakeAnimation te da el rango de frames, podes elegir como decis 4 o 5, total supongo que se interpola el movimiento entre keys. Lo malo seria si tenes distintos clips puede llegar a interferir uno con otro, sobre todo si los tenes en la misma linea temporal.
 
Saludos
 
 

Enero 29, 2017, 12:09:40 AM #8 Ultima modificación: Enero 29, 2017, 12:17:44 AM por Challenger
Vale ya está, adjunto la imagen, he realizado tres pruebas con una animación de 100 frames:
 
La primera es una animación IK exportada con Bakeanimation con 100 keys (cada frame tiene una key)
 
La segunda con CAT 
 
La tercera es una animación IK exportada con Bakeanimation, importada otra vez en el 3DMax, se "limpian" los keys que sobran, y solo dejo los que necesitaba, que son dos, uno al principio de la animación y otro al final.
 
Las pruebas están muy claras, se gana eficiencia con CAT, ni siquiera limpiando de keys sobrantes en el modelo IK llega a igualar al CAT, se queda en termino intermedio.
 
Resumiendo, hay que usar CAT sí o sí con Unity...me cago en too! jajajaja todo un mes trabajando con bones para que no sirvan de nada 
 
Gracias por la ayuda Lightbug, ya doy por cerrado este tema salvo que haya alguna novedad que cambie los resultados
 
Edito:
 
Y sí, tienes razón que bakeanimation puede dar problemas cuando tienes varias animaciones cuando están en la misma linea temporal, y arreglarlo es excesivo trabajo para obtener los mismos resultados con CAT.
 
Al final esta claro porque usan CAT
 

Uh tremenda diferencia hay, muy util el dato, igual podes usar el biped igual (si es que ya tenes todo preparado), yo metia como 10 keys por clip y ningun problema, los animaba yo (sin helpers) rotando y moviendo extremidades. Pero si, por algo todos usan CAT.

Me pueden explicar un poco de esta gráfica? Cómo se interpretan estos resultados y como puedo activarla. A cuantos francés puede correr un jugo y como influye esto en la calidad y procesamiento? Con 60 FPS no es adecuado trabajar? Como se configura la velocidad de estos francés al compilar el juego terminado? Gracias.

Etiquetas: