85
Reglas de presentación de Proyectos de Grado 1 de85 Interacciones concurrentes para un movimiento más natural en humanos virtuales (virtual humans) Felipe Campos Documento de grado Universidad de los Andes Facultad de Ingeniería Departamento de Ingeniería de Sistemas y Computación Bogotá 2017

Interacciones concurrentes para un movimiento más natural

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 1 de85

Interacciones concurrentes para un movimiento más natural en humanos virtuales (virtual

humans)

Felipe Campos

Documento de grado

Universidad de los Andes Facultad de Ingeniería

Departamento de Ingeniería de Sistemas y Computación Bogotá 2017

Page 2: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 2 de85

Para mi familia. Sin ellos, no sé qué sería de mí.

Page 3: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 3 de85

RESUMEN

Últimamente la tecnología con realidad virtual intenta simular en sus personajes la idea de parecerse lo más humanas posible en el sentido de cómo actúan de forma motora, un ejemplo claro de esto es el concepto de “multitasking”, conocido como una complicación en el área de los videojuegos. En ese orden de ideas, se desea realizar es esta tesis un videojuego el cual permita generar un ambiente de empatía entre el personaje y el usuario por medio de los movimientos del personaje simulando acciones de “multitasking”. Como resultado se realiza una propuesta de interacción virtual para el departamento de Ingeniería de sistemas y computación de la universidad de los Andes en donde se interactúa con profesores virtuales para el evento de los 50 años de dicho departamento.

2 INTRODUCCIÓN La motivación para realizar esta actividad, además de la fascinación y el fanatismo que le

tengo a los videojuegos, es el concepto de que puedo colaborar en desarrollar algo que puede ser utilizado en el futuro y más adelante ver el resultado de esta tesis presentada como parte del evento de los 50 años del departamento, lo cual es un gran honor. Igualmente, como parte de mi motivación este proyecto pretende demostrar mis conocimientos aprendidos a lo largo de 5 años de carrera en ingeniería de sistemas y computación, lo cual comprende ser tanto un reto personal como un deber académico.

El tema de humanos virtuales o virtual humans es un área de investigación reciente y tiene

muchas áreas de implementación, desde la económica hasta las que son sin ánimo de lucro. Así entonces junto con el profesor Pablo Figueroa, al analizar su propuesta de temas de tesis sobre virtual humans (humanos virtuales), pudimos notar que las investigaciones sobre este tema a pesar de ser pocos han logrado un avance particular. Esta es un área en desarrollo el cual pretende generar avatares (personajes virtuales) que puedan pensar y actuar como humanos. Sin embargo, cabe mencionar que los movimientos de estos personajes eran “poco convincentes” y no como el resultado que se pretendía lograr, simular un humano. Por ende, la pregunta que pretende solucionar esta tesis es; ¿Cómo lograr que los personajes en un ambiente interactivo de virtual humans actúen de forma más “humana” simulando multitasking?

Una vez definido este problema empezó la discusión de cómo debería ser una solución.

Basados en el estado del arte se define un concepto sobre una posible solución el cual su implementación suple a la tarea definida para el tema de la tesis. Entre estos conceptos de la posible solución se ha de desarrollar en la herramienta de Unity, la cual será el medio final para esta tesis. Se usa un estricto énfasis en la herramienta de mecanim que hace parte el manejo de animaciones y movimiento de personajes en Unity.

Mediante el uso esta y otras herramientas se logran implementar las bases del producto

deseado en donde se realizan las acciones de los personajes. El diseño de este proyecto se basa en el uso de máscaras y capas de animación los cuales modifican el uso de las extremidades de los personajes para el uso específico de acciones que queremos realizar. La secuencia de acciones que queremos generar para simular así el multitasking. Igualmente, se debe implementar una interfaz de interacción con el usuario para generar un ambiente con un humano virtual (el

Page 4: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 4 de85

usuario debe interactuar con el entorno) así, mediante el uso de elementos como el Kinect de Microsoft, pudimos generar dicha interacción. Todo esto implementado bajo un script que define tanto el personaje como las interacciones.

Como resultado se obtuvo la interacción inicial entre un personaje y un jugador en donde

este lo identifica y genera una interacción sencilla con respecto al tema del ambiente (50 años del departamento de ingeniería de sistemas y computación) l. Igualmente se tiene el guion para las interacciones que deben ser definidas por los profesores al igual que sus reacciones cuando el usuario interviene en el ambiente.

Este proyecto no pudo haber sido posible sin la guía constante de mi asesor de tesis,

Pablo Figueroa, el cual nos proporcionaba nuevas ideas y apoyo en momentos de bloqueo. Igualmente debo agradecer a mi compañera Cristina Betancourt ya que mi tesis y su tema de pasantía en la Universidad de los Andes eran afines, lo que permitió realizar este trabajo con un apoyo mutuo. Por último, pero no menos importante debo agradecer a mis padres y a mi abuela, todo su trabajo y esfuerzo durante estos años me permitió llegar hasta este punto. Sin su guía y apoyo no sé qué sería de mí ahora.

Page 5: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 5 de85

ÍNDICE:

1. Resumen 2. Introducción 3. Descripción general 3.1. Objetivos 3.2. Antecedentes (estado del arte) 3.3. Identificando el Problema

4. Diseño y especificaciones 4.1. Definición del problema 4.2. Especificaciones 4.3. Restricciones

5. Desarrollo del diseño 5.1. Recolección de información 5.2. Otras formas de diseño

6. Implementación 6.1. Descripción 6.2. Resultados esperados 7. Validación 7.1. Métodos 7.2. Validación de resultados

8. Conclusión 8.1. Discusión 8.2. Trabajo a futuro 9. Referencias 9.1. Anexos

Page 6: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 6 de85

3 DESCRIPCIÓN GENERAL

3.1 Objetivos

Propósito:

El propósito de este proyecto es lograr una mejora en el área de la interacción de realidad aumentada para tener una aproximación al proyecto de virtual humans. Específicamente en generar acciones motoras (movimientos) convincentes, lo suficiente para simular multitasking para que el usuario sienta una inmersión más convincente en el propósito del uso que se le esté dando al ambiente donde se esté trabajando. Esperamos que con este proyecto se promueva más este tipo de interacciones y se puedan llevar ambientes de humanos virtuales a todos los ambientes.

Este proyecto (virtual humans), tiene un ámbito de acción extensivamente alto, yendo a áreas como lo son la educación o la rehabilitación psicológica de individuos en zonas afectadas por el conflicto armado. Sin embargo, aún está en sus bases por lo que es una gran oportunidad para incurrir en este tema. Aun así, un común denominador de las presentaciones públicas que se han desarrollado de estos elementos es, que no realiza la inmersión o el ambiente propicio para que el usuario deposite la confianza en el programa por lo que la eficiencia de estos disminuye. Como ya fue dicho anteriormente este proyecto pretende ser implementado en el área de entretenimiento y educación ya que provee entretenimiento a los usuarios, como ambiente de interacción, pero también pretende dejar una enseñanza sobre el tema del ambiente.

3.2 Antecedentes

El proyecto de virtual humans se empezó a desarrollar por parte de la Universidad del Sur de California [1] como parte de la investigación del profesor Jonathan Gratch [2]. Este proyecto de virtual humans se compone de muchos elementos. Compuesto por áreas como inteligencia artificial, simulación y animación de personajes, comunicación entre otros. Actualmente la generación de inteligencia artificial ha causado problemas por lo que las implementaciones realizadas este momento han sido usando el método “Mago de Oz”, simulando inteligencia artificial en el momento que se están realizando las pruebas, creando la ilusión del resultado esperado.

