Blog del curso electivo Seminario de Investigación Multimedia de Ingeniería de Sistemas de la Institución Universitaria Antonio José Camacho, orientado por el profesor Ing. Diego López, Mg.

Aquí están publicados los resúmenes y reflexiones de algunos de los trabajos realizados por los estudiantes del curso.

5 de junio de 2015

Edición de imágenes durante el desarrollo del videoJuego FastWheels

Por Sebastián Paniagua López

Fastwheels es un video juego que nace a raíz de la investigación en multimedia en un seminario de la Institución Universitaria Antonio José Camacho y durante el proceso de aprendizaje en este seminario, la experiencia obtenida consistía más que todo en la práctica para editar cada vez más mejor las imágenes y programarlas para que se animara el videojuego. Como un requerimiento escencial en el desarrollo de este juego era el de tener que usar imágenes propias, en este documento se destaca la manera en como se trabajó la edición de imágenes para la presentación del juego.

Entre las técnicas que se conocieron durante este proceso para crear las imágenes para el video juego, está por ejemplo creando y dibujando nuestros propios bosetos, ya sea en papel y escanearlos, ó también dibujando el boseto por medio de lápices electrónicos como las WACOM ó usando programas de vectorización en 3D o 2D como Blender y Corel Draw para renderizar la imágenes con una resolución óptima. Otra manera es usar imágenes de fotografías propias, dónde recortándolas y redimensionándolas al tamaño necesario se ajustan al entorno del videojuego por medio de programas de edición de imágenes como Photoshop o ArtWeaver. También está la posibilidad de crear la caricatura de la imagen, es decir, a partir de una imagen existente, se realiza una copia de ella usando herramientas de dibujo (para calcarla), de esa manera se puede obtener una imagen "casi exacta" a la original en cuestión de su forma y proporción, pero no necesariamente de igual color. Con esta última técnica descrita se procedió a crear las imágenes debido a que no se posee una gran inducción en el manejo de software especializados ni hardware requerido. Entre las imágenes del juego que se plantearon para animar el juego se encuentra el jugador,  los items que se pueden ver durante el recorrido del juego, el splash y el icono del launch del juego. La imagen que anima al jugador durante el desarrollo sufrió varios cambios, primeramente se realizó un boseto manual a  lápiz de las posibles posiciones que se necesitaban para animar el jugador:


Para mejorar las imágenes anteriores, tomando en cuenta las posiciones que debía tener el jugador, se buscaron imágenes de personas sobre la internet que estuvieran realizando la misma posición; esas imágenes fueron usadas para calcarse y crear una imagen un poco más aterrizada a una forma humana.
 

En la siguiente imagen también se presentan otras ediciones, con relación a los ítems del juego que se realizaron con la misma técnica, donde las imágenes con asterisco son las imágenes reales de las cuales se basaron.
 

La imagen del splash también se realizó con esta misma técnica, tomando como referencia para el juego una rueda de un patín de verdad.
 


Esta técnica descrita es muy fácil de usar sobre todo si tienes un programa de edición como lo es el ArtWeaver o el Photoshop y es útil a la hora de poder recrear dibujos personalizados cuando carecemos de habilidad para hacerlos manualmente con un lápiz electrónico o a mano alzada para después escanearlos. Con todos los ítems incluidos en el juego este es el resultado:


27 de mayo de 2015

Sobre el Examen Final

El Examen Final del curso Seminario de Investigación Multimedia se divide en dos partes: 1) Exposición del capítulo de Homovideoludens y 2) Artículo o Ensayo sobre el videojuego que hiciste como proyecto en el curso. Ambas notas se promedian.

El objeto del ensayo es tu videojuego; pero la forma de abordar este ensayo o su enfoque es "libre". Por ejemplo, podrías escribir un análisis sobre el uso del color en tu juego, o una reflexión sobre la importancia del tema central del cual trata tu videojuego, o un análisis sobre el proceso de desarrollo o sobre el trabajo en equipo.

