audiv027-2024-1

clase-06

entrega: CatchCam

integrantes: Josefa Rubio y Angela beltrán

fecha: 25/Abril

materiales/2024

este trabajo lo hice con los siguientes materiales:

código

el código está subido en esta misma carpeta

capturas de pantalla

Para idear este juego primero tuvimos de base el siguiente código que se muestra en este video de youtube: https://youtu.be/gUetYrVB6oM?si=StJUE46BjGsTZ-ZQ Con esto pensamos que podríamos a través wekinator entrenar al juego para que en vez de que se moviese el rectángulo con las teclas fuese con el movimiento de nuestra cabeza a través de cámara web.

Para esto en primera instancia se buscó integrar la visualización de la cámara web en el juego sumado a la instalación de processing video desde library agregando al inicio del código:

import processing.video.*;

Se declaró una variable global para la captura de video y otra para el valor de la posición horizontal del rectángulo controlado por la cámara:

Capture video; float rectX;

inicializamos la captura de video y establecemos la posición inicial del rectángulo (rectX) en la mitad del ancho de la ventana:

// Inicializar la captura de video y establecer la posición inicial del rectángulo video = new Capture(this, width, height); video.start(); rectX = width / 2;

Al hacer estas modificaciones se abrió el lienzo que contenía la pelota sin embargo no salía el rectángulo ni tampoco un lienzo aparte en donde pudiese verme a mi misma por camara web para poder controlarlo. image

sin embargo esto no funcionó pues se abrió el lienzo que contenia la pelota pero no se activó la cámara y la pelota rebotó en un loop constante también sin poder ser capaz de mover el rectángulo de ninguna forma.

Después se realizaron las siguientes modificaciones en el código para que pudiese conectar con la cámara, esto ocurrió y funcionaba el juego aún con mouse, en el código aún se estaba descifrando cómo conectar con wekinator outputs e inputs con los cuales conectar con wekinator y podía visualizarse a través de la cámara web dentro de un mismo lienzo .Los cambios fueron:

float predictionX = theOscMessage.get(0).floatValue(); obtiene el valor de la primera entrada en el mensaje OSC recibido con estos cambios pudimos conectar wekinator con processing sin embargo no era posible entrenar al programa para que reconociese la el restro. image

Posterior se borró el código que le daba acceso a la captura de video en processing y además ahora ya no espera recibir la posición de cámara sino espera recibir datos de posición de cara, esto cambiando el OSC Posterior a esto se descargó desde la página de Wekinator examples bundles el Face Tracking (Processing version; tracks the x- and y- position and width of one face) Win32 para usar la cámara de este ya que, como se vió en clases, se entiende la relación entre los inputs y outputs que se necesita para que funcione en Wekinator y así usar este ejemplo que ya reconoce con anterioridad la cara por los códigos, tal que así lo pudiéramos aprovechar entrenando este junto al juego en Wekinator. *El Face Tracking se abren los 3 archivos en una ventana para que funcione. Finalmente se le incorporan los inputs y outputs al código del juego para que Wekinator lea el movimiento del rectángulo con la detección de la cara, mediante un entrenamiento de ambos códigos utilizados. image

image

image

image

conclusiones

citas y referentes