1 00:00:01,970 --> 00:00:09,169 ¿Estás con la tarea 6? ¿Qué tal la llevas? Es decir, ¿en qué punto te encuentras o cómo la estás gestionando? 2 00:00:09,789 --> 00:00:21,809 Vale, ya he hecho lo del terreno. Estoy viendo el vídeo de Álvaro y estoy en los distintos nodos para hacer la animación. 3 00:00:22,050 --> 00:00:22,329 Sí. 4 00:00:23,129 --> 00:00:23,370 Vale. 5 00:00:24,710 --> 00:00:26,269 En el animator, ¿verdad? 6 00:00:26,710 --> 00:00:27,030 Sí. 7 00:00:27,030 --> 00:00:27,649 En el animator. 8 00:00:27,850 --> 00:00:29,210 En el Bren Tree. 9 00:00:29,210 --> 00:00:31,850 Vale, estás con un 10 00:00:31,850 --> 00:00:32,170 Entry 11 00:00:32,170 --> 00:00:35,869 He puesto dentro de 12 00:00:35,869 --> 00:00:39,750 Bueno, yo le he llamado 13 00:00:39,750 --> 00:00:41,009 Corre, donde él 14 00:00:41,009 --> 00:00:44,130 Dentro del Entry hace como tres 15 00:00:44,130 --> 00:00:46,090 Estaciones 16 00:00:46,090 --> 00:00:48,009 De movimientos 17 00:00:48,009 --> 00:00:49,369 Mira Esther, si te parece 18 00:00:49,369 --> 00:00:51,729 Como me lo vas explicando 19 00:00:51,729 --> 00:00:53,469 Tienes ahí el proyecto abierto y lo vamos viendo 20 00:00:53,469 --> 00:00:54,549 Sí 21 00:00:54,549 --> 00:00:56,609 Venga, pues si quieres compárteme pantalla 22 00:00:56,609 --> 00:00:59,409 Y lo vemos ya directamente en tu proyecto 23 00:00:59,409 --> 00:01:01,429 Vale, ahí te tengo con el Blend Tree 24 00:01:01,429 --> 00:01:03,770 Si te parece, dale abajo, que sale un cuadrado blanco 25 00:01:03,770 --> 00:01:04,870 Dale a ocultar, ¿vale? 26 00:01:04,890 --> 00:01:06,069 Para que no estéis molestando eso 27 00:01:06,069 --> 00:01:07,129 Y lo vemos 28 00:01:07,129 --> 00:01:09,969 Vale, tienes un Blend Tree que has llamado a correr 29 00:01:09,969 --> 00:01:12,510 Bueno, explícamelo tú 30 00:01:12,510 --> 00:01:14,390 Y así también voy viendo cómo lo explicas 31 00:01:14,390 --> 00:01:15,650 Que creo que va a ser mejor 32 00:01:15,650 --> 00:01:19,849 Vale, pues aquí en el vídeo 33 00:01:19,849 --> 00:01:21,109 Ponía que teníamos que 34 00:01:21,109 --> 00:01:23,430 Como en donde pone 35 00:01:23,430 --> 00:01:24,450 O sea, aquí, ¿no? 36 00:01:24,450 --> 00:01:27,870 El threshold, el umbral 37 00:01:27,870 --> 00:01:28,650 Vale 38 00:01:28,650 --> 00:01:31,969 Como darle tres parámetros 39 00:01:31,969 --> 00:01:33,069 Como para luego 40 00:01:33,069 --> 00:01:34,950 Hacerlo en 41 00:01:34,950 --> 00:01:36,370 En un script, ¿no? 42 00:01:37,010 --> 00:01:37,409 Sí 43 00:01:37,409 --> 00:01:41,390 Entonces, él dice 44 00:01:41,390 --> 00:01:42,390 Que 45 00:01:42,390 --> 00:01:45,010 Él tiene de reposo 46 00:01:45,010 --> 00:01:45,609 A correr 47 00:01:45,609 --> 00:01:46,670 Y entonces 48 00:01:46,670 --> 00:01:49,950 Él abre aquí esto 49 00:01:49,950 --> 00:01:50,790 ¿No? 50 00:01:50,870 --> 00:01:52,250 Un parámetro 51 00:01:52,250 --> 00:02:09,009 ¿Float? Sí. Vale. Y yo lo que he hecho ha sido darle aquí a menos 5, porque si reposo es menos 1, entre menos 1 y 0 será menos 5. 52 00:02:10,310 --> 00:02:10,990 Vale. 53 00:02:11,110 --> 00:02:17,090 Porque él hace de 0 a 1, pone 0,5. 54 00:02:17,090 --> 00:02:21,990 Vale, mira, a ver, vamos a plantear esto de otra forma 55 00:02:21,990 --> 00:02:26,949 Tú ahora mismo, por lo que estás, corrígeme si no, por lo que estás haciendo un blend trino 56 00:02:26,949 --> 00:02:31,330 Digamos, es para hacer los estados desde que está parado hasta que arranca a andar 57 00:02:31,330 --> 00:02:33,530 Y incluso que vaya a correr, ¿verdad? 58 00:02:34,770 --> 00:02:35,069 Sí 59 00:02:35,069 --> 00:02:42,069 Vale, él lo que pasa, por lo que pone 0.5 y 1, si no me equivoco 60 00:02:42,069 --> 00:02:44,569 Es porque tiene un joystick que tiene sensibilidad 61 00:02:44,569 --> 00:03:01,469 Es decir, tú si das a un teclado a las teclas, puede pasar del cero, que es la nada, al uno o al menos uno, que sería el negativo. ¿Vale? Que es lo que tienes aquí. Pero realmente es un poco extraño que el idle, la animación de que está parado, que tienes ahí puesta con menos uno, ¿vale? 62 00:03:01,469 --> 00:03:22,110 Sí. Claro, normalmente el menos uno es si estás dando un valor negativo. Si quieres el estado neutro, debería ser el cero, ¿vale? Entonces, aquí lo que se puede hacer es el id, el ponerlo en el cero, ¿vale? El caminar se podría poner en el uno y el run en el dos. ¿Por qué? Ponlo si quieres. 63 00:03:22,110 --> 00:03:23,590 mira, el id es el 0 64 00:03:23,590 --> 00:03:25,770 y de hecho lo vamos a hacer todo 65 00:03:25,770 --> 00:03:28,110 porque los dos parámetros de inicio, andar 66 00:03:28,110 --> 00:03:30,229 inicio, correr, ¿por qué los has puesto? 67 00:03:31,330 --> 00:03:32,189 ¿de cara a este 68 00:03:32,189 --> 00:03:33,449 blendtree o para otras cosas? 69 00:03:34,909 --> 00:03:35,330 porque si 70 00:03:35,330 --> 00:03:38,050 no, de cara a esto 71 00:03:38,050 --> 00:03:40,009 vale, si lo digo porque si no 72 00:03:40,009 --> 00:03:41,669 no es necesario, vale, mira 73 00:03:41,669 --> 00:03:44,349 de hecho te voy a pedir que borres 74 00:03:44,349 --> 00:03:45,930 los dos parámetros que no está 75 00:03:45,930 --> 00:03:47,590 si no los estás usando para otra cosa 76 00:03:47,590 --> 00:03:49,710 el que pone inicio, andar, inicio, correr 77 00:03:49,710 --> 00:03:52,330 clic derecho y borralos 78 00:03:52,330 --> 00:03:54,129 ¿vale? para que veas que no hace falta 79 00:03:54,129 --> 00:03:55,969 se puede usar para más cosas pero 80 00:03:55,969 --> 00:03:57,650 de momento vamos a ir a lo básico 81 00:03:57,650 --> 00:03:59,849 vale, lo primero 82 00:03:59,849 --> 00:04:02,289 el personaje, para ir viendo 83 00:04:02,289 --> 00:04:04,370 luego cómo funciona, el personaje 84 00:04:04,370 --> 00:04:06,050 que tiene esto, que entiendo 85 00:04:06,050 --> 00:04:08,349 no sé si es Izan o el que pone Armature 86 00:04:08,349 --> 00:04:10,009 ¿cuál sería? 87 00:04:10,830 --> 00:04:12,169 no, es que ¿sabes qué pasa? 88 00:04:12,270 --> 00:04:14,129 que es que he descargado 89 00:04:14,129 --> 00:04:15,930 los dos, uno que era 90 00:04:15,930 --> 00:04:17,149 el primero 91 00:04:17,149 --> 00:04:20,610 y luego en el resto 92 00:04:20,610 --> 00:04:22,370 de los apuntes, o sea 93 00:04:22,370 --> 00:04:24,189 en el vídeo era el que 94 00:04:24,189 --> 00:04:25,050 hacía él 95 00:04:25,050 --> 00:04:28,730 O sea, Izan 96 00:04:28,730 --> 00:04:29,750 era el del vídeo 97 00:04:29,750 --> 00:04:32,389 Vale, enséñamelos y vemos 98 00:04:32,389 --> 00:04:34,310 qué tiene cada uno, porque como hay que aplicarlo 99 00:04:34,310 --> 00:04:36,269 a una de las geometrías, a uno de los 100 00:04:36,269 --> 00:04:38,550 personajes... Es que el de Izan 101 00:04:38,550 --> 00:04:40,490 no me salía bien, porque 102 00:04:40,490 --> 00:04:41,910 a ver, yo 103 00:04:41,910 --> 00:04:44,550 cuando yo lo descargué y todo 104 00:04:44,550 --> 00:04:46,629 en el 105 00:04:46,629 --> 00:04:58,370 O sea, en el animator, cuando hay que ir a Rig, que este tiene como dos fallos y tal, pues lo puse, pero es que resulta que me anda de lado, ¿sabes? 106 00:04:58,709 --> 00:05:02,029 Vale, lo podemos ver y así vemos qué ocurre. 107 00:05:02,110 --> 00:05:03,290 Es que creo que lo he borrado, creo. 108 00:05:04,569 --> 00:05:04,889 Vale. 109 00:05:06,009 --> 00:05:11,649 Sí, simplemente es ahora mismo en la escena con qué personaje vas a ir trabajando, por explicarlo algo. 110 00:05:11,649 --> 00:05:12,470 Ah, con este, con el... 111 00:05:12,470 --> 00:05:14,829 Vale, el Izan incluso, si no lo usas, bórralo. 112 00:05:14,829 --> 00:05:16,529 Y enséame el panel de escena. 113 00:05:16,629 --> 00:05:19,689 Es que si no, no sé bien qué estamos haciendo, ¿vale? 114 00:05:20,290 --> 00:05:20,689 Vale. 115 00:05:20,930 --> 00:05:26,529 Ahora mismo tenemos en el que estás configurando el Blend Tree, ¿para qué objeto va a ser? 116 00:05:26,610 --> 00:05:27,509 ¿Para qué personaje? 117 00:05:27,910 --> 00:05:28,610 Para este. 118 00:05:28,810 --> 00:05:29,509 Para ese, vale. 119 00:05:29,610 --> 00:05:32,050 Pues el de Ethan, si quieres no lo borres, pero ocúltalo. 120 00:05:32,389 --> 00:05:38,110 Es decir, dale en el inspector, dale al tick, a la derecha del inspector, pues donde... 121 00:05:38,110 --> 00:05:42,329 Seleccionalo y dale al tick que está a la izquierda donde pone Ethan. 122 00:05:42,410 --> 00:05:42,750 Ah, vale. 123 00:05:43,009 --> 00:05:44,550 ¿Vale? Para que no esté molestando. 124 00:05:44,850 --> 00:05:45,250 Vale, vale. 125 00:05:45,250 --> 00:06:08,449 Vale, entonces ahora Armature, selecciónalo para ver su inspector, para ver qué tiene aplicado. Lo digo porque es que si no igual hacemos cosas y luego no se ve. Vale, Armature tiene un Animator Controller que se llama Armature, perfecto. Y tiene el avatar y entiendo que tiene todo bien seleccionado porque las animaciones de Idle y Avanzar y eso, ¿de dónde las has sacado? ¿Del Mixamo? 126 00:06:08,449 --> 00:06:10,589 Sí, de aquí 127 00:06:10,589 --> 00:06:12,689 A ver, de aquí 128 00:06:12,689 --> 00:06:15,589 O sea, de todo esto 129 00:06:15,589 --> 00:06:17,290 ¿Y armature de dónde sale? 130 00:06:17,449 --> 00:06:18,589 Lo que es el muñeco 131 00:06:18,589 --> 00:06:20,310 ¿Esto? 132 00:06:20,970 --> 00:06:23,329 No, el personaje 133 00:06:23,329 --> 00:06:24,589 ¿Ese os lo compartí yo? 134 00:06:26,170 --> 00:06:26,610 No 135 00:06:26,610 --> 00:06:28,870 Esto viene en los apuntes 136 00:06:28,870 --> 00:06:31,430 Ah, vale, es el otro personaje 137 00:06:31,430 --> 00:06:32,790 Que te ha bajado de los apuntes, vale, vale 138 00:06:32,790 --> 00:06:35,449 Ya entiendo, vale, que estamos juntando 139 00:06:35,449 --> 00:06:36,750 Los dos, vale, perfecto 140 00:06:36,750 --> 00:06:37,689 Pero este vale, ¿no? 141 00:06:37,689 --> 00:06:40,689 es que lo que ponía aquí 142 00:06:40,689 --> 00:06:42,430 que había que 143 00:06:42,430 --> 00:06:43,569 se puede hacer 144 00:06:43,569 --> 00:06:45,149 en Mixamo 145 00:06:45,149 --> 00:06:48,790 y como no 146 00:06:48,790 --> 00:06:50,709 sea así mucho pues 147 00:06:50,709 --> 00:06:51,889 he cogido este 148 00:06:51,889 --> 00:06:54,769 es decir, de cara a la práctica a mí lo que me interesa 149 00:06:54,769 --> 00:06:56,350 es que a un personaje lo podáis mover 150 00:06:56,350 --> 00:06:57,490 me da igual cual sea 151 00:06:57,490 --> 00:07:00,670 lo que sí, que para sacar diferentes 152 00:07:00,670 --> 00:07:02,829 animaciones, aunque aquí estás cogiendo 153 00:07:02,829 --> 00:07:04,550 las que 154 00:07:04,550 --> 00:07:06,009 pasaba ya en el paquete 155 00:07:06,009 --> 00:07:07,790 que están ahí marcadas 156 00:07:07,790 --> 00:07:09,970 ahí ya están hechas, lo bueno de Mixamo es que tú puedes 157 00:07:09,970 --> 00:07:12,149 meter cualquier personaje y puedes 158 00:07:12,149 --> 00:07:13,730 sacar más animaciones, pero bueno 159 00:07:13,730 --> 00:07:15,569 vamos a hacerlo con estas que tenemos aquí 160 00:07:15,569 --> 00:07:16,589 entonces 161 00:07:16,589 --> 00:07:20,029 ahora mismo tú tienes 162 00:07:20,029 --> 00:07:20,910 ese 163 00:07:20,910 --> 00:07:23,649 personaje con ese animator 164 00:07:23,649 --> 00:07:26,089 vamos adentro con el animator, otra vez 165 00:07:26,089 --> 00:07:27,750 ya sé entonces 166 00:07:27,750 --> 00:07:29,189 cómo está contextualizado 167 00:07:29,189 --> 00:07:31,370 ahora mismo tienes un estado de idle 168 00:07:31,370 --> 00:07:32,990 por lo que veo 169 00:07:32,990 --> 00:07:35,550 que esa animación es que está 170 00:07:35,550 --> 00:07:37,430 quieto, y luego 171 00:07:37,430 --> 00:07:39,589 lo que vas a 172 00:07:39,589 --> 00:07:40,550 querer es 173 00:07:40,550 --> 00:07:43,410 que corra, entonces 174 00:07:43,410 --> 00:07:45,110 o sea 175 00:07:45,110 --> 00:07:47,350 o sea 176 00:07:47,350 --> 00:07:49,250 de tranquilo 177 00:07:49,250 --> 00:07:50,610 andar y correr 178 00:07:50,610 --> 00:07:53,529 yo lo que he puesto aquí, no sé 179 00:07:53,529 --> 00:07:55,110 o sea, andar, correr 180 00:07:55,110 --> 00:07:57,250 vale, esto 181 00:07:57,250 --> 00:07:58,790 por ejemplo funciona más 182 00:07:58,790 --> 00:08:00,490 y vamos a 183 00:08:00,490 --> 00:08:02,910 hacerlo así ahora mismo si te parece 184 00:08:02,910 --> 00:08:07,329 Funciona más para, digamos, opuestos 185 00:08:07,329 --> 00:08:11,209 Igual que el getAxis sirve para tener el menos uno y el uno 186 00:08:11,209 --> 00:08:12,490 ¿Sabes de qué te voy hablando? 187 00:08:13,029 --> 00:08:15,850 De que es un input que permite coger dos extremos 188 00:08:15,850 --> 00:08:20,230 Este lo vamos a hacer para ir, por ejemplo, hacia adelante y hacia atrás 189 00:08:20,230 --> 00:08:22,189 Más que hacia adelante y hacia correr 190 00:08:22,189 --> 00:08:23,410 Ahora te digo el porqué 191 00:08:23,410 --> 00:08:30,610 Vale, es que en el vídeo pone de parado a correr 192 00:08:30,610 --> 00:08:31,129 De 0 a 0,5 y a 1 193 00:08:31,129 --> 00:08:33,789 Claro, pero ahí tienes que tener en cuenta 194 00:08:33,789 --> 00:08:35,490 Que es que el GetAxis que está usando 195 00:08:35,490 --> 00:08:37,429 Tiene valores intermedios 196 00:08:37,429 --> 00:08:39,230 Entonces tú si coges 197 00:08:39,230 --> 00:08:41,830 A no ser que me digas que tú estás haciéndolo con un Gamepad 198 00:08:41,830 --> 00:08:43,090 Con un mando de consola 199 00:08:43,090 --> 00:08:45,149 Tú si el joystick 200 00:08:45,149 --> 00:08:47,990 Que estás configurando para coger el GetAxis 201 00:08:47,990 --> 00:08:49,769 No lo tocas 202 00:08:49,769 --> 00:08:51,710 Está en 0 y por tanto está en el idle 203 00:08:51,710 --> 00:08:53,769 Si lo mueves un poquito 204 00:08:53,769 --> 00:08:54,370 Hacia arriba 205 00:08:54,370 --> 00:08:57,850 Irá sumando decimales hasta el 1 que es el máximo 206 00:08:57,850 --> 00:08:59,870 Entonces tú empujando un poquito 207 00:08:59,870 --> 00:09:01,970 tú haces que el personaje ande, ¿vale? 208 00:09:02,009 --> 00:09:03,710 Y al subirlo del todo, corre. 209 00:09:04,129 --> 00:09:06,110 Pero tú en un teclado, si es con lo que estás trabajando, 210 00:09:06,210 --> 00:09:06,990 eso no lo puedes hacer. 211 00:09:07,490 --> 00:09:08,110 Ah, vale, vale. 212 00:09:08,110 --> 00:09:09,509 Porque tú la tecla, sí. 213 00:09:10,409 --> 00:09:13,190 Claro, es que yo pensaba, o sea, él dice una frase, 214 00:09:13,570 --> 00:09:14,850 ¿por qué pongo menos uno? 215 00:09:14,950 --> 00:09:19,269 Porque él en correr pone correr para adelante, 216 00:09:19,529 --> 00:09:22,409 correr hacia la izquierda y correr a la derecha, ¿vale? 217 00:09:22,409 --> 00:09:25,929 Entonces, yo veía como tres estados, pero, ¿sabes? 218 00:09:26,070 --> 00:09:26,929 Pero distintos. 219 00:09:26,929 --> 00:09:29,330 entonces, él dice, ¿por qué pongo 220 00:09:29,330 --> 00:09:31,450 él pone menos uno para 221 00:09:31,450 --> 00:09:33,450 normal, cero 222 00:09:33,450 --> 00:09:34,710 para la izquierda y 223 00:09:34,710 --> 00:09:36,850 menos uno para la derecha, ¿no? 224 00:09:37,330 --> 00:09:39,289 entonces, él dice, ¿por qué pongo 225 00:09:39,289 --> 00:09:41,330 estos para luego hacer el 226 00:09:41,330 --> 00:09:43,470 script? entonces, claro, yo he 227 00:09:43,470 --> 00:09:45,009 relacionado ese script 228 00:09:45,009 --> 00:09:45,990 con 229 00:09:45,990 --> 00:09:49,529 luego las teclas, ¿sabes? no con un 230 00:09:49,529 --> 00:09:51,269 joystick. Claro, si 231 00:09:51,269 --> 00:09:53,350 depende de cómo se haga, hay que saber cómo 232 00:09:53,350 --> 00:09:55,429 se juega, digamos, es decir 233 00:09:55,429 --> 00:09:58,090 hay que pensar, pues eso, que una tecla 234 00:09:58,090 --> 00:10:00,049 tú cuando pulsas en el teclado no hay valores 235 00:10:00,049 --> 00:10:01,750 intermedios, o la pulsas que es uno 236 00:10:01,750 --> 00:10:03,269 o la sueltas y es cero 237 00:10:03,269 --> 00:10:06,110 entonces, hay cosas 238 00:10:06,110 --> 00:10:07,990 que se pueden hacer con un joystick porque tiene una 239 00:10:07,990 --> 00:10:10,169 sensibilidad intermedia y otros 240 00:10:10,169 --> 00:10:11,610 inputs, otros 241 00:10:11,610 --> 00:10:14,009 dispositivos que no, es decir 242 00:10:14,009 --> 00:10:15,929 tú si tienes un mando, por ejemplo, de Xbox 243 00:10:15,929 --> 00:10:17,470 que se puede conectar al ordenador 244 00:10:17,470 --> 00:10:20,210 esto se podría hacer y Álvaro lo está haciendo en base a eso 245 00:10:20,210 --> 00:10:21,210 ¿vale? pero 246 00:10:21,210 --> 00:10:23,950 hay que ir pensando según 247 00:10:23,950 --> 00:10:25,610 que se vaya haciendo 248 00:10:25,610 --> 00:10:27,809 entonces, para lo que sí 249 00:10:27,809 --> 00:10:28,990 se puede hacer, por ejemplo 250 00:10:28,990 --> 00:10:31,210 lo que podemos probar 251 00:10:31,210 --> 00:10:33,549 es que el id sea 0, es decir 252 00:10:33,549 --> 00:10:35,549 no estás tocando nada y está parado el personaje 253 00:10:35,549 --> 00:10:37,470 si le damos por ejemplo la w 254 00:10:37,470 --> 00:10:38,929 por decir una flecha 255 00:10:38,929 --> 00:10:41,549 una dirección de hacia adelante, sería el 256 00:10:41,549 --> 00:10:43,490 caminado normal y sería un 1 257 00:10:43,490 --> 00:10:45,190 en realidad, y luego 258 00:10:45,190 --> 00:10:47,629 el correr lo vamos a poner con 259 00:10:47,629 --> 00:10:49,570 un 2, pero no porque 260 00:10:49,570 --> 00:10:51,690 hay una tecla que sea 261 00:10:51,690 --> 00:10:53,750 2, el valor lo va a recoger 262 00:10:53,750 --> 00:10:55,429 como 1 o tecla pulsada 263 00:10:55,429 --> 00:10:57,590 pero sí que podemos decir de alguna forma 264 00:10:57,590 --> 00:10:59,330 que si estás dando adelante y aparte 265 00:10:59,330 --> 00:11:01,649 pues por ejemplo pulsas el shift 266 00:11:01,649 --> 00:11:03,649 valga 2 y entonces 267 00:11:03,649 --> 00:11:05,070 el blend tree irá al 2 268 00:11:05,070 --> 00:11:07,289 ¿vale? vale, vale 269 00:11:07,289 --> 00:11:08,690 si quieres 270 00:11:08,690 --> 00:11:11,649 lo hago yo o prefieres que 271 00:11:11,649 --> 00:11:12,750 lo hagamos contigo, lo digo 272 00:11:12,750 --> 00:11:13,970 es decir 273 00:11:13,970 --> 00:11:16,710 que no sé que es más ágil 274 00:11:16,710 --> 00:11:19,230 yo creo que es más ágil si lo voy haciendo contigo 275 00:11:19,230 --> 00:11:20,870 ah, vale 276 00:11:20,870 --> 00:11:22,750 o prefieres que vea como lo hago yo 277 00:11:22,750 --> 00:11:33,710 Sí, es que ¿sabes qué pasa? Que estoy más pendiente de lo que me estás diciendo que realmente verlo y así me quedo yo con el... 278 00:11:33,710 --> 00:11:44,730 Venga, pues vamos a ello. Lo del mixamo, por ejemplo, no lo has intentado, ¿no? Lo digo a hacer algo con mixamo del personaje. Estás usando el armature, ¿no? Básicamente de... 279 00:11:44,730 --> 00:11:53,129 si he visto si he visto que hay los apuntes como lo descargarlo y también 280 00:11:53,129 --> 00:12:02,370 he visto una cosa que no he entendido muy bien que es que pone por ejemplo 281 00:12:02,370 --> 00:12:11,710 aquí no por ejemplo si tú el muñeco quieres que meta la mano en para como 282 00:12:11,710 --> 00:12:20,929 para desenfundar, como que había que tener cuidado de no meterlo entre las mallas o... 283 00:12:20,929 --> 00:12:27,570 Vale, vale, venga, pues vamos a hacer una cosa, dale otra vez al botón de dejar de 284 00:12:27,570 --> 00:12:35,389 compartir y comparto yo, vale, entonces, a ver, me encantaría hacerlo, vale, de hecho, 285 00:12:35,909 --> 00:12:40,230 si me das un segundo, yo tengo otros personajes, pero incluso para que sea con el mismo me 286 00:12:40,230 --> 00:12:45,570 lo bajo de los apuntes el que estás usando tú vale y lo hacemos juntos y así al menos lo que 287 00:12:45,570 --> 00:12:51,330 es el enfoque primero lo vemos juntos dame un segundo porque esto estaba en dame en el tema 288 00:12:51,330 --> 00:12:59,629 6 y si cuando se explicaba lo que era el ejemplo del carácter controller si no me equivoco pero 289 00:12:59,629 --> 00:13:09,940 bajo vale dame un segundo que tardo poco vale vale el que entiendo que estás usando es un 290 00:13:09,940 --> 00:13:18,700 paquetes que se llama izan estándar a sets verdad no me bajé el izan y luego 291 00:13:18,700 --> 00:13:24,860 como no sabía cómo me lío un poco porque había que cambiar tenía mal como la 292 00:13:24,860 --> 00:13:32,980 cadera y el esternón y tal pues luego me bajé el otro el de llama armature si 293 00:13:32,980 --> 00:13:39,519 los starter assets vale sí lo hacemos con el izan que en el fondo 294 00:13:39,519 --> 00:14:11,320 es lo mismo? Ah, vale, sí. Vale, lo digo porque el otro hay que bajarlo del asset store, ¿vale? Y tarda un poquito más. Ah, bueno, no pasa nada. Vale, entonces, dame un segundiete, que lo que sí voy a hacer es otro proyecto distinto. Bueno, en realidad voy a hacer otra escena y ya está. Un segundo. Vale, la cosa es eso, que en los vídeos habla de valores intermedios, pero aquí nada, es un poco lo que también nos está 295 00:14:11,340 --> 00:14:13,340 liando 296 00:14:13,340 --> 00:14:14,580 entonces 297 00:14:14,580 --> 00:14:17,279 ahora mismo 298 00:14:17,279 --> 00:14:20,399 voy a crear una nueva escena 299 00:14:20,399 --> 00:14:21,600 que se va a llamar 300 00:14:21,600 --> 00:14:23,139 tutorial, por ejemplo 301 00:14:23,139 --> 00:14:26,039 y aquí voy a importar 302 00:14:26,039 --> 00:14:27,899 el paquete 303 00:14:27,899 --> 00:14:28,620 de Izan 304 00:14:28,620 --> 00:14:29,919 un segundo 305 00:14:29,919 --> 00:14:36,879 importo 306 00:14:36,879 --> 00:14:44,720 y me lo ha metido aquí un poco 307 00:14:44,720 --> 00:14:48,580 me ha juntado un poco todo, pero bueno 308 00:14:48,580 --> 00:14:50,139 por aquí tiene que estar 309 00:14:50,139 --> 00:14:53,179 Character, third person 310 00:14:53,179 --> 00:14:54,659 Models, Ethan 311 00:14:54,659 --> 00:14:56,940 Vale, voy a poner un plano 312 00:14:56,940 --> 00:14:59,179 Que lo suyo es hacer 313 00:14:59,179 --> 00:14:59,740 Un 314 00:14:59,740 --> 00:15:01,720 Un paisaje 315 00:15:01,720 --> 00:15:04,240 De hecho, mira, voy a hacer un 316 00:15:04,240 --> 00:15:06,700 Un terreno, terrain test 317 00:15:06,700 --> 00:15:08,679 Esto más o menos si lo sigo haciendo 318 00:15:08,679 --> 00:15:10,840 Voy a hacer uno de 500 por 500, así rápidamente 319 00:15:10,840 --> 00:15:12,600 Que no tenga más, vale 320 00:15:12,600 --> 00:15:14,379 Y pongo a Ethan aquí 321 00:15:14,379 --> 00:15:17,220 Vamos a poner aquí a Ethan 322 00:15:17,220 --> 00:15:19,480 Bueno, se nos ha quedado ahí pequeñete 323 00:15:19,480 --> 00:15:22,700 pero da igual, ¿vale? Va a estar todo con sus colorines. 324 00:15:23,100 --> 00:15:26,440 Vale, entonces, este personaje, que pasará lo mismo que Izan, 325 00:15:26,539 --> 00:15:32,399 luego es un FBX que dentro tiene, aparte de la malla y las texturas, etc., 326 00:15:32,399 --> 00:15:39,740 lo que se llama el armature, que es el rig, es decir, la distribución de huesos, etc., 327 00:15:39,740 --> 00:15:42,820 que viene aquí ya como configurado, con todos los huesos. 328 00:15:43,200 --> 00:15:46,519 Esa es la diferencia o la clave de que Mixamo ayuda mucho. 329 00:15:46,519 --> 00:16:02,240 En el caso de que tengáis un personaje que hayáis modelado, pues por ejemplo tenéis este personaje pero no lo tenéis rigado, pues a lo mejor lo podéis meter en Mixamo y ya os da toda la estructura de esqueleto, que es algo bastante complejo de hacer directamente en un software de 3D. 330 00:16:02,240 --> 00:16:24,899 Una vez tenemos ya el avatar, que el avatar es esa estructura de huesos ya bien vinculados con las distintas articulaciones y tal, lo que hacemos es ese controller, por ejemplo, lo voy a hacer aquí un poco de aquella manera, ese controller, es decir, me refiero que lo voy a hacer aquí todo junto, que por ejemplo en este caso va a ser Izan. 331 00:16:24,899 --> 00:16:49,700 Voy rápido porque entiendo que esto es un poco lo que ya ha sido trabajando, ¿vale? Cuando tenemos un personaje y queremos que tenga esos parámetros, bueno, esto es con otro animator distinto, ¿vale? Pero ese animator se corresponde con uno que está en otro lado, pero en este caso vamos a querer usar uno que he hecho doble clic, que es el de Ethan, que está esperando a que hagamos algo con él, ¿vale? 332 00:16:49,700 --> 00:16:59,960 Lo que queremos para que funcione es que todo lo que trabajemos aquí dentro, pues tendrá que el componente animator, pues que estar vinculado a este objeto, ¿vale? 333 00:17:00,700 --> 00:17:08,380 Entonces, ahora mismo tenemos este personaje y yo tengo por aquí diferentes animaciones, ¿vale? 334 00:17:08,799 --> 00:17:14,579 Que lo mismo, en Mixamo se pueden ir bajando muchas, pero que tenemos aquí pues preparadas para ir usando, ¿vale? 335 00:17:14,579 --> 00:17:21,259 Son distintas animaciones, pues, por ejemplo, a ver qué nombre tenemos, con control y ruleta, ¿vale? 336 00:17:21,720 --> 00:17:24,700 Hago esto de que se pueda leer los nombres para no volvernos locos. 337 00:17:25,500 --> 00:17:26,000 Entonces, dime. 338 00:17:26,000 --> 00:17:35,779 Una pregunta, o sea, tú en Misamo vas, te descargas lo que son las animaciones solo, te las importas al proyecto este, ¿no? 339 00:17:35,859 --> 00:17:36,359 Eso es. 340 00:17:36,619 --> 00:17:43,160 Y de aquí te lo tienes que meter en la carpeta de personaje, ¿no? 341 00:17:43,160 --> 00:17:45,240 Lo pueden meter en cualquier punto de los assets. 342 00:17:45,240 --> 00:17:47,759 En cualquier carpeta dentro de... 343 00:17:47,759 --> 00:17:49,660 De los assets, exacto, en donde sea. 344 00:17:50,180 --> 00:17:53,500 De hecho, ahora mismo se me ha importado aquí en animación, 345 00:17:53,839 --> 00:17:54,920 porque como he importado un paquete, 346 00:17:55,039 --> 00:17:56,680 se me ha hecho como otra estructura aquí 347 00:17:56,680 --> 00:17:58,000 y luego, si te fijas, 348 00:17:58,059 --> 00:18:01,380 yo tenía otras animaciones antes de otros personajes, ¿vale? 349 00:18:01,380 --> 00:18:05,380 Es decir, que el punto donde esté no importa tanto, ¿sí? 350 00:18:05,500 --> 00:18:08,380 Lo que sí que importa es que lo que va a bajar, 351 00:18:08,539 --> 00:18:11,220 aunque le demos al exportar de Mixamo, 352 00:18:11,599 --> 00:18:13,079 le digamos que no queremos la skin, 353 00:18:13,160 --> 00:18:35,160 Es decir, no queremos que tenga geometría, sino solo lo que es el clip de animación, aún así te lo emparqueta en un FBX, ¿vale? Y aunque no tenga animación, digamos, una geometría, una malla, ¿vale? No sale aquí el personaje en sí, lo que sí nos da es una especie de rig ya hecho que coincide con la animación que tenemos aquí, ¿vale? 354 00:18:35,160 --> 00:18:37,880 Que es este iconito que tenemos aquí de animaciones, ¿vale? 355 00:18:38,259 --> 00:18:40,160 Este es el icono de avatar y este el de animaciones. 356 00:18:40,160 --> 00:18:43,940 De hecho, si damos doble clic a uno, a mí se me ha abierto la otra pantalla, 357 00:18:44,079 --> 00:18:52,380 pero te abrirá lo que es la animación relacionada con todos los diferentes elementos que ha generado para el rig, ¿no? 358 00:18:52,539 --> 00:18:57,940 ¿Y esto se corresponde con la estructura interna de tu personaje, de tu avatar? 359 00:18:58,359 --> 00:18:59,259 Ahí está la clave. 360 00:18:59,259 --> 00:19:12,920 Que si tú el avatar lo haces con Mixamo, luego hagas el personaje que hagas y saques la animación que hagas, al final, cómo nombra a los huesos y cómo los distribuye son siempre los mismos. 361 00:19:13,119 --> 00:19:19,720 Entonces, cualquier animación que sacas de Mixamo es compatible, ¿vale? Porque digamos que respeta la misma estructura. 362 00:19:19,720 --> 00:19:22,460 Si ya lo empiezas a coger de otros puntos 363 00:19:22,460 --> 00:19:24,440 Tienes que ir haciendo coincidir 364 00:19:24,440 --> 00:19:26,660 Pues que la articulación 365 00:19:26,660 --> 00:19:27,819 De ese objeto 366 00:19:27,819 --> 00:19:29,680 Pues se corresponda con este avatar 367 00:19:29,680 --> 00:19:32,319 Pero la gracia es que si tú haces un personaje 368 00:19:32,319 --> 00:19:33,619 Y ya lo rigueas 369 00:19:33,619 --> 00:19:35,200 Por ejemplo en Mixamo 370 00:19:35,200 --> 00:19:38,259 El avatar de todas las animaciones que vas sacando de Mixamo 371 00:19:38,259 --> 00:19:39,160 Es la misma 372 00:19:39,160 --> 00:19:41,779 Entonces digamos que todas se dirigen 373 00:19:41,779 --> 00:19:43,339 A una misma estructura de huesos 374 00:19:43,339 --> 00:19:45,759 ¿Esto por qué lo digo? 375 00:19:46,019 --> 00:19:47,140 Porque también 376 00:19:47,140 --> 00:19:49,880 cuando tenemos estos distintos 377 00:19:49,880 --> 00:19:51,539 FBX 378 00:19:51,539 --> 00:19:53,480 que en realidad son solo animaciones 379 00:19:53,480 --> 00:19:54,599 aunque sean FBX 380 00:19:54,599 --> 00:19:57,480 por eso hay que hacer este paso intermedio 381 00:19:57,480 --> 00:19:59,500 que decía de, bueno aparte de ajustar 382 00:19:59,500 --> 00:20:01,420 tamaño y tal, que en principio si todos son 383 00:20:01,420 --> 00:20:03,259 los mismos no habría que hacer nada 384 00:20:03,259 --> 00:20:05,480 pero en rig sí que hay que decirle 385 00:20:05,480 --> 00:20:07,299 ¿vale? porque esto es una de las cosas 386 00:20:07,299 --> 00:20:08,799 que se dice en los apuntes 387 00:20:08,799 --> 00:20:10,799 que es que tiene que ser un hombre 388 00:20:10,799 --> 00:20:12,880 vamos, un hombre, una mujer, un vípero 389 00:20:12,880 --> 00:20:14,920 una persona, vaya, entonces 390 00:20:14,920 --> 00:20:17,039 es una de las limitaciones que tiene 391 00:20:17,039 --> 00:20:41,279 Pero lo bueno es que tú puedes decirle que esta animación, que en este caso, pues he cogido una cualquiera, pero es la de salto y caída, por lo que veo, ¿vale? Tú puedes decirle, vale, yo no quiero que coja su propio avatar, quiero que respete el avatar original que yo estoy usando, bueno, me pide que le diga ok, pero el avatar original que habría que buscar, que yo estoy usando, y además es este, en el animator. 392 00:20:41,279 --> 00:21:01,180 Bueno, me dice que aplicar, ¿vale? Este cambio, pero yo en el animator ya tengo un avatar, ¿vale? Que es el que está configurado para ese personaje. Si yo estoy usando un avatar, una estructura de rig hecha en Mixamo, todas las animaciones están pensadas para ese, para ese, para esa animación, ¿vale? 393 00:21:01,180 --> 00:21:25,099 Entonces, por ejemplo, aquí voy a buscar el de, un segundito, el control aquí, primero la de Idle, que es como digamos la que más nos interesa y de hecho, voy a decir que lo coja de, de Izan Avatar, vale, vamos a, ¿dónde está? Que se me ha ido, esta. 394 00:21:25,099 --> 00:21:27,740 Que además, si te metes en la animación 395 00:21:27,740 --> 00:21:30,619 Aquí te sale con otro elemento 396 00:21:30,619 --> 00:21:32,700 Porque no le hemos todavía asignado ningún modelo 397 00:21:32,700 --> 00:21:35,900 Pues se ve aquí la miniatura de qué hace esa animación 398 00:21:35,900 --> 00:21:36,119 ¿Vale? 399 00:21:36,859 --> 00:21:38,039 Vale, entonces 400 00:21:38,039 --> 00:21:41,000 Si te fijas, para asignar qué hace esta animación 401 00:21:41,000 --> 00:21:42,220 Hay que ir al FBX padre 402 00:21:42,220 --> 00:21:45,079 Y decirle, yo quiero que esto lo coja de otro avatar 403 00:21:45,079 --> 00:21:46,519 Que es el de Ethan 404 00:21:46,519 --> 00:21:47,940 Y espero que no esté ese 405 00:21:47,940 --> 00:21:49,140 El de Ethan, ¿vale? 406 00:21:49,559 --> 00:21:50,180 Y lo aplico 407 00:21:50,180 --> 00:21:52,240 ¿Esto qué significa? 408 00:21:52,359 --> 00:21:54,299 Que si yo ahora, vamos a hacer la prueba 409 00:21:54,299 --> 00:21:57,000 Todavía no tengo nada en el 410 00:21:57,000 --> 00:21:59,400 Si yo no tengo nada en el animator 411 00:21:59,400 --> 00:21:59,700 ¿Vale? 412 00:21:59,819 --> 00:22:02,140 Y me voy a verlo en escena 413 00:22:02,140 --> 00:22:03,339 Cuando le de a play 414 00:22:03,339 --> 00:22:06,019 Pues está quieto 415 00:22:06,019 --> 00:22:07,519 Si te fijas, no está haciendo nada 416 00:22:07,519 --> 00:22:10,059 Está como encogido, es decir, los huesos se han encogido 417 00:22:10,059 --> 00:22:11,539 Aquí no hay ninguna animación 418 00:22:11,539 --> 00:22:14,599 Que se esté desencadenando 419 00:22:14,599 --> 00:22:15,960 ¿Qué puedo hacer yo ahora? 420 00:22:16,380 --> 00:22:18,400 Decir, vale, yo ya he configurado la de 421 00:22:18,400 --> 00:22:19,779 A ver, ¿dónde lo he puesto? 422 00:22:19,880 --> 00:22:20,619 La de idle 423 00:22:20,619 --> 00:22:25,380 Y yo puedo 424 00:22:25,380 --> 00:22:29,039 ¿Dónde me la ha dejado ahora? 425 00:22:33,230 --> 00:22:35,289 Espera, porque no me lo ha cogido 426 00:22:35,289 --> 00:22:39,079 Un segundín, ¿eh? 427 00:22:44,250 --> 00:22:46,549 Claro, el problema es que estoy juntando 428 00:22:46,549 --> 00:22:48,130 los avatares de Ethan con el de 429 00:22:48,130 --> 00:22:49,710 Standards Assets 430 00:22:49,710 --> 00:22:51,869 Entonces, lo que vamos a hacer 431 00:22:51,869 --> 00:22:54,410 es pensar otra cosa, que es que 432 00:22:54,410 --> 00:22:56,250 este avatar del que estoy usando 433 00:22:56,250 --> 00:22:57,289 estas animaciones 434 00:22:57,289 --> 00:23:00,369 porque este, por el que me está haciendo 435 00:23:00,369 --> 00:23:02,430 aquí el mismatch, lo que vamos a decir es 436 00:23:02,430 --> 00:23:03,609 que sea esta de Idle 437 00:23:03,609 --> 00:23:04,849 Este de idle 438 00:23:04,849 --> 00:23:07,430 El que defina el avatar de este modelo 439 00:23:07,430 --> 00:23:08,130 ¿Vale? 440 00:23:08,930 --> 00:23:11,410 Entonces al darle aquí nos ha creado este avatar 441 00:23:11,410 --> 00:23:13,910 Y le voy a decir que el que se use 442 00:23:13,910 --> 00:23:15,589 En las animaciones 443 00:23:15,589 --> 00:23:16,950 Sea este que tengo aquí 444 00:23:16,950 --> 00:23:18,549 A ver ahora cuando le de 445 00:23:18,549 --> 00:23:20,890 Lo que pasa es que como estoy juntando 446 00:23:20,890 --> 00:23:22,769 De dos sitios 447 00:23:22,769 --> 00:23:25,509 Porque estoy usando el izan y otras animaciones que tenía 448 00:23:25,509 --> 00:23:27,589 Se me está volviendo un poco loco 449 00:23:27,589 --> 00:23:29,250 Pero mira, ahora está quieto sin hacer nada 450 00:23:29,250 --> 00:23:29,450 ¿Vale? 451 00:23:29,950 --> 00:23:32,049 Si yo ahora le digo en el animator 452 00:23:32,049 --> 00:23:34,569 que coja esta animación 453 00:23:34,569 --> 00:23:36,269 y se desencadene por defecto 454 00:23:36,269 --> 00:23:38,390 ya por defecto vamos a tener 455 00:23:38,390 --> 00:23:39,890 que el personaje está 456 00:23:39,890 --> 00:23:41,029 y si vamos aquí 457 00:23:41,029 --> 00:23:42,690 a ver 458 00:23:42,690 --> 00:23:49,759 si le damos al play 459 00:23:49,759 --> 00:23:51,759 este personaje 460 00:23:51,759 --> 00:23:53,859 debería estar haciendo el 461 00:23:53,859 --> 00:23:55,880 idle, que es el que tenemos aquí 462 00:23:55,880 --> 00:23:57,559 ¿por qué no lo está haciendo? 463 00:23:58,819 --> 00:23:59,740 vemos aquí 464 00:23:59,740 --> 00:24:02,279 ¿dónde está cogiendo el? 465 00:24:02,279 --> 00:24:09,740 Un segundo 466 00:24:09,740 --> 00:24:15,559 Pues vaya tela 467 00:24:15,559 --> 00:24:17,480 Te estoy aquí soltando una chapa 468 00:24:17,480 --> 00:24:18,180 Y no me hace ni caso 469 00:24:18,180 --> 00:24:19,400 A ver, un segundo 470 00:24:19,400 --> 00:24:29,400 Está habiendo un problema con el avatar que está viendo 471 00:24:29,400 --> 00:24:33,299 A ver, modelos 472 00:24:33,299 --> 00:24:35,519 Izan, quiero el avatar de Izan 473 00:24:35,519 --> 00:24:37,539 Voy a volver a esto, que es el que está dando el problema 474 00:24:37,539 --> 00:24:39,000 Lo cojo de ahí 475 00:24:39,000 --> 00:24:41,619 Y las animaciones de Izan 476 00:24:41,619 --> 00:24:42,880 Pues yo lo que quiero es 477 00:24:42,880 --> 00:24:45,720 Que esta coja, lo voy a volver a hacer, ¿vale? 478 00:24:45,799 --> 00:24:48,539 Perdona, lo voy a volver a coger del Izan 479 00:24:48,539 --> 00:24:49,980 Lo aplico 480 00:24:49,980 --> 00:24:51,740 ¿Y por qué me da fallo? 481 00:24:51,880 --> 00:24:53,259 Si es que está cogiendo el mismo 482 00:24:53,259 --> 00:24:56,779 Esto es porque es de dos elementos 483 00:24:56,779 --> 00:24:59,539 Que tienen una estructura de huesos distinta 484 00:24:59,539 --> 00:25:01,420 Entonces no me lo está cogiendo bien 485 00:25:01,420 --> 00:25:02,960 Pero debería estar cogiéndolo bien 486 00:25:02,960 --> 00:25:04,579 Porque es del mismo paquete 487 00:25:04,579 --> 00:25:06,079 Entonces 488 00:25:06,079 --> 00:25:11,900 Voy a hacer otra cosa 489 00:25:11,900 --> 00:25:15,500 si no, hacemos la solución del mixamo 490 00:25:15,500 --> 00:25:17,299 y ya verás como con eso se soluciona 491 00:25:17,299 --> 00:25:18,400 pero 492 00:25:18,400 --> 00:25:38,619 vamos a hacer una cosa 493 00:25:38,619 --> 00:25:39,660 voy a hacer un proyecto nuevo 494 00:25:39,660 --> 00:25:42,400 porque se me está mezclando lo de todos los proyectos 495 00:25:42,400 --> 00:25:44,259 y creo que eso es uno de los problemas 496 00:25:44,259 --> 00:25:46,900 a ver, voy a 497 00:25:46,900 --> 00:25:49,400 voy a hacer un nuevo proyecto 498 00:25:49,400 --> 00:25:51,180 estoy abriendo el Unity Hub 499 00:25:51,180 --> 00:25:52,099 hago un nuevo proyecto 500 00:25:52,099 --> 00:25:54,099 en la versión que estamos usando siempre 501 00:25:54,099 --> 00:25:55,299 el 3D 502 00:25:55,299 --> 00:25:58,480 Proyecto Tutoría 503 00:25:58,480 --> 00:26:00,799 Vale, y lo voy a guardar en 504 00:26:00,799 --> 00:26:03,319 En el escritorio mismo 505 00:26:03,319 --> 00:26:05,539 Aquí, Proyecto Tutoría 506 00:26:05,539 --> 00:26:08,819 Tutoría 507 00:26:08,819 --> 00:26:09,839 Ahí está 508 00:26:09,839 --> 00:26:12,819 Ahí está, y lo creo 509 00:26:12,819 --> 00:26:13,720 Vale 510 00:26:13,720 --> 00:26:17,240 Y vamos a empezar rápidamente a hacerlo 511 00:26:17,240 --> 00:26:18,920 Porque algo ha fallado 512 00:26:18,920 --> 00:26:19,539 Y creo que es 513 00:26:19,539 --> 00:26:22,859 Están mezclando distintos avatares 514 00:26:22,859 --> 00:26:24,380 Sí, ¿no? 515 00:26:25,740 --> 00:26:26,480 A ver 516 00:26:26,480 --> 00:26:29,339 vuelvo a importar el paquete 517 00:26:29,339 --> 00:26:32,720 inserto todo 518 00:26:32,720 --> 00:26:35,380 vale, debería estar todo bien 519 00:26:35,380 --> 00:26:36,220 importo 520 00:26:36,220 --> 00:26:39,390 vale, entonces 521 00:26:39,390 --> 00:26:41,990 si nos metemos en esta escena 522 00:26:41,990 --> 00:26:44,509 vale, tenemos aquí al personaje 523 00:26:44,509 --> 00:26:48,009 que el que vamos a usar es 524 00:26:48,009 --> 00:26:49,750 el modelo de Ethan 525 00:26:49,750 --> 00:26:52,990 y Ethan tiene su propio avatar, etc 526 00:26:52,990 --> 00:26:54,029 lo vuelvo a meter 527 00:26:54,029 --> 00:26:56,990 hago un terreno 528 00:26:56,990 --> 00:27:04,069 como he hecho antes lo hago todo rápido bueno habría que habría que importar las terrain tools 529 00:27:04,069 --> 00:27:13,170 entonces voy a hacer un plano ahí está con izan ahí puesto vale y lo tenemos aquí el 530 00:27:13,170 --> 00:27:21,549 animator controller lo voy a crear de cero animator controller el personaje ahora que 531 00:27:21,549 --> 00:27:28,890 no hay más, ponemos ese, y aquí tenemos al personaje. Vale, el avatar de Ethan tiene 532 00:27:28,890 --> 00:27:36,470 esto seleccionado ya para poder entrar. Entonces, si vamos a las animaciones, y por ejemplo 533 00:27:36,470 --> 00:27:43,490 vemos el Idle, vamos a volver a ir al Idle, lo que queremos es que este modelo, esta animación, 534 00:27:43,670 --> 00:27:50,630 etcétera, ¿vale? Esta animación se configure en Idle, lo coja de otro avatar, que es el 535 00:27:50,630 --> 00:28:01,589 de izan y lo aplicamos y me vuelve a decir lo mismo y esto es por qué entonces no está 536 00:28:01,589 --> 00:28:16,440 cogiendo bien este avatar y por qué si además es que este modelo lo chequeé antes de subirlo 537 00:28:16,440 --> 00:28:29,869 iba todo bien a ver pero evidentemente algo no está yendo todo bien porque a ver si usamos 538 00:28:29,869 --> 00:28:40,640 Y está cogiendo el avatar de Ethan 539 00:28:40,640 --> 00:28:42,039 Y aquí sí lo está haciendo 540 00:28:42,039 --> 00:28:46,230 Vale, un segundete 541 00:28:46,230 --> 00:28:52,849 Un segundo, perdona 542 00:28:52,849 --> 00:28:53,730 Sí, sí 543 00:28:53,730 --> 00:28:58,109 Claro, pero sí que lo está cogiendo 544 00:28:58,109 --> 00:28:59,829 De este modelo 545 00:28:59,829 --> 00:29:02,390 Vale, bueno, tiene pinta que 546 00:29:02,390 --> 00:29:03,809 Este no se hizo en Mixamo 547 00:29:03,809 --> 00:29:05,890 Y como que en vez de vincularlo 548 00:29:05,890 --> 00:29:07,769 con el avatar de otro objeto 549 00:29:07,769 --> 00:29:09,789 hay que confiar en que 550 00:29:09,789 --> 00:29:11,250 cada una de las animaciones 551 00:29:11,250 --> 00:29:14,009 está hecha con el mismo 552 00:29:14,009 --> 00:29:16,029 rig y si no, no lo está 553 00:29:16,029 --> 00:29:17,450 cogiendo bien. A ver, voy a hacer... 554 00:29:17,450 --> 00:29:19,890 Este es de Unity, no sé si... 555 00:29:20,569 --> 00:29:21,769 Este objeto... 556 00:29:21,769 --> 00:29:23,150 El humanoide... 557 00:29:23,150 --> 00:29:25,670 Este objeto viene de 558 00:29:25,670 --> 00:29:26,990 un paquete que os he dado yo. 559 00:29:27,470 --> 00:29:29,430 Sí, pero el otro 560 00:29:29,430 --> 00:29:31,890 que estaba usando yo es de... 561 00:29:32,609 --> 00:29:33,210 Sí, el otro sí. 562 00:29:33,210 --> 00:29:44,910 Sí, sí, el problema a veces es saber, cuando te vienen de terceros, por eso lo de Mixamo ayuda, cuando vienen de terceros es saber si la estructura de huesos de todas las animaciones coincide. 563 00:29:45,390 --> 00:29:58,170 Es decir, si... a ver, estoy perdiendo mucho tiempo en esto y estamos sin ver lo que importa, pero simplemente para que veamos lo que pasa, ¿vale? 564 00:29:58,170 --> 00:30:08,430 Porque esta estructura habrá sido hecha en varios objetos distintos, ¿vale? Y no todos respetan este avatar, no todos, digamos, que se asocien con este avatar. 565 00:30:08,970 --> 00:30:20,690 Entonces, cuando yo, por ejemplo, quiero, aunque lo normal sería decir que coja la estructura del objeto padre, aquí realmente lo que habrá que decirle es que respete la de su propio objeto. 566 00:30:20,690 --> 00:30:32,789 Y aunque no se esté referenciando directamente con el avatar, y voy a ponerle la animación, a ver, ¿dónde he hecho yo la animación? 567 00:30:32,789 --> 00:30:56,990 He hecho yo un personaje, un controller, que cuando se junta aquí, ahora sí que cuando me meto en ese controller y meto esa animación que le estoy diciendo, coge tu propia animación de tu propio rig, ahora sí que cuando lo arrastro aquí debería responder. 568 00:30:56,990 --> 00:30:59,009 y ahí está, vale 569 00:30:59,009 --> 00:31:00,730 entonces es algo 570 00:31:00,730 --> 00:31:02,650 que a veces pasa que es 571 00:31:02,650 --> 00:31:05,089 si estamos vinculando, digamos 572 00:31:05,089 --> 00:31:07,369 todas las animaciones a un mismo rig, como cuando 573 00:31:07,369 --> 00:31:09,269 lo que explico en el vídeo que hay en el tema 574 00:31:09,269 --> 00:31:11,210 cuando estamos sacando 575 00:31:11,210 --> 00:31:12,849 las animaciones a partir de Mixamo 576 00:31:12,849 --> 00:31:14,970 o si nos pasan distintos 577 00:31:14,970 --> 00:31:16,630 digamos FBX con animaciones 578 00:31:16,630 --> 00:31:18,970 pero digamos que se han sacado de manera 579 00:31:18,970 --> 00:31:21,029 independiente, pues no 580 00:31:21,029 --> 00:31:22,910 puede haber problemas de que no se vincule 581 00:31:22,910 --> 00:31:25,089 y es lo que está pasando aquí, en tu caso 582 00:31:25,089 --> 00:31:27,130 yo imagino que si eso, que si buscas 583 00:31:27,130 --> 00:31:27,670 el avatar 584 00:31:27,670 --> 00:31:30,349 el mismo avatar que se 585 00:31:30,349 --> 00:31:32,470 está vinculando como padre 586 00:31:32,470 --> 00:31:35,289 en el animator, debería funcionar bien 587 00:31:35,289 --> 00:31:35,990 ¿vale? 588 00:31:36,509 --> 00:31:37,750 si no, a ver 589 00:31:37,750 --> 00:31:41,190 si me da 5 minutos, me bajo el armature 590 00:31:41,190 --> 00:31:42,670 y lo hacemos exactamente igual 591 00:31:42,670 --> 00:31:43,789 que igual es mejor 592 00:31:43,789 --> 00:31:46,809 porque si no, me voy a 593 00:31:46,809 --> 00:31:49,109 hablar de casos que igual hay que reconfigurar 594 00:31:49,109 --> 00:31:51,029 cosas, que es que es verdad que esto es 595 00:31:51,029 --> 00:31:52,910 peliagudo, hay que ir probando 596 00:31:52,910 --> 00:31:54,910 también a veces, hasta que vemos que 597 00:31:54,910 --> 00:31:56,910 va respondiendo las cosas. Pero 598 00:31:56,910 --> 00:31:58,569 si quieres, me bajo ese 599 00:31:58,569 --> 00:32:00,509 paquete y lo vemos juntos, ¿te parece? 600 00:32:02,230 --> 00:32:03,150 Lo que quieras. 601 00:32:03,410 --> 00:32:04,849 O sea, yo lo que tenía dudas 602 00:32:04,849 --> 00:32:05,650 es en el de 603 00:32:05,650 --> 00:32:08,509 menos uno, cero, uno, pero... 604 00:32:08,509 --> 00:32:10,329 Vale. Sí, bueno, 605 00:32:10,650 --> 00:32:12,609 si no te lo explico aquí con este, sí, porque 606 00:32:12,609 --> 00:32:14,569 en el otro ya conseguí. Vale, vale, vale. 607 00:32:14,789 --> 00:32:16,589 Que como quieras, sabes que... 608 00:32:16,589 --> 00:32:17,890 Vamos a hacerlo con este. Me da igual. 609 00:32:18,390 --> 00:32:20,410 Entonces, lo que vamos a hacer aquí, ¿vale? 610 00:32:20,470 --> 00:32:22,230 Para ir haciéndolo rápido, es un blend tree 611 00:32:22,230 --> 00:32:24,589 que se va a llamar, cuando me meto, 612 00:32:24,589 --> 00:32:32,650 pues que se va a llamar correr, ¿no? Tú lo habías llamado caminado, yo que sé, lo que sea, da igual, esto en realidad no importa mucho. 613 00:32:33,490 --> 00:32:40,970 Lo que sí importa es este parámetro, que es con el que vamos a vincular el input que vayamos haciendo, ¿vale? 614 00:32:40,990 --> 00:32:51,109 Y entonces vamos a tener un estado que será el de idle, lo pasa que como ya lo he usado, lo voy a borrar de aquí, 615 00:32:51,109 --> 00:33:16,569 Y me meto aquí y en el de idle, a ver, porque primero habrá que decirle que al blend tree hay que meterle las animaciones, ¿vale? Y en este caso tú lo que habías hecho y lo que hacía Álvaro, ¿no? Que esta es una referencia es que está la de parado, la de caminar para adelante, que por ejemplo sería aquí y habrá que hacer esta nueva configuración de crear por este modelo, ¿vale? 616 00:33:16,569 --> 00:33:21,029 Ya está configurada, que es andar hacia adelante, ¿vale? 617 00:33:21,490 --> 00:33:26,890 Aquí hay una cosa importante, que es que si te fijas, que también lo digo en el vídeo, 618 00:33:27,390 --> 00:33:33,349 si te fijas al reproducir el clip este de animación, 619 00:33:33,529 --> 00:33:36,829 vemos que el personaje no es solo que haga como el ciclo de caminado, 620 00:33:37,230 --> 00:33:42,230 sino que aparte se está desplazando, porque ves que la malla del suelo se está moviendo, ¿vale? 621 00:33:42,230 --> 00:33:44,230 aquí hay un detalle a tener en cuenta 622 00:33:44,230 --> 00:33:46,750 que es que cuando la animación ya tiene 623 00:33:46,750 --> 00:33:48,349 su propio movimiento 624 00:33:48,349 --> 00:33:50,690 el personaje se va a mover 625 00:33:50,690 --> 00:33:51,890 en este caso hacia adelante 626 00:33:51,890 --> 00:33:53,430 igual que hace aquí 627 00:33:53,430 --> 00:33:56,009 la escena no se me mueve 628 00:33:56,009 --> 00:33:58,829 anda pero no se desplaza 629 00:33:58,829 --> 00:33:59,750 no se desplaza 630 00:33:59,750 --> 00:34:02,509 eso en principio es porque 631 00:34:02,509 --> 00:34:04,910 entonces tiene desactivado 632 00:34:04,910 --> 00:34:06,609 y chequéalo en el animator 633 00:34:06,609 --> 00:34:08,809 esto de aplicar root motion, esto está desmarcado 634 00:34:08,809 --> 00:34:11,469 A ver 635 00:34:11,469 --> 00:34:13,809 Míralo un segundo, también sabe 636 00:34:13,809 --> 00:34:17,550 ¿Cuál has dicho? 637 00:34:17,769 --> 00:34:18,789 ¿El de debajo de la batalla? 638 00:34:19,690 --> 00:34:22,150 Está con el 639 00:34:22,150 --> 00:34:22,789 Chequeado 640 00:34:22,789 --> 00:34:23,650 ¿Está chequeado? 641 00:34:24,010 --> 00:34:27,710 Vale, ¿y tú has conseguido que el personaje anda y no avanza? 642 00:34:27,909 --> 00:34:28,170 Dices 643 00:34:28,170 --> 00:34:32,869 Sí 644 00:34:32,869 --> 00:34:36,210 Bueno, estamos hablando de una cosa un poco 645 00:34:36,210 --> 00:34:37,369 Absurda, perdóname 646 00:34:37,369 --> 00:34:40,170 Porque claro, yo estoy hablando de mi modelo, no del tuyo 647 00:34:40,170 --> 00:34:42,190 Que el tuyo en el caminado igual está en su sitio 648 00:34:42,190 --> 00:34:44,190 pero que en el vídeo se habla de que 649 00:34:44,190 --> 00:34:46,429 las propias animaciones pueden tener sus propios 650 00:34:46,429 --> 00:34:48,530 movimientos, si eso es así, habría que 651 00:34:48,530 --> 00:34:50,530 desactivar, lo digo porque nos puede distraer, habría que 652 00:34:50,530 --> 00:34:52,809 desactivar esto, de hecho yo lo voy a tener que desactivar 653 00:34:52,809 --> 00:34:54,050 en un segundo, pero 654 00:34:54,050 --> 00:34:56,550 lo digo porque hay que pensar, igual que 655 00:34:56,550 --> 00:34:58,570 pasaba en 2D, que lo que vamos a hacer 656 00:34:58,570 --> 00:35:00,389 por un lado es los movimientos 657 00:35:00,389 --> 00:35:02,510 como las animaciones que tienen los 658 00:35:02,510 --> 00:35:04,590 personajes, pero lo que es el desplazamiento 659 00:35:04,590 --> 00:35:06,230 en el espacio lo vamos a hacer por código 660 00:35:06,230 --> 00:35:07,690 con un translate, con un... 661 00:35:07,690 --> 00:35:10,210 Eso es lo que ponen los apuntes, que eso hay que 662 00:35:10,210 --> 00:35:12,590 quitarlo si tú lo quieres que se mueva 663 00:35:12,590 --> 00:35:14,090 por código. Eso es. 664 00:35:14,590 --> 00:35:16,250 Porque a veces podemos tener animaciones 665 00:35:16,250 --> 00:35:17,809 que es que la animación 666 00:35:17,809 --> 00:35:20,349 está moviéndose o que 667 00:35:20,349 --> 00:35:22,269 solo haga como que anda, pero el suelo está quieto. 668 00:35:22,889 --> 00:35:24,230 ¿Sabes lo que quiero decir? Vale. Sí. 669 00:35:24,710 --> 00:35:26,510 Eso es importante porque si no 670 00:35:26,510 --> 00:35:28,309 lo desmarcáramos en algún momento, decimos 671 00:35:28,309 --> 00:35:30,530 anda, ¿y por qué se está yendo para adelante? Y de hecho lo vamos 672 00:35:30,530 --> 00:35:32,250 a ver, ¿vale? Ahora vamos a ver cuándo lo hagamos. 673 00:35:32,769 --> 00:35:34,349 Vamos a decir, ¿y esto por qué se mueve? 674 00:35:34,389 --> 00:35:36,369 Si yo no le he dicho que se mueva. Y es porque la propia animación 675 00:35:36,369 --> 00:35:38,809 ya tiene movimiento. Igual que se mueven los brazos, 676 00:35:38,809 --> 00:35:41,369 pues está marcado que se mueva hacia adelante 677 00:35:41,369 --> 00:35:42,489 pero esto se 678 00:35:42,489 --> 00:35:45,349 consigue quitando la playroom motion 679 00:35:45,349 --> 00:35:46,949 y luego lo que se 680 00:35:46,949 --> 00:35:49,210 pone en el vídeo también, hay otro tipo 681 00:35:49,210 --> 00:35:50,510 de animaciones 682 00:35:50,510 --> 00:35:53,690 de la Y 683 00:35:53,690 --> 00:35:55,389 que en el ejemplo del vídeo por ejemplo 684 00:35:55,389 --> 00:35:57,269 se habla de la Y porque hay animaciones 685 00:35:57,269 --> 00:35:59,429 de salto que el personaje de verdad 686 00:35:59,429 --> 00:36:01,309 sube y lo que queremos nuevamente es 687 00:36:01,309 --> 00:36:03,170 que el impulso lo coja 688 00:36:03,170 --> 00:36:05,349 por código 689 00:36:05,349 --> 00:36:06,170 que le demos la fuerza 690 00:36:06,170 --> 00:36:29,909 Entonces esto es donde hay que ir chequeando estas configuraciones. Pero vamos con el blend tree. Vamos a ir poniendo las distintas animaciones. Tenemos la de estar en reposo, la de caminar. 691 00:36:29,909 --> 00:36:43,210 que a ver si me deja, que hay que ajuntarla, siempre la arrastro, pero hay que ponerla aquí, ¿vale? Y luego una que habrá aquí de correr, por ejemplo esta, que si yo la chequeo, pues corre y nuevamente también se mueve el suelo. 692 00:36:43,309 --> 00:36:53,670 Pero bueno, ahora vemos cómo solucionar eso. Entonces yo la pongo aquí, ¿vale? Y le voy a decir que no me los haga automático, sino que yo voy a poner el valor. 693 00:36:53,670 --> 00:36:56,210 Álvaro lo que tenía era algo como esto 694 00:36:56,210 --> 00:36:57,409 0, 0,5 y 1 695 00:36:57,409 --> 00:37:00,570 ¿Vale? Pero el problema, que yo para que camine 696 00:37:00,570 --> 00:37:02,269 Le voy a tener que poner un 1 697 00:37:02,269 --> 00:37:02,769 Que es 698 00:37:02,769 --> 00:37:06,010 Que se está cogiendo 699 00:37:06,010 --> 00:37:08,530 En un axis el máximo del axis 700 00:37:08,530 --> 00:37:09,829 Si lo cogemos con un axis 701 00:37:09,829 --> 00:37:12,170 Esto se puede coger de distintas formas 702 00:37:12,170 --> 00:37:14,730 Y lo que vamos a decirle es que el ran sea el 2 703 00:37:14,730 --> 00:37:16,449 ¿Vale? Para que cuando vayamos 704 00:37:16,449 --> 00:37:18,590 Pasando de uno a otro y le damos a play 705 00:37:18,590 --> 00:37:20,769 Pues si yo pulso 706 00:37:20,769 --> 00:37:21,250 La tecla 707 00:37:21,250 --> 00:37:35,250 Si yo pulso la tecla y esto va al 1, va caminando, pero si conseguimos que el valor que llegue a este parámetro blend, que es el que tenemos aquí, pero se llama blend porque es el que no se ha creado por defecto, pero vamos a poner caminado. 708 00:37:36,210 --> 00:37:42,150 Estamos diciendo que lo que entre en este parámetro sea lo que determine qué animación se desencadena. 709 00:37:42,929 --> 00:37:45,510 Y si está en el 2, pues irá en el 2. 710 00:37:46,969 --> 00:37:48,690 Entonces vamos al código ahora mismo. 711 00:37:48,690 --> 00:38:05,309 Hay que hacer un código básicamente para que detecte los inputs y detecte todo lo que vamos haciendo. Esto habría que meterlo en una carpeta un poquito más, pero lo voy haciendo un poco rápido para que no perdamos más tiempo. 712 00:38:05,309 --> 00:38:11,369 que ya bastante he perdido yo antes, hasta queda con esta combinación de armature, ¿vale? 713 00:38:11,469 --> 00:38:19,630 Tenemos este código y lo que vamos a querer, por un lado, es que esto afecte al animator, ¿verdad? 714 00:38:19,690 --> 00:38:25,650 Porque todos los códigos que vayamos poniendo que afecten a este parámetro, por ejemplo, 715 00:38:25,869 --> 00:38:28,190 están dentro del componente animator, ¿vale? 716 00:38:28,190 --> 00:38:44,929 Entonces, yo ya hago una variable que enseguida yo ya digo, yo voy a querer afectar al componente animator de este objeto. Para eso hay que hacer un getComponent del nombre de ese componente, que es el animator, ¿vale? 717 00:38:44,929 --> 00:39:01,369 Con esto ya, por ejemplo, podemos decir que en cierto momento se ponga un set float para, ¿cómo lo hemos llamado? Para caminado. Por ejemplo, para caminado que sea de 1. 718 00:39:01,369 --> 00:39:04,769 ¿Vale? 719 00:39:05,530 --> 00:39:07,329 Hasta aquí esto estás entendiendo este código 720 00:39:07,329 --> 00:39:07,849 Lo digo porque 721 00:39:07,849 --> 00:39:11,510 Básicamente, ahora mismo si te fijas 722 00:39:11,510 --> 00:39:13,150 Lo que he hecho es preparar todo 723 00:39:13,150 --> 00:39:15,170 Para que podamos llamar a ese animator 724 00:39:15,170 --> 00:39:16,550 Del objeto que tiene este código 725 00:39:16,550 --> 00:39:19,230 Que por cierto, no lo tengo todavía puesto 726 00:39:19,230 --> 00:39:21,030 ¿Vale? Es decir, ahora este script 727 00:39:21,030 --> 00:39:22,769 Va a mirar dentro del animator 728 00:39:22,769 --> 00:39:23,789 Que hay en este objeto 729 00:39:23,789 --> 00:39:26,630 Y así con anim, con esta palabra 730 00:39:26,630 --> 00:39:28,909 Ya podemos acceder a todo lo que hace animator 731 00:39:28,909 --> 00:39:30,210 Y si te fijas 732 00:39:30,210 --> 00:39:32,989 porque es lo que he puesto, no nos hemos preocupado todavía 733 00:39:32,989 --> 00:39:34,829 lo que hace en cada fotograma 734 00:39:34,829 --> 00:39:36,190 es poner un valor float 735 00:39:36,190 --> 00:39:39,050 en uno de los parámetros del animator 736 00:39:39,050 --> 00:39:40,789 que se llama caminado 737 00:39:40,789 --> 00:39:42,570 que coincide con este 738 00:39:42,570 --> 00:39:44,469 y lo pone valor de 1 739 00:39:44,469 --> 00:39:46,989 es decir, cuando arranque el juego, como no hay nada que lo varíe 740 00:39:46,989 --> 00:39:47,750 yo cuando le de aquí 741 00:39:47,750 --> 00:39:49,110 y voy a poner 742 00:39:49,110 --> 00:39:52,690 esto para que se vea en la escena 743 00:39:52,690 --> 00:39:53,610 que se va a ver mejor 744 00:39:53,610 --> 00:39:56,050 perdón 745 00:39:56,050 --> 00:39:58,329 voy a hacer esto un poco más grande 746 00:39:58,329 --> 00:40:03,989 Porque imagino que si no nos vamos a quedar ciegos tú primero, digo de que se están muy pequeñetes. 747 00:40:04,389 --> 00:40:10,869 Vale, y ahora, como esto está en cero y en teoría, según el blend tree que tengo, debería estar quieto, pero como le estoy diciendo que es uno, 748 00:40:11,429 --> 00:40:15,210 ¿vale? Por eso le estoy diciendo así a Capón, lo que va a hacer es caminar por defecto. 749 00:40:15,210 --> 00:40:28,190 Yo le doy y el tío no me hace ni caso. Vale, bueno, importante. A ver, se está metiendo aquí. Vale. 750 00:40:28,190 --> 00:40:43,409 Bueno, ves que cuando yo voy cambiando este valor, ¿vale? Sí que se ve que camina el hombre. Vale, vamos a ver por qué no me está cogiendo esto. Esto es un float que se llama caminado. Sí, y quiero que lo ponga en el valor de 1. 751 00:40:43,409 --> 00:40:45,289 Animator 752 00:40:45,289 --> 00:40:47,389 Component 753 00:40:47,389 --> 00:40:48,570 Animator 754 00:40:48,570 --> 00:40:51,429 Está en movimiento personaje 755 00:40:51,429 --> 00:40:53,269 Y debería hacerlo, a ver 756 00:40:53,269 --> 00:40:56,070 Vuelvo a darle, que a veces se le va la pinza 757 00:40:56,070 --> 00:40:56,650 A esto 758 00:40:56,650 --> 00:40:59,590 Vale, ¿por qué puede estar pasando? 759 00:41:00,349 --> 00:41:01,550 Porque de primeras 760 00:41:01,550 --> 00:41:04,289 Según empieza esta condición 761 00:41:04,289 --> 00:41:09,269 Nos metemos aquí 762 00:41:09,269 --> 00:41:11,630 ¿Y por qué no lo cambia? 763 00:41:11,909 --> 00:41:12,989 A ver, perdona 764 00:41:12,989 --> 00:41:16,730 Ay, pero es que no 765 00:41:16,730 --> 00:41:18,389 Están pasando cositas 766 00:41:18,389 --> 00:41:20,969 Animator, animator, lo está cogiendo 767 00:41:20,969 --> 00:41:23,050 Float, caminado 768 00:41:23,050 --> 00:41:24,289 Uno, sí 769 00:41:24,289 --> 00:41:26,690 Debería estar perfecto esto 770 00:41:26,690 --> 00:41:31,400 No hay que poner ninguna librería 771 00:41:31,400 --> 00:41:31,639 ¿No? 772 00:41:38,409 --> 00:41:39,289 Y esto 773 00:41:39,289 --> 00:41:41,150 Es un float, sí, porque 774 00:41:41,150 --> 00:41:43,190 Tiene decimales, así que sí 775 00:41:43,190 --> 00:41:45,750 A ver, caminado 776 00:41:45,750 --> 00:41:47,989 Caminado, caminado 777 00:41:47,989 --> 00:41:48,469 Caminado 778 00:41:48,469 --> 00:41:51,670 voy a hacer yo que sea otro 779 00:41:51,670 --> 00:41:53,610 probando 780 00:41:53,610 --> 00:41:55,750 adelante 781 00:41:55,750 --> 00:41:57,530 ¿vale? estoy diciendo 782 00:41:57,530 --> 00:41:59,670 porque cuando hacemos el blend tree nos lo pone 783 00:41:59,670 --> 00:42:01,710 por defecto, voy a decir que el que 784 00:42:01,710 --> 00:42:03,570 afecte a esto sea el 785 00:42:03,570 --> 00:42:04,510 parámetro 786 00:42:04,510 --> 00:42:06,250 adelante 787 00:42:06,250 --> 00:42:09,730 el parámetro adelante 788 00:42:09,730 --> 00:42:11,929 entonces voy a decir que este es adelante 789 00:42:11,929 --> 00:42:13,809 adelante 790 00:42:13,809 --> 00:42:15,530 y lo guardo y le doy 791 00:42:15,530 --> 00:42:16,909 y a ver ahora 792 00:42:16,909 --> 00:42:19,849 Ahora sí, no sé 793 00:42:19,849 --> 00:42:21,889 ¿Vale? Ves que a veces es dar la vuelta 794 00:42:21,889 --> 00:42:23,190 Porque estoy haciendo exactamente lo mismo 795 00:42:23,190 --> 00:42:25,289 Y importante, si te fijas 796 00:42:25,289 --> 00:42:27,590 El personaje no solo no se ha quedado quieto 797 00:42:27,590 --> 00:42:28,690 Sino ves que está avanzando 798 00:42:28,690 --> 00:42:30,329 Lo que te decía antes 799 00:42:30,329 --> 00:42:32,190 Esto es porque la animación ya tiene avance 800 00:42:32,190 --> 00:42:35,409 Claro, esto nos puede interesar en cierto momento 801 00:42:35,409 --> 00:42:37,010 Por ejemplo, si estamos haciendo una película 802 00:42:37,010 --> 00:42:38,289 Y ya tenemos animado al personaje 803 00:42:38,289 --> 00:42:42,269 No va por código, porque también se pueden hacer clips de animación 804 00:42:42,269 --> 00:42:43,210 Aquí 805 00:42:43,210 --> 00:42:45,289 Pero para el juego no nos interesa 806 00:42:45,289 --> 00:42:46,590 Que él vaya cuando quiera 807 00:42:46,590 --> 00:42:48,550 ahí es donde te digo que 808 00:42:48,550 --> 00:42:51,010 hay que decirle, oye, olvida los movimientos 809 00:42:51,010 --> 00:42:52,869 de raíz y tú 810 00:42:52,869 --> 00:42:54,650 te vas a mover por lo que yo te diga 811 00:42:54,650 --> 00:42:56,710 en código, ¿vale? y ves que hace 812 00:42:56,710 --> 00:42:58,150 como una animación pero está en el sitio 813 00:42:58,150 --> 00:43:00,610 ¿vale? lo mismo 814 00:43:00,610 --> 00:43:02,889 o sea, que cada vez que haga algo le tengas que dar 815 00:43:02,889 --> 00:43:04,989 tú una tecla, si no se queda parado 816 00:43:04,989 --> 00:43:06,210 ¿no? eso es 817 00:43:06,210 --> 00:43:08,230 más que eso piensa que es 818 00:43:08,230 --> 00:43:10,070 que lo que estamos haciendo es 819 00:43:10,070 --> 00:43:12,469 discriminar por un lado la animación 820 00:43:12,469 --> 00:43:14,510 las animaciones de posición 821 00:43:14,510 --> 00:43:16,610 para que no las haga 822 00:43:16,610 --> 00:43:18,869 solo haga las animaciones de las articulaciones 823 00:43:18,869 --> 00:43:20,769 pero que si se desplazan en el espacio 824 00:43:20,769 --> 00:43:22,650 no, eso lo vamos a gestionar 825 00:43:22,650 --> 00:43:24,230 nosotros de otras formas 826 00:43:24,230 --> 00:43:24,809 ¿vale? 827 00:43:26,389 --> 00:43:28,550 entonces, ahora mismo por ejemplo 828 00:43:28,550 --> 00:43:32,530 lo que vamos a hacer es decirle 829 00:43:32,530 --> 00:43:34,650 en todo momento 830 00:43:34,650 --> 00:43:36,269 yo no voy a 831 00:43:36,269 --> 00:43:38,090 querer que me pongan uno 832 00:43:38,090 --> 00:43:39,650 lo que voy a querer es que me ponga el número 833 00:43:39,650 --> 00:43:41,469 de lo que yo capte 834 00:43:41,469 --> 00:43:45,309 con un mando 835 00:43:45,309 --> 00:43:46,949 con el teclado, etc. 836 00:43:47,510 --> 00:43:48,710 profundidad, tecla, yo que sé 837 00:43:48,710 --> 00:43:50,489 y aquí lo que voy a hacer 838 00:43:50,489 --> 00:43:52,170 voy rápido y ahora lo vemos 839 00:43:52,170 --> 00:43:52,769 getAxis 840 00:43:52,769 --> 00:43:57,730 y vamos a usar uno de los 841 00:43:57,730 --> 00:43:58,909 axis que ya están configurados 842 00:43:58,909 --> 00:44:00,190 que es el de vertical, ¿vale? 843 00:44:00,250 --> 00:44:01,469 esto sabes de dónde viene, ¿no? 844 00:44:02,429 --> 00:44:04,449 y ahora lo que vamos a decir es 845 00:44:04,449 --> 00:44:06,190 que este valor no sea uno 846 00:44:06,190 --> 00:44:08,090 sino que dependa de que yo esté 847 00:44:08,090 --> 00:44:09,710 activando ese axis 848 00:44:09,710 --> 00:44:11,550 ¿vale? es decir, adelante 849 00:44:11,550 --> 00:44:13,630 ahora mismo este valor va a ir 850 00:44:13,630 --> 00:44:15,070 variando según yo pulse o no 851 00:44:15,070 --> 00:44:17,489 ese axis, entonces empieza el juego 852 00:44:17,489 --> 00:44:19,349 y está quieto 853 00:44:19,349 --> 00:44:21,210 y está haciendo una animación de 854 00:44:21,210 --> 00:44:23,070 el idle, ¿no? que es la de que está ahí parado 855 00:44:23,070 --> 00:44:24,429 ¿vale? en el momento 856 00:44:24,429 --> 00:44:26,690 y me meto aquí en el juego 857 00:44:26,690 --> 00:44:29,389 pero voy a poner una cámara también o la voy a mover 858 00:44:29,389 --> 00:44:31,150 para que se vea mejor donde está el personaje 859 00:44:31,150 --> 00:44:32,750 porque si no, no 860 00:44:32,750 --> 00:44:34,269 vamos a verlo nunca 861 00:44:34,269 --> 00:44:37,130 a ver, lo voy a poner a menos 180 862 00:44:37,130 --> 00:44:39,190 y en 863 00:44:39,190 --> 00:44:48,369 profundidad ahí le tengo al chico vale yo ahora cuando en el juego le dé a la w ves que pasa de 864 00:44:48,369 --> 00:44:55,989 uno a otro al 1 porque el axis el máximo que da es el 1 vale entonces ahora mismo no se está 865 00:44:55,989 --> 00:45:01,269 moviendo el sitio pero está haciendo esa animación que es lo bueno de esto que si yo por ejemplo lo 866 00:45:01,269 --> 00:45:06,869 estoy haciendo voy a hacer con el translate vale pero lo suyo sería hacerlo con él con fuerza del 867 00:45:06,869 --> 00:45:08,309 RigidBody o con el 868 00:45:08,309 --> 00:45:10,429 o con el CharacterController, ¿vale? 869 00:45:10,630 --> 00:45:12,590 Es más fácil con este, ¿no? 870 00:45:13,250 --> 00:45:14,670 Claro, ahora si quieres vemos 871 00:45:14,670 --> 00:45:16,769 porque aunque parezca más fácil 872 00:45:16,769 --> 00:45:18,570 no es más fácil, ¿vale? Porque 873 00:45:18,570 --> 00:45:20,190 sí que es verdad que 874 00:45:20,190 --> 00:45:22,429 hay veces que no... 875 00:45:22,429 --> 00:45:24,210 A ver, ¿por qué no me coge el Translate ahora? 876 00:45:25,010 --> 00:45:25,869 Translate, ah, vale. 877 00:45:26,409 --> 00:45:28,230 Translate y lo que vamos a decir es 878 00:45:28,230 --> 00:45:29,090 que 879 00:45:29,090 --> 00:45:32,349 haya un nuevo vector 3 880 00:45:32,349 --> 00:45:34,050 y lo vamos a mover en 881 00:45:34,050 --> 00:45:35,630 0, 0 882 00:45:35,630 --> 00:45:38,329 y lo que sea 883 00:45:38,329 --> 00:45:40,289 profundidad tecla 884 00:45:40,289 --> 00:45:42,409 ¿vale? con esto 885 00:45:42,409 --> 00:45:44,429 y bueno, acabamos la instrucción 886 00:45:44,429 --> 00:45:46,250 y recordemos que 887 00:45:46,250 --> 00:45:47,369 cuando hay una animación 888 00:45:47,369 --> 00:45:49,969 también hay que lo suyo 889 00:45:49,969 --> 00:45:52,289 ponerle un time delta time 890 00:45:52,289 --> 00:45:53,969 para que siempre sea estable 891 00:45:53,969 --> 00:45:55,469 el movimiento 892 00:45:55,469 --> 00:45:58,190 esto, digo, tú cosas 893 00:45:58,190 --> 00:46:00,250 que vayas, digo que además 894 00:46:00,250 --> 00:46:02,309 como no te he visto en más tutorías pero tú lo que 895 00:46:02,309 --> 00:46:03,550 quieras o hace mucho 896 00:46:03,550 --> 00:46:06,289 de este módulo, de parándome 897 00:46:06,289 --> 00:46:08,110 y veamos, viendo lo que no vayas entendiendo 898 00:46:08,110 --> 00:46:10,090 ¿vale? ¿entiendes por qué pongo esto de 899 00:46:10,090 --> 00:46:10,710 Time Delta Time? 900 00:46:11,250 --> 00:46:14,170 Sí, en principio todo el código 901 00:46:14,170 --> 00:46:15,730 que has puesto, sí que lo entiendo 902 00:46:15,730 --> 00:46:17,550 pero yo, si me dan 903 00:46:17,550 --> 00:46:19,789 sin nada, pues 904 00:46:19,789 --> 00:46:21,650 puedo tardar como 905 00:46:21,650 --> 00:46:23,030 15 horas, pero 906 00:46:23,030 --> 00:46:25,289 todo lo que vas poniendo, sí que 907 00:46:25,289 --> 00:46:27,289 porque lo pones, ¿sabes? 908 00:46:27,449 --> 00:46:29,590 Claro, esto es práctica, y es ir 909 00:46:29,590 --> 00:46:31,329 dedicándole tiempo, es decir 910 00:46:31,329 --> 00:46:34,670 y ves que yo también fallo más 911 00:46:34,670 --> 00:46:36,670 que una escopeta de feria, digo que me cuesta 912 00:46:36,670 --> 00:46:38,670 a veces llegar porque es que hay que darle vueltas 913 00:46:38,670 --> 00:46:40,469 es que, claro, porque hay que estar pensando 914 00:46:40,469 --> 00:46:42,170 qué es lo que quieres hacer y 915 00:46:42,170 --> 00:46:44,469 cómo es la lógica y eso es lo que 916 00:46:44,469 --> 00:46:45,489 me cuesta a mí, ¿sabes? 917 00:46:46,550 --> 00:46:48,510 encontrar esa lógica, pero porque no 918 00:46:48,510 --> 00:46:49,989 estoy ahí acostumbrada 919 00:46:49,989 --> 00:46:52,489 pero cuando tú lo haces o cuando lo 920 00:46:52,489 --> 00:46:53,869 hace Álvaro y 921 00:46:53,869 --> 00:46:56,590 sabes, los tutoriales, entonces sí que 922 00:46:56,590 --> 00:46:58,250 digo, claro, o sea, sí, pero 923 00:46:58,250 --> 00:47:00,670 sí, a ver, por ejemplo 924 00:47:00,670 --> 00:47:02,730 lo de cara al examen, en el examen 925 00:47:02,730 --> 00:47:04,530 no va a haber una práctica en ordenador como tal. 926 00:47:04,869 --> 00:47:06,469 Va a haber preguntas tipo test y alguna 927 00:47:06,469 --> 00:47:08,610 desarrollo, pero va a ser en base a cosas 928 00:47:08,610 --> 00:47:10,210 que ya estáis viendo, digamos, ¿sabes? 929 00:47:12,150 --> 00:47:12,809 Lo que 930 00:47:12,809 --> 00:47:14,530 falta aquí es ya 931 00:47:14,530 --> 00:47:16,610 el ponerse, y para eso están las tareas, ¿vale? 932 00:47:16,610 --> 00:47:18,550 Que aunque son voluntarias, 933 00:47:18,630 --> 00:47:20,610 lo que siempre os digo, son muy recomendables porque es donde 934 00:47:20,610 --> 00:47:22,389 se fuerza a 935 00:47:22,389 --> 00:47:24,909 que lo uséis y a que vayáis haciendo el pensamiento 936 00:47:24,909 --> 00:47:26,469 a ir llegando 937 00:47:26,469 --> 00:47:28,389 a las 938 00:47:28,389 --> 00:47:29,889 soluciones. 939 00:47:29,889 --> 00:47:32,309 Espera un segundo, que es que me estoy haciendo un lío con un cable 940 00:47:32,309 --> 00:47:34,630 y yo solo me voy a caer aquí 941 00:47:34,630 --> 00:47:43,059 Dame un segundo, ¿eh? Vale, ah, perdona 942 00:47:43,059 --> 00:47:44,900 Esto es, por ejemplo 943 00:47:44,900 --> 00:47:46,360 el usar un GetAxis 944 00:47:46,360 --> 00:47:48,920 y lo voy viendo a veces en las entregas 945 00:47:48,920 --> 00:47:53,000 Por defecto lo que se suele hacer es usar 946 00:47:53,000 --> 00:47:54,960 un GetKeyDown o algo así 947 00:47:54,960 --> 00:47:57,059 pues para decir, cuando das a la 948 00:47:57,059 --> 00:47:58,679 letra W o cuando das a la S 949 00:47:58,679 --> 00:48:01,019 ya a medida que lo vas usando 950 00:48:01,019 --> 00:48:03,119 y vas haciendo ejemplos como este, te das cuenta 951 00:48:03,119 --> 00:48:05,099 de que el GetAxis es muy potente 952 00:48:05,099 --> 00:48:07,420 en el sentido de que te permite 953 00:48:07,420 --> 00:48:09,460 solo con un input meter un montón de valores 954 00:48:09,460 --> 00:48:11,380 ¿vale? por ejemplo esto que te he dicho 955 00:48:11,380 --> 00:48:12,940 nosotros lo estamos haciendo con un teclado 956 00:48:12,940 --> 00:48:14,639 pero este que era axis vertical 957 00:48:14,639 --> 00:48:16,320 si lo hacemos con un joystick 958 00:48:16,320 --> 00:48:18,940 va desde el menos uno hasta el uno 959 00:48:18,940 --> 00:48:21,219 pasando por todos los decimales intermedios 960 00:48:21,219 --> 00:48:23,340 entonces eso da un montón de recorrido 961 00:48:23,340 --> 00:48:24,739 que no se puede con 962 00:48:24,739 --> 00:48:26,920 solo cuando puses una tecla pasa esto 963 00:48:26,920 --> 00:48:27,320 ¿vale? 964 00:48:28,599 --> 00:48:30,599 entonces ahora mismo tenemos 965 00:48:30,599 --> 00:48:32,719 que lo que vayamos metiendo por input 966 00:48:32,719 --> 00:48:34,739 se multiplique por este 967 00:48:34,739 --> 00:48:36,019 estabilizador de tiempo 968 00:48:36,019 --> 00:48:38,579 porque es lo que ponía los apuntes y tal 969 00:48:38,579 --> 00:48:40,099 el update según el ordenador 970 00:48:40,099 --> 00:48:42,300 va cargando en un tiempo concreto 971 00:48:42,300 --> 00:48:43,500 lo más rápido posible 972 00:48:43,500 --> 00:48:47,039 entonces si este valor no lo hacemos estable con un time delta time 973 00:48:47,039 --> 00:48:48,559 va a ir dando como tirones 974 00:48:48,559 --> 00:48:50,719 el problema que tiene esto 975 00:48:50,719 --> 00:48:52,980 es que reduce mucho 976 00:48:52,980 --> 00:48:54,679 al multiplicarlo porque los valores 977 00:48:54,679 --> 00:48:56,780 del time delta time que es cuánto tiempo 978 00:48:56,780 --> 00:48:58,159 tarda entre cada actualización 979 00:48:58,159 --> 00:49:01,139 de frame es un 0,0 980 00:49:01,139 --> 00:49:02,699 algo a veces entonces el valor 981 00:49:02,699 --> 00:49:04,699 es pequeñísimo, eso lo que nos obliga 982 00:49:04,699 --> 00:49:06,719 es siempre poner a una especie de multiplicador 983 00:49:06,719 --> 00:49:08,500 que se suele llamar speed, pero se puede llamar 984 00:49:08,500 --> 00:49:10,739 como queramos, lo voy a poner 985 00:49:10,739 --> 00:49:11,900 aquí, speed 986 00:49:11,900 --> 00:49:14,659 para, digamos, remontar 987 00:49:14,659 --> 00:49:16,679 esta caída que ha habido de valor 988 00:49:16,679 --> 00:49:18,800 porque si no se va a mover en décima 989 00:49:18,800 --> 00:49:20,619 esto que va a llegar aquí 990 00:49:20,619 --> 00:49:22,460 va a ser mínimo 991 00:49:22,460 --> 00:49:23,639 entonces 992 00:49:23,639 --> 00:49:26,920 por un lado, vamos a estar 993 00:49:26,920 --> 00:49:28,659 moviendo al personaje con este 994 00:49:28,659 --> 00:49:30,099 translate en profundidad 995 00:49:30,099 --> 00:49:32,460 voy a poner una velocidad de 996 00:49:32,460 --> 00:49:35,099 por ejemplo 10, no lo sé 997 00:49:35,099 --> 00:49:37,019 esto es luego ir probando y poner 998 00:49:37,019 --> 00:49:38,440 el valor que nos sirva para 999 00:49:38,440 --> 00:49:40,960 darle la velocidad que queremos que tenga el personaje 1000 00:49:40,960 --> 00:49:42,880 ¿vale? pero ahora mismo lo que estamos 1001 00:49:42,880 --> 00:49:44,739 haciendo es que estamos cogiendo 1002 00:49:44,739 --> 00:49:46,539 el axis 1003 00:49:46,539 --> 00:49:48,639 que en el teclado por defecto ¿vale? 1004 00:49:48,699 --> 00:49:50,800 esto si lo repaso 1005 00:49:50,800 --> 00:49:52,559 también, estos axis 1006 00:49:52,559 --> 00:49:53,760 tradicionales 1007 00:49:53,760 --> 00:49:56,739 en el input ya viene uno 1008 00:49:56,739 --> 00:49:58,699 que se llama vertical, que nosotros podemos 1009 00:49:58,699 --> 00:50:00,159 cambiar, pero bueno, por defecto viene 1010 00:50:00,159 --> 00:50:02,340 que la W sea el más uno 1011 00:50:02,340 --> 00:50:07,079 y la S el menos uno, que normalmente es cuando se juega al juego la cruceta, ¿no? 1012 00:50:07,139 --> 00:50:11,219 Pues la tenemos ahí. Evidentemente esto lo podemos ir cambiando nosotros 1013 00:50:11,219 --> 00:50:19,539 o en vez de decirle, importante, que coja los valores de un teclado o un botón de un mando, 1014 00:50:20,000 --> 00:50:23,519 que lo coja de un eje de un joystick, que es lo que haría Álvaro, en plan, 1015 00:50:23,639 --> 00:50:27,239 y en este caso querríamos que lo cogiera del eje Y, ¿vale? 1016 00:50:27,260 --> 00:50:31,159 Esto según el mando tiene muchos axis y habría que configurarlo, ¿vale? 1017 00:50:31,159 --> 00:50:39,400 Aquí queremos todavía que sea de un ratón o una tecla, pero ahí se configuraría para que fuera entre un valor u otro del Axis. 1018 00:50:39,760 --> 00:50:46,500 Y os dejé los apuntes, por ejemplo, en el mando, cada mando tiene una construcción, pero los que son de la Xbox o imitaciones de la Xbox, 1019 00:50:46,699 --> 00:50:52,840 aquí te pone a qué se requiere cada uno de estos ejes, ¿vale? Si lo configuráramos como un joystick Axis. 1020 00:50:53,340 --> 00:50:58,019 Vale, entonces yo ahora mismo, cuando arranco el juego, va a estar en cero porque no estoy pulsando nada. 1021 00:50:58,019 --> 00:50:59,699 Bueno, pero si había cambiado 1022 00:50:59,699 --> 00:51:01,400 Ah, bueno, claro, es que he cambiado la cámara 1023 00:51:01,400 --> 00:51:03,619 A ver, espera 1024 00:51:03,619 --> 00:51:05,679 Quiero, vale, importante, hay un truqui 1025 00:51:05,679 --> 00:51:07,719 Para la cámara 1026 00:51:07,719 --> 00:51:09,539 Que tenemos aquí con estas coordenadas 1027 00:51:09,539 --> 00:51:10,519 Si vamos a 1028 00:51:10,519 --> 00:51:13,400 GameObject y ponemos 1029 00:51:13,400 --> 00:51:15,119 Move to view 1030 00:51:15,119 --> 00:51:16,900 No, move to view no 1031 00:51:16,900 --> 00:51:18,360 Align with view 1032 00:51:18,360 --> 00:51:21,280 Vale, nos coge la misma posición 1033 00:51:21,280 --> 00:51:23,360 Vale, ahí tengo el personaje y está quieto 1034 00:51:23,360 --> 00:51:25,260 Esperando, ahora yo cuando doy a la W 1035 00:51:25,260 --> 00:51:26,960 ¿Ves? 1036 00:51:26,960 --> 00:51:47,300 Aunque hay un momento de transición, porque es esto que tenemos aquí de la gravedad, etc. Es cuánto tiempo tarda en ir de un valor a otro cuando pulsamos. Esto se puede ir cambiando la sensibilidad. Vemos que pasamos a caminado y a no caminado. Y ves que casi no avanza. Es decir, está haciendo la animación, pero casi no avanza. 1037 00:51:47,300 --> 00:51:51,039 Esto es porque, nuevamente, habrá que subirle la speed bastante 1038 00:51:51,039 --> 00:51:54,019 Bueno, aparte de que igual no he guardado directamente 1039 00:51:54,019 --> 00:51:54,940 Voy a ponerle 100 1040 00:51:54,940 --> 00:51:58,840 Y ahora sí que, por un lado estamos haciendo la animación con el blend tree 1041 00:51:58,840 --> 00:52:00,860 Y con otra, bueno, ahora se ha ido a cuenca 1042 00:52:00,860 --> 00:52:02,760 Ves que ahora va súper rápido, ¿vale? 1043 00:52:03,179 --> 00:52:06,000 Bueno, porque antes seguramente no habría guardado y tampoco hacía falta 1044 00:52:06,000 --> 00:52:10,239 ¿Vale? Entonces, al personaje lo que habrá que hacer es encontrar ese momento de equilibrio 1045 00:52:10,239 --> 00:52:13,360 Sigue siendo muy rápido para la animación que tiene 1046 00:52:13,360 --> 00:52:15,099 Dos 1047 00:52:15,099 --> 00:52:17,780 A ver 1048 00:52:17,780 --> 00:52:19,360 ahí lo tenemos 1049 00:52:19,360 --> 00:52:22,639 ¿vale? y ahora sí que parece que está 1050 00:52:22,639 --> 00:52:24,739 caminando, incluso le doy para atrás 1051 00:52:24,739 --> 00:52:26,139 y como no hay animación 1052 00:52:26,139 --> 00:52:27,619 a menos uno 1053 00:52:27,619 --> 00:52:29,420 se queda en el idle 1054 00:52:29,420 --> 00:52:32,099 pero realmente 1055 00:52:32,099 --> 00:52:34,119 también podría yo ir añadiendo más 1056 00:52:34,119 --> 00:52:36,019 animaciones 1057 00:52:36,019 --> 00:52:37,400 en este blend tree 1058 00:52:37,400 --> 00:52:40,000 pero dame un segundo que me tengo que sonar los mocos 1059 00:52:40,000 --> 00:52:40,820 perdón 1060 00:52:40,820 --> 00:52:46,860 va viendo ¿no? lo que vamos haciendo 1061 00:52:46,860 --> 00:52:47,360 sí 1062 00:52:47,360 --> 00:52:58,440 ¿Qué haríamos para cuando queremos correr? Lo que no podemos hacer aquí es hacerlo con un... ¿Cómo se llama? Directamente con el teclado. 1063 00:52:58,440 --> 00:53:25,559 Pero lo que sí podemos decirle es que esta profundidad tecla, si además de moverlo, pulsamos, por ejemplo en este caso, decimos Get Key Done, Get Key, no Get Key Done, sino Get Key, mientras estemos pulsando una tecla, que en este caso, por ejemplo, va a ser la del C, yo que sé, mayúsculas, el C Left Shift, ¿vale? 1064 00:53:25,559 --> 00:53:29,099 Que es en mayúsculas este que hay debajo del block mayús, ¿no? 1065 00:53:29,099 --> 00:53:43,829 Le puedo decir que entonces en ese caso, profundidad tecla, ¿vale? A ver, joven, no me sale, profundidad, bueno, a ver si quiere. 1066 00:53:45,730 --> 00:53:55,690 Profundidad tecla, ¿vale? Se multiplique por 2, es decir que profundidad tecla se multiplique por 2, ¿vale? 1067 00:53:55,690 --> 00:54:11,409 Bueno, aquí estoy escribiendo cosas que no son. ¿Entiendes qué es esto? Vamos a decirle que el valor de profundidad tecla, mientras estemos pulsando este shift, pase a valer por 2. ¿Sí? ¿Esto lo entiendes? 1068 00:54:11,690 --> 00:54:13,010 A ver, repítelo otra vez. 1069 00:54:13,590 --> 00:54:15,909 Ahora mismo tenemos una variable que se llama profundidad tecla. 1070 00:54:15,969 --> 00:54:16,829 Sí, eso sí. 1071 00:54:16,829 --> 00:54:24,650 Vale, entonces aquí le decimos que profundidad tecla pase a valer lo que valga profundidad tecla en este momento, pero multiplicado por dos, ¿vale? 1072 00:54:26,110 --> 00:54:31,010 Importante, esto también es que va sirviendo de repaso de cara al examen de los primeros temas. 1073 00:54:31,190 --> 00:54:40,909 Esto ya lo hablamos, pero cuando vemos un igual no hay que verlo como un álgebra, que es que los dos lados son iguales y son dos lados, digamos, que tienen que ser equivalentes. 1074 00:54:40,909 --> 00:54:48,050 No, aquí significa que a esta variable, siempre lo que pone antes del igual, es que a esta variable lo que pase aquí, ¿vale? 1075 00:54:48,110 --> 00:54:53,590 Entonces, aquí lo que estamos diciendo es que esta variable guarde que el valor que tenga se multiplique por 2, ¿sí? 1076 00:54:53,869 --> 00:55:01,090 Que esto también en su momento se vio en el tema 1, que también se puede escribir así, de forma simplificada, ¿sí? 1077 00:55:01,929 --> 00:55:02,329 Vale. 1078 00:55:02,949 --> 00:55:06,210 Esto lo vimos en otra tutoría, hace unos meses. 1079 00:55:06,829 --> 00:55:08,269 Entonces, ¿qué ocurre? 1080 00:55:08,269 --> 00:55:10,150 le voy a dar aquí 1081 00:55:10,150 --> 00:55:12,150 a ver, profundidad 2 1082 00:55:12,150 --> 00:55:14,489 ¿qué ocurre? que yo por un lado 1083 00:55:14,489 --> 00:55:16,929 voy para adelante 1084 00:55:16,929 --> 00:55:18,989 y no pulso el shift y hace lo mismo de antes 1085 00:55:18,989 --> 00:55:20,409 ¿vale? pero si 1086 00:55:20,409 --> 00:55:22,989 y ahora lo voy a hacer ¿vale? si le doy 1087 00:55:22,989 --> 00:55:24,889 a la mayus, lo tengo pulsada y adelante 1088 00:55:24,889 --> 00:55:26,190 vas a ver que de pronto 1089 00:55:26,190 --> 00:55:28,570 esto pasa a valer 2 o menos 2 1090 00:55:28,570 --> 00:55:30,269 si sigo manteniendo el mayus 1091 00:55:30,269 --> 00:55:32,570 y por un lado 1092 00:55:32,570 --> 00:55:33,989 al translate como 1093 00:55:33,989 --> 00:55:36,909 aquí le está, siempre que estemos manteniendo 1094 00:55:36,909 --> 00:55:39,030 esto, ¿vale? Porque si no, esta condición la salta. 1095 00:55:39,469 --> 00:55:40,769 Si no, pues es lo mismo que teníamos 1096 00:55:40,769 --> 00:55:42,929 antes, ¿no? Se multiplica por 2, 1097 00:55:43,070 --> 00:55:44,849 llega el translate y claro, este valor 1098 00:55:44,849 --> 00:55:46,809 se moverá hacia adelante, en este caso 1099 00:55:46,809 --> 00:55:48,690 en el eje Z, el doble de rápido. 1100 00:55:49,050 --> 00:55:51,110 Por eso va más rápido. Pero aparte, 1101 00:55:51,610 --> 00:55:52,869 al parámetro adelante 1102 00:55:52,869 --> 00:55:54,730 que tenemos aquí, no le pasa un 1, 1103 00:55:54,849 --> 00:55:56,710 le pasa un 2. Entonces, 1104 00:55:56,929 --> 00:55:58,809 aquí ya sí que hace lo que esté aquí 1105 00:55:58,809 --> 00:55:59,710 en el 2 del blend tree. 1106 00:56:00,710 --> 00:56:03,070 ¿Vale? O sea, que es porque se multiplica 1107 00:56:03,070 --> 00:56:05,030 y porque vale 2, o porque solo vale 1108 00:56:05,030 --> 00:56:13,190 dos correr claro no aquí lo siempre hay que pensar esto como cajas que guardan valores no 1109 00:56:13,190 --> 00:56:21,050 se me dijimos aquí cuando yo pulso la w vale al de estar aquí vale uno pero si yo a esto que vale 1110 00:56:21,050 --> 00:56:29,150 uno le añado que si pulso esta tecla ese valor que tengo aquí valdrá el doble vale pero no porque tú 1111 00:56:29,150 --> 00:56:36,289 le hayas puesto que correr vale 2 no hay que correr en el sí es decir para que haga esta 1112 00:56:36,289 --> 00:56:40,769 animación de run es porque aquí le he dicho que está la haga cuando este valor sea un 2 1113 00:56:40,769 --> 00:56:50,429 vale entonces es por eso y porque vale doble no la multiplicas por dos y porque lo has puesto 1114 00:56:50,429 --> 00:56:56,210 dos por un lado mira por un lado tenemos lo que es el movimiento real del personaje en el espacio 1115 00:56:56,210 --> 00:56:58,269 ¿vale? Con este translate, ¿vale? Esto entiendo 1116 00:56:58,269 --> 00:57:00,369 que sí. Sí. Y luego 1117 00:57:00,369 --> 00:57:02,250 aquí lo que estamos haciendo es cambiar 1118 00:57:02,250 --> 00:57:04,389 el valor de este parámetro, ¿vale? 1119 00:57:04,710 --> 00:57:06,250 Lo que ponga en el segundo 1120 00:57:06,250 --> 00:57:08,250 parámetro que tenemos aquí 1121 00:57:08,250 --> 00:57:10,130 en adelante, si le llega un 1, aquí 1122 00:57:10,130 --> 00:57:12,190 pondrá un 1 y si le hacemos 1123 00:57:12,190 --> 00:57:14,130 para que aquí llegue un 2, aquí pondrá 1124 00:57:14,130 --> 00:57:15,510 un 2. Y tú fíjate 1125 00:57:15,510 --> 00:57:18,329 que es que todos los blend trees se basan en un parámetro 1126 00:57:18,329 --> 00:57:20,070 que en este caso es el de adelante 1127 00:57:20,070 --> 00:57:22,050 pero si tuviéramos más, voy a poner 1128 00:57:22,050 --> 00:57:22,929 uno de ejemplo. 1129 00:57:25,050 --> 00:57:26,190 Podríamos decir que 1130 00:57:26,190 --> 00:57:27,989 lo que afecta a esto sea 1131 00:57:27,989 --> 00:57:29,550 el parámetro ejemplo 1132 00:57:29,550 --> 00:57:32,170 pero claro, es que el que estamos cambiando aquí es adelante 1133 00:57:32,170 --> 00:57:33,050 ¿vale? vale 1134 00:57:33,050 --> 00:57:36,210 entonces, luego, entre aquí lo que vamos a ir 1135 00:57:36,210 --> 00:57:37,429 marcando es que animación hay 1136 00:57:37,429 --> 00:57:40,070 en el momento en el que este adelante 1137 00:57:40,070 --> 00:57:41,150 valga estos valores 1138 00:57:41,150 --> 00:57:42,949 vale, vale, vale 1139 00:57:42,949 --> 00:57:45,829 y bueno, aparte, la gracia del blend tree es que 1140 00:57:45,829 --> 00:57:47,809 en el medio, pues va interpolando 1141 00:57:47,809 --> 00:57:49,190 entre las dos animaciones, ¿sabes? 1142 00:57:49,989 --> 00:57:51,909 que con un joystick no pasa 1143 00:57:51,909 --> 00:57:54,150 de andar a correr 1144 00:57:54,150 --> 00:57:55,869 de uno a otro, sino que va 1145 00:57:55,869 --> 00:57:59,929 haciendo como en el intermedio va haciendo interpolación mira de hecho si 1146 00:57:59,929 --> 00:58:05,349 es que se ve se ve así si yo le doy al play aquí vale esto sirve para hacer la 1147 00:58:05,349 --> 00:58:09,130 simulación y yo empiezo a mover verás que aquí empieza a andar un poco pero 1148 00:58:09,130 --> 00:58:13,150 cuando llega el uno hace completamente la animación de andado y aquí hace el 1149 00:58:13,150 --> 00:58:17,570 intermedio y aquí a medida si tuviéramos un joystick otra vez a medida que vamos 1150 00:58:17,570 --> 00:58:22,429 dándole más valor hasta que damos a tope al joystick pues vamos dando esos 1151 00:58:22,429 --> 00:58:24,510 diferentes valores, que es la gracia de tener 1152 00:58:24,510 --> 00:58:26,610 el axis, ¿vale? que estamos vinculando 1153 00:58:26,610 --> 00:58:28,369 las dos cosas, y ojo 1154 00:58:28,369 --> 00:58:30,210 que el axis también tiene un 1155 00:58:30,210 --> 00:58:32,130 valores 1156 00:58:32,130 --> 00:58:34,550 negativos, yo aquí 1157 00:58:34,550 --> 00:58:36,329 lo que puedo hacer, no sé si aquí 1158 00:58:36,329 --> 00:58:38,610 vienen animaciones de caminado 1159 00:58:38,610 --> 00:58:40,309 hacia atrás, ahí hacia 1160 00:58:40,309 --> 00:58:42,269 adelante, pero 1161 00:58:42,269 --> 00:58:44,289 incluso si hubiera hacia atrás 1162 00:58:44,289 --> 00:58:48,130 bueno, no la hay 1163 00:58:48,130 --> 00:58:49,429 walk, turn 1164 00:58:49,429 --> 00:58:54,489 turn left, no la hay 1165 00:58:54,489 --> 00:59:07,489 Pero se podrían ir haciendo más valores y vamos a decirle, vale, esta que sea cuando sea menos uno. Y se pone ahí. Y le voy a decir, simplemente para que se vea, que es andar, pero hacia atrás. Vas a ver que también va... 1166 00:59:07,489 --> 00:59:11,150 El pasaje va a parecer que va hacia adelante, pero voy a poner que vaya hacia atrás, ¿vale? 1167 00:59:11,550 --> 00:59:12,309 Ahora lo vemos. 1168 00:59:12,710 --> 00:59:19,920 Y también le voy a decir que haya otra animación que es de... 1169 00:59:19,920 --> 00:59:21,960 No, esta no. 1170 00:59:23,239 --> 00:59:26,500 Porque aquí esta nueva que va a ser el menos 2. 1171 00:59:27,039 --> 00:59:28,800 Bueno, hay que recolocar todas. 1172 00:59:29,639 --> 00:59:32,519 Y esta va a ser el id, el 0. 1173 00:59:33,539 --> 00:59:35,860 Esto es 1, esto es 2, que es lo que teníamos. 1174 00:59:36,599 --> 00:59:38,340 Esta menos 1 y esta menos 2. 1175 00:59:39,059 --> 00:59:54,289 Y esta menos 2, ¿vale? Y entonces aquí vamos a meter la de correr hacia atrás, la de andar hacia adelante, aquí, ¿vale? 1176 00:59:54,909 --> 01:00:00,690 ¿Y qué va a pasar? Que ahora el personaje va a ir hacia adelante o hacia atrás por este translate que tenemos aquí, ¿vale? 1177 01:00:01,010 --> 01:00:10,110 Que cuando es menos 1 va en el eje Z hacia atrás, pero aparte también estamos activando las distintas animaciones. 1178 01:00:10,110 --> 01:00:21,929 Es decir, yo ahora voy hacia adelante y cuando voy hacia atrás también como que anda, ¿vale? No es la mejor animación porque sigue haciendo la misma animación que si andara para adelante, pero ves que está pasando entre uno y otro. 1179 01:00:22,090 --> 01:00:31,690 Y si yo incluso pulso el shift y doy para adelante, corre, pero si doy hacia detrás, corre para atrás. Lo mismo, no es la animación que haría alguien corriendo para atrás porque no es la que le hemos puesto, ¿vale? 1180 01:00:31,690 --> 01:00:41,750 pero ves que va respondiendo a eso sí vale vale más o menos veis cómo funciona algo importante 1181 01:00:41,750 --> 01:00:49,190 el blend tree es un nodo aquí vale ya los nodos se llega según las condiciones intermedias entonces a 1182 01:00:49,190 --> 01:00:54,929 veces para que se active esto que hay en el blend tree hay que llegar hasta este nodo por ejemplo 1183 01:00:54,929 --> 01:00:58,449 Imagínate que yo pongo una 1184 01:00:58,449 --> 01:01:00,409 A ver, que sea de agachado 1185 01:01:00,409 --> 01:01:01,250 Me parece que había una 1186 01:01:01,250 --> 01:01:05,090 Por hacer algo que sea muy exagerado 1187 01:01:05,090 --> 01:01:05,849 Esto, ¿vale? 1188 01:01:06,349 --> 01:01:08,530 Este personaje también se va a agachar 1189 01:01:08,530 --> 01:01:09,349 Y se lo voy a poner 1190 01:01:09,349 --> 01:01:10,329 Que esto es importante 1191 01:01:10,329 --> 01:01:11,690 Que sea la que hace por defecto 1192 01:01:11,690 --> 01:01:14,130 Ahora mismo, digamos que no está conectado 1193 01:01:14,130 --> 01:01:15,789 Este blendtree que hemos hecho por ningún lado 1194 01:01:15,789 --> 01:01:17,469 Que por cierto, le voy a cambiar el nombre 1195 01:01:17,469 --> 01:01:21,429 Para que sea caminado también 1196 01:01:21,429 --> 01:01:22,550 ¿Vale? 1197 01:01:23,150 --> 01:01:24,690 Y ahora en el nodo pone caminado 1198 01:01:24,690 --> 01:01:26,769 No hace otra cosa, es para identificarlo 1199 01:01:26,769 --> 01:01:28,090 Ahora yo cuando le doy a play 1200 01:01:28,090 --> 01:01:30,909 Pues simplemente va a estar agachado el muchacho 1201 01:01:30,909 --> 01:01:31,969 ¿Vale? Ya está 1202 01:01:31,969 --> 01:01:34,230 ¿Qué pasa? Que si yo de pronto 1203 01:01:34,230 --> 01:01:36,849 Hago lo de que quiero que pase aquí 1204 01:01:36,849 --> 01:01:37,949 ¿Vale? 1205 01:01:38,630 --> 01:01:41,050 Por mucho que yo esté sin pulsar teclas 1206 01:01:41,050 --> 01:01:43,010 Estoy diciéndole que esté agachado 1207 01:01:43,010 --> 01:01:44,210 Porque es la que va por defecto 1208 01:01:44,210 --> 01:01:46,570 O sea, uno entra en el sistema de estados 1209 01:01:46,570 --> 01:01:47,909 ¿Vale? En el animator 1210 01:01:47,909 --> 01:01:50,269 Entonces habrá que hacer una transición 1211 01:01:50,269 --> 01:01:52,690 Para que vaya de aquí a aquí con alguna condición 1212 01:01:52,690 --> 01:01:54,429 ¿Vale? Porque si no 1213 01:01:54,429 --> 01:01:56,909 nunca entramos aquí, es decir, para acceder 1214 01:01:56,909 --> 01:01:58,190 a lo que estamos configurando 1215 01:01:58,190 --> 01:02:00,630 hay que ir siguiendo la lógica de transiciones 1216 01:02:00,630 --> 01:02:01,949 ¿me vas siguiendo? 1217 01:02:02,349 --> 01:02:04,429 Sí, eso también lo había hecho 1218 01:02:04,429 --> 01:02:06,789 Vale, lo digo porque en lo que 1219 01:02:06,789 --> 01:02:07,949 te he visto que tenías 1220 01:02:07,949 --> 01:02:10,909 tenías el idle quieto 1221 01:02:11,510 --> 01:02:13,070 pero si quieres 1222 01:02:13,070 --> 01:02:14,510 correr y que salte 1223 01:02:14,510 --> 01:02:16,409 luego vas a tener 1224 01:02:16,409 --> 01:02:18,929 a lo mejor problemas porque si está 1225 01:02:18,929 --> 01:02:20,809 corriendo para que salte, bueno, habría que ir 1226 01:02:20,809 --> 01:02:22,570 configurando bien los parámetros para que lo hagan 1227 01:02:22,570 --> 01:02:28,210 pero que sea consciente de que aunque yo ahora mismo esté quieto y no esté pulsando nada bueno 1228 01:02:28,210 --> 01:02:32,230 ahora lo ha hecho porque cuando acaba de hacerlo una vez hace esta transición porque no le hemos 1229 01:02:32,230 --> 01:02:37,030 puesto ninguna condición hace esta animación y va hacia aquí vale pero que para que haga este 1230 01:02:37,030 --> 01:02:42,090 el estar quieto yo estoy quieto y ves que primero hace entera está y luego pasa a la siguiente si 1231 01:02:42,090 --> 01:02:46,329 aquí pusiéramos una condición que no se cumple por mucho que aquí configuremos un blend y no 1232 01:02:46,329 --> 01:02:56,210 llegaría al blendtree sí vale más o menos si para seguir avanzando lo ves si más dudas que tengas 1233 01:02:56,210 --> 01:03:03,269 si no te enseño un par de cosas del que tenía yo preparado vale si te enseño yo si nada simplemente 1234 01:03:03,269 --> 01:03:09,510 como referencia de qué cosas se pueden conseguir vale de bueno voy a guardar este y hablo del otro 1235 01:03:09,510 --> 01:03:13,170 De esto 1236 01:03:13,170 --> 01:03:16,170 Digo, más o menos te queda claro 1237 01:03:16,170 --> 01:03:17,389 Lo que estamos haciendo 1238 01:03:17,389 --> 01:03:19,269 Vale, vamos allá 1239 01:03:19,269 --> 01:03:20,409 Bueno, lo guardo 1240 01:03:20,409 --> 01:03:22,650 Este no me sirve para otra cosa 1241 01:03:22,650 --> 01:03:24,230 Pero tenía aquí yo uno 1242 01:03:24,230 --> 01:03:25,250 Por ejemplo este 1243 01:03:25,250 --> 01:03:32,849 Las prácticas, sobre todo en Dane 1244 01:03:32,849 --> 01:03:34,630 Lo que más me importa es 1245 01:03:34,630 --> 01:03:37,469 Que os pongáis a hacerlas y vayáis superando obstáculos 1246 01:03:37,469 --> 01:03:38,869 ¿Vale? Porque por eso pongo 1247 01:03:38,869 --> 01:03:40,570 Ya en estas últimas tantas 1248 01:03:40,570 --> 01:03:42,630 Cosas opcionales 1249 01:03:42,630 --> 01:03:44,190 digamos, porque 1250 01:03:44,190 --> 01:03:46,809 es que hasta que no, por mucho que lo leáis 1251 01:03:46,809 --> 01:03:48,070 y 1252 01:03:48,070 --> 01:03:49,650 y lo 1253 01:03:49,650 --> 01:03:52,210 a ver, espera, ¿cuál era? 1254 01:03:52,550 --> 01:03:54,650 por mucho que lo veáis y veáis vídeos 1255 01:03:54,650 --> 01:03:56,750 etcétera, evidentemente tenéis que verlos 1256 01:03:56,750 --> 01:03:58,409 para saber, hasta que no os ponéis a hacerlo 1257 01:03:58,409 --> 01:04:00,929 no lo hacéis, ¿sabes lo que te quiero decir? 1258 01:04:01,449 --> 01:04:02,869 entonces... si no lo comprendes 1259 01:04:02,869 --> 01:04:04,809 claro, es que por mucho que digas 1260 01:04:04,809 --> 01:04:06,429 ya sé hacerlo, hasta que no lo haces 1261 01:04:06,429 --> 01:04:08,250 no te sale, no, si, si, es verdad 1262 01:04:08,250 --> 01:04:10,610 y es que eso yo no puedo hacer nada más allá 1263 01:04:10,610 --> 01:04:11,710 de que hagáis las prácticas 1264 01:04:11,710 --> 01:04:13,570 y me preguntéis en base a ello 1265 01:04:13,570 --> 01:04:16,250 simplemente, ahora vemos si quieres 1266 01:04:16,250 --> 01:04:18,269 cómo está hecho, para que tengas 1267 01:04:18,269 --> 01:04:19,769 una referencia, pero este es el juego 1268 01:04:19,769 --> 01:04:22,269 si se cumpliera todo lo que hay en él 1269 01:04:22,269 --> 01:04:24,250 salta, hace diversas 1270 01:04:24,250 --> 01:04:25,630 cosas, el juego 1271 01:04:25,630 --> 01:04:28,010 tiene cosas mejorables, pero bueno, ya tiene un montón de cosas 1272 01:04:28,010 --> 01:04:30,230 que es lo que pide el enunciado 1273 01:04:30,230 --> 01:04:31,210 si se completara todo 1274 01:04:31,210 --> 01:04:33,570 al menos los mínimos 1275 01:04:33,570 --> 01:04:35,889 que es que hay personajes que te siguen 1276 01:04:35,889 --> 01:04:38,250 el movimiento del personaje, incluso hay 1277 01:04:38,250 --> 01:04:39,909 una mira, por si queremos 1278 01:04:39,909 --> 01:04:41,289 apuntar una pistola 1279 01:04:41,289 --> 01:04:43,269 ¿vale? entonces 1280 01:04:43,269 --> 01:04:45,730 esto es ir poco a poco 1281 01:04:45,730 --> 01:04:47,010 lo de siempre, el terreno 1282 01:04:47,010 --> 01:04:49,489 por lo que me has contado, pues aquí 1283 01:04:49,489 --> 01:04:51,869 es un terreno que está generado 1284 01:04:51,869 --> 01:04:53,690 ¿vale? y tenemos 1285 01:04:53,690 --> 01:04:55,610 aquí un personaje, que es este, pero podría 1286 01:04:55,610 --> 01:04:57,369 ser el que tú tienes ¿vale? que 1287 01:04:57,369 --> 01:04:59,449 tiene un animator 1288 01:04:59,449 --> 01:05:01,309 nuevamente con un avatar y 1289 01:05:01,309 --> 01:05:03,530 en ese animator pues hay un montón de estados 1290 01:05:03,530 --> 01:05:05,130 ¿vale? y aquí 1291 01:05:05,130 --> 01:05:06,289 si no me equivoco 1292 01:05:06,289 --> 01:05:10,510 por lo que sea 1293 01:05:10,510 --> 01:05:12,769 En el zombie sí que hay 1294 01:05:12,769 --> 01:05:14,369 Pero aquí no hay un blend tree 1295 01:05:14,369 --> 01:05:16,929 Si te fijas, ah sí, este sí que es un blend tree 1296 01:05:16,929 --> 01:05:17,489 Mira 1297 01:05:17,489 --> 01:05:21,769 Tenemos un blend tree 1298 01:05:21,769 --> 01:05:23,329 Según entra, ¿vale? 1299 01:05:23,530 --> 01:05:26,510 Que lo que hace es, si te fijas y le clico aquí 1300 01:05:26,510 --> 01:05:27,550 ¿Vale? Es de una dimensión 1301 01:05:27,550 --> 01:05:30,889 Porque en el vídeo también se deja caer que hay de más dimensiones 1302 01:05:30,889 --> 01:05:32,349 Que esto es para que incluso 1303 01:05:32,349 --> 01:05:34,789 Si no solo es hacia adelante y hacia atrás 1304 01:05:34,789 --> 01:05:36,289 Sino que también quieres que el personaje 1305 01:05:36,289 --> 01:05:37,750 Cuando vaya en diagonal 1306 01:05:37,750 --> 01:05:39,570 Junte la animación, por ejemplo 1307 01:05:39,570 --> 01:05:55,750 Lo estamos dando a la W y a la D, ¿no? Que es hacer la diagonal. Sirve para que, digamos, interpole las animaciones de ir hacia adelante, si pulsamos la W y de ir a la derecha, si lo hemos configurado para ir a la derecha con la D, ¿vale? 1308 01:05:55,750 --> 01:06:12,869 Entonces con eso se pueden hacer ya como ejes de en plan combinar dos parámetros, ¿vale? Está más complicada, pero lo bueno es que ya según vas haciendo que el personaje por un lado en dos ejes vaya hacia adelante o hacia la izquierda, ir poniendo animaciones, ¿vale? 1309 01:06:12,869 --> 01:06:37,070 Pero bueno, vamos a quedarnos de momento en esta. Y a ver, que yo creo que... A ver, un segundín, que creo que me he cargado algo, por eso sale este error. Vale. A ver, funciona bien. Vale, perfecto. Vale, entonces, por defecto, cuando yo entro en el personaje, ¿vale? Estoy con el personaje, se mete aquí y se queda ahí, ¿vale? En este nodo de estado. 1310 01:06:37,070 --> 01:06:39,110 y este nodo de estado es un blend tree 1311 01:06:39,110 --> 01:06:41,369 ¿y cómo he configurado yo ese blend tree? 1312 01:06:41,590 --> 01:06:44,170 yo quería que este personaje, que también lo pone como propuesta 1313 01:06:44,170 --> 01:06:46,170 aparte de ir hacia adelante 1314 01:06:46,170 --> 01:06:48,210 y rotar, ¿vale? con la cruceta típica 1315 01:06:48,210 --> 01:06:49,829 con la Q y con la E 1316 01:06:49,829 --> 01:06:51,849 pueda moverse lateralmente, es decir 1317 01:06:51,849 --> 01:06:53,929 puedo hacer esto, yo le doy a la Q 1318 01:06:53,929 --> 01:06:55,989 ¿vale? y ves que hace una animación de lateral 1319 01:06:55,989 --> 01:06:58,010 no de rotar, que es lo que hace cuando 1320 01:06:58,010 --> 01:06:59,829 doy a las flechas, sino lateral 1321 01:06:59,829 --> 01:07:01,909 entonces, yo el idle 1322 01:07:01,909 --> 01:07:02,789 lo aproveché 1323 01:07:02,789 --> 01:07:06,230 de hacer un idle, si está en el 0 1324 01:07:06,230 --> 01:07:27,429 Pues el chico está tranquilo, ¿vale? Y puse un axis que son los límites, la Q y la E, ¿vale? Si yo me meto en el player controller y este movimiento lateral se llama strafe, ¿vale? Así como pone aquí, en este strafe yo lo que hice es ponerle un axis que creí yo que se llama strafe, ¿vale? 1325 01:07:27,429 --> 01:07:43,469 Y nuevamente yo fui aquí a los Project Settings y hice un nuevo axis que es Strafe, ¿vale? Que tiene la Q como negativo y la E como positivo, ¿vale? Y eso es con lo que consigo que vaya, como hemos hecho antes, ¿vale? Que vaya hacia izquierda o hacia derecha. 1326 01:07:43,469 --> 01:07:54,449 Lo bueno en este caso con Mixamo es que yo he sacado la animación para ir hacia la izquierda y hacia la derecha. 1327 01:07:54,769 --> 01:08:02,550 Entonces, dependiendo de qué voy pulsando, este parámetro que yo he puesto, estrafe, es el que yo voy cambiando aquí más adelante. 1328 01:08:04,769 --> 01:08:07,889 Este código ya tiene bastante, pero voy haciendo lo mismo. 1329 01:08:07,889 --> 01:08:27,550 Pongo un float que es el valor de ese axis, ¿vale? Solo que me está cambiando ese parámetro que se llama estrafe, que es al que yo le he vinculado, podría vincularlo a otro. Entonces con eso he conseguido que por defecto esté quieto y si doy a las otras dos teclas de Q y E voy hacia los laterales. 1330 01:08:27,550 --> 01:08:50,750 Pero luego ya para ir hacia adelante, incluso correr o ir hacia atrás, son nodos distintos con su propia animación. Sí que en caminado, por ejemplo, también he puesto, aunque este realmente no es muy necesario, otro por si queremos dar sensibilidad, que este esté asociado al caminado. 1331 01:08:50,750 --> 01:09:08,829 Pero este, la verdad es que se podría haber puesto solo la animación con uno normal, tampoco hacía falta blend tree, porque con ir hacia adelante y que algo sea mayor que el valor de 0.1, que tengo aquí y que tengo vinculada al axis de vertical, pues ya iría hacia adelante. 1332 01:09:08,829 --> 01:09:10,090 no sé si me sigues 1333 01:09:10,090 --> 01:09:13,010 y luego si yo 1334 01:09:13,010 --> 01:09:14,670 estoy caminando hacia adelante 1335 01:09:14,670 --> 01:09:17,630 si aparte yo pulso 1336 01:09:17,630 --> 01:09:19,630 una tecla que activa 1337 01:09:19,630 --> 01:09:20,409 una booleana 1338 01:09:20,409 --> 01:09:23,609 que es run, pues pasará al estado de run 1339 01:09:23,609 --> 01:09:25,189 que es un poco lo que hemos hecho antes pero 1340 01:09:25,189 --> 01:09:27,050 en vez de hacerlo todo en un solo blend tree 1341 01:09:27,050 --> 01:09:28,529 lo he hecho en distintos estados 1342 01:09:28,529 --> 01:09:30,510 vale, o sea que es como 1343 01:09:30,510 --> 01:09:32,289 lo he dividido 1344 01:09:32,289 --> 01:09:35,210 en vez de hacerlo todo en uno junto 1345 01:09:35,210 --> 01:09:36,210 lo he ido dividiendo 1346 01:09:36,210 --> 01:09:38,649 que es la gracia de esto 1347 01:09:38,649 --> 01:09:41,069 que aquí puedes poner muchas animaciones 1348 01:09:41,069 --> 01:09:42,289 solo 1349 01:09:42,289 --> 01:09:45,029 y valores intermedios en un solo nodo 1350 01:09:45,029 --> 01:09:46,810 y hacer lo mismo que tú 1351 01:09:46,810 --> 01:09:48,470 en todos los 1352 01:09:48,470 --> 01:09:50,890 esto como lo que has hecho tú es como más lioso 1353 01:09:50,890 --> 01:09:53,170 eso es, y hay que poner más condiciones 1354 01:09:53,170 --> 01:09:53,729 más 1355 01:09:53,729 --> 01:09:57,010 tú fíjate, ahora está la de quieto 1356 01:09:57,010 --> 01:09:58,409 yo si doy a la Q y a la E 1357 01:09:58,409 --> 01:09:59,949 sigo en el mismo nodo porque 1358 01:09:59,949 --> 01:10:02,949 está en el blend tree, si yo me pongo 1359 01:10:02,949 --> 01:10:04,909 a caminar, fíjate que lo que hace es pasar 1360 01:10:04,909 --> 01:10:05,949 al nodo de 1361 01:10:05,949 --> 01:10:08,390 caminado, que yo le doy al 1362 01:10:08,390 --> 01:10:10,149 creo que es al shift, sí, vale 1363 01:10:10,149 --> 01:10:12,170 pues se está activando, si te fijas aquí 1364 01:10:12,170 --> 01:10:14,409 una booleana 1365 01:10:14,409 --> 01:10:15,850 de RAM, mientras yo lo tengo pulsado 1366 01:10:15,850 --> 01:10:18,029 y estoy ahí, cuando suelte 1367 01:10:18,029 --> 01:10:20,210 esa booleana se desactiva y la condición 1368 01:10:20,210 --> 01:10:22,189 que tengo es que si este RAM pasa 1369 01:10:22,189 --> 01:10:24,090 a ser falso, pues yo voy a walk otra vez 1370 01:10:24,090 --> 01:10:26,229 y bueno, como he dejado de moverme 1371 01:10:26,229 --> 01:10:27,510 y 1372 01:10:27,510 --> 01:10:30,170 el parámetro de walk es 1373 01:10:30,170 --> 01:10:32,109 menor a 0.1, es decir que estoy quieto 1374 01:10:32,109 --> 01:10:34,050 pues vuelve a estar aquí en reposo 1375 01:10:34,050 --> 01:10:56,869 Luego, por ejemplo, tengo una tecla, si vamos al código un segundo, tengo una tecla que es que si yo pulso el control, a ver dónde lo tengo, si yo pulso control, si yo pulso barra espaciadora, pues tengo un método que es saltar, pero vamos un segundo al control. 1376 01:10:56,869 --> 01:11:21,729 Si pulso la letra control, se aplica este método, ahora lo vemos, que he hecho yo, que se llama desenfundar. Y si suelto, son acciones que son o pasa una o pasa la otra. Si suelto esa misma tecla, enfunda. Por eso es la diferencia de cuando yo pulso desenfunda y cuando dejo de pulsar este app, pues se enfunda. 1377 01:11:21,729 --> 01:11:24,970 entonces desenfundar 1378 01:11:24,970 --> 01:11:26,050 yo es un método que he hecho aquí 1379 01:11:26,050 --> 01:11:29,090 y aparte de cambiar la cámara de Cinemachine 1380 01:11:29,090 --> 01:11:31,210 etcétera, lo que hago es 1381 01:11:31,210 --> 01:11:33,010 que hay un trigger que es el de 1382 01:11:33,010 --> 01:11:34,850 aim, que es el de 1383 01:11:34,850 --> 01:11:36,869 apuntar, ese trigger 1384 01:11:36,869 --> 01:11:38,810 que es que según pulsas pasa algo 1385 01:11:38,810 --> 01:11:41,109 yo lo tengo aquí configurado para que en cualquier 1386 01:11:41,109 --> 01:11:42,710 momento, sin tener que 1387 01:11:42,710 --> 01:11:44,930 pasar por otro, porque aquí es verdad 1388 01:11:44,930 --> 01:11:47,149 que tú no puedes ir de este nodo 1389 01:11:47,149 --> 01:11:49,329 a este si no pasa antes por walk 1390 01:11:49,329 --> 01:11:49,909 ¿vale? 1391 01:11:49,909 --> 01:12:11,090 Pero aquí yo he configurado que en cuanto haya el trigger llamado aim, que ves que no es una booleana, no es que se quede marcada o no, bueno, aquí se queda marcada, pero mientras jugamos, cuando yo pulso se desencadena una vez ese aim y paso a esto, porque es un trigger que lo que hace es funcionar una vez como para desencadenar una acción, ¿vale? 1392 01:12:11,090 --> 01:12:33,489 Ahí lo que hago es que de pronto aparece una geometría que tengo una pistola en la mano, luego posteriormente el booleano apuntando pasa a ser true, ¿vale? Y yo le doy y lo que hace es que entonces ya está la condición que hay aquí para que pase a enfundar o desenfundar. 1393 01:12:33,489 --> 01:12:35,529 porque yo cuando esto 1394 01:12:35,529 --> 01:12:37,510 pasa a ser apuntando 1395 01:12:37,510 --> 01:12:39,350 positivo, se queda aquí 1396 01:12:39,350 --> 01:12:41,369 y en cuanto yo suelte con el 1397 01:12:41,369 --> 01:12:43,989 enfundar, esto le digo 1398 01:12:43,989 --> 01:12:45,930 que sea falso, entonces ya 1399 01:12:45,930 --> 01:12:47,930 le doy la condición para que pase 1400 01:12:47,930 --> 01:12:49,729 de aquí a aquí y de aquí a aquí 1401 01:12:49,729 --> 01:12:51,329 y vuelva a estar en el estado normal 1402 01:12:51,329 --> 01:12:53,510 ¿sí? 1403 01:12:53,909 --> 01:12:55,489 sé que es lioso y que son muchas cosas 1404 01:12:55,489 --> 01:12:58,010 pero esto es lo que hay que ir pensando que se va 1405 01:12:58,010 --> 01:12:59,869 haciendo, claro, ¿vale? entonces yo 1406 01:12:59,869 --> 01:13:01,930 le doy, estoy enfundando, yo me puedo mover 1407 01:13:01,930 --> 01:13:04,029 etcétera, girar, ¿vale? eso no lo he bloqueado 1408 01:13:04,029 --> 01:13:05,529 pero en cuanto suelte 1409 01:13:05,529 --> 01:13:07,710 ese getKeyUp, el control 1410 01:13:07,710 --> 01:13:09,810 esto va a dejar de ser positivo 1411 01:13:09,810 --> 01:13:11,949 se cumple esta condición, se guarda 1412 01:13:11,949 --> 01:13:13,630 esa animación que tiene y ahora 1413 01:13:13,630 --> 01:13:15,550 pues ya empieza a andar otra vez 1414 01:13:15,550 --> 01:13:16,949 vale 1415 01:13:16,949 --> 01:13:19,350 vale, entonces 1416 01:13:19,350 --> 01:13:20,649 eh 1417 01:13:20,649 --> 01:13:23,449 sí, más o menos 1418 01:13:23,449 --> 01:13:25,310 a ver aquí, borra algo, más o menos 1419 01:13:25,310 --> 01:13:27,430 sé que hay muchas cosas 1420 01:13:27,430 --> 01:13:29,770 y luego, ¿por qué? por ejemplo 1421 01:13:29,770 --> 01:13:30,909 se usa en este caso 1422 01:13:30,909 --> 01:13:33,529 en vez del translate, por ejemplo 1423 01:13:33,529 --> 01:13:35,069 se usa el character controller 1424 01:13:35,069 --> 01:13:37,529 cuando estás trabajando en un 1425 01:13:37,529 --> 01:13:38,529 terreno que es un plano 1426 01:13:38,529 --> 01:13:41,449 pues no pasa nada, porque tú estás 1427 01:13:41,449 --> 01:13:43,470 moviendo un personaje hacia adelante y hacia atrás 1428 01:13:43,470 --> 01:13:45,609 y no pasa nada, pero ¿qué pasa 1429 01:13:45,609 --> 01:13:47,649 si tú estás haciendo, como en este tipo de juegos 1430 01:13:47,649 --> 01:13:49,470 un terreno que tiene 1431 01:13:49,470 --> 01:13:50,289 pendientes? 1432 01:13:51,670 --> 01:13:53,449 Ah, vale, que las traspasas, ¿no? 1433 01:13:53,609 --> 01:13:55,109 Claro, tú lo que... 1434 01:13:55,109 --> 01:13:57,909 la gracia que tiene es que tú puedes decirle 1435 01:13:57,909 --> 01:13:59,510 hasta dónde subes, porque 1436 01:13:59,510 --> 01:14:01,529 si te fijas, el componente 1437 01:14:01,529 --> 01:14:03,770 carácter control ya está configurado 1438 01:14:03,770 --> 01:14:05,649 para cosas como límite 1439 01:14:05,649 --> 01:14:07,789 de cuestas, o si hay peldaños 1440 01:14:07,789 --> 01:14:09,510 pues que lo supere, claro 1441 01:14:09,510 --> 01:14:11,310 tú si estás diciendo que un objeto vaya para adelante 1442 01:14:11,310 --> 01:14:13,489 y hay un escalón con su collider 1443 01:14:13,489 --> 01:14:15,529 pues se queda ahí pillado, no tira 1444 01:14:15,529 --> 01:14:17,609 para adelante, esto lo que permite es 1445 01:14:17,609 --> 01:14:19,909 ¿ves? aquí la pendiente es mayor de 45 grados 1446 01:14:19,909 --> 01:14:21,069 ha subido hasta ahí 1447 01:14:21,069 --> 01:14:23,289 ¿vale? pero ya no sube, si yo le digo que 1448 01:14:23,289 --> 01:14:25,250 el límite sean, pues voy a poner 180 1449 01:14:25,250 --> 01:14:27,710 ¿vale? vas a ver 1450 01:14:27,710 --> 01:14:33,649 que ya el personaje sí que sube eso no se puede con el transforma menos que le des un montón de 1451 01:14:33,649 --> 01:14:39,890 vueltas vale entonces el juego del mundo abierto pues es la forma digamos ya optimizada para hacer 1452 01:14:39,890 --> 01:14:44,689 estos comportamientos tiene más cosas vale pero sobre todo esto también tiene una detección de 1453 01:14:44,689 --> 01:14:54,170 piel distinta bueno tiene otro tipo de parámetros vale si yo ahora mismo le digo pues eso que 45 no 1454 01:14:54,170 --> 01:14:56,210 bueno, se caerá, pero yo ya 1455 01:14:56,210 --> 01:14:57,989 por aquí no puedo subir 1456 01:14:57,989 --> 01:15:00,170 ¿vale? por mucho que me empeñe 1457 01:15:00,170 --> 01:15:01,329 ¿vale? 1458 01:15:02,529 --> 01:15:04,289 esa es una de las razones para usar el carácter 1459 01:15:04,289 --> 01:15:05,050 controller, por ejemplo 1460 01:15:05,050 --> 01:15:08,189 más cosas 1461 01:15:08,189 --> 01:15:10,409 lo que me has dicho de la pistola en este caso 1462 01:15:10,409 --> 01:15:12,149 de las geometrías que se vinculan con 1463 01:15:12,149 --> 01:15:13,270 una animación o algo así, ¿no? 1464 01:15:14,409 --> 01:15:15,409 ah, sí, eso 1465 01:15:15,409 --> 01:15:16,789 lo pone 1466 01:15:16,789 --> 01:15:21,149 a ver 1467 01:15:21,149 --> 01:15:24,250 mira, fíjate en una cosa 1468 01:15:24,250 --> 01:15:26,170 a ver si es esto, o bueno 1469 01:15:26,170 --> 01:15:28,050 si sabes el punto concreto del tema 1470 01:15:28,050 --> 01:15:29,970 lo vemos, pero creo que se refiere a esto 1471 01:15:29,970 --> 01:15:31,350 Sí, creo que era por ahí, sí 1472 01:15:31,350 --> 01:15:33,829 Claro, tú cuando sacas de Mixamo 1473 01:15:33,829 --> 01:15:35,630 una animación 1474 01:15:35,630 --> 01:15:37,569 con su esqueleto 1475 01:15:37,569 --> 01:15:39,930 o bueno, o no de Mixamo, que lo has hecho tú 1476 01:15:39,930 --> 01:15:41,510 el rigging en un software 3D 1477 01:15:41,510 --> 01:15:43,510 o te has bajado una animación de internet, ¿vale? 1478 01:15:43,510 --> 01:15:44,949 aunque no se haya hecho con Mixamo 1479 01:15:44,949 --> 01:15:47,289 tú tienes aquí esta geometría 1480 01:15:47,289 --> 01:15:49,329 entonces tú lo que puedes hacer es buscar, por ejemplo 1481 01:15:49,329 --> 01:15:50,989 si te fijas aquí 1482 01:15:50,989 --> 01:15:52,430 a ver, en escena 1483 01:15:52,430 --> 01:15:55,210 tenemos todas las partes del cuerpo 1484 01:15:55,210 --> 01:16:03,029 Yo las puedo ir marcando y ves que cambia dónde está la posición de ese elemento, ¿no? De la mano, del brazo, ¿vale? En el rigging funciona así. 1485 01:16:03,489 --> 01:16:12,409 Entonces, aquí, por ejemplo, si yo quiero añadir este personaje, por defecto, no viene con esta pistola. Mira que la desactivo y ves que la pistola desaparece y aparece, ¿vale? 1486 01:16:12,869 --> 01:16:21,409 Entonces, lo que se puede hacer es hacer hijo un elemento de otra geometría para que se mueva con ese objeto. 1487 01:16:21,409 --> 01:16:33,789 Ahora mismo, en cuanto a la mano, ¿vale? Porque está vinculada a la mano. Se mueva, vas a ver... Bueno, de primera es el que está oculta la pistola. Solo la saca, ves que la ha sacado ahí y ves que se está moviendo con la mano. 1488 01:16:34,350 --> 01:16:45,109 Pues si tú la asocias y la pones en una posición, por eso de que al emparentar y hacer hijos un objeto de otro, coge sus posiciones, ¿vale? A ver, que aquí ha habido un pequeño bug, ¿vale? 1489 01:16:45,109 --> 01:17:09,590 Pues estamos adjuntando geometrías. ¿Qué es lo que he hecho? Que cuando yo se hace la animación esta de enfundar, se oculta esa pistola. Fíjate que yo cuando desenfundo, ¿vale? Tengo aquí un método, primero que la pistola, ¿vale? Que es este GameObject, que yo tengo aquí metida la pistola, ¿vale? 1490 01:17:09,590 --> 01:17:14,069 Yo aquí he hecho una variable pública que es esta pistola y la he arrastrado ahí. 1491 01:17:14,590 --> 01:17:16,970 Y entonces yo ya puedo decir que ese objeto se haga activo o no. 1492 01:17:17,630 --> 01:17:22,470 Cuando yo desenfundo y le doy al control, a ver si me deja porque me está atacando, 1493 01:17:22,829 --> 01:17:24,010 esa se hace activa y se ve. 1494 01:17:24,569 --> 01:17:26,770 Cuando desenfundo se oculta. 1495 01:17:26,770 --> 01:17:33,770 ¿Por qué? Yo tengo aquí otro método que lo que hace es hacer que este objeto de pistola pase a no ser activo. 1496 01:17:33,770 --> 01:17:50,529 Entonces, lo que dirá es que, claro, tú si esta pistola la metes dentro de la mano, pues se va a ver raro porque está dentro de la mano. O si la animación, por ejemplo, hiciera que se rasca la cabeza y le pones la pistola, pues la pistola se metería en la cabeza, ¿vale? 1497 01:17:50,970 --> 01:17:51,210 Sí. 1498 01:17:51,810 --> 01:17:55,710 Entonces, entiendo que se refiere a eso. ¿Sí? ¿Te cuadra con lo que has leído? 1499 01:17:57,609 --> 01:17:57,930 Eh... 1500 01:17:57,930 --> 01:17:59,869 ¿O se refería a otra cosa? Digo que... 1501 01:17:59,869 --> 01:18:07,630 Aquí pone que no puedes cambiar la jerarquía añadiendo el arma en la mano, ni borrar mallas. 1502 01:18:08,109 --> 01:18:10,229 Claro, por mucho que yo tenga... 1503 01:18:10,229 --> 01:18:12,569 Esta pistola es un elemento independiente del personaje. 1504 01:18:12,569 --> 01:18:20,090 Si tú empiezas a meter objetos en mitad, te puedes cargar la estructura de esqueleto. 1505 01:18:20,189 --> 01:18:22,850 Entonces siempre lo suyo es ponerlo al final de una de las ramas. 1506 01:18:22,930 --> 01:18:23,369 Vale. 1507 01:18:23,369 --> 01:18:42,210 Vale, porque si no, tú ten en cuenta que si de pronto metes algo que entre Right Solder y Arm, todo lo que hay dentro ya no está teniendo ese orden que detecta el avatar, ¿vale? Ese avatar, ese constructo que hay de huesos que te he enseñado antes que salí aquí, bueno, lo tengo por aquí. 1508 01:18:42,210 --> 01:18:44,289 Espera, que tendría que buscarlo, pero vamos 1509 01:18:44,289 --> 01:18:45,590 El avatar que es 1510 01:18:45,590 --> 01:18:48,710 Pues en el caso del zombie 1511 01:18:48,710 --> 01:18:49,989 Por ejemplo, este 1512 01:18:49,989 --> 01:18:52,829 Pues esto, ¿sabes? Si tú empiezas a meter elementos 1513 01:18:52,829 --> 01:18:54,609 Que ya no se cuadran con 1514 01:18:54,609 --> 01:18:55,850 Porque esto al final son 1515 01:18:55,850 --> 01:18:57,869 Como si yo arrastro estos 1516 01:18:57,869 --> 01:18:59,850 Estas posiciones, ¿vale? 1517 01:18:59,869 --> 01:19:02,289 Esta distribución de elementos 1518 01:19:02,289 --> 01:19:04,250 Al final hay que ir haciendo que respete 1519 01:19:04,250 --> 01:19:06,029 Porque es lo que hace que el software 1520 01:19:06,029 --> 01:19:07,550 Cuando vas haciendo las animaciones 1521 01:19:07,550 --> 01:19:10,649 Al abrir una animación cualquiera 1522 01:19:10,649 --> 01:19:12,069 Tú tienes aquí estos elementos 1523 01:19:12,069 --> 01:19:14,050 también, y bueno, este justo 1524 01:19:14,050 --> 01:19:15,609 no tiene mucha animación, pero 1525 01:19:15,609 --> 01:19:18,050 que la animación se basa en qué punto 1526 01:19:18,050 --> 01:19:20,109 de cada elemento es el que se tiene que mover 1527 01:19:20,109 --> 01:19:22,170 si tú no lo estás vinculando bien 1528 01:19:22,170 --> 01:19:23,470 no lo estás ajustando bien, pues 1529 01:19:23,470 --> 01:19:25,090 no lo va a respetar, claro 1530 01:19:25,090 --> 01:19:26,430 ¿vale? 1531 01:19:26,890 --> 01:19:29,810 Sí, aquí pone que se puede hacer 1532 01:19:29,810 --> 01:19:31,989 otro prefab pulsando 1533 01:19:31,989 --> 01:19:33,869 el botón derecho al FBX 1534 01:19:33,869 --> 01:19:36,130 de la jerarquía y marcar prefab 1535 01:19:36,130 --> 01:19:37,970 un pack 1536 01:19:37,970 --> 01:19:39,909 complete y dejará de ser 1537 01:19:39,909 --> 01:19:40,810 dependiente del 1538 01:19:40,810 --> 01:19:52,270 fx original vale eso mira por ejemplo vamos aquí a ver no tenía yo a este hombre cuando tienes tú 1539 01:19:52,270 --> 01:20:03,510 un fx a ver tengo que buscar a este survivor y aquí tengo survivor cuando tienes un fx 1540 01:20:03,510 --> 01:20:07,069 Tú al meterlo aquí 1541 01:20:07,069 --> 01:20:09,470 Fíjate que tienes 1542 01:20:09,470 --> 01:20:11,189 Y además lo tienes marcado azul 1543 01:20:11,189 --> 01:20:12,810 Como si fuera un prefab 1544 01:20:12,810 --> 01:20:16,210 Un montón de cosas vinculadas 1545 01:20:16,210 --> 01:20:16,550 ¿Vale? 1546 01:20:16,569 --> 01:20:18,229 Porque dentro del paquete FBX 1547 01:20:18,229 --> 01:20:20,590 Tenemos también estas tres estructuras 1548 01:20:20,590 --> 01:20:23,229 Que si te fijas, cada una es una cosa 1549 01:20:23,229 --> 01:20:24,850 Por ejemplo, aquí son tres elementos 1550 01:20:24,850 --> 01:20:27,029 Y yo, si quiero sacar 1551 01:20:27,029 --> 01:20:29,010 La mochila 1552 01:20:29,010 --> 01:20:30,569 Que ves que es un elemento independiente 1553 01:20:30,569 --> 01:20:32,689 Está dentro del personaje 1554 01:20:32,689 --> 01:20:34,770 pero no está rigueada 1555 01:20:34,770 --> 01:20:37,109 porque la mochila de hecho no tiene animación 1556 01:20:37,109 --> 01:20:39,090 me refiero, la mochila va siguiendo 1557 01:20:39,090 --> 01:20:41,189 donde esté el personaje, pero lo que tiene animación 1558 01:20:41,189 --> 01:20:42,369 de que mueva brazos y tal 1559 01:20:42,369 --> 01:20:44,590 es el personaje, la mochila no está rigueada 1560 01:20:44,590 --> 01:20:47,229 entonces yo si quiero sacar la mochila 1561 01:20:47,229 --> 01:20:48,250 no te deja 1562 01:20:48,250 --> 01:20:50,229 porque está dentro de este paquete 1563 01:20:50,229 --> 01:20:52,689 igual yo quiero tener la mochila porque de pronto 1564 01:20:52,689 --> 01:20:54,890 desaparece el personaje y tal, ves que no me deja 1565 01:20:54,890 --> 01:20:56,750 entonces esto se puede hacer 1566 01:20:56,750 --> 01:20:57,770 o arrastrando 1567 01:20:57,770 --> 01:21:00,909 ves que aunque yo arrastre 1568 01:21:00,909 --> 01:21:02,270 solo el backpack, borro 1569 01:21:02,270 --> 01:21:04,970 yo cojo este backpack y digo, ah mira, tengo esta geometría 1570 01:21:04,970 --> 01:21:06,090 la voy a meter aquí 1571 01:21:06,090 --> 01:21:08,090 aquí, entre las cámaras 1572 01:21:08,090 --> 01:21:11,189 y ves que lo que hace es meterme a todo el personaje 1573 01:21:11,189 --> 01:21:12,329 tengo todo otra vez 1574 01:21:12,329 --> 01:21:13,930 tengo ahí un personaje entero 1575 01:21:13,930 --> 01:21:16,409 y otra vez, digo, no, yo solo quiero la mochila 1576 01:21:16,409 --> 01:21:19,189 no me deja, que lo que hay que hacer, desempaquetar 1577 01:21:19,189 --> 01:21:20,210 cogemos este elemento 1578 01:21:20,210 --> 01:21:22,970 y en prefaz decimos desempaquetar por completo 1579 01:21:22,970 --> 01:21:24,409 y ahora ves que ya no 1580 01:21:24,409 --> 01:21:26,250 está vinculado con ese azul 1581 01:21:26,250 --> 01:21:28,949 y ahora la mochila, yo ya puedo borrar este personaje 1582 01:21:28,949 --> 01:21:30,810 y tengo la mochila solo 1583 01:21:30,810 --> 01:21:32,649 Bueno, es que este es el otro que he metido 1584 01:21:32,649 --> 01:21:33,810 Vale 1585 01:21:33,810 --> 01:21:36,590 O sea, esto es como para solo 1586 01:21:36,590 --> 01:21:38,750 De ese paquete solamente aislar 1587 01:21:38,750 --> 01:21:40,689 Una cosa que tú quieras y ya está 1588 01:21:40,689 --> 01:21:42,189 Y colocarla luego donde quiera 1589 01:21:42,189 --> 01:21:44,850 Se refiere incluso a esto, ¿vale? 1590 01:21:44,989 --> 01:21:46,789 Para desempaquetar tiene que estar dentro 1591 01:21:46,789 --> 01:21:47,989 Del juego 1592 01:21:47,989 --> 01:21:50,810 Pero eso, si tienes un FBX con muchos 1593 01:21:50,810 --> 01:21:52,130 Elementos o muchas partes 1594 01:21:52,130 --> 01:21:55,149 Porque un FBX al final es un formato que admite 1595 01:21:55,149 --> 01:21:56,869 Meter un montón de cosas 1596 01:21:56,869 --> 01:21:58,810 Dentro, o varias geometrías, como ves aquí 1597 01:21:58,810 --> 01:22:00,869 asociadas, ¿vale? Pero está todo dentro 1598 01:22:00,869 --> 01:22:02,750 de un paquete, está leyendo solo un único 1599 01:22:02,750 --> 01:22:04,369 archivo, que es este FBX. 1600 01:22:04,829 --> 01:22:07,149 Si queremos independizar las geometrías 1601 01:22:07,149 --> 01:22:07,869 hay que hacer este 1602 01:22:07,869 --> 01:22:09,529 un pack, ¿vale? 1603 01:22:10,729 --> 01:22:13,289 Vale. A eso se refiere. Vale, vale, vale. 1604 01:22:13,409 --> 01:22:13,890 Es que así 1605 01:22:13,890 --> 01:22:16,430 leído no lo entendía. 1606 01:22:16,750 --> 01:22:18,510 Ya, no, no, sí. Si es que hay cosas que 1607 01:22:18,510 --> 01:22:20,590 es complicado, que yo lo entiendo, ¿eh? 1608 01:22:20,930 --> 01:22:22,829 Pero bueno, para eso me podéis 1609 01:22:22,829 --> 01:22:24,090 preguntar también. Vale. 1610 01:22:24,609 --> 01:22:25,350 Más cosas. 1611 01:22:26,510 --> 01:22:28,710 Yo ya estaba, porque es que como 1612 01:22:28,710 --> 01:22:30,409 no ha llegado a más, pues... 1613 01:22:30,409 --> 01:22:30,649 Vale. 1614 01:22:33,770 --> 01:22:34,170 Eso, 1615 01:22:34,390 --> 01:22:36,489 si usas el Character Controller, 1616 01:22:37,189 --> 01:22:38,449 importante, para que tenga 1617 01:22:38,449 --> 01:22:40,630 gravedad, lo pone en los apuntes, 1618 01:22:40,729 --> 01:22:42,689 pero es de esas cosas que 1619 01:22:42,689 --> 01:22:44,710 si no, no se ve. 1620 01:22:44,789 --> 01:22:46,649 Mira, voy a meter... 1621 01:22:46,649 --> 01:22:48,590 Mira, voy a ocultar este personaje que tengo, 1622 01:22:48,649 --> 01:22:50,630 ¿vale? Y voy a meter otro, simplemente 1623 01:22:50,630 --> 01:22:52,170 para que lo veamos rápido. 1624 01:22:52,310 --> 01:22:54,770 Si metemos a este Survivor 1625 01:22:54,770 --> 01:22:56,710 y lo meto 1626 01:22:56,710 --> 01:22:58,050 y lo voy a meter ahí 1627 01:22:58,050 --> 01:22:59,930 en esta parte, ¿vale? 1628 01:23:00,109 --> 01:23:02,109 Y lo voy a levantar, ¿vale? 1629 01:23:02,310 --> 01:23:04,170 Cuando metes un... 1630 01:23:04,170 --> 01:23:06,270 Claro, otra de las cosas que me has dicho 1631 01:23:06,270 --> 01:23:08,289 es más fácil un translate. El problema 1632 01:23:08,289 --> 01:23:10,369 es que el translate no aporta gravedad. 1633 01:23:10,770 --> 01:23:12,470 Sí, eso te iba a decir 1634 01:23:12,470 --> 01:23:14,270 que luego con el... 1635 01:23:14,270 --> 01:23:16,529 que cuando has empezado a subir montañas 1636 01:23:16,529 --> 01:23:18,329 digo, pues si ya no hay que 1637 01:23:18,329 --> 01:23:19,890 poner ni gravedad ni nada. Eso es. 1638 01:23:19,890 --> 01:23:22,149 Eso ya lo viene todo 1639 01:23:22,149 --> 01:23:24,210 junto y estaba mirando todo 1640 01:23:24,210 --> 01:23:26,029 lo que se estaba moviendo y digo 1641 01:23:26,029 --> 01:23:28,090 pues ahí no viene nada de poner nada. 1642 01:23:28,210 --> 01:23:29,449 No hay Rigidbody, por ejemplo. 1643 01:23:29,550 --> 01:23:30,869 Sí, sí, sí, claro, exacto. 1644 01:23:31,229 --> 01:23:33,930 Vale, eso, la gracia que tiene el Character Controller, 1645 01:23:34,090 --> 01:23:35,810 se lo agrego a este nuevo que he metido, 1646 01:23:36,430 --> 01:23:37,189 Character Controller, 1647 01:23:37,689 --> 01:23:40,550 es que por defecto tiene ya como una especie de cápsula 1648 01:23:40,550 --> 01:23:41,529 que hay que ajustar, ¿vale? 1649 01:23:42,529 --> 01:23:44,909 Vale, que esto hay que hacer que se ajuste bien, 1650 01:23:45,029 --> 01:23:47,149 pues yo qué sé, la altura más o menos está bien, 1651 01:23:47,229 --> 01:23:48,569 pero el center en Y, no. 1652 01:23:49,510 --> 01:23:51,810 Pero voy a hacer más grande esto para que se vea mejor, 1653 01:23:52,189 --> 01:23:53,090 que si no, no ves. 1654 01:23:53,090 --> 01:23:55,050 ¿vale? y lo he puesto 1655 01:23:55,050 --> 01:23:57,350 sobre todo lo más importante es que se ajusta 1656 01:23:57,350 --> 01:23:59,170 a los pies ¿vale? a la forma de la silueta 1657 01:23:59,170 --> 01:24:01,430 yo que sé, para que lo veamos 1658 01:24:01,430 --> 01:24:03,329 aquí ¿vale? y aquí cuando yo 1659 01:24:03,329 --> 01:24:04,689 le doy al play no pasa nada 1660 01:24:04,689 --> 01:24:06,869 vas a ver que se queda ahí en volandas 1661 01:24:06,869 --> 01:24:09,270 ¿vale? esto lo ponen 1662 01:24:09,270 --> 01:24:11,210 los apuntes ¿vale? pero es verdad que hasta que no se hace 1663 01:24:11,210 --> 01:24:12,630 igual cuesta, pero 1664 01:24:12,630 --> 01:24:14,649 eh... 1665 01:24:14,649 --> 01:24:17,149 Character Controller tiene, hay que hacer 1666 01:24:17,149 --> 01:24:18,949 un script, tiene varios métodos 1667 01:24:18,949 --> 01:24:21,170 que tienen cosas asociadas 1668 01:24:21,170 --> 01:24:22,689 me refiero, tiene 1669 01:24:22,689 --> 01:24:39,069 Y lo vas a ver en los ajustes, en los apuntes. Hay como dos formas de mover básicas en el Character Controller a un personaje. Character Controller Explicación, yo qué sé, voy a llamarlo así. Y le voy a juntar este script al personaje del Survivor nuevo, ¿vale? Ahí lo tengo. 1670 01:24:39,069 --> 01:25:00,510 Cuando nos metemos aquí, sí, y vas a ver que, bueno, lo mismo, para poder afectar a los parámetros y a las posibilidades que tiene un componente CharacterController, lo primero que hay que hacer es, le llamamos cc, es coger ese CharacterController, acceder al componente, ¿no? Con ese GetComponent, ¿sí? 1671 01:25:00,510 --> 01:25:07,310 Lo mismo que hemos hecho antes, pero en este caso con carácter controller, porque si no, no podemos acceder a las propiedades que tiene, ¿vale? 1672 01:25:07,829 --> 01:25:16,489 Y sin yo hacer más, en el update, ¿vale? Para que se vaya refrescando, hay una forma de mover a los personajes que se llama simple move, ¿vale? 1673 01:25:16,489 --> 01:25:25,729 El simple move te va a pedir unas coordenadas de movimiento y yo, por ejemplo, voy a poner solamente una vacía, ¿vale? 1674 01:25:25,729 --> 01:25:28,590 Que es un vector 3, 0, ¿vale? 1675 01:25:28,630 --> 01:25:31,270 Esto, no sé si sabes lo que es. 1676 01:25:35,689 --> 01:25:41,649 Esto es como un vector 0 es como hacer un nuevo vector 3 1677 01:25:41,649 --> 01:25:44,189 que sea así, 0, 0, 0, ¿vale? 1678 01:25:44,229 --> 01:25:45,229 Ahora mismo no se va a mover. 1679 01:25:46,029 --> 01:25:48,569 Simplemente estoy poniendo algo como para que veas 1680 01:25:48,569 --> 01:25:51,289 que incluso aunque no se mueva y no se pase nada más, ¿vale? 1681 01:25:51,310 --> 01:25:54,729 Al usar este método vas a ver que ya una de las cosas 1682 01:25:54,729 --> 01:25:56,789 que tiene, a ver, espera, lo guardo 1683 01:25:56,789 --> 01:25:58,430 una de las cosas que tiene 1684 01:25:58,430 --> 01:26:02,310 es que, ¿ves que el personaje ya ha caído? 1685 01:26:03,050 --> 01:26:03,989 Sí. ¿Vale? 1686 01:26:05,029 --> 01:26:05,949 Voy un segundo 1687 01:26:05,949 --> 01:26:07,850 que me parece interesante 1688 01:26:07,850 --> 01:26:09,970 un segundo, vamos a ir 1689 01:26:09,970 --> 01:26:11,770 un poco a los apuntes para que veas también 1690 01:26:11,770 --> 01:26:13,989 cómo interpretar eso, aunque lo explica Álvaro 1691 01:26:13,989 --> 01:26:15,630 más o menos ya en el 1692 01:26:15,630 --> 01:26:18,090 en su vídeo, pero en, a ver 1693 01:26:18,090 --> 01:26:21,369 joder, vale 1694 01:26:21,369 --> 01:26:23,430 tengo que ir al aula virtual 1695 01:26:23,430 --> 01:26:25,630 un segundete 1696 01:26:25,630 --> 01:26:27,789 voy a abrir los apuntes de este tema 1697 01:26:27,789 --> 01:26:33,199 vale, tema 6 1698 01:26:33,199 --> 01:26:35,300 y si vamos a la parte de los 1699 01:26:35,300 --> 01:26:36,199 CharacterController 1700 01:26:36,199 --> 01:26:39,340 bueno, os he puesto 1701 01:26:39,340 --> 01:26:41,140 bastantes recursos 1702 01:26:41,140 --> 01:26:42,840 vale, pero aquí te pone 1703 01:26:42,840 --> 01:26:45,439 que este componente tiene varias características 1704 01:26:45,439 --> 01:26:47,239 propias, se moverá 1705 01:26:47,239 --> 01:26:49,199 solo cuando lo llamamos al 1706 01:26:49,199 --> 01:26:51,239 SimpleMove y Move, cuando ponemos 1707 01:26:51,239 --> 01:26:52,939 solo referido a 1708 01:26:52,939 --> 01:26:55,199 que estemos usando ese componente 1709 01:26:55,199 --> 01:26:56,279 de CharacterController 1710 01:26:56,279 --> 01:26:59,199 SimpleMove, te lo pone 1711 01:26:59,199 --> 01:27:02,659 lo que no permite es hacer saltos 1712 01:27:02,659 --> 01:27:04,100 es un método que en este 1713 01:27:04,100 --> 01:27:05,659 aunque te pida aquí 1714 01:27:05,659 --> 01:27:07,720 un vector 3 de movimiento 1715 01:27:07,720 --> 01:27:09,420 igual que en el translate 1716 01:27:09,420 --> 01:27:12,460 que metíamos los 3 ejes para ver hacia donde se movía 1717 01:27:12,460 --> 01:27:16,500 el eje Y, el de salto, lo omite 1718 01:27:16,500 --> 01:27:18,420 ¿por qué? porque lo que va a estar haciendo 1719 01:27:18,420 --> 01:27:20,239 siempre es que el personaje 1720 01:27:20,239 --> 01:27:22,039 va a estar cayendo hasta que encuentre 1721 01:27:22,039 --> 01:27:24,300 un objeto con un collider que le detenga 1722 01:27:24,300 --> 01:27:25,039 ¿vale? 1723 01:27:26,140 --> 01:27:27,779 esto es porque hay muchos juegos 1724 01:27:27,779 --> 01:27:30,039 Que realmente los personajes no saltan 1725 01:27:30,039 --> 01:27:31,539 Solo se van desplazando por el espacio 1726 01:27:31,539 --> 01:27:34,340 Y quitarte, si va a ser así el juego 1727 01:27:34,340 --> 01:27:36,680 Y no salta, quitarte todo lo relacionado 1728 01:27:36,680 --> 01:27:38,420 Con el eje y simplifica mucho las cosas 1729 01:27:38,420 --> 01:27:39,199 ¿Vale? 1730 01:27:39,680 --> 01:27:41,039 Porque ya te mete la gravedad 1731 01:27:41,039 --> 01:27:44,659 Te va metiendo más 1732 01:27:44,659 --> 01:27:47,159 Posibilidades 1733 01:27:47,159 --> 01:27:48,960 O te limita 1734 01:27:48,960 --> 01:27:50,899 Digamos, en tuertos que puedes tener 1735 01:27:50,899 --> 01:27:52,760 Perdona un segundo que tengo que 1736 01:27:52,760 --> 01:27:54,260 Sonarme los mocos, perdón 1737 01:27:54,260 --> 01:28:03,079 Por cierto, acabo de ver que hay otra compañera 1738 01:28:03,079 --> 01:28:05,319 se ha metido, que no la he saludado 1739 01:28:05,319 --> 01:28:05,960 ni la había visto 1740 01:28:05,960 --> 01:28:09,220 hola, sí, digo, me metí al principio 1741 01:28:09,220 --> 01:28:10,739 llevo escuchando todo el rato 1742 01:28:10,739 --> 01:28:12,140 ¿ah, sí? joder, pues sí 1743 01:28:12,140 --> 01:28:14,539 pues estoy aquí 1744 01:28:14,539 --> 01:28:16,859 estás agazapada 1745 01:28:16,859 --> 01:28:19,180 estoy intentando 1746 01:28:19,180 --> 01:28:20,159 ponerme al día un poquito 1747 01:28:20,159 --> 01:28:22,560 vale, pues 1748 01:28:22,560 --> 01:28:25,300 ¿qué estaba diciendo? 1749 01:28:25,420 --> 01:28:26,420 vale, eso, el simple move 1750 01:28:26,420 --> 01:28:28,260 lo que hace es que obvia 1751 01:28:28,260 --> 01:28:31,460 este eje 1752 01:28:31,460 --> 01:28:32,800 digamos que siempre lo deja 1753 01:28:32,800 --> 01:28:34,539 como si no existiera 1754 01:28:34,539 --> 01:28:36,779 ¿vale? y eso es lo que significa 1755 01:28:36,779 --> 01:28:38,140 esto que estamos viendo aquí de 1756 01:28:38,140 --> 01:28:42,739 pues eso, a ver 1757 01:28:42,739 --> 01:28:45,739 que no puede saltar, ¿no? 1758 01:28:45,800 --> 01:28:48,260 sí, pero por aquí pone, por ejemplo, usando el método move 1759 01:28:48,260 --> 01:28:50,319 que es más complejo y ese sí que 1760 01:28:50,319 --> 01:28:52,439 permite usar 1761 01:28:52,439 --> 01:28:53,920 digamos 1762 01:28:53,920 --> 01:28:56,920 el eje Y en posición de reposo 1763 01:28:56,920 --> 01:28:58,979 no tiene gravedad y se la tenemos que añadir nosotros 1764 01:28:58,979 --> 01:29:00,859 es decir, cuando usamos 1765 01:29:00,859 --> 01:29:16,819 Y aquí un ejemplo de uso. Cuando usamos el simple move, no hace falta decir nada de gravedad porque ya la tiene por defecto, pero si luego en el ejemplo que ponemos después usamos un move, la gravedad hay que simularla todo el rato con parámetros que está añadiendolo. 1766 01:29:16,819 --> 01:29:28,439 Y otra cosa que tiene buena el Character Controller es que tiene un parámetro, una opción 1767 01:29:28,439 --> 01:29:37,979 Que es este IsGrounder, que lo que hace es que devuelve una booleana de si está este Collider que tenemos aquí 1768 01:29:37,979 --> 01:29:42,920 Que no es un Collider, pero es básicamente el área en el que se restringe el Character Controller 1769 01:29:42,920 --> 01:29:45,180 hay en todo momento una forma de comprobar 1770 01:29:45,180 --> 01:29:47,600 si esto está tocando el suelo 1771 01:29:47,600 --> 01:29:48,699 o otro collider, vaya 1772 01:29:48,699 --> 01:29:51,359 si nosotros por ejemplo 1773 01:29:51,359 --> 01:29:52,760 queremos que el personaje salte 1774 01:29:52,760 --> 01:29:54,680 vamos a querer que salte siempre 1775 01:29:54,680 --> 01:29:56,420 que esté tocando el suelo 1776 01:29:56,420 --> 01:29:59,479 a menos que tengamos un juego que permita hacer dobles saltos 1777 01:29:59,479 --> 01:30:01,560 o algo así, pero no es posible saltar 1778 01:30:01,560 --> 01:30:02,840 si no estás apoyado en algo, ¿verdad? 1779 01:30:03,479 --> 01:30:05,020 entonces, este 1780 01:30:05,020 --> 01:30:07,699 mira, me abro el código que tenía yo antes 1781 01:30:07,699 --> 01:30:10,960 este character controller 1782 01:30:10,960 --> 01:30:12,479 lo que permite por ejemplo es 1783 01:30:12,479 --> 01:30:14,779 a ver, que 1784 01:30:14,779 --> 01:30:17,100 si, ves que 1785 01:30:17,100 --> 01:30:19,319 bueno, aquí es la variable que he recogido 1786 01:30:19,319 --> 01:30:21,319 el carácter controller, si comprueba que está 1787 01:30:21,319 --> 01:30:23,260 aterrizado, que está tocando 1788 01:30:23,260 --> 01:30:25,359 suelo, ahí es donde entonces si puedo 1789 01:30:25,359 --> 01:30:27,460 llamar al trigger de jump 1790 01:30:27,460 --> 01:30:29,380 ¿vale? y se ejecuta, si no, no 1791 01:30:29,380 --> 01:30:31,279 porque si no, es lo que me impide 1792 01:30:31,279 --> 01:30:33,220 que yo cuando le dé a la barra espaciadora 1793 01:30:33,220 --> 01:30:33,859 varias veces 1794 01:30:33,859 --> 01:30:37,220 a ver, espera, claro, es que tengo oculto 1795 01:30:37,220 --> 01:30:39,140 ese personaje, voy a ocultar este que 1796 01:30:39,140 --> 01:30:40,520 estábamos haciendo un segundo 1797 01:30:40,520 --> 01:30:42,779 y lo ponemos aquí, ¿vale? 1798 01:30:42,880 --> 01:30:44,180 cuando tenemos este personaje 1799 01:30:44,180 --> 01:30:47,020 es lo que impide que yo, aunque le dé 1800 01:30:47,020 --> 01:30:49,300 varias veces a la tecla 1801 01:30:49,300 --> 01:30:51,380 de saltar, hasta que no se vuelva a posar 1802 01:30:51,380 --> 01:30:53,359 no me deja 1803 01:30:53,359 --> 01:30:55,180 saltar más veces, y de hecho 1804 01:30:55,180 --> 01:30:57,079 fíjate que aquí hay un 1805 01:30:57,079 --> 01:30:59,000 isGrounder que está todo el rato como marcándose 1806 01:30:59,000 --> 01:31:01,500 porque cada fotograma está detectando 1807 01:31:01,500 --> 01:31:02,319 que está 1808 01:31:02,319 --> 01:31:05,239 posado, cuando yo le doy 1809 01:31:05,239 --> 01:31:05,760 al salto 1810 01:31:05,760 --> 01:31:09,439 ¿vale? se quita hasta que vuelve a detectar 1811 01:31:09,439 --> 01:31:26,899 Y ese, digamos, parámetro del animator, yo lo tengo por aquí, que es, que, a ver, tengo una booleana que pondrá isGrounded en el valor que tenga este isGrounded, que es un sí o un falso o un verdadero, ¿vale? 1812 01:31:28,039 --> 01:31:28,560 Vale. 1813 01:31:28,899 --> 01:31:33,659 Me vas siguiendo, no, digo, sé que ahora estoy como yendo de un lado a otro, pero bueno, ¿sí? 1814 01:31:34,119 --> 01:31:36,039 Sí, sí, en principio sí. 1815 01:31:36,039 --> 01:31:40,199 Vale, pues eso 1816 01:31:40,199 --> 01:31:43,960 Por ejemplo aquí, como yo quería que saltara para el ejemplo 1817 01:31:43,960 --> 01:31:46,619 Que era opcional, esto lo pone en la tarea que es opcional 1818 01:31:46,619 --> 01:31:48,859 Porque complica precisamente esto 1819 01:31:48,859 --> 01:31:51,960 Yo estoy usando el move, que sí que permite que en algún momento 1820 01:31:51,960 --> 01:31:54,720 Podamos saltar, porque ya te digo 1821 01:31:54,720 --> 01:31:59,159 Con el simple move no está pensado para eso 1822 01:31:59,159 --> 01:32:01,220 Eso lo que significa es que 1823 01:32:01,220 --> 01:32:04,140 Como por defecto hemos visto que el move 1824 01:32:04,140 --> 01:32:06,100 no mete gravedad al personaje 1825 01:32:06,100 --> 01:32:08,199 hay que meter las líneas 1826 01:32:08,199 --> 01:32:10,119 que he puesto antes de que hay que 1827 01:32:10,119 --> 01:32:12,020 meterle gravedad en todo momento, hay que hacer una variable 1828 01:32:12,020 --> 01:32:14,000 de gravedad, con este 1829 01:32:14,000 --> 01:32:16,199 menos 9,8 que es la fuerza de la gravedad 1830 01:32:16,199 --> 01:32:18,100 real, en física, vale, y en todo 1831 01:32:18,100 --> 01:32:19,659 momento se está sumando 1832 01:32:19,659 --> 01:32:22,199 a una especie 1833 01:32:22,199 --> 01:32:24,340 de fuerza que luego aplicaremos 1834 01:32:24,340 --> 01:32:26,100 en el move, vale, aquí estamos sumándolo 1835 01:32:26,100 --> 01:32:28,180 en todo momento a un vector que es el que luego 1836 01:32:28,180 --> 01:32:29,880 se usa para el vector move, vale 1837 01:32:29,880 --> 01:32:32,039 que en todo momento está empujando 1838 01:32:32,039 --> 01:32:32,880 digamos hacia abajo 1839 01:32:32,880 --> 01:32:35,340 el fall direction, el eje Y 1840 01:32:35,340 --> 01:32:37,380 en todo momento está sumando la gravedad 1841 01:32:37,380 --> 01:32:38,380 para que vaya hacia abajo 1842 01:32:38,380 --> 01:32:40,380 y en todo momento está cayendo hacia abajo 1843 01:32:40,380 --> 01:32:42,199 si hay un suelo lo detendrá 1844 01:32:42,199 --> 01:32:44,640 y si no, pues está cayendo hacia abajo 1845 01:32:44,640 --> 01:32:47,579 eso sí, si yo en algún momento 1846 01:32:47,579 --> 01:32:49,460 le doy a saltar 1847 01:32:49,460 --> 01:32:51,539 le doy a la barra espaciadora 1848 01:32:51,539 --> 01:32:52,920 en mi caso y ejecuto 1849 01:32:52,920 --> 01:32:55,439 el método de saltar y está posado 1850 01:32:55,439 --> 01:32:57,739 pues lo que va a hacer es 1851 01:32:57,739 --> 01:32:59,800 aparte de que va a hacer la animación de salto 1852 01:32:59,800 --> 01:33:01,420 que es esta que tengo yo aquí 1853 01:33:01,420 --> 01:33:03,699 esta de jumping, ¿vale? 1854 01:33:03,859 --> 01:33:05,060 Que la condición es 1855 01:33:05,060 --> 01:33:09,180 pues que primero esté posado 1856 01:33:09,180 --> 01:33:11,060 y aparte se ejecute el trigger 1857 01:33:11,060 --> 01:33:13,300 de jump, ¿vale? Pues aparte 1858 01:33:13,300 --> 01:33:14,800 al fold dirección le digo, no, 1859 01:33:14,960 --> 01:33:16,939 ahora no vas a ir sumando como en todo 1860 01:33:16,939 --> 01:33:17,380 momento 1861 01:33:17,380 --> 01:33:20,880 la fuerza de la gravedad, que es hacia abajo, 1862 01:33:21,060 --> 01:33:23,100 ¿vale? Que de hecho si os fijáis está sumándola 1863 01:33:23,100 --> 01:33:24,779 porque la fuerza de la gravedad, 1864 01:33:24,899 --> 01:33:26,939 y en la física también lo es, es negativa, ¿vale? 1865 01:33:26,960 --> 01:33:28,439 Por eso estamos cayendo hacia abajo. 1866 01:33:28,939 --> 01:33:30,600 No estamos yendo en el eje I positivo. 1867 01:33:30,600 --> 01:33:37,520 Entonces detenemos en ese momento y a la fuerza de caer hacia abajo todo el rato 1868 01:33:37,520 --> 01:33:41,520 Lo que le decimos es, no, no, en este momento I lo que tiene que hacer es ir hacia arriba 1869 01:33:41,520 --> 01:33:44,699 Y hay otra variable que es el jump speed, que es este 8 1870 01:33:44,699 --> 01:33:50,420 Que es lo que hace que en ese momento concreto, el move, cuando se va actualizando 1871 01:33:50,420 --> 01:33:54,739 Pues el vector move este que tenemos que va sumando la dirección hacia adelante, derecha 1872 01:33:54,739 --> 01:34:15,800 De los distintos inputs que estamos metiendo, del eje vertical, lo que hemos hecho antes para mover al personaje, pues que le añada esa fuerza hacia arriba, momentánea, porque según pase este salto, que solo se ejecuta una vez, solo se ejecuta cuando pulsamos una vez, por esto este down, la barra espaciadora, 1873 01:34:15,800 --> 01:34:24,380 pues le añade esta fuerza, sube y luego inmediatamente otra vez empieza a calcular cómo ir hacia abajo y aplicarle la gravedad, ¿vale? 1874 01:34:25,479 --> 01:34:40,159 Vale, o sea, tú en todas las acciones que hace el avatar tienes que hacer un script de esas variables que tiene cada acción, ¿no? 1875 01:34:40,840 --> 01:34:41,239 Sí. 1876 01:34:41,739 --> 01:34:42,899 Más o menos, ¿no? 1877 01:34:43,180 --> 01:34:44,800 Claro, cuando empezamos... 1878 01:34:44,800 --> 01:34:59,420 Así que si tú le das a saltar, yo pensaría que solo le doy a saltar y ya está, pero nunca pensaría que si le vuelvo a dar a saltar, porque es ilógico que tú, si le das a saltar, estés todo el rato dando a saltar hasta que el muñeco no baja. 1879 01:35:00,000 --> 01:35:04,079 Claro, eso te lo da la experiencia de ir pensando. 1880 01:35:04,079 --> 01:35:11,399 es que eso hombre en la práctica anterior 5 ya ya se hacía esto es por eso digo que si ya se ha 1881 01:35:11,399 --> 01:35:16,979 hecho la 5 el personaje el robot sólo podía saltar una vez porque había un collider que estaba todo 1882 01:35:16,979 --> 01:35:20,399 el rato también en vez de con el carácter controller es un paso más allá porque es un 1883 01:35:20,399 --> 01:35:25,319 tema posterior que cuando tocaba el suelo ese collider o con un rey cast también se podía 1884 01:35:25,319 --> 01:35:32,079 hacer vale venía ha aplicado hay una booleana que diga está posado o no está posado para lo 1885 01:35:32,079 --> 01:35:37,020 Si no está posado, aunque le des a saltar, no puede saltar porque no puede hacer más saltos. 1886 01:35:37,420 --> 01:35:42,699 Incluso se puede decir que cuando se da dos veces al saltar, sea cuando se quita ese posado. 1887 01:35:42,859 --> 01:35:47,460 Y puedes dar la opción de que entonces haya un power up que te da el poder de hacer doble salto. 1888 01:35:47,779 --> 01:35:51,460 Pero no saltos infinitos, porque entonces el juego te lo pasa porque va volando. 1889 01:35:52,100 --> 01:35:53,520 Pero sí, eso ya estaba. 1890 01:35:53,739 --> 01:35:59,520 Entonces, tú cuando empiezas un script, aquí hay que ir declarando todas las variables que van necesitando. 1891 01:35:59,520 --> 01:36:19,600 Pero tú en cualquier momento dices, ah, necesito uno de esta posado. Pues vuelves aquí, lo creas y aquí, por ejemplo, pues en algún momento habrá uno de esta posado o se creó... Bueno, no, no está el de esta posado, a diferencia de la unidad 5, que sí que había que hacer una booleana de esta posado, ¿vale? 1892 01:36:19,600 --> 01:36:22,000 porque aquí no es necesario gracias al 1893 01:36:22,000 --> 01:36:23,640 gracias al carácter 1894 01:36:23,640 --> 01:36:25,359 controller, aquí el carácter controller 1895 01:36:25,359 --> 01:36:27,680 si te fijas la condición de que esté posado o no 1896 01:36:27,680 --> 01:36:29,720 te la da él mismo cuando 1897 01:36:29,720 --> 01:36:31,159 te permite hacer esto 1898 01:36:31,159 --> 01:36:33,319 que esto devuelve 1899 01:36:33,319 --> 01:36:35,279 directamente verdadero o falso 1900 01:36:35,279 --> 01:36:37,619 porque lo detecta directamente con respecto 1901 01:36:37,619 --> 01:36:38,079 a la 1902 01:36:38,079 --> 01:36:41,319 aquí ya me está atacando todo Dios 1903 01:36:41,319 --> 01:36:43,319 con respecto a la 1904 01:36:43,319 --> 01:36:45,699 a la cápsula que tiene 1905 01:36:45,699 --> 01:36:47,800 el personaje en su carácter controller 1906 01:36:47,800 --> 01:36:49,100 y ojo lo mismo 1907 01:36:49,100 --> 01:36:51,600 la gravedad se da hasta donde 1908 01:36:51,600 --> 01:36:53,579 se encuentre esa cápsula 1909 01:36:53,579 --> 01:36:54,779 si yo por ejemplo le digo 1910 01:36:54,779 --> 01:36:56,859 como ponía por defecto 1911 01:36:56,859 --> 01:36:58,159 voy a subir al personaje 1912 01:36:58,159 --> 01:37:01,100 ves que la cápsula ahora llega hasta el suelo 1913 01:37:01,100 --> 01:37:02,140 y sobrepasa los pies 1914 01:37:02,140 --> 01:37:05,180 lo importante para detectar esa colisión 1915 01:37:05,180 --> 01:37:07,100 y por eso ahora está suspendida en el aire 1916 01:37:07,100 --> 01:37:08,899 es ajustar bien la cápsula 1917 01:37:08,899 --> 01:37:10,579 ¿vale? 1918 01:37:11,079 --> 01:37:13,260 ves que ahora se posa en donde 1919 01:37:13,260 --> 01:37:14,840 pues en donde esté 1920 01:37:14,840 --> 01:37:17,239 ahora yo salto al personaje y salta 1921 01:37:17,239 --> 01:37:19,699 y todo lo hace en función a 1922 01:37:19,699 --> 01:37:21,739 igual que hacíamos con los colliders 1923 01:37:21,739 --> 01:37:23,659 y el rigidbody, pero bueno, es otra forma 1924 01:37:23,659 --> 01:37:25,399 de hacerlo, muy parecida, pero 1925 01:37:25,399 --> 01:37:27,579 que bebe de esa cápsula que te da 1926 01:37:27,579 --> 01:37:29,680 el collider. Y luego 1927 01:37:29,680 --> 01:37:31,720 los colliders normalmente 1928 01:37:31,720 --> 01:37:33,680 tienen los 1929 01:37:33,680 --> 01:37:35,439 métodos de onTrigger y 1930 01:37:35,439 --> 01:37:37,659 onCollision, ¿no? Que esto 1931 01:37:37,659 --> 01:37:39,800 se veía en 1932 01:37:39,800 --> 01:37:41,600 el tema 3, por ejemplo, y también en la 1933 01:37:41,600 --> 01:37:43,680 tarea 5. Aquí, como no 1934 01:37:43,680 --> 01:37:45,119 hay collider, ¿vale? Porque 1935 01:37:45,119 --> 01:37:46,800 ahora mismo este objeto 1936 01:37:46,800 --> 01:37:49,680 tiene algo como un collider pero no tiene el componente 1937 01:37:49,680 --> 01:37:51,420 collider, entonces no puedes 1938 01:37:51,420 --> 01:37:53,560 recurrir a esos onCollision 1939 01:37:53,560 --> 01:37:55,779 o onTrigger, tiene su propio método 1940 01:37:55,779 --> 01:37:57,460 que también lo pone en los apuntes 1941 01:37:57,460 --> 01:37:59,779 ¿vale? que es 1942 01:37:59,779 --> 01:38:01,079 lo pone aquí 1943 01:38:01,079 --> 01:38:03,399 este onControllerColliderHit 1944 01:38:03,399 --> 01:38:04,979 que es un poco lo mismo 1945 01:38:04,979 --> 01:38:07,460 cuando es 1946 01:38:07,460 --> 01:38:08,079 en vez de void 1947 01:38:08,079 --> 01:38:11,119 onTrigger, enter, etc. es 1948 01:38:11,119 --> 01:38:13,399 cuando algo toque al collider 1949 01:38:13,399 --> 01:38:15,520 cuando otro collider toque 1950 01:38:15,520 --> 01:38:18,159 la cápsula esta del character controller 1951 01:38:18,159 --> 01:38:19,460 pues ya se pueden 1952 01:38:19,460 --> 01:38:21,239 ejecutar acciones 1953 01:38:21,239 --> 01:38:22,319 ¿vale? 1954 01:38:23,399 --> 01:38:26,100 es como una especie de forma más avanzada 1955 01:38:26,100 --> 01:38:27,140 que permite otras cosas 1956 01:38:27,140 --> 01:38:29,960 pero que bebe un poco de lo que ya 1957 01:38:29,960 --> 01:38:31,439 hemos ido viendo en anteriores temas 1958 01:38:31,439 --> 01:38:33,850 ¿vale? 1959 01:38:35,689 --> 01:38:37,149 y bueno aquí por ejemplo 1960 01:38:37,149 --> 01:38:38,569 habla de lo del root motion 1961 01:38:38,569 --> 01:38:40,829 esto que hemos dicho de la propia animación 1962 01:38:40,829 --> 01:38:41,489 etcétera ¿vale? 1963 01:38:42,489 --> 01:38:44,689 no sé, más dudas o más cosas 1964 01:38:44,689 --> 01:38:46,189 que queráis que veamos 1965 01:38:46,189 --> 01:38:48,630 hoy que tengo 1966 01:38:48,630 --> 01:38:49,430 dos alumnos 1967 01:38:49,430 --> 01:38:52,850 que otros días estaba yo solo 1968 01:38:52,850 --> 01:38:54,229 en las tutorías 1969 01:38:54,229 --> 01:38:58,640 luego está todo lo del NPC 1970 01:38:58,640 --> 01:39:00,100 pero es verdad que es más complicado 1971 01:39:00,100 --> 01:39:01,340 si queréis lo vemos 1972 01:39:01,340 --> 01:39:03,640 eso es lo de la inteligencia artificial 1973 01:39:03,640 --> 01:39:06,380 que es un apartado digamos opcional en la tarea 1974 01:39:06,380 --> 01:39:07,460 eso es el zombie, entiendo 1975 01:39:07,460 --> 01:39:09,300 eso es el zombie, ¿no? 1976 01:39:09,840 --> 01:39:13,039 si queréis lo vemos un poco por encima 1977 01:39:13,039 --> 01:39:14,140 en la 1978 01:39:14,140 --> 01:39:16,079 en la tarea viene explicado también 1979 01:39:16,079 --> 01:39:21,140 en cómo conseguirlo. Es verdad que a veces hay que interpretarlo y se tarda, pero a ver, espera, 1980 01:39:21,220 --> 01:39:27,199 que alguien me ha escrito algo. Ah, vale, que la compañera está, pero no puede participar. Vale, 1981 01:39:27,260 --> 01:39:34,600 vale. Vale, fenomenal. Sí, mira, para que veáis un poco el funcionamiento del zombie, por si 1982 01:39:34,600 --> 01:39:41,899 queréis probar. Yo ahora mismo, y me voy a la ventana, bueno, espera, primero voy a ajustar 1983 01:39:41,899 --> 01:39:46,699 viene este el collider vamos el collider el carácter controller para que esté 1984 01:39:46,699 --> 01:39:49,239 como debiera 1985 01:39:51,100 --> 01:39:55,340 yo no sé qué desecho pero yo creo que ya está como estaba al principio 1986 01:39:55,340 --> 01:40:01,399 vale ahí lo tengo y ya estaba posando el suelo vale entonces si nos fijamos yo 1987 01:40:01,399 --> 01:40:06,279 tengo varios zombies zombies o lo que queráis que están deambulando solos eso 1988 01:40:06,279 --> 01:40:11,560 no los controla nadie son inteligencias artificiales que además van andando y de 1989 01:40:11,560 --> 01:40:17,260 vez en cuando se paran y de pronto dice nada pues voy a otro lado y se pueden a patrullar y yo cuando 1990 01:40:17,260 --> 01:40:23,819 voy andando también y me acerco según ciertas condiciones me pueden ver y cuando me ven por 1991 01:40:23,819 --> 01:40:28,060 ejemplo este me va a ver enseguida ya cuando me pongo delante ves que ahora de pronto me está 1992 01:40:28,060 --> 01:40:33,699 siguiendo bueno se le va un poco la pinza pero cuando van me van siguiendo en todo momento hasta 1993 01:40:33,699 --> 01:40:40,300 que me ven y me empiezan a agredir vale ahí hay otro que está parado y no hace nada hasta que me 1994 01:40:40,300 --> 01:40:48,060 vea vale por lo mismo ahora me va a ver y ahora se puede correr y me intenta dar vale yo puedo 1995 01:40:48,060 --> 01:40:53,600 ir escapando y de hecho está configurado para que cuando me alejo 10 metros o más bueno aquí 1996 01:40:53,600 --> 01:40:58,779 no me va a dejar estoy intentando hacer le he puesto que pueda subir muchas pendientes y los 1997 01:40:58,779 --> 01:41:04,020 zombies no vale cuando llevo ya un tiempo cuando estoy a una distancia como que me han dejado de 1998 01:41:04,020 --> 01:41:06,119 ver, que yo he configurado, pues 1999 01:41:06,119 --> 01:41:07,460 a ver, zombie 2000 01:41:07,460 --> 01:41:10,039 voy aquí, pues ya de pronto como que 2001 01:41:10,039 --> 01:41:12,000 se han olvidado de mí y vuelven a hacer el patrullaje 2002 01:41:12,000 --> 01:41:13,579 que es otro estado, ¿vale? 2003 01:41:14,539 --> 01:41:16,140 Esta es la lógica que tiene en este 2004 01:41:16,140 --> 01:41:18,039 juego. Vamos a ver un poco cómo es 2005 01:41:18,039 --> 01:41:20,140 ¿te parece? Sí. Esto ya te 2006 01:41:20,140 --> 01:41:21,479 digo que es más avanzado 2007 01:41:21,479 --> 01:41:23,960 y me interesa con que veáis 2008 01:41:23,960 --> 01:41:25,640 el vídeo que hay en el tema 2009 01:41:25,640 --> 01:41:28,100 el que está en la parte que hay que ver 2010 01:41:28,100 --> 01:41:29,899 la azul, ¿no? Lo saber más 2011 01:41:29,899 --> 01:41:32,140 como siempre, no son para el examen 2012 01:41:32,140 --> 01:41:34,100 Pero bueno, siempre tienen más información 2013 01:41:34,100 --> 01:41:36,640 Pero estos son, digamos, tres prefabs 2014 01:41:36,640 --> 01:41:38,239 De un... 2015 01:41:38,239 --> 01:41:40,300 Del zombie, ¿vale? Me voy a centrar en uno de ellos 2016 01:41:40,300 --> 01:41:41,319 Solo, voy a dejar uno 2017 01:41:41,319 --> 01:41:43,399 Pues los tres son iguales, en realidad 2018 01:41:43,399 --> 01:41:45,640 Yo he cogido otro 2019 01:41:45,640 --> 01:41:47,819 Personaje por ahí, de internet 2020 01:41:47,819 --> 01:41:49,560 Que de hecho creo que lo dejaba 2021 01:41:49,560 --> 01:41:51,939 Se puede... Se puede bajar 2022 01:41:51,939 --> 01:41:53,539 ¿Vale? Y tiene su propio controller 2023 01:41:53,539 --> 01:41:55,739 Y este zombie 2024 01:41:55,739 --> 01:41:57,960 Y esto es una forma un poco distinta 2025 01:41:57,960 --> 01:41:59,520 De hacer el... 2026 01:41:59,520 --> 01:42:01,479 Una máquina de estados de animación, ¿vale? 2027 01:42:01,479 --> 01:42:21,520 Un animator controller que este en vez de basarse en, como no vamos a nosotros meter inputs de pues doy a una tecla o le doy a tal otra tecla, sino que va a ir haciéndolo autónomamente, tiene lo que en los apuntes se llaman estados, ¿vale? Porque es lo que se llama una máquina finita de estados, ¿vale? Una FSM. 2028 01:42:21,520 --> 01:42:28,060 entonces cada una de las acciones vale yo me pongo aquí selección me voy a desactivar estos 2029 01:42:28,060 --> 01:42:32,960 dos para que no moleste me centro en este vale yo cuando me meto en una animación vale no se 2030 01:42:32,960 --> 01:42:39,060 ve el personaje pero tengo el personaje parado el personaje caminando vale con los brazos 2031 01:42:39,060 --> 01:42:47,020 extendidos el ataque cuando me cuando está cerca de mí y otro que es que corre y vas a ver que lo 2032 01:42:47,020 --> 01:42:52,600 que he hecho es generar una variable de tipo int un parámetro del animator vale y para pasar de 2033 01:42:52,600 --> 01:43:00,239 uno a otro las condiciones son siempre que ese ese número puede ser entre el 0 y el 3 vale y yo 2034 01:43:00,239 --> 01:43:06,619 he ido como configurando este este zombi puede hacer cuatro cosas la primera es el 0 pero 0 1 2035 01:43:06,619 --> 01:43:13,619 2 3 4 cosas una estar quieto otra andar otra cuando me detecta correr hacia mí y otra atacar entonces 2036 01:43:13,619 --> 01:43:27,579 Entonces esto es lo de siempre, pues cuando empiezas a ver un poco cómo hacerlo, al empezar el juego he dicho, mira, va a haber cinco estados que voy a guardar en una variable llamada state. 2037 01:43:28,439 --> 01:43:35,939 El cero, pues lo que te he ido diciendo. Y lo que iremos detectando es, según se vayan cumpliendo condiciones, que se pase de uno a otro. 2038 01:43:35,939 --> 01:44:01,659 Si el estado es el 1 porque ya están dando y la distancia con el objetivo, que sería el personaje, es menor a 1,5, paso al estado 0. Si he llegado cerca de mi destino es cerca de... Y aparte se han generado cuatro ubicaciones en el mapa, aleatorias o las hemos puesto, que se han guardado en un array de posiciones. 2039 01:44:01,659 --> 01:44:24,859 Entonces, ¿qué es lo que va pasando? Que vamos a ir actualizando en ese array de posiciones que hay aquí, de cuatro posiciones que se han puesto en el espacio, y según arranca el juego hay un método que se llama, cuando pasan cuatro segundos de juego, en el invoke, un método que se ha creado que se llama Ronda Random. 2040 01:44:24,859 --> 01:44:33,640 Y si no se ha detectado al personaje, si hay una booleana que lo que hace es que se detecta al personaje o no 2041 01:44:33,640 --> 01:44:37,100 Que es cuando activa el estado 2, que es el que se pone a perseguir al personaje 2042 01:44:37,100 --> 01:44:42,460 Si no se ha detectado al personaje, pues habrá un momento que se pase al estado 1 2043 01:44:42,460 --> 01:44:48,939 Que por un lado animará en todo momento la animación de ese personaje 2044 01:44:48,939 --> 01:44:51,819 Me refiero a que en este caso extienda los brazos y camine 2045 01:44:51,819 --> 01:45:05,300 Pero aparte se le asigna un destino, ¿vale? Hacia el que tiene que ir. Va a coger de esos cuatro elementos de la RAI uno aleatorio que tenemos aquí y va a ser el destino hacia el que va a ir en todo momento. 2046 01:45:05,300 --> 01:45:19,079 ¿Vale? Entonces, nuevamente, importante, para hacer todo lo relacionado, esto lo explica en el tema, con la inteligencia artificial hay que cargar una librería nueva, ¿vale? 2047 01:45:19,239 --> 01:45:32,239 Porque si no, por ejemplo, no se puede acceder a este NASMESH agent, que es el que sirve para acceder a las variables del NASMESH, que es el que define, igual que el character controller, cómo movemos un personaje con el character controller 2048 01:45:32,239 --> 01:45:51,600 En este caso es el que define cómo se mueve un agente, un GameObject de inteligencia artificial, que se moverá, esto también lo explica en el vídeo, en las mallas que se configuren como caminables. 2049 01:45:51,600 --> 01:46:14,060 ¿Ves que hay partes del suelo que están con esta azul? Estas son las zonas por las que el personaje de inteligencia artificial, con el Namesh Agent que te he indicado antes, se va a poder mover. Por eso, por mucho que yo suba aquí arriba, el personaje, si no tiene forma de acceder por estos caminos, no va a poder caminar por ahí. 2050 01:46:15,000 --> 01:46:20,239 Entonces, con el setDestination, con este método que tenemos aquí, 2051 01:46:20,800 --> 01:46:24,000 lo que podemos ir es diciéndole sitios a los que tiene que ir el personaje. 2052 01:46:24,960 --> 01:46:27,220 En este caso, el zombie, que es el que tiene este script. 2053 01:46:27,899 --> 01:46:29,300 Y aquí vamos poniendo posiciones. 2054 01:46:29,640 --> 01:46:31,520 Y entonces el personaje va a ir hacia esa posición. 2055 01:46:32,520 --> 01:46:35,380 Y podemos ir cambiando las posiciones para que cuando llega una, 2056 01:46:36,159 --> 01:46:36,840 luego vaya otra. 2057 01:46:36,840 --> 01:46:58,920 ¿Vale? Y por eso hay cuatro puntos que aleatoriamente se van a ir diciendo que sean el destino. ¿Vale? Luego, ¿cómo me detecta el personaje? Esto está en el propio enunciado del tema, lo cuenta, esto que hay aquí. 2058 01:46:58,920 --> 01:47:26,720 Pero básicamente es que hay un valor, un método que se llama distance que permite calcular distancias entre objetos. Entonces aquí tenemos por un lado la posición donde está el personaje que tiene este script que es el zombie y la posición del superviviente que en todo momento, la posición del superviviente se está calculando en todo momento con este transform que tenemos aquí, ¿vale? 2059 01:47:26,720 --> 01:47:28,640 que dice, busca 2060 01:47:28,640 --> 01:47:30,199 ¿vale? 2061 01:47:30,380 --> 01:47:31,979 esto no sé si 2062 01:47:31,979 --> 01:47:34,560 os suena esto más avanzado, pero 2063 01:47:34,560 --> 01:47:36,920 igual que se pueden coger los componentes 2064 01:47:36,920 --> 01:47:38,579 de esto más o menos empecé a hablar un día 2065 01:47:38,579 --> 01:47:40,640 pero igual que se pueden coger los componentes 2066 01:47:40,640 --> 01:47:42,899 que están en el mismo objeto que tiene este script 2067 01:47:42,899 --> 01:47:44,840 ¿vale? esto es lo que ya hemos hablado 2068 01:47:44,840 --> 01:47:45,619 en varias ocasiones 2069 01:47:45,619 --> 01:47:48,819 si hablamos de la 2070 01:47:48,819 --> 01:47:51,020 clase GameObject, ponemos un punto, hay diferentes 2071 01:47:51,020 --> 01:47:52,739 tipos de find, que lo que 2072 01:47:52,739 --> 01:47:54,640 hacen es, se puede por nombre 2073 01:47:54,640 --> 01:47:56,560 de objeto por encontrar 2074 01:47:56,560 --> 01:47:57,960 GameObjects que tienen un tag 2075 01:47:57,960 --> 01:48:00,880 los tags, recordad que son 2076 01:48:00,880 --> 01:48:02,619 estos tags 2077 01:48:02,619 --> 01:48:03,399 que tenemos aquí 2078 01:48:03,399 --> 01:48:06,619 y aquí le estamos diciendo, veis que el personaje 2079 01:48:06,619 --> 01:48:08,100 del superviviente tiene el tag player 2080 01:48:08,100 --> 01:48:10,359 o podemos crear otro nuevo, dice 2081 01:48:10,359 --> 01:48:12,619 busca, encuentra un objeto 2082 01:48:12,619 --> 01:48:14,539 en la escena que tenga este tag 2083 01:48:14,539 --> 01:48:16,819 y coge su transform y me lo guardas 2084 01:48:16,819 --> 01:48:18,239 en este 2085 01:48:18,239 --> 01:48:20,439 SubAerobotPost que es una variable 2086 01:48:20,439 --> 01:48:22,340 de tipo transform 2087 01:48:22,340 --> 01:48:24,300 es decir, guarda la información de un componente 2088 01:48:24,300 --> 01:48:29,260 transform entre otros las posiciones las rotaciones y la escala entonces eso en 2089 01:48:29,260 --> 01:48:37,020 todo momento ese survivor post va a estar cogiendo la posición del personaje 2090 01:48:37,020 --> 01:48:43,420 es verdad que aquí lo hace en el start coge esta survivor post y en algún 2091 01:48:43,420 --> 01:48:53,970 momento tiene que estar actualizando lo que es que si se detecta vale coge eso 2092 01:48:53,970 --> 01:49:03,329 Como hemos guardado el transform de ese SurvivorPost, en todo momento puede estar buscando dónde está la posición. 2093 01:49:06,210 --> 01:49:15,789 Una variable que hemos creado aquí va cogiendo en todo momento, porque este detectSurvivor, si os fijáis, es un método que se ejecuta cada fotograma. 2094 01:49:15,789 --> 01:49:22,829 Está en el update. Y cada fotograma va a estar calculando la distancia entre el propio zombie que tiene el script y el personaje. 2095 01:49:22,829 --> 01:49:44,029 Y por otro lado está cogiendo la dirección en la que está ese personaje. Esto también lo ponía en la práctica 5 para cuando se hacían las torretas que disparaban, para que vaya calculando en todo momento hacia dónde tiene que ir mirando la torreta, que es la posición del personaje. 2096 01:49:44,029 --> 01:49:59,810 Pero hay una forma de siempre saber hacia qué dirección tiene que ir apuntando un objeto, que es que si al objeto que tiene que encontrar le restamos la posición de sí mismo, te da el ángulo hacia el que mira, ¿vale? 2097 01:49:59,810 --> 01:50:13,899 No sé, esto lo venía explicado también en otro punto, pero si yo, por ejemplo, a ver, voy a poner un segundo, eje de coordenadas vacía. 2098 01:50:15,579 --> 01:50:22,340 Vale, un vector 2, por ejemplo, un vector 3, sería esto en tres ejes, pero voy a hacer que se vea un poquito mejor. 2099 01:50:22,340 --> 01:50:25,560 si yo tengo un personaje 2100 01:50:25,560 --> 01:50:26,619 que está en este punto 2101 01:50:26,619 --> 01:50:29,520 y vamos a decir que aquí 2102 01:50:29,520 --> 01:50:31,060 está el zombie 2103 01:50:31,060 --> 01:50:32,800 y aquí está el personaje 2104 01:50:32,800 --> 01:50:35,560 lo que estamos buscando 2105 01:50:35,560 --> 01:50:37,539 aquí es, para detectar al 2106 01:50:37,539 --> 01:50:39,600 personaje, tener tanto la distancia 2107 01:50:39,600 --> 01:50:41,300 por si se acerca mucho, ahora vemos 2108 01:50:41,300 --> 01:50:43,439 como el ángulo de visión 2109 01:50:43,439 --> 01:50:45,680 del zombie, para que si nos acercamos 2110 01:50:45,680 --> 01:50:47,939 por la espalda, tarde más en detectarnos 2111 01:50:47,939 --> 01:50:49,560 y al contrario, si estamos 2112 01:50:49,560 --> 01:50:51,779 justo delante de él, aunque estemos más lejos 2113 01:50:51,779 --> 01:51:11,289 Nos detecte. Entonces, imaginaos que tenemos, a ver, vuelvo aquí, tenemos este eje, ¿vale? Que es el espacio. Si yo le digo que me calcule la dirección del vector que hay entre este personaje y este, 2114 01:51:11,289 --> 01:51:17,630 lo que hay que coger es la posición de uno y restándole el otro, lo que nos da es la dirección que tiene, ¿vale? 2115 01:51:18,649 --> 01:51:26,390 ¿Sí? Entonces, si hacemos esa operación con este vector hacia el personaje, que es un vector 3 que hemos creado nosotros, 2116 01:51:26,529 --> 01:51:34,350 es otra variable que hemos declarado aquí, lo que podemos es en todo momento ir viendo la dirección hacia la que está el personaje, ¿vale? 2117 01:51:34,350 --> 01:51:52,069 Por ejemplo, si yo pongo aquí un debug log para ir comprobando en todo momento qué vale el vector to player, que esta es la comprobación que siempre hay que ir viendo para ir comprobando que las cosas funcionan, ángulo zombie personaje. 2118 01:51:52,069 --> 01:51:54,970 más que un ángulo lo que nos va a dar 2119 01:51:54,970 --> 01:51:56,850 es un vector de 3 2120 01:51:56,850 --> 01:51:58,750 con eso 2121 01:51:58,750 --> 01:52:00,989 la dirección hacia la que mira un personaje 2122 01:52:00,989 --> 01:52:02,989 que esto se puede interpretar como un ángulo 2123 01:52:02,989 --> 01:52:04,310 realmente, los vectores 2124 01:52:04,310 --> 01:52:06,529 aparte de ser posiciones en el espacio 2125 01:52:06,529 --> 01:52:09,329 como el vector 3 que tenemos 2126 01:52:09,329 --> 01:52:10,010 aquí en posición 2127 01:52:10,010 --> 01:52:12,430 cuando por ejemplo le pasamos un vector 3 2128 01:52:12,430 --> 01:52:14,770 a un add force o a un 2129 01:52:14,770 --> 01:52:17,109 translate, lo que estamos diciéndole es 2130 01:52:17,109 --> 01:52:19,109 hacia qué dirección tiene que ir 2131 01:52:19,109 --> 01:52:20,970 añadiendo algo, entonces también sirve 2132 01:52:20,970 --> 01:52:27,449 para dar direcciones si ahora comprobamos el ángulo de mi personaje vamos a ir viendo 2133 01:52:29,250 --> 01:52:36,529 a ver porque tengo más cosas aquí vale no perdona porque detectaron de barlos 2134 01:52:37,529 --> 01:52:47,729 primero tengo que guardar importante y voy a darle a play vale y vais viendo que el ángulo 2135 01:52:47,729 --> 01:52:55,949 del personaje va variando según vamos moviendo de un lado a otro que voy a la izquierda en x se va 2136 01:52:55,949 --> 01:53:00,390 haciendo más pequeño y si voy hacia la derecha vale el ángulo con respecto al personaje veis 2137 01:53:00,390 --> 01:53:09,090 que va aumentando vale esto bueno en eje en eje z básicamente lo que estará calculando será un poco 2138 01:53:09,090 --> 01:53:14,130 la dirección y en y como siempre estamos en el mismo eje pues realmente no cambia la dirección 2139 01:53:14,130 --> 01:53:22,930 pero en eje Z básicamente lo que está calculando es un poco la distancia, un poco lo que hemos hecho aquí también, pero solo en uno de los ejes. 2140 01:53:22,930 --> 01:53:36,270 Si este vector, usamos este método de vector 3, que es el de ángulo, lo que podemos hacer es calcular en todo momento cuánto ángulo hay entre donde mira, en este caso el zombie, 2141 01:53:36,270 --> 01:53:49,069 el personaje zombie hacia adelante, donde tiene su mirada, con respecto al ángulo que hay de, es decir, la posición que tiene el que hemos calculado aquí antes, ¿vale? 2142 01:53:49,229 --> 01:54:04,010 Entonces, básicamente con esto, en esta variable de ángulo del cono, lo que estamos calculando es el ángulo que hay hacia donde mira el personaje y la diferencia que hay con este valor que hemos encontrado aquí. 2143 01:54:04,010 --> 01:54:06,829 No, eso que 2144 01:54:06,829 --> 01:54:09,729 tú lo que estás pretendiendo 2145 01:54:09,729 --> 01:54:11,670 es saber hacia dónde mira 2146 01:54:11,670 --> 01:54:13,170 el zombi para ver si te localiza 2147 01:54:13,170 --> 01:54:15,569 Siempre dentro de ese 2148 01:54:15,569 --> 01:54:17,149 ángulo de visión 2149 01:54:17,149 --> 01:54:19,430 Con esto, digamos 2150 01:54:19,430 --> 01:54:21,529 Sí, eso es lo que estamos buscando 2151 01:54:21,529 --> 01:54:22,210 Exacto 2152 01:54:22,210 --> 01:54:24,670 Todo el rato, ¿dónde estás tú? 2153 01:54:26,289 --> 01:54:27,229 Y a su vez 2154 01:54:27,229 --> 01:54:29,750 se mueve de posición 2155 01:54:29,750 --> 01:54:31,550 en posición cuando llega 2156 01:54:31,550 --> 01:54:33,090 una se traslada a la otra 2157 01:54:33,090 --> 01:54:34,949 con el otro script 2158 01:54:34,949 --> 01:54:37,850 eso es, con esto lo que estamos buscando 2159 01:54:37,850 --> 01:54:38,930 es digamos 2160 01:54:38,930 --> 01:54:41,989 el ángulo que hay, la dirección que hay 2161 01:54:41,989 --> 01:54:43,930 entre zombie y personaje 2162 01:54:43,930 --> 01:54:45,989 y aquí lo que estamos 2163 01:54:45,989 --> 01:54:47,630 haciendo es traducir 2164 01:54:47,630 --> 01:54:50,050 en grados, el ángulo en grados 2165 01:54:50,050 --> 01:54:51,750 de 0 a 180 que hay 2166 01:54:51,750 --> 01:54:53,789 entre donde está mirando el personaje 2167 01:54:53,789 --> 01:54:55,289 y la diferencia 2168 01:54:55,289 --> 01:54:57,750 es decir, si yo tengo 2169 01:54:57,750 --> 01:54:59,029 el personaje mirando para adelante 2170 01:54:59,029 --> 01:55:01,829 y el personaje está en su espalda 2171 01:55:01,829 --> 01:55:04,210 tiene un ángulo de 180. Esto devolvería 2172 01:55:04,210 --> 01:55:06,149 180. ¿Vale? Si yo estoy 2173 01:55:06,149 --> 01:55:08,250 a la derecha del personaje, este está mirando 2174 01:55:08,250 --> 01:55:09,630 para adelante, 2175 01:55:10,250 --> 01:55:12,310 esto está dando un valor que, al estar 2176 01:55:12,310 --> 01:55:14,289 a la derecha, pues sería de 90 2177 01:55:14,289 --> 01:55:16,310 grados. Guardaría un 90. 2178 01:55:16,810 --> 01:55:18,430 ¿Por qué? Porque ahora lo que vamos a hacer es 2179 01:55:18,430 --> 01:55:20,109 conjugar... 2180 01:55:20,109 --> 01:55:22,170 Claro, que si la distancia 2181 01:55:22,170 --> 01:55:23,869 del personaje que hemos calculado aquí 2182 01:55:23,869 --> 01:55:26,409 es menor a una distancia que yo he definido 2183 01:55:26,409 --> 01:55:28,189 que sea, es una variable 2184 01:55:28,189 --> 01:55:29,609 que tengo aquí, de 20 metros. 2185 01:55:30,229 --> 01:55:31,350 Esto es lo que yo decida. 2186 01:55:31,829 --> 01:55:37,590 si el personaje está a 20 metros o menos, es decir, está más cerca de 20 metros del personaje, 2187 01:55:38,050 --> 01:55:44,329 y además el ángulo en el que me encuentro con respecto a la visión del zombi es menor a la que yo también he puesto aquí, 2188 01:55:44,649 --> 01:55:54,130 que es una que he declarado como 20, tiene 20 grados, digamos, de los 360 hacia la izquierda y hacia la derecha, 2189 01:55:54,130 --> 01:56:03,149 es decir, abarca una visión de 40 grados, que si esta distancia, esta referencia que hay entre donde mira el zombi 2190 01:56:03,149 --> 01:56:10,909 y donde está el personaje, que dan grados, es menor a los 20 grados de diferencia, entonces detecta al personaje. 2191 01:56:11,449 --> 01:56:19,609 Es decir, que si estoy en un campo de visión frente al zombi de 40 grados y además estoy a menos de 20 metros, 2192 01:56:19,609 --> 01:56:37,609 De pronto hay una booleana, que es la que va a ir dando condiciones aquí para ir yendo a un estado u otro, que irá delimitando qué hace el zombie, los comportamientos. Y esa booleana empieza por falsa, porque no nos ha detectado, pero cuando nos detecta, esa booleana pasa a ser verdadera. 2193 01:56:37,609 --> 01:56:39,750 Luego aparte, otra condición 2194 01:56:39,750 --> 01:56:41,350 Si esto no se cumple en todo momento 2195 01:56:41,350 --> 01:56:43,869 Mira a ver si la distancia del jugador 2196 01:56:43,869 --> 01:56:45,350 Independientemente del ángulo 2197 01:56:45,350 --> 01:56:47,350 Aquí ya da igual que estamos en su espalda 2198 01:56:47,350 --> 01:56:49,909 Si yo me acerco al zombie menos de 2 metros 2199 01:56:49,909 --> 01:56:51,630 También me detecta, me nota 2200 01:56:51,630 --> 01:56:53,510 Aunque no esté en el ángulo 2201 01:56:53,510 --> 01:56:54,649 ¿Vale? Es decir 2202 01:56:54,649 --> 01:56:57,369 Esta condición es más restrictiva que esta 2203 01:56:57,369 --> 01:56:59,949 Porque esta se cumpliría siempre 2204 01:56:59,949 --> 01:57:02,569 En función de la distancia 2205 01:57:02,569 --> 01:57:03,710 Porque siempre 2206 01:57:03,710 --> 01:57:05,229 Entre 20 y 2 2207 01:57:05,229 --> 01:57:06,390 Pues siempre nos va a detectar 2208 01:57:06,390 --> 01:57:12,050 pero nos cargamos un poco la variable que es la condición del ángulo, ¿vale? 2209 01:57:12,170 --> 01:57:15,689 Y luego, si no se cumple nada de esto, pues significa que no me está detectando, 2210 01:57:15,770 --> 01:57:18,390 por tanto, sigue o estando en falso, ¿sí? 2211 01:57:18,729 --> 01:57:21,609 Y eso es lo que luego va haciendo que vayamos pasando de un estado a otro. 2212 01:57:22,689 --> 01:57:24,010 Esto es lo que hay que ir configurando. 2213 01:57:27,289 --> 01:57:30,550 Así que, bueno, esto es un poco cómo funciona luego eso. 2214 01:57:30,630 --> 01:57:32,550 Hay un método propio, ¿vale? 2215 01:57:32,550 --> 01:57:50,140 Igual del NATMES, que es este, bueno, primero accedemos al NATMES, que se refiere básicamente a este componente de NATMES agent, ¿vale? De ahí se cogen, NATMES agent, relación con NATMES agent. 2216 01:57:50,140 --> 01:58:02,819 Entonces yo guardo la información en agent, ¿vale? Y en todo momento con el set destination yo lo que voy haciendo es, este personaje que tiene este NATMES tiene que irse moviendo hacia donde yo le diga aquí en todo momento, que se puede ir actualizando, claro. 2217 01:58:02,819 --> 01:58:05,800 en todo momento va a ir calculando una meta 2218 01:58:05,800 --> 01:58:08,020 que puede ser, por ejemplo 2219 01:58:08,020 --> 01:58:09,960 la posición en cierto momento 2220 01:58:09,960 --> 01:58:11,539 va a ir cambiando 2221 01:58:11,539 --> 01:58:13,779 si detecta el personaje, cogerá 2222 01:58:13,779 --> 01:58:15,880 la posición del personaje y lo irá siguiendo 2223 01:58:15,880 --> 01:58:18,100 fotograma a fotograma, lo irá refrescando 2224 01:58:18,100 --> 01:58:19,500 y si no lo ha detectado 2225 01:58:19,500 --> 01:58:22,020 si no lo ha detectado, que es lo que pone aquí 2226 01:58:22,020 --> 01:58:23,859 ese destino 2227 01:58:23,859 --> 01:58:25,920 al que se tiene que ir moviendo el personaje es 2228 01:58:25,920 --> 01:58:28,119 uno de los puntos, las posiciones 2229 01:58:28,119 --> 01:58:29,479 de uno de los puntos que tengo aquí 2230 01:58:29,479 --> 01:58:31,600 esparcidos por el espacio 2231 01:58:31,600 --> 01:58:33,539 pues para que vaya de un punto a otro 2232 01:58:33,539 --> 01:58:35,760 ¿vale? se podría hacer aleatorio pero aquí se han puesto 2233 01:58:35,760 --> 01:58:37,239 cuatro GameObjects vacíos 2234 01:58:37,239 --> 01:58:39,579 cuatro Empties y este 2235 01:58:39,579 --> 01:58:41,760 Zombie pues irá haciendo la ruta entre estos cuatro 2236 01:58:41,760 --> 01:58:42,859 ¿vale? 2237 01:58:43,699 --> 01:58:45,460 que esos cuatro puntos son los que están 2238 01:58:45,460 --> 01:58:47,659 metidos en este 2239 01:58:47,659 --> 01:58:49,300 Array, entonces 2240 01:58:49,300 --> 01:58:51,039 que llega a un 2241 01:58:51,039 --> 01:58:52,979 a ver 2242 01:58:52,979 --> 01:58:54,819 que llega 2243 01:58:54,819 --> 01:58:59,539 lo tenemos aquí 2244 01:58:59,539 --> 01:59:01,399 bueno, es que he borrado 2245 01:59:01,399 --> 01:59:02,880 esto, ¿vale? que 2246 01:59:02,880 --> 01:59:05,659 en todo momento 2247 01:59:05,659 --> 01:59:07,479 el agent está yendo hacia el objetivo 2248 01:59:07,479 --> 01:59:09,739 lo que va a ir cambiando es que objetivo es ese 2249 01:59:09,739 --> 01:59:11,180 si por ejemplo 2250 01:59:11,180 --> 01:59:13,979 estamos en el modo 0 o 1 2251 01:59:13,979 --> 01:59:15,640 de los estados de que no me ha detectado 2252 01:59:15,640 --> 01:59:18,020 en el estado 1 ya irá andando 2253 01:59:18,020 --> 01:59:19,439 y pues 2254 01:59:19,439 --> 01:59:21,579 aleatoriamente cada cierto tiempo 2255 01:59:21,579 --> 01:59:22,500 va a ir 2256 01:59:22,500 --> 01:59:25,300 chequeando pues oye 2257 01:59:25,300 --> 01:59:27,880 ahora voy a sacar un número aleatorio 2258 01:59:27,880 --> 01:59:29,220 entre el 0 y la longitud 2259 01:59:29,220 --> 01:59:31,859 del array que el máximo es 3 2260 01:59:31,859 --> 01:59:34,119 y cógeme uno de esos tres 2261 01:59:34,119 --> 01:59:36,039 valores, ¿vale? y me lo guarda ese nene 2262 01:59:36,039 --> 01:59:38,180 y luego lo que va a dar es la posición 2263 01:59:38,180 --> 01:59:39,920 de el elemento de narray 2264 01:59:39,920 --> 01:59:41,399 que haya salido aleatoriamente antes 2265 01:59:41,399 --> 01:59:43,899 y el objetivo hacia el que tiene que ir es esa posición 2266 01:59:43,899 --> 01:59:46,220 entonces cada cierto tiempo se va a ir 2267 01:59:46,220 --> 01:59:48,140 reseteando para que el personaje 2268 01:59:48,140 --> 01:59:49,359 vaya a esa posición 2269 01:59:49,359 --> 01:59:52,000 el zombie, por eso cuando 2270 01:59:52,000 --> 01:59:54,000 empieza el juego, que empieza parado 2271 01:59:54,000 --> 01:59:56,020 porque digamos que este 2272 01:59:56,020 --> 01:59:57,060 cálculo de la ronda 2273 01:59:57,060 --> 01:59:59,739 se invoca para que empiece a los 4 segundos 2274 01:59:59,739 --> 02:00:01,760 y se vaya ejecutando cada cierto tiempo 2275 02:00:01,760 --> 02:00:08,439 Si el estado es 1, cada 20 segundos vuelve a ejecutar ese método de ronda random 2276 02:00:08,439 --> 02:00:16,960 Que es la que define nuevos estados de nuevas metas de las que hay aquí preconfiguradas 2277 02:00:16,960 --> 02:00:22,319 Entonces cuando llega una, cuando detecta que se ha alcanzado, se para ahí y a los 4 segundos dice 2278 02:00:22,319 --> 02:00:26,220 A ver a cuál voy aleatoriamente y va a esa 2279 02:00:26,220 --> 02:00:28,420 ¿vale? 2280 02:00:28,840 --> 02:00:30,479 y el personaje se está moviendo por el 2281 02:00:30,479 --> 02:00:32,100 NADMES, no tiene ni RigidBody 2282 02:00:32,100 --> 02:00:34,460 ni nada más, se está 2283 02:00:34,460 --> 02:00:35,899 moviendo porque hay un setDestination 2284 02:00:35,899 --> 02:00:38,119 y se va moviendo a la velocidad que tenga 2285 02:00:38,119 --> 02:00:39,479 el NADMES aquí puesto 2286 02:00:39,479 --> 02:00:40,800 ¿vale? 2287 02:00:49,210 --> 02:00:50,170 estas cosas 2288 02:00:50,170 --> 02:00:51,630 más o menos están 2289 02:00:51,630 --> 02:00:53,970 sugeridas o incluso hay 2290 02:00:53,970 --> 02:00:56,350 fragmentos de código iguales, por ejemplo esto del 2291 02:00:56,350 --> 02:00:58,310 ángulo de visión, etcétera, está 2292 02:00:58,310 --> 02:00:59,670 tal cual, si no me equivoco 2293 02:00:59,670 --> 02:01:02,229 en los enunciados 2294 02:01:02,229 --> 02:01:03,850 de la tarea 2295 02:01:03,850 --> 02:01:05,550 y nada, pues es ir 2296 02:01:05,550 --> 02:01:07,289 resolviendo 2297 02:01:07,289 --> 02:01:10,390 pues como se van 2298 02:01:10,390 --> 02:01:12,529 los problemas que van 2299 02:01:12,529 --> 02:01:14,510 surgiendo, como irlo resolviendo y hay que darle muchas 2300 02:01:14,510 --> 02:01:15,930 vueltas, eso seguro 2301 02:01:15,930 --> 02:01:18,350 por eso lo de inteligencia artificial lo he dejado un poco 2302 02:01:18,350 --> 02:01:19,850 en segundo plano porque sí que 2303 02:01:19,850 --> 02:01:22,270 tiene más vueltas, pero lo de mover el 2304 02:01:22,270 --> 02:01:24,310 personaje y el carácter controller y eso 2305 02:01:24,310 --> 02:01:26,369 sí que creo que es más 2306 02:01:26,369 --> 02:01:28,590 asequible y más con lo que hemos visto hoy