Hoy vamos a continuar hablando sobre Spark AR Face Extraction. Mi video anterior tuvo buen recibimiento. Agradezco cada una de las personas que me ha apoyado en este camino de Spark AR. En especial a Sachá, mi amigo peruano que es creador de filtros también! En esta ocasión hablaré de dos tipos de Face Extraction que quedaron pendientes y me pidieron muchísimo: Usar tu rostro en una imagen estática y cómo agregar tu rostro en un objeto 3d. 

Vamos a continuar donde nos quedamos. Te recomiendo que veas mi video anterior para que puedas seguir el proceso.

Face Extraction – Imagen Estática

En Spark AR tenemos el ejemplo de face extraction, donde el rostro mueve toda la escena. Muchos usuarios querían saber cómo mantener los planos de manera estática y que solo se moviera el rostro con cierto límite. Eso es posible, aunque hay que tener cuidado con esta técnica pues el mayor elemento es estático y ya sabemos que a Spark AR no le gusta lo estático, por eso vamos hacer agregarle una dinámica.

Vamos a agregar un null object para agrupar el “plane” y “face mesh” y de esa manera los separaremos del face tracker que es el elemento padre en la actual jerarquía. Simplemente los agrupamos y los agregamos dentro de dicho null object. Automáticamente el rostro y el plano se quedaron fijos, atrás está el plano del universo y el face tracker quedó afuera, pero es necesario para que funcione el filtro, sin él, no existiría esta dinámica.

Debes posicionar siempre el face mesh adecuadamente para que de la ilusión que nuestro rostro corresponda con las dimensiones del cuerpo de la imagen.

Vamos a seguir trabajando porque no quiero que solo existan elementos estáticos. Vamos a agregar una animación simple para que mueva todo el null object: usaré spin. Si te das cuenta está conectado con la rotación de dicho null object. En este caso el spin lo usaré en el eje Z. Puedo cambiar el loop animation de 1 a 3 segundos para hacerlo más lento. Ahora vamos hacer algunos ajustes.

Ajustes Imagen Estática

Cambiaré “loop animation” por “animation” para mayor control. Mantengo los segundos a 3; y agregaremos un screen tap para iniciar la interacción.

Haremos otra animación para alejarlo de la cámara, por lo que copiaremos los patch animation y transition anteriores. Luego conectaremos el valor de “position” del null object para este ejemplo. En el eje Z le pondré -5 y vamos a resetear la experiencia.

Podemos seguir haciendo ajustes para probar cómo quedaría la experiencia. Si queremos que el efecto vaya y venga sin problemas, debemos agregar un switch para que sea el conductor entre screen tap y animation. Ahora conectaremos el “turn off” del pulse con el “reverse” del “animation”. Realizaremos lo mismo con el otro elemento de animación.

Podemos optimizar el patch y dejar el funcionamiento en un solo switch y pulse. Vamos a ver como queda en el dispositivo.

Face Extraction – Objeto 3d

Ahora vamos a agregar un objeto 3d para colocar nuestro rostro, por ello debemos escoger una archivo 3d de apariencia humana; y qué mejor si tiene animación.

Podemos utilizar un archivo 3d de sketchfab pero no es lo adecuado. Te recomiendo que trabajes desde cero para que el espacio del rostro encaje bien con el face mesh. Usaré este: “Lola samba dancing”.

Al importarlo, no olvides agregarle su animación… Ahora agregaremos el face mesh que trabajamos dentro de la jerarquía correcta es decir cerca de la cabeza, arriba del cuello o elementos relacionados.

Usaremos como punto de referencia el esqueleto hasta llegar a la unión de “Head_06”. Arrastramos el face mesh hasta allí. Podemos ocultar el null object para que el objeto 3d tenga mayor relevancia. Luego nos corresponde editar para que nuestro rostro calce a la perfección, pero con este ejemplo no quedará tan preciso porque no tiene una dimensión adecuada, un color similar a mi rostro, entre otros factores.

Usaremos otro objeto 3d, regresamos nuestro face mesh hacia el null objetct y borramos dicho objeto 3d. Ahora importaremos el otro archivo como este archivo 3d de fornite!
Ajustaremos su escala y luego vamos buscando el lugar adecuado para agregar el face mesh: el lugar adecuado es “helmet_070”.

Vamos a ajustar el rostro para que quede perfecto. Una vez tengamos todo en su lugar, no olvidaremos agregar la animación del objeto 3d.

Patreon

Puedes apoyarme a través de mi cuenta de Patreon. Con esta contribución podré mantener mi canal / web y sacar tutoriales constantes. Además tendrás acceso ilimitado a mis códigos fuentes.




Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.