En términos de publicaciones [3] el área de virtual humans ha sido un tema que ha dado de qué hablar, creando papers desde el aspecto psicológico de preferencia de interacción en términos del sexo del personaje, como papers de cómo se usa machine learning para la creación de un juego a base de diálogos, reforzando lo que se dijo anteriormente de que el campo de acción es amplio.

Con respecto al proyecto, los papers usados al respecto fueron: Virtual Role-Play with Rapid Avatars[4] y Virtual Humans for Interpersonal Processes and Skills[5] Training ambos documentos se enfocan en el uso de machine learning para que los personajes hagan predicciones sobre respuestas y análisis sobre reacciones humanas, igualmente muestra la creación de personajes de forma rápida en donde se especifica que esta versión de personajes no es la más apetecible pero puede ser usada de forma eficiente. Igualmente se toman papers como Do Avatars that Look Like Their Users Improve Performance in a Simulation [6] o PedVR: Simulating Natural Interactions between a Real User and Virtual Crowds [7], el primero se centra en ver que impacto en la inmersión tiene el que el que el personaje del usuario sea parecido a él, teniendo resultados como que la experiencia fue mejor, pero sin mostrar cambios en el comportamiento del usuario. El segundo se centra más en las acciones que toman los personajes al detectar no solo al usuario sino a otros personajes virtuales, tomando en consideración acciones como lo son encontrar vías de movimiento, mirar al usuario si este se fija en ellos etc.

Page 7: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 7 de85

3.3 Identificación del problema y de su importancia

¿Cuál problema es el objeto del proyecto?

Describir el contexto del proyecto y el porqué de su importancia. Discutir tendencias actuales en ciencia / ingeniería relacionadas con el proyecto. Discutir, si es relevante, temática política relacionada, así como impacto global, económico, ambiental y social que una solución pudiera tener.

El proyecto se relaciona con la interacción de los personajes de un juego con los usuarios. Específicamente en el área del movimiento, estos personajes deben simular multitasking en medio de una interacción. Esta área es importante no solo porque le da mayor credibilidad al personaje en el caso de implementar esta interacción. Sino que daría un aspecto más humano al concepto en caso de implementarlo en un ambiente de virtual humans ya que podría ayudar a que la inmersión del usuario sea más profunda y pueda entonces obtener de una forma más efectiva lo que se planeaba influir en el ambiente inmerso.

Como ha sido mencionado anteriormente, virtual humans es un ámbito muy reciente y su implementación en el campo de la ingeniería es amplio, no solo en el área específica de machine learning sino en animaciones programadas. Ya que permite la integración de movimientos tomados de humanos para ser usados en personajes. Esto se logra mediante el uso de herramientas que hacen seguimiento al movimiento de los humanos como lo es el Perception Neuron, o llegar a programar la identificación de personas o gestos de estas para que el personaje actúe respecto a estos gestos, actualmente la herramienta más popular para esto es el Kinect de Microsoft.

En el caso que el proyecto de Virtual Humans pueda realizarse a nivel global, los impactos se verían en todo ámbito, especialmente en el ámbito social y personal de las personas, esto se podría ver en áreas como la educación, rehabilitación y de entretenimiento. La implementación de este proyecto podría ser económico y revolucionario por lo que proveería una nueva forma de presentar productos o generar publicidad. Esto se debe a que podría implementarse no sólo como un elemento de realidad virtual sino como uno de realidad aumentada.

Page 8: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 8 de85

4 DISEÑO Y ESPECIFICACIONES

4.1 Definición del problema

Escribir una definición clara del problema.

El problema que se plantea basado en las anteriores descripciones es claro; ¿Cómo podemos implementar mecanismos de animación en personajes que permitan simular actividades de multitasking (motoras) en un ambiente de interacción con posibilidad de estar en virtual humans?

4.2 Especificaciones

● La aplicación debe simular de forma visual a los profesores de la universidad de los Andes.

● Los personajes deben ser capaces de responder con un estímulo visual, movimiento ante la presencia de un jugador (usuario).

▪ Entrada: Estímulo visual (vía Kinect).

▪ Salida: Interacción con el usuario.

● El usuario debe ser capaz de interactuar de alguna forma con el entorno y con el personaje.

▪ Entrada: Estímulo Visual, Manos (vía Kinect).

▪ Salida: Interacción del usuario con el ambiente (presionar botones).

● El personaje debe terminar la interacción ante la falta de presencia de un usuario o si este termina la interacción con el personaje (fin del juego).

▪ Entrada: Registro de tiempo/ fin de actividad.

▪ Salida: Personajes terminan ejecución.

● Los personajes deben ser capaces de simular al menos un acto de multitasking durante la ejecución.

Page 9: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 9 de85

4.3 Restricciones

● Las animaciones utilizadas en el ambiente deben ser generadas vía hardware o vía software.

● Los marcadores de movimiento deben ser puestos en el ambiente en caso de que se requiera una secuencia de movimientos fijos

o Los marcadores pueden estar en los límites del ambiente en caso que se quiera que el personaje camine aleatoriamente.

● La solución se realiza solamente para Unity.

● La solución se realizará con tema de los 50 años del departamento de ingeniería de sistemas y computación de la Universidad de los Andes.

● Es necesario el sistema de tracking Kinect V2.0 de Microsoft

● Todos los usuarios grabados deben dar su consentimiento de que su imagen sea usada en el proyecto

5 DESARROLLO DEL DISEÑO

Describir el proceso de diseño.

El diseño de las animaciones es el siguiente:

Forma Hardware: Mediante el uso de la herramienta Perception Neuron de Noitom se hace la grabación de los movimientos de los profesores con las acciones requeridas como lo son caminar, saludar, quedarse quieto. Esta herramienta utiliza sensores específicos en posiciones del cuerpo donde se encuentran las adyacencias de este. Permitiéndoles hacer un seguimiento de la persona, creando así un esqueleto en donde quedarían las animaciones. El proceso de uso del Perception Neuron se puede seguir en el Anexo 1. Forma Software: En el caso que se requieran animaciones muy específicas o las animaciones realizadas por el proceso anterior fallen o causen errores, se debe acudir a la librería de animaciones de Mixamo (aplicación de Adobe). En la librería se debe buscar la animación requerida o una similar para la acción a realizar. El proceso de uso de esta librería igualmente se encuentra en el anexo 1.

Page 10: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 10 de85

Ilustración 1: Uso adecuado del Perception Neuron

Cambio de esqueletos con la herramienta Maya de Adobe Los esqueletos de los personajes creados probablemente no son compatibles con las animaciones generadas por la herramienta Perception Neuron mencionada anteriormente. Para esto se debe modificar o cambiar el esqueleto de los personajes a usar con uno compatible a estas animaciones. Para esto se usa la herramienta de animación Maya perteneciente Adobe. Su proceso de uso se encuentra en el anexo 1

Ilustración 2: Vista de un esqueleto de animación en Maya

