¿Qué es un Pipeline? Una Introducción al Pipeline en CG

De seguro alguna vez has encontrado la palabra “pipeline“ cuando lees algún reportaje, ves un detrás de cámaras o alguna entrevista de algún artista digital, y si no conoces que es esto aquí te traigo una introducción a lo que es un Pipeline en CG, lo cual puede ser aplicado a animación, videojuegos, post-producción, etc.
Y este es un tema que para las personas que ya llevan más tiempo en las industrias de animación, videojuegos o similares, es muy probable que conocerán el significado, sin embargo los que van empezando podrían intuir el significado en base al contexto o de plano desconocerlo. Esto último no es del todo grave, sin embargo el saber que todos trabajamos dentro de un pipeline y conocerlo -aunque sea un poco- nos ayuda a entender parte de nuestro rol dentro de una producción, el trabajo que tenemos que hacer y lo que se espera que entreguemos.

Por ende esta entrada está dedicada a explicar los conceptos básicos del pipeline, entender que es un pipeline y el porqué de su importancia, y así como  para aquellos interesados/as en llevarlo al siguiente paso: cómo empezar a pensar en su desarrollo e implementación.

¿Qué es un Pipeline?

El Pipeline, que también es conocido como flujo de trabajo, procesos de producción o cadena de producción, se refiere a la organización y administración del paso de la información que existe dentro de una producción de CG (como dije anteriormente, esto puede ser un pipeline de animación, videojuegos, vfx, post-producción, etc).
La manera más sencilla de entenderlo es visualizando la cadena de producción en una fábrica: entra materia prima, esta es modificada por las máquinas y pasa por diferentes procesos para finalmente convertirse en un producto terminado.pipeline_procesos_fabrica_de_produccion  (que es un pipeline)

 

La importancia de implementar uno dentro de un estudio o compañía, toma mayor importancia conforme los equipos de trabajo se vuelven más grandes y las tareas más complejas. En mi experiencia el pipeline debe responder a las siguientes tres grandes áreas:


  1. Establecer y definir en la cadena de producción los procesos de creación, revisión y aprobación de cada departamento así como definir los entregables de cada uno de ellos.
  2. Definir los departamentos, los roles de los artistas, las jerarquías de supervisión, dirección y producción, así como sus responsabilidades y adjudicaciones.
  3. Definir las nomenclaturas, la organización de archivos, la seguridad y control de versiones,  implementar las buenas prácticas de trabajo, identificar cuellos de botella y fomentar la automatización de procesos.

El objetivo es que el pipeline sea la grasa que permita a toda la maquinaria de producción estar bien lubricada para que esta funcione eficientemente, sin contratiempos, de manera previsible y con un mínimo de downtime o tiempos muertos, así como de mantener la misma calidad.

Un Pipeline por Industria, por Estudio, por Artista

Un pipeline aunque sigue ciertas premisas universales, es único: este es como la huella digital de un estudio, lo que quiere decir que no hay dos pipelines o procesos de producción idénticos.
Eso se debe a que cada pipeline es creado para responder a las necesidades de la empresa o estudio en específico, de sus equipos de trabajo así como de los programas y herramientas que se utilizan.

El Pipeline a Nivel Industria…

En un nivel global – es decir, por cada industria – encontraremos similitudes entre los pipelines de todas las empresas de dicha industria, es decir, las empresas de videojuegos tendrán flujos de trabajo y procesos similares, así como por su lado las de animación, las de efectos visuales, las de producción multimedia, impresión 3D, etc. Estas semejanzas se dan porque al generar el mismo tipo de producto se requieren ciertos procesos particulares para ello.pipeline_industrias

Muchos podrían pensar que un solo pipeline podría servir para resolver cualquier tipo de proyecto. Eso es fácil de asumir cuando ves muchos procesos que se comparten a lo largo de todas las industrias digitales creativas (modelado, texturizado, concept art) pero siempre hay ciertos procesos que son específicos entre algunas de ellas, por mencionar algunos ejemplos: chroma keying, tracking, rotoscoping, son principalmente procesos de VFX, difícilmente se encontrarán en empresas de videojuegos.
Por su lado, el proceso de pre-renderizado normalmente no existe en videojuegos ya que el objetivo es funcionar en tiempo real, este es solo un ejemplo de como los pipelines por industria deben servir sus propios procesos y necesidades.

El Pipeline a Nivel Estudio o Empresa… 

En un nivel más local, cada estudio o empresa dentro de una misma industria también mostrará sus particularidades, como ejemplo podríamos decir que todos los estudios de animación que producen series de animación en algún momento renderizan los episodios completos que ya completaron la animación.
Y dentro de estos estudios, asumiendo que es un pipeline para series de animación 3D, sus procesos y por ende sus pipelines van a variar en base a:

  • El programa de animación 3D que utilizan (¿Maya, Blender, 3d Max?)
  • El motor de render (¿Vray? ¿Octane? ¿Arnold?)
  • La granja de render (¿local? o ¿en la nube? o ¿se manda fuera del estudio?)
  • Los plugins que usan (¿Redshift?, ¿Golaem?, ¿WebGL?)
  • Las herramientas propietarias del propio estudio
  • El software especializado, de iluminación y/o render etc.

Esto podría explicarlo con un pipeline de esta manera:

  1. El animador completa su animación y la manda para revisión por medio de un programa propietario del estudio
  2. El supervisor de animación recibe notificación de que existe una escena para revisión
  3. El supervisor abre la escena y deja comentarios sobre la misma escena, lo manda de regreso debido a que se requieren cambios
  4. El animador recibe notificación de que su escena no fue aprobada
  5. Trabaja cambios, lo vuelve a mandar a revisión
  6. El supervisor recibe la notificación y esta vez aprueba los cambios
  7. Al aprobar los cambios por medio del software propietario del estudios, este lanza una notificación al productor de que la escena está lista
  8. El productor revisa la escena y da clic para que la escena pase al departamento de render
  9. El departamento de render recibe la animación, trabaja asuntos de rendereo de escena
  10. Una vez hecho los cambios necesarios, lo manda a renderpipeline_industrias_empresas

Algo importante a destacar es que en la última década los estudios (sobre todo de VFX y animación) han aumentado su mutua colaboración para dar cabida a los gigantescos proyectos de los clientes.
Con varias de estas iniciativas se ha logrado la estandarización de ciertos procesos para la homogeneización y transferencia de información entre empresas, entre ellos: ptex, alembic, open subdiv, color io, USD, etc.

El Pipeline a Nivel Artista…

Es interesante destacar que un pipeline no está restringido a las empresas únicamente. Muchos artistas -consciente o inconscientemente- desarrollan sus propios flujos de trabajo: la administración de la información, el repositorio y nombrado de archivos, la organización de información para transferir los assets digitales entre programas, los scripts de automatización que se hacen/usan para ciertos procesos etc.pipeline_industrias_artistas  (que es un pipeline)

Simplemente, el artista va desarrollando su propia forma de trabajo con el fin de mejorar sus procesos y ser más eficiente aún cuando le haga sentido a otras personas. Este “pipeline personal” es muchas veces el culpable de que sea difícil trabajar con ciertos artistas que tienen “maneras particulares de trabajo”.


Al final, el pipeline busca establecer una forma de trabajo lógica, coherente, práctica y funcional con el objetivo de definir procesos y reducir la pérdida de tiempo y de información.

Cómo se ve un pipeline

El pipeline no necesariamente se ve, simplemente se trabaja en el. Algunas empresas desarrollan pipelines tan complejos que los artistas no se dan cuenta de todos los pre-procesos de revisión, notificación y filtrado de errores que se hacen cuando uno simplemente aprieta un botón de “enviar para aprobación”. Este tipo de casos nos muestran que la finalidad es que los artistas trabajen bajo un sistema que permita trasmitir la información de la manera más completa, eficiente, clara y reduciendo el error humano lo más posible.

…la finalidad es que los artistas trabajen bajo un sistema que permita trasmitir la información de la manera más completa, eficiente, clara y reduciendo el error humano lo más posible.

Como ya se ha dicho antes, es imposible definir “el pipeline definitivo para producciones digitales”, los ejemplos que voy a mostrar son simplemente diagramas de flujo genéricos de ciertas industrias. Ellos no establecen todos los flujos también indispensables de iteraciones, aprobación, feedback, etc.

El siguiente es un ejemplo de un sencillo pipeline para un estudio pequeño de animación. Incluye los proceso de concepto, modelado, look dev, rigging, layout, animación, iluminación, simulación, render, composición. No incluye flujos de revisión interna ni de cliente, tampoco incluye procesos de preproducción (guion, stroyboard, animatic, edición, ni de post (corrección de color, edición final, etc.)pipeline_animacion_ejemplo (que es un pipeline)

El siguiente es un diagrama de ejemplo de un posible pipeline para un estudio pequeño de VFX. Como en el ejemplo anterior se exluyeron flujos de revisión interna y externa asi como preoproducción y post producción. Incluye los procesos de: Supervisión en set, camera tracking, chroma key, rotoscoping, set extension, matte painting, layout, animación, simulations, lighting, render, composición, corrección de color. Aquí es posible ver como todo el proceso del estudio de animación está incluido y con ciertas dependencias hacia los procesos exclusivos de VFX (rotoscopio, chroma key, camera tracking) y como todos ellos convergen hacia composición.

pipeline_vfx_ejemplo  (que es un pipeline)

Lo mas importante en estos diagramas, es identificar si hay información que pasa directamente de un departmento a otro, muchas veces esto es fácil de ver: los modelos del departamento de modelado hacia rigging. A veces son más sutiles: las cámaras animadas de layout hacia el ensamblado final de escenas. Como he dicho, depende mucho del como se trabaja para ver las conexiones que se muestran en estos flujos.


Desarrollando un Pipeline

A estas alturas ya podemos empezar a ver la complejidad para definir un buen flujo de trabajo. Con esto reforzado quiero recordar: No hay receta maestra final para desarrollarlo ni implementarlo y que este sea funcional en el primer intento. Los procesos y prácticas de trabajo que le funcionan a una empresa no necesariamente le van a funcionar a otra.pipeline_desarrollando_pipeline

Sin embargo, si hay puntos de partida para comenzar a crear uno adoptando las prácticas que más benefician y descartando -tal vez temporalmente- las que no hacen mucho sentido.

Así cuando ya toda la teoría y los beneficios fueron expuestos ¿como pongo manos a la obra? ¿Por dónde puedo empezar para desarrollar mi propio pipeline?

La Importancia

Alguien podría seguir teniendo la duda ¿realmente necesito desarrollar un pipeline en mi empresa o para mis procesos de creación digital? A un nivel esencial, nadie está “obligado” a hacerlo pero el implementar uno -o por lo menos establecer las bases de uno- puede traer muchos beneficios a largo plazo.

A lo mejor a algunos les pudo haber tocado trabajos en donde se pasa por medio de una llave USB o un correo, archivos llamados “animación_final_03_aprobada_04FINAL.mb”.

Esta realmente es una manera extremadamente rústica de flujo de trabajo y sujeta a incontables errores humanos, pero es una realidad que casi todos iniciamos así…

“¿cómo me dijiste que se llamaba el archivo final?”, “se te olvidó copiar el archivo en la USB”, “¿el archivo lo pusiste en la carpeta FINAL o FINAL_RENDER”?, “no encuentro por ningún lado las texturas del personaje”.

El trabajar un proyecto de esta manera por 2-3 semanas con un equipo de 4 personas no pasaría de ser un dolor de cabeza los últimos días tratando de hacer los últimos ajustes requeridos. Sin embargo una producción de 200 artistas trabajando durante 1 año en un mismo proyecto no se podría dar el lujo de hacerlo de ésta manera: “¿A quién de los 15 artistas de render le doy mi USB con mi animación final?”, “Sin saberlo se hicieron dos modelos de un mismo personaje, uno se riggeó y el otro se mandó a shading e iluminación”, “la mitad de las texturas del escenario X están en el escritorio del artista J y la otra mitad estaban en la computadora que le falló el disco duro”.

Encima de lo anterior independientemente de la dimensión del proyecto, eventualmente el proyecto finalizará y toda la información será guardada y empacada; pero imaginemos que 1 año después el cliente regresa y quiere continuar produciendo su proyecto en el cual se necesitaría reutilizar muchas de las cosas que ya fueron creadas… zambullirse en ese mar de caos informático será una búsqueda épica.

El pipeline busca que los procesos NO dependan de las personas, sino que dependan y respondan a mismos procesos

El objetivo final es minimizar -e idealmente, evitar- todos los errores ligados al manejo y transferencia de información entre procesos, departamentos y/o equipos de trabajo. El pipeline busca que los procesos NO dependan de las personas, sino que dependan y respondan a mismos procesos. Tomemos un ejemplo:

Juan Modelador y José Rigger son dos artistas digitales que han trabajado juntos los 3 últimos años y han formado una eficiente célula de trabajo, nadie más que ellos sabe exactamente lo que hacen pero sus resultados son excelentes. Un día Juan Modelador se va (encontró otro trabajo, se enfadó o tuvo una grave enfermedad y no puede trabajar en un buen tiempo, etc). José Rigger se ha quedado pero parte del conocimiento se ha ido con Juan y, a pesar que se podrá reconstruir, el nuevo modelador no solo lidiará con con su curva de aprendizaje sino que habrá que sumarle esa reconstrucción de pipeline.pipeline_engraganges_comunicacion

Este ejemplo muestra solamente los procesos de trabajo e intercambio de información entre un modelador y un rigger. Como Juan Modelador trabaja, nombra y entrega geometrías funcionales al subsecuente proceso de José Rigger. El problema es: Si uno falta, el pipeline sufre; si los dos faltan, el pipeline se pierde. Lo correcto aquí sería definir el proceso a nivel empresa: el objetivo es definir -por lo menos- que, como y donde deben entregar TODOS los modeladores que trabajan en la empresa. Así’ TODOS los riggers siempre sabrán cómo y dónde encontrarán la información aprobada más reciente. Cualquier cosa que se salga de los parámetros establecidos se consideraría un error. Y así, esto debe definirse e implementarse por cada departamento y/o proceso de producción.

Al final la importancia del pipeline se puede resumir: ¿prefieres preocuparte en encontrar el archivo final que nadie sabe dónde se guardó o invertir ese tiempo en pulir el arte digital que estás trabajando?

El Desarrollo de un Pipeline

Desarrollar un pipeline toma tiempo y no es tarea fácil. Las personas que se dedican a diseñarlos y/o mantenerlos, normalmente son gente extremadamente organizada, atenta al detalle y con un poco -o mucho- de TOC.

pipeline_diagrama_flujo (que es un pipeline)Como mencioné antes, un pipeline se da naturalmente al haber 2 o más personas trabajando. Es tarea del pipeline manager observar cuáles son los procesos que ya hay y cómo se están dando para que -de ser viable- se construya a partir de ellos.

En mi experiencia personal habiendo estado a cargo del desarrollo del pipeline en mi antigua empresa Éxodo Animation Studios lo que recomendaría para empezar un pipeline es:

  1. Entender a la empresa o estudio y sus necesidades reales
    1. ¿Qué hace?
    2. ¿Cómo lo hace?
    3. ¿Cuántos lo hacen?
  2. Crear un diagrama de ese flujo de información
    1. ¿Dónde se inicia el proceso?
    2. ¿Dónde termina?
    3. ¿Cuál es el orden del proceso?
    4. ¿Cuándo y cómo regresa es información (¿retrabajo/retroalimentación’)
    5. ¿Cuáles son todos y cada uno de los departamentos/procesos que conforman la producción?
  3. Observar los procesos que ya se tienen y que ya se hacen
    1. ¿Funcionan?
    2. ¿Se pueden mejorar?
    3. ¿Se pueden empezar a automatizar?
  4. Cuáles son las áreas vitales a mejorar
    1. ¿Cuellos de botella?
    2. ¿Hay procesos muy necesarios pero repetitivos?
    3. ¿Hay procesos que generan muchos problemas más adelante por errores humanos?
  5. Escuchar a los expertos, es decir los: artistas, acerca de los cuellos de botella y procesos específicos
    1. ¿Qué piensan los artistas?
    2. ¿Qué es lo que ellos sienten que falta en su día a día?
    3. ¿En qué y dónde pierden más tiempo trabajando?
  6. Documentar la información en un manual que se pueda consultar y en el que se explique cómo funciona el pipeline y ser del conocimiento de todos
  7. Implementar el pipeline, donde se inicia con hablar con los artistas, explicarles porqué es importante “preocuparse” por cosas que “no son artísticas”y que a muchos “les cuesta trabajo seguir”

Los puntos de atención

Todo cambio causa estrés, fricción y rechazo especialmente con artistas. Una vez iniciada la implementación el principio siempre será problemático: algunos no entenderán, otros no lo harán, otros se les olvidará seguirlo pero también habrá los que felizmente lo acepten. En mi experiencia, la mayoría de los artistas más reticentes al cambio fueron los que tenían más experiencia y con más tiempo dentro de la empresa, todos los demás lo adoptaron de una manera mucho más rápida.

Todo cambio causa estrés, fricción y rechazo especialmente con artistas

Independientemente, de la aceptación por parte de los artistas hay otros potenciales problemas que pueden totalmente echar a perder el esfuerzo del pipeline y que muchas veces no son tan fáciles de ver de inicio:

pipeline_directivos

1. Los directivos. Cómo ya vimos, es difícil comenzar a poner pies y cabeza en los procesos de una empresa tratando de organizarla, pero si los directivos no creen en el proyecto ni ven su potencial, la iniciativa será solo una perdida de tiempo. El apoyo de los dueños y directivos es vital para el exitoso desarrollo e implementación de un nuevo pipeline, si no se cuenta con el, nadie lo va a seguir ni hacer.

pipeline_trabajarporfases

2. Trabajar por fases. A veces sentarse y tratar de planear todo en papel no es lo más sensato, sobre todo si es las primera vez que se intenta hacer. En este caso, sería mejor entender y definir el proceso de manera global y en base a el implementar ajustes puntuales en los procesos más problemáticos y observar si hay mejoras. Si es positivo el cambio, pasar a otras fases, si no, redefinir esas implementaciones.

pipeline_teoriavspractica

3. Teoría vs. Práctica. Es importante mencionar que las teorías que se ven bien en papel no siempre funcionan una vez implementadas. Es imperante mantenerse abierto a ajustar y cambiar todo lo que se había propuesto ya que es común no haber visto el cuadro completo. Lo último que se busca al implementar un pipeline es imponer algo que no funciona o que funciona a medias.

pipeline_escucharexpertos

4. Escuchar a los expertos. Los artistas pasan trabajando por lo menos 8 horas al día en sus procesos y son los que tienen que lidiar con los problemas y complicaciones que de ellos se desprenden. Es importante estar abierto a sus recomendaciones y, una vez implementado, a sus críticas porque muchas veces las bien intencionadas “mejoras” no hacen más que complicar, entorpecer y volver menos eficientes los procesos.

pipeline_evitarburocracia

5. Evitar la burocracia. Hay una línea muy delgada entre los “procesos para asegurar la calidad” y la burocracia. Es importante buscar la eficiencia ante todo y estar atento en no caer en el juego de las notificaciones y/o aprobaciones excesivas.

pipeline_reevaluacionevolucion

6. Re-evaluación y evolución. Un pipeline está en continua evolución: se implementan nuevos programas, salen nuevas tecnologías, se agregan/eliminan procesos, las necesidades del estudio cambian, etc. El pipeline debe de ajustarse para dar cabida a todas las necesidades que el proceso de producción necesita para seguir siendo eficiente en beneficio del trabajo de los artistas y del producto final.

Conclusión

Cómo hemos visto el pipeline es una parte inherente de las producciones digitales ya que la falta de este dentro de un proceso de producción, es rústicos o genera complejidad dentro de la producción. Desgraciadamente y en mi experiencia, pocas personas – hablando específicamente de artistas o empresas pequeñas que van comenzando – son consciente del beneficio que confiere a las producciones el definir y seguir un buen pipeline.

Es entendible que muchas veces el sentarse a organizar procesos y optimizarlos no es la principal preocupación de muchos artistas o dueños de empresas, es más imperante trabajar y terminar el proyecto en curso para así recibir el pago y pagar a los artistas, sin embargo mi intención con esta entrada es el presentarte un tema – un tanto desconocido y cabalístico para muchos – con la finalidad de llamar la atención en un proceso.

Al final, lo importante es empezar y como ya se dijo, no es necesario hacer e implementar todo en una sola sentada, sino que el hacerlo por partes e iteraciones puede ser más que suficiente siempre y cuando se estén atacando los procesos más problemáticos y que causan la mayor pérdida de tiempo dentro de la producción.