La escritura de este ensayo es individual y debe ser publicado en este blog a más tardar el 8 de junio del 2015.

En la calificación del ensayo se tomará en cuenta:

  • (20%) Ortografía y redacción
  • (60%) Calidad del análisis 
  • (20%) Diseño de la publicación en el blog


20 de mayo de 2015

Desarrollos en Kinect

Probador de ropa


Visualización de imágenes durante procedimientos médicos


Visión de robot volador autónomo


Monitoreo y evaluación de pacientes con Parkinson


Evaluación del comportamiento de compra de los clientes


Fisioterapia - esclerosis múltiple


Interfaz RV para explorar e interactuar con equipo virtual


Simulación de un sable de luz


Simulación de telepresencia


Herramienta de presentación de noticias


Captura de movimiento


Convirtiendo una pared en una pantalla táctil


Espacios interiores aumentados


Ayuda en parqueo


14 de mayo de 2015

KINECT


import SimpleOpenNI.*;

SimpleOpenNI miKinect;

PImage imagenPro;

int [] usuarioId; // int de cada usuario que sera trackeado

float confianza;

PVector posCabeza=new PVector();

void setup() {

  size(640, 480);
  fill(255, 0, 0);
  stroke(255,0,0);
  strokeWeight(3);

  miKinect=new SimpleOpenNI(this);
  miKinect.enableDepth();
  miKinect.enableUser();
}

void draw() {

  miKinect.update();
  imagenPro=miKinect.depthImage();
  image(imagenPro, 0, 0);

  usuarioId=miKinect.getUsers(); // conseguir los id de los usuarios trackeados

  for ( int i=0; i<usuarioId.length; i++) { // un loop por cada usuario

    if ( miKinect.isTrackingSkeleton( usuarioId[i] ) ) { // El usuario detectado se ha calibrado correctamente
      confianza=miKinect.getJointPositionSkeleton( usuarioId[i], SimpleOpenNI.SKEL_HEAD, posCabeza);
    }

    if (confianza>0.5) {
      dibujarEsqueleto( usuarioId[i] );
    }
  }
}

void dibujarEsqueleto( int usuarioId ) {
  miKinect.getJointPositionSkeleton(usuarioId, SimpleOpenNI.SKEL_HEAD, posCabeza);
  miKinect.convertRealWorldToProjective(posCabeza, posCabeza);
  float tam=(500/posCabeza.z)*200;
  ellipse(posCabeza.x, posCabeza.y, tam, tam);
 
  //draw limb from head to neck
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_HEAD, SimpleOpenNI.SKEL_NECK);
  //draw limb from neck to left shoulder
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_LEFT_SHOULDER);
  //draw limb from left shoulde to left elbow
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_LEFT_ELBOW);
  //draw limb from left elbow to left hand
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_ELBOW, SimpleOpenNI.SKEL_LEFT_HAND);
  //draw limb from neck to right shoulder
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_NECK, SimpleOpenNI.SKEL_RIGHT_SHOULDER);
  //draw limb from right shoulder to right elbow
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_RIGHT_ELBOW);
  //draw limb from right elbow to right hand
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_ELBOW, SimpleOpenNI.SKEL_RIGHT_HAND);
 //draw limb from left shoulder to torso
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  //draw limb from right shoulder to torso
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_SHOULDER, SimpleOpenNI.SKEL_TORSO);
  //draw limb from torso to left hip
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_LEFT_HIP);
  //draw limb from left hip to left knee
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_HIP,  SimpleOpenNI.SKEL_LEFT_KNEE);
  //draw limb from left knee to left foot
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_LEFT_KNEE, SimpleOpenNI.SKEL_LEFT_FOOT);
  //draw limb from torse to right hip
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_TORSO, SimpleOpenNI.SKEL_RIGHT_HIP);
  //draw limb from right hip to right knee
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_HIP, SimpleOpenNI.SKEL_RIGHT_KNEE);
  //draw limb from right kneee to right foot
  miKinect.drawLimb(usuarioId, SimpleOpenNI.SKEL_RIGHT_KNEE, SimpleOpenNI.SKEL_RIGHT_FOOT);

}

