Pues ahí vamos

No he podido explayarme a fondo en los últimos tiempos porque he estado ocupado trabajando en el proyecto, o mejor dicho, estudiando para el proyecto. El avance tangible es muy poco, ya que la tarea que me tiene irritable y con dolor de cabeza es algo complicadilla: armar el personaje a partir de varias geometrías. O sea, dividir el cuerpo en cabeza, cefalotórax, extremidades y jabita de nylon, y en Unity3d, coger todo eso en un script y generar un cuerpo que se mueva y se vea bien. O cambiar una parte del cuerpo, como las manos, por unos guantes con pincho.

Dicho así parece fácil, y de hecho lo es, hasta que te complicas tratando de meter animaciones. El método en cuestión no está bien detallado en ningún lugar en letra de molde, para novatos con discapacidad cerebral. Básicamente el asunto es así: exportas cada sección del cuerpo a un FBX separado, pero ojo, incluyendo el esqueleto. Caso contrario, Unity lo manejará con un Mesh Filter y un Mesh Renderer. El esqueleto garantiza que Unity manipule la geometría con un Skinned Mesh Render. Vale, tenemos muchos prefabs con pedazos de cuerpos y el esqueleto en cada uno, debería ser trivial unirlos, ¿no? Pues no.

El componente que se encarga de animar el muñeco (o cualqueir otra cosa) es el Animator. El Animator necesita dos cosas: un Animation Controller y un Avatar. El primero es el tipo que maneja las animaciones, si no recuerdo mal. El segundo, es la representación del esqueleto según Unity. El componente Animator y la herramienta del mismo nombre son muy flexibles y potentes, pero más complicados que autorizar una dieta en Oficoda. Pero ¿cómo le dices aun animator que anime 5 esqueletos independientes? En teoría, puedes animar cada una por su cuenta, con los obvios problemas de sincronización, usando un Animator para cada una.

O sea, que supuestamente también necesitas el esqueleto exportado sin geometría. Eso es lo que usarás para configurar las transiciones y cualquier otra maritrónica que quieras hacer con la animación del personaje. Pero… si recuerdan, se ha exportado la sección del cuerpo con un esqueleto incluido ¿qué hacer con él?. Así que tienes que hacer un proceso que involucra instanciar el prefab de la sección y tomar su componente Skinned Mesh Renderer, para copiarlo hacia el GameObject de la jerarquía del personaje. El esqueleto de la sección puede irse al Malecón… o más allá.

Y aquí entramos en la cagazón padre, no logro asociar correctamente el esqueleto global, que debería ir en el gameobject padre del personaje, con un Animator, con los Skinned Mesh Renderers que he agregado en la jerarquía del personaje. Estoy a un paso de lograrlo, pero tengo las piernas amarradas con mi propia ignorancia de Unity. En fin, que es como para colgarse por los berocos.

Así que hoy decidí tomarme el día libre y dejar que las cosas vayan a su aire y se arreglen por sí solas o se acaben de joder. Ya veremos cuando visite el telepunto y pregunte en el foro de Unity si logro conseguir una respuesta concreta.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *