1 00:00:01,780 --> 00:00:03,600 Las dudas también que podéis tener por ahí. 2 00:00:04,160 --> 00:00:06,900 Vale, acuérdate de la resolución de pantalla, que creo que está bien, ¿no? La veo bien. 3 00:00:07,019 --> 00:00:11,039 Sí, Hernandota, tenemos esto. Tengo la lupa aquí preparada. 4 00:00:12,539 --> 00:00:12,900 Hola. 5 00:00:13,720 --> 00:00:14,439 Hola, hola. 6 00:00:15,380 --> 00:00:16,239 Y tengo el web. 7 00:00:16,800 --> 00:00:17,620 Se me ha salido. 8 00:00:18,739 --> 00:00:19,320 Hola, hola. 9 00:00:20,300 --> 00:00:22,839 Sí, sí, es que se me ha cerrado la versión de Moe, de repente. 10 00:00:23,500 --> 00:00:23,679 ¿Ah? 11 00:00:24,500 --> 00:00:29,510 No sé si está... Vale, pues se está grabando. 12 00:00:31,089 --> 00:00:31,969 Hola, hola, hola. 13 00:00:33,859 --> 00:00:34,259 Ok. 14 00:00:38,590 --> 00:00:47,259 Vale. Pues por ahí ya va encendiendo, ¿no? Una mesita. 15 00:00:48,579 --> 00:00:49,460 Ya cuando queráis, ¿eh? 16 00:00:50,039 --> 00:00:51,299 ¿Sí? ¿Arrancamos? 17 00:00:52,520 --> 00:00:52,740 Sí. 18 00:00:52,899 --> 00:00:53,060 Vale. 19 00:00:53,460 --> 00:00:58,619 Venga, perfecto. Pues nada, venga, dudas que tengáis por ahí antes de meternos en faena. 20 00:01:01,159 --> 00:01:07,760 Me ha comentado un compañero que tenía curiosidad por ver cómo se renderizaba en ACES dentro de Unreal. 21 00:01:07,760 --> 00:01:10,620 Entonces, es un proceso mecánico, pero es un poquito largo. 22 00:01:10,620 --> 00:01:12,959 como íbamos un poquito a pillar de tiempo 23 00:01:12,959 --> 00:01:14,859 le he comentado eso, que hay un tutorial 24 00:01:14,859 --> 00:01:16,359 de William Fosher 25 00:01:16,359 --> 00:01:19,079 que cuenta cómo hacerlo paso a paso 26 00:01:19,079 --> 00:01:20,219 muy sencillito 27 00:01:20,219 --> 00:01:22,920 se llama Unreal to DaVinci Resolve 28 00:01:22,920 --> 00:01:23,680 Workflow 29 00:01:23,680 --> 00:01:26,959 Haces a un Standard RGB, te explica las dos 30 00:01:26,959 --> 00:01:28,900 maneras, en los dos 31 00:01:28,900 --> 00:01:29,599 espacios de color 32 00:01:29,599 --> 00:01:32,359 por si 33 00:01:32,359 --> 00:01:34,079 os interesa 34 00:01:34,079 --> 00:01:36,579 luego, Álvaro 35 00:01:36,579 --> 00:01:38,579 tú tenías algo por ahí que comentar también, puede ser 36 00:01:38,579 --> 00:01:40,159 Álvaro está afuera ahora 37 00:01:40,159 --> 00:01:40,599 Acaba de salir. 38 00:01:41,299 --> 00:01:42,400 Ah, acaba de salir. 39 00:01:42,840 --> 00:01:44,260 Vale, pues estamos grabando. 40 00:01:44,500 --> 00:01:47,859 Bueno, pues venga, yo voy avanzando y ahora cuando vuelva que me pregunte. 41 00:01:48,519 --> 00:01:50,439 ¿El resto tenéis algo que comentar? 42 00:01:50,980 --> 00:01:51,739 ¿Alguna dudilla? 43 00:01:54,579 --> 00:01:55,280 No, no. 44 00:01:55,540 --> 00:01:56,480 En principio no, ¿no? 45 00:01:56,560 --> 00:01:56,819 Vale. 46 00:01:57,859 --> 00:02:02,180 Venga, pues vamos a quitarnos las dos cosas que nos faltaban de la parte visual de Unreal 47 00:02:02,180 --> 00:02:06,560 y nos metemos con Blueprints, que es la parte de programación gráfica. 48 00:02:06,560 --> 00:02:06,780 ¿Vale? 49 00:02:06,879 --> 00:02:07,659 Que Dios os bendiga. 50 00:02:07,659 --> 00:02:11,340 entonces, a ver 51 00:02:11,340 --> 00:02:13,860 ¿cómo metemos 52 00:02:13,860 --> 00:02:15,039 un vídeo 53 00:02:15,039 --> 00:02:16,639 en una geometría? 54 00:02:17,659 --> 00:02:19,520 ¿cuál es la forma para meter, por ejemplo 55 00:02:19,520 --> 00:02:20,840 en la parte de abajo de la mesa 56 00:02:20,840 --> 00:02:23,240 de nuestro set virtual 57 00:02:23,240 --> 00:02:25,060 necesitamos meter un vídeo 58 00:02:25,060 --> 00:02:27,419 entonces, para meter un vídeo 59 00:02:27,419 --> 00:02:29,039 hay que 60 00:02:29,039 --> 00:02:31,800 trabajar con una serie de assets 61 00:02:31,800 --> 00:02:33,479 que todavía no habíamos trabajado 62 00:02:33,479 --> 00:02:35,159 me voy a hacer una carpetita nueva 63 00:02:35,159 --> 00:02:36,759 dentro de set virtual 64 00:02:36,759 --> 00:02:39,020 botón derecho 65 00:02:39,020 --> 00:02:41,439 new folder 66 00:02:41,439 --> 00:02:43,759 07 barra baja 67 00:02:43,759 --> 00:02:44,599 vídeos. 68 00:02:45,580 --> 00:02:45,659 ¿Vale? 69 00:02:47,319 --> 00:02:48,340 Entonces la forma 70 00:02:48,340 --> 00:02:50,740 para acceder a un vídeo externo 71 00:02:50,740 --> 00:02:52,080 dentro de Unreal 72 00:02:52,080 --> 00:02:53,659 y poder reproducirlo 73 00:02:53,659 --> 00:02:55,360 es la siguiente. 74 00:02:55,879 --> 00:02:57,199 Primero necesitamos 75 00:02:57,199 --> 00:02:58,439 un 76 00:02:58,439 --> 00:03:00,620 file media source 77 00:03:00,620 --> 00:03:01,180 que se llama. 78 00:03:01,400 --> 00:03:02,620 Es un asset que accede 79 00:03:02,620 --> 00:03:04,780 a un vídeo 80 00:03:04,780 --> 00:03:06,379 o a una secuencia de imágenes. 81 00:03:06,759 --> 00:03:11,460 ¿Vale? Existen esas dos tipologías. Bueno, existe alguna más, pero las más comunes son esas dos. 82 00:03:12,259 --> 00:03:17,900 Entonces, si damos botón derecho en el Content Browser, tenemos un grupo de assets que se llama Media. 83 00:03:18,240 --> 00:03:20,719 ¿Vale? Dentro de Media está todo lo que necesitamos. 84 00:03:21,840 --> 00:03:26,360 Entonces, el File Media Source permite reproducir archivos que son un solo archivo, 85 00:03:26,360 --> 00:03:33,360 pues un AVI, un MP4, un MOV, por ejemplo, y el Image Media Source permite reproducir secuencias. 86 00:03:33,360 --> 00:03:47,120 secuencias. Si son secuencias de PNG, secuencias de JPG, de BMP, lo que sea. Entonces vamos a probar los dos. El image, el file media source. El primero lo vamos a 87 00:03:47,120 --> 00:04:03,300 llamar fms-video01. Entonces, ¿cómo funciona este asset? Estos assets hacen referencia a archivos externos. Esto funciona un poco diferente de como 88 00:04:03,300 --> 00:04:08,520 funcionaba el resto de assets, porque si os acordáis yo os decía que cuando importábamos 89 00:04:08,520 --> 00:04:15,139 un FBX, él traducía ese FBX a un archivo propio de Unreal, sin embargo aquí no, aquí 90 00:04:15,139 --> 00:04:19,519 tiene que estar leyendo un archivo externo, entonces para que nosotros podamos tener esos 91 00:04:19,519 --> 00:04:26,019 vídeos dentro del proyecto, tenemos que hacer una carpeta dentro del proyecto donde 92 00:04:26,019 --> 00:04:32,079 arrastremos esos archivos, tanto las secuencias como los archivos normales, como los archivos 93 00:04:32,079 --> 00:04:38,639 únicos vale entonces eso lo vamos a hacer ahora os acordáis que para saber dónde está mi carpeta 94 00:04:38,639 --> 00:04:49,129 content dentro de windows aquí yo puedo hacer botón derecho show in explorer vale y esto me 95 00:04:49,129 --> 00:04:55,009 abre windows en esa ubicación es esta entonces nos tenemos que venir una carpeta hacia atrás y 96 00:04:55,009 --> 00:05:01,689 tenemos que crear una carpeta nueva en el proyecto que se llame movies vale botón derecho nuevo 97 00:05:01,689 --> 00:05:05,209 carpeta. Y tiene que ser movies, la primera en mayúscula 98 00:05:05,209 --> 00:05:09,709 y el resto en minúsculas. Y es aquí donde tengo 99 00:05:09,709 --> 00:05:13,610 que meter los vídeos o las secuencias de imágenes que necesito. Esto 100 00:05:13,610 --> 00:05:16,709 no es porque no lo pueda leer en otra ubicación, es porque luego 101 00:05:16,709 --> 00:05:20,810 como vamos a empaquetar el proyecto para llevárnoslo a Ximetry 102 00:05:20,810 --> 00:05:25,629 al empaquetarlo, si los vídeos que hemos metido no están dentro del proyecto 103 00:05:25,629 --> 00:05:29,769 no los encuentra. Si estuviese en otra ubicación 104 00:05:29,769 --> 00:05:50,990 Ahora lo podríamos leer, pero cuando nos lo llevemos a Ximetry, al empaquetarlo no se lo va a llevar, ¿vale? No lo va a coger. Entonces, por eso es preferible que lo metamos aquí, ¿vale? Entonces, me voy a meter aquí un vídeo. No sé. A ver qué vídeos tenemos por aquí. Voy a buscar alguno de los que tengo del set virtual. 105 00:05:50,990 --> 00:06:15,879 A ver, podría valer cualquier vídeo, ¿vale? Aquí tenía algunos de estos de noticias, un mod de noticias, tenía el del ticker también. Voy a traerme estos dos de momento, me los copio y los meto en la ubicación del proyecto. 106 00:06:15,879 --> 00:06:28,500 A ver, aquí en la parte de Garci, en el proyecto Garci en Movies, me copio aquí estos dos vídeos, ¿vale? 107 00:06:29,100 --> 00:06:33,120 Tenemos estos dos, uno es un MOV y otro es un MP4, ¿vale? 108 00:06:34,019 --> 00:06:40,259 Entonces, una vez que los tenemos aquí, esto no va a aparecer como tal dentro del proyecto, ¿vale? 109 00:06:43,129 --> 00:06:45,589 Pero yo tengo que darle esa ubicación. 110 00:06:46,629 --> 00:06:48,629 ¿Cómo le doy esa ubicación? Pues muy sencillo. 111 00:06:49,589 --> 00:06:59,889 en la parte de vídeos en el file media source que me acabo de crear tengo que abrirlo, lo abrimos y nos aparece esta ventanita, esta ventanita realmente no sirve para mucho, 112 00:06:59,889 --> 00:07:20,480 simplemente sirve para darle la ubicación, entonces en estos tres puntitos aquí a la derecha le decimos que lo que quiere abrir este file media source es por ejemplo el vídeo este de news, 113 00:07:20,480 --> 00:07:53,620 vale perfecto salvamos vale y entonces ahora una vez que tenemos la referencia al vídeo cómo hacemos que se reproduzca aquí pues tenemos que crear otro asset que es un media player va a ser el que reproduzca el vídeo por así decir entonces venimos botón derecho media media player y fijaros cuando voy a crear el media player aquí me dice 114 00:07:53,620 --> 00:07:57,360 Additional Asset to Create and Link to the Media Player. 115 00:07:57,720 --> 00:08:00,120 Video Output Media Texture Assets. 116 00:08:00,240 --> 00:08:00,839 Esta es la clave. 117 00:08:01,779 --> 00:08:07,560 Lo que vamos a crear es un reproductor que tiene asociado una textura que proyecta ese vídeo. 118 00:08:07,560 --> 00:08:14,879 Y si creamos una textura que proyecta ese vídeo ya lo podemos meter en un material y asignárselo a una geometría. 119 00:08:14,879 --> 00:08:33,360 ¿No? Entonces le decimos que si queremos crear ese Media Texture Asset y lo llamamos Media Player barra baja video 01 y automáticamente se me crea también la textura que va a reproducir ese video ¿Vale? 120 00:08:33,360 --> 00:08:51,879 Con lo cual, doble clic y fijaros, ahora ya en el media player, que es este que acabo de abrir, me aparece referenciado el file media source que he creado anteriormente, ¿vale? Entonces, si hacemos doble clic, nos reproduce el vídeo, ¿vale? ¿Bien? ¿Hasta ahora, más o menos, se entiende? 121 00:08:51,879 --> 00:09:13,000 ¿Vale? Perfecto. Perfecto. Pues entonces, una vez que tenemos eso, lo que tenemos que hacer es un material sencillito que nos permita reproducir esa textura, sin más. ¿Vale? Entonces, botón derecho, material, y lo llamo m barra baja, video. 122 00:09:13,000 --> 00:09:15,340 este va a ser 123 00:09:15,340 --> 00:09:16,179 mi material master 124 00:09:16,179 --> 00:09:17,019 luego me iré creando 125 00:09:17,019 --> 00:09:17,500 instancias 126 00:09:17,500 --> 00:09:18,620 para diferentes vídeos 127 00:09:18,620 --> 00:09:19,679 ¿vale? 128 00:09:22,620 --> 00:09:23,179 entonces 129 00:09:23,179 --> 00:09:24,200 ¿qué es lo que necesito 130 00:09:24,200 --> 00:09:24,639 controlar? 131 00:09:25,139 --> 00:09:26,419 pues necesito controlar 132 00:09:26,419 --> 00:09:27,480 el tileado 133 00:09:27,480 --> 00:09:28,120 de esa textura 134 00:09:28,120 --> 00:09:29,299 por si no se adapta bien 135 00:09:29,299 --> 00:09:30,259 al formato 136 00:09:30,259 --> 00:09:31,600 para que lo pueda mover 137 00:09:31,600 --> 00:09:34,580 y la intensidad 138 00:09:34,580 --> 00:09:35,179 del emisivo 139 00:09:35,179 --> 00:09:35,980 porque normalmente 140 00:09:35,980 --> 00:09:36,659 las pantallas 141 00:09:36,659 --> 00:09:37,679 emiten un poco de luz 142 00:09:37,679 --> 00:09:37,820 ¿no? 143 00:09:39,039 --> 00:09:39,559 entonces 144 00:09:39,559 --> 00:09:41,340 me traigo esta textura 145 00:09:41,340 --> 00:09:42,399 la textura 146 00:09:42,399 --> 00:09:43,259 esta media texture 147 00:09:43,259 --> 00:09:44,519 que se acaba de crear 148 00:09:44,519 --> 00:09:46,500 con el media player, me la traigo 149 00:09:46,500 --> 00:09:47,740 por acá, vale 150 00:09:47,740 --> 00:09:50,580 ahí está, ya lo tengo, fijaros yo ya tengo 151 00:09:50,580 --> 00:09:51,940 el vídeo dentro del material 152 00:09:51,940 --> 00:09:54,600 entonces que es lo que tengo que hacer 153 00:09:54,600 --> 00:09:56,100 ahora tengo que conectar el RGB 154 00:09:56,100 --> 00:09:57,080 al base color 155 00:09:57,080 --> 00:10:00,340 y me tengo que crear con un 156 00:10:00,340 --> 00:10:02,159 multiply, M 157 00:10:02,159 --> 00:10:03,259 y clic izquierdo 158 00:10:03,259 --> 00:10:06,379 un controlador del canal emisivo 159 00:10:06,379 --> 00:10:07,240 vale 160 00:10:07,240 --> 00:10:10,159 aquí le metemos 161 00:10:10,159 --> 00:10:11,080 un parámetro 162 00:10:11,080 --> 00:10:14,360 numérico, S y clic izquierdo 163 00:10:14,360 --> 00:10:19,100 y le llamamos Emissive Int, de intensidad. 164 00:10:19,259 --> 00:10:22,220 De primeras lo pongo en cero, ¿vale? 165 00:10:22,519 --> 00:10:25,279 De primeras lo ponemos en cero, luego ya veremos qué intensidad le damos, 166 00:10:25,379 --> 00:10:26,980 porque depende de la iluminación de la escena. 167 00:10:30,179 --> 00:10:34,779 Aplicamos y me tengo que crear también un controlador de tileado, ¿vale? 168 00:10:35,220 --> 00:10:39,019 Como normalmente las pantallas muchas veces no tienen el formato del vídeo, 169 00:10:39,580 --> 00:10:44,820 lo ideal es que le demos un control en X y en Y de manera independiente, ¿vale? 170 00:10:44,820 --> 00:10:48,200 Si os acordáis que eso lo teníamos hecho en nuestro material. 171 00:10:48,639 --> 00:10:51,299 Entonces me lo voy a copiar de nuestro material y me lo voy a traer para acá. 172 00:10:52,940 --> 00:10:57,019 Si vengo aquí a materiales, nosotros teníamos un material que se llama ATES, 173 00:10:57,019 --> 00:11:03,379 que fue el que estuvimos haciendo y todo este controlador de tileado ya estaba hecho. 174 00:11:04,080 --> 00:11:06,899 Por lo cual el de rotación, bueno, me lo voy a traer todo, venga. 175 00:11:07,700 --> 00:11:13,980 Selecciono todo, control C, me vengo al otro material, control V. 176 00:11:13,980 --> 00:11:45,779 Aquí tengo mi controlador de tileado con los mismos nombres y con todo. Lo conecto a la texturita y ya estaría. Este es mi material para reproducir vídeos. Entonces aplico y me creo una instancia de ese material que lo voy a llamar Video Table, por ejemplo, que va a ser el vídeo que va a estar colocado aquí en la mesa. 177 00:11:45,779 --> 00:11:47,820 perdona Diego 178 00:11:47,820 --> 00:11:49,220 una preguntita rápida 179 00:11:49,220 --> 00:11:51,580 al copiar y pegar 180 00:11:51,580 --> 00:11:53,700 desde un material a otro, desde los nodos a otro 181 00:11:53,700 --> 00:11:55,039 entiendo que los parámetros 182 00:11:55,039 --> 00:11:57,340 parametrizados, era el nombre 183 00:11:57,340 --> 00:11:59,759 se mantienen, es decir que no hay que volverlos 184 00:11:59,759 --> 00:12:00,500 a parametrizar 185 00:12:00,500 --> 00:12:03,360 no, de hecho fijaros 186 00:12:03,360 --> 00:12:05,500 si yo ahora me hago una instancia 187 00:12:05,500 --> 00:12:06,580 de este que acabo de crear 188 00:12:06,580 --> 00:12:09,299 createMaterialInstance y lo llamo 189 00:12:09,299 --> 00:12:09,899 mi 190 00:12:09,899 --> 00:12:13,460 videotable por ejemplo 191 00:12:13,460 --> 00:12:15,340 o videodesk 192 00:12:15,340 --> 00:12:25,379 Bueno, da igual. Y lo aplico aquí, ¿vale? Ahí tenemos el vídeo. Y si lo abro, aquí están todos los parámetros, ¿vale? 193 00:12:25,379 --> 00:12:33,860 Tenemos el Emissive Intensity, que es el único que hemos creado, y luego el Offset en U y en V, el Scale en U y en V, y la Rotación. Están todos tal cual. 194 00:12:35,200 --> 00:12:42,100 El cortar y pegar dentro de Unreal sirve para todo. Incluso sirve para lo que vamos a ver hoy, que son los Blueprints. 195 00:12:42,100 --> 00:13:04,490 También tú te puedes hacer una red de nodos de programación y copiarlos de un sitio a otro simplemente con control-c, control-v, ¿vale? Entonces, ya tenemos esto. Fijaros, si yo ahora abro el media player y le doy doble clic al vídeo, el vídeo se reproduce, ¿vale? ¿Bien? 196 00:13:04,490 --> 00:13:19,610 Pero claro, ¿qué pasa? Que el mapeado de esta pieza no coincide con el formato del vídeo, con lo cual tengo que escalarlo dentro del material para que se vea como yo quiero que se vea, que es así, ¿vale? Que la bola se vea redonda por lo menos. 197 00:13:19,610 --> 00:13:33,809 Bueno, entonces, pues nada, hay que tocar la escala en V, 0,5, 0,2, 0,3, y una vez que la hemos escalado la tengo que subir. 198 00:13:33,809 --> 00:13:42,029 Entonces tengo que darle un offset en V, ¿vale? Más o menos así podría valer, aproximadamente, ¿vale? 199 00:13:42,029 --> 00:13:59,669 Y ahora que le doy intensidad al emisivo, si le damos un 1, un 5, tengo que subirlo bastante porque estábamos en unidades reales de iluminación, si os acordáis, 500, 1000, una cosa así. 200 00:13:59,669 --> 00:14:12,470 Eso podría empezar a valer. Entonces ahora cuando le damos al media player se mueve. Pero es un rollo esto de tener que estar dándole al media player para que se vean los vídeos. 201 00:14:12,590 --> 00:14:20,289 ¿Yo cómo lo voy a hacer mejor? Con un sequencer. Yo quiero controlar el vídeo con una secuencia. Una secuencia de Unreal. 202 00:14:20,289 --> 00:14:37,350 Entonces, para no tener que andar dándole al media player y dejando esto minimizado, lo que voy a hacer es crearme una secuencia, botón derecho, cinematics level sequence y lo llamo lsdeskvideo. 203 00:14:37,350 --> 00:14:39,590 ¿vale? os acordáis que 204 00:14:39,590 --> 00:14:41,730 luego nosotros podríamos anidar secuencias 205 00:14:41,730 --> 00:14:43,049 dentro de otras, entonces 206 00:14:43,049 --> 00:14:45,649 si yo tengo una secuencia que reproduce este 207 00:14:45,649 --> 00:14:47,690 vídeo, yo podría tener una secuencia general 208 00:14:47,690 --> 00:14:49,710 en la que tuviera anidados todos los 209 00:14:49,710 --> 00:14:51,590 vídeos y que se reprodujeran 210 00:14:51,590 --> 00:14:53,210 todos a la vez ¿vale? 211 00:14:56,220 --> 00:14:57,799 entonces ¿cómo hacemos para 212 00:14:57,799 --> 00:14:59,759 controlar este vídeo desde un sequencer? 213 00:15:00,340 --> 00:15:01,740 pues tenemos que venir a track 214 00:15:01,740 --> 00:15:04,039 media track, ¿esto qué es lo que va a hacer? 215 00:15:04,480 --> 00:15:05,720 va a crear un media player 216 00:15:05,720 --> 00:15:07,759 parecido al que hemos hecho antes, bueno 217 00:15:07,759 --> 00:15:09,200 parecido no, igual 218 00:15:09,200 --> 00:15:11,980 vale, metemos un track 219 00:15:11,980 --> 00:15:13,919 de media track y aquí 220 00:15:13,919 --> 00:15:15,320 le tenemos que decir primero 221 00:15:15,320 --> 00:15:18,080 en el más que queremos 222 00:15:18,080 --> 00:15:19,620 meter el file media source 223 00:15:19,620 --> 00:15:21,639 o sea la referencia al vídeo 224 00:15:21,639 --> 00:15:23,379 que acabamos de crear 225 00:15:23,379 --> 00:15:25,960 eso es lo primero, pero con esto no es 226 00:15:25,960 --> 00:15:27,740 suficiente, vale 227 00:15:27,740 --> 00:15:29,759 con esto no es suficiente, también tenemos que venir aquí 228 00:15:29,759 --> 00:15:32,080 a la línea de tiempo, seleccionar el track 229 00:15:32,080 --> 00:15:33,460 botón derecho 230 00:15:33,460 --> 00:15:36,159 y en la parte de propiedades 231 00:15:36,159 --> 00:15:37,779 le tengo que asignar la textura 232 00:15:37,779 --> 00:15:41,480 que reproduce el vídeo, el Media Texture, ¿vale? 233 00:15:42,200 --> 00:15:46,220 Entonces le damos aquí y aquí lo tengo, ¿vale? 234 00:15:49,620 --> 00:15:54,159 Bien, más o menos, vale. 235 00:15:55,639 --> 00:15:58,039 Entonces, ahora una vez que está asignado, 236 00:15:58,159 --> 00:16:02,580 simplemente cuando reproducimos nuestro Sequencer 237 00:16:02,580 --> 00:16:04,360 ya se reproduce el vídeo, ¿vale? 238 00:16:06,600 --> 00:16:07,039 Es así. 239 00:16:07,899 --> 00:16:09,720 Claro, el vídeo tiene mucha más duración 240 00:16:09,720 --> 00:16:11,779 que lo que tenía nuestra secuencia en un primer momento, 241 00:16:11,779 --> 00:16:20,559 entonces lo podríamos hacer un poquito más grande, ¿vale? Le damos y ahí tenemos la volada del mundo girando. ¿Bien? ¿Sigos? ¿Más o menos? 242 00:16:22,039 --> 00:16:41,480 Ok, sí. Perfecto. Entonces, esto lo tendríamos que hacer, pero además lo que necesitamos es parametrizar la textura, ¿vale? Porque es esa textura a la que vamos a acceder luego desde Aximetry para poder poner cualquier vídeo, ¿vale? 243 00:16:41,779 --> 00:17:03,389 Entonces vuelvo al material y le digo que esta textura va a ser un parámetro, botón derecho convert to parameter y lo llamo video output, video barra baja output, ¿vale? 244 00:17:03,389 --> 00:17:11,309 Y este parámetro es al que yo voy a tener que acceder desde Blueprints para que Aximetry pueda cambiar cualquier video en esa ubicación, ¿vale? 245 00:17:11,309 --> 00:17:36,720 ¿Vale? Perfecto. Esto lo tendríamos que hacer también con el ticker, lo tendríamos que hacer con la pantalla y lo tendríamos que hacer con el zote. ¿Vale? Entonces, como ya tenemos nuestro material preparado, y os acordáis que el otro día habíamos hecho una serie de secuencias para ir lanzando, por ejemplo, la pantalla, ¿no? 246 00:17:36,720 --> 00:17:40,640 aquí teníamos la pantalla 247 00:17:40,640 --> 00:17:42,619 pues vamos a crearle un material para la pantalla 248 00:17:42,619 --> 00:17:46,490 vale, entonces 249 00:17:46,490 --> 00:17:48,869 para la pantalla voy a lanzar una secuencia 250 00:17:48,869 --> 00:17:52,539 entonces dentro de movies 251 00:17:52,539 --> 00:17:54,480 dentro de mi proyecto 252 00:17:54,480 --> 00:17:56,200 en movies, vamos a traernos 253 00:17:56,200 --> 00:17:57,279 una secuencia de imágenes 254 00:17:57,279 --> 00:18:02,440 para que veáis que se puede meter también 255 00:18:02,440 --> 00:18:04,019 entonces 256 00:18:04,019 --> 00:18:08,720 pues no sé, aquí en el tablao 257 00:18:08,720 --> 00:18:09,660 creo que tenía alguna 258 00:18:09,660 --> 00:18:12,400 creo que tenía aquí 259 00:18:12,400 --> 00:18:12,920 alguna 260 00:18:12,920 --> 00:18:15,619 algún vídeo 261 00:18:15,619 --> 00:18:17,240 este 262 00:18:17,240 --> 00:18:18,259 es tan chulo 263 00:18:18,259 --> 00:18:18,859 esto es una secuencia 264 00:18:18,859 --> 00:18:19,339 de imágenes 265 00:18:19,339 --> 00:18:19,559 ¿vale? 266 00:18:21,380 --> 00:18:22,240 entonces nada 267 00:18:22,240 --> 00:18:23,900 me traigo esta carpetita 268 00:18:23,900 --> 00:18:24,619 me la copio 269 00:18:24,619 --> 00:18:26,299 y la meto 270 00:18:26,299 --> 00:18:26,960 en la ubicación 271 00:18:26,960 --> 00:18:27,619 del proyecto 272 00:18:27,619 --> 00:18:28,180 del Garci 273 00:18:28,180 --> 00:18:29,660 que está aquí 274 00:18:29,660 --> 00:18:35,839 aquí 275 00:18:35,839 --> 00:18:38,319 dentro de movies 276 00:18:38,319 --> 00:18:41,049 control V 277 00:18:41,049 --> 00:18:41,509 ¿vale? 278 00:18:42,789 --> 00:18:43,849 1,6 gigas 279 00:18:43,849 --> 00:18:44,250 a lo mejor 280 00:18:44,250 --> 00:18:44,509 este 281 00:18:44,509 --> 00:18:45,690 esta es un poquito 282 00:18:45,690 --> 00:18:46,589 pesada 283 00:18:46,589 --> 00:18:47,329 de más 284 00:18:47,329 --> 00:18:48,250 y esto puede hacer 285 00:18:48,250 --> 00:18:48,829 que el proyecto 286 00:18:48,829 --> 00:18:49,829 se ralentice también 287 00:18:49,829 --> 00:18:50,690 ¿vale? 288 00:18:50,730 --> 00:18:51,509 porque tiene que cargar 289 00:18:51,509 --> 00:18:53,549 un montón de imágenes. A lo mejor lo que hago es quitarle 290 00:18:53,549 --> 00:18:55,589 la mitad 291 00:18:55,589 --> 00:19:00,809 de los frames. Le voy a 292 00:19:00,809 --> 00:19:02,769 dejar... Tiene 293 00:19:02,769 --> 00:19:04,289 muchísimos frames. Entonces 294 00:19:04,289 --> 00:19:06,650 le voy a quitar 295 00:19:06,650 --> 00:19:08,230 desde aquí 296 00:19:08,230 --> 00:19:10,690 hasta aquí. 297 00:19:11,289 --> 00:19:12,670 Estos me los cargo, ¿vale? 298 00:19:12,769 --> 00:19:16,569 Para que no pese tanto. Vale. 299 00:19:16,950 --> 00:19:17,710 Ya tenemos eso. 300 00:19:19,109 --> 00:19:20,430 Entonces, me voy a coger 301 00:19:20,430 --> 00:19:22,329 esta ubicación, CTRL-C 302 00:19:22,329 --> 00:19:24,369 y me vuelvo a mi proyecto. 303 00:19:25,170 --> 00:19:26,210 Y le digo, ¿vale? 304 00:19:26,569 --> 00:19:39,900 En mi carpeta de vídeos, ahora en lugar de un file media source, lo que necesito es un media image media source, ¿vale? 305 00:19:40,539 --> 00:19:49,759 Image media source, barra baja, bueno, lo voy a poner en mayúsculas, image media source, barra baja, vídeo 02, ahí está. 306 00:19:50,259 --> 00:19:52,519 Doble clic y esto es lo mismo. 307 00:19:53,039 --> 00:19:55,319 Aquí lo que me pide solamente es la ruta, ¿vale? 308 00:19:55,319 --> 00:20:04,470 Entonces le damos a los tres puntitos, selecciono la primera imagen y lo abro, ¿vale? Salvo. 309 00:20:06,150 --> 00:20:09,890 Entonces, ¿qué pasa? Que necesito otro Media Player diferente. 310 00:20:11,029 --> 00:20:16,250 Vamos a crear, botón derecho, Media, Media Player. 311 00:20:16,250 --> 00:20:19,990 Y me dice lo mismo, ¿quieres que crea una textura asociada a ese vídeo? Sí. 312 00:20:20,910 --> 00:20:25,009 Vale, entonces le llamamos Media Player, barra baja, vídeo 02. 313 00:20:25,009 --> 00:20:27,869 y me ha creado una textura 314 00:20:27,869 --> 00:20:29,630 ya asociada a eso, entonces dentro de este 315 00:20:29,630 --> 00:20:31,230 media player yo tengo que elegir 316 00:20:31,230 --> 00:20:32,769 el otro 317 00:20:32,769 --> 00:20:36,109 el image media source 318 00:20:36,109 --> 00:20:37,670 el de la secuencia, normalmente 319 00:20:37,670 --> 00:20:39,829 en real se comen mejor secuencias de imágenes 320 00:20:39,829 --> 00:20:41,049 que vídeos 321 00:20:41,049 --> 00:20:43,349 que archivos de vídeo 322 00:20:43,349 --> 00:20:45,970 suele costarle 323 00:20:45,970 --> 00:20:48,029 menos comérselo, pero ya os digo 324 00:20:48,029 --> 00:20:49,869 que el que realmente se come 325 00:20:49,869 --> 00:20:51,509 bien los vídeos es 326 00:20:51,509 --> 00:20:53,809 Aximetric, porque está pensado 327 00:20:53,809 --> 00:21:00,789 específicamente para ese tipo de cosas, para que le entren señales de vídeo, salidas de vídeo, para que le entren archivos, ¿vale? 328 00:21:00,789 --> 00:21:16,519 Unreal no funciona muy bien con vídeos, pero bueno, de cualquier manera. Vamos a crear una instancia de este material, lo llamo 329 00:21:16,519 --> 00:21:41,930 OMI Video Screen, doble clic y lo que tengo que hacer simplemente es sustituir esta textura, ¿vale? Ahora le tengo que meter la textura que está reproduciendo el otro vídeo, que sería esta, ¿vale? Perfecto, entonces ahora ese material lo podríamos poner aquí, ¿vale? 330 00:21:41,930 --> 00:22:11,880 Y ahora lo mismo, tengo que hacerme una secuencia para no depender del media player, de tener que estar haciendo play en el media player, me tengo que hacer una secuencia que se va a llamar ls screen video, botón derecho cinematics, level sequence, screen video, doble clic, nos sacamos en tracks el media track, 331 00:22:11,880 --> 00:22:14,480 que es una réplica del media player 332 00:22:14,480 --> 00:22:15,839 que hemos utilizado antes 333 00:22:15,839 --> 00:22:18,259 le damos al más 334 00:22:18,259 --> 00:22:20,920 le decimos que ahora lo que queremos reproducir 335 00:22:20,920 --> 00:22:22,240 es un image media source 336 00:22:22,240 --> 00:22:23,400 ¿vale? 337 00:22:23,740 --> 00:22:25,420 y le asignamos la textura 338 00:22:25,420 --> 00:22:28,119 si no le asignamos la textura no va a funcionar 339 00:22:28,119 --> 00:22:28,400 ¿vale? 340 00:22:28,680 --> 00:22:29,400 botón derecho 341 00:22:29,400 --> 00:22:30,579 properties 342 00:22:30,579 --> 00:22:32,700 y en la parte de media texture 343 00:22:32,700 --> 00:22:34,660 veis que siempre de primeras está vacío 344 00:22:34,660 --> 00:22:35,960 pues nada 345 00:22:35,960 --> 00:22:37,079 se lo asigno 346 00:22:37,079 --> 00:22:37,619 ¿vale? 347 00:22:37,960 --> 00:22:40,319 con eso debería ser suficiente 348 00:22:40,319 --> 00:22:40,579 ¿vale? 349 00:22:42,609 --> 00:22:43,569 Entonces, ¿qué pasa? 350 00:22:44,549 --> 00:22:51,509 Que como esto es un level sequence independiente del level sequence que me anima la pantalla, 351 00:22:52,250 --> 00:22:54,910 la pantalla está aquí abajo, si os acordáis. 352 00:22:55,829 --> 00:22:58,670 Entonces, cuando yo le doy al play, esto se reproduce. 353 00:22:59,910 --> 00:23:00,109 ¿Vale? 354 00:23:01,890 --> 00:23:06,650 Si yo quisiese que se reprodujera a la vez que se anima, 355 00:23:06,650 --> 00:23:13,240 pues tendría que venir a la secuencia de la pantalla, 356 00:23:13,460 --> 00:23:22,549 que es esta, que lo que hacía era básicamente esta animación, meterle aquí un Subsequence Track 357 00:23:22,549 --> 00:23:28,950 y dentro de este Subsequence decirle que el que quiero que me reproduzca a la vez es el Screen Video. 358 00:23:30,049 --> 00:23:37,140 ¿Vale? ¿Vale? Entonces cuando yo le doy al Play, se mueve. 359 00:23:37,220 --> 00:23:41,440 Pero claro, esta animación es muy cortita, la longitud del vídeo es mucho más larga, ¿vale? 360 00:23:41,440 --> 00:23:50,720 No tiene tanto sentido. Tendríamos que tener como una secuencia por encima que cogiera tanto la animación de la pantalla como el vídeo y que tuviese más longitud, ¿vale? 361 00:23:50,960 --> 00:23:59,740 Esto no es muy relevante porque ya os digo que los vídeos los vais a meter directamente con Aximet, ¿vale? Esto simplemente para que sepáis cómo se hace y cómo se deja preparado, ¿vale? 362 00:23:59,740 --> 00:24:06,160 me cargo la subsecuencia esta, ¿vale? Pero bueno, ya se ve un poquito como funciona todo esto, ¿no? 363 00:24:07,960 --> 00:24:13,720 Muy bien, pues nada, aquí simplemente en función del vídeo que tengamos, si tiene más blancos o menos blancos, 364 00:24:14,240 --> 00:24:18,799 pues tendríamos que ajustar la intensidad del emisivo, ¿vale? 365 00:24:18,799 --> 00:24:23,549 si le damos un 500 366 00:24:23,549 --> 00:24:25,869 o un 1000 367 00:24:25,869 --> 00:24:28,680 o un 368 00:24:28,680 --> 00:24:30,299 1000 369 00:24:30,299 --> 00:24:32,440 un 2000 en este caso 370 00:24:32,440 --> 00:24:33,579 porque es una imagen oscurita 371 00:24:33,579 --> 00:24:35,279 ahí ya se empieza a ver un poquito 372 00:24:35,279 --> 00:24:38,319 perfecto 373 00:24:38,319 --> 00:24:39,920 Diego una pregunta 374 00:24:39,920 --> 00:24:43,960 aumentar la emisión 375 00:24:43,960 --> 00:24:46,420 no consume muchos recursos del procesador 376 00:24:46,420 --> 00:24:47,660 porque es luz en tiempo real 377 00:24:47,660 --> 00:24:49,220 y además cogiendo los colores del vídeo 378 00:24:49,220 --> 00:24:51,180 en este caso no 379 00:24:51,180 --> 00:24:53,140 porque estábamos en 380 00:24:53,140 --> 00:24:54,759 el sistema de iluminación baqueada 381 00:24:54,759 --> 00:24:57,140 aquí lo que está pasando es que el brillo de la pantalla 382 00:24:57,140 --> 00:24:58,680 no está rebotando por la escena 383 00:24:58,680 --> 00:25:01,279 vale 384 00:25:01,279 --> 00:25:02,619 es simplemente un efecto visual 385 00:25:02,619 --> 00:25:05,160 o sea, lo que brilla es esta geometría 386 00:25:05,160 --> 00:25:07,400 pero la geometría que tiene alrededor no están recogiendo 387 00:25:07,400 --> 00:25:09,160 esos rebotes de luz 388 00:25:09,160 --> 00:25:10,680 vale, vale, vale 389 00:25:10,680 --> 00:25:11,140 ok 390 00:25:11,140 --> 00:25:11,480 vale 391 00:25:11,480 --> 00:25:14,819 esto es todo trampa 392 00:25:14,819 --> 00:25:17,529 entonces 393 00:25:17,529 --> 00:25:20,410 vale, se entiende más o menos 394 00:25:20,410 --> 00:25:21,309 cómo funciona esto 395 00:25:21,309 --> 00:25:21,910 de los vídeos 396 00:25:21,910 --> 00:25:22,630 dentro de Unreal 397 00:25:22,630 --> 00:25:24,230 ¿sí? 398 00:25:24,829 --> 00:25:25,250 sí, sí 399 00:25:25,250 --> 00:25:25,609 ok 400 00:25:25,609 --> 00:25:27,109 perfecto 401 00:25:27,109 --> 00:25:27,990 pues entonces 402 00:25:27,990 --> 00:25:29,430 vamos con la parte de render 403 00:25:29,430 --> 00:25:30,150 perdona 404 00:25:30,150 --> 00:25:31,069 sí 405 00:25:31,069 --> 00:25:32,609 una duda sería 406 00:25:32,609 --> 00:25:34,069 cómo podrías meter 407 00:25:34,069 --> 00:25:35,029 señal de vídeo 408 00:25:35,029 --> 00:25:36,549 en tiempo real 409 00:25:36,549 --> 00:25:36,930 quiero decir 410 00:25:36,930 --> 00:25:37,910 conexiones en directo 411 00:25:37,910 --> 00:25:38,309 con 412 00:25:38,309 --> 00:25:39,869 con otras cosas 413 00:25:39,869 --> 00:25:40,170 o sea 414 00:25:40,170 --> 00:25:41,109 acá señal de una cámara 415 00:25:41,109 --> 00:25:41,630 por ejemplo 416 00:25:41,630 --> 00:25:43,089 una conexión en directo 417 00:25:43,089 --> 00:25:44,210 vale 418 00:25:44,210 --> 00:25:45,849 eso lo vamos a hacer 419 00:25:45,849 --> 00:25:46,710 dentro de Axymetry 420 00:25:46,710 --> 00:25:47,970 aquí también se puede hacer 421 00:25:47,970 --> 00:25:49,029 es un poco más lioso 422 00:25:49,029 --> 00:25:49,710 si queréis 423 00:25:49,710 --> 00:25:50,549 os lo enseño 424 00:25:50,549 --> 00:25:53,230 si queréis os lo enseño, venga 425 00:25:53,230 --> 00:25:54,930 esto no estaba previsto 426 00:25:54,930 --> 00:25:56,490 creo que tengo que 427 00:25:56,490 --> 00:25:59,569 si es que es una pérdida de tiempo y que lo vamos a hacer directamente en 428 00:25:59,569 --> 00:26:00,089 axiometría 429 00:26:00,089 --> 00:26:03,650 no pasa nada 430 00:26:03,650 --> 00:26:05,529 a ver, lo que pasa es que 431 00:26:05,529 --> 00:26:07,809 voy a meter mi webcam dentro de la pantalla 432 00:26:07,809 --> 00:26:08,529 ¿vale? 433 00:26:09,470 --> 00:26:10,630 pero me tengo que 434 00:26:10,630 --> 00:26:13,670 apagar la webcam en TeamViewer 435 00:26:13,670 --> 00:26:16,660 que eso no sé cómo se hace 436 00:26:16,660 --> 00:26:17,680 así se hace, vale 437 00:26:17,680 --> 00:26:19,200 entonces, fijaros 438 00:26:19,200 --> 00:26:43,279 Yo lo que podría hacer es sacar la pantalla y decirle que lo que quiero que se reproduzca aquí es, me tendría que hacer un, a ver, si yo le doy aquí al media player, si le doy play, ¿se reproduce? 439 00:26:43,279 --> 00:26:46,700 No, porque lo tengo ya con el otro Media Player. 440 00:26:47,980 --> 00:26:53,299 Voy a quitarle un momento esto, ¿vale? 441 00:26:53,400 --> 00:27:00,160 En el Screen Video voy a quitarle esto para que lo veáis. 442 00:27:01,660 --> 00:27:07,359 A ver, saco la... 443 00:27:07,359 --> 00:27:10,960 Esta es la animación de la pantalla, ¿vale? 444 00:27:10,960 --> 00:27:30,599 Y ahora mismo lo que estamos reproduciendo aquí debería ser este vídeo que no se está reproduciendo. ¿Por qué no se está reproduciendo? A ver, una cosita, un momento. 445 00:27:30,599 --> 00:27:47,319 Es que, fijaros, la forma de meter una señal aquí en Unreal es en el Media Player, en la parte de arriba de la izquierda, tenemos un desplegable que me permite meter señales de audio o de vídeo en tiempo real. 446 00:27:47,319 --> 00:28:06,960 Entonces, si yo le digo que me coja ahora la cámara, yo estoy aquí, ¿vale? Entonces, esto es lo que tendría que reproducir ese AI, ¿vale? Con lo cual, vamos a ver si consigo hacerlo. Siempre me pasa igual con esto. 447 00:28:06,960 --> 00:28:27,440 A ver, tenemos este material que es el video screen, se lo aplico y este material debería de tener este video input que es este de aquí, esto está. 448 00:28:27,440 --> 00:28:32,000 creo que cuando lo he metido en el Sequencer se ha quedado bloqueado 449 00:28:32,000 --> 00:28:35,039 entonces voy a hacer uno nuevo y se lo aplico 450 00:28:35,039 --> 00:28:40,069 me voy a hacer un nuevo Media Player 451 00:28:40,069 --> 00:28:43,890 aquí le digo que me crea una textura 452 00:28:43,890 --> 00:28:48,950 lo llamo Media Player barra baja Webcam 453 00:28:48,950 --> 00:28:54,170 me creo un nuevo material 454 00:28:54,170 --> 00:28:56,910 a partir del Master 455 00:28:56,910 --> 00:29:00,630 una instancia que se llame MI barra baja Webcam 456 00:29:00,630 --> 00:29:05,500 y este es el que aplico aquí, ¿vale? 457 00:29:07,359 --> 00:29:13,319 Ahora aquí le tengo que meter la textura que esté reproduciendo el nuevo Media Player, ¿vale? 458 00:29:13,740 --> 00:29:17,640 El que acabo de crear, que de momento está vacía, ¿vale? 459 00:29:18,079 --> 00:29:18,619 Ahí está. 460 00:29:20,259 --> 00:29:26,460 Entonces, si yo me vengo aquí abajo y le digo que lo que quiero reproducir es, 461 00:29:27,500 --> 00:29:32,039 en lugar de un Find Media Source o un Image Media Source, lo que quiero es una señal en directo, 462 00:29:32,039 --> 00:29:34,480 me tengo que venir aquí y decirle que coja 463 00:29:34,480 --> 00:29:36,180 mi cámara web 464 00:29:36,180 --> 00:29:37,599 ¿vale? y aquí estoy 465 00:29:37,599 --> 00:29:42,259 ¿bien? pero esto 466 00:29:42,259 --> 00:29:44,259 es mucho más sencillo 467 00:29:44,259 --> 00:29:45,839 en Aximetri, mucho más 468 00:29:45,839 --> 00:29:46,920 ¿vale? 469 00:29:47,779 --> 00:29:49,579 está preparado para estar 470 00:29:49,579 --> 00:29:52,259 he visto que recoge también fuentes NDI 471 00:29:52,259 --> 00:29:53,039 ¿no? por lo que he visto 472 00:29:53,039 --> 00:29:56,000 si las tienes instaladas, si, yo es que tengo instaladas las 473 00:29:56,000 --> 00:29:56,940 NDI tools 474 00:29:56,940 --> 00:30:00,240 y todo esto son señales NDI 475 00:30:00,240 --> 00:30:01,259 esto es vídeo IP 476 00:30:01,259 --> 00:30:03,400 tú puedes emitir vídeo por 477 00:30:03,400 --> 00:30:04,819 por la wifi, vamos 478 00:30:04,819 --> 00:30:08,970 y también me está cogiendo mi tarjeta 479 00:30:08,970 --> 00:30:10,569 capturadora, que es la Blackmagic 480 00:30:10,569 --> 00:30:14,569 ¿vale? y bueno, y un 481 00:30:14,569 --> 00:30:16,529 plugin que tenía para la Canon de fotos 482 00:30:16,529 --> 00:30:18,710 que también transformaba la Canon en una webcam 483 00:30:18,710 --> 00:30:20,970 te pilla todo lo que tengas instalado 484 00:30:20,970 --> 00:30:23,410 ¿vale? ¿bien? 485 00:30:26,990 --> 00:30:29,150 entonces, vamos a ver como renderizamos 486 00:30:29,150 --> 00:30:30,769 vídeo, la parte de vídeo 487 00:30:30,769 --> 00:30:33,589 es mecánica 488 00:30:33,589 --> 00:30:34,329 también 489 00:30:34,329 --> 00:30:37,369 la parte de vídeo es mecánica, para renderizar 490 00:30:37,369 --> 00:30:38,809 tenemos que tener 491 00:30:38,809 --> 00:30:53,970 activado un plugin que se llama Movie Render Cube. Tenemos que venir a Edit, Plugins y escribimos aquí Movie Render. Tenemos que tener activados estos dos, ¿vale? 492 00:30:54,150 --> 00:31:04,210 Tanto el Movie Render Cube, que al final, como su propio nombre indica, es una cola de render, me va a permitir meter una serie de planos en una cola y cuando acabe uno 493 00:31:04,210 --> 00:31:06,150 empieza a renderizarse otro y luego 494 00:31:06,150 --> 00:31:08,250 tenemos que activar también este de aquí que son 495 00:31:08,250 --> 00:31:10,329 los passes, los additional render 496 00:31:10,329 --> 00:31:11,930 passes, esto me va a dar 497 00:31:11,930 --> 00:31:14,230 passes de render que luego me puedan servir para 498 00:31:14,230 --> 00:31:15,549 postproducción, vale 499 00:31:15,549 --> 00:31:18,329 ahora vemos los que son pero hay que 500 00:31:18,329 --> 00:31:20,009 activarlo y reiniciar 501 00:31:20,009 --> 00:31:29,569 no os preocupéis 502 00:31:29,569 --> 00:31:31,130 que luego cuando acabe la clase os subo este 503 00:31:31,130 --> 00:31:33,210 proyecto ya para que lo tengáis preparado para la parte 504 00:31:33,210 --> 00:31:35,109 de asimetria, no hace 505 00:31:35,109 --> 00:31:36,190 falta que lo vayáis haciendo 506 00:31:36,190 --> 00:31:41,730 entonces, como hacemos 507 00:31:41,730 --> 00:31:44,130 nosotros para renderizar 508 00:31:44,130 --> 00:31:45,329 cualquier plano 509 00:31:45,329 --> 00:31:46,450 fijaros 510 00:31:46,450 --> 00:31:48,490 teníamos por ejemplo 511 00:31:48,490 --> 00:31:50,690 el shot 1 512 00:31:50,690 --> 00:31:54,029 que era el plano general este larguísimo que hicimos el otro día 513 00:31:54,029 --> 00:31:57,309 que venía por aquí 514 00:31:57,309 --> 00:32:01,380 y se metía dentro 515 00:32:01,380 --> 00:32:01,859 de la 516 00:32:01,859 --> 00:32:04,880 este no, este es demasiado largo 517 00:32:04,880 --> 00:32:07,160 vamos a probar con el otro, con el 2 518 00:32:07,160 --> 00:32:09,279 que era este que salía aquí 519 00:32:09,279 --> 00:32:10,539 el bicho bailando 520 00:32:10,539 --> 00:32:13,480 teníamos el plano de vértigo y teníamos el objeto 521 00:32:13,480 --> 00:32:14,440 este dando vueltas 522 00:32:14,440 --> 00:32:17,279 vale 523 00:32:17,279 --> 00:32:22,450 voy a poner esto aquí para que no se quede parado 524 00:32:22,450 --> 00:32:23,009 el muñeco 525 00:32:23,009 --> 00:32:26,509 vale, tenemos esto 526 00:32:26,509 --> 00:32:28,549 ¿cómo renderizo yo esto? 527 00:32:28,549 --> 00:32:30,309 de una forma profesional 528 00:32:30,309 --> 00:32:32,970 para luego poder meterle un poco de postproducción 529 00:32:32,970 --> 00:32:34,450 pues muy fácil 530 00:32:34,450 --> 00:32:36,150 tengo que venir aquí a la clapeta 531 00:32:36,150 --> 00:32:38,750 en los tres puntitos y elegir 532 00:32:38,750 --> 00:32:39,930 Movie Render Queue 533 00:32:39,930 --> 00:32:41,769 y luego le doy al botón 534 00:32:41,769 --> 00:32:44,470 el antiguo, el Movie Scene Capture 535 00:32:44,470 --> 00:32:46,369 se suele utilizar para 536 00:32:46,369 --> 00:32:50,349 hacer previsualizaciones ¿vale? ¿por qué? porque el resultado de render 537 00:32:50,349 --> 00:32:54,390 que te da es bastante pobre ¿vale? sin embargo MovieRenderQ 538 00:32:54,390 --> 00:32:58,410 nos permite acceder a los parámetros que nos permiten subir 539 00:32:58,410 --> 00:33:02,630 la calidad del render a costa de tiempo de render, lógicamente 540 00:33:02,630 --> 00:33:06,569 ¿no? entonces le damos a la clapeta y nos aparece esta ventana 541 00:33:06,569 --> 00:33:10,490 esta es la ventana de MovieRenderQ y esta es la cola 542 00:33:10,490 --> 00:33:14,430 donde yo puedo ir apilando planos para que 543 00:33:14,430 --> 00:33:16,329 pueda darle a render e irme a tomar cañas. 544 00:33:17,589 --> 00:33:18,390 ¿Vale? Porque si no 545 00:33:18,390 --> 00:33:20,390 tengo que estar esperando a que acabe uno para lanzar 546 00:33:20,390 --> 00:33:22,450 otro. Entonces 547 00:33:22,450 --> 00:33:24,470 ¿Cómo se configura esto? 548 00:33:24,609 --> 00:33:25,309 Pues muy fácil. 549 00:33:26,890 --> 00:33:28,470 Venimos aquí al botoncito que pone 550 00:33:28,470 --> 00:33:30,210 settings and save 551 00:33:30,210 --> 00:33:32,369 config y se nos abre otra 552 00:33:32,369 --> 00:33:34,369 ventana. Esta ventana es la que 553 00:33:34,369 --> 00:33:36,069 nos va a permitir configurar el render. 554 00:33:36,509 --> 00:33:37,990 Es aquí donde tenemos que hacerlo de 555 00:33:37,990 --> 00:33:39,869 laces, lo que me has preguntado antes. 556 00:33:40,470 --> 00:33:42,450 ¿Vale? En esta ventanita es donde trabaja 557 00:33:42,450 --> 00:33:43,890 el William Foucher este para 558 00:33:43,890 --> 00:33:46,670 para todo el proceso este 559 00:33:46,670 --> 00:33:48,470 del espacio de color 560 00:33:48,470 --> 00:33:50,390 pero bueno, más allá de eso 561 00:33:50,390 --> 00:33:52,809 lo que tenemos que definir 562 00:33:52,809 --> 00:33:54,490 aquí es lo siguiente 563 00:33:54,490 --> 00:33:56,869 primero, en la parte 564 00:33:56,869 --> 00:33:59,150 de output vamos a definir la resolución 565 00:33:59,150 --> 00:34:00,990 en la que vamos a renderizar 566 00:34:00,990 --> 00:34:02,029 nuestro vídeo, vale 567 00:34:02,029 --> 00:34:04,490 si el formato 568 00:34:04,490 --> 00:34:06,809 si la relación de aspecto ancho 569 00:34:06,809 --> 00:34:08,889 y alto no corresponde con la relación 570 00:34:08,889 --> 00:34:10,530 de aspecto que yo he puesto en mi cámara 571 00:34:10,530 --> 00:34:12,469 lo que me va a crear son bandas negras 572 00:34:14,510 --> 00:34:15,170 Se entiende, ¿no? 573 00:34:16,090 --> 00:34:19,510 O sea, si quiero que me renderice el 100% de lo que tengo en la cámara, 574 00:34:19,630 --> 00:34:22,170 la relación de aspecto al menos tiene que ser igual. 575 00:34:22,550 --> 00:34:24,550 Porque si no, él me va a poner bandas negras. 576 00:34:24,909 --> 00:34:27,929 Arriba, o sea, arriba y abajo, o a izquierda o derecha, 577 00:34:28,010 --> 00:34:29,769 dependiendo de cuál sea la relación de aspecto. 578 00:34:30,570 --> 00:34:36,670 Entonces, yo aquí, por ejemplo, le podría poner un 2K para probar. 579 00:34:37,829 --> 00:34:39,750 ¿Cuánto es 2K en píxeles? 580 00:34:39,750 --> 00:34:50,369 2K resolution, esto es, a ver, 2560 x 1440, ¿no? 581 00:34:51,369 --> 00:35:00,349 O vamos a ponérselo, 2560 x 1440, ¿vale? 582 00:35:00,489 --> 00:35:01,289 Esto es un 2K. 583 00:35:01,849 --> 00:35:10,409 Luego aquí yo puedo elegir mantener el frame rate que haya puesto en mi sequencer o sobreescribirlo, lo que yo quiera, ¿vale? 584 00:35:10,409 --> 00:35:13,650 En principio, si no tocamos nada, 24 frames por segundo, ¿vale? 585 00:35:15,289 --> 00:35:18,289 Luego, ¿qué tenemos que decidir también? 586 00:35:18,829 --> 00:35:20,289 El directorio donde lo guardo. 587 00:35:20,869 --> 00:35:22,789 El primero de todos de arriba es el directorio. 588 00:35:23,030 --> 00:35:33,829 Entonces, le damos a los tres puntitos y le digo que me voy a hacer una carpetita que se llame renders. 589 00:35:36,070 --> 00:35:37,849 Y aquí lo vamos a ir guardando, ¿vale? 590 00:35:38,989 --> 00:35:39,429 Perfecto. 591 00:35:39,510 --> 00:35:41,869 Este es mi output directory. 592 00:35:41,869 --> 00:36:06,369 Luego aquí te dice el file format. Aquí en función de si estoy renderizando una secuencia o estoy renderizando un archivo de vídeo, se pondrá de una forma o se pondrá de otra. En principio, fijaros, el formato del nombre que le va a dar a los archivos de la secuencia es el nombre de la secuencia, punto, y el frame number, ¿vale? 593 00:36:07,010 --> 00:36:21,989 Entonces, si mi secuencia en este caso se llama ls barra baja shot 02, pues aquí me va a poner ls barra baja shot 02 punto 00000, porque siempre empieza por el 0, ¿vale? 594 00:36:21,989 --> 00:36:26,449 Y luego 1, 2, 3, en función del número de frames que tenga mi secuencia, ¿vale? 595 00:36:27,650 --> 00:36:28,909 ¿Se entiende, chicos? 596 00:36:29,909 --> 00:36:30,730 Voy a encender la cámara. 597 00:36:32,550 --> 00:36:33,429 ¿Me dejará? 598 00:36:34,170 --> 00:36:36,329 No, no me va a dejar porque la tengo seleccionada. 599 00:36:36,829 --> 00:36:37,489 Así sí me deja. 600 00:36:37,750 --> 00:36:37,869 Vale. 601 00:36:39,170 --> 00:36:41,750 Entonces, esto es lo primero que hay que configurar. 602 00:36:42,190 --> 00:36:42,369 ¿Vale? 603 00:36:43,010 --> 00:36:43,610 Lo siguiente. 604 00:36:45,449 --> 00:36:47,309 ¿Qué tipo de archivo necesito yo? 605 00:36:47,550 --> 00:36:50,369 Ahora por defecto me viene una secuencia JPG. 606 00:36:50,449 --> 00:36:52,309 Yo nunca suelo utilizar la secuencia JPG. 607 00:36:52,889 --> 00:36:53,090 ¿Vale? 608 00:36:53,090 --> 00:36:54,110 Entonces me la cargo. 609 00:36:55,010 --> 00:36:57,050 Y le doy al botoncito de Settings. 610 00:36:57,449 --> 00:36:58,570 ¿Aquí qué tenemos que meter? 611 00:36:58,829 --> 00:37:02,710 Tenemos que meter la secuencia que nosotros queramos. 612 00:37:03,130 --> 00:37:03,230 ¿Vale? 613 00:37:03,429 --> 00:37:21,130 Si lo que queremos es hacer postproducción, yo recomiendo que rendericéis en XR, ¿vale? Es un formato que tiene 32 bits y que te permite almacenar pases de render, ¿vale? Dentro del archivo. Esto tiene sus cosas buenas y sus cosas malas. 614 00:37:21,130 --> 00:37:32,710 Tiene la ventaja de que tenemos toda la información de iluminación disponible en cada frame y tiene el contra de que pesan mucho, ¿vale? 615 00:37:32,730 --> 00:37:39,670 Son archivos que suelen pesar mucho, entonces tenemos que tener discos duros de gran capacidad y muy rápidos para que esto funcione bien, ¿vale? 616 00:37:41,030 --> 00:37:42,929 Entonces, vamos a poner EXR. 617 00:37:43,710 --> 00:37:49,570 Una vez que ponemos EXR, veis que aquí a la derecha me salen algunas cosas que se pueden configurar. 618 00:37:49,570 --> 00:37:52,070 primero, si le voy a meter pases de render 619 00:37:52,070 --> 00:37:53,809 tengo que activarle el multilayer 620 00:37:53,809 --> 00:37:55,289 sí o sí 621 00:37:55,289 --> 00:37:58,369 y después hay aquí una serie de algoritmos de compresión 622 00:37:58,369 --> 00:38:00,349 si le digo que no me lo comprima 623 00:38:00,349 --> 00:38:02,429 probablemente cada frame 624 00:38:02,429 --> 00:38:03,389 me pese 625 00:38:03,389 --> 00:38:06,489 entre 300 y 800 megas 626 00:38:06,489 --> 00:38:08,090 según la resolución 627 00:38:08,090 --> 00:38:09,570 entonces imaginaros 628 00:38:09,570 --> 00:38:10,949 lo que puede llegar a pesar 629 00:38:10,949 --> 00:38:13,010 un proyecto completo renderizado 630 00:38:13,010 --> 00:38:14,949 es una burrada 631 00:38:14,949 --> 00:38:17,909 bueno, yo lo dejo 632 00:38:17,909 --> 00:38:20,570 a vuestro criterio, ¿vale? 633 00:38:20,829 --> 00:38:27,469 Yo normalmente suelo sacar el frame comprimido 634 00:38:27,469 --> 00:38:32,070 en algoritmo PIZ, que bueno, te quita algo de calidad, 635 00:38:32,429 --> 00:38:34,670 pero hace que pese bastante menos, ¿vale? 636 00:38:34,889 --> 00:38:39,090 Eso ya cada uno que lo haga como considere. 637 00:38:39,230 --> 00:38:40,570 Según lo que estéis acostumbrados también. 638 00:38:40,710 --> 00:38:43,409 Cuando veáis el tutorial de William, 639 00:38:44,010 --> 00:38:46,969 pues él le quita la compresión porque le gusta trabajar a tope 640 00:38:46,969 --> 00:38:48,070 a todo lo que da la máquina 641 00:38:48,070 --> 00:38:50,510 bueno, luego 642 00:38:50,510 --> 00:38:52,829 settings, que más settings hay que meter 643 00:38:52,829 --> 00:38:54,789 tenemos que meter un setting que se llama 644 00:38:54,789 --> 00:38:58,670 Game Overrides 645 00:38:58,670 --> 00:39:00,570 el Game Overrides que va a hacer 646 00:39:00,570 --> 00:39:03,190 va a deshabilitar 647 00:39:03,190 --> 00:39:05,210 todos los mecanismos de optimización 648 00:39:05,210 --> 00:39:06,849 que tiene el visor, os acordáis 649 00:39:06,849 --> 00:39:08,929 que decíamos que el visor 650 00:39:08,929 --> 00:39:10,869 hacía lots, iba cambiando 651 00:39:10,869 --> 00:39:12,889 la geometría en función de la distancia 652 00:39:12,889 --> 00:39:14,590 a cámara, eso lo deshabilita, siempre 653 00:39:14,590 --> 00:39:16,630 con esto, siempre me va a mostrar 654 00:39:16,630 --> 00:39:17,949 la malla que más pesa 655 00:39:17,949 --> 00:39:20,510 en todos los casos. También 656 00:39:20,510 --> 00:39:22,989 hacían bitmapping. Iba haciendo una compresión 657 00:39:22,989 --> 00:39:24,829 de resolución de texturas en función 658 00:39:24,829 --> 00:39:27,030 de la distancia cámara. Lo deshabilita. 659 00:39:27,489 --> 00:39:28,710 Me muestra siempre las 660 00:39:28,710 --> 00:39:30,210 texturas a tope de calidad. 661 00:39:31,170 --> 00:39:31,969 ¿Qué más cosas hace? 662 00:39:32,989 --> 00:39:34,510 Las sombras tienen un 663 00:39:34,510 --> 00:39:36,530 umbral a partir del cual, según la 664 00:39:36,530 --> 00:39:38,550 distancia, desaparecen. Bueno, pues con 665 00:39:38,550 --> 00:39:40,590 esto siempre se ven las sombras 666 00:39:40,590 --> 00:39:42,510 a toda la distancia. El 667 00:39:42,510 --> 00:39:44,510 foliage, que es la herramienta que 668 00:39:44,510 --> 00:39:46,469 se utiliza para hacer scatter, para repartir 669 00:39:46,469 --> 00:39:48,610 piedras y para repartir césped y cosas 670 00:39:48,610 --> 00:39:50,510 así, igual tiene un mecanismo de 671 00:39:50,510 --> 00:39:52,710 optimización que es que a partir de cierta distancia 672 00:39:52,710 --> 00:39:54,349 que se llama 673 00:39:54,349 --> 00:39:56,769 cool distance, esa distancia 674 00:39:56,769 --> 00:39:58,750 elimina todos los elementos 675 00:39:58,750 --> 00:40:00,530 que estén a partir 676 00:40:00,530 --> 00:40:02,389 de esa distancia, pues 677 00:40:02,389 --> 00:40:04,489 con esto deshabilitamos eso también 678 00:40:04,489 --> 00:40:06,530 todo lo que rendericemos con el 679 00:40:06,530 --> 00:40:08,849 game overrides se va a ver hasta el infinito 680 00:40:08,849 --> 00:40:10,889 esto que hace, pues que le cueste 681 00:40:10,889 --> 00:40:12,849 más renderizarlo, al final 682 00:40:12,849 --> 00:40:14,829 lo que va a pasar es que los render van a tratar 683 00:40:14,829 --> 00:40:16,769 más en renderizarse, pero es una manera de 684 00:40:16,769 --> 00:40:18,929 resetear los sistemas 685 00:40:18,929 --> 00:40:20,550 de optimización que trae Unreal 686 00:40:20,550 --> 00:40:22,670 configurados por defecto. 687 00:40:22,670 --> 00:40:24,869 ¿Vale? ¿Bien? ¿Más o menos? 688 00:40:25,969 --> 00:40:26,829 ¿Se entiende? 689 00:40:27,349 --> 00:40:27,929 ¿Hasta aquí? 690 00:40:29,449 --> 00:40:29,670 Sí. 691 00:40:32,010 --> 00:40:34,050 Perfecto. Más cosas 692 00:40:34,050 --> 00:40:35,989 que tenemos que meter para 693 00:40:35,989 --> 00:40:37,809 tener el render a tope de calidad. 694 00:40:38,789 --> 00:40:40,050 Le tenemos que meter 695 00:40:40,050 --> 00:40:42,010 el anti-aliasing. Claro, el 696 00:40:42,010 --> 00:40:43,389 anti-aliasing es otro sistema 697 00:40:43,389 --> 00:40:46,150 de optimización 698 00:40:46,150 --> 00:40:48,110 de imagen que utiliza Unreal en tiempo 699 00:40:48,110 --> 00:40:48,769 real, entonces 700 00:40:48,769 --> 00:40:52,150 el anti-aliasing lo tenemos 701 00:40:52,150 --> 00:40:53,909 que sobreescribir, veis que aquí pone 702 00:40:53,909 --> 00:40:55,449 override anti-aliasing 703 00:40:55,449 --> 00:40:58,030 tenemos que sobreescribirlo y decirle que no 704 00:40:58,030 --> 00:40:59,650 utilice ningún 705 00:40:59,650 --> 00:41:01,510 algoritmo de anti-aliasing 706 00:41:01,510 --> 00:41:03,989 ninguno, vale, vamos a ir a full 707 00:41:03,989 --> 00:41:07,670 esto va a hacer que las 708 00:41:07,670 --> 00:41:10,050 las líneas diagonales 709 00:41:10,050 --> 00:41:11,409 de nuestras imágenes no se 710 00:41:11,409 --> 00:41:14,130 no tengan prácticamente diente de sierra 711 00:41:14,130 --> 00:41:14,829 vale 712 00:41:14,829 --> 00:41:20,190 pero va a hacer que le cueste más renderizar cada frame, evidentemente, ¿vale? 713 00:41:20,769 --> 00:41:25,389 Y luego aquí tenemos dos parámetros que son muy importantes, estos dos. 714 00:41:26,150 --> 00:41:32,329 Uno, el primero se llama Spatial Sample Count y el segundo se llama Temporal Sample Count. 715 00:41:32,510 --> 00:41:33,289 ¿Estos dos qué hacen? 716 00:41:34,610 --> 00:41:41,130 Estos dos lo que van a hacer es dividir el espacio entre frame y frame en subframes. 717 00:41:41,130 --> 00:41:52,670 Entonces, toda la información que tenga de subframes entre frame y frame, va a ser información que él va a utilizar para que el frame final, tanto el primero como el segundo, tengan más calidad. 718 00:41:53,210 --> 00:42:01,889 Es un mecanismo que tiene el motor de render para tener información extra que le permita dar un render, dar un frame de mayor calidad visual. 719 00:42:02,630 --> 00:42:06,449 Entonces, ¿para qué sirve el spatial sample count? 720 00:42:06,449 --> 00:42:10,369 Para cuando tenemos planos que tengan desenfoque de profundidad de campo. 721 00:42:10,369 --> 00:42:12,610 si nosotros queremos mejorar 722 00:42:12,610 --> 00:42:15,230 la calidad del desenfoque de profundidad 723 00:42:15,230 --> 00:42:17,250 de campo tenemos que subir este parámetro 724 00:42:17,250 --> 00:42:18,550 luego 725 00:42:18,550 --> 00:42:20,849 por el contrario si tenemos planos 726 00:42:20,849 --> 00:42:22,989 que tienen motion blur, tienen elementos 727 00:42:22,989 --> 00:42:25,150 moviéndose en la imagen y queremos 728 00:42:25,150 --> 00:42:26,610 que el desenfoque de movimiento 729 00:42:26,610 --> 00:42:29,389 se vea más definido y se vea 730 00:42:29,389 --> 00:42:31,050 con más calidad el que tenemos 731 00:42:31,050 --> 00:42:33,409 que subir es el temporal sample count 732 00:42:33,409 --> 00:42:35,130 lo malo que tienen estos 733 00:42:35,130 --> 00:42:36,690 es que uno multiplica al otro 734 00:42:36,690 --> 00:42:39,210 con lo cual si yo tengo 735 00:42:39,210 --> 00:42:39,829 por ejemplo 736 00:42:39,829 --> 00:42:42,809 un poco de desenfoque 737 00:42:42,809 --> 00:42:44,650 y bastante motion blur 738 00:42:44,650 --> 00:42:47,329 yo podría poner 4 en 739 00:42:47,329 --> 00:42:49,650 spatial y 8 en temporal 740 00:42:49,650 --> 00:42:50,610 y esto que va a hacer 741 00:42:50,610 --> 00:42:53,570 que el motor de render, aparte de renderizar 742 00:42:53,570 --> 00:42:55,369 los frames que yo 743 00:42:55,369 --> 00:42:57,050 tenía previstos, me renderice 744 00:42:57,050 --> 00:42:58,590 entre medias de cada frame 745 00:42:58,590 --> 00:43:01,550 32 subframes, 4 por 8 746 00:43:01,550 --> 00:43:03,050 ¿se entiende? 747 00:43:03,409 --> 00:43:08,829 chicos, ¿se entiende esto? 748 00:43:08,829 --> 00:43:12,909 entonces claro 749 00:43:12,909 --> 00:43:14,550 cuanto más suba esto 750 00:43:14,550 --> 00:43:16,170 más voy a tardar en renderizar 751 00:43:16,170 --> 00:43:17,070 la secuencia 752 00:43:17,070 --> 00:43:19,130 porque esto va a hacer 753 00:43:19,130 --> 00:43:20,309 que yo vaya renderizando 754 00:43:20,309 --> 00:43:21,269 más subframes 755 00:43:21,269 --> 00:43:22,409 entre frame y frame 756 00:43:22,409 --> 00:43:23,150 ahora lo vemos 757 00:43:23,150 --> 00:43:23,469 ¿vale? 758 00:43:25,090 --> 00:43:26,170 entonces ¿qué es lo ideal? 759 00:43:26,630 --> 00:43:28,389 que en función de cómo sea el plano 760 00:43:28,389 --> 00:43:29,769 yo adapte estos parámetros 761 00:43:29,769 --> 00:43:30,969 cuando yo quiero sacar 762 00:43:30,969 --> 00:43:33,230 planos a mucha resolución 763 00:43:33,230 --> 00:43:34,150 con mucha calidad 764 00:43:34,150 --> 00:43:36,409 puedo llegar a subir esto 765 00:43:36,409 --> 00:43:38,010 hasta pues no sé 766 00:43:38,010 --> 00:43:41,030 32 por 64 767 00:43:41,030 --> 00:43:43,389 pero claro, 32 por 64 768 00:43:43,389 --> 00:43:44,730 ¿cuántos subframes son? 769 00:43:44,849 --> 00:43:45,590 un montón, ¿no? 770 00:43:48,059 --> 00:43:50,139 dependiendo de cómo sea nuestra máquina de rápida 771 00:43:50,139 --> 00:43:51,639 también me lo puedo llegar a permitir 772 00:43:51,639 --> 00:43:54,039 32 por 64 773 00:43:54,039 --> 00:43:56,699 son 2048 subframes 774 00:43:56,699 --> 00:43:58,420 entre frames, son un montón 775 00:43:58,420 --> 00:44:00,420 ¿vale? entonces 776 00:44:00,420 --> 00:44:02,099 cuidadito con esto 777 00:44:02,099 --> 00:44:04,500 yo normalmente 778 00:44:04,500 --> 00:44:06,380 suelo hacer pruebas en función de 779 00:44:06,380 --> 00:44:07,599 de cómo sea el plano 780 00:44:07,599 --> 00:44:12,420 pues suelo jugar con 4 y 8 en los primeros renders para hacer una prueba 781 00:44:12,420 --> 00:44:17,920 y luego dependiendo de cómo sea el plano, subo como mucho a 16, ¿vale? 782 00:44:18,320 --> 00:44:21,579 4 por 16 ya son un montón de subframes, ¿vale? 783 00:44:21,820 --> 00:44:23,099 Pero tenerlo en cuenta. 784 00:44:23,980 --> 00:44:26,639 Hacer pruebecitas con 4 y 4, con 4 y 8, 785 00:44:27,320 --> 00:44:30,460 y luego ya cuando se vea lo que queréis que se vea, 786 00:44:30,559 --> 00:44:33,820 le subís o el del motion blur o el del depth of field, 787 00:44:33,940 --> 00:44:35,300 según cómo sea el plano, ¿vale? 788 00:44:38,000 --> 00:44:38,480 Perfecto. 789 00:44:38,480 --> 00:44:57,900 ¿Qué más cosas tengo que añadir aquí a este preset de renderizado? Le tengo que meter también variables de consola. Las variables de consola son comandos que yo puedo meter en el motor que no están sujetos a ningún botón del editor. 790 00:44:57,900 --> 00:45:10,619 O sea, con esto estoy hackeando un poco el sistema. O sea, estoy haciendo que el editor o que el motor funcione de una forma que no suele funcionar. ¿Para qué? Para conseguir más calidad, básicamente. 791 00:45:10,619 --> 00:45:20,300 Entonces, ¿cuáles son las variables de consola que yo tengo que meter aquí para que mi imagen final se vea lo mejor posible? Pues para eso hay que ir a la documentación de Unreal. 792 00:45:20,760 --> 00:45:40,320 Si yo pongo aquí, MovieRenderCube, ConsolVariables, y me meto aquí, esto es la documentación. Entonces, voy bajando, voy bajando, voy bajando. 793 00:45:40,320 --> 00:45:48,679 Bueno, aquí os cuenta todo lo que os he contado yo, que tenéis que activar el plugin, que tenéis una serie de pases, que ahora vemos, ¿vale? 794 00:45:49,880 --> 00:45:57,260 Bajamos, bajamos, bajamos, bajamos y llega un momento que tenemos una serie de variables de consola que mejoran la imagen. 795 00:45:59,199 --> 00:46:03,039 No, esto es lo de los sample counts, ¿veis? Esto es lo mismo que os he contado yo. 796 00:46:05,869 --> 00:46:10,170 Y luego aquí en la parte de variables de consola, aquí tenemos una serie de variables de consola. 797 00:46:10,170 --> 00:46:13,289 todas estas son las que tendríamos que utilizar 798 00:46:13,289 --> 00:46:15,489 si estuviéramos renderizando con Ray Tracing 799 00:46:15,489 --> 00:46:17,409 pero como no estamos renderizando con Ray Tracing 800 00:46:17,409 --> 00:46:19,230 en nuestro caso solamente vamos a coger 801 00:46:19,230 --> 00:46:20,730 estas de aquí 802 00:46:20,730 --> 00:46:23,369 estas son las que 803 00:46:23,369 --> 00:46:24,150 tenemos que utilizar 804 00:46:24,150 --> 00:46:27,670 vamos a subir 805 00:46:27,670 --> 00:46:29,369 la calidad del 806 00:46:29,369 --> 00:46:31,309 Motion Blur, vamos a subir la calidad del 807 00:46:31,309 --> 00:46:33,110 Desktop Fill, vamos a subir la calidad 808 00:46:33,110 --> 00:46:35,510 del Bloom y vamos a subir la calidad 809 00:46:35,510 --> 00:46:37,329 del Tone Mapping, o sea de la curva 810 00:46:37,329 --> 00:46:39,070 de compresión de rango dinámico 811 00:46:39,070 --> 00:46:59,469 ¿Vale? Entonces, ¿qué es lo que tengo que hacer? Pues básicamente cogerme este texto, control c, me voy al proyecto de Unreal y fijaros, en la parte de variables de consola yo tengo aquí un grupo que se llama console variables y tenemos un más. 812 00:46:59,469 --> 00:47:13,929 Esto es un array que se llama. Es una lista. Entonces yo tengo que ir añadiendolas. 1, 2, 3, 4, 5 y 6. Son 6 las que vamos a meter. Entonces la primera es esta. Motion Blur Quality. 813 00:47:13,929 --> 00:47:35,230 Y el valor que tiene preestablecido es 4, ¿vale? Pues lo pongo aquí, 4. El siguiente, ¿cuál es? Motion Blur separable. Me lo copio, CTRL-C y lo pego. 814 00:47:35,230 --> 00:47:37,789 veis que me lo filtra 815 00:47:37,789 --> 00:47:39,909 cuando yo lo escribo bien me aparece aquí abajo 816 00:47:39,909 --> 00:47:42,630 y el valor es 1 817 00:47:42,630 --> 00:47:44,110 pues 1 818 00:47:44,110 --> 00:47:45,750 estos son los valores máximos 819 00:47:45,750 --> 00:47:50,309 el siguiente cual es 820 00:47:50,309 --> 00:47:54,679 desktop field quality 821 00:47:54,679 --> 00:47:56,320 me lo copio 822 00:47:56,320 --> 00:47:58,920 y me lo pego 823 00:47:58,920 --> 00:48:02,539 y cual es el valor que viene 824 00:48:02,539 --> 00:48:03,699 por defecto 4 825 00:48:03,699 --> 00:48:04,980 pues 4 826 00:48:04,980 --> 00:48:08,480 siguiente bloom quality 827 00:48:08,480 --> 00:48:12,329 5 me lo copio 828 00:48:12,329 --> 00:48:13,670 me lo pego 829 00:48:13,670 --> 00:48:15,769 y le pongo un 5 830 00:48:15,769 --> 00:48:17,989 perfecto 831 00:48:17,989 --> 00:48:19,250 siguiente 832 00:48:19,250 --> 00:48:20,730 tone mapper quality 833 00:48:20,730 --> 00:48:22,789 me lo copio 834 00:48:22,789 --> 00:48:24,329 me lo pego 835 00:48:24,329 --> 00:48:26,309 y el valor es 1 836 00:48:26,309 --> 00:48:28,969 y hay una última 837 00:48:28,969 --> 00:48:31,829 variable de consola que no viene en la documentación 838 00:48:31,829 --> 00:48:33,090 que a mi me gusta utilizarla 839 00:48:33,090 --> 00:48:34,889 que es el screen percentage 840 00:48:34,889 --> 00:48:37,110 de eso os he hablado en algún momento 841 00:48:37,110 --> 00:48:38,650 suena lo del screen percentage 842 00:48:38,650 --> 00:48:40,730 yo creo que no 843 00:48:40,730 --> 00:48:41,530 no 844 00:48:41,530 --> 00:48:44,809 Screen Percentage 845 00:48:44,809 --> 00:48:46,590 este es, el Screen Percentage 846 00:48:46,590 --> 00:48:48,550 que es, es un supersampleado 847 00:48:48,550 --> 00:48:50,090 o subsampleado de imagen 848 00:48:50,090 --> 00:48:51,909 que es lo que hace este valor 849 00:48:51,909 --> 00:48:54,949 hace que si yo tengo por ejemplo 850 00:48:54,949 --> 00:48:56,590 el 851 00:48:56,590 --> 00:48:58,849 el output de mi render 852 00:48:58,849 --> 00:49:01,150 a 1920x1080 853 00:49:01,150 --> 00:49:03,110 si le pongo 854 00:49:03,110 --> 00:49:04,710 1,25 855 00:49:04,710 --> 00:49:06,230 lo que va a hacer es renderizarlo 856 00:49:06,230 --> 00:49:07,909 un 25% más grande 857 00:49:07,909 --> 00:49:10,469 para tener más información de píxeles 858 00:49:10,469 --> 00:49:14,070 y luego me lo vuelve a reducir a mi tamaño, ¿vale? 859 00:49:14,150 --> 00:49:19,329 Eso lo que hace es mejorar todo, mejorar los difuminados de las sombras, 860 00:49:19,630 --> 00:49:22,070 mejorar los reflejos, mejorar un montón de cosas. 861 00:49:22,170 --> 00:49:27,469 ¿Pero qué pasa? Que le cuesta un 25% más renderizarlo, ¿vale? 862 00:49:27,869 --> 00:49:32,909 Entonces yo normalmente esto lo suelo meter cuando tengo renders bajitos, 863 00:49:32,909 --> 00:49:35,210 de 1920x1080, por ejemplo. 864 00:49:35,630 --> 00:49:39,489 Si yo ya estoy renderizando en 2K o en 4K, no tiene tanto sentido. 865 00:49:39,489 --> 00:49:41,690 que utilice este comando de consola 866 00:49:41,690 --> 00:49:43,670 entonces yo este lo dejo aquí puesto 867 00:49:43,670 --> 00:49:45,969 y le doy un 100 para que por lo menos 868 00:49:45,969 --> 00:49:47,550 me renderice 869 00:49:47,550 --> 00:49:50,070 el 100% de la resolución que estoy utilizando 870 00:49:50,070 --> 00:49:51,289 y cuando 871 00:49:51,289 --> 00:49:53,789 tengo que renderizar resoluciones 872 00:49:53,789 --> 00:49:55,690 bajitas, le subo esto para que 873 00:49:55,690 --> 00:49:57,090 el resultado final sea mejor 874 00:49:57,090 --> 00:49:59,869 ¿vale? veis que son un montón de capas 875 00:49:59,869 --> 00:50:01,590 de calidad que le vamos 876 00:50:01,590 --> 00:50:03,869 metiendo al render final para que al final el resultado 877 00:50:03,869 --> 00:50:05,670 sea mejor que lo que tenemos en el 878 00:50:05,670 --> 00:50:07,110 visor de Unreal ¿vale? 879 00:50:08,809 --> 00:50:09,289 entonces 880 00:50:09,289 --> 00:50:10,809 estas variables de consola 881 00:50:10,809 --> 00:50:11,829 una vez que las hemos metido 882 00:50:11,829 --> 00:50:12,730 las podemos activar 883 00:50:12,730 --> 00:50:13,409 o desactivar 884 00:50:13,409 --> 00:50:13,610 ¿vale? 885 00:50:15,030 --> 00:50:15,750 si queremos 886 00:50:15,750 --> 00:50:17,010 vale 887 00:50:17,010 --> 00:50:19,929 por último 888 00:50:19,929 --> 00:50:21,449 y no menos 889 00:50:21,449 --> 00:50:22,650 importante 890 00:50:22,650 --> 00:50:25,940 yo me puedo sacar 891 00:50:25,940 --> 00:50:26,860 un criptomate 892 00:50:26,860 --> 00:50:28,280 ¿sabéis lo que es un criptomate? 893 00:50:29,780 --> 00:50:30,340 ¿no? 894 00:50:30,900 --> 00:50:32,159 es un pase de render 895 00:50:32,159 --> 00:50:33,360 que me permite meter 896 00:50:33,360 --> 00:50:35,420 en After Effects 897 00:50:35,420 --> 00:50:35,980 o en Nuke 898 00:50:35,980 --> 00:50:37,059 o en cualquier programa 899 00:50:37,059 --> 00:50:38,000 de edición de vídeo 900 00:50:38,000 --> 00:50:40,159 y hacer máscaras dinámicas 901 00:50:40,159 --> 00:50:42,619 de cualquier objeto, ¿vale? 902 00:50:42,780 --> 00:50:45,079 Me hace un mate de cualquier objeto. 903 00:50:46,139 --> 00:50:47,260 Eso es interesante. 904 00:50:48,800 --> 00:50:53,800 Eso se hace con el pase de object ID, 905 00:50:54,340 --> 00:50:56,440 que está aquí, object ID, ¿vale? 906 00:50:56,980 --> 00:51:00,440 Y este pase de object ID le tenemos que decir 907 00:51:00,440 --> 00:51:03,860 que nos incluya los elementos traslúcidos de la escena. 908 00:51:03,860 --> 00:51:06,139 Y esto me permite hacer máscaras de todo. 909 00:51:06,619 --> 00:51:09,440 Me permite hacer una máscara por material, por actor, 910 00:51:09,440 --> 00:51:15,579 por actor con jerarquía, por carpetas del World Outliner o por capas, ¿vale? 911 00:51:15,679 --> 00:51:17,260 Yo normalmente lo dejo siempre en full. 912 00:51:17,460 --> 00:51:20,619 Vamos a renderizar unos cuantos frames y vemos qué es lo que nos da, ¿vale? 913 00:51:23,500 --> 00:51:29,739 Luego, si quisiéramos más pases de render, nosotros dentro del track de deferred rendering 914 00:51:29,739 --> 00:51:36,079 tenemos aquí la posibilidad de sacar más pases de render. 915 00:51:36,079 --> 00:51:52,519 En esos pases de render, si yo estoy sacando una secuencia EXR, les puedo decir que sean 32 bits también, ¿vale? Que es lo suyo. Entonces, si yo despliego additional post-process materials de primeras, yo tengo dos pases de render. 916 00:51:52,519 --> 00:52:10,860 Uno es el World Depth, o sea, un pase de profundidad con el que yo puedo hacer diferentes cosas. En postproducción yo puedo hacer un desenfoque propio. Puedo aplicar una capa de ajuste a lo que está al fondo de la escena y que no afecte a lo que está en primer plano, cosas así. 917 00:52:10,860 --> 00:52:13,440 ¿vale? entonces para que funcionen 918 00:52:13,440 --> 00:52:15,400 estos pases de render tenemos que habilitarlo 919 00:52:15,400 --> 00:52:16,679 tenemos que decir enable 920 00:52:16,679 --> 00:52:19,559 el siguiente que tenemos aquí es el motion vectors 921 00:52:19,559 --> 00:52:21,219 esto es un pase de velocity 922 00:52:21,219 --> 00:52:23,539 y me sirve para generar 923 00:52:23,539 --> 00:52:25,400 motion blur en postproducción 924 00:52:25,400 --> 00:52:26,119 ¿vale? 925 00:52:27,599 --> 00:52:29,340 ¿qué más pases tenemos disponibles? 926 00:52:29,519 --> 00:52:30,940 veis que esto es una lista ¿no? 927 00:52:31,599 --> 00:52:33,340 entonces si yo quiero sacar 928 00:52:33,340 --> 00:52:35,179 más pases de render le tengo que dar al más 929 00:52:35,179 --> 00:52:37,199 me saco otro 930 00:52:37,199 --> 00:52:39,460 y busco, claro ¿cuáles son 931 00:52:39,460 --> 00:52:41,119 los pases de render que tengo disponibles? 932 00:52:41,820 --> 00:52:43,420 Pues tengo que filtrarlos por nombre. 933 00:52:43,900 --> 00:52:44,980 Si yo escribo aquí movie, 934 00:52:45,480 --> 00:52:46,820 render, 935 00:52:49,610 --> 00:52:51,309 todos los que ponen movie, render, 936 00:52:51,449 --> 00:52:53,389 son pases de render. Tengo 937 00:52:53,389 --> 00:52:54,570 el ambient occlusion, 938 00:52:55,489 --> 00:52:57,530 el motion vector y el world depth, que ya los 939 00:52:57,530 --> 00:52:59,389 tengo. El world normals, 940 00:52:59,530 --> 00:53:01,389 me puedo sacar el pase 941 00:53:01,389 --> 00:53:02,869 de normales de la escena entera, 942 00:53:03,550 --> 00:53:06,789 si quisiera. El world 943 00:53:06,789 --> 00:53:08,710 position, que esto lo que me da es una nube de 944 00:53:08,710 --> 00:53:10,929 puntos de la escena que yo puedo utilizar 945 00:53:10,929 --> 00:53:13,010 para colocar plates a diferentes 946 00:53:13,010 --> 00:53:15,110 profundidades o a diferentes posiciones 947 00:53:15,110 --> 00:53:17,210 dentro de la escena, esto se suele utilizar 948 00:53:17,210 --> 00:53:18,949 con new, cuando hay que hacer mate 949 00:53:18,949 --> 00:53:19,929 painting dinámico 950 00:53:19,929 --> 00:53:23,409 el pase de posición y el pase de normales 951 00:53:23,409 --> 00:53:25,269 es importante, ¿para qué? para saber 952 00:53:25,269 --> 00:53:27,150 dónde está cada vértice 953 00:53:27,150 --> 00:53:28,849 y hacia dónde mira su normal 954 00:53:28,849 --> 00:53:30,750 ¿se entiende? 955 00:53:31,869 --> 00:53:33,409 bueno, yo no lo suelo 956 00:53:33,409 --> 00:53:35,230 utilizar mucho porque intento 957 00:53:35,230 --> 00:53:37,170 que la mayor parte de la postproducción se haga 958 00:53:37,170 --> 00:53:38,989 en Unreal, pero hay gente que se saca 959 00:53:38,989 --> 00:53:41,130 el render pelao y se hace 960 00:53:41,130 --> 00:53:42,469 toda la postproducción en Unreal. 961 00:53:42,909 --> 00:53:44,849 Entonces, esto es necesario para poder hacer 962 00:53:44,849 --> 00:53:45,489 todo eso, ¿vale? 963 00:53:46,550 --> 00:53:49,070 Yo normalmente, como mucho, mucho, mucho, 964 00:53:49,150 --> 00:53:50,610 mucho, me saco 965 00:53:50,610 --> 00:53:53,389 el pase de profundidad, 966 00:53:53,550 --> 00:53:54,449 que es el World Depth, 967 00:53:54,949 --> 00:53:56,630 y el pase de Ambient Occlusion. 968 00:54:01,190 --> 00:54:02,889 Movie, Render 969 00:54:02,889 --> 00:54:03,469 Queue, 970 00:54:04,989 --> 00:54:06,030 Ambient Occlusion, ¿vale? 971 00:54:06,289 --> 00:54:08,570 Y lo habilito, ¿vale? Me voy a sacar estos 972 00:54:08,570 --> 00:54:10,869 tres, nada más. Todo esto, 973 00:54:11,010 --> 00:54:12,530 al estar renderizando en un 974 00:54:12,530 --> 00:54:21,090 formato xr se va a almacenar como una capa dentro de cada de cada frame vale bien más o menos se 975 00:54:21,090 --> 00:54:28,269 entiende lo que os he contado vamos a probarlo de todas maneras vamos a ver cómo hacemos esto 976 00:54:28,269 --> 00:54:33,449 entonces ahora una vez que tenemos todo esto ya configurado lo vamos a salvar le damos aquí 977 00:54:33,449 --> 00:54:40,809 arriba en unsafe config y le decimos safe as preset y esto como lo como lo nombramos pues yo lo 978 00:54:40,809 --> 00:54:42,570 nombraría como 2K 979 00:54:42,570 --> 00:54:44,010 que es la resolución 980 00:54:44,010 --> 00:54:45,010 barra baja 981 00:54:45,010 --> 00:54:46,849 EXR 982 00:54:46,849 --> 00:54:47,889 barra baja 983 00:54:47,889 --> 00:54:50,369 multipass 984 00:54:50,369 --> 00:54:52,190 ¿qué es lo que se suele hacer? 985 00:54:52,809 --> 00:54:53,929 lo ideal es que os creéis 986 00:54:53,929 --> 00:54:54,789 varios presets 987 00:54:54,789 --> 00:54:57,210 para los diferentes formatos 988 00:54:57,210 --> 00:54:58,630 de exportación que necesitáis 989 00:54:58,630 --> 00:54:59,969 yo me haría uno de XR 990 00:54:59,969 --> 00:55:02,369 otro de Apple ProRes 991 00:55:02,369 --> 00:55:04,250 otro de PNG 992 00:55:04,250 --> 00:55:07,170 con diferentes resoluciones 993 00:55:07,170 --> 00:55:08,309 para que no tengamos que estar 994 00:55:08,309 --> 00:55:09,590 configurándolo todo el rato 995 00:55:10,369 --> 00:55:10,769 ¿Se entiende? 996 00:55:11,949 --> 00:55:12,349 Vale. 997 00:55:12,650 --> 00:55:13,449 Pues le damos a salvar. 998 00:55:15,590 --> 00:55:16,030 Entonces. 999 00:55:18,159 --> 00:55:18,599 Entonces. 1000 00:55:20,440 --> 00:55:22,880 Una vez que lo tenemos, aceptamos. 1001 00:55:23,539 --> 00:55:24,280 Y ya lo tenemos aquí. 1002 00:55:24,639 --> 00:55:25,360 ¿Qué es lo que voy a hacer yo? 1003 00:55:25,440 --> 00:55:28,039 Para que no tarde mucho, voy a renderizar solo 4 frames. 1004 00:55:28,480 --> 00:55:28,679 ¿Vale? 1005 00:55:30,639 --> 00:55:31,400 Venimos aquí. 1006 00:55:31,400 --> 00:55:38,889 Y le decimos que lo que queremos es... 1007 00:55:38,889 --> 00:55:40,909 Fijaros, me voy al principio de la animación. 1008 00:55:40,909 --> 00:56:00,630 y le digo 1, 2, 3 y 4 frames y le digo que esto sea el final de la animación, 4 frames solamente, le doy a la claqueta, veis que se queda guardado el último preset de render que yo tenga 1009 00:56:00,630 --> 00:56:12,449 y ya tengo aquí guardado también la ruta, con lo cual simplemente le doy al botón de render local y se lanza, fijaros esta es la pantalla de Movie Render Cube 1010 00:56:12,449 --> 00:56:32,670 ¿Qué es lo que me está renderizando? 32 frames entre cada frame, ¿vale? Veis que aquí pone subsample, ¿vale? Pues me está renderizando frames de 2K y entre medias de cada frame me está renderizando 32 subframes, ¿vale? Para poder depurar la imagen. 1011 00:56:32,670 --> 00:56:37,280 ya está, ya hemos terminado 1012 00:56:37,280 --> 00:56:39,739 entonces 1013 00:56:39,739 --> 00:56:40,860 ¿qué es lo que tenemos ahora? 1014 00:56:41,440 --> 00:56:45,780 pues tenemos 4 frames 1015 00:56:45,780 --> 00:56:48,139 que cada uno de ellos pesa 77 1016 00:56:48,139 --> 00:56:50,199 megas, ¿por qué? porque está comprimido 1017 00:56:50,199 --> 00:56:51,940 si lo hubiera dicho 1018 00:56:51,940 --> 00:56:53,619 que no quiero compresión probablemente 1019 00:56:53,619 --> 00:56:55,920 estos frames hubieran pesado 200 megas o por ahí 1020 00:56:55,920 --> 00:56:56,599 ¿vale? 1021 00:57:00,579 --> 00:57:01,099 entonces 1022 00:57:01,099 --> 00:57:04,340 si me voy a 1023 00:57:04,340 --> 00:57:06,320 After Effects 1024 00:57:06,320 --> 00:57:09,869 y me traigo esta secuencia 1025 00:57:16,800 --> 00:57:18,179 Mientras se va abriendo pregunta, 1026 00:57:18,519 --> 00:57:20,780 me ha dado la sensación de que ha tardado bastante poco, ¿no? 1027 00:57:21,739 --> 00:57:22,340 Ha tardado muy poco. 1028 00:57:23,199 --> 00:57:23,480 Sí, sí. 1029 00:57:23,960 --> 00:57:26,059 A ver, depende también. 1030 00:57:26,400 --> 00:57:28,480 Si lo renderizas en 4K, tarda más. 1031 00:57:29,880 --> 00:57:31,460 Pero sí, suele tardar muy poquito. 1032 00:57:32,559 --> 00:57:35,059 Yo me he renderizado proyectos enteros en un día. 1033 00:57:38,559 --> 00:57:39,820 Y lo de los subframes, 1034 00:57:40,260 --> 00:57:43,480 ¿puede llegar un momento en el que merezca la pena sobremuestrear, 1035 00:57:43,480 --> 00:57:45,980 es decir, renderizar a 48 fotogramas por segundo? 1036 00:57:45,980 --> 00:57:47,739 porque los subframes obviamente 1037 00:57:47,739 --> 00:57:49,699 él los usa para calcular, pero no quedan 1038 00:57:49,699 --> 00:57:51,280 registrados. 1039 00:57:52,420 --> 00:57:54,079 Sí, hay veces que yo 1040 00:57:54,079 --> 00:57:55,599 me lo renderizo a 60 frames 1041 00:57:55,599 --> 00:57:57,139 y luego ya lo adapto. 1042 00:57:58,159 --> 00:58:00,159 O si quieres hacer un slow motion 1043 00:58:00,159 --> 00:58:01,880 o cosas así, pues te lo puedes renderizar 1044 00:58:01,880 --> 00:58:03,039 a un frame rate mayor. 1045 00:58:05,820 --> 00:58:07,719 Entonces, voy a importarme 1046 00:58:07,719 --> 00:58:12,019 estos 1047 00:58:12,019 --> 00:58:12,900 cuatro frames. 1048 00:58:16,820 --> 00:58:18,480 Le digo que es una secuencia 1049 00:58:18,480 --> 00:58:20,519 OpenXR y me la importo. 1050 00:58:20,519 --> 00:58:49,239 Aquí la tengo. Ahora, en 32 bits, creo una composición. Aquí la tenemos. Entonces, esto se supone que tiene, si yo me saco aquí una capa de ajuste, Adjustment Layer, y le metemos aquí un efecto de exposición 32 bits, 1051 00:58:49,239 --> 00:58:51,719 exposición 32 bits 1052 00:58:51,719 --> 00:58:52,380 que es este 1053 00:58:52,380 --> 00:58:56,130 se supone que nosotros aquí tenemos 1054 00:58:56,130 --> 00:58:59,030 todo el rango dinámico de la imagen disponible 1055 00:58:59,030 --> 00:58:59,250 ¿vale? 1056 00:59:01,909 --> 00:59:03,010 está sin clampear 1057 00:59:03,010 --> 00:59:04,489 y aparte de eso 1058 00:59:04,489 --> 00:59:07,389 si yo me duplico esta capa 1059 00:59:07,389 --> 00:59:08,710 control c, control v 1060 00:59:08,710 --> 00:59:11,349 y le aplico 1061 00:59:11,349 --> 00:59:13,809 el xr 1062 00:59:13,809 --> 00:59:16,449 extractor 1063 00:59:16,449 --> 00:59:16,869 se llama 1064 00:59:16,869 --> 00:59:19,349 este me permite acceder 1065 00:59:19,349 --> 00:59:21,210 a las capas 1066 00:59:21,210 --> 00:59:23,690 que tenga almacenadas, ¿vale? 1067 00:59:23,710 --> 00:59:26,210 Tenemos el Ambient Occlusion, el Motion Vectors 1068 00:59:26,210 --> 00:59:27,809 y el World Depth, ¿vale? 1069 00:59:30,230 --> 00:59:30,789 Perfecto. 1070 00:59:32,860 --> 00:59:34,360 El Ambient Occlusion, ¿veis? 1071 00:59:34,559 --> 00:59:36,340 Es la información de Ambient Occlusion. 1072 00:59:36,460 --> 00:59:38,179 Esto lo podríamos meter multiplicado 1073 00:59:38,179 --> 00:59:40,019 por encima de la imagen final 1074 00:59:40,019 --> 00:59:41,760 para darle un poquito más de fuerza 1075 00:59:41,760 --> 00:59:43,940 a las sombras de contacto, si quisiéramos. 1076 00:59:45,099 --> 00:59:48,719 Tenemos también el World Depth. 1077 00:59:48,719 --> 00:59:52,719 Y el World Depth, básicamente, lo que tiene es... 1078 00:59:52,719 --> 00:59:57,460 es una capa que me da 1079 00:59:57,460 --> 01:00:00,579 en escala de grises la profundidad de la escena 1080 01:00:00,579 --> 01:00:07,099 yo con esto puedo aplicar efectos a determinada 1081 01:00:07,099 --> 01:00:10,139 profundidad según la cámara 1082 01:00:10,139 --> 01:00:15,179 le puedo decir, vale, quiero que solo la parte 1083 01:00:15,179 --> 01:00:18,739 del muro esté más expuesta, pues esto lo utilizo como máscara 1084 01:00:18,739 --> 01:00:23,139 para otro efecto, vale, bien, se entiende 1085 01:00:23,139 --> 01:00:31,880 chicos? Sí, sí. Vale, pues esto es una de las cosas, pero otra de las cosas interesantes es lo que os decía antes del 1086 01:00:31,880 --> 01:00:41,380 criptomate. Yo aquí tengo un efecto, bueno, esto lo suele tener todos los programas. El criptomate, si yo lo aplico, fijaros lo que 1087 01:00:41,380 --> 01:00:51,860 pasa. De repente tengo una máscara dinámica de cada parte de la escena. Entonces, si yo hago control botón, no, botón derecho, esto es una 1088 01:00:51,860 --> 01:00:53,119 máscara de este objeto 1089 01:00:53,119 --> 01:00:55,920 o si hago así, esto es una máscara 1090 01:00:55,920 --> 01:00:58,019 de ese objeto y veis que coge toda la información 1091 01:00:58,019 --> 01:00:59,219 de motion blur y todo 1092 01:00:59,219 --> 01:01:01,679 en la máscara, entonces 1093 01:01:01,679 --> 01:01:03,860 con botón derecho yo puedo crear 1094 01:01:03,860 --> 01:01:06,079 máscaras dinámicas de cada parte 1095 01:01:06,079 --> 01:01:07,460 de la 1096 01:01:07,460 --> 01:01:09,820 escena y una vez que 1097 01:01:09,820 --> 01:01:12,000 lo tengo seleccionado, le puedo 1098 01:01:12,000 --> 01:01:13,880 decir que me muestre el matte 1099 01:01:13,880 --> 01:01:15,860 only y esto lo meto como 1100 01:01:15,860 --> 01:01:17,860 como máscara 1101 01:01:17,860 --> 01:01:18,440 de luminancia 1102 01:01:18,440 --> 01:01:21,480 ¿vale? ¿se entiende? 1103 01:01:21,860 --> 01:01:48,099 Esto me permite también seleccionar solo esa parte. Si yo apago esto, podría tener una máscara perfecta solo de ese elemento. Y si le doy a colores, con el botón derecho voy seleccionando partes diferenciadas de mi composición. 1104 01:01:48,099 --> 01:01:51,659 bajo mi punto de vista 1105 01:01:51,659 --> 01:01:53,400 el CryptoMatter es lo que mejor funciona 1106 01:01:53,400 --> 01:01:55,619 a nivel de pases, dentro del render 1107 01:01:55,619 --> 01:01:56,079 de Unreal 1108 01:01:56,079 --> 01:01:59,500 porque me permite luego hacer selecciones complejas 1109 01:01:59,500 --> 01:02:00,900 con muy poco esfuerzo 1110 01:02:00,900 --> 01:02:01,960 ¿vale? 1111 01:02:02,880 --> 01:02:03,440 ¿bien? 1112 01:02:05,300 --> 01:02:07,199 ¿estás seleccionando con el botón derecho? 1113 01:02:07,679 --> 01:02:09,659 ¿y puedes seleccionar varias capas 1114 01:02:09,659 --> 01:02:10,039 a la vez? 1115 01:02:11,679 --> 01:02:14,199 con shift 1116 01:02:14,199 --> 01:02:15,059 y botón derecho 1117 01:02:15,059 --> 01:02:16,539 puedes seleccionar varias capas 1118 01:02:16,539 --> 01:02:19,699 esto está brutal 1119 01:02:19,699 --> 01:02:21,099 ¿vale? 1120 01:02:21,679 --> 01:02:22,800 bien, pues 1121 01:02:22,800 --> 01:02:24,739 esto es 1122 01:02:24,739 --> 01:02:26,360 esto es lo que se puede hacer 1123 01:02:26,360 --> 01:02:27,239 ¿vale? 1124 01:02:28,440 --> 01:02:30,559 realmente no es perfecto 1125 01:02:30,559 --> 01:02:31,599 pero está bastante bien 1126 01:02:31,599 --> 01:02:33,320 para ser un motor de render en tiempo real 1127 01:02:33,320 --> 01:02:34,179 está bastante bien 1128 01:02:34,179 --> 01:02:34,880 ¿vale? 1129 01:02:41,739 --> 01:02:42,179 entonces 1130 01:02:42,179 --> 01:02:45,380 llegados a este punto 1131 01:02:45,380 --> 01:02:48,659 ya os he contado todo lo que se puede hacer con Unreal 1132 01:02:48,659 --> 01:02:49,440 a nivel visual 1133 01:02:49,440 --> 01:02:51,880 vámonos a la parte de Blueprints 1134 01:02:51,880 --> 01:02:53,579 esto si que es gracioso 1135 01:02:53,579 --> 01:02:56,599 esta parte si que es cachonda 1136 01:02:56,599 --> 01:02:58,420 entonces 1137 01:02:58,420 --> 01:03:00,320 claro 1138 01:03:00,320 --> 01:03:01,719 yo ahora que tengo que hacer 1139 01:03:01,719 --> 01:03:04,480 tengo que coger las animaciones que tenía hechas 1140 01:03:04,480 --> 01:03:06,900 de las pantallas, de los totems, del ticker 1141 01:03:06,900 --> 01:03:08,300 y lo tengo que preparar 1142 01:03:08,300 --> 01:03:10,380 para que yo lo pueda lanzar desde axymetry 1143 01:03:10,380 --> 01:03:10,860 ¿no? 1144 01:03:11,659 --> 01:03:12,820 esa es un poco la idea 1145 01:03:12,820 --> 01:03:16,699 para que yo en axymetry pueda crear un botón 1146 01:03:16,699 --> 01:03:18,800 en el cual yo le de 1147 01:03:18,800 --> 01:03:20,679 y la pantalla aparezca 1148 01:03:20,679 --> 01:03:37,320 O que yo le dé y aparezca el ticker, o que yo le dé y aparezca el tótem, ¿vale? Entonces, para hacer eso necesitamos programar, ¿vale? Pero yo no soy programador. Entonces, Unreal tiene una herramienta que se llama Blueprints, que es de programación gráfica mediante nodos, que nos permite realizar todas esas operaciones, ¿vale? 1149 01:03:37,320 --> 01:03:40,320 entonces voy a haceros 1150 01:03:40,320 --> 01:03:42,960 una pequeña introducción teórica 1151 01:03:42,960 --> 01:03:44,860 a los blueprints, o sea, intentaros 1152 01:03:44,860 --> 01:03:45,860 contar blueprints 1153 01:03:45,860 --> 01:03:49,039 en lo que me queda de clase es un esfuerzo 1154 01:03:49,039 --> 01:03:50,840 de abstracción, porque es una parte 1155 01:03:50,840 --> 01:03:52,400 de Unreal muy grande, ¿vale? 1156 01:03:52,440 --> 01:03:54,760 pero voy a intentar por lo menos contaros lo que os puede 1157 01:03:54,760 --> 01:03:56,500 hacer falta para la parte de 1158 01:03:56,500 --> 01:03:58,679 Aximetry, no sé si alguno de los que estamos aquí 1159 01:03:58,679 --> 01:04:00,780 sabemos programar, a lo mejor Álvaro 1160 01:04:00,780 --> 01:04:04,980 sí que tiene más ideas, o a lo mejor 1161 01:04:04,980 --> 01:04:06,820 Álvaro no está, que eso puede pasar 1162 01:04:06,820 --> 01:04:07,219 también 1163 01:04:07,219 --> 01:04:09,460 estoy por aquí, por aquí 1164 01:04:09,460 --> 01:04:11,519 pero vamos, tenemos a Seymour que también ha trasteado 1165 01:04:11,519 --> 01:04:13,659 vale, perfecto, pues muchos de los 1166 01:04:13,659 --> 01:04:15,420 conceptos que os voy a contar seguro que os suenan 1167 01:04:15,420 --> 01:04:17,280 vale, entonces 1168 01:04:17,280 --> 01:04:19,940 saco un momento el whiteboard 1169 01:04:19,940 --> 01:04:21,239 y os cuento 1170 01:04:21,239 --> 01:04:23,500 un poco de que va 1171 01:04:23,500 --> 01:04:25,059 esto de los blueprints, vale 1172 01:04:25,059 --> 01:04:26,840 que tiene Swahel 1173 01:04:26,840 --> 01:04:31,369 ¿qué son los blueprints? 1174 01:04:37,920 --> 01:04:38,480 blueprints 1175 01:04:38,480 --> 01:04:41,139 los blueprints realmente 1176 01:04:41,139 --> 01:04:45,980 son elementos que contienen programación propia, ¿vale? 1177 01:04:50,500 --> 01:04:56,139 Programación propia, ¿vale? 1178 01:04:56,199 --> 01:04:59,199 Pero esto por detrás lo que tiene es código, ¿vale? 1179 01:04:59,679 --> 01:05:06,639 Pero nosotros lo vamos a ver en formato gráfico, 1180 01:05:06,639 --> 01:05:09,400 gráfico en forma de nodos, ¿vale? 1181 01:05:09,900 --> 01:05:11,960 Es un sistema nodal, es muy parecido 1182 01:05:11,960 --> 01:05:15,460 a lo que hemos visto en la parte de materiales, ¿vale? 1183 01:05:15,460 --> 01:05:31,320 ¿Vale? Entonces, existen muchísimas tipologías de blueprints. Algunos ya están creados, ¿vale? Están bien en el motor de manera nativa y otros los tenemos que crear nosotros. 1184 01:05:31,320 --> 01:05:42,039 Entonces, como los tenemos que crear nosotros, los posibles blueprints que pueda haber son infinitos, ¿vale? Pero la clasificación principal de estas tipologías de blueprints es la siguiente. 1185 01:05:42,039 --> 01:05:58,519 tipos de Blueprint, tipos de BP, BP es la abreviatura de Blueprint, por un lado vamos a tener el Level Blueprint, el Level Blueprint es un Blueprint, 1186 01:05:58,519 --> 01:06:07,940 o sea, un elemento que tiene programación propia que está asociado al nivel, con lo cual no es un Asset, como tal, se almacena dentro del Asset del nivel, 1187 01:06:07,940 --> 01:06:28,789 Está asociado al nivel. Y como tal, sirve para crear interactividades o automatizaciones con actores. Porque si os acordáis, el nivel no es nada más que un contenedor de actores. 1188 01:06:28,789 --> 01:06:29,590 ¿vale? 1189 01:06:30,469 --> 01:06:32,949 sirve para trastear a nivel de programación 1190 01:06:32,949 --> 01:06:34,329 con los actores de ese nivel 1191 01:06:34,329 --> 01:06:36,769 o sea, el level blueprint de mi nivel 1192 01:06:36,769 --> 01:06:38,429 actual no puede hacer nada 1193 01:06:38,429 --> 01:06:40,489 con los actores que estén en otro nivel 1194 01:06:40,489 --> 01:06:41,889 ¿vale? 1195 01:06:43,230 --> 01:06:44,030 esa es la 1196 01:06:44,030 --> 01:06:45,949 esa es la 1197 01:06:45,949 --> 01:06:46,909 realidad 1198 01:06:46,909 --> 01:06:50,329 entonces está guay porque me permite hacer 1199 01:06:50,329 --> 01:06:52,409 muchas cosas con todos los actores del 1200 01:06:52,409 --> 01:06:54,429 nivel pero no es muy flexible porque si 1201 01:06:54,429 --> 01:06:56,289 yo me programo algo y me lo quiero 1202 01:06:56,289 --> 01:06:58,309 llevar a otro nivel, me lo tengo que 1203 01:06:58,309 --> 01:07:00,210 copiar y pegar, o si me lo quiero llevar 1204 01:07:00,210 --> 01:07:02,170 a otro proyecto, me tengo que emigrar el nivel 1205 01:07:02,170 --> 01:07:03,969 completo. ¿No? 1206 01:07:04,329 --> 01:07:05,309 ¿Se entiende esto? 1207 01:07:06,610 --> 01:07:08,309 Bueno, no sé si se entiende, pero 1208 01:07:08,309 --> 01:07:09,230 es así. 1209 01:07:10,510 --> 01:07:12,289 Y luego, existe otra tipología 1210 01:07:12,289 --> 01:07:14,190 de Blueprints, que son los Blueprint Class, 1211 01:07:14,190 --> 01:07:18,679 las clases. Estos 1212 01:07:18,679 --> 01:07:20,659 son Assets del 1213 01:07:20,659 --> 01:07:22,059 Content Browser, ¿vale? 1214 01:07:24,230 --> 01:07:26,269 Entonces, yo puedo arrastrar 1215 01:07:26,269 --> 01:07:27,989 un Blueprint Class al nivel, 1216 01:07:28,190 --> 01:07:30,010 pero como la programación ya no está dentro 1217 01:07:30,010 --> 01:07:39,010 del level blueprint, sino que está dentro del asset, esto me lo puedo llevar a cualquier proyecto o a cualquier nivel sin necesidad de tener que copiarme 1218 01:07:39,010 --> 01:07:52,619 todo el árbol de nodos, ¿vale? Es más flexible, porque como es un asset, como os digo, me lo podría llevar a cualquier proyecto y la programación se mantiene 1219 01:07:52,619 --> 01:07:54,340 dentro de ese asset, ¿vale? 1220 01:07:55,099 --> 01:07:56,760 Bien, más o menos. 1221 01:07:58,320 --> 01:07:59,420 Dos tipologías. 1222 01:08:00,099 --> 01:08:01,400 Nosotros ya hemos visto algún blueprint. 1223 01:08:01,760 --> 01:08:04,320 Hemos visto el camera shake, ¿verdad? 1224 01:08:04,659 --> 01:08:07,380 Para hacer vibraciones en la cámara. 1225 01:08:07,480 --> 01:08:10,059 Eso es un blueprint class que viene ya determinado 1226 01:08:10,059 --> 01:08:12,440 dentro de Unreal, ¿vale? 1227 01:08:12,880 --> 01:08:15,159 Entonces nosotros ahora de primeras para aprender 1228 01:08:15,159 --> 01:08:17,420 lo que vamos a hacer es trastear con actores 1229 01:08:17,420 --> 01:08:18,520 dentro del level blueprint, 1230 01:08:18,720 --> 01:08:20,479 pero todo lo que os cuente del level blueprint 1231 01:08:20,479 --> 01:08:23,199 luego se puede aplicar a Blueprint Class 1232 01:08:23,199 --> 01:08:25,000 ¿vale? entonces 1233 01:08:25,000 --> 01:08:27,479 ¿qué es? ¿cuál va a ser 1234 01:08:27,479 --> 01:08:28,739 el funcionamiento principal? 1235 01:08:29,739 --> 01:08:31,380 de los 1236 01:08:31,380 --> 01:08:33,579 Blueprints, nosotros vamos a establecer siempre 1237 01:08:33,579 --> 01:08:35,500 siempre un sistema 1238 01:08:35,500 --> 01:08:37,439 causa-efecto ¿vale? 1239 01:08:39,199 --> 01:08:39,880 sistema 1240 01:08:39,880 --> 01:08:41,560 causa 1241 01:08:41,560 --> 01:08:44,159 efecto 1242 01:08:44,159 --> 01:08:48,359 entonces 1243 01:08:48,359 --> 01:08:50,640 a efectos 1244 01:08:50,640 --> 01:08:52,539 de programación la causa 1245 01:08:52,539 --> 01:08:56,079 lo vamos a llamar evento 1246 01:08:56,079 --> 01:08:57,720 evento 1247 01:08:57,720 --> 01:08:58,920 cuando pasa algo 1248 01:08:58,920 --> 01:09:01,739 cuando algo cambia 1249 01:09:01,739 --> 01:09:03,239 sucede algo 1250 01:09:03,239 --> 01:09:04,119 ¿vale? 1251 01:09:05,460 --> 01:09:06,100 entonces 1252 01:09:06,100 --> 01:09:08,439 lo primero que tenemos que entender 1253 01:09:08,439 --> 01:09:09,579 es que dentro de Unreal 1254 01:09:09,579 --> 01:09:11,699 hay un montón de tipologías de eventos 1255 01:09:11,699 --> 01:09:12,600 diferentes 1256 01:09:12,600 --> 01:09:15,279 pensad que esto es un videojuego 1257 01:09:15,279 --> 01:09:16,300 lo que estamos 1258 01:09:16,300 --> 01:09:18,500 lo que estamos creando 1259 01:09:18,500 --> 01:09:19,199 en cierta manera 1260 01:09:19,199 --> 01:09:21,060 entonces 1261 01:09:21,060 --> 01:09:36,859 ¿Qué tipologías de evento tenemos dentro de Unreal? Pues un montón, por ejemplo, las teclas, cada una de las teclas del teclado puede ser un evento, que yo pulse la W y se encienda una luz, ¿no? Eso es una tipología de evento, las teclas. 1262 01:09:36,859 --> 01:09:58,619 Entonces, el ratón tiene el botón izquierdo, el botón derecho, el botón central, la rueda cuando rueda, cuando desplazo el ratón de izquierda a derecha o de arriba a abajo, ¿no? Las teclas, el ratón, eso es otra tipología de eventos que yo puedo utilizar para desencadenar cosas, ¿no? 1263 01:09:58,619 --> 01:10:15,819 ¿Qué más cosas tenemos? Nosotros podemos establecer eventos que estén sujetos a colisiones, o sea, que cuando yo entre dentro de un volumen pase algo y que cuando yo salga de ese volumen pase otra cosa, ¿vale? 1264 01:10:15,819 --> 01:10:30,020 Muchas veces eso se utiliza para abrir puertas o para encender luces. Cuando yo me acerco al ascensor, se enciende una luz y se abre una puerta. Pues eso no está sujeto a un botón, está sujeto a un elemento espacial, ¿vale? 1265 01:10:30,020 --> 01:10:32,180 esto se llaman triggers 1266 01:10:32,180 --> 01:10:34,199 trigger volume 1267 01:10:34,199 --> 01:10:36,159 de hecho, triggers 1268 01:10:36,159 --> 01:10:38,699 trigger volume 1269 01:10:38,699 --> 01:10:40,760 ¿qué otras tipologías 1270 01:10:40,760 --> 01:10:42,659 de evento podemos llegar 1271 01:10:42,659 --> 01:10:43,100 a tener? 1272 01:10:44,300 --> 01:10:46,279 pues por ejemplo que algo pase 1273 01:10:46,279 --> 01:10:48,539 cuando yo arranco el juego, cuando le doy al 1274 01:10:48,539 --> 01:10:50,760 play, ¿no? ¿para qué sirve 1275 01:10:50,760 --> 01:10:52,600 el, esto se llama event 1276 01:10:52,600 --> 01:10:53,460 begin play 1277 01:10:53,460 --> 01:10:56,319 esto para que 1278 01:10:56,319 --> 01:11:00,119 esto para qué sirve 1279 01:11:00,119 --> 01:11:01,680 pues normalmente 1280 01:11:01,680 --> 01:11:03,539 sirve para 1281 01:11:03,539 --> 01:11:06,119 establecer estados iniciales 1282 01:11:06,119 --> 01:11:08,279 si yo quiero que cuando arranque el juego todas las luces 1283 01:11:08,279 --> 01:11:09,220 estén apagadas 1284 01:11:09,220 --> 01:11:12,340 pues lo asocio al event begin play 1285 01:11:12,340 --> 01:11:12,760 ¿vale? 1286 01:11:15,289 --> 01:11:16,069 begin play 1287 01:11:16,069 --> 01:11:19,949 y luego hay otro que se llama 1288 01:11:19,949 --> 01:11:21,149 event tick 1289 01:11:21,149 --> 01:11:24,210 que lo que hace es 1290 01:11:24,210 --> 01:11:26,149 hacer comprobaciones cada vez 1291 01:11:26,149 --> 01:11:27,609 que renderizamos un frame, claro 1292 01:11:27,609 --> 01:11:48,140 Si cada vez que renderizo un frame estoy comprobando cosas, ¿eso para qué me sirve? Para evaluar estados, para evaluar algo que pueda cambiar en cualquier momento. Entonces, yo lo estoy comprobando todo el rato y si cambia, puedo hacer ese cambio en tiempo real. ¿Se entiende? Vale, pues vamos a ver cómo utilizamos todo esto. 1293 01:11:48,140 --> 01:11:50,880 vamos a ver como utilizamos 1294 01:11:50,880 --> 01:11:52,460 todo esto, para eso 1295 01:11:52,460 --> 01:11:54,640 nos vamos a abrir un proyecto nuevo 1296 01:11:54,640 --> 01:11:56,439 ¿vale? porque el que tenemos 1297 01:11:56,439 --> 01:11:58,399 tiene 1298 01:11:58,399 --> 01:12:00,520 bueno, antes de abrir 1299 01:12:00,520 --> 01:12:02,500 un proyecto nuevo, vamos a dejar 1300 01:12:02,500 --> 01:12:03,960 preparada la programación 1301 01:12:03,960 --> 01:12:06,500 de lo que necesitamos operar dentro de Aximetry 1302 01:12:06,500 --> 01:12:08,460 que básicamente son los movimientos 1303 01:12:08,460 --> 01:12:09,979 de las pantallas ¿vale? 1304 01:12:10,640 --> 01:12:12,460 vamos a dejar eso preparado y luego nos abrimos 1305 01:12:12,460 --> 01:12:14,180 otro proyecto más sencillito 1306 01:12:14,180 --> 01:12:16,539 con el que vamos a hacer alguna prueba de todo esto 1307 01:12:16,539 --> 01:12:17,460 que os acabo de contar 1308 01:12:20,220 --> 01:12:30,670 Entonces, fijaros, me salgo del Cinematic Viewport, que ahora mismo ya no me hace falta, y me voy al Level Blueprint. 1309 01:12:31,010 --> 01:12:38,329 ¿Dónde está el Level Blueprint? Aquí, en este botoncito que veis aquí, lo abro y pongo Open Level Blueprint. 1310 01:12:38,810 --> 01:12:44,149 Perfecto. Esto que veis aquí es el Interface del Level Blueprint. 1311 01:12:44,149 --> 01:13:02,369 ¿Qué es lo que tenemos aquí? Pues tenemos, por un lado, el panel de MyBlueprint, que lo que me va a dar es una especie de resumen de los nodos que yo estoy utilizando aquí y de las variables que yo vaya creando, que todavía no sabemos lo que son, ¿vale? 1312 01:13:02,369 --> 01:13:17,529 Y de las macros y de las funciones y de otra serie de cosas. ¿Vale? Entonces veis que de primeras, cuando yo hablo del Level Blueprint, tengo ya el Begin Play y el Event Tick. ¿Por qué? Porque suelen ser nodos que se utilizan muy a menudo. ¿Vale? 1313 01:13:17,529 --> 01:13:35,550 ¿Vale? Entonces, ¿qué es lo que tengo que dejar yo preparado? Pues tengo que dejar preparado el movimiento de las pantallas. Como os decía antes, el Level Blueprint solo puede interactuar con actores de nivel. 1314 01:13:35,550 --> 01:13:53,829 Entonces, para que yo pueda acceder a un Sequencer, yo tengo que crear una referencia de ese Sequencer dentro del nivel, ¿vale? Con lo cual, yo me tengo que sacar una referencia del Level Sequence Screen, del Level Sequence Sticker y del Level Sequence Totem a la escena. 1315 01:13:53,829 --> 01:14:07,270 Lo arrastro, 1, 2 y 3. Estas son las tres referencias a las tres secuencias que yo quiero controlar de manera interactiva desde el Level Sequence. 1316 01:14:07,270 --> 01:14:38,880 ¿Vale? Entonces, fijaros, ¿cómo lo hacemos? Muy fácil, con cualquiera de estas secuencias seleccionadas, botón derecho y veis que aquí me pone create a reference to ls barra baja totem, pues esta burbujita de aquí contiene la información de ese actor y ese actor apunta a la secuencia, ¿vale? 1317 01:14:39,100 --> 01:14:55,739 Entonces me tengo que sacar referencia de estos tres, selecciono otra, botón derecho, create reference to ls picker y selecciono la otra, botón derecho, reference to ls screen. 1318 01:14:55,739 --> 01:15:16,699 Vale, perfecto. Yo ya tengo la referencia de cada una de estas tres secuencias, ¿vale? Entonces, ¿ahora qué es lo que necesito hacer? Necesito tener la posibilidad de hacer play o de hacer play reverse. ¿Para qué? Para que aparezca la pantalla y desaparezca. 1319 01:15:16,699 --> 01:15:19,439 entonces, en este caso 1320 01:15:19,439 --> 01:15:21,739 si tiro, vamos a ver 1321 01:15:21,739 --> 01:15:23,659 cómo funcionan los nodos 1322 01:15:23,659 --> 01:15:25,899 cómo funcionan estos nodos 1323 01:15:25,899 --> 01:15:27,880 este nodo es un nodo de información 1324 01:15:27,880 --> 01:15:29,680 y estos nodos son 1325 01:15:29,680 --> 01:15:31,779 nodos de eventos, ¿cómo funciona 1326 01:15:31,779 --> 01:15:33,699 todo esto? pues muy fácil 1327 01:15:33,699 --> 01:15:37,380 si veis que algo no está 1328 01:15:37,380 --> 01:15:39,100 claro, me podéis interrumpir 1329 01:15:39,100 --> 01:15:42,880 que yo entiendo que esta parte 1330 01:15:42,880 --> 01:15:44,239 es un poco más abstracta 1331 01:15:44,239 --> 01:15:49,579 ¿cómo funcionan los nodos? 1332 01:15:49,640 --> 01:15:51,539 pues los nodos hay de tres tipologías 1333 01:15:51,539 --> 01:15:59,239 básicamente. Tienen todo en forma de caja o de burbujita y tienen dos tipos de pines. 1334 01:16:01,039 --> 01:16:09,770 Tenemos nodos que son de principio de la cadena, que suelen ser así. Tenemos nodos que son 1335 01:16:09,770 --> 01:16:18,930 intermedios, que suelen ser así. Y tenemos nodos que son del final de la cadena, que 1336 01:16:18,930 --> 01:16:24,590 solo son capaces de recibir información, ¿vale? Que suelen ser así. Solemos tener 1337 01:16:24,590 --> 01:16:28,510 dos tipologías de pin. Tenemos un pin 1338 01:16:28,510 --> 01:16:31,649 que es el pin de ejecución, que son los triangulitos estos 1339 01:16:31,649 --> 01:16:39,039 y pines de información. La información hay de muchos 1340 01:16:39,039 --> 01:16:41,479 tipos. Hay información 1341 01:16:41,479 --> 01:16:47,020 de texto, hay información de tipo vector 1342 01:16:47,020 --> 01:16:49,640 si yo quiero dar por ejemplo unas coordenadas 1343 01:16:49,640 --> 01:16:54,979 hay información de tipo float, que es simplemente un número con decimales 1344 01:16:54,979 --> 01:17:19,520 Hay información booleana que simplemente establece una condición de sí o no o de verdadero o falso. Hay muchos tipos y cada uno de esos tipos tiene un color diferente, ¿vale? Entonces nosotros, según la tipología de nodo que saquemos, pues vamos a tener nodos iniciales, finales o intermedios, ¿vale? 1345 01:17:19,520 --> 01:17:22,600 intermedios 1346 01:17:22,600 --> 01:17:24,159 y 1347 01:17:24,159 --> 01:17:27,199 lo que va a pasar es que nosotros siempre vamos a 1348 01:17:27,199 --> 01:17:29,279 ejecutar la secuencia 1349 01:17:29,279 --> 01:17:31,060 en un sentido 1350 01:17:31,060 --> 01:17:32,960 de izquierda a derecha, o sea 1351 01:17:32,960 --> 01:17:35,479 cuando yo pinche en el triangulito 1352 01:17:35,479 --> 01:17:37,000 y conecte este con este 1353 01:17:37,000 --> 01:17:39,119 el sentido de ejecución va a ser 1354 01:17:39,119 --> 01:17:41,159 que se ejecuta primero este 1355 01:17:41,159 --> 01:17:43,119 y luego este, y cuando yo conecte 1356 01:17:43,119 --> 01:17:45,039 este con este, pues el siguiente 1357 01:17:45,039 --> 01:17:46,699 que se va a ejecutar va a ser esto 1358 01:17:46,699 --> 01:17:49,380 a efectos prácticos va a parecer que se está ejecutando 1359 01:17:49,380 --> 01:17:51,119 todo al mismo tiempo porque la ejecución 1360 01:17:51,119 --> 01:17:52,859 son milisegundos 1361 01:17:52,859 --> 01:17:55,039 ¿vale? pero realmente 1362 01:17:55,039 --> 01:17:57,220 el orden en el que se ejecutan las cosas 1363 01:17:57,220 --> 01:17:58,479 es importante ¿vale? 1364 01:17:59,020 --> 01:18:01,439 esto a nivel de ejecución y luego a nivel de información 1365 01:18:01,439 --> 01:18:03,119 cada nodo me va 1366 01:18:03,119 --> 01:18:04,579 a recibir información 1367 01:18:04,579 --> 01:18:06,960 y a sacar información 1368 01:18:06,960 --> 01:18:07,560 ¿vale? 1369 01:18:09,399 --> 01:18:10,420 acordaros de que los 1370 01:18:10,420 --> 01:18:12,680 pinners de información son redonditos 1371 01:18:12,680 --> 01:18:15,420 y los pinners de ejecución son triangulares 1372 01:18:15,420 --> 01:18:16,119 ¿vale? 1373 01:18:17,180 --> 01:18:19,300 bien, más o menos, ¿se entiende esto chicos? 1374 01:18:19,380 --> 01:18:22,420 más o menos 1375 01:18:22,420 --> 01:18:24,619 vamos a ver cómo funciona 1376 01:18:24,619 --> 01:18:27,699 entonces 1377 01:18:27,699 --> 01:18:33,270 yo tengo con vosotros hoy hasta las 2 1378 01:18:33,270 --> 01:18:35,069 vale, perfecto 1379 01:18:35,069 --> 01:18:36,409 entonces lo que os decía 1380 01:18:36,409 --> 01:18:38,170 como estoy en el level blueprint 1381 01:18:38,170 --> 01:18:41,229 en el level blueprint yo solo puedo trabajar con actores 1382 01:18:41,229 --> 01:18:42,810 con referencias a actores 1383 01:18:42,810 --> 01:18:45,390 yo estas secuencias que necesito controlar 1384 01:18:45,390 --> 01:18:47,130 me las he sacado al nivel 1385 01:18:47,130 --> 01:18:49,210 y voy a empezar a 1386 01:18:49,210 --> 01:18:50,090 operar con ellas 1387 01:18:50,090 --> 01:18:53,069 entonces yo que es lo que tengo que hacer 1388 01:18:53,069 --> 01:18:54,630 el sistema que tiene 1389 01:18:54,630 --> 01:18:56,829 Unreal para encontrar los nodos 1390 01:18:56,829 --> 01:18:58,710 es muy intuitivo ¿por qué? porque se llama 1391 01:18:58,710 --> 01:18:59,909 context 1392 01:18:59,909 --> 01:19:02,569 sensitive o sea 1393 01:19:02,569 --> 01:19:04,810 cuando yo tiro de una bolita 1394 01:19:04,810 --> 01:19:06,869 en este caso es una bolita de información 1395 01:19:06,869 --> 01:19:07,789 de color azul 1396 01:19:07,789 --> 01:19:10,369 yo tiro y suelto 1397 01:19:10,369 --> 01:19:12,729 me va a filtrar solo los nodos 1398 01:19:12,729 --> 01:19:14,890 que yo pueda utilizar con ese 1399 01:19:14,890 --> 01:19:16,989 tipo de información y con ese tipo 1400 01:19:16,989 --> 01:19:19,109 de nodo ¿vale? o sea no me va a mostrar 1401 01:19:19,109 --> 01:19:29,430 todas las posibilidades si yo quisiera ver todos los nodos posibles tendría que quitarle el context sensitive vale pero yo normalmente esto nunca lo quito porque yo no quiero 1402 01:19:29,430 --> 01:19:44,500 los nodos que no puedo utilizar vale entonces yo aquí que es lo que voy a buscar un play vale yo lo que quiero hacer es un play sequence player vale y fijaros que 1403 01:19:44,500 --> 01:19:56,420 cuando yo creo el Play Sequence Player, además del actor, se me ha creado otra burbujita que se llama componente. Esto es un componente. ¿Qué son los componentes 1404 01:19:56,420 --> 01:20:06,880 dentro de Blueprints? Pues son los parámetros que no forman parte exclusivamente del actor. ¿Os acordáis al principio de los principios que os decía que los actores 1405 01:20:06,880 --> 01:20:14,680 son contenedores vacíos que hacen referencia a cosas vale pues un actor como punto de partida 1406 01:20:14,680 --> 01:20:19,300 los únicos parámetros que tiene son las transformaciones y un parámetro que se llama 1407 01:20:19,300 --> 01:20:24,539 hidden in game para que se vea o no se vea cuando nosotros le demos al play que es lo mismo que pasa 1408 01:20:24,539 --> 01:20:30,619 que cuando le damos a la g en el editor que desaparecen los helpers vale entonces todos 1409 01:20:30,619 --> 01:20:37,439 los parámetros que no son de actor o sea todo lo que no es transformaciones o hidden in game son 1410 01:20:37,439 --> 01:20:42,539 parámetros específicos de ese tipo de actor vale pues esos parámetros específicos están dentro del 1411 01:20:42,539 --> 01:20:49,439 componente de hecho si yo selecciono cualquiera de estas secuencias fijaros que encima de sus 1412 01:20:49,439 --> 01:20:56,600 detalles yo tengo el actor que es la instancia y luego justo debajo un root component vale pues 1413 01:20:56,600 --> 01:21:11,699 Entonces todos los parámetros que no sean ni transformación ni hidden in game están dentro del componente. Por eso yo cuando quiero buscar el play de la secuencia, claro el play de la secuencia es un parámetro específico de la secuencia y eso está dentro del componente. 1414 01:21:11,699 --> 01:21:29,699 Por eso se me crea automáticamente esta otra burbuja. ¿Vale? Entonces, ¿yo qué es lo que quiero hacer con esta secuencia? Quiero reproducirla al derecho y Play Reverse. ¿Vale? Play Reverse. Vale, perfecto. 1415 01:21:29,699 --> 01:21:50,500 Perfecto. Entonces, esto es lo que yo voy a tener que ejecutar con un botón cuando esté en Aximetry. ¿Vale? ¿Bien? Entonces, ¿eso cómo se hace? Pues dentro de Aximetry, claro, como esto es el Unreal de Aximetry, aquí tenemos una serie de nodos que son específicos de Aximetry. 1416 01:21:50,500 --> 01:21:54,039 ¿Vale? Entonces si yo doy botón derecho y busco 1417 01:21:54,039 --> 01:21:57,079 AximetryFigure 1418 01:21:57,079 --> 01:21:59,159 ¿Vale? 1419 01:22:01,079 --> 01:22:03,819 Este nodo es el que va a servir 1420 01:22:03,819 --> 01:22:07,260 para que yo pueda ejecutar el play o el play reverse 1421 01:22:07,260 --> 01:22:09,340 Entonces toda esta parte os la va a contar Rafa 1422 01:22:09,340 --> 01:22:12,420 ¿Vale? Por eso yo no quiero emplear mucho tiempo en esto 1423 01:22:12,420 --> 01:22:16,000 porque esto os lo va a contar Rafa, pero nosotros ya vamos a dejar preparadas 1424 01:22:16,000 --> 01:22:18,600 estas burbujitas para que Rafa las pueda conectar 1425 01:22:18,600 --> 01:22:20,439 y las podáis usar en Aximetry ¿Vale? 1426 01:22:20,500 --> 01:22:38,970 Entonces, voy a hacer lo mismo con estas dos, si yo tiro de aquí y busco play, tengo el play sequence player, perfecto, pues voy a poder hacer play y si tiro de aquí otra vez voy a poder hacer play reverse, ¿vale? 1427 01:22:38,970 --> 01:23:03,720 Ya está. Y con este, lo mismo, tiro de él, pongo play, así, tiro otra vez de la bolita, si escribo reverse, play reverse, ¿vale? Ahí está. 1428 01:23:04,340 --> 01:23:14,619 Entonces, de momento, lo dejamos así, no tocamos nada, ¿vale? Cuando llegue Rafa, terminará de conectar estos nodos para que los podáis utilizar en la parte de Aximetri, ¿vale? 1429 01:23:14,619 --> 01:23:16,699 compilamos, veis que cada vez que hago 1430 01:23:16,699 --> 01:23:18,220 un cambio en el editor 1431 01:23:18,220 --> 01:23:20,640 tengo que darle a compilar para ver 1432 01:23:20,640 --> 01:23:22,659 si hay algún error, vale, si no luego 1433 01:23:22,659 --> 01:23:23,479 no va a funcionar 1434 01:23:23,479 --> 01:23:26,439 el botoncito de aquí arriba de la izquierda compile 1435 01:23:26,439 --> 01:23:28,680 tiene que estar en verde para que funcione todo, vale 1436 01:23:28,680 --> 01:23:30,600 salvamos 1437 01:23:30,600 --> 01:23:32,640 de momento esto lo dejamos 1438 01:23:32,640 --> 01:23:34,800 así, nos vamos 1439 01:23:34,800 --> 01:23:36,920 a abrir otro proyecto, un proyecto más sencillito 1440 01:23:36,920 --> 01:23:38,739 este lo vamos a abrir de Unreal 1441 01:23:38,739 --> 01:23:40,779 nativo, no lo vamos a abrir de Unreal 1442 01:23:40,779 --> 01:23:42,819 de Aximetry, porque lo que os quiero contar son cosas 1443 01:23:42,819 --> 01:23:44,600 básicas de Blueprints, vale 1444 01:23:44,600 --> 01:23:47,500 entonces abrimos el 1445 01:23:47,500 --> 01:23:50,439 el Epic Games Launcher 1446 01:23:50,439 --> 01:24:01,199 abrimos el Epic Games Launcher 1447 01:24:01,199 --> 01:24:05,550 y en la parte de Library 1448 01:24:05,550 --> 01:24:09,029 en la versión 5.3 nativa de Unreal 1449 01:24:09,029 --> 01:24:10,449 le damos a Launch 1450 01:24:10,449 --> 01:24:13,609 vamos a lanzar esta versión de Unreal 1451 01:24:13,609 --> 01:24:19,460 esta la voy a salvar y la voy a cerrar de momento 1452 01:24:19,460 --> 01:24:21,880 esta es la que luego subiré para que la tengáis 1453 01:24:21,880 --> 01:24:30,920 entonces cuando nosotros lanzamos una versión de Unreal 1454 01:24:30,920 --> 01:24:47,560 Aquí tenemos una serie de templates, ¿vale? Entonces le damos al template de juegos y nos vamos a hacer un template de third person character, ¿vale? ¿Por qué? Porque este ya viene con una serie de cosas configuradas que me ayudan a contaros la parte de Blueprint, ¿vale? 1455 01:24:47,560 --> 01:25:14,640 Entonces, Games, Third Person, le damos una ubicación, en mi caso va a ser las clases del Garci, ¿vale? Y lo voy a llamar MyFirstBlueprint y lo creo. Ahí estamos. 1456 01:25:14,640 --> 01:25:42,039 Entonces, esto que nos va a abrir, nos va a abrir un proyecto base template de Unreal, ¿vale? Este proyecto base template de Unreal, fijaros, es muy sencillito, tiene una serie de colisionadores creados, ¿veis? Estas son las colisiones que tiene la escena, player collision. 1457 01:25:42,039 --> 01:26:08,819 Y lo que pasa es que cuando yo le doy al play, que es el modo juego, me aparece un personaje, que es el third person character, que me permite moverlo. Si le doy al espacio salto, se ve. Este es el modo juego, el modo play. Es el modo play cuando yo veo lo que está pasando con los blueprints. 1458 01:26:08,819 --> 01:26:32,560 ¿Por qué? Porque hasta ahora hemos estado trabajando en el editor. Esto ya es el modo juego. Esto es lo que yo vería cuando empaquete el juego y se lo mande a mi cliente. Entonces, cuando nosotros trabajamos en Aximetry, estamos trabajando todo el rato en modo runtime, en modo juego. Por eso, lo que se tiene que ver bien es lo que pasa cuando le doy al play, no lo que veo cuando estoy en el editor. 1459 01:26:32,560 --> 01:26:36,220 que debería de ser lo mismo, pero a veces no es lo mismo, ¿vale? 1460 01:26:36,960 --> 01:26:45,180 Entonces, lo que os decía, vamos a ver, por ejemplo, por ejemplo, por ejemplo, 1461 01:26:45,260 --> 01:26:55,529 si yo arrastro una esfera, una esfera al nivel, yo tengo esta esfera aquí, 1462 01:26:57,800 --> 01:27:03,659 la escalo un poquito, la voy a escalar en los tres ejes para verla bien 1463 01:27:03,659 --> 01:27:21,970 Y me voy a Level Blueprint y me traigo una referencia. La referencia me la puedo traer o seleccionando el actor y dando botón derecho, Create a Reference o directamente pinchando y arrastrando. 1464 01:27:21,970 --> 01:27:22,850 vale 1465 01:27:22,850 --> 01:27:25,369 entonces 1466 01:27:25,369 --> 01:27:28,149 si yo por ejemplo 1467 01:27:28,149 --> 01:27:29,409 quisiera 1468 01:27:29,409 --> 01:27:32,010 hacer que esta esfera 1469 01:27:32,010 --> 01:27:33,229 fuese invisible 1470 01:27:33,229 --> 01:27:35,050 ¿cómo lo haríamos en el editor? 1471 01:27:35,409 --> 01:27:36,229 ¿a quién se le ocurre? 1472 01:27:38,500 --> 01:27:40,460 si yo quisiera invisibilizar esto 1473 01:27:40,460 --> 01:27:41,420 ¿cómo lo haríamos? 1474 01:27:47,149 --> 01:27:47,670 ¿alguien? 1475 01:27:49,090 --> 01:27:50,029 ¿sí? ¿no? 1476 01:27:50,729 --> 01:27:51,050 bueno 1477 01:27:51,050 --> 01:27:53,390 normalmente lo hacemos con el ojito 1478 01:27:53,390 --> 01:27:54,130 ¿no? 1479 01:27:55,810 --> 01:27:57,130 pero hay un parámetro 1480 01:27:57,130 --> 01:27:58,569 dentro de este actor 1481 01:27:58,569 --> 01:28:22,779 Si yo pongo visible aquí en el buscador, visible, hay un parámetro de visibility, ¿vale? Es lo mismo. Hace exactamente lo mismo. Entonces, si yo quisiera hacer esto a nivel de blueprints, tendría que venir a mi referencia, tirar y buscar visible. 1482 01:28:22,779 --> 01:28:40,399 Y resulta que hay uno de los nodos que se llama setVisibility. Como el setVisibility es un parámetro que no es específico del actor, sino que es específico de la malla estática, que es lo que es una esfera, tengo que sacar el componente. 1483 01:28:40,399 --> 01:28:56,939 Entonces, fijaros, veis que este nodo tiene set visibility, un pin de ejecución, un target, que es la geometría a la que está haciendo referencia, y luego un new visibility. 1484 01:28:56,939 --> 01:29:10,140 Claro, new visibility veis que tiene un color rojo. El color rojo de información es la información booleana. ¿Por qué? Porque la visibilidad solo puede estar o visible o no visible. ¿Vale? Solo puede ser o verdadero o falso. 1485 01:29:10,699 --> 01:29:14,159 Entonces, fijaros, ¿yo qué es lo que quiero? 1486 01:29:14,800 --> 01:29:23,359 Yo quiero que cuando arranque la experiencia y yo le dé al play, que es este botoncito aquí, la esfera esté invisible, no se vea, ¿vale? 1487 01:29:23,359 --> 01:29:31,609 Con lo cual me saco el bearing play, event bearing play, y lo conecto aquí, ¿vale? 1488 01:29:32,090 --> 01:29:39,210 Esto, cada vez que yo le dé al play, se va a ejecutar este nodo, y este nodo hace referencia a este actor, ¿vale? 1489 01:29:39,210 --> 01:29:53,770 ¿Y qué es lo que va a establecer? Que el parámetro visibility esté apagado. Si le diera este check, estaría encendido. ¿Se entiende esto? Vale, pero yo quiero que cuando arranque la experiencia esto esté apagado. 1490 01:29:53,770 --> 01:30:15,239 Y ahora, si cojo este nodo y hago control D, le voy a decir que esté encendido. Le tengo que decir que haga referencia al mismo target. Pero ¿cuándo quiero que se encienda? Cuando yo quiera. Cuando le dé, por ejemplo, a la tecla T. 1491 01:30:15,239 --> 01:30:39,119 ¿Vale? Entonces, ¿cómo me saco yo un evento que desencadene que este nodo se ejecute? Pues muy fácil, botón derecho y escribo T espacio keyboard, ¿vale? Y aquí tenemos la letra T. ¿Veis que tengo todos los comandos del teclado disponibles en Blueprint? Pues me saco la T. 1492 01:30:39,119 --> 01:30:54,279 Y la T, ¿qué tiene? Tiene la posibilidad de ejecutarse cuando presiono la tecla o cuando la suelto. ¿Vale? Press o Release. ¿Vale? Press o Release. 1493 01:30:54,279 --> 01:30:57,180 entonces fijaros 1494 01:30:57,180 --> 01:30:59,239 yo podría decirle que cuando presione 1495 01:30:59,239 --> 01:31:00,880 la tecla se encienda 1496 01:31:00,880 --> 01:31:02,640 y que cuando la suelte 1497 01:31:02,640 --> 01:31:04,060 se vuelva a apagar 1498 01:31:04,060 --> 01:31:05,399 ¿vale? 1499 01:31:06,899 --> 01:31:08,899 hago esto, compilo 1500 01:31:08,899 --> 01:31:10,880 y fijaros lo que pasa 1501 01:31:10,880 --> 01:31:13,220 si yo ahora le doy al play 1502 01:31:13,220 --> 01:31:15,140 de primeras la esfera no está 1503 01:31:15,140 --> 01:31:15,340 ¿no? 1504 01:31:16,439 --> 01:31:19,279 la esfera no está, pero bueno yo cuando me acerco 1505 01:31:19,279 --> 01:31:21,000 por aquí, veis que me choco 1506 01:31:21,000 --> 01:31:22,680 me estoy chocando contra algo 1507 01:31:22,680 --> 01:31:26,739 porque no la estoy viendo pero el colisionador está, ¿vale? 1508 01:31:26,920 --> 01:31:30,420 Entonces, si yo le doy a la T, la veo. 1509 01:31:30,760 --> 01:31:33,079 Y si suelto la T, desaparece, ¿vale? 1510 01:31:34,180 --> 01:31:34,939 Se ve, ¿no? 1511 01:31:36,140 --> 01:31:39,680 Si yo quisiera tener una referencia visual de lo que está pasando, 1512 01:31:39,680 --> 01:31:44,760 yo podría venirme al level blueprint y decirle, vale, 1513 01:31:45,039 --> 01:31:47,680 hay un nodo que se llama print string. 1514 01:31:49,239 --> 01:31:52,520 Estos nodos sirven para hacer debug de la escena. 1515 01:31:52,680 --> 01:31:55,100 O sea, para saber lo que está pasando. 1516 01:31:55,100 --> 01:32:06,420 Entonces, si yo, cuando se ejecuta este nodo, escribo aquí, esfera invisible, control D. 1517 01:32:07,560 --> 01:32:11,880 Y cuando se ejecuta este nodo, escribo aquí, esfera visible. 1518 01:32:18,199 --> 01:32:19,039 Fijaros lo que pasa. 1519 01:32:19,359 --> 01:32:21,239 Compilo, le doy al play. 1520 01:32:22,579 --> 01:32:24,220 Y aquí arriba me pone esfera invisible. 1521 01:32:24,220 --> 01:32:40,279 Pero cuando yo le doy a la T, esfera visible, invisible, visible, invisible, visible, invisible, cada vez que yo voy pulsando o soltando la T, ¿vale? La tecla T, en este caso. 1522 01:32:40,640 --> 01:32:47,800 Pero esto es un poco rollo, ¿no? O sea, yo lo que quiero es que cuando lo pulso una vez pase una cosa y cuando pulso otra vez pase otra cosa, ¿vale? 1523 01:32:48,640 --> 01:32:50,619 Entonces, ¿cómo lo hacemos? 1524 01:32:57,069 --> 01:32:58,729 Pues vengo al Level Blueprint. 1525 01:33:00,270 --> 01:33:04,090 Vengo al Level Blueprint y lo que voy a hacer es utilizar otro nodo. 1526 01:33:04,210 --> 01:33:06,630 Un nodo que se llama Flip Flop. 1527 01:33:07,949 --> 01:33:09,289 ¿Qué es un Flip Flop? 1528 01:33:09,369 --> 01:33:10,949 Un conmutador, básicamente. 1529 01:33:12,010 --> 01:33:13,989 Entonces, ¿cómo utilizo este conmutador? 1530 01:33:14,569 --> 01:33:17,909 Voy a eliminar estas dos ligaduras con Alt y Click. 1531 01:33:18,130 --> 01:33:20,029 Igual que en el editor de materiales, ¿vale? 1532 01:33:20,029 --> 01:33:38,520 Y lo que hago es conectar la tecla presionada al flip-flop. ¿Qué va a pasar? Que cuando haga el primer clic, él va a ejecutar la A y cuando haga el segundo clic, él va a ejecutar la B. ¿Vale? ¿Se entiende, chicos? 1533 01:33:38,520 --> 01:33:43,060 fijaros, yo puedo hacer también 1534 01:33:43,060 --> 01:33:44,779 debug de los nodos 1535 01:33:44,779 --> 01:33:47,079 si yo vengo aquí arriba a la derecha y le digo que me hago 1536 01:33:47,079 --> 01:33:49,060 un debug de este 1537 01:33:49,060 --> 01:33:50,760 nivel, del third person map 1538 01:33:50,760 --> 01:33:53,119 y me lo dejo 1539 01:33:53,119 --> 01:33:56,800 por aquí, fijaros lo que 1540 01:33:56,800 --> 01:33:58,899 está pasando, cuando yo le doy al play 1541 01:33:58,899 --> 01:34:00,939 veis que 1542 01:34:00,939 --> 01:34:02,539 lo primero que se ha ejecutado es esto 1543 01:34:02,539 --> 01:34:04,520 porque está conectado al begin play 1544 01:34:04,520 --> 01:34:05,779 ¿vale? 1545 01:34:07,220 --> 01:34:08,760 ahora, si yo hago click 1546 01:34:08,760 --> 01:34:10,239 en el visor, puedo jugar 1547 01:34:10,239 --> 01:34:12,880 ¿vale? y cuando yo juego 1548 01:34:12,880 --> 01:34:14,000 si le doy a la T 1549 01:34:14,000 --> 01:34:21,479 veis lo que está pasando ¿no? cada vez que le doy a la T 1550 01:34:21,479 --> 01:34:23,479 se ejecuta una parte 1551 01:34:23,479 --> 01:34:25,460 o la otra de la cadena 1552 01:34:25,460 --> 01:34:27,100 de la secuencia 1553 01:34:27,100 --> 01:34:29,380 ¿por qué? porque lo tengo conectado 1554 01:34:29,380 --> 01:34:32,760 a un flip flop ¿vale? 1555 01:34:34,100 --> 01:34:35,020 ¿se va entendiendo chicos? 1556 01:34:35,119 --> 01:34:36,899 esto es un poco abstracto pero luego 1557 01:34:36,899 --> 01:34:38,960 es súper útil y súper intuitivo 1558 01:34:38,960 --> 01:34:41,340 ¿vale? 1559 01:34:42,340 --> 01:34:43,960 esfera visible, esfera invisible 1560 01:34:43,960 --> 01:34:46,920 perfecto 1561 01:34:46,920 --> 01:35:06,989 Vale. Entonces, ¿qué más cosas podemos hacer? Se pueden hacer muchas cosas con esto. Un montón de cosas. ¿Qué más cosas se pueden hacer? Podemos hacer, por ejemplo, que una luz se encienda. 1562 01:35:06,989 --> 01:35:10,529 primero necesito tener una luz en la escena 1563 01:35:10,529 --> 01:35:13,369 me saco por ejemplo un spotlight 1564 01:35:13,369 --> 01:35:18,390 me saco un spotlight 1565 01:35:18,390 --> 01:35:22,310 lo giro un poquito para que apunte a la esfera 1566 01:35:22,310 --> 01:35:25,250 le doy un poquito de caña a la intensidad 1567 01:35:25,250 --> 01:35:30,859 así, ¿vale? 1568 01:35:31,500 --> 01:35:36,180 yo tengo esto, perfecto 1569 01:35:36,180 --> 01:35:39,880 entonces, yo necesito tener 1570 01:35:39,880 --> 01:35:42,520 una referencia de esta luz en mi level blueprint 1571 01:35:42,520 --> 01:35:44,859 ¿no? con lo cual 1572 01:35:47,159 --> 01:35:50,560 A ver, disculpad un segundito que tengo que mandar un mini mensaje. 1573 01:36:02,739 --> 01:36:03,079 A ver. 1574 01:36:04,119 --> 01:36:05,300 Vale, perfecto. 1575 01:36:07,199 --> 01:36:13,399 Entonces, yo necesito tener una referencia de esta luz dentro de mi Level Blueprint. 1576 01:36:13,560 --> 01:36:15,159 Con lo cual, vuelvo a mi Level Blueprint. 1577 01:36:18,329 --> 01:36:21,289 Están aquí todos mis nodos y me traigo esta luz, ¿vale? 1578 01:36:23,500 --> 01:36:24,420 Esta es mi luz. 1579 01:36:25,979 --> 01:36:27,439 Entonces, ¿yo qué es lo que quiero hacer aquí? 1580 01:36:27,439 --> 01:36:41,539 Pues quiero, por ejemplo, apagarla. Entonces lo mismo, tiro y busco Visibility, Set Visibility. 1581 01:36:41,779 --> 01:36:49,100 Veis que en este caso la visibilidad de la luz está dentro de un componente, pero el componente es diferente. 1582 01:36:49,239 --> 01:36:54,739 ¿Por qué? Porque esto es una luz y esto es una malla. Aquí pone Static Mesh Component y aquí pone Light Component. 1583 01:36:54,739 --> 01:37:14,180 ¿Por qué? Porque aparte de la visibilidad, yo aquí voy a tener intensidad, color, radio de atenuación, todos los parámetros que hemos visto de las luces. Sin embargo, la malla lo que va a tener es el slot de la malla, el slot del material, ¿vale? Todo lo relativo a la static mesh, ¿vale? 1584 01:37:14,180 --> 01:37:24,560 Se entiende que el actor tiene una serie de parámetros que son la transformación y el hidden in game y el resto de parámetros están asociados al componente, ¿vale? 1585 01:37:26,260 --> 01:37:40,000 Entonces, si yo quiero encender o apagar una luz, yo lo que podría hacer es lo siguiente, lo podría supeditar a un evento tipo teclado, pero yo no quiero eso. 1586 01:37:40,000 --> 01:37:56,739 Yo lo que quiero ahora es, fijaros, esto se complica un poco. Saco el Place Actors y busco mi Trigger Volume. Este Trigger Volume, ¿qué es lo que va a determinar? 1587 01:37:56,739 --> 01:38:00,199 veis que esto es un volumen parecido al volumen de postproducción 1588 01:38:00,199 --> 01:38:03,560 o al volumen de light mask que habíamos visto 1589 01:38:03,560 --> 01:38:05,819 vale, pues fijaros 1590 01:38:05,819 --> 01:38:09,319 si yo pongo este volumen más o menos en la zona 1591 01:38:09,319 --> 01:38:12,100 de la luz 1592 01:38:12,100 --> 01:38:14,760 y lo hago un poquito más grande 1593 01:38:14,760 --> 01:38:22,899 con la escala, una cosa así 1594 01:38:22,899 --> 01:38:26,859 voy a mover el player start que es donde arranca 1595 01:38:26,859 --> 01:38:29,619 el jugador, lo voy a poner por aquí 1596 01:38:29,619 --> 01:38:32,180 fijaros, con este elemento 1597 01:38:32,180 --> 01:38:33,420 seleccionado 1598 01:38:33,420 --> 01:38:35,520 yo puedo crear un evento 1599 01:38:35,520 --> 01:38:36,800 específico, ¿vale? 1600 01:38:38,060 --> 01:38:39,939 con ese elemento seleccionado 1601 01:38:39,939 --> 01:38:41,060 si yo doy botón derecho 1602 01:38:41,060 --> 01:38:42,920 aquí arriba pone 1603 01:38:42,920 --> 01:38:45,140 Add Event for Trigger Volume 1604 01:38:45,140 --> 01:38:47,439 si yo lo despliego, tengo 1605 01:38:47,439 --> 01:38:49,100 eventos de colisión 1606 01:38:49,100 --> 01:38:51,739 entonces los dos principales eventos de colisión 1607 01:38:51,739 --> 01:38:53,779 que tenemos son el Begin Overlap 1608 01:38:53,779 --> 01:38:55,560 y el End Overlap, o sea 1609 01:38:55,560 --> 01:38:57,220 que pase algo 1610 01:38:57,220 --> 01:38:59,020 cuando yo entre en el volumen 1611 01:38:59,020 --> 01:39:02,939 o que pase algo cuando yo salga del volumen, ¿vale? 1612 01:39:03,020 --> 01:39:04,779 Entonces voy a sacarme el Beguin Overlap 1613 01:39:04,779 --> 01:39:12,420 y me voy a sacar también el End Overlap, estos dos. 1614 01:39:13,220 --> 01:39:14,539 Entonces, ¿yo qué es lo que quiero? 1615 01:39:15,279 --> 01:39:17,979 Que de primeras, cuando arranque el juego, 1616 01:39:18,539 --> 01:39:20,779 la visibilidad de la luz sea apagado. 1617 01:39:21,020 --> 01:39:24,359 Eso significa que lo tengo que conectar a la cadena del Beguin Play, ¿vale? 1618 01:39:24,640 --> 01:39:26,960 Entonces, cuando yo dé a Play, se ejecuta esto. 1619 01:39:26,960 --> 01:39:30,680 significa que la luz de primeras se apaga 1620 01:39:30,680 --> 01:39:33,779 ¿vale? y ahora tiro de aquí 1621 01:39:33,779 --> 01:39:35,979 y me saco otro set visibility 1622 01:39:35,979 --> 01:39:40,890 y aquí le digo que la luz esté encendida 1623 01:39:40,890 --> 01:39:43,250 ¿vale? new visibility true 1624 01:39:43,250 --> 01:39:46,590 activado, entonces yo lo que quiero es que 1625 01:39:46,590 --> 01:39:49,149 de primeras se apaga 1626 01:39:49,149 --> 01:39:52,130 cuando yo entro se enciende 1627 01:39:52,130 --> 01:39:54,989 y cuando yo salgo se apaga 1628 01:39:54,989 --> 01:39:57,250 ¿se entiende lo que acabo de hacer? 1629 01:39:58,529 --> 01:40:00,590 Es un comportamiento sencillo. 1630 01:40:01,289 --> 01:40:02,189 Vamos a ver cómo funciona. 1631 01:40:03,729 --> 01:40:12,619 Compilo, le doy al play y fijaros, cuando yo me acerco a ti se enciende la luz y cuando salgo se apaga. 1632 01:40:13,539 --> 01:40:13,699 ¿Vale? 1633 01:40:15,039 --> 01:40:22,149 Se enciende y si encima le doy a la T aparece mi luz. 1634 01:40:22,449 --> 01:40:22,649 ¿Vale? 1635 01:40:22,649 --> 01:40:24,149 Se enciende, se apaga. 1636 01:40:24,689 --> 01:40:26,210 Se enciende, se apaga. 1637 01:40:26,630 --> 01:40:26,789 ¿Vale? 1638 01:40:27,409 --> 01:40:27,829 ¿Bien? 1639 01:40:30,119 --> 01:40:31,279 ¿Todo bien hasta aquí chicos? 1640 01:40:31,380 --> 01:40:31,760 ¿Más o menos? 1641 01:40:32,380 --> 01:40:33,539 ¿Se va entendiendo lo que pasa? 1642 01:40:33,680 --> 01:40:36,680 Diego, te iba a preguntar 1643 01:40:36,680 --> 01:40:37,960 se pueden dejar también comentarios 1644 01:40:37,960 --> 01:40:40,640 tipo, no sé si lo le escribo 1645 01:40:40,640 --> 01:40:42,579 sí, sí, sí, igual 1646 01:40:42,579 --> 01:40:44,180 si yo vengo aquí, por ejemplo 1647 01:40:44,180 --> 01:40:46,439 y si me quiero ordenar esto un poco 1648 01:40:46,439 --> 01:40:47,640 pues puedo decirle 1649 01:40:47,640 --> 01:40:49,859 estos nodos con la C 1650 01:40:49,859 --> 01:40:51,899 son las luces 1651 01:40:51,899 --> 01:40:54,539 o esto de aquí son 1652 01:40:54,539 --> 01:40:56,359 la esfera 1653 01:40:56,359 --> 01:40:58,539 por ejemplo, ¿vale? 1654 01:40:58,539 --> 01:40:59,760 eso lo podríamos hacer 1655 01:40:59,760 --> 01:41:01,600 y también podríamos venir a un nodo 1656 01:41:01,600 --> 01:41:15,090 y cuando le damos botón derecho aquí pone Note Comment, podríamos decir, este me enciende la luz, la luz, por ejemplo, 1657 01:41:15,289 --> 01:41:25,619 y se queda como un bocadillo encima del nodo con una aclaración, ¿vale? Perfecto. 1658 01:41:26,079 --> 01:41:32,340 Entonces, ¿qué más cosas se pueden hacer? Por ejemplo, si yo quisiera cambiar el color de la luz, 1659 01:41:32,340 --> 01:41:35,359 podría tirar de aquí 1660 01:41:35,359 --> 01:41:38,920 y buscar un set color 1661 01:41:38,920 --> 01:41:41,720 ¿vale? set light color 1662 01:41:41,720 --> 01:41:45,819 ¿cómo quiero yo cambiar el color? 1663 01:41:46,680 --> 01:41:47,520 pues por ejemplo 1664 01:41:47,520 --> 01:41:50,800 veis que esto es muy parecido, tiene un new light color 1665 01:41:50,800 --> 01:41:53,640 pero veis que el color de información es diferente, es azul 1666 01:41:53,640 --> 01:41:56,659 ¿por qué? porque los colores 1667 01:41:56,659 --> 01:42:00,260 es un tipo diferente a las booleanas 1668 01:42:00,260 --> 01:42:18,939 ¿Vale? Las booleanas son rojas, solo puedo hacer sí o no, pero los colores cuando yo hago clic aquí pues tengo la rueda cromática. ¿Vale? Entonces vamos a decirle que de primeras cuando haga play se ponga en blanco la luz. ¿Vale? Cuando haga play. 1669 01:42:18,939 --> 01:42:21,079 que después 1670 01:42:21,079 --> 01:42:23,760 control D 1671 01:42:23,760 --> 01:42:26,619 cuando pase algo 1672 01:42:26,619 --> 01:42:27,600 se ponga verde 1673 01:42:27,600 --> 01:42:28,699 la luz 1674 01:42:28,699 --> 01:42:30,680 y que después 1675 01:42:30,680 --> 01:42:32,020 cuando pase algo 1676 01:42:32,020 --> 01:42:34,939 se ponga morada 1677 01:42:34,939 --> 01:42:35,979 ¿vale? 1678 01:42:36,779 --> 01:42:37,699 ¿qué pasa? 1679 01:42:37,899 --> 01:42:39,340 que ahora ya tengo tres opciones 1680 01:42:39,340 --> 01:42:40,260 ya no puedo trabajar 1681 01:42:40,260 --> 01:42:41,199 con un flip flop 1682 01:42:41,199 --> 01:42:41,579 ¿no? 1683 01:42:42,579 --> 01:42:43,680 porque un flip flop 1684 01:42:43,680 --> 01:42:45,060 solo me hace A o B 1685 01:42:45,060 --> 01:42:46,020 A o B 1686 01:42:46,020 --> 01:42:46,880 todo el rato 1687 01:42:46,880 --> 01:42:47,899 entonces 1688 01:42:47,899 --> 01:43:06,270 Cuando tenemos más de dos opciones, necesito tirar de otro nodo que se llama multigate. ¿El multigate qué me permite hacer? Pues me permite añadir pines de ejecución por aquí. 1689 01:43:06,270 --> 01:43:07,890 entonces si yo le doy al más 1690 01:43:07,890 --> 01:43:10,689 aquí ya tendría el 0, el 1 1691 01:43:10,689 --> 01:43:11,829 y el 2, vale 1692 01:43:11,829 --> 01:43:13,189 entonces 1693 01:43:13,189 --> 01:43:16,569 para que cuando yo empiece a operar con esto 1694 01:43:16,569 --> 01:43:18,409 esto parezca un loop 1695 01:43:18,409 --> 01:43:20,869 ¿cuál es el comportamiento que yo necesito? 1696 01:43:21,470 --> 01:43:23,090 pues si se pone blanco 1697 01:43:23,090 --> 01:43:24,789 al hacer Benin Play 1698 01:43:24,789 --> 01:43:26,630 yo quiero que la primera vez que le dé 1699 01:43:26,630 --> 01:43:28,310 se ponga verde 1700 01:43:28,310 --> 01:43:30,710 que la segunda vez que le dé se ponga 1701 01:43:30,710 --> 01:43:32,449 morado y que la tercera 1702 01:43:32,449 --> 01:43:34,189 se vuelva a poner blanco 1703 01:43:34,189 --> 01:43:35,630 ¿vale? 1704 01:43:36,270 --> 01:43:38,930 ¿entendéis la lógica, chicos? 1705 01:43:40,810 --> 01:43:41,050 Sí. 1706 01:43:43,310 --> 01:43:43,869 Vale. 1707 01:43:44,390 --> 01:43:46,970 Entonces, esto lo tenemos que 1708 01:43:46,970 --> 01:43:50,770 conectar a un evento 1709 01:43:50,770 --> 01:43:52,250 de otro tipo. Bueno, 1710 01:43:52,649 --> 01:43:54,329 podríamos darle otra tecla, por ejemplo, 1711 01:43:54,449 --> 01:43:54,890 la Y. 1712 01:43:54,890 --> 01:43:56,329 Y, Y, 1713 01:43:56,489 --> 01:43:57,909 espacio keyboard. 1714 01:43:58,810 --> 01:44:02,340 ¿Vale? Entonces, esto debería 1715 01:44:02,340 --> 01:44:03,340 de estar por aquí. 1716 01:44:04,399 --> 01:44:04,699 A ver. 1717 01:44:06,479 --> 01:44:07,020 La Y, 1718 01:44:07,020 --> 01:44:24,340 Y a ver dónde está. Aquí está. Vale. La saco y yo quiero que cada vez que le dé a la Y, él me haga 0, 1 y 2. Pero además quiero que esté en loop. ¿Ves que me da la opción de que luego empiece otra vez por el primero? Vale. Vamos a probarlo. 1719 01:44:24,340 --> 01:44:27,899 compilo y me está dando un error 1720 01:44:27,899 --> 01:44:29,319 ¿por qué me da un error? 1721 01:44:29,600 --> 01:44:31,899 fijaros, me está diciendo 1722 01:44:31,899 --> 01:44:33,960 que no tengo conectado 1723 01:44:33,960 --> 01:44:36,140 el target, no sabe a qué actor 1724 01:44:36,140 --> 01:44:37,859 tiene que apuntar, con lo cual 1725 01:44:37,859 --> 01:44:40,159 tengo que enchufar el componente al target 1726 01:44:40,159 --> 01:44:41,800 y el componente 1727 01:44:41,800 --> 01:44:42,859 al target 1728 01:44:42,859 --> 01:44:45,880 lo bueno de dar a compilar es que me dice 1729 01:44:45,880 --> 01:44:47,939 si está todo bien conectado 1730 01:44:47,939 --> 01:44:49,399 o si me falta alguna conexión 1731 01:44:49,399 --> 01:44:50,720 ¿vale? 1732 01:44:52,939 --> 01:44:53,460 salvamos 1733 01:44:53,460 --> 01:45:05,050 Entonces, vamos a probarlo. Le doy al play, yo estoy aquí fuera, si le doy a la T, aparece la esfera, o desaparece, ¿vale? 1734 01:45:05,270 --> 01:45:11,409 Si me meto dentro del volumen, se enciende la luz, ¿vale? Y la T sigue funcionando, ¿vale? 1735 01:45:11,409 --> 01:45:21,970 Si yo entro o salgo, se enciende, y una vez que está encendido, si le doy a la Y, verde, morado y blanco, ¿vale? 1736 01:45:21,970 --> 01:45:45,189 ¿Vale? ¿Bien? ¿Se entiende, no? Es bastante intuitivo. Perfecto. Muy bien. Entonces, ahora, vamos a traernos el plugin de materiales a este proyecto. 1737 01:45:45,189 --> 01:45:58,510 El plugin de materiales os acordáis que lo teníamos que poner al mismo nivel que la carpeta content, ¿vale? Entonces, botón derecho, show in explorer, ¿vale? Lo tengo que poner aquí a este nivel. 1738 01:45:58,510 --> 01:46:01,050 entonces me vengo al otro proyecto 1739 01:46:01,050 --> 01:46:02,970 que tiene los plugins, control c 1740 01:46:02,970 --> 01:46:04,729 y 1741 01:46:04,729 --> 01:46:07,149 control v 1742 01:46:07,149 --> 01:46:09,010 vale, para que esto me lo reconozca 1743 01:46:09,010 --> 01:46:10,770 tengo que apagar y encender el proyecto 1744 01:46:10,770 --> 01:46:13,560 salvo 1745 01:46:13,560 --> 01:46:16,800 tengo que tener activado el show engine 1746 01:46:16,800 --> 01:46:18,340 content, cierro 1747 01:46:18,340 --> 01:46:20,880 y lo vuelvo a abrir 1748 01:46:20,880 --> 01:46:29,659 a ver 1749 01:46:29,659 --> 01:46:33,760 voy a cerrar el after effects que ya no me hace 1750 01:46:33,760 --> 01:46:38,409 falta, vale 1751 01:46:38,409 --> 01:46:40,649 aquí los tengo los plugins, vale entonces 1752 01:46:40,649 --> 01:46:41,970 me voy a sacar 1753 01:46:41,970 --> 01:46:44,250 una de las mallas que está en el plugin 1754 01:46:44,250 --> 01:46:45,470 que es el dragón este, ¿vale? 1755 01:46:47,819 --> 01:46:48,619 Este dragón 1756 01:46:48,619 --> 01:46:50,319 lo coloco aquí. 1757 01:46:53,760 --> 01:46:54,359 Perfecto. 1758 01:46:56,420 --> 01:46:56,939 90. 1759 01:46:57,539 --> 01:46:58,000 Muy bien. 1760 01:47:01,600 --> 01:47:01,859 Vale. 1761 01:47:02,880 --> 01:47:04,960 Ahora, vamos a empezar a hacer 1762 01:47:04,960 --> 01:47:07,180 modificaciones de movimiento 1763 01:47:07,180 --> 01:47:09,079 por blueprints, ¿vale? 1764 01:47:09,500 --> 01:47:10,659 ¿Cómo hacemos esto? 1765 01:47:12,899 --> 01:47:13,739 Pues muy sencillo. 1766 01:47:18,189 --> 01:47:20,010 Antes de ponernos a hacer modificaciones 1767 01:47:20,010 --> 01:47:20,909 con blueprints 1768 01:47:20,909 --> 01:47:23,869 necesito que entendáis 1769 01:47:23,869 --> 01:47:25,850 un par de conceptos, ¿vale? 1770 01:47:25,989 --> 01:47:35,609 Necesito que entendáis qué son las coordenadas globales, relativas y locales, ¿vale? 1771 01:47:35,609 --> 01:48:05,180 Entonces, si sacamos nuestra pizarrita, tenemos coordenadas globales, relativas y locales. 1772 01:48:05,479 --> 01:48:11,560 ¿Por qué? Porque luego las transformaciones que vamos a poder hacer en Blueprints van a ser globales, relativas o locales. 1773 01:48:11,560 --> 01:48:42,930 ¿Vale? Perfecto. Las globales son las que coinciden con las coordenadas del mundo, ¿vale? Estas son las world. Y aquí lo que tenemos que tener claro es que el eje que mira para adelante es el X y a efectos de Blueprint se va a llamar forward vector, ¿vale? Forward. 1774 01:48:42,930 --> 01:49:00,909 El que mira para la derecha, me he confundido, es el Y y este se llama Right Vector, ¿vale? Y el que mira para arriba es el Z y se va a llamar Up Vector, ¿vale? 1775 01:49:00,909 --> 01:49:19,470 Entonces, estas son las globales. Las globales son las que tenemos siempre aquí abajo, ¿vale? Si yo giro, ¿veis? Tengo un gizmo que me indica cuáles son las coordenadas del mundo, ¿vale? Pues yo voy a poder mover, rotar o escalar los objetos en base a las coordenadas globales, si quiero, ¿vale? 1776 01:49:19,470 --> 01:49:34,729 Luego, ¿las relativas cuáles son? Van a ser las que yo tenga cuando un objeto esté atachado a otro, cuando haya una relación parent-child, ¿vale? 1777 01:49:36,010 --> 01:49:46,890 Entonces, lo que va a pasar ahí es que si el parent gira, el forward vector y el right vector cambian de orientación, ¿no? ¿Vale? 1778 01:49:46,890 --> 01:49:59,210 Entonces las relativas son esas y luego las locales van a ser las que yo tenga al girar o desplazar el objeto, ¿vale? Van a ser las propias del objeto, vamos a verlo, propias. 1779 01:49:59,210 --> 01:50:05,500 vamos a duplicar este objeto 1780 01:50:05,500 --> 01:50:08,060 me lo duplico 1781 01:50:08,060 --> 01:50:10,420 y le digo a este 1782 01:50:10,420 --> 01:50:12,779 que sea 1783 01:50:12,779 --> 01:50:15,000 un child 1784 01:50:15,000 --> 01:50:17,319 del de arriba, de hecho vamos a cambiarle el nombre 1785 01:50:17,319 --> 01:50:17,880 dragón 1786 01:50:17,880 --> 01:50:21,260 parent para que se entienda 1787 01:50:21,260 --> 01:50:22,760 mejor y dragón 1788 01:50:22,760 --> 01:50:24,979 child para que se entienda mejor 1789 01:50:24,979 --> 01:50:27,960 vale, ahí está 1790 01:50:27,960 --> 01:50:30,439 entonces, las coordenadas 1791 01:50:30,439 --> 01:50:31,680 globales de este objeto 1792 01:50:31,680 --> 01:50:37,500 son las que vienen aquí, 650, 570, 0. 1793 01:50:38,000 --> 01:50:44,739 De hecho, si quiero que sean números enteros, me la podría llevar a 600, 600, ¿vale? 1794 01:50:45,560 --> 01:50:50,939 En esta escena, el 00 de la escena es esta esquina de aquí abajo, ¿vale? 1795 01:50:52,739 --> 01:50:58,859 Entonces, lo que yo tengo son 600 centímetros hasta aquí y 600 centímetros hasta aquí, ¿vale? 1796 01:50:59,000 --> 01:50:59,520 6 metros. 1797 01:50:59,520 --> 01:51:18,600 Entonces, las coordenadas globales de este objeto son 600, 600 y 90 grados en Z, ¿vale? Está girado 90 grados con respecto a la orientación global del mundo, ¿bien? ¿Se entiende eso? 1798 01:51:18,600 --> 01:51:21,779 fijaros, cuando yo selecciono el otro 1799 01:51:21,779 --> 01:51:23,279 lo que me está diciendo 1800 01:51:23,279 --> 01:51:27,789 es que sus coordenadas 1801 01:51:27,789 --> 01:51:28,670 son 100 1802 01:51:28,670 --> 01:51:31,630 simplemente 100, 0, 0 1803 01:51:31,630 --> 01:51:32,750 ¿por qué? porque él tiene 1804 01:51:32,750 --> 01:51:35,789 100 centímetros con respecto 1805 01:51:35,789 --> 01:51:37,210 al padre, ¿vale? 1806 01:51:37,390 --> 01:51:38,670 si yo quisiera saber 1807 01:51:38,670 --> 01:51:40,689 cuáles son las del mundo 1808 01:51:40,689 --> 01:51:43,189 podría cambiarlo y me va a decir que son 1809 01:51:43,189 --> 01:51:45,170 600, 700, 0 1810 01:51:45,170 --> 01:51:46,210 tiene sentido, ¿no? 1811 01:51:49,140 --> 01:51:51,479 vale, entonces cuando 1812 01:51:51,479 --> 01:51:55,359 yo introduzco una variación de transformación en este objeto 1813 01:51:55,359 --> 01:51:59,340 como está dependiendo de otro, voy a tener en cuenta que sus 1814 01:51:59,340 --> 01:52:04,869 coordenadas tienen que ser estas. Luego, si yo me 1815 01:52:04,869 --> 01:52:08,850 duplico con Alt este dragón de aquí y yo le hago una modificación 1816 01:52:08,850 --> 01:52:15,000 de este estilo y me vengo aquí arriba y 1817 01:52:15,000 --> 01:52:18,380 cambio de coordenadas del mundo a coordenadas locales 1818 01:52:18,380 --> 01:52:24,109 las coordenadas locales son estas. ¿Se entiende? 1819 01:52:24,109 --> 01:52:28,569 se entiende que ahora han girado los ejes 1820 01:52:28,569 --> 01:52:30,930 y cuando yo giro, giro con respecto 1821 01:52:30,930 --> 01:52:32,470 a la última modificación 1822 01:52:32,470 --> 01:52:36,399 no a las del mundo, ¿bien? 1823 01:52:37,840 --> 01:52:38,739 se entiende 1824 01:52:38,739 --> 01:52:40,439 más o menos, coordenadas globales 1825 01:52:40,439 --> 01:52:42,979 coordenadas relativas y coordenadas locales 1826 01:52:42,979 --> 01:52:43,640 ¿sí? 1827 01:52:44,699 --> 01:52:46,600 vale, pues esto es lo que nosotros vamos 1828 01:52:46,600 --> 01:52:48,399 a utilizar para desplazar objetos 1829 01:52:48,399 --> 01:52:49,359 ¿vale? 1830 01:52:50,859 --> 01:52:52,640 entonces, me cargo este dragón 1831 01:52:52,640 --> 01:52:53,640 me lo cargo 1832 01:52:53,640 --> 01:52:55,699 voy a venir aquí 1833 01:52:55,699 --> 01:53:00,779 y le voy a cambiar el material a este para identificarlo un poquito mejor, ¿vale? 1834 01:53:01,439 --> 01:53:06,279 Me vengo al material que ya tiene, que es este, botón derecho y me creo una instancia. 1835 01:53:07,220 --> 01:53:09,960 Y esa instancia se la aplico a este de aquí. 1836 01:53:10,260 --> 01:53:12,500 Y básicamente lo que voy a hacer es cambiarle los colores. 1837 01:53:13,380 --> 01:53:15,539 Porque si no, va a ser más difícil de ver. 1838 01:53:16,380 --> 01:53:22,199 Le digo que esto sea azul y que esto sea morado, por ejemplo, ¿vale? 1839 01:53:22,199 --> 01:53:29,260 y ya tenemos un dragón marroncito que es el padre y un dragón azul que es el hijo, ¿vale? 1840 01:53:29,939 --> 01:53:36,779 Perfecto, entonces, fijaros, yo ahora me vengo a mi Level Blueprint 1841 01:53:36,779 --> 01:53:53,130 y me traigo una referencia del dragón padre, de este, botón derecho, Create, Reference, perfecto. 1842 01:53:55,840 --> 01:53:57,420 ¿Qué es lo que tengo que hacer yo aquí ahora? 1843 01:53:57,420 --> 01:54:12,550 Pues tengo que tirar de aquí y buscar un nodo que se llama set location, set location, set, set, set, set, tengo varios, ¿vale? 1844 01:54:13,510 --> 01:54:22,829 Set, ¿veis que? Yo aquí tengo set world location, set relative location y también tengo lo que se llama add actor local offset. 1845 01:54:22,829 --> 01:54:25,869 aquí se están viendo las tres tipologías de coordenada 1846 01:54:25,869 --> 01:54:28,590 que os comentaba, la global, la del mundo 1847 01:54:28,590 --> 01:54:32,090 la relativa que es con respecto al padre 1848 01:54:32,090 --> 01:54:34,670 y la local que es con respecto 1849 01:54:34,670 --> 01:54:37,909 a la última modificación de transformación que haya sufrido el objeto 1850 01:54:37,909 --> 01:54:40,710 ¿vale? entonces yo ahora mismo lo que quiero 1851 01:54:40,710 --> 01:54:44,010 meterle es un set world 1852 01:54:44,010 --> 01:54:45,010 location ¿vale? 1853 01:54:46,909 --> 01:54:49,109 perfecto, entonces 1854 01:54:49,109 --> 01:54:51,989 el set world location fijaros 1855 01:54:51,989 --> 01:54:59,510 lo que me está pidiendo es una nueva localización X y Z con respecto al mundo, ¿vale? 1856 01:54:59,829 --> 01:55:05,390 Entonces, si yo quisiera, por ejemplo, que este dragón se moviera a este punto, 1857 01:55:05,390 --> 01:55:18,000 que este punto es el punto 600, 500, 0, tendría que venir aquí y decirle, vale, 1858 01:55:18,140 --> 01:55:25,380 quiero que cuando algo pase esto se vaya al 600, 500, 0. 1859 01:55:25,859 --> 01:55:30,020 ¿Vale? Entonces vamos a sacar un evento de teclado también. 1860 01:55:30,340 --> 01:55:30,640 La U. 1861 01:55:31,420 --> 01:55:34,220 Entonces le doy U espacio keyboard. 1862 01:55:36,020 --> 01:55:42,979 Y yo quiero que cuando pulse la U, este dragón se mueva a estas coordenadas. 1863 01:55:43,399 --> 01:55:43,640 ¿Vale? 1864 01:55:44,619 --> 01:55:45,600 Así de sencillo. 1865 01:55:46,619 --> 01:55:47,260 Compilamos. 1866 01:55:48,720 --> 01:55:52,140 Si yo le doy al play, estoy aquí. 1867 01:55:52,659 --> 01:55:53,600 Ahí están mis dragones. 1868 01:55:53,600 --> 01:55:55,619 si yo le doy a la U 1869 01:55:55,619 --> 01:55:58,739 no me hace ni caso 1870 01:55:58,739 --> 01:56:00,479 ¿por qué no me está haciendo ni caso? 1871 01:56:01,380 --> 01:56:01,619 vale 1872 01:56:01,619 --> 01:56:05,079 para que los objetos se muevan 1873 01:56:05,079 --> 01:56:07,000 hay que cambiarle la movilidad a movible 1874 01:56:07,000 --> 01:56:08,920 si están estáticos no funcionan 1875 01:56:08,920 --> 01:56:09,159 ¿vale? 1876 01:56:09,520 --> 01:56:11,920 entonces este objeto tiene que estar en movible 1877 01:56:11,920 --> 01:56:15,079 y este objeto también tiene que estar en movible 1878 01:56:15,079 --> 01:56:16,359 ¿vale? 1879 01:56:18,479 --> 01:56:19,000 ahora 1880 01:56:19,000 --> 01:56:20,199 le doy al play 1881 01:56:20,199 --> 01:56:21,779 estoy jugando 1882 01:56:21,779 --> 01:56:24,300 si yo le doy a la U 1883 01:56:24,300 --> 01:56:26,779 ves que cambia de posición 1884 01:56:26,779 --> 01:56:27,060 ¿no? 1885 01:56:28,500 --> 01:56:30,479 vale, pero y si yo quisiera 1886 01:56:30,479 --> 01:56:31,880 que después de eso 1887 01:56:31,880 --> 01:56:33,979 se moviera a otra 1888 01:56:33,979 --> 01:56:36,619 localización, ¿cómo podría hacerlo? 1889 01:56:37,180 --> 01:56:38,039 con el flip flop 1890 01:56:38,039 --> 01:56:42,130 vengo aquí al open level blueprint 1891 01:56:42,130 --> 01:56:44,529 y le digo, vale, yo quiero que la primera 1892 01:56:44,529 --> 01:56:46,569 vez que le dé pase una cosa, pero que la segunda 1893 01:56:46,569 --> 01:56:47,250 pase otra 1894 01:56:47,250 --> 01:56:49,229 pues venga 1895 01:56:49,229 --> 01:56:52,810 entonces, me saco un flip flop 1896 01:56:52,810 --> 01:56:57,279 este no, perdón 1897 01:56:58,659 --> 01:57:12,100 Click, flop, este de aquí, conecto esto aquí, voy un poco rápido, pero es que no tengo mucho tiempo para contaros esto. 1898 01:57:12,359 --> 01:57:18,119 Entonces, la primera vez me lo mueves aquí y la segunda me lo mueves a otra ubicación, control C, control V. 1899 01:57:18,119 --> 01:57:29,340 Y ahora quiero que en lugar de a 600 me lo muevas al 300 en I, ¿vale? 1900 01:57:29,340 --> 01:57:31,699 y compilamos, me dice 1901 01:57:31,699 --> 01:57:33,460 hay un error, ¿qué es lo que falta? 1902 01:57:33,659 --> 01:57:35,399 que le conecte el target, no sé 1903 01:57:35,399 --> 01:57:37,140 qué actor es el que tengo que mover 1904 01:57:37,140 --> 01:57:39,399 lo conectamos 1905 01:57:39,399 --> 01:57:41,579 compilo y salvo 1906 01:57:41,579 --> 01:57:43,920 entonces le doy al play 1907 01:57:43,920 --> 01:57:47,680 la primera vez que le doy al AU se mueve ahí 1908 01:57:47,680 --> 01:57:50,060 la segunda vez que le doy al AU se mueve aquí 1909 01:57:50,060 --> 01:57:52,060 si le doy otra vez, como es un flip-flop 1910 01:57:52,060 --> 01:57:53,659 se mueve aquí, ¿vale? 1911 01:57:55,319 --> 01:57:56,060 se ve, ¿no? 1912 01:57:56,060 --> 01:57:57,060 lo que está pasando 1913 01:57:57,060 --> 01:57:59,180 si nosotros dejamos la ventana abierta 1914 01:57:59,180 --> 01:58:02,260 y ponemos aquí que queremos 1915 01:58:02,260 --> 01:58:04,319 debuguear este mapa 1916 01:58:04,319 --> 01:58:07,260 lo puedo ver 1917 01:58:07,260 --> 01:58:09,600 en tiempo real, le doy al play 1918 01:58:09,600 --> 01:58:11,899 y lo que pasa es que 1919 01:58:11,899 --> 01:58:13,380 cuando le doy al lado una vez 1920 01:58:13,380 --> 01:58:15,939 se mueve a ese punto y la segunda vez 1921 01:58:15,939 --> 01:58:18,060 se mueve a ese punto y la primera vez 1922 01:58:18,060 --> 01:58:19,239 se mueve al anterior 1923 01:58:19,239 --> 01:58:21,560 ¿se ve chicos? 1924 01:58:22,260 --> 01:58:22,880 ¿lo que está pasando? 1925 01:58:24,300 --> 01:58:24,479 si 1926 01:58:24,479 --> 01:58:28,020 esto con respecto a las 1927 01:58:28,020 --> 01:58:29,399 coordenadas globales 1928 01:58:29,399 --> 01:58:53,079 Si yo lo que quisiera es tocar las coordenadas relativas, tendría que venir aquí, traerme un objeto que tenga coordenadas relativas, que es el child, botón derecho, me crea una referencia y le digo que lo que quiero hacer ahora es setRelativeLocation, por ejemplo. 1929 01:58:53,079 --> 01:59:00,170 ¿Vale? Perfecto. Entonces aquí 1930 01:59:00,170 --> 01:59:04,770 las coordenadas que yo le meta aquí tienen que ser con respecto al padre, no con respecto 1931 01:59:04,770 --> 01:59:07,529 al mundo. ¿Vale? Control-C, Control-V 1932 01:59:07,529 --> 01:59:12,069 conecto el target y me saco otra tecla 1933 01:59:12,069 --> 01:59:16,189 que puede ser la J, por ejemplo. J 1934 01:59:16,189 --> 01:59:22,420 espacio keyboard. Y me saco otro flip-flop 1935 01:59:22,420 --> 01:59:26,260 Control-D. Control-D es igual que Control-C, Control-V 1936 01:59:26,260 --> 01:59:45,899 ¿Vale? Pero más corto. Entonces, la primera vez yo quiero que esto se mueva, por ejemplo, para acá hasta aquí. Eso sería 100 menos 100. ¿Vale? Pues la primera vez quiero que esto sea 100 menos 100. 1937 01:59:45,899 --> 02:00:10,800 y la segunda vez quiero que esto sea 200 menos 300, por ejemplo, vale, la A pasa esto y la B pasa esto, y compilo, vale, entonces, si yo vengo aquí y le digo que lo quiero debuguear, 1938 02:00:10,800 --> 02:00:35,720 Lo que tendríamos es lo siguiente, me lo tengo que traer otra vez al mismo punto en el que estaba al principio, si yo le doy al play, con la U hacemos modificaciones con respecto al mundo y con la J hago modificaciones con respecto al parent, ¿vale? 1939 02:00:35,720 --> 02:00:37,319 bien 1940 02:00:37,319 --> 02:00:40,239 perfecto 1941 02:00:40,239 --> 02:00:41,300 pero 1942 02:00:41,300 --> 02:00:43,159 ¿cómo podría hacer yo 1943 02:00:43,159 --> 02:00:43,779 para que 1944 02:00:43,779 --> 02:00:45,380 el dragón 1945 02:00:45,380 --> 02:00:46,039 girara 1946 02:00:46,039 --> 02:00:47,520 indefinidamente? 1947 02:00:47,760 --> 02:00:48,439 ¿qué se os ocurre? 1948 02:00:48,960 --> 02:00:49,779 ¿qué podríamos hacer? 1949 02:00:54,960 --> 02:00:55,960 ¿pero al pulsar una tecla? 1950 02:00:57,180 --> 02:00:57,779 no 1951 02:00:57,779 --> 02:01:00,359 con otro tipo de evento 1952 02:01:00,359 --> 02:01:01,180 que os he contado 1953 02:01:01,180 --> 02:01:02,420 pero que todavía no he utilizado 1954 02:01:02,420 --> 02:01:06,729 el que se actualiza 1955 02:01:06,729 --> 02:01:07,850 en cada fotograma 1956 02:01:07,850 --> 02:01:08,810 eso es 1957 02:01:08,810 --> 02:01:10,329 el event tick 1958 02:01:10,329 --> 02:01:11,449 con el event tick 1959 02:01:11,449 --> 02:01:12,569 nosotros podríamos hacer 1960 02:01:12,569 --> 02:01:14,170 que en cada fotograma 1961 02:01:14,170 --> 02:01:16,670 le añadieramos 1962 02:01:16,670 --> 02:01:17,470 un grado 1963 02:01:17,470 --> 02:01:20,489 al giro, por ejemplo. 1964 02:01:21,109 --> 02:01:21,609 Vamos a hacerlo. 1965 02:01:23,920 --> 02:01:25,979 Si nosotros, por ejemplo, tenemos 1966 02:01:25,979 --> 02:01:28,060 el Dragon Parent y nos 1967 02:01:28,060 --> 02:01:29,560 sacamos el 1968 02:01:29,560 --> 02:01:30,039 Add 1969 02:01:30,039 --> 02:01:32,500 Local 1970 02:01:32,500 --> 02:01:35,100 Rotation 1971 02:01:35,100 --> 02:01:37,420 y le digo que 1972 02:01:37,420 --> 02:01:41,079 necesito el Event Tick 1973 02:01:41,079 --> 02:01:43,279 y que en Z quiero que 1974 02:01:43,279 --> 02:01:45,239 cada vez que 1975 02:01:45,239 --> 02:01:47,079 renderice un frame le añado un grado 1976 02:01:47,079 --> 02:01:48,399 al giro en Z 1977 02:01:48,399 --> 02:01:51,020 me traigo el event tick 1978 02:01:51,020 --> 02:01:52,899 que si no está aquí 1979 02:01:52,899 --> 02:01:54,479 me lo puedo sacar 1980 02:01:54,479 --> 02:01:57,819 botón derecho 1981 02:01:57,819 --> 02:02:00,380 tick, event tick 1982 02:02:00,380 --> 02:02:01,140 aquí está 1983 02:02:01,140 --> 02:02:04,779 pues yo conecto esto 1984 02:02:04,779 --> 02:02:06,600 entiendo que solo puede haber uno 1985 02:02:06,600 --> 02:02:07,140 en 1986 02:02:07,140 --> 02:02:11,260 solo puede haber uno 1987 02:02:11,260 --> 02:02:12,100 exacto 1988 02:02:12,100 --> 02:02:14,000 compilamos 1989 02:02:14,000 --> 02:02:16,439 y vemos que pasa 1990 02:02:16,939 --> 02:02:28,310 fijaros que el event tick está todo el rato lanzando ejecuciones, todo el rato, si yo le doy al play, el parent gira, ¿vale? 1991 02:02:28,310 --> 02:02:41,710 Entonces el resto funcionan igual, con la U yo cambio las transformaciones y con la J cambio la transformación relativa, ¿vale? 1992 02:02:41,710 --> 02:02:46,729 Pero mientras tanto, mi dragón sigue girando, ¿vale? 1993 02:02:47,170 --> 02:02:50,310 Uy, me he subido encima de un dragón, sin querer. 1994 02:02:51,569 --> 02:02:54,069 Bueno, no pasa nada, me puedo bajar. 1995 02:02:55,729 --> 02:02:55,949 Vale. 1996 02:02:57,630 --> 02:03:02,710 Sí, pregunta, a lo mejor lo vas a explicar ahora, pero le has dicho que cambie, ¿cuánto? ¿un grado? 1997 02:03:03,329 --> 02:03:04,649 Un grado en cada frame, sí. 1998 02:03:05,189 --> 02:03:09,729 Claro, y esto supongo que será igual que en Unity, no podemos depender del número de fotogramas, 1999 02:03:09,729 --> 02:03:11,489 pero claro, son 360 grados 2000 02:03:11,489 --> 02:03:13,949 un grado por fotograma 2001 02:03:13,949 --> 02:03:15,250 a 60 fotogramas por segundo 2002 02:03:15,250 --> 02:03:17,909 estamos hablando de 60 grados por segundo 2003 02:03:17,909 --> 02:03:19,810 pero no podemos 2004 02:03:19,810 --> 02:03:21,989 depender de la velocidad de fotogramas 2005 02:03:21,989 --> 02:03:22,470 por segundo 2006 02:03:22,470 --> 02:03:25,010 por eso mismo 2007 02:03:25,010 --> 02:03:27,810 tendríamos que hacer 2008 02:03:27,810 --> 02:03:29,810 una traducción 2009 02:03:29,810 --> 02:03:30,729 a delta seconds 2010 02:03:30,729 --> 02:03:31,829 ¿vale? 2011 02:03:33,869 --> 02:03:35,750 claro, lo que pasa es que eso ya es 2012 02:03:35,750 --> 02:03:36,970 un pelín más complejo 2013 02:03:36,970 --> 02:03:39,010 si quiero dejarlo ahí 2014 02:03:39,010 --> 02:03:41,949 Unity es el time delta time pero es el mismo concepto 2015 02:03:41,949 --> 02:03:43,750 es el mismo concepto 2016 02:03:43,750 --> 02:03:45,750 por eso mismo el event tick 2017 02:03:45,750 --> 02:03:47,329 te permite sacar este dato 2018 02:03:47,329 --> 02:03:49,569 de información para que nosotros podamos controlar 2019 02:03:49,569 --> 02:03:51,390 exactamente cuanto gira porque si no 2020 02:03:51,390 --> 02:03:52,310 lo que dice Álvaro 2021 02:03:52,310 --> 02:03:54,109 menudo lío 2022 02:03:54,109 --> 02:03:56,890 vale entonces 2023 02:03:56,890 --> 02:03:58,829 si yo además de que gire 2024 02:03:58,829 --> 02:04:01,310 quiero que suba 2025 02:04:01,310 --> 02:04:03,369 hacia arriba le podría decir 2026 02:04:03,369 --> 02:04:04,810 que 2027 02:04:04,810 --> 02:04:07,010 le quiero dar un add 2028 02:04:07,010 --> 02:04:08,789 local 2029 02:04:08,789 --> 02:04:12,649 offset. ¿Vale? 2030 02:04:12,909 --> 02:04:14,109 Un desplazamiento. 2031 02:04:14,829 --> 02:04:16,909 Y si lo conecto aquí, se va a estar actualizando 2032 02:04:16,909 --> 02:04:18,649 en cada frame. ¿Cuánto quiero que suba? 2033 02:04:19,590 --> 02:04:20,649 Pues le puedo dar a lo mejor 2034 02:04:20,649 --> 02:04:21,390 un centímetro 2035 02:04:21,390 --> 02:04:24,789 en cada frame. ¿Vale? Vamos a ver qué pasa. 2036 02:04:27,590 --> 02:04:28,369 Yo le doy al play 2037 02:04:28,369 --> 02:04:29,909 y de repente 2038 02:04:29,909 --> 02:04:31,890 mis dragones se me van para arriba. 2039 02:04:32,369 --> 02:04:32,890 ¿Vale? 2040 02:04:34,210 --> 02:04:35,109 Y esto 2041 02:04:35,109 --> 02:04:36,170 me 2042 02:04:36,170 --> 02:04:44,550 Y esto me lleva a explicaros el concepto de variable. 2043 02:04:44,550 --> 02:04:50,170 Y si yo quisiera volver al estado inicial del dragón, ¿cómo podría hacerlo? 2044 02:04:50,210 --> 02:04:57,529 Esto es como cuando yo coloco una taza de café en la mesa, la muevo y quiero volver a ponerla exactamente en la misma posición. 2045 02:04:57,729 --> 02:04:58,789 ¿Cómo podríamos hacer eso? 2046 02:05:02,310 --> 02:05:02,970 ¿Qué se os ocurre? 2047 02:05:02,970 --> 02:05:11,420 tendríamos que almacenar la información 2048 02:05:11,420 --> 02:05:15,319 de posición inicial cuando yo le doy al play 2049 02:05:15,319 --> 02:05:17,739 para luego poder acceder a ella y replicarla 2050 02:05:17,739 --> 02:05:22,020 y eso es una variable, ese es el concepto de variable 2051 02:05:22,020 --> 02:05:26,760 las variables son contenedores de información que nosotros podemos 2052 02:05:26,760 --> 02:05:30,180 o cambiar o almacenar para poder consultarla 2053 02:05:30,180 --> 02:05:34,899 entonces si nosotros nos creamos una variable 2054 02:05:34,899 --> 02:05:55,619 aquí le damos al más y yo lo llamo posición inicial dragón, dragón, parent, tienen que ser nombres que nos ayuden, si yo a esta variable la llamo 002, pasado mañana ya no sé qué información está almacenando, 2055 02:05:55,619 --> 02:06:11,300 ¿Vale? Tienen que ser nombres que sean lógicos. Entonces, ¿qué tipología de variable? Fijaros que cuando yo abro esto, aquí tengo un montón de tipos de información diferente. Yo la información que necesito es la posición y la posición es un vector. X, Y, Z. ¿Vale? 2056 02:06:11,300 --> 02:06:40,300 Entonces le doy naturaleza de vector y ¿qué es lo que necesito? Almacenarla cuando le doy al play, ¿no? Por lo cual yo podría coger el dragón parent, control D, me duplico la referencia y hago uso de un nodo que se llama get actor. 2057 02:06:42,739 --> 02:06:54,000 GetActorLocation, ¿vale? Con esto lo que voy a hacer es tener acceso a la posición del actor, ¿vale? Pero ¿cuándo? Cuando le doy al play. 2058 02:06:54,279 --> 02:07:08,000 Entonces, yo tendría que venir a ver dónde está todo esto, GetActorLocation, y coger mi variable, arrastrarla a la escena y decir que la quiero establecer. 2059 02:07:08,000 --> 02:07:10,100 establecer, veis que cuando yo tiro de una 2060 02:07:10,100 --> 02:07:12,140 variable y la arrastro a la escena puedo hacer get 2061 02:07:12,140 --> 02:07:12,760 o set 2062 02:07:12,760 --> 02:07:15,739 el set sirve para cambiar 2063 02:07:15,739 --> 02:07:17,739 y el get sirve para 2064 02:07:17,739 --> 02:07:19,579 consultar información 2065 02:07:19,579 --> 02:07:22,460 entonces yo ahora quiero establecerla 2066 02:07:22,460 --> 02:07:24,119 quiero establecer 2067 02:07:24,119 --> 02:07:26,020 la posición actual del 2068 02:07:26,020 --> 02:07:27,220 actor cuando 2069 02:07:27,220 --> 02:07:30,159 cuando le doy al play, entonces el play 2070 02:07:30,159 --> 02:07:30,859 viene por aquí 2071 02:07:30,859 --> 02:07:33,119 y se enchufa por aquí 2072 02:07:33,119 --> 02:07:35,039 entonces cuando yo le doy al play 2073 02:07:35,039 --> 02:07:38,300 me guardo la localización del actor 2074 02:07:38,300 --> 02:07:40,939 y cuando yo 2075 02:07:40,939 --> 02:07:42,859 le doy 2076 02:07:42,859 --> 02:07:46,619 a ver, ¿cómo hacemos esto? 2077 02:07:46,720 --> 02:07:47,479 ¿cómo hacemos esto? 2078 02:07:48,100 --> 02:07:49,100 esto está rotando 2079 02:07:49,100 --> 02:07:51,340 y está moviéndose 2080 02:07:51,340 --> 02:07:53,260 entonces yo me tendría que hacer otra variable 2081 02:07:53,260 --> 02:07:55,760 que sea la rotación original del actor 2082 02:07:55,760 --> 02:07:56,300 ¿vale? 2083 02:07:57,880 --> 02:07:59,560 entonces, eso es otro vector 2084 02:07:59,560 --> 02:08:02,319 fijaros 2085 02:08:02,319 --> 02:08:06,279 la información de la rotación es esta 2086 02:08:06,279 --> 02:08:31,010 Entonces, ¿yo qué es lo que tengo que hacer? Tendría que establecer también una variable que fuese la rotación inicial DragonParent. 2087 02:08:31,010 --> 02:08:46,329 dragon parent, voy a escribirlo bien, y esta tiene que ser, tiene que ser, tiene que ser un rotator, ¿vale? 2088 02:08:46,329 --> 02:08:51,789 La información en este caso es un rotator, porque en lugar de ser números son grados, ¿vale? 2089 02:08:51,789 --> 02:09:15,909 Y compilamos. Entonces de aquí lo que voy a hacer es sacarme un get actor, actor rotation, actor rotation y ejecutarlo con un set. Voy a establecer esa posición inicial cuando le demos al play. 2090 02:09:15,909 --> 02:09:18,510 aquí 2091 02:09:18,510 --> 02:09:20,130 bien 2092 02:09:20,130 --> 02:09:23,689 con esto ya tenemos almacenada la posición y la rotación 2093 02:09:23,689 --> 02:09:25,510 cuando le damos al play 2094 02:09:25,510 --> 02:09:27,409 perdón por la pregunta 2095 02:09:27,409 --> 02:09:29,010 pero la variable de tipo rotator 2096 02:09:29,010 --> 02:09:30,770 es un quaternion 2097 02:09:30,770 --> 02:09:33,489 no sé lo que es un quaternion 2098 02:09:33,489 --> 02:09:35,350 vale, nadie sabe lo que es un quaternion 2099 02:09:35,350 --> 02:09:36,109 vale, vale, pues nada 2100 02:09:36,109 --> 02:09:38,670 perdón antes de hacerla, muy bien 2101 02:09:38,670 --> 02:09:39,949 no he dicho nada 2102 02:09:39,949 --> 02:09:42,369 vale, fijaros, cuando yo tengo 2103 02:09:42,369 --> 02:09:44,850 nodos de este tipo 2104 02:09:44,850 --> 02:09:47,430 y tengo aquí las tres coordenadas, 2105 02:09:47,569 --> 02:09:50,189 yo siempre puedo hacer un botón derecho, 2106 02:09:50,510 --> 02:09:51,949 split, struct, pin. 2107 02:09:52,109 --> 02:09:52,430 ¿Para qué? 2108 02:09:52,970 --> 02:09:54,689 Para que me permita meter información 2109 02:09:54,689 --> 02:09:56,050 de uno solo de los ejes. 2110 02:09:56,550 --> 02:09:56,729 ¿Vale? 2111 02:09:57,029 --> 02:09:57,689 Igual que aquí. 2112 02:09:58,430 --> 02:10:00,670 Botón derecho, split, struct, pin. 2113 02:10:00,670 --> 02:10:03,329 Entonces yo podría variar solamente 2114 02:10:03,329 --> 02:10:04,989 lo que está cambiando. 2115 02:10:05,569 --> 02:10:06,130 ¿Vale? 2116 02:10:07,729 --> 02:10:08,770 Si quisiera. 2117 02:10:09,489 --> 02:10:09,670 ¿Vale? 2118 02:10:10,649 --> 02:10:13,149 Entonces, ¿qué es lo que podría hacer yo ahora? 2119 02:10:14,850 --> 02:10:23,369 Pues que el EventDict pase por un flip-flop, ¿vale? 2120 02:10:24,369 --> 02:10:40,079 En el cual, a ver, no, no, no, no, esto no me gusta. 2121 02:10:42,539 --> 02:10:51,680 A ver, un momentito, voy a mirar la chuleta, que me hice aquí una comprobación el otro día, ¿vale? 2122 02:10:51,859 --> 02:10:55,760 con la rotación 2123 02:10:55,760 --> 02:11:10,239 nosotros tenemos 2124 02:11:10,239 --> 02:11:13,319 el dragón 2125 02:11:13,319 --> 02:11:15,279 rotando y yo lo que 2126 02:11:15,279 --> 02:11:16,439 quiero es que cuando le de 2127 02:11:16,439 --> 02:11:22,300 a una tecla 2128 02:11:22,300 --> 02:11:24,840 recupere 2129 02:11:24,840 --> 02:11:26,140 su posición 2130 02:11:26,140 --> 02:11:28,739 original, que la tengo almacenada 2131 02:11:28,739 --> 02:11:30,720 aquí, entonces yo lo que me 2132 02:11:30,720 --> 02:11:32,199 tengo que sacar ahora es 2133 02:11:32,199 --> 02:11:33,659 esa variable 2134 02:11:33,659 --> 02:11:37,560 esa variable con un get 2135 02:11:37,560 --> 02:12:16,789 ¿Vale? Tengo que obtener esa información tanto de posición como de rotación. ¿Vale? Me la saco aquí con un get. ¿Vale? Y yo lo que quiero es que cada vez que yo pulse una tecla, por ejemplo la P, P keyboard, me la enchufo aquí, la primera vez le vamos a decir set rotation y set location. 2136 02:12:17,569 --> 02:12:17,750 ¿Vale? 2137 02:12:19,010 --> 02:12:30,670 Tenemos que hacer, sacando de aquí, un set actor. 2138 02:12:32,689 --> 02:12:33,949 No, esto no es un actor. 2139 02:12:34,229 --> 02:12:35,189 El actor es este. 2140 02:12:36,109 --> 02:12:36,369 Vale. 2141 02:12:36,569 --> 02:12:37,869 Entonces, vamos a hacer una cosa. 2142 02:12:38,109 --> 02:12:38,970 Vamos a hacer una cosa. 2143 02:12:42,430 --> 02:12:43,930 Vamos a hacer una cosa. 2144 02:12:43,930 --> 02:12:46,250 La rotación. 2145 02:12:47,710 --> 02:12:49,609 Me estoy liando con esto un poquito. 2146 02:12:50,970 --> 02:12:51,310 A ver. 2147 02:12:52,369 --> 02:12:54,130 Esto está rotando todo el rato. 2148 02:12:54,130 --> 02:12:57,170 le estamos metiendo un grado y un centímetro 2149 02:12:57,170 --> 02:12:59,430 y yo lo que quiero es devolverlo 2150 02:12:59,430 --> 02:13:00,789 pero esto añade, ¿vale? 2151 02:13:00,869 --> 02:13:02,210 le estamos añadiendo grados 2152 02:13:02,210 --> 02:13:03,069 y añadiendo 2153 02:13:03,069 --> 02:13:06,310 y añadiendo 2154 02:13:06,310 --> 02:13:09,090 desfase de posición 2155 02:13:09,090 --> 02:13:11,029 con lo cual yo lo que tengo que hacer ahora es 2156 02:13:11,029 --> 02:13:12,789 establecer, ¿vale? 2157 02:13:13,569 --> 02:13:14,050 entonces 2158 02:13:14,050 --> 02:13:16,029 cogemos el actor 2159 02:13:16,029 --> 02:13:17,789 que es este 2160 02:13:17,789 --> 02:13:19,489 y le digo set 2161 02:13:19,489 --> 02:13:21,909 actor location 2162 02:13:21,909 --> 02:13:24,350 Actor 2163 02:13:24,350 --> 02:13:26,369 Location 2164 02:13:26,369 --> 02:13:28,449 Y también necesito un 2165 02:13:28,449 --> 02:13:30,789 Set Actor Rotation 2166 02:13:30,789 --> 02:13:32,149 Set 2167 02:13:32,149 --> 02:13:34,050 Actor 2168 02:13:34,050 --> 02:13:35,250 Rotation 2169 02:13:35,250 --> 02:13:37,069 Rotation 2170 02:13:37,069 --> 02:13:46,289 Pero claro, este de aquí 2171 02:13:46,289 --> 02:13:48,289 Sería la posición 2172 02:13:48,289 --> 02:13:48,829 Inicial 2173 02:13:48,829 --> 02:13:51,949 Y este de aquí sería la 2174 02:13:51,949 --> 02:13:53,390 Rotación inicial 2175 02:13:53,390 --> 02:13:55,329 Que tiene el actor 2176 02:13:55,329 --> 02:13:56,390 entonces 2177 02:13:56,390 --> 02:13:57,270 una pregunta 2178 02:13:57,270 --> 02:13:59,250 aquí no sería necesario 2179 02:13:59,250 --> 02:13:59,909 flip flop 2180 02:13:59,909 --> 02:14:00,149 ¿no? 2181 02:14:00,369 --> 02:14:01,550 solo lo que es hacer una vez 2182 02:14:01,550 --> 02:14:02,329 claro 2183 02:14:02,329 --> 02:14:03,590 ahora de momento no haría 2184 02:14:03,590 --> 02:14:03,949 pero yo 2185 02:14:03,949 --> 02:14:04,869 a mí lo que me gustaría 2186 02:14:04,869 --> 02:14:05,810 es crear 2187 02:14:05,810 --> 02:14:07,229 una variable 2188 02:14:07,229 --> 02:14:08,529 que establezca 2189 02:14:08,529 --> 02:14:09,109 si el objeto 2190 02:14:09,109 --> 02:14:09,989 está en movimiento 2191 02:14:09,989 --> 02:14:10,829 o no 2192 02:14:10,829 --> 02:14:11,970 ¿vale? 2193 02:14:12,989 --> 02:14:13,550 entonces 2194 02:14:13,550 --> 02:14:14,810 para eso 2195 02:14:14,810 --> 02:14:16,489 es necesario 2196 02:14:16,489 --> 02:14:18,210 crear una variable 2197 02:14:18,210 --> 02:14:20,289 que se llama 2198 02:14:20,289 --> 02:14:26,189 isDragonParent 2199 02:14:26,189 --> 02:14:27,229 moving 2200 02:14:27,229 --> 02:14:29,750 y le pongo también 2201 02:14:29,750 --> 02:14:32,109 una interrogación. 2202 02:14:32,350 --> 02:14:33,710 Esta tipología tiene que ser 2203 02:14:33,710 --> 02:14:36,369 de tipo booleano, porque solo la respuesta 2204 02:14:36,369 --> 02:14:37,850 solo puede ser sí o no. 2205 02:14:38,210 --> 02:14:40,390 ¿Vale? Entonces, ¿cómo funciona 2206 02:14:40,390 --> 02:14:41,850 esto? Para esto 2207 02:14:41,850 --> 02:14:43,289 necesito 2208 02:14:43,289 --> 02:14:45,329 crear un branch. 2209 02:14:46,010 --> 02:14:47,329 ¿Vale? El branch 2210 02:14:47,329 --> 02:14:50,170 es el equivalente a un if en 2211 02:14:50,170 --> 02:14:50,729 programación. 2212 02:14:52,430 --> 02:14:54,010 Branch. ¿Vale? 2213 02:14:54,949 --> 02:14:55,510 Entonces, 2214 02:14:55,510 --> 02:15:06,149 Lo que va a pasar aquí es que yo voy a tener en el true esto de aquí. 2215 02:15:06,729 --> 02:15:07,710 A ver, ¿cómo era? 2216 02:15:08,090 --> 02:15:11,810 Set actor location, set actor rotation. 2217 02:15:12,069 --> 02:15:13,390 Uf, me estoy liando un montón. 2218 02:15:14,810 --> 02:15:15,649 A ver si me acuerdo. 2219 02:15:19,210 --> 02:15:26,050 Yo necesito meterle aquí una condición y que esa condición esté controlada por esta variable. 2220 02:15:27,430 --> 02:15:29,029 Tengo que traer el get. 2221 02:15:29,470 --> 02:15:29,949 Vale. 2222 02:15:30,689 --> 02:15:51,390 ¿Vale? Entonces el true o false yo lo voy a controlar con esta variable, con lo cual cada vez que yo le dé a este botón solo va a ser true cuando esta condición esté en true y cada vez que yo le dé a este botón solo va a ser false cuando esta condición esté en false. 2223 02:15:51,390 --> 02:15:58,350 Nosotros, cuando le damos a compilar, podemos seleccionar cualquier variable y establecer un estado inicial también, ¿vale? 2224 02:15:59,149 --> 02:16:13,149 Entonces, de primeras, lo que le damos a decir es que queremos establecer esta rotación y esta posición, ¿vale? 2225 02:16:15,979 --> 02:16:16,319 Ahí. 2226 02:16:18,180 --> 02:16:18,979 Vale. 2227 02:16:20,300 --> 02:16:21,479 ¿Esto sirve de algo? 2228 02:16:21,479 --> 02:16:23,439 creo que no 2229 02:16:23,439 --> 02:16:25,979 a ver un momento, voy a hacer una prueba rápida 2230 02:16:25,979 --> 02:16:30,359 voy a eliminar esto 2231 02:16:30,359 --> 02:16:33,479 para ver si funciona 2232 02:16:33,479 --> 02:16:34,860 lo de la posición inicial 2233 02:16:34,860 --> 02:16:37,479 esto está rotando 2234 02:16:37,479 --> 02:16:39,819 a su rollo y yo de repente le doy a este botón 2235 02:16:39,819 --> 02:16:42,000 y debería de bajar 2236 02:16:42,000 --> 02:16:44,219 vale 2237 02:16:44,219 --> 02:16:46,040 vamos a hacer una prueba 2238 02:16:46,040 --> 02:16:48,600 a la P 2239 02:16:48,600 --> 02:16:52,600 le damos al play, esto sube 2240 02:16:52,600 --> 02:16:54,200 si yo le doy a la P, baja 2241 02:16:54,200 --> 02:16:56,120 vale, funciona 2242 02:16:56,120 --> 02:16:59,000 además veis que recupera 2243 02:16:59,000 --> 02:17:01,100 la posición y la rotación 2244 02:17:01,100 --> 02:17:02,299 vale 2245 02:17:02,299 --> 02:17:06,030 perfecto 2246 02:17:06,030 --> 02:17:06,690 bien 2247 02:17:06,690 --> 02:17:08,969 esto funciona 2248 02:17:08,969 --> 02:17:11,229 entonces yo para qué quería 2249 02:17:11,229 --> 02:17:12,530 hacer lo del branch 2250 02:17:12,530 --> 02:17:15,170 claro porque el branch 2251 02:17:15,170 --> 02:17:15,629 al final 2252 02:17:15,629 --> 02:17:16,930 lo que hace es replicar 2253 02:17:16,930 --> 02:17:17,690 el comportamiento 2254 02:17:17,690 --> 02:17:18,750 de un flip flop 2255 02:17:18,750 --> 02:17:19,969 pero 2256 02:17:19,969 --> 02:17:22,670 con cierto grado de control 2257 02:17:22,670 --> 02:17:23,469 vale 2258 02:17:23,469 --> 02:17:26,440 yo por ejemplo 2259 02:17:26,440 --> 02:17:27,340 pero esto ya es por 2260 02:17:27,340 --> 02:17:28,540 yo por ejemplo 2261 02:17:28,540 --> 02:17:30,559 lo que le haría es preguntarle si llega 2262 02:17:30,559 --> 02:17:32,600 a dos metros, vuelve a la posición inicial 2263 02:17:32,600 --> 02:17:33,479 que es un poco como 2264 02:17:33,479 --> 02:17:36,040 podrías hacerlo por programación, que es claro 2265 02:17:36,040 --> 02:17:37,500 yo lo he trasladado todo al código 2266 02:17:37,500 --> 02:17:39,760 si tu posición 2267 02:17:39,760 --> 02:17:42,399 actual es mayor de 2268 02:17:42,399 --> 02:17:44,219 dos metros en Z 2269 02:17:44,219 --> 02:17:46,639 pues vuelve a tu posición inicial 2270 02:17:46,639 --> 02:17:47,579 con lo cual estaría subiendo 2271 02:17:47,579 --> 02:17:49,920 y volviendo al inicio constantemente 2272 02:17:49,920 --> 02:17:52,079 claro, es que nosotros luego 2273 02:17:52,079 --> 02:17:54,319 tenemos nodos matemáticos que nos permiten 2274 02:17:54,319 --> 02:17:56,479 establecer si un valor es mayor que 2275 02:17:56,479 --> 02:17:57,579 o menor que 2276 02:17:57,579 --> 02:18:00,260 o mayor o igual, cosas así 2277 02:18:00,260 --> 02:18:02,079 que nos permitan hacer ese tipo de operaciones 2278 02:18:02,079 --> 02:18:04,120 pero vamos, eso se lo dejamos al programador 2279 02:18:04,120 --> 02:18:05,200 no te preocupes 2280 02:18:05,200 --> 02:18:08,299 entonces, lo que yo os quería contar 2281 02:18:08,299 --> 02:18:10,459 ahora, es como poder operar 2282 02:18:10,459 --> 02:18:11,940 todo el tema este de las pantallas 2283 02:18:11,940 --> 02:18:14,180 que hemos hecho antes, entonces, por ejemplo 2284 02:18:14,180 --> 02:18:16,299 si yo 2285 02:18:16,299 --> 02:18:17,659 vengo aquí 2286 02:18:17,659 --> 02:18:19,159 y me creo un planito 2287 02:18:19,159 --> 02:18:24,190 me creo un planito 2288 02:18:24,190 --> 02:18:26,870 os voy a contar como animar un objeto 2289 02:18:26,870 --> 02:18:28,709 sin necesidad de sequencer, vale 2290 02:18:28,709 --> 02:18:47,290 Si yo me traigo aquí un plan, le doy la vuelta, lo subo, le voy a dar escala 0.9, 1.6, para que sea 16.9, ¿vale? 2291 02:18:47,770 --> 02:18:48,670 Tenemos esto. 2292 02:18:49,469 --> 02:18:54,709 Entonces, si yo lo que quiero hacer es que esto sea una pantalla que suba y que baje, 2293 02:18:54,709 --> 02:19:19,700 Lo podría hacer con un Sequencer y lanzarlo como hemos visto en el otro proyecto o lo podríamos mover con un Timeline, ¿vale? Fijaros, ahora me traigo una, esto lo vamos a llamar Screen, Screen, ¿vale? Y esto nos lo vamos a traer como referencia a nuestro Level Blueprint, aquí. 2294 02:19:19,700 --> 02:19:42,709 Y entonces, botón derecho, Create Reference. Perfecto. Con lo cual, ¿yo qué es lo que quiero? Quiero establecer Set Location. ¿Vale? Set Actor Location, por ejemplo. 2295 02:19:43,549 --> 02:19:47,069 Entonces, ¿cuál es la posición inicial que yo necesito? 2296 02:19:47,069 --> 02:19:50,870 La posición inicial que yo necesito es que la pantalla no se vea, ¿no? 2297 02:19:55,559 --> 02:19:59,500 Yo quiero que cuando arranque, la pantalla esté aquí, ¿vale? 2298 02:19:59,920 --> 02:20:03,579 Y eso es esta de aquí, ¿vale? 2299 02:20:03,780 --> 02:20:04,379 ¿Qué pasa? 2300 02:20:04,700 --> 02:20:09,180 Que nosotros, dentro de Blueprints, tenemos un Lerp también. 2301 02:20:10,860 --> 02:20:16,440 Nosotros podríamos establecer una interpolación entre una localización y otra. 2302 02:20:16,840 --> 02:20:44,659 ¿Vale? Entonces, ¿cómo lo podríamos hacer? Pues, por ejemplo, podríamos sacarnos una variable que fuese la localización de la pantalla, ¿vale? Por ejemplo, una forma muy rápida de hacerte una variable es coger uno de los pines de información, ¿vale? Y decirle botón derecho, promote tu variable, ¿vale? 2303 02:20:44,659 --> 02:20:50,620 Esto podría ser la variable de posición de mi pantalla. 2304 02:20:50,799 --> 02:20:52,719 Entonces, yo la llamo así, la nombro así. 2305 02:20:52,860 --> 02:20:56,520 Y veis que automáticamente ya me pone la naturaleza de información que necesita. 2306 02:20:57,780 --> 02:21:00,159 Esto lo llamamos screen position. 2307 02:21:01,600 --> 02:21:03,459 Screen position. 2308 02:21:04,700 --> 02:21:08,340 Entonces, ¿qué posición necesito yo al principio? 2309 02:21:08,579 --> 02:21:09,440 Esta, ¿vale? 2310 02:21:09,760 --> 02:21:12,219 Con lo cual, podría venir y decirle, vale, 2311 02:21:12,219 --> 02:21:14,780 pues vamos a hacer un set 2312 02:21:14,780 --> 02:21:16,780 de esta variable en el begin play 2313 02:21:16,780 --> 02:21:18,420 que tenga esas coordenadas 2314 02:21:18,420 --> 02:21:20,760 ¿vale? viene por aquí 2315 02:21:20,760 --> 02:21:21,700 el begin play 2316 02:21:21,700 --> 02:21:24,340 si no quieres estar todo el rato 2317 02:21:24,340 --> 02:21:26,819 siguiendo la dirección 2318 02:21:26,819 --> 02:21:28,899 del begin play tenemos otro nodo 2319 02:21:28,899 --> 02:21:31,059 que se llama sequence que me permite 2320 02:21:31,059 --> 02:21:33,219 hacer cosas en paralelo 2321 02:21:33,219 --> 02:21:34,760 entonces yo podría 2322 02:21:34,760 --> 02:21:36,979 venir aquí, conectar 2323 02:21:36,979 --> 02:21:38,540 esto y que por aquí arriba 2324 02:21:38,540 --> 02:21:40,579 pasase otra cosa en paralelo 2325 02:21:40,579 --> 02:22:12,600 Entonces podría venir ahí y decirle, vale, yo quiero establecer set screen position en estas coordenadas que es 1160, 770, 1160, 770 y la otra es menos 100. 2326 02:22:12,920 --> 02:22:15,739 menos 100. Entonces yo 2327 02:22:15,739 --> 02:22:18,079 hago play y coloco esta variable 2328 02:22:18,079 --> 02:22:19,940 ahí. Y como 2329 02:22:19,940 --> 02:22:20,860 esta variable 2330 02:22:20,860 --> 02:22:24,280 está generándose 2331 02:22:24,280 --> 02:22:25,659 en todo momento, 2332 02:22:27,280 --> 02:22:27,459 ¿vale? 2333 02:22:27,459 --> 02:22:29,559 Ya la tengo aquí colocada. Entonces esto 2334 02:22:29,559 --> 02:22:31,540 es lo que 2335 02:22:31,540 --> 02:22:33,260 yo hago al darle al play. ¿Vale? 2336 02:22:33,959 --> 02:22:34,659 Y ahora, 2337 02:22:35,040 --> 02:22:40,170 ¿qué es lo que necesito? Necesito 2338 02:22:40,170 --> 02:22:42,250 un nodo que me 2339 02:22:42,250 --> 02:22:43,790 permita hacer una interpolación. 2340 02:22:44,149 --> 02:22:44,629 ¿Vale? 2341 02:22:45,889 --> 02:23:04,270 Yo necesito un nodo que me permita hacer una interpolación. ¿Entre qué y qué? Vamos a verlo. Ese nodo se llama Timeline. Timeline. Timeline. Timeline. Add Timeline. ¿Vale? 2342 02:23:04,270 --> 02:23:19,270 Y este timeline lo vamos a llamar, pues no lo sé, Screen Transition, Transition, Transition, Transition, ¿vale? Perfecto. 2343 02:23:22,889 --> 02:23:30,629 Entonces, ¿yo qué es lo que voy a hacer con esto? Pues fijaros, tengo que entrar dentro, ¿vale? 2344 02:23:30,629 --> 02:24:00,250 Le voy a decir, entro dentro y dentro, ¿veis que yo puedo ir y venir del timeline? Yo me tengo que crear un track y este track va a ser un float, ¿vale? La longitud de este float va a ser de un segundo, por ejemplo, ¿vale? Uno, ¿vale? 2345 02:24:00,629 --> 02:24:01,850 cero. 2346 02:24:02,729 --> 02:24:05,049 Ahora me creo otro, botón derecho, 2347 02:24:07,680 --> 02:24:10,100 y a este le digo que esté en el 1, 2348 02:24:10,659 --> 02:24:13,139 1, ¿vale? 2349 02:24:13,579 --> 02:24:17,879 Y tengo esto, tengo una curva que va de 0 a 1 en un segundo, ¿vale? 2350 02:24:18,739 --> 02:24:19,299 Perfecto. 2351 02:24:20,040 --> 02:24:21,739 Entonces, esa información, 2352 02:24:21,739 --> 02:24:29,110 esa información yo se la tengo que meter a un lerp, ¿vale? 2353 02:24:31,069 --> 02:24:31,629 Entonces, 2354 02:24:31,629 --> 02:24:34,829 ¿Qué es lo que necesito? 2355 02:24:35,610 --> 02:24:37,889 Un lerp que sirva para introducir 2356 02:24:37,889 --> 02:24:39,930 información de vector. 2357 02:24:41,190 --> 02:24:43,530 Este play, o sea, cuando yo lanzo 2358 02:24:43,530 --> 02:24:46,729 esta transición entre 0 y 1, lo puedo poner con una tecla. 2359 02:24:46,909 --> 02:24:49,389 Por ejemplo, p espacio keyboard. 2360 02:24:50,350 --> 02:24:51,430 Keyboard. 2361 02:24:53,670 --> 02:24:55,889 Esta, por ejemplo. Entonces, cuando yo le dé, 2362 02:24:56,370 --> 02:24:58,829 hace play entre 0 y 1 en un segundo. 2363 02:24:59,030 --> 02:25:02,590 Entonces, ahora, yo me saco un lerp 2364 02:25:03,069 --> 02:25:07,590 Un ler de transformación de vectores, ¿vale? 2365 02:25:08,530 --> 02:25:13,069 Y esta información es la que le va a entrar al setActorLocation, ¿vale? 2366 02:25:14,950 --> 02:25:15,590 Perfecto. 2367 02:25:17,049 --> 02:25:22,110 Entonces, el alfa de este ler tiene que ser la información del timeline. 2368 02:25:22,610 --> 02:25:27,909 Y el A y el B tienen que ser el punto inicial y el punto final de ese actor, ¿vale? 2369 02:25:28,250 --> 02:25:32,670 Y esto se tiene que estar ejecutando en todo momento. 2370 02:25:33,069 --> 02:26:02,579 ¿Vale? A ver, a ver, a ver, un momentito. El event tick, este de aquí, ¿vale? Tiene que estar comprobando en todo momento si esto cambia. Cuando esto empieza a cambiar es cuando se mueve, ¿vale? ¿Se entiende esto más o menos, chicos, lo que estoy haciendo? ¿Bien? Esto es un poco más lioso ya, ¿no? 2371 02:26:02,579 --> 02:26:05,059 que lo del principio 2372 02:26:05,059 --> 02:26:06,700 bueno vamos a probar a ver si funciona 2373 02:26:06,700 --> 02:26:08,579 realmente esto tampoco se utiliza tanto 2374 02:26:08,579 --> 02:26:10,440 porque normalmente nosotros siempre animamos 2375 02:26:10,440 --> 02:26:12,639 con el sequencer y lo lanzamos directamente 2376 02:26:12,639 --> 02:26:14,680 con el sequencer que lo podríamos hacer también 2377 02:26:14,680 --> 02:26:16,620 vale entonces la posición 2378 02:26:16,620 --> 02:26:18,239 inicial cual es esta de aquí 2379 02:26:18,239 --> 02:26:20,799 vale vamos a meterle 2380 02:26:20,799 --> 02:26:22,299 que pase del punto A 2381 02:26:22,299 --> 02:26:24,500 que es 1160 2382 02:26:24,500 --> 02:26:26,299 770 2383 02:26:26,299 --> 02:26:28,540 menos 2384 02:26:28,540 --> 02:26:32,620 100 al 2385 02:26:32,620 --> 02:26:34,040 pues vamos a ver 2386 02:26:34,040 --> 02:26:36,219 solamente habrá que subirlo en Z 2387 02:26:36,219 --> 02:26:38,139 aquí por ejemplo 2388 02:26:38,139 --> 02:26:39,420 que sería 120 2389 02:26:39,420 --> 02:26:40,440 vale 2390 02:26:40,440 --> 02:26:45,379 1160 2391 02:26:45,379 --> 02:26:46,360 700 2392 02:26:46,360 --> 02:26:50,760 y 120 2393 02:26:50,760 --> 02:26:51,899 por ejemplo 2394 02:26:51,899 --> 02:26:53,659 compilamos 2395 02:26:53,659 --> 02:26:55,979 y vemos lo que pasa 2396 02:26:55,979 --> 02:26:57,360 cuando yo le doy a la P 2397 02:26:57,360 --> 02:26:59,799 se debería adelantar 2398 02:26:59,799 --> 02:27:01,700 ah no, perdón 2399 02:27:01,700 --> 02:27:03,780 no tiene que estar conectado con el 2400 02:27:03,780 --> 02:27:04,760 con el event 2401 02:27:04,760 --> 02:27:07,200 tiene que estar conectado con el update 2402 02:27:07,200 --> 02:27:10,139 del timeline, ¿vale? Cuando el timeline 2403 02:27:10,139 --> 02:27:12,059 se actualiza es cuando esto 2404 02:27:12,059 --> 02:27:14,020 se ejecuta, ¿vale? Es así 2405 02:27:14,020 --> 02:27:17,139 como tiene que estar, ¿vale? 2406 02:27:18,659 --> 02:27:19,700 Evidentemente con un 2407 02:27:19,700 --> 02:27:21,979 timeline yo me puedo crear diferentes 2408 02:27:21,979 --> 02:27:23,379 tracks, ¿vale? 2409 02:27:23,379 --> 02:27:25,340 Y utilizar esto para diferentes cosas, 2410 02:27:25,579 --> 02:27:26,819 ¿vale? No tiene por qué ser solo una. 2411 02:27:28,379 --> 02:27:29,520 Entonces, compilo, 2412 02:27:30,200 --> 02:27:31,420 salvo, y vemos 2413 02:27:31,420 --> 02:27:32,000 lo que pasa. 2414 02:27:33,639 --> 02:27:35,739 Yo me vengo por aquí, esto va a ir a su rollo, 2415 02:27:35,739 --> 02:27:37,120 y si yo le doy a la P, 2416 02:27:37,120 --> 02:27:38,659 no, es la P 2417 02:27:38,659 --> 02:27:41,659 vale, la movilidad está puesta como está aquí 2418 02:27:41,659 --> 02:27:43,399 va a pasar lo mismo que con el dragón 2419 02:27:43,399 --> 02:27:45,959 le tengo que decir que se mueva 2420 02:27:45,959 --> 02:27:48,420 vale 2421 02:27:48,420 --> 02:27:51,059 entonces, comprobamos 2422 02:27:51,059 --> 02:27:53,950 comprobamos 2423 02:27:53,950 --> 02:27:56,409 que la P 2424 02:27:56,409 --> 02:27:58,290 es la que hace de trigger 2425 02:27:58,290 --> 02:27:59,670 de toda esta cadena 2426 02:27:59,670 --> 02:28:03,639 lo pongo aquí para que veamos el 2427 02:28:03,639 --> 02:28:07,100 para que veamos el 2428 02:28:07,100 --> 02:28:09,239 el proceso 2429 02:28:09,239 --> 02:28:14,700 y si yo le doy al play 2430 02:28:14,700 --> 02:28:16,979 le doy a la P 2431 02:28:16,979 --> 02:28:18,239 ahí lo tenemos 2432 02:28:18,239 --> 02:28:19,079 claro 2433 02:28:19,079 --> 02:28:20,340 pero yo quiero 2434 02:28:20,340 --> 02:28:21,000 que haga 2435 02:28:21,000 --> 02:28:22,139 este recorrido 2436 02:28:22,139 --> 02:28:22,860 de ida 2437 02:28:22,860 --> 02:28:24,899 y el recorrido 2438 02:28:24,899 --> 02:28:25,920 inverso 2439 02:28:25,920 --> 02:28:27,280 de vuelta 2440 02:28:27,280 --> 02:28:28,920 a ver cómo se puede hacer eso 2441 02:28:28,920 --> 02:28:32,520 cómo se puede hacer eso 2442 02:28:32,520 --> 02:28:35,959 tendría que 2443 02:28:35,959 --> 02:28:38,940 coger este mismo nodo 2444 02:28:38,940 --> 02:28:40,600 control C 2445 02:28:40,600 --> 02:28:41,280 control V 2446 02:28:41,280 --> 02:28:44,520 cambiarle este valor 2447 02:28:44,520 --> 02:28:45,879 120 2448 02:28:45,879 --> 02:28:48,079 menos 100 2449 02:28:48,079 --> 02:28:52,639 sacar esto 2450 02:28:52,639 --> 02:28:57,440 y uff 2451 02:28:57,440 --> 02:29:00,040 no, esto es más complejo de lo que parece 2452 02:29:00,040 --> 02:29:04,280 el alfa tendría que ser el mismo 2453 02:29:04,280 --> 02:29:08,479 y cuando se tendría que ejecutar esto 2454 02:29:08,479 --> 02:29:09,219 play 2455 02:29:09,219 --> 02:29:12,239 ah bueno, le puedo dar un reverse 2456 02:29:12,239 --> 02:29:14,040 aquí, estoy idiota 2457 02:29:14,040 --> 02:29:17,600 claro, pero para eso necesito un flip flop 2458 02:29:17,600 --> 02:29:20,340 flip flop 2459 02:29:20,340 --> 02:29:26,159 La primera vez me ejecuta el play y la segunda vez me ejecuta el play reverse, ¿vale? 2460 02:29:26,159 --> 02:29:35,299 Y además tendría que poner este elemento de primeras aquí abajo que no se viera, ¿vale? 2461 02:29:36,579 --> 02:29:44,319 Salvamos, le doy al play y cuando yo le doy a la P aparece y desaparece. 2462 02:29:44,399 --> 02:29:49,139 Además veis que la P es también la que devolvía el dragón a su posición inicial, ¿vale? 2463 02:29:49,139 --> 02:30:02,430 Bien, ¿se entiende más o menos? Vale, pues vamos a ver cómo se haría esto con la secuencia, que es lo mismo que hemos dejado programado en nuestro proyecto de set virtual, ¿vale? 2464 02:30:02,430 --> 02:30:24,700 Nos venimos aquí, nos creamos una secuencia, Cinematic Level Sequence, lo llamamos LS barra baja, Screen, Screen, ahí estamos, doble clic, me traigo la referencia de este actor, 2465 02:30:24,700 --> 02:30:31,340 le decimos que queremos funcionar en 24 frames por segundo 2466 02:30:31,340 --> 02:30:34,760 que la posición inicial de transformación sea esta 2467 02:30:34,760 --> 02:30:37,860 con un intro para que me cree los keyframes 2468 02:30:37,860 --> 02:30:40,879 activamos el auto key 2469 02:30:40,879 --> 02:30:45,700 me voy a 24 frames 2470 02:30:45,700 --> 02:30:48,219 le digo que esto es el final de la animación 2471 02:30:48,219 --> 02:30:52,100 y que lo que yo quiero es que esto suba para acá 2472 02:30:52,100 --> 02:30:52,579 ¿vale? 2473 02:30:53,739 --> 02:30:54,579 hasta aquí 2474 02:30:54,579 --> 02:31:24,200 más o menos, vale, entonces lo que tenemos es play y play reverse, perfecto, entonces, bueno la parte de curvas creo que nos la he contado, verdad, os suena que hayamos hablado de curvas dentro del sequencer, vale, bueno pues os hago una pequeña introducción a curvas para que sepáis donde está, si queremos tocar las curvas de cualquier keyframe que hayamos creado tenemos que darle a este botoncito, vale, 2475 02:31:24,579 --> 02:31:26,920 esto nos abre 2476 02:31:26,920 --> 02:31:30,100 un editor de curvas 2477 02:31:30,100 --> 02:31:32,319 básicamente entonces que es lo único que está animado 2478 02:31:32,319 --> 02:31:33,399 en esta malla el eje Z 2479 02:31:33,399 --> 02:31:35,500 si yo vengo aquí 2480 02:31:35,500 --> 02:31:38,139 y me voy a localización eje Z 2481 02:31:38,139 --> 02:31:39,739 veis se me filtra 2482 02:31:39,739 --> 02:31:42,299 entonces yo lo que 2483 02:31:42,299 --> 02:31:44,280 quiero aquí es que estos dos 2484 02:31:44,280 --> 02:31:46,020 no tengan esta curva de animación 2485 02:31:46,020 --> 02:31:48,520 sino que al principio vaya más rápido 2486 02:31:48,520 --> 02:31:50,440 y que luego vaya decelerando 2487 02:31:50,440 --> 02:31:51,719 vale 2488 02:31:51,719 --> 02:31:54,340 entonces para hacer 2489 02:31:54,340 --> 02:32:01,159 es muy sencillo. Seleccionamos los dos keyframes, les decimos que queremos que sean keyframes 2490 02:32:01,159 --> 02:32:13,280 asimétricos, selecciono uno y lo subo. ¿Vale? Sería algo así. También podemos hacer zoom 2491 02:32:13,280 --> 02:32:17,420 en la selección. Si selecciono dos keyframes y le damos a este botoncito, ¿veis? Nos hace 2492 02:32:17,420 --> 02:32:23,319 zoom solamente en esos keyframes que están seleccionados. ¿Vale? Entonces, si yo quisiese 2493 02:32:23,319 --> 02:32:24,940 que la deceleración 2494 02:32:24,940 --> 02:32:26,319 fuese más pronunciada 2495 02:32:26,319 --> 02:32:26,899 en esta zona 2496 02:32:26,899 --> 02:32:27,639 podría coger 2497 02:32:27,639 --> 02:32:28,159 este 2498 02:32:28,159 --> 02:32:30,500 este controlador 2499 02:32:30,500 --> 02:32:31,979 y moverlo 2500 02:32:31,979 --> 02:32:32,420 ¿vale? 2501 02:32:32,520 --> 02:32:33,379 si me quiero mover 2502 02:32:33,379 --> 02:32:34,079 en horizontal 2503 02:32:34,079 --> 02:32:35,579 o en vertical 2504 02:32:35,579 --> 02:32:37,239 pulso shift 2505 02:32:37,239 --> 02:32:38,180 ¿vale? 2506 02:32:39,780 --> 02:32:40,159 y además 2507 02:32:40,159 --> 02:32:40,600 así 2508 02:32:40,600 --> 02:32:41,579 lo que hacemos es 2509 02:32:41,579 --> 02:32:42,659 jugar con la tangente 2510 02:32:42,659 --> 02:32:42,860 ¿vale? 2511 02:32:43,920 --> 02:32:44,340 entonces 2512 02:32:44,340 --> 02:32:45,020 este de aquí 2513 02:32:45,020 --> 02:32:46,260 lo podría subir 2514 02:32:46,260 --> 02:32:47,100 un poquito más 2515 02:32:47,100 --> 02:32:48,579 y ya tendríamos eso 2516 02:32:48,579 --> 02:32:49,739 con lo cual 2517 02:32:49,739 --> 02:32:50,319 si me vengo 2518 02:32:50,319 --> 02:32:51,479 al principio de la animación 2519 02:32:51,479 --> 02:32:52,620 tengo esto 2520 02:32:52,620 --> 02:32:55,719 y ves que hace como una deceleración 2521 02:32:55,719 --> 02:32:57,159 cuando llega, ¿no? 2522 02:32:58,680 --> 02:32:59,819 Play, reverse 2523 02:32:59,819 --> 02:33:01,659 y play. 2524 02:33:02,819 --> 02:33:04,840 Vale, pues si yo quisiera operar esto, 2525 02:33:04,840 --> 02:33:07,840 si yo quisiera operar esto desde Blueprints, 2526 02:33:08,700 --> 02:33:10,420 lo que tendría que hacer es 2527 02:33:10,420 --> 02:33:13,459 sacar un actor, ¿vale? 2528 02:33:13,479 --> 02:33:14,819 Sacar la secuencia escena, 2529 02:33:16,319 --> 02:33:18,719 traerme una referencia al level Blueprint, 2530 02:33:21,059 --> 02:33:22,840 traerme una referencia al level Blueprint, 2531 02:33:22,840 --> 02:33:36,040 esta parte la voy a desconectar vale con la con la secuencia como actor seleccionada me 2532 02:33:36,040 --> 02:33:45,209 traigo una referencia con botón derecho me saco el play esto lo que hemos hecho en el 2533 02:33:45,209 --> 02:33:56,520 proyecto del set antes y me saco el play river play rivers tienen que salir del 2534 02:33:56,520 --> 02:34:02,600 componente lógicamente y me pongo aquí un flip flop vale ahí estamos 2535 02:34:04,360 --> 02:34:20,180 Perfecto. Con la A lo saco y con la B lo oculto, ¿vale? Con la P le doy al play y con la P sale y con la P se retira, ¿vale? 2536 02:34:20,180 --> 02:34:38,649 ¿Pero qué está pasando? Aquí hay una cosa que os tengo que contar, que es importante. Es que el elemento, cuando nosotros lo animamos, tiene un parámetro que es el que define qué pasa con ese objeto cuando ha terminado la animación. 2537 02:34:38,649 --> 02:34:44,649 Entonces, para que la animación mantenga el estado final que le hemos dado, se lo tenemos que especificar. 2538 02:34:45,430 --> 02:34:51,750 Botón derecho, propiedades, y veis que aquí tiene una opción que se llama when finished, cuando acaba. 2539 02:34:52,549 --> 02:34:59,649 Pues cuando acaba le tenemos que decir que mantenga el estado, porque si no, está reapareciendo todo el rato, cada vez que le damos al play. 2540 02:34:59,649 --> 02:35:04,069 ¿vale? entonces 2541 02:35:04,069 --> 02:35:06,030 ahora que le hemos hecho eso 2542 02:35:06,030 --> 02:35:07,590 si le damos al play 2543 02:35:07,590 --> 02:35:10,090 bueno, lo que tengo que hacer es 2544 02:35:10,090 --> 02:35:11,229 cerrar esto 2545 02:35:11,229 --> 02:35:13,530 le doy al play 2546 02:35:13,530 --> 02:35:15,790 y cuando le doy al AP 2547 02:35:15,790 --> 02:35:17,770 aparece y cuando le doy al AP 2548 02:35:17,770 --> 02:35:19,450 desaparece ¿vale? 2549 02:35:20,489 --> 02:35:23,620 ¿bien? ¿se entiende 2550 02:35:23,620 --> 02:35:24,379 más o menos chicos? 2551 02:35:25,860 --> 02:35:26,100 si 2552 02:35:26,100 --> 02:35:31,239 yo creo que estamos ya 2553 02:35:31,239 --> 02:35:33,739 los dragones 2554 02:35:33,739 --> 02:35:34,459 van por ahí arriba 2555 02:35:34,459 --> 02:35:38,559 si le doy a la P vuelve a su sitio 2556 02:35:38,559 --> 02:35:42,200 bueno 2557 02:35:42,200 --> 02:35:44,659 más o menos se entiende un poco 2558 02:35:44,659 --> 02:35:46,100 esto de los blueprints, es muy rápido 2559 02:35:46,100 --> 02:35:47,719 meteros esto en hora y media 2560 02:35:47,719 --> 02:35:49,739 es demasiado a lo mejor 2561 02:35:49,739 --> 02:35:52,659 pero bueno, sí que quería que 2562 02:35:52,659 --> 02:35:55,059 por lo menos tuvieseis una primera toma de contacto 2563 02:35:55,059 --> 02:35:56,379 con todo esto 2564 02:35:56,379 --> 02:35:58,440 para cuando tengáis que hacer cositas más complejas 2565 02:35:58,440 --> 02:36:00,799 por lo menos que os suene, y que si hacéis un tutorial 2566 02:36:00,799 --> 02:36:02,920 pues que os suenen un poco los conceptos 2567 02:36:02,920 --> 02:36:03,559 ¿vale? 2568 02:36:05,120 --> 02:36:06,840 evidentemente, yo si tuviese 2569 02:36:06,840 --> 02:36:08,860 que hacer todas estas cosas, probablemente 2570 02:36:08,860 --> 02:36:10,680 no las haría en el Level Blueprint, me haría un 2571 02:36:10,680 --> 02:36:12,360 Blueprint Class, ¿vale? 2572 02:36:13,780 --> 02:36:14,840 Fijaros, si 2573 02:36:14,840 --> 02:36:16,860 yo, por ejemplo, me creo 2574 02:36:16,860 --> 02:36:18,920 un botón derecho, Blueprint 2575 02:36:18,920 --> 02:36:20,860 Class, y me 2576 02:36:20,860 --> 02:36:22,700 creo un actor vacío, ¿vale? Estas son 2577 02:36:22,700 --> 02:36:24,659 todas las tipologías que tenemos de Blueprint, 2578 02:36:25,120 --> 02:36:27,020 bueno, no todas, estas son las más comunes. 2579 02:36:27,899 --> 02:36:28,760 Aquí abajo las tenemos 2580 02:36:28,760 --> 02:36:30,719 todas, en el buscador, pero si yo me 2581 02:36:30,719 --> 02:36:32,760 quiero hacer un Blueprint sencillo, vacío, 2582 02:36:33,620 --> 02:36:34,020 que sea 2583 02:36:34,020 --> 02:36:36,760 un BP barra baja, 2584 02:36:36,840 --> 02:36:38,579 rotaping 2585 02:36:38,579 --> 02:36:40,399 rotaping 2586 02:36:40,399 --> 02:36:41,139 dragon 2587 02:36:41,139 --> 02:36:47,149 me lo crearía así 2588 02:36:47,149 --> 02:36:49,010 doble clic 2589 02:36:49,010 --> 02:36:50,270 se me abre 2590 02:36:50,270 --> 02:36:52,770 el blueprint class 2591 02:36:52,770 --> 02:36:54,350 que veis que también tiene un event graph 2592 02:36:54,350 --> 02:36:55,850 igual que el del blueprint 2593 02:36:55,850 --> 02:36:58,649 y yo lo que tendría que hacer básicamente aquí 2594 02:36:58,649 --> 02:36:59,610 es decirle 2595 02:36:59,610 --> 02:37:02,590 primero que quiero añadir un static mesh 2596 02:37:02,590 --> 02:37:06,260 a este blueprint 2597 02:37:06,260 --> 02:37:08,680 los blueprint nos sirven para hacer 2598 02:37:08,680 --> 02:37:10,079 elementos compuestos 2599 02:37:10,079 --> 02:37:33,760 ¿Vale? Que tengan mallas, que tengan cámaras, etcétera, etcétera. Entonces, para mí esto va a ser el Dragon Mesh. ¿Vale? Y cuando lo tengo seleccionado, veis que yo aquí a la derecha tengo un slot para la malla. ¿Vale? Pues voy a seleccionarlo y lo meto aquí. ¿Vale? Lo metemos aquí. Ahí tengo el Dragon ya creado. 2600 02:37:33,760 --> 02:37:36,920 compilo y fijaros en el viewport 2601 02:37:36,920 --> 02:37:38,719 yo ya tengo un blueprint que tiene una malla 2602 02:37:38,719 --> 02:37:40,719 adentro y que esa malla es la malla 2603 02:37:40,719 --> 02:37:42,120 de un dragón, vale 2604 02:37:42,120 --> 02:37:44,100 entonces yo podría 2605 02:37:44,100 --> 02:37:46,940 venir aquí y decir 2606 02:37:46,940 --> 02:37:48,899 vale pues este va a ser mi rotating 2607 02:37:48,899 --> 02:37:50,899 dragon, es un blueprint 2608 02:37:50,899 --> 02:37:52,520 ya no es una malla, es una malla 2609 02:37:52,520 --> 02:37:54,819 que contiene un blueprint, perdón al revés 2610 02:37:54,819 --> 02:37:56,559 es un blueprint que contiene una malla 2611 02:37:56,559 --> 02:37:58,719 vale, entonces para 2612 02:37:58,719 --> 02:38:00,299 decirle yo a este dragón que rote 2613 02:38:00,299 --> 02:38:03,079 lo que tendría que hacer es venir al event graph 2614 02:38:03,760 --> 02:38:16,540 Sacarme una referencia de la malla y decirle que le quiero añadir a local rotation, ¿vale? 2615 02:38:16,959 --> 02:38:19,940 ¿Cuánto? Pues no lo sé. 2616 02:38:20,760 --> 02:38:25,239 Vamos a establecerlo con una variable y lo conecto al event tick, ¿vale? 2617 02:38:26,479 --> 02:38:28,040 Lo conecto al event tick. 2618 02:38:28,040 --> 02:38:30,340 Veis que aquí en el delta rotation tengo los tres. 2619 02:38:30,459 --> 02:38:32,659 Los voy a desplegar. 2620 02:38:32,659 --> 02:38:37,559 botón derecho, split, struct pin y yo lo único que quiero tocar es la Z 2621 02:38:37,559 --> 02:38:40,600 ¿vale? entonces si yo aquí me creo 2622 02:38:40,600 --> 02:38:43,440 una variable que sea 2623 02:38:43,440 --> 02:38:48,750 pues como la podríamos llamar 2624 02:38:48,750 --> 02:38:55,479 angle amount 2625 02:38:55,479 --> 02:39:02,299 de primeras compilo y le digo que el valor por defecto 2626 02:39:02,299 --> 02:39:04,920 será 0 para que no rote ¿vale? 2627 02:39:04,920 --> 02:39:06,860 de primeras 2628 02:39:06,860 --> 02:39:09,700 cero para que no rote 2629 02:39:09,700 --> 02:39:11,159 perfecto 2630 02:39:11,159 --> 02:39:15,549 entonces si yo 2631 02:39:15,549 --> 02:39:17,530 abro esto 2632 02:39:17,530 --> 02:39:19,510 fijaros 2633 02:39:19,510 --> 02:39:21,030 el dragón no está rotando 2634 02:39:21,030 --> 02:39:23,989 si yo pulso shift f1 2635 02:39:23,989 --> 02:39:25,229 me saca el ratón 2636 02:39:25,229 --> 02:39:26,590 y estando en play 2637 02:39:26,590 --> 02:39:30,030 yo podría venir aquí 2638 02:39:30,030 --> 02:39:31,309 y seleccionar 2639 02:39:31,309 --> 02:39:33,110 mi dragón 2640 02:39:33,110 --> 02:39:34,409 a ver donde está 2641 02:39:34,409 --> 02:39:36,809 rotatingDragon 2642 02:39:36,809 --> 02:39:38,889 ¿dónde está? 2643 02:39:39,010 --> 02:39:39,569 ¿dónde estás? 2644 02:39:39,750 --> 02:39:40,329 aquí está 2645 02:39:40,329 --> 02:39:41,190 rotatingDragon 2646 02:39:41,190 --> 02:39:41,930 vale 2647 02:39:41,930 --> 02:39:43,170 yo lo que quiero 2648 02:39:43,170 --> 02:39:45,170 es que esa variable 2649 02:39:45,170 --> 02:39:46,030 esté disponible 2650 02:39:46,030 --> 02:39:47,209 cuando yo esté 2651 02:39:47,209 --> 02:39:48,909 en el juego 2652 02:39:48,909 --> 02:39:49,930 ¿cómo se hace eso? 2653 02:39:50,750 --> 02:39:52,610 me salgo del modo juego 2654 02:39:52,610 --> 02:39:55,250 me meto otra vez aquí 2655 02:39:55,250 --> 02:39:56,250 le digo que esta variable 2656 02:39:56,250 --> 02:39:57,829 quiero que se vea 2657 02:39:57,829 --> 02:39:58,930 ¿vale? 2658 02:40:00,170 --> 02:40:00,889 eso se llama 2659 02:40:00,889 --> 02:40:02,069 hacer una variable 2660 02:40:02,069 --> 02:40:03,790 instanceEditable 2661 02:40:03,790 --> 02:40:04,190 ¿por qué? 2662 02:40:04,409 --> 02:40:13,250 porque todas las instancias de este blueprint que estén en el nivel van a tener disponible ese parámetro. 2663 02:40:13,430 --> 02:40:18,649 Fijaros, ahora yo cuando lo selecciono tengo aquí un parámetro que se llama angle amount, ¿verdad? 2664 02:40:19,010 --> 02:40:27,049 Entonces, si a este le digo que tenga 1, a este le digo que tenga 5, a este le digo que tenga 0, como está, 2665 02:40:27,049 --> 02:40:39,569 y a este le digo que tenga 10, fijaros, salgo, le doy al play y cada uno está girando con una velocidad diferente, ¿vale? 2666 02:40:39,629 --> 02:40:44,870 Es la misma variable, pero como son instancias independientes, yo puedo cambiar ese valor, ¿vale? 2667 02:40:46,010 --> 02:40:46,489 ¿Entiende? 2668 02:40:48,510 --> 02:40:56,010 Entonces, si yo ahora pulso Shift F1 para que me aparezca el ratón, yo podría elegir cualquiera de estas 2669 02:40:57,049 --> 02:41:01,209 y cambiarle ese valor, ¿vale? 2670 02:41:02,149 --> 02:41:05,309 Este que está girando, le digo que esté en 0 y se para, 2671 02:41:05,670 --> 02:41:08,170 o le digo que se ponga en 10 y gira más rápido. 2672 02:41:08,690 --> 02:41:12,889 Si le digo 50, pues se pone a girar como un loco, ¿vale? 2673 02:41:14,709 --> 02:41:17,809 ¿Veis un poco la diferencia entre un Blueprint Class y el Level Blueprint? 2674 02:41:18,389 --> 02:41:22,549 Al final, lo bueno de esto es que yo tengo acceso a todas las variables 2675 02:41:22,549 --> 02:41:26,309 en cada instancia y además lo bueno de esto es que lo que yo programe 2676 02:41:26,309 --> 02:41:28,549 en el Blueprint Class me lo puedo llevar a otro proyecto 2677 02:41:28,549 --> 02:41:30,389 sin necesidad de migrarme 2678 02:41:30,389 --> 02:41:31,170 el nivel completo 2679 02:41:31,170 --> 02:41:34,389 ¿Vale? ¿Se entiende 2680 02:41:34,389 --> 02:41:35,569 chicos? ¿Más o menos? 2681 02:41:38,489 --> 02:41:39,129 Hombre, yo sí 2682 02:41:39,129 --> 02:41:44,209 Bueno 2683 02:41:44,209 --> 02:41:46,409 Pues yo creo que más o menos 2684 02:41:46,409 --> 02:41:48,090 esto es lo que os quería contar de Blueprints 2685 02:41:48,090 --> 02:41:50,149 para que tengáis una idea aproximada porque al final 2686 02:41:50,149 --> 02:41:51,069 ya vais a ver que 2687 02:41:51,069 --> 02:41:54,190 las cosas 2688 02:41:54,190 --> 02:41:56,590 que se suelen parametrizar 2689 02:41:56,590 --> 02:41:58,530 para axiometría son cosas muy sencillas. 2690 02:41:58,770 --> 02:42:00,850 Suelen ser elementos que suben y bajan 2691 02:42:00,850 --> 02:42:02,829 o a lo mejor 2692 02:42:02,829 --> 02:42:04,010 la intensidad de una luz, 2693 02:42:04,690 --> 02:42:05,229 por ejemplo. 2694 02:42:06,709 --> 02:42:07,969 Si yo, por ejemplo, 2695 02:42:08,450 --> 02:42:10,870 o el color de una luz, 2696 02:42:10,950 --> 02:42:11,629 que ya lo hemos hecho, 2697 02:42:13,190 --> 02:42:14,530 eso es lo que se suele parametrizar 2698 02:42:14,530 --> 02:42:16,430 para axiometría. Y luego ya si se meten en cosas más 2699 02:42:16,430 --> 02:42:18,629 complejas, normalmente lo que suele haber es un programador 2700 02:42:18,629 --> 02:42:20,610 que te cree toda esa programación 2701 02:42:20,610 --> 02:42:22,549 y que luego tú tengas acceso a ella mediante 2702 02:42:22,549 --> 02:42:24,770 axiometría. De todas maneras, 2703 02:42:24,770 --> 02:42:26,530 si se os ocurren cosas 2704 02:42:26,530 --> 02:42:28,809 bizarras que programar, Rafa 2705 02:42:28,809 --> 02:42:30,690 probablemente tenga una solución 2706 02:42:30,690 --> 02:42:32,629 para eso. Él tampoco es programador, pero sí que le ha 2707 02:42:32,629 --> 02:42:34,690 tocado pelearse mucho con este tipo 2708 02:42:34,690 --> 02:42:36,290 de historias, ¿vale? 2709 02:42:37,909 --> 02:42:38,729 Así que bueno. 2710 02:42:40,069 --> 02:42:40,690 Yo creo que 2711 02:42:40,690 --> 02:42:41,649 lo vamos a dejar aquí 2712 02:42:41,649 --> 02:42:43,069 porque 2713 02:42:43,069 --> 02:42:46,729 no me quiero meter en más líos de 2714 02:42:46,729 --> 02:42:48,590 blueprints, que al final lo que va a hacer es liaros 2715 02:42:48,590 --> 02:42:50,590 más. Pero bueno, si me dices, Álvaro, que 2716 02:42:50,590 --> 02:42:52,709 más o menos se ven las correspondencias 2717 02:42:52,709 --> 02:42:54,370 con lo que hacéis en Unity, con eso me vale. 2718 02:42:57,340 --> 02:42:58,639 Sí, sí, sí. De hecho 2719 02:42:58,639 --> 02:43:01,639 es más intuitivo con los blue frames 2720 02:43:01,639 --> 02:43:03,260 en Unity hacen un lerp 2721 02:43:03,260 --> 02:43:05,639 es un dolor, y aquí ya he visto lo fácil que es 2722 02:43:05,639 --> 02:43:07,540 perfecto 2723 02:43:07,540 --> 02:43:09,280 los lerps se utilizan para todo 2724 02:43:09,280 --> 02:43:11,399 para hacer transiciones entre colores 2725 02:43:11,399 --> 02:43:13,520 entre posiciones, entre rotaciones 2726 02:43:13,520 --> 02:43:15,440 entre lo que sea, porque al final es 2727 02:43:15,440 --> 02:43:17,420 interpolación lineal 2728 02:43:17,420 --> 02:43:18,180 entre dos estados 2729 02:43:18,180 --> 02:43:24,500 muy bien chicos, pues nada, pues os subo 2730 02:43:24,500 --> 02:43:26,440 entonces el último proyecto 2731 02:43:26,440 --> 02:43:28,600 que teníamos a Drive 2732 02:43:28,600 --> 02:43:29,760 que es 2733 02:43:29,760 --> 02:43:31,540 este de aquí 2734 02:43:31,540 --> 02:43:33,940 bueno, os puedo subir los dos si queréis 2735 02:43:33,940 --> 02:43:35,780 así tenéis también el ejemplo de Blueprints 2736 02:43:35,780 --> 02:43:36,700 ya programado 2737 02:43:36,700 --> 02:43:40,360 y nada, con lo que sea 2738 02:43:40,360 --> 02:43:41,879 me decís 2739 02:43:41,879 --> 02:43:43,559 estoy a vuestra disposición 2740 02:43:43,559 --> 02:43:45,899 y si necesitáis algún 2741 02:43:45,899 --> 02:43:47,760 que miremos la posibilidad 2742 02:43:47,760 --> 02:43:49,799 de algún escenario 2743 02:43:49,799 --> 02:43:51,860 para la gente de cine o lo que sea, igual 2744 02:43:51,860 --> 02:43:54,139 me decís y lo hablamos 2745 02:43:54,139 --> 02:43:54,600 ¿vale? 2746 02:43:55,540 --> 02:43:56,940 vale, vamos a ver 2747 02:43:56,940 --> 02:43:59,600 y nada, gracias por 2748 02:43:59,600 --> 02:44:01,319 soportar toda esta chapa 2749 02:44:01,319 --> 02:44:02,879 infame que os acabo de soltar 2750 02:44:02,879 --> 02:44:05,219 espero que os haya gustado el curso 2751 02:44:05,219 --> 02:44:06,420 y que sigáis 2752 02:44:06,420 --> 02:44:08,840 evolucionando en Anriado si es posible 2753 02:44:08,840 --> 02:44:10,120 gracias 2754 02:44:10,120 --> 02:44:12,440 habrá que volver sobre ello pero 2755 02:44:12,440 --> 02:44:14,420 por lo menos una idea la tenemos 2756 02:44:14,420 --> 02:44:16,020 muy bien 2757 02:44:16,020 --> 02:44:18,200 un placer 2758 02:44:18,200 --> 02:44:20,700 venga muchas gracias 2759 02:44:20,700 --> 02:44:22,180 adiós 2760 02:44:22,180 --> 02:44:23,879 adiós