R3 – 3D Rigging Robots

Públic

Rigging de dos robots

Drive Link: https://drive.google.com/drive/folders/1XJqdPJ4rtUdYJmkfZwVv35Wx4MZn7MHs?usp=drive_link

En esta actividad he riggeado los dos robots (“Little Robot” y “Big Robot”) usando una combinación de rig manual en Blender y autorigging con Mixamo.
El objetivo ha sido dejar ambos modelos listos para la siguiente práctica, donde se trabajarán las animaciones y el comportamiento en Unity.

Rig manual en Blender

He trabajado siempre sobre Blender 4.5, sin usar plantillas de rigging tipo Rigify. Toda la armature está creada a mano, pensando más en la lógica del personaje que en replicar un esqueleto humano perfecto.

Las partes del robot que son piezas rígidas (meshes separadas que no se deforman, como las piernas) se han pesado de forma muy simple:
cada pieza tiene influencia máxima de un solo bone y nada en el resto, de forma que se mueven si deformarse.
Las zonas que sí necesitan deformación suave (torso, manos y pelo/cables) tienen una pintura de pesos mucho más detallada.

Estructura general de la armature

La estructura base del esqueleto sigue este esquema:

  • Dos bones por brazo.

  • Dos bones por pierna.
    Estos robots no tienen pies literalmente, así que no he creado bones de foot.

  • La “columna vertebral” se compone de 3 bones:

    • Uno superior para el chest, padre de brazos y cabeza.

    • Uno intermedio que controla la deformación del torso.

    • Uno inferior que hace de unión con el root y las piernas.

  • Un hueso para la palma y tres para cada dedo
  • Los huseos que controlan articulaciones vía IK incluyen la palabra clave “IK” en el nombre. Los huesos que actúan como pole target incluyen “Pole”. El resto de nombres están en inglés y describen la zona que controlan (hip, spine, chest, thigh.L, etc.).

 

Proceso de Rig

Primero construí la estructura base del esqueleto de Little Robot, trabajando únicamente con huesos de deformación. Creé la armature desde cero y fui colocando cada hueso ayudándome de herramientas como Snap y las opciones de Viewport Display, de forma que quedaran bien encajados dentro de la malla y alineados con los volúmenes reales del modelo. Una vez definida la estructura, generé una pintura de pesos vacía y, ocultando y mostrando distintas partes de la malla, fui asignando las zonas “rígidas”: cada pieza física del robot tiene influencia máxima de un único hueso y peso 0 en el resto, para que se comporte como un bloque sólido. Después pasé a las áreas que sí necesitaban deformación suave (torso y manos), pinté sus pesos con más detalle y probé el resultado en Pose Mode, rotando las articulaciones para comprobar que la deformación era lógica y no aparecían artefactos raros.

Con Little Robot ya funcional, dupliqué y adapté esa misma armature para Big Robot, ajustándola a sus proporciones y características individuales (cabeza y pelo). Antes de entrar a fondo en el weight paint, preparé los sistemas de control: configuré los IK y sus Pole para brazos y piernas, y añadí controladores con constraint Damped Track para los cables que simulan la cabellera. La idea era que las articulaciones se doblaran desde un único controlador en la dirección deseada, sin tener que ir rotando cada bone uno por uno durante la animación, y que el movimiento de la cabeza arrastrara parcialmente el “pelo”, aligerando el trabajo de animación (con la única precaución de evitar que los cables atraviesen la malla entre sí). A partir de ahí lancé un auto weight para generar una base rápida en las zonas deformables, limpié los pesos de las piezas rígidas para asegurar que cada una respondía a su bone correspondiente con influencia 1, y revisé manualmente las áreas más delicadas. Las manos y el pelo quedaron razonablemente bien con los pesos automáticos, pero el torso lo tuve que rehacer desde cero: como el chest y la barriga son piezas separadas, necesito que al rotar el pecho la cintura lo siga lo justo para que no se abran huecos entre ambas. El auto weight no resolvía bien esa transición, así que repinté toda esa zona a mano hasta conseguir un comportamiento coherente.