Integración personajes con animaciones (Unity): Se usa la herramienta de Unity para la integración final de los personajes en la implementación a realizar, igualmente esta herramienta es la que nos permite realizar el objetivo de esta tesis, la concurrencia de animaciones. Este proceso se explica claramente en el Anexo 1 donde se encontraran desde la integración de personajes al ambiente como el uso de capas y máscaras de animación para generar la concurrencia de animaciones.

Page 11: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 11 de85

Ilustración 3: Vista de un personaje en ejecución con sus animaciones

Corrección y mejora fina de las animaciones con la herramienta Maya de Adobe En caso que las animaciones en su ejecución muestren alguna malformación o defecto en el personaje, lo más probable es que sea un problema con la influencia del esqueleto con el personaje o su skin. Se utilizó la herramienta Maya para el mejoramiento de estas influencias como se explica claramente en el anexo 1.

Ilustración 4: Vista edición de pesos de un personaje en Maya

Uso del código (Script C#) Finalmente, en el script de/los personajes se deben ingresar estos condicionales haciendo una llamada al controlador de cada uno. Se deben crear las funciones de cada acción de movimiento llamando a los condicionales de cada capa.

Page 12: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 12 de85

Ilustración 5: Fracción del código de movimiento de un personaje

El uso detallado del script se puede ver en el anexo 1

5.1 Recolección de Información

Describir las fuentes de información para desarrollar el diseño.

Las fuentes de información para desarrollar el diseño empezaron como sugerencias del asesor Pablo Figueroa como aproximaciones para avanzar en el proyecto.

Al buscar información con respecto al uso de estas herramientas encontramos múltiples fuentes de información. Entre ellas las siguientes (Mencionadas con respecto a la herramienta).

● Perception Neuron:

Toda la información de uso y se obtuvo de la página principal de la herramienta, al igual que sus foros [8]. Igualmente se obtuvo la información de este mediante videos tutoriales obtenidos en la plataforma YouTube su uso y proceso de obtención de movimientos (datos).

● Mixamo La información referente a Mixamo se obtuvo de la página principal de esta herramienta [9] en donde se explica el uso de esta herramienta y el uso de lo que produce esta en otras Aplicaciones. Por otro lado la obtención de datos se obtuvo bajo el método de ensayo y error.

● Maya La información de la herramienta Maya se obtuvo gracias a la experiencia que tenía Cristina Betancourt de proyectos anteriores, igualmente la experiencia de Raúl Felipe Blanco Silva fue utilizada para el uso de esta herramienta. Por otra parte, igual que la herramienta Perception Neuron, fueron usados videos de la plataforma YouTube sobre los temas que dichas experiencias no pudieron cubrir.

Page 13: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 13 de85

● Unity La fuente de información de la herramienta de Unity fue obtenida principalmente por los tutoriales de uso en su plataforma principal [10]. Igualmente fue usada la información proporcionada por los foros activos de esta herramienta en términos de problemas específicos [11]. Finalmente se utilizaron los videos del canal Holistic3D [12] quienes ayudaron específicamente a la creación de inteligencia artificial básica e interacciones con waypoints en el ambiente de Unity.

● Codificación en lenguaje C# La información del lenguaje C# fue obtenida con ayuda de los videos de Holistic3D como fue mencionado en el anterior punto. Igualmente se obtiene la información de la experiencia de Cristina Betancourt de proyectos anteriores. Igualmente se usa el método de ensayo y error con esta herramienta ya que originariamente se tienen bases de programación en Java.

5.2 Alternativas de diseño

Describir alternativas de diseño consideradas y las razones usadas para elegir la alternativa finalmente escogida.

Se encontraron múltiples alternativas de diseño, a continuación se mencionarán las alternativas por elemento y la razón por la que se eligió la alternativa implementada.

● Perception Neuron o Alternativas

▪ Tracking por marcadores: consideró el uso de trackers con marcadores en el cuerpo de los profesores, esta alternativa provee un rastreo más preciso sobre los movimientos de estos.

▪ Marcadores fijos utilizando la herramienta Optitrack: La herramienta de seguimiento de imágenes Optitrack permite la creación de imágenes a partir de marcadores únicos programados en el sistema y ubicados en el cuerpo de los profesores.

o Razón de elección: La herramienta seleccionada fue Perception Neuron por las siguientes razones:

▪ El tracking por marcadores a pesar de ser eficiente tiene un sistema base muy complejo de aprender durante el tiempo de ejecución, a diferencia de la herramienta escogida. Igualmente, no se tenía acceso a esta herramienta ya que fue usada por otro grupo de investigación durante el tiempo de ejecución

▪ El uso de marcadores fijos utilizado por el sistema de Optitrack es poco eficiente ya que se necesita un entorno de 360 grados con cámaras que puedan reconocer los marcadores, por lo que es poco eficiente.

▪ Finalmente la herramienta seleccionada permite la generación de un esqueleto con su animación grabada directamente, en vez de la generación de un esqueleto a partir de los puntos como es el principio de las 2 herramientas anteriores.

● Mixamo: o No encontramos alternativas para esta herramienta, nos pareció que era la

más completa ya que era un banco de animaciones que todas las herramientas podían usar.

Page 14: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 14 de85

● Maya: o Alternativas

▪ Rhino3d: Herramienta de animación utilizada en múltiples empresas como lo son Pixar y DreamWorks

o Porque se utilizó la herramienta:

▪ El software de Rhino3D es pago, además por restricciones de tiempo no se podía realizar la compra de este software.

▪ El software de maya es útil además de que existe una licencia para estudiantes provista de antemano por la Universidad de los Andes.

● Unity o Alternativas

▪ Unreal: Motor para crear juegos de alta calidad ▪ Unigene: motor para crear juegos

o Porque se escoge

▪ A pesar de que las tres opciones son viables ya que son aplicaciones de uso gratuito, las primeras 2 requieren el uso del lenguaje C++ en sus escenarios. Igualmente estas herramientas son más complicadas y no tienen una curva de aprendizaje tan natural como la tiene Unity. Además en la herramienta seleccionada se permite el uso de múltiples lenguajes como lo es C# o JavaScript.

● Codificación en lenguaje C# o Alternativas

▪ JavaScript ▪ C++

o Razón

▪ La mayor cantidad de implementaciones en los juegos se hacen en el lenguaje seleccionado. Además este lenguaje seleccionado tiene una cierta similitud con Java, siendo este un lenguaje con el que tenemos experiencia.

6 IMPLEMENTACIÓN

6.1 Descripción de la implementación

Etapa 1: Planeación

Una vez propuesta el concepto de la implementación final del proyecto por parte del asesor, actividad de los 50 años del departamento, nos reunimos para generar la propuesta final de la implementación.

Escenario:

Se planeó un ambiente de forma tal que pueda recrear la secretaría del departamento de ingeniería de sistemas y computación. Esta decisión fue

Page 15: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 15 de85

aceptada por el asesor ya que es un ambiente familiar para los estudiantes del departamento y reconocible para los demás estudiantes.

Actividad: Luego de llegar a un acuerdo se tiene que establecer la actividad a realizar. En la oficina del asesor se crea una lluvia de ideas. En esta reunión conclusión que la actividad a realizar será una interacción de profesores virtuales con los estudiantes a través de un medio. La intención de esto es que los estudiantes sepan más sobre los profesores y sobre el departamento.

Guion: Igualmente, se planea un guion de los movimientos que debe realizar un profesor en el ambiente y la estructura de lo que podrían decir. Por otra parte se planea la transición de movimientos en cada punto del escenario determinado por marcadores (waypoints).

Elementos a usar:

Dado que la intención de esta tesis es crear personajes virtuales con actividades motoras lo más parecido a los humanos. Se decide grabar los movimientos que fueron determinados en el guion para cada uno de los profesores. Esto es porque cada una de estas actividades, a pesar de que sean las mismas, tienen una ejecución motora única para cada profesor. Para esto se decide usar la herramienta de captura de movimiento “Perception Neuron”.

Una vez determinado el hardware a usar para obtener los movimientos únicos de los profesores, se debe determinar que elemento a usar para que los estudiantes puedan interactuar en el ambiente. Dado que este proyecto debe ser inclusivo de cualquier persona que sea identificada en el ambiente, se deben descartar elementos inmersivos individuales como lo son el HTC Vive y el Oculus Rift para este proyecto. Por lo tanto se decide usar el Kinect V2 de Microsoft el cual vuelve este proyecto uno de realidad aumentada en donde los estudiantes pueden interactuar a través de gestos en el Kinect.

Etapa 2: Ejecución- Ambiente

Creación del escenario: Se toma referencia del escenario a usa, el frente de la secretaria, como fue determinado en la planeación. En la herramienta motor de juegos Unity se crea una aproximación virtual al escenario. Este se puede ver en la ejecución del demo del proyecto y en el anexo 2.

Etapa 2: Ejecución – personajes

Como una primera aproximación, el asesor Pablo Figueroa se ofrece de voluntario para realizar el proceso de captura de movimiento, imágenes y voz que serán usadas en la implementación.

o Los procesos de las capturas se encuentran en el anexo 1.

Una vez realizados estas capturas, se procede a crear el personaje basado en el profesor.

Por último la integración del profesor con las animaciones y finalmente con el ambiente se realizan a través de la herramienta de Unity.

Etapa 3: Ejecución – Inteligencia Artificial & Kinect

Page 16: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 16 de85

Dado que el proyecto debe ser interactivo y los personajes deben realizar una secuencia de acciones, se debe crear una inteligencia artificial básica en donde ellos puedan identificar puntos de movimiento a los cuales seguir durante la ejecución. Para esto se utilizaron los conocimientos de Holistic3D citados anteriormente.

Igualmente se hace la investigación e integración del hardware Kinect de Microsoft ya que este debe permitir al programa ejecutarse una vez se reciba un estímulo visual de un usuario. En últimas este permitiría que el programa pueda funcionar.

Igualmente se hace uso de la librería de Nevzatarman [14] que permite la interacción del ambiente con el Kinect a través de las manos con botones. Esta interacción con los botones es aquella que el usuario tendrá para explorar el ambiente.

Se realizan los scripts siguiendo los criterios de actividades por estado incluyendo elementos del Kinect que los que habilitan la transición de estados en el ambiente, igualmente se automatiza este proceso para que cualquier cantidad de profesores ingresados al ambiente ejecuten este mismo proceso, en vez de realizar un script pro profesor. El diagrama UML del proyecto se encuentra en el anexo 3.

Se genera un demo funcional para proceder a la etapa 4.

Etapa 4: Vender el producto – Convencer:

Esta etapa fue posible por el demo generado al final de la etapa 3 del proyecto. En esta etapa, el asesor presenta nuestra propuesta de proyecto en una reunión de maestros en búsqueda de aceptación para presentar el proyecto. También en esta presentación se buscó llamar el interés de profesores para participar en el proyecto.

Los profesores tienen interés en el proyecto y vieron su potencial, hasta el momento 4 profesores han sido citados y 2 de ellos ya están integrados en el proyecto.

Etapa 5: Fine Tunning – Pulir el proyecto

Desarrollando la implementación pudimos encontrar múltiples bugs y fallas en la ejecución. Esta última etapa se encargó de corregir dichos errores como:

Fallas en las secuencias de animaciones

Movimientos erráticos

Errores visuales entre los pesos de la animación y el personaje

Fallas entre concurrencia de animaciones y sonido

Calibración de movimientos de la cara con los del cuerpo

Funciones de botones

Entre otros.

6.2 Resultados esperados

Implementamos todos los elementos como fue planeado desde la primera reunión, por lo que las herramientas fueron empleadas como se debía ser. El modelo de los personajes en ejecución fue realizado de forma tal que pueda prevenir el exceso de scripts para cada profesor, ya que esto no tiene sentido, dado que la secuencia de acciones es la misma. Lo que difiere en cada animación es el movimiento, por lo tanto fue hecho de tal forma que todos los profesores sigan la misma secuencia. En compensación, se deben crear controladores de animación únicos para cada

Page 17: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 17 de85

profesor (puesto que cada profesor tiene movimientos únicos).Estos deben cumplir la condición que las transiciones deban usar los mismos condicionales (como dice el anexo 1). Finalmente el uso de las mascarás de animación puede variar, dependiendo de la cantidad de extremidades que se quiera que generen concurrencia. Sin embargo en este proyecto quedan generadas las máscaras más importantes:

Mascara de la cara

Mascara del torso

Mascara del brazo dominante

En caso de que se necesiten crear más capas de animación o mascaras se puede acudir al anexo1.

Se espera que este proyecto presente pequeñas fallas en términos de las transiciones, sin embargo la interactividad con el jugador debe estar perfecta. Igualmente se espera que las animaciones se descuadren sus frames por razones que no conocemos, por lo que cuando ocurra este error se deba volver a ajustarlos.

7 VALIDACIÓN

7.1 Métodos

Como se espera que esta es la primera parte de una cadena de proyectos, no hubo tiempo para implementar muchas pruebas. Sin embargo podemos contar con 2 pruebas importantes.

La primera fue la presentación del demo del proyecto por parte del asesor Pablo Figueroa a los profesores. El interés presenciado por algunos de estos demuestra que el nivel de calidad del proyecto para ese punto en particular del proceso fue satisfactorio. Igualmente se presenta en el anexo 2 el video de demostración final en el que se muestran en ejecución las metas cumplidas asociadas con esta tesis.

Lastimosamente no hubo tiempo para realizar más pruebas con el usuario, sin embargo, se espera que si la implementación de esta tesis es continuada, no se realicen pruebas de usuario que involucren estos elementos a este punto.

7.2 Validación de resultados

En el anexo 2 se presenta el video en el cual se pueden ver cumplidas las metas propuestas desde la planeación de este proyecto, igualmente se pueden ver las capas de animación trabajando en simultaneo mostrando que la lógica del producto funciona y genera la simulación e multitasking.

7 CONCLUSIONES

7.1 Discusión

Page 18: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 18 de85

El trabajo termino con una demostración del ambiente establecido en el cual un usuario puede interactuar con profesores virtuales, los cuales emulan los movimientos de sus originarios. Estos movimientos cumplen el concepto de multitasking ya que se usa concurrencias de animaciones en su ejecución.

Problemas:

Aun se presentan errores de movimientos al terminar la interacción entre el personaje y el usuario. Sin embargo este se puede arreglar revisando la secuencia de ejecución y verificando que el personaje aun no esté ligado a la presencia del Kinect en este punto. Sospechamos que esa es la razón que ocurre este error.

No se pudo verificar que la aplicación pueda seguir corriendo luego de una sesión de interacción. Si se puede resolver el problema anterior debería funcionar.

Que falta por hacer:

Hasta el momento solo se puede interactuar con 2 profesores en la aplicación. También hasta el momento hay otros 2 profesores en lista de espera para su grabación y posterior animación. La intención de este proyecto es tener una biblioteca de profesores virtuales, de al menos 8 profesores con los cuales los usuarios puedan interactuar.

La ejecución final de este proyecto es exitosa, mirando mucho más a futuro, se podría escalar este proyecto para realizar un ambiente en donde estos profesores puedan dictar alguna clase. Por el momento, el siguiente paso que se espera de este proyecto es que se logren hacer las grabaciones de los profesores esperada, se realicen las animaciones deseadas y si se puede; realizar un árbol de conversación entre usuarios y profesores de forma más natural para así lograr un proceso educativo más natural.

El trabajo se implementó de forma correcta, cumpliendo los criterios que se establecieron desde un principio en las reuniones con el asesor y las metas planteadas. Esto se puede ver en el anexo 4 el cual es el registro de las horas de trabajo realizadas (hasta la última semana de clases según el calendario de la universidad) en el proyecto siguiendo la metodología SCRUM. Esta metodología consiste en Definición de iteraciones, una selección de requisitos por iteración, un trabajo colaborativo en el equipo y finalmente una retroalimentación sobre dichos objetivos establecidos. Se puede ver que este sistema funciona por las reuniones semanales del asesor con el equipo de trabajo. Al final de estas reuniones se establece la retroalimentación sobre el tema y sugerencias para la próxima iteración.

El desempeño empleado en el trabajo fue aceptable, ya que se cumplieron las horas estipuladas en cada iteración como se puede ver en el Anexo 4.

7.2 Trabajo futuro

Lista de sugerencias para trabajos futuros. Enfatizar aquellos resultados que merezcan consideración especial (v.gr., casos especiales que deban ser tenidos en cuenta, necesidad de proteger la propiedad intelectual, etc.).

Terminar las grabaciones y animaciones de los profesores faltantes.

Completar la biblioteca de profesores.

Realizar un árbol de conversaciones entre usuario y profesor.

Mejorar los errores de movimiento.

Page 19: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 19 de85

Recuerden que siempre se necesita un permiso, ya sea verbal o escrito, para poder usar la imagen del profesor a grabar en el proyecto.

8 REFERENCIAS

Lista de referencias bibliográficas.

[1] J.Gratch. “Virtual Humans”, en http://ict.usc.edu/groups/virtual-humans/, University of Southern California, 2017.

[2] J.Gratch. “Jonathan Gratch”, en http://people.ict.usc.edu/~gratch/, University of Southern California, 2017.

[3] University of Southern California, “Publications”, en http://ict.usc.edu/publications.phpm University of Southern California, 2017.

[4] Wang N., Shapiro A., Schwartz D., Lewine G., Feng A.WW. (2017) Virtual Role-Play with Rapid Avatars. In: Beskow J., Peters C., Castellano G., O'Sullivan C., Leite I., Kopp S. (eds) Intelligent Virtual Agents. IVA 2017. Lecture Notes in Computer Science, vol 10498. Springer, Cham.

[5] J.Gratch. “Virtual Humans for Interpersonal Processes and Skills”, publicado en: AI Matters, Diciembre 2014.

[6] Gale M., Szablowski E., Gratch J., Feng A., Huang T., Boberg J., Shapiro A., “Do Avatars that Look Like Their Users Improve Performance in a Simulation” en: Intelligent Virtual Agents 2016, 2016.

[7] Narang S., Best A., Randhavane T., Shapiro A., Manocha D.,”PedVR: Simulating Natural Interactions between a Real User and Virtual Crowds” en: http://www.arishapiro.com/VRST_2016.pdf, University of Northern California Chapel Hill, 2016

[8] Noitiom, “Perception Neuron Tutorials”, en: https://neuronmocap.com/tutorials, 2017.

[9] Mixamo, “Main Page”, en: https://www.mixamo.com/#/, 2017.

[10] Unity, “Tutoriales”, en: https://unity3d.com/es/learn/tutorials, 2017.

[11] Unity,”Unity Forums”, en: https://forum.unity.com/, 2017.

[12] Holistic 3d “Youtube Tutorials and Source Code”, en: http://holistic3d.com/tutorials, 2016.

APÉNDICES

Todos los apéndices son anexados en la entrega de este documento.

Anexo 1: Betancourt C., Campos F., “Manual de usuario de avatarares”, Universidad de los Andes, 2017.

Page 20: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 20 de85

Manual Usuario de avatares

Por:

Cristina Betancourt

Felipe Campos

Proyecto: Virtual Humans

Universidad de los Andes

2017

Page 21: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 21 de85

Índice General

1. Generación de avatares

1.1. Generación de avatares con Crazy Talk y Character

Creator

1.1.1. Generación de la cabeza del personaje con Crazy

Talk

1.1.2. Generación de cuerpo del personaje con Character

Creator

1.2. Modificar Rig

1.2.1. Ajustar esqueleto a nuevo avatar

1.2.2. Modificar pesos del nuevo esqueleto

2. Animación de cara con Faceware

2.1. Fijación de parámetros con Faceware Analyzer

2.2. Set Up de controladores en Faceware Retargeter

2.3. Recalibración de frames con Faceware Retargeter

2.4. Exportación de animaciones a Unity

3. Generación de animaciones con Perception Neuron

4. Descarga de animaciones de la librería de Mixamo

5. Unity

5.1. Integración de animaciones con avatares

5.2. Creación de capas, máscaras y condicionales

5.2.1. Capas

5.2.2. Máscaras

5.2.3. Condicionales

5.3. Integración de un avatar con animaciones al entorno

Page 22: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 22 de85

1. Generación de avatares

1.1. Generación de avatares con Crazy Talk y Character Creator

1.1.1. Generación de la cabeza del personaje con Crazy Talk

1) Obtener una foto de frente y otra de perfil de la persona que se

