Brian Chambers (Director de Desarrollo de Frankfurt): ¿Cómo fue ver el trabajo que hiciste, el personaje Miles Eckhart, funcionando en el juego frente a los fans en Gamescom?
Jason Cole (Jefe de Animación de Cinemáticas): Moló mucho, llegó en el último momento y funcionó como debía, lo cual es extra-fantástico.
Brian Chambers: Sé que habéis estado trabajando mucho con las animaciones dentro de Cinemáticas, porque tiene que estar integrado con el resto de departamentos: sonido, entornos, personajes, etc ¿Cómo ha mejorada la situación a la hora de hacer estas cosas?
Jason Cole: Principalmente porque se han añadido herramientas, y en especial porque hemos integrado cosas de Maya en la animación de la cara y del cuerpo. Eso es muy útil. Y esta fue la primera que probamos esto en un entorno de Universo Persistente y sería visto por el público, lo cual mola, pero todavía quedan muchas cosas por integrar... ¡pero la base ya está ahí y podemos verlo!
Brian Chambers: ¿Estuviste allí cuando el actor interpretó esas líneas?
Jason Cole: Si, si.
Brian Chambers: Eso lleva a una pregunta, ¿Conoces el nombre del actor?
Jason Cole: No, lo siento. Soy muy malo con los nombres de los actores.
Brian Chambers: Podemos encontrar su nombre y ponerlo en las notas después.
Jason Cole: Es bueno, tiene buena voz. Y de hecho puso su interpretación en bastantes personajes del juego.
Brian Chambers: ¿Todos los personajes que nos den misiones tendrán diálogo? Es decir, ¿tendrán líneas de diálogo sonoro? Sé que es una pregunta para Diseño, pero...
Jason Cole: No sé lo que están planeando, pero para 3.0 están planeando añadir más personajes con diálogo. Creo que cuanto más sincronizada esté la cadena de montaje de rostros con la de sonido, más cosas se añadirán al Universo Persistente.
Brian Chambers: Si, he visto listas y listas y listas. Sé que es denso.
Jason Cole: Si.
Brian Chambers: La cantidad de animación fácil que existe para dar más indicaciones a los jugadores...da mucha profundidad.
Jason Cole: Si. Cuanto más se simplifique e integren estas tecnologías, más rápido se podrán añadir cosas como estas al juego. Esta fue la primera vez que lo hicimos con este proceso en particular, así que era básicamente una prueba.
Brian Chambers: ¿Es Miles Eckhart el único personaje cinemático que da misiones en 3.0?
Jason Cole: No creo, porque están hablando de hacer un calendario para rodar más cosas para 3.0, así que no tengo idea de cuanto porque estamos en pre-producción, pero sé que él quiere añadir más.
Brian Chambers: Si, sé que quieren poner más. () Habrá más detalles en las próximas semanas.
Jason Cole: Si, fue mi primera oportunidad trabajando en esto, pero cuanto más nos entreguen más rápido podremos devolver cosas a los chicos del Universo Persistente.
Brian Chambers: ¿Estaréis trabajando con los animadores que tienen en Austin para el Universo Persistente, verdad?
Jason Cole: Si, les ayudaremos y entrenaremos con las herramientas para que sepan usarlas.
Brian Chambers: ¿Qué tal con el equipo que hemos reunido aquí en Alemania? Algunos los conocías del pasado, pero otros son nuevos.
Jason Cole: ¡Es bueno! Creo que nuestro equipo de Frankfurt es muy fuerte y el de Reino Unido es muy bueno. Y Austin es muy bueno, también, de hecho ellos tenían mucho más en el UP ya, como PNJs andando por el mercado de Levski con Subsumption y no sé por qué en el último minuto eso no fue puesto en la demo. Se les veía yendo al bar, sentándose, pidiendo una bebida, bebiéndola...
Brian Chambers: Y ese es un buen punto que señalar: lo que os hemos mostrado en Gamescom no es todo lo que tenemos. Es lo que pudimos hacer funcionar de una manera que fuese representativa de dónde debería estar. Tenemos cosas muy buenas que vienen de todos los distintos estudios, se ha hecho un magnífico progreso, pero todavía no están listas. Queremos asegurarnos de que están completamente "ahí" cuando os las presentamos.
Jason Cole: Si.
Brian Chambers: ¿Cuanto tiempo os llevó integrar en el juego la interpretación del actor? ¿Cuanto creeis que mejoraréis el proceso para cuando llegue 3.0?
Jason Cole: Lo grabamos el último día del rodaje, por lo que tuvimos 3 semanas para meter a Eckhart y los Controladores en la demo. Y además de esto estábamos probando el sistema de Optitrack, lo estábamos haciendo todo internamente para ver cómo era el proceso y sincronizamos los rostros manualmente, estilo vieja escuela... así que fue la primera vez que usamos las herramientas y nos encontramos con muchos problemas. Estamos actualizando nuestra lógica en tiempo real para los rostros, por lo que vamos a añadir una "tabla de rostro" (facial board) para poder tener fino control de a dónde mira, apagar o encender la interpretación y todas esas cosas. Pero para Eckhart tuvimos que revertir al viejo modelo porque todas las cabezas de PNJS todavía no han sido completadas y sólo éramos tres animándola.
Brian Chambers: Es difícil decir el tiempo exacto. ¿Si lo tuvieses que hacer ahora?
Jason Cole: Un minuto o medio minuto nos llevaría 2 semanas, si tuviésemos a una persona resolviendo y una persona animando con las herramientas apropiadas. Y eso es siendo muy generoso.
Brian Chambers: Si. Tenéis que comprender que cuando se dan estos tiempos los productores los abultamos un poco para las típicas cosas que vayan surgiendo, sean problemas u otras prioridades.
(ndt: pregunta que no pueden responder porque es de Diseño sobre quests)
¿Eckhart se movía tanto con los ojos interpretando o era un problema técnico?
Jason Cole: No, eso es intepretación. El actor intentaba parecer poco de fiar con tanto mirar por encima del hombro, pero era su intepretación. Ojalá hubiésemos tenido más tiempo para pulirla, porque durante la conversación encendemos y apagamos que él mire en tu dirección. Está genial cuando te llama para que se siente contigo porque las animaciones están mezcladas para que mire en tu dirección con su cabeza, e incluso torso, pero cuando habla hay veces que no mira directamente a tus ojos.
Brian Chambers: ¿Alguna cosa que quieras añadir?
Jason Cole: No. ¡Esto es lo que es! Puedo decir que irá mejorando con el tiempo. (risas)
Brian Chambers: He visto que la tecnología facial y el cabello han ido mejorando a grandes saltos. Si miras lo que mostramos hace 6-8 meses comparando con lo que hemos mostrado esta semana es como la noche y el día.
Jason Cole: Desde mi punto de vista lo que hemos mostrado no tiene nada de pulido. Podemos añadir muchas más cosas al rostro y a la interpretación, mezclas de animación de él sentándose o levantándose mientras habla contigo... pero lleva tiempo.
Brian Chambers: Genial. Bueno, gracias por tomarte el tiempo por responder nuestras preguntas y continuaremos con otro desarrollador.
()
Nuestro siguiente invitado es Francesco Roccucci, nuestro Programador de IAs Jefe, aquí para responder vuestras preguntas sobre la malla de navegación y las IAs en general.
Francesco Roccucci: Hola chicos, un placer.
Brian Chambers: Ya estás cómodo por tener una cámara frente a ti, porque ya hemos hecho un ATV.
Francesco Roccucci: Bueno, no necesariamente muy cómodo (Risas)
Brian Chambers: La Malla de Navegación mola, ¿sabes?, porque creo que a la hora de informar es uno de los detalles más técnicos.
Francesco Roccucci: Me hubiese gustado tener más tiempo para dar todos los detalles técnicos de cómo funciona...
Brian Chambers: Yo quería usar esta oportunidad para preguntar: Con esta malla de navegación que mostraste y este enorme calendario de características que tienen que tener las IAs (Subsumption y todo eso), ¿Cual es el rol de la malla de navegación en todo esto? Yo sé que juega un papel muy importante, por lo que me parecería importante que lo explicases.
Francesco Roccucci: Es una función muy crítica porque es algo básico para la navegación de la IA: un tipo moviéndose de un sitio a otro. Al final del día esto es algo que ha sido bastante bien solucionado para las IAs, pero nuestro problema es que tenemos diferentes partes: tenemos sistemas que se mueven de diferentes maneras y unos en relación a otros. Creo que lo más crítico es que puedan navegar de una parte del universo a otra y eso es lo que creo que es realmente único de nuestras IAs...
Brian Chambers: Estoy de acuerdo.
Francesco Roccucci: ... y esto es en lo que entran las distintas mallas de navegación. ¡Por que no es precisamente trivial que un personaje sepa viajar de una parte del universo a otra!
Brian Chambers: Probablemente he malgastado meses y meses de mi carrera trabajando en cosas como esas en el pasado... y nosotros hemos sido capaces de lograrlo en una cantidad de tiempo bastante breve.
Francesco Roccucci: Si. Estábamos bastante felices con el progreso que habíamos hecho en unas pocas semanas, e intentamos poner más cosas y si hubiésemos tenido más tiempo para la demo de Gamescom... pero da igual, esto es algo que los jugadores verán en las próximas actualizaciones. (sonrisa) Siempre queremos mostrar la mayor cantidad de cosas posibles.
Brian Chambers: No paramos de oír hablar de Subsumption cuando se habla de IAs en Star Citizen o Escuadrón 42. Una de las preguntas es: ¿Puedes darnos una rápida explicación de lo que es Subsumption?
Francesco Roccucci: ¡Vale! Subsumption es una colección de sistemas, que incluya cosas como el comportamiento de los personajes, el sistema de misiones, la definición de cómo etiquetamos las cosas en el universo del juego... Así pues, Subsumption es una multitud de sistemas que conecta el comportamiento de la IA a nivel de código del juego con el código del propio motor del juego.
Brian Chambers: Así que tiene todo: las mallas de navegación, las carreras de las IAs, los comportamientos...
Francesco Roccucci: Comenzamos a partir de los Comportamientos, porque las IAs pueden tener algo que nosotros llamamos "actividades", algo que podemos asociar con un trabajo que esté haciendo él en ese momento. Ejemplo: si eres un operario de limpieza en una nave tienes una tabla de actividades de "tipo de la limpieza". Y estas actividades están formadas por diferentes "sub-actividades", que son las acciones en si como: barrer el suelo, limpiar la cocina, recoger el comedor, recorrer la instalación asegurándose de que no hay cajas por el medio y ese tipo de cosas. Y entonces irá haciendo las distintas subactividades. Y luego está el Sistema de Misiones, que será capaz de decir: el jugador tiene que hacer esta misión y para esta misión necesitas tener este personaje específicamente y estas cosas en particular. Y luego tenemos el Planificador (Scheduler) que te permite decir: ha amanecido, así que toca trabajar, pero otro personaje está yéndose a casa porque trabajó en el turno de noche.
Brian Chambers: Y todo el sistema de prioridades por encima de eso, etcétera. Mola, espero que eso os de algo más de detalle.
Francesco Roccucci: Si (risas) Hay MUCHO detalle en esto, podría hablar durante horas.
Brian Chambers: En el vídeo de las Mallas de Navegación me di cuenta de que las mallas estaban en el exterior de la Constellation. ¿Significa esto que eventualmente los PNJs podrá trepar fuera de una para repararla?
Francesco Roccucci: Si, es por esa razón. Es cosa de los Diseñadores decidir si van a reparar externamente o no, pero en general esto permite que sirva como un ejemplo de malla y así la IA es capaz de moverse a cualquier lugar al que podría moverse el jugador. Algunas naves tiene escotillas que permiten salir al exterior, sea para reparación o para salir por allí y saltar a otro sitio haciendo EVA, por lo que las botas magnéticas deberían estar todavía conectadas a la nave espacial para permitir que te muevas por ella. Así que si, la malla está ahí para dar conocimientos a la IA de cómo moverse por fuera en el futuro.
Brian Chambers: ¿Será capaz la IA de esquivar naves que aterricen en una plataforma de aterrizaje?
Francesco Roccucci: Sería igual que con los jugadores. Para acceder a una plataforma de aterrizaje tienes que solicitar una a la torre de control. Una vez que se te ha asignado una la usarás, y tu nave pasará al hangar y se alejará de los tipos que trabajan allí. Por lo tanto, la IA será capaz de aterrizar en las plataformas que están vacías en este momento, y si por alguna razón todavía no pueden aterrizar lo identificarían.
Brian Chambers: Sabrían lo mismo que los jugadores y se comunicarían igual.
Francesco Roccucci: La clave se encuentra siempre en su comportamiento, porque si el cerebro de la IA tiene razón haría lo mismo que haría un jugador: sigue las mismas normas.
Brian Chambers: ¿Cuantos PNJs planeais tener moviéndose y actuando en el interior de una estación? ¿20? ¿50?
Francesco Roccucci: (sonrisa) Nuestro objetivo es tener cuantas IAs sean posibles..
Brian Chambers: No creo que sea eso, más bien como "cuantas IAs hagan falta para que tenga sentido". Si puedo meter a 200 en una zona muy pequeña, realmente no quiero, ¿no?
Francesco Roccucci: Por supuesto. Pero si estás en una gran plaza y quieres tener cientos de personas paseando por allí... La idea de hecho es usar el sistema de LODs para las IAs también, de manera que cuando puedas interactuar con ellos sean más complejos y "cuesten más" (CPU y Red), pero los que estén más lejos sean más "baratos".
Brian Chambers: Si, por supuesto.
Francesco Roccucci: La realidad es que la IA sale bastante barata porque de la manera que estamos desarrollando Subsumption la estamos basando en plantillas y lo que llamamos "datos en tiempo real" (runtime data). Cada IA es de hecho un subconjunto de memoria que se ejecuta y las subactividades que ejecutan tienen un coste mínimo. Así que en la práctica podemos tener un montón de IAs, pero luego tenemos otras dependencias para usarlas como animaciones, renderización... y es para estas cosas por las que tenemos que optimizar.
Brian Chambers: Si, y no creo que las IAs sean muy intensivas en el mundo. ¿Has hecho pruebas en las que hayas poblado un área hasta el nivel que tú crees que debería tener?
Francesco Roccucci: Intentamos ser inteligentes sobre esto. Para la Demo de Gamescom junto a los jugadores creo que teníamos de límite 34-35 PNJs, basándonos en sus animaciones, personajes...
Brian Chambers: Y eso es antes de hacer toda unas serie de optimizaciones y así sucesivamente.
Francesco Roccucci: Si, son los primeros pasos.
Brian Chambers: Una pregunta interesante: ¿Cómo funcionan las mallas de navegación cuando los PNJs se quieren mover en gravedad 0?
Francesco Roccucci: En esa situación no usamos ya Mallas de Navegación. Estas son una representación sobre una superficie, como cuando quieres andar por zonas con gravedad o con botas magnéticas. En gravedad 0 creo que nuestro plan va por el camino de encontrar el camino ópticamente. Digamos que la IA está en un planeta y quiere ir a otro sitio en el espacio. Muy bien, el primer objeto es navegar por el planeta hasta subir a una nave espacial, volar por el espacio y aterrizar en este otro planeta. Se comportará como si estuviese en gravedad cero y si no utilizaría las mallas. Si apagas la gravedad artificial de una nave pasaría a moverse por el entorno como si volase con un jetpack en gravedad cero.
Brian Chambers: Creo que lo que preguntan es qué pasa si mi nave está en una orientación rara y me acerco a otra, salgo en EVA y vuelo hacia la otra, ¿cómo funciona eso? ¡Es muy complejo!
Francesco Roccucci: Por supuesto. Ese es nuestro gran desafío para el futuro, porque como dijiste, lo importante es la reorientarización de las diferentes áreas y entender qué es lo que haría un jugador. Por supuesto las naves siempre tienen alguna sección de entrada, por lo que puedes programar que tiene que hacer EVA hacia la sección de entrada. Y luego estará en un entorno diseñado, de la parrilla global a la local. Esto es a lo que tendremos que enfrentarnos en el futuro.
Brian Chambers: Eso mola. ¿Puede una IA interactuar con más de un personaje al mismo tiempo?
Francesco Roccucci: Eso depende de los comportamientos que tenga esa IA. La IA percibe todo lo que sucede a su alrededor, 1-2-3-4 o 5 jugadores. Lo que el comportamiento quiere que haga es lo que controlará su reacción. Así mi conocimiento de vuestra existencia a mi alrededor siempre está ahí y puedo decir "muy bien, ahora estoy hablando con Brian" y le utilizaré a él como objetivo y eso significa que te almaceno en una referencia de visión y si quiero interactuar con otro personaje pasaré a él después. Hay diferentes mecánicas de petición (Query) para interactuar con las IAs como "dame tu catálogo de ropa" o "dame tu arma más peligrosa", pero mientras tanto su percepción sigue registrando los objetivos amistosos y peligrosos que se acercan y puedes decidir qué hacer con esa información.
Brian Chambers: ¿Cómo reaccionarán las IAs a los cambios bruscos en el entorno, como la despresurización?
Francesco Roccucci: La idea ha estado siempre en que... (risas)... ¡lo haga el comportamiento! Lo digo mucho, pero... Si estoy en un entorno normal intentando hacer algo y de repente el entorno se despresuriza, por lo que recibo información de que esto está sucediendo y activo reacciones específicas para ese evento en particular, así que la prioridad cambia para ocuparse de la situación. (Risas) Si estoy limpiando la nave no voy a seguir haciendo eso (risas), me va a entrar el pánico, probablemente (risas).
Brian Chambers: Si, ahí entra en juego el reflejo de lucha o huída o paralizacion. Se va al núcleo de lo que eres: te enfrentas a ellos, te vas o te quedas donde estás, ¿Verdad?
Francesco Roccucci: Y la realidad es que cada personaje podría tener reacciones distintas. No todos los personajes civiles reaccionarían de la misma manera. Si estás en combate no reaccionarás de la misma manera. Si estás en una situación pacífica y de repente muere alguien amistoso cerca de tuyo vas a asustarte; pero si estoy en un escenario de combate con un jugador una muerte es algo razonable y no reaccionaría igual. Es lo mismo para los cambios del entorno, son cosas bastante similares. Se hará en función a lo que es más crítico en el momento y se compara con lo importante que es la tarea que estaba haciendo antes. Si por ejemplo estaba buscando refuerzos y comienza a despresurizarse la nave, probablemente me entre el pánico, pero seguiré corriendo hacia ese botón de alarma o alcanzar una radio o algo similar.
Brian Chambers: Una de las cosas que más me gustan (entre muchas) es echar un vistazo a todas las carreras que van a poder escoger los jugadores y pensar que esas carreras también deben ser ocupadas por las IAs. Y la complejidad que hay entre ambas, por lo que un PNJ con un traje espacial puede tener una carrera muy agresiva mientras que otro sería muy pasivo debido a su ocupación. Uno va a luchar y otro va a correr, aunque a primera vista pueden parecer lo mismo.
Francesco Roccucci: Pueden tener el mismo aspecto, si. Mucho de esto depende de las animaciones, voces,... Lo bueno de este proyecto es que tendrá contenido constante añadido, no sólo animaciones o voces si no contenido en el lado de comportamientos. Cuanto más avance más complejas serán las IAs. Eso es algo que es (sonrisa) muy chachi de nuestro proyecto.
Brian Chambers: (Sonríe) Absolutamente, tío. Sé que tú y tu pequeño equipo en crecimiento estáis muy ocupados, por lo que os agradezco el tiempo para resolver estas dudas.
Francesco Roccucci: Ha sido un placer.
Brian Chambers: La IA es algo por la que recibimos constantes preguntas, es una de las cosas importantes, que hará que el mundo esté vivo.
Francesco Roccucci: Para mi la IA es el juego, en cierto sentido, porque tú juegas el juego y el juega contigo. Es esta agradable relación interactiva.
Brian Chambers: Así que ya sabes, la responsabilidad está sobre tus hombres.
Francesco Roccucci: ¡Genial! (levanta los pulgares sonriendo)
Brian Chambers: Bueno, pasemos a las actualizaciones de la comunidad:
- Terrapin sigue a la venta.
- Pronto saldrá la parte 2 de las Preguntas y Respuestas de la Terrapin.
- Quiero agradecer a todos los que vinieron por Gamescom, ha sido genial sentir que puedes compartir lo que estás haciendo con la gente y su progreso.
Francesco Roccucci: Gracias por apoyarnos. Es genial estar aquí. ¡Y nos veremos en el verso!
Brian Chambers: Claro que si. Nos vemos en el verso.