Controladores, capas y código de color

Para terminar el rig manual configuré controladores y capas de visibilidad, de forma que los huesos se puedan mostrar/ocultar y seleccionar por grupos:

  • Grupos: AllBones  (todos), Hide (bones que se ocultan por animarse vía constraint), Root, Arms, Legs, Ik, Poles, Head, Hair y Torso.

  • Los controladores siguen un código de color:

    • Amarillo: IK

    • Rojo: Poles

    • Verde: Damped Track u otros constraints

    • Morado: Root

    • Azul: Rotadores

    • Negro: Bones ocultos

Además, las formas geométricas de los controladores siguen una lógica similar, para que de un vistazo sea fácil identificar qué tipo de control estás tocando y que el rig sea más ligero visualmente que con los huesos tradicionales.

Lo más relevante de este paso, a mi parecer, es poder ocultar los huesos que se animan indirectamente a través de un constraint (por ejemplo, los de las cadenas IK), de modo que no estorben en el viewport y no se animen por error.

Rig con Mixamo

Para la parte de autorigging preparé ambos robots para Mixamo exportándolos en formato obj con su mtl. Probé primero a subirlos comprimidos en un zip siguiendo las instrucciones de la ayuda de Mixamo, pero daba error de lectura con ese paquete, así que acabé trabajando solo con el obj suelto, tambien probé fbx con texturas embded, pero igualmente daba error. Con Little Robot, el proceso se queda bloqueado en la propia fase de configuración de marcadores: al no tener uno de los brazos, la muñeca izquierda no existe como geometría real y no hay un punto claro donde colocar el marker correspondiente. Esto hace que Mixamo no pueda completar el análisis y devuelva error al intentar generar el skeleton. Es un caso bastante representativo de las limitaciones de este tipo de herramientas automáticas cuando el modelo se desvía demasiado de un cuerpo humano estándar. En conclusión, no he conseguido un archivo fbx para este modelo.

Con Big Robot el resultado es diferente: Mixamo sí consigue generar un skeleton y permite previsualizar animaciones básicas en su visor. De hecho, me sorprendió que el proceso llegara a completarse teniendo en cuenta que el personaje no tiene pies. Aun así, el comportamiento no es el que necesito: en el preview se ven deformaciones “blandas” en zonas que deberían funcionar como bloques rígidos, y en las extremidades aparecen solapamientos extraños porque el sistema no termina de separar bien qué partes deberían pertenecer a cada hueso. Al importar este fbx autorigged en Blender se aprecia una jerarquía de bones bastante razonable (incluso relativamente parecida a la que he construido a mano), pero los weights no son adecuados para este tipo de personaje. En la práctica, para Big Robot el rig de Mixamo es técnicamente correcto (hay huesos y el modelo se mueve), pero no es útil para el look más solido que busco; está claramente más orientado a cuerpos blandos u orgánicos que a un robot como este.

Recomendaciones en Blender y Unity

Si se quiere revisar el rig en detalle:

  • La escena está creada en Blender 4.5.

  • Al abrir directamente los FBX hay que tener en cuenta que:

    • No se exportan los bones marcados como no deform (los controladores internos del rig).

    • El preset de escena original no se conserva, así que recomiendo activar “In Front” desde el menú Object Properties del Armature para ver bien los bones dentro de la malla.

En el Drive también hay un Unity package con una escena de prueba:

  • Este paquete contiene la importación de los modelos con mis rigs manuales, no el rig de Mixamo.

  • Sirve para verificar que:

    • Unity reconoce correctamente la jerarquía de bones.

    • El skinning responde bien cuando se rotan las articulaciones.

    • Las texturas que preparé en la actividad anterior se importan y se asignan sin problemas.

Entrada similar

Deixa un comentari