requiera crear el avatar.

2) Abrir el programa Crazy Talk.

3) Seleccionar en el menú Create -> Create new actor.

4) Seleccionar la opción de tipo de actor 3D.

5) Buscar las fotos de frente y perfil de la persona y hacer click en

next.

6) Ajustar todos los puntos de ojos, nariz, boca y cabeza y hacer

click en next

Page 23: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 23 de85

. 7) Realizar nuevamente el paso anterior con la imagen de perfil.

8) Seleccionar el tipo de cabeza que más se ajuste a la imagen

original y hacer click en next.

9) Ajustar todos los puntos de todas las partes de la cara que se

indican en los modos Front Fitting y Side Fitting.

Page 24: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 24 de85

10) En el modo Texture Blending, ajustar el color de la piel.

Page 25: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 25 de85

11) En el modo Detailed Morph, ir por todas las opciones ajustándolas

como convenga.

12) Hacer click en Apply.

Page 26: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 26 de85

13) Realizar el paso 1 y 2 de “Generación de cuerpo del personaje con

Character Creator” y continuar al paso 14.

14) Seleccionar File -> Export -> Send Head to Character Creator.

1.1.2. Generación de cuerpo del personaje con Character Creator

1) Abrir el programa Character Creator.

2) Seleccionar un cuerpo del género que se desee el personaje.

