0:0010:16

Recursos

Resumen

¿Quieres aplicar imágenes a un rostro y transformarlas sin traer decenas de archivos pesados? En Spark AR puedes importar una sola textura y animarla, recolorearla y hacerla reaccionar a tu juego usando nodos como Swizzle y Gradient Map. Esto le sirve a cualquier creador de filtros que quiera controlar la parte visual de un efecto desde cero.

Todo arranca con un objeto facial que te permita ver lo que haces con el material. Sin una superficie donde proyectar, trabajas a ciegas.

Cómo preparo el objeto facial y el material en Spark

Lo primero es agregar un Face Mesh ligado directamente al Face Tracker. Ese es el lienzo donde vas a ver tu textura sobre la cara en tiempo real.

Después de crear el mesh, el flujo es sencillo:

  • Agrega un nuevo material llamado por defecto Material 0.
  • Renómbralo a algo claro como Cara con doble clic.
  • Cámbialo a modo Flat y trae su textura al Patch Editor [01:03].

Aquí ya tienes dos caminos para controlar el color. Uno es usar un nodo value, que además de valores numéricos tiene un modo de color, así que puedes controlar directamente qué color recibe el material e incluso agregarle una animación de entrada.

¿Para qué sirve el modo Flat en un material de Spark? Es un modo que muestra la textura plana sin cálculos de iluminación. Lo usas cuando quieres que la imagen se vea tal cual la diseñaste sobre el rostro.

Qué hace el nodo Swizzle y cómo extraigo canales de color

La imagen que importas trae gráficos con colores muy primarios, y eso es a propósito. La intención de usar colores primarios es poder extraer cada canal por separado y sacar mucha más información de una sola imagen [02:28].

Para eso entra el nodo Swizzle. Recibe una entrada con varios colores y te deja exportar solo el que necesitas. Si escribes R, sacas el canal rojo; con G, el verde; con B, el azul [02:50].

Y aquí viene lo interesante: puedes reordenar los canales a mano. Como los colores siguen el orden R, G, B y luego alfa, puedes escribir B en la primera posición para mover lo que estaba en azul hacia el canal rojo, poner 0 en verde y azul, y 1 en alfa [03:30].

¿Qué es el canal alfa en una textura? Es el canal que controla la transparencia. Un valor de 1 hace el pixel totalmente opaco y un 0 lo vuelve invisible, lo que te permite recortar formas usando un color.

Antes de seguir, un detalle práctico: corrige que la textura no se vea dentro de los ojos seleccionando el Face Mesh y activando la opción de ojos [04:20].

Cómo recoloreo y animo con Gradient Map

Cuando pides un solo canal con Swizzle, no recibes RGB sino un valor de luminosidad de 0 a 100 por ciento. Por eso se ve blanco aunque metas un solo color. Ese canal es la materia prima perfecta para el nodo Gradient Map [04:45].

El Gradient Map toma esa luminosidad y la reinterpreta como un degradado. Lo que estaba en 0 por ciento lo puedes volver rojo, y lo más brillante lo conviertes en amarillo. Con eso ya tienes un look completamente distinto a partir de la misma imagen.

Lo potente llega al encadenar varios Gradient Step:

  • Conectas el gradiente de uno al previous del siguiente como output.
  • Defines que el primero vaya de 0 a 0.5 y el segundo de 0.5 a 1.
  • Así multiplicas los valores de color disponibles en la misma textura [05:40].

Con ese encadenamiento logras pasar de negro a rojo y luego a amarillo, un resultado muy volcánico y lava. Y como estos pasos se manejan con flechas, todos los canales se pueden animar, cambiar por código o hacer que reaccionen cada vez que sube un punto en el juego [06:30].

Por qué cambiar el blend mode a Add mejora el efecto

Al terminar el degradado aparece un problema: el look de fuego se ve sobre fondo negro encima de la cara. La solución está en los atributos del material, en el blend mode, que define cómo se mezclan los colores entre el fondo y el material [07:20].

Por defecto está en alfa, que coloca el material como un objeto con transparencia. Al cambiarlo a add, el modo suma los valores de color.

¿Por qué funciona tan bien? Porque el negro vale cero, así que no agrega nada y desaparece, mientras que los colores brillantes sí se suman sobre la cara. En los materiales de la clase hay un artículo con todos los modos de blending para que estudies cada opción [08:00].

Con este flujo ya no dependes de traer animaciones cuadro por cuadro ni archivos pesados: generas todos esos comportamientos directo en Spark a partir de una sola textura. ¿Qué look vas a crear tú con Gradient Map? Cuéntalo en los comentarios.

Swizzle y Gradient Map: recolorea rostros en Spark

Curso Avanzado de Realidad Aumentada

Clase 13 de 21

Clase 13 / 21