Importancia-de-la-Nomenclatura

¿Qué tiene que ver la organización y la nomenclatura en un proyecto de animación si al final lo importante es el resultado artístico visual. Un buen artista se debería caracterizar tanto por su buena ejecución artística como por la organización y limpieza de sus archivos de trabajo con un nombrado claro y consistente de los objetos, para así dar la correcta organización en la escena 3D, hasta incluso el nombre del mismo archivo de trabajo. Así, a mi parecer, un artista profesional es la unión entre talento y organización. Por desgracia, nombrar y organizar muchas veces es visto como una “pérdida de tiempo”  o es relegada durante la ejecución.

La organización y nomenclatura en los archivos dará claridad y limpieza al proyecto en general. Una escena debidamente nombrada será mucho más sencilla para trabajar y navegar. Es cierto, una escena 3D que sólo contiene un par de geometrías, unos cuantos huesos de deformación y algunas texturas no es difícil entenderla, pero ésto no debería ser justificación para no organizarla.

La Nomenclatura: Cómo Trabajar más Fácil y Eficientemente

Conforme la tecnología avanza, la complejidad y cantidad de información contenida en las escenas 3D incrementa; modelos más complejos, rigs más especializados, texturas y materiales más numerosos y detallados, etc. Es por esta complejidad por lo cual se vuelve imperante la buena organización y nomenclatura.

Conforme la tecnología avanza, la complejidad y cantidad de información contenida en las escenas 3D incrementa; modelos más complejos, rigs más especializados, texturas y materiales más numerosos y detallados, etc.

Imagina trabajar en una escena 3D que contiene el modelo hi-poly, su rig, cámaras, luces y en donde navegar el viewport es lento. En un previo de render de esa escena, descubrimos que el ojo derecho del personaje tiene un problema de UVs. A la hora de filtrar las más de 15 geometrías que conforman el personaje, nos damos cuenta que todas se llaman box001, box002, etc. Así, lo único que queda es seleccionar una por una (recuerden que la navegación también es lenta en viewport) todo ésto se vuelve una tarea tediosa e innecesaria. Encontrar la geometría del ojo una escena lenta realmente no es el reto del siglo, pero imagínate cuando uno tiene que encontrar un específico “locator” (ó “helper”) de entre un centenar de ellos y todos tienen nombres genéricos o sin lógica alguna.

Cómo ya mencioné, el buscar ciegamente objetos en una escena 3D realmente es algo innecesario y que se puede minimizar. Basta hacerse el hábito para organizar correctamente cualquier archivo de trabajo, sean pequeños o muy complejos. Aún así, el uso de una nomenclatura y de la organización no se limita solamente al trabajo dentro de escenas 3D.

El Compartir en Armonía

Archivos con nombres sin sentido, estructuras de carpetas confusas, archivos que se pierden y/o mezclan entre diferentes proyectos, etc. Un artista o empresa con una nomenclatura deficiente en archivos y sin organización en sus repositorios de trabajo es un mal realmente serio. El trabajar en una escena 3D caótica es una cosa, pero es aún peor cuando uno no sabe ni como se llama ni donde quedó guardado el archivo final que se estaba trabajando. Este es un problema común que entorpece la eficiencia del trabajo y se vuelve especialmente notorio cuando se trabaja en equipo.

Nomenclatura-Compartir-Informacion

Es importante resaltar: El trabajo en equipo no solo se da dentro de una empresa. En la actualidad, es muy común la coproducción entre diferentes estudios y/o artistas. Y es precisamente ahí, al involucrar a un tercero, cuando se vuelve imperante una nomenclatura clara y consistente. En la película Avatar de James Cameron, el sitio imdb.com acredita a 21 estudios que participaron en los VFX; ésto nos remite a pensar en la cantidad de gigas de información y assets compartidos entre ellos para la ejecución de uno de los proyectos de VFX más complejos de la historia del cine.

¿En éste ámbito de compartir, cómo afecta la mala nomenclatura? Imagínate trabajando en la nueva película de Avatar. En tu primer día recibes tu tarea de trabajo junto con el archivo 3D de Neytiri, la protagonista principal. Dicho archivo se llama:

avatar_neytiri_final.ma

Avanzas en tu tarea y se te notifica que mientras tu trabajas se están haciendo ajustes al modelo en base a comentarios del director. A los dos días recibes un segundo archivo con el modelo final ya ajustado y aprobado:

neytiri_final_model_final1.ma

Después de que notas que hay un par de controladores desconectados en el rig y solicitas su corrección, recibes el archivo:

neytiri_final01.ma

Terminas esa asignación con Neytiri y mientras esperas comentarios pasan 2 semanas en donde estuviste trabajando en otras tareas. Recibes los comentarios de la tarea de Neytiri pero pero no encuentras el archivo: Juras haberlos dejado en la carpeta “avatar animaciones” en el escritorio, pero en ella sólo hay animaciones de otros personajes. Después de entrar en pánico, finalmente das con ellos en la carpeta de skype de “mis archivos recibidos” en la cual encuentras:

neytiri_final_model_final1_ANIMACIONES

Neytiri_final01_anim_aprobada01.ma

Neytiri_final02_anim_aprobada01.ma

neytiri_final01_anim_aprobada02.ma

¿Cuál fue el más actual? Claramente éste es un ejemplo extremo, producciones como Avatar cuentan con tecnología y procesos que impiden siuuaciones como la anterior. Lo que quiero subrayar es que cuando trabajas en una producción lo último que quieres es tener que preocuparte en buscar archivos. El dedicar tiempo en ver fechas de modificación, el buscar en diferentes carpetas o -en el peor de los casos- el tener que abrir cada uno de ellos para asegurarse que es el más actualizado etc. son simples ejemplos de cómo algo tan mundano puede convertirse en una pesadilla y un enorme gasto de tiempo.

Adobe Creative Cloud - Piensa en Grande

Automatízalo

La costumbre de trabajar con una nomenclatura o tener una buena organización no se limita a la claridad y eficiencia; es también la puerta a la automatización de procesos.

Imagínate ésta situación: 25 archivos ya animados en los que no se referenció el rig y algunos de ellos se trabajaron con una versión ya obsoleta del modelo. En cada uno de ellos necesitas asegurarte que tienen el modelo de Neytiri más actual que consta de 15 geometrías y donde a la geometría del ojo derecho (otra vez) se le tiene que aplicar un UV esférico. Por supuesto que es posible hacerlo manualmente, abrir cada escena, buscar todas las geometría del personaje principal y asegurarte que sólo son 15, tomar la geometría del ojo derecho y aplicarle el UV esférico. Pero…. ¿habrá manera más sencilla de hacerlo? ¿de automatizarlo?

Nomenclatura-automatizacion

El scripting junto con una nomenclatura adecuada nos dice que si. En pseudo código veíamos algo como:

  1. Del repositorio del proyecto obtén todos los archivos 3D que se encuentran dentro de las carpetas de animación.
  2. De todos los archivos que encuentres, compara el sufijo de versión de cada uno de ellos y selecciona el que sea numéricamente más alto.
  3. Si es el más alto, accésalo.
  4. De todas las geometrías de la escena descarta todas las que no empiecen con el prefijo “char_neytiri”.
  5. “Recuerda” las geometrías que sí se llaman “char_neytiri_”.
  6. Cuéntalas. Si son 15, busca una que su nombre termina con “ojo_der” y aplicale un UV esférico. Si no son 15, aborta y házmelo saber.
  7. Fin

¿Cómo se interpreta este ejemplo de pseudo código? ¿Cómo se relaciona la nomenclatura y organización con el scripting?

  1. Si tienes una estructura de carpetas predefinida y guardas cada archivo en su lugar podrás tener seguridad de que ahí siempre estará la información disponible. Por ejemplo: en el estudio donde trabajaba se creaba automáticamente la estructura de carpetas y se reforzaba en los artistas el correcto uso de ellas. Así, los archivos se encontraban siempre en el mismo lugar y con una nomenclatura específica por lo que era muy fácil “barrerlos” para hacerles cambios.
  2. Todos los archivos deberían estar versionados, ésta es una buena práctica que te permite “regresar” a un estado anterior en caso de que un proceso salga mal (p.ej. cuando ya no alcanzan los ctrl+z) ó se corrompa el archivo. Hay muchas maneras de versionar: A veces por medio de softwares especializados, otras veces definido en el mismo nombre del archivo. Como ejemplo, una nomenclatura de archivo con versionado podría ser: scn001_s010_ani_v001. Es obligación del artista que cada vez que quiere “hacer corte” cambia a una nueva versión incremental: v001… v002… v003, etc. Esto le asegura a la producción que el archivo más reciente es el de la versión mas alta. Así un script puede tomar el nombre del archivo, leer los últimos 3 caracteres y compararlos entre sí.
  3. Por medio de scripting puedes hacer rutinas que accesan el archivo 3D sin siquiera abrir el software. Esto depende mucho del poder de cada lenguaje específico pero en la mayoría de los es posible. En una ocasión tuve 15 escenas a modificar pero abrir cada escena tomaba 3 minutos y tenía que reiniciar el software por cuestiones de memoria… un trabajo que hubiera tomado por lo menos 1 hora (la mayor parte de ese tiempo en espera) lo hice solamente en 5 minutos por medio del scripting.
  4. Cuando defines una nomenclatura de los objetos 3D es posible filtrarlos de una manera eficiente. Para definir el tipo de asset usualmente se usan prefijos como: char, prop, sets. Se definen descriptores para el tipo de objeto 3D: nul, jnt, geo, lig, lat, etc (nulls, joints/bones, geometrías, luces, lattices/ffd, etc).