Page 27: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 27 de85

3) Una vez realizado el paso 7 de “Generación de la cabeza del

personaje con Crazy Talk” aparecerá un cuadro en el que se debe

seleccionar la opción de Import Textures “Head and Body”.

4) Navegar por todas las opciones para ajustar las partes del cuerpo

como se requiera y agregar el cabello y la ropa.

Page 28: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 28 de85

5) Una vez que el personaje esté completo, seleccionar File -> Export

FBX -> Clothed Character.

6) Asegurarse de marcar las opciones como se muestra en la

siguiente imagen y hacer click en Export.

Page 29: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 29 de85

1.2. Modificar Rig

1.2.1. Ajustar esqueleto a nuevo avatar

1) Abrir el programa Autodesk Maya 2016.

2) Seleccionar en el menú File -> Import

Page 30: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 30 de85

3) Seleccionar el modelo rig.fbx ubicado en la carpeta del proyecto

\Assets\Models 1\Profesores.

4) Ir nuevamente a File -> Import y seleccionar el modelo FBX del

avatar creado anteriormente.

5) Llevar la barra de animaciones del frame 0 al frame 2000

6) Asegurarse de estar en el frame 0, y si no, ubicarse alli.

Page 31: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 31 de85

7) Ubicarse en la vista de Perspectiva y Jerarquía