void onNewUser(SimpleOpenNI curContext, int userId)y void onLostUser(SimpleOpenNI curContext, int userId)

29 de marzo de 2015

Carpeta "Modo Processing"

La carpeta AndroidMode hay que colocarla en la carpeta Processing/modes que se encuentra en Mis Documentos.

Para descargar el archivo darle clic aquí.


 Para más detalles de la configuración de Processing en Modo Android leer la siguiente publicación.

27 de marzo de 2015

Tarea Processing en Modo Android

La tarea consiste en hacer un programa en Processing y mostrar su funcionamiento directamente en un dispositivo móvil (Smartphone o Tablet). La tarea es en grupo, o sea con tu grupo de proyecto del videojuego serio y el programa que hay que hacer es una versión muy resumida de tu juego. Es decir, lo que espero ver (y calificar) es que ya estás comenzando a desarrollarlo.

Para usar Processing con Android, primero tienes que instalar el SDK de Android en tu PC; luego, hay que agregarle el modo Android a Processing.

Para agregar el modo Android tienes que dar clic en el botón que está en la esquina superior-derecha de Processing

Además tienes que revisar que la configuración del SDK de Android sea la idónea para Processing. En este link explico cómo se configura.

Lo mejor para trabajar aplicaciones con Android no es utilizar el emulador, sino ejecutar los programas directamente en el dispositivo móvil. En la Web, puedes encontrar tutoriales de cómo hacerlo. Una cosa es usar un emulador y otra cosa es usar el dispositivo móvil.

Por ahora, la idea es que tu juego funcione por lo menos en el dispositivo móvil que utilizaste en el desarrollo.

Así que para la próxima clase trae tu smartphone o tablet con la versión resumida de tu juego funcionando en éste. Esa es la tarea.


La librería que comúnmente se usa en Processing para el sonido es la Minim. Es una librería muy completa; sin embargo ésta (hasta el año pasado) no funciona en Android. La que funciona es la librería ApWidgets. En este link te doy un ejemplo de un programa hecho con esta librería. De todas formas ApWidgets no es tan completa como la Minim; pero si lo que quieres es sólo reproducir sonidos, es más que suficiente.



En este link te dejo unos ejemplos de programas base hechos en Processing que te pueden ser útiles.


26 de marzo de 2015

Información sobre android en processing

Hola profesor y compañeros.

Quiero compartir con ustedes la información que encontré sobre el uso de Android en Processing... para empezar ya perdí 2 días tratando de configurar esa vuelta y nada que me ha funcionado T_T

Bueno, primero que todo, está información la sacado del sitio oficial de Processing (Para que no vayan a decir que me estoy inventando cosas): https://github.com/processing/processing-android/wiki

La documentación de github fue realizada el 19 de Enero de este año (Osea que es reciente) y solo como información, les digo que la última versión estable de Processing fue la 2.2.1 que salió el 19 de Mayo del 2014!!! (Algo ya viejita ¬_¬)

Bueno, en la documentación de github dice:

"Note that this code is incomplete and contains bugs. It should be considered "beta" quality. Do not use this code while operating heavy equipment. Do not rely on this code for thesis or diploma work, as you will not graduate. Do not use this code if you're prone to whining about incomplete software that you download for free."

Según lo anterior, la utilización del SDK de android en processing es una opción "beta", contiene muchos errores y está incompleta, además no debería ser utilizado para cosas importantes como tesis y proyectos de grado...

Por último y para completar la dicha, dicen:

"We currently have no plans to make a version of the development environment (the PDE) that runs on the phone"

Eso quiere decir, que no tienen planeado organizar el processing para que pueda correr en celulares (yuno)

Lo único que dejan, son algunos links a aplicaciones NO OFICIALES para poder utilizar el código de processing en android:
Bueno, eso era todo :)

