integrantes: Josefa Rubio y Angela beltrán
fecha: 25/Abril
este trabajo lo hice con los siguientes materiales:
videoInput Face Detection Processing disponible en [http://www.wekinator.org/examples/]
dentro de processing descargamos:
el código está subido en esta misma carpeta
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.
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.
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.
Aprendimos que el código se divide en hipertexto, como la sección de comentarios de encabezado. Esta sección suele contener información relevante sobre el propósito del código, void setup, void draw, void keyPressed, void oscEvent
void setup se ejecuta una vez al inicio del programa y se utiliza para realizar cualquier configuración inicial necesaria antes de que comience el ciclo de dibujo principal.
void draw se maneja en los puntos de entrada y salida, para que processing dé respuesta a eventos específicos, ejemplo, click a algo. En draw se envían las posiciones. Aprendimos la relación entre los inputs y outputs de los diferentes códigos en processing, en este caso nos funciona el inputs 3 y outputs 1 para que lo lea Wekinator y entrene los códigos. Pudimos aplicar lo que se trabajó en clases para el trabajo, específicamente en la parte sobre entender cómo funciona processing junto a Wekinator. Esto se aplicó cuando se utiliza Face Tracking junto a Processing Particle System como prueba para empezar este trabajo y se vió la relación entre los inputs y outputs de estos dos ejemplos.
Wekinator [http://www.wekinator.org/examples/]
video library for processing 4, particle processing system, videoInput face detection processing descargados de wekinator.
Se usó juego en processing [https://www.youtube.com/watch?si=HGZGxxYXj9jwqUBC&v=gUetYrVB6oM&feature=youtu.be]
Atoka Jo [https://github.com/aaronsherwood/wekinatorworkshop] [https://www.youtube.com/watch?si=r7m8WtSAbU0o-YAX&v=CEsW1hZmwIk&feature=youtu.be]
Wekinator [https://www.youtube.com/watch?v=NKyyBAKrQgE]
chat gpt [https://chat.openai.com/]