8) Desplegar completamente el rig del personaje

Page 32: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 32 de85

9) Seleccionar todo el skin del personaje junto con su rig.

10) Seleccionar toda la barra de animaciones con el botón “Shift”

presionado y con el botón derecho del mouse seleccionar Delete.

Page 33: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 33 de85

11) Ubicarse en el modo Rigging del menú.

12) Todavía con el skin y el rig seleccionado, ir a Skin -> Unbind Skin y

seleccionar el cuadro de la derecha.

Page 34: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 34 de85

13) Seleccionar la opción Delete History y hacer click en apply.

14) Seleccionar todo el skin del avatar y presionar la tecla “H” para

esconder los mesh y dejar solo los rigs.

15) En el rig del avatar buscar el componente

“CC_Base_NeckTwist02” y seleccionar Skeleton -> Disconect

Joint.

Page 35: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 35 de85

16) Seleccionar la herramienta de traslación.

17) Luego se deben ajustar todas las posiciones del esqueleto de

rig.fbx al del avatar. Para ello, se selecciona uno a uno los

componentes de rig.fbx y con la tecla “V” presionada se arrastra

hasta la articulación correspondiente en el esqueleto del

personaje.

Page 36: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 36 de85

18) Seleccionar primero el componente “CC_Base_NeckTwist02”

antes mencionado y luego “Neck” del rig del avatar e ir a Skeleton

-> Conect Joint.

Page 37: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 37 de85

19) Eliminar el componente “Neck” del avatar seleccionándolo y

presionando la tecla “Delete”.

20) Eliminar el rig completo del avatar seleccionándolo y presionando

la tecla “Delete”.

21) Ir al modo Modeling.

22) Seleccionar todos los componentes del skin del avatar y presionar

la tecla “H” para volver a aparecer el cuerpo.

Page 38: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 38 de85

23) Seleccionar el mesh “CC_BaseTeeth” e ir a Mesh -> Separate.

24) Ir al modo Rigging.

Page 39: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 39 de85

25) Seleccionar los nuevos mesh de los dientes a partir de

“polySurface018” hasta “polysurface34”. También seleccionar el

mesh de la lengua y los componentes de la boca del rig importado

como se muestran en las imágenes e ir a las opciones de Skin ->

Bind Skin.

Page 40: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 40 de85

26) Seleccionar la opción Selected Joints y luego Apply.

27) Seleccionar el mesh de los ojos y los componentes de los ojos del

rig como se muestran en las imágenes e ir a las opciones de Skin -

> Bind Skin.

Page 41: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 41 de85

28) Seleccionar la opción Selected Joints y luego Apply.

Page 42: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 42 de85

29) Seleccionar el mesh del cuerpo, cabello, camisa, pantalón y

zapatos y los componentes del resto del cuerpo a excepción de los

seleccionados anteriormente como se muestran en las imágenes e

ir a las opciones de Skin -> Bind Skin.

Page 43: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 43 de85

Page 44: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 44 de85

30) Seleccionar la opción Selected Joints y luego Apply.

31) Por último exportar como FBX el avatar con el nuevo rig yendo a

File ->Export All.

Page 45: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 45 de85

1.2.2. Modificar pesos del nuevo esqueleto

1) Cargar el personaje en Maya siguiendo los primeros pasos de la sección

1.2.1 seleccionando el modelo del Avatar a modificar

2) Una vez cargado el avatar seleccionar algún elemento en los componentes

de este al que se le desee modificar los pesos

3) Luego de seleccionar el elemento seleccionar la herramienta de dibujar

pesos en el tab ‘Skin’

Page 46: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 46 de85

4) Seleccionar el hueso al cual se le quiere editar el peso

5) Como se puede ver, el rig cambia a un gradiente de blanco al negro, entre

más blanco sea el polígono que compone el elemento, más peso tendrá el

hueso sobre dicho elemento.

6) Ajustar el elemento de valor a 0 si se quiere eliminar pesos del elemento

con respecto al hueso escogido. Cualquier valor mayor a 0 generará una

dependencia.

7) Utilizar la herramienta sobre el elemento

a) En caso de seleccionar otra parte del cuerpo, repetir a partir del

paso 3 con el elemento deseado

b) En caso de cambiar la relación de peso del mismo elemento pero

con otro hueso, repetir a partir del paso 4 con el hueso deseado.

8) Salvar la escena o el archivo.

9) Exportarlo en formato FBX para su uso posterior.

Page 47: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 47 de85

2. Animación de cara con Faceware

2.1. Fijación de parámetros con Faceware Analyzer

1) Grabar con una cámara de video la representación de la persona real de lo que se

desee animar, enfocándose específicamente en la cara.

2) Abrir el programa Analyzer.

3) Ir a Archivo -> Nuevo

4) Seleccionar el video grabado anteriormente y hacer click en Crear.

Page 48: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 48 de85

5) Hacer click en Auto Track.

Page 49: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 49 de85

6) Revisar por todos los frames que se hayan detectado correctamente todas las

partes de la cara. De no ser así, volver a grabar asegurándose de que en el video,

la cara no presente movimientos bruscos y esté en una buena resolución.

7) Hacer click en Fijar Parámetros y luego en Ok.

Page 50: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 50 de85

8) Al finalizar se habrá creado en la misma carpeta un archivo con el nombre del

video y la extensión .fwr que será requerido en la sección 2.3.

2.2. Set Up de controladores en Faceware Retargeter

1) Abrir Autodesk Maya 2016

2) Importar el modelo fbx o la escena del avatar que se desee animar.

3) Asegurarse que el modelo esté en una pose neutra.

4) Ir a Faceware -> Faceware Retargeter

Page 51: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 51 de85

5) En la nueva ventana ir a Avanzado -> Configuración del personaje.

6) Ir a Archivo -> Nuevo.

7) Escribir el nombre del personaje.

Page 52: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 52 de85

8) Seleccionar el grupo facial Head y hacer click en Controladores del Modelo.

9) Seleccionar en el rig del avatar los componentes correspondientes a la cabeza y el

cuello que son “CC_Base_NeckTwist02” y “CC_Base_Head” y hacer click en

Actualizar.

Page 53: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 53 de85