19 de febrero de 2015

Primer Parcial

La nota de Parcial 1 equivale:
  1. (70%) Elaboración, entrega y sustentación del Documento de Diseño Preliminar (incluyendo el diseño del logo del grupo en la portada)
  2. (30%) Diseño finalizado del relato gráfico y puesto como entrada en este blog.

Aclaración:
Los relatos gráficos NO debes enviarlos a mi email. Estos relatos deben colocarse en este BLOG. Si por algún motivo aún no te ha llegado la invitación, coloca tu email de GMAIL en los comentarios de esta entrada.

Disculpen aquí hago el cambio:

El PARCIAL 1 es en la SALA MAC de la Estación 1.

La evaluación se hará por grupo de desarrollo y deben traer IMPRESO el documento de diseño.
Es importante que todos los intengrantes del grupo estén a la hora abajo indicada.
Una vez el grupo sea atendido se les dirá la nota y puede irse para sus casas.
Las historietas deben estar ya subidas al blog.

12 de febrero de 2015

Exposición Videojuegos Serios Sede Norte

Cordial saludo.

La tarea de Seminario de Investigación Multimedia para para el jueves (Febrero 16) es investigar el concepto de videojuego serio y buscar uno que te llame la atención.

La idea es que expongas sobre ese videojuego serio que escogiste.

La tarea es individual y ninguno puede repetir videojuegos. Por consiguiente, en los Comentarios escribe el nombre del videojuego serio que escogiste.

Verifica que otro compañero no haya escogido antes el mismo; en este caso, busca otro videojuego.

5 de diciembre de 2014

¿Qué es la Realidad Aumentada?

Por Jose Polanco

¿Qué es la Realidad Aumentada?

La Realidad Aumentada (RA) es una tecnología que usa varios dispositivos que añaden información virtual a la información física. Esta tecnología sobreimprime los datos digitales al mundo real. Es una mezcla del mundo real y el digital.

La RA agrega elementos virtuales que se pueden visualizar a través de cámaras, con la ayuda de estos dispositivos la información sobre el mundo real alrededor del usuario se convierte en interactiva y digital. Los dispositivos de RA constan de un "HEADSET" y un sistema de display para mostrar la información, también lleva incorporado un sistema GPS que usa para localizar con precisión la situación del usuario.

Los sistemas de RA utilizan las siguientes tecnologías: cámaras digitales, sensores ópticos, acelerómetros, GPS, giroscopios, brújulas de estado sólido, RFID, etc. También se incluye procesamiento de sonido, memoria RAM para procesar las imágenes. Pero esta combinación de elementos la tenemos al alcance de nuestras manos con los SMARTPHONES o teléfonos modernos.

Componentes de la Realidad Aumentada


• Monitor del computador: Instrumento donde se verá reflejado la suma de lo real y lo virtual que conforman la realidad aumentada.

• Cámara Web: Dispositivo que toma la información del mundo real y la transmite al software de realidad aumentada.

• Software: Programa que toma los datos reales y los transforma en realidad aumentada.

• Marcadores:
Los marcadores básicamente son hojas de papel con símbolos que el software interpreta y de acuerdo a un marcador especifico realiza una respuesta especifica (mostrar una imagen 3D, hacerle cambios de movimiento al objeto 3D que ya este creado con un marcador).



¿Qué ventajas tiene?

• Facilita que los consumidores puedan probar y jugar con los productos divirtiéndose a la vez.
• Ayuda a ofrecer una imagen moderna de una marca o producto.
• Permite impactar al público más joven fácilmente.
• Las campañas de Marketing Online que utilizan realidad aumentada tienen más posibilidades de generar viralidad.
• Transmite información al consumidor en el mismo punto de venta.
• Ayuda a que la gente interactúe en lugar de permanecer pasiva.
• Permite mayor conexión entre la marca y el producto.
• Combina el mundo On Line con el Off Line, creando una experiencia muy real.


