Trubleshoot: Rigging en compras de assets
Descripción General
Según las necesidades del proyecto, habrán assets que sean comprados con un rig y animaciones incluidas. Habrán casos en donde el cliente pedirá cambios al modelo, sin embargo, el modelador ha de tener cuidado de no romper el rig o la animación al momento de importarlo en Unity. Ha continuación se menciona cómo se pueden añadir esas modificaciones cuidando el modelo.
Alcances
Alcances de la investigación.
Proceso de Desarrollo
Supongamos que se compra el siguiente modelo y el cliente quiere cambiar los ojos planos a 3d.
Parte 1 : Borrando caras de un mesh

Primero borramos los planos de los ojos. Inspeccionando el modelo, notamos que las cejas, ojos y labios (a pesar de estar separadas del modelo) forman parte del mismo mesh, entonces, las seleccionamos y borramos. Si este modelo, as í sin más, lo exportamos, veremos el siguiente aviso. Si continuamos y lo importamos a unity veremos que la maya modificada desaparece, en este caso, la cabeza que contenía las caras de los ojos(lado izquierdo).


Para corregir esto, en maya hay que seleccionar el mesh de la cabeza y seguir la recomendación que de el aviso, borrarle la historia en Edit > delete by type > non-deformer history. Veremos como del lado derecho, se borra una línea. Con esto ya no hay problema al importarlo en unity.

Parte 2 : Añadiendo meshes que no se deforman
Una vez modelados y ubicados en su posición los ojos 3d, la forma en la que haremos que siga a la cabeza será emparentádolo al joint de la misma como se muestra a continuación.
No se debe intentar hacer un mesh combine, ya que apesar de que en maya sigue funcionando, esta acción no permite que le borres la non-deformer history y si se le realiza un delete history normal, borra la información del rig. La opción más sencilla para sumar geometrías es emparentándolas al joint respectivo.

Parte 3 : Haciendo un extrude
Supongamos que queremos que las cejas y los labios tengan volumen. Seleccionaremos esas caras, podemos separarlas un poco mas y les realizamos un extrude. Las caras pueden llegar a aparecer en negro dependiendo a dónde hagamos el extrude, si es el caso, hay que voltearlas. A continuación, se borra la non-deformer history del objeto. Si por alguna razón esto falla (lo notarias importándolo a unity) hay que seleccionar el grupo de caras y borrarle la misma historia.
Parte 4 : Moviendo vértices y añadiendo loops
Puedes añadir loops como siempre. Al momento de modificar los vértices, algunos se podrán mover de manera usual y algunos otros de manera extraña: no seguirán al gizmo. Si se mueven de forma extraña, hay que acceder al menú de la herramienta de translate y resetear sus settings ya que a veces se cambia la configuración por razones desconocidas. Si después de esto, sigue habiendo problemas para mover el vértice, es probable que sean los pesos del rig ejerciendo fuerzas que lo hagan mover así. En el siguiente ejemplo, se le levantaron las cejas. Si bien mover los vértices no generan historia, hay que borrar la non-deformer history si se generan loops.

Parte 5 : Modificando uvs
En caso de necesitar modificarlas, en principio no hay problema con hacerlo; en maya ha de funcionar bien e igual en unity una vez hechos los cambios. Una vez modificadas, es recomendable borrarle a la geometría la non-deformer history.
Parte 6 : añadiendo o quitando joints
En caso de necesitar uno o más joints extras en un modelo ya animado (por ejemplo, para un hueso roto) se ha de hacer lo siguiente:
- Generar el/los joint(s) por aparte
- Colocarlos en su posición
- Seleccionar el mesh y seleccionar cada uno de los joints creados
- Dar click en Skin > Edit influences >Add influence
- Emparentar en donde corresponda para que siga la animación (si es que el archivo trae una)
En la siguiente imagen, se añadió un pequeño controlador para las cejas. Es un joint (también pudo haber sido una curva, por ejemplo) que tiene los pesos asignados a las cejas y está emparentado a la cabeza para que siga la animación.