El scripting es una herramienta verdaderamente poderosa pero no es magia. Ayuda a disminuir en un gran porcentaje los procesos manuales y el rango de error humano al ejecutarlos pero desarrollarlo toma tiempo. Muchas personas se quejan que tardan lo mismo (o más) desarrollando el script que haciéndolo a mano. En muchas ocasiones ésto es cierto, pero una vez que se desarrolla un código funcional, éste es potencialmente reusable para otras situaciones similares.

Como Organizar y Nombrar Correctamente

¿Cómo se nombran las cosas? Ese es el punto sensible: No hay mucha información ni tampoco un estándar para nombrar “correctamente” tus assets y escenas. Cada empresa normalmente define su nomenclatura por lo que sus procesos y automatizaciones giran en mayor o menor medida en torno a ellas.

Nomenclatura-organizacion

El objetivo principal cuando se trabaja sobre la definición de una nomenclatura es: ¿Cuál es el nombre que define clara, sencilla y lógicamente un objeto o un archivo?

Algunas recomendaciones

1 – Sub-guiones

Usar exclusivamente sub-guiones para separar palabras. Evitar espacios y guiones.

king_armor

2 – Camel Case

En el caso de palabras compuestas o cuando requieras utilizar adjetivos calificativos utiliza el camel casing.

king_armorPlate

3 – Tipo de objeto

Agregar un prefijo (recomendable 3 letras) definiendo el tipo de objeto 3D.

geo_king_armorPlate = geometrías
ctr_arm = controles de animación
jnt_spine = huesos de deformación
nul_head_pos / hlp_head_pos = locators o helpers
mat_body = materiales o shaders

4 – Lados, izquierda-derecha

Lf o Rt para definir el lado derecho o izquierdo. Recuerda que es el lado izquierdo/derecho del personaje (no es en base a como lo ves).

lf_ctr_eye
rt_jnt_eye

5 – Lados, arriba-abajo

Los descriptores de arriba/abajo se usan en pocas ocasiones por lo que usualmente se embeben después del objeto

lf_ctr_eyeUp
rt_jnt_eyeLo

6 – Tipo de asset

Las geometrías deberían de tener un prefijo del defina el tipo de asset al que pertenece: c = character, p = prop, s = set o escenario. Ejemplo:

c_neytiri_geo_body
p_sword_geo_hilt

7 – Archivos

Los nombres de los archivos deberían describir el tipo de información se encuentra en él, por ejemplo: mod, rig, lig, tex ó información de las secuencias y shots que se trabajan.

c_neytiri_rig
p_sword_mod
seq01_s01_ani

8 – Versionado

Si no se tiene un programa de control de versiones (svn, perforce, etc) se puede agregar un sufijo para simular ésta práctica. El número de dígitos definirá las posibles versiones disponibles antes de tener que cambiar de nombre.

c_neytiri_rig_v01
p_sword_mod_v03
seq01_s01_ani_v99

La desventaja del versionado por nombre es que si se trabaja por referenciando dinámico a objetos o archivos externos (Ejem. references de Maya, Xrefs en 3dsmax) se vuelve impráctico tener que estar re-referenciando contínuamente al archivo más actual. Ojo, a éste nivel, ya con una nomenclatura definida y con scripting es fácil automatizar una solución a éste problema.

9 – El orden

El orden de los descriptores definirá el cómo se organiza y muestra la información. Por ejemplo si se quiere priorizar por lado del personaje:

head_CTR
head_JNT
Lf_arm_CTR
Lf_arm_JNT
Rt_arm_CTR
Rt_arm_JNT

O, si se quiere priorizar por tipo de objeto:

CTR_head
CTR_Lf_arm
CTR_Rt_arm
JNT_head
JNT_Lf_arm
JNT_Rt_arm

Conclusiones

Desarrollar una nomenclatura y seguir una estructura de organización realmente no es fácil y toma tiempo y dedicación. Asimismo es una actividad que constantemente evoluciona ya que siempre hay nuevos procesos, nueva información que transferir y que recibir.

Así, a la hora de empezar a desarrollar una, no busques que sea perfecta y que abarque todos los posibles escenarios y/o procesos; busca que sea funcional, sencilla, lógica y que se acople a las necesidades de la producción.

Conóce Más: Comenzar Con el Pie Derecho en el 3D

Espero que te sirva ésta pequeña guía introductoria hacia la organización y el buen nombrado y puedas empezar a trabajar en nombrar correctamente tu material de trabajo. Recuerda, aún cuando consideres que la mayoría de tus trabajos “no necesitan” una nomenclatura, es preferible desarrollarla, probarla y pulirla lo antes posible.