Varias Aplicaciones de Realidad Aumentada

Estas aplicaciones nos dan una idea de como podemos usar la RA con diferentes aplicaciones.

1. http://www.learnar.org/
2. http://www.google.com/mobile/skymap/
3. http://questvisual.com/
4. http://www.wikitude.com/
5. http://www.google.com/mobile/goggles/
6. http://www.tat.se/videos/
7. http://pointandfind.nokia.com/
8. http://www.artoolworks.com/products/stand-alone/artoolkit-nft/
9. http://www.junaio.com/publisher
10. http://i.document.m05.de/?page_id=700
11. http://www.appbrain.com/app/lookator/com.loft.lookator2
12. http://www.yelp.com/ 


También encontré varias tutoriales interesantes para realizar (RA) para los que deseen sumergirse más sobre este tema:

1. http://www.realidadaumentada.com.co/cursos/tutoriales/77-curso-flash
2. http://emiliusvgs.com/2013/09/22/tutorial-realidad-aumentada-processing-windows-8/
3. http://nyatla.jp/nyartoolkit/wp/?page_id=729


El último ítem muestra un tutorial con processing y hay algo interesante que encontré con una de las librerías en la cual se puede descargar y viene con varios ejemplos los cueles se pueden ejecutar, también muestra el código.

MUCHAS GRACIAS... y recuerden la Realidad Amentada no es algo del futuro es algo del presente.


3 de diciembre de 2014

Think & Resolved

Por Diego Fernando Arboleda Alegria, Carlos Andres Gutierrez Rojas y Cyndy Viviana Rodriguez Rodriguez



Comencemos por definir que es un video juego.

Se dice que un vídeo juego es una manera de crear personajes de una manera ficticia, también se dice que es una manera de escapar de la realidad e incluso para divertirse,  pero estos vídeo juegos afectan a los jóvenes. Aquí surgen ciertas incertidumbres como: ¿de que manera los afecta?¿afecta solo a los jóvenes?¿porque es adictivo el vídeo juego?¿en que afecta el vídeo juego a la salud mental?


Muchos videojuegos favorecen el desarrollo de determinadas destrezas que ayudan al desarrollo cognitivo de las personas ya sea adulto o niño. THINK & RESOLVED es una juego interactivo que ayudara a la conservación de las habilidades cognitivas para las personas, ya que ellos necesitan una herramienta para desarrollar tales habilidades a una temprana edad, un juego es una herramienta interactiva que puede aportar significativamente al desarrollo y conservación de dichas habilidades que posee  todo ser humano y para ello se realizo el juego Think & Resolved para ayudar a todas las personas ya sea adulto o niño.

En general todos los seres humanos pueden usar esta herramienta interactiva, pero los usuarios potenciales son los niños porque estos apenas van a desarrollar las habilidades mencionadas anteriormente y es importante un buen desarrollo, los adultos mayores serán otros clientes potenciales ya que conservar las habilidades cognitivas es un alto interés  a edades mayores.

2 de diciembre de 2014

Edusignals

por Carlos Pulgarin y Jose Samboni
Resumen

Software del multimedia interactivo educativo EDUSIGNALS cuyo objetivo principal es promover la cultura y respeto de las señales de tránsito de Colombia; Por esta razón surgió la idea de crear un software multimedia como EDUSIGNALS, desarrollado por WarriorsSoft, el cual tiene como objetivo mostrar la Importancia de las señales de tránsito.


Importancia de las señales de tránsito:

Las señales de tránsito son indispensables para la convivencia en la vía pública. Independientemente de que hay que estudiarlas y rendir el examen de conducción en una escuela certificada, conocerlas es un deber que tiene cada ciudadano.

Este software le va a servir si usted conoce algunas señales de tránsito, las que no conocen y las que tienen una idea vaga del significado de la señal.

Si todos conociéramos el significado y se respetaran las señales viales los índices de accidentalidad como también se disminuirían notablemente y se salvarían miles de vidas al año.