10) Seleccionar todos los controladores correspondientes a rotación, traslación y

escala y hacer click en Añadir selección.

11) Seleccionar todos los componentes añadidos y hacer click en Definir como valores

por defecto.

Page 54: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 54 de85

12) Seleccionar el grupo facial Mouth y hacer click en Controladores del modelo.

13) Seleccionar los componentes del rig correspondiente a la mandíbula del personaje

que es “CC_Base_JawRoot” y hacer click en Actualizar.

Page 55: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 55 de85

14) Seleccionar todos los componentes referidos a traslación, rotación y escala y hacer

click en Añadir Selección.

15) Escribir en la línea de comando select FacialBlendShapes y presionar Enter.

16) Hacer click en actualizar.

Page 56: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 56 de85

17) Seleccionar todos los componentes referidos al movimiento de la boca como se

muestra en las imágenes y hacer click en Añadir selección.

Page 57: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 57 de85

Page 58: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 58 de85

Page 59: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 59 de85

Page 60: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 60 de85

Page 61: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 61 de85

Page 62: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 62 de85

Page 63: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 63 de85

Page 64: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 64 de85

Page 65: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 65 de85

Page 66: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 66 de85

Page 67: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 67 de85

Page 68: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 68 de85

18) Seleccionar todos los componentes añadidos de la boca y hacer click en Definir

como valores por defecto.

19) Seleccionar el grupo facial Eyes y hacer click en Controladores del modelo.

20) Escribir en la línea de comando select FacialBlendShapes y hacer click en

actualizar.

21) Seleccionar todos los componentes referidos al movimiento de los ojos como se

muestra en las imágenes y hacer click en Añadir selección.

22) Seleccionar todos los componentes añadidos de los ojos y hacer click en Definir

como valores por defecto.

23) Seleccionar el grupo facial Brows y hacer click en Controladores del modelo.

24) Seleccionar los componentes del rig correspondiente a la mandíbula inferior del

personaje que son “” y hacer click en Actualizar.

25) Seleccionar todos los componentes referidos a traslación, rotación y escala y hacer

click en Añadir Selección.

26) Escribir en la línea de comando select FacialBlendShapes y hacer click en

actualizar.

27) Seleccionar todos los componentes referidos al movimiento de las cejas como se

muestra en las imágenes y hacer click en Añadir selección.

28) Seleccionar todos los componentes añadidos de las y hacer click en Definir como

valores por defecto.

29) Ir a Archivo -> Guardar como y guardar el archivo de configuración del personaje

en la dirección que se desee.

Page 69: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 69 de85

2.3. Recalibración de frames con Faceware Retargeter

2.4. Exportación de animaciones a Unity

3. Generación de animaciones con Perception neuron

3.1. Como ponerse el perception neuron

1) El perception neuron se compone de un arnés, guantes, brazos y piernas

como se ve en la siguiente imagen.

Cada uno de las conexiones contiene entradas para sensores que deben ser puestos con mucho cuidado ya que son muy frágiles y pueden dañarse fácilmente.

2) El Hardware debe ser puesto por la persona que va a ser grabada. Luego

de la instalación aquel que va a ser grabado debe verse como la imagen.

Page 70: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 70 de85

3) Luego de tener puesto el Hardawre este debe conectarse al computador a

través de una entrada USB.

4) Abrir el software Axis Neuron

Page 71: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 71 de85

5) Conectar el hardware al software

a) En caso que el software no reconozca el hardware, se debe

verificar la conexión y volver a intentar.

Una vez conectado el hardware, se procede a realizar el proceso de calibración. Seguir las instrucciones del software para calibrar.

a) Se recomienda antes de calibrar, retirarse todo objeto que pueda

conducir electricidad (electrónicos, metales etc.).

3.1.1. Una vez calibrado ya se puede realizar el proceso de grabado.

3.1.2. Para grabar presionar el botón de grabado, al terminar de grabar volverlo a

presionar.

3.1.3. Se puede revisar la animación guardada presionando en el explorador de

la parte inferior izquierda.

Page 72: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 72 de85

3.1.4. Una vez se considera usar una animación se debe exportar a formato FBX

no dejarlas en formato RAW (en este formato no sirven para nada)

3.1.4.1. Click en file → export

3.1.4.2. En el cuadro seleccionar en File Type: Binary FBX

3.1.4.3. Exportar

3.1.5. Desconectar el Hardware del software luego de terminar de grabar las

animaciones.

3.1.6. Dejar el Hardware como se encontró para prevenir enredos futuros.

4. Descarga de animaciones de la librería de Mixamo.

4.1. Se debe tener una cuenta adobe para usar la librería de Mixamo

4.2. Acceder a la página Mixamo.com

4.3. Entrar con la cuenta de Adobe

4.4. Seleccionar el tab de animaciones

Page 73: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 73 de85

4.4.1. Escribir la acción que se busca

4.4.2. Una vez seleccionada la animación se hace clic en Download

4.4.3. En las opciones de descarga, la animación se debe descargar en FBX

(para unity) y sin esqueleto, ya que este se debe acoplar a los avatars de

la implementación.

5. Unity

5.1. Integración animaciones con avatares

5.1.1. Abrir la Herramienta unity

5.1.2. Crear un nuevo proyecto

5.1.3. En la barra de Assets clic derecho e importar assets

5.1.4. Seleccionar las animaciones y personajes que se va usar en la

implementación

5.1.5. Igualmente se vuelve a hacer click derecho en assets y se crea ahora un

controlador de animaciones

5.1.6. En este elemento se pondrán las animaciones y las secuencias que debe

ejecutar el avatar.

5.1.7. Este controlador debe ser parte de los componentes de los personajes

para que pueda animarse.

Page 74: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 74 de85

5.2. Creación de capas, máscaras y condicionales

5.2.1. Capas: Como su nombre lo dice son múltiples páginas dentro de un

controlador de animaciones usualmente se usan con máscaras para

realizar acciones que requieren una extensión del personaje.

5.2.1.1. Hacer clic en el controlador de animaciones

5.2.1.2. Seleccionar la sección de capas

5.2.1.3. Hacer click en el + para agregar una capa

5.2.2. Mascaras: Las máscaras tienen la función de limitar los movimientos de

una animación a sus componentes exactos en las extremidades o parte de

los personajes, es la herramienta ideal para generar concurrencia de

animaciones.

5.2.2.1. En la carpeta de Assets hacer click derecho → create→ avatar

mask

Page 75: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 75 de85

5.2.2.2. Esto creará un elemento avatar mask que nombraras como

quieras.

5.2.2.3. Dentro de este elemento se debe cuadrar las extremidades del

avatar

5.2.2.4. Primero hay que identificar si la máscara es para personajes

genéricos o humanoides

5.2.2.4.1. En caso de ser humanoide se debe determinar qué partes

del cuerpo afectará la animación cuya capa tendrá la

máscara,

Page 76: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 76 de85

5.2.2.4.2. En el caso de tener animaciones genéricas se debe

determinar en la máscara para que personaje es y

seleccionar los elementos a los cuales no va a afectar la

máscara en la capa de animaciones determinada para

esta.

5.2.2.4.3. Agregar la máscara a la capa que vaya a usar solo las

animaciones que permita la máscara.

5.2.2.4.3.1. Seleccionar el controlador de animación que usará

la máscara

5.2.2.4.3.2. Seleccionar la capa que usará la máscara

