1 00:00:00,430 --> 00:00:10,890 Bienvenido a tu presentación y defensa del proyecto final. Bueno, has comparecido a la hora acordada, así que vamos a proceder a esta presentación. 2 00:00:10,890 --> 00:00:23,109 Aunque es información con la que ya contáis de antemano, simplemente recordarte que tu presentación consta o se prevé que sea de un máximo de 15 minutos. 3 00:00:24,230 --> 00:00:31,329 Ya te indiqué que a los 15 minutos no voy a detener, no voy a intervenir hasta que no llegue a unos 20 minutos, etc. 4 00:00:31,550 --> 00:00:34,590 Pero bueno, se espera que más o menos ocupe ese tiempo. 5 00:00:34,950 --> 00:00:40,670 Y posteriormente habrá una ronda de preguntas, algunas que ya tengo de los compañeros que han visto tu entrega. 6 00:00:40,890 --> 00:00:45,549 y mías que surjan a partir de la defensa también, de la presentación 7 00:00:45,549 --> 00:00:49,649 y que bueno, dependerá un poco pero suele ser de alrededor de 10 minutos 8 00:00:49,649 --> 00:00:52,890 aparte de eso pues 9 00:00:52,890 --> 00:00:56,670 si tienes alguna duda previa pues la resolvemos ahora mismo y si no pues 10 00:00:56,670 --> 00:00:59,369 cuando me digas vemos que hora es y 11 00:00:59,369 --> 00:01:02,049 empiezan a contabilizar esos 15 minutos 12 00:01:02,049 --> 00:01:03,270 Empezamos ya 13 00:01:03,270 --> 00:01:08,609 vale pues te voy a marcar a las 18 y 6 que va a cambiar en breves 14 00:01:08,609 --> 00:01:16,349 cuando quieras puedes empezar bueno me pregunto ante que nada porque no sé quién más va a ver 15 00:01:16,349 --> 00:01:23,349 esta presentación soy en un aula estoy presentando el proyecto y bueno es un multiproyecto que he 16 00:01:23,349 --> 00:01:30,109 resumido en una solo como la extensión del mismo es más o menos grande voy a sentar en la parte 17 00:01:30,109 --> 00:01:38,290 más que me parece más interesante de explicar para esta presentación el proyecto nace 18 00:01:38,609 --> 00:01:42,709 Como una necesidad de integrar controles. 19 00:01:42,829 --> 00:01:46,189 Originalmente era para integrar controles virtuales dentro de aplicaciones. 20 00:01:47,189 --> 00:01:52,489 En este caso fue cuando se propuso la tarea de Dane, del Saxon, que era un granal que se movía y tal. 21 00:01:53,129 --> 00:02:03,549 Le presenté a algunas personas el juego y la mayoría de ellas me pidieron una versión que fuese con controles, ¿vale? 22 00:02:03,549 --> 00:02:06,849 Entonces, yo no la quería hacer con controles porque no era la idea, pero bueno. 23 00:02:06,849 --> 00:02:27,990 Me metí en el tema de integrar los controles y ahí me di cuenta que Unity no viene con unos assets o con una forma de implementación fácil para una persona que no sabe de este mundo para que se pueda integrar, para generar rápidamente una aplicación para WebGL o Android. 24 00:02:27,990 --> 00:02:34,889 que debo aclarar yo yo no sabía y yo he aprendido aquí en el curso y yo me esperaba que este tipo de 25 00:02:34,889 --> 00:02:39,750 controles fuesen nativos como yo vengo del mundo de visuales y qué cosa ha sido donde está casi 26 00:02:39,750 --> 00:02:44,650 todo hecho bueno no casi todo pero la mayoría de las cosas tú colocaste el control y ya tienes una 27 00:02:44,650 --> 00:02:54,449 aplicación funcional con la medida que necesitas y es cierto que perdón me faltó esa parte entonces 28 00:02:54,449 --> 00:03:10,189 Entonces lo que hice fue empezar a investigar porque había que hacer los controles de cero, había que hacer desde la lógica de todo, que por un lado está bien, pero para quien no sabe, pues se le hace cuesta arriba todo este tema. 29 00:03:10,189 --> 00:03:14,009 voy a resumir un poco 30 00:03:14,009 --> 00:03:15,550 porque realmente el proyecto 31 00:03:15,550 --> 00:03:17,810 que si bien empezó con todo lo que 32 00:03:17,810 --> 00:03:20,030 el control visual y el control electrónico 33 00:03:20,030 --> 00:03:21,590 derivó 34 00:03:21,590 --> 00:03:23,750 después en la necesidad de que cuando yo 35 00:03:23,750 --> 00:03:25,849 en los controles virtuales quise 36 00:03:25,849 --> 00:03:27,990 darle más funcionalidad 37 00:03:27,990 --> 00:03:29,830 integrar teclado, integrar mandos 38 00:03:29,830 --> 00:03:31,330 y todo para que funcionase todo junto 39 00:03:31,330 --> 00:03:33,150 y me di cuenta que 40 00:03:33,150 --> 00:03:36,050 estaba metiendo peras con manzanas 41 00:03:36,050 --> 00:03:37,129 o sea una cosa era 42 00:03:37,129 --> 00:03:39,949 todo lo que es la interfaz visual 43 00:03:39,949 --> 00:03:59,969 Era un mando más, era un input más, pero lo que yo quería hacer realmente era un controlador de varias interfaces. De ahí salió la necesidad de generar una clase que reemplazase lo que era el input manager que viene con Unity. 44 00:03:59,969 --> 00:04:12,889 De ahí dejé aparcado todo lo que ya tenía hecho de los controles virtuales y me lancé a generar esta implementación. 45 00:04:12,889 --> 00:04:24,829 No con el objetivo inicial de reemplazar completamente el Input Manager, pero a medida que estuve aprendiendo cosas, me di cuenta que sí era factible y era conveniente en algunos casos hacerlo. 46 00:04:25,029 --> 00:04:31,009 Porque me daba, como yo lo estaba haciendo, yo me proveía de las funcionalidades que me faltaban del Input Manager. 47 00:04:31,350 --> 00:04:39,470 ¿Vale? Entonces, llegando a este punto, empecé a integrar varias cosas. 48 00:04:39,470 --> 00:04:45,670 De hecho, voy a ejecutar la demo que tengo aquí y a medida que la voy ejecutando voy a ir explicando cosas que están todas integradas. 49 00:04:47,990 --> 00:04:51,470 La demo, cuando empieza... 50 00:04:52,170 --> 00:04:54,790 De hecho, perdón, voy a... 51 00:04:54,790 --> 00:05:00,350 No voy a arrancar la demo en el orden que corresponde porque no voy a ir donde me interesa comentar. 52 00:05:00,430 --> 00:05:01,829 Aquí son los contrarreactores. 53 00:05:05,899 --> 00:05:06,379 Cuando... 54 00:05:12,259 --> 00:05:32,500 es el concepto mío de lo que es un mando y lo que yo quería era integrar varios distintos 55 00:05:32,500 --> 00:05:39,759 distintos tipos de entradas que se transformarán en un solo gamepad y no tener que estar yo como 56 00:05:39,759 --> 00:05:46,220 desarrollador y luego el que la persona que esté utilizando herramientas que no esté pensando en 57 00:05:46,220 --> 00:05:53,079 cómo pueden acceder a tal o cual de los de los tipos de los dispositivos para poder implementar 58 00:05:53,079 --> 00:06:02,420 los ojos yo quería hasta ver todo eso en un tiempo en una clase entonces de aquí empezó a surgir toda 59 00:06:02,420 --> 00:06:07,180 la idea bueno ya había surgido ya ya se empezó a implementar de hecho esto tenía otra implementación 60 00:06:07,180 --> 00:06:13,540 que he quitado que en el futuro pretendo añadir por ejemplo añadir controles de giro controles 61 00:06:13,540 --> 00:06:19,240 de voz etcétera etcétera y todo transformarlo siempre en un gamepad que sea estándar 62 00:06:23,680 --> 00:06:31,899 bueno por ahí va todo lo del concepto ahora lo que voy a hacer es ejecutar la demo desde el diálogo 1 63 00:06:31,899 --> 00:06:53,290 de la primera pantalla. La demo consta de 4 módulos. Nuevamente quito el sonido. La demo consta de 4 módulos. El primer módulo, realmente que fue el de los controles virtuales, 64 00:06:55,529 --> 00:07:07,269 derivó de ahí el módulo que va a ser el X-Input, que es el Input Manager, el reemplazo. Y voy a empezar por el último de los módulos que creé, que es el de la presentación. 65 00:07:07,269 --> 00:07:23,769 Y este módulo realmente lo creé porque necesitaba yo mostrar la demo de una manera un poco interactiva, porque no ser un juego no es una cosa evidente lo que estás haciendo, entonces necesitas explicarte las cosas que están sucediendo. 66 00:07:23,769 --> 00:07:31,750 Esto no es una demo para un usuario final, para un jugador, es una demo para un desarrollador, para el que entiende lo que está pasando por detrás. 67 00:07:31,750 --> 00:07:41,290 El primer componente que voy a mostrar aquí va a ser el de esta interfaz que parece un diálogo de un juego RPG, ¿vale? 68 00:07:43,089 --> 00:07:48,290 Básicamente se consta de... Aquí vamos a ver un poco el código para entender qué está haciendo. 69 00:07:48,490 --> 00:07:51,910 Si ves, sale un personaje en la batalla. 70 00:07:54,470 --> 00:07:56,490 Bueno, incluso lo voy a silenciar, ¿vale? 71 00:07:57,050 --> 00:07:57,750 Bueno, lo voy a bajar. 72 00:08:05,060 --> 00:08:05,579 Vale, este. 73 00:08:05,579 --> 00:08:08,019 vale, en principio 74 00:08:08,019 --> 00:08:09,839 como necesito también he explicado una parte que es 75 00:08:09,839 --> 00:08:11,980 de la demo, que son los sólidos 76 00:08:11,980 --> 00:08:13,220 por eso lo voy a dejar, después lo voy a quitar 77 00:08:13,220 --> 00:08:15,720 entonces, esta demo 78 00:08:15,720 --> 00:08:17,879 lo que tiene es 79 00:08:17,879 --> 00:08:20,139 hablando de una forma muy 80 00:08:20,139 --> 00:08:22,079 resumida, he creado una 81 00:08:22,079 --> 00:08:24,139 lista, es una lista 82 00:08:24,139 --> 00:08:26,120 con frases, que son las que van apareciendo aquí 83 00:08:26,120 --> 00:08:28,079 que como se pueden ver también se pueden 84 00:08:28,079 --> 00:08:29,579 formatear, etcétera 85 00:08:29,579 --> 00:08:32,220 encienden HTML 86 00:08:32,220 --> 00:08:34,200 para presentarlo, porque es un componente 87 00:08:34,200 --> 00:08:35,899 text 88 00:08:35,899 --> 00:08:37,980 ahora mismo se me ha ido el nombre 89 00:08:37,980 --> 00:08:40,559 pero el componente este que se utiliza 90 00:08:40,559 --> 00:08:41,039 en Unity 91 00:08:41,039 --> 00:08:44,539 y lo que hace 92 00:08:44,539 --> 00:08:46,500 básicamente es esto, escena 1 93 00:08:46,500 --> 00:08:49,100 para generar los diálogos 94 00:08:49,100 --> 00:08:50,159 el componente 95 00:08:50,159 --> 00:08:52,480 es muy simple, voy a generarlo de esta manera 96 00:08:52,480 --> 00:08:54,100 ¿por qué quiero mostrar esto? 97 00:08:54,279 --> 00:08:56,740 porque aparte de los textos 98 00:08:56,740 --> 00:08:58,460 cada línea 99 00:08:58,460 --> 00:09:00,639 cada vez que hago un ente 100 00:09:00,639 --> 00:09:03,019 un siguiente va mostrando una de estas líneas 101 00:09:03,019 --> 00:09:05,740 Además de esto, tiene la facilidad 102 00:09:05,740 --> 00:09:06,799 Que se lo he añadido 103 00:09:06,799 --> 00:09:09,340 Después de estar dando una vuelta con esto 104 00:09:09,340 --> 00:09:11,799 De que yo puedo añadir 105 00:09:11,799 --> 00:09:12,899 Estados de avatar 106 00:09:12,899 --> 00:09:14,960 Los avatares son estos que aparecen aquí 107 00:09:14,960 --> 00:09:17,899 Estos avatares dentro del componente 108 00:09:17,899 --> 00:09:19,080 Se añaden 109 00:09:19,080 --> 00:09:21,460 Aquí dentro de una lista de avatares 110 00:09:21,460 --> 00:09:22,220 Que son imágenes 111 00:09:22,220 --> 00:09:23,840 Entonces 112 00:09:23,840 --> 00:09:25,940 Los avatares 113 00:09:25,940 --> 00:09:29,500 Puedes indicar que avatar quieres que aparezca 114 00:09:29,500 --> 00:09:31,080 De esta manera, con un índice 115 00:09:31,080 --> 00:09:32,740 O también se lo puedes indicar con 116 00:09:32,740 --> 00:09:39,080 un texto. El texto lo que va a hacer, por ejemplo, este, que está diciéndole, quiero que esta línea 117 00:09:39,080 --> 00:09:47,200 me aparezca con una avatar de Smile, de Swambrisa. ¿Cómo él decide cuál es Smile? Simplemente porque 118 00:09:47,200 --> 00:09:51,919 va a buscar dentro de la lista de avatares, el que ponga la palabra Smile va a sacar una sublista 119 00:09:51,919 --> 00:09:56,600 y de esas va a sacar una al azar y esa es la que va a mostrar. Entonces, con eso te permite no estar 120 00:09:56,600 --> 00:10:02,399 repitiendo, sino que saca un poco, de alguna manera, un poco al azar los avatares que quieres. 121 00:10:02,740 --> 00:10:20,759 También tiene, estoy explicando muy rápido lo que es esto porque no es lo importante, ¿vale? No es lo importante del proyecto. También tiene aquí un avatar máximos. Este índice indica hasta qué avatar se va a tomar como un avatar por defecto. 122 00:10:20,759 --> 00:10:22,139 Este está indicando que es el 2. 123 00:10:22,259 --> 00:10:25,120 Entonces, el 0, el 1 y el 2, cuando yo le indique un avatar 124 00:10:25,120 --> 00:10:27,320 o indique uno que sea inválido, 125 00:10:28,000 --> 00:10:30,539 él va a tomar uno de estos tres por defecto. 126 00:10:30,620 --> 00:10:31,740 Entonces, para que no se caiga el programa, 127 00:10:31,840 --> 00:10:33,460 para que siga avanzando, vamos a eso. 128 00:10:34,059 --> 00:10:34,299 ¿Vale? 129 00:10:35,379 --> 00:10:36,539 Básicamente era eso. 130 00:10:36,700 --> 00:10:38,980 Y la otra particularidad que tiene, 131 00:10:39,059 --> 00:10:40,860 bueno, tiene más funciones, pero la otra es esto, 132 00:10:41,179 --> 00:10:44,220 que le puedo dar una llave, una key a cada uno de los diálogos. 133 00:10:44,220 --> 00:10:45,100 ¿Para qué uso esto? 134 00:10:45,899 --> 00:10:47,440 Cuando está en ejecución el código, 135 00:10:47,440 --> 00:10:56,820 por ejemplo este que se llama dentro del de por ejemplo estoy preguntando constantemente por el 136 00:10:56,820 --> 00:11:03,779 diálogo en que en qué línea y con la que sacó es para esto lo puedo sacar por un número lo puedo 137 00:11:03,779 --> 00:11:10,639 sacar por un texto y en función de la que estoy presentó a una cosa es un evento básicamente vale 138 00:11:10,639 --> 00:11:18,179 entonces tengo dos tipos de eventos lo que estar que cuando entra en el texto en el diálogo y el 139 00:11:18,179 --> 00:11:25,120 page change que cuando cambia ya sea para adelante para atrás porque además este componente tiene 140 00:11:26,340 --> 00:11:39,639 ahora no lo hace porque no lo tengo interactivo que vaya utilizando el botón supuestamente me 141 00:11:39,639 --> 00:11:48,529 aparece un botón previo yo podría volver atrás voy a seguir con la demo porque esto básicamente 142 00:11:48,529 --> 00:11:56,970 explicado lo que hace este componente el sonido bueno cierto tiene una característica más 143 00:11:56,970 --> 00:12:00,350 un poco lo que está aumentando 144 00:12:03,029 --> 00:12:09,529 los avatares que son estos que están cargados que si lo colocas también en el índice si aquí 145 00:12:09,529 --> 00:12:15,990 yo por ejemplo en los avatares como el índice negativo simplemente así en vez del 5 que va 146 00:12:15,990 --> 00:12:20,330 ser el índice 5 de los que están aquí si es un menos 5 lo único que va a ser es la 147 00:12:20,330 --> 00:12:26,809 según frío es para ir variando un poco y por último tiene dos componentes más este 148 00:12:28,149 --> 00:12:35,269 que es el sonido voy avanzando que los sonidos aquí está jugando con los pitch que son estos 149 00:12:35,269 --> 00:12:40,529 de aquí el sonido es uno solo aunque podría tener una lista de sonido vale pero yo he jugado 150 00:12:40,529 --> 00:12:45,429 solamente con uno y siempre estoy cambiando el pitch para arriba y para abajo y aquí tengo un 151 00:12:45,429 --> 00:12:49,269 mi límite cuanto más arriba y cuanto más abajo puedo variar entonces con eso voy generando 152 00:12:49,269 --> 00:12:55,750 distintas voces si lo coloco más abajo en una voz más grave será así y lo otro es que voy a continuar 153 00:13:02,049 --> 00:13:06,889 y bueno no voy a volver atrás pero también tiene una lista de música que se ejecuta 154 00:13:06,889 --> 00:13:11,450 automáticamente y un fade como se ha podido ver cuando entra y cuando sale en la escena 155 00:13:11,450 --> 00:13:16,990 tiene un fake que le indicó el color así es lo que va seguimos con los controles virtuales que 156 00:13:16,990 --> 00:13:22,850 es la segunda demo que tiene este problema voy a ir avanzando los controles virtuales como he 157 00:13:22,850 --> 00:13:29,490 dicho se componen el x gamepad que yo he creado es este esto es lo que internamente estoy 158 00:13:29,490 --> 00:13:35,090 controlando que yo estoy representando como analista para ver los valores entonces la como 159 00:13:35,090 --> 00:13:41,210 lo reemplazo yo con respecto al input manager. El input manager tienes un get down, get down, 160 00:13:41,990 --> 00:13:46,049 bueno, tienes un serie de métodos que aquí tienes sus equivalentes, pero tienen más 161 00:13:46,049 --> 00:13:51,950 datos. Por ejemplo, el digital. Aquí, ahora voy a explicar por qué tiene un digital o 162 00:13:51,950 --> 00:13:56,570 un análogo y un vector, ¿vale? Pero el get down, por ejemplo, aquí se puede ver por 163 00:13:56,570 --> 00:14:03,169 una propiedad que se llama isPreset, pero también en código. Estoy saltando un poco 164 00:14:03,169 --> 00:14:04,889 lo que quería comentar pero 165 00:14:04,889 --> 00:14:11,620 este es mi clase 166 00:14:11,620 --> 00:14:13,240 ¿vale? esta es una variable que está llamando mi clase 167 00:14:13,240 --> 00:14:15,240 y este 168 00:14:15,240 --> 00:14:17,120 es un método que yo he copiado 169 00:14:17,120 --> 00:14:19,600 el mismo nombre que lo que tiene el input manager 170 00:14:19,600 --> 00:14:21,659 ¿vale? para que sea fácil de implementar 171 00:14:21,659 --> 00:14:23,279 a quien lo quiera implementar en su 172 00:14:23,279 --> 00:14:25,240 código, para que no sea un cambio muy grande 173 00:14:25,240 --> 00:14:27,320 lo único que voy cambiando es que yo 174 00:14:27,320 --> 00:14:28,740 tengo una serie de botones 175 00:14:28,740 --> 00:14:31,299 y ejes que están con 176 00:14:31,299 --> 00:14:33,139 un nombre definido, que son los que están dentro de mi 177 00:14:33,139 --> 00:14:35,179 x gamepad 178 00:14:35,179 --> 00:14:37,220 ¿vale? entonces siempre vamos 179 00:14:37,220 --> 00:14:39,200 a llamar de la misma manera el botón Start, el botón 180 00:14:39,200 --> 00:14:40,480 Up, el botón Home, 181 00:14:41,299 --> 00:14:42,919 el Stick, que son para los 182 00:14:42,919 --> 00:14:44,059 Stick analógicos, etc. 183 00:14:45,779 --> 00:14:47,440 Estos son los componentes 184 00:14:47,440 --> 00:14:49,019 que están dentro y 185 00:14:49,019 --> 00:14:51,080 lo bueno es que no importa si tú lo manejas 186 00:14:51,080 --> 00:14:52,960 desde aquí o puedes manejar desde un 187 00:14:52,960 --> 00:14:55,200 ... 188 00:14:55,200 --> 00:14:56,159 No sé si está encendido. 189 00:14:58,509 --> 00:14:59,470 No sé si es todo. 190 00:15:01,210 --> 00:15:02,809 No, y acá justo no funciona. 191 00:15:02,809 --> 00:15:08,740 Bueno, lo estoy volviendo 192 00:15:08,740 --> 00:15:11,259 a encender, a ver si... 193 00:15:11,259 --> 00:15:11,860 al mando. 194 00:15:11,860 --> 00:15:15,860 Lo que quería decir es que no importa desde dónde lo marques. 195 00:15:15,860 --> 00:15:20,169 Ah, no, perdón, perdón, perdón, me estoy mirando porque estoy 196 00:15:20,169 --> 00:15:21,169 mostrando los controles virtuales, 197 00:15:21,169 --> 00:15:23,169 no estoy mostrando todavía los demás. 198 00:15:23,169 --> 00:15:25,169 Estos son todos controles virtuales, ¿vale? 199 00:15:25,169 --> 00:15:30,169 Entonces, aquí se puede ver cómo recubre los valores. 200 00:15:30,169 --> 00:15:32,169 Hay algunas características especiales, 201 00:15:32,169 --> 00:15:35,169 como, por ejemplo, lo que es la emulación de controles 202 00:15:35,169 --> 00:15:38,169 analógicos, que si yo muevo, arrastro, 203 00:15:38,169 --> 00:15:40,169 aquí se puede ver que en el analógico va cambiando el 204 00:15:40,169 --> 00:15:41,169 valor, ¿vale? 205 00:15:41,169 --> 00:15:44,669 Yo puedo controlar qué tan largo es el arrastre que tiene, todo eso. 206 00:15:45,070 --> 00:15:47,570 Puedo controlar que se arrastre solamente en vertical o en horizontal. 207 00:15:48,389 --> 00:15:57,389 Una serie de propiedades que le he añadido a los controles para que emulen lo mejor posible lo que es un mando real dentro de lo que es la pantalla. 208 00:15:58,769 --> 00:16:02,350 Aquí estoy explicando lo de los controles horizontales, verticales. 209 00:16:03,009 --> 00:16:05,590 Voy a saltarme un poco porque esto más o menos se entiende. 210 00:16:06,350 --> 00:16:12,809 La implementación de los sticks son sticks dinámicos que van apareciendo en pantalla en función de donde presionas. 211 00:16:13,629 --> 00:16:16,730 Que, por cierto, aquí yo estoy ejecutando en PC. 212 00:16:17,769 --> 00:16:20,149 En estricto rigor, en PC no deberían aparecerme los controles. 213 00:16:20,230 --> 00:16:22,149 Yo los estoy forzando porque en PC no tienes... 214 00:16:22,149 --> 00:16:25,730 Si estoy con un ratón, estoy con un ratón en el control SS. 215 00:16:26,269 --> 00:16:27,870 Yo los estoy forzando y por eso aparecen, ¿vale? 216 00:16:28,789 --> 00:16:35,490 Entonces, como digo, tienes dos tipos de controles y además tienes el botón L3 y R3 217 00:16:35,490 --> 00:16:37,429 que no lo había mencionado, que ahora lo voy a mencionar 218 00:16:37,429 --> 00:16:38,190 en la demo 219 00:16:38,190 --> 00:16:40,929 que lo haces con doble clic 220 00:16:40,929 --> 00:16:43,669 bueno, ya le he pasado, voy a seguir avanzando 221 00:16:43,669 --> 00:16:46,509 los efectos, vale 222 00:16:46,509 --> 00:16:49,210 los controles 223 00:16:49,210 --> 00:16:51,210 tienen unos efectos básicos para poder 224 00:16:51,210 --> 00:16:53,190 utilizar, que lo, bueno, ahora mismo 225 00:16:53,190 --> 00:16:55,309 la demo te muestra que no 226 00:16:55,309 --> 00:16:57,389 tienes, ninguno habría habilitado 227 00:16:57,389 --> 00:16:58,409 el web, he echado 228 00:16:58,409 --> 00:17:01,309 le agregué una pequeña sombra 229 00:17:01,309 --> 00:17:03,389 todo es controlable y todo desde el 230 00:17:03,389 --> 00:17:05,309 desde el 231 00:17:05,309 --> 00:17:09,450 desde el inspector 232 00:17:09,450 --> 00:17:11,230 ¿vale? que aquí voy a mostrar una cosa 233 00:17:11,230 --> 00:17:13,349 que antes, que me parece interesante mostrarla 234 00:17:13,349 --> 00:17:15,130 bueno, tiene aquí los efectos de 235 00:17:15,130 --> 00:17:17,210 presionado, por ejemplo este que rebote 236 00:17:17,210 --> 00:17:18,789 que parezca una burbuja, ese es el track 237 00:17:18,789 --> 00:17:21,089 por cierto, aquí voy a 238 00:17:21,089 --> 00:17:23,190 detener un momento la demo para mostrar algo 239 00:17:23,190 --> 00:17:24,549 estoy en la 3 240 00:17:24,549 --> 00:17:30,380 bueno, en realidad 241 00:17:30,380 --> 00:17:32,099 la misma 1 me vale 242 00:17:32,099 --> 00:17:34,579 porque está limpia, por eso lo estoy 243 00:17:34,579 --> 00:17:35,400 cargando aquí 244 00:17:35,400 --> 00:17:47,029 Una cosa que no he explicado yo en la memoria, no la he explicado, 245 00:17:47,130 --> 00:17:50,829 que me parece interesante explicarla aquí, es que para poder implementar 246 00:17:50,829 --> 00:17:53,589 todas las funcionalidades de los controles en el inspector, 247 00:17:53,589 --> 00:17:58,890 he tenido que programar el inspector, que me parece interesante también hacerlo. 248 00:17:59,410 --> 00:18:02,529 Y aquí, por ejemplo, son tantas las funcionalidades que tienen los controles 249 00:18:02,529 --> 00:18:07,210 que aquí se me hacía un panel interminable de LED. 250 00:18:07,210 --> 00:18:20,509 Lo que he hecho yo es sintetizar los controles para que, por ejemplo, aquí se haga aparecer el A, pero todas las propiedades están dentro cuando yo las marco aquí y están divididas en segmentos según su funcionalidad. 251 00:18:20,509 --> 00:18:40,069 Me explico. Cuando la abrigo, esto es simplemente para mostrar la propiedad que tiene ahora. Aquí yo lo podría colocar. Lo que sea. Podría incluso, para cambiarle una imagen, yo no he querido complicarme la vida, vas aquí al botón A y le cambias la imagen dentro del control aquí. 252 00:18:40,069 --> 00:18:42,170 entonces 253 00:18:42,170 --> 00:18:44,130 lo que estaba comentando 254 00:18:44,130 --> 00:18:46,190 dentro del panel 255 00:18:46,190 --> 00:18:48,890 yo tengo dividido por funcionalidades 256 00:18:48,890 --> 00:18:50,569 ahora mismo funciona con un botón digital 257 00:18:50,569 --> 00:18:51,869 que tú presionas y ya está 258 00:18:51,869 --> 00:18:54,569 pero el mismo control 259 00:18:54,569 --> 00:18:57,309 y lo he comentado ahí en la memoria 260 00:18:57,309 --> 00:18:58,470 y la DEMA también lo explica 261 00:18:58,470 --> 00:19:01,190 todos los controles que están definidos 262 00:19:01,190 --> 00:19:02,210 del mando 263 00:19:02,210 --> 00:19:04,329 todos los controles 264 00:19:04,329 --> 00:19:05,890 son el mismo control 265 00:19:05,890 --> 00:19:08,809 simplemente con las propiedades cambian su funcionalidad 266 00:19:08,809 --> 00:19:09,549 me explico 267 00:19:09,549 --> 00:19:12,789 Tenemos aquí que este funciona como un botón digital 268 00:19:12,789 --> 00:19:14,470 Y aquí tiene un iconito que por cierto 269 00:19:14,470 --> 00:19:16,390 Que va cambiando en función de lo que nosotros 270 00:19:16,390 --> 00:19:18,390 Definamos, ¿vale? El icono en el inspector 271 00:19:18,390 --> 00:19:20,609 Si le coloco que sea analógico 272 00:19:20,609 --> 00:19:21,789 Ha cambiado el inspector 273 00:19:21,789 --> 00:19:24,569 He buscado un icono 274 00:19:24,569 --> 00:19:25,789 Simplemente para que visualmente 275 00:19:25,789 --> 00:19:28,049 Estaba trabajando como un analógico 276 00:19:28,049 --> 00:19:30,849 Y ya nos cambia la funcionalidad 277 00:19:30,849 --> 00:19:32,170 ¿Cómo trabajo con un analógico? 278 00:19:32,309 --> 00:19:34,210 Si este, voy a ejecutar esto 279 00:19:34,210 --> 00:19:36,509 Pero no importa, lo vemos simplemente 280 00:19:36,509 --> 00:19:38,650 Para ver la parte de la funcionalidad de esto 281 00:19:38,650 --> 00:19:43,930 como puedes ver, para donde vaya 282 00:19:43,930 --> 00:19:45,789 va cambiando el valor 283 00:19:45,789 --> 00:19:47,569 ¿vale? y eso lo controlamos 284 00:19:47,569 --> 00:19:49,789 aquí, le estoy diciendo que permite los valores 285 00:19:49,789 --> 00:19:51,730 en todos los verticales, le digo que 286 00:19:51,730 --> 00:19:53,490 solamente los horizontales, entonces 287 00:19:53,490 --> 00:19:55,009 los verticales ya no le hace caso 288 00:19:55,009 --> 00:19:57,609 eso se cambia aquí, otra cosa que también 289 00:19:57,609 --> 00:19:58,730 aquí visualmente 290 00:19:58,730 --> 00:20:00,970 voy a ocultar las propiedades 291 00:20:00,970 --> 00:20:03,829 visualmente puedes ver que es lo que está pasando con los controles 292 00:20:03,829 --> 00:20:05,829 si te das cuenta aquí en el analógico 293 00:20:05,829 --> 00:20:07,410 va cambiando la barra 294 00:20:07,410 --> 00:20:09,269 además de que aquí te va indicando 295 00:20:09,269 --> 00:20:15,390 son cosas que no realmente no son quizás útiles directamente pero visualmente ayudan mucho vale 296 00:20:15,390 --> 00:20:23,630 para estar hecho sigo esto es el control lo que son el comportamiento como botón analógico que 297 00:20:23,630 --> 00:20:28,309 es arrastrando y finalmente tenemos el comportamiento del mismo control lo transformamos 298 00:20:28,309 --> 00:20:35,769 en un stick virtual como se ve aparece por detrás lo que es el rango donde se puede mover y 299 00:20:35,769 --> 00:20:40,549 Y lo podemos mover como si fuese un stick cualquiera, ¿vale? 300 00:20:40,549 --> 00:20:44,809 Aquí al lado se puede ver que algunos valores van cambiando. 301 00:20:44,809 --> 00:20:47,089 Aquí hay unas flechitas, etcétera, etcétera. 302 00:20:47,089 --> 00:20:50,329 Que eso sirve cuando tenemos esto así. 303 00:20:50,329 --> 00:20:52,710 Se va mostrando ahí y se van cambiando de valor y sabemos lo 304 00:20:52,710 --> 00:20:56,250 que está pasando es que se están sucediendo cosas, ¿vale? 305 00:20:56,250 --> 00:21:01,490 Podría yo, por ejemplo, tener varios controles en pantalla 306 00:21:01,490 --> 00:21:04,029 que sean sticks. 307 00:21:04,029 --> 00:21:07,670 Podría tener todos los controles como stick y todo funciona sin problema al mismo tiempo. 308 00:21:07,849 --> 00:21:09,509 Y todo con su lectura aparte. 309 00:21:10,890 --> 00:21:11,990 La implementación de esto. 310 00:21:12,170 --> 00:21:15,490 Esto es específico de los controles virtuales. 311 00:21:15,930 --> 00:21:17,549 Puedes hacer un juego que use más de un stick. 312 00:21:17,930 --> 00:21:20,990 Eso ya es cosa de quien vaya a integrarlo a su juego. 313 00:21:20,990 --> 00:21:26,150 Porque además el control este se puede integrar de una manera standalone. 314 00:21:26,309 --> 00:21:28,809 No necesitas integrar todo el proyecto para poder ejecutarlo. 315 00:21:29,150 --> 00:21:30,009 Paso a la siguiente demo. 316 00:21:30,009 --> 00:21:34,039 entonces 317 00:21:34,039 --> 00:21:38,339 la siguiente me voy a pasar rápidamente porque 318 00:21:38,339 --> 00:21:40,200 esto es una implementación de lo que es el 319 00:21:40,200 --> 00:21:41,619 X Gamepad 320 00:21:41,619 --> 00:21:44,380 perdona, solo indicarte que llevas 20 minutos, ¿vale? 321 00:21:44,859 --> 00:21:46,799 continúa, pero era la indicación 322 00:21:46,799 --> 00:21:47,420 que te decía 323 00:21:47,420 --> 00:21:49,839 ok, trato de hacerlo lo más rápido posible 324 00:21:49,839 --> 00:21:51,660 voy a pasar rápidamente esto 325 00:21:51,660 --> 00:21:54,759 aquí lo interesante de la implementación 326 00:21:54,759 --> 00:21:55,859 del X Gamepad 327 00:21:55,859 --> 00:21:58,779 es que he añadido lo que es 328 00:21:58,779 --> 00:21:59,940 un control de 329 00:21:59,940 --> 00:22:02,880 de Autofire 330 00:22:02,880 --> 00:22:04,960 por ejemplo, ahí se puede ver 331 00:22:04,960 --> 00:22:06,319 que está activo 332 00:22:06,319 --> 00:22:08,420 y lo estoy activando con lo que dice en pantalla 333 00:22:08,420 --> 00:22:09,779 con Start y un botón 334 00:22:09,779 --> 00:22:10,539 y con Select 335 00:22:10,539 --> 00:22:14,519 ah bueno, es que ha avanzado 336 00:22:14,519 --> 00:22:15,799 pero bueno, voy a seguir 337 00:22:15,799 --> 00:22:20,960 vale, las implementaciones que tiene el X-Gamepad 338 00:22:20,960 --> 00:22:22,019 especial son 339 00:22:22,019 --> 00:22:23,720 Autofile, que tienen remapeo 340 00:22:23,720 --> 00:22:26,380 y tienen remapeo físico, existen dos tipos de 341 00:22:26,380 --> 00:22:28,000 mapeo importantes, una cosa es 342 00:22:28,000 --> 00:22:30,380 lo que yo mapeo desde un 343 00:22:30,380 --> 00:22:32,200 teclado, desde un ratón, a lo que sea 344 00:22:32,200 --> 00:22:34,619 a mi control X-Gamepad 345 00:22:34,619 --> 00:22:41,779 a mi control que he creado y lo otro es el mapeo físico, o sea, el lógico que es una vez ya asignado los controles, 346 00:22:41,920 --> 00:22:46,240 yo puedo mapear, decirle un botón es este, lo puedo cambiar, ¿vale? Son dos tipos de mapeo 347 00:22:46,240 --> 00:22:50,420 y me estoy pasando rápidamente para poder explicar esto porque me queda muy poco tiempo. 348 00:22:51,119 --> 00:22:56,440 Aquí en pantalla, bueno, no lo he podido mostrar, pero que no se la demos a dar cuenta que originalmente 349 00:22:56,440 --> 00:23:04,119 W, W, A, S, D es el control del stick izquierdo en teclado y ahora lo he cambiado, he mapeado físicamente 350 00:23:04,119 --> 00:23:07,140 para que sean estas otras teclas, las que están acá, ¿vale? 351 00:23:07,259 --> 00:23:09,619 O estas, ¿vale? 352 00:23:10,299 --> 00:23:13,940 Simplemente para que se muestre que fácilmente por código se 353 00:23:13,940 --> 00:23:16,880 puede realizar TMPyro, ¿vale? 354 00:23:16,960 --> 00:23:21,220 Voy a seguir avanzando porque, y llego a la última parte de la 355 00:23:21,220 --> 00:23:24,220 demo, que realmente era el plato fuerte, pero, bueno, 356 00:23:24,339 --> 00:23:25,640 ya me he comido el tiempo en el otro, 357 00:23:26,039 --> 00:23:30,359 que son la generación de listas de movimientos, ¿vale? 358 00:23:30,359 --> 00:23:33,900 Voy a adelantar, adelantar, ¿vale? 359 00:23:34,119 --> 00:23:35,400 Uf, qué feo se ve esto. 360 00:23:36,500 --> 00:23:37,299 Voy a ejecutarlo de nuevo. 361 00:23:37,380 --> 00:23:40,420 No sé por qué a veces se van los colores de esto. 362 00:23:44,589 --> 00:23:46,329 Realmente, lista de movimientos. 363 00:23:46,470 --> 00:23:48,069 Lo que he hecho yo es implementar, 364 00:23:48,130 --> 00:23:49,630 ya que tengo el control del mando, 365 00:23:49,630 --> 00:23:53,589 es proveer una forma de generar listas de movimientos, 366 00:23:53,690 --> 00:23:56,150 como si fuesen juegos de lucha, juegos de acción, lo que sea, 367 00:23:56,230 --> 00:23:57,630 donde hay secuencias de movimientos. 368 00:23:58,450 --> 00:24:00,130 Y yo, por medio de la clase, 369 00:24:00,410 --> 00:24:02,349 indicar si se ejecuta uno de esos movimientos. 370 00:24:02,529 --> 00:24:03,329 Básicamente es eso. 371 00:24:03,430 --> 00:24:05,930 He generado un concepto que se llama VFrame, 372 00:24:05,950 --> 00:24:07,430 que es 373 00:24:07,430 --> 00:24:11,930 en un lapso de tiempo 374 00:24:11,930 --> 00:24:14,190 lo que yo he generado es un momento 375 00:24:14,190 --> 00:24:16,410 donde leo estados 376 00:24:16,410 --> 00:24:18,089 leo estados de gamepad 377 00:24:18,089 --> 00:24:21,529 asigno estados lógicos 378 00:24:21,529 --> 00:24:23,930 porque por ejemplo determino si no es posible hacer 379 00:24:23,930 --> 00:24:25,930 izquierda y derecha al mismo tiempo 380 00:24:25,930 --> 00:24:27,309 entonces lo que hago, voy generando 381 00:24:27,309 --> 00:24:29,349 estoy explicando muy rápido, lo sé, pero es que 382 00:24:29,349 --> 00:24:30,490 no tengo que hacer así 383 00:24:30,490 --> 00:24:33,930 en ese estado lo que hago es 384 00:24:33,930 --> 00:24:35,970 determinar frames 385 00:24:35,970 --> 00:24:37,589 lógicos válidos 386 00:24:37,589 --> 00:24:40,069 y si no son lógicos, voy generando frames 387 00:24:40,069 --> 00:24:42,049 nuevos. Y con esto lo que hago es secuencias 388 00:24:42,049 --> 00:24:43,869 de movimientos lógicas, ¿vale? 389 00:24:43,869 --> 00:24:46,289 Y donde hay combinación de botones 390 00:24:46,289 --> 00:24:48,430 con mandos, etcétera, etcétera. 391 00:24:49,049 --> 00:24:50,309 A ver, voy a ir rápidamente 392 00:24:50,309 --> 00:24:52,349 a ver si llegamos a la parte de la 393 00:24:52,349 --> 00:24:53,910 demo. Vale. 394 00:24:55,049 --> 00:24:56,470 Es una implementación rápida, 395 00:24:56,569 --> 00:24:58,569 ¿vale? Esto lo, se crea 396 00:24:58,569 --> 00:24:59,390 bueno, 397 00:25:00,490 --> 00:25:02,329 no voy a mostrar el código porque se me va a ir el tiempo, 398 00:25:02,329 --> 00:25:28,230 Pero básicamente con esto lo que hago es, sin tener que codificar yo todo lo que es la implementación del motor de movimientos, el usuario simplemente, si voy a, lo muestro porque es lo más fácil, lo muestro en la escena 4 y esto es, por ejemplo, para generar un movimiento hago esta línea. 399 00:25:28,230 --> 00:25:35,769 Con esta línea solamente yo estoy indicando al motor que este movimiento se llama de esta manera y que se ejecuta de esta manera. 400 00:25:35,849 --> 00:25:57,420 Es el motor que lo resuelve. ¿Cómo después yo lo obtengo? Simplemente después tengo aquí un GetMove, que lo hago en el update, y simplemente el GetMove me dice, ¿se ha ejecutado tal movimiento? Sí, me trae el nombre del movimiento. Yo no tengo que preocuparme más como desarrollador. 401 00:25:57,420 --> 00:26:13,420 Entonces, con eso puedo integrar todo este tipo de funcionalidades como movimientos, bueno, lo que está viendo aquí. La gracia del motor que yo he creado es que además permite movimientos en árbol, que son estos, movimientos que son requisitos para otros movimientos. 402 00:26:13,420 --> 00:26:18,079 rápidamente le explico aquí por ejemplo el primer movimiento que se llama custom mode y tiene el 403 00:26:18,079 --> 00:26:26,480 río y si ejecutas puedes ejecutar el siguiente si me sale bueno hay una implementación si lo haces 404 00:26:26,480 --> 00:26:32,740 por ejemplo si hago el de arriba tengo los dos de abajo como posibles entonces por eso se ponen 405 00:26:32,740 --> 00:26:41,500 verde y si ejecuta uno de abajo sigue la rama y se pueden así hacer x ramas hacia adentro para 406 00:26:41,500 --> 00:26:47,180 la nueva complejidad esto sirve tanto para como lo que estoy colocando tiene un demo de lucha 407 00:26:49,599 --> 00:26:56,440 y esto es una demo como si fuese un juego de arcade un juego de hacks y flash del mercado 408 00:26:56,440 --> 00:27:00,940 que sea donde tienes aquí movimientos y en función de lo que estaba haciendo también puedes ir 409 00:27:00,940 --> 00:27:08,000 generando ahora mismo porque estoy un poco nervioso tratando de sacarlo pero la idea 410 00:27:08,000 --> 00:27:16,279 es que esto se sacan sin que consideren los los de las direcciones solamente con botones 411 00:27:17,720 --> 00:27:26,140 ya tengo un poco un poco porque tengo que terminar 412 00:27:29,039 --> 00:27:33,019 pues eso sería la presentación más o menos de lo que hace mi clase 413 00:27:33,019 --> 00:27:35,859 me ha faltado tiempo para explicarlo 414 00:27:35,859 --> 00:27:36,740 lo sé, pero 415 00:27:36,740 --> 00:27:39,579 pues eso 416 00:27:39,579 --> 00:27:41,259 vale, perfecto 417 00:27:41,259 --> 00:27:43,200 dame un segundillo que 418 00:27:43,200 --> 00:27:45,900 recopilo un poco cosas que te quiero 419 00:27:45,900 --> 00:27:46,680 preguntar 420 00:27:46,680 --> 00:27:48,980 prefiero las preguntas 421 00:27:48,980 --> 00:27:51,519 bueno 422 00:27:51,519 --> 00:27:54,099 lo primero, como tutor 423 00:27:54,099 --> 00:27:55,619 también transmitirlo 424 00:27:55,619 --> 00:27:58,119 es un proyecto muy muy avanzado 425 00:27:58,119 --> 00:27:59,299 que está muy bien, además lo 426 00:27:59,299 --> 00:28:01,099 se ha estado probando y 427 00:28:01,099 --> 00:28:02,599 bastante robusto además 428 00:28:02,599 --> 00:28:05,500 que digo que está muy conseguido 429 00:28:05,500 --> 00:28:07,059 y de hecho 430 00:28:07,059 --> 00:28:08,799 en relación a esto 431 00:28:08,799 --> 00:28:09,680 la primera pregunta 432 00:28:09,680 --> 00:28:13,039 ¿crees que 433 00:28:13,039 --> 00:28:15,299 mejora mucho? 434 00:28:15,720 --> 00:28:16,940 la respuesta se sabe 435 00:28:16,940 --> 00:28:18,359 lo que quiero es ver el razonamiento 436 00:28:18,359 --> 00:28:19,940 con respecto al input system 437 00:28:19,940 --> 00:28:20,819 que no sé si lo has 438 00:28:20,819 --> 00:28:23,799 la alternativa que ha ofrecido Unity 439 00:28:23,799 --> 00:28:25,940 como paquete frente al input manager 440 00:28:25,940 --> 00:28:28,160 ¿qué ventajas tiene 441 00:28:28,160 --> 00:28:30,319 este paquete? 442 00:28:31,059 --> 00:28:32,160 entiendo que hay algunas obvias 443 00:28:32,160 --> 00:28:38,579 pero hay alguna más también vale a ver la más importante para mí no es un reemplazo completo 444 00:28:38,579 --> 00:28:43,920 porque quise hacerlo pero primero que algunos event system y todo eso están amarrados con el 445 00:28:43,920 --> 00:28:49,200 input manager entonces no te lo puedes quitar de encima vale existía un hack para poder yo 446 00:28:49,200 --> 00:28:53,519 inyectar valores dentro de youtube manager pero sirve solamente en algunos yuri que lo estuve 447 00:28:53,519 --> 00:28:58,440 investigando pero lo descarté la idea del miedo original bueno original pero la verdad es que 448 00:28:58,440 --> 00:29:06,119 después quería hacer era el reemplazo completo porque se podía hacer en una de las ventajas más 449 00:29:06,119 --> 00:29:12,119 evidentes para mí es la separación de controles sin tener que estar configurando el input manager 450 00:29:12,119 --> 00:29:21,740 vale había una cosa que no está explicando la demo y que la verdad que es bastante si lo tenía 451 00:29:21,740 --> 00:29:29,859 que haber explicado que era esto mira esto que yo no le explicaba el legacy vale no sé si alcanzaste 452 00:29:29,859 --> 00:29:34,900 a entender que era aún sin una explicación básicamente lo que hace el legacy es leer lo 453 00:29:34,900 --> 00:29:38,799 que hacía el input manager o sea yo podía acceder a los mismos valores podía acceder a las mismas 454 00:29:38,799 --> 00:29:47,720 variables y eso por ejemplo ahora mismo lo más evidente con el teclado si yo hago derecha 455 00:29:47,720 --> 00:29:54,740 izquierda tengo aquí asignada en mi x gamepad lo que es el de el de paz y aquí con el w a s de el 456 00:29:54,740 --> 00:30:01,059 stick en el de gas y como tú sabes en la flecha está asignado a los dos entonces no puedes 457 00:30:01,059 --> 00:30:07,119 discriminar con ellas a no ser que la configure tú manualmente desde el manager antes de compilar 458 00:30:07,119 --> 00:30:12,980 pues ahora mismo están las dos enlazadas que es el comportamiento que tendría si estuviesen 459 00:30:12,980 --> 00:30:14,599 leyendo el horizontal y el vertical. 460 00:30:15,660 --> 00:30:16,380 ¿Me entiendes? Vale. 461 00:30:17,059 --> 00:30:19,259 Ese es uno de los... 462 00:30:19,259 --> 00:30:20,859 de las razones más pensibles 463 00:30:20,859 --> 00:30:23,119 para lo que yo usaría esto. Bueno, por lo que 464 00:30:23,119 --> 00:30:24,240 he diseñado realmente esto. 465 00:30:25,160 --> 00:30:27,119 Vale. Luego en la documentación, aparte 466 00:30:27,119 --> 00:30:27,660 de la memoria, 467 00:30:28,980 --> 00:30:31,220 que sí que es verdad que la presentación me ha faltado 468 00:30:31,220 --> 00:30:33,019 un poquito más de empaque con 469 00:30:33,019 --> 00:30:34,740 respecto a lo que es el proyecto, es decir, 470 00:30:34,839 --> 00:30:37,180 no el proyecto, lo que es las conclusiones 471 00:30:37,180 --> 00:30:39,019 que has derivado, que es la primera parte, 472 00:30:39,539 --> 00:30:41,019 parte del factor tiempo. 473 00:30:41,420 --> 00:30:41,680 Pero 474 00:30:41,680 --> 00:30:44,759 aparte has presentado un manual 475 00:30:44,759 --> 00:30:46,839 que está muy bien documentado y muy 476 00:30:46,839 --> 00:30:48,940 extenso, además hay incluso 477 00:30:48,940 --> 00:30:50,900 cosas que no has comentado en la presentación como 478 00:30:50,900 --> 00:30:52,900 esta tipografía que has adaptado para ir mostrando 479 00:30:52,900 --> 00:30:54,940 los controles, que hay más abajo 480 00:30:54,940 --> 00:30:56,920 incluso, pero eso 481 00:30:56,920 --> 00:30:59,180 lo vemos en la memoria 482 00:30:59,180 --> 00:31:00,940 pero te quería preguntar 483 00:31:01,819 --> 00:31:05,160 que me sigue faltando 484 00:31:05,160 --> 00:31:07,059 una cosa que es básica 485 00:31:07,059 --> 00:31:08,299 y esto no te lo digo como 486 00:31:08,299 --> 00:31:10,759 porque además es muy fácilmente corregible 487 00:31:10,759 --> 00:31:12,940 que es, al principio de tu presentación 488 00:31:12,940 --> 00:31:14,759 y de tu memoria hablas de que es una forma 489 00:31:14,759 --> 00:31:16,720 de acercar a desarrolladores 490 00:31:16,720 --> 00:31:18,380 sobre todo principiantes 491 00:31:18,380 --> 00:31:20,740 aunque evidentemente lo puede usar cualquiera 492 00:31:20,740 --> 00:31:22,220 un 493 00:31:22,220 --> 00:31:24,640 uso basiquísimo 494 00:31:24,640 --> 00:31:26,740 es decir, de primeras a la persona 495 00:31:26,740 --> 00:31:28,380 que quiera implementar este paquete 496 00:31:28,380 --> 00:31:29,740 este asset 497 00:31:29,740 --> 00:31:32,819 que es hablar de que tienes que incorporar 498 00:31:32,819 --> 00:31:34,299 estos prefabs 499 00:31:34,299 --> 00:31:36,519 primero a tu proyecto para poder capturarlos 500 00:31:36,519 --> 00:31:37,759 porque es verdad que 501 00:31:37,759 --> 00:31:40,779 aquí hay tanto código metido 502 00:31:40,779 --> 00:31:42,839 etcétera, que a no ser que te pongas a analizar 503 00:31:42,839 --> 00:31:44,700 los ejemplos, en este manual me 504 00:31:44,700 --> 00:31:46,440 faltan primeros pasos 505 00:31:46,440 --> 00:31:48,559 y que sea, incorpora este prefab 506 00:31:48,559 --> 00:31:50,519 a tu juego 507 00:31:50,519 --> 00:31:52,319 y a partir de ahí captúralo 508 00:31:52,319 --> 00:31:54,680 es decir, esos prefabs no es obvio 509 00:31:54,680 --> 00:31:56,059 que estén ahí, luego 510 00:31:56,059 --> 00:31:59,000 evidentemente cuando ya sabes usarlo, ah bueno, sí hay que arrastrar el prefab 511 00:31:59,000 --> 00:32:00,339 porque ahí es donde están todas las clases 512 00:32:00,339 --> 00:32:02,599 y todo el desarrollo, pero falta 513 00:32:02,599 --> 00:32:03,680 ese paso, es decir 514 00:32:03,680 --> 00:32:06,500 un ejemplo muy básico 515 00:32:06,500 --> 00:32:09,339 Esto arrastra instancias 516 00:32:09,339 --> 00:32:10,480 De esta manera y ya lo usas 517 00:32:10,480 --> 00:32:11,339 Igual que me has hecho 518 00:32:11,339 --> 00:32:15,079 A mí y al resto del tribunal 519 00:32:15,079 --> 00:32:17,480 Las instrucciones de cómo coger 520 00:32:17,480 --> 00:32:18,799 El package para ver la demo 521 00:32:18,799 --> 00:32:21,680 Faltaría una vez arrancas tu juego 522 00:32:21,680 --> 00:32:23,519 Tienes que incorporar 523 00:32:23,519 --> 00:32:25,160 Estos prefabs en la escena 524 00:32:25,160 --> 00:32:26,059 Y hablar 525 00:32:26,059 --> 00:32:28,339 Es verdad que en el manual está 526 00:32:28,339 --> 00:32:30,299 La herramienta de diálogo 527 00:32:30,299 --> 00:32:32,380 La herramienta de los inputs virtuales 528 00:32:32,380 --> 00:32:33,759 Pero en ningún momento 529 00:32:33,759 --> 00:32:35,339 Igual lo has puesto y yo no lo he encontrado 530 00:32:35,339 --> 00:32:37,400 has puesto este primer paso, que parece 531 00:32:37,400 --> 00:32:38,619 una tontería, pero como alguien 532 00:32:38,619 --> 00:32:41,500 no se enganche directamente 533 00:32:41,500 --> 00:32:43,660 a ver cómo va la herramienta en lo más básico, 534 00:32:44,099 --> 00:32:45,039 igual pierde esa gente. 535 00:32:45,700 --> 00:32:47,079 ¿Vale? Y es una tontería. 536 00:32:48,079 --> 00:32:49,339 No, no, es válido. 537 00:32:49,740 --> 00:32:51,240 De hecho, si subo esto, 538 00:32:51,319 --> 00:32:52,500 porque mi intención es subirla 539 00:32:52,500 --> 00:32:54,680 al store de Unity, 540 00:32:55,119 --> 00:32:57,140 posiblemente me lo echen para atrás por eso, porque 541 00:32:57,140 --> 00:32:58,940 uno de los requisitos es 542 00:32:58,940 --> 00:33:00,460 colocar precisamente ese ejemplo. 543 00:33:00,700 --> 00:33:01,599 Ese ejemplo primero. 544 00:33:02,740 --> 00:33:03,579 Es así. 545 00:33:05,339 --> 00:33:20,900 Sí, esta herramienta yo no sé luego a qué precio y de qué manera, pero esta herramienta desde luego pulida ya con las cositas de esta documentación, yo le veo un potencial muy alto. Así que sí, yo te animo a que lo hagas. 546 00:33:20,900 --> 00:33:25,799 Bueno, sobre los inputs virtuales 547 00:33:25,799 --> 00:33:27,839 Yo lo he probado en móvil 548 00:33:27,839 --> 00:33:29,200 ¿Ves alguna 549 00:33:29,200 --> 00:33:31,180 Es decir 550 00:33:31,180 --> 00:33:33,960 ¿Ves algún problema con este manejo de los inputs virtuales 551 00:33:33,960 --> 00:33:34,960 En pantallas táctiles? 552 00:33:35,599 --> 00:33:37,220 A ver, yo no 553 00:33:37,220 --> 00:33:39,259 Las pantallas táctiles 554 00:33:39,259 --> 00:33:40,900 No es equivalente a un mando 555 00:33:40,900 --> 00:33:42,559 Empezando por ahí 556 00:33:42,559 --> 00:33:46,140 Pero sí que es cierto que es una demanda 557 00:33:46,140 --> 00:33:46,900 ¿Vale? Entonces 558 00:33:46,900 --> 00:33:48,579 Yo los inputs manuales 559 00:33:48,579 --> 00:33:58,240 los he creado precisamente por esa demanda que me han pedido y por eso mismo he intentado generar 560 00:33:58,240 --> 00:34:06,160 esta otra manera de leer los inputs del árbol de movimientos que no simplificaron lo máximo posible 561 00:34:06,160 --> 00:34:14,039 para que sean válidos dentro de un entorno virtual con pantalla táctil. Entonces, por eso la segunda 562 00:34:14,039 --> 00:34:16,159 demo, que ahora no me ha funcionado, no sé muy bien 563 00:34:16,159 --> 00:34:17,860 por qué, todo el mundo se me funciona menos ahora 564 00:34:17,860 --> 00:34:19,860 por eso la segunda demo era 565 00:34:19,860 --> 00:34:22,019 básicamente todos los comandos eran 566 00:34:22,019 --> 00:34:24,260 presionar A, A, A, B, B, B y ya está 567 00:34:24,260 --> 00:34:26,179 y con eso generaban movimientos 568 00:34:26,179 --> 00:34:28,119 que con eso sí que diable 569 00:34:28,119 --> 00:34:30,219 a usarlo dentro de una pantalla táctil 570 00:34:30,219 --> 00:34:31,719 ¿me entiendes? 571 00:34:32,039 --> 00:34:34,219 lo que es movimientos tipo de lucha y todo eso 572 00:34:34,219 --> 00:34:36,219 a mí me consta porque eso es difícil 573 00:34:36,219 --> 00:34:37,920 no se puede hacer porque no tienes el 574 00:34:37,920 --> 00:34:40,099 no tienes el tacto, no tienes 575 00:34:40,099 --> 00:34:41,719 la funcionalidad 576 00:34:41,719 --> 00:34:43,900 se la puedes implementar de una manera muy simple 577 00:34:43,900 --> 00:34:45,239 pero no te va a dar 578 00:34:45,239 --> 00:34:48,099 en eso soy consciente 579 00:34:48,099 --> 00:34:48,699 que es así 580 00:34:48,699 --> 00:34:51,539 y luego, ya última pregunta 581 00:34:51,539 --> 00:34:53,679 hablar de que te has apoyado en 582 00:34:53,679 --> 00:34:55,699 en Ollama, te has apoyado en 583 00:34:55,699 --> 00:34:56,579 inteligencia artificial 584 00:34:56,579 --> 00:34:59,579 todo, es decir 585 00:34:59,579 --> 00:35:01,940 el script, evidentemente 586 00:35:01,940 --> 00:35:04,039 no es una crítica en absoluto que se use la IA 587 00:35:04,039 --> 00:35:05,880 es como se trabaja 588 00:35:05,880 --> 00:35:07,260 evidentemente 589 00:35:07,260 --> 00:35:08,000 pero 590 00:35:08,000 --> 00:35:11,840 digamos, aparte de también 591 00:35:11,840 --> 00:35:13,039 tu bagaje previo 592 00:35:13,039 --> 00:35:15,639 laboral, etcétera, que tiene sus conocimientos 593 00:35:15,639 --> 00:35:17,460 más avanzados probablemente que los del curso 594 00:35:17,460 --> 00:35:19,519 suelen tener en este ciclo 595 00:35:19,519 --> 00:35:21,380 pero digamos que la IA 596 00:35:21,380 --> 00:35:23,340 ¿cuánto has tenido que pulir? 597 00:35:24,159 --> 00:35:25,539 ¿cómo la has enfocado 598 00:35:25,539 --> 00:35:27,039 el uso de la IA para este proyecto? 599 00:35:27,179 --> 00:35:28,380 porque es muy complejo 600 00:35:28,380 --> 00:35:30,860 ocupa muchas cosas y bueno 601 00:35:30,860 --> 00:35:32,320 un poco tu opinión 602 00:35:32,320 --> 00:35:34,679 o tu forma de trabajar 603 00:35:34,679 --> 00:35:36,719 de hecho mi idea es 604 00:35:36,719 --> 00:35:39,599 que no sube un vídeo a mi canal hablando del tema 605 00:35:39,599 --> 00:35:41,039 porque me parece súper interesante 606 00:35:41,039 --> 00:35:42,960 la IA 607 00:35:42,960 --> 00:35:45,539 la he utilizado sobre todo 608 00:35:45,539 --> 00:35:47,219 para ahorrarme mucho trabajo 609 00:35:47,219 --> 00:35:47,800 de leer 610 00:35:47,800 --> 00:35:51,519 cuando empecé a hacer 611 00:35:51,519 --> 00:35:53,059 el proyecto, como ves es grande y todo eso 612 00:35:53,059 --> 00:35:55,179 es grande y he podido avanzar mucho 613 00:35:55,179 --> 00:35:57,559 gracias a que la IA me ha dado directamente 614 00:35:57,559 --> 00:35:59,360 hay que utilizar esta herramienta 615 00:35:59,360 --> 00:36:00,199 hay que usar esto 616 00:36:00,199 --> 00:36:02,400 que se podría haber hecho 617 00:36:02,400 --> 00:36:05,860 me imagino que igual hubiese llegado a un 618 00:36:05,860 --> 00:36:08,800 a un resultado parecido a lo que tengo 619 00:36:08,800 --> 00:36:10,739 pero evidentemente con mucho más tiempo 620 00:36:10,739 --> 00:36:12,219 ¿Cómo he integrado la IA? 621 00:36:12,960 --> 00:36:25,880 De dos maneras. Una, que corriéndolo en local, me ha apoyado de Oyama para integrarlo dentro de lo que es el Visual Studio y que me vaya completando sobre todo las funciones que no sabía. 622 00:36:25,880 --> 00:36:28,380 abrió un prompt 623 00:36:28,380 --> 00:36:30,800 y le decía, necesito 624 00:36:30,800 --> 00:36:35,039 colocar un ejemplo, necesito 625 00:36:35,039 --> 00:36:36,420 hacer que este valor 626 00:36:36,420 --> 00:36:38,639 en el tiempo vaya 627 00:36:38,639 --> 00:36:40,739 variando, porque todavía no tenía 628 00:36:40,739 --> 00:36:42,840 muy claro lo de los ler, o cómo funcionaban 629 00:36:42,840 --> 00:36:44,619 los updates, entonces 630 00:36:44,619 --> 00:36:46,679 me ayudaba mucho con eso, y la otra 631 00:36:46,679 --> 00:36:47,820 manera era directamente, 632 00:36:48,280 --> 00:36:50,260 abría una página, por ejemplo, 633 00:36:50,360 --> 00:36:52,460 le decía, léeme este manual 634 00:36:52,460 --> 00:36:54,619 y dime si esta función me sirve, 635 00:36:54,619 --> 00:36:58,179 a ver, que era una locura 636 00:36:58,179 --> 00:36:59,539 tiene muchas cosas 637 00:36:59,539 --> 00:37:02,079 para usar, muchas herramientas 638 00:37:02,079 --> 00:37:04,280 muchos métodos, todo lo que es 639 00:37:04,280 --> 00:37:06,139 la integración de Unity 640 00:37:06,139 --> 00:37:07,280 y 641 00:37:07,280 --> 00:37:08,920 te vuelves loco 642 00:37:08,920 --> 00:37:11,699 te vuelves loco, y entonces 643 00:37:11,699 --> 00:37:13,760 la mejor manera de utilizar ahora 644 00:37:13,760 --> 00:37:15,260 la IA es de esa, es 645 00:37:15,260 --> 00:37:17,659 ahorra mi trabajo, dime si esto me sirve o no 646 00:37:17,659 --> 00:37:19,719 si no, pasa otra cosa, también 647 00:37:19,719 --> 00:37:23,219 también para preguntarte 648 00:37:23,219 --> 00:37:25,400 cómo podría aceptar cosas, porque me daban 649 00:37:25,400 --> 00:37:26,500 orientaciones 650 00:37:26,500 --> 00:37:29,159 porque claro, al principio 651 00:37:29,159 --> 00:37:31,780 con los controles virtuales 652 00:37:31,780 --> 00:37:33,019 me hace un lío 653 00:37:33,019 --> 00:37:35,559 tengo que explicar, yo vengo de todo lo que es 654 00:37:35,559 --> 00:37:37,039 el mundo Visual Basic de los 90 655 00:37:37,039 --> 00:37:39,719 donde yo trabajaba 656 00:37:39,719 --> 00:37:41,579 haciendo herramientas, no haciendo programación 657 00:37:41,579 --> 00:37:42,559 herramientas 658 00:37:42,559 --> 00:37:45,860 entonces todo este 659 00:37:45,860 --> 00:37:47,880 desarrollo no me da extraño para mí 660 00:37:47,880 --> 00:37:49,699 hacer esto de hacer una herramienta 661 00:37:49,699 --> 00:37:50,619 para otras personas 662 00:37:50,619 --> 00:37:52,679 me resulta más o menos natural 663 00:37:52,679 --> 00:37:55,300 pero claro, todos los conceptos nuevos 664 00:37:55,300 --> 00:37:56,599 he tenido que aprenderse 665 00:37:56,599 --> 00:37:58,159 o que tampoco sabía hacer 666 00:37:58,159 --> 00:38:00,820 en diciembre con el curso ese 667 00:38:00,820 --> 00:38:02,619 que se recomendaba 668 00:38:02,619 --> 00:38:04,639 y todas estas cosas 669 00:38:04,639 --> 00:38:07,360 hombre, necesité 670 00:38:07,360 --> 00:38:09,380 ayuda para ingerirlo todo 671 00:38:09,380 --> 00:38:10,719 de una manera más rápida 672 00:38:10,719 --> 00:38:12,739 porque si no, no sale 673 00:38:12,739 --> 00:38:14,699 no sale lo mismo, o saldría 674 00:38:14,699 --> 00:38:16,340 solamente teníamos una partida 675 00:38:16,340 --> 00:38:19,809 Vale, pues nada, por mi parte 676 00:38:19,809 --> 00:38:23,090 poco más, darte las gracias por la presentación 677 00:38:23,090 --> 00:38:24,070 y por 678 00:38:24,070 --> 00:38:26,289 ¿Qué preguntas te hacían mis compañeros? 679 00:38:26,389 --> 00:38:26,769 ¿Me interesa? 680 00:38:27,190 --> 00:38:28,309 No, la que te he estado... 681 00:38:28,309 --> 00:38:29,070 Ya te he leído alguna. 682 00:38:29,289 --> 00:38:30,710 La IA, por ejemplo, era una de ellas. 683 00:38:30,989 --> 00:38:34,550 Ah, sí, sí, de eso le estoy explicando el tema, 684 00:38:34,630 --> 00:38:36,650 porque sí que estaban con la posibilidad del tema. 685 00:38:37,210 --> 00:38:40,989 Es que hay mucho malentendido de qué es lo que es la IA. 686 00:38:41,090 --> 00:38:43,250 Se piensa que es decirle qué es lo que te haga 687 00:38:43,250 --> 00:38:43,969 y que el programa... 688 00:38:43,969 --> 00:38:45,769 Y ojalá lo hiciera. 689 00:38:45,889 --> 00:38:47,869 Bueno, a ver, que no quite el puesto de trabajo, 690 00:38:47,989 --> 00:38:50,630 pero ojalá hiciera el trabajo de manera perfecta. 691 00:38:50,630 --> 00:38:53,730 Pero te va a hacer que tengas que ser más productivo. 692 00:38:53,730 --> 00:38:59,150 Claro. Una muestra de lo que te acabo de mostrar. 693 00:38:59,869 --> 00:39:16,989 Perfecto. Pues nada, muchas gracias. Sobre las calificaciones, aunque no puedo dar un plazo exacto, no va a ser algo inmediato, van a tardar porque al ser la segunda convocatoria, aunque a vosotros os vaya a constar como la primera de proyecto, porque hubo otra en enero, va asociada a la convocatoria extraordinaria. 694 00:39:16,989 --> 00:39:26,309 Es decir, va a ser avanzado junio, ¿vale? No puedo decir fecha porque hasta que no se pongan todas las notas de los exámenes de convocatoria extraordinaria no va a estar. 695 00:39:26,789 --> 00:39:33,869 Seguramente si hay algún cambio en este sentido o que vaya a ser antes, pues os lo comunicaré, pero eso, que no va a ser algo inmediato. 696 00:39:34,610 --> 00:39:42,889 Pues nada más, muchas gracias y ánimo con la herramienta y cuando publiques esos vídeos o esa documentación, pues yo estaré interesado. 697 00:39:42,889 --> 00:39:46,849 Así que todo lo que vaya subiendo estaré atento, ¿vale? 698 00:39:46,989 --> 00:39:49,789 vale, genial, pues nada, muchas gracias 699 00:39:49,789 --> 00:39:51,469 gracias a ti, ánimo con todo 700 00:39:51,469 --> 00:39:52,030 hasta luego