En la actualidad existen varios tipos de señales de tránsito y estas se agrupan en tres tipos:

Preventivas: Tiene por finalidad advertir a los conductores de la existencia de peligros en la vía de circulación, así como la naturaleza y características que pueden asumir (pendientes, vados, etc.). Tienen la forma de un rombo, fondo amarillo y los símbolos en color negro.

Reguladoras: Son utilizadas para indicara los conductores sobre la existencia de restricciones, limitaciones y prohibiciones en el uso de la vía pública. Tienen la forma rectangular con fondo blanco y letras en negro y rojo. El no respeto a estas señales constituye infracción a las reglas de tránsito y se sanciona en concordancia con lo que el reglamento indica.

Informativas:  Tienen la finalidad de orientar y guiar al usuario de la vía, y a lo largo del viaje, sobre puntos de interés que pueden serle útil para su normal desplazamiento y llegada a su destino. Se confeccionan en carteles de forma rectangular, fondo verde y letras blancas.

Los semáforos: Están constituidos por aparatos de señales luminosas de colores rojo, ámbar y verde que, colocados en las intersecciones de calles y avenidas, regulan el tránsito vehicular y peatonal, teniendo en cuenta el color de la luz que se da en ese instante, así:

- Color rojo, significa detenerse (peatones y vehículos).
- Color ámbar (amarillo) indica prevención para reiniciar o detenerse.
- Color verde, indica el avance y pase.





¿Cómo ayuda EDUSIGNALS a entender las señales de tránsito?

A lo largo de nuestro proceso de formación se a podido ver que la entre mas didáctica (Interactiva) sea la forma de dar a conocer y explicar algo, es más fácil que las personas lo entiendan, lo puedan aplicar y duplicar.

EDUSIGNALS nace como una herramienta (Multimedia) alternativa la cual permite que el usuario por medio del juego, entender la importancia de las señales de tránsito.

El software EDUSIGNALS es una herramienta elaborada en Processing utilizando como metáfora una autopista o cruce de una vía, tema el cual es muy familiar para la mayoría de usuarios haciéndolo más atractivo e interesante para los amantes de los vídeo juegos.

Uno de los momentos que el juego de la señal de transito de adelantar, donde el usuario deberá hacer el recorrido correcto teniendo en cuenta que la señal en la vía es una línea doble en la cual no debe adelantar, en el caso de adelantar teniendo marcada la línea doble el juego mostrara  un mensaje donde se le informa al jugador que es una infracción.


Uno de los momentos de un partido de fútbol que se utilizo, es el de un tiro al arco, donde el usuario deberá escoger los uno o todos los elementos necesarios para efectuar el tiro (Parámetros) y este se los pasara al jugador que efectuara la acción (Método), si los elementos escogidos fueron los correctos meterá el balón en el arco (Valor retornado), en caso de serlo, el jugador no podrá efectuar la acción ya que no tiene los elementos necesarios.


¿Es realmente necesario hacer este tipo de aplicaciones?

Como ciudadano tenemos la responsabilidad y el conocimiento de estas señales puede salvar muchas vidas como también evitar múltiples congestiones en ciudades con un gran volumen de automóviles y el uso de herramientas multimedia.

Por esta razón tenemos que encontrar o desarrollar herramientas o recursos que permitas, a los futuros programadores en el proceso formativo universitario, entender estos temas y así crecer el juego ya que tiene un impacto social en los ciudadanos importante y que en la actualidad todos necesitamos.


Conclusión

Cuando adquirimos un nuevo conocimiento estamos en el deber y la responsabilidad de comunicarlo a todos los que podamos, ya que con el, contribuimos al desarrollo de nuevas ideas y conocimientos, elementos cruciales para el desarrollo de la tecnología pero aun mas para el crecimiento del conocimiento grupal.

Todo lo que está escrito en esta entrada lo tomamos de nuestra experiencia laboral y estudiantil.