5.2.2.4.3.3. En la sección de máscaras seleccionar la máscara

creada.

5.2.3. Condicionales

5.2.3.1.1. Luego de agregar las animaciones en el controlador, se

debe crear la secuencia que seguirán estas animaciones.

Page 77: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 77 de85

Algunas de estas se activarán sólo si ciertas condiciones

se cumplen.

5.2.3.1.2. Seleccionar una animación

5.2.3.1.3. Hacer clic derecho sobre esta

5.2.3.1.4. Seleccionar Generar transición

5.2.3.1.5. Seleccionar la animación a la cual se quiere cambiar

5.2.3.1.6. En la barra del controlador seleccionar el tab parámetros

5.2.3.1.7. Hacer click en el símbolo ‘+’ y agregar el tipo de

condicional que se quiere.

5.2.3.1.8. Seleccionar la transición hecha

5.2.3.1.9. En el inspector agregar en la parte de condicional ‘+’ el

condicional creado.

5.2.3.1.10. Agregar al script las funciones incluyendo el condicional

que fue asociado a esa transición.

5.3. Agregar el personaje al ambiente.

5.3.1. Drag & Drop el personaje al escenario

Page 78: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 78 de85

5.3.2. Agregar el controlador de animación al personaje

5.3.3. Agregar el Script de movimiento al personaje.

Anexo 2: Campos F, “Demo” (VIDEO), en: https://www.youtube.com/watch?v=Wg-4ahqwJXw, Universidad de los Andes 2017.

Anexo 3: Campos F, “UML proyecto tesis”, Universidad de los Andes 2017.

Page 79: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 79 de85

Anexo 4: Campos F, “Backlog”, Universidad de los Andes 2017.

Planeación de los Sprints

Ejecución Semanal:

Tarea Estado del arte

Sprint 1

1 Investigación Interacciones: SIMS

2 Cadenas de interacciones

3 Investigar la tecnología a usar

4 NPC programming - investigación

5 DEFINIR EL PROBLEMA!

6 Aprender bases de mixamo

Sprint 2

7 Realizar una secuencia de animación aceptable (interacción humana)

8 Aprender bases de mecanim

9 Realizar interacción con objetos (colisión)

10 Implementar lógica básica de NPC

11 Edición de animaciones de mixamo (desmembrar)

Sprint 3

12 Aprender uso de perception neuron

13 Grabar animaciones especificas a la tarea

14 Integración con unity y elemento de prueba

15 Realizar integración de animaciones específicas de la tarea

16 Implementar lógica de npc para la tarea

Sprint 4

17 Pruebas prototipo 1 / corrección errores

18 Integración con proyecto animación de rostros

19 Realizar pruebas de calidad

20 Pulir escenario con respecto a resultados de calidad

21 Presentación final

Page 80: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 80 de85

Elemento Horas esperadas Horas usadas Semana

Investigar SIMS 2 3

SEMANA 1

Aplicación de emoción en VH 1 1

Estudio de Avatars Fotorrealistas 1 1

Leer Papers 3 1

Investigar VH 1 2

Total Horas 8 8

Investigar sobre NPC 3 3

SEMANA 2

Papers sobre AI 2 1

Papers sobre multitask 2 1

Uso de Fuse en Unity 2 2

Uso de NPC en unity 2 2

Total Horas 11 9

Investigar sobre mixamo 1 1

SEMANA 3

Investigar creación de secuencias de animación 1 1

Animación + programación 3 4

Crear secuencia de animación 3 2

Total Horas 8 8

Estudiar uso de perception neuron 2 2

Semana 4

Integración perception neuron con unity 1 1

pruebas de grabación de animación 1 2

grabación de animación especificas 3 3

unir animaciones a sujeto de pruebas 1 2

Total Horas 8 10

Unir las animaciones de perception neuron a maya 2 2

Semana 6

Unir animaciones de maya a unity 3 3

Total Horas 5 5

Unir animaciones perception neuron a unity 2 2

Semana 7

Resolver problemas de animación en MAYA 4 3

Intento 1 de desligamiento de partes del cuerpo 2 4

Total Horas 8 9

Encontrar la forma de unir avataras de mixamos con perception 2 4

Semana8

Realizar los cambios correspondientes 3 3

pulir movimientos de grabaciones en MAYA 3 2

Total Horas 8 9

Conectar animaciones con personajes 3 3

Semana 9

Implementar personajes en unity (SCRIPT) 3 2

Investigación AI básica 2 3

Total Horas 8 8

Investigación Animaciones concurrentes 3 3

Semana 10

Implementación capas y mascaras 2 1

Aplicación en demo con un personaje 3 3

8 7

Implementación AI básica 3 4

Semana 11

Creación demo 2 2

Page 81: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 81 de85

Resultados gráficos del progreso semanal:

5 6

Cambio implementación

Semana 12

Planeación 2 2

Creación de avatares 3 3

5 5

Grabación animaciones 1 1

Implementación de animaciones 2 2

Semana 13

Creación de controladores 2 2

Creación de mascaras 1 2

6 7

Creación de Script 3 3

Semana 14

Investigación Kinect 3 4

Implementación reconocimiento de cuerpos 8 8

8 15

Integración de Kinnect a los personajes 1 1

Semana 15

Fine tunning Movimientos y AI 4 4

Implementación automatización para otros personajes 3 3

8 8

Investigación de interacción con kinnect 4 3

Semana 16

Integrar movimientos faciales a controladores 2 2

Integrar movimientos faciales a Script 2 1

Fine tunning stages 2-3 (movimientos faciales) 2 2

Presentación video del demo 1 1

11 9

Page 82: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 82 de85

0

2

4

1 2 3 4 5

Ho

ras

Objetivo

Semana 1

Horas esperadas Horas usadas

0

2

4

1 2 3 4 5

Ho

ras

Objetivo

Semana 2

Series1 Series2

0

2

4

1 2 3 4 5

Ho

ras

Objetivo

Semana 4

Series1 Series2

0

5

1 2Ho

ras

Objetivos

Semana 6

Series1 Series2

Page 83: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 83 de85

0

2

4

6

1 2 3 4

Ho

ras

Objetivo

Semana 3

Series1 Series2

0

2

4

6

1 2 3

Ho

ras

Objetivos

Semana 7

Series1 Series2

0

1

2

3

4

5

1 2 3

Ho

ras

Objetivos

Semana 8

Series1 Series2

0

1

2

3

4

1 2 3

Ho

ras

Objetivos

Semana 9

Series1 Series2

Page 84: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 84 de85

0

1

2

3

4

1 2 3

Ho

ras

Objetivo

Semana 10

Series1 Series2

0

2

4

6

1 2

Ho

ras

Objetivo

Semana 11

Series1 Series2

0

2

4

1 2

Ho

ras

Objetivo

Semana 12

Series1 Series2

0

1

2

3

1 2 3 4

Ho

ras

Objetivo

Semana 13

Series1 Series2

Page 85: Interacciones concurrentes para un movimiento más natural

Reglas de presentación de Proyectos de Grado 85 de85

0

5

10

1 2 3

Ho

ras

Objetivo

Semana 14

Series1 Series2

0

2

4

6

1 2 3

Ho

ras

Objetivo

Semana 15

Series1 Series2

0

1

2

3

4

5

1 2 3 4 5

Ho

ras

Objetivos

Semana 16

Series1 Series2