1 00:00:01,710 --> 00:00:03,509 Bienvenidos a esta tutoría número 10. 2 00:00:04,429 --> 00:00:12,310 Vamos a ir viendo cuestiones relacionadas con la tarea principalmente de la unidad 6. 3 00:00:12,789 --> 00:00:16,989 Ya tenéis abierta la unidad 7. Antes de Semana Santa ya se abrió la última unidad. 4 00:00:17,589 --> 00:00:21,809 En la que, por cierto, y ya aprovecho, en esa unidad 7... 5 00:00:21,809 --> 00:00:24,710 Ah, bueno, una cosa muy importante es que os comparta la pantalla, 6 00:00:24,850 --> 00:00:27,109 porque si no, no veis de lo que os hablo en ocasiones. 7 00:00:27,109 --> 00:00:41,880 Vale, confirmadme que estáis viendo ahora un Visual Studio, porfa. Sí, vale, genial. Pues voy a poner aquí de todos modos el aula. Vale, aquí. 8 00:00:41,880 --> 00:01:10,299 Si tenéis el tema 7 y como ponen el mensaje que os puse, hay partes. A ver si no me explico mal. Digamos que todo el tema es materia de examen, pero sí que es verdad que cuando llega un punto, cuando llegamos ya a diseñar para dispositivos móviles, sobre todo a partir de aquí, que se habla de gafas de realidad virtual, realidad aumentada, gestión de GPS, 9 00:01:10,299 --> 00:01:15,939 son cosas en algunos casos que bueno lo del móvil todo el mundo tiene un móvil es verdad que como 10 00:01:15,939 --> 00:01:24,680 no se exige como al contrario que el ordenador como un dispositivo que usar vale en lo que me 11 00:01:24,680 --> 00:01:29,879 meto sobre todo son en cuestiones más teóricas que en otra cosa pero aún así por ejemplo aquí 12 00:01:29,879 --> 00:01:36,200 se habla de una aplicación de para controlar desde el móvil para hacer un compilado una exportación 13 00:01:36,200 --> 00:01:38,400 desde el móvil y testear directamente nuestro proyecto 14 00:01:38,400 --> 00:01:39,560 con los inputs del móvil 15 00:01:39,560 --> 00:01:41,939 porque está aquí la pantalla, a diferencia del ordenador 16 00:01:41,939 --> 00:01:43,920 pues hay funcionalidades que no se pueden 17 00:01:43,920 --> 00:01:45,140 realizar en un ordenador 18 00:01:45,140 --> 00:01:48,060 realidad virtual igual, por mucho que se hable aquí 19 00:01:48,060 --> 00:01:50,040 pues no tenéis unas gafas, no tenéis por qué 20 00:01:50,040 --> 00:01:51,359 tenerla, realidad aumentada 21 00:01:51,359 --> 00:01:54,319 comunicación con dispositivos externos 22 00:01:54,319 --> 00:01:55,379 se habla de Arduino un poco 23 00:01:55,379 --> 00:01:57,719 lo que quiero que quede claro es 24 00:01:57,719 --> 00:02:00,420 aunque yo creo que es todo interesante y en la medida de lo que podáis 25 00:02:00,420 --> 00:02:02,480 intentéis ponerlo en juego 26 00:02:02,480 --> 00:02:05,519 estas partes 27 00:02:05,519 --> 00:02:31,479 Entonces, si entran en el examen, que algo entrará, aunque no es a lo que más peso voy a dar, pero algo entrará, a nivel teórico sí que deberíais saber el temario. Por ejemplo, llegáis a esta parte de realidad virtual. Es verdad que lo de las gafas, no voy a preguntar cómo programar directamente para las gafas, pero por ejemplo aquí hay una introducción de que realidad virtual, aumentada, mixta, extendida, todo esto puede entrar. 28 00:02:31,479 --> 00:02:45,740 Luego ya empieza a hablar de modelos, que los modelos también se podrían preguntar. La MetaQuest 3, dado que lo pone aquí, ¿para qué categorías se dirigen principalmente? Ese tipo de cuestiones sí que pueden ser materia de examen. 29 00:02:45,740 --> 00:03:11,639 Lo que no va a ser materia de examen es que os diga cómo se configuran las metacuests, en qué menú meterse, cuestiones concretas de los dispositivos. No va a haber. Desde luego aquí os dejo quien las tenga que pueda iniciarse y como os comenté en su momento hay un curso de especialización al que podéis acceder cuando tengáis el título de este, que es ese curso de realidad virtual y desarrollo de videojuegos. 30 00:03:11,639 --> 00:03:13,680 creo que se llama así, si no era muy parecido 31 00:03:13,680 --> 00:03:15,979 y ahí se habla en concreto 32 00:03:15,979 --> 00:03:17,840 de esto y es más asentado 33 00:03:17,840 --> 00:03:18,939 a esto, aquí es verdad que eso 34 00:03:18,939 --> 00:03:21,620 hacemos una introducción porque tenéis que conocerlo 35 00:03:21,620 --> 00:03:22,800 pero no es 36 00:03:22,800 --> 00:03:25,879 en el examen no va a ser parte del contenido 37 00:03:25,879 --> 00:03:27,879 sé que esto que os estoy 38 00:03:27,879 --> 00:03:29,319 diciendo de si entra pero no entra 39 00:03:29,319 --> 00:03:32,000 genera confusión, pero ya os digo 40 00:03:32,000 --> 00:03:33,780 sobre todo lo teórico, ya cuando 41 00:03:33,780 --> 00:03:36,060 se meta en cuestiones muy prácticas 42 00:03:36,060 --> 00:03:37,319 no 43 00:03:37,319 --> 00:03:39,259 miradlo 44 00:03:39,259 --> 00:03:41,340 si os interesa, pero no es 45 00:03:41,340 --> 00:03:43,039 parte del examen, pero por ejemplo 46 00:03:43,039 --> 00:03:44,699 al llegar a realidad aumentada 47 00:03:44,699 --> 00:03:47,319 habla aquí de paquetes 48 00:03:47,319 --> 00:03:48,960 ¿vale? como paquetes básicos para 49 00:03:48,960 --> 00:03:51,439 que son como kit de desarrollo 50 00:03:51,439 --> 00:03:52,919 que 51 00:03:52,919 --> 00:03:54,780 se pueden usar desde Unity 52 00:03:54,780 --> 00:03:56,580 se pueden conectar con Unity 53 00:03:56,580 --> 00:03:58,680 bueno, sí que estaría bien que os sonaran 54 00:03:58,680 --> 00:04:00,319 ¿vale? en plan pues 55 00:04:00,319 --> 00:04:02,979 hay uno que es para Apple, otro que es para 56 00:04:02,979 --> 00:04:04,120 Android ¿vale? 57 00:04:05,120 --> 00:04:06,080 hay alguna biblioteca 58 00:04:06,080 --> 00:04:09,180 que os suene, no creo que me meta mucho a preguntar 59 00:04:09,180 --> 00:04:10,879 eso, pero podría ser ¿vale? 60 00:04:11,340 --> 00:04:33,000 Luego, gestión de sistemas de vídeo. Esto sí que lo podéis probar si tenéis una webcam, por ejemplo, y deberíais, dado que para los proyectos finales se os pedirán. Pero bueno, si se os pregunta algo, pues también será más parte teórica. Aquí, por ejemplo, se hablan de QRs y cómo detectar patrones. Vale, pues lo teórico. Aquí habla luego de librerías, etc. 61 00:04:33,000 --> 00:04:45,740 Pero sobre todo, la pregunta de qué es un QR puede ser perfectamente, describir para qué, más o menos cómo funciona, puede ser materia de examen sin problema. De hecho, no me extrañaría que hubiera alguna pregunta de eso. 62 00:04:45,740 --> 00:04:47,139 del GPS 63 00:04:47,139 --> 00:04:49,740 como se necesita un móvil 64 00:04:49,740 --> 00:04:51,959 pues el concepto de que es un GPS 65 00:04:51,959 --> 00:04:54,139 y algo así podría caer 66 00:04:54,139 --> 00:04:54,879 pero no creo 67 00:04:54,879 --> 00:04:57,879 leeroslo y un poco 68 00:04:57,879 --> 00:05:00,439 entended como sería pero sin meternos en el código 69 00:05:00,439 --> 00:05:02,199 ¿vale? y comunicación 70 00:05:02,199 --> 00:05:04,000 con dispositivos externos un poco lo mismo 71 00:05:04,000 --> 00:05:05,040 que es Arduino 72 00:05:05,040 --> 00:05:07,660 un poco 73 00:05:07,660 --> 00:05:10,120 el software o como se podría conectar 74 00:05:10,120 --> 00:05:11,779 con Unity pero 75 00:05:11,779 --> 00:05:13,319 ya he llegado a un punto que 76 00:05:13,319 --> 00:05:15,920 tampoco voy a preguntar cómo programar 77 00:05:15,920 --> 00:05:17,879 para Arduino directamente, ¿vale? 78 00:05:17,939 --> 00:05:18,680 Entonces, bueno, 79 00:05:19,860 --> 00:05:21,819 es parte del temario, lo damos, pero 80 00:05:21,819 --> 00:05:23,959 bueno, que entendáis que eso, que si entran cosas va a ser 81 00:05:23,959 --> 00:05:25,660 más lo que os estoy repasando ahora, que es 82 00:05:25,660 --> 00:05:27,699 pues el concepto y 83 00:05:27,699 --> 00:05:29,680 aspectos teóricos, más que 84 00:05:29,680 --> 00:05:31,839 cómo luego desarrollarlo. Y ahora digo 85 00:05:31,839 --> 00:05:33,720 que esto de los conceptos de realidad virtual, 86 00:05:33,899 --> 00:05:35,759 mixta, aumentada, extendida, esto 87 00:05:35,759 --> 00:05:37,819 sí que es fácilmente materia de examen, 88 00:05:37,879 --> 00:05:39,819 ¿vale? Que es la parte conceptual antes de 89 00:05:40,439 --> 00:05:41,759 alguno de los apartados 90 00:05:41,759 --> 00:05:51,819 posteriores. Quería aclarar esto ya que estábamos hablando del tema 7, pero ahora mismo, a menos que me digáis lo contrario, 91 00:05:51,819 --> 00:06:04,300 nos vamos a poner con el tema 6. Los que lo hayáis leído alguna duda, porque estaba antes consultando y nadie parecía estar con la tarea 92 00:06:04,300 --> 00:06:05,500 muy avanzada 93 00:06:05,500 --> 00:06:08,959 dudas que os surjan de lo que es 94 00:06:08,959 --> 00:06:10,399 el tema en sí, el contenido 95 00:06:10,399 --> 00:06:12,639 que eso creo que sí que lo he 96 00:06:12,639 --> 00:06:14,819 que algunos si estáis ya lo habéis 97 00:06:14,819 --> 00:06:16,500 acabado o lo habéis revisado 98 00:06:16,500 --> 00:06:26,470 vale, vamos entonces a 99 00:06:26,470 --> 00:06:27,670 vale 100 00:06:27,670 --> 00:06:30,589 voy entonces a repasar ciertas cuestiones 101 00:06:30,589 --> 00:06:31,550 ¿vale? de 102 00:06:31,550 --> 00:06:33,410 esta tarea que tenemos aquí 103 00:06:33,410 --> 00:06:36,009 que os de, bueno, es un resultado 104 00:06:36,009 --> 00:06:37,790 sugerido, en esta por ejemplo 105 00:06:37,790 --> 00:06:40,189 se habla de algunos movimientos que tenga este personaje 106 00:06:40,189 --> 00:06:45,050 como el salto, si no me equivoco lo ponía como opcional, porque tiene sus complicaciones, etc. 107 00:06:45,189 --> 00:06:51,370 Hay unos zombies con cierta inteligencia artificial a través de Nazmesh que cuando te localizan 108 00:06:51,370 --> 00:06:57,410 veis que empieza a seguirme y me intenta cazar, y cuando se acerca, si os fijáis, me empieza aquí a dar unos golpes 109 00:06:57,410 --> 00:06:59,810 que no está configurado pero nos podría quitar vida. 110 00:07:00,829 --> 00:07:07,209 Vamos a empezar, igual que empieza por el tema, por hablar de los terrenos, 111 00:07:07,209 --> 00:07:24,389 De generar entornos 3D que no se basan en las primitivas típicas que hemos estado usando durante el curso, desde un plano para hacer el suelo, paredes que son cubos en realidad, sino un entorno más completo, por ejemplo, de un videojuego de mundo abierto. 112 00:07:25,269 --> 00:07:44,949 Para ello voy a ir un poco rápido, por eso, porque se explica en el tema, pero en la versión que nosotros usamos, que es una de las cosas que queríamos que viéramos, que era que existen paquetes que aunque no estén aprobados, tienen esta indicación de que son paquetes de preview, que todavía no están aprobados, pero están desarrollándose y ya se pueden testear, ¿vale? 113 00:07:44,949 --> 00:08:08,689 Que en este caso, aunque se puedan crear terrenos simplemente con un 3D Object y un Terrain, se crea lo que es un terreno, sí que es verdad que ya a partir de la versión 2022 en adelante se usa la otra opción, la que se os pide en la tarea y de la que se habla en el tema, que es la de instalar las Terrain Tools, este Terrain Toolbox. 114 00:08:08,689 --> 00:08:36,649 En esta versión todavía había que ir a los project settings, si no me equivoco, e ir al package manager y activar estos preview packages. Por defecto no vienen activos y esto es lo que permite que luego, aparte de poner esta indicación que os diré seguro, aquí lo pone, está en etapas de desarrollo temprano, no se deberían usar para producción. 115 00:08:36,649 --> 00:09:00,129 Es verdad que ya os digo, en cuanto tuvierais otra versión más avanzada, incluso este paquete funciona bien, entonces lo podríais usar. Pero hay otros paquetes, cuando os metéis en el Package Manager, veis que pone esta indicación de Terrain Tools, yo ya lo he instalado, en el tema se pone cómo se buscan, pero por ejemplo, cuando activáis esto del Preview Packages, os pueden aparecer otros, como estos que tenemos aquí. 116 00:09:00,129 --> 00:09:08,610 Si en algún momento queréis desarrollar usando estas herramientas, tenéis que activar ese Preview Packages 117 00:09:08,610 --> 00:09:13,649 Por efecto, en la 2022 ya os aparecerá aquí este menú del Terrain Toolbox 118 00:09:13,649 --> 00:09:19,570 Esto que tenemos aquí, que es otra herramienta, un plugin, que sirve para crear terrenos de una forma más simple 119 00:09:19,570 --> 00:09:25,870 Y que los terrenos también se puedan generar varios de manera conectada 120 00:09:25,870 --> 00:09:40,649 Porque cuando se crea un terreno, por defecto lo que se genera es, por lo que se ve aquí, cuando yo he hecho esto de 3D Object y crear un terreno, si os fijáis en la zona verde, como ya tenía uno ahí. 121 00:09:40,649 --> 00:10:09,210 Epa, espera que lo he puesto en... la he maximizado la ventana, debe ser. A ver, perdonad que aquí algo he tocado, he hecho aquí un... Ah, vale, sí. Voy a resetear el layout. Si alguna vez no lo habéis hecho, ¿vale? En Windows Layouts se puede resetear a las... a los... bueno, la interfaz, pues la ordenación que tiene. Esto creo que en el tema 1 hablábamos de ello. 122 00:10:09,210 --> 00:10:11,570 entonces, como acabo de decir 123 00:10:11,570 --> 00:10:13,750 aquí tenemos este terreno que acabo de crear 124 00:10:13,750 --> 00:10:14,970 que es este naranja 125 00:10:14,970 --> 00:10:17,309 con las herramientas de Terrain 126 00:10:17,309 --> 00:10:19,870 que también tendréis en los terrenos que se crean con las Terrain Tools 127 00:10:19,870 --> 00:10:21,690 de las cuales ahora podemos hablar 128 00:10:21,690 --> 00:10:23,889 aunque creo que en el vídeo de Álvaro Holguera 129 00:10:23,889 --> 00:10:26,029 se habla bien y en extensión 130 00:10:26,029 --> 00:10:27,330 con esto, ¿qué ocurre? 131 00:10:27,389 --> 00:10:29,309 que cuando queremos generar más terrenos 132 00:10:29,309 --> 00:10:31,830 y que sea más grande, fijaos que el que yo he generado 133 00:10:31,830 --> 00:10:33,590 finalmente para la tarea es más grande 134 00:10:33,590 --> 00:10:35,690 que el que genera 135 00:10:35,690 --> 00:10:36,269 por defecto 136 00:10:36,269 --> 00:10:41,970 el objeto de Terrain. 137 00:10:42,309 --> 00:10:47,070 Con el Terrain Toolbox lo que se puede hacer es generar terrenos más grandes 138 00:10:47,070 --> 00:10:51,210 que cuando se van aumentando al final se pueden ir agrupando distintas áreas. 139 00:10:52,090 --> 00:10:58,450 Hay multitud de opciones, realmente las principales es decir, 140 00:10:59,190 --> 00:11:03,289 cuánto tiene que medir ese territorio y en qué altura. 141 00:11:03,289 --> 00:11:15,269 Bueno, la altura es relativa, se puede poner en cero y luego ya se puede pintar sobre ella, pero la altura de la que habla, y veis que ya cuando voy alterando algunos parámetros, se van viendo reflejados. 142 00:11:15,269 --> 00:11:29,269 En realidad, a ver, borro esta, vale, lo tengo ahí. Cuando creáis estos terrenos, la altura no se refiere a si ya aparece una altura de, en este caso, 693 metros, es... 143 00:11:31,049 --> 00:11:42,590 A ver, un segundito, cuando lo creo, porque creo que si no voy a decir una cosa que no es. Cuando se crea un nuevo Terrain Tool, vale, vale, pues nada, ok, grouping, un segundo, ahora os explico lo que hago. 144 00:11:42,590 --> 00:12:06,440 Cuando se genera otro, a lo que se refiere este TerrainHeight es hasta dónde puede llegar luego la altura del terreno. Cuando vayamos a ir modelando estas montañas o los relieves del terreno, van a subir los relieves hasta una altura que está especificada aquí. 145 00:12:06,440 --> 00:12:13,519 entonces no es lo mismo la start position que sí que podría cambiar donde está ubicada vale por 146 00:12:13,519 --> 00:12:18,019 defecto del 00 y esto es importante porque puede parecer que si lo ponemos en cero es que aparece 147 00:12:18,019 --> 00:12:22,080 en cero luego intentamos pintar con las herramientas de que bueno pues de que se 148 00:12:22,080 --> 00:12:26,360 eleve el terreno y no sucede nada entonces es importante también tener de primera es un poco 149 00:12:26,360 --> 00:12:34,100 pensado que se puede cambiar posteriormente vale cuál es el cuál es la altura que va a tener ese 150 00:12:34,100 --> 00:12:50,179 Yo voy a poner 800 y voy a decir que tenga también 1000 por 1000, ¿vale? La tarea se pedía que fuera de 500 por 500, pero bueno. También es cierto que aquí hay otras opciones que se pueden activar, viene el mapa con los hate maps para que ya aparezca con ciertos relieves, ¿no? 151 00:12:50,179 --> 00:13:03,259 Los relieves que se van generando se pueden representar con mapas de escala de grises, en donde las elevaciones se van representando en función de si es más blanco o más negro y los valores intermedios serán más grises. 152 00:13:03,980 --> 00:13:19,919 Pero por defecto, cuando se genera un nuevo territorio, lo que vais a ver que se ha generado, y voy a ocultar este que es el que tenía, serán cuestiones, esto era un cubo que tengo para representar el agua, es el lago que se indicaba. 153 00:13:19,919 --> 00:13:37,580 Pero cuando tenéis un terreno, al final es esto, una malla preparada con, en este caso, y dado que se ha creado con el Terrain Toolbox, con este padre que hace grupos de terrenos, y aquí podríamos ir generando nuevos terrenos. 154 00:13:37,580 --> 00:13:42,000 entonces cuando en cierto momento 155 00:13:42,000 --> 00:13:43,320 vayamos teniendo estos terrenos 156 00:13:43,320 --> 00:13:45,639 cuya configuración se puede ir cambiando 157 00:13:45,639 --> 00:13:47,940 en estas herramientas que aparecen aquí 158 00:13:47,940 --> 00:13:49,480 en donde se pueden cambiar 159 00:13:49,480 --> 00:13:51,139 por ejemplo 160 00:13:51,139 --> 00:13:54,419 la anchura 161 00:13:54,419 --> 00:13:55,240 o las medidas 162 00:13:55,240 --> 00:13:58,059 de este terreno 163 00:13:58,059 --> 00:13:59,960 en cierto momento si se van generando 164 00:13:59,960 --> 00:14:02,000 distintos terrenos y se meten dentro del grupo 165 00:14:02,000 --> 00:14:03,919 esto también habla el tema 166 00:14:03,919 --> 00:14:05,840 cuando se vayan creando los relieves 167 00:14:05,840 --> 00:14:19,039 Digamos que no va a haber una costura entre ellos. Esto se puede usar a veces no solo por facilitarnos segmentar el terreno, sino porque recordad, se vio en el tema 4, que se pueden ir añadiendo escenas de manera dinámica. 168 00:14:19,039 --> 00:14:47,139 Entonces se pueden ir, a lo mejor el personaje cuando se va acercando a este cuadradito, ¿vale? Y está dirigiendo hacia esta izquierda, ¿vale? Ahora aunque se vea así, en realidad esto es mucho más grande. ¿Vale? Puede estar andando el personaje y va andando, va andando y cuando llega a este punto queremos que cargue el horizonte. Entonces en ese momento podremos cargar otro terreno, ¿vale? Es una de las razones por las que se puede inventar porque si cargamos todo un nivel de golpe en ciertas ocasiones lo que vamos a hacer es saturar el sistema. 169 00:14:47,139 --> 00:15:08,360 Vale, las herramientas. Voy a ir muy rápido, pero básicamente cuando se selecciona, no un grupo de terreno que como pone en el temario, si van a estar dentro de esta, digamos, si van a ser consecuentes o si se van a continuar un terreno con otro, uno de estos mallas de terreno con otro, deberían estar en el mismo grupo. 170 00:15:08,360 --> 00:15:27,519 Dado que están en el mismo grupo, lo que de hecho aquí habrá que hacer que los hijos también estén en ese grupo, ¿vale? Si vamos a esta torquita que es la configuración, los settings del terreno, ¿vale? Pues deberán estar en el mismo grupo. Con esto directamente se podría refrescar, ¿vale? 171 00:15:27,519 --> 00:15:34,480 Pero es para que cuando vayamos modelando este terreno, de verdad que se considere como un único terreno. 172 00:15:34,879 --> 00:15:37,679 Luego, cuando nos metemos en las capas de terrenos en sí, ¿vale? 173 00:15:37,799 --> 00:15:40,440 Vais a ver que os aparecen dos componentes por defecto. 174 00:15:40,580 --> 00:15:41,879 Uno, un collider. 175 00:15:43,120 --> 00:15:45,779 Se me entrecorta el audio, ¿me oís mal? 176 00:15:46,700 --> 00:15:47,980 Pero nada, ¿eh? Que acabo de leer. 177 00:15:49,399 --> 00:15:50,519 ¿Me oís bien o...? 178 00:15:51,720 --> 00:15:53,519 Es decir, ¿es problema mío si...? 179 00:15:54,460 --> 00:15:56,419 O algunos me oís bien y otros no. 180 00:15:56,419 --> 00:16:03,269 me escucháis bien, vale, pues 181 00:16:03,269 --> 00:16:05,889 el compañero que ha dicho lo de se entrecorta el audio 182 00:16:05,889 --> 00:16:07,470 claro, será tu conexión, sí 183 00:16:07,470 --> 00:16:08,750 vale 184 00:16:08,750 --> 00:16:12,110 vale, de hecho 185 00:16:12,110 --> 00:16:13,909 yo te estoy escuchando ahora mismo y también 186 00:16:13,909 --> 00:16:15,490 se me corta, así que sí, algo hay 187 00:16:15,490 --> 00:16:18,129 en tu conexión, yo creo, lo siento 188 00:16:18,129 --> 00:16:19,529 vale, vale 189 00:16:19,529 --> 00:16:22,309 luego subiré la grabación 190 00:16:22,309 --> 00:16:24,049 por si, pero bueno, si me puedes 191 00:16:24,049 --> 00:16:26,009 seguir más o menos, pues genial 192 00:16:26,009 --> 00:16:28,429 vale, continúo 193 00:16:28,429 --> 00:16:30,570 eso, lo dicho 194 00:16:30,570 --> 00:16:44,190 Van a venir con dos componentes. Uno, un collider especial de tipo Terrain Collider, que básicamente lo que intenta es adaptarse, es un collider que se adapta a los relieves que tenga el terreno. 195 00:16:44,970 --> 00:16:59,350 Ya hablamos en su momento del Mesh Collider, que es eso lo que intenta, como ajustarse a las formas de una geometría, pero bueno, tenía sus limitaciones, en ese pinball que hicimos sucedía. 196 00:16:59,350 --> 00:17:09,950 Aquí hay un collider que lo que hace es que el suelo y las montañas y todo tenga un collider y lo capte bien. Es como que lo han conseguido simplificar para que funcione bien. 197 00:17:10,529 --> 00:17:22,910 También tiene, para cuando añadáis árboles, un collider que lo que hace es, si metéis los árboles a través de este menú de añadir, aquí está, de pintar árboles, que los árboles también supongan un collider. 198 00:17:22,910 --> 00:17:27,630 Y también, pues, si te chocas con un árbol, pues que se lo detecte, ¿no? 199 00:17:28,049 --> 00:17:30,970 Si el personaje tiene también su collider, etcétera, y está bien configurado. 200 00:17:31,910 --> 00:17:35,970 Vale, no quiero repasar todas las opciones. 201 00:17:36,109 --> 00:17:38,349 Ya os digo, en el vídeo de Álvaro se habla bastante de esto. 202 00:17:39,309 --> 00:17:43,529 Pero bueno, sobre todo es que se pueden ir creando, en vez de con el Terrain Toolbox, 203 00:17:43,609 --> 00:17:46,670 una vez se ha generado el primero, otros terrenos vecinos, ¿vale? 204 00:17:46,670 --> 00:17:48,829 Vais a ver que cuidado cuando... 205 00:17:48,829 --> 00:17:50,849 Y por eso es una de las cosas que hay que tener en cuenta. 206 00:17:51,329 --> 00:17:59,970 Veis que cuando yo intento continuar aquí el terreno y lo pinto, que es clicar en estos cuadraditos, aquí hay un cuadradito que está justo en el borde y otros que se meten. 207 00:18:00,589 --> 00:18:08,710 Si recordáis, ha habido un momento que yo en los settings he dicho, vale, en vez de ser de 1000, que sea de 1200. 208 00:18:10,029 --> 00:18:19,650 Todos estos cambios, en principio, deberían hacerse de primera cuando se crea el terreno con este Terrain Toolbox, debería estar bien configurado. 209 00:18:19,650 --> 00:18:33,009 Si luego queremos ampliar el territorio, pues deberíamos ir, más que nada para que no ocurran estas incoherencias, veis que ahora ya he vuelto a ponerlo en el tamaño original y como se ha creado con ese tamaño, pues está considerándolo para continuar los terrenos. 210 00:18:33,009 --> 00:18:44,289 Yo podría seguir pintando y pintando y aumentando el terreno que veis que se están generando aquí, estos terrenos que si nos metemos en el grouping ID, pues tienen el mismo número. 211 00:18:44,289 --> 00:19:09,210 ¿Vale? Entonces yo cuando empiece a, y vamos a hacer ahora mismo la muestra, a pintar aquí con un pincel una elevación, ¿vale? Que sería en este menú de pintar terreno y dentro de todas las herramientas, también importantes para el examen, conocerlas o que os suenen las que se hablan del tema, veis que cuando yo pinto, a ver, voy a bajarle un poco la fuerza y voy a coger uno. 212 00:19:09,210 --> 00:19:22,970 Pero fijaos como si yo cojo un pincel, igual que os he hablado antes de los Gmaps, que son blancos y negros intermedios, todo va a ser o elevación o no elevación. Ya dependerá de la fuerza con la que vayamos pintando. 213 00:19:22,970 --> 00:19:47,390 Si, embargo, si tiene un degradado y tonos intermedios, que vayamos pintando, pues sí que tendrá, ahora le he dado demasiada fuerza, sí que pintará y veis que no se entrecorta para nada el relieve, veis que lo está cogiendo como si fuera de un mismo terreno. 214 00:19:47,390 --> 00:20:02,809 ¿Vale? Eso, si hay gamas intermedias es donde se van haciendo esos degradados en las alturas, ¿vale? Es decir, que la altura no sea, bueno, pues que tenga una pendiente en función de ese gris, ¿no? De ese suavizado. 215 00:20:02,809 --> 00:20:24,650 Entonces con estos pinceles se puede ir pintando. Cuando tenéis instalada esta Rain Toolbox, ya os digo, en siguientes versiones ya viene instalado por defecto, hay varios atajos como la tecla A, si fijáis, yo ahora mismo no estoy cambiando aquí el valor, con la tecla A y arrastrando hacia los lados ajustamos la fuerza, es decir, cuánto se eleva cuando vamos clicando. 216 00:20:24,650 --> 00:20:50,809 Si bajamos la fuerza, pues hay que ir pulsando más veces para que se vaya generando ese aumento de relieve, porque tenemos esto de raise or lower terrain, ¿vale? Dependiendo de qué herramienta, esto hará unas cosas u otras, ¿vale? De hecho, iréis viendo que si hago esto, vais a decir, joder, qué picos tan feos, ¿vale? Eso es porque luego hay otras herramientas de suavizado, por ejemplo, como el smooth height, ¿no? 217 00:20:50,809 --> 00:20:59,549 Si yo ahora empiezo así a suavizar, pues voy quitándole esta apariencia picuda a lo mejor que se podría ir obteniendo. 218 00:21:00,430 --> 00:21:10,069 Vale, lo dicho, con la A se aumenta la fuerza, con la S, de size, es lo más fácil, se varía el tamaño, se mantiene esa tecla y se arrastra el ratón izquierda a derecha. 219 00:21:10,730 --> 00:21:15,910 Con la D se rota y los principales son esos. Puede que haya alguno más, pero los principales son esos. 220 00:21:15,910 --> 00:21:36,109 Y luego otra muy importante, que es que normalmente en casi todas las herramientas, voy a volver a Razor Lower Terrain, que son las esenciales, con Control lo que se hace es la operación inversa. Es decir, si de primeras hace elevar el terreno con Control, cuando ahora pinto, si mantengo pulsado el Control, lo que hago es, en este caso, hundirlo, ¿vale? 221 00:21:36,910 --> 00:21:44,589 Fijaos lo que os decía antes, que yo por mucho que pinte, me voy a alejar, por mucho que pinte aquí, empiezo a pintar, empiezo a pintar, ¿vale? 222 00:21:44,769 --> 00:21:49,670 Sigo pintando y llega a un punto que ya no sube más. Esto es lo que hemos dicho antes de la altura, ¿vale? 223 00:21:49,670 --> 00:22:00,150 Cuando hemos creado el terreno, le habíamos dicho esta altura, ¿vale? No va a subir más de los 800 metros de altura, ¿vale? 224 00:22:00,150 --> 00:22:03,509 a ver porque 225 00:22:03,509 --> 00:22:04,150 a ver si 226 00:22:04,150 --> 00:22:07,609 se pueden guardar settings también 227 00:22:07,609 --> 00:22:09,730 de como se exportan 228 00:22:09,730 --> 00:22:11,710 etcétera pero bueno principalmente 229 00:22:11,710 --> 00:22:16,170 esas son las opciones principales 230 00:22:16,170 --> 00:22:19,329 vale hasta aquí que tal me vais siguiendo 231 00:22:19,329 --> 00:22:21,589 con esto ya es con calma 232 00:22:21,589 --> 00:22:23,849 pues luego hay otras herramientas de erosión 233 00:22:23,849 --> 00:22:25,809 efectos para hacer 234 00:22:25,809 --> 00:22:27,329 agujeros vale porque 235 00:22:27,329 --> 00:22:29,650 lo que hemos visto es 236 00:22:29,650 --> 00:22:43,690 Que claro, estoy elevando, pero aunque os diga que pinte con control y se va hundiendo, no va a bajar de ese punto cero. Igual que la altura tiene un tope, el nivel inferior también tiene un tope. 237 00:22:43,690 --> 00:22:51,690 Para eso lo que se puede hacer es o pintar agujeros con esta herramienta de Paint Holes, que hará que el Collider también se atraviese. 238 00:22:52,210 --> 00:22:59,970 Por ejemplo, si queremos que debajo de esto haya agua y se meta un personaje y pueda ir por debajo, pues habrá que hacer un agujero. 239 00:23:00,150 --> 00:23:05,470 O la mejor opción probablemente que es subir el terreno, todo el terreno en conjunto. 240 00:23:05,470 --> 00:23:08,589 bueno y esto es terrain tool, lo vamos a meter aquí 241 00:23:08,589 --> 00:23:10,190 ¿vale? podéis coger este grupo 242 00:23:10,190 --> 00:23:12,450 y decirle ¿vale? pues que la posición 243 00:23:12,450 --> 00:23:14,329 sea esta 244 00:23:14,329 --> 00:23:16,609 ¿vale? y que es lo que podéis hacer 245 00:23:16,609 --> 00:23:18,150 bueno 246 00:23:18,150 --> 00:23:20,369 más que esto sería elevar todo el terreno 247 00:23:20,369 --> 00:23:22,269 con las herramientas, más que nada para que luego se pueda 248 00:23:22,269 --> 00:23:24,730 bajar con la herramienta de 249 00:23:24,730 --> 00:23:27,930 set height 250 00:23:27,930 --> 00:23:29,569 ¿vale? que es otra de las que se explica 251 00:23:29,569 --> 00:23:32,170 que lo que se puede decir es ¿vale? yo quiero que 252 00:23:32,170 --> 00:23:34,210 digamos el nivel base esté en el 300 253 00:23:34,210 --> 00:23:52,069 Y le damos aquí y se le dice, bueno, a todas que suban hasta el 300, ¿vale? Con esto digamos que todo se achata, ¿vale? Pero lo bueno es que ahora como hemos elevado esto 300 metros, sí que hay margen de coger esta herramienta y hundir el terreno, ¿veis? 254 00:23:52,069 --> 00:24:08,269 Que ahora lo estoy, a ver, estoy haciendo ahora el socavón. Estoy subiendo por un lado, subirá 500 máximo porque teníamos 800 de rango, ¿vale? Y de socavón pues podrá tener 300 hacia abajo, ¿vale? Pues ahí ya podemos hacer que el nivel continúe hacia abajo, ¿vale? 255 00:24:08,269 --> 00:24:33,430 El resto de herramientas se explican en el tema. Álvaro también. No me voy a centrar tanto, a menos que me digáis que tenéis dudas. Con los árboles en el tema os dejo algunos assets que se pueden bajar, que sirven para añadirlos como árboles, ¿vale? Hay que añadirlos. Bueno, habría que buscar alguno y se pueden pintar también, ¿vale? Y con los detalles que pueden ser las rocas o las hierbas, etcétera, un poco lo mismo. 256 00:24:33,430 --> 00:24:52,890 Lo que sí me interesa, ¿vale? Así de últimas, es cómo pintar este territorio, ¿no? Para que no se quede con este color beige. Pues hay una de las opciones de este menú de pintar terreno, ¿vale? Que en este desplegable es pintar texturas, ¿vale? 257 00:24:52,890 --> 00:25:20,490 Igual, aquí podemos crear nuevos pinceles, podemos usar estos. Los pinceles, también nos lo pone la colación de los hate maps, se pueden crear imágenes cuadradas, eso sí, y con proporciones de múltiplo de 2 para que sea el pincel. Esto si habéis usado Photoshop es el mismo concepto que con los pinceles de Photoshop, que existen y tienen información alfa y luego también en base a la transparencia. 258 00:25:20,490 --> 00:25:36,869 Esa escala de grises en realidad, porque aquí no es tanto alfa, aunque lo coge como tal, veis que aquí se vuelve como transparente. Es más, información de una escala de grises, con eso es con lo que vamos diciendo la forma que tiene el pincel y los detalles que va a añadir. 259 00:25:36,869 --> 00:25:40,509 cuando queremos pintar texturas 260 00:25:40,509 --> 00:25:42,950 es decir, cuando queremos pintar 261 00:25:42,950 --> 00:25:43,390 el terreno 262 00:25:43,390 --> 00:25:46,170 también en los ejemplos 263 00:25:46,170 --> 00:25:48,829 bueno, se os indica en el tema y también 264 00:25:48,829 --> 00:25:50,650 en la tarea, que hay un paquete 265 00:25:50,650 --> 00:25:52,750 con muchos ejemplos de cosas para 266 00:25:52,750 --> 00:25:54,869 practicar, ¿vale? y en ellos 267 00:25:54,869 --> 00:25:56,829 si no me equivoco, lo tengo aquí 268 00:25:56,829 --> 00:25:58,430 el sample 269 00:25:58,430 --> 00:25:59,829 un segundito 270 00:25:59,829 --> 00:26:03,049 pues si no es en este, en terreno 271 00:26:03,049 --> 00:26:04,529 vale, aquí tenía 272 00:26:04,529 --> 00:26:06,789 distintas 273 00:26:06,789 --> 00:26:11,130 opciones de lo que se llaman Layers Textures, que son 274 00:26:11,130 --> 00:26:15,190 texturas simples, que digamos 275 00:26:15,190 --> 00:26:19,190 que aunque se repitan no se notan los extremos, simples, el concepto 276 00:26:19,190 --> 00:26:22,990 de simples entiendo que en color para el texturizado lo visteis, y os vienen 277 00:26:22,990 --> 00:26:27,089 ejemplos de mapas, texturas 278 00:26:27,089 --> 00:26:30,789 que se pueden usar para este pintado. Y dentro de ello hay otro concepto, 279 00:26:30,789 --> 00:26:34,170 estos son las capas en sí, que se diseñan en Photoshop o en algún software 280 00:26:34,170 --> 00:26:37,230 para tenerlo importado en Unity 281 00:26:37,230 --> 00:26:40,690 pero el concepto que sirve para estos pintados 282 00:26:40,690 --> 00:26:43,130 es lo que se llaman las Terrain Layers 283 00:26:43,130 --> 00:26:46,430 de hecho, para que veáis, si hacéis clic derecho 284 00:26:46,430 --> 00:26:49,329 y creáis, dais aquí a crear elementos 285 00:26:49,329 --> 00:26:52,490 vais a ver que hay uno, por ejemplo, que es crear un Terrain Layer 286 00:26:52,490 --> 00:26:53,869 una capa de terreno 287 00:26:53,869 --> 00:26:58,049 cuando yo le doy y creo uno nuevo, para que os hagáis una idea de qué es lo que pasa 288 00:26:58,049 --> 00:27:00,930 aparte de poder darle un nombre, pues suelo Dani, yo qué sé 289 00:27:00,930 --> 00:27:04,049 o suelo gravilla, suelo con césped 290 00:27:04,049 --> 00:27:11,369 suelo verde el suelo como bueno pues con barro que veis que aquí por ejemplo lo que estamos viendo 291 00:27:11,369 --> 00:27:17,769 este nuevo suelo lo que va a pedir son tres texturas vale y la digamos la principal es la 292 00:27:17,769 --> 00:27:23,930 primera que es meter el licioso que es pues el color en sí esa textura 2d vale tiene que ser 293 00:27:23,930 --> 00:27:29,730 una textura 2d como esta que tenemos aquí vale tiene que estar configurada como como 2d vale 294 00:27:29,730 --> 00:27:46,529 Como, bueno, con default lo coge, parece ser, porque lo está detectando con textura 2D, ¿vale? Y eso habrá que incorporarlo en esta textura de Fuse. Aquí se puede buscar y buscar, pues, por ejemplo, esta, ¿no? Que es la que he encontrado, pero bueno, es la que hubierais arrastrado, ¿vale? 295 00:27:46,529 --> 00:27:51,990 Con esto ya tenemos el principal elemento que es con lo que vamos a poder pintar el color, vamos a decir así. 296 00:27:52,569 --> 00:27:57,809 Para que tenga ciertos relieves, sabemos lo que son las normales, también entiendo de otros módulos de primero, 297 00:27:58,349 --> 00:28:04,049 las normales que son esos relieves que se simulan pero que no son relieves como tal, no son desplazamientos como tal, 298 00:28:04,190 --> 00:28:11,589 sino simulaciones que a través de cómo refleja nuestro software las luces al incidir sobre esa textura, 299 00:28:11,589 --> 00:28:28,809 pues da apariencia de que tiene unos relieves que realmente no están y es una forma muy económica, muy barata de simular relieves, normalmente relieves simples, sin sobrecargar la máquina porque no tiene que estar desplazando la geometría como haría con un mapa de desplazamiento, que no es lo mismo. 300 00:28:28,809 --> 00:28:41,789 Bueno, pues en el tema también os pongo cómo coger un diffuse, unos colores y que simule o que genere unos mapas de normales o un bump, también podría ser, para añadirlo aquí. 301 00:28:41,789 --> 00:29:04,950 Eso, en las que os proporcionaba viene un mapa de normales, que suelen ser de estos colores, estos azules, verdes, rojos, y luego una máscara que es un poco para darle opciones más avanzadas de reflexiones, etc., de dónde tiene que iluminar o para enmascarar, etc. 302 00:29:04,950 --> 00:29:31,289 Vale, bueno, sobre todo son el normal y el diffuse. En estos que tenemos aquí, que ya venían por defecto, pues veis que están ya incorporados los tres. Evidentemente, vosotros podéis descargar más de internet, más terrain layer, buscarlos, generarlo vosotros, generar un terrain layer y incorporarlos aquí, ¿vale? Que luego tiene otras opciones referidas a la metalicidad. De esto se habla un poquito más también en el tema 7, el suavizado, etcétera, ¿vale? 303 00:29:31,289 --> 00:29:52,690 Pero bueno, básicamente es que sepáis que cuando vayáis a pintar, bueno, tenéis que contar con una Terrain Layer creada ya, porque una vez estamos en este Paint Texture, ¿vale? Lo que vamos a tener que ir es a esta sección que se llama Layers y generar una nueva, añadir una nueva capa, ¿vale? 304 00:29:52,690 --> 00:30:03,089 Podemos, por defecto, en vez de ir aquí a Create y dar a Terrain Layer, que estaba por aquí abajo, en vez de hacer eso, se puede hacer directamente desde este menú. 305 00:30:03,470 --> 00:30:05,029 Vais abajo y dices crear nueva layer. 306 00:30:05,190 --> 00:30:08,849 Y digo, en vez de suelo Dani, va a ser suelo Daniel, yo qué sé. 307 00:30:09,990 --> 00:30:14,509 Y si lo creáis aquí, lo que os va a decir, vale, y en qué diffuse vas a querer usar. 308 00:30:15,029 --> 00:30:19,170 Voy a ponerle el siguiente que vea de los que se han importado, que me saldrá rápido, imagino. 309 00:30:19,170 --> 00:30:22,849 aquí están todos los 310 00:30:22,849 --> 00:30:25,170 sprites 311 00:30:25,170 --> 00:30:26,630 que se están usando 312 00:30:26,630 --> 00:30:28,509 en la tarea, pues por ejemplo este 313 00:30:28,509 --> 00:30:30,970 de rocas, le doy aquí y se ha generado 314 00:30:30,970 --> 00:30:31,490 ¿vale? 315 00:30:32,349 --> 00:30:34,549 solo se está pintando este 316 00:30:34,549 --> 00:30:36,509 terrain porque es el que te hemos 317 00:30:36,509 --> 00:30:38,670 seleccionado, tened en cuenta que como hemos hablado 318 00:30:38,670 --> 00:30:40,430 al final estos terrains son 319 00:30:40,430 --> 00:30:42,670 distintos cuadrados y aquí hay varios 320 00:30:42,670 --> 00:30:44,849 ¿vale? habría que ir incorporándolo 321 00:30:44,849 --> 00:30:46,529 en todos 322 00:30:46,529 --> 00:30:48,710 pero lo que hemos hecho al crear 323 00:30:48,710 --> 00:30:54,710 una nueva layer es lo mismo que si yo la borro y arrastro una de las que tenemos aquí. Bueno, 324 00:30:54,710 --> 00:30:59,930 si le damos a add layer y la buscamos, que son las mismas que ya tenemos creadas, le decimos esto, 325 00:30:59,930 --> 00:31:05,750 ¿vale? Veis que ya ha pintado esto. Si lo veis muy de lejos puede ser o puede pareceros que no 326 00:31:05,750 --> 00:31:12,650 tiene detalle y es que efectivamente, ¿vale? Hasta que no vayamos, hasta que no, a ver, 327 00:31:12,650 --> 00:31:28,880 Porque está en concreto. Sí, bueno, cuando nos ponemos a nivel suelo sí que tiene un cierto detalle de barro, ¿vale? Desde muy lejos parece que es un verde, ¿vale? Pero fijaos que tiene estos detallitos de tierra manchada. 328 00:31:28,880 --> 00:31:45,200 La gracia es, claro, como son sinles o como no tienen texturas estas, esta textura con la que estamos pintando, ¿vale? Pues a veces se hacen un poquito repetitivas porque al final no deja de ser un patrón que si lo ves en cierta dirección dices, ojo, ¿vale? 329 00:31:45,200 --> 00:32:11,619 La gracia está en que luego podemos ir añadiendo más de estas capas, ¿vale? Añadimos otra layer y decimos que sea la de roca, ¿vale? Y el orden es muy importante. Veis que cuando vamos clicando el pincel se irá poniendo de un color u otro, ¿vale? Porque es de esa capa de lo que vamos a pintar, pero es importante tener en cuenta que la que está sobre la otra es la que en el fondo se está viendo, ¿vale? Lo mismo. 330 00:32:11,619 --> 00:32:15,039 Ahora, a ver, voy a quitar el pincel, un segundo 331 00:32:15,039 --> 00:32:18,619 ¿Vale? Fijaos que ahora se ve con la roca ya cubierta por completo la otra 332 00:32:18,619 --> 00:32:21,680 ¿Vale? Porque la hemos puesto encima, igual que pasaría en Photoshop, por ejemplo 333 00:32:21,680 --> 00:32:22,940 ¿Qué se puede hacer? 334 00:32:23,339 --> 00:32:24,759 Coger esta capa, ¿vale? 335 00:32:26,380 --> 00:32:28,619 Seleccionarla, coger el pincel que nos parezca 336 00:32:28,619 --> 00:32:30,680 Y con esa capa seleccionada 337 00:32:30,680 --> 00:32:32,900 ¿Vale? Le voy a hacer esto un poquito más pequeño 338 00:32:32,900 --> 00:32:34,500 Y le voy a dar más fuerza 339 00:32:34,500 --> 00:32:36,619 Ya es como se puede ir pintando 340 00:32:36,619 --> 00:32:39,440 ¿Vale? Entonces, con la combinación de varias capas 341 00:32:39,440 --> 00:32:41,359 Ahora lo estoy haciendo todo un poco vasto 342 00:32:41,359 --> 00:33:00,579 porque me estoy concentrando en unas dimensiones muy grandes, pero si hacemos pequeño el pincel y empezamos a pintar, ¿vale? Es donde vamos, además con pinceles irregulares, por ejemplo, es con lo que vamos añadiendo, incluso luego puedo decir, vale, y aparte de esto voy a añadir otra capa más, ¿vale? 343 00:33:00,579 --> 00:33:09,299 Que es la de esta, que es más barro aún, o esta, que es más, yo qué sé, arena del desierto, pone hierba seca, ¿vale? 344 00:33:09,619 --> 00:33:16,279 Pues digo, lo añado, se añade aquí, recordad que si la pusierais encima, de pronto tapa todo lo que no esté pintado, ¿vale? 345 00:33:16,960 --> 00:33:21,059 Y, bueno, pues seleccionamos esta y ahora vamos pintando con esta también, ¿vale? 346 00:33:21,059 --> 00:33:25,339 Y vamos dando zonas, así, con calma, con mesura. 347 00:33:25,759 --> 00:33:30,059 También tened en cuenta que los pinceles, como hemos dicho, se pueden ir rotando, ¿vale? 348 00:33:30,059 --> 00:33:53,559 Entonces con eso, aunque la textura sí que no va a rotar, a ver, si os fijáis, ¿vale? Hacemos el ejemplo. Si yo pinto con esa textura, ¿por qué se salía? Venga, vamos aquí, pintar textura. Si yo pinto aquí y luego lo giro, como la textura es la misma, veis que lo que hace es cambiar el pincel lo que está mostrando, pero la textura en sí no cambia. 349 00:33:53,559 --> 00:34:09,320 Si quisiéramos tener distintos tipos de texturas e ir jugando más, lo suyo es coger estos mapas, crear otra terrain layer y, por ejemplo, en Photoshop o en otro sitio, voltearlas, hacer otras combinaciones y así también se van teniendo distintas direcciones. 350 00:34:09,320 --> 00:34:29,420 Entonces con esto básicamente es con lo que se puede ir pintando un terreno, por ejemplo el que yo tengo pintado aquí, fijaos que es, voy a borrar este que teníamos, creo que no voy a hablar nada más de terrenos, pues por ejemplo fijaos que tengo este, los árboles es igual, es coger los modelos por ejemplo que vienen en ese paquete y pintando se van añadiendo. 351 00:34:29,420 --> 00:34:50,360 En el caso del vídeo de Álvaro también se habla de esto. Es ir pintando el terreno, ir añadiendo detalles. Aquí también veréis en el tema 7 que es donde aparecen ciertas limitaciones que quizás nos pueden resultar llamativas. 352 00:34:50,360 --> 00:34:55,639 que es parece un juego como muy antiguo muy básico vale esto es porque estamos usando también el motor 353 00:34:55,639 --> 00:35:02,420 de render básico de unity en el tema 7 veréis que hay otros que permiten más detalle que permite una 354 00:35:02,420 --> 00:35:08,239 iluminación más avanzada permiten otro tipo de bueno de capacidades que bueno el tema 7 veréis 355 00:35:08,239 --> 00:35:12,800 y que va a hacer que todo se pueda ver mejor aparte de también lo que se explica en el tema 356 00:35:12,800 --> 00:35:14,579 lo relacionado con los 357 00:35:14,579 --> 00:35:16,719 settings 358 00:35:16,719 --> 00:35:19,360 de los ajustes de las 359 00:35:19,360 --> 00:35:21,739 calidades, etcétera, que se puede ir aumentando 360 00:35:21,739 --> 00:35:22,380 ¿vale? 361 00:35:22,699 --> 00:35:25,219 que así es como irán mejorando también 362 00:35:25,219 --> 00:35:27,500 vuestro aspecto visual 363 00:35:27,500 --> 00:35:28,760 ¿vale? cuando vayáis trabajando 364 00:35:28,760 --> 00:35:31,219 estamos nosotros viendo el built-in 365 00:35:31,219 --> 00:35:31,539 se llama 366 00:35:31,539 --> 00:35:35,179 el render pipeline 367 00:35:35,179 --> 00:35:37,159 el motor de render 368 00:35:37,159 --> 00:35:38,320 de Unity, básico 369 00:35:38,320 --> 00:35:40,900 porque para aprender a programar, pues tampoco queremos 370 00:35:40,900 --> 00:35:42,900 sobrecargar, pero ahora que ya estamos viendo aspectos 371 00:35:42,900 --> 00:35:44,780 más visuales, hay que tener en cuenta 372 00:35:44,780 --> 00:35:46,679 eso, que cuando creamos 373 00:35:46,679 --> 00:35:48,880 un nuevo proyecto 374 00:35:48,880 --> 00:35:50,920 en el Unity Hub 375 00:35:50,920 --> 00:35:52,699 va a haber 376 00:35:52,699 --> 00:35:54,559 aparte de este Build-in Render 377 00:35:54,559 --> 00:35:56,719 Pipeline, otros como el Universal 378 00:35:56,719 --> 00:35:57,960 el High Definition 379 00:35:57,960 --> 00:36:00,780 aparte de otros presets 380 00:36:00,780 --> 00:36:03,079 y el que se suele usar 381 00:36:03,079 --> 00:36:04,639 no es el que 382 00:36:04,639 --> 00:36:06,659 venimos usando nosotros 383 00:36:06,659 --> 00:36:08,820 pues se suele usar o el Universal 384 00:36:08,820 --> 00:36:10,639 o el High Definition que ya es para consolas 385 00:36:10,639 --> 00:36:12,619 de más última generación 386 00:36:12,619 --> 00:36:15,139 yo que sé, si se quiere hacer un juego para Playstation 5 387 00:36:15,139 --> 00:36:16,739 que se intente ser realista 388 00:36:16,739 --> 00:36:18,579 pues tendríamos que optar por este 389 00:36:18,579 --> 00:36:20,940 motor de render 390 00:36:20,940 --> 00:36:22,599 ¿vale? que a nivel de programación, etcétera 391 00:36:22,599 --> 00:36:24,440 se parece mucho, no es que cambie 392 00:36:24,440 --> 00:36:26,340 más allá, pero tiene otras opciones 393 00:36:26,340 --> 00:36:28,159 pues de posprocesamiento 394 00:36:28,159 --> 00:36:30,539 de iluminación 395 00:36:30,539 --> 00:36:32,800 ¿vale? pero bueno, eso es tema 7 396 00:36:32,800 --> 00:36:34,739 ¿vale? hasta aquí 397 00:36:34,739 --> 00:36:36,659 ¿qué tal? ¿me vais siguiendo? yo os digo, creo que es 398 00:36:36,659 --> 00:36:38,519 un poco lo que hablaba Álvaro, pero centrándome 399 00:36:38,519 --> 00:36:40,820 en partes que cuando se toca por primera vez 400 00:36:40,820 --> 00:36:42,639 como que suele costar más 401 00:36:42,639 --> 00:36:45,980 si no paso a hablar del 402 00:36:45,980 --> 00:36:48,000 Character Controller, por ejemplo 403 00:36:48,000 --> 00:36:49,199 pero decidme 404 00:36:49,199 --> 00:36:52,639 bien, vale, me seguís, ¿no? más o menos 405 00:36:52,639 --> 00:36:54,019 esto como todo 406 00:36:54,019 --> 00:36:56,239 es, pues por ejemplo 407 00:36:56,239 --> 00:36:58,900 hacer un terreno, sentarse, ir detallando 408 00:36:58,900 --> 00:37:00,559 partes, ir pintando, esto 409 00:37:00,559 --> 00:37:02,659 sí que es echarle un ratillo 410 00:37:02,659 --> 00:37:04,980 en el tema 411 00:37:04,980 --> 00:37:07,260 os dejo presets, os dejo paquetes 412 00:37:07,260 --> 00:37:22,699 Os dejo paquetes incluso para Universal Pipeline, para High Definition, ¿vale? Dependiendo de eso, pues también podéis ir probando con unos o con otros. Vale, dame un segundo y abro el tema para ir con él. 413 00:37:22,699 --> 00:37:42,260 Un segundito, que creo que lo tenía abierto por ahí, pero igual lo he cerrado. Aquí está. Vale, la parte de terreno, lo he dicho, aquí hay dos apartados de terreno, pues revisarlo y en medida de lo posible intentad ponerlo en juego para ver cómo funciona. 414 00:37:42,260 --> 00:37:46,539 Vale, importar y animar personajes 3D 415 00:37:46,539 --> 00:37:50,519 Os dejaba un vídeo en el apartado de Mixamo 416 00:37:50,519 --> 00:37:54,539 Hablando de un poco también de lo que habla esta sección entera 417 00:37:54,539 --> 00:37:58,039 No me voy a detener mucho, pero Mixamo es una forma muy útil 418 00:37:58,039 --> 00:38:02,400 De poder tener un modelo 3D de un personaje bípedo, eso sí 419 00:38:02,400 --> 00:38:05,800 Y que lo rigue de forma muy rápida 420 00:38:05,800 --> 00:38:08,940 Y que ya incluso rigueado podamos extraer distintas opciones 421 00:38:08,940 --> 00:38:28,539 No sé incluso si ya lo conocíais, por ejemplo, del módulo de animación. Porque claro, evidentemente tú puedes ir a un software de modelado 3D, de trabajo 3D en general, a un Maya, a un Blender, etc. y coger al personaje y crear clips de animación dentro de esos softwares y exportarlos y meterlos en Unity igual que se explica. 422 00:38:28,539 --> 00:38:52,840 Pero con Mixamo aparte de... es que es súper asequible porque puedes coger cualquier modelo de una persona, meterla aquí, te lo riguea y ya le puedes dar opciones. Hablo de ello en el vídeo. Cuando lo veáis entiendo que las dudas están ahí resueltas. Por eso no me voy a detener mucho a menos que me digáis. También habla de las opciones de importación de los modelos FBX, etc. 423 00:38:52,840 --> 00:38:58,420 ¿Alguna duda de esto? Porque si no voy a pasar al carácter controller 424 00:38:58,420 --> 00:39:09,539 Vale, carácter controller, esto sucede muchas veces y si alguno, lo vamos a usar de repaso esto también por si alguno todavía no 425 00:39:09,539 --> 00:39:21,199 Hay cosas como que no le cuadran, pero recordad que de momento hemos visto que hay dos formas principalmente de mover los elementos 426 00:39:21,199 --> 00:39:27,079 de nuestro escenario de nuestro juego a los personajes también vale que uno es a través 427 00:39:27,079 --> 00:39:32,400 de las cinemáticas voy a hacer aquí un cubo cualquiera para hablar de esto así con algo 428 00:39:32,400 --> 00:39:40,860 concreto a ver cubo dónde estás que estaba estaba escribiendo el nombre para lo voy a resetear 429 00:39:42,599 --> 00:39:48,300 aquí está bueno como él el terreno está un poco elevado precisamente por lo que he dicho de las 430 00:39:48,300 --> 00:39:53,340 elevaciones pues está aquí dame un segundo que lo voy a 431 00:39:53,340 --> 00:39:56,079 mover 432 00:39:58,579 --> 00:40:05,739 no aquí está el cubo vale una de las formas de moverlo es precisamente y 433 00:40:05,739 --> 00:40:13,159 porque no se ven los ritmos de de manejo 434 00:40:13,159 --> 00:40:19,619 a ver ff y tú tú tú aquí está vale 435 00:40:19,619 --> 00:40:39,059 Era básicamente un poco tal porque no había seleccionado ninguna herramienta. Entonces, kinemática. Bueno, pues con el método transform, el método rotate o nosotros a mano moviendo las coordenadas, quería decir el método translate, pero que todos son de la clase transform. 436 00:40:39,659 --> 00:40:58,840 Podemos ir moviendo el elemento de una forma, digamos, poco realista, en el sentido de que tú estás diciendo, vale, que cada segundo se vaya moviendo un metro a la derecha o una unidad hacia la derecha o tal, vale, y se va moviendo el personaje o esta caja, en este caso, siguiendo estas indicaciones, vale. 437 00:40:58,840 --> 00:41:00,860 esa es la forma que se llama 438 00:41:00,860 --> 00:41:02,760 kinemática, ¿vale? 439 00:41:02,780 --> 00:41:05,039 que la kinemática también, si ya lo unimos 440 00:41:05,039 --> 00:41:07,099 con lo que veíamos en el tema 5, es la forma 441 00:41:07,099 --> 00:41:08,960 en la que se puede animar con el panel 442 00:41:08,960 --> 00:41:10,960 de animation y decimos, vale 443 00:41:10,960 --> 00:41:12,820 que este cubo tenga animaciones 444 00:41:12,820 --> 00:41:15,099 vale, mover cubo, yo que sé 445 00:41:15,099 --> 00:41:16,900 mover cubo 446 00:41:16,900 --> 00:41:18,699 estoy aquí dejándolo en cualquier carpeta 447 00:41:18,699 --> 00:41:21,019 habría que buscarla en la que estamos creando las animaciones 448 00:41:21,019 --> 00:41:23,219 pero bueno, muy rápido, y aquí decir 449 00:41:23,219 --> 00:41:24,320 vale, animación 450 00:41:24,320 --> 00:41:26,900 de, pues como hacéis en 451 00:41:26,900 --> 00:41:33,360 da vinci o en maya vale pues vamos animando los parámetros de posición para 452 00:41:33,360 --> 00:41:39,380 que de aquí aquí se mueva añado el auto keyframe y que se mueva aquí que aquí 453 00:41:39,380 --> 00:41:45,659 suba y aquí vaya para acá vale yo reproduzco ahora esto 454 00:41:45,659 --> 00:41:52,599 dejó el auto keyframe y veis que hace ese movimiento en bucle vale acaba y se 455 00:41:52,599 --> 00:41:56,219 reproduce pero al final lo que estamos haciendo es en vez de controlar por 456 00:41:56,219 --> 00:41:58,179 código o arrastrando nosotros, estamos guardando 457 00:41:58,179 --> 00:42:00,219 unas posiciones en keyframes y se van generando 458 00:42:00,219 --> 00:42:02,380 estas interpolaciones. Esto es 459 00:42:02,380 --> 00:42:04,559 nada más y nada menos que cambiar 460 00:42:04,559 --> 00:42:07,880 el valor que tienen 461 00:42:07,880 --> 00:42:09,940 estos parámetros de transform. 462 00:42:10,659 --> 00:42:12,019 Nuevamente es kinemática 463 00:42:12,019 --> 00:42:13,539 porque estamos usando 464 00:42:13,539 --> 00:42:16,320 movimientos basados en 465 00:42:16,320 --> 00:42:18,380 coger las coordenadas del objeto 466 00:42:18,380 --> 00:42:19,360 en el software y 467 00:42:19,360 --> 00:42:22,260 moverlo o hacerlo más 468 00:42:22,260 --> 00:42:24,440 grande o rotarlo. También podríamos 469 00:42:24,440 --> 00:42:28,480 Evidentemente, añadir animaciones de propiedad de la rotación de la escala 470 00:42:28,480 --> 00:42:30,219 Aparte de otras muchas cosas 471 00:42:30,219 --> 00:42:34,380 Pero no deja de ser poner valores en los componentes 472 00:42:34,380 --> 00:42:38,420 Para que se vaya ajustando durante el tiempo a ese mismo valor 473 00:42:38,420 --> 00:42:41,940 Luego, la otra forma de mover los objetos 474 00:42:41,940 --> 00:42:44,239 Era a través de simulaciones físicas 475 00:42:44,239 --> 00:42:50,300 Para lo cual existía este componente llamado RigidBody 476 00:42:50,300 --> 00:42:56,500 que por defecto, cuando lo poníamos, ya tiene un comportamiento que no es mover por kinemáticas. 477 00:42:56,860 --> 00:43:00,840 A ver, uy, claro. Espera, lo voy a dejar aquí para que se vea. 478 00:43:01,480 --> 00:43:03,980 ¿Vale? La cámara del juego no está aquí, por eso no se va a ver, ¿vale? 479 00:43:04,000 --> 00:43:08,679 Pero como no estoy explicando, vais a ver que por defecto, lo primero que está pasando 480 00:43:08,679 --> 00:43:13,940 es que tenemos un animator con una animación ya hecha, ¿vale? 481 00:43:13,940 --> 00:43:34,579 Cuando movemos un objeto con animator o con kinemáticas, como estamos en todo momento diciéndole, tienes que estar en esta coordenada, está anulando el Rigipodi, ¿vale? Entonces, para esto lo que habría que hacer es quitar ese Rigipodi, ¿vale? 482 00:43:34,579 --> 00:43:51,679 Hay otra forma de actualizar que es en base a los tiempos físicos, que aunque lo pongamos, vamos a ver que está haciendo la misma animación, pero si algún objeto se posara, por ejemplo, en este y se moviera por físicas, se estaría coordinando con las físicas de este movimiento, ¿vale? 483 00:43:51,679 --> 00:44:13,500 Es decir, se estaría calculando el tiempo de físicas, ¿vale? Recordad esto del Fixed Update, los tiempos de refresco que pueda haber según queramos que sea lo más rápido posible, como cuando captamos los inputs, que para ello usaremos el Update, o el Fixed Update para las simulaciones físicas, que son tiempos con una escala temporal fija, ¿vale? 484 00:44:13,500 --> 00:44:21,800 Lo dicho, si estamos diciéndole las coordenadas, básicamente, aunque intente ejercer esa gravedad, se está moviendo con coordenadas. 485 00:44:21,960 --> 00:44:25,579 Entonces, en estos momentos son un poco incompatibles, ¿vale? 486 00:44:25,780 --> 00:44:30,179 Sí que se puede hacer, digamos, el truco, ¿vale? 487 00:44:30,260 --> 00:44:36,579 Que es quitar el Rigid Body que hemos metido aquí, nos volvemos a quedar como estábamos antes. 488 00:44:37,059 --> 00:44:39,780 Es decir, vale, esto tiene una animación de movimiento, imaginaos que es una mosca, ¿no? 489 00:44:39,780 --> 00:44:42,880 Que está ahí posándose, pero claro, yo creo que también le afecta la gravedad. 490 00:44:42,880 --> 00:44:49,699 En ese caso hay que ir derivando las simulaciones o los movimientos en distintos GameObjects. 491 00:44:49,739 --> 00:44:53,300 Este va a ser el de gravedad mosca, yo qué sé, ¿vale? 492 00:44:53,400 --> 00:44:55,480 Porque queremos que le afecte la gravedad. 493 00:44:55,739 --> 00:45:00,480 Si esto lo hacemos hijo, esto tendrá su animación siempre sobre sí mismo, ¿vale? 494 00:45:00,480 --> 00:45:06,340 Con su transform, pero aparte vamos a poder añadirle un RigidBody, ¿vale? 495 00:45:06,360 --> 00:45:11,880 Pero tiene que ser que el padre haga que herede a la hija, al hijo, a FF en este caso, 496 00:45:11,880 --> 00:45:12,780 No sé por qué se llama así 497 00:45:12,780 --> 00:45:15,019 Esa animación, entonces vais a ir viendo 498 00:45:15,019 --> 00:45:16,920 Que va haciendo ese movimiento 499 00:45:16,920 --> 00:45:19,219 A la medida que también se va cayendo 500 00:45:19,219 --> 00:45:21,340 ¿Vale? La gravedad está 501 00:45:21,340 --> 00:45:23,400 Es decir, se ha hundido y sigue bajando 502 00:45:23,400 --> 00:45:25,179 ¿Vale? Está haciendo esa oscilación 503 00:45:25,179 --> 00:45:27,500 De su position 504 00:45:27,500 --> 00:45:29,840 Pero a la vez también está cayendo porque tiene un rigibody 505 00:45:29,840 --> 00:45:31,739 Vale, lo dicho, el rigibody 506 00:45:31,739 --> 00:45:33,639 Nos sirve para movernos 507 00:45:33,639 --> 00:45:34,139 En 508 00:45:34,139 --> 00:45:38,340 En base a fuerzas físicas 509 00:45:38,340 --> 00:45:39,619 No solo esta gravedad 510 00:45:39,619 --> 00:45:41,579 Sino también esos adforce, esos adtorques 511 00:45:41,579 --> 00:45:47,519 que lo que hacen es simular movimientos pues de empujar de que tiene un arranque comportamientos 512 00:45:47,519 --> 00:45:55,079 físicos que normalmente son mucho más fidedignos con la realidad es decir se mueven tienen un 513 00:45:55,079 --> 00:45:59,460 acelerón este frenazo no es simplemente pues que se mueva y ya está por mucho que luego en 514 00:45:59,460 --> 00:46:05,039 kinemáticas con ese es muy tan que veíamos es muy tan el lerp que son que sirven para hacer 515 00:46:05,039 --> 00:46:09,860 interpolaciones, bueno, pues con suavizados, etcétera, entre valores, ¿vale? 516 00:46:09,860 --> 00:46:14,420 Por eso nos permite que estos movimientos kinemáticos, pues se vayan suavizando 517 00:46:14,420 --> 00:46:19,599 en el tiempo, etcétera, pero no deja de ser como cálculos, hechos sobre cálculos, 518 00:46:19,699 --> 00:46:24,199 no es un motor de simulación física como la que permite tener este Rigipodi, ¿vale? 519 00:46:24,719 --> 00:46:30,480 Y luego hay un tercer método, ¿vale? Que se llama Character Controller, ¿vale? 520 00:46:30,480 --> 00:46:35,659 mueve kinematics carácter controller carácter control de las secas como queráis esto de 521 00:46:35,659 --> 00:46:41,340 kinematics a mí ahora mismo me lía más que otra cosa carácter controller realmente son 522 00:46:41,340 --> 00:46:48,000 kinematics porque lo que vamos a ver es que no sé lo pone aquí si no me equivoco no se ve afectado 523 00:46:48,000 --> 00:46:53,960 por fuerzas físicas externas se moverá con los métodos específicos porque si ya tenemos una 524 00:46:53,960 --> 00:46:55,699 simulación de 525 00:46:55,699 --> 00:46:59,880 de fuerzas físicas y otra con la que podemos mover 526 00:46:59,880 --> 00:47:01,760 a través de parámetros, ¿por qué este 527 00:47:01,760 --> 00:47:03,860 carácter controller? ¿vale? lo pone 528 00:47:03,860 --> 00:47:06,000 aquí, pero sirve sobre todo 529 00:47:06,000 --> 00:47:07,739 porque si nos ciñéramos 530 00:47:07,739 --> 00:47:09,500 a comportamientos físicos 531 00:47:09,500 --> 00:47:11,099 igual que existe un terrain layer 532 00:47:11,099 --> 00:47:13,440 ¿vale? que sirve 533 00:47:13,440 --> 00:47:15,099 un terrain collider, disculpad 534 00:47:15,099 --> 00:47:17,320 para detectar estas 535 00:47:17,320 --> 00:47:18,739 estas 536 00:47:18,739 --> 00:47:21,599 a ver, que me pongo, voy a borrar ya esto 537 00:47:21,599 --> 00:47:23,340 para detectar 538 00:47:23,340 --> 00:47:53,199 A ver, aquí, ¿vale? Para detectar los relieves, etcétera, algo que con los colliders que conocíamos hasta ahora pues era bastante imposible. Existen inconvenientes cuando mueves un personaje como que, claro, yo estoy aquí en el escenario cuando estoy en un terreno y por eso aparece este componente en este punto y llega un momento que si yo me moviera por coordenadas, claro, todos estos relieves que tenemos, si vamos en línea recta, si lo moviéramos con kinemática como hemos visto, en cuanto hubiera un relieve, 539 00:47:53,199 --> 00:47:55,320 se chocaría y no avanzaría, y lo que queremos 540 00:47:55,320 --> 00:47:57,460 es que haga esto, que se vaya moviendo y vaya subiendo 541 00:47:57,460 --> 00:47:59,440 bajando, y si lo movemos por 542 00:47:59,440 --> 00:48:01,420 físicas también puede ocurrir que yo suelte esto 543 00:48:01,420 --> 00:48:03,460 y el personaje se cae, o que yo 544 00:48:03,460 --> 00:48:05,320 quiera seguir subiendo y si le aplico mucha fuerza 545 00:48:05,320 --> 00:48:07,320 sigue subiendo, y básicamente 546 00:48:07,320 --> 00:48:09,199 lo que queremos es que sea realista con 547 00:48:09,199 --> 00:48:11,260 el entorno y que si hay una cuesta muy 548 00:48:11,260 --> 00:48:12,940 empinada no la pueda subir, vale 549 00:48:12,940 --> 00:48:15,380 si os fijáis, este character controller 550 00:48:15,380 --> 00:48:17,320 añade, o 551 00:48:17,320 --> 00:48:19,159 mira, o por ejemplo, unos escalones 552 00:48:19,159 --> 00:48:21,519 si tuviéramos unos escalones, si vamos 553 00:48:21,519 --> 00:48:24,039 con fuerza física se tropezaría todo el rato 554 00:48:24,039 --> 00:48:25,860 pero nada está diciendo que puede subir, se está chocando 555 00:48:25,860 --> 00:48:27,420 con el escalón, intenta y no puede 556 00:48:27,420 --> 00:48:30,139 y con Transform 557 00:48:30,139 --> 00:48:32,059 aún más, esto nos 558 00:48:32,059 --> 00:48:33,980 permite, y por eso lo de carácter, para mover 559 00:48:33,980 --> 00:48:35,880 personajes, poner límites 560 00:48:35,880 --> 00:48:38,440 de rampas 561 00:48:38,440 --> 00:48:40,019 etcétera, estos son los grados 562 00:48:40,019 --> 00:48:41,420 en rampas, de hecho fijaos 563 00:48:41,420 --> 00:48:43,440 que si yo me voy moviendo por aquí 564 00:48:43,440 --> 00:48:45,980 y le digo que no puedo subir 565 00:48:45,980 --> 00:48:47,920 una rampa de más de 10 grados 566 00:48:47,920 --> 00:48:50,239 de inclinación, vais a ver que el chico 567 00:48:50,239 --> 00:48:52,079 Enseguida se va a quedar pillado 568 00:48:52,079 --> 00:48:53,099 Porque va a decir 569 00:48:53,099 --> 00:48:57,900 Ahí ya está empezando a tener problemas 570 00:48:57,900 --> 00:48:59,820 Si por encambio le digo 571 00:48:59,820 --> 00:49:01,539 Que puede subir hasta rampas de yo que sé 572 00:49:01,539 --> 00:49:03,699 De 50, ahora de pronto 573 00:49:03,699 --> 00:49:05,420 Puede subir mucho más, tiene más capacidades 574 00:49:05,420 --> 00:49:07,380 A lo mejor un animal puede subir 575 00:49:07,380 --> 00:49:09,460 Rampas muy empinadas, pues yo que sé 576 00:49:09,460 --> 00:49:11,219 Una cabra, ¿no? Pues sube 577 00:49:11,219 --> 00:49:13,960 Porque tiene una disposición que lo permite 578 00:49:13,960 --> 00:49:15,599 ¿Vale? Pero veis que con un parámetro 579 00:49:15,599 --> 00:49:17,639 Muy simple, que de otra forma sería 580 00:49:17,639 --> 00:49:19,320 Muy complejo de obtener, podemos hacerlo 581 00:49:19,320 --> 00:49:21,679 Los step offset, también son la distancia 582 00:49:21,679 --> 00:49:26,179 de un escalón que se encuentra que pueda subir de forma natural, ¿vale? 583 00:49:26,179 --> 00:49:31,500 Pues lo mismo, si, bueno, se ha quedado pillado aquí porque se ha quedado, a ver, 584 00:49:31,980 --> 00:49:35,739 claro, como le estoy cambiando los valores se vuelve loco, voy a reiniciar, ¿vale? 585 00:49:35,780 --> 00:49:42,559 Pues si tenemos aquí un escalón pequeñito, por ejemplo este, veis que lo sube, ¿vale? 586 00:49:42,639 --> 00:49:47,099 Si esto se moviera por física se estaría tropezando o directamente por kinemática 587 00:49:47,099 --> 00:49:50,000 dice un collider y no puedo, ¿vale? Esto no lo sube, ¿por qué? 588 00:49:50,000 --> 00:50:06,039 Porque el escalón es pequeño. Si yo le digo el escalón puede ser, aunque no sea realista, de 18. A ver. Incluso más. Igual esto como es una roca ahora no lo... Lo mismo, lo voy a cambiar antes de ponerlo en juego. Voy a darle mucho más. 589 00:50:06,039 --> 00:50:21,119 En principio, este elemento lo va a poder subir de una forma poco real. A ver, porque se me está volviendo un poco loquer. Esto es porque es demasiado valor. Vamos a ponerle uno más normal. 590 00:50:21,119 --> 00:50:43,170 A ver, ¿vale? Vais a ver que ahora ha subido ahí, que antes no podía subir, ¿vale? Le hemos subido el valor del escalón y ahora este personaje puede subir escaleras más amplias, ¿vale? Entonces, bueno, son opciones que de otra forma nos costaría mucho poder obtener, ¿vale? 591 00:50:43,170 --> 00:50:46,329 ¿qué ocurre? que como no se mueve 592 00:50:46,329 --> 00:50:48,230 ni por físicas, ni por 593 00:50:48,230 --> 00:50:50,429 kinemáticas 594 00:50:50,429 --> 00:50:51,170 como tal 595 00:50:51,170 --> 00:50:54,409 claro, para moverlo tiene sus propios métodos 596 00:50:54,409 --> 00:50:56,030 y es lo que os pone aquí explicando el tema 597 00:50:56,030 --> 00:50:58,010 el simple move y el move 598 00:50:58,010 --> 00:51:00,190 aparte de tener su propio sistema 599 00:51:00,190 --> 00:51:01,269 de colisiones 600 00:51:01,269 --> 00:51:04,230 y su propio 601 00:51:04,230 --> 00:51:05,530 detector de suelo 602 00:51:05,530 --> 00:51:07,170 ¿vale? recordad cuando 603 00:51:07,170 --> 00:51:08,909 hacíamos en la unidad 5 604 00:51:08,909 --> 00:51:11,730 que para detectar que podía saltar el personaje 605 00:51:11,730 --> 00:51:13,150 en la plataforma en el juego 2D 606 00:51:13,150 --> 00:51:16,010 Había que poner un parámetro 607 00:51:16,010 --> 00:51:18,050 Que cuando tocara el suelo con un 608 00:51:18,050 --> 00:51:19,969 Collider o con un 609 00:51:19,969 --> 00:51:21,349 Raycast hacia abajo, etc 610 00:51:21,349 --> 00:51:23,690 Que hubiera un parámetro llamado IsGrounded 611 00:51:23,690 --> 00:51:25,909 Que se activara para decir, vale, como está 612 00:51:25,909 --> 00:51:27,829 Posado, al dar a saltar 613 00:51:27,829 --> 00:51:29,989 Pues salta, porque si está en el aire no queremos que haga 614 00:51:29,989 --> 00:51:30,989 Doble salto 615 00:51:30,989 --> 00:51:33,849 El Character Controller por defecto 616 00:51:33,849 --> 00:51:34,449 Ya tiene 617 00:51:34,449 --> 00:51:37,909 Una función, vale, que es 618 00:51:37,909 --> 00:51:39,969 IsGrounded, que sirve para controlar 619 00:51:39,969 --> 00:51:41,550 Si el personaje es grounded 620 00:51:41,550 --> 00:51:43,789 pues podéis hacer el salto, por ejemplo. 621 00:51:45,190 --> 00:51:47,349 Luego, los métodos. 622 00:51:47,530 --> 00:51:51,349 Ahora vemos, por ejemplo, en la tarea que tengo yo resuelta 623 00:51:51,349 --> 00:51:54,829 cómo se usa, pero hay uno muy simple, muy fácil, 624 00:51:55,110 --> 00:51:57,349 que es el Simple Move, que sirve para desplazarse 625 00:51:57,349 --> 00:51:58,590 por ese terreno, por ejemplo. 626 00:51:59,250 --> 00:52:01,210 El Character Controller se puede usar con terrenos 627 00:52:01,210 --> 00:52:05,309 o con superficie lisa si ponemos, como hemos hecho hasta ahora, 628 00:52:05,889 --> 00:52:06,590 un plane. 629 00:52:07,750 --> 00:52:11,309 Pero bueno, también hay que valorar por qué se hace una cosa 630 00:52:11,309 --> 00:52:15,630 y otra. Si no tiene inclinación, ni hay escalones, pues igual es más fácil hacerlo como hasta ahora. 631 00:52:16,130 --> 00:52:22,510 Pero sí que el Simple Move tiene la capacidad de que en todo momento se le está aplicando la gravedad. 632 00:52:23,730 --> 00:52:29,110 Recordad, como no va en base a un Rigid Body, fijaos que este personaje lo estoy moviendo. 633 00:52:29,829 --> 00:52:35,630 Y no estoy, lo digo ya, no estoy moviendo con kinemáticas directamente, sino que estoy usando un Simple Move. 634 00:52:36,269 --> 00:52:38,929 Veis que aquí no hay un Rigid Body que esté afectando la gravedad. 635 00:52:38,929 --> 00:52:44,829 Y sin embargo, el personaje, voy a saltar, salta y vuelve a caer hasta que se posa. 636 00:52:45,130 --> 00:52:47,289 Y cuando se posa, de hecho, pone Is Grounded, ¿no? 637 00:52:47,849 --> 00:52:49,849 El parámetro Is Grounded se está activando. 638 00:52:49,969 --> 00:52:53,210 Aunque no lo veamos, si lo comprobamos por código, lo está haciendo, ¿vale? 639 00:52:54,090 --> 00:52:57,710 Este Simple Move aplica gravedad, ¿vale? 640 00:52:57,829 --> 00:53:01,489 Y está todo el rato aplicando gravedad hasta que se encuentra con algo y, pues, no sigue cayendo, claro. 641 00:53:01,929 --> 00:53:02,969 Pero tiene esta gravedad. 642 00:53:02,969 --> 00:53:06,949 Entonces es fácil recurrir a él 643 00:53:06,949 --> 00:53:08,829 Porque es simplemente decirle también una dirección 644 00:53:08,829 --> 00:53:10,710 Como veníamos haciendo con el Translate 645 00:53:10,710 --> 00:53:12,050 Y se mueve hacia ahí 646 00:53:12,050 --> 00:53:13,489 Ahora vemos la aplicación de esto 647 00:53:13,489 --> 00:53:16,150 Pero el problema es que como está aplicando todo el rato 648 00:53:16,150 --> 00:53:17,030 Gravedad 649 00:53:17,030 --> 00:53:20,989 Y también imagino 650 00:53:20,989 --> 00:53:22,590 Que porque lo quieren hacer simple 651 00:53:22,590 --> 00:53:23,469 Si no vas a hacer esto 652 00:53:23,469 --> 00:53:25,389 Si quieres añadir algún parámetro 653 00:53:25,389 --> 00:53:26,909 De que el personaje salte 654 00:53:26,909 --> 00:53:29,710 Este Simple Move inactiva eso 655 00:53:29,710 --> 00:53:31,869 De hecho, si miráis aquí 656 00:53:31,869 --> 00:53:34,510 la velocity, que es sinónimo 657 00:53:34,510 --> 00:53:36,590 de parámetro de velocidad, se refiere 658 00:53:36,590 --> 00:53:38,690 a la fuerza física 659 00:53:38,690 --> 00:53:40,610 que está teniendo un objeto, en este caso 660 00:53:40,610 --> 00:53:42,130 aunque no estemos aplicando físicas 661 00:53:42,130 --> 00:53:44,710 habla de ello como si fueran físicas 662 00:53:44,710 --> 00:53:46,769 pero dice, la fuerza 663 00:53:46,769 --> 00:53:48,650 que apliquemos en el eje y 664 00:53:48,650 --> 00:53:50,710 es ignorada, es decir, aunque le 665 00:53:50,710 --> 00:53:52,570 estemos dando en un vector 3 666 00:53:52,570 --> 00:53:54,130 que le pasemos a este simple move 667 00:53:54,130 --> 00:53:56,369 aunque le estemos pasando valores 668 00:53:56,369 --> 00:53:58,590 si lo estamos haciendo 669 00:53:58,590 --> 00:54:01,250 a través de un simple move, no lo va a aplicar 670 00:54:01,250 --> 00:54:22,070 ¿Vale? Si ya queremos aplicar esta, bueno, usando el método move para mover al personaje, no se aplica la gravedad de forma automática, ¿vale? Entonces vamos a poder saltar porque le vamos a poder añadir estas, entre comillas, fuerzas en el eje Y hacia arriba, pero también hay que añadirle la gravedad por código, porque como dice aquí, no se aplica gravedad de forma automática. 671 00:54:22,070 --> 00:54:33,349 Y bueno, lo pongo yo aquí, pero también lo pone aquí. Aquí en algún momento... Bueno, creo que ni siquiera lo dice porque se da por supuesto que no es señal de gravedad, porque no tiene un rigid body. 672 00:54:35,909 --> 00:54:51,610 Pero esto sí que permite, y de hecho si venís ya la documentación nos habla de cómo añadir este salto. Y os pone esta fórmula y esta... que os pongo yo también el tema de cómo se calcula a nivel físico la gravedad. 673 00:54:51,610 --> 00:54:56,690 Entonces hay que añadírselo un poco a mano. En el tema lo pongo y en la tarea también os hablo de ello. 674 00:54:57,590 --> 00:55:02,469 Entonces el SimpleMove sirve sobre todo si el personaje va a ir andando por una superficie, ya está. 675 00:55:03,449 --> 00:55:12,570 Sin embargo, si queremos que salte o que haya cambios en altura, que no vaya desplazándose por ese terreno pegado, habrá que usar el método Move. 676 00:55:13,710 --> 00:55:19,130 Aquí os hablo un poco de todo esto, de las características que tiene el CharacterController, que es lo que hay que tener en cuenta. 677 00:55:19,670 --> 00:55:25,929 Luego, que esas detecciones, aunque no tiene un collider tampoco, fijaos, que está detectando el suelo, aquí no hay ningún collider. 678 00:55:26,349 --> 00:55:32,510 El terreno sí tiene ese terrain collider, pero el propio Character Controller ya aporta esta cápsula, ¿vale? 679 00:55:32,510 --> 00:55:39,530 Que se ajusta con estos últimos parámetros, ¿vale? Pues el radio, tal, bueno, el radio más grande, más pequeño, que habrá que ajustar a nuestro personaje. 680 00:55:40,469 --> 00:55:45,409 Que es, pues como un Capsule Collider, pero que viene con este Character Controller, ¿vale? 681 00:55:45,409 --> 00:55:47,489 Siempre, porque se entiende que como va a ir 682 00:55:47,489 --> 00:55:49,349 Por un terreno, pues tiene que tener alguna 683 00:55:49,349 --> 00:55:50,949 Detección de ese 684 00:55:50,949 --> 00:55:52,030 Terreno, ¿vale? 685 00:55:54,190 --> 00:55:54,750 Importante 686 00:55:54,750 --> 00:55:57,489 Y lo pone aquí 687 00:55:57,489 --> 00:55:59,409 En vez de usar 688 00:55:59,409 --> 00:56:01,409 El onTriggerEnter, el onCollisionEnter 689 00:56:02,230 --> 00:56:02,730 Etcétera 690 00:56:02,730 --> 00:56:05,070 Para las colisiones que se detecten 691 00:56:05,070 --> 00:56:06,849 A través de un CharacterController 692 00:56:06,849 --> 00:56:09,289 Habrá que hacerlo con otro de sus 693 00:56:09,289 --> 00:56:10,909 Métodos propios, CharacterController. 694 00:56:11,530 --> 00:56:13,530 Este, onControllerColliderHit 695 00:56:13,530 --> 00:56:15,190 Un nombre un poco peleagudo 696 00:56:15,190 --> 00:56:18,190 Pero es como un collision enter 697 00:56:18,190 --> 00:56:20,989 Solo que se especifica de otro modo 698 00:56:20,989 --> 00:56:24,030 Es un poco similar el comportamiento 699 00:56:24,030 --> 00:56:26,909 Que sepáis que no es nada recomendable 700 00:56:26,909 --> 00:56:28,070 Añadir colliders 701 00:56:28,070 --> 00:56:31,809 A un objeto que tenga un 702 00:56:31,809 --> 00:56:35,150 Que tenga un carácter controller 703 00:56:35,150 --> 00:56:36,949 Porque va a haber conflictos 704 00:56:36,949 --> 00:56:39,309 Si que se puede añadir en cierto punto 705 00:56:39,309 --> 00:56:42,170 En algún objeto para usar por otro lado 706 00:56:42,170 --> 00:56:44,030 Si a lo mejor el brazo se choca con una pared 707 00:56:44,030 --> 00:56:46,150 y queremos añadirlo, yo que sé 708 00:56:46,150 --> 00:56:48,050 y le dibujamos aquí en otro hijo 709 00:56:48,050 --> 00:56:49,889 ¿vale? de Survivor en este caso 710 00:56:49,889 --> 00:56:51,869 pues otro collider 711 00:56:51,869 --> 00:56:54,050 y por código se pone en colisión enter 712 00:56:54,050 --> 00:56:56,050 por ejemplo, pues bueno, se puede hacer pero 713 00:56:56,050 --> 00:56:57,869 no es lo recomendable ¿vale? 714 00:56:57,909 --> 00:56:58,889 para eso viene con esta 715 00:56:58,889 --> 00:57:01,929 cápsula de detección, además tiene 716 00:57:01,929 --> 00:57:03,010 como forma de personaje 717 00:57:03,010 --> 00:57:06,010 bueno, no 718 00:57:06,010 --> 00:57:08,070 puede ser bípedo o no, porque claro, aquí también podemos 719 00:57:08,070 --> 00:57:08,829 cambiar los 720 00:57:08,829 --> 00:57:11,829 la altura y lo podemos achatar 721 00:57:11,829 --> 00:57:13,610 y hacerle más gordo así, que sea más 722 00:57:13,610 --> 00:57:15,650 un animal, pero bueno, es una cápsula 723 00:57:15,650 --> 00:57:17,610 mirando para arriba, así que 724 00:57:17,610 --> 00:57:19,329 está pensado para personas 725 00:57:19,329 --> 00:57:19,949 ¿vale? 726 00:57:22,789 --> 00:57:23,730 ¿hasta aquí qué tal? 727 00:57:29,210 --> 00:57:30,349 decidme algo, porque 728 00:57:30,349 --> 00:57:30,829 si no 729 00:57:30,829 --> 00:57:34,130 igual nadie me está escuchando, vale, bien 730 00:57:34,130 --> 00:57:36,070 más o menos, digo 731 00:57:36,070 --> 00:57:38,349 sí, espera, voy con micro 732 00:57:38,349 --> 00:57:41,780 vale, entiendo 733 00:57:41,780 --> 00:57:44,380 esto del control que se choca en propiedades 734 00:57:44,380 --> 00:57:46,579 entiendo que cuando probemos un poco lo veremos 735 00:57:46,579 --> 00:57:48,460 más claro, no me he perdido por aquí 736 00:57:48,460 --> 00:57:49,559 no, vale 737 00:57:49,559 --> 00:57:52,699 repito un poco esto 738 00:57:52,699 --> 00:57:53,960 el 739 00:57:53,960 --> 00:57:56,699 el character controller 740 00:57:56,699 --> 00:57:57,860 tú según lo activas 741 00:57:57,860 --> 00:58:00,800 voy a borrarlo 742 00:58:00,800 --> 00:58:03,019 remove component, veis que la cápsula 743 00:58:03,019 --> 00:58:04,860 va asociada a este 744 00:58:04,860 --> 00:58:06,820 character controller, igual que en 745 00:58:06,820 --> 00:58:07,920 otras prácticas 746 00:58:07,920 --> 00:58:09,960 y si no, revisar la tarea 747 00:58:09,960 --> 00:58:12,300 del tema 3 o el 5 748 00:58:12,300 --> 00:58:14,679 o el contenido, hablábamos de los colliders 749 00:58:14,679 --> 00:58:16,559 para que se detecte la colisión, porque 750 00:58:16,559 --> 00:58:18,579 hay que saber que este personaje 751 00:58:18,579 --> 00:58:36,840 Cuando toca el suelo tiene que haber algo que le diga hasta dónde llega el personaje. Ya hablamos que esto no va a nivel visual. Es decir, si yo le digo que esta cápsula esté más arriba, por mucho que veamos que el personaje tiene los pies aquí, donde va a detectar la colisión del suelo va a ser en esta cadera. 752 00:58:36,840 --> 00:59:00,420 Por eso yo cuando activo y se da la gravedad, se queda ahí, porque lo que está detectando es esa cápsula, ¿vale? Y yo ahora me muevo, pero claro, en todo momento, ahora estamos en arenas movidizas, porque para el juego ahora mismo esa cápsula es el collider, entonces es lo que está ajustando como el collider. 753 00:59:00,420 --> 00:59:19,300 Es exactamente lo mismo, solo que con otro método de ajustar lo que ya hablábamos cuando los colliders tradicionales que hemos hablado para las físicas. Si tenéis duda de eso, revisad el tema 3. Y es una adaptación de eso. 754 00:59:19,300 --> 00:59:20,460 solo que, vale 755 00:59:20,460 --> 00:59:22,460 vale, pues 756 00:59:22,460 --> 00:59:24,780 más cosas que me digáis, claro 757 00:59:24,780 --> 00:59:27,139 o si no os queda claro esto, lo digo que no 758 00:59:27,139 --> 00:59:29,199 quiero meterme mucho en esto porque ya hablamos de ello 759 00:59:29,199 --> 00:59:31,260 entonces, aunque no sea 760 00:59:31,260 --> 00:59:32,260 exactamente igual, es lo mismo 761 00:59:32,260 --> 00:59:34,039 alguna 762 00:59:34,039 --> 00:59:36,519 alguna cosa más, decidme 763 00:59:36,519 --> 00:59:39,500 si hay dudas y si no, continúo 764 00:59:39,500 --> 00:59:41,260 que lo siguiente 765 00:59:41,260 --> 00:59:42,920 va a ser, pues un poco ver como 766 00:59:42,920 --> 00:59:45,039 movemos a este personaje con el carácter controller 767 00:59:45,039 --> 00:59:46,960 y aparte de moverlo 768 00:59:46,960 --> 00:59:48,039 igual que dijimos 769 00:59:48,039 --> 00:59:50,820 no hay que asociar los movimientos del personaje 770 00:59:50,820 --> 00:59:52,840 en el espacio, que son este simple move 771 00:59:52,840 --> 00:59:54,280 etcétera, que se desplace el objeto 772 00:59:54,280 --> 00:59:56,400 con, que luego el personaje 773 00:59:56,400 --> 00:59:58,360 cuando se mueva para adelante 774 00:59:58,360 --> 01:00:00,380 haga el movimiento de moverse 775 01:00:00,380 --> 01:00:02,699 es decir, la animación de que mueve las piernas 776 01:00:02,699 --> 01:00:04,760 ¿vale? recordad que son 777 01:00:04,760 --> 01:00:06,480 dos cosas separadas, una cosa es mover 778 01:00:06,480 --> 01:00:08,579 el game object en sí y otra es ya 779 01:00:08,579 --> 01:00:10,139 la apariencia de esas animaciones 780 01:00:10,139 --> 01:00:12,900 en la UT5, en 2D 781 01:00:12,900 --> 01:00:14,699 lo veíamos muy claro porque esos sprites 782 01:00:14,699 --> 01:00:17,039 evidentemente eran dibujos que se movían 783 01:00:17,039 --> 01:00:18,880 y parecía que andaba, pero lo que 784 01:00:18,880 --> 01:00:20,960 lo desplazaba no era que el personaje pareciera 785 01:00:20,960 --> 01:00:22,280 que corriera, es 786 01:00:22,280 --> 01:00:24,739 que estábamos cambiándole la posición 787 01:00:24,739 --> 01:00:26,860 aquí sucede un poco lo mismo 788 01:00:26,860 --> 01:00:27,219 ¿vale? 789 01:00:31,329 --> 01:00:32,289 ¿sí? ¿sigo? 790 01:00:34,269 --> 01:00:34,750 venga 791 01:00:34,750 --> 01:00:36,929 si no me decís nada más, sigo 792 01:00:36,929 --> 01:00:39,030 vale, lo dicho 793 01:00:39,030 --> 01:00:42,989 aunque tengamos 794 01:00:42,989 --> 01:00:45,309 animaciones, etcétera 795 01:00:45,309 --> 01:00:46,489 esto tiene un pero, porque 796 01:00:46,489 --> 01:00:48,530 se dice en el tema, hay una 797 01:00:48,530 --> 01:00:51,929 También se dice en el tema y en el vídeo que subí yo 798 01:00:51,929 --> 01:00:53,429 Existe esto del root motion 799 01:00:53,429 --> 01:00:55,190 Porque bueno, por ejemplo, en Mixamo 800 01:00:55,190 --> 01:00:56,269 Creamos una animación 801 01:00:56,269 --> 01:00:58,769 Están las animaciones que en sí 802 01:00:58,769 --> 01:01:00,449 La propia animación ya tiene un avance 803 01:01:00,449 --> 01:01:02,190 O se eleva en el espacio 804 01:01:02,190 --> 01:01:04,909 Y eso normalmente no nos va a interesar 805 01:01:04,909 --> 01:01:06,889 Podría interesarnos en ciertos momentos 806 01:01:06,889 --> 01:01:08,829 No nos va a interesar que el personaje 807 01:01:08,829 --> 01:01:10,710 En su animación vaya andando hacia adelante 808 01:01:10,710 --> 01:01:12,389 Lo que nos interesa es que haga 809 01:01:12,389 --> 01:01:13,570 Como el 810 01:01:13,570 --> 01:01:16,409 Mira, de hecho, dame un segundo 811 01:01:16,409 --> 01:01:17,309 Y lo vemos 812 01:01:17,309 --> 01:01:19,690 en el propio vídeo que os 813 01:01:19,690 --> 01:01:23,769 dejaba, digo que no sé 814 01:01:23,769 --> 01:01:25,010 si, a ver, espera 815 01:01:25,010 --> 01:01:27,750 un segundico, que me tome claves 816 01:01:27,750 --> 01:01:34,730 vale, voy a 817 01:01:34,730 --> 01:01:36,250 buscarlo rápido, pero hay algún punto 818 01:01:36,250 --> 01:01:38,789 en el que se ve que el personaje 819 01:01:38,789 --> 01:01:39,889 en estas animaciones 820 01:01:39,889 --> 01:01:44,079 vamos a buscar en este andado 821 01:01:44,079 --> 01:01:45,719 a ver 822 01:01:45,719 --> 01:01:54,659 vale, veis, por ejemplo 823 01:01:54,659 --> 01:01:56,500 este salto, esto 824 01:01:56,500 --> 01:01:58,719 es una animación de salto que ya tiene un movimiento 825 01:01:58,719 --> 01:02:00,300 en sí, vale, con Unity 826 01:02:00,300 --> 01:02:06,980 Y en las opciones de Model, cuando importamos un FBX, se puede manipular y decir, 827 01:02:06,980 --> 01:02:10,820 aunque haga como que salta este gesto de las manos y como que se eleva, 828 01:02:11,019 --> 01:02:15,800 realmente el que suba o baje va a ser con las fuerzas que nosotros le demos mediante código. 829 01:02:16,300 --> 01:02:18,900 Se ve aún más claro si vamos a uno de caminado. 830 01:02:19,880 --> 01:02:27,239 Aquí, por ejemplo, veis que según cojo esta animación y la he puesto en la selección de Mixamo, 831 01:02:27,659 --> 01:02:29,760 el personaje, mirad la cuadrícula, está avanzando. 832 01:02:30,300 --> 01:02:34,119 ¿Qué ocurre? Que si nosotros le estamos añadiendo una fuerza para que ese GameObject, 833 01:02:34,219 --> 01:02:36,219 pensad en el GameObject como un cubo, ¿vale? 834 01:02:36,320 --> 01:02:39,340 Si ese GameObject se va desplazando porque le estamos dando fuerza para adelante 835 01:02:39,340 --> 01:02:43,000 y aparte la animación también anda para adelante, va a ser un doble movimiento. 836 01:02:43,519 --> 01:02:47,619 Por eso en el vídeo se dice que hay algunas de estas animaciones que pone InPlace, 837 01:02:47,980 --> 01:02:53,000 que cuando se pulsa, ¿vale? Lo que va a hacer, lo diré en breve, 838 01:02:53,500 --> 01:02:57,579 va a hacer como ese caminado, que luego nosotros diremos ve para adelante y te vas moviendo, 839 01:02:57,980 --> 01:03:00,000 pero en realidad la animación en sí no se está moviendo. 840 01:03:00,300 --> 01:03:14,920 Hacer la animación que se mueve, pero el desplazamiento ya se lo daremos nosotros luego. Eso es importante porque nos sirve para entender que se puede disociar o que se debe disociar esos dos conceptos, que el movimiento que nosotros proporcionamos y la apariencia de movimiento. 841 01:03:14,920 --> 01:03:17,460 si queremos esta 842 01:03:17,460 --> 01:03:19,559 plus run motion, que estas animaciones 843 01:03:19,559 --> 01:03:20,719 aunque lo hubiéramos 844 01:03:20,719 --> 01:03:23,079 exportado 845 01:03:23,079 --> 01:03:24,940 esta animación, este clip de animación 846 01:03:24,940 --> 01:03:28,039 con ese desplazamiento se puede ir ajustando 847 01:03:28,039 --> 01:03:29,440 con este run motion 848 01:03:29,440 --> 01:03:31,519 y otras opciones, se habla de ello en el vídeo 849 01:03:31,519 --> 01:03:35,360 que vamos teniendo aquí 850 01:03:35,360 --> 01:03:37,480 a ver, cuando nos vamos metiendo 851 01:03:37,480 --> 01:03:39,920 en las diferentes animaciones 852 01:03:39,920 --> 01:03:41,579 voy a abrir 853 01:03:41,579 --> 01:03:43,000 el animator controller 854 01:03:43,000 --> 01:03:46,920 animator controller 855 01:03:46,920 --> 01:03:48,559 y cojo al personaje 856 01:03:48,559 --> 01:03:50,739 y le digo por ejemplo el caminar 857 01:03:50,739 --> 01:03:53,039 vale, bueno justo ese 858 01:03:53,039 --> 01:03:53,659 no, pero 859 01:03:53,659 --> 01:03:55,880 y voy aquí 860 01:03:55,880 --> 01:04:03,480 y le digo, claro me tengo que meter 861 01:04:03,480 --> 01:04:05,099 la animación, espera, que la tengo que buscar 862 01:04:05,099 --> 01:04:07,400 vale, aquí son distintas animaciones 863 01:04:07,400 --> 01:04:09,659 que había del personaje 864 01:04:09,659 --> 01:04:10,400 vale 865 01:04:10,400 --> 01:04:13,260 el idle, vamos a ver el de caminado 866 01:04:13,260 --> 01:04:15,420 que creo que es este, y veis que aquí 867 01:04:15,420 --> 01:04:17,300 de hecho tiene el desplazamiento, aquí 868 01:04:17,300 --> 01:04:18,519 lo saqué con el 869 01:04:18,519 --> 01:04:20,380 desplazamiento, ¿vale? 870 01:04:21,199 --> 01:04:23,320 ¿Qué ocurre? Que luego aquí hay otras opciones 871 01:04:23,320 --> 01:04:25,300 que sirven, por ejemplo 872 01:04:25,300 --> 01:04:26,980 esto que pone, que vais a ver 873 01:04:26,980 --> 01:04:29,159 no el match, no el loop 874 01:04:29,159 --> 01:04:31,159 no se matchea, porque vais a ver que cuando llega al final 875 01:04:31,159 --> 01:04:33,519 bueno, aquí está justo 876 01:04:33,519 --> 01:04:35,559 que parece que sí, pero en realidad está dando un salto 877 01:04:35,559 --> 01:04:37,420 lo que pasa es que coincide para que 878 01:04:37,420 --> 01:04:39,380 parezca que no lo hay 879 01:04:39,380 --> 01:04:41,480 pero hay otros que puede ir avanzando y de pronto parece 880 01:04:41,480 --> 01:04:43,519 como que vuelve. Con esto lo que se puede 881 01:04:43,519 --> 01:04:44,400 ir haciendo es 882 01:04:44,400 --> 01:04:46,519 detener esos avances 883 01:04:46,519 --> 01:04:48,199 para que precisamente pasen esas cosas 884 01:04:48,199 --> 01:04:50,500 con estos ajustes se pueden ir 885 01:04:50,500 --> 01:04:52,300 adoptando estas 886 01:04:52,300 --> 01:04:53,980 modificaciones para 887 01:04:53,980 --> 01:04:56,280 controlar eso, ya os digo 888 01:04:56,280 --> 01:04:57,239 se explica en ese vídeo 889 01:04:57,239 --> 01:05:00,039 entonces, ¿qué es lo que hay que hacer? 890 01:05:00,579 --> 01:05:01,940 bajar esas animaciones 891 01:05:01,940 --> 01:05:04,519 e irlas incorporando en un animator controller 892 01:05:04,519 --> 01:05:06,460 del mismo modo que sucedió 893 01:05:06,460 --> 01:05:08,659 en el tema 5, con sus condiciones 894 01:05:08,659 --> 01:05:10,800 de por qué 895 01:05:10,800 --> 01:05:12,960 es decir, sus transiciones 896 01:05:12,960 --> 01:05:15,539 con condiciones para pasar de una a otra, etc. 897 01:05:15,900 --> 01:05:18,099 ¿Qué ocurre y qué es lo complicado aquí? 898 01:05:18,820 --> 01:05:22,340 Que lo que se añade en este caso es el concepto del blend tree, 899 01:05:23,119 --> 01:05:27,420 que lo que permite es unir varias animaciones, 900 01:05:28,039 --> 01:05:36,139 para que dependiendo de qué valor tiene uno de los parámetros 901 01:05:36,139 --> 01:05:39,460 que tenemos aquí preparados, haga una animación u otra. 902 01:05:39,460 --> 01:05:59,079 E ir también, fijaos, os lo voy a poner así para que lo veáis, lo voy a poner, esperad, voy a ponerlo mejor con el de caminado. Si yo me meto en un blend tree, esto también os dejo de aumentación, lo reproduzco, por defecto está parado, pero si yo le doy al walk, ¿vale? Veis que poco a poco va subiendo. 903 01:05:59,079 --> 01:06:12,699 Y este walk no deja de ser que se está conectando con el parámetro walk, ¿vale? Y se ha definido así para conectarlo. Entonces, si el parámetro walk es 0, ¿vale? Va a representar la animación de idle, que es el de estar quieto. 904 01:06:12,699 --> 01:06:15,139 si le vamos dando hacia adelante 905 01:06:15,139 --> 01:06:16,300 hará este caminado 906 01:06:16,300 --> 01:06:18,099 ¿qué conseguimos con un blend tree? 907 01:06:18,320 --> 01:06:20,280 que haya también valores intermedios 908 01:06:20,280 --> 01:06:21,719 ¿vale? fijaos 909 01:06:21,719 --> 01:06:24,000 que yo cuanto más 910 01:06:24,000 --> 01:06:25,980 voy 911 01:06:25,980 --> 01:06:29,099 dando valor a este walk 912 01:06:29,099 --> 01:06:29,659 ¿vale? 913 01:06:30,760 --> 01:06:32,699 va un poquito más rápido, un poquito más lento 914 01:06:32,699 --> 01:06:34,920 si tuviéramos un joystick, si lo ponemos a media 915 01:06:34,920 --> 01:06:36,500 hacia adelante, que es donde 916 01:06:36,500 --> 01:06:38,239 por ejemplo estamos poniendo el walk 917 01:06:38,239 --> 01:06:40,280 estamos dando un poquito hacia adelante 918 01:06:40,280 --> 01:06:41,960 irá así despacillo, ¿vale? 919 01:06:41,960 --> 01:06:46,059 Que también se podrá asociar con la fuerza del desplazamiento que tenga el personaje. 920 01:06:46,260 --> 01:06:48,920 Si lo pongo al máximo, irá al máximo. 921 01:06:49,960 --> 01:06:56,639 Si yo, por ejemplo, este de correr, no, este de ir hacia los lados, ¿vale? 922 01:06:56,639 --> 01:07:02,599 Un movimiento que se llama estrafe, si lo activo, aquí lo que hemos hecho es hacer un movimiento de dos ejes. 923 01:07:03,940 --> 01:07:09,960 Hemos conectado el parámetro estrafe para que pueda ir conectado a un axis del menos uno al uno. 924 01:07:09,960 --> 01:07:11,320 Ahora lo vemos todo por código. 925 01:07:11,960 --> 01:07:19,239 Lo ha cogido y lo ha asociado. ¿Qué hemos hecho aquí? Pues que podéis ir del menos uno al uno, siendo el valor cero el neutro. 926 01:07:19,519 --> 01:07:30,280 Entonces, si tuviéramos un joystick o las teclas A y D, que son Q y E, que son las que vamos a usar, si pulso la Q, este valor de estrafe pasará a ser menos uno. 927 01:07:31,179 --> 01:07:39,659 Activo. Y por tanto, lo que hará es moverse hacia este lateral. Si yo voy corrigiendo y soltando el joystick del lateral y lo paso hacia el otro lado, 928 01:07:39,659 --> 01:07:41,460 fijaos en el personaje como poco a poco 929 01:07:41,460 --> 01:07:43,019 se va moviendo hacia el otro lado 930 01:07:43,019 --> 01:07:45,739 entonces con esto lo que hacemos es 931 01:07:45,739 --> 01:07:47,320 combinar en este caso 932 01:07:47,320 --> 01:07:49,179 tres diferentes animaciones 933 01:07:49,179 --> 01:07:51,840 ¿vale? y según en qué 934 01:07:51,840 --> 01:07:53,400 punto de un axis 935 01:07:53,400 --> 01:07:55,719 estemos, pues se irá 936 01:07:55,719 --> 01:07:57,679 desplazando, cuando desplazando 937 01:07:57,679 --> 01:08:00,099 ojo, me refiero a la apariencia 938 01:08:00,099 --> 01:08:01,719 el movimiento que hace 939 01:08:01,719 --> 01:08:03,400 el personaje, hacia un lado 940 01:08:03,400 --> 01:08:05,559 ¿vale? y hará el estrafe, una animación que tengo 941 01:08:05,559 --> 01:08:07,639 que se llama estrafe left 942 01:08:07,639 --> 01:08:08,619 que es esta 943 01:08:08,619 --> 01:08:12,519 que es una, que es independiente de 944 01:08:12,519 --> 01:08:15,739 strafe right, que es la contraria, entonces con esto 945 01:08:15,739 --> 01:08:18,699 lo que podremos hacer es ir precisamente 946 01:08:18,699 --> 01:08:21,159 poniendo valores intermedios 947 01:08:21,159 --> 01:08:25,359 entonces se van añadiendo animaciones 948 01:08:25,359 --> 01:08:27,920 incluso podría poner una intermedia con otra animación 949 01:08:27,920 --> 01:08:31,319 aquí, imaginaos, añadir y decir que la animación 950 01:08:31,319 --> 01:08:34,039 de saltar, aunque no tuviera mucho sentido, es cuando esto esté 951 01:08:34,039 --> 01:08:37,020 ese valor valga menos 0.5 952 01:08:37,020 --> 01:09:03,380 Y ahora, es verdad que no va a encontrar nada porque no tiene ninguna animación, pero si aquí pusiera que es la de caminar hacia adelante. Fijaos, he añadido que cuando esté en cero, si os fijáis ahora lo que ha hecho es ponerme 1 o 2, si le dais a esta opción, lo que hacemos es que podemos ir ajustando dónde están las animaciones. 953 01:09:03,380 --> 01:09:11,500 Le voy a decir que esto sea caminado, sea del menos 0,5, que esté quieto en el 0. 954 01:09:11,800 --> 01:09:16,659 Estamos ajustando el valor que va a tener que coger de estrafe, del parámetro estrafe, para que lo coja. 955 01:09:16,979 --> 01:09:23,960 Como es un axis que va de menos 1 a 1, pues son valores todos que están en ese rango. 956 01:09:24,420 --> 01:09:27,439 Si está quieto al principio, y ahora no me está... 957 01:09:27,439 --> 01:09:28,119 Ah, es que está aquí. 958 01:09:28,380 --> 01:09:30,239 Esta línea roja es para simular, ¿vale? 959 01:09:30,239 --> 01:09:34,060 Si está en el 0, pues está en idle 960 01:09:34,060 --> 01:09:37,420 Si voy hacia la derecha, irá hacia el right 961 01:09:37,420 --> 01:09:45,880 Luego, aunque no tenga sentido, si voy a 0, menos 0,5 y muevo el joystick un poco hacia la izquierda 962 01:09:45,880 --> 01:09:47,659 En realidad lo que hace es caminar para adelante 963 01:09:47,659 --> 01:09:51,319 Y si ya voy al menos 1, irá hacia la izquierda 964 01:09:51,319 --> 01:09:56,840 Y vais a ver que, igual que se ve aquí representado, hará ese movimiento de lateral y un poco hacia adelante 965 01:09:56,840 --> 01:10:03,000 ¿Veis que está andando ahora, que va hacia adelante y aparte también de lado? 966 01:10:03,319 --> 01:10:08,840 Vale, pues es lo que podemos conseguir con los blend trees, combinar distintas animaciones. 967 01:10:09,779 --> 01:10:12,060 Borro este porque no me interesa y vuelvo a estar como antes. 968 01:10:12,739 --> 01:10:19,180 Y hay un blend tree de 1D, pero hay otros de tipo 2D. 969 01:10:19,479 --> 01:10:20,260 ¿Y esto qué significa? 970 01:10:20,640 --> 01:10:25,979 Que podemos coger, y hay distintos tipos, pero podemos coger dos parámetros distintos. 971 01:10:25,979 --> 01:10:32,319 Por ejemplo, el de caminar para adelante y el de estrafe, y combinarlos. 972 01:10:32,539 --> 01:10:34,979 Entonces, ahora lo que estamos haciendo es jugar con dos ejes. 973 01:10:35,500 --> 01:10:40,720 ¿Qué valor tiene en el eje X? Pues que sería walk, ¿no? Por eso está en esta columna. 974 01:10:41,340 --> 01:10:46,159 Bueno, sería más la Y, el walk, que es ir hacia adelante o hacia atrás, ¿no? Con el mando me refiero, el eje del mando. 975 01:10:48,310 --> 01:10:53,310 ¿Vale? Y yo digo que cuando vaya a la izquierda, que sea cuando el eje X esté en menos uno. 976 01:10:54,109 --> 01:10:56,430 Y cuando esté en uno, que vaya a la derecha. 977 01:10:56,430 --> 01:11:14,090 Y ahora, y que camine, y voy a añadir otro, que sea caminar, que es este que teníamos aquí, normal walk, que este sea cuando, aunque esté en cero aquí, cuando esté en uno, es decir, cuando esté hacia adelante. 978 01:11:14,090 --> 01:11:30,109 Y vais a ir viendo que se van representando los puntos de donde es cada uno de los, a ver, 0. Cada una de las posiciones de dos ejes, en vez de estar solo en un eje horizontal, los ejes hacia los que se pueden mover. 979 01:11:30,109 --> 01:11:32,670 aterrizándolo, si yo ahora le doy al play 980 01:11:32,670 --> 01:11:35,250 cuando ninguno de los dos ejes 981 01:11:35,250 --> 01:11:36,369 imaginaos que estos son 982 01:11:36,369 --> 01:11:38,329 el eje X e Y de un joystick 983 01:11:38,329 --> 01:11:41,250 si yo lo subo hacia arriba 984 01:11:41,250 --> 01:11:43,090 vais a ver que lo que va a hacer es ir andando 985 01:11:43,090 --> 01:11:45,430 hacia adelante, que es lo que estoy haciendo 986 01:11:45,430 --> 01:11:47,630 ¿por qué? 987 01:11:48,090 --> 01:11:48,989 porque está yendo 988 01:11:48,989 --> 01:11:50,689 hacia el 1 de la Y 989 01:11:50,689 --> 01:11:53,310 si yo voy yendo hacia la izquierda 990 01:11:53,310 --> 01:11:55,229 en el X, y vais viendo que va aumentando 991 01:11:55,229 --> 01:11:57,369 la área de influencia de cada animación 992 01:11:57,369 --> 01:11:58,510 que son estos puntos azules 993 01:11:58,510 --> 01:12:01,829 se irá reproduciendo uno a un otro. 994 01:12:02,210 --> 01:12:05,210 Ahora, por ejemplo, debería estar, aunque no lo está haciendo, 995 01:12:09,899 --> 01:12:12,939 no sé por qué no lo está haciendo, pero veis que ahora mueve en lateral. 996 01:12:13,539 --> 01:12:17,939 Si voy al centro se para y si voy hacia la derecha empieza a moverse hacia la derecha. 997 01:12:19,239 --> 01:12:21,640 Y entonces con eso podemos ir también interpolando. 998 01:12:21,640 --> 01:12:28,220 Aquí en este punto intermedio está aplicándose tanto a la vez el de avanzar como el de ir hacia la derecha. 999 01:12:28,220 --> 01:12:41,600 Y con esto podemos ir añadiendo muchas animaciones para que, por ejemplo, coordinando dos operaciones, es decir, dos axis, podamos tener esas animaciones. 1000 01:12:41,720 --> 01:12:53,600 Hay distintos tipos también de incorporar esto, pero bueno, básicamente cuando son 2D se refiere a eso, que podemos combinar dos axes para combinar dos tipos de animaciones. 1001 01:12:53,600 --> 01:12:57,460 Eso es muy útil para, por ejemplo, este movimiento que tenemos aquí del personaje. 1002 01:12:57,460 --> 01:12:59,939 si yo le doy play, y he deshecho 1003 01:12:59,939 --> 01:13:01,899 todo lo que he hecho, que no sé si 1004 01:13:01,899 --> 01:13:03,899 será suficiente, si yo le doy a play 1005 01:13:03,899 --> 01:13:05,699 si yo avanzo 1006 01:13:05,699 --> 01:13:08,020 el personaje se anima 1007 01:13:08,020 --> 01:13:09,539 como de avanzar, si voy para atrás 1008 01:13:09,539 --> 01:13:11,199 hace la animación de andar para atrás 1009 01:13:11,199 --> 01:13:14,260 si doy a los laterales, hace estas animaciones 1010 01:13:14,260 --> 01:13:15,920 se podrían suavizar más 1011 01:13:15,920 --> 01:13:17,520 que tardar el arranque, pero bueno 1012 01:13:17,520 --> 01:13:19,899 eso sería con el control de animator 1013 01:13:19,899 --> 01:13:22,220 con los nodos, que la condición tardará un poco más 1014 01:13:22,220 --> 01:13:23,500 pero fijaos 1015 01:13:23,500 --> 01:13:25,399 y si ya, vale, que 1016 01:13:25,399 --> 01:13:27,420 estoy combinando con un solo 1017 01:13:27,420 --> 01:13:29,460 Blend Tree, todas las operaciones 1018 01:13:29,460 --> 01:13:31,539 de caminado, incluso caminar 1019 01:13:31,539 --> 01:13:33,460 cruzado, luego ya 1020 01:13:33,460 --> 01:13:34,100 rota, etc. 1021 01:13:35,539 --> 01:13:37,239 Eso se consigue con esos Blend Trees. 1022 01:13:38,979 --> 01:13:39,520 Para crear un 1023 01:13:39,520 --> 01:13:41,539 Blend Tree, lo mismo, podría ir 1024 01:13:41,539 --> 01:13:43,300 paso a paso, pero lo pone en el tema, pero es 1025 01:13:43,300 --> 01:13:44,699 clic derecho, crear un estado 1026 01:13:44,699 --> 01:13:47,460 y un Blend Tree, y luego ya se ir incorporando 1027 01:13:47,460 --> 01:13:48,880 los distintos 1028 01:13:48,880 --> 01:13:51,800 los distintos clips de animación. 1029 01:13:52,680 --> 01:13:53,260 ¿Qué tal hasta aquí? 1030 01:13:56,270 --> 01:13:57,470 Esto es ponerse a probar, 1031 01:13:57,470 --> 01:13:59,430 Porque por mucho que os lo explique 1032 01:13:59,430 --> 01:14:00,310 Hasta que no os sentéis 1033 01:14:00,310 --> 01:14:02,590 También es complicado, pero más o menos seguís 1034 01:14:02,590 --> 01:14:04,350 Qué es lo que conseguimos 1035 01:14:04,350 --> 01:14:10,729 Sí se entiende, perfecto 1036 01:14:10,729 --> 01:14:11,270 Esto es 1037 01:14:11,270 --> 01:14:14,689 Los parámetros, recordad 1038 01:14:14,689 --> 01:14:16,130 Por si acaso 1039 01:14:16,130 --> 01:14:18,750 Estamos en el AnimatorController, como en la unidad 5 1040 01:14:18,750 --> 01:14:19,989 Los parámetros 1041 01:14:19,989 --> 01:14:22,989 Para acceder a ellos y poder cambiar 1042 01:14:22,989 --> 01:14:25,090 Esos parámetros del AnimatorController 1043 01:14:25,090 --> 01:14:26,630 Habrá que crear 1044 01:14:26,630 --> 01:14:28,829 Una variable de tipo Animator 1045 01:14:28,829 --> 01:14:29,729 ¿Sí? 1046 01:14:29,729 --> 01:14:32,409 que luego habrá que inicializar 1047 01:14:32,409 --> 01:14:34,109 aquí, que capturar el componente 1048 01:14:34,109 --> 01:14:35,890 como ya hemos visto con ese getComponent 1049 01:14:35,890 --> 01:14:37,369 cuando queremos 1050 01:14:37,369 --> 01:14:40,229 esta lógica ya la deberíamos 1051 01:14:40,229 --> 01:14:42,010 tener, pero bueno, sé que van apareciendo nuevos 1052 01:14:42,010 --> 01:14:44,069 ingredientes, para acceder a 1053 01:14:44,069 --> 01:14:46,270 las propiedades, a los métodos 1054 01:14:46,270 --> 01:14:47,289 de CharacterController 1055 01:14:47,289 --> 01:14:50,189 habrá que declarar la variable CharacterController 1056 01:14:50,189 --> 01:14:51,829 darle el nombre que nosotros queramos 1057 01:14:51,829 --> 01:14:53,529 y luego capturarlo 1058 01:14:53,529 --> 01:14:56,210 para poder aplicar 1059 01:14:56,210 --> 01:14:57,949 cambios 1060 01:14:57,949 --> 01:15:00,869 a ese carácter controller específico 1061 01:15:00,869 --> 01:15:02,289 ¿vale? que tenemos en este personaje 1062 01:15:02,289 --> 01:15:04,270 porque si no, no sabe 1063 01:15:04,270 --> 01:15:06,090 qué valor cambiar, puede haber varios 1064 01:15:06,090 --> 01:15:08,510 carácter controllers 1065 01:15:08,510 --> 01:15:09,850 en distintos game outers ¿vale? 1066 01:15:09,909 --> 01:15:12,050 aquí, como estamos diciendo que coja 1067 01:15:12,050 --> 01:15:13,930 no pone nada en concreto, está cogiendo 1068 01:15:13,930 --> 01:15:16,590 el componente carácter controller 1069 01:15:16,590 --> 01:15:17,329 del mismo 1070 01:15:17,329 --> 01:15:20,250 personaje que tenga aplicado este script 1071 01:15:20,250 --> 01:15:22,409 ¿vale? y ya con CC 1072 01:15:22,409 --> 01:15:24,250 pues por ejemplo es, fijaos 1073 01:15:24,250 --> 01:15:26,130 que siempre que ponga, bueno mira, un is grounded 1074 01:15:26,130 --> 01:15:28,729 para detectar que se puede saltar 1075 01:15:28,729 --> 01:15:30,630 ¿vale? pero siempre que ponga 1076 01:15:30,630 --> 01:15:32,210 algo de simple move o move 1077 01:15:32,210 --> 01:15:34,109 como aquí 1078 01:15:34,109 --> 01:15:36,149 ¿vale? va a ser 1079 01:15:36,149 --> 01:15:37,930 cc.move ¿vale? porque es una 1080 01:15:37,930 --> 01:15:40,789 un método de simple move y de move 1081 01:15:40,789 --> 01:15:42,550 esto es un poco 1082 01:15:42,550 --> 01:15:44,189 lo que ya hemos venido viendo 1083 01:15:44,189 --> 01:15:46,550 igual que cuando queremos cambiar parámetros 1084 01:15:46,550 --> 01:15:48,630 del animator pues hay que tener 1085 01:15:48,630 --> 01:15:50,670 un animator preparado 1086 01:15:50,670 --> 01:15:52,550 ¿vale? la variable animator 1087 01:15:52,550 --> 01:15:54,609 capturarla 1088 01:15:54,609 --> 01:15:56,270 luego con el getComponent, aquí está 1089 01:15:56,270 --> 01:15:58,609 coge la misma del objeto, por eso no busca 1090 01:15:58,609 --> 01:16:00,850 en otros objetos, con un findObject 1091 01:16:00,850 --> 01:16:02,590 que era otro de los métodos que 1092 01:16:02,590 --> 01:16:03,949 en algún momento os he dejado 1093 01:16:03,949 --> 01:16:06,550 y siempre que queramos cambiar 1094 01:16:06,550 --> 01:16:08,770 alguno de estos parámetros, un float 1095 01:16:08,770 --> 01:16:10,270 etcétera, estos parámetros 1096 01:16:10,270 --> 01:16:11,489 walk is grounded 1097 01:16:11,489 --> 01:16:14,590 esto ya está dado, pero walk is grounded 1098 01:16:14,590 --> 01:16:16,529 lo vamos a cambiar porque estamos cambiando 1099 01:16:16,529 --> 01:16:18,050 los parámetros 1100 01:16:18,050 --> 01:16:19,649 del animator 1101 01:16:19,649 --> 01:16:21,010 ¿vale? 1102 01:16:22,390 --> 01:16:24,430 entonces, descomponiendo 1103 01:16:24,430 --> 01:16:26,609 un poco... Sí, ¿no? Esto también 1104 01:16:26,609 --> 01:16:28,270 entiendo que más o menos me seguís. 1105 01:16:30,850 --> 01:16:31,109 Pues 1106 01:16:31,109 --> 01:16:33,770 descomponiendo un poco esto, 1107 01:16:35,149 --> 01:16:36,029 para este personaje 1108 01:16:36,029 --> 01:16:38,310 si se seguía todo en la 1109 01:16:38,310 --> 01:16:40,750 tarea, hay varios movimientos como el de desenfundar 1110 01:16:40,750 --> 01:16:42,329 o como el de 1111 01:16:42,329 --> 01:16:44,750 el de saltar 1112 01:16:44,750 --> 01:16:46,409 incluso, que si se hacen 1113 01:16:46,409 --> 01:16:48,250 pues nos hace 1114 01:16:48,250 --> 01:16:50,109 nos lleva a la reflexión de 1115 01:16:50,109 --> 01:16:52,010 qué método de 1116 01:16:52,010 --> 01:16:54,550 carácter control hay que usar, move o simple move. 1117 01:16:54,550 --> 01:16:56,989 pues para este personaje, si queremos que salte 1118 01:16:56,989 --> 01:16:58,930 evidentemente hay que usar un move 1119 01:16:58,930 --> 01:17:00,989 porque ya hemos dicho que es el que 1120 01:17:00,989 --> 01:17:02,630 sí que tiene en cuenta 1121 01:17:02,630 --> 01:17:05,210 que apliquemos, entre comillas 1122 01:17:05,210 --> 01:17:06,930 fuerzas al eje Y, que es el 1123 01:17:06,930 --> 01:17:08,250 que nos importa para el salto 1124 01:17:08,250 --> 01:17:10,369 si no, podríamos usar 1125 01:17:10,369 --> 01:17:12,850 tanto el move como el simple move, pero lo lógico 1126 01:17:12,850 --> 01:17:14,930 sería usar el simple move que ya añade 1127 01:17:14,930 --> 01:17:17,050 la gravedad y bueno, tiene otras ventajas 1128 01:17:17,050 --> 01:17:18,170 en este caso 1129 01:17:18,170 --> 01:17:21,210 se ha intentado que salte el personaje, por eso vais a ver 1130 01:17:21,210 --> 01:17:23,149 que cuando vamos aquí 1131 01:17:23,149 --> 01:17:26,890 Y al final, ahora también voy a ir por partes, se usa este move, ¿vale? 1132 01:17:27,949 --> 01:17:29,670 Entonces, vamos a ver. 1133 01:17:30,609 --> 01:17:36,350 Como en otras ocasiones lo que se hace lo primero, aparte de capturar en el start todos los componentes 1134 01:17:36,350 --> 01:17:41,210 y preparar las fuerzas que vamos a ir aplicando, variables, para luego ir ajustándolas, 1135 01:17:42,010 --> 01:17:46,529 en el update lo que habrá que hacer es recoger las interacciones. 1136 01:17:46,829 --> 01:17:50,529 En este caso, el personaje vamos a querer que haga tres cosas principalmente. 1137 01:17:50,529 --> 01:18:10,029 Vamos a querer que haga más, pero basadas en axis 3. Una es que cuando demos a la W o a la S, ¿vale? Estoy hablando de la convención que hemos hablado para el movimiento. Al dar a la W o a la S, pues que vaya hacia adelante o hacia atrás, ¿vale? De 1 hacia adelante, menos 1 hacia atrás, ¿no? 1138 01:18:10,029 --> 01:18:12,229 Ese es el axis que vamos a llamar vertical 1139 01:18:12,229 --> 01:18:14,050 Que cuando hemos hablado del Benetree 1140 01:18:14,050 --> 01:18:15,869 Era el axis que ponía 1141 01:18:15,869 --> 01:18:17,909 POSI, realmente, ¿vale? 1142 01:18:18,369 --> 01:18:18,850 Vertical 1143 01:18:18,850 --> 01:18:21,189 Realmente el personaje se mueve en horizontal 1144 01:18:21,189 --> 01:18:23,909 Pero lo estamos uniendo con la lógica de nuestro joystick 1145 01:18:23,909 --> 01:18:24,729 Es el eje I 1146 01:18:24,729 --> 01:18:26,310 Luego va a haber otro 1147 01:18:26,310 --> 01:18:29,449 Que lo que vamos a querer hacer es que rote 1148 01:18:29,449 --> 01:18:32,029 Este personaje 1149 01:18:32,029 --> 01:18:33,470 Va a moverse 1150 01:18:33,470 --> 01:18:35,310 Lateralmente de dos formas 1151 01:18:35,310 --> 01:18:36,909 Una rotando y otra 1152 01:18:36,909 --> 01:18:39,130 Haciendo este estrafe que es caminar hacia los lados 1153 01:18:39,130 --> 01:19:01,840 Que no es exactamente lo mismo, ¿vale? Y aquí el rotate yo lo voy a conectar luego con la cámara, bueno, eso voy a hablar después, ¿vale? Pero queremos otro axis que cuando le demos a la A y a la D, y vamos a verlo en el juego, un axis que W y S hacia adelante y hacia atrás. 1154 01:19:01,840 --> 01:19:05,000 cuando le dé a la A y a la D lo que hace es rotar 1155 01:19:05,000 --> 01:19:06,779 ¿vale? realmente no va a ser un desplazamiento 1156 01:19:06,779 --> 01:19:08,600 de posición, va a ser de rotación 1157 01:19:08,600 --> 01:19:10,340 y por eso lo vamos a hacer de hecho con un rotate 1158 01:19:10,340 --> 01:19:12,779 pero luego hay otro que, claro, cuando va 1159 01:19:12,779 --> 01:19:14,760 para adelante va a ser en relación a donde mira 1160 01:19:14,760 --> 01:19:16,680 el personaje, pero hay otro que nos puede 1161 01:19:16,680 --> 01:19:18,279 interesar que es este estrafe que es 1162 01:19:18,279 --> 01:19:20,739 hacia donde esté mirando 1163 01:19:20,739 --> 01:19:22,500 ¿vale? pero que se desplace en lateral 1164 01:19:22,500 --> 01:19:24,859 ¿vale? no que haya que rotar y luego andar 1165 01:19:24,859 --> 01:19:26,600 para que se mueva hacia ahí, sino que directamente 1166 01:19:26,600 --> 01:19:28,220 se pueden hacer estas 1167 01:19:28,220 --> 01:19:30,640 rotaciones ¿vale? 1168 01:19:30,640 --> 01:19:33,399 Pues para eso hacemos otro axis, que es el de estrafe. 1169 01:19:34,579 --> 01:19:41,119 Otras opciones que se ponía, pues la de correr, con el shift izquierdo de la tecla. 1170 01:19:41,300 --> 01:19:48,199 Bueno, pues si pulsamos y mantenemos pulsada esta tecla de shift, lo primero es que el booleano, ¿vale? 1171 01:19:48,340 --> 01:19:53,180 Es decir, booleano, recordad que con booleano nos referimos a que puede ser true o false. 1172 01:19:53,180 --> 01:19:59,840 Pues si está true, ¿vale? Tenemos la condición perfecta para que pase de caminar a correr. 1173 01:20:00,640 --> 01:20:22,960 Para que haga la animación de correr. Luego, evidentemente, cuando pulsemos left shift, habrá un punto que al moverlo, cuando se pulsa esa tecla, hemos hecho, se podría decir aquí también, que cuando se pulsa la tecla, en la condición de pulsar la tecla left shift, 1174 01:20:22,960 --> 01:20:31,060 Pues que a lo mejor la speed, no sé si hay una variable llamada speed, supongo que sí, que pasara a ser el doble o otro valor o 100, porque es más rápido. 1175 01:20:31,659 --> 01:20:42,079 Pero recordad también en el tema anterior, y sería válido, se podría hacer así, pero también se puede hacer, según la tarea anterior, es detectar si en este momento, 1176 01:20:42,079 --> 01:20:45,079 cuando está moviendo el personaje 1177 01:20:45,079 --> 01:20:46,899 detecta que está, por eso no es setBull 1178 01:20:46,899 --> 01:20:49,319 getBull, en el nodo de correr 1179 01:20:49,319 --> 01:20:50,840 ¿vale? es decir, si está 1180 01:20:50,840 --> 01:20:52,319 activado el nodo de correr 1181 01:20:52,319 --> 01:20:55,260 y es true este parámetro 1182 01:20:55,260 --> 01:20:56,699 ¿vale? entonces 1183 01:20:56,699 --> 01:20:59,180 y aparte se está moviendo un poco, que la velocidad 1184 01:20:59,180 --> 01:21:01,020 sea el doble, por ejemplo 1185 01:21:01,020 --> 01:21:03,119 aquí es lo que está diciendo, si no está detectando 1186 01:21:03,119 --> 01:21:05,079 que está ahí, será que es que no hemos pulsado 1187 01:21:05,079 --> 01:21:06,680 este leftShift 1188 01:21:06,680 --> 01:21:08,760 ¿vale? entonces pues irá normal 1189 01:21:08,760 --> 01:21:10,819 ya se, esta condición la pasa 1190 01:21:10,819 --> 01:21:12,239 y pasa a la siguiente, ¿vale? 1191 01:21:12,460 --> 01:21:14,979 Que es importante ya ir poniendo en juego 1192 01:21:14,979 --> 01:21:18,020 las distintas herramientas que tenemos. 1193 01:21:18,260 --> 01:21:20,779 Se puede detectar que un personaje quiere correr 1194 01:21:20,779 --> 01:21:22,239 porque pulsamos la tecla Shift 1195 01:21:22,239 --> 01:21:26,000 y luego más opciones derivadas de ese correr 1196 01:21:26,000 --> 01:21:27,340 no tienen por qué ser con el Left Shift. 1197 01:21:27,479 --> 01:21:30,380 Puede ser porque la anterior consecuencia del Left Shift, 1198 01:21:31,159 --> 01:21:32,920 que es que el Run pasa a ser True, 1199 01:21:33,380 --> 01:21:35,720 pues ahora es la condición de otra historia 1200 01:21:35,720 --> 01:21:36,699 que estamos usando, ¿vale? 1201 01:21:36,699 --> 01:21:55,000 Vale, tenemos, perdonad, en el update, aparte de que este animator va a aplicar la condición de move, pues va a variar este parámetro para que sea mayor o menor. 1202 01:21:55,000 --> 01:22:12,060 Por ejemplo, para activar ese blend tree del que hablábamos antes, va a estar completamente el valor del float que tenemos aquí, va a estar completamente vinculado, es decir, este float que tenemos aquí va a ser mayor o menor, va a ir cogiendo valores intermedios si tenemos un joystick. 1203 01:22:12,060 --> 01:22:14,239 por ejemplo, nuevamente 1204 01:22:14,239 --> 01:22:15,300 nos serviría para un blend tree 1205 01:22:15,300 --> 01:22:17,819 se va a vincular a 1206 01:22:17,819 --> 01:22:22,079 a la variable que hemos llamado 1207 01:22:22,079 --> 01:22:24,260 move, que está conectada con ese axis 1208 01:22:24,260 --> 01:22:26,199 vertical, ¿vale? pues con un joystick 1209 01:22:26,199 --> 01:22:28,279 lo mismo, con la tecla WS 1210 01:22:28,279 --> 01:22:30,260 no va a haber, va a ir 1211 01:22:30,260 --> 01:22:31,880 de 0 a 1 y de 0 a menos 1 1212 01:22:31,880 --> 01:22:34,159 de manera casi directa 1213 01:22:34,159 --> 01:22:36,380 pero con un joystick sí que hay valores intermedios 1214 01:22:36,380 --> 01:22:38,340 entonces con esto 1215 01:22:38,340 --> 01:22:40,060 es con lo que podemos ir ajustando el 1216 01:22:40,060 --> 01:22:41,899 animator para que eso, para que camine 1217 01:22:41,899 --> 01:22:43,800 haga la apariencia de caminar más o menos 1218 01:22:43,800 --> 01:22:45,859 y luego evidentemente este move 1219 01:22:45,859 --> 01:22:48,100 en cierto momento 1220 01:22:48,100 --> 01:22:50,039 lo vamos a aplicar en esta 1221 01:22:50,039 --> 01:22:51,479 en este método que estamos 1222 01:22:51,479 --> 01:22:53,079 creado yo también, ¿vale? 1223 01:22:53,800 --> 01:22:55,840 que es, si no estás apuntando, que es otra 1224 01:22:55,840 --> 01:22:56,840 de las opciones 1225 01:22:56,840 --> 01:22:59,439 de las opciones 1226 01:22:59,439 --> 01:23:01,899 de los movimientos opcionales que se os ponía 1227 01:23:01,899 --> 01:23:03,159 que es cuando pulse la tecla 1228 01:23:03,159 --> 01:23:05,539 del control, ¿vale? el control 1229 01:23:05,539 --> 01:23:06,520 del teclado, vaya 1230 01:23:06,520 --> 01:23:10,000 que pase a hacer una animación como de que saca una pistola 1231 01:23:10,000 --> 01:23:10,960 y apunta, y ahí 1232 01:23:10,960 --> 01:23:13,199 la dinámica que hay ahora mismo 1233 01:23:13,199 --> 01:23:15,060 os lo enseño, es que 1234 01:23:15,060 --> 01:23:17,359 mientras se está apuntando esté quieto, que esté como 1235 01:23:17,359 --> 01:23:19,420 en estado de alerta, de apuntar 1236 01:23:19,420 --> 01:23:20,739 un segundo 1237 01:23:20,739 --> 01:23:23,579 vale, yo me voy moviendo 1238 01:23:23,579 --> 01:23:25,539 etcétera, si doy a la tecla control 1239 01:23:25,539 --> 01:23:27,260 de pronto, aparte de cambiar la cámara 1240 01:23:27,260 --> 01:23:29,560 con cinemachine a otro, sí que se puede rotar 1241 01:23:29,560 --> 01:23:31,520 pero, aunque dé a la 1242 01:23:31,520 --> 01:23:33,520 W y a la S, no se puede 1243 01:23:33,520 --> 01:23:35,500 mover, no sé que 1244 01:23:35,500 --> 01:23:37,479 este aviso, porque como estoy con una combinación 1245 01:23:37,479 --> 01:23:38,880 algo va a pasar, pero bueno 1246 01:23:38,880 --> 01:23:42,840 Ah, porque estoy dando a control S, vale 1247 01:23:42,840 --> 01:23:44,680 Bueno, que no me deja, vale 1248 01:23:44,680 --> 01:23:46,460 Pero que eso, que mientras estoy apuntando 1249 01:23:46,460 --> 01:23:48,739 No puedo moverme, o no debería 1250 01:23:48,739 --> 01:23:50,380 Y creo que como que se ha desconjunto algo 1251 01:23:50,380 --> 01:23:52,439 Pero como que está pensado sobre todo 1252 01:23:52,439 --> 01:23:53,960 Para quedarse así, pues lo mismo 1253 01:23:53,960 --> 01:23:56,300 Mientras no esté apuntando 1254 01:23:56,300 --> 01:23:58,579 Si, lo contrario 1255 01:23:58,579 --> 01:24:00,640 Apuntando, vector move, vale 1256 01:24:00,640 --> 01:24:02,539 Y ese método lo que se ha creado 1257 01:24:02,539 --> 01:24:03,699 Es esto 1258 01:24:03,699 --> 01:24:06,460 Aparte de cambiar el valor de speed para que 1259 01:24:06,460 --> 01:24:08,119 El desplazamiento sea mayor o menor 1260 01:24:08,119 --> 01:24:10,260 porque luego todo lo vamos a multiplicar 1261 01:24:10,260 --> 01:24:11,399 por un speed finalmente 1262 01:24:11,399 --> 01:24:13,640 en algún momento, aquí, vale 1263 01:24:13,640 --> 01:24:15,800 aquí lo que vamos a ir haciendo es 1264 01:24:15,800 --> 01:24:18,460 venir aquí, lo dejo aquí 1265 01:24:18,460 --> 01:24:20,500 vale, con el speed que tengas 1266 01:24:20,500 --> 01:24:21,760 según vaya detectando 1267 01:24:21,760 --> 01:24:23,920 dos vectores, uno 1268 01:24:23,920 --> 01:24:26,340 del movimiento hacia adelante 1269 01:24:26,340 --> 01:24:28,319 hacia atrás y otro del estrafe 1270 01:24:28,319 --> 01:24:29,939 vale, porque la rotación 1271 01:24:29,939 --> 01:24:32,119 lo que he hecho es 1272 01:24:32,119 --> 01:24:34,020 crear un rotate, vale 1273 01:24:34,020 --> 01:24:36,399 que esté unido al axis rotate 1274 01:24:36,399 --> 01:24:38,079 este que hemos capturado antes, a esa variable 1275 01:24:38,079 --> 01:24:52,939 Y simplemente la estoy llamando en el update y ya está. Aquí es el update y la estoy llamando. No tiene más. Sí que el movimiento que estamos recogiendo aquí es el desplazamiento en el espacio del personaje con este vector move. 1276 01:24:52,939 --> 01:24:56,380 entonces va a haber por un lado un vector 3 1277 01:24:56,380 --> 01:24:58,699 move forward que está unido 1278 01:24:58,699 --> 01:25:02,239 a donde esté mirando 1279 01:25:02,239 --> 01:25:04,779 con esto lo que conseguimos es que esté unido 1280 01:25:04,779 --> 01:25:06,020 hacia donde esté mirando 1281 01:25:06,020 --> 01:25:08,760 si por ejemplo 1282 01:25:08,760 --> 01:25:13,520 lo que conseguimos con esta variable básicamente es 1283 01:25:13,520 --> 01:25:16,960 que en todo momento luego la animación que metamos 1284 01:25:16,960 --> 01:25:19,920 el desplazamiento que metamos 1285 01:25:19,920 --> 01:25:22,380 sea en relación hacia donde está mirando 1286 01:25:22,380 --> 01:25:33,899 Recordad que esto era una de las formas de recoger la dirección hacia la que está mirando un personaje 1287 01:25:33,899 --> 01:25:38,640 y te crea ese vector 3 en función de eso, como que resetea las coordenadas. 1288 01:25:39,939 --> 01:25:46,340 Con este vector right, en principio lo ponemos en 0 y solo se va a activar si el estrafe, 1289 01:25:46,460 --> 01:25:49,319 es decir, el Q y la E, que era el movimiento lateral, se activa. 1290 01:25:49,319 --> 01:26:03,659 ¿Por qué? Porque queremos que siempre que no añada nada a este desplazamiento que vamos a hacer luego con el CC Move, que no añada nada hasta que no toque estas teclas. ¿Por qué? Para no ir capturando además valores. 1291 01:26:03,659 --> 01:26:29,979 Entonces, hasta que no se activa ese estrafe, que va a ser menos usado que el movimiento en profundidad, ¿vale? Hacia adelante o hacia atrás, pues no lo activa. Pero aquí, básicamente, veis que va a coger ese vector 3 de hacia donde está mirando. Si lo activas, va a coger también hacia donde está mirando, va a desplazarlo hacia la derecha con la fuerza que le estemos dando al axis de estrafe, ¿vale? Y otra velocidad que hemos creado para el estrafe. 1292 01:26:29,979 --> 01:26:56,380 Y finalmente, esos dos vectores, lo que va a hacer es sumarlos, ¿vale? En esta variable llamada vector move. Vector move suma estos dos valores. Por un lado, el desplazamiento hacia donde esté mirando, si le estamos dando, y por otro lado, el desplazamiento que conseguíamos como en este move right aquí, ¿vale? Si hay que añadir un estrafe. 1293 01:26:56,380 --> 01:27:08,659 Y aparte, como vamos a usar, siento que sea un poco complejo, pero estamos desglosando en distintos movimientos que luego se suman aquí en este punto. 1294 01:27:08,659 --> 01:27:31,659 Y luego, aparte de este vector move, hay que sumarle este fall direction, que es un valor que en todo momento, como estamos usando el move que no agrega por defecto la gravedad, estamos creando con un fix update este método de gravedad con la fórmula que... 1295 01:27:31,659 --> 01:27:47,199 Bueno, había una fórmula de hacerlo más ortodoxa u otra que es ponerla a pelo, perdonadme la expresión, que es que la caída, esta variable, que haya una variable que sirva para en todo momento ir calculando la caída que tendría que tener. 1296 01:27:47,199 --> 01:28:01,979 Hemos creado una variable que se llama gravedad y esa variable hemos dicho que es menos 9,8, que al final es la fuerza de la gravedad la que da como resultado en la fórmula que os estaba poniendo antes en el ejemplo y que vais a encontrar en el tema. 1297 01:28:02,300 --> 01:28:16,359 De hecho, si vais a Project Settings y a Physics, aquí está, vais a ver que el valor que un Rigipodi, por ejemplo, aplica de gravedad es este menos 9,81. Aquí lo hemos replicado, menos 9,8. 1298 01:28:16,359 --> 01:28:19,000 que está haciendo 1299 01:28:19,000 --> 01:28:21,119 este método 1300 01:28:21,119 --> 01:28:22,420 gravedad en todo momento 1301 01:28:22,420 --> 01:28:24,140 pues va a haber una variable 1302 01:28:24,140 --> 01:28:27,039 de vector 3 que en todo momento está 1303 01:28:27,039 --> 01:28:29,119 aplicando esta gravedad y está sumándola 1304 01:28:29,119 --> 01:28:31,380 sumándola con un delta time 1305 01:28:31,380 --> 01:28:33,199 ¿vale? ¿qué significa 1306 01:28:33,199 --> 01:28:34,779 esto? que va a ir añadiendo 1307 01:28:34,779 --> 01:28:37,220 esto se va a estar reproduciendo 1308 01:28:37,220 --> 01:28:39,119 en todo momento y va a estar todo el rato 1309 01:28:39,119 --> 01:28:41,380 calculando 1310 01:28:41,380 --> 01:28:42,760 y guardando esta variable 1311 01:28:42,760 --> 01:28:45,199 el desplazamiento 1312 01:28:45,199 --> 01:28:48,039 que debería ir hacia abajo para simular esa gravedad. 1313 01:28:48,779 --> 01:28:53,199 En caso de que se estuviera tocando suelo, para que no haya conflictos, 1314 01:28:54,000 --> 01:28:57,640 o si estamos subiendo, es decir, le hemos dado una fuerza hacia arriba 1315 01:28:57,640 --> 01:29:03,920 o en algún momento está calculando que no debería estar cayendo, 1316 01:29:04,100 --> 01:29:05,380 lo dejamos en cero. 1317 01:29:06,359 --> 01:29:09,619 Es decir, estamos anulando esa fuerza de gravedad en ciertas condiciones. 1318 01:29:09,800 --> 01:29:11,760 Pero en todo momento lo que estamos consiguiendo es, 1319 01:29:12,260 --> 01:29:14,859 siempre que no esté en el suelo, que haya una gravedad, 1320 01:29:14,859 --> 01:29:34,779 Que luego la vamos a usar aquí. Fijaos. A este vector move, aparte, sumale este vector 3. Como solo estamos afectando al eje Y, el resto va a ser 0 y 0. Pero va a haber un 0, un valor negativo de bajada de gravedad en Y y otro 0. 1321 01:29:34,779 --> 01:29:49,800 Entonces al sumarlo solo va a afectar, por ejemplo en esta operación, al desplazamiento que ya teníamos en profundidad y en horizontal, ¿vale? También se le va a estar añadiendo en caso de que se active, es decir, en caso de que se hubiera saltado, esta gravedad para que caiga, ¿vale? 1322 01:29:49,800 --> 01:30:12,859 Y aquí estamos básicamente guardando en vector move el vector 3 del desplazamiento que deberíamos luego aplicar a este move para que se mueva, ¿vale? También el simple move, otra, lo veréis en el tema, simple move no hace falta aplicarlo en time delta time porque ya lo hace por defecto, pero a move sí que hay que dárselo, ¿vale? 1323 01:30:12,859 --> 01:30:37,619 Entonces, esta es una forma de llegar a esto, hay otras. En vez de hacer esto de la gravedad con el fall direction y que en todo momento estamos ya dándole el resultado, se puede decir que el salto, en vez de decirle, cuando damos a saltar, igual que hay una gravedad que se está calculando todo el rato, que lo que hace es ir reseteando este fall direction, 1324 01:30:37,619 --> 01:31:02,640 Por otro lado, al darle a la barra espaciadora en el update, se ejecuta el método saltar. Y aquí en saltar, si está posado en el suelo, si no, no se ejecuta nada. Aparte de lanzar la animación visual en el animator controller del salto, también dice, vale, aquí lo que vamos a hacer es que el fold direction y pase a tener un valor de jump speed que hemos creado aquí, que es de 8. 1325 01:31:02,640 --> 01:31:18,920 Es decir, que de pronto fold direction va a valer 8. Y como esto va a hacer que de pronto deje de estar posado, al saltar, este fold direction que sumamos es positivo. 1326 01:31:18,920 --> 01:31:36,819 ¿Hacia dónde moverá en ese caso? En vez de hacia abajo como la gravedad, va a subir. Y cuando ya, tened en cuenta que esto se va a aplicar solo en un fotograma, porque cuando vamos a saltar es un get key down, no es cuando estamos pulsando y en cada fotograma está añadiendose la fuerza. 1327 01:31:36,819 --> 01:31:54,960 En un solo pulsado va a hacer este saltar, va a añadir esta fuerza de golpe, va a subir, va a tener esa dirección y cuando ya empiece a perder esa fuerza, un poco simulando esa física, pues volverá a añadirle la gravedad que teníamos aquí. 1328 01:31:54,960 --> 01:32:05,649 más o menos me seguís 1329 01:32:05,649 --> 01:32:08,390 aquí os he dicho una cosa y por eso lo estoy mirando 1330 01:32:08,390 --> 01:32:09,869 claro, cuando le damos 1331 01:32:09,869 --> 01:32:12,449 esto no lo pone a cero y se ejecuta 1332 01:32:12,449 --> 01:32:13,949 cuando el jump speed 1333 01:32:13,949 --> 01:32:16,029 aporta un valor que es positivo 1334 01:32:16,029 --> 01:32:17,930 esto no nos lo resetea en cero 1335 01:32:17,930 --> 01:32:20,250 sino que está sobreescribiendo la gravedad 1336 01:32:20,250 --> 01:32:21,449 y ya cuando 1337 01:32:21,449 --> 01:32:24,189 ya en los siguientes fotogramas ya deja de haber 1338 01:32:24,189 --> 01:32:24,470 esa 1339 01:32:24,470 --> 01:32:28,090 digamos, esa fuerza que le hemos 1340 01:32:28,090 --> 01:32:30,149 aplica hacia arriba, pues ya vuelve otra vez a tener 1341 01:32:30,149 --> 01:32:31,590 la gravedad y vuelve a bajar. 1342 01:32:35,420 --> 01:32:36,159 ¿Qué tal? ¿Me seguís? 1343 01:32:37,960 --> 01:32:38,640 ¿Más o menos? 1344 01:32:41,779 --> 01:32:42,520 Más o menos, sí. 1345 01:32:44,100 --> 01:32:44,500 Vale. 1346 01:32:46,659 --> 01:32:47,460 Vale, bueno, 1347 01:32:47,680 --> 01:32:49,479 eso, rotar hacia los lados con las 1348 01:32:49,479 --> 01:32:51,359 teclas A y D, que es lo que asigna, pues 1349 01:32:51,359 --> 01:32:53,140 es simplemente un transform rotate. 1350 01:32:53,579 --> 01:32:54,000 No tiene 1351 01:32:54,000 --> 01:32:56,399 mucho más. 1352 01:32:57,420 --> 01:32:58,920 ¿Vale? Decidme 1353 01:32:58,920 --> 01:33:00,380 dudas que tengáis. 1354 01:33:01,420 --> 01:33:03,279 Porque ya lo de enfundar-desenfundar 1355 01:33:03,279 --> 01:33:12,720 Ahora hablamos un poco de cámara de Cinemachine, pero para las cámaras, ¿vale? 1356 01:33:15,569 --> 01:33:16,369 ¿Alguna duda? 1357 01:33:20,720 --> 01:33:21,760 Vale, sigo. 1358 01:33:23,340 --> 01:33:28,659 Igual que sucedía con los Terrain Tools, que había que incorporarlo en el Package Manager, 1359 01:33:29,859 --> 01:33:34,460 hay otro package que no viene por defecto, pero que es muy útil, que es el que se llama Cinemachine. 1360 01:33:34,460 --> 01:33:36,539 ¿Vale? Que yo ya lo tengo aquí instalado. 1361 01:33:36,840 --> 01:33:37,640 Es instalarlo. 1362 01:33:38,600 --> 01:33:56,939 Cine Machine al instalarlo os incorpora aquí otro menú con muchas opciones. Pero básicamente lo que va a hacer es, por un lado, la cámara principal que tuvierais ya en la escena le va a añadir este iconito y va a incorporar, y si no, lo que habrá que hacer es buscar el componente que se llama Cine Machine Brain. 1363 01:33:56,939 --> 01:34:01,479 ¿Por qué? Porque esta cámara realmente va a dejar de funcionar como una cámara 1364 01:34:01,479 --> 01:34:04,680 Me explico, va a ser la cámara principal a través de la que veamos todo 1365 01:34:04,680 --> 01:34:08,340 Pero va a estar sometida a otras cámaras que tengamos en la escena 1366 01:34:08,340 --> 01:34:10,039 De hecho yo aquí tengo otras dos cámaras 1367 01:34:10,039 --> 01:34:14,060 Con este menú que tenemos aquí podemos ir creando distintos tipos de cámaras 1368 01:34:14,060 --> 01:34:19,220 Hay muchos, pues uno para hacer como simulación de un travelling, para hacer cinemáticas 1369 01:34:19,220 --> 01:34:22,300 Hay otro que sirve para tener una vista libre 1370 01:34:22,300 --> 01:34:25,140 Hay otro que es para seguir al personaje, por ejemplo 1371 01:34:25,140 --> 01:34:27,619 este que tengo aquí, pues yo voy rotando 1372 01:34:27,619 --> 01:34:29,960 y es una vista libre, yo puedo irme moviendo 1373 01:34:29,960 --> 01:34:31,880 y bueno, hay algún límite porque no se mete 1374 01:34:31,880 --> 01:34:33,819 en el suelo, pero es vista libre, puedo 1375 01:34:33,819 --> 01:34:36,100 orbitar, todo esto se puede ir ajustando 1376 01:34:36,100 --> 01:34:37,800 pero yo, luego cuando doy a la 1377 01:34:37,800 --> 01:34:39,859 control y veis que pasa de una 1378 01:34:39,859 --> 01:34:41,840 a otra, estamos pasando de esta cámara 1379 01:34:41,840 --> 01:34:44,079 a esta, y literalmente 1380 01:34:44,079 --> 01:34:46,000 si nos fijamos en este cinemachine 1381 01:34:46,000 --> 01:34:47,819 que tenemos aquí, fijaos que yo 1382 01:34:47,819 --> 01:34:48,859 cuando cambio de una a otra 1383 01:34:48,859 --> 01:34:52,079 cambia, veis que pasa de llamarse 1384 01:34:52,079 --> 01:34:53,600 en cámara, como esta que tenemos aquí 1385 01:34:53,600 --> 01:34:57,880 a CML, a CMA, a Cine Machine, 1386 01:34:58,039 --> 01:35:01,399 perdón, a Free Look, ¿vale? Es un gestor, este Main Camera, 1387 01:35:01,560 --> 01:35:05,699 este Cine Machine Brain, de qué cámara es la que debemos ir 1388 01:35:05,699 --> 01:35:08,899 capturando, ¿vale? Entonces, vamos a ir preparando cámaras 1389 01:35:08,899 --> 01:35:13,560 en la escena, que en este caso, una, esta de Free Look, lo que va a hacer es 1390 01:35:13,560 --> 01:35:17,579 ir persiguiendo al personaje en todo momento, y esta que tenemos aquí 1391 01:35:17,579 --> 01:35:21,659 lo va a hacer igual, pero ya teniendo unas coordenadas próximas a su 1392 01:35:21,659 --> 01:35:38,539 a su hombro. Con Cinemachine lo que vamos a ir haciendo entonces es que cada cámara de Cinemachine va a tener el valor de prioridad. El que tenga mayor prioridad va a ser la que se vea, es decir, la que esté en este campo de la cámara en vivo de Cinemachine Brain. 1393 01:35:38,539 --> 01:35:54,640 ¿Qué es lo que habrá que ir haciendo? Ir cambiando, por ejemplo, al desenfundar, ¿vale? Digo, la FreeLux Camera pasa a tener una prioridad de 1 y cuando enfunda pasa a tener de 22 para tener más que la otra, ¿vale? Y entonces se van cambiando de una a otra de manera automática. 1394 01:35:54,640 --> 01:36:12,079 Como sucedía en otros casos, para acceder a los métodos y propiedades de Cinemachine habrá que incorporar la librería de Cinemachine, Using Cinemachine. Tiene su propia librería con muchos parámetros que si no se usaran Cinemachine, pues para qué incorporarlos y qué pese. 1395 01:36:12,079 --> 01:36:19,899 Entonces, simplemente con esta línea ya podemos acceder a las propiedades y métodos de Cinemachine. 1396 01:36:20,319 --> 01:36:36,220 E igual que sucedía con el Animator y con el Character Controller, si queremos acceder a las propiedades de la Free Look Camera, por ejemplo, habrá que poner que acceda a ese componente de Free Look Camera. 1397 01:36:36,220 --> 01:36:49,439 Para acceder, ¿vale? Cinemachine Free Look Camera. Como siempre, se llama igual. Si quiere acceder a la orden en cámara, habrá que poner Cinemachine Virtual Camera, que es la otra cámara que he creado aquí. 1398 01:36:51,140 --> 01:36:59,680 Vaya, que cuando incorporamos esta librería, aquí podemos poner Cinemachine, ¿vale? Y aparecerán las distintas cámaras y propiedades que tiene Cinemachine. 1399 01:36:59,680 --> 01:37:14,680 Luego, igualmente, habrá que capturar con un GetComponent esa cámara de Cinemachine o, como se puede hacer aquí, poner un SerializeField y lo hemos arrastrado directamente. 1400 01:37:14,680 --> 01:37:22,300 directamente. Recordad que como esta cámara, a diferencia de los otros componentes que hemos 1401 01:37:22,300 --> 01:37:26,560 hecho el GetComponent, no es un componente que esté en el propio objeto que tiene el script, 1402 01:37:26,800 --> 01:37:31,079 a CharacterController y el Animator, con un GetComponent era fácil, pero aquí lo que queremos 1403 01:37:31,079 --> 01:37:38,779 es controlar desde el personaje o un componente que está en otro objeto. Entonces ahí lo más fácil 1404 01:37:38,779 --> 01:37:46,460 es serialize fill y arrastrarlo y que ya coja ese ese componente vale y una vez lo tenemos pues bueno 1405 01:37:46,460 --> 01:37:51,500 hay mucha documentación de cinemachine os dejo vídeos es ir viendo cómo se controlan en el tema 1406 01:37:51,500 --> 01:37:59,000 os dejo los principales valores pero hay dos cámaras principales la virtual y la free look 1407 01:37:59,000 --> 01:38:05,420 la virtual es como una cámara pues que intenta basarse más en un objeto al que seguir vale 1408 01:38:05,420 --> 01:38:07,359 Sería esta, por ejemplo, aunque le haya cambiado el nombre. 1409 01:38:07,659 --> 01:38:08,880 Esta es una virtual cámara. 1410 01:38:09,520 --> 01:38:13,159 Y con esto lo que podemos hacer es decirle, vale, tú sigue a un personaje y lo arrastramos. 1411 01:38:13,359 --> 01:38:19,319 Sigue al personaje y luego aparte hacia donde tiene que mirar es hacia la cabeza del personaje 1412 01:38:19,319 --> 01:38:20,520 para que esté un poco a su altura. 1413 01:38:20,659 --> 01:38:22,760 Veis que lo que está centrado es la cabeza, ¿vale? 1414 01:38:23,220 --> 01:38:27,119 Ya arrastrando esos dos elementos, ya vais a ver que tenéis una cámara 1415 01:38:27,119 --> 01:38:31,920 con la que podéis orbitar alrededor de un personaje y le va a ir siguiendo, ¿vale? 1416 01:38:32,380 --> 01:38:35,119 Algo que, como hemos establecido las cámaras hasta ahora, 1417 01:38:35,119 --> 01:38:36,079 Pues será más complicado 1418 01:38:36,079 --> 01:38:39,140 Simplemente ya por cómo viene configurado 1419 01:38:39,140 --> 01:38:41,340 ¿Vale? Vais a ver que con el ratón 1420 01:38:41,340 --> 01:38:42,619 Vais a poder ir 1421 01:38:42,619 --> 01:38:44,760 Moviendos 1422 01:38:44,760 --> 01:38:45,659 Alrededor 1423 01:38:45,659 --> 01:38:49,260 El ratón es el que hace que se mueva 1424 01:38:49,260 --> 01:38:50,819 Porque, a ver, perdonad 1425 01:38:50,819 --> 01:38:53,020 En algún punto 1426 01:38:53,020 --> 01:38:55,239 Es que por defecto ya viene 1427 01:38:55,239 --> 01:38:57,020 Con el que coja el ratón 1428 01:38:57,020 --> 01:38:58,960 Pero esto se podía cambiar 1429 01:38:58,960 --> 01:38:59,920 A ver, un segundo 1430 01:38:59,920 --> 01:39:01,960 En algún momento 1431 01:39:01,960 --> 01:39:02,640 No 1432 01:39:02,640 --> 01:39:05,899 a ver 1433 01:39:05,899 --> 01:39:10,970 en donde se definía 1434 01:39:10,970 --> 01:39:16,140 porque por código, perdón 1435 01:39:16,140 --> 01:39:18,199 a lo mejor lo hice por código 1436 01:39:18,199 --> 01:39:19,420 pero por defecto 1437 01:39:19,420 --> 01:39:21,859 si, es que por defecto ya viene con la 1438 01:39:21,859 --> 01:39:24,260 con la cámara 1439 01:39:24,260 --> 01:39:27,689 para que se mueva así 1440 01:39:27,689 --> 01:39:29,310 lo que se puede ir definiendo 1441 01:39:29,310 --> 01:39:31,670 vale, debería haber 1442 01:39:31,670 --> 01:39:35,750 creo que para cambiarlo si que hay que añadir una extensión 1443 01:39:35,750 --> 01:39:37,189 pero por defecto está cogiendo la 1444 01:39:37,189 --> 01:39:39,890 es que no me acuerdo muy bien 1445 01:39:39,890 --> 01:39:47,029 porque siempre con lo hago con el ratón vale lo que sí se puede ir haciendo es pues por ejemplo 1446 01:39:47,029 --> 01:39:55,850 en este no perdona la que orbita directamente la free look vale verdad y esa es la que sí que está 1447 01:39:55,850 --> 01:40:05,689 vinculada a el x y axis está vinculada a al axis de pivotar bueno aquí está con él con él 1448 01:40:05,689 --> 01:40:16,930 el Input Provider, que es para el Input System, pero os saldrá, si no, directamente con el ratón normal. 1449 01:40:19,649 --> 01:40:25,449 Esta es la que permite rotar igual. Queremos que siga al superviviente y que apunte hacia la cabeza. 1450 01:40:26,350 --> 01:40:31,590 Se pueden ir poniendo, y si vamos a escena lo veremos, tres, lo que se llaman Rigs, 1451 01:40:31,590 --> 01:40:34,010 ¿Vale? Que son esos tres 1452 01:40:34,010 --> 01:40:36,149 Circulitos rojos 1453 01:40:36,149 --> 01:40:38,130 Que son a distintas alturas 1454 01:40:38,130 --> 01:40:40,109 A las que se puede poner, si os fijáis cuando yo voy 1455 01:40:40,109 --> 01:40:40,909 Moviendo la 1456 01:40:40,909 --> 01:40:44,210 Cámara, ¿vale? Veis que cuando 1457 01:40:44,210 --> 01:40:45,729 Se pone arriba como que se cierra 1458 01:40:45,729 --> 01:40:47,890 Como que hace, como si hiciera una esfera 1459 01:40:47,890 --> 01:40:49,649 Alrededor del personaje, ¿vale? 1460 01:40:49,750 --> 01:40:51,909 Todo eso se puede ir definiendo 1461 01:40:51,909 --> 01:40:53,909 Con el middle rig 1462 01:40:53,909 --> 01:40:55,890 El bottom rig, ¿no? Por ejemplo, queremos que 1463 01:40:55,890 --> 01:40:58,170 El bottom rig, que si bajamos 1464 01:40:58,170 --> 01:40:59,630 Sea mucho más grande 1465 01:40:59,630 --> 01:41:28,250 Pues con esto, si vamos al botón Rig y buscamos el punto en el que se hace más grande, que va a ser aquí, ¿vale? En el botón Rig vamos a darle un radio mucho mayor, ¿vale? Vais a ver que yo ahora cuando baje esta FreeLux Camera se aleja, ¿vale? Bueno, y ahí no he ajustado el cápsula este del carácter control, pues no se está posando bien, pero veis que se aleja en vez de estar acercándose como sucedía antes, ¿vale? 1466 01:41:28,250 --> 01:41:34,250 Pues aquí hay tres rigs, luego con sus propias configuraciones, con las que podemos ir definiendo distintos comportamientos. 1467 01:41:34,250 --> 01:41:44,149 Que si el personaje cuando está en el centro, si rotamos mucho hasta que no llegue a un cierto punto, que es esto que tenemos aquí, no se intenta recolocar. 1468 01:41:44,590 --> 01:41:49,390 Que cuando soltamos, veréis que se recoloca pasado cierto tiempo, que es el de dumping. 1469 01:41:49,789 --> 01:41:53,909 Bueno, hay un montón de opciones y tampoco en este curso nos vamos a meter mucho en esto. 1470 01:41:53,909 --> 01:42:08,710 Os he dejado tutoriales de ampliación y un poco en el tema se habla de ello, pero lo importante es eso, saber que el main camera lo que está haciendo en todo caso es gestionar qué cámara se está viendo de las otras que tengamos de Cinemachine creadas, ¿vale? 1471 01:42:08,710 --> 01:42:13,630 Y todo eso dependerá de, bueno, pues que esté activa también en vez de darle prioridad, ¿vale? 1472 01:42:13,630 --> 01:42:20,270 En lugar de la prioridad también se puede decir que esta FreeLux Camera de pronto no está activa. 1473 01:42:20,369 --> 01:42:26,789 Pues ahora la que está cogiendo es la otra que hay, que sí está activa y tiene la prioridad más alta, ¿vale? 1474 01:42:26,829 --> 01:42:33,510 Si lo vuelvo a activar, que también sabríamos activarla por código, al darla vuelve a ser la que tenemos aquí, ¿vale? 1475 01:42:33,510 --> 01:42:53,289 Entonces, con estas opciones, pues podemos ir generando la cámara de seguimiento y, bueno, un poco lo que resuelve la tarea. Luego estaría todo lo relacionado con la inteligencia artificial, que es el NASMES, es el último apartado del tema, que básicamente es otro modo de mover personajes. 1476 01:42:53,289 --> 01:43:04,130 En este caso suele ser, aunque no siempre, he visto usos creativos incluso en alguno de vuestros proyectos, un compañero lo ha hecho, que ha usado el NASMES para mover al personaje principal. 1477 01:43:04,289 --> 01:43:11,689 Pero un NASMES, como sucede con este zombie, básicamente lo que es, en el tema se habla de cómo se despliega, etc. 1478 01:43:11,850 --> 01:43:22,050 Pero si vamos aquí a Navigation hay un panel con el que podemos definir de un escenario qué partes son navegables por un automata, por una inteligencia artificial. 1479 01:43:22,050 --> 01:43:35,289 Entonces, por ejemplo, en estas opciones se pueden poner también opciones de cuánto de empinada y qué altura de escalones puede caminar ese personaje. 1480 01:43:35,289 --> 01:43:57,670 Bueno, pues cuando se baquea y se le asocia a un personaje con los distintos elementos de un Nazmesh, luego cuando lo aplicamos a los zombies, este Nazmesh agent podrá decir que sea de tipo humanoide y se mueva por las zonas que se han baqueado. 1481 01:43:57,670 --> 01:44:19,460 Entonces el personaje ahí es donde sabrá por dónde ir caminando. Y de una forma autónoma, con una variable que se llama, con una instrucción que se llama setDestination, que es esta de aquí, podemos ir diciendo que se mueva de un punto a otro siguiendo esa malla de navegación que se ha dibujado. 1482 01:44:19,460 --> 01:44:21,420 ¿Vale? Entonces, con el 1483 01:44:21,420 --> 01:44:23,479 NavMesh, lo que se hace es 1484 01:44:23,479 --> 01:44:25,359 Definir las áreas del escenario por las que 1485 01:44:25,359 --> 01:44:27,720 Cada objeto puede ir moviéndose 1486 01:44:27,720 --> 01:44:29,119 ¿Y qué se va haciendo? 1487 01:44:29,380 --> 01:44:31,039 Pues se le van diciendo puntos del escenario 1488 01:44:31,039 --> 01:44:32,500 Entre los que ir caminando 1489 01:44:32,500 --> 01:44:34,779 Y se irá caminando 1490 01:44:34,779 --> 01:44:37,140 Con una velocidad concreta 1491 01:44:37,140 --> 01:44:39,520 ¿Vale? Con una aceleración 1492 01:44:39,520 --> 01:44:41,060 Concreta, irá de un punto a otro 1493 01:44:41,060 --> 01:44:42,420 Sin parar 1494 01:44:42,420 --> 01:44:45,520 Que luego, en cierto, vais a ver 1495 01:44:45,520 --> 01:44:47,340 Mirad ese personaje que está ahí quieto 1496 01:44:47,340 --> 01:44:49,439 Y de pronto dice, ala, me pongo a caminar hacia otro sitio 1497 01:44:49,439 --> 01:45:15,000 Eso es porque le hemos marcado otro punto del escenario y va a ir caminando por las áreas que puede caminar hasta llegar a ese punto de manera automática. Cuando llega a ese punto, dice, tengo que ir a otro. Y que se va a ir diciendo. Cuando un personaje, cuando un agente llega a un destino, ¿vale? De pronto, a ver, perdonad, esto va a estar aquí, ¿vale? Ronda random. 1498 01:45:15,000 --> 01:45:34,560 Si no está aceptada el personaje, que es una condición que si ve al personaje, digamos, cambia, ¿vale? Va a ir de un punto a otro de los que están definidos en un array y va a ir a ese, setDestination. Cuando llega al destino, vuelve a capturar otro destino y volverá a hacer otro setDestination hasta otro punto, ¿vale? 1499 01:45:34,560 --> 01:45:57,560 En el tema nuevamente se os ponen instrucciones de cómo conseguir esto, pero sobre todo que sepáis eso, que la NATMES sirve para crear estas mallas de por dónde se puede caminar en función de, pues eso, inclinaciones, pasos, zonas que nosotros demarquemos que también se pueden marcar áreas con colliders, por ejemplo, y por ahí no puede caminar, ¿vale? 1500 01:45:57,560 --> 01:46:24,520 Entonces, ya con eso, el personaje va a tener las áreas, esta inteligencia artificial, por las que va a poder caminar. Si, por ejemplo, el personaje pudiera subir con ese carácter controller cuestas más empinadas que el personaje, pues en este juego, bueno, no sé en qué valores lo he puesto, pero el chico ya casi no sube ahora, ¿vale? Una forma de salvarse sería subir más que el automata, porque hasta cierto punto no podría subir, ¿vale? Fijaos que ahí se ha quedado quieto, ¿vale? 1501 01:46:24,520 --> 01:46:28,859 Yo he conseguido llegar por un salto, por eso se ha quedado así un poco pillado, ¿no? 1502 01:46:29,119 --> 01:46:35,500 Pero veis que el zombi ya no puede subir, intenta llegar a mí porque ahora mismo su destination es mi transform 1503 01:46:35,500 --> 01:46:38,260 y por eso siempre va a intentar seguirme, ¿vale? 1504 01:46:38,260 --> 01:46:42,939 Con set destination a ese personaje le estamos diciendo hacia dónde tiene que ir, ¿vale? 1505 01:46:43,020 --> 01:46:50,619 Y no va a dejar de perseguirme hasta que estemos a una distancia que pase a un estado de no detectado, ¿vale? 1506 01:46:50,619 --> 01:47:09,699 Bueno, esto ya, esa parte de la IA es la opcional, ¿vale? Estos NATMES es opcional, pero también tenéis que conocer un poco pues que es un Finite State Machine, una FSM, que es uno de los apartados de los que se habla y un poco el funcionamiento básico de una inteligencia artificial en Unity, ¿vale? 1507 01:47:09,699 --> 01:47:24,180 Las inteligencias artificiales, cada motor de videojuegos lo tratará de una forma u otra, pero Unity se basa en función de estos navmes, que son esas mallas que se pueden ir generando para que un personaje autómata se vaya moviendo por ahí. 1508 01:47:24,180 --> 01:47:27,380 vale, dudas 1509 01:47:27,380 --> 01:47:28,720 sé que habrá un millón 1510 01:47:28,720 --> 01:47:30,560 sobre todo si no os habéis puesto con la tarea 1511 01:47:30,560 --> 01:47:32,939 si no hacéis la tarea habrá un millón todavía 1512 01:47:32,939 --> 01:47:35,340 aunque podéis tener en la cabeza 1513 01:47:35,340 --> 01:47:37,619 los conceptos y los métodos principales 1514 01:47:37,619 --> 01:47:39,640 y cómo funcionan, por ejemplo lo que se habla hoy 1515 01:47:39,640 --> 01:47:41,159 pero bueno 1516 01:47:41,159 --> 01:47:43,279 hasta que no os sentéis a intentar hacerlo 1517 01:47:43,279 --> 01:47:45,140 pues todo se queda un poco en teoría 1518 01:47:45,140 --> 01:47:47,539 ¿vale? para superar el examen nos puede servir 1519 01:47:47,539 --> 01:47:49,220 yo siempre os animaré 1520 01:47:49,220 --> 01:47:50,420 a que intentéis hacer la tarea 1521 01:47:50,420 --> 01:47:53,279 pero bueno, entiendo las circunstancias de cada uno 1522 01:47:53,279 --> 01:48:00,460 Y que por cómo es la normativa y cómo están las reglas del juego, digamos, las tareas no son obligatorias para superar el módulo. 1523 01:48:00,539 --> 01:48:05,939 Así que ya cada uno hará lo que quiera hacer, claro. 1524 01:48:07,079 --> 01:48:14,560 Vale, pues nada, podríamos hablar muchas más horas, pero tenemos que cortar. 1525 01:48:15,300 --> 01:48:20,600 Si tenéis dudas, decidme y si no, pues más o menos hemos hecho un repasín de esta unidad. 1526 01:48:20,600 --> 01:48:24,560 ¿Cómo lo veis? 1527 01:48:25,460 --> 01:48:26,359 Le paso visto, vale 1528 01:48:26,359 --> 01:48:27,399 Lo dicho 1529 01:48:27,399 --> 01:48:30,619 Cuando vayáis leyendo el tema 1530 01:48:30,619 --> 01:48:32,239 Entiendo que esto os habrá ayudado 1531 01:48:32,239 --> 01:48:34,880 A contextualizar algunas cosas 1532 01:48:34,880 --> 01:48:36,579 Pero bueno 1533 01:48:36,579 --> 01:48:37,699 Vale 1534 01:48:37,699 --> 01:48:40,760 Lo dicho, pues nada 1535 01:48:40,760 --> 01:48:42,340 Para el examen queda 1536 01:48:42,340 --> 01:48:45,600 Queda un mes largo 1537 01:48:45,600 --> 01:48:46,560 Todavía tenéis tiempo 1538 01:48:46,560 --> 01:48:49,779 Es decir, que si lo lleváis al día 1539 01:48:49,779 --> 01:48:51,920 Os queda finiquitar este tema 1540 01:48:51,920 --> 01:48:53,399 ver el siguiente 1541 01:48:53,399 --> 01:48:55,739 que tiene muchas cosas 1542 01:48:55,739 --> 01:48:58,199 pero creo que ninguna es muy compleja 1543 01:48:58,199 --> 01:48:59,840 a no ser 1544 01:48:59,840 --> 01:49:01,439 como todo, si os metéis en harina 1545 01:49:01,439 --> 01:49:03,619 de intentar desgranar y más 1546 01:49:03,619 --> 01:49:05,739 tocamos muchas cosas, a veces superficiales 1547 01:49:05,739 --> 01:49:07,359 porque no da tiempo a profundizar más 1548 01:49:07,359 --> 01:49:09,539 pero bueno, creo que abarca muchas cosas 1549 01:49:09,539 --> 01:49:12,319 pero bueno, creo que es asequible 1550 01:49:12,319 --> 01:49:14,300 la tarea sí que tiene complejidad 1551 01:49:14,300 --> 01:49:16,000 si os metéis de verdad a intentar 1552 01:49:16,000 --> 01:49:16,819 hacer un shader 1553 01:49:16,819 --> 01:49:19,420 aunque os dé uno ya hecho 1554 01:49:19,420 --> 01:49:21,020 por si queréis omitir también esa parte 1555 01:49:21,020 --> 01:49:50,760 Bueno, pues ponerlo en práctica lleva tiempo también, porque primero hay que comprenderlo y ir poco a poco, pero es la forma. Vale, pues habrá una tutoría del tema 7 que, según vayamos viendo el calendario, puede que se combine con repaso del módulo, un poco de hablar de cara al examen, qué miraría más, qué menos, ¿vale? Un poco pistas, aunque yo os digo, por muchas pistas que os diga, puede entrar todo el temario que está establecido como materia de examen, pero bueno, algo veremos. 1556 01:49:51,020 --> 01:50:03,800 Si hay más tiempo, intento hacer una solo del examen y una solo de la unidad 7, pero bueno, tampoco quiero agobiaros con muchas tutorías, a menos que vea dudas en los foros, claro. 1557 01:50:04,560 --> 01:50:12,640 Pero como no las veo, pues eso, yo voy hablando un poquito de las cosas y lo intento conectar con la tarea para ayudaros y que lo ubiquéis mejor. 1558 01:50:13,720 --> 01:50:18,960 Bueno, me callo. ¿Alguna duda? ¿Algo que queráis que hablemos? 1559 01:50:18,960 --> 01:50:22,640 ya has hablado mucho 1560 01:50:22,640 --> 01:50:25,119 sí, sí, tengo la boca bastante seca 1561 01:50:25,119 --> 01:50:26,119 pero bueno 1562 01:50:26,119 --> 01:50:28,960 todavía me queda para un rato 1563 01:50:28,960 --> 01:50:29,819 si lo necesitáis 1564 01:50:29,819 --> 01:50:34,359 pues nada, damos por 1565 01:50:34,359 --> 01:50:36,239 concluida la tutoría 1566 01:50:36,239 --> 01:50:38,500 y sé que 1567 01:50:38,500 --> 01:50:40,319 es complicado, sé que hay muchas cosas 1568 01:50:40,319 --> 01:50:41,319 pero bueno 1569 01:50:41,319 --> 01:50:44,600 también espero que os pueda ser útil en algún momento 1570 01:50:44,600 --> 01:50:45,720 y que os parezca interesante 1571 01:50:45,720 --> 01:50:48,500 pues lo dicho, muchas gracias por 1572 01:50:48,500 --> 01:50:49,420 asistir y nos vemos 1573 01:50:49,420 --> 01:50:52,159 calculo que en un par de semanas 1574 01:50:52,159 --> 01:50:54,500 es que también algunos compañeros 1575 01:50:54,500 --> 01:50:56,060 tienen ahora las defensas de proyectos 1576 01:50:56,060 --> 01:50:57,420 hay que intentar cuadrar los días 1577 01:50:57,420 --> 01:51:00,100 esperemos que tampoco haya apagones generales 1578 01:51:00,100 --> 01:51:01,600 porque visto lo visto 1579 01:51:01,600 --> 01:51:04,239 entonces bueno, os lo iré anunciando como siempre 1580 01:51:04,239 --> 01:51:06,260 pero eso, habrá todavía 1581 01:51:06,260 --> 01:51:07,340 que dar alguna tutoría 1582 01:51:07,340 --> 01:51:09,840 pues muchas gracias por 1583 01:51:09,840 --> 01:51:12,020 asistir, por vuestro tiempo 1584 01:51:12,020 --> 01:51:14,439 gracias a ti, hasta luego