Para remover un joint se hace lo siguiente:
- Seleccionar el joint que se quiere quitar
- Ir a skeleton > remove joints
En la siguiente imagen se muestra el pie izquierdo sin el joint que se señala en el pie derecho.

Al hacer estos movimientos no es necesario borrar la historia a alguna de las partes. Importando en Unity vemos que el modelo no tiene ningún problema de visualización o animación.

Parte 7 : Transferir pesos
Si por alguna razón es necesario romper la relación de la geometría con los joints porque se le necesite hacer algún ajuste al modelo sin que tenga historia, es posible guardar la información de los pesos del rig para transferirla una vez hechos los cambios. En este ejemplo, supongamos que en vez de querer varios meshes, queremos solo una geometría, podemos darles combine pero generará una historia que no se podrá borrar, o si decidimos borrarla, se despegará el esqueleto de la geometría. En los siguientes pasos vemos cómo se pueden copiar-pegar los pesos para estos casos o similares. Los primeros 3 pasos son una forma para generar un archivo importable sin que se sobreescriba el actual.
- Entra al menú Windows > General Editors > Namespace Editor y crea uno nuevo, nombralo como gustes (ej.: copia). Selecciona todo dentro del grupo de tu personaje (puedes hacerlo dando click en el grupo y despues yendo a select>hierarchy) y da click en Add Selected.

- Exporta todo el personaje como un DAE_FBX

- Ingresa de nuevo al menú de Namespace Editor y borra el nombre que pusiste seleccionandolo y haciendo click en Delete. En el aviso que salga, da click en *merge with root.*Ahora el nombre está como originalmente estaba y tenemos un archivo con piezas de nombre diferente, que podemos importar sin mayores problemas (podemos importarlo de una vez o después de hacer los cambios que vienen a continuación, es indiferente).
- Realiza los cambios. Como ya mencionado, aquí se juntarán los meshes como se muestra en la imagen y se borrará su historia.

- Selecciona todos tus joints, después tu geometría y hazles un bind skin (skin>bind skin)

- A continuación podemos ver cómo reacciona con la animación y los detalles que tiene, que en este caso son huecos.

- Importamos el archivo DAE_FBX que habíamos creado. En la imagen son los joints negros.

- Seleccionamos los meshes originales, después el nuevo mesh que creamos y vamos a skin > copy skin weights para copiar los pesos.

- Podemos ver ahora cómo los artefactos previos a esto, están corregidos

- Y al importarlo en Unity, no hay ningún problema.

Incluso puede añadírsele ropa ajustada que siga al cuerpo sin necesidad de ajustar sus pesos. Para esto, duplica tu geometría y haz el plano de la pieza que desees (ej.: un chaleco). A continuación se ven encimados los planos para mostrar que están en la misma posición que el original.

Posteriormente se realiza el mismo procedimiento: se seleccionan los joints → el mesh → se hace el bind skin → se seleccionan los meshes originales → y se le copian los pesos a esa pieza en particular. Hecho esto, puede hacerse un extrude y borrarle la non-deformer history.

Igual que en el caso pasado, no hay problema al importarlo en unity ![]()
Enlaces de descarga
Los enlaces de descarga ya sean plugins o Assets.
Archivos Adjuntos
Comentarios
En general, siempre revisar que el modelo no cargue con historia antes de importarlo a unity, por ejemplo si se le aplicara algún otro proceso como un reduce, smooth, etc.
Para transferir los pesos, no es necesario regresar al modelo a su bind pose, ni borrarle la animación, pero sí deben de estar exactamente iguales (en pose, posición, escala, etc.) para que se copien debidamente los pesos.
Ventajas
- Prevenir errores
- Ahorrar tiempo en la corrección de errores
Desventajas
Ubicación Proyecto
La ubicación del proyecto en el servidor.
Elaboró
Daphne Sánchez