Vamos a proceder a crear la armadura para el personaje base. La intención es reutilizar la misma armadura y animaciones para posteriores personajes con forma humanoide.
Tras una revisión del modelo importado en Blender, mi previsión es que la armadura no va a deformar la malla del todo bien por falta de aristas en ciertas partes del cuerpo, principalmente en las rodillas, pero como ya he comentado, esto es ensayo y error.
Pasamos a crear la armadura y nombrar todos sus huesos. La armadura creada se puede apreciar en la siguiente imagen:
El paso siguiente es establecer la armadura como padre de todos las partes del modelo. Hay que tener mucho cuidado con que la armadura esté perfectamente alineada con el modelo. En caso contrario se producirán deformaciones no deseadas al realizar esta operación.
Como primera aproximación, una manera rápida de asignar todas las partes a la armadura es seleccionarlas todas, seleccionar la armadura (siempre en último lugar) y utilizar la combinación de teclas Ctrl+P. De entre las diferentes opciones que Blender nos ofrece, se puede utilizar With Automatic Weights. No obstante, los pesos habrá que retocarlos posteriormente. Si nos equivocamos en algún momento, pulsando Alt+P con una parte seleccionada podemos usar la opción Clear Parent y volver a empezar.
Una vez realizado el "parenting" con la armadura, podemos pasar al modo Pose para empezar a probar la armadura y hacer los retoques pertinentes. En un primer momento, se puede observar claramente que los resultados son bastante malos, por lo que hace falta asignar mejor los pesos de cada vértice respecto a cada uno de los huesos. Para ello, seleccionaremos cada una de las partes y pasaremos al modo de pintado de pesos (Ctrl+Tab). En este modo podemos ir seleccionando los diferentes huesos y pintando los pesos que indican la influencia del hueso en cada vértice.
Durante todo este proceso, me doy cuenta de varias cosas. Por un lado, acaba siendo más correcto trabajar con una malla única en lugar de con las partes individuales. Si no se hace de esa manera, las partes se separan al deformarse, que es un comportamiento que no deseo. Por otra parte, el modelo, como era de esperar, tiene un número de polígonos demasiado bajo como para producir deformaciones naturales. El problema se agrava debido a que fue exportado desde Qubicle con la optimización activada, lo que provoca que se exporten triángulos en lugar de quads.
Para solucionar ambos problemas, lo que hago es volver a exportar el modelo desde Qubicle. Previamente he juntado todas las partes en un único Compound, de forma que la exportación produzca un único objeto. También desactivo la optimización (ya optimizaré en Blender). Vuelvo a importar el modelo en Blender y asigno su origen al centro de su geometría. Por último alineo el modelo con la armadura, la establezco como padre del personaje.
Volvemos a probar con el modo Pose y... el resultado es mucho mejor que en la primera prueba. No obstante, todavía hace falta trabajar en los pesos de los vértices para evitar artefactos.
Lo siguiente que pienso hacer es configurar la cinemática inversa del modelo para poder animarlo de forma más sencilla. Pero eso lo dejo para otro post.