Unreal Engine 5: curso básico sobre secuencias de comandos de blueprint | Greg Wondra | Skillshare

Velocidad de reproducción


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Unreal Engine 5: curso básico sobre secuencias de comandos de blueprint

teacher avatar Greg Wondra, Unreal Authorized Instructor

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Video de promoción del curso (Acerca del curso)

      1:10

    • 2.

      Introducción al curso

      4:09

    • 3.

      Descargar e instalar

      3:33

    • 4.

      Crear proyecto

      3:03

    • 5.

      Ejemplo de plan de acción

      9:10

    • 6.

      Panel de componentes

      18:35

    • 7.

      Pestaña de la ventana gráfica

      14:40

    • 8.

      Panel de detalles

      7:44

    • 9.

      Mi panel de blueprint

      7:54

    • 10.

      Gráfico de eventos

      14:12

    • 11.

      Script de construcción

      16:36

    • 12.

      Planos de clase

      6:19

    • 13.

      Planos de nivel

      15:35

    • 14.

      Tipos de nodos

      7:48

    • 15.

      Ejecución y pines de datos

      6:45

    • 16.

      Cableado de nodos

      6:40

    • 17.

      Organización de nodos

      10:29

    • 18.

      Nivel BP: diseñar referencias de objetos

      10:44

    • 19.

      Nivel BP: referencias de objetos en el tiempo de ejecución

      16:57

    • 20.

      Clase BP - Diseñar referencias de objetos de tiempo

      10:58

    • 21.

      Clase BP - Referencias de objetos en el tiempo real

      13:33

    • 22.

      Referencias de objetos moldeados

      14:27

    • 23.

      Referencias de BP del widget

      11:33

    • 24.

      Referencias de etiquetas

      10:40

    • 25.

      Inicio del juego

      10:03

    • 26.

      Tick de evento

      12:52

    • 27.

      Entrada de eventos

      15:40

    • 28.

      Eje de eventos

      18:42

    • 29.

      Superposición del comienzo del evento

      13:02

    • 30.

      Superposición del final del evento

      5:26

    • 31.

      Inicio del evento, cursor sobre el inicio del evento

      11:34

    • 32.

      Cursor al final del evento

      3:57

    • 33.

      Evento en el que se hace clic

      5:31

    • 34.

      Evento publicado

      2:11

    • 35.

      Hit de evento

      12:21

    • 36.

      Causar cualquier daño

      8:25

    • 37.

      Daños en puntos de eventos

      7:44

    • 38.

      Daño radial por eventos

      8:48

    • 39.

      Evento destruido

      8:44

    • 40.

      Eventos personalizados

      14:40

    • 41.

      Descripción de las variables

      9:26

    • 42.

      Booleano

      9:54

    • 43.

      Entero

      12:02

    • 44.

      Floador

      14:36

    • 45.

      Nombre

      12:11

    • 46.

      Cadena

      9:33

    • 47.

      Texto

      13:54

    • 48.

      Vector

      8:01

    • 49.

      Rotador

      16:38

    • 50.

      Transformar

      11:03

    • 51.

      Actor (objeto)

      9:18

    • 52.

      Variables que debes saber (parte 1)

      11:53

    • 53.

      Variables que debes saber (parte 2)

      9:36

    • 54.

      Consejos y trucos para las variables

      12:27

    • 55.

      Descripción de las funciones

      7:20

    • 56.

      Funciones de actor

      6:14

    • 57.

      Funciones de la clase

      7:52

    • 58.

      Funciones de componentes

      4:31

    • 59.

      Crear funciones

      11:39

    • 60.

      Funciones de llamada

      15:05

    • 61.

      Contraer a función

      14:09

    • 62.

      Funciones puras e impuras

      11:18

    • 63.

      Biblioteca de funciones

      17:17

    • 64.

      Variables locales

      10:55

    • 65.

      Funciones que debes saber

      15:17

    • 66.

      Descripción de las macros

      8:43

    • 67.

      Crear macros

      13:23

    • 68.

      Colapsar a macro

      7:39

    • 69.

      Biblioteca de macros

      15:32

    • 70.

      Matriz

      16:00

    • 71.

      Conjunto

      10:45

    • 72.

      Mapa

      18:12

    • 73.

      Enum

      14:34

    • 74.

      Estructura

      18:31

    • 75.

      Descripción del control de flujo

      3:56

    • 76.

      Rama

      10:21

    • 77.

      Secuencia

      7:15

    • 78.

      Haz una vez

      8:01

    • 79.

      Hacer N

      5:10

    • 80.

      flip flop

      10:23

    • 81.

      Puerta

      9:53

    • 82.

      MultiGate

      9:17

    • 83.

      Bucles for

      17:30

    • 84.

      Para cada bucle

      14:17

    • 85.

      Bucle While

      7:57

    • 86.

      interruptores

      18:31

    • 87.

      Seleccionar

      18:13

    • 88.

      Moldeo

      11:30

    • 89.

      Comunicación directa (parte 1)

      8:53

    • 90.

      Comunicación directa (parte 2)

      12:20

    • 91.

      Despachadores de eventos

      16:08

    • 92.

      Interfaces de blueprint (parte 1)

      15:39

    • 93.

      Interfaces de blueprint (parte 2)

      8:55

    • 94.

      Clase principal (base)

      12:50

    • 95.

      Clase para niños (parte 1)

      14:09

    • 96.

      Clase para niños (parte 2)

      13:17

    • 97.

      Descripción general del marco

      4:32

    • 98.

      Modo juego (parte 1)

      11:47

    • 99.

      Modo juego (parte 2)

      10:50

    • 100.

      peón

      9:52

    • 101.

      Personaje

      11:47

    • 102.

      Controlador de reproducción

      19:38

    • 103.

      Instancia de juego

      18:31

    • 104.

      Compilar

      9:21

    • 105.

      Puntos de ruptura

      14:33

    • 106.

      Valores para mirar

      7:50

    • 107.

      Registro de mensajes

      8:07

    • 108.

      Búsqueda

      8:19

    • 109.

      Separadores de páginas

      4:06

    • 110.

      Panel de paleta/favoritos

      5:23

    • 111.

      Nodos colisionantes

      8:02

    • 112.

      Diseños personalizados

      6:17

    • 113.

      Consejos y trucos

      9:59

    • 114.

      Teclas de acceso rápido de productividad

      15:55

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

1284

Estudiantes

4

Proyectos

Acerca de esta clase

Si alguna vez has querido codificar tus propios juegos pero no tienes ninguna experiencia ni sabes por dónde empezar, ¡entonces este es el curso para ti!

En el interior, el diseñador de juegos y educador, el Sr. Wondra, te enseña todos los conceptos, habilidades y técnicas esenciales necesarios para dominar el script de Blueprint, el sistema visual basado en nodos de Unreal Engine para crear juegos funcionales.

En esta clase aprenderás a hacer lo siguiente:

  • Cómo crear y configurar proyectos de Unreal Engine

  • Cómo crear / usar eventos, funciones, macros y variables

  • Cómo crear diferentes tipos de planos
  • Cómo comunicarse entre los planos

  • Cómo crear clases para padres e hijos (herencia)

  • Cómo compilar y depurar blueprints

  • Cómo crear MUCHOS guiones útiles: 
    • Cómo crear guiones de captura
    • Cómo crear comandos de objetos interactivos
    • Cómo crear scripts de objetos móviles
    • Cómo crear comandos enemigos simples
    • Cómo crear guiones de contenido de procedimiento
  • Consejos y trucos para convertirte en un guionista eficiente.

¿A quién está dirigida esta clase?

En resumen, TODOSEstudiantes jóvenes y mayores (¡de 12 a 70!) y los desarrolladores de juegos AAA han tomado y encontrado un valor inmenso en este curso.  Los estudiantes comunes son los siguientes:

  • Para los principiantes (¡nunca antes habían programado!)
  • Desarrolladores de Unreal existentes (que quieran aprender estas herramientas)
  • Conversiones en Unity
  • Educadores (que buscan un plan de desarrollo de juegos para sus clases) 

¡Vamos!

Con el conocimiento adquirido en estas lecciones de video, tendrás los conocimientos y las habilidades necesarios para empezar a crear tus propios guiones personalizados para tus PROPIOS proyectos de juegos.  ¡No puedo esperar a ver lo que creas!

Conoce a tu profesor(a)

Teacher Profile Image

Greg Wondra

Unreal Authorized Instructor

Profesor(a)

Hello! I'm Greg but most of my students know me as "Mr. Wondra." I'm an active game designer and Unreal Engine Authorized Instructor.

As a kid growing up in rural Wisconsin I dreamed of leaving the corn fields and cow pastures to one day become a video game designer. For 12 years I LIVED that dream! I've designed titles for 2K Sports, KingsIsle Entertainment, and Nickelodeon and have had rare lifetime opportunities such as directing LeBron James and Derek Jeter in motion capture sessions.

My design credits include:

- Wizard 101 (PC)

- Lost Planet 3 (360, PS3, PC)

- MonkeyQuest (PC)

- Sports Champions (PS3)

- Major League Baseball 2K5, 2K6, 2K7, 2K8 (various consoles)

- SpongeBob Moves In (Mobile)

- Grub ... Ver perfil completo

Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Video promocional del curso (sobre el curso): Bienvenida. En este curso de desarrollo de juegos para principiantes, aprenderás a escribir tu propio juego funcional usando planos en Unreal Engine five. Sin recubrimiento o Unreal Engine experimentado, necesario. Hola, mi nombre es Greg wanderer, un veterano de la industria de 12 años que ha estado enseñando desarrollo de juegos usando Unreal Engine desde 2016. Al final de este curso, tendrás una comprensión profunda de todos los conceptos básicos que impulsan este enfoque de programación basado en nodo que cubrirá las clases Blueprint y los componentes, eventos, funciones, macros, variables y mucho más. Este curso es para todos, desde el diseñador de juegos Byron más joven hasta el profesional de la industria de la temporada. Empezamos desde el principio asumiendo que no sabes nada. Pero para el final de este curso servirá como un recurso valioso. Puedes hacer referencia una y otra vez. Así que vamos, únete a los miles de estudiantes satisfechos que comenzaron su viaje de desarrollo de juegos conmigo. No puedo esperar a ver lo que creas. 2. Primer del curso: Bienvenido, solo una cartilla rápida aquí antes de llegar a las cosas buenas, solo para que sepas cómo navegar por este curso y extraer el valor máximo de él. Ante todo, gracias por elegir este curso. Sé que tienes muchas opciones. Me tomo muy en serio hacer estos cursos. He pasado más de un año haciéndola. Este es el curso de mis sueños para armar porque creo que este es el concepto más importante fundamental para obtener cuando se trabaja con Unreal Engine, vas a estar aprendiendo algunos scripts de planos. Lo que es Blueprint scripting world es esencialmente una forma visual, basada en nodos de codificar el juego sin mirar un muro de texto y sintaxis y todo ese jazz. Entonces, si nunca has visto cómo se ve el scripting de Blueprints, tengo un ejemplo rápido para mostrarte aquí. Esto es Unreal Engine cinco, por cierto. Para crear una jugabilidad funcional en Unreal con scripts de planos, solo puedes conectar algunos nodos así. Y lo que he sacado aquí es solo una rápida recogida. También tengo este muro procesal donde podemos extender cuántas piezas tenemos. Todo esto se hace con Unreal Engine es Blueprint scripting. Entonces, ¿para quién es este curso? Me sale mucho esa pregunta. ¿Es para mí? Bueno, he diseñado este curso para todos. He tenido alumnos de tan solo seis grados, 65 años que toman este curso. Algunos no saben nada de codificación o scripting en alguna parte, novatos completos y otros son el triple de desarrolladores. He tenido alumnos de Naughty Dog e insomniac. Aunque lo hago en Teach, como si fuera tu primera vez. Así que no hay amenaza en un Hey, no entiendo nada programación, nada de eso. Empiezo desde el mismo nivel del suelo. Entonces, ¿cómo se estructura este curso? Bueno, no vamos a estar construyendo ninguna cosa en particular en este curso. Más bien, este curso es un curso basado en conceptos, mostrando muchos ejemplos muy útiles y prácticos. Ahora, traté de hacer este curso lo más abierto posible, lo que significa que está destinado a servir como un recurso para ti, un repositorio de conocimientos de scripting que puedes volver a tiempo y tiempo de nuevo como una ventanilla única de todos estos conceptos de scripting centrales que podrías desear y necesitar. Quiero decir, estas fueron todas las preguntas que me hice en mi viaje de aprendizaje a lo largo de los últimos diez años. Ahora, debido a cómo está estructurado este curso, puedes saltar de lección en lección. No tienes que ir de manera lineal. Aunque sí recomiendo ir en orden. Ahora puede haber algunas lecciones aquí y allá que hagan referencia a lecciones anteriores, pero voy a tratar de llamarlas cuando ocurran y mantener eso al mínimo. Ahora bien, sí quiero señalar, es sumamente difícil impartir un curso basado en conceptos como este, citar entre comillas, fin de que para entender completamente los conceptos aquí presentados, sin duda nos encontraremos algunas dependencias de lo que eso significa es que para entender esto, vas a necesitar saber de eso. Y para poder saber de eso, hay que saber de esto. Hay un concepto o habilidad que se presenta y al principio parece completamente ajeno. Sepa que a, voy a llamarlo y ser voy a cubrir ese tema adecuadamente más adelante en el camino. hay mucho, Aquíhay mucho, mucho que cubrir. Y sólo para darte una rápida cartilla sobre lo preparado que estoy para impartir este curso. Tengo mi esquema justo por aquí. Este es el esquema que utilizo para construir este curso. Cada uno de estos enlaces azules, enlaces a una lección. Así que he, he pasado literalmente, en realidad estoy más cerca de dos años armando este curso. Nuevamente, te recomiendo ir en orden, aunque puedes saltar por ahí. Por último, si encuentras que este curso es valioso, por favor deja una reseña y lo recomiendas a otros, no hay otra cosa mejor puedas hacer que recomendarlo a otros. Me encanta enseñar a los estudiantes a ver o pueden construir. Nada es más emocionante para mí que ver a los alumnos llevar lo que he enseñado y lo llevan al siguiente nivel. Cosas bastante emocionantes de hecho. Bien chicos, ya basta de esto. Vamos a meternos en las cosas buenas. Nos vemos a todos en el siguiente video. 3. Descargar e instalar: Muy bien, primero las cosas primero, antes de seguir con alguna de las cosas buenas, tenemos que asegurarnos de que tenga Unreal Engine descargado e instalado. Si ya lo haces, siéntete libre de saltar por encima de este video. Éste es para los novatos completos que no tengo ni idea a dónde ir, cómo empezar, etcétera. Entonces usando un navegador de Internet de tu elección, simplemente escribe Unreal Engine.com. Ahora sí tienen una página con algunas instrucciones de descarga en ella. Te mostrará algunos requisitos del sistema si te estás preguntando sobre esos, esto es bueno para Windows o Mac, no importa lo que tengas. Y lo primero que debes hacer para conseguir Unreal Engine es realmente descargar el lanzador de Epic Games. Sí, es un poco de un proceso difuso. Tenemos que descargar el lanzador Epic Games, a través del cual luego obtenemos acceso al Unreal Engine. Raro, lo sé. Pero adelante y da clic en esta descarga y lanza tu opción. Te va a pedir que guardes este paquete instalador un destino de archivo de tu elección. Ya he hecho esto antes, pero una vez hecho esto, puedes hacer doble clic en esto para comenzar el proceso de instalación del lanzador de Epic Games, es bastante sencillo. Todo lo que necesitas hacer es hacer click a través las casillas que se presentan. De nuevo, ya lo he hecho, así que realmente no puedo replicar eso aquí. Proceso bastante sencillo. Ahora, una vez que hayas hecho eso, deberías poder encontrar el lanzador de Epic Games ya sea apareciendo después de que haya terminado o puedes buscarlo aquí. Si hago clic en mi lupa pequeña aquí y solo escribo épica, puedes ver que ahí está mi Epic Games lanza tu app. Nuevamente, ya he preinstalado esto desde aquí. Puedo hacer clic derecho en esto y anclar a mi barra de tareas, cosa que ya he hecho. Así que una vez que el lanzador de Epic Games haya terminado de instalar, tienes acceso al lanzador de Epic Games, que tienes fichas de tienda, biblioteca y Unreal Engine a lo largo del lado izquierdo. Porque obviamente estamos trabajando con Unreal Engine. Vas a querer asegurarte de que esta pestaña esté seleccionada y en la parte superior, vas a querer seleccionar la pestaña de tu biblioteca. Ahora aquí es donde vas a instalar diferentes versiones de irreal. Ahora, cada par de meses más o menos, Epic Games viene con una versión actualizada del motor. Pero para agregar cualquier nueva versión de motor, simplemente puede hacer clic en este botón amarillo plus aquí mismo. Se va a añadir esta pequeña tarjeta y luego este desplegable, puedes hacer click para elegir específicamente una versión del motor que te gustaría instalar. Ahora, a partir de la fecha de hoy que estoy grabando este Unreal Engine cinco sigue siendo muy nuevo y esta es la última versión del motor. ¿ Qué versión del motor debe instalar? Yo recomendaría la última versión, sea cual sea eso. Ahora, si vuelvo a hacer clic en esto, cuando estés escogiendo una versión diferente del motor, te va a pedir que lo instales. Ya he hecho esto fuera de la cámara con anticipación, así que estoy listo para lanzarlo, pero al hacer clic en Instalar aquí, instalarás esa versión del motor. Y este puede ser un proceso bastante largo. Así que una vez que haga clic en Instalar, verá este épico o este ícono de Unreal Engine un poco llenarse como una barra de metros. Y además si hace clic en esta opción de Descargar por aquí, se puede ver el avance de la instalación de Unreal. Entonces adelante y hazlo ahora. Adelante y luego toma un trago, ve a cenar, etcétera porque va a tomar un rato. 4. Crear proyecto: Muy bien, con Unreal Engine install, ya era hora de que creamos un proyecto. Y para hacer eso, necesitamos lanzar el motor. Ahora en realidad hay múltiples formas de lanzar el motor. Así que te voy a mostrar esos métodos ahora aquí en el lanzador de Epic Games con Unreal Engine seleccionado a lo largo de la izquierda, la pestaña de biblioteca seleccionada en la parte superior. Podríamos lanzar la versión del motor que acabamos terminar de instalar haciendo clic aquí mismo. En la parte superior derecha, hay un botón de Lanzamiento que me permitirá lanzar esa misma versión del motor. Ahora si tuviera varias versiones del motor instaladas aquí, puedo hacer click en este desplegable. Todos se presentarían aquí. Podría elegir uno. Cualquiera que sea la versión del motor que hubiera seleccionado. Ese número aparecería a la derecha aquí. Y de nuevo, al hacer clic en este botón de lanzamiento amarillo lanzaría esa versión específica del motor. Ahora si todo esto es inconveniente, puedes crear un atajo haciendo clic en este pequeño desplegable. Y puedes crear aquí un atajo de escritorio, que ya he hecho antes de este video. Ahí está mi atajo de escritorio. Voy a hacer clic en Launch aquí mismo. De acuerdo, eventualmente vas a llegar a un pop-up que se ve así. Estamos creando unos proyectos de juego, así que asegúrate de que tienes esa caja seleccionada a lo largo de la izquierda. También vamos a estar usando la plantilla de tercera persona para ayudarnos por aquí. Así que asegúrate de tener eso seleccionado. encima del lado derecho, tenemos algunas opciones. Este va a ser un proyecto de blueprint que se selecciona por defecto. Eso está todo bien y bueno. Nuestra plataforma objetivo aquí va a ser Calidad de escritorio preestablecida, máxima, lo siento , contenido, seguro, trazando rayos tu elección si quieres o no tener eso seleccionado, voy a decir Sure. Ubicación del proyecto, sigue adelante y elige una ubicación de archivo en su computadora. No obstante, el nombre del proyecto por el amor de Dios, por favor no dejes eso por defecto como veo a demasiados estudiantes haciendo. Cambie esto a Blueprint scripting. Después sigue adelante y haz clic en Crear. Muy bien, y después de qué escenas en la eternidad después de crear ese proyecto, estamos obteniendo nuestra primera mirada a Unreal Engine cinco, el editor de niveles aquí. Ahora si viste algo en la ventana inferior derecha que dicho proyecto archiva desactualizado. Basta con seguir adelante y haga clic en fix. Ahora para arreglar eso. En la parte superior derecha, podemos ver el nombre de nuestro proyecto. Y quiero señalar que después cerrar este proyecto, puedes volver a entrar en esto pasando por el lanzador de Epic Games, la pestaña Unreal Engine Library tiene es mi sección de proyectos. En cualquier proyecto que hayas creado se enumerará aquí abajo. Por lo que hacer doble clic en esto nos abrirá este proyecto específico, que es bastante práctico. Misión cumplida aquí, chicos, hemos ido adelante y creamos nuestro primer proyecto. Aprendamos sobre el scripting de Blueprint en la siguiente sección. Nos vemos ahí. 5. Ejemplo de Blueprint: Bienvenidos de vuelta a todos. Bueno, con nuestro proyecto ahora creado, vamos a saltar justo adentro. Vayamos a las cosas buenas. En este video, nuestro objetivo va a ser definir qué planos hay en Unreal y luego mostrar un ejemplo de uno en un juego. Y hacerlo demostrará conceptualmente qué es un blueprint y cómo podemos utilizarlos en la creación de proyectos de juego. Entonces antes de rodar este video, seguí adelante y creé un plano. Creé un plan de recogida solo para que te entusiasmes con lo que vamos a estar haciendo aquí en la primera parte de este curso. Esto es algo que se ve todo el tiempo en el juego. Entonces pensé que este sería un ejemplo muy relevante. Voy a hacer clic en este botón verde play en la parte superior aquí. Y al hacerlo, en la parte superior izquierda, va a decir clic para el control del ratón. Si fui suprimida FUE y ASD justo desde el principio y no pasa nada. Tengo que hacer click en esta ventana primero para obtener el control de mi personaje. Ahora todo lo que ves aquí fue preconstruido. Lo único que construí antes de este video fue esa cruz giratoria. Si me meto a mi personaje, recogí, toco un poco de sonido. Ves ese tipo de cosas en los juegos todo el tiempo. Voy a golpear a Escape para saltar de aquí. Ahora si entro en mi cajón de contenido y si miro la punta de la herramienta, su control y la barra espaciadora, ahí también es donde puedo traer en el cajón de contenido. Aquí es donde puedo acceder a las carpetas y carpetas sobre carpetas dentro de mi Unreal Engine, creé esta clase blueprint es BP ejemplo Clase Blueprint. Previo a este video, vamos a crear uno de los nuestros por videos anteriores. Pero quería señalar aquí con el cajón de contenido, esta es una nueva característica y Unreal Engine cinco, se puede hacer click en esto para levantarlo o bajarlo, o hacer ese control más barra espaciadora. No obstante, para aquellos de ustedes que son un poco más de experiencia o veteranos de Unreal, pueden agregar algo ni tampoco el navegador de contenidos que sea una visión persistente de eso cajón abajo en la parte inferior de la pantalla. Así que voy a venir bajo Navegador de contenido de ventana y elegir el navegador de contenido quiere solo tener una copia del navegador de contenido persistentemente disponible aquí abajo en el editor. No tienes que hacer eso. Esa es mi propia preferencia personal. Esto es exactamente lo mismo que el cajón de contenido tiene exactamente las mismas carpetas, contenido, etcétera. Muy bien, La razón por la que estoy haciendo esto es porque quiero crear una nueva carpeta aquí dentro de mi carpeta de contenido. Así que voy a hacer clic derecho en mi carpeta de contenido aquí mismo. Voy a crear una nueva carpeta y voy a llamar a ésta scripting. Entonces voy a hacer clic derecho en esta nueva carpeta de scripting. Y le voy a dar un color de inmediato. Y sólo voy a hacer clic izquierdo, mover esto alrededor. Voy a ponerlo en azul porque hey, este es un curso de scripting blueprint. Muy bien, la razón por la que estoy creando esta carpeta es porque muchos de los activos que vamos a estar creando a lo largo de este curso. Quiero que sean cuán específicamente en esta carpeta para facilitar el acceso para mí así que sé exactamente dónde viven. Ahora a lo largo del lado derecho aquí, puedo crear diferentes tipos de activos. Y puedo hacer eso haciendo clic derecho y algún espacio vacío. En el menú contextual del MI, puedo crear una nueva clase de blueprint. Ahora este sería un buen momento para que hable de cuáles son nuestros planos en Unreal. Entonces este término, planos, significa aquí dos cosas. Blueprints es el sistema visual de scripting dentro de irreal, a veces referido como blueprints scripting. Pero los blueprints también son activos como activos Clase Blueprint que pueden contener componentes específicos, datos o secuencias de comandos que ayudaron a tu juego de alguna manera, forma o forma. Hay muchos tipos de planos diferentes en irreal. Ahora bien, todo este sistema de impresión azul, es una forma para que no codificadores como yo puedan crear un juego funcional dentro de Unreal, que es bastante dulce. Entonces de alguna manera vas a estar recubriendo, pero de una manera muy artística. Entonces, ¿qué significa eso? Vamos a estar cableando algunos nodos y va a ser mucho más visualmente atractivo que unos y ceros y corchetes rizados y todo ese tipo de cosas. Entonces aquí voy a elegir una clase de plano. Cuando haga click en esto, vamos a tener que escoger una clase de padres. Nuevamente, muchos tipos diferentes de planos, pero en general el más común es el plano de clase actor. Este es un objeto entonces que se puede colocar para responder en el mundo. Entonces sigamos adelante y seleccionemos esto. Va a crear ese activo aquí abajo en nuestra carpeta de secuencias de comandos de contenido. Vamos a darle un nombre. Voy a llamar a mi ejemplo de guión bajo BP. Creo que ese es el nombre que quiero que le dé. Ejemplo, recoger ningún ejemplo de recogida. Ese es el nombre que quería darle. Ejemplo de recogida. Por eso guardo notas. Golpea Enter. Por cierto, si quieres cambiar el nombre de esto, puedes hacer clic derecho y cambiarle el nombre F2 mientras que tenerlo seleccionado también te pedirá que cambies el nombre. Si tuviera que colocar esto en mi nivel en este momento, puedes simplemente arrastrarlo y soltarlo desde tu navegador de contenido. Se puede ver que aquí hay un ícono. Pero si fuera a saltar a mi juego, realidad no vería esa cosa. Ese icono solo está disponible en visualizable aquí en el editor. No lo veo cuando estoy jugando el juego en sí. Ahora actualmente tengo modo rotacional en este golpea algunas cosas básicas de navegación. El modo de rotación está activado. Puedes volver al modo movimiento para mover esto alrededor. Alternativamente, tu barra espaciadora alternará entre movimientos, girando o escalando tus objetos. Todos ellos tienen teclas de acceso rápido asociadas a ellos también. Muy bien, así que eso está todo bien y bueno. El asterisco de aquí abajo muestra que aún no se ha salvado. Entonces Control plus S dirá eso, o puedes hacer clic derecho sobre él y hacer clic en Guardar también. Una cosa más que quiero hacer antes cerrar este video es que quiero crear un nivel de pruebas completamente nuevo. En realidad no vamos a estar trabajando dentro de este nivel. Esto es todo con fines de demostración. Por lo que voy a entrar bajo expediente en la parte superior izquierda. Voy a crear un nivel completamente nuevo. Cuando hagas eso, te va a pedir que selecciones una de estas plantillas diferentes. Voy a ir con el nivel básico aquí. Haga clic en Crear. Eso me va a sacar de este nivel y a un nuevo nivel sin título. Ahora pocas cosas que tenemos que hacer aquí. Una es que necesito salvar este nivel. Entonces si hago clic en este pequeño icono de disco de guardar aquí arriba, me va a avisar, hey, ¿ dónde quieres guardar este nivel? Voy a poner esto en mi nivel de scripting. Voy a darnos un nuevo nombre y voy a llamar a este mapa de pruebas de subrayado de LV. Todo este mapa sólo va a ser una prueba gigante. Ahora para todos estos conceptos de planos diferentes vamos a estar explorando a lo largo del curso. Vamos a hacer click Guardar aquí. El nombre de esta pestaña ahora se cambiará a mapa de prueba. Se puede ver que el activo ahora vive dentro de mi carpeta de contenido. Creará automáticamente esta prueba Mab datos de compilación. No tienes que hacer nada dentro de éste, pero automáticamente lo creará también en tu carpeta. Hay una cosa más que quiero hacer aquí dentro de la configuración de nuestro proyecto. Puedes encontrar que en la configuración de la parte superior derecha, configuración del proyecto. Va a traer en una nueva pestaña. encima del lado izquierdo, tenemos mapas y modos. Adelante y elige esto. Queremos cambiar nuestro editor predeterminado, inicio mapa de mapa de tercera persona al mapa que acabamos de crear, un mapa de prueba de nivel. Simplemente podemos salir de aquí. Y lo que esto hará es que sea para que una vez que cierremos del editor aquí y lo abramos de nuevo, automáticamente vengan dentro de este nivel. No tenemos que encontrar este nivel aquí en nuestro navegador de contenidos. Entonces eso está todo bien y bueno. Voy a terminar este nivel muy rápidamente saltando a ese ejemplo de blueprint que había creado en mi carpeta de contenido, simplemente puedo colocar uno de estos en mi nivel y saltar a mi ejemplo de plano. Aquí mismo, tengo esta pestaña de viewport que muestra los diferentes componentes que conforman mi blueprint. Y luego tengo este gráfico de eventos que muestra el scripting, los nodos y cables que crearon la funcionalidad para este blueprints en particular. Me superpongo y toca un sonido y destruye al actor. Así que eso es esencialmente lo que vamos a estar construyendo lo largo de estos próximos videos aquí. Pero chicos, eso nos va a llegar hasta donde quería llegar en este video. Entonces nos vemos en la siguiente. 6. Panel de componentes: Bienvenidos de nuevo a todos. En este video, nuestro objetivo es agregar algunos componentes a nuestro blueprint recién creado para darle una comprensión de lo que es el panel Componentes dentro de un blueprint y cómo aprovechar al máximo de trabajar con ello, porque hay muchos matices, muchas cosas buenas que saber que te ahorrarán un montón de tiempo. Bien, Antes de llegar a eso, quiero acabar con este ejemplo de BP que me leen previo al inicio del último video. Así que vamos a decir adiós a eso haciendo clic Eliminar ahí mismo en el Navegador de contenido. Alternativamente, tu cajón de contenido. Voy a entrar en mi carpeta de scripting y voy a colocar mi pickup de ejemplo BP en mi nivel. Nuevamente, todavía no hay nada dentro de este plano, así que veo este ícono, pero si tuviera que jugar, no vería nada. Ahora hay un par de formas en las que podemos ir modificando este plano. Una es que podemos hacer doble clic en su propio activo hacia abajo en el cajón de barra del Navegador de contenido. O con este objeto colocado en el nivel, puedes hacer clic sobre en tu outliner donde tienes seleccionada la recolección de ejemplo BP y justo ahí está editar pastillas de ejemplo BP. Así que voy a hacer clic en eso. Y si ves que esto es un dato solo Los blueprints a veces ocurren cuando abres un blueprint, simplemente puedes hacer clic aquí para abrir el editor de planos completo. Bien. Este es nuestro editor de planos. Voy a hacer clic en la pestaña de la ventana gráfica justo aquí arriba. Vamos a estar desglosando cada aspecto de esto en detalle aquí. Pero primero voy a la pestaña de la ventana gráfica, porque vamos a estar agregando algunos componentes en la pestaña Componentes que luego podremos ver en la pestaña de la ventana gráfica. Debo señalar aquí, hicimos planos de clase de actor en el último video. Y he aquí, la esquina superior derecha, dice que la clase de padres es la clase de actor. Bien, así que sigamos adelante y hablemos de qué son los componentes. Los componentes son esencialmente los bloques de construcción de un plano. Si piensas en un auto, la construcción de un auto, un plano de auto tendría un cuerpo de malla. Tendrías algunas ruedas, tendría algunos faros, bocina, tal vez algo de humo de escape. Todos esos componentes podrían agregarse aquí en el panel Componentes. Ahora por defecto, el panel Componentes se encuentra en la parte superior izquierda del editor de planos. Ahora, puede cambiar el tamaño esta ventana haciendo clic izquierdo y arrastrando aquí. Podrías arrancar esta pestaña aquí mismo y colocarla en algún lugar completamente diferente. Di ahí abajo. Yo elijo tenerlo de vuelta donde estaba. Puede ocultar y mostrar la pestaña de componentes. Si tuviera que simplemente hacer clic derecho sobre esto, podría ocultar esa pestaña. Si hago clic en esa banderita azul de ahí, puedo mostrar la pestaña. Puedo hacer clic derecho sobre esto y acoplar a la barra lateral y moverlo por aquí si quisiera. Y simplemente estoy haciendo clic en él como para poder hacer clic derecho sobre él de nuevo en desacoplado de la barra lateral. Muchas opciones aquí. También puedo deshacerme de este panel de componentes todos juntos haciendo clic en esa X. Los estudiantes hacen esto de vez en cuando, luego se enloquece y se preguntan, ¿cómo puedo recuperar esa ventana? Bueno, si te encuentras bajo tu opción de Windows aquí arriba , he aquí, tienes una opción de componentes. Ahí vas. Bien, agreguemos algunos componentes a nuestros planos. Así que tenemos un bonito vistazo aquí. Tenemos este botón Agregar aquí mismo. Pero fiel a la naturaleza de lo irreal, si hay múltiples formas de hacer las cosas. Entonces voy a tratar de demostrar múltiples formas de agregar componentes. hagamos clic en este botón Agregar aquí Primerohagamos clic en este botón Agregar aquíy agreguemos un nuevo. Lo que queremos es una colisión de esfera y componentes. Como puedes ver, muchos componentes diferentes aquí en Unreal, no te dejes intimidar. Hay algunos de estos que se utilizan manera más común que otros. Uno de los que se usa muy comúnmente es el componente de colisión de esfera. Esto esencialmente te proporciona una esfera invisible que podemos comprobar para ver si tu personaje se superpone para hacer cosas. Entonces voy a llamar a esta esfera subrayada colisión. Se le puede dar un nombre ahí arriba. Y con esos componentes seleccionados en el panel Detalles, voy a cambiar algo al respecto. Voy a cambiar los detalles, el radio de la esfera a ser 50. Trataremos más con el panel Detalles en un futuro video. También voy a añadir un cubo. Y voy a llamar a este cubo subrayado horizontal. Puedo usar la rueda del mouse para acercar y alejar. Sólo voy a darnos una báscula aproximada. Puedo ajustar esto en algún momento, pero con esto desbloqueado, voy a cambiar esto para que sea 0.25 en la x, 0.25 y la y un poco delgada hacia arriba. Y voy a cambiar la escala Z para que sea 0.8, algo así. Ahora puedo hacer clic derecho sobre esto. Puedo duplicar esta porque voy a crear esa forma de cruz que tuve en el último video. Y me está incitando a que nos dé un nombre. Voy a llamar a este cubo vertical. Y éste voy a mantener verdaderamente vertical porque el último, aunque lo llame horizontal, está de pie verticalmente con el cubo horizontal seleccionado. Voy a elegir el modo de rotación aquí arriba. También puedes presionar la barra espaciadora. Y simplemente voy a rotar esto hacia abajo para que sea 90 grados, así. Bien, agreguemos otro componente. ¿Deberíamos? ¿ Qué tal si le agregamos algo de fuego a esto? Claro, vamos a agregar un efecto de partícula. Voy a desacoplar esta ficha aquí mismo. Y lo voy a desacoplar, colocarlo en algún lugar por aquí. Y la razón por la que estoy haciendo eso está abajo en mi navegador de contenido, voy a entrar en mi contenido de inicio. Voy a entrar en mi carpeta de partículas. Aquí veo una partícula P fuego. Ahora bien, este es un sistema de partículas más antiguo. En algunos años futuros probablemente se van a deshacer de estos. El sistema de partículas más nuevo se conoce como Niagara up. Para que no tengas que usar estos efectos de partículas más antiguos. Puedes usar un efecto de partículas Niágara más nuevo cuando ellos, estoy seguro de que los tendremos disponibles en una carpeta de contenido de inicio. Pero lo que quería demostrar aquí es que puedo hacer clic con el botón izquierdo aquí mismo en el Navegador de contenido, arrastrar esto hasta mi panel de componentes así. Y ves esa caja que rodea mi taco horizontal, sólo voy a arrastrarla justo encima de ella. Y puedo ver que lo he agregado a mi plano. Ahora algo más que quería señalar ahí es que a medida que agregamos esto a nuestro blueprint dentro de nuestro panel de componentes, agregó esto a la instancia de este blueprint que está en nuestro nivel. Entonces como puedes ver mientras modificamos las cosas aquí dentro de nuestro blueprint, va a modificar y actualizar cualquier instancia, cualquier copia de este blueprint que hayamos colocado en nuestro nivel, que es lo que hace que los planos sean tan increíbles. Algo más que quería señalar aquí es, es una especie de relación que está sucediendo. Se puede ver que las cosas están sangradas arrastrando mi P fuego encima de mi cubo horizontal. En realidad lo hizo para que quede unido a este cubo horizontal. Entonces, si tuviera que seleccionar mi cubo horizontal aquí mismo, permítanme volver al tamaño completo de esto. Tengo mis componentes de cubo horizontal seleccionados aquí. Si muevo esto, viene el fuego para el paseo. Sólo voy a hacer Control Z para respaldar eso. No obstante, si tuviera que seleccionar el fuego en sí y moverlo, nada más está unido al fuego. El fuego se adjuntó al cubo horizontal. Entonces voy a hacer Control Z para deshacer eso. Si no me gustó que estuviera adherida a ella, simplemente puedo arrastrar y soltar esta bolsa encima. Y ahora se está mostrando como no estar apegado esencialmente cuando algo se sangra así, demuestra que una cosa está apegada a otra. Entonces en este momento mis dos componentes de malla de cubo, están unidos a mi componente de colisión de esfera. Ahora solo porque quiero presumir más de este tipo de cosas que están apegadas. Voy a arrastrar esto justo de nuevo encima de mi cubo horizontal. No hay razón para que yo haga eso aparte de solo porque voy a desacoplar esto otra vez, lugares así como así. ¿ Qué más quiero agregar aquí? Quiero agregar algunos, agreguemos algo de humo, vistosos. Así que voy a tomar un humo justo aquí arriba. En realidad déjeme hacer esto. Voy a poner esta parte superior de respaldo, voy a volver a mi nivel de prueba. Aquí hay otra forma en que puedes agregar este componente, agarrando mi humo, dando click izquierdo, arrastrándolo hasta mi pestaña. Ahora esa pestaña se abre automáticamente, y ahora voy a arrastrar y soltar esto encima del fuego. Entonces ahí, acabo de agregar otro efecto de partícula. Ahora de nuevo, el humo se une al fuego, que a su vez se une al cubo horizontal. Entonces, si iba a mover el cubo componente horizontal, el fuego y el humo viene con él. Control Z para respaldar esto. Y como puedes ver atrás en mi editor de niveles aquí, está fumando con esta instancia del plano. Bastante genial. Bien, quiero agregar, agreguemos algo más aquí. Quiero agregar volviendo al interior de mi ejemplo de blueprint pickup, agreguemos algo de movimiento rotacional para mostrarle. Entonces hago clic debajo del agregar componentes en un área de componentes de búsqueda, puedo buscar uno llamado movimientos giratorios. Entonces sí, puedes buscar componentes. Sabía que éste existía, así que supe al buscarlo, lo reduciría. Ahora al seleccionar esto, lo va a acoplar un poco aquí abajo. Esto es una especie de componente especial en el que no está apegado a nada. No se puede conectar un componente de movimiento giratorio a ningún otro componente. Esto afecta esencialmente a todos los demás componentes aquí en nuestro plano. Ahora con esto seleccionado en el panel Detalles, puede ajustar su velocidad de rotación. Ahora actualmente va a rotar a lo largo del eje z. Tienes los ejes x, y y z es que puedes girarlo a una velocidad determinada. Ahora no vemos nada girando ahora mismo. Sin embargo, si estuviera suprimido como botón de Simulación en la parte superior del editor, lo verías girar. Ahora está simulando encendido, voy a darle clic de nuevo para detenerlo. Podría cambiar esto a, digamos 2 mil. Y luego haz clic en Simular para verlo girando mucho más rápido. Va a establecer eso de nuevo a su valor predeterminado haciendo clic en este pequeño botón de retroceso. Bien, genial. Entonces, si tuviera que entrar a mi nivel aquí y fuera a jugar, bueno, si tuviera que jugar, no estaría corriendo por ahí. No vería esto realmente girando porque no tengo un lugar actor o un actor colocado en mi nivel en el que engendrar. Entonces, entrando bajo mi botón Agregar justo aquí arriba en la parte superior del editor, voy a venir bajo actores básicos. Y quiero agregar un actor de inicio de jugador a mi nivel. Simplemente puedo hacer clic izquierdo y arrastrar y soltar. Y con este actor hace, es que define un lugar en mi mundo donde voy a desovar en esta flecha azul apuntando a la dirección que mi personaje va a estar enfrentando. Entonces ahora si tuviera que hacer clic en play, estaría jugando. Y puedo ver que todo dando vueltas. Sí, todo gira, incluyendo el fuego y el humo porque está todo apegado. Sé que no se ve genial, solo presumiendo diferentes conceptos. Bien, agreguemos un componente más a nuestro plano. Y éste también se va a hacer de una manera única. Quiero encontrar una pieza de audio dada demasiado adjunta a este plano. Entonces lo que voy a hacer aquí es seleccionar nuestro plano aquí en el propio editor de niveles. Y mira por encima en el panel Detalles. Voy a pelar esto aquí mismo. Puedo ver todos los diferentes componentes que se han agregado a este plano. Y a partir de aquí, puedo añadir un componente. Entonces intentemos agregarlo desde aquí en contraposición a en nuestro propio editor de planos. Entonces voy a hacer clic en Agregar, y quiero agregar un componente de audio. Y al hacerlo, lo agrega aquí. Sin embargo, si tuviera que saltar a mi pastilla de ejemplo BP que había creado aquí en mi carpeta de scripting. Vamos a saltar ahí ahora mismo. Aún no veo ese componente en ninguna parte de aquí. Entonces, ¿cómo me aseguro de que ese cambio aquí a esta instancia del plano se propague a mi plano base? Bueno, si hago clic aquí mismo en este botón, edita el plano para este actor, déjame dar click ahí mismo. Lo que puedo hacer es elegir esta opción aquí mismo, aplicar cambios de instancia al Blueprint. Entonces, al hacer esto, recibo una pequeña notificación ahí mismo. Y luego si vuelvo a mi pickup de ejemplo de blueprint, ahora puedo ver que ese componente de audio también se ha agregado. Ahora una vez más, hay muchos tipos de componentes que se pueden agregar a un blueprints. Hay muchos de estos que nunca he usado, pero hay algunos que se usan muy comúnmente. Y una cosa que quiero cruzar temprano aquí es trabajar con irreal. Hay tanto que saber, pero no es necesario que lo sepas todo conociendo algunos de los conceptos clave que puedes llegar muy, muy lejos. Así que no se deje intimidar temprano aquí. Los tipos comunes de componentes incluyen mallas estáticas. Tienes algunas luces que se pueden agregar. Donde mis luces, Ahí están mis luces. Tienes tus formas de colisión. Y entonces tienes algunos de esos movimientos. Una vez que resuelves el movimiento giratorio, hay uno llamado movimientos interpretativos. Eso también se usa bastante comúnmente. Bien, un par de cosas más que quería señalar en este video antes de terminar esto, una tiene que ver con esta relación apego que tenemos entrando dentro del panel Componentes. Una cosa a tener en cuenta es que con unos componentes determinados seleccionados que se adjuntan a otra cosa, la ubicación listada en el panel Detalles es relativa a lo que está unido. Entonces ahora mismo tengo mis componentes horizontales de cubo seleccionados. Y eso está unido a mi componente de colisión de esfera. Si tuviera que establecer la ubicación z en 100, eso la va a mover hacia arriba 100 unidades irreales. Cada unidad irreal representa un centímetro, 100 unidades irreales por encima del punto central de mi componente de colisión. Entonces solo debes saber que todos estos ajustes de ubicación son relativos a lo que sea a lo que esté unido. Voy a poner esto atrás. También quería señalar que se puede cambiar la raíz. Observe que cuando creamos este blueprint por defecto, tenía esta ruta predeterminada vista en este editor aquí. Ese era ese ícono que existía ahí antes. Todo lo demás está apegado y su ubicación es relativa a esa ruta. Se puede cambiar el componente raíz simplemente seleccionando, en este caso, voy a seleccionar colisión de esfera severa, no colisión severa. Voy a arrastrarlo y soltarlo encima aquí. Y es dejarme saber si dejo caer esto aquí, voy a hacer de esto las nuevas raíces y que se eliminará la ruta por defecto. Dulces, esa es ahora la nueva raíz. Todo lo demás se posiciona relativo a mi colisión de esfera. Lo último que quería señalar aquí, y lo que hace que los planos sean tan increíbles es que al tener un actor de planos creado aquí, si hago un cambio dentro de este plano, cambiará cada copia esaes cada instancia de esto colocada en el mundo y solo demuéstralo muy rápidamente aquí. ¿ Puedes volver a mi nivel de prueba aquí dentro de mi carpeta de scripting? Sólo voy a colocar algunos de estos a lo largo del nivel. Por cierto, no tienes que seguir arrastrando y soltando. Puede mantener presionada la tecla Alt y hacer clic con el botón izquierdo para seguir arrastrando copias de estas. Bien, así que tengo cinco de ellos. Ahora solo digamos, creo, ya sabes qué, eso está girando, el fuego y el humo se ven un poco tontos. Puedo volver a mi pickup de ejemplo aquí. Puedo seleccionar mi humo. Puedo decir borrar. Yo solo voy a hacer Control Z ahí y decir, ¿ sabes qué? Quiero deshacerme del fuego y del humo. Entonces voy a seleccionar mi fuego y presionar Eliminar. Eso va a eliminar. Entonces voy a eliminar el humo. Y ahora si vuelvo a saltar a mi nivel, eso se ha ido por cada copia de estos, quiero deshacerme de esos, sí, de hecho. Entonces voy a volver a mi pickup de ejemplo de plano. Vamos a guardar esto. Y eso va a ser todo lo que queríamos lograr en esta. El tipo del panel Componentes es una parte muy importante para conocer sobre planos. Lo va a hacer todo por este video, te veremos en el siguiente. 7. Pestaña de Viewport: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es entender cuál es la pestaña viewport dentro de un blueprint. Ahora esta es nuestra ventana hacia cómo va a verse nuestro plano de clase de actor. A través de esta pestaña, podemos afinar la colocación de dichos componentes en relación unos con otros. Ahora la pestaña de la ventana gráfica se puede encontrar justo aquí arriba. Tenemos tres pestañas diferentes, una pestaña de ventana gráfica, la ficha Escritura de construcción, y luego pestaña Gráfico de eventos. Cada uno de estos va a avalar su propio video. Así que no te preocupes, vamos a llegar a esos otros. Empecemos hablando de las diferentes opciones de viewport. Es decir, lo que se encuentra debajo este pequeño ícono de hamburguesa en la muy alta izquierda. Entonces si hago click en esto, me presentan cuatro opciones diferentes de las cuales tengo dos de ellas puestas. Por defecto, esta opción en tiempo real y esta opción Mostrar cuadrícula. Llegaremos a todos esos en un poquito. Así que restablezcamos la cámara uno. Si tuviera que hacer click en esto en este momento, realmente no parece hacer tanto. Sólo un poco salta mi cámara de nuevo para mostrar todo en mi plano. Aquí mismo, de frente y centro en mi mirador. Ahora, donde esto realmente es útil es a veces tienes muchos componentes diferentes aquí dentro de tus puertos de vista. O a veces por la razón que sea que haya volado lejos, muy lejos, como lo estoy haciendo en este momento. Y tú eres como, ¿ Dónde están todas mis cosas? ¿ Dónde están mis componentes? Si simplemente vienes bajo este ícono de hamburguesa, haz clic en Restablecer cámara. Te saltará de vuelta a donde quieras estar y suspirarás. Suspío de alivio. A continuación vamos a hablar de la opción en tiempo real. Se comprueba por defecto, pero no tenemos nada animando aquí, así que es difícil ver realmente qué hace esto. Voy a saltar a otro plano para presumir lo que hace aquí. Por lo que voy a saltar de nuevo a mi mapa de pruebas de nivel dentro de mi navegador de contenido o cajón de contenido. Voy a venir a mi carpeta Blueprints en tercera persona. Ahí está mi B P ThirdPersonCharacter que es un personaje al que estamos jugando actualmente como cuando pulsamos este botón Play, voy a hacer doble clic aquí para abrir este blueprint. Y de nuevo, si hago clic en la pestaña viewport, puedo ver todos los diferentes componentes que conforman nuestro ThirdPersonCharacter, incluyendo una cámara, y esa es la cámara que estamos mirando cuando están jugando nuestro juego. Ahora si acercas ligeramente a este personaje y yo sólo estoy haciendo rueda de ratón aquí puedes ver a nuestro personaje animando un poco. Están tocando una animación ociosa. Bueno, si por alguna razón quiero que el personaje simplemente se mantenga quieto, puedo hacer clic en esta opción. Apaga en tiempo real. Tiene una tecla de conexión rápida asociada a ella también. Entonces si hago Control y nuestro eso va a encender y apagar eso. Bastante genial. Muy bien, saltar de nuevo a mi ejemplo de BP, camioneta, venir bajo mi ícono de hamburguesa quiere más. Tengo la opción de show floor. Ahora esto está apagado por defecto, pero no está mostrando piso aquí, lo cual es bastante extraño. Voy a apagar esto. Déjame volver a mi tercer personaje personaje y show floor. Ahí vamos. Ahí está nuestro show para la opción. No uso esto con demasiada frecuencia, pero de vez en cuando, sí tienes un montón de componentes y dices que estamos construyendo un auto o algo así. Esto puede darte un mejor sentido de escala y justo cómo se presentan las cosas en relación entre sí, a diferencia de solo un personaje o un plano de clase de actor que está flotando en el espacio. Saltando de nuevo a mi ejemplo de recogida de BP una vez más, debajo de las diferentes opciones, tenemos la rejilla del show. Ahora está encendido por defecto y se puede ver que está aquí abajo. Puedo apagar eso. Y por qué eso es útil para mostrar o no mostrar. Voy a manifestarme aquí en un poco. Voy a mostrar mi grilla y ahora voy a conducir a la discusión de nuestros diferentes puntos de vista aquí, saltando uno por encima. Actualmente esta es la ventana gráfica de perspectiva. Esta es una especie de tu hermosa vista. No obstante, si tuviera que hacer click en esto, tengo diferentes vistas ortográficas que puedo saltar nuestra ventana gráfica, como una vista superior. Esta es una especie de vista de pájaro de las cosas. Tengo una vista izquierda mirándola desde un ángulo izquierdo y puedes entrar y salir de la rueda del ratón. Una vista frontal. Estamos viendo la cruz, no en el lado transversal, sino más el lado, lateral. Y cada uno de estos tiene una tecla de conexión rápida asociada a ella. Ahora donde realmente entra en juego la grilla aquí está se pueden ver estas diferentes marcas de rejilla. Entonces tal vez te estés preguntando, bueno, ¿qué tamaño representa cada una de estas cuadrículas? Bueno, ahí es donde nos dirigimos a la discusión de nuestros diferentes tamaños de grilla aquí arriba. Entonces si tuviera que hacer click aquí donde está este número cinco, puedo mostrar diferentes tamaños de snaps, 1510, etcétera. Actualmente está establecido en cinco, lo que significa que cada una de estas pequeñas plazas representa un área de unidad irreal de cinco por cinco. Ahora esto es súper práctico y solo voy a saltar para ir a la vista superior. Si quieres mover componentes alrededor y quieres que salten ciertos incrementos. Así que tengo este movimiento de chasquido Snapping actualmente puesto en. Eso es lo que este azul lo representa por aquí voy a establecer mi configuración de snap a 100. Ahora nota que una vez que hago esto, el tamaño de la cuadrícula se cambia para que coincida. Entonces esto es ahora 100 por 100 como un tamaño de cuadrícula en contraposición a lo que era antes, que era de cinco por cinco. Entonces voy a cambiar esto de nuevo a 100. Ahora solo digamos que quiero que mueva mi cubo de malla horizontal por aquí, más de 100 unidades por clic izquierdo y arrastrándolo, simplemente salto por encima de 100 unidades. Ahora se puede ver si muevo esto por ahí en la vista superior, lo está saltando por incrementos de 100. Y se puede ver eso reflejado aquí en los entornos locacionales. Nuevamente, estos ajustes de localización son relativos a la raíz. Ahora, si quisiera moverlo de una manera más suave, podría apagar los ajustes de snap cuando no es azul así. Eso significa que puedo moverlo con bastante suavidad. Pero a veces sí quieres moverlo en incrementos muy discretos. Y ahí es donde eso realmente viene muy bien. Voy a establecer mi ubicación aquí de vuelta a 0. Y volveré a encender mi configuración de snap y la volveré a cinco mientras estamos aquí y hablando de todo esto. Este es probablemente un buen momento para hablar nuestros diferentes ajustes aquí en nuestra ventana gráfica. Actualmente, estoy en el modo de traducción de objetos. Puedo hacer clic aquí para cambiar esto en modo de rotación. Al igual que así. Ya puedes ver ahora mismo, déjame saltar aquí de nuevo a la vista en perspectiva. Se puede ver como estoy girando esto, lo está moviendo en incrementos de diez. Y se está moviendo en incrementos de diez porque tengo mis ajustes de chasquido rotacional encendido, lo que significa que va a moverlo en incrementos de diez. Y si tuviera que hacer clic aquí mismo, podría cambiar qué incrementos. Se va a rotar por. Me gustan los diez grados, pero hay casos para estos otros. También tengo modo de escala en el que puedo convertir esto. Para que pueda ir a mi opción de escala. Y ahora si simplemente fuera a agarrar uno de estos mangos, agarraré ese mango azul justo ahí, que representa el eje z, el relativo eje z. En este caso, se puede ver cómo estoy ajustando la escala de esto. Voy a volver a poner esto a lo que lo tenía antes, que fue 0 puntos. Creo que lo tuve en los puntos 8.8 de hecho es en lo que lo tenía. Entonces W, E, y R, como se puede ver en esas herramientas, esos pueden saltar a los diferentes modos allí, que es el modo de movimiento, el modo rotación y el modo de escala. hacer clic en estos botones también lo hará, pero w ENR puede saltar a esos diferentes modos de movimiento, rotación y escala. No obstante, la barra espaciadora también cambiará entre los tres. A continuación, hablemos de nuestros diferentes modos de iluminación. Actualmente por defecto, esto está en modo Lit, pero si hago clic en esto, puedo cambiar esto a modo desiluminado. Nuevamente, todos estos tienen teclas de acceso rápido asociadas a ellas. O modo wireframe. No demasiadas veces uso wireframe o modo desiluminado, pero están ahí en caso de que sí los necesite. ¿ Qué pasa si accidentalmente cierras esta pestaña? Sucede con bastante frecuencia, más a menudo de lo que piensas en realidad. Y luego los estudiantes se preguntan, ¿A dónde fue, cómo lo recupero? Entonces voy a hacer eso ahora mismo cerrándolo. Bueno, la forma de recuperarlo es simplemente venir debajo de esta opción de ventana. Y luego abajo puedes hacer clic a su vez tu ventana gráfica de nuevo. Aquí hay otras opciones de view-port a las que puedes acceder haciendo clic derecho sobre él. Puedes acoplarlo a una barra lateral. Lo que eso hace es que lo va a saltar por aquí. Y así si tuviera que hacer click sobre él, ampliaría esta abierta. Si lo engancho, eso significa que no puedo bajarme de él. Entonces si lo desanclo, puedo hacer clic con el botón derecho y lo moverá de nuevo a la barra lateral. Si vuelvo a hacer clic con el botón derecho, puedo desacoplarlo. Por lo que también puedo cerrarlo desde aquí, que hice antes de cerrarlo es lo mismo que hacer clic en esta x. puedo cerrar la pestaña a la derecha de este significado de ese guión de construcción o el gráfico de eventos. Si me deshago de esos tipos, oh, se han ido. Ésos no se encuentran debajo de la opción de ventana aquí. Entonces para que esos chicos regresen al panel My Blueprint, puedes hacer doble clic en el Gráfico de eventos para traer de vuelta a ese tipo. También puedes hacer doble clic en el guión de construcción para traer esa pestaña en particular. A continuación, hablemos de moverse por la ventana gráfica. Si tuviera que mantener presionado el botón izquierdo del ratón y simplemente mover mi ratón alrededor. Esto. Conducir en la ventana gráfica. Por cierto, estos son el mismo control de nuevo en tu editor de niveles. Si estuvieras en la ventana del editor de niveles, botón izquierdo del ratón y moviendo el ratón alrededor de las unidades. botón derecho del ratón simplemente mira por aquí en tu editor de niveles, así como en el interior de tu ventana gráfica para tu botón central del mouse plano. Y mover el ratón alrededor simplemente lo mantendrá en el mismo plano 2D y lo moverá alrededor. Botón central del ratón más, o debería decir un botón central del ratón o ratón izquierdo y derecho, botones derecho del ratón juntos. Volveremos a hacer lo mismo de nuevo en el editor de niveles, botón central del ratón, moviéndolo alrededor, botones izquierdo y derecho del ratón juntos. Moverlo alrededor, hace lo mismo. Y luego por último pero no menos importante, es mi forma favorita de navegar por la ventana gráfica, manteniendo pulsado el botón derecho del ratón, y luego usando W, a, S y D para volar alrededor. Ahora la velocidad a la que vuelas alrededor, déjame saltar de nuevo a mi pestaña de viewport de mi blueprint que está determinado por este tipo de aquí arriba. Sus cámaras deslizadores de velocidad. Si hace clic en esto, puede configurar esto hacia arriba o hacia abajo. Así que ahora voy a volar súper rápido. O si lo envío más bajo, estoy volando por ahí súper lento. Ahora una cosa a tener en cuenta aquí, el valor predeterminado es que si vas a volar alrededor y estás usando la rueda del ratón dentro y hacia fuera, desplazándote hacia arriba o hacia abajo, realmente puedes modificar qué tan rápido estás volando alrededor. Entonces ese es un buen truco práctico para conocer también. Quieres que las cosas tengan en cuenta antes de cerrar este video, los componentes raíz. En este caso, tengo la esfera podría tener colisiones establecidas como mi raíz dos componentes. No puedo mover los componentes raíz. Ya puedes ver que realmente no puedo ir seleccionándolo aquí en mi editor fuera de simplemente seleccionarlo en el panel Componentes, puedes seleccionarlo, pero como puedes ver, no puedo cambiarlo por modo de traducción o modo de rotación o modo de escala. Me mantiene solo en el modo select object, que es la tecla de acceso rápido Q. Y se puede ver más en el panel Detalles a, sólo puedo escalar esto. No tengo la opción de moverlo o rotarlo. Además, quería recordarles a todos el aspecto relacional del panel Componentes y cómo eso afecta mover las cosas alrededor de su ventana gráfica. Si recuerdas el último video, añadí este componente de audio el cual está enterrado dentro de mi cruz aquí. Déjame mover un poco a este tipo porque realmente no importa dónde lo coloque, solo ese ícono de aquí mismo. Voy a añadir esto a mi componente vertical cubo. Así que de nuevo, si tuviera que mover mi componente de audio por sí solo, se moverá de forma independiente. Pero en este momento está unido a mi Q vertical. Se supone que debe mover a ese tipo por ahí. El componente de audio va a venir para el paseo. Entonces esta relación es bastante poderosa. Usa eso y recuerda estos ajustes locacionales, estos son relativos a lo que está unido. Si no te gusta esta relación adjunta, solo puedes ir así, arrastra por la parte superior otra vez y no sangrará mostrando que ya no está apegada a ella. El último pero no menos importante, no te olvides de tus ajustes de snap aquí arriba en la ventana gráfica cuando estás moviendo algo alrededor, rotando algo alrededor o escalando algo. Y por favor, por favor, por favor, no olvide que puede modificar su configuración de ajuste de escala, sus ajustes de ajuste de rotación, y sus ajustes de ajuste de movimientos que pueden ahorrarle mucho tiempo también. Muy bien chicos, esa es la pestaña viewport. En pocas palabras, ojalá, muchos de esos consejos y trucos te ahorren mucho tiempo. Eso va a hacer para ofrecer este. Te veremos en el siguiente video. 8. Panel de detalles: Bienvenido de vuelta a todos en este video o metas para aprender todo sobre el panel de detalles dentro de un blueprint. Ahora, los planos están compuestos de todo tipo de cosas. Tenemos componentes. Tenemos variables de las que aún no hemos hablado, sino que lo haremos, e incluso información sobre el propio plano. Ahora todos estos datos, toda esta información es establecida por usted dentro del panel de detalles. Ahora, por defecto, el panel Detalles se encuentra a la derecha aquí dentro de su editor de Blueprint. Al igual que cualquier otra ventana gráfica, simplemente puede arrancarla, hacer clic con el botón izquierdo, arrástrela a alguna otra parte de la ventana de su editor aquí. algunas personas les gusta ponerlo justo debajo su panel de componentes porque hay seleccionando varios componentes y luego les gusta cambiar los detalles justo abajo. Sin embargo pierna llego justo donde está. Entonces voy a atracar ahí atrás. Walla. Por qué no cambiamos algunos detalles diferentes sobre algunos de nuestros componentes. Y en este momento estoy mirando son dos componentes diferentes de malla estática o cubo un horizontal y cubo vertical. Ahora mismo tenemos este tipo de cruz blanca para una recolección de salud. Creo que sería más agradable si lo cambiáramos a verde. Entonces voy a elegir mi cubo, horizontal aquí, y más en el panel Detalles, puedo cambiar el material que se le aplica. momento tengo este material básico de forma. Puedo hacer clic izquierdo sobre esto y puedo elegir uno de estos diferentes tipos de materiales. Me gustó este activo básico, O3, eso es bastante genial. Ahora, si no estás viendo esto, o tal vez quieras acceder a más materiales. Si hace clic en este ícono de engranaje pequeño aquí mismo, puede encender y mostrar el contenido del motor. Y así es como estoy viendo más materiales de los que eres a primera vista aquí. Entonces si también tienes algún contenido plug-in, así es como puedes encender eso también. Por lo que mostrar contenido del motor revisará más materiales para usted. Voy a usar este activo básico O3 para cambiar su verde. Y voy a hacer lo mismo por mi cubo vertical con el seleccionado, cambiando el material aquí haciendo clic en este desplegable y lo cambiamos a verde. Eso está todo bien y bueno. Ahora también, tal vez quiero que mi colisión de esfera aquí rodeando mi cruz verde aquí sea un poco más grande, un poco más de una generosa zona de recogida, si se quiere, justo aquí con una esfera porque los componentes de colisión seleccionados en el panel Detalles, puedo cambiar mi radio de esfera haciendo clic en él y perforando un nuevo número como 100 y haciendo clic en Entrar. O en estos campos numéricos, simplemente puede hacer clic izquierdo y arrastrar. Veamos, haciendo clic con y haciendo clic de nuevo en él. Y luego puedes moverlo a izquierda y derecha para ajustarlo de esa manera también. Voy a ir con el número 100 por ahora. Eso parece bastante generoso. Ahora una vez más, si por error cierras este panel Detalles haciendo clic en que hay x, puedes venir debajo de la opción de ventana y volver a encenderla. Ahora hay diferentes opciones de visualización que debes tener en cuenta. Por encima en el panel Detalles, tienes este ícono de engranaje. Si hago clic en esto, hay un montón de opciones diferentes disponibles para ti. Sólo voy a estar hablando de algunos de los más utilizados. Uno de ellos siendo derrumbado y expandiendo todas las categorías. Por lo que en este momento voy a derrumbarme todas las categorías. Entonces sí, ahora si quieres meterte en ellos, tienes que hacer click en ellos uno por uno. Eso puede ser útil si solo hay unas cuantas categorías diferentes con las que quieres jugar. Voy a seguir en esto de nuevo, y voy a ampliar todas las categorías. Otra que me gusta mucho es mostrar solo propiedades modificadas o mostrar solo propiedades modificadas. Así que al hacer clic en esto, es una manera realmente fácil de ver de un vistazo cuáles son las cosas que realmente has cambiado sobre este componente en particular? Voy a dar vuelta a ese retroceso. Entonces mostrar todas las propiedades avanzadas. Ahora, ¿qué son las Propiedades Avanzadas bajo cada una de estas categorías dadas? No debería decir cada uno sino muchos de ellos hay propiedades avanzadas que por defecto no se expanden. Entonces por ejemplo, tengo mi forma y puedo cambiar el color de mi forma si quieres. Déjame simplemente hacer clic fuera de esto. Por defecto, es rojo. Pero si tuviera que hacer clic de nuevo en mi colisión de esfera bajo la categoría avanzada, podría cambiar esto a rosa caliente si realmente quisiera. Claro, por qué. Nueces. Ahora también hay esta pequeña, no sé cómo se llama eso. Un poco de un bloc de notas tipo de icono. Esto abrirá una selección en matriz de propiedades. Qué es esto ahora esta es una opción que no uso con demasiada frecuencia. No obstante, si iba a hacer click en esto, va a traer abrir aquí una nueva pestaña. Esta es otra forma de ir sobre el cambio de diferentes propiedades. Nuevamente, aquí todo se derrumba, pero si hay algo que quisieras cambiar al respecto, simplemente podrías anclarlo. Voy a anclar esta opción ahora mismo. Genera eventos de superposición. Se puede ver que esto se comprueba si iba a desmarcarlo aquí y luego volver a mi b p ejemplo pickup bajo colisión de esfera. Bajo las propiedades de colisión genera eventos de superposición ya no se comprueba. Voy a cambiar eso de vuelta a donde lo tenía y voy a cerrar fuera de aquí. Sólo quería mostrar lo que es eso. No uso eso con demasiada frecuencia. Es posible que encuentres algún buen uso para ello. Y entonces se puede ver aquí con vacío I colisión esfera, puedo ver que generar evento de superposición se ha revisado de nuevo en. Ahora a lo largo de la parte superior de nuestra barra de herramientas, tenemos esta opción predeterminada de clase que quería hacerte consciente. Voy a hacer click en esto y cuando lo haga, voy a traer todo un conjunto de detalles diferentes sobre este plan de clase de actor que son específicos de este plan de clase de actor. Ahora no hay mucho que necesites cambiar aquí, aunque te haré consciente de uno que es un poco divertido para jugar. Y eso es con la clase predeterminada seleccionada vida inicial se establece actualmente en 0, lo que significa infinito. Pero si tuviera que poner esto a algo así como tres, eso significa que este tipo se va a ir después de tres segundos. Y puedo probar esto simplemente haciendo clic aquí en el botón de reproducción. Y eso va a saltar a mi editor de niveles aquí jugando en después de tres segundos. Pasan todos, por una especie de diversión si yo mismo lo digo. Así que voy a cambiar esta clase por defecto mi vida útil inicial de nuevo a 0. Así que de nuevo, estos impactan ciertas cosas sobre esta clase particular de anteproyecto, la clase impagos. A continuación, solo quería hacerte consciente del botón de aquí, esta opción de configuración de clase. Más tarde en el curso, vamos a estar lidiando con algo llamado Interfaz de Blueprint. Y eso se va a poner todo en esta área. Nada más quiero cambiar aquí. De hecho, no se ocupa demasiado de la configuración de clase fuera de implementar cosas llamadas Interfaz de Blueprint. Pero solo quería sacar eso ahora. Entonces más tarde por el curso, serás como, sé exactamente a dónde ir y qué es eso. Muy bien chicos, ese es el panel Detalles. Conózalo, me encanta, hazlo bien. Eso lo hará todo por este video. Nos vemos en la siguiente. 9. Mi panel de diseño: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es conocer cuál es el propósito del panel Mi Blueprint dentro de un blueprint Unreal Engine. Ahora se trata de un área de un blueprint donde se pueden crear cosas como variables, como funciones o macros para ayudar a dar forma a lo que un blueprint dado puede hacer. Ahora si no estás familiarizado con términos como variables, funciones o macros, no te preocupes. Vamos a estar rompiendo los abajo mucho más adelante en el curso. Por ahora, es bueno archivar el conocimiento de que el panel de mis planos aquí es donde se pueden crear tales cosas. Entonces como ves aquí en mi ejemplo de BP, recoge el panel de blueprints, por defecto se encuentra en la esquina inferior izquierda de la interfaz, igual que cualquier otra pestaña aquí, puedes hacer clic izquierdo en esto y puedes arrastrarlo a donde quieras. Me gusta donde está por defecto. Entonces voy a dejarlo ahí mismo. Al igual que otras pestañas aquí, puedes hacer clic derecho sobre él. Puedes cerrarlo. Puedes traerlo de vuelta a través de la opción de ventana aquí, marca de verificación muestra que está en nuestro blueprint aquí. Ninguna marca de verificación significa que no está presente. Entonces voy a traer eso de vuelta. Haga clic derecho en opciones aquí. Podría esconder la pestaña. Eso sólo un poco de barrera que pestaña te da un poco más de bienes raíces de pantalla que extrañamente viene en práctica de vez en cuando. Al hacer clic izquierdo sobre él traerá esa pestaña de vuelta. Haga clic derecho. Puedo atracar a la barra lateral como pude antes. Haga clic derecho en la oscuridad también. Me has visto hacer eso varias veces. Muy bien, otra opción que quiero señalar aquí en los paneles Mi Blueprint, este ícono de engranaje. Ahora si hago click en esto, me muestra diversas opciones mostrando secciones vacías que tengo aquí. Lo que esto hace es que mostrará cualquier sección vacía, cualquier categoría vacía. Ahora mismo, no tengo macros en mi plano aquí. Si no sabes qué es eso, nuevo, no te preocupes por ello, pero solo sé que si fuera a apagar esto, ni siquiera vería esa categoría. Entonces al mostrar esto y me gusta que se muestre por defecto, veré todas las diferentes secciones vacías que podamos tener bajo la categoría blueprints. Otro importante para señalar aquí bajo este ícono de engranaje es este show variables heredadas. Ahora esto va a mostrar variables heredadas de las clases de padres. Ahora, en nuestro caso, nuestra clase de padres aquí es un plano de clase de actor. Entonces voy a mostrar esto rápidamente. Y cuando lo haga, vas a ver que algunas categorías aparecen justo aquí abajo. Entonces aquí vamos. Vamos a mostrar variables heredadas. Y voy a profundizar aquí en mi categoría de actor. ¿ Y qué sabes? Veo una variable llamada vida útil inicial. Bueno, eso parece bastante familiar. Entonces, ¿cuáles son todas estas variables en estas diversas categorías? Bueno, si recuerdas del último video, cuando hicimos clic en el botón de valores predeterminados de nuestra clase, tenemos muchos parámetros diferentes, muchas propiedades diferentes que son específicas de esta clase de actor blueprint. Y uno de estos ubicados bajo la categoría de blueprint de clase actor fue la vida útil inicial. Lo y he aquí, a eso se puede acceder aquí, el panel de mis planos también. Mostramos variables heredadas. Entonces esta es otra forma de que todas estas variables predeterminadas de clase aparezcan, no solo cuando haces clic en los valores predeterminados de clase, sino por aquí en el panel Mi Blueprint. Y solo quiero señalar aquí que si iba a hacer click en la variable de vida útil inicial y pasar al panel Detalles. Puedo cambiar mi vida útil inicial a S3. Ahora si iba a entrar en los impagos de clase y encontrar la vida inicial de la categoría actor. También lo ha puesto a tres aquí. Entonces estás cambiando la misma propiedad, solo dos formas diferentes de hacerlo. Voy a restablecer esto de nuevo a donde lo tenía. Y tenga en cuenta ahora que mientras lo cambié aquí en la sección predeterminada de clase, si tuviera que hacer clic en mi propiedad de vida útil inicial, también la cambia de nuevo aquí. Muy bien, vamos a esconderlos de nuevo para que podamos limpiar un poco nuestro panel Mi Blueprint aquí. Así mostrar variables heredadas. No. Hablemos de cómo crear nuevas variables, funciones o macros. También podemos crear nuevos gráficos y despachadores de eventos, pero esos tendrán sus propias secciones más adelante en el curso. Si hacemos clic en este botón Agregar, dice que desea crear una variable, una función, una macro, un gráfico y Despachador de eventos. Puedes hacerlo de esa manera o con cada una de estas diferentes categorías aquí tienes este pequeño botón más para crear un nuevo gráfico, una nueva función, una nueva macro, o una nueva variable, o un Despachador de Eventos. Vamos a seguir adelante y crear una variable aquí. A pesar de que no se trata de eso este video, las variables tendrán sus propias un par de secciones aquí. Vamos a crear uno solo para darte una idea de lo que hace toda mi área de blueprint, voy a crear una nueva variable haciendo clic en este botón plus. Voy a darle un nombre a esto y lo llamaré hipo. Suena así. Ahora a continuación necesito decidir qué tipo de azul o qué tipo de variable quiero que sea esta. Por defecto, generalmente muestra booleano cuando estás creando una variable por primera vez. O establecerá el tipo de variable predeterminado para que sea lo que haya creado por última vez. Ahora antes de crear este video, hice una carrera en seco y por lo que actualmente está configurado al tipo de variable que estoy buscando. Entonces, ¿cómo cambias esto? Podemos dar click aquí para cambiarlo. O con su variable seleccionada en el panel Detalles, puedes cambiarla aquí también. Entonces bajo tipo de variable, haga clic en este menú desplegable y haga una búsqueda de base de sonido. En el pequeño menú fly-out aquí quieres elegir la referencia del objeto. Ahora al hacer esto, te pedirá que compile tu anteproyecto. Nuevamente, está mostrando mi valor predeterminado aquí porque ya hice una carrera en seco antes del video. Pero si compila aquí, entonces te permitirá ranurar en un sonido de tu elección, haciendo clic en este desplegable. Me gusta el sonido de interacción. Entonces si haces una búsqueda de enter, play, y el ratón sobre ese archivo de onda de sonido en particular, se muestra en ese pequeño pop up que aparece que esto proviene de la trayectoria del motor. Y una vez más, si no ves este sonido, si haces clic sobre este ícono de engranaje, puedes mostrar contenido del motor y deberías tener acceso a ese sonido. Ahora realmente se podría ranura en cualquier sonido aquí. Esta es solo la que elegí. Así que siéntete libre de tragar el sonido que quieras. Ahora aún no vamos a hacer uso de esta variable. Eso va a venir en el siguiente video cuando hablemos de nuestro Gráfico de Eventos. Pero sólo para resumir aquí, el panel Mi Blueprint, es donde se alojan, donde se crean cosas como funciones, cosas como macros, cosas como variables, y dónde acceder esas cosas. Última cosa antes de que terminemos este video, posible que ya hayas notado que todos nuestros diferentes componentes aquí arriba en el panel Componentes, también se muestran aquí abajo en la sección de variables. Y esta es una forma rápida y fácil que podemos añadir una referencia a cada uno de estos diferentes componentes en nuestro gráfico de eventos. Pero de nuevo, vamos a estar haciendo uso de eso en futuros videos. Por ahora, solo quería señalar la relación entre los componentes agregados a tu blueprint, también apareciendo bajo la sección de variables del panel Mi Blueprint. Eso lo hará todo por este video, chicos, veremos en el siguiente. 10. Gráfico de eventos: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es conocer y demostrar lo que es el Gráfico de Eventos dentro de un plano irreal. Ahora bien, esta es una zona de un blueprint donde toda nuestra magia de scripting ocurre en cualquier momento que queremos agregar algún tipo de comportamiento, funcionalidad o jugabilidad. El lugar para hacer que esas interacciones cobren vida está dentro del gráfico de eventos. lo que aquí dentro de mi ejemplo de recolección de BP, ya hemos explorado la pestaña viewport, pestaña Construction Script de la que hablaremos pronto. La pestaña Gráfico de eventos es la que vamos a hacer la estrella del espectáculo en éste. Entonces déjame hacer clic izquierdo sobre esto. Y lo que ves es un gráfico que tiene algunos nodos aquí. Por defecto, estos son nodos de eventos de los cuales podemos construir algún script fuera de. Hablaremos de nodos de eventos en su propia sección. Pero por ahora lo que quiero hacer es solo quiero hacer clic izquierdo y voy a arrastrar esta caja conocida como selección de marquesina. Y voy a golpear la tecla delete una vez que todos esos estén resaltados y Newcomb salga. Adiós. Vamos a crear nuestro propio guión aquí. Muy bien, entonces lo primero que queremos hacer es agregar algunos nodos a nuestro gráfico. Entonces, ¿cómo hacemos esto? Bueno, en realidad hay varios métodos diferentes y cómo hacer esto. El primero es haciendo clic derecho en un gráfico. Si haces clic con el botón derecho, tienes un montón de categorías diferentes. Y en cada una de estas diferentes categorías, existen diferentes funciones que puedes agregar. Hay diferentes eventos que se pueden sumar, etcétera. Sólo voy a elegir Evento Comienzo Juega aquí. Esa es la que viste aquí antes. Y voila, te tienes un nodo. Voy a arrancar eso. En realidad voy a añadir uno ahora que queremos en nuestro gráfico, voy a elegir nuestro componente de colisión de esfera aquí arriba en el panel Componentes. Ahora sólo voy a saltar a la pestaña de la ventana gráfica rápidamente. El choque de esfera es esta esfera invisible que rodea aquí nuestra cruz. Entonces quiero hacer algo con nuestra colisión de esfera. Quiero tener algún nodo asociado a eso. Así que volviendo a mi Gráfico de Eventos con esta colisión de esfera seleccionada, voy a hacer clic derecho en mi gráfico y anotar esta casilla de verificación aquí arriba. Es sensible al contexto. Entonces me va a mostrar algunos nodos que son específicos de mi colisión de esfera y que están listados en la parte superior aquí. Uno de ellos que voy a estar agregando ahora está bajo esta categoría Add event for sphere collision. Por lo que voy a hacer clic en este cuadro desplegable y bajo la sección de colisión, quiero agregar en componentes comienzan a solaparse. Ahora este nodo va a disparar una señal cuando algo comienza a superponerla. Y puede generar algunos datos aquí dependiendo de lo que se superpuso a este componente en particular. Ahora una pieza de información que quiero encontrar cuando algo se superpone son colisión de esfera fue ¿quién era el otro actor? Entonces voy a arrastrar un cable fuera de aquí, y voy a escribir en elenco a personaje de tercera persona. Ahora, aún no hemos aprendido de casting, pero larga historia corta, lo haremos, este nodo nos va a permitir comprobar, oye, fue el otro actor que se superpone esta colisión de esfera, fue que el ¿ThirdpersonCharacter? Si es así, vamos a continuar nuestro flujo de ejecución aquí. Fuera de estos eventos a través de este nodo, continúe por aquí. Este es un montón de cables y nodos que estamos vinculando juntos para hacer que las cosas sucedan. Si no fuera el ThirdPersonCharacter que se superpone a esta colisión de miedo, este elenco fallaría y el flujo de ejecución continuaría fuera de aquí. Entonces esa es otra forma en la que puedes agregar un nodo es simplemente sacar un cable de uno de estos pines de colores aquí. Y hablaremos de estos pines de diferentes colores en futuros videos y luego buscaremos un nodo dado. La tercera forma en que podemos agregar un nodo a nuestro gráfico aquí es arrastrar y soltar. Podemos arrastrar y soltar unos componentes. Y podría hacerlo aquí desde el panel Componentes o desde la sección de variables del panel, Mi Blueprint. Ahora, voy a hacer las dos cosas solo porque es divertido demostrar en ambos sentidos. Pero lo primero que voy a hacer es arrastrar y soltar, clic izquierdo y arrastrar este sonido pick-up a nuestro gráfico. Me va a preguntar, ¿quiero conseguir esto o quiero poner esto? Bueno, quiero conseguir el contenido de esta variable. El contenido de esta variable o esta comienzan a tocar ahí, lo siento, este sonido de interacción que está asociado a ella. Voy a conseguirlo. Y luego me voy a arrastrar fuera de este nodo y voy a escribir en el sonido de reproducción. Ya ves, sabía que esta variable contenía un sonido dentro. Contiene este sonido de interacción. Entonces todo lo que estoy haciendo aquí es que estoy diciendo, Hey variable, quiero tocar qué sonido tienes dentro de ti. Eso es lo que hace este nodo de función aquí mismo. Ahora esto no sucederá a menos que vincule este cable de ejecución a este nodo de función de sonido de reproducción. De acuerdo, así que esa es una forma de arrastrar y soltar es directamente desde el panel, Mi Blueprint. Ahora otra cosa que quiero hacer, y esto va a ser sólo para fines de demostración, es que voy a sacar un componente de aquí. Permítanme arrastrar en algo visual como el cubo horizontal, clic izquierdo y arrastrar. Y entonces voy a arrastrar fuera de mi cubo horizontal y simplemente escribiendo destruir. Voy a destruir estos componentes cuando nuestras superposiciones de ThirdPersoncharacter sean esfera. Entonces así es como leer este guión en particular en este momento, al solapar nuestra esfera, vamos a averiguar quién era el otro actor. Vamos a emitir a nuestro ThirdPersonCharacter, básicamente averiguarlo, hey, ¿ fue el personaje tercero que nos superpuso? Si lo fuera, vamos a seguir con nuestro flujo de ejecución aquí tocando el sonido. Y luego vamos a destruir sólo el componente horizontal del cubo. Vamos a seguir adelante y jugar a prueba esto. Voy a hacer clic en este botón Reproducir justo aquí arriba. Y voy a mover esto a lado aquí porque quiero que seas capaz de no sólo verme jugar el juego, sino también ver la ejecución de este guión. Ahora actualmente tengo acceso a mi ventana aquí, pero quiero hacer es presionar Shift in F1 para volver a subir mi cursor del mouse a mi editor. Ahora justo aquí tengo mi recogida de ejemplo de BP. Puedo hacer click en esto y se puede ver que tengo lo que asciende a 12345 instancias diferentes de esta pickup en mi gráfica. Por lo que esto sólo va a mostrar esto para cualquier instancia particular que he seleccionado aquí. Así que voy a ir con la recogida de ejemplo de BP, la primera. Y ahora si vuelvo a encender esta ventana, verás este flujo de pulso de ejecución fuera de este nodo de eventos a través del resto de estos nodos cada vez que me superponga esta instancia específica de esta camioneta. Entonces veamos este primero aquí. Entonces ese fue uno para mostrar el flujo de ejecución justo arriba. Y como se puede ver, simplemente destruyó que un componente no destruyó todo. Muy bien. Yo me superpongo a esa. Nuevamente, destruyó el componente, pero no estás viendo el flujo de ejecución de arriba. Dulce, por lo que actualmente está funcionando. Ahora, quiero llevar esto un poco más allá aquí, y podemos ignorar este error aquí porque lo que acabamos de construir aquí fue sólo temporal. Por lo que voy a hacer click en este botón X. Así que quería llevar esto un poco más allá aquí destruyendo este componente de destrucción y el calor y el cubo horizontal. Porque eso no es realmente lo que quería hacer aquí. En cambio, lo que quiero hacer es que quería destruir a todo el actor cuando recogemos esto. Así que voy a arrastrar fuera de mi sonido de reproducción 2D, y simplemente voy a escribir en Destroy Actor. Ahora el objetivo de este nodo en particular es en sí mismo, lo que significa todo este plano. Entonces al solapar esta colisión de esfera, vamos a averiguar si fue un personaje de tercera persona el que fue el otro actor que se superpone a esta colisión de esfera. Vamos a tocar este sonido y luego vamos a destruir a nuestro actor. Fun factor de este lugar abajo a D. Puedes hacer click sobre esto para modificar algunas propiedades al respecto, como el multiplicador de volumen puede establecer eso en dos. Por ejemplo, vamos a seguir adelante y jugar esto una vez más. Ahora esto debería destruir a todo el actor cuando lo superpongamos. Y hagamos esto un poco más grande aquí, así. Y aquí vamos. Dulce. De acuerdo, con un poco de guión construido aquí, hablemos de navegar por el gráfico de eventos. Aquí, la rueda de desplazamiento en el Gráfico de eventos se acercará y alejará. botón izquierdo del ratón más el botón derecho del ratón también se acercará y alejará. Así que tengo a los dos abajo y solo estoy moviendo mi ratón hacia arriba y hacia abajo. Se puede ver el nivel de zoom en la parte superior derecha. Por cierto. Si botón derecho del ratón y arrastre eso se desplazará alrededor. Me da un poco este ícono de la mano para moverlo así, botón izquierdo del ratón y arrastrar, clic izquierdo y arrastrar como. Entonces. Eso traerá a esta selección de carpa para fiestas, lo cual es genial para resaltar toda una selección de nodos como esa. Dato divertido aquí, algo que puedes hacer con todo el script como este agregado es tocar la tecla C para agregar un cuadro de comentarios alrededor de esto. Y llamaré a esto mi guión de recogida. Eso ayuda a mantener las cosas agradables y organizadas. Entonces, si estás acercando la manera de salir así, puedes ver todos tus diferentes guiones que has escrito aquí. Botón izquierdo del ratón en un No, eso te permitirá seleccionarlo para que luego puedas moverlo así. botón derecho del ratón en un nodo mostrará un menú sensible al contenido. Algunas opciones aquí que realmente me gustó explorar. Estas opciones de alineación, estas son geniales y funcionan como cualquier cosa que puedas encontrar en PowerPoint o Google Slides para alinear nodos, hacerlos livianos, a la izquierda justificada, a la derecha justificada. Me encantan estos, especialmente estas conexiones enderezadas. Uno es uno de mis favoritos. ¿ Qué más tenemos aquí? Tenemos alt plus botón izquierdo del ratón es cómo se pueden cortar cables. Para que como pueden ver, tenemos este flujo continuo de ejecución. Cuando ocurre este evento, un pulso fluye a través de estos pines de ejecución justo aquí arriba, manteniendo presionada la tecla Alt y haciendo clic izquierdo sobre un cable lo romperá. Entonces en este momento si fuera a jugar el juego, en realidad tocaría el sonido pero no destruir al actor porque el flujo de ejecución a través de estas cacerolas de ejecución no ha llegado aquí. Muy bien, Control más el botón izquierdo del ratón moverá los cables. Así que digamos que tenía, solo voy a hacer clic derecho y duplicar mi nodo Destroy Actor. Digamos que esta era alguna otra función aquí abajo. Y quería mover este cable. No tienes que romperlo así y luego volver a conectarlo así. Si mantiene presionada Control, puede hacer clic con el botón izquierdo y recoger ese cable y moverlo a otro nodo. Ese es un truco muy práctico también. Usa eso mucho. Es algo para señalar aquí al romper cables, no tienes que simplemente, ya sabes, Alt y clic izquierdo en el medio. También puede Alt y hacer clic izquierdo en cualquiera de estos pines de ejecución también. Entonces ahí lo tienes. Eso es algunas cosas de navegación rápida para tu gráfico de eventos. Una cosa más que quiero señalar aquí con los gráficos de eventos porque siempre les pasa a los estudiantes. Eventualmente, si cierras tu pestaña Gráfico de Eventos, boom, se ha ido. No se puede encontrar en la opción de ventana justo aquí arriba. ¿ Cómo obtienes esto entonces? Bueno, eso está contenido en el panel My Blueprint aquí tenemos este gráfico de eventos. Y si tuviera que hacer doble clic en este gráfico de eventos bajo nuestra sección gráfica, eso lo traerá de nuevo. Además, esto es bueno tener en cuenta también. Enumerará cualquier evento que esté dentro de su gráfico de eventos. Así que déjame simplemente hacer clic derecho y añadir y eventos Begin Play. Se puede ver como agrego esto a mi gráfico, lo muestra aquí abajo bajo mi Gráfico de Eventos también. Entonces si fuera verano allá fuera y hacía doble clic en evento empezar a jugar, me saltaría a ella. También tengo la capacidad de crear un nuevo gráfico. Ahora déjame hacer esto rápidamente haciendo clic en el nuevo gráfico, y llamaré a este nuevo gráfico. Ahora tengo dos gráficas diferentes. Ambos son gráficos de eventos. Uno se llama gráfico de eventos, el otro se llama nuevo gráfico. ¿ Por qué alguna vez harías esto? Bueno, hago esto a veces simplemente para organizar mejor mis guiones. Dependiendo de la cantidad script que quieras agregar a un blueprint, puede tener sentido tener un gráfico que sea muy específico para decir, eventos de entrada versus solo cosas muy pasivas que puedan sucedan a ese plano. Entonces algunas cosas organizativas a tener en cuenta mientras estás construyendo tus diversos planos. Muy bien chicos, eso es un resumen rápido en el Gráfico de eventos. Cualquier plano. 11. Script de construcción: Bienvenidos a todos. En este video, nuestro objetivo es conseguir una comprensión de alto nivel de lo que es el Guión de Construcción dentro de un blueprint. Es decir, esta pestaña aquí arriba intercalada entre nuestras pestañas viewport y Event Graph. Ahora a primera vista, va a parecer casi idéntico al Gráfico de Eventos. Así que en este momento estoy en la pestaña Gráfico de eventos de nuestra pickup de ejemplo de bp. Se puede ver que hay nodos cableados juntos. Más en nuestro Guión de Construcción. Actualmente tenemos un nodo, pero al igual que un gráfico de eventos, podemos cablear otros nodos hasta él. Ahora, mientras que el Gráfico de Eventos es el lugar destinado a crear script que se ejecutará mientras tu juego se está ejecutando. El guión de construcción es un lugar para crear script que quieres ejecutar antes de que el juego comience mientras construyes tu blueprint. Ahora mira, guión de construcción es genial para construir variedad de construcción en tus guiones, además de crear actores procedimentales para que trabajes con ellos. Lo que ves antes de ti es un adelanto de lo que está por venir a lo largo del resto de este video. Este muro de aquí mismo es un plano de clase actor que sólo está utilizando, aprovechando el guión de construcción. Ahora, lo que hace tan cool a una construcción scripts es que puedes exponer algunos parámetros en tu panel de detalles. Y con solo cambiar algunos de esos parámetros que has expuesto, puedes modificar el aspecto de esta instancia particular del blueprint. Ahora, como pueden ver, como altero algunas propiedades aquí, el guión de abajo está disparando. Una vez más, lo que lo hace Construction Script diferente al Gráfico de Eventos es el script de construcción se dispara cada vez que hago algún cambio en absoluto a este blueprint, incluso podría ser simplemente moviéndolo relojes me muevo esto. Vas a ver un pulso a lo largo del guión de construcción abajo aquí abajo. Ahora también lo hace genial, es si creo una copia de este blueprint, voy a Alt, clic izquierdo y arrastre. Puedo cambiar los parámetros para esta instancia en particular. Así que permítanme cambiar el número de secciones aquí a algo así como diez. Y puedo cambiar el material a ser, vamos a escribir la palabra ladrillo. Y así esto puede tener un material único todo propio. Entonces el guión de construcción es donde puede hacer que algo así suceda. Ahora piense en las posibilidades con justo cómo tengo configurado este guión de construcción. Esto es sólo una pared simple. Esto podría ser una fila de sillas, podría ser una barda. Podría ser un montón de postes eléctricos con cables encadenados entre ellos, ese tipo de cosas. De acuerdo, vamos a empezar aquí dentro de nuestro navegador de contenidos, específicamente dentro de la carpeta de scripting de nuestro navegador de contenidos. Voy a hacer clic derecho en algún espacio vacío por aquí. ¿ Estoy haciendo clic derecho en el menú? Quiero crear un nuevo plano. Queremos que esto sea de la variedad de clase actor porque este va a ser un plano que colocamos dentro del mundo. Me va a pedir que le dé un nombre. Llamaré a este ejemplo de subrayado BP. ¿ Qué tal sólo huevos? Construir guión, ese es un nombre muy abreviado, pero quería un poco que quepa todo en una línea aquí, no envolver alrededor de x build script. Impresionante. Ir a hacer doble clic en esto para abrirlo de inmediato. Entonces docket por la parte superior, como me gusta hacer. Ahora, vamos a estar agregando un componente a estos planos. Voy a venir bajo el botón agregar y voy a escribir en malla estática. Sólo estática lo blanqueará. Ahora, a diferencia de antes donde agregamos un componente de malla estática, en este caso queremos agregar una instancia componente de malla estática. Y la razón de eso es porque vamos a estar construyendo cualquier número de secciones murales. Y para hacer eso de manera eficiente para el tipo de script que estamos a punto de estar construyendo, queremos que una instancia de malla estática como un consejo de herramienta te diga que así es como renderizarla eficientemente. Así que agreguemos una instancia Static Mesh. Voy a golpear Entrar aquí con ese componente está seleccionado encima en el panel Detalles podemos ranurar en una malla estática. Voy a hacer clic en este desplegable aquí. Escriba en el número 400 porque esta sección de muro que quiero asociar con este componente es muro 400 por 400. Adelante y elige eso. Ahora como se puede ver, todavía no vemos nada en nuestra viewport. Vamos a hacer uso de esto de una manera diferente aquí dentro de nuestros guiones de construcción. Así que vamos a subirnos por ahí. Ahora. La comida principal que quiero que entiendas, al menos para esto, es lo que puede hacer el guión de construcción. Por construir unos planos muy dinámicos. Puedes personalizar tus planos de una manera impresionante mientras estás construyendo tu nivel. Ahora el guión que vamos a estar armando en este momento, está bien si no entiendes en absoluto lo que está pasando, vamos a estar rompiendo estos conceptos de scripting como vamos a lo largo del curso. Mi objetivo en este video es simplemente construir la cosa para que puedas hacerte una idea de lo que puede hacer el guión de construcción. Así que ten cuidado conmigo en esto. Vamos a empezar creando una variable aquí. Haga clic en este botón más. Vamos a llamar a esta variable num de. Secciones, vamos a utilizar esta variable de la cual vamos a cambiar esto a un tipo entero para sostener cuántas secciones de muro nos gustaría para este blueprint degeneradas. Podemos darle a esto un valor predeterminado más en el panel Detalles, pero nos está pidiendo que compile primero el Blueprint. Voy a seguir adelante y hacer eso. Empecemos con un valor predeterminado de una sección de muro. Eso es lindo. Ahora quiero señalar algo más aquí. Podemos exponer estas variables a nuestro editor si marcamos esta casilla de verificación editable de esta instancia aquí. Pero antes de que hagamos eso, necesito realmente colocar este plano dentro de nuestro nivel. Así que déjame volver a mi pestaña de mapa de prueba de nivel que me trae de vuelta al editor principal. Permítanme arrastrar y soltar este guion de construcción de ejemplo a nuestro nivel. Todo lo que vemos es ese icono de componente raíz. Ahora más en el panel Detalles, si hago una búsqueda de solo entumecido, recuerda que nuestra variable dada aquí se llamaba número de secciones. No veo nada. Voy a dejar esta búsqueda aquí arriba por el momento. Voy a saltar de nuevo a mi guión de construcción de ejemplo aquí. Vamos a seguir adelante y comprobar esta casilla editable de instancia justo aquí. Tenga en cuenta que cuando hago eso, esto es lo mismo que hacer clic aquí mismo. Cerrar este globo ocular significa que no es instancia editable. Al hacer clic para abrirlo , marca esa casilla. Para que puedas marcar esta casilla ya sea haciendo clic aquí o haciendo clic ahí mismo. Ahora si compilar, guardo este blueprint, y vuelvo a mi editor de niveles con mi ejemplo Construction Script seleccionado aquí en el nivel por encima en el panel Detalles. Ahora he expuesto esta variable al editor de niveles. Esto va a ser impresionante porque vamos a ser capaces de golpear en un número aquí. Y entonces se Construction Script va a determinar cuántas secciones de muro queremos que aparezcan. Bastante dulce. Muy bien, sigamos adelante y construyamos ese guión. De vuelta aquí. En el guión de construcción. Voy a arrastrar un cable. Voy a hacer una búsqueda de un bucle para. Y de nuevo, voy a estar pasando por esto un poco rápido. Entonces si no entiendes lo que está pasando, eso está bastante bien y solo querer presumir el poder del guión de construcción aquí. Ahora con esto, voy a alimentar esto son una serie de secciones arrastrando y soltando eso en el gráfico. Quiero conseguirlo. Entonces voy a arrastrar fuera de esto y voy a escribir la clave menos. Quiero restar nodo, y voy a restar el número uno. Y te explicaré por qué una vez terminemos con todo esto. Y voy a enchufar esto nuestro último índice del for-loop. Entonces sí, por favor permítanme construir esto primero y luego volver a través y describir exactamente lo que está sucediendo. Ahora fuera de esto, el cuerpo de bucle que voy a arrastrar fuera de esto. Bueno en realidad primero necesito traer a nuestra instancia referencia de malla estática. Vamos a seguir adelante y arrastrar y soltar esto desde nuestro panel de componentes a la derecha en nuestro gráfico. Alternativamente, podría conseguirlo aquí abajo también. Voy a arrastrar fuera de esto y voy a escribir en instancia de AD. Entonces este va a ser el saber que realmente va a sumar aquí una sección de muro. Está contenido dentro de esta instancia malla estática a nuestro mundo. Vamos a tomar nuestro cuerpo de bucle y conectarlo aquí. A continuación, voy a sacar de nuestro índice de nuestro for-loop. Voy a traer un botón multiplicar o multiplicar nodo más bien, quiero multiplicar esto por 400. Hay una razón muy específica por la que estoy eligiendo aquí el número 400. Esa es la casualidad de ser la longitud exacta de nuestra malla estática aquí. De hecho, si hago clic en este ratón sobre él, ahí se puede ver en la punta de la herramienta el tamaño de esto, alrededor de la mitad de esa caja ahí, el tamaño aproximado es de 400 por 20 por 400. Por lo que son 400 unidades irreales de ancho, 20 unidades de espesor, 400 unidades de alto. Entonces esa es una razón muy específica por la que estoy eligiendo este número aquí, porque voy a estar sumando un número dado de secciones cada 400 unidades irreales. A continuación voy a tirar hacia atrás fuera de este pin de transformación de instancia. Y una vez que suelte y voy a escribir la palabra make transform, nos da un poco más de espacio aquí. Mueve esto a una posición así. Y luego fuera del pin de ubicación justo aquí, voy a hacer clic izquierdo y arrastrar y escribir, hacer Vector justo aquí abajo, hacer vector. Y voy a enchufar esto a nuestra x Y va a traer un nodo de conversión, convirtiendo un entero de tipo de datos a un float. Entonces eso va a estar bien. Así que ahora hablemos de lo que tenemos pasando aquí. Lo que va a pasar es que nos vamos a alimentar en un número dado de secciones. Y recuerda que esta variable está expuesta en el editor, por lo que podremos determinar cuántas secciones queremos. Entonces supongamos que queremos diez secciones. Vamos a recorrer sin embargo muchas de las secciones que tengamos aquí, comenzando con nuestro primer índice. Se inicia con el número de 0. Si tengo diez y yo menos uno, eso va a igualar nueve. Entonces nuestro primer índice va a ser 0. Nuestro último es nueve. Entonces esencialmente eso nos va a dar diez iteraciones de este bucle. Nuevamente, comenzando con 0, terminando con nueve. Por eso estamos haciendo esta resta justo aquí poniendo en diez, restando uno que equivale a nueve. Pero estamos empezando a contar al 0. Entonces se va a correr esto diez veces. Se va a ejecutar fuera de este cuerpo de bucle diez veces. Se va a sumar diez instancias de esta Malla Estática. Ahora todo esto aquí abajo es determinar dónde colocar las mallas estáticas. Esencialmente lo que estamos haciendo es por cada índice, vamos a moverlo en más de 400 unidades irreales en la dirección x. Eso es esencialmente lo que este bit de guión está haciendo aquí mismo. Ahora en cualquier momento que construyas algún script, ya sea en el guión de construcción o en el Gráfico de eventos, desea compilar. Al hacer esto, revisaremos su guión para asegurarnos de que no haya comprobado ningún error. No va a atrapar todos los errores, pero va a captar muchos errores. Y entonces quieres salvar esto. Ahora vamos a saltar de nuevo a nuestro nivel aquí. Y lo que vemos en este momento es que tenemos una sección de muro. Eso está todo bien y bueno. Déjame plantear esto. Golpea la tecla End, y eso la golpeará hasta el suelo. Y eso es bastante guay. ¿ Qué pasa ahora si cambio el número de secciones a dos? ¿ Qué sabes lo que añade otra sección? 3410. Ahora tenemos diez secciones de muro ahora eso es un poco soso mirar mientras, pero se puede ver lo que el Guión de Construcción nos ha permitido hacer. Es mucho que hagamos un blueprint que sea muy personalizable con solo cambiar un valor aquí, estamos cambiando lo que sucede con este blueprint, un lugar dentro de tu nivel. Ahora vamos a dar un paso adelante porque este es un muro de aspecto bastante soso, si lo digo yo mismo. Así que vamos a extender nuestro guión un poco más. Así que entra dentro de nuestro guión de construcción. Y sólo voy a alejar un poco. Y voy a arrastrar otra copia de nuestra instancia de malla estática aquí. Arrastra una copia. Voy a colocarlo aquí mismo. Y luego voy a arrastrar un aquí y escribir un material de conjunto. Establecer material. Nuestra instancia de malla estática será el objetivo. Y mantengamos nuestra ejecución yendo aquí. Y fuera de nuestro material aquí, puedo hacer clic derecho y puedo promover esto a una variable. Cuando haga esa variable va a aparecer en nuestra sección de variables. Esto va a ser un material y voy a alimentar a esto el nombre nuevo material. Y voy a hacer clic en este cuadro para que esta instancia sea editable. También voy a necesitar hacer esto editable para que podamos cambiar esto en el editor. Vamos a darnos un nuevo material aquí mismo. Podemos darle de comer un nuevo material que elegiré. Vamos a intentarlo. Sólo voy a escribir en ladrillo. Puedes cambiar esto a lo que quieras. Escogeré arcilla de ladrillo. Seguro. Compile, guarde que sea nuestro guión actual. Y ahora si salto de nuevo a nuestro editor de niveles aquí, se puede ver que el material de arcilla se coloca en cada sección de pared. No obstante, no lo veo en el editor porque actualmente estoy filtrando por la palabra entumecida. Así que permítanme deshacer ese filtro justo ahí en la parte superior, puedo ver las dos variables que ahora he expuesto al editor. Permítanme cambiar mi nuevo material a otra cosa. Vamos a Chrome y wallah. Nos tenemos una pared de Chrome. Es así como se hacen planos que son muy extensibles, si se quiere, durante el tiempo de diseño. Por lo que una vez más, el guión de construcción está ahí para dar a tus diseñadores, tus diseñadores de nivel, si quieres, gran potencia y flexibilidad sobre los planos que colocaron en tus niveles y cómo pueden personalizarlos. Imagina si lo harás, si tuvieras un plano que fuera simplemente una luz, una lámpara, si quieres, en una habitación. Y tal vez usted expone el color de la luz como lo hicimos aquí en nuestro ejemplo, aquí mismo en el editor. Podemos hacerlo para que por cada plano de lámpara que colocamos en el nivel, pudiéramos cambiar el color de eso a través del guión de construcción. Entonces ahí lo tienen, chicos, ese es el poder del guión de construcción. Dentro de un plano. Harán para ofrecer éste. Nos vemos en la siguiente. 12. Planes de clase: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es conocer algunos de los diferentes tipos de planos en Unreal, comenzando con algo conocido como Plano de Clase. Ahora la razón por la que queremos aprender sobre diferentes tipos de planos es porque diferentes tipos sirven para diferentes propósitos. Adicionalmente, la interfaz y la forma en que vayas a trabajar con ese blueprint pueden diferir ligeramente dependiendo de lo que sea en lo que estés trabajando. Ahora, vamos a usar nuestro ejemplo de pb pickup aquí. Echa un vistazo a esto realmente rápido. En la parte superior derecha. Una vez más, muestra que se trata un plano de clase actor que se conoce como la clase padre. Está bajo el paraguas Clase Blueprint. Nuevamente, hay muchos tipos de planos de clase. Entonces, ¿qué hace que un Plano de Clase sea un Plano de Clase? Bueno, puedes pensar en un Plano de Clase o un blueprint para abreviar, como un tipo de plantilla de activos. Como plantilla que puedes agregar fácilmente funcionalidad o componentes para hacerla tuya propia. Ahora, justo al lado de esta pestaña aquí tengo mi BPA ThirdPersonCharacter. Y dentro de esta clase de personajes Blueprint, tengo algunos componentes diferentes que provenían automáticamente la creación de este blueprint de clase de personaje, a saber, el Componente Capsule, la flecha, la malla, y el componente de movimiento de personajes. No obstante, si quisiera, podría personalizar esto y hacerlo mío. Puedo añadir más componentes. Podría intercambiar, digamos, el aspecto de esta malla en el Gráfico de Eventos. Podría cambiar todo este guión en la buena gente de Epic Games proporcionado. Y podría crear algo completamente diferente para que mi personaje se mueva de la manera que quería que se mueva. Eso es lo que hace que los planos de clase sean tan poderosos. Te proporcionan la plantilla y a partir de ahí, puedes hacerlo lo que quieras hacerla. Ahora, ¿cómo vamos a crear estos planos de clase? Bueno, hay un par de métodos. Uno que ya me has visto hacer. En el Navegador de contenido, puede hacer clic con el botón derecho y algún espacio vacío venir bajo Clase de blueprint. Y ahí te permite escoger una clase de padres. Estos son todos los tipos diferentes de planos de clase. Los más comunes enumerados arriba arriba, los menos comunes abajo. Hay muchos. Vamos a explorar varios de los tipos más comunes a lo largo de este curso. Pero sepan que hay muchos, muchos, muchos tipos. Entonces esta es una forma en que puedes conseguir en este selector de planos de clase. El otro camino está justo a lo largo de la parte superior aquí con este pequeño Node Icon, el icono del blueprint, si lo quieres, puedes elegir esto, ven bajo nueva Clase de Blueprint vacía. Y al hacer clic en esto se abrirá esa misma eligiendo la opción de clase de tus padres. Ahora, una vez más, el padre nos proporciona las plantillas de inicio. Así que voy a seguir adelante y crear un personaje aquí. Y voy a llamar a esto mi carácter temporal, así. Y voy a hacer doble clic en esto para abrirlo. Vamos a comparar y contrastar esto con nuestro BP ThirdPersonCharacter existente. Como se puede ver a través de la parte superior en la parte superior derecha, dice que la clase padre es personaje. Y algunas de las características comunes que verás entre este y el personaje de tercera persona es que tengo un componente cápsula en componente de error, una malla, cualquier componente de movimiento de personajes. Estos cuatro también se pueden encontrar en nuestro componente ThirdPersonCharacter, cápsula, flecha, malla y movimiento de personajes. Ahora una de las diferencias clave entre el ThirdPersonCharacter y nuestro personaje temporal es la malla aquí se llena con una Malla Esqueletica. No obstante, en mi carácter temporal, podría definir esto y hacerlo lo que quiera. Podría elegir cualquier Malla Esqueletica que quisiera. Está en blanco por defecto. También notarás que aquí con nuestra plantilla de personaje en blanco aquí, he conseguido nada en el Gráfico de Eventos que defina el movimiento de mi personaje temporal. No obstante, en el ThirdPersonCharacter, las buenas personas de Epic Games ya han dado esto para trabajar con. Entonces, una vez más, nuestro pooper de clase de personajes, proporcionan el plano de cómo crear un personaje al proporcionarnos estos componentes, sin embargo, el resto depende de nosotros. Podemos personalizarlo agregando nuevos componentes, personalizando el script para que se mueva de cierta manera, se obtiene el punto. A continuación, quise dar algunas formas para que te identifiques fácilmente. ¿ Estás trabajando dentro de un blueprint de clase o un plano de nivel de planos de nivel se van a hablar en el siguiente video. Número uno, en la parte superior derecha de un Blueprint de Clase, enumerará una clase padre Nivel. Los planos no lo harán. Número dos. Los blueprints de clase tienen un panel Componentes Los planos de nivel no lo hacen. número tres en los planos de clase de la pestaña Gráfico de eventos en parte inferior derecha era simplemente decir blueprint lugar de planos de nivel, diciendo Nivel Blueprint. Por lo que hay algunos consejos rápidos ahí. Tengo un montón de estudiantes iniciadores que a veces se confunden donde están trabajando. Por qué no ven el panel Componentes, ese tipo de cosas. Entonces esas cosas ojalá ayuden a algunos de ustedes por ahí. Por último, quiero hablar de algunos de los planos de clase comunes aquí. Así que clic derecho y algún espacio vacío Clase Blueprint. Después de plano de clase. Este es el que quieres elegir cuando es algo que vas a colocar o desovar en tu nivel. Por eso, debo decir, algo que no es un personaje o un peón. Un plano de personaje es un peón. Se extiende desde la Clase de Peones, en realidad, se puede mover por ahí. Y una de las grandes cosas un blueprint de clase de personaje es que viene preconstruido con un Componente de Movimiento de Personajes que te da control sobre cosas como lo rápido que se mueve tu personaje, cómo alto saltan, ese tipo de cosas que puedes poseer y controlar una clase de personaje, blueprint, Modo de Juego, planos Base de Modo de Juego, si quieres. Este es un lugar principal para almacenar reglas con guión de tu juego. Puede determinar cosas como anotar, los límites de tiempo de ese tipo de cosas funcionarán en una de esas más adelante en el curso. Muy bien chicos, eso va a hacerlo. Ese es el blueprint de clase viene a continuación, el Nivel Blueprint. Nos vemos ahí. 13. Planes de nivel: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender qué es un Planeta de Nivel, cómo acceder a él, cosas para las que se utiliza, y cómo difiere de un Blueprint de Clase. Entonces, ¿qué es un Plano de Nivel? Bueno, es el plano asociado específicamente a un nivel dado. En nuestro caso, sería el blueprint asociado a nuestro nivel de mapa de prueba. Ahora, ¿cómo accedemos a ella? Bueno, justo a lo largo la parte superior aquí con este pequeño icono de blueprint E-type, clic en este desplegable y a la derecha smack dab en el medio aquí tenemos esta opción abierta Nivel Blueprint. Simplemente haciendo clic en esto se abrirá nuestra pestaña Nivel Blueprint. No obstante, antes de hacer esto, quiero mostrarles aquí un consejo rápido porque si tuviera que hacer click en esto ahora mismo, lo abriría en esta ventana separada. Me gusta tener mis ventanas abiertas justo a lo largo de la parte superior aquí a lo largo de la ventana principal. Entonces te voy a mostrar rápidamente cómo hacer eso. Ahora mismo. Voy a venir bajo Editar preferencias del editor en nuestra ventana de preferencias del editor. Aquí mismo tenemos la opción bajo categoría de apariciones generales aquí mismo. Editor de activos, la ubicación abierta está configurada actualmente como predeterminada. Voy a configurar esto para que sea ventana principal, y luego voy a cerrar esto. Así que ahora cuando intenté acceder a mi blueprint de nivel aquí mismo, abre Level Blueprint, bam, lo pone justo al otro lado de la parte superior aquí, en lugar de tener que arrastrar y soltar esta pestaña justo a lo largo del top, como, me gusta. Ahora también voy a arrastrar y mover esto justo al lado de mi ficha de mapa de nivel en sí. Así que nota algo aquí rápidamente, el ícono naranja de la montaña que representa el nivel en sí, el nivel de ti mismo en el que estás trabajando. Esto tiene exactamente el mismo nombre, pero tiene este icono de montaña azul que es el plano asociado a él. Es el Plano de Nivel. Tan rápido antes de hablar de para qué se utiliza este Nivel Blueprint, ¿cómo podemos decir que esto es diferente de un Blueprint de Clase? Bueno, para empezar aquí, abajo en el fondo, obviamente dice, Hey, Nivel Blueprint. Otra forma que podemos decir que esto es diferente de una Clase Blueprint es que no hay panel Componentes son ejemplo de BP pickup aquí tenía un panel Componentes. Nuestro Plano de Nivel no lo hace. También ten en cuenta que nuestro Nivel Blueprint no tiene una pestaña de Guión de Construcción o ventana gráfica son otros planos aquí arriba al ThirdPersonCharacter y nuestro ejemplo de recolección de BP. Ambos lo tienen también. También en nuestro Nivel Blueprint, si miramos a lo largo de la parte superior derecha, no hay ninguna clase de padres enumerada. Y así debido a que no hereda de una clase padre, no hay componentes ni variables heredadas. Entonces en este plano de nivel, ¿para qué se utiliza? Bueno, el Nivel Blueprint es donde pondrías guión para cosas específicas de nivel como la música de nivel. A lo mejor este nivel solo quieres que una selección de música reproduzca justo en este nivel, en ningún otro lugar. Aquí es donde podrías guionar para que la música de ese nivel reproduzca. Tal vez tengas un evento puntual específico específico para este nivel, como el jugador que pasa por un corredor. En este nivel, se superponen un volumen de gatillo y hace que zombi rompa por una ventana y asuste al jugador. Eso es cosas muy específicas de nivel que el script debe ir dentro de un blueprint de nivel. Contrasta esto con decir nuestro ejemplo de pb pickup. Ahora, saltando de nuevo a nuestro editor de niveles aquí están la recolección de ejemplo de BP. Este es un plano de clase de actor. Puedes arrastrar y soltar esto a lo largo de este nivel. Y si fuera a jugar mi juego, puedo seguir adelante y atropellar estas pastillas de salud de imitación y recogerlas. Ahora, no importa si arrastro y suelto estos dentro de mi nivel de mapa de prueba, o puedo crear un segundo nivel, un tercer nivel de cuarto nivel, etcétera. Esta camioneta se va a comportar de la misma manera. De esta manera, creé este guión dentro de nuestra pastilla de ejemplo bp que comprueba para ver si nuestro ThirdPersonCharacter se superpone a la esfera, toca un sonido y destruye como actor, este guión es específico a este actor, y este actor puede colocarse en cualquier nivel. Entonces el Nivel Blueprint es donde pones varios niveles de script específico. Ahora, uno de los beneficios de trabajar en el Nivel Blueprint es realmente fácil conseguir una referencia o agregar un evento para un actor que ya existe en tu nivel. Esto es algo que no es tan fácil de hacer dentro de otro plano de clase como un plano de clase actor. Y sólo para demostrarlo rápidamente, voy a saltar de nuevo a mi editor de niveles aquí. Y voy a venir debajo de mi pestaña Contenido del anuncio aquí. Y voy a añadir una forma. Sólo vamos a añadir un cubo. Así que voy a hacer clic izquierdo y arrastrar un cubo a mi nivel, solo voy a elevarlo un poco al aire. Observe que lo tengo seleccionado. Este contorno amarillo muestra que no he seleccionado. Y si miro a mi outliner, esto se conoce actualmente como el actor de cubo, ese es el nombre. Ahora voy a saltar de nuevo a mi Nivel Blueprint con este seleccionado. Y con eso seleccionado, todo lo que necesito hacer es mantener pulsada la tecla R y hacer clic con el botón izquierdo. O alternativamente, puedo hacer clic derecho y aquí mismo puedo crear una referencia a ese cubo. Entonces este es el método de clic derecho. Si mantengo pulsado Alt y hago clic con el botón izquierdo. Eso es lo mismo, conseguir una referencia a ese cubo. Ahora nota si iba a probar algo así dentro de mi ejemplo de recogida de BP aquí, vamos a saltar dentro de este gráfico de eventos. Si mantengo pulsada la tecla Alt y hago clic con el botón izquierdo, no tiene ni idea de lo que intentas hacer referencia aquí. De hecho, si hago clic derecho, es como si no tengo ni idea a lo que estás tratando de referenciar ahora, esto no es para decir que no podemos conseguir una referencia a ese cubo específico dentro de nuestro ejemplo de pb pickup, pero hay otros métodos para hacer eso y podemos explorar esas cosas más adelante en el curso. Pero esto es solo un ejemplo rápido de uno de los beneficios de trabajar en el Nivel Blueprint es realmente fácil dentro de un Nivel Blueprint obtener una referencia a cualquier cosa que ya existe dentro de tu nivel. Muy bien, vamos a crear un script rápido aquí dentro de nuestro blueprint de nivel. Tenemos nuestro cubo ya seleccionado en el nivel. Entonces voy a hacer clic derecho y algún espacio vacío aquí. Y en lugar de crear una referencia a nuestra cola porque ya tenemos una, vamos a agregar un evento. Ahora, dice que estás en evento para actor de malla estática a en lugar de cubos actualmente y Static Mesh actor a bien, para dejar esto claro de nuevo en nuestro nivel, en nuestro outliner, el piso, el piso predeterminado, que es un tipo de actor de malla estática. Este fue un segundo actor Static Mesh que sumamos a nuestro nivel. Por lo tanto, lo está considerando el actor de Malla Estática también. Así que sólo quería dejar eso claro. Muy bien, con ese cubo seleccionado, haga clic derecho en evento para el actor de malla estática dos, vamos a agregar un evento para cuando golpeemos a este actor. Entonces adelante y agrega esto. Este será un verdadero guión simple. No vamos a comprobar quién lo golpeó. Vamos a tener esta cosa flotando en el aire. Así que me voy a arrastrar fuera de esto y solo teclear en reproduce sonido a D. Puedes muesca en cualquier sonido que te guste. No obstante como escuchar las cosas explotan. Por lo que voy a comprobar para ver si hay una explosión aquí. Ahí está explosión. Siéntete libre de ponerlo cuando quieras. Y luego después de esto, me voy a arrastrar fuera de mi cubo porque quiero hablar específicamente con este cubo. Y quiero decir Destruye Actor. Entonces este es un script específico dentro de este blueprint de nivel. Si tuviera que colocar solo este cubo en otro nivel, no lo destruiría como estamos a punto de ver, porque ese script existe solo dentro de este Nivel Blueprint. Así que vamos a seguir adelante y jugar aquí. Y bam, poca explosión retrasada ahí. Pero una manera, una manera que va que efectivamente funciona. Vamos a pasar por otro ejemplo aquí mostrando para qué podría usarse el Blueprint de Nivel. Se puede utilizar para algo como arrancar la reproducción de música. Así que saltar de nuevo a este Nivel Blueprint, Vamos a seguir adelante y construir de este evento comenzó a jugar aquí. Simplemente voy a arrastrar fuera tipo en play sound 2D. Un sonido 2D es aquel que no se localiza a ningún punto en un espacio 3D. Simplemente es genial para música de menú, música de fondo, ese tipo de cosas en nuestro desplegable de sonidos aquí voy a escribir la palabra música, y voy a hacer nuestra música de inicio aquí que está en el Paquete de Contenido Starter. Siéntete libre de entregarlo donde quieras. Y si sigo adelante y toco wallah, tienes algo de música. Así que una vez más, estos guiones funcionan en este nivel y este nivel sólo si creo un segundo nivel, tengo que decidir cuál en este caso, música de menú quiero tocar, y qué otro- fuera de las interacciones me puede querer guionar también. Entonces hasta este punto en este video, te he mostrado un blueprint de un nivel asociado a un solo nivel. Entonces puede venir la pregunta, ¿puedo tener múltiples planos bajos? La respuesta a eso es sí, esencialmente puedes ver qué tan bien, si vengo bajo mi opción de Windows en el editor de nivel principal aquí, puedo encontrar esta opción cuatro niveles. Y cuando abro esto, voy a abrir una pestaña de niveles. Ahora, me gusta atracar esto justo al lado de mi outliner. Y lo que puedo hacer aquí es que podría agregar un nivel completamente nuevo, esencialmente un sub-nivel, una capa, si se quiere, a este nivel existente. Actualmente, muestra que tengo un nivel aquí conocido como mi nivel persistente. Y este color azul muestra que este es el nivel que estoy trabajando con él. Ven bajo esta pestaña de niveles y sus niveles cayeron aquí mismo, puedo crear un nuevo nivel. Así que voy a seguir adelante y hacer eso ahora. Me va a incitar a elegir un nuevo nivel y darle un nombre. Voy a elegir un nivel vacío aquí. Vamos a crear esto. Y va a decir, dónde quieres guardarlo. Así que le voy a dar a esto el nombre de nivel de subguión bajo, guión bajo 01. Voy a cómo está en esta carpeta ahora mismo, pero voy a empezar a albergar estas cosas en subcarpetas separadas en solo un poquito aquí, déjame deshacerme de esa U mayúscula ahí. Subnivel uno, vamos a salvar esto. Ahora ves que esto ha agregado un nivel a mi pestaña de niveles aquí. Piensa en un sub-nivel como una capa en Photoshop. Es solo una capa adicional de cosas, actores, objetos, ¿qué tienes que añadir a tu nivel? Los equipos de desarrollo a menudo dedicarán un subnivel completo a la iluminación, por ejemplo. Para que unos especialistas en iluminación puedan enfocarse solo en el aspecto de iluminación del nivel. Y es realmente fácil para esa persona tener acceso exclusivo a ese es subnivel y hacer ediciones a ella sin interrumpir al resto del equipo de dev trabajando en ese nivel. Entonces si estamos haciendo un Mundo Abierto Masivo, podemos tener múltiples subniveles aquí. A lo mejor alguien es responsable esculpir ese mundo abierto masivo. Quizás haya un subnivel para todo el follaje y otro subnivel para iluminación y otro subnivel para efectos, ese tipo de cosas. Como se puede ver aquí, cuando creamos esto como sub-nivel, hizo que nuestro subnivel azul emitiera el nivel actual en el que estamos trabajando. ¿ Qué significa eso para que sea actual? Bueno, eso significa cualquier actor que íbamos a sumar a este nivel ahora lo que en realidad lo agrega a nuestro sub-nivel, nuestro sub-nivel justo aquí abajo y creó un nuevo activo para este nivel abajo y nuestro contenido navegador, a diferencia de nuestro principal nivel persistente o mapa de prueba de LV. Vamos a seguir adelante y darle una oportunidad a esto en tan solo un momento. Pero sin embargo, quería señalar que cada subnivel tiene su propio plano de nivel. Y eso se puede acceder haciendo clic aquí donde hay ese pequeño ícono de blueprint. Entonces si abro esto, podemos ver que tiene el nombre de mi subnivel y otra vez ese ícono de blueprint de nivel. Ahora volvamos aquí a nuestro editor de nivel principal, y voy a añadir una luz puntual. Así que voy a entrar debajo de mi pestaña Agregar aquí. Vamos a encontrar nuestras luces. Agreguemos una luz puntual. Muy bien, ahora, sí lo agregamos a nuestro subnivel. Y si hago clic en este pequeño toggle visibilidad aquí, se puede ver que se muestra y lo esconde. Y está en nuestro subnivel. Si yo fuera a ocultar nuestras cosas de nivel persistente, todavía veríamos nuestra luz porque eso pertenece a nuestro sub-nivel. También para ayudar a conducir este punto a casa, voy a seleccionar nuestra luz aquí. Si iba a entrar en mi sub nivel Nivel Blueprint y iba a hacer clic derecho y algún espacio vacío, puedo crear una referencia a mi punto de luz. Tengo esas luces puntuales seleccionadas en mi nivel aquí, mi subnivel específicamente. No obstante, si iba a intentar agregar una referencia a eso dentro de mi blueprint de nivel principal aquí, haga clic con el botón derecho. No hay referencia que pueda crear a ese punto luz. Entonces lo que tengas, cualesquiera que sean los objetos, efectos, etcétera, que tengas existente en tu subnivel dado. Puedes referirlos directamente dentro de tu Nivel Blueprint. Pero tiene que ser cualquier nivel o subnivel en el que realmente hayas colocado esa cosa dentro. Si eres nuevo en Unreal, toda la idea detrás de los subniveles probablemente esté mucho más allá de lo que realmente necesitas saber ahora mismo. Pero dado que estamos en el tema de Planos de Nivel, pensé que era el momento inapropiado al menos sacarlo a la luz. Un par de cosas más que quiero hacer antes de cerrar este video. Vamos a seguir adelante y salvar nuestro nivel y subnivel. Ambos tienen sobre ellos los asteriscos. Se pueden guardar haciendo clic derecho sobre estos activos y nuestro navegador de contenido o en nuestra pestaña de niveles justo por aquí, puedo hacer clic en cada disco para guardarlo. Adicionalmente, quiero crear carpetas separadas aquí para algunos de nuestros activos. De lo contrario, vamos a tener demasiados un lugar dentro de nuestra carpeta de scripting. Voy a hacer clic derecho. Voy a agregar una nueva carpeta. Voy a sumar 14 niveles. Y también voy a hacer clic derecho en nuestra carpeta de scripting. Una vez más, voy a agregar otra carpeta nueva, y voy a añadir una porque lo llamaremos resumen para algunos de nuestros primeros planos que creamos. Y luego voy a volver a mi carpeta de scripting. Y voy a arrastrar y soltar algunos de estos activos dentro de la carpeta correspondiente. Así que voy a hacer clic izquierdo y arrastrar y resaltar como lo siento no clic izquierdo y arrastrar. Control. Haga clic en mi ejemplo de recogida en mi guión de construcción. Y voy a arrastrar y soltar estos en el interior de nuestra carpeta de resumen. Y el otro 3123, sólo soy el control de clics. Voy a arrastrar y soltar dentro de nuestra carpeta de niveles, moverlos aquí. Los ácidos caídos son referenciados por uno o más, dirá que sí. Y por último pero no menos importante, vamos a presentar y guardar todo buen lugar para guardar todos como. Muy bien chicos, eso lo va a hacer todo por éste. Te veremos en la siguiente. 14. Tipos de nodo: Muy bien, bienvenidos de vuelta a todos. En el transcurso de los próximos videos aquí vamos a estar rompiendo planos, nodos de scripting con mucho más detalle. En particular, vamos a estar hablando de diferentes tipos de nodos. Vamos a estar hablando de diferentes tipos de pin. Es decir estos pasadores de forma circular de colores frente a estos alfileres de forma triangular. Vamos a estar hablando de la diferencia entre los pines de entrada en el lado izquierdo de un nodo frente a pines de salida en el lado derecho de un nodo. Vamos a estar hablando de cablear nodos y también de cómo organizar mejor los nodos. Ahora, en este video, nuestro objetivo es discutir algunos de los tipos de nodos de scripting de blueprint que se encuentran en irreal. Ahora, vamos a hablar de cada uno de estos diferentes tipos de nodos mayor detalle más adelante en el curso. Pero por ahora, solo quería que te familiarices con estos diferentes tipos de nodos para que puedas identificarlos mejor y entender su uso. Muy bien, vamos a empezar aquí nuestra discusión sobre diferentes tipos de nodos con los nodos de color rojo. Los nodos de color rojo en Unreal se conocen como nodos de eventos. Y son críticos porque son necesarios para iniciar algún poco de guión ahí. La chispa que envía un pulso por este cable aquí para hacer cualquier otro nodo enganchado a él, se dispara también. Ahora algún ejemplo, eventos o evento comienzan a jugar, lo cual es súper común. Esto se dispara cada vez que iniciamos nuestro juego. También tienes eventos de entrada como cuando presionas uno en tu teclado o el botón de la cara inferior en un gamepad. Moviendo a lo largo, tenemos estos nodos de color azul y estos son conocidos como funciones. En particular, se les conoce como funciones impuras. En funciones puras hacen que algo suceda pero son libres de tener las cosas modificadas. Algunos ejemplos de diferentes nodos de función incluyen desove un actor, desove y emisor. Ese es el sistema VFX más antiguo en irreal, también tenemos engendrado el sistema que es el sistema VFX más nuevo en irreal, tenemos esta función create widget. Esto se usa para mostrar tipos de menús o HUD que has creado. También tenemos funciones para tocar un sonido o escenario y actores ubicación o ajuste, el material, ese tipo de cosas. Yo quería sumar este aquí también. Tienes algunas funciones que pueden tener este desarrollo sólo raya en él. Y eso se debe a que esta nota de función en realidad solo está destinada a fines de desarrollo. Entonces si alguna vez ves algo así, por eso moviéndonos, tenemos estos nodos de color más verde. Y también se les conoce como funciones. Pero se les conoce como funciones puras que simplemente se utilizan para obtener algunos datos. Y un diferenciador clave entre estas funciones verdes y estos nodos de función azul. Ambos tienen esta elegante F en ella es estos nodos de función impura azul tienen algo conocido como pines exactos en ellos. ejecución, pines exactos para abreviar. En tanto que el verde sabe que las funciones puras no lo hacen. Estos pines exactos o de ejecución se utilizan simplemente para mantener el flujo de ejecución en marcha. En. Cable de ejecución puede entrar y salir. No obstante, estos no tienen eso. Entonces, ¿cuál es exactamente su propósito? Su propósito se utiliza para simplemente obtener algunos datos. En este caso, este nodo va a conseguir lo que es nuestro personaje jugador. En este nodo, estamos obteniendo en qué nivel está ese actor. Y esta función pura simplemente obtiene el nombre para mostrar del objeto enchufado en él. En este caso, nuestro nivel. Estos dos nodos aquí no son funciones puras. A continuación tenemos una categoría de nodos conocidos como nodos de control de flujo. Puedes identificarlos por este banner de color grisáceo a lo largo de la parte superior. La excepción solitaria a eso es la familia de conmutadores de los cuales hay muchos. Y tenían este tipo de pancarta de color dorado a lo largo de la parte superior. También se consideran nodos de control de flujo. Entonces, qué hacen los nodos de control de flujo con su uso para determinar a dónde ir a continuación en un script. Así que imagina si lo harás, tuvimos un evento, comenzamos a jugarlo justo antes de este nodo de sucursal. Y estaba enchufado aquí mismo. Entonces dependiendo de la condición, verdadera o falsa, podríamos o bien un incendio fuera de esta manera o de esta manera. Y puedo tener todo tipo de diferentes scripts adjuntos a mi rama verdadera o mi rama falsa hola los nodos de control son súper comunes en Unreal y blueprints scripting. Y sabrás que realmente estás nivelando tu juego de scripting blueprint cuando empieces a dominar estos, ¿cómo encuentras estos nodos? Si simplemente hace clic con el botón derecho en algún espacio vacío, puede escribir en control de flujo. Y hay toda una categoría que en realidad aparece como control de flujo. Y puedes ver donde hay toneladas de nodos de switch, control de flujo, déjame colapsar la categoría de switch y hay un montón de tus nodos de control de flujo. Y a continuación tenemos variables. Ahora he creado un montón de variables diferentes a lo largo de la izquierda en preparación para este video. Las variables conservan datos de un tipo específico. Estos son contenedores, si se quiere. Pueden tener sus valores alterados o establecidos como nos gusta decir, algo que no sea lo que originalmente era, siempre y cuando sea del mismo tipo. Ahora estos contenedores se utilizan para contener cosas como los valores de salud. O es el estado de poseer algo o engendrar ubicación. Si se trataba de un valor de salud, podría ser un int o un tipo de flotador. Eso es algún tipo de número. Si fuera estado de poseer una clave, podría ser un tipo booleano que sea verdadero o falso. Y si fuera la ubicación de un engendro de enemigos, eso sería un tipo de vector, eso sería una ubicación X, Y, y Z. Por último, quería hacer mención de un nodo muy especial y único se encuentra dentro de los scripts de blueprint, que es un nodo de línea de tiempo. Los nodos de línea de tiempo se utilizan para alterar el valor de una variable o variables a lo largo del tiempo. Y se utilizan para cosas como cambiar un valor de flotador para cambiar un temporizador de juego para disminuir con el tiempo, como fundó un juego deportivo, ya sabes, un reloj cuenta atrás. O tal vez cambiar una variable vectorial con el tiempo para mover un objeto. En el caso de una plataforma móvil, este es un nodo tan fresco y único que tengo todo un video dedicado a esto más adelante en el curso. Entonces en resumen, tenemos nodos rojos. Estos son conocidos como nodos de eventos que son necesarios para iniciar cualquier bit de scripts. Son azules. Los nodos se conocen como funciones impuras. Simplemente hacen que algo suceda. Pueden engendrar a un actor, pueden desovar un efecto de partícula, tocar un sonido. Pueden mostrar una pantalla de menú o HUD. Lo que hace que las funciones impuras sean diferentes a nuestras funciones puras es que sí tienen pines de ejecución entran y salen de ellas. Hablando de funciones puras, aquí te presentamos algunos ejemplos de nuestras funciones puras. Estos son de color verde. No tienen pines de ejecución en ellos, y simplemente están acostumbrados a obtener algunos datos. Los nodos de control de flujo son de color gris, con la excepción de los nodos del switch. Y estos son súper útiles para controlar el flujo de ejecución dentro de tu gráfico. A continuación tenemos variables. Hay muchos tipos diferentes de variables. Las variables sostienen un pedazo de información. El contenido de una variable se puede establecer, cambiar si lo desea, en algún lugar a lo largo de su guión. Y por último pero no menos importante, tenemos un nodo de línea de tiempo. Este es un nodo muy especial dentro de irreal que puede cambiar el valor de una variable con el tiempo. Muy bien chicos, eso lo va a hacer todo por éste. Nos vemos en la siguiente. 15. Pinos de ejecución y datos: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender más sobre y entender las diferencias entre la ejecución y las cacerolas de datos son varias no mareas dentro de los blueprints de Unreal Engine. Ahora hasta este punto del curso, me has visto trabajar con algunos de estos diferentes tipos de pin en los diversos nodos, pero no hemos tenido una discusión oficial sobre los tipos de pin. Entonces de eso se trata este video, usando algunas de nuestras impuras funciones. Aquí hay un ejemplo rápido. Echa un vistazo a esto. Tengo algunos de estos alfileres triangulares en un nodo, y también tengo estos alfileres de forma circular codificados por colores en una nariz. A estas cosas se les conoce como alfileres. ¿ Cuáles son las diferencias entre ellos? Bueno, estos pasadores de forma triangular se conocen como pasadores de ejecución. Estos pines son donde se envían señales dentro y fuera de un conocimiento dado. Ordenan al nodo que se ejecute para hacer algo. En este caso, este nodo generaría un efecto visual. Ahora, todos los nodos de eventos tienen al menos un pin de ejecución. Y es bastante crítico que los nodos de eventos lo hagan porque son los que empiezan a suceder todo el script. Entonces empezamos a jugar. Se va a iniciar un flujo de ejecución fuera de este pin y bajar este cable. Ahora es importante señalar aquí que no todos los nodos tienen pines de ejecución. Si recuerdas del último video, estos nodos de función puros no tienen pines de ejecución. Estos simplemente están destinados a generar algunos datos. Eso lleva muy bien a la discusión de lo que es un pin de datos. Bueno, volviendo aquí a nuestras impuras funciones, porque este nodo tiene muchas de ellas. Los pines de datos son pines donde los datos pueden fluir dentro o fuera de un nodo dado. Ejemplos de datos que se pueden enchufar a un nodo podrían ser números, coordenadas, objetos, ese tipo de cosas. Ahora observa que estos pines de datos, estos pines de datos de forma circular vienen en diferentes colores. Y eso es para ayudar a identificar los diferentes tipos de datos. Si me pasa el ratón sobre cualquiera de estos diferentes pines codificados por en la punta de la herramienta que aparece. Enumera los diferentes tipos de datos que se pueden introducir en él. Entonces la ubicación está buscando un tipo de datos vectorial, como es la escala. No obstante, este auto destroy está buscando un tipo de datos booleano. Ahora es posible que hayas recordado del último video que hablamos brevemente sobre variables aquí arriba, y que las variables pueden venir en diferentes tipos de datos. Las variables se pueden enchufar estos diversos pines de datos para instruir al nodo sobre qué hacer. Por ejemplo, si quisiéramos desovar un emisor en una ubicación determinada, podría enchufar una variable vectorial este pin de datos para instruir a este emisor dónde se desova. Como se puede ver como estoy arrastrando y soltando esto sobre el pin, está diciendo, Yep, Esa es una variable vectorial. Está bien enchufar eso a nuestra ubicación aquí. Ahora, si elimino esto y traté enchufar esa misma cosa en este pin auto destroy. Dirá, Nope, no puede hacerlo porque eso no es un tipo de datos compatible, no puede hacerlo. No obstante, esta variable booleana podría ser enchufada a este auto destruido porque ese es un tipo de datos coincidente. Ahora es importante entender que los nodos pueden tomar en los datos así como la salida de ellos. Por lo que este emisor de desove en la ubicación como nuestro sistema de desove en la ubicación, pueden tomar en todo tipo de datos y sí devuelve datos también. Pero echemos un vistazo a otro ejemplo de un nodo que genera una gran cantidad de datos. Voy a saltar a mi ejemplo de BP, recogiendo rápidamente aquí. Y podemos ver en nuestro propio componente comenzar evento de superposición nota aquí que puede generar una gran cantidad de datos, incluido el otro actor que es lo otro que se superpuso a este colisionador de esfera. Ahora quiero ayudar a solidificar todos estos conceptos aquí tenemos pines de ejecución versus pines de datos. Tenemos pines de entrada en el lado izquierdo de un nodo versus pines de salida. Por lo que agregué un script temporal aquí dentro de mi pastilla de ejemplo de BP. Ese es este agarre aquí mismo. Voy a eliminar esto al final de este video sólo para ayudar a demostrar este concepto. También en mi nivel tengo una instancia, una copia de mi ejemplo de recogida de BP. Actualmente en mi nivel se conoce como ejemplo de BP pickup a. El motivo por el que estoy sacando esto es porque dentro de ese blueprint justo aquí arriba, he seleccionado esto, mi ejemplo de préstamo BP, instancia de recogida como la opción de debug. Lo que quiero ver el guión para ello en realidad disparando en el trabajo. Ahora este script temporal que sumé aquí, esto va a disparar cada fotograma. Eso es lo que hace la garrapata del evento. Se va a instruir a nuestro nodo de función de cadena de impresión aquí para imprimir algo a nuestra pantalla en textos rosados. Y va a imprimir el nombre de nuestro personaje jugador. Eso es lo que estos, estos nodos también hacen aquí. Entonces esta cadena de impresión, si desenganché este cable aquí mismo, simplemente imprimiría el texto Hola. No obstante, con esto enchufado a ella, le estoy diciendo a esta función de cadena de impresión qué imprimir en la pantalla. Estamos proporcionando datos de TI de qué imprimir. Entonces aquí vamos. Voy a hacer clic en jugar aquí rápidamente. Y si muevo esto un poco abajo, ahí vamos. Se puede ver este evento tick disparando continuamente, un flujo continuo que le dice a nuestra cadena de impresión que imprima continuamente este nombre para mostrar a nuestra pantalla aquí está spammed a lo largo de la izquierda lado en textos rosados. Y ahí lo tienes. Tenemos un nodo de ejecución disparando hacia este nodo de entrada de ejecución, diciéndole esto que se imprima en la pantalla. Tenemos algunos datos que fluyen hacia este nodo diciéndole qué imprimir. Eso lo va a hacer todo por este video chicos, tenemos pasadores de ejecución, estos alfileres triangulares. Tenemos pasadores de datos, estos pasadores de forma circular codificados por colores. Tenemos pines de entrada en el lado izquierdo de un nodo. Tenemos pines de salida en el lado derecho del nodo. Eso hará todo por este video, chicos, veremos en el siguiente. 16. cableado de nodo: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender los métodos de cableado de notas juntas en irreal. Ahora, en la superficie, puede parecer que no hay mucho para esto, pero aquí hay algunos consejos y trucos sutiles que valen mucho su tiempo aprendiendo porque pueden ahorrarte una carga de bote del tiempo a lo largo de muchos días de desarrollo. Entonces, en primer lugar, hablemos de diferentes tipos de cables. Alambres blancos. Estos son cables de ejecución y fluyen entre pines de ejecución. Mantienen el flujo de ejecución yendo de un nodo a otro. Y consejo divertido aquí, si pasas el ratón sobre cualquiera de estos cables, puedes algo resaltar así para ayudar a que se destaque. Se puede ver como yo hago esto, poco doliza todos los otros cables abajo. Bastante fresco, hace que ayude a destacar. A continuación, tenemos cables de datos. Estos están codificados por colores según su tipo de datos, que de nuevo, vamos a estar aprendiendo mucho más sobre tipos de datos más adelante en el curso. Pasan a lo largo de datos de un nodo a otro. Entonces este cable rosa representa un tipo de datos de cadena. Y de nuevo, dice que en la punta de la herramienta mientras lo pasé por encima, si salto a nuestro bp ThirdPersonCharacter, podemos encontrar algunos otros cables codificados por colores. Estos cables verdes representan un tipo de datos flotador que es un número con un punto decimal. También hay un cable amarillo aquí abajo. Este es un tipo de datos vectorial. Por lo que una vez más, los cables de datos están codificados por colores según su tipo de datos. A continuación, hablemos de diferentes formas de conectar nodos juntos. Probablemente la forma más común es simplemente hacer clic izquierdo y arrastrar de un tipo de pin a otro tipo de pin similar, así. obstante, no tienes que trabajar en este delantero, esta moda de izquierda a derecha, podrías trabajar hacia atrás. Si fuera a desconectar este pin, podría hacer algo como esto. Esa es una forma completamente válida de hacerlo también. También puede arrastrar y soltar algunos nodos en otros nodos. Mira abajo aquí en mi lugar sonido nodo 2D, he desconectado temporalmente mi sonido pick-up de mi entrada de sonido aquí. Podría hacer algo como esto, donde hago clic izquierdo y arrastro esto al injerto, lo consigo, y luego lo enhela así. No obstante, ese es un proceso de dos pasos. Hagamos nuestras vidas más fáciles. Entonces debido a que esto es del mismo tipo de datos que esto está buscando, simplemente puedo arrastrarlo y soltarlo justo encima de ahí, y lo conectará automáticamente. Ese es un truco realmente práctico. Ahora esto funciona no sólo para introducir datos, sino también para la salida de datos. Entonces antes de este video, he creado una variable aquí llamada Delta segundos del tipo de datos float porque este tick de evento puede generar algunos datos de flotación. Si hago clic con el botón izquierdo y arrastro esto encima de aquí, puede automáticamente. ¿ Por qué están juntos estos dos nodos también? Ahora no hemos hablado de obtener algunos datos versus establecer los datos. Hablaremos más de eso en nuestra sección de variables. Otra forma de donde los nodos juntos es conseguir algo sensible al contexto. ¿ A qué me refiero con eso? Bueno, déjame mostrarte. Voy a seleccionar nuestra malla de cubo horizontal aquí arriba en nuestro panel de componentes. Y con eso seleccionado, voy a hacer clic derecho en nuestro gráfico aquí. Y voy a hacer una búsqueda de nodo llamado Sets material. Para que pueda poner material para mi cubo horizontal aquí. Si seleccioné este nodo de función, va a conectar automáticamente nuestro componente de cubo horizontal aquí a este nodo de función. Esto funciona no sólo en un plano de clase actor u otros planos para ese asunto. Pero aquí en nuestro Plan de Nivel puedo demostrar esto también. Así que déjame saltar de nuevo a mi mapa de pruebas aquí. Tengo mi cubo seleccionado, salta de nuevo a mi Nivel Blueprint. Eso es un recordatorio de cómo hacer eso. Con ese nodo seleccionado o con esa actriz seleccionada. Debería decir que el cubo seleccionado. Puedo hacer clic derecho y algún espacio vacío. Puedo llamar a alguna función en ese actor de malla estática. Déjame entrar en la sección de renderizado y puedo poner al actor escondido en los juegos. Entonces estoy conectando automáticamente una referencia a mi cubo, a este actor set oculto en la función de juego. Ahora como lo demostré brevemente en el último video, si intentas enganchar un pin a otro y no son compatibles, irreal te va a hacer saber al respecto. Entonces si iba a romper a mi chico de la señal aquí mismo, y traté de conectarlo aquí. Va a decir, OK, no puedo hacerlo. Evento comenzó a jugar en pin de ejecución tratando de conectarlo a una cadena int, tipo de datos de cadena, No se puede hacerlo. Larga historia, corta, Unreal te hará saber si puedes conectar esos pines o no. Ahora, hablemos de algunas formas en que se pueden cortar cables. El método más fácil es mantener presionada la tecla Alt y hacer clic izquierdo en el cable mismo. obstante, si no tienes que hacer eso en el cable mismo, podrías encontrar cualquiera de los pines que el cable esté conectando y simplemente mantén presionado Alt y haz clic izquierdo en el propio pin. No importa si es este lado o el otro lado del cable de conexión. Otra forma en la que puedes hacer esto es simplemente haciendo clic derecho sobre el nodo. Así que vamos a hacer clic derecho en nuestro nodo de cadena de impresión aquí. ¿ Y estoy haciendo clic derecho en el menú? Tengo la opción de romper enlaces de nodos. Eso lo hará. Otra forma en la que podrías hacer esto es haciendo clic derecho en el propio pin. Entonces vamos a usar este ejemplo por aquí. Tengo esta referencia de cubo dentro de mi Nivel Blueprint. Y tengo esto enganchado a dos funciones. Así que puedo hacer clic derecho en este pin sí mismo y podría romper todos los enlaces Pin. Así que ten en cuenta que lo tengo enganchado a dos nodos de función diferentes aquí. Si quisiera traer ambos cables al mismo tiempo, simplemente haga clic derecho en ese pin, rompa todos los enlaces Pin y boom, todos desconectados. Por último, mover cables de un pin a otro es uno de mis trucos favoritos. En lugar de hacer algo como esto, donde tenemos nuestra referencia de cubo y queremos engancharlo a esto. Oh, ahora queremos engancharlo a esto. Entonces tenemos que romper el alfiler e ir así. Sí, eso está perfectamente bien. Puedes hacer eso. No obstante, si mantienes presionada la tecla Control y haces clic con el botón izquierdo en el propio pin, tienes ese ícono de manecita. Puedes arrastrar y soltar eso de un pin de datos a otro, así así, amar ese truco. Eso es un enorme ahorro de tiempo, chicos correctos, que son algunos métodos diferentes para cablear nodos juntos. Eso lo hará todo por éste. Nos vemos en la siguiente. 17. Organización de nodos: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender algunos consejos y trucos de organización de notas que nos ayuden a ser más eficientes, así como a escribir scripts más limpios que se puedan leer más fácilmente. Ahora hasta este punto del curso, hemos escrito algunos guiones bastante básicos. No contienen una gran cantidad de nodos o cables. Y así la organización de nuestros nodos no es tan grande de un trato, pero a medida que te hagas más avanzado, tus scripts tenderán a incluir más nodos, incluir más alambres, y así estos organizativos opciones se vuelven o, tan importantes por el bien de legibilidad. Entonces en un plano de su elección, voy a estar dentro de mi recogida de ejemplo de BP. Vamos a explorar algunos de estos y ahora he estropeado intencionalmente alguna de la organización nodo que tenía pasando aquí antes de tiempo. Si hace clic con el botón izquierdo y arrastra, puede resaltar una selección de nodos. Alternativamente, puede mantener presionado el control y hacer clic con el botón izquierdo para seleccionar varios nodos. Una vez que haya hecho clic con el botón derecho en cualquiera de sus selecciones, puede traer en un menú contextual en una de las categorías es organización. Vamos a estar hablando específicamente de estas opciones de alineación. Y en el pequeño menú fly-out aquí se puede ver podemos alinear nuestros nodos a lo largo de la parte superior del nodo. El fondo, el medio es menos los centros, los derechos, etcétera. Todos estos tienen teclas de acceso rápido asociadas a ellas. Como se puede ver aquí. Si miras con cuidado, es Shift más W, a, S y D. Ese es el movimiento de tu personaje en el teclado que fácilmente corresponde a la parte superior, inferior, izquierda y derecha. Bastante práctico. Así que voy a alinear a lo largo de la parte superior aquí, pero hay un poco de matiz con alinear que debes saber. Entonces déjame seguir adelante y hacer esto. Se puede ver cómo alinea todos estos nodos a lo largo de la parte superior. Pero entonces la pregunta se convierte, bueno, ¿cuál de estos nodos que decide alinear dos? Hagamos esto otra vez. Moviendo esto un poco fuera de kilter. Vas a hacer la selección de control de estos nodos. Así que tengo 1234. Así que ten en cuenta que Destroy Actor aquí fue el último nodo que he seleccionado. Ahora si hago clic derecho, voy a alinear otra vez por la parte superior. Y ten en cuenta que lo alinea todo de acuerdo con el último nodo que hayas seleccionado. Ahora acabamos de hacer alineando por la parte superior allí, pero se puede imaginar lo que hace alinear a derecha, izquierda o inferior. A continuación, quiero hablar de enderezar conexiones. Muchas veces, a medida que tus scripts se vuelven cada vez más complejos, puedes tener nodos un poco acurrucarse en un área, tal vez curling de nuevo así. No, es un poco así. Cableado de todo tipo de formas raras. Enderezar las conexiones es una forma de hacerlas lucir muy limpias. Si resalto estos dos nodos ¿verdad? Así y con el botón derecho del ratón, se puede ver que la tecla de acceso rápido para enderezar conexiones es la tecla Q. Y si hago eso, se puede ver cómo endereza esa conexión cableada. Ahora aquí también, hay un poco de matiz. La primera selección que hicimos, y permítanme simplemente sacarlos de kilter. Una vez más. La primera selección que hicimos es el nodo que quieres enderezar. La segunda selección que realizamos. En este caso, va a ser nuestro nodo de cadena de impresión. Ese va a ser el pin del nodo que queremos enderezar dos. Por lo que nota esto haciendo clic derecho. Hacer alinear Q. nos hemos enderezado a ese pin, este nodo, nos enderezamos a ese pin. A continuación, he saltado a mi Plan de Nivel donde he estropeado intencionalmente la organización de algunos de mis nodos variables poder demostrar distribuirlo verticalmente. Lo primero que voy a hacer es hacer clic izquierdo y resaltar todos estos nodos variables. Y quiero que se alineen a lo largo de la izquierda primero. Entonces manteniendo presionada Shift, voy a presionar la tecla a porque Shift plus a es la tecla de acceso rápido para alinear a lo largo de la izquierda. Como se puede ver verticalmente, no se ven muy uniformemente espaciados. Entonces hay una opción para eso también. Voy a hacer clic derecho en cualquiera de mis notas resaltadas que quedan aquí. Todos son alineaciones resaltadas y podemos distribuir verticalmente. Y lo que eso va a hacer es que los va a espaciar uniformemente entre el nodo más alto que he seleccionado y el nodo inferior más que he seleccionado. Así que compruébalo. Los espació uniformemente entre mi nodo más seleccionado superior y mi nodo más seleccionado inferior. Organizar notas horizontalmente no es lo que es diferente. Entonces aquí tenemos algunos nodos de control de flujo que están un poco fuera de kilter. Voy a hacer clic izquierdo y arrastrar para resaltar estos cuatro. Lo primero que voy a hacer es mantener presionada Shift y presionar la tecla W para alinearlas a lo largo de la parte superior aquí. Y luego con todos estos resaltados, puedo hacer clic derecho en cualquiera de esos cuatro que se resalten. Podemos ir a la alineación. Podemos distribuir horizontalmente a uniformemente, espaciarlos. Ahora, con estos nodos seleccionados, hay un par de formas diferentes en que podemos ir sobre moverlos. Se puede ver que tengo a los cuatro seleccionados. Puedo seleccionar cualquiera de ellos y mover las cuatro vueltas así. No obstante, también puedo usar las teclas de flecha. Así que ahora mismo estoy presionando hacia abajo en las teclas de flecha, izquierda, derecha, y arriba, eso moverá los nodos también. Algo más se puede notar que tengo en un par de los nodos. Aquí hay un comentario, un comentario sobre algunas de las teclas de acceso rápido asociadas con traer algunos de estos nodos a tu gráfico. ¿ Cómo se obtiene un comentario de nodo? Bueno, es sólo cuestión de hacer clic con el botón derecho en la nota misma. Y ahí puedes dejar un comentario de nodo. Me gustaría hacer esto a veces con teclas de acceso rápido, particularmente cuando estoy creando videos como este. En cualquier momento que quieras dejar un recordatorio para ti mismo sobre lo que hace un nodo, o tal vez algún caso especial con el que se trata el nodo. Hacer clic derecho sobre él y agregar un cometa nodo es bastante útil. Hablando de comentarios, tal vez veas, nota si quieres, que tengo este cuadro de comentarios alrededor de toda esta selección de nodos. Bueno, ¿cómo conseguí eso? Bueno, eso es simplemente cuestión de, déjame simplemente mover estos nodos todos fuera de aquí. Voy a eliminar eso. Puedes hacer clic con el botón izquierdo y arrastrar para crear esta selección de marquesina alrededor de todos tus nodos. Con todos ellos seleccionados, puede tocar la tecla C para crear un cuadro común. En el momento en que hagas esto, puedes ver más en el panel Detalles, puedes darle un nombre a tu cuadro de comentarios. También puedes nombrarlo aquí arriba también. Déjame simplemente mover estos nodos hacia abajo porque se está superponiendo un poco. También puedes hacer doble clic en ese nombre justo ahí mismo para renombrarlo y también tener acceso a tu comentario. Detalles aquí, voy a llamar a este control de flujo. También le das un color a la caja de aquí mismo. Algo verde. Tal vez. También puedes cambiar el tamaño de la fuente. Esto es realmente útil para cuando te alejas con zoom así. Tal vez quieras algo así. Ahora otra opción realmente útil con esta burbuja de nodo de comentarios es que tienes este movimiento en modo. Actualmente, si tuviera que seleccionar mi cuadro de comentarios, puedo mover todos los nodos porque mi modo de movimiento está configurado en movimiento de grupo. No obstante, también puedo cambiar esto solo el cuadro de comentarios en sí. Y puedo mover sólo el cuadro de comentarios personalmente, me gusta el movimiento grupal. Por lo que otra forma de crear un cuadro de comentarios sería resaltar algunos nodos así. Y como te imaginas, el menú contextual te dará una opción para crear un cuadro común también. Voy a seguir adelante y hacer eso y llamaré a estos mis nodos de bucle. Y esto también demuestra que se puede tener un cuadro de comentarios en lado de otro cuadro de comentarios. Para que pudiera moverme por estos nodos así, así como mover todos estos nodos alrededor. Permítanme cambiar esto de nuevo a movimientos GRU, incluyendo la selección de comentarios dentro de él. Y por último, ningún video de organización de nodos puede estar completo sin hablar de nodos redireccionados y su importancia dentro de los planos. Para demostrar el nodo rerutado, estoy en mi muro de blueprint, de Scott, que puedes encontrar a partir de la fecha de hoy de todos modos, en la carpeta de contenido de inicio Blueprints, de nuevo, puedes demostrar esto en cualquier plano, pero dentro aquí, se ve esto muchas veces en guiones donde consiguió algunos cables cruzando otros cables, alambres pasando por nodos, este tipo de cosas. ¿ Hay alguna manera de que puedas redirigir que el cable? Sí, puedes. Y eso es a través de algo llamado nodo redireccionado. ¿ Qué hace el nodo de redireccionamiento? Es esencialmente un punto definido, una banda, si se quiere, que se crea en un cable. Para llevarlos, simplemente puedes hacer doble clic en cualquier cable como tal. Haga doble clic en esto aquí mismo hay un nodo redireccionado. Simplemente continúa el flujo de datos. En este caso, también puede agregar nodos de redireccionamiento para los cables de ejecución, así. Es genial para hacer este tipo de cosas en las que estás doblando esto para que quede más claro hacia dónde va esto en lugar de cruzar las cosas. También puedes traer un nodo redireccionado arrastrando fuera de algo y escribiendo en re rutas, puedes agregar un nodo redireccionado así. Y se puede ver que este punto se ilumina aquí mismo, este componente, si se quiere, está enchufado a múltiplos de estos. Siempre y cuando se esté alimentando en una nota de redireccionamiento, podría hacer algo como esto también. Esta es una forma completamente válida de hacer eso. No importa en este caso si estoy arrastrando la luz puntual desde aquí o desde el punto donde se está redirigiendo. Ambos son formas válidas de hacerlo. Por lo que el nodo redireccionado súper práctico amaba tanto. Y la forma más sencilla de conseguirlos es simplemente hacer doble clic en un cable. Chicos que lo van a hacer por este video sobre organización de nodos, por favor dominen estos consejos y trucos. Te lo agradecerás más tarde. 18. Level BP - Referencias de objetos de tiempo del diseño: Bienvenidos de vuelta a todos. En el transcurso de los próximos videos aquí, vamos a estar hablando de uno de los conceptos más clave y esenciales en todos un blueprint scripting. Y así es como crear una referencia de objeto. Ahora, este es un concepto tan importante y lo estamos llegando antes hablar incluso de eventos, funciones o variables. Porque tanto de blueprints scripting se centra en la manipulación de objetos de alguna manera. Por ejemplo, si fueras a caminar sobre una nueva recolección de armas, Bueno, no puedes recoger esa arma sin tener una referencia a ese objeto. Tal vez dispares un tanque con un lanzacohetes. Bueno, no se puede destruir ese tanque sin una referencia a ese objeto a ese tanque. O tal vez quieras recoger algún artículo cosechable para elaborar alguna Espada Maestra, por así decirlo. Bueno, no se puede recoger ese artículo sin tener una referencia a ese objeto. Ahora vamos a estar hablando de cómo crear estas referencias de objetos no solo en planos de nivel, sino en planos de clase, y no sólo durante el tiempo de diseño, es decir antes de que el juego se ejecute, también durante tiempo de ejecución, es decir, mientras el juego se está ejecutando. Muy bien, por lo que crear referencias en lado de nuestro Plan de Nivel. En primer lugar, solo quiero señalar que más en mi pestaña de niveles aquí, estoy trabajando en mi Nivel Persistente. Y tengo tres objetos que se han agregado a este nivel persistente, un cubo, mi pickup BP, y mi blueprint Construction Script también. Y sólo para martillar a casa el punto de que estos se sumaron a mi nivel persistido, mi mapa de pruebas de nivel, si se quiere. Solo voy a hacer click en este globo ocular para activar y apagar eso para que puedas ver que sí, efectivamente, sí existen dentro de este mapa de prueba de nivel, que de otra manera se conoce como mi Nivel Persistente. Voy a volver a mi outliner aquí y voy a seleccionar los tres objetos. Ahora, puedes seleccionar los tres aquí en tu puerto de visualización manteniendo presionada la tecla de control y pulsando la izquierda 123. Alternativamente, si hago clic fuera de ella por un momento, puedo seleccionar los tres aquí en mi outliner también, 123. Y se pueden ver los tres de esos objetos se esbozan aquí en el Viewport. De acuerdo, ahora vamos a saltar a nuestro Plan de Nivel entrando bajo nuestro botón de blueprint aquí. Vamos a abrir nuestro Plan de Nivel, pesar de que ya lo tengo abierto a través de la parte superior. Y algo que quiero señalar aquí que actualmente mi bajo Blueprint, tengo dos gráficos de eventos. Uno llamado Event Graph, que uno estaba allí por defecto, y otro llamado tipos de nodos. Creé éste cuando hablaba de los diferentes tipos de nodos. Ahora la razón por la que estoy mencionando eso es porque dentro de mi nodo tipos gráfico de eventos, tengo este evento comience a jugar. Solo puedes tener un evento comience a jugar por Nivel Blueprint. Entonces si iba a trabajar en esta pestaña Gráfico de eventos y hacer clic derecho y hacer una búsqueda de Begin Play. Y haga clic en esto. Me va a saltar de esta pestaña Gráfico de eventos de vuelta a mi pestaña de tipo de nodos. Ahí está. Ahora también tengo que funcionar nodos por aquí. Tengo un nodo de retardo que va a retrasar por tres segundos y luego un nodo Destroy Actor. Así que esencialmente lo que estoy mirando, buscando hacer aquí es al comenzar el juego, vamos a retrasar tres segundos y luego vamos a destruir a un actor objetivo. Bueno, ¿qué actores queremos destruir? Bueno, tengo estos tres seleccionados aquí atrás en mis puertos de vista. Entonces vamos a crear una referencia a eso dentro de nuestro Plan de Nivel. Ahora, si hago clic derecho y algún espacio vacío aquí, parece que no los veo aquí mismo, sin embargo, hay un atajo para esto. Puedo mantener presionada la tecla R o como en Robert, clic izquierdo y boom, las tres de esas referencias se agregan a pesar de que se superponen entre sí. Para que puedas separarlos. Al igual que así. Ahora, esa es mi forma preferida de agregar una referencia a algo que existe dentro de tu nivel, dentro del Plan de Nivel. No obstante, si vuelvo aquí y selecciono solo un objeto, esto voy a seleccionar mi ejemplo de recogida. Voy a volver a mi Plan de Nivel. Puedo hacer clic derecho aquí. Y cuando solo tienes uno de ellos seleccionado en tu menú contextual, tu tercera opción hacia abajo, puedes crear una referencia a eso también. Cualquiera de los dos métodos va a hacer personalmente, me gustó el atajo de mantener presionada la R, R como en la tecla Robert y clic izquierdo. Ahora tengo dos referencias aquí a mi recogida de ejemplo de BP. ¿ Está bien tener más de una referencia al mismo actor, el mismo objeto? Sí, eso está perfectamente bien. Ahí simplemente duplicados con los que estás hablando. Lo mismo. Sólo voy a eliminar uno de ellos por aquí por el momento. Para que como se puede ver, todos estos actores son del nivel persistente, mi mapa de prueba de LV. Y puedo conectar los tres a mi Destroy Actor. Y se puede ver que puedo conectarlos hacia adelante y atrás. Así que de nuevo, obtener una referencia de objeto es súper importante porque tanto un blueprint scripting implica manipular a los actores de alguna manera. En este caso, sólo vamos el método de fuerza bruta de destruir al actor. Entonces si juego mi juego ahora, déjame solo en primer lugar compilar mi blueprint aquí para ver si hay algún error con mi guión. Guarda eso de inmediato. Adelante y haz clic en Jugar aquí mismo. Y se puede ver después de tres segundos, los tres actores son destruidos. Ahora, crear referencias de objetos es genial, no sólo porque se puede afectar al objeto en sí, sino que también puede afectar las cosas ese objeto en un nivel más granular. Déjame mostrarte lo que quiero decir. Voy a deshacerme de esta función Destroy Actor aquí mismo. Y con mi recogida de ejemplo de BP, si vuelvo a donde está esto en mis carpetas aquí, tengo algunos componentes aquí con los que puedo hablar directamente. Estos existen dentro de mi pastilla de ejemplo de BP. Y quiero afectar esta colisión de esfera. Este es actualmente mi componente raíz. Entonces voy a cambiar la escala de este componente raíz. Todos estos otros componentes están unidos a la raíz. Entonces si escalo esto, estos también se van a escalar. Entonces como este audio uno, pero ese está actualmente vacío y francamente ya no lo necesito. Entonces déjame seguir adelante y eliminar eso de ahí, compilar y guardar eso. Muy bien, déjame saltar de nuevo a mi Plan de Nivel. Y voy a arrastrar fuera de mi ejemplo recoger aquí. Y voy a hacer una búsqueda de colisión de esfera. Y quiero ir al fondo. A menudo, cuando estás buscando algo que existe dentro de ese blueprint, está en el fondo. Y quiero conseguir mi colisión de esfera porque quiero hacerle algo. Y luego fuera de esto, voy a arrastrar fuera de aquí y escribir en conjunto escala mundial 3D. Entonces esta función hace lo que crees que hace va a escalar este componente de escena, ese es el objetivo. Voy a establecer la escala para que sea tres veces más grande en las coordenadas x, y, y z. Entonces haremos esto después de tres segundos. Y de nuevo, todos los demás componentes de la cruz verde, si se quiere, lo que está unido a este componente de colisión raíz esfera. Entonces al escalar esto, todo debería escalar tres veces más grande también, incluyendo esa cruz verde. Así que déjame compilar esto para asegurarme de que mi guión esté bien. Vamos a seguir adelante y hacer clic en Jugar. Entonces después de tres segundos, deberíamos ver este cambio. Whoops, y accidentalmente hice clic fuera de la ventana. Déjame intentarlo una vez más. Centrándose en esa cruz verde, boom, tres veces más grande. Vamos a probar algo más aquí. Nuevamente usando nuestra pastilla de ejemplo de bp, déjame simplemente eliminar algunos de estos nodos innecesarios aquí. Voy a eliminar a estos tipos. Dentro de nuestro ejemplo de pb pickup. Tenemos esta variable de sonido pick-up, y actualmente está configurada para este tipo de interplay de sonido. Ahora voy a cambiar esto a un sonido tipo explosión. Y puedo hacer eso dentro de mi Plan de Nivel siempre y cuando tenga una referencia a este actor que existe en el nivel. Así que una vez que tenga una referencia a esto, voy a arrastrar un cable fuera de esto y escribir en sonido pick-up. Puedo conseguir ese sonido o puedo poner ese sonido. Déjame seguir adelante y ponerlo. Y ahora puedo cambiar el contenido de esa variable a otra cosa. Vamos a seguir adelante y cambiarlo a explosión. Y lo haré para que fuera de Event Begin Play. Simplemente estoy cambiando el valor de esta variable, esta variable de sonido pick-up, de este sonido de interacción a un sonido de explosión. Muy bien, así que una vez que juegue, vas a escuchar una explosión. Ahora, cuando recojo esa recogida de salud, un par de otros interesantes tidbits de información pensé que mencionaría mientras estaba aquí con este ejemplo referencia de recogida en nuestro Nivel Blueprint, si tuviera que hacer clic derecho en esto, puedo encontrar a este actor en un nivel. Así que si alguna vez te estás preguntando, Oye, ¿ dónde existe esta cosa en mi nivel, puedes seguir adelante y hacer clic derecho, haz click en esto y salta de nuevo a tu pestaña de nivel, y te saltará directamente a ella. Algo más dentro de tu Nivel Blueprint que podrías hacer es dejarme un poco fuera de donde está esta referencia. Di que me voy en tierra de nadie. Puedo venir bajo Ventana. Puedo entrar debajo, encontrar resultados en, en esta ventana de resultados finos, solo puedo escribir, vamos a escribir en pickup. Y puedo encontrar mi ejemplo de recogida de BP justo ahí. No me di cuenta de que iba a encontrar mi sonido de pick-up también, pero en efecto eso tiene la palabra pickup en él. Simplemente hacer doble clic en esto me saltará derecho a donde está esa referencia objeto. Bastante dulce. Muy bien chicos, así que ahí está cómo puedes agregar algunas referencias de objetos dentro de tu Nivel Blueprint, asegúrate de que tienes los objetos seleccionados aquí y tu nivel. Y luego puedes hacer clic derecho y algo de espacio vacío y crear una referencia a él, o bien algo de espacio vacío y crear una referencia a él, mantener presionada la tecla Alt y hacer clic con el botón izquierdo, que te llevará allí también. Eso lo hará todo por este video, chicos. Nos vemos en la siguiente. 19. Level BP - Ejecutar referencias de objetos de tiempo: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender a crear referencias a objetos dentro de tu Plan de Nivel en tiempo de ejecución. Esto difiere de las referencias de objetos de tiempo de diseño en que será capturar y contener referencias a diversos objetos mientras jugamos el juego. Recuerde que el tiempo de diseño es antes de que el juego se esté ejecutando. El tiempo de ejecución es mientras el juego se está ejecutando. Ahora un caso de uso común para esto son objetos o enemigos que se engendran en el juego mientras jugamos. Quizás después de que un objeto o enemigos engendran en tu nivel, quieras afectarlo de alguna manera. Para ello, se debe crear una referencia para ese objeto. Debe contener esa referencia dentro de una variable. Muy bien, vamos a empezar aquí dentro de nuestro mapa de pruebas de nivel. Y sólo para hacer las cosas súper claras, sobre n Mi pestaña de niveles abiertos, tengo mi nivel persistente como el nivel azul, el nivel actualmente activo. Voy a estar agregando objetos de aquí en a mi Nivel Persistente, no voy a estar haciendo más trabajo dentro de mi subnivel. Entonces sólo quería dejar eso claro. Si desea que esto sea el nivel activo, puede hacer doble clic en él o alternativamente hacer clic derecho sobre él y hacer actual esa fuente azul muestra que ese es su nivel actual. Vamos a estar agregando un actor a este nivel. Y para ello, voy a venir bajo mi rápidamente agregando al botón Proyecto en el menú desplegable todas las clases. Y estoy buscando un actor de notas. Así que voy a hacer clic izquierdo y arrastrar esto a mi nivel y colocarlo justo por aquí. Ahora, en conocido actor, si estás jugando el juego, en realidad no ves este ícono por aquí. Simplemente estoy usando a este actor como una forma de definir un punto en el espacio donde quiero engendrar algo. Ahora nota, actualmente tengo seleccionado mi nota actor, y puedo ver que la tengo seleccionada aquí en mi outliner. Por favor, asegúrate de que sí tienes esto seleccionado porque vamos a estar creando una referencia de objeto de tiempo de diseño para esto aquí en tan solo un segundo. Entonces subiendo debajo de mi botón Blueprints aquí, voy a saltar al Plano de Nivel, pesar de que lo tengo abierto aquí, así es como puedes volver a saltar a tu Nivel Blueprint. Y lo que voy a hacer es que voy a saltar a mi pestaña E Event Graph justo por aquí. En algún espacio vacío, voy a crear una referencia de tiempo de diseño a ese actor de nota. Voy a mantener presionada la tecla R y clic izquierdo. Entonces me viste hacer esto en el último video. Esa es una referencia del tiempo de diseño. Ahora, voy a volver a esto en un momento, pero necesito una clave de evento. Voy a hacer clic derecho y algún espacio vacío y escribir en el botón uno. Voy a agregar un evento de teclado para cuando presione la tecla unica en mi teclado. Y muchas veces esto, una vez que presiono este botón, voy a arrastrar fuera de este y tipo en el actor de desova de clase. Esta es una función súper práctica, no, que va a desovar en algo que le decimos desde este desplegable. ¿ Qué queremos desovar aquí? Voy a desovar en algo visual. Vamos a desovar en este efecto blueprint fuego. Esto viene del Starter Content Pack. Nuevamente, si no tienes este paquete constante cuando estás poniendo este curso juntos, cualquier cosa hará algo visual. Entonces realmente no importa lo que pongas. Aunque voy a elegir el fuego. No obstante, sí necesito decirle esto donde quiero que esto engendra y ahí es donde entra esta transformación de desova. Y tengo que conectar algo a esta entrada de transformación para que sepa qué desovar y luego dónde. Entonces para eso se va a utilizar esta nota actores. Voy a arrastrar fuera de esto y tipo en conseguir transformarse actor. El transformado es la locacional, la rotacional, y en realidad la información de escala para este actor nodo. Pero realmente sólo nos importa la información locacional. Por lo que está bien que utilicemos toda la transformación aquí. Conecta esto a mi transformación de desova. Y es aquí donde vamos a crear una referencia de objeto en tiempo de ejecución. Vamos a estar almacenando algo dentro de una variable mientras el juego se está ejecutando. Entonces fuera de este valor de retorno aquí, puntero sobre el pin, dice que devolverá una instancia de este blueprint, el objeto fuego. Ahora quiero almacenar esto en una variable para que pueda afectarlo de alguna manera mientras el juego está jugando. Por lo que voy a hacer clic derecho en este pin y escribir en Promover a variable. Entonces al hacer esto, más en mi sección de variables, he creado un nuevo efecto de blueprint fire. Pero necesito darle un nombre a esto. Voy a llamar a este promovido fuego promovido. Ese es un buen nombre. Entonces a pesar de que esta es una variable, puedo compilar esto también. Actualmente, cuando compilo esto, miro el valor predeterminado en y dice, Ok, esto va a ser de este sitio de blueprint es Blueprint fire effect, tipo fire. Pero ahora mismo no tenemos nada dentro de aquí. No obstante, una vez que presiono la tecla única, esto generará a ese actor en esta ubicación y luego lo colocará dentro de esta variable. Esencialmente contendrá dentro de este contenedor mientras estamos jugando el juego. Ahora simplemente vamos a hacer esto en tiempo de ejecución para que luego podamos destruirlo. Por lo que abajo aquí abajo, voy a hacer clic derecho tipo en las dos teclas, dos entradas. Se bajarán hasta el evento teclado a tecla. Y fuera de esto, voy a arrastrar hacia fuera tipo in, Destruye Actor. Es una función muy visual. Por eso me gusta tanto cuando estoy poniendo estos cursos juntos. Y entonces va a decir, ¿qué objeto te gustaría destruir a qué actor? Bueno, puedo simplemente arrastrar y soltar esto a la derecha en el objetivo para instruirlo para destruirlo. Ahora nota que si iba a saltar y jugar y presionar las dos teclas, de hecho, lo haré ahora sólo para demostrar algo. Jugando el juego. Déjame ver si puedo poner esto en una ventana lateral aquí. Pueden ver mis guiones. Voy a presionar sólo las dos teclas para, to, to, to, to, whoops, tengo que seleccionar una opción de debug aquí arriba. Vamos a elegir mis mapas de prueba para que podamos ver el flujo de ejecución aquí. Y así estoy presionando esas dos teclas y se puede ver ese pulso hacia la izquierda ahí mientras presiono las dos teclas. Pero mira esto. Cuando golpee a Escape, voy a ser lapso con algunos errores. Y la razón por la que estoy recibiendo un error es porque está diciendo, Hey, no podemos encontrar nada dentro de esta variable. Estamos tratando de destruir esta cosa, pero no hay nada ahí dentro. Entonces la razón de eso es porque actualmente no hay nada almacenado aquí. No obstante, cuando presionemos el wonky, engendraremos a un actor que blueprint efecto fuego, y luego lo almacenaremos dentro de esta variable. Hemos creado una referencia de objeto almacenada dentro de esta variable. Así que intentemos esto de nuevo. Haciendo clic en jugar. Entonces mi actor de notas fue una ronda por encima del lugar donde la cabeza de mi personaje está aquí. Entonces voy a presionar una tecla. Ahí está ese efecto de fuego que acaba de aparecer en. Y voy a presionar las dos teclas desaparecidas. Y puedo volver a presionar la tecla unica. Otra instancia de ese firewall, poblar esa variable, presione la tecla F2, se ha ido. Ahora algo más que vale la pena señalar aquí, voy a saltar de nuevo a mi mapa de pruebas de nivel. Y voy a cambiar mi opción de juego aquí, haciendo clic en estos tres puntos. Cambia para estar reproduciendo no en una nueva ventana del editor, sino en esta ventana gráfica seleccionada. Estoy haciendo esto porque si miras en el outliner, sobre el lado derecho, cuando presiono la tecla única, realmente vas a ver que el actor se engendra en mi lista de objetos más en el outliner. Así que compruébalo. Puedes oprimir la tecla única. Ves el efecto de blueprint fuego aparece justo encima de mi ejemplo de BP. recogida dos va a destruirla uno a uno. Y sólo para señalarlo ahí fuera está en el Outliner justo ahí. Vamos a probar un segundo ejemplo aquí. Justo aquí arriba voy a colocar debajo de volúmenes, volumen disparador, un volumen de gatillo justo enfrente de donde va a desovar mi personaje. Y sólo voy a dimensionarlo un poco para asegurarme de que mi personaje tenga un tiempo fácil solapando esto. Voy a recogerlo ligeramente del suelo. Después con eso seleccionado, voy a saltar a mi Planeta de Nivel aquí, y voy a hacer clic derecho añadir un evento para cuando solaparemos este comienzo, superponerlo. Y de nuevo se dispara evento de volumen como este está en actor comenzar solapamiento nos puede decir quién es el otro actor que se superpone hace lo que voy a hacer los que voy a hacer clic derecho en este pin y voy a promover esto a una variable. Y al hacer eso, nos puede dar un nombre. Está incumpliendo el nombre aquí para mí a otro actor. Porque antes de grabar este video, había ingresado eso como nombre. Aunque puedes presionar F2 en eso para cambiarle el nombre. Entonces una vez que solaparemos esto, puede almacenar una referencia a este actor que lo superpuso durante el tiempo de ejecución en cuanto a quién era el otro actor. Sólo para asegurar que sabemos que de hecho se está superponiendo se lleva a cabo. Sólo voy a tocar un sonido, escuchar cualquier sonido va a hacer. Yo también voy a sacar el sonido aquí. Vamos a jugar seguro. Un obturador de cámara, esto son sólo dos. Notifíquenos, es algo de hecho ha sucedido. Entonces eso es genial. Pero supongamos que cuando nuestro personaje tiene superposición ese volumen disparador eso, es decir, oh, eso es negativo de alguna manera. Tal vez esa sea una especie de nube de gas venenosa que nos va a encoger. Entonces, una vez que tenemos una referencia a nuestro actor aquí, podemos afectarlos de alguna manera. Entonces voy a arrastrarme de aquí y traer una referencia a mi otro actor. Y fuera de esto voy a escribir en la palabra escala. Vamos a establecer la escala de actor 3D. Y presionaré valores 0.5.5.5 en cada uno de estos. Así que vamos a saltar, en juego aquí. Una vez compilar, compila, voy a revisar para asegurarme de que mi guión esté todo bien. Vamos a jugar. Tengo mi mapa de prueba establecido como mi objeto predeterminado que estoy depurando aquí. Para que podamos ver estos guiones disparando. Aquí está mi ventana de jugador. Entonces justo delante de mí, ese volumen de disparador invisible. Me oyó solapar eso. En ahora. El otro actor ha sido poblado durante el tiempo de ejecución aquí. Por lo que en cuanto presiono la tecla, el otro actor, también conocido como yo en este punto, actúan o escalan se va a fijar a tamaño medio. Aquí vamos. Estoy presionando la tecla unica ahora mismo. Boom, abajo. Yo voy. Un ejemplo más aquí. Antes de cerrar esto, vamos a mostrar cómo crear múltiples referencias a los actores durante el tiempo de ejecución. Actualmente he duplicado mi ejemplo de recogida aquí. Puedes hacerlo simplemente arrastrando y soltando instancias individuales o por alt, haciendo clic izquierdo y arrastrando sobre una de ellas para crear otra instancia. Así que de vuelta en mi plano de nivel fuera de mi evento 16k, lo que voy a hacer es que voy a arrastrar en un cable y escribir, consigue a todos los actores de clase. Y en la clase de actores, puedo muesca en mi pick up mi recogida de ejemplo de BP. Y esto puede dar salida a todas las instancias de ese actor. Por lo que voy a hacer clic derecho en este pin de actores fuera. Voy a promocionar esto a una variable y llamar a esto mis actores de recogida. Es una matriz. Nuevamente, sé que no hemos hablado de tipos de matrices, pero una matriz es esencialmente una lista de un tipo de variable, en este caso, son la recolección de ejemplo de BP. Se va a almacenar a todos los que están dentro de aquí para que podamos afectarlos de alguna manera. Y lo que les vamos a hacer es arrastrar fuera de este pin y escribir para cada bucle. Y de nuevo, tengo un video dedicado al bucle para cada que viene. Entonces si no sabes lo que es eso en este momento, no es un gran problema. Entonces por cada artículo de esta lista que guardamos aquí, vamos a hacerle algo. Y lo que queremos hacer es por cada elemento de esta lista, el elemento array, vamos a obtener el nombre para mostrar. Y luego vamos a imprimir esto en la ventana de nuestro jugador, engancharlo así. Haga clic en este menú desplegable. Voy a cambiar esto a unos textos de color rosa porque hace que destaque un poco más. Entonces esencialmente lo que está pasando aquí es en cuanto presione la tecla única, vamos a hacer una búsqueda de todos los actores de una clase dada que existe en mi nivel. Y los vamos a estar almacenando mientras estamos jugando el juego en Runtime dentro de esta variable array, todos van a ser de este tipo de variable, mi tipo de recogida de ejemplo BP. Y luego para cada elemento de esta lista, vamos a imprimir su nombre para mostrar a la pantalla. Vamos a seguir adelante y darnos una obra de teatro. Y una vez más, tengo mi mapa de pruebas de nivel enumerado aquí. Se acres, incrementa ese número cada vez que juego el juego. Entonces eso es lo que es ese número. No tienes que preocuparte por lo que significa ese número. Justo aquí vamos. Haga clic y juega. Ahora nota en la parte superior izquierda aquí, al presionar la tecla unica, vas a ver que el flujo de ejecución pasa por aquí. Y enumera las cinco instancias de mi ejemplo de recogida. Puedo hacerlo una y otra vez y otra vez. Sólo te estoy haciendo spam ahora mismo. Ahora si ya sabes aquí atrás en mi Nivel Blueprint, si hago clic en mi lista de actores de recogida aquí en el editor. Bueno, aquí no hay nada. Una vez más, estamos poblando el contenido de esta variable durante el tiempo de ejecución, lo estamos capturando dentro de esa variable. Así que hagamos algo fuera de los dos eventos aquí. Vamos a fijar la vida útil del centro comercial Shelley. Entonces, una vez que tengamos una referencia a esa lista de actores, entonces puedo agarrar esa lista de actores, arrastrarla y soltarla. Saquémoslo de esto. Voy a escribir para cada bucle, vamos a hacer algo por cada elemento de esa lista. Y lo que vamos a hacer es fuera de los elementos de la matriz. Entonces esto es por cada elemento de esa lista, voy a establecer su vida útil. Nuevamente. Cada uno de estos tiene una propiedad de vida dentro de ellos que podría afectar. Voy a cambiar esa vida para que sea de dos segundos. Muy bien, y déjame encoger esto un poco. Tengo mis mapas de prueba establecidos como mi opción de depuración. Voy a hacer clic en Play. Permítanme simplemente mover esta ventana de juego y aquí abajo un poco, presionando la tecla única para poblar esa lista de variables. Ahora se ha poblado. Así que cuando presiono las dos teclas, uno a ido. Entonces ahí todos lo tienen. Algunas de las muchas maneras en que podrías ir sobre la creación referencias de objetos en tiempo de ejecución dentro de tu plan de nivel. Hablamos de cómo hacer eso fuera de un actor de desove del nodo de función de clase. También al solapar un volumen de disparador, también podríamos golpear otro objeto así que lo haría. Además, hablamos de cómo hacer esto fuera de un, conseguir todos los actores de la función de clase. Así es como se puede conseguir múltiples actores. Hay otras formas de estar seguro, pero ojalá esto les dé una grilla, lo siento, chicos, que lo hagan todo por este video. Nos vemos en la siguiente. 20. Clase BP: referencias de objetos de tiempo del diseño: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender a crear referencias a objetos de nivel dentro de un Plan de Clase. Ahora al hacerlo, podremos escribir guión dentro un blueprint de clase que puede afectar a objetos de nivel, las cosas se colocan aquí en nuestro nivel. Este es un truco realmente práctico para conocer e irreal para crear un sistema de ajuste simple por nivel. Así que vamos a estar haciendo eso, aunque sólo un poco de un descargo de responsabilidad aquí, este va a ser un sistema de ajuste súper simplificado y estoy usando cotizaciones aéreas aquí. De acuerdo, vamos a empezar en nuestra carpeta de resumen de scripts de contenido. Y encima en algún espacio vacío, voy a hacer clic derecho y voy a crear una nueva clase de blueprint. Esto se va a basar en una clase de actores porque vamos a estar colocando esto dentro de nuestro nivel. Por lo que voy a estar nombrando a este subrayado BP L V, que va a representar ajustes de subrayado de nivel. Entonces voy a hacer doble clic en esto para abrirlo. Y voy a añadir un componente aquí, y voy a añadir un cartelera componentes. En este cartelera componentes por defecto nos da este tipo de cabeza de dragón tipo de icono de Sprite. Esta es la con la que voy a rodar. Podrías cambiar esto para ser otra cosa, pero esto va a designar en mi nivel que hey, este es tu actor de ajustes de nivel BP. También voy a hacer de esto la raíz de esto porque quiero deshacerme de ese icono de raíz de escena predeterminado. Así que déjame arrastrar y soltar esto justo encima de ahí. Eso lo va a convertir en la raíz y por lo tanto el único icono IC. Por lo que ahora si coloco esto a mi nivel, puedo ver este pequeño icono de cabeza de dragón. Sí, las cabezas de dragón van a representar mi configuración de nivel con el fin de que el panel Detalles. Si haces una búsqueda de tablero de facturas y otra vez, tienes que tener esos planos de configuración de nivel seleccionados. Puedes bajarlo a la escala de cartelera del editor. Voy a cambiar esto para que sea algo así como diez veces el tamaño habitual. Sólo para que esto realmente se destaque. Este actor no se verá cuando juegues el juego, pero por algo así como un actor de ajustes de nivel, me gusta hacer esto muy prominente, muy fácil de ver. Y de nuevo, no se ve eso en el juego, así que ahí no se preocupe. Muy bien, lo siguiente que vamos a estar haciendo es crear una variable dentro de nuestro blueprint de ajustes de nivel aquí. Entonces bajo la sección de variables que se encuentra dentro del panel Mi Blueprint, variables. Además, vamos a agregar una variable llamada Música. Y vamos a cambiar el tipo de variable aquí de un booleano a ambiente. Sonido, sonido ambiental en referencia de objetos. Ahora más en el panel Detalles, dice hey, compilar esto para establecer un valor predeterminado. Entonces voy a hacer eso. No obstante, voy a dejar esto en blanco. Vamos a configurar esto dentro de nuestro editor de niveles con el fin de poder establecer esta variable particular desde el editor de niveles, ya sea tengo que hacer click en este pequeño ícono de globo ocular cercano o revisar esta casilla donde dice instancia editable. ves en este momento si iba a volver a mi editor de nivel con este actor seleccionado, déjame simplemente salir. No veo Esta variable musical, exponerlo todo dentro de mi editor. No obstante, si o bien hago clic en este ícono del globo ocular, que hace lo mismo que marcar esta casilla editable de instancia. Y yo compilo eso y lo guardo. Ahora aquí de vuelta en mi editor de niveles que ha sido expuesto aquí en el panel Detalles dentro de mi editor de niveles. Entonces lo que esto me está permitiendo hacer es establecer el valor de esta variable aquí en el editor a algún actor. En el editor, podría hacer clic en este cuadro desplegable. Y puedo ver que no hay nada aquí, sin embargo. Pero hay este actor de pick de cuentagotas de escena que me permitiría escoger un archivo de sonido que existe en mi nivel. Así que sigamos adelante y busquemos un sonido para tocar. Voy a seleccionar aquí mi carpeta de contenido. Y voy a usar la opción de filtros. Y voy a buscar bajo sonido. Y haremos una búsqueda archivos de onda de sonido que buscarán cualquier archivo de onda de sonido en cualquier lugar dentro mi carpeta de contenido o cualquiera de sus subcarpetas. Quiero encontrar esta música de iniciación. Así que simplemente voy a arrastrar y soltar esto a mi nivel, así. Ahora si iba a saltar y jugar nuestro juego, en realidad escucharlos música se escapó. Y la razón de eso es porque nuestra música de arranque, déjame simplemente, con esa seleccionada, activar aquí mi viewport y presionar la tecla F para enfocarme en ella. Mi música estrella en el panel Detalles tiene una propiedad para auto activate comprobada. Voy a comprobar eso por el momento. Y ahora si toco, no escucho esa música de nivel reproduciendo, presionando de nuevo Escape. Entonces lo que quiero hacer ahora está en el lado de mi configuración de nivel BP aquí, quiero establecer el valor de mi variable musical a esa pieza musical. Entonces aquí vamos. Voy a escoger actor de escena. Voy a seleccionar a este actor de sonido ambiental. Y ahora va a tragar esa música estrella dentro de mi ajuste de nivel BP. Entonces eso está todo bien y bueno. No obstante, dentro de mi configuración de nivel BP, no tengo ninguna escritura que realmente diga eso para jugarlo. Puedo cambiar eso yendo al Gráfico de Eventos y haciendo algo fuera de evento. Empieza a jugar aquí. Permítanme simplemente eliminar a estos dos actores más. Por lo que ahora puedo arrastrar en una referencia a mi variable musical aquí, clic izquierdo, arrastrar. Vamos a conseguirlo. Y si arrastro fuera de aquí y escribo la palabra play, puedo reproducir los componentes de audio. Tan larga historia, corta, si arrastras fuera de la música, esa variable, la variable de sonido ambiental ahí mismo, traerá este componente de audio automáticamente. Podemos fijar un retraso. Voy a hacer clic derecho y algún espacio vacío y escribir en retraso. Por lo que no escuchamos esto de inmediato si también lo conectamos por aquí. Entonces digamos después de dos segundos, comenzaremos en el inicio mismo de esta pista musical. Vamos a compilar y guardar para asegurarnos de que nuestro guión sea todo bueno. Y si juego después de dos segundos, no juegas eso. Vamos a probar otro ejemplo aquí rápidamente. Por aquí en nuestra sección de variables, voy a hacer click en este botón Plus. Y voy a teclear la luz direccional como nombre. Me va a dar sonido ambiental como el tipo variable porque eso fue lo último que creé. Quiero cambiar eso. Y voy a cambiar esto a una luz direccional, objeto de luz direccional, no la referencia de objeto de luz direccional componente. Ahora, una vez más, si compilo aquí, esta es una variable vacía. No hay nada dentro de aquí. Pero también una vez más, si reviso esta casilla editable de instancia, eso hará que este ícono del globo ocular vuelva a cobrar vida, estos hacen lo mismo. Y compilo esto y vuelvo a mi editor de niveles. Ahora he expuesto esta variable al editor de niveles una vez que tengo mi configuración de nivel BP aquí seleccionada. Ahora la razón por la que puse esto para que quede expuesto es porque cuando creamos nuestro nivel de mapa de prueba, sé que por defecto tenía un actor de luz direccional ya en este nivel. Es decir, este tipo ícono de la luz solar con esta flecha blanca colgando de ese tipo. Entonces lo que puedo hacer es con mis planos de configuración de nivel seleccionados. Puedo poner mi luz direccional dentro de mis ajustes de nivel BP para estar hablando con este actor en particular. Así que déjame hacer clic en el cuentagotas justo aquí y mira. Sabe que estos objetos no son válidos. No obstante, eso es válido. Ninguno de estos otros son no, pero eso es un actor de luz direccional. Para que podamos establecer ese. Boom, ahora está configurado también. Volvamos a nuestra configuración de nivel BP. Y si arrastro y suelto esto en nuestros gráficos de eventos, saquen eso de esto, voy a arrastrar y escribir en sets. intensidad establecerá aquí la intensidad de nuestro componente de luz, porque la luz direccional consiste en un componente de pierna. Y vamos a establecer nuestra intensidad aquí para, probemos un valor de decir, 500. Simplemente continuando el flujo de ejecución justo después nuestro inicio de juego y luego el retardo de dos segundos. Entonces después de dos segundos, vamos a escuchar nuestra música kickin. Ahí está presionando esa tecla Q donde eso es útil. Entonces también vamos a establecer la intensidad de nuestro actor de luz direccional o guión compilado se ve bien. Vamos a seguir adelante y jugar. Se puede ver que no sólo escuchamos la música. Entonces estos son algunos ejemplos bastante extremos aquí, pero hemos creado un actor de ajuste de nivel muy básico. Y observa el poder aquí. Podría arrastrar y soltar este actor de ajuste de nivel en otros niveles también y establecer una pieza de música única y unas luces direccionales únicas. Siempre y cuando apunte a una luz direccional para esta variable y un sonido ambiental para esta variable musical. Entonces tienes que tener estos en tus niveles. Bueno, whoops, actor principal direccional en actor de música. Pero así es como estamos estableciendo objetos de nivel de actores de nivel dentro de nuestra configuración de nivel BP. A Class Blueprint, chicos que lo van a hacer todo por este video, veremos en el siguiente. 21. Clase BP: Ejecutar referencias de objetos de tiempo: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender a crear referencias a objetos de nivel dentro de un Plan de Clase en tiempo de ejecución, es decir, mientras jugamos el juego. Ahora esto es realmente útil cuando, por ejemplo, quieres que tu personaje interactúe con algo en tu mundo. Y luego quiso hacer algo a esa cosa con la que has interactuado. Muy bien, para presumir este ejemplo que tengo para ti aquí hoy, voy a estar poniendo algunas cosas dentro de nuestro blueprint ThirdPersonCharacter, esto funcionará dentro de una primera persona carácter también. Pero una vez más, este es el personaje que estamos usando para este proyecto. Entonces adelante y haz doble clic en esto para abrirlo. Pasemos a la pestaña viewport porque vamos a ver un componente aquí en un poquito. Vamos a añadir un componente nuevo en nuestra lista de componentes. Vamos a agregar componentes de una flecha. Adelante y da clic en eso. Y voy a llamar a esto mi punto final de trazado de línea. Y con esos componentes seleccionados, la ubicación x para esto, voy a establecer para ser 300. Unidades irreales golpean Enter. Y si un poco barrido sobre, manteniendo pulsado el botón derecho del ratón aquí, mi ventana gráfica, he configurado mi componente de flecha para que esté fuera delante de mi personaje aquí por 300 unidades irreales. Ahora lo que pretendemos hacer aquí es que vamos a estar enviando una línea invisible al espacio usando este componente para ayudarnos aquí, vamos a comprobar para ver si esta línea invisible choca con cualquier cosa. Y si lo hace, vamos a averiguar qué fue esa cosa que nos golpeó para que podamos afectarla de alguna manera. Al hacer esto, podemos crear una referencia de objeto en tiempo de ejecución mientras el juego se está ejecutando. Así que saltemos a nuestro Gráfico de Eventos. Voy a entrar a algún espacio vacío. Y por defecto, planos de clase de caracteres sí reconocen los eventos de entrada. Así que voy a mantener presionado, o mejor dicho Haga clic con el botón derecho y escriba la tecla 0. Por cierto, no todos los blueprints de clase reconocen eventos de entrada por defecto, pero la clase de caracteres sí. Fuera de presionar la tecla 0. Vamos a traer un nodo de función llamado line trace por canal. Hay muchos nodos de función traza diferentes. El que buscamos es trazado de línea por canal. Ahora camino más tarde en el curso, hablaremos de algunas de estas huellas. Y esto va a ser mucho más avanzado que en donde estás si estás empezando con planos. Pero la naturaleza circular de aprender los planos de Unreal Engine es que para saber sobre esto, hay que saber sobre eso. Y para saber de eso, necesitas saber sobre esto. Entonces si no entiendes esta parte aquí mismo, eso está completamente bien. Vamos a llegar a algunos de estos conceptos. Sólo aguanta conmigo. Esto es solo presumir de una técnica para obtener una referencia de objeto en tiempo de ejecución. Muy bien, entonces este nodo va a enviar un rastro de línea invisible a nuestro mundo aquí. Entonces, ¿dónde queremos iniciar este rastro? Bueno, ¿qué tal si empezamos en nuestra ubicación de actores? Así que voy a hacer clic derecho y algún espacio vacío Escribir obtener ubicación de actor. Y esto devolverá la ubicación de nosotros mismos o de nuestros planos de ThirdPersonCharacter. Ahí es donde vamos a empezar esto. ¿ Dónde vamos a terminar con esto? Bueno, por eso incluí este componente de punto final de trazado de línea. Voy a arrastrar y soltar una referencia a esto en nuestro gráfico. Y luego me voy a arrastrar fuera de esto y quiero conseguir la localización mundial de estos componentes. Así que esencialmente voy a estar empezando por este rastro de línea invisible en nuestro mundo en la ubicación de nuestro ThirdPersonCharacter. Y se va a extender hasta nuestra línea en los puntos finales de traza. Así que de aquí a aquí, acuerdo, moviéndonos por aquí, lo que vamos a hacer es este atuendo. Esencialmente nos va a dar muchos resultados diferentes sobre lo que esto sí golpeó. Y puedo romper los resultados de éxito aquí escribiendo un resultado de golpe de breakout. Haciendo click aquí en esta flecha hacia abajo. Por lo que este rastro invisible, esta línea invisible siendo gritar al mundo puede darnos todo tipo de información, incluyendo lo que fue el actor que un hit. Puede dar salida a toda esta información. El que buscamos tener salida es el hit actor. Ahora, lo que podemos hacer fuera de esto es hacer clic derecho en esto. Podemos promover esto a una variable. Hagamos eso. Y mantengamos el nombre de Hit Actor por aquí. Y se puede ver que el tipo de variable es sólo un actor genérico. Ahora arriba de aquí, voy a arrastrar un cable fuera de esto y escribir en rama. Y voy a enchufar nuestro valor de retorno aquí a la condición. Esencialmente lo que vamos a estar diciendo aquí es que sólo queremos seguir más allá de esta rama. Si en efecto fuera cierto que golpeamos algo, sólo vamos a ejecutar lo que está más allá de esta rama aquí. Si es cierto que nuestro trazado de línea sí golpeó algo, esa es nuestra condición. Así que vamos a arrastrar un cable fuera de este tipo en el sonido de reproducción a D. Vamos a tener un poco de retroalimentación de sonido para si lo hicimos de hecho golpea algo. Vamos a configurar nuestro sonido aquí para que sea cualquier cosa, pero voy a configurar esto para que se haga clic en un botón. Seguro. Iremos con eso. Eso suena bien. Fuera de esto, voy a enchufar este flujo de ejecución para poner a nuestro exitoso actor. Entonces, de hecho, si lo hicimos algo, si y solo si le hicimos golpear algo, vamos a establecer el contenido de esta variable si compilo, nota justo aquí el valor predeterminado es ninguno sólo si nuestro trazado de línea golpea algo. Bueno, establecemos el contenido de esta variable y lo vamos a estar haciendo mientras jugamos el juego. Fuera de esto, vamos a extender un cable hacia fuera y escribir en print, string. Y fuera de nuestro Hit Actor. Simplemente arrastremos fuera de aquí y tecleemos get display name. Entonces vamos a imprimir el nombre de la cosa que escondimos. Así que permítanme enmarcar este guión aquí. Entonces si quieres pausar el video aquí y conseguir un buen gander en eso, puedes ver lo que hemos construido. No se puede mantener, no puedo obtener el nivel de zoom correcto aquí. Ahí vamos. Un ajuste más que sería útil aquí para establecer nuestro Tipo de Depuración de Dibujar aquí para que sea de duración. Al hacer esto, cuando presionemos la tecla 0, vamos a ver un poco de una línea ahí, una línea de debug, si se quiere, siendo disparada al mundo. Por lo que podemos ver que este canal traza lo deja a la visibilidad. Por ahora ese es nuestro canal de seguimiento predeterminado. Este es esencialmente un canal de nombre que vamos a estar filmando esta línea desde el más allá. Muy bien, y con esto, en realidad podemos compilar esto, guardarlo. Vamos a saltar y jugar para ver si podemos ver una línea siendo cerrada. Nuevamente una vez presionamos una tecla 0. Ahí, ves que esa línea roja está siendo disparada. Esa línea roja que está siendo disparada. Ahora la razón por la que estás viendo la línea roja siendo disparada al mundo, pero no estás viendo ese flujo de ejecución en mi guión arriba en la parte superior es una vez más, porque no he configurado mi opción de debug. Entonces necesito jugar primero. Y una vez que esté tocando, eso va a despertar a mi personaje al mundo, entonces puedo configurar mi BP ThirdPersonCharacter. Permítanme traer en esa ventana de juego una vez más. Entonces cuando presiono esa tecla 0, puedo ver ese flujo de ejecución yendo en este momento. No estoy golpeando nada. Por lo que se ve que el flujo de ejecución se detiene en la sucursal. No obstante, si voy a una silla objeto, escuchaste el sonido en la parte superior izquierda y mi ventana de juego, imprime el nombre de silla S M, cubo, ejemplo pickup. Y no está pasando por esto. Es eso de golpear a esta bancada en absoluto. Y la razón por la que no está golpeando a este banquillo es porque esta bancada Static Mesh no tiene ninguna colisión en ella. Entonces es por eso que se está saltando eso. Entonces algo que hay que tener en cuenta ahí. Mi muro de Guión de Construcción también. De acuerdo, Así que todo esto está bien y bueno. Estamos estableciendo esta referencia de objeto en tiempo de ejecución, pero vamos a afectar esta referencia de objeto alguna otra manera una vez que hayamos capturado una referencia al mismo. Así que vamos a poner un poco de guión adicional abajo aquí. Voy a hacer clic derecho y algún espacio vacío. Vamos a traer el botón de entrada nueve. Ahí vamos. Y fuera de esto, voy a traer a nuestro Hit Actor. Vamos a conseguir eso. Y luego vamos a arrastrar un cable fuera de este tipo en es válido, esta versión de signo de interrogación. Y si se trata de un objeto válido, ¿ significa que existe? Si es válido, vamos a arrastrar fuera de este por dentro sido Destroy Actor. El objetivo. Queremos ser nuestro Hit Actor. Eso es lo que queremos destruir. Haga doble clic en eso para crear un nodo redirigido. Poca limpieza ahí. Así que intentemos enmarcar este script justo por aquí, ambos scripts, para que puedas verlos trabajando. Déjame seguir adelante y jugar. Trata de encogerse un poco por esta ventana de juego aquí. De acuerdo, si fuera a seguir adelante y presionar la tecla nueve en este momento, lo que notarán, puede ver que está pulsando fuera de la llave nueve sobre el lado izquierdo como spam en eso. Pero No está avanzando más allá del nodo es válido porque no hay un actor de acto de hit válido que sea una variable vacía. No obstante, presionemos la tecla de flecha. Ahora he comprobado para ver si eso es una silla estableciendo esa variable. Ahora cuando presiono el Nike, el hit actor ha sido poblado. Y boom, se va adiós. Caminando hasta este cubo, presionando la tecla 0 que ahora se ha configurado como mi nuevo Hit Actor. Presionando el Nike, boom, eso va adiós. Ahora es importante señalar aquí que son Hit Actor es sólo un actor genérico. No estamos seguros de qué objeto golpeamos y así que no podemos modificar las variables se denominan funciones específicas de esta referencia de objeto. Si quisiéramos hacer eso, podríamos arrojarlo este objeto para asegurar que fuera de un tipo dado. Ahora, una vez más, esto va a ser un poco más avanzado para donde estás en este momento, estaremos hablando de casting más adelante en el curso. Pero sólo para mostrar brevemente cómo podrías hacer algo como esto, solo voy a modificar este guión aquí un poco más. Vamos a probar algo como esto fuera de mi Hit Actor. Yo también voy a lanzar. Haremos ejemplo de recogida. Vamos a echar y revisar para ver si eso fue un ejemplo de recogida. Y si es así, vamos a escalar este tipo a escala mundial. Estableceremos la escala mundial de nuestra colisión de esfera, a la que están unidos todos los demás componentes. Y vamos a establecer aquí nuestra escala mundial para que sea, bueno digamos, tres veces más grande y la x, y, y zAsí que una vez más, nuestro trazado de líneas es lo que va a estar poblando, creando una referencia a nuestro Hit Actor variable. Si eso es válido, vamos a revisar para ver si fue un ejemplo de plano de recogida. Y si lo fuera, lo vamos a escalar tres veces más grande. Así que permítanme simplemente minimizar así por aquí. Saltando y jugando, luchando la tecla 0. No quiero acercarme demasiado a esto. Presionando la tecla 0 ahora mismo. Mi actor de éxito ya ha sido establecido. Aún así. Ya se ha establecido. Déjame simplemente retroceder para que no lo superponga accidentalmente cuando escalo esto. Ahora voy a presionar tecla F9. Y wallah, se establece la escala mundial de eso para ser mucho más grande. Muy bien, ahí lo tienen, chicos. Existe un caso de uso muy práctico de una referencia de objeto en tiempo de ejecución. Nuevamente, hay otras formas de hacer esto, pero un trazado de línea es una forma súper útil, especialmente dentro de un plano de personaje. Eso hará para ofrecer a éste chicos, nos vemos en el siguiente. 22. Referencias de objetos fundidos: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender a lanzar a un objeto con el fin de crear una referencia a algo. Entonces, antes que nada, ¿qué es el casting? El casting es una forma de verificar si un determinado tipo de objeto es de una clase especificada. Ahora me viste hacer esto en mi recogida de ejemplo de BP aquí. Estábamos comprobando para ver qué se está superponiendo aquí nuestra esfera de colisión, esa es esta esfera aquí mismo. En este caso, estábamos comprobando para ver si ese otro actor, si la cosa se solapa era un ThirdPersonCharacter que estábamos echando para ver si ese era el ThirdPersonCharacter. Ahora, si es de un tipo de clase especificado, en este caso, el ThirdPersonCharacter. Podemos entonces capturar de inmediato ese objeto como referencia. Y lo que es más importante, hacer cosas específicas a ese objeto. Puede haber funciones, variables o componentes dentro de nuestra clase específica que sean únicos a ella. Entonces con eso, quiero decir, si capturamos aquí una referencia a nuestro ThirdPersonCharacter, si esto es cierto, podemos capturar referencia a nuestro ThirdPersonCharacter. Eso significa ThirdPersonCharacter. Podemos hablar con los componentes aquí. Tenemos alguna variable dentro de aquí. Podemos modificarlas de alguna manera. Podemos modificar algunas de las variables predeterminadas de clase dentro de aquí. Cosas como saltar max count, que es una divertida con la que jugar. Sugerencia, pista, puedes duplicar, triplicar saltar con ese parámetro, todo tipo de cosas. Por lo que nota, este tema de casting es un tema del que vamos a hablar mucho más en la sección de comunicación Blueprint más adelante en este curso. Pero para este video, simplemente vamos a hablar de cómo crear referencias de objetos echando a una cosa dada. Muy bien, vamos a presumir algunos ejemplos aquí de vuelta en mi mapa de pruebas de nivel. En primer lugar, quiero comprobar que tienes un actor de inicio de jugador aquí en tu nivel. Y si no lo haces, puedes venir debajo tu pequeño botón aquí para agregarte rápidamente a tu proyecto. Y en la categoría de todas las clases aquí, puedes encontrar un actor de inicio de jugador, ese tipo justo ahí, arrastrar y soltar uno de esos. Asegúrate de tener uno de esos en tu nivel. Y luego si vienes justo aquí, tienes estos tres pequeños puntos para cambiar tu modo de juego en la configuración del lugar. Aquí es donde se puede cambiar para reproducirlo puerto de vista seleccionado o una nueva ventana del editor. Por cierto, sin embargo, quiero llamar su atención este jugador de desova en la actualidad, tenemos este ticked, eso significa comprobado para engendrar a un personaje jugador en nuestro inicio predeterminado de jugador que está en esta ubicación de actor justo aquí. Podría cambiar esto, cambiar esto a la ubicación actual de la cámara. Entonces dondequiera que esté en el nivel, si hago clic en Jugar, podría desovar desde esta ubicación que estoy mirando en este momento. No obstante, queremos que este conjunto para fines de este video se inicie por defecto del reproductor. De acuerdo, con eso, vamos a crear algún guión para capturar una referencia de personaje dentro de nuestro Nivel Blueprint. Por lo que una vez más, puedes acceder a tu Nivel Blueprint viniendo aquí y abriendo tus Planos de Nivel. Boom. Ahora quiero hacer algo fuera de Event Begin Play. Ahora, antes en este curso, creé un segundo gráfico de eventos y lo nombré tipos de nodos. Y mencioné que sólo podemos tener un evento comience a jugar por nuestros Planos de Nivel. Así que sólo voy a eliminarlo de aquí y hacer todo este trabajo dentro de nuestro gráfico de eventos base aquí, nuestro gráfico de eventos predeterminado, que actualmente está vacío. Entonces aquí voy a luego hacer clic derecho y mecanografiar comenzar, jugar. Evento B en plaquetas. Adelante y agrega eso. Y luego voy a hacer clic derecho. Y en algún espacio vacío, voy a escribir en el personaje git player. Esta es una función realmente útil aquí mismo que va a simplemente devolver el personaje que tú, un solo jugador está jugando, como en este caso, el índice de jugador es 0. Sólo tenemos un solo jugador, así que eso va a ser nosotros. Fuera de esto. Podemos arrastrar y escribir en Cast to ThirdPersonCharacter. Si estás jugando con una plantilla de personaje en primera persona aquí, puedes lanzar a un personaje en primera persona. Vamos a echar a nuestro bp un tercer personaje. Entonces lo que estamos haciendo aquí es que vamos a conseguir a nuestro personaje jugador y vamos a luego revisar, oye, es este un ThirdPersonCharacter que estás controlando o es este algún otro personaje que que habías asignado en la configuración de tu proyecto? Y de nuevo, se puede acceder a nuestra configuración de proyecto por aquí, configuración del proyecto y sobre mapas y modos. Bajo nuestro modo de juego seleccionado, podemos ver nuestra Clase de Pawn Default. Actualmente, estamos incumpliendo una clase de personajes en tercera persona cuando estamos jugando a este juego. Pero esto es una especie de forma de solo comprobar, oye, ¿ estamos realmente jugando como un personaje de tercera persona? Ahora, aquí es donde realmente entra la cosa, donde estamos usando un elenco para crear una referencia de objeto aquí mismo fuera de como personaje de tercera persona. Vamos a hacer clic derecho en esto. Vamos a promover esto a una variable. En cuanto hagamos esto, va a enganchar dos cables a esta variable central aquí mismo. Entonces en nuestra sección de variables, se ha creado una nueva variable de carácter de tercera persona que es un tipo que se le ha dado. El nombre. Podemos cambiar esto. Sólo voy a cambiar esto para ser Caracter Rough. Y luego voy a hacer clic derecho en este nodo y dejando nodo un comentario y solo llamaré a esto promovido. Así es como creamos esta variable. Lo promovimos fuera de nuestro comienzo de juego aquí. Vamos a capturar una referencia a nuestro ThirdPersonCharacter. Gran dulce. Eso significa que entonces podemos hacer algo con él. Y es genial hacer este tipo de cosas. A menudo fuera de un evento comienza a jugar, porque una vez que lo tienes referencia a un actor dado tipo un objeto dado, entonces estás listo para ir. Puedes afectar de cualquier manera que quieras. Así que voy a crear algún guión aquí abajo para luego afectar a nuestra referencia de personajes. Vamos a hacer clic derecho en algún espacio vacío. Y sólo voy a escribir un número de clave. Vamos a escribir el uno de los eventos Shelley. Y fuera de esto, voy a arrastrar en nuestra referencia de personajes. Va a decir, ¿ quieres conseguirlo o configurarlo? Quiero conseguir una referencia a nuestro personaje jugador y ofrecer esto. Voy a escribir en mi viejo mundo de sets, escala 3D. Ahora, ¿qué queremos poner aquí en 3D? Vamos a establecer nuestra malla. Y si entramos en nuestro ThirdPersonCharacter Blueprint, estábamos hablando con este tipo de aquí mismo con esos componentes seleccionados. Nuestro personaje malla o persona, nuestro maniquí, si se quiere. Maniquí mujer, si quieres. Muy bien. Entonces cuando presionemos el wonky, vamos a establecer nuestra escala mundial y no la dejemos en 0 porque entonces vas a desaparecer. Vamos 0.5.5.5. Y compile esto para asegurarnos de que nuestros guiones se vean bien. Vamos a guardarlo. Entonces establecemos nuestra opción de debug aquí a nuestros mapas de prueba para que, esos son los scripts que veremos disparando. Vamos a seguir adelante y jugar. En realidad déjame asegurarme de que tengo este conjunto a la nueva ventana del editor. Regresa a mi Nivel Blueprint. Ahora, ya hemos creado esta referencia de personaje que empezamos a tocar esto sí disparó. Pero si presiono la tecla unica ahora mismo, verá que ese guión efectivamente se ha disparado. He capturado esa referencia de personaje fuera de Event Begin Play, y presiono la única tecla que establece mi escala en 0.5. Ahora ya puedes ver que estoy martillando la única llave. Ahora no va a seguir configurándolo a la mitad del tamaño, la mitad del tamaño, la mitad del tamaño. Lo acabo de decir, ponlo a la mitad de su tamaño habitual justo ahí mismo. Entonces ese es un ejemplo de casting a nuestro ThirdPersonCharacter, creando una referencia de objeto. Muy bien, probemos otro ejemplo aquí. Esta vez no se utiliza un personaje de jugador, un personaje de tercera o primera persona. Voy a venir debajo mi botón aquí para conseguir algo de contenido. Voy a añadir una esfera. Vamos a seguir adelante y añadir una esfera a nuestro nivel. Voy a levantarlo al aire. Y luego voy a establecer un par de parámetros, uno en mi esfera aquí y luego uno en esta malla de piso. En primer lugar, voy a cambiar el nombre de mi esfera aquí simplemente haciendo clic sobre ella y presionando F2. Y voy a llamar a esto mi pelota de física. Eso ayudará a compensarlo un poco. Se trata de un actor de malla estática. Y luego abajo en el panel Detalles, quiero marcar una casilla llamada simular física. Y bajo esta sección de física aquí está, simular la física. Ahora lo que esto va a hacer en cuanto juegue el juego, esta pelota va a caer al suelo. Vamos a seguir adelante y haga clic en jugar aquí. Y se puede ver, whoops, quiero ir a, de hecho, no necesito jugar el juego. Voy a establecer brevemente esto para simular. Y en el momento que lo haga, van a ver que el bulto se cae al piso. Entonces la simulación está ejecutando el juego, no jugar el juego, pero ahí viste los resultados. ¿ Qué pasa cuando se ejecuta el juego sin jugar? Ese fue el modo de simulación. Ahora está atascado en el modo de simulación ahora mismo voy a volver a la nueva ventana del editor. Cerca de ti vio caer esa bola una vez más, turno y F1 me devolverá el cursor de mi ratón. Déjame salir de ahí. Vale, así que tenemos nuestro juego de pelota para simular física que es importante. A continuación, adelante y selecciona aquí tu malla de piso. Y lo que quiero hacer aquí es que quiero buscar algo llamado simular genera eventos de éxito. Y si vengo bajo mi sección de colisiones aquí mismo, aquí hay una casilla de verificación que estoy buscando simulación, genera, golpeó eventos. Esta va a ser una pelota simulada, lo que significa que va a tener física en ella. Simulación generar eventos de golpe para este piso significa que generará un evento hit para un objeto simulado, también conocido como esta pelota de física. Por lo que es importante que esta casilla se compruebe lo que vamos a estar haciendo. A continuación, vamos a estar accediendo a nuestro Plan de Nivel. No obstante, quiero asegurarme de que tenemos nuestro piso seleccionado aquí en primer lugar. Así que asegúrate de que tienes tu piso seleccionado y en tu Nivel Blueprint. Pasemos a la derecha aquí voy a hacer clic derecho y algún espacio vacío. Vamos a sumar un evento por colisión de piso y vamos a hacer en eventos de hit de actores. Después fuera de esto, vamos a revisar para ver qué era el otro actor. Me pegaron. Entonces si nos arrastramos fuera de esto, podemos lanzar también. Echemos a un actor de malla estática. ¿ Por qué estamos echando a un actor de malla estática? Bueno, estamos lanzando ante un actor de malla estática porque nuestro balón de física aquí, si selecciono eso, el tipo de actores que esto es, es un actor de malla estática. Vale, vamos a saltar de nuevo a nuestro Plan de Nivel aquí. Y una vez más, promovamos esto a una variable haciendo clic derecho sobre ese pin, promueve una variable. Y voy a cambiar el nombre de esto es pelota de física así. El tipo es un actor de malla estática. Y simplemente imprimimos algunos textos después de esto también. Voy a arrastrarme de esto. Podemos imprimir textos de cadena o imprimir. Simplemente iré con textos impresos en el campo de texto. Cambiaré esto para golpear el suelo. Voy a hacer clic derecho sobre esto y también dejar un comentario de nodo y llamar a esto promovido. Muy bien, hagamos algo aquí con una llave también. Voy a hacer clic derecho. Vamos a traer una llave de dos a clave. Whoops, eso fue F2. Quiero decir, realmente podríamos hacer esto fuera de cualquier cosa. Simplemente haré las dos llaves porque eso es obvio. Y luego fuera de esto, queremos conseguir una referencia a nuestro balón de física aquí. Así que vamos a arrastrar y soltar esto en el gráfico. Vamos a conseguirlo. Y luego fuera de este tipo menos simplemente en el material establecido. Queremos establecer un material en los componentes de malla estática, así. Y diremos que una vez presionemos el tubo y vamos a cambiar nuestro material a, voy a escribir en oro. Puedes cambiar esto a lo que quieras. Así que una vez más, voy a asegurarme de que mi opción de debug aquí esté configurada para mapa de prueba de nivel. Ir a seguir adelante y pincha aquí en la obra de teatro. Resuelves ese fuego justo arriba ya que tengo la ventana agarrada aquí, puedes ver que lo agarré perfectamente para que puedas ver ese pulso fluyendo por el actor golpeó piso. Estamos lanzando a nuestro actor estático Mitch. Estamos capturando nuestra pelota de física ahí, cualquier variable estamos creando una referencia a ella y lo estamos imprimiendo a la pantalla, golpear el piso. Y está imprimiendo varias veces ahí. Una vez presiono las dos teclas, esto debe volverse oro macizo. Y ahí vas. Tienes una pelota de física que se ha convertido en oro sólido. Se puede ver que está registrando esos eventos de golpe de nuevo, de nuevo mientras lo rodo por el piso. Porque por supuesto, ¿por qué no lo haría? Muy bien, así que ahí lo tienes. Tienes un par de instancias ahí de nosotros casting para crear una referencia de objeto. Un montón de cosas más que podríamos haber arrojado en figura. Podrías encontrar algo de uso de esos. Eso lo hará todo por este chicos, veremos en el siguiente. 23. Referencias BP: Bienvenidos de vuelta a todos. Estamos comenzando esta lección aquí en Internet mostrando un par de ejemplos de, en este caso, en pantalla de inventario de una Leyenda de Zelda, amplitud de lo salvaje. Y también quiero presumir este ejemplo del HUD en el juego de Legend of Zelda, amplitud de lo salvaje. Entonces en irreal, si quieres crear algo como medidores de salud o mini-mapas o mensajes dentro del juego, o en la pantalla de inventario, cualquiera de este tipo de cosas, necesitas crear un widget blueprints. Entonces nuestro objetivo en este video es aprender a crear una referencia a un Widget Blueprint. Entonces no vamos a estar realmente afinando en cómo crear blueprints de widgets. Si bien vamos a estar haciendo eso, eso es todo otro rumbo hacia sí mismo. Pero una vez que hayas creado un activo Widget Blueprint, ¿cómo se crea una referencia al mismo? Estamos, vamos a estar haciendo en este video es crear uno de estos activos. Sólo vamos a poner un simple medidor de salud. No va a ser funcional. Sólo vamos a aguantar a simple me ayudó a ganarse su capucha. Ahora vamos a crear una referencia a ella para que podamos activarla y apagarla bacterias en Unreal, vamos a empezar creando una carpeta completamente nueva dentro de nuestra carpeta de scripting, Voy a hacer clic derecho en Nueva Carpeta. Voy a llamar a esto Widgets. Entonces dentro de aquí, voy a hacer clic derecho sobre la derecha. Vamos a venir bajo interfaz de usuario. Y queremos crear un activo Widget Blueprint en el cuadro emergente que aparece, nos va a pedir que escojamos un widget de ruta. Todo lo que queremos hacer es seleccionar este más común, el widget de usuario uno. Nuevamente, esto no va a ser una lección sobre cómo crear cada aspecto de un Blueprint Widget. Simplemente nombraré a este HUD de subrayado WPP. Y luego haremos doble clic en esto para abrir este activo Widget Blueprint. Tan larga historia corta, lo que puedes hacer aquí es que puedes arrastrar y soltar diferentes elementos, estos diferentes widgets desde este panel de paleta justo aquí en esta ventana gráfica para poner una pantalla de clases, un capó, una pantalla de menú, una notificación de texto, todo este tipo de cosas. Vamos a crear un HUD muy básico, teniendo una barra de salud. Y vamos a empezar agregando un widget de panel de lienzo. Entonces bajo el panel del paladar, voy a hacer una búsqueda de un panel de lienzo. Panel de lona es esencialmente un tablero de tachuelas va a ser el widget en el que podemos pegar otros widgets. Así que voy a arrastrar y soltar esto justo aquí. Boom, vemos este contorno verde más en la jerarquía. Muestra un listado de todos los widgets que has agregado a tu Widget Blueprint aquí. Por lo que actualmente tenemos este panel de lienzo y dándonos un tablero tecnológico gigante, si se quiere, para pegarle las cosas. Genial. A continuación vamos a añadir una caja horizontal componentes. Horizontal Box es simplemente una caja vacía que puede contener otros widgets. Voy a arrastrar y soltar esto en la parte superior izquierda aquí porque quiero que mi HUD tenga un metro de clases en la esquina superior izquierda de mi pantalla. Ahora, actualmente es este tamaño, este tamaño predeterminado. No obstante, voy a ajustar esto en tan solo un segundo aquí, pero sólo por el bien de extender esto, voy a cambiar mi talla x aquí con esta seleccionada para ser algo sobre, no sé, 400, Vamos 500, probablemente un poco largo, algo así. Nuevamente, esto es sólo una caja vacía que puede albergar otros widgets. A continuación voy a encontrar un widget de texto justo aquí arriba bajo la sección común. Y podría arrastrar y soltar esto encima de mi caja horizontal para tener esto contenido dentro de ella de esa manera. O simplemente puedo arrastrarlo y soltarlo aquí dentro de mi caja horizontal como esta, puedes ver esta pequeña sangría aquí mostrando esa relación. Por lo que actualmente este widget de texto está contenido dentro de nuestro cuadro horizontal. Voy a cambiar el texto aquí. Entonces con esto seleccionado más en el panel Detalles, voy a cambiar este texto que dice textblock a simplemente salud. Voy a darle un par de espacios ahí porque voy a añadir un medidor de salud, si se quiere, derecho a la derecha de esto. Por lo que golpear Enter, Boom va a cambiar eso a Salud. A continuación, quiero que un metro vaya justo a la derecha aquí. Puedes agregar esto agregando un widget de barra de progreso. Entonces voy a volver a arrastrar y soltar esto dentro de mi caja horizontal. Ahora en el momento que haga esto, va a aparecer como esta pequeña losa grisácea, si se quiere, que no se ve en absoluto como un metro. Entonces la forma en que podemos cambiar esto es con este seleccionado, este widget de barra de progreso seleccionado sobre en el panel Detalles, podemos cambiar el tamaño para ser un relleno. Boom, ahí vas. Ahora para realmente llenar esto, tenemos este color de relleno y opacidad que actualmente se establece en azul. Podrías hacer click sobre esto para cambiar el color. Me voy a ir verde, algún tono de verde. Claro, eso es bueno. Pero este por ciento aquí mismo va a determinar cómo está Rellenar esto actualmente. Está 0% lleno. Por lo que voy a hacer clic izquierdo y arrastrar y se puede ver cómo puede ir esto entre 01. Entonces esencialmente esto va de una escala 0 a 1, 0 a un 100%. Y puedes elegir tu tipo de relleno de barra, izquierda a derecha, arriba y abajo, de derecha a izquierda. No obstante lo que quieras hacerlo, voy a dejar ahí el defecto. Esto va a funcionar muy bien para mí. Entonces lo que esto creó, simplemente voy a compilar esto. Vamos a salvarla. Impresionante. Tenemos este Widget Blueprint todo creado. Lo siguiente que vamos a hacer aquí es crear algún script que va a crear este widget. Y luego vamos a crear una referencia a ella. Lo vamos a añadir a nuestra viewport, lo que significa que va a aparecer dentro de nuestro juego. Y luego vamos a añadir un poco de guión para que una vez que tengamos esta referencia a nuestro HUD, podamos activar y desactivar la visibilidad de este HUD. Voy a estar usando el ThirdPersonCharacter Blueprint para esto. Ahora, si estás creando algo como HUD, típicamente no usarías el blueprint de personajes para mostrar u ocultar el HUD. Pero como ese es un blueprint que hemos usado hasta este punto, lo voy a utilizar sólo con el propósito de mostrar cómo crear una referencia a un Widget Blueprint. Así que abre tu ThirdPersonCharacter Blueprint. Si olvidaste dónde está eso dentro de tu navegador de contenidos, puedes encontrarlo aquí bajo planos de tercera persona. Dentro de aquí, salta a la Gráfica de Eventos. Y queremos hacer algo fuera de evento empezar a jugar. Por lo que voy a hacer clic derecho Escribir, comenzar a jugar, incluso comenzar a planear. Boom. Y muchas veces esto, vamos a arrastrar un cable y escribir en create widget. Esto va a decir actualmente construido ninguno porque no tenemos ningún widget establecido aquí en el que crear. No obstante, si seleccionas esta clase, poco desplegable ahí, podemos encontrar nuestro Widget Blueprint que acabamos de crear. Ahora una vez que seleccionamos esto, lo configuramos. Va a decir, está bien, ese es el Widget Blueprint que quieres crear. Genial. Pero aún no hemos salvado esto a una referencia. Así que vamos a hacer clic derecho en este valor de retorno aquí. Promover esto a una variable. Hacemos esto. Se va a crear esta variable más en mi sección de planos. Va a ser del tipo WB P HUD. Y voy a nombrar esto apropiadamente. Nosotros BP HUD. Como he hecho antes, voy a hacer clic derecho sobre esto. Y en el área de comentarios nodo, sólo voy a dejar esto como promovido. Así es como creamos esa referencia a nuestro widget HUD. Y entonces lo que vamos a hacer es arrastrar fuera de aquí y escribir Agregar a Viewport. Entonces esencialmente lo que estamos haciendo aquí es al comenzar el juego, una vez que nuestro personaje es engendrado en el juego este evento comienza el juego se dispara. Vamos a crear este Widget Blueprint. Vamos a crear una referencia a este Widget Blueprint dentro de esta variable. Entonces lo va a capturar dentro de aquí. Entonces lo vamos a sumar a la viewport, lo que significa que debe aparecer en nuestro juego. Vamos a seguir adelante y compilar esto para asegurarnos que nuestro guión sea todo bueno y lo sea. Y entonces voy a jugar solo para verificar que veamos este HUD en el juego. Y ahí vas. En la esquina superior izquierda de la pantalla, se puede ver que tenemos nuestra barra de salud que no funciona. Muy bien, ahora desde que tenemos una referencia a esto, vamos a crear un pequeño guión para mostrar u ocultar esto. Dentro de aquí. Voy a hacer clic derecho y algún espacio vacío. Voy a traer, vamos a hacer las cinco llaves y-nada. Y vamos a traer una referencia a nuestro Widget Blueprint, arrastre y suelte esto. Vamos a sacarlo de esto. Voy a arrastrarme y voy a buscar una función llamada establecer visibilidad. Y voy a golpear Control C y Control V para crear un duplicado, una copia de eso, y luego una pasta de la misma. Este será nuestro objetivo. Cuando presionamos esto, queremos que esto se oculte. Así que establece aquí la visibilidad para que se oculte. Y luego cuando lo sueltemos, vamos a decirle a este widget que vuelva a ser visible. Ahora, ¿cómo sabía siquiera que esta función estaba disponible para mí? Bueno, muchas veces, de vuelta aquí en nuestro Widget Blueprint, si miras los diversos widgets que has agregado a tu jerarquía, puedes ver todas tus propiedades en la mano derecha panel por aquí, el panel Detalles. Y uno de ellos para este widget en particular es la capacidad de mostrarlo u ocultarlo. Como se puede ver en este momento, tengo esta barra de progreso, visible o no visible. Todo esto se puede mostrar o no mostrar. La visibilidad de esto puede ser visible o no visible. Por aquí, estoy diciendo, Hey WPP, cuando estoy presionando la tecla cinco, quiero esconderte. Cuando lo suelte, quiero que se muestre una vez más y podemos hacer esto porque capturamos una referencia a nuestra compilación de Widget Blueprint. Esto comprobará para asegurarse de que su guión se vea bien. Digamos esto. Voy a seguir adelante y jugar. Ahí. Ya lo puedes ver. Voy a presionar la tecla cinco y sostenerla. Ahora está oculto. Y cuando lo suelto, se muestra una vez más. Entonces ahí los chicos lo tienen. Este no fue un video sobre cómo crear un Widget Blueprint que de nuevo, eso es todo otro curso. Pero cómo crear una referencia a un Widget Blueprint notas. Puede crear referencias a blueprints de widgets a partir de blueprints de clase o un blueprint de nivel o subnivel. Las referencias a los planos de widgets crean típicamente en tiempo de ejecución, tal vez fuera de una jugada de juego o tal vez fuera de un volumen de gatillo cuando se superponen cosas como un arma para algún tipo de recogida notificación o notificación de recogida AML, ese tipo de cosas. Eso lo hará todo por este video, chicos. Nos vemos en la siguiente. 24. Referencias de la etiqueta: Bienvenidos de vuelta a todos. En este video vamos a aprender cómo etiquetas agregadas a los actores se pueden usar para encontrar objetos, crear referencias a objetos, y luego afectar a esos objetos referenciados. Entonces una etiqueta, ¿de qué estamos hablando aquí? Bueno, una etiqueta es esencialmente una etiqueta o una palabra clave que asignamos a un asociado a un actor dado. Y entonces si un actor tiene una etiqueta dada, podemos afectarla de tal manera que podamos crear una referencia a ese objeto. Podemos llamar a una función en ella, hacer todo tipo de cosas geniales. Entonces vamos a demostrar eso aquí. Antes de hacerlo si quieres jugar en casa, tengo tres actores diferentes configurados en mi nivel. El plafón planos se encuentra en esta ubicación. Si tienes el contenido inicial, tengo uno de esos aquí afuera. Este emisor de incendios se encuentra en esta ubicación en la carpeta de contenido de arranque. Y luego este cilindro que acabo de agarrar de aquí arriba. Boom, un cilindro si quieres jugar en casa. De acuerdo, entonces vamos a añadir una etiqueta común que sea una palabra clave de clase a los tres actores. Y voy a encontrar esa etiqueta en el panel Detalles con mi cilindro seleccionado buscando etiqueta. Y lo voy a blanquear a componentes o etiquetas de actor. Queremos agregar una etiqueta de actor, una asociada a todo este actor. Nuevamente, diferentes actores pueden tener diferentes componentes configurados con ellos. Solo queremos tener uno asociado con el actor en general. Entonces bajo las etiquetas avanzadas de actor, haz clic en este pequeño botón más y llegamos a nombrar la etiqueta y voy a llamar a mi cosita. Y sólo para asegurarme de que no tengo ningún error ortográfico aquí, voy a resaltar, golpear el control C para copiarlo, porque voy a añadir esta misma etiqueta exacta también. Aquí mi emisor de fuego. Así que tengo esa etiqueta blanca aquí abajo para encontrar mi etiqueta de actor. Agreguemos eso. Vamos a añadir eso aquí. Y luego también para mi luz de techo plano, estamos filtrando por la palabra etiqueta. Vamos a añadir eso a nuestra etiqueta avanzada actor. Y pongamos ese nombre aquí también. Genial, a continuación, mientras estamos aquí, por qué no incluimos esto en nuestro BPS de aquí también, nuestro ejemplo Construction Script, así como nuestras pastillas. Por lo que voy a navegar a donde están estos en mis carpetas aquí. Pp ejemplo de recogida. Vamos adentro aquí. Si quieres agregar una etiqueta a este blueprint, quieres ir por debajo de tus valores predeterminados de clase haz una búsqueda de una etiqueta. Ahí está, etiquetas de actor. Vamos a añadir cosas aquí también. Adelante y compilar, salvo eso. Podemos cerrar eso y luego nos deshacemos de eso del último video. También consigamos nuestro muro de guión de construcción aquí mismo en valores predeterminados de subclase, asegúrate de que tienes esa etiqueta seleccionada. Agreguemos una etiqueta para este tipo. Y ahí vamos. Por lo que sólo quería mostrar dónde agregarías eso dentro de un plano en sí mismo. Es importante señalar que aquí lo estoy agregando al propio blueprint. Para este plano de techo particular, lo estoy agregando solo a esta instancia del objeto dentro del nivel. En realidad no añadí esto dentro del plano de techo aquí dentro de mi techo Blueprint Class default. Si busco etiqueta, no la veré aquí porque no la agregué al propio blueprint. Apenas esta instancia particular del anteproyecto en mi nivel. Así que empecemos creando una referencia a todos estos actores etiquetados que voy a hacer esto dentro del Planeta de Nivel. Así que viniendo justo debajo de aquí, abrir Level Blueprints, tenemos un montón de guiones para los que actualmente he deshabilitado todos los eventos. Probablemente limpiaré esto entre videos y me deshago de algunas de estas cosas viejas aquí. Vamos a pasar por debajo de algún espacio vacío en nuestro gráfico de eventos. Y voy a hacer clic derecho hacer una búsqueda la tecla T, entradas T, entradas. Vamos bajo un teclado. Eventos de teclado. Realmente, cualquier evento de teclado servirá. Sólo quiero ir con T porque T significa etiqueta. Hay un tiki. Y muchas veces esto vamos a arrastrar hacia fuera un cuadrado y vamos a traer en un consigue todos los actores con tag node. Entonces, como era de esperar, esta función hará exactamente lo que dice que va a hacer. Conseguirá a todos los actores con una etiqueta dada. Aquí está el nombre de la etiqueta que queremos encontrar. Cualquier cosa con la etiqueta pensando y con este pin de actores fuera, tiene este tipo de icono tipo waffle que nos va a dar una serie de actores que tienen esta etiqueta. Eso significa una lista de actores que tienen esa etiqueta. Vamos a hacer clic derecho en esto, Promover a variable. Y simplemente llamemos a esto nuestra matriz de cosas. puede ver que creó esta variable por aquí. Entonces cuando presiono la tecla T. Vamos a almacenar todas las referencias a actores que tienen esta cosa que etiquetas dentro de esta matriz. Y esta matriz va a ser una lista de todos los actores que tienen esta etiqueta. Muy bien, para que eso suceda cuando presionemos la tecla T. Hagamos algo a todos estos actores entonces. Ahora que tenemos una referencia a todos estos actores, ¿qué queremos hacer con ella? Bueno, voy a hacer clic derecho y algún espacio vacío. Una vez más, voy a traer en el evento de teclado de tecla up para arriba. Y pensé que eso era apropiado porque vamos a estar moviendo a estos actores en la coordenada z. Voy a arrastrar en mi matriz de cosas, vamos a conseguir eso. Y luego fuera de esto, voy a arrastrar un cable y traer un para cada bucle. Nuevamente, vamos a estar hablando de estos para cada bucles, estos nodos de control de flujo más adelante en el curso. Lo que todos necesitan saber por ahora es que por cada elemento de esta lista, cada elemento de esta matriz, vamos a hacerle algo. Y lo que queremos hacer es por cada ítem de aquí, cada elemento, queremos sumar compensaciones locales de actor. Y terminamos, vamos a moverlo en una dirección dada en un desplazamiento hacia ella. Y vamos a cambiar la ubicación del delta. Es decir, cuánto queremos cambiarlo de su ubicación inicial versus dónde está la próxima vez que presionemos la tecla up, subiendo 50 unidades irreales en la dirección z. Entonces Tiki va a conseguir una referencia a todos los actores con esta etiqueta. La clave up va a mirar todos los elementos dentro de esta matriz, todos los elementos de esta lista almacenados aquí. Y para cada ítem aquí, vamos a añadir aquí un desplazamiento que es para moverlo hacia arriba en la ubicación z. Ahora, voy a compilar este guión. Todo va a quedar bien. No obstante lo sé, déjame guardar esto también. Cuando toco esto por error va a ocurrir. Voy a dejar que esto suceda, pero vamos a seguir adelante y darle a esto una obra de teatro. Muy bien, así que añadí esa etiqueta a eso. Son cilindro, las llamas, las luces de techo que se cruzan y la pared al fondo. Déjame hacer turno en F1. Para que pueda minimizar esto. Quiero que veas este guión disparando aquí también. Así que voy a reducir esto un poco. Y voy a presionar la tecla T. Así que ahora tengo una referencia a todos esos actores que llevan esa cosa que etiquetas. Ahora voy a presionar la tecla arriba, esa es la tecla de flecha arriba. Y bueno, algunas cosas se mueven hacia arriba. Pero ese cilindro no. Y esa es la época de la que hablaba. Déjame seguir adelante y escapar. Y el aire va a demostrar lo que está pasando aquí. Va a haber mencionado que este Componente de Malla Estática tiene que configurarse en movible si quisiéramos poder moverlo. Por lo que las mallas estáticas no se van a mover simplemente sin que cambiemos uno de sus ajustes a movibles. Para que eso se arregle fácilmente volviendo a nuestro nivel de pruebas aquí, seleccionando nuestro cilindro. Aquí mismo. Se trata de la configuración de movilidad del cilindro, cambiando esto a móvil. Así que una vez más, si fuéramos a seguir adelante y tocar esto, permítanme encoger un poco este guión aquí abajo. Así que aquí arriba, presionando la tecla t, tenemos una serie de todos los actores con una etiqueta de pensamiento. Y ahora, una vez que presione la tecla de flecha hacia arriba, todas ellas se moverán hasta 50 unidades irreales. Vamos a sumar 50 como un offset cada vez que presionemos la tecla up. Así que pensemos solo en todos los posibles casos de uso de crear referencias de esta manera usando una etiqueta. Bueno, tal vez estés desova algunos enemigos diferentes y tu nivel a medida que pasa el tiempo durante un partido, digamos cada 20 segundos. Y así nunca puedes estar seguro cuántos enemigos existen a la vez en tu mapa. Ahora di que quieres destruir a todos los enemigos en tal vez algunos objetos ambientales. Siempre que el jugador recoja super-duper, destruye todo el artículo. Podríamos conseguir que todos los actores tengan una etiqueta dada, decir al solapar ese super-duper, destruir todo el artículo y luego destruir, ajustar esos artículos. Entonces todo tipo de casos de uso buenos, útiles para eso. Una nota adicional más que quería dar aquí antes de terminar este video, podemos hacer un cheque para ver si un actor individual tiene una etiqueta. ¿Cómo haríamos eso? Bueno, tengo mi cilindro seleccionado aquí en mi nivel, vuelta en mi Nivel Blueprint, voy a hacer clic derecho. Voy a crear una referencia a ese cilindro. Y fuera de cualquier referencia aquí, simplemente puedo hacer una búsqueda de actor tiene función tag. Entonces podría enchufar esto a un nodo de sucursal para poder hacer una búsqueda aquí para ver, hey, ¿ese cilindro tiene la etiqueta de cosa? Y si es verdad, podemos hacer una cosa. Si es falso, podríamos hacer otro. Sólo quería señalar eso aquí también. Muy bien chicos, así es como se puede ir sobre creación de referencias usando etiquetas. Eso va a hacer para ofrecer este. Nos vemos en la siguiente. 25. Evento para comenzar el juego: Bienvenidos de nuevo a todos. En esta sección del curso, vamos a estar explorando eventos con mayor detalle. Estaremos explorando algunos de los eventos más utilizados en Unreal, comenzando con Event, Begin Play. Ahora nuestro objetivo específicamente en este video es obtener una comprensión de lo que es el evento start at play, dónde se puede encontrar y cómo podemos hacer uso de él de manera irreal. Ahora, saltando a nuestro mapa de pruebas de nivel, nuestro Plano de Nivel aquí. Puedes encontrar eso yendo aquí, abre Level Blueprint. Se puede ver que he configurado algún guión previo a filmar este video. Voy a correr todo esto fuera de Evento. Empieza a jugar. Ahora parece un poco intimidante, pero te voy a caminar por las diferentes cosas que estoy haciendo y por qué lo estoy haciendo. Ahora. En primer lugar, ¿cómo se obtiene un evento? Empezar a jugar aquí? Bueno, un par de métodos. Uno se puede hacer clic derecho y sólo escribir en empezar a jugar como celular, Así es como se puede encontrar. Alternativamente, me gusta usar el atajo de tecla de acceso rápido, que es simplemente mantener presionada la tecla P y hacer clic izquierdo. Ahora, lo divertido de tener en cuenta aquí antes de que enganchemos esto es que solo puedes tener un evento que comience a jugar por plano. Y no importa cuántas gráficas tengas. Si recuerdas antes en este curso, creé una segunda gráfica llamada tipos de nodos. Ahora si salto sobre mi gráfico de tipos de nodos, actualmente estoy en mi Gráfico de Eventos, Gráfica. Y mantengo pulsada la tecla P y hago clic izquierdo. No lo encuentro. Alternativamente, si escribo en una barra de búsqueda haciendo clic derecho y escribiendo, Begin Play y hago clic en ella, va a saltar a mi pestaña Event Graph. Entonces eso es una cosa a tener en cuenta. Solo puedes tener un evento que comience a jugar por blueprint. Entonces eso plantea la pregunta, bueno, ¿y si quiero hacer múltiples cosas fuera del evento? Empezar a jugar? ¿ Solo necesito un largo hilo de guión para hacer que sucedan múltiples cosas? Bueno, no, tú no. Ahí es donde este nodo de secuencia viene muy bien. Hablaremos más sobre el nodo de secuencia más adelante en el curso. Pero solo debes saber que el nodo de secuencia es algo que puedes usar para esencialmente dividir tu señal. Por lo tanto, al enchufar evento comenzar a jugar en un nodo de secuencia. Puedes agregar más pines de salida y luego hacer que una cosa suceda, luego otra, luego otra, y otra, todo en orden secuencial. Entonces vamos a explorar lo que voy a estar haciendo aquí. Fuera del evento B en juego dentro de mi Plano de Nivel. Bueno, lo primero que voy a hacer es tocar un evento sonoro. Begin play es un gran evento para usar si quieres que algo de música simplemente se ponga en marcha al principio de tu nivel. La segunda cosa que voy a estar haciendo aquí abajo es conseguir que mi personaje de jugador casting a mi ThirdPersonCharacter y luego almacenar mi personaje en tercera persona dentro de esta variable para que podamos hacer uso de ella. Así que lanzando a nuestro ThirdPersonCharacter y luego encapsulándolo dentro de esta variable. Justo abajo es donde en realidad vamos a estar usando esta variable que acabamos de almacenar aquí. Vamos a obtener nuestra referencia de personaje que almacenamos aquí. Vamos a conseguir la ubicación de nuestros actores y luego vamos a poner eso dentro de esta variable vectorial. Entonces algo que a menudo se hace fuera del evento empieza a jugar también es algo llamado inicializar variables, es decir darle un valor inicial. Ahora antes en este curso, y hablando general de los diferentes tipos de nodos variables, creo una variable de una variable vectorial que tenía valores por defecto de 000 y serían 000 si no les di algún otro valor. En este caso, lo estoy inicializando. Eso le está dando algún valor inicial que se basa en la ubicación de mis personajes. Así que va a alimentar la ubicación de nuestros personajes en esto y almacenarlo dentro de esta variable vectorial. Inicializar variables es algo que comúnmente se hace fuera de start play. Y también voy a imprimir los resultados de esto fuera a la pantalla para que podamos ver la ubicación de nuestra referencia de personaje cuando esto esté configurado. Entonces tres cosas que estamos haciendo aquí, fuera del evento empiezan a jugar. Vamos a tocar algo de música. Vamos a crear una referencia a nuestro personaje. Y luego vamos a usar nuestra referencia de caracteres para ayudar a inicializar esta variable vectorial. Aquí vamos. Por lo que se puede ver alguna inicialización de nuestra variable vectorial aquí mismo como siendo impreso en la pantalla. Se puede escuchar la música. Y por supuesto que este personaje lo hace referencia como se dice. Eso no es algo que sea muy visual en absoluto, pero eso se está haciendo fuera del evento comenzar a jugar. A continuación, hablemos de dónde puedes y no puedes encontrar Event Begin Play. Como pueden ver es aquí en mi Plano de Nivel. ¿ Qué pasa con mi blueprint de sub nivel no está disponible allí también? Sí, lo es. Y voy a dar clic aquí mismo para abrir el subnivel Level Blueprint. Y creé algunos guiones previos a este video en el que voy a retrasar tres segundos y luego reproducir un sonido de explosión y voy a depurar para que podamos ver esto disparándose. Pero notarán que una vez que juego a la espera de tres segundos y parece que no pasa nada. El motivo de eso es porque no estoy cargando este blueprint a nivel de subred. Y lo que quiero decir con eso. Si vuelvo a mi pestaña de niveles, necesito hacer clic derecho en el subnivel, cambiar el método de streaming de blueprints a siempre cargados. Y ahora si vuelvo a mi subnivel, puedo hacer clic en Reproducir. Ves ese evento disparando la cuenta regresiva de retardo, y eso hará que Event Begin juegue, reproduzca las cosas que vienen después de él. Por lo que está disponible en un plano bajo, así como un plano de sub-nivel. Además, el evento comienza el juego se puede encontrar en planos de clase de actor como nuestro ejemplo de recogida aquí. Nuevamente, agregué esto previo a filmar este video. También lo puedes encontrar en planos de personajes en tercera persona. Puedes ver que lo estamos usando aquí para crear nuestro HUD y mostrarlo en pantalla. Sin embargo, no encontrarás esto en nuestros planos de widgets. Aquí está nuestro medidor de salud, el Widget Blueprint. Y si voy a la pestaña gráfica, y hago clic derecho y algo de espacio vacío y escribo y empiezo a jugar. No lo encontrarás. Event Construct es esencialmente el evento comienza a jugar si lo deseas, dentro de un Widget Blueprint, tampoco lo encontrarás dentro de un blueprint de instancia de juego, pero casi todos los otra clase de Blueprint podrás encontrar Event Begin Play. Y por último, una cosa más muy importante que mencionar sobre Event Begin jugó antes de concluir este video. Si bien es cierto que este evento sí se dispara cuando comenzamos a jugar, ¿qué hacemos para los diferentes actores que desovan en algunos otros puntos durante el juego? ¿ Cuándo comienza el evento comienza el juego para ellos? Bueno, el evento comenzó comienza el juego para esos planos. El momento en que esas cosas son divertidas. Y sólo para mostrar esto, me voy a desplazar aquí un poco más en mi mapa de prueba de nivel, y he configurado un poco más guión fuera de evento empezar a jugar, donde voy a estar desove un plano, luz de techo que fue encontrado contenido estrella MI después de tres segundos. Ahora, déjame bajar un poco esto aquí. Para que veas que es un poco mejor. Después de tres segundos en nuestro plano bajo, vamos a estar desove esta luz de techo plano en una transformada dada no tengo que alimentar esto un transformador. Esto va a fallar. Déjame entrar aquí y voy a agregar un todas las clases que hice clic aquí mismo. Todas las clases encontrarán una nota. Busquemos un actor de notas sólo para darnos un lugar en el espacio para hacer referencia. Voy a levantar, levantarla en el aire así. Con eso seleccionado, voy a saltar de nuevo a mi Plano de Nivel, mantener pulsada la tecla R, clic izquierdo, Ahí está mi actor de notas. Voy a conseguir que los actores se transformen. Vamos a desovar este plafón. Ahora bien, lo que hice antes de este video en mi plano, luz de techo, y una vez más, eso se podía encontrar en mis planos de contenido estelar. Este plafón de aquí mismo es Creé este pedacito de guión donde estoy empezando a jugar. Vamos a retrasar otros tres segundos. Voy a establecer mi radio de atenuación de luces puntuales. Eso es esencialmente lo lejos de una luz de área o punto puede afectar. También vamos a establecer su color claro a este color rosado. Este evento de inicio de juego se va a disparar el momento en que se desove en nuestro nivel. Y de nuevo, estoy desovando en nuestro nivel aquí en mi mapa de prueba de nivel fuera del evento comenzar a jugar. Así que vamos a depurar este ajuste que lago. Entonces tratamos de enmarcar esto así. De acuerdo, compile eso, asegúrense de que nuestro script esté todo bien. Y aquí dentro nos vamos a la derecha allá. Después de tres segundos. Esa luz sí gira. Por lo que una vez más, aquí en mis planos, luz de techo, este evento comenzó a jugar disparó tan pronto como este actor engendró en el nivel. Por lo que para revisar el evento comience a jugar, es genial para ejecutar guión al inicio de la obra. En este caso, tocar algo de música es genial para crear referencias de objetos. En este caso, crear nuestra referencia ThirdPersonCharacter es ideal para inicializar variables. En este caso, lo estoy usando para inicializar nuestra variable vectorial aquí. También es bueno para los actores de desove después de una cantidad de tiempo determinada. Un montón de cosas que puedes hacer fuera del evento. Empezar a jugar. Bueno chicos, eso lo va a hacer a menudo. Este video te veremos en el siguiente. 26. Marque del evento: Bienvenidos de nuevo a todos. En este video, nuestro objetivo es entender qué es el tick de evento, dónde podemos encontrarlo y cómo se puede usar. Ahora bien, como se trata de un evento que dispara en cada cuadro, debes usar este evento con cuidado o te arriesgas destruir totalmente el rendimiento de tu juego. Es decir, tu velocidad de fotogramas puede sufrir de una manera grande, a lo grande. Por lo tanto, use este evento con precaución. Por lo tanto, los eventos se pueden encontrar en casi cualquier blueprint dentro de Unreal que incluye planos de nivel, blueprints subnivel y la mayoría de los blueprints de clase. Una excepción a eso, pero sé con certeza es el blueprint de la instancia del juego. Hablaremos más sobre ese importante tipo de plano más adelante en el curso. Yo sólo voy a hacer clic derecho en él algún espacio vacío aquí. Voy a crear una nueva Clase Blueprint del tipo actor. Podría elegir cualquiera de estos. Voya elegir actor. Voy a dejarlo como ese nombre predeterminado, y simplemente voy a hacer doble clic sobre él para abrirlo. Y puedes ver cuando saltamos al Event Graph, ese tick de evento es uno de los eventos predeterminados que está inmediatamente disponible para ti. Ahora bien, si fuera a borrar esto, déjame seguir adelante y hacer eso. Podría hacer clic derecho y escribir Tick, y puedo volver a agregarlo ahí. Ahora sólo se puede tener uno de estos párrafos. Así que si yo fuera a hacer clic derecho y escribir en Tick de nuevo, en simplemente va a ser como yep, ahí está. Te va a saltar directo a ella. Ahora voy a eliminar este plano aquí mismo y voy a saltar sobre mi Plano de Nivel para hacer algunas cosas con ticks de eventos. Así que abre Level Blueprint. Ahí está mi evento tick. También vale la pena señalar que solo se puede tener un tick de evento por un blueprint, no por gráfico. Este es mi Plano de Nivel. En, en mi Level Blueprint, actualmente tengo dos gráficas, mi Event Graph Graph y mi gráfica de tipos conocidos que creé. Estaba creando mi video hablando los diferentes tipos de nodos en Unreal. Entonces si estaba en mi Gráfico de Eventos, Haga clic derecho y escriba la palabra tick y haga clic en él. Me va a saltar a mi tipo de nodo grafica comida. Sí, ahí está tu garrapata de evento. Ahí está. Ahora evento tick, como dijimos antes, se dispara de cada fotograma. Ahora, vale la pena señalar que puedes mostrar tu velocidad de fotogramas en los editores de nivel. Entonces vamos a hacer eso ahora antes de que sigamos hablando de eventos aquí, salta de nuevo a tu editor de nivel. Y aquí tienes este ícono de hamburguesa de tres líneas, si quieres, adelante y da click izquierdo sobre eso. Aquí mismo, muestra cuadros por segundo Control Shift y h, haciendo eso emitirá tu velocidad de fotogramas a la pantalla que es de 120 fotogramas por segundo que actualmente lo estoy ejecutando. Eso son 8.33 milisegundos. De acuerdo, así que algo más que vale la pena señalar aquí es que puedes establecer una velocidad de fotogramas fija. Esto es un poco de tangente aquí, pero vale la pena señalar también. Si entras en tus ajustes, ajustes de proyecto, y escribes velocidades de fotogramas, me gusta llenar estos videos con todo tipo de conocimientos. Me vendría bien una velocidad de fotogramas fija. En este momento está ajustado a 30. Aquí no hay botón Guardar ni nada. Y ahora si iba a saltar de nuevo a mi editor de nivel, están mostrando que actualmente estoy corriendo a 30 frames por 2.33rd, 33 milisegundos, va a deshacer lo que acabo de hacer. Por lo que la garrapata del evento dispara cada fotograma. Hagamos algo con nuestros eventos dentro de nuestro Level Blueprint. Entonces déjame simplemente moverlo aquí arriba. Y voy a sumar, agregaremos un enemigo a nuestro nivel. No es un enemigo de fantasía por supuesto, pero aquí en mi navegador de contenido, voy a venir debajo de mi carpeta maniquíes, mi carpeta de mallas. Aquí puedes colocar cualquier cosa en tu nivel. Va a representar a un enemigo simple, estúpido, que no funciona. Voy a arrastrar y soltar este Quinn simple en mi nivel. Y con eso seleccionado, voy a saltar de nuevo a mi Plano de Nivel. Voy a mantener pulsada la tecla R en clic izquierdo para crear una referencia a nuestro simple enemigo Quinn ahí, si se quiere. Y fuera de evento tick, me voy a arrastrar fuera de esto y voy a teclear es válido. Quiero esta versión de signo de interrogación. Voy a estar comprobando si mis objetos ingresados aquí, mi enemigo es válido. Es decir, ¿existe? Y si no existe, es decir, se ha destruido. Lo vamos a hacer una vez. ¿ Qué vamos a hacer una vez? Bueno, vamos a tocar un sonido indicando que se ha ido, adios. Vamos a reproducir un sonido 2D, y tocaremos un sonido de confirmación VR confirmado q Ahora si vamos a ir con esta comprobación para ver si es válido o no. Necesitamos tener algún medio para destruir a este actor. Tenemos que destruirlo para que luego compruebe que no es válido. Recuerda, esta garrapata de evento se va a disparar cada segundo. Entonces voy a hacer clic derecho y algo de espacio vacío aquí abajo y vamos a hacer la tecla cuatro. En fuera de la tecla cuatro, voy a tirar hacia abajo nuestro clic izquierdo para traer en otra referencia a nuestro Quinn simple. Y me voy a arrastrar fuera de esto y teclear Destruye Actor. ¿ Verdad? Entonces la idea aquí es que cada cuadro que vamos a estar revisando para ver si nuestro símbolo enemigo Quinn aquí es válido o no. Si es válido, es decir, existe, vamos a hacer nada. Si no es válido, es decir, está destruido. Una vez vamos a tocar este sonido y así es como vamos a destruir a ese actor. Por lo que esto evalúa no es válido. De acuerdo, sigamos adelante y juguemos. Y se puede ver evento tick se está disparando de cada fotograma, pero no está yendo más allá de esto es válido porque está continuamente comprobando es válido, sí, existe en nuestro nivel. No obstante, una vez que presiono la tecla F4, aquí vamos. Se ha destruido. Y se puede ver cómo alguna vez tocamos ese sonido. Entonces ese es un ejemplo perfectamente de fiar de usar tick de evento. Ahora, una cosa que quiero señalar aquí es que se puede modificar la tasa de tick. Ahora si nuestro juego lo está ejecutando a 120 fotogramas por segundo, tick del evento se va a disparar 120 veces por segundo. Ahora, si hago clic en mi botón de valores predeterminados de clase justo aquí arriba, puedo modificar el intervalo de tick. Y de nuevo, dice en segundos, la frecuencia en segundos a la que se ejecutará la función tick. Para que no tenga que disparar a todos los cuadros. Puedo apagar esto cada dos segundos, cada tres segundos, iré cada cinco segundos. Ahora este va a ser un ejemplo un poco extremo. Pero ahora en cuanto destruya a mi actor, no va a tocar este sonido de inmediato. Vamos a seguir adelante y darle una oportunidad a esto. Voy a hacer clic en Reproducir. Voy a presionar la tecla F4 para destruir a nuestro actor aquí. Y luego finalmente tocó el sonido un poco rezagado después de eso. Y eso es porque solo está marcando, solo está disparando este tick de evento cada cinco segundos. Así que esa es una forma en la que puedes modificar tu tick de evento. Ahora aquí hay otro caso práctico de uso para el evento tick. Tener algo gira para enfrentar otra cosa a lo largo de un juego, como esta silla, porque obviamente tendrías una silla girando la cara de jugador todo el tiempo. Ahora imagina si eso fuera una cámara de seguridad o una torreta mira hacia abajo a balazos en el jugador y quisieras atraer al jugador. Podrías hacer eso cada fotograma está cambiando su rotación de re-frame. Ahora, si quieres jugar en casa y ver cómo lo hice, simplemente coloqué una silla de malla estática en mi nivel. Puedes encontrar cuando están en ese directorio, cambié la movilidad para esta silla seleccionada a una movible en el panel Detalles. Y luego en mi Level Blueprint, este es mi guión por haber puesto eso junto. Obtienes una referencia a tu silla seleccionando tu silla, manteniendo pulsada la tecla Alt y haciendo clic izquierdo. Y lo que esencialmente estoy haciendo aquí es que estoy diciendo odio compartir. Quiero que miren a este jugador y actualicen la rotación de ese cada cuadro. Ahora, ni siquiera hemos hablado de deltas segundos aquí. Así que déjame, voy a poner esto a la pantalla en primer lugar, vamos a arrastrar por aquí, ir cadena de impresión. Segundos delta es la cantidad de tiempo entre fotogramas. Entonces saltando de nuevo a mi editor de nivel aquí estamos corriendo a 120 fotogramas por segundo, que son 8.33 milisegundos. Entonces si toco esto, debería mostrar que el tiempo entre fotogramas es 0.0083 segundos porque estamos corriendo a 120 fotogramas por segundo. A 120 veces ese número va a igualar un segundo completo. Entonces ahí lo tienes. También podrías notar que en la parte superior derecha, no está mostrando mis frames por segundo mientras estoy jugando, aunque lo esté haciendo en el editor de niveles, la forma en que podemos conseguir nuestros frames por segundo a aparecer en nuestra ventana de juego aquí es simplemente tocar la tecla Tilda. Esa es la que está a la izquierda de la tecla única en la mayoría de los teclados en la parte superior izquierda. Eso va a traer en una pequeña barra de consola, si quieres, en la parte inferior, si escribo stat FPS y presiono Enter. Ahora muestra tu velocidad de fotogramas en la parte superior derecha. Es bueno saber. Ahora puedes usar la salida de segundos Delta en cálculos que determinan cuánto debe mover un actor dado como una plataforma cada fotograma. De esta manera, puede usar esas salidas Delta seconds para mover una plataforma la misma cantidad sin importar la velocidad de fotogramas. Eso es un poco más avanzado. No voy a entrar en eso, pero solo dándote una rápida imprimación sobre qué segundos Delta podrían usarse para mayoría de las veces no lo vas a necesitar sin embargo. Y por último, al principio mismo de este video, mencioné acerca de cómo hay que tener cuidado usando auténtico. Porque si no lo usas de buena manera, podrías destruir las velocidades de fotogramas de tu juego. Entonces voy a demostrar qué no hacer dentro de mi BP ThirdPersonCharacter. Puedes encontrar ese plano de personaje aquí en este directorio dentro de tu navegador de contenido. Dentro de aquí he preparado previamente un guión. Estamos fuera de la garrapata del evento. Simplemente estoy haciendo que mis actores se transformen. Ahí es donde este TercerPersonaje se va a ubicar y girar dentro del mundo. Entonces voy a estar desovando un fuego de efecto de plano que he puesto aquí mismo. Este es un actor de spawn del nodo de clase. Y fuera de esto, lo que simplemente hice es drogar fuera de esto y estoy sacando el componente de audio de fuego de este plano. Solo estoy dibujando ese componente en cuanto lo engendré en cada tick de aquí, en cada fotograma. Porque de lo contrario el audio para esto se pone realmente molesto, muy rápido. Así que ten en cuenta que una vez que haga clic en play aquí, mi velocidad de fotogramas se va a destruir. Va a pasar de 120 fotogramas por segundo a 20 bastante rápido aquí. Entonces aquí vamos. Mira en la parte superior derecha aquí. Note que está desovando un efecto de fuego donde quiera que esté mi personaje, cada fotograma. Y se puede ver lo perjudicial que es para la velocidad de fotogramas. Y una vez más, si entro en mi defecto de clase aquí y pongo mi tasa de tick para que sea algo así como, oh, vamos, vamos a configurarlo a cada tres segundos. Esto podría ser algo que podría ser aceptable. Entonces ahora, en lugar de esto disparando cada fotograma en mi clase por defecto, estoy diciendo, oye, auténtico sólo dispara cada tres segundos. Y haciendo esto, se puede ver que mi velocidad de fotogramas se va a quedar bastante estable al menos por un tiempo, porque solo estoy desovando ese efecto de partículas cada tres segundos. Entonces si vas a usar eventos tick y realmente no necesitas engendrar algo o rotar algo o hacer algo. Cada fotograma viene bajo los valores predeterminados de clase y establece su intervalo de tick a algún número. Bueno chicos, eso va a hacer todo por este para el evento tick. Te veremos en la siguiente. 27. Entrada de eventos: En este video, nuestro objetivo es mostrar cómo podemos utilizar los eventos de entrada. Uno de los eventos más comunes utilizando los juegos para disparar un poco de guión. Ahora cuando estamos hablando de eventos de entrada, estamos hablando de cosas como las pulsaciones de teclas en el teclado. Podría ser pulsaciones de botones como el botón a o B en un controlador tradicional. O podría ser algo así como tocar un dispositivo, un teléfono móvil, o un iPad, ese tipo de cosas. Uh, típicamente estos eventos de entrada simplemente se están registrando. ¿ Lo presionaste o lo soltaron? Los eventos de entrada no deben confundirse con los eventos de acceso, que pueden leer en un rango de valores como los thumbsticks izquierdo o derecho en un panel de control tradicional pueden decir si su personaje se está moviendo solo un poco o si estás tratando de correr con ellos. Por lo que los eventos de acceso son diferentes de los eventos de entrada. Ahora en el ejemplo que estoy a punto de mostrarles, vamos a estar haciendo para que al presionar un botón se haga sprint a nuestro personaje jugador. Y luego soltar ese botón hace que volvamos a nuestra velocidad normal de locomoción. Voy a estar usando nuestro ThirdPersonCharacter para este video. Entonces, si quieres jugar en casa, está en la carpeta Blueprints en tercera persona de contenido. Ahí es donde puedes encontrar ese plano. Haz doble clic sobre él para abrirlo. Y dentro de aquí se puede ver que ya hemos hecho uso de algunos eventos de entrada. Específicamente, estoy usando la tecla de flecha de mi teclado para enviar un trazo de línea al mundo. Y arriba aquí estoy usando la tecla cinco para ocultar o mostrar mi HUD Widget Blueprint que estoy creando al comenzar a jugar. Si me muevo un poco a la izquierda aquí, hay algunos otros eventos de entrada que estaban aquí por defecto. Tenemos un salto de acción de entrada que esto se establece en la configuración de tu proyecto y te mostraré cómo hacer eso y solo un poquito. Y también tenemos una entrada táctil. Por lo que ambos están haciendo que nuestro personaje salte o deje de saltar. De acuerdo, voy a agregar este script sprint justo a la derecha de nuestros guiones saltados. Así que haciendo clic derecho en algún espacio vacío, voy a escribir la palabra teclado para encontrar todos nuestros diferentes eventos de teclado. Y puedes enlazar esto a cualquier llave, como si lo hiciera con la tecla L. Y también voy a traer en otro evento también. Voy a hacer clic derecho y algo de espacio vacío. Y voy a hacer una búsqueda de una plataforma de juego, botón de cara, de abajo. Ahora, como ustedes saben, los mandos de PlayStation y Xbox son bastante idénticos. Entonces el botón de la cara del gamepad corresponde al botón x del mando de PlayStation, o creo que es el botón a del mando de Xbox. Conoces esa configuración de diamante encima en el lado derecho. Entonces los nombraron bastante agnósticos, para no llamar a un controlador en particular u otro. De acuerdo, ¿qué queremos que suceda cuando presionamos la tecla L en un teclado o conectamos gamepad a tu computadora. Bueno, aquí vamos a agarrar nuestro componente de movimiento de personajes, porque si seleccionamos nuestro componente de movimiento de personajes, se puede ver que tenemos muchas propiedades diferentes que podemos modificar sobre que, incluyendo nuestra velocidad máxima de caminata, ese es este parámetro aquí mismo. Esto es determinar qué tan rápido se está moviendo nuestro personaje en todo el mundo. Entonces voy a arrastrar en nuestro controlador de movimiento de personajes o Componente de Movimiento de Caracteres, no controlador. Para esto, me voy a arrastrar y voy a decir que se establece la velocidad máxima de caminata. Una vez más, eso nos va a permitir modificar nuestra velocidad máxima de caminata. Y voy a golpear Control C y copiar ese Control V para pegar eso. Así. Y así cuando presiono la tecla L y suelte la tecla L todos querrían que nuestra velocidad máxima de caminata fuera. Bueno, se puede ver que actualmente tengo mi velocidad máxima de caminata establecida en 500. Voy a decir cuando lo suelte, quiero que lo vuelva a poner en 500. Pero cuando quiera correr, voy a establecer que esto sea algo así como 3 mil algo un poco loco. Ahora actualmente no tengo mi botón de cara del gamepad conectado a esto también. Pero puedo, puedo hacerlo para que ya sea presionando la tecla L o el botón de la cara inferior en un gamepad, pueda establecer nuestra velocidad máxima de caminata a 3 mil. O si libero el alqueno o libero ese botón de la cara inferior, puedo establecer nuestra velocidad máxima de caminata de nuevo a lo que era. Ir a clic izquierdo, arrastrar, puntear la tecla C. Este es mi guión de Sprint. Compile esto para asegurarse que el script se vea bien. Y luego sigamos adelante y configuramos click Play. Y voy a configurar nuestra opción de depuración justo aquí para que sea nuestro ThirdPersonCharacter. Permítanme simplemente traer esa ventana de juego una vez más. De acuerdo, para que puedan ver que golpeamos turno en F1 para un poco mover esto hacia abajo un poco. Ahora vas a poder ver mientras presiono la tecla L, ese guión disparándose. Y luego cuando lo suelte, va a volver a establecer mi velocidad máxima de caminata. Por lo que WFISD para moverse, manteniendo pulsada la tecla L, moviéndose mucho más rápido, soltándola. Yendo mucho más lento. De acuerdo, ahora esto no es lo ideal. Tengo dos eventos de entrada separados esencialmente haciendo lo mismo. Y tampoco son muy descriptivas. He conseguido L, una llave y un botón de cara de gamepad en la parte inferior, esencialmente haciendo lo mismo. ¿ Hay alguna manera de que pueda simplificar esto? Y la respuesta es sí, se puede. Lo que vamos a hacer es saltar nuevo a nuestro editor de nivel principal. Y encima en los ajustes, ajustes del proyecto, vamos a pasar por debajo del lado izquierdo y seleccionar la categoría de entrada. Y aquí podemos crear nuestro propio mapeo de acción, eventos de entrada. Tenemos mapeos de acceso o mapeos de acción. Es muy importante que hagas esto bajo los mapeos de acción. Ahora bien, si amplío este triángulo aquí mismo, podemos ver que ya existe un evento de entrada de mapeo de acción llamado salto. Y esto es interesante porque si volvemos a nuestro personaje en tercera persona, volvemos a nuestro grip de saltos, tenemos un nodo de evento llamado input action jump. La razón por la que esto existe es porque en la configuración de nuestro proyecto creamos un mapeo de acción de salto que es un nodo de evento llamado jump. Y actualmente si amplío esto, puedo ver que dos entradas llamarán para que esta acción de entrada suceda. Una barra espaciadora en el teclado o en la parte inferior del botón de la cara del gamepad. Entonces vamos a estar agregando un nuevo mapeo de acción aquí. Haga clic en este botón más para agregar un nuevo mapeo de acciones. Y vamos a ponerle el nombre que queramos. Voy a llamar a mis sprints. Y voy a decir, esto va a estar ligado a la tecla L. O haciendo clic. Puedo agregar tantas de estas que quiera. Voy a hacerlo así el gamepad, Vamos a hacer botón de cara, ¿no? Seguro. Botónde cara de gamepad, ¿verdad? Cualquiera de estos presionando la tecla L o los derechos del botón de cara del gamepad lo harían para que nuestro personaje pueda sprint. Ahora no hay botón Guardar ni nada aquí. Con esto creado, puedo saltar de nuevo a nuestro ThirdPersonCharacter Blueprint. Ahora puedo hacer clic derecho en algún espacio vacío y escribir la palabra sprint. Y encontrará nuestro nuevo evento de acción que acabamos de crear llamado Sprint. Yendo a nombrar el nodo de acción de entrada sprint, ahora puedo eliminar estos dos nodos, engancharlos de esta manera. Y si fuera a saltar y jugar una vez más, W, a, S, y D para moverme manteniendo pulsada la tecla L. Y se puede ver que estoy esprintando, soltando poco a poco, poco a poco retrocederá. Ahora, lo siguiente muy importante a tener en cuenta acerca de los eventos de entrada es que si bien puedes agregarlos a toda una serie de tipos de Blueprint, no todos los dispararán por defecto. No obstante, algunos lo harán. Si fuera a agregar eventos de entrada a su Blueprint de nivel, esto se ejecutará como se esperaba. Presionas la tecla Z, se va a imprimir este nivel de cadena a la pantalla. También lo hará por planos de personajes y peones. Así que si presiono la tecla X dentro de mi plano de ThirdPersonCharacter, también se va a imprimir esto. También lo hará para los planos del controlador del jugador. Y ahora eso va a ser algo de lo que hablamos más adelante en el curso. Pero dentro de la configuración de mi proyecto aquí mismo, bajo mapas y modos player controller, ese es el tipo de blueprint del que estoy hablando. Puede usar eventos de entrada dentro del blueprint del controlador del reproductor sin ningún tipo de configuración especial. No obstante, en algo así como un modelo de clase de actor como el ejemplo de BP, recogida aquí. Si tuviera que presionar la tecla C, una de estas en mi nivel, no va a imprimir esto a la pantalla. Así que sólo para demostrar esto, déjame seguir adelante y hacer clic en Reproducir, haciendo clic en mi ventana aquí para activar eso, voy a presionar la tecla Z. Se ve ese nivel de textos que aparecen en la parte superior izquierda. Si presiono la tecla X varias veces, se ve que los textos impresos. No obstante, si presiono esa tecla C, esos textos que se supone que dicen recogida aquí en la parte superior izquierda, eso no se va a imprimir. Y eso se debe a blueprints de clase actor no están configurados para registrar eventos de entrada. Por defecto, sin embargo, puede cambiar esto dentro de la clase predeterminada de este blueprint. Así que si selecciono mis valores predeterminados de clase aquí en el lado derecho, tengo una categoría llamada input. Y como la entrada de recepción automática aquí está actualmente desactivada. No obstante, si cambio esto al jugador 0 porque actualmente tengo un juego de un solo jugador. Eso hará que ahora cuando presione la tecla C, imprima esto en la pantalla. Sigamos adelante y probemos esto. Ahora cuando presiono la tecla C, se puede ver la recogida de textos ahora se imprime en la pantalla. Ahora bien, vale la pena señalar aquí que aquí en mi clase por defecto tuve que cambiar esto dentro de mi blueprint de clase de actor. Para que la entrada de autorecepción sea el jugador 0. Si miras en algo así como di tu ThirdPersonCharacter Class por defecto y vas a la sección de entrada. Actualmente también dice que la entrada de recepción automática también está desactivada. Sin embargo, una vez más, el personaje y sobre clase blueprints nivel blueprints y un jugador controlador blueprints. Registrarán estos por defecto, pesar de que esto es un poco engañoso aquí diciendo que la entrada de recepción automática está desactivada. A continuación, necesitamos hablar de cómo irreal prioriza el mismo evento de entrada cuando se usa en múltiples blueprints. Y para demostrar esto en mi Plano de Nivel, estoy usando la tecla X para imprimir una cadena. También estoy usando la entrada x dentro de mi personaje en tercera persona ahora. Y también lo estoy usando dentro de mi pastilla de ejemplo BP. Bueno, está enganchado en tres áreas. Entonces si hago clic en Reproducir y presiono la tecla X, ¿ cuál va a priorizar? Y se puede ver está priorizando mi actor en el blueprint de clase aquí mismo, porque he habilitado en mi clase los valores por defecto que recibiré entrada del jugador 0, yo, el jugador prestador. Por lo que la priorización va de la siguiente manera. Si tiene una configuración como esta usando la misma entrada después de la clase, primero se priorizará BP, seguido de los planos de control o controlador de jugador que los planos controlador de nivel y y luego los planos del controlador de caracteres. Ahora bien, ¿qué pasa si dos planos del mismo tipo reciben entradas? Bueno, en ese caso, tomaríamos en esta prioridad de entrada más alta. Ahora para demostrar esto, voy a desenganchar Solo para que quede perfectamente claro, la tecla X dentro de mi ThirdPersonCharacter y dentro de mi mapa de prueba. Y ahora tengo mi camioneta de ejemplo enganchada a la tecla x. Y también estoy usando mi script de construcción de ejemplo de BP dentro de aquí. También voy a estar enganchando mi llave X para imprimir esta cadena. También tenga en cuenta aquí dentro de mis valores predeterminados de clase. He configurado debajo del área de entrada para el jugador 0, ese soy yo para recibir entrada aquí. Actualmente ambos se establecen a la prioridad de entrada 0. Prioridad de entrada 0, ahí está. Entonces, ¿cuál va a mostrar? ¿ Va a mostrar esta camioneta o va a mostrar el guión de construcción? Bueno, si la toco en prensa X, va a priorizar la que le agregué esa entrada x. Más recientemente. ¿Cómo alguna vez? Si fuera a entrar en mi camioneta de ejemplo y cambiar la prioridad a un número mayor, algo superior a lo que está en el guión de construcción. Podría ser uno, podría ser 100, podría ser 5 mil. Claro, sólo vamos 5 mil. Ahora debería imprimir pickup tan pronto como presione la tecla X. Ahí vamos. Y por último, una cosa más que quería agregar sobre los eventos de entrada dentro de tus gráficas es que si tienes ese nodo seleccionado, hay algunas opciones encima en el panel Detalles con las que puedes juguetear. Esta es una forma rápida para que cambies la clave de entrada aquí mismo. También puede agregar un modificador. Entonces en lugar de en este caso presionar la tecla X, podría verse obligado a presionar las teclas Alt y x al mismo tiempo para hacer que algo suceda. Pero del que realmente quería hablar que aprendí a través ensayo y error fue esta ejecución cuando las opciones de Pausa. Muchos juegos, lo tienes configurado para que si presionas un determinado botón, puedas pausar el juego. Y luego si quieres ponerla en pausa, presionas ese mismo botón. Echaremos un vistazo a esta configuración. Yo me tengo que ir aquí. Actualmente lo tengo configurado para que cuando presione la tecla X, voy a pausar el juego. Y luego cuando solté la tecla X, se supone que debo estar inpausándola y el juego, pero mira lo que pasa aquí. Voy a seguir adelante y hacer clic en Reproducir. Se puede ver esta camioneta de salud girando por aquí que realmente va a presumir que el juego está pausado o no. Estoy presionando la tecla X y todo se pausa. Solté la tecla X y todo queda en pausa. Y la razón de eso es que no estoy permitiendo este evento se siga ejecutando cuando el juego está en pausa, eso está actualmente configurado en falso. Entonces si quiero hacer que esto siga ejecutándose aunque el juego esté en pausa, voy a marcar esta casilla. Y así cuando presiono la tecla X ahora, se detendrá el juego. No obstante, cuando solté la tecla X, se desparalizará el juego porque esto también se va a ejecutar cuando se haga una pausa. Aquí vamos, manteniendo pulsada x, lo está pausando y ahora voy a liberar ECS. Y también disparó esa pulsación, o en este caso, la liberación de la tecla X. Entonces ahí lo tienen chicos que lo van a hacer todo por este sobre eventos de entrada, veremos en el siguiente. 28. Eje de evento: Bienvenidos de nuevo a todos. En este video, nuestro objetivo es conocer qué son los eventos de acceso en irreales, cómo podemos crearlos, en cómo podemos usarlos. Ahora en la actualidad, nuestro blueprint de personajes ya tiene algunos eventos de acceso dentro de él y funcionando. Vamos a seguir adelante y comprobar esos hacia fuera. En primer lugar, al entrar en carpeta Blueprints en tercera persona de tu contenido, encontrarás tu personaje BP ThirdPersonCharacter. Haz doble clic en eso para abrirlo. Y aquí es donde dejamos crear nuestro evento de entrada sprint, esos eventos de entrada de acción. Y esto ya había saltado evento de acción de entrada que la buena gente Epic Games ya había incluido con esto. Ahora arriba encontrarás algunos eventos del eje e incluso lo dice en el nombre. Tenemos un evento de eje de entrada para avanzar y retroceder, uno para mover a izquierda y derecha. Esto controla el movimiento de nuestro personaje. Y luego aquí arriba tenemos algunos eventos del eje de entrada de cámara, uno para el gamepad, y luego uno aquí en PC para ti, un folk de ratones. Y esto está determinando el movimiento de nuestra cámara a izquierda y derecha y arriba y abajo a medida que estamos moviendo eso por todas partes. Ahora bien, ¿de dónde salieron incluso estos eventos del eje? Bueno, si recuerdas de nuestro último video dentro de la configuración de nuestro proyecto es donde podemos crear no solo eventos de acción de entrada, sino también estos eventos del eje de entrada. Entonces voy a pasar por debajo de mi botón de edición en el extremo superior izquierdo del editor. Esta es otra forma de acceder a la configuración del proyecto. Dentro de la configuración de su proyecto vienen bajo la opción de entradas a lo largo del lado izquierdo. Y como pueden ver, tenemos mapeos de acción que tratamos en el último video. Y aquí tenemos mapeos de acceso aquí todos los nombres para los diversos eventos de ejes que actualmente existen dentro de nuestro editor. Ahora si amplío uno de nuestros eventos de eje aquí, puedo ver que puedo enlazar no sólo los botones del teclado a un evento de acceso con nombre dado. También puedo comprar algunas entradas de controlador así que es similar a los mapeos de acción de entrada que tuvimos en el último video, como nuestro salto y nuestro sprint. Ahora, hablaremos de lo que significan estos valores de escala un poco más adelante aquí. Pero antes de llegar a eso, definamos en qué eventos un eje incluso es cómo difiere esto de un evento de entrada, uno de estos eventos de entrada de acción, bueno, la principal diferencia es acceso eventos son eventos que se disparan continuamente, es decir, una vez por cuadro para realmente conducir a casa este punto, saltemos a nuestro plano de personaje en tercera persona. Y si me alejo un poco aquí y hago clic en Reproducir, se puede ver que mis diversos eventos de acceso se están disparando sin parar. Y tiene que hacerlo porque si va a estar manejando el movimiento de nuestro personaje per se, tiene que estar actualizando nuestro movimiento cada fotograma hacia adelante y hacia atrás, izquierda y derecha, así como la cámara movimiento a la derecha. Ahora otro rasgo definitorio de los eventos de acceso es que pueden salir en el valor del eje y esto se vincula en. Si salto de nuevo a la configuración de nuestro proyecto, estos valores de escala que se ven a lo largo del lado derecho de las diversas entradas. Para w, tenemos una escala de uno, y para S tenemos una escala de uno negativo. Ahora, para ver estos en juego, déjame saltar de nuevo en mi tercer personaje BP. Y voy a modificar este script aquí apenas siempre tan ligeramente. Voy a hacer clic derecho y algo de espacio vacío y escribir cadena de impresión. Y voy a tomar nuestro eje de entrada, avanzar y retroceder, canalizarlo justo por aquí. Y voy a estar sacando el valor del eje. Se va a convertir este flotador en una cadena, y va a imprimirlo en la pantalla. Sigamos adelante y hagamos esto ahora. Y puedes ver una vez más, esto se está disparando cada fotograma a lo largo del lado izquierdo, estás viendo un valor de 0 porque no estoy presionando hacia abajo ni W ni S. Ahora, cuando presiono la tecla W para avanzar, mira a lo largo del lado izquierdo de mi ventana de juego. Se ve que todos esos valores cambian a uno. valor de mi eje es uno. Cuando presiono la tecla Esc, todo cambia a uno negativo. Ahora, en un teclado está todo o ninguno, ¿verdad? No hay gradiente como se puede obtener con un stick analógico donde sólo se puede empujar un poco. En un teclado. Es sólo uno. Dame todo esto en adelante, o lo contrario de uno, que es negativo. Estamos utilizando los valores de uno y negativo uno para significar una cosa en adelante, o lo contrario de esa cosa en este caso, que es ir hacia atrás. Ahora bien, si todo esto es poco confuso, puedes pasar el ratón sobre este valor de escala en este nodo de función para agregar entrada de movimiento. Y te pueden decir que se puede usar también para entrada analógica. No tiene que ser solo uno o negativo. Estos ajustes de escala solo están determinando el rango. Y puedes tener un rango con un stick analógico, mientras que no puedes tener eso con eventos de teclado. Ahora, actualmente sí tengo un controlador conectado a mi computadora para demostrar esto. Déjame saltar de nuevo aquí. Haga clic en Reproducir. Y ahora voy a estar usando mi mando Xbox y presionando hacia adelante con el pulgar izquierdo siempre tan ligeramente. Y se puede ver que el valor es 0.08. Y a medida que lo empujo hacia adelante cada vez más, me está dando bueno como acercarme a uno. En tanto que si tiro hacia abajo del pulgar siempre tan ligeramente, y luego cada vez más y más y más, me está acercando a mis otros límites, que es negativo. Entonces el stick analógico me está permitiendo ir a algún lugar entre negativo 11. Ahora para conducir más lejos a casa este punto tengo una gráfica aquí para ustedes. Mirando a vista de pájaro, vista arriba hacia abajo de nuestro personaje. Este es nuestro pulgar izquierdo. En la Configuración del proyecto bajo nuestros mapeos de acceso, establecemos nuestra w para tener un valor de escala de uno Eso es lo más lejos que podamos ir, que es igual a que vas hacia adelante lo más rápido que puedas. En el extremo opuesto. Nuestra clave S tiene un valor, un valor de escala de negativo, es decir, lo contrario de uno, en este caso va en sentido inverso. Ahora otra vez, en un teclado, si presionas W, No hay, no hay entremedio aquí. O vas de 0. No me muevo todo el camino a uno, voy adelante y a toda velocidad. Si toco la tecla S, eso significa que voy hacia atrás a toda velocidad. No hay entremedio, sin embargo, con el pulgar izquierdo, puede hacerlo para que pueda simplemente empujar hacia adelante un poco y llegar a la mitad de sus límites de uno o negativo 0.5 a tus límites de uno negativo yendo en la dirección inversa. Ahora bien, vale la pena señalar aquí que sus valores de escala no tienen que correr de uno a uno negativo. Podrías establecer otros valores de escala, pero a menudo ese es el rango establecido. De acuerdo, Siguiente, sigamos adelante y creamos un par de eventos de acceso que podamos hacer uso. Así que voy a hacer clic en este botón más bajo Mapeos de acceso, asegúrate de no hacer esto en Mapeos de acción. Además déjame derrumbarme mi movimiento hacia adelante y hacia atrás. Voy a nombrar a este primer compañero. Muévete horizontal. Y voy a poner esto a mi llave L. Vamos a hacer algunos eventos de teclado haremos L, la tecla L. Y la escala para esto va a ser 11 veces más. Voy a poner lo contrario de esto para que sea la tecla J. Y eso va a tener una escala de negativa. Entonces voy a añadir otro eje de mapeo aquí. Esto se va a llamar compañero, muévete vertical. Y vamos a establecer esto para tener al repulsado con la escala puesta en uno. Y lo contrario a eso de eso va a ser la tecla K y poner la escala para que sea negativa. Ahora lo que vamos a estar apuntando a hacer aquí es agregar un componente a nuestro Third PersonCharacter. Y usando estos Mappings de Acceso, vamos a poder mover ese objeto alrededor. Va a ser una esfera sencilla. Por lo tanto, compañero, mover horizontal , compañero, y mover vertical. Lo hemos configurado en la configuración de nuestro proyecto en la categoría de entrada, Vamos a saltar de nuevo a nuestro Third PersonCharacter. Y lo primero que vamos a hacer antes de siquiera tratar con esos eventos de acceso que acabamos de crear. Vamos a agregar unos componentes. Entonces da click debajo de componentes, vamos a agregar un componente. Vamos a agregar una esfera simple componentes. Ahora encima en el panel Detalles, realidad vayamos primero al puerto de vista para poder ver esa esfera, esa es una esfera gigante, enorme. En primer lugar voy a bajar la escala. Yo quiero fijar un uniforme hacia abajo. Así que vamos a seguir adelante y dar clic en este botón de candado para que si cambio uno de estos valores, 2.5, cambie los tres. Eso es lo que hace ese icono de candado. También voy a establecer la ubicación para que sea a 20 en el eje x. Simplemente también, póngalo un poco frente a nuestro personaje. Ahora también voy a crear dos variables para ayudarnos con nuestro guión que vamos a estar escribiendo aquí. El primero va a venir bajo variables además de que se va a llamar tarifas horizontales acompañantes. Y esto va a ser una variable flotante porque va a ser un valor decimal. Voy a hacer clic derecho en esto. Voy a duplicar esto y esto se va a llamar compañero. Tasas verticales, mips mal deletreados ahí un poco. Y si compilo, puedo establecer algunos valores por defecto aquí. Entonces voy a fijar mis tarifas horizontales en diez. Y también voy a marcar esta casilla, por ejemplo, editable que entrará en juego aquí un poco más tarde. Y haré lo mismo para mi acompañante Tarifa vertical. Pondré eso a diez también. También marque esta casilla, por ejemplo, editable. Y sigamos adelante y guardemos eso. A continuación, vamos a seguir adelante y crear algún script over en nuestro gráfico de eventos utilizando esos eventos de eje que acabamos de crear. Así que moviéndome un poco a la izquierda aquí, yendo a hacer clic derecho y algo de espacio vacío, voy a escribir y moverme horizontal. Y ahí está mi evento de eje para compañero, muévete horizontal. Ahora bien, no se confundan entre los valores de los ejes y los eventos del eje. Queremos que compañero se mueva horizontal con un pequeño icono de flecha justo ahí. Boom. Ahora voy a hacer clic derecho y vamos a escribir en movimiento vertical, vertical. Ese pequeño icono de flecha derecha también lo indica en eventos. De acuerdo, y lo que queremos hacer es mover nuestra esfera aquí un poco cada cuadro. Así que sigue adelante y arrastra y suelta esto en nuestro gráfico. Aquí y aquí abajo. Y voy a arrastrar fuera de nuestra esfera y escribiendo añadir ubicación relativa. Por lo que queremos actualizar la ubicación de esta esfera, cada fotograma. Voy a enchufar esto de inmediato. La ubicación delta es lo mucho que queremos cambiar nuestra ubicación relativa. Entonces para hacer esto, voy a arrastrar fuera de nuestros ejes valor y hacer una búsqueda de un nodo multiplicar. Quiero multiplicar esto por nuestras diferentes tarifas aquí. Realmente podría haber hecho solo una variable aquí y llamar a esa tarifa solo acompañante. Pero sólo para jugar bien aquí, voy a enchufar nuestro compañero y tarifa horizontal directamente ahí. Y luego voy a tirar hacia atrás de esta ubicación delta y escribir en make vector. Estamos buscando un nodo vector make. Ahora de nuevo, este valor vectorial está buscando una x, y, y z solo queremos cambiar la ubicación de los eventos de este eje. En el eje y, lo vamos a estar moviendo horizontalmente. Entonces el eje y, el eje y, esa flecha verde. Entonces esos van a ser esos guiones. Y lo vamos a hacer de manera similar aquí abajo. Voy a copiar y pegar estos tres nodos aquí mismo, 123 resaltando los tres, control C, control V. Ordena esto un poco. La esfera es lo que hacemos al movernos. Y llegamos a asegurarnos de que conseguimos el valor de nuestros ejes aquí, en nuestro compañero, en este caso, Tarifa vertical aquí mismo. Una vez más, podríamos haber creado una variable llamada tasa acompañante, ya que son del mismo valor. Pero sí quiero que luzca esta característica editable instancia aquí en sólo un poco. De acuerdo, vamos a compilar esto. Vamos a guardar esto en. Ahora bien, si miramos hacia atrás en la configuración de nuestro proyecto, se puede ver que si movemos la tecla L y J, vamos a mover este compañero, si se quiere, horizontalmente. Y si presionamos el I o el KCI, lo vamos a mover verticalmente. Entonces saltando de nuevo a nuestro editor de nivel aquí, voy a seguir adelante y hacer clic en plaquetas. En realidad, vamos a disparar esto de nuestro Third Personacter. Yo quiero ver el guión disparándose. Así que haz clic en jugar aquí. Sepuede ver una vez más, estos se están disparando sin parar. Realmente debería desenganchar esa cadena de impresión. De hecho, déjame hacer eso ahora. Voy a desenganchar esta cadena de impresión de antes porque eso solo va a ser confuso. De acuerdo, estoy pinchando jugando. Esos eventos se están disparando. Se ve esa pequeña esfera ahí frente a mí. Voy a hacer el eje de entrada, moverme horizontal. Entonces J, K, L clave, así. Icky y KCI también lo está moviendo horizontalmente también. Y la razón de eso es porque cometí este error de simplemente tener a ambos cambiando la ubicación y. Voy a mantener pulsado Control, clic izquierdo y enchufar esto a la ubicación z y eso debería solucionar ese problema. Ahora. J y L y yo y k Sí, lo pueden poner por el piso. Ahora una característica divertida aquí es que porque estamos haciendo alguna multiplicación aquí para determinar en última instancia la velocidad a la que estamos cambiando la ubicación de nuestra esfera. Puedo volver a mi editor de nivel. Voy a cambiar mi configuración de lugar, haciendo clic en estos tres puntos aquí mismo a la ventana gráfica seleccionada. Una vez que haga eso, voy a jugar el juego y mi seleccionar la ventanilla. Mi Third PersonCharacter, que ha engendrado en el nivel aquí ahora está apareciendo en mi outliner. Eso es lo que ese color amarillento indica que se engendró en existencia. Y seleccionando esto, puedo buscar un acompañante. Y puedo ver estas dos variables que he expuesto al editor aquí desde mi BP ThirdPersonCharacter marcando esa casilla editable de instancia en cada una de estas variables. Ahora lo que esto me permite hacer es como presiono la tecla R o la tecla J y L, o las teclas I y K, Eso es genial. Pero cambiando el control de ganancia de F12, puedo modificar estos valores hacia abajo en el editor ahora, así que cambiaré la velocidad horizontal para que sea bastante lenta y la vertical sea bastante rápida. Entonces haciendo clic derecho aquí atrás, mi viewport, J y L, se está actualizando lentamente, pero arriba y abajo va bastante rápido. Entonces esa es solo una característica divertida que pensé que tiraría por ahí también. Una vez que escapo de aquí, vale la pena señalar que esos valores variables vuelven a sus valores predeterminados. Eso es sólo para jugar con diferentes valores en el juego. Algunos elementos más buenos para conocer antes de cerrar este video, ya que con los mapeos de acción de entrada que se encuentran en el último video, puedes seleccionar estos eventos. Y encima en el lado derecho en el panel Detalles, puede modificar algunas cosas sobre ellos, incluyendo ejecutar cuando pausa, me caí a hablar de esto, consumir entrada uno que también es disponible en los mapeos de acción de entrada con esto, si se establece en true, entonces esa entrada solo funcionará para el blueprint que tenga la prioridad predeterminada más alta que la implemente. ¿ De acuerdo? Eso se puede encontrar de nuevo en los valores predeterminados de su clase. Recuerda, debajo de tu entrada, esta prioridad de entrada, que consuma entrada solo funcione para el que tenga la prioridad predeterminada más alta. Ahora, otra cosa a anotar aquí con esto, esto se dispara de cada cuadro, ¿verdad? Entonces tal vez te preguntes, bueno, si modifico en mi clase los valores por defecto, la tasa de tick, ¿eso afectará esto también? No, no lo hará. Afectar la tasa de tick solo afectará ese evento. Evento tick, no afectará la velocidad a la que este tictac off. Esto va a salir de cada cuadro, cambies esto o no. Muy bien chicos, eso lo va a hacer todo por este video, veremos en el siguiente. 29. Cómo comenzar el evento: Alguna vez has jugado a un juego y has preguntado cómo cuando tu personaje camina por ese pasillo oscuro en un juego de temática de terror, un zombi salta en el momento justo para asustarte. O tal vez estás jugando un juego como Uncharted. Y a medida que Nathan Drake está fluyendo a lo largo del borde de un acantilado rocoso, el acantilado rocoso pasa a colapsar al pasar por una zona de aspecto precario. Ahora la forma en que se hace en los juegos es a través algo llamado volúmenes gatillo. Y más específicamente, cuando comienzas a superponer un volumen de gatillo van. Este video es para mostrar cómo podemos usar volúmenes de activación para iniciar un evento de superposición de inicio de actor. Ahora bien, este es uno de los eventos más comunes desencadenados en todos los juegos, y por lo tanto este es un evento esencial de conocer. De acuerdo, vamos a empezar aquí en la parte superior izquierda de nuestro editor, justo aquí debajo del, uh, agregar rápidamente al botón Proyecto, si se quiere. Podemos encontrar volúmenes, volumen disparador. Puedes colocar uno de esta manera en tu nivel. Alternativamente, podrías venir bajo el panel de actores de lugar, que agregará un panel de actores de lugar a tu editor de nivel. En aquí podrás encontrar diferentes pestañas de diferentes actores, incluyendo una pestaña Volúmenes. Y aquí, todos estos están listados alfabéticamente. Se puede encontrar un volumen de disparo. Déjame seguir adelante y colocar uno de estos. Y alternativamente debajo de la pestaña Básicos aquí mismo, puedes encontrar diferentes formas de volúmenes para agregar una caja de gatillo o una esfera de gatillo. Hay algunas diferencias sutiles entre ambos, aunque lo que pretendemos hacer con estos va a ser similar. En realidad no importa cuál añada. Voy a agregar esta caja de Trigger solo para mostrar un par de diferencias entre este y mi volumen de gatillo. Ahora si el cuadro Trigger seleccionado en el panel Detalles, me va a dar acceso a una opción de grosor de línea bajo la categoría Forma. Entonces voy a poner eso en diez de inmediato. Y luego para la extensión de la caja voy a poner eso para que sea algo así como, bueno, vamos 300 por 300 por 300, algo bonito y grande. Quiero que esto se coloque en algún lugar frente a mis jugadores. Empieza actor, pero no demasiado cerca, así que no lo estoy superponiendo enseguida. Iremos algo así. Está bien si está penetrando un poco por el piso. Ahora, también puedes establecer un color de forma aquí. Por lo que si lo deseleccionas, mostrará ese color de forma de verde. De lo contrario, cuando lo seleccionas, tiene ese resaltado amarillo. Ahora, esto es sólo un espectáculo, un poco de diferencia entre nuestra caja de gatillo y nuestro volumen de disparo. Si tengo mi disparador Volumen seleccionado, en realidad puedes cambiar la forma de este. Esto no tiene que ser de forma cúbica. Y para hacer eso, vendrías debajo de la configuración de tu pincel. Y bajo la forma de tu pincel, podrías cambiar eso por ser un cono. Podrías cambiar eso por ser una escalera si quisieras, un cilindro. Y luego hay diferentes propiedades para cambiar dependiendo de la forma del pincel. Pero para los propósitos de este video, me voy a deshacer de esto y simplemente rodar con esta caja de Trigger. Funcionalidad será la misma entre los que sin embargo. De acuerdo, entonces tenemos a esta actriz seleccionada en nuestro nivel. Voy a hacer algunos scripting aquí dentro de nuestros planos de nivel. Sigamos adelante y abramos eso. Y voy a poner esto en mi Event Graph, Graph. Y en algún espacio vacío, simplemente voy a hacer clic derecho. Y cuando haces clic con el botón derecho con un objeto seleccionado en tu nivel, puedes agregar un evento para ese objeto. En este caso, es Trigger box five es lo que se está llamando. Y bajo la sección de colisión, haría un quiero hacer un add on actor, comenzar solapamiento. Cuando algo se superpone a esta caja de Trigger. Podemos hacer algo y podemos averiguar quién fue el otro actor. Esto saldrá, nos hará saber quién fue el otro actor. Sólo para ayudar a visualizar esto, voy a arrastrar fuera de mi pin de ejecución aquí y traer una función de cadena de impresión. Y voy a enchufar a este otro actor directamente en esto para obtener el nombre para mostrar de lo que sea que se superponga esto, si yo fuera a compilar esto y jugar, ejecutar mi personaje a través de esto y mirar en la parte superior izquierda de mi ventana de reproducción aquí, cuando superponga este volumen de disparo, me mostrará que es un Third PersonCharacter superponiendo esto. Ahora no puedes ver este volumen de disparador actualmente en el nivel. Sigamos adelante y arreglemos eso antes de ir más allá aquí. Entonces voy a volver a mi editor de niveles aquí con mi caja de gatillo seleccionada. Tengo a este actor escondido en la casilla de verificación Juego marcada, lo que significa que esto se ocultará en el juego. Si desmarco esto, entonces adelante y juega. Ahora puedo ver ese volumen de gatillo en toda su fea gloria. De acuerdo, hagamos que algo suceda cuando solapemos estos volúmenes disparadores. Entonces volviendo a mi plano de nivel. Ya me puedo deshacer de esto, haga clic con el botón izquierdo y arrastre ahí para que le ponga al otro actor. Bueno, vamos a arrastrar fuera de esto y vamos a hacer este casting a nuestro personaje en tercera persona sólo para asegurarnos de que sólo queremos que algo suceda cuando nuestro Third PersonCharacter se está superponiendo también, estamos va a estar impactando directamente a nuestro Third PersonCharacter aquí también. Entonces es una especie de doble propósito por qué estamos haciendo esto. Entonces, cuando el otro actor es el tercer personaje, ¿qué queremos hacer? Bueno, podemos llegar a nuestro Third PersonCharacter aquí en modificar algo al respecto. Incluyendo si traigo abierto mi Third PersonCharacter Blueprint. Incluyendo podemos modificar algunas propiedades en los componentes de este movimiento de caracteres. Entonces hagámoslo. Y recordamos que el Componente de Movimiento de Personajes puede controlar cosas como qué tan rápido o un personaje se mueve. Esa es esa propiedad de velocidad máxima de caminata justo por aquí. Así que de vuelta aquí en mi Level Blueprint, voy a arrastrar fuera de mi como BP Third PersonCharacter y mecanografiar caracteres, gritos, movimientos de carácter. Podemos encontrar que en la parte inferior aquí, obtener el Componente de Movimiento de Carácter. ¿ Y qué queremos modificar dentro de este Componente de Movimiento de Caracteres? Bueno, quería modificar esta velocidad máxima de caminata. Entonces voy a volver a mi Plano de Nivel aquí. Vamos a arrastrar fuera de esto y teclear en set max, caminar, velocidad. Ahora ves este tipo de cosas hechas en juegos todo el tiempo. De hecho, hace poco terminé tocar el remake de Final Fantasy seven. Hay áreas en ese juego donde la lucha de Nube está caminando y su velocidad de movimiento se ralentiza. Entonces lo que está sucediendo allí es la nube se está superponiendo a una caja de Trigger y la velocidad máxima del personaje se está ajustando a un ritmo de caminata para evitar que corra por un área. A lo mejor estoy pasando por un espacio apretado o algo así. Voy a establecer la velocidad máxima de caminata abajo a 200 aquí cuando estoy superponiendo esta caja de Trigger, Vamos a compilar, asegúrese de que nuestro script se vea todo bien aquí. Y luego juguemos. Ahora déjame configurar mi opción de depuración aquí arriba a mi mapa de prueba de nivel para que puedas ver este evento disparándose. Mueva esto hacia arriba. ¿ De acuerdo? Y se puede ver que estoy corriendo a un ritmo decente. Pero cuando voy un solapamiento este volumen de gatillo, me desacelero. Ahora puedes ver que cuando salí de este volumen de gatillo, no vuelvo a acelerar. Y eso se debe a que este es un evento de inicio de superposición en actor on. Está afectando a mis personajes establecer mi velocidad máxima de caminata cuando la estoy superponiendo, pero no le estoy diciendo que vuelva a cualquier velocidad máxima de caminata habitual cuando termine esa superposición. Ahora ese es un ejemplo muy básico, pero vamos a llevar esto unos pasos ridículos más allá solo para mostrarte la gama de cosas que podrías hacer en un actor que comience a solaparse. Bueno, una cosa que podrías hacer es arrastrarte fuera de esto y podrías reproducir sonido en locación. ¿ En qué ubicación? Bueno, podríamos decir la ubicación de nuestra caja de gatillo. Hagamos clic derecho y algo de espacio vacío. Todavía tengo mi caja de gatillo seleccionada en el nivel. Entonces vamos a crear una referencia a un cuadro de Trigger. Arrastra fuera de esto y di Get Location, get actor, location. Realmente no hace falta hacer esto en un lugar dado, pero voy a tocar algo de música en un lugar determinado. Seguro. Correcto. Eso es algo que podríamos hacer. Algo más que podríamos hacer es que podríamos secarnos de esto y podríamos engendrar actor de clase. ¿ Qué queremos desovar? Bueno, primero que nada, tenemos que decirnos dónde desovar. Así que usando nuestra caja Trigger una vez más, puedo arrastrarme fuera de esto y decir sin embargo actor transform. Entonces, ¿qué queremos desovar en esa rotación de ubicación? Vamos a desovar en seguro, algo de humo mostrando. Entonces también podemos hacer algo como arrastrar fuera de esto y escribir sistema de spawn en la ubicación. Ahora el sistema va a desovar cualquier sistema de partículas del Niágara. Tan irreal tenía esta cosa donde acostumbraban a cada sistema de partículas llamado cascada y ese era el sistema más antiguo. Algunas de las explosiones y efectos de fuego que me has visto usar hasta ahora. Ese es el sistema de partículas más antiguo, pero el balanceo con el sistema de partículas Niágara de Huron. Por lo que si quisieras agregar un sistema de partículas de Niagara, puedes ir a la tienda de Epic Games y en el mercado bajo Unreal Engine cinco, podrías venir bajo efectos visuales. Se podría establecer el precio máximo a libre. Y puedes buscar agregar algunos de estos efectos de partículas del Niágara a tu proyecto. Eso es bastante sencillo. No voy a hacer eso ahora porque va a llevar un poco de tiempo. Pero si tuvieras que seleccionar uno de estos, podrías agregar al proyecto. Selecciona a qué proyectos queríamos agregarlo. ¿ Qué diablos? Voy a añadir esto probablemente después de este video en el proyecto. Y así es como harías eso. Tan pronto como hagas clic en este botón, vuelta aquí en tu editor de niveles, verías aparecer las carpetas apropiadas que tendrían esos efectos de partículas en su interior. Y eso te permitiría entonces ranurar en un sistema apropiado. Por supuesto, tendrías que decir esto donde quieres engendrarlo. De acuerdo, así que solo para demostrar esto, sigamos adelante y pinchamos en play una vez más. Y cuando solapamos esto, ralentizando, tocando algo de música, y nuestro efecto de planos está emitiendo algo de humo ¿verdad? Smack dab en el centro. Tiro con arco. Por último, es importante darse cuenta de que estos eventos de superposición comienzan no solo están restringidos a estos volúmenes disparadores que se encuentran aquí en el panel de actores de su lugar. Por el contrario, me atrevería a decir que la mayoría de los eventos de inicio de superposición que utilizo en scripting se encuentran dentro de las propias clases de blueprint. Ahora, para demostrar esto, volvamos al interior de nuestra pastilla de ejemplo bp. Haz doble clic en eso para abrirlo. Y si recuerdas desde el inicio del curso, estábamos usando un colisionador de esferas, un volumen de disparo para comprobar si nuestro personaje en tercera persona se superponía a eso para poder recogerlo. Ahora bien, si me encuentro debajo de este panel de componentes aquí mismo y hago clic en Agregar, si me desplácese hacia abajo, hay diferentes tipos de volúmenes de disparo están bajo la categoría de colisión, pero hay caja colisión, colisión forma de cápsula y colisión de esfera. Ahora con cualquiera de estos agregados a un blueprint, si lo seleccionas encima en el lado derecho, puedes ver que tienes un evento de inicio de superposición asociado a él. Esto está en el fondo. Alternativamente, si tuviera que hacer clic derecho en esto y venir bajo Agregar eventos, ese mismo evento está disponible aquí también. Así como un recordatorio aquí, mi gráfica de eventos. Aquí es donde estoy usando un componente impar, comenzar solapamiento. Este es un volumen disparador de tipo. Es sólo un componente extraño. Es un volumen de disparo componente actualmente en forma esférica. Y siempre enumera el nombre del componente aquí entre paréntesis, igual que en el plano de nivel, enumera el nombre del también enumera el nombre delvolumen disparador entre paréntesis. Esto es sólo un actor comenzar solapamiento en mi ejemplo de BP, es en componente comenzar solapamiento. Ambos son eventos superpuestos en los que se puede disparar algún guión. Bueno chicos, eso lo va a hacer todo por esta. En el siguiente video, hablaremos de los eventos finales de superposición. Te veré ahí. 30. Superposición del final del evento: Bienvenidos de nuevo a todos. Eneste video, nuestro objetivo es mostrar cómo los volúmenes de disparo también se pueden usar para disparar y superponer eventos. Ahora a veces quieres que algo suceda cuando comienzas a entrar a una zona y a veces quieres que sucedan cosas al salir de una zona. El evento de superposición final es para esos momentos en los que quieres que algo suceda al salir de un área. Ahora dejamos el último video donde cuando entré a este volumen, este volumen disparador de aquí mismo, ralentizaría mi personaje hacia abajo. Ahora hice algunas cosas más ridículas como tocar algo de música y engendrar un efecto de partícula, ese tipo de cosas. Pero en realidad no estoy acelerando mi carácter volver a subir una vez que salí de ese volumen. Entonces aquí adentro, vamos a explorar cómo hacer precisamente eso. Ahora antes de que lleguemos a eso, voy a saltar de nuevo mi Level Blueprint aquí mismo. Y sí rematé agregando un sistema de partículas Niagara al final aquí. Y solo quería señalar en el último video, te dirigí a la Epic Game Store. Y mientras estamos aquí, fui al mercado y buscábamos algunos efectos visuales. Tú E5, pasé por debajo un UE cinco efectos visuales y creo que estaba señalando debajo de los paquetes gratis. Este de aquí, este es el viejo sistema en cascada. Si quieres algunos efectos del Niágara, ve con uno que diga Niágara aquí mismo. Ahora sí incluí esto entre videos. Y así cuando lo toque ahora, verán que tengo una reina en ducha que va a estar desovando ahí también. Sólo quería señalarlo para completar ese último bit. De acuerdo, sigamos adelante con el solapamiento final. Por lo que se puede ver en el inicio solapamiento donde ralentizar nuestro personaje hacia abajo. Bueno, vamos a acelerarlos de nuevo. Ahora, al igual que lo mostramos en el último video, si queremos agregar este evento a nuestro Level Blueprint, debes asegurarte de que tienes a ese actor seleccionado en tu nivel. Así que sigamos adelante y asegurémonos de que tenemos los volúmenes de activación seleccionados. Puedes seleccionarlo aquí o encima en tu Outliner. De cualquier manera lo haremos. Y de vuelta en tu Plano de Nivel. Es así como puedes volver al plano del amor. Adelante y haz clic derecho y algo de espacio vacío, podemos agregar un evento para esto que se conoce como Trigger box five para mí, no te alarmes si dice algo más para ti. Caja de gatillo 27 o lo que sea. Realmente depende de cuántas cajas de gatillo hayas agregado hasta el momento. Aquí queremos hacer en un solapamiento. ¿ De acuerdo? También vamos a hacer un casting a nuestro Third PersonCharacter. Queremos averiguar si lo que terminó con el solapamiento Cast to Third PersonCharacter fue el personaje de tercera persona. Ahora, si fue el Third PersonCharacter el que terminó superponiéndose, ese volumen de disparo, queremos agarrar, sacar nuestro Componente de Movimiento de Carácter de ese Third PersonCharacter. Y luego podemos arrastrar fuera de esto y escribir en set max, caminar, velocidad. Y de nuevo, sé que esta propiedad existe porque dentro del componente de movimiento del personaje, dentro de mi personaje en tercera persona, hay un parámetro de velocidad máxima de caminata. Entonces eran 500 antes. Permítanme saltar de nuevo en mi plano de tercera persona solo para mostrar esto conduciendo a casa Componente de Movimiento de Personajes, la velocidad máxima de caminata está actualmente establecida en 500. Entonces por aquí en mi Plano de Nivel, voy a establecer esa velocidad máxima de caminata de nuevo a 500. Entonces, cuando terminemos de superponer ese volumen de gatillo, deberíamos, deberíamos volver a subir a nuestra velocidad normal. Y sólo quiero mostrar que estos eventos se van a disparar aquí. Así que déjame establecer mi opción de depuración ahí mismo. Devuélveme a mi personaje. Muy bien. Se puede ver que corría a 500. Dentro del volumen del gatillo. Cuando salgo y me superpongo de nuevo hasta 500, se podía ver justo aquí abajo estos eventos encendiéndose. Muy bien. Por lo tanto, considere los otros usos posibles para un solapamiento final. Podríamos hacerlo para que cuando nosotros y superpuestos pudiéramos dejar de tocar alguna música que engendramos, que no podamos detener esta música porque esto es un fuego y olvidamos. Pero si te hilaste en música, podríamos ahorrar eso en una variable y luego dejar de tocar su música. Quizás te vendría bien un solapamiento final para dejar de lastimar al jugador. A lo mejor jugador estaba en una zona de gas venenoso que estaba afectando su salud en cuanto la superpusieron. Pero cuando terminaron superponiéndose que ya no están perdiendo salud. O tal vez podría ser algo como lo ves en Uncharted o Final Fantasy seven, que cuando comienzas a solapar volumen, no puedes dibujar un arma, pero cuando terminas superponiendo ese volumen, puedes sacar esa arma. Eso se puede hacer a través de variables booleanas establecidas dentro de su ThirdPersonCharacter. Bueno chicos, eso lo va a hacer todo por este video, veremos en el siguiente. 31. Cómo comenzar el cursor: Bienvenidos de nuevo a todos. En este video vamos a crear un par de planos y también cambiar configuración de un proyecto solo para poder mostrar lo geniales que son los eventos mouseover. Ahora bien, estos son grandes eventos para saber si quieres hacer que algo suceda al pasar el mouse sobre un objeto, como un elemento de cambio de color, como algún tipo de efecto resaltado, o haciendo que aparezca una descripción del artículo tal vez el nombre del objeto sobre el que eres un colgado somero. O tal vez algunos textos que dice presionar X para interactuar o recoger este objeto, ese tipo de cosas. Ahora este va a ser predominantemente un tipo de evento de PC, pero es bueno saberlo sin importar en qué plataforma estés desarrollando. Sólo por ver todo lo que se puede hacer aquí en Unreal. De acuerdo, para presumir de esto, vamos a crear un plano de clase preciso. Y puedes poner esto en cualquier carpeta que quieras. Pero voy a venir bajo mi carpeta de descripción general de scripting, y voy a hacer clic derecho en algún espacio vacío, venir bajo clase Blueprint. Después de clase es el que estamos buscando y voy a nombrar este BP subrayar eventos del ratón. Entonces vamos a hacer doble clic en este tipo para abrirlo. Vemos nuestra raíz de escena predeterminada aquí mismo. Vamos a agregar un solo componente. Así que ven debajo del panel Componentes, haga clic en Agregar. Vamos a agregar una esfera componentes. Genial, y sigamos adelante y bajemos esto justo a nuestro nivel. Probablemente buena idea colocarlo justo frente a donde va a estar desovando tu personaje en que los jugadores comiencen actor. Para que podamos ver esto de inmediato y luego saltar de nuevo en sus eventos del mouse p.sit y dirigirse al Event Graph. Ahora, queremos hacer que algo suceda cuando pasemos el ratón sobre nuestra esfera aquí. Entonces, ¿qué eventos tenemos disponibles para esto? Bueno, con nuestros componentes de esfera seleccionados en el panel Detalles en la parte inferior, usted puede encontrar todos los eventos asociados y disponibles para usted para este componente en particular, incluyendo On begin cursor sobre. Entonces si hago clic en este botón más, puedo agregar este evento a nuestra gráfica y me saltará directo a él. Ahora, también puede agregar estos eventos si fuera a, haga clic derecho en ese componente. Y luego el pequeño menú fly-out agregar evento, lo encontrarías en esta lista. El motivo por el que no es esta lista es porque ya está agregada a nuestra gráfica. Pero si no se agregó a nuestra gráfica, aquí también lo podemos encontrar. De acuerdo, entonces lo que queremos que suceda es cuando movemos el cursor del ratón sobre la esfera, vamos a cambiar nuestro material. Entonces vamos a agarrar una referencia a nuestra esfera. Haz clic con el botón izquierdo del ratón y arrastra esto al gráfico. Y vamos a arrastrar fuera de nuestra esfera para poder hablar con ella, para cambiar algo al respecto. Voy a teclear material de set. Y una vez más, sabía que esta es una propiedad que podría cambiar sobre este componente porque si selecciono mi esfera, uno de los detalles disponibles es el material. Entonces esa es una buena pista si alguna vez te estás preguntando, oye, ¿qué puedo cambiar un componente dado mientras simplemente selecciono ese componente. Y en los detalles, mira todas las diferentes cosas que posiblemente podrían cambiarse al respecto. Ahora voy a poner mi material aquí para que sea algo bastante odioso. ir a escribir en vertex verde, Eso es lo que busco. Y la razón por la que no lo estoy encontrando es porque si hago clic en este pequeño icono de engranaje, quiero buscar no sólo mi contenido normal sino también el contenido de mi motor. ¿ Y no está verde vértice aquí? Déjame solo teclear verde ahí está. Modo de vista de color de vértice , solo verde, ese es el que estoy buscando. Entonces si compilo esto, puedo ver que mis scripts aquí es bueno para ir. Yo también lo guardaré. Se podría pensar, vale, si salto al juego y pongo el cursor del ratón sobre este miedo de que esto funcione. Bueno. En realidad no va a funcionar todavía. Necesitamos hacer algo de trabajo dentro de los planos de un controlador de jugador para habilitar realmente estos eventos del mouse sobre. Ahora, los planos del controlador del jugador es algo de lo que vamos a hablar mucho más cuando hablamos de blueprints de framework. Pero para hacer justicia a este video en particular, tengo que vadear en estas aguas. Para los propósitos de este video, todo lo que necesitas saber sobre el blueprint del controlador del jugador es que el controlador del jugador trabaja en tándem con un personaje o Blueprint de Clase de Peón para afectar tu experiencia de juego. El controlador del reproductor son esencialmente las cuerdas de títeres. El personaje es el Títere. Tú eres la marioneta. Analogía excesivamente simplificada, lo sé, pero el blueprint del controlador del jugador tiene algunas configuraciones de mouse dentro de él que necesitamos establecer para establecer para este comience cursor sobre el evento realmente suceda. Sigamos adelante y creemos planos de este controlador de jugador. Así que de vuelta aquí en nuestro editor de niveles, voy a crear una carpeta completamente nueva para albergar los planos de este controlador de jugador. Entonces voy a hacer clic derecho en mi carpeta de scripting. Vamos a crear una nueva carpeta. Y voy a llamar a este framework porque vamos a estar agregando algunos frame work tipo Blueprints más adelante en el framework del curso. Los planos son algunos planos de alto nivel para determinar las cosas sobre todo su proyecto. Y dentro de aquí voy a hacer clic derecho en clase Blueprint. Y uno de los más comunes es un blueprint de controlador de jugador. Controla un peón utilizado por el jugador. Esa es la descripción ahí. Y sigamos adelante y creamos esto. Voy a llamar a este BP underscore player controller. Vamos a hacer doble clic en este tipo para abrirlo. No mucho aquí, sin embargo, en la clase, el botón de valores predeterminados de clase con el seleccionado encima en el panel Detalles vienen debajo esta sección de interfaz del ratón. Esta es la parte realmente importante. Una cosa que quieres asegurarte de que haces es mostrar un cursor de ratón marcando esta casilla, nos vamos a asegurar que nuestro cursor del ratón que estoy agitando en este momento va a estar presente en la pantalla. Y el otro biggie que necesitas configurar aquí es habilitar el mouse sobre eventos. Eso es crítico para que este cursor sobre los eventos suceda. Asegúrate de compilarnos y salvarnos. Podemos seguir adelante y cerrar fuera de aquí, pero aún no hemos terminado. Hemos creado este blueprint de controlador de jugador, pero no le hemos dicho a nuestro proyecto que use este blueprint de controlador de reproductor. Entonces saliendo de aquí, vuelve a tu editor de nivel principal. Puedes venir en Configuración, configuración del proyecto, y en la sección de mapas y modos, tenemos esta clase de controlador de jugador. Queremos configurar esto a nuestro cliente bp player controller que acabamos de crear. Al hacerlo, le estamos diciendo a nuestro proyecto aquí que hemos creado para usar esta clase de controlador de jugador. Y esa clase de controlador de jugador. Recuerden, ¿tienen activados esos eventos mouseover? Genial. Ahora podemos saltar de nuevo a nuestro nivel. Sigamos adelante y juguemos. Y se puede ver mi cursor está presente en la pantalla y se puso verde casi inmediatamente aquí. Déjame seguir adelante y jugar. De acuerdo, no es verde. Debo haber pesado mi mouse sobre ella de inmediato. Así que déjame solo hacer clic derecho y algo de espacio aquí. Esa esfera es de ese color blanquecino y en cuanto le pase el ratón, boom, se vuelve verde. Ahora, saltando de nuevo en nuestro blueprint de eventos de mouse bp, se puede ver cómo podría extender esta funcionalidad para reproducir un sonido 2D, un sonido de confirmación de tipo cuando empiezo a pasar el mouse sobre la esfera. Pero no estoy haciendo nada cuando terminé con esa superposición de la esfera. Nos ocuparemos de esos eventos en el siguiente video. De acuerdo, quiero mostrar un ejemplo más aquí antes de terminar este video, vamos a hacer este siguiente ejemplo dentro de nuestro bp, un ThirdPersonCharacter Blueprint. Entonces me subiré por allá otra vez. Eso lo puedes encontrar en planos en tercera persona. Dentro de nuestro ThirdPersonCharacter. Vamos a establecer el material para nuestro personaje cuando empecemos a pasar el ratón sobre él. Ahora la razón por la que voy a estar mostrando esto es mostrar un parámetro que vas a necesitar tener establecido aquí para que estos cursor sobre eventos funcionen. Entonces lo que quiero hacer es cuando soy un mousing sobre este componente de la cápsula, esa es esta cápsula invisible encapsula nuestro personaje. Quiere que pase algo. Vamos a cambiar la malla, ese es el material, si se quiere, el color, la malla del color de nuestro, de nuestro maniquí aquí. Pasemos al Event Graph. Y con este Componente Cápsula seleccionado, voy a hacer clic derecho. Vamos a agregar eventos encendido, comenzar con el cursor sobre. Se va a agregar este evento a mi Gráfico de Eventos. Entonces voy a arrastrar en mi malla que es todo este maniquí, si se quiere, arrastre esto adentro. Y luego me voy a arrastrar fuera de esto y teclear un material de sets. Y lo voy a hacer para que nuestro material cambie a, lo voy a cambiar a verde también , ese color odioso. Muy agradable. Ahora, voy a seguir adelante y compilar esto, guardar y jugar. Y así ahora se puede ver cuando paso el ratón sobre mi esfera, sí, eso cambia de verde. Esperarías lo mismo cuando me pasa el ratón sobre mi maniquí aquí también, pero no parece estar funcionando lo que está pasando aquí? Bueno, si estás buscando hacer algo como esto, lo que tenemos que hacer es volver a nuestros componentes de la cápsula. Y en los ajustes de colisión, queremos ampliar nuestros Presets de Colisión aquí. Presets de colisión justo ahí, actualmente está configurado para peón. Vamos a cambiar esto a la costumbre. Y vamos a permitir que nuestro canal de Visibilidad aquí sea bloqueado. Esencialmente estos mouse sobre eventos verifican para ver si la visibilidad está siendo bloqueada y si está siendo bloqueada, esto se va a disparar en este momento estamos ignorando esto. Es así como estamos detectando si este evento del mouse sobre incluso está sucediendo, sucediendo. Es hacer una visibilidad trazada en el mundo. Ahora mismo. Es solo ignorar que si configuramos esto para bloquear, reconocerá que sí, ese rastro ha golpeado algo, en este caso el Componente Cápsula. Sigamos adelante y cambiemos ese material. De acuerdo, compilemos esto y guardemos una vez más, hacer clic en jugar aquí en esfera se vuelve verde y ahora miren eso. Mi malla se vuelve verde también. ¿ Por qué no todo el asunto? Bueno, la razón por la que todo el asunto no se está poniendo verde es porque si seleccionamos nuestra malla aquí en el panel Componentes y venimos bajo Materiales, solo estoy cambiando este elemento es 0. No voy a cambiar el elemento uno, que es determinar el color de otras partes de nuestro maniquí. Entonces, si tuviera que cambiar esto al índice de elemento uno, estaría cambiando esas partes contraposición a esas partes. Es bueno saber. ¿ Cuáles son algunos usos posibles para este tipo de eventos? Bueno, una vez más, se puede mostrar botón prompt, interactuar, destruir, recoger interactuar. Puedes tener algún tipo de efecto de resaltado de elemento. Podría ser un sonido, podría ser una partícula que podría ser un cambio material como lo hemos hecho aquí. Bueno chicos, eso lo va a hacer todo por esta. Te veremos en la siguiente. 32. Cursor de final del evento: Nuestro objetivo en este video es continuar nuestra exploración de los eventos del cursor del ratón disparando apagado y evento cuando terminamos de pasar el ratón sobre un objeto. Esto es extremadamente útil para hacer que un objeto vuelva a su estado normal cada vez que terminamos de revisarlo, igual que hicimos en el último video donde pasamos el ratón sobre esta esfera, se volvió verde, pero cuando yano lo pases con el ratón, acabamos con eso mouseover. No vuelve a su estado normal, lo mismo con nuestro carácter. Así que vamos a agregar algún cursor final sobre los eventos para volver a poner esas cosas a su estado normal. Señor, en mi Plano de Caracteres TercerosPersonales.- Y desde el último video aquí, todo lo que estamos haciendo es cuando estamos pasando el ratón sobre nuestro componente de la cápsula justo aquí, lo estamos haciendo para que el material en nuestra malla se vuelva verde, al menos elemento 0 NO elemento uno. Sigamos adelante y retrocedamos eso. Ahora la forma en que podemos retroceder es simplemente haciendo clic derecho en nuestro componente de cápsula aquí. En evento tenemos este extremo cursor sobre. Agreguemos esto a nuestra gráfica. Y simplemente puedo copiar este nodo aquí mismo, control C, control V. Podemos usar la misma referencia de malla aquí para establecer eso como nuestro objetivo. Y estamos afectando elemento es 0 aquí mismo. Vamos a afectar al elemento 0 aquí abajo. No obstante, necesitamos cambiar el material de nuevo a lo que era. Y cuál fue ese material una vez más, bueno, fue como MI Quinn. Y podemos saltar a esto haciendo clic aquí mismo navegando a eso en el Navegador de Contenido. Dice MI Queen. Se encuentra en esta serie de carpetas con esos activos de instancia material seleccionados aquí en nuestro ThirdPersonCharacter. Y asegúrate de tener esto seleccionado. Simplemente podemos hacer clic en esta flecha justo aquí para encajarla debajo del material. Vamos a compilar. Ese guión se ve todo bien. Guárdalo también. Haga clic en Reproducir. Y ahora al pasar el ratón sobre, nuestro personaje, se vuelve verde, al menos en esas zonas eran elementos 0 está afectando nuestra malla aquí. Y cuando me apago el mouse de esto, lo retrocede. Fresco. Hagámoslo con nuestra esfera de eventos de mouse bp también. Saltando a nuestra gráfica de eventos aquí, estamos haciendo algo cuando comenzamos somero sobre esta esfera. Entonces vamos a seleccionar nuestra esfera. Hagamos clic derecho aquí y algo de espacio vacío en los eventos para terminar el cursor sobre. Y yo haré lo mismo aquí. Control C para copiar, control V para pegar. Podemos usar esa misma referencia de esfera, o podrías agregar una nueva referencia de esfera, solo mostrando múltiples formas en las que podrías hacer algo. Ambos están apuntando al mismo índice de elemento. Este solo tiene un índice de elemento para los elementos materiales 0. Y está utilizando este material básico de formas. Puedo buscarlo aquí, o podría hacer como lo hacía antes de esta hora, simplemente busquémoslo haciendo clic en esta flecha desplegable. Tipo en formas básicas, material de forma básica. Y probemos esto, compilemos, guardemos y juguemos. Y también estoy por encima de la esfera se vuelve verde. De hecho, vamos a presumir este guión disparando por aquí. Se vuelve verde, se vuelve blanco, se vuelve verde se vuelve blanco, y se pueden ver esos eventos disparándose también. Cosas bastante directas. Utilízalo en tándem con que comience el cursor sobre el evento. Y una vez más, con el fin de hacer que cualquiera de estos cursor sobre eventos incluso suceda, o esos extremos cursor sobre eventos. Tienes que configurar esos ajustes en planos de tu controlador de jugador para aceptar esos eventos mouseover, chicos, lo haré todo por este. Te veremos en la siguiente. 33. Evento en el clic en: Bienvenidos de nuevo a todos. Bueno, en los dos últimos videos, mostramos cómo configurar un blueprint de controlador de reproductor para detectar cuando estamos pasando el mouse sobre algo. Y luego lo contrario de eso, que está terminando con el ratón por encima de algo. Vamos a estar dando eso un paso más allá en los siguientes dos videos aquí para detectar cuándo hemos hecho clic en algo, así como cuando tenemos un release que haga clic. Comencemos aquí dentro de nuestros eventos bp mouse. Y lo que queremos hacer es que queremos detectar cuando hemos hecho clic en esta esfera. Entonces para hacer eso, podemos hacer clic derecho en nuestro componente de esfera aquí. Y en nuestro menú desplegable Add Event little aquí, puedo agregar un evento con clic. Esa es una forma de hacerlo. O alternativamente con esos componentes seleccionados. En la parte inferior del panel Detalles está nuestra lista de eventos disponibles para ese componente. Voy a hacer clic aquí este botón más para el evento OnClick. Eso nos va a saltar al Event Graph y agregar ese evento a nuestra gráfica. Entonces vamos a configurar un guión muy básico aquí. Lo que quiero hacer es hablar con nuestros componentes de esfera para poder arrastrar esto o arrastrar esto aquí abajo. O bien va a hacer, yo lo voy a conseguir. Y quiero establecer la escala mundial de este objeto cuando haga clic en él. obstante, no quiero establecer esto en un número duro y rápido. Quiero hacer un poco de una matemática muy básica. Entonces lo que voy a hacer es arrastrarme fuera de esto. Voy a obtener su escala mundial actual aquí escribiendo y simplemente obtener escala mundial. Eso me dará su escala mundial actual, que si selecciono mi esfera aquí, La escala mundial de esta es actualmente 111. Y quiero hacerlo para que cada vez que haga clic en esto, simplemente le voy a añadir un poquito. Así que arrastrando fuera del valor de retorno aquí, usa ese botón más para agregar un nodo de adición. Y simplemente vamos a agregar 0.1 en las dimensiones x, y, y z, haciendo esto un poco más grande cada vez que hagas clic en él. Entonces, la primera vez que hagas clic en él, vamos a estar apuntando a nuestra esfera. Vamos a estar fijando nuestra escala mundial. Va a pasar de uno a 1.1 en todos los ámbitos, luego haciendo clic en él de nuevo, lo configurará en 1.2, etcétera, etcétera. Vamos a compilar el script y guardarlo. Y esto todo se ve bien en bien sin embargo, verás que una vez que haga clic en Reproducir aquí y estoy depurando este objeto de eventos de mouse aquí. Puedo seguir adelante y resaltarlo y se pone verde. No obstante, cuando estoy pinchando sobre él, parece que no pasa nada. Ahora la razón por la que no está pasando nada aquí es porque necesito cavar de nuevo en mi controlador de jugador y marcar una casilla que habilite los eventos de clic. Entonces, si olvidaste cuál era tu blueprint de controlador de jugador, lo teníamos en nuestra carpeta framework. Haz doble clic en eso para abrirlo. Y dentro de aquí con un botón de clase por defecto seleccionado vienen bajo la sección de interfaz del ratón. Y al igual que antes donde habilitábamos un mouseover eventos, necesitamos habilitar eventos de clic. Ahora una vez que hagamos esto, ten en cuenta esto aquí abajo, las teclas de eventos de clic. Entonces estamos comprobando esto. Sí, podemos reconocer eventos de clic. Y abajo, podemos establecer lo que se registra como un evento de clic. Por defecto, se va a establecer el botón izquierdo del ratón, pero se podría hacer clic aquí. Podrías hacer clic allí varias veces para agregar diferentes claves. Entonces voy a borrar esto porque solo quiero el botón izquierdo del ratón. Por lo que eso funcionará. Habilitará el botón izquierdo del ratón. Se registrará, eso es un evento de clic. Esto también vale la pena señalar aquí que abajo tenemos un canal de seguimiento de clic predeterminado y está configurado a lo largo del canal Visibilidad. Volvamos a nuestros eventos bp mouse. Y si selecciono aquí mi esfera y miro hacia arriba en el panel Detalles, entra bajo la sección de colisión. Se puede ver que si vengo bajo Presets de colisión, que está configurado para bloquear todas las dinámicas para este componente en particular. Abajo, mi canal de traza, para el canal Visibilidad nombrado o el canal de traza llamado visibilidad está configurado para bloquear. Esto es importante porque mientras esto esté configurado para bloquear, puede reconocer un evento de clic. También volviendo a mi controlador de jugador bp, muestra que la distancia de traza para esto es de 100 mil unidades irreales. Entonces la forma en que funciona es si hago clic aquí en mi mundo, así, ese objeto está a menos de 100 mil unidades irreales del lugar que estoy haciendo clic en la pantalla. Por lo que registrará eso como un evento de clic. Si es más allá de eso, no lo registrará. Entonces vamos a darle a esto una obra de teatro aquí. Voy a volver a eventos de ratón de BP para que podamos ver esto disparándose, haciendo clic en play y metiendo esto aquí abajo. Por lo que es reconocerlos mouseover. En cuanto hago clic en, se hace un poco más grande. Pinchando de nuevo, un poco más grande, un poco más grande, un poco más grande, un poco más grande. Entonces ahí lo tienes. Para permitir que este evento onclick funcione dentro de tu controlador de player bp, debes tener activados los eventos click. Y luego también dijo al menos una clave de evento de clic. Chicos, eso lo hará todo por esta. Nos vemos en la siguiente. 34. Evento en lanzamiento: Bienvenidos de nuevo a todos. Bueno, este es el acompañante del video anterior. Lo hicimos en el último video que una vez que hicimos clic en nuestro blueprint de eventos del mouse bp aquí, la esfera, la estamos haciendo incrementalmente más grande. Vamos a cambiar un poco nuestro guión y vamos a hacer que algo suceda cuando soltemos nuestro clic del ratón. Por lo que hacemos que algo suceda cuando hacemos clic con el botón izquierdo del ratón hacia abajo. Pero cuando levantamos sobre eso, queremos que pase algo más. Volvamos a nuestros eventos bp mouse. Actualmente lo tengo para que cuanto haga clic en la esfera, se haga un poco más grande. Voy a eliminar estos dos nodos y voy a simplificar un poco este script aquí. Voy a golpear Control C y Control V para duplicar esto. Y lo que quiero hacer es también apuntar a la esfera. No obstante, quiero agregar un eventos inéditos, así que voy a hacer clic derecho en mi esfera en el evento. Y al soltarse, esto se disparará una vez más. Una vez que levante mi botón izquierdo del mouse haga clic aquí. Lo vamos a hacer para que cuando pinchemos en nuestra esfera, vamos a establecer el tamaño para que sea dos en todos los ámbitos, el doble del tamaño. Y cuando lo soltemos, se va a configurar para ser uno en todos los ámbitos. Y voy a mover esto a la parte superior izquierda aquí, y vamos a compilar eso. Asegúrate de que el guión se vea bien. Sigamos adelante y juguemos esto. Y se puede ver que una vez que hago clic en, se pone grande. Una vez que lo suelte, vuelve a su tamaño normal. Grande, pequeño, haga clic, Suelte. Cosas bastante sencillas. La otra cosa que tiraré aquí es en tu controlador de jugador bp. Siempre y cuando bajo los valores predeterminados de clase tengas activados los eventos de clic, siempre y cuando eso esté activado y tengas una clave de evento de clic de algún tipo que permita que funcione el evento onclick, así como el evento de lanzamiento para trabajar. Entonces una especie de dos-por-uno ahí. Muy bien chicos, eso lo va a hacer todo por este. Nos vemos en la siguiente. 35. Golpear al evento: Bienvenidos de nuevo a todos. Event hit es el tema de este video y este es un evento súper importante de saber porque la colisión entre actores está sucediendo en todo tipo de juegos todo el tiempo. Imagínate en un juego de disparos, disparas una bala, golpea una pared. Se ve un poco de polvo volar hacia arriba y se ve una bala D cal que queda en ese punto de impacto. O imagina que estás planeando un juego de carreras. Te golpeas contra otro auto y ves volar unas chispas. Esa es una pista de evento que se va detrás de las escenas y que hacen volar esas chispas. Esas calcomanías de bala aparecieron ese punto en la pared. De acuerdo, vamos a explorar cómo se puede utilizar este evento. Ahora, voy a estar usando este lugar de actor cubo en mi nivel, se llama cubo. Es un actor de malla estática. Puedes colocar cualquier actor de malla estática en tu nivel para comprobar lo que estamos a punto de revisar. Pero si quieres seguir jugando en casa, fui justo aquí, bajo formas y ahí mismo conseguí mi cubo. Con eso seleccionado, voy a saltar a mi Plano de Nivel. Y en algún espacio vacío, voy a hacer clic derecho y vamos a agregar un evento para ese actor. Tenemos seleccionados vienen bajo la sección de colisión. Y aquí tenemos add on actor hit. Al igual que nuestros eventos superpuestos. Nos puede decir quién fue el otro actor que en este caso nos golpeó. Vamos a revisar para ver, en este caso, si es el personaje jugador el que nos golpeó. Así que vamos a hacer clic derecho y algún tipo de espacio vacío en, obtener personaje jugador. Vamos a ver si el otro actor es igual al personaje jugador. Es decir, ¿son lo mismo? ¿ Es el personaje jugador que nos golpeó? Esta es una forma de hacer esta comprobación para ver es el personaje jugador, el otro actor que nos golpeó. Si son iguales, entonces vamos a arrastrar fuera de aquí, traer un nodo de rama. Y si efectivamente es cierto que el personaje jugador fue el otro actor que nos golpeó. Si eso es cierto, nos vamos a arrastrar fuera de aquí y teclear toca sonido a D. Ese es un sonido no localizado, y voy a hacer mi vieja explosión buena. Q, porque eso es muy distinto. Eso es algo que pasó. Además, lo que haré es destruir esa malla. Entonces voy a hacer clic derecho y algo de espacio aquí. Vamos a crear una referencia a nuestra cola aquí. Arrastra fuera de ella y escribe Destruye Actor. De acuerdo, sigamos adelante y compilemos esto para asegurarnos de que nuestro script se vea bien. Marca de verificación verde dice que sí lo es. Y luego voy a seguir adelante y hacer clic en jugar aquí. Y así se puede ver el guión disparando arriba. Ejecutemos a nuestro jugador hacia ese cubo. Aquí vamos. Bam. Ahora en este punto, vale la pena frenar sólo un poco para explicar cómo incluso se detectó esta colisión. ¿ Cómo funcionó esto? ¿ Por qué mi personaje no pasó justo a través de ese cubo? Bueno, para empezar, revisemos nuestro plano de personaje en tercera persona. Tengo eso abierto aquí. Y tengo el componente de la cápsula seleccionado. Todos los demás componentes están unidos a eso. Ese es el componente invisible rodea a mi personaje aquí. Y si miro por encima en el panel Detalles debajo de la sección de colisión, actualmente tengo mis Presets de Colisión configurados en Personalizado. Y se puede ver cómo la colisión aquí está configurada para bloquear todo, todos los diferentes tipos de objetos. Ahora bien, ¿qué tipo de objetos hay? Bueno, este personaje en tercera persona en particular es un tipo de objeto peón que se enumera bajo el tipo de objeto. Y este estanque está configurado para bloquear objetos estáticos del mundo, objetos dinámicos del mundo, otros estanques y todas estas otras cosas aquí mismo. Ahora comparemos esto con lo que vemos en nuestro cubo. Ahora tengo mi cubo seleccionado aquí en el propio nivel que es una instancia de cubo. Esta instancia de cubo está compuesta por componentes de malla estática, y ese es Componente de malla estática. Si selecciona eso, ahí es donde se ranurará la malla de tubo real. Desplázate hacia abajo aquí y mira los ajustes de colisión. preset de colisión aquí está actualmente configurado como predeterminado, por lo que realmente no puedo profundizar y ver todas esas otras configuraciones. Sin embargo, si tuviera que cambiar esto a costumbre solo momentáneamente, expondrá la configuración actual de la colisión para este cubo. Se puede ver que el tipo de objeto enumerado para este cubo es un tipo de objeto estático mundial. Ahora bien, esto está configurado para bloquear un peón, igual que nuestro Third PersonCharacter son peón está configurado para bloquear un objeto estático mundial también. En pocas palabras, están destinados a chocar entre sí. Una cosa no va a pasar por otra. Ahora, si tuviera que cambiar mi cubo aquí. Para ignorar colisiones con un peón. Recuerda que mi ThirdPersonCharacter está configurado como un tipo de objeto peón. Vamos a establecer momentáneamente esto para ignorar estanques. Mira lo que pasa ahora. Intenta correr mi peón, mi personaje por eso y no pasa nada. Sí se pone una cosa poco torcida con la cámara. Pero larga historia corta, que en el actor hit evento nunca ocurre. Déjenme seguir adelante y cambiar eso aquí atrás para bloquear. Y cambiará la colisión, la presentará de nuevo al default. De acuerdo, ahora vamos a bucear un poco más profundo aquí porque hay algún matiz que debes saber sobre la madera trabajando con este evento. Vamos a hacer clic derecho en algún espacio vacío aquí estoy en mi carpeta de resumen de scripting de contenidos. Y quiero crear un actor preciso de planos de clase, BP subrayan eventos. Hit es lo que llamaré a esto. Y voy a hacer doble clic en esto para abrirlo. Y voy a agregar tres componentes aquí. Agregaré un cubo. Voy a hacer zoom aquí atrás. Voy a agregar una esfera, voy a mover eso hacia la derecha un poco aquí también. Y agregaré el desplazamiento hacia abajo. Agregaremos Sure, un cilindro. De acuerdo, ahora en realidad no importa qué actores tengas. Te has apegado a otras. Si están apegados o no. Eso realmente no importa para los propósitos de este video, lo que sí quiero llegar sin embargo, es el Event Graph va a eliminar estos eventos y luego algún espacio vacío va a mostrar cómo puedesagregar hit de evento. La primera forma, haga clic con el botón derecho en el evento hit. Eso te dará éxito al evento. Alternativamente. Otra forma de comprobar qué eventos están disponibles dentro de un plano determinado es más en el panel Mi Blueprint bajo la sección de funciones. Si te encuentras debajo de la anulación, se cayó justo por aquí, selecciona esto. Tiene toda una lista de eventos disponibles para usted para esto un actor de blueprint, incluido el éxito del evento. Ahora todo eso es un poco engañoso, al menos me pareció confuso cuando me metí por primera vez en blueprints scripting, porque bajo el área de funciones, se pueden encontrar diferentes eventos, al menos me pareció confuso cuando memetí por primera vez en blueprints scripting, porque bajo el área de funciones,se pueden encontrar diferentes eventos, adivina con su significado aquí hay cualquier cosa que añadas más allá de estos diversos eventos. Esa es la funcionalidad esencialmente que estás agregando para cuando golpeas algo en este blueprint. ¿ De acuerdo? Entonces lo que quiero presumir aquí es drag off type in print string. Y queremos encontrar la otra cosa que nos golpeó. Así que voy a arrastrar fuera de aquí y escribiendo obtener nombre para mostrar. El motivo por el que estoy haciendo algo de esto es para demostrar que este evento en particular golpea se disparará si golpeamos algún componente que agreguemos, no importa cuál. Entonces sigamos adelante y juguemos aquí. Estableceré mis objetos de depuración también. Bueno, en primer lugar, tengo que añadir esto a mi nivel donante. Eso sería de ayuda. Voy a añadir esto a mi nivel, arrástralo y suéltalo aquí y gírelo un poco. Ahí vamos. Adelante y juega. Nuestro objeto de depuración es sets. Y ahora cuando le pegue a alguno de estos componentes que dispararán, eso se apagará. Y luego dispararé. No importaba a qué componente le pegué ese evento hit sí se disparó y se puede ver en los incendios se apagó varias veces. Lo cual es algo de lo que hay que tener en cuenta porque en muchos casos no quieres que se apague varias veces así. Para remediar que podrías agregar un nodo due once in-between aquí para que la primera vez que lo golpees, solo lo haga una vez. Pero para llegar a nuestro siguiente punto aquí es que puedes agregar un hit de evento cuando golpeas un componente específico. Voy a seleccionar mi cubo aquí. Y si hago clic derecho, puedo agregar un evento, agregar cabezales de componentes. Entonces esto en hit es específico de golpear solo a este cubo. Déjame arrastrarme fuera de aquí y solo teclea la cadena de impresión. Y simplemente lo voy a poner en la cola de palabras cuando golpeemos esa Q. Así que enmarcando mi guión así, haré clic en play una vez más. Ahora se puede ver que cuando golpeo este cubo, ambos eventos se están disparando. No obstante, si golpeo ajustar la esfera, sólo ese golpe de evento superior se disparará. No es que los componentes impar golpean porque eso en el golpe de componente es específico de ese cubo. Ahora, un poco de matiz muy importante para entender sobre el golpe de evento es lo que sucede si tienes objetos de física en tu nivel. Y por eso, estoy hablando un objeto que se puede patear alrededor o respeto a la gravedad desplegable, etcétera. Déjame seguir adelante y hacer clic en play aquí y mostrarte lo que quiero decir. Ves esa silla cayendo al suelo, eso es un objeto de física. Ahora estos son realmente sencillos de configurar. Si tienes una silla, alguna otra malla estática en tu nivel, cualquier malla estática servirá. Aquí es donde encontré esa silla en mi contenido de inicio encima en el panel Detalles. Si selecciono mi instancia de silla, entra debajo del componente de malla estática, pero entra en la sección de física. He configurado esto para simular física. Ahora hay un montón de propiedades que puedes configurar Si un objeto simula física. Pero en cuanto marque esta casilla, esto se considera un objeto de física. Si entro en mi golpe de evento BP, viste esa silla golpear este plano de la clase de actores. Tenga en cuenta que cuando hago clic en Reproducir, ninguno de estos eventos se está disparando. Los eventos de kit siempre se dispararán si es el movimiento del personaje el que está desencadenando el golpe, estos eventos de golpe no se dispararán si un objeto de física lo golpea. A menos que el actor o querer detectar un hit tenga marcada una casilla de verificación particular. Entonces sigamos adelante y hagamos eso. Voy a venir debajo de mis componentes, mi componente de cubo dentro del evento BP hip and over en el panel Detalles debajo de la sección de colisión, lo que estoy buscando es Simulación genera eventos de hit. Si marco esta casilla y luego hago clic en Reproducir. Se puede ver ahora que ambos de esos eventos se desencadenaron. Ahora qué pasa si arrasto esta silla arriba, digamos el cilindro y luego se ve por encima del cilindro. Y luego haz clic en play. Esos eventos no se disparan. Y eso es porque tendría que seleccionar mi cilindro y hacer lo mismo aquí. Necesitaría marcar esta casilla para simulación, genera eventos de hit. Por lo que muy importante poco de matiz para entender su, su nariz chicos evento golpeó. Uno de los eventos más populares en todos nuestros blueprint scripting. Eso servirá para ofrecer este. Nos vemos en la siguiente. 36. Evento cualquier daño: Hola, hola. Nuestro objetivo en este video es comenzar a explorar algunos de los eventos de daño disponibles de manera irreal. Ahora, el daño es obviamente una gran parte de muchos juegos, y es bueno saber que irreal ya tiene funciones y eventos existentes dentro de blueprints scripting para ayudar a implementar estos conceptos. vamos a explorar cualquier evento dañado Primerovamos a explorar cualquier evento dañadoy luego ramificarnos desde ahí. De acuerdo, el Third PersonCharacter va a ser la estrella de este video. Así que encuentra su camino a este directorio en el Navegador de contenido o cajón de contenido. Haz doble clic sobre él para abrirlo. Vamos a empezar añadiendo una variable. Vamos a agregar una variable de salud. Por lo que vienen bajo variables plus. Y vamos a añadir una nueva variable simplemente llamada salud. Lo dejaremos del tipo flotador. Podría ser un entero porque la salud a veces se puede representar en números enteros en lugar de números decimales. Pero ahí iremos con un tipo de flotador. Lo compilaremos y luego le daremos un valor predeterminado de 100. Ese es un bonito valor redondo. Ahora, si bien irreal sí tiene algunos conceptos relacionados con el daño y eventos relacionados con el daño incrustado en él. No tiene ningún concepto de salud. Al menos a partir de la grabación de hoy incrustada en irreal. Tienes que crear una variable de salud dentro del plano de tu personaje, y luego puedes enfrentarla a partir de ahí usando los diversos eventos de daño. De acuerdo, con eso creado, Agreguemos un evento, cualquier daño. Un par de maneras de hacer esto. Puede hacer clic con el botón derecho del ratón en cualquier daño. Ahí lo puedes encontrar. Alternativamente, puedes encontrarlo en la sección de funciones del panel Mi Blueprint en el desplegable de anulación hay eventos, cualquier daño. De acuerdo, con estos eventos añadidos, queremos modificar nuestra variable de salud de alguna manera. Entonces así es como funciona esto. Sigamos adelante y arrastremos nuestra variable de salud a la gráfica. Lo vamos a conseguir. Cuando este evento se dispara, puede generar cuánto daño se hizo. Ahora que queremos hacer aquí es tomar nuestra variable de salud. Vamos a arrastrar hacia fuera un aquí, teclea el símbolo menos que queremos restar. Entonces vamos a tomar salud de nuestro personaje y vamos a restar nuestra salud por la cantidad de daño que se hizo. Entonces una vez hecho ese cálculo, vamos a actualizar nuestra variable de salud. La forma en que podemos hacer esto es arrastrar y soltar esto a la derecha en el pin de salida y establecer eso. Entonces estamos tomando nuestra salud, restando la cantidad de daño de ella, y luego estableciendo ese es nuestro nuevo valor para la salud. Bastante simple y directo. Entonces lo que vamos a hacer es arrastrarnos fuera de esto y traer un signo menor o igual a. Vamos a decir si esto es menor o igual a 0, entonces vamos a ramificar. Si es cierto que fueron menores o iguales a 0, nuestra salud se baja a 0 o menos, entonces vamos a destruir al actor. En este caso, el blanco somos nosotros mismos. Vamos a destruir todo esto. Ahora antes de vincular esto, simplemente me voy a colar en un nodo de cadena de impresión aquí. Para que podamos ver nuestro valor para la salud arrastrado de aquí. Escribiremos cadena de impresión. Y vamos a ir así. Y si conectamos nuestra salud a esto en cadena, va a convertir este valor float en una cadena. Entonces eso es lo que esto está haciendo aquí mismo. Es convertir un flotador en una cuerda. Y vamos a compilar esto, asegurémonos de que este script es bueno para ir y parece que sí. Ahora, ten en cuenta que este evento no hará nada todavía porque no le hemos dicho a este actor que se vea impactado por el concepto de dañado de ninguna manera. Eso lo vamos a hacer el año que viene vuelta aquí en nuestro editor de nivel. Y sigamos adelante y agreguemos un volumen de gatillo. Eso lo voy a hacer al venir aquí abajo , colocar panel de actores. Voy a agregar una caja de gatillo y colocarla en algún lugar frente a mis jugadores. Empezar actor. Con eso seleccionado. Voy a configurar el grosor de la línea para que sea un poco más grueso para poder verlo en el nivel. También voy a hacer que la extensión de la caja sea 200 por 200 por 200. Y también voy a desplazarme hacia abajo y desmarcar juego oculto actor para que podamos verlo. De acuerdo, con eso todo hecho, saltemos a nuestro Nivel. Plano. Voy a hacer clic derecho y algo de espacio vacío. Vamos a agregar un evento On collision on begin overlap. Vamos a comprobar si el otro actor que nos solapó fue el personaje en tercera persona, no el modo de juego. El personaje. Si lo es, lo que vamos a hacer aquí, es arrastrado fuera de aquí y teclea aplicar daño, a-ha, daño aplicado. Ahora bien, este daño base de aquí mismo nos va a permitir ingresar cuánto daño nos gustaría haber hecho a nuestro Third PersonCharacter. Entonces funciona así. Tú decides cuánto daño te gustaría llamarlo. Vamos a ponchar un número de digamos, 25.5, algo ridículo así. Se establece aquí y luego aquí cuando este evento, cualquier daño llamado, saldrá eso aquí. Entonces estás pasando ese daño. De acuerdo, con todo esto hecho, sigamos adelante y haga clic en jugar aquí. Y quiero ser mi Third PersonCharacter Blueprint. Para que podamos ver este guión dispararse o no si lo jodimos todo , Sigamos adelante y pulsamos Play. Y deberíamos ver que están dañados valor actualizado justo aquí arriba en la parte superior izquierda porque estamos imprimiendo esto en la pantalla. Vamos a solapar esto. Y no lo estoy viendo. Y la razón por la que no lo estoy viendo es porque olvidé un paso atrás aquí en mi Level Blueprint, olvidé que este actor de daños se establezca como el personaje en tercera persona. Entonces si hacemos esto, estamos diciendo, Hey, Third PersonCharacter, toda esta función de daño aplicado, dispara esto y asegúrate de que al hacerlo, estás haciendo que este evento se dispare cualquier daño. Entonces estoy llamando a esta función si configuras el actor de daños en este caso para que sea Third PersonCharacter, causará que este evento cualquier daño se dispare. Probemos esto una vez más. Por lo que debe ver que el valor de daño se actualiza aquí tan pronto como se superponen este volumen de disparo. Y ahí vas, vio apagar el fuego. Si lo vuelvo a hacer, volverás a actualizar la salud hasta que finalmente vaya más allá ese umbral y boom, estoy muerto. Ahora, solo un par de notas aquí atrás en mi Plano de Nivel. Esta clase de tipo de daño. Existe la capacidad de agregar daño por fuego, daño rayos, daños por agua, todo ese tipo de cosas. En Unreal. No necesita ser configurado y está más allá del alcance de este video cómo configurar ese tipo de cosas. Este icono del servidor, ese nodo indica que esta función sólo se ejecuta en el servidor para juegos de un solo jugador, el cliente local es considerado el servidor pensó que tiraría en esas notas. Algo más que vale la pena señalar aquí es que si vuelvo a mi Third PersonCharacter Blueprint y en lugar de restar aquí, lo hice. Arrastrado fuera de esto y teclea el anuncio. En realidad no tienes que tratar esto como algo negativo. En realidad podrías usar todo este concepto de daño como un medio de curación. Entonces en lugar de restar, podrías hacer algo como esto y sumar esa cantidad. Entonces si quisieras tener una especie de estanque curativo, podrías hacer eso también. Una nota final sobre el evento cualquier daño es que está destinado a ser utilizado para daños de propósito general, como daños incurridos por su entorno, a salvo de fuego o veneno, ese tipo de cosas. Muy bien chicos, eso va a servir para ofrecer este. Nos vemos en la siguiente. 37. Daño en el punto de evento: Bienvenidos de nuevo a todos. Bueno, estamos al segundo de nuestros tres eventos de daños. En el último hablamos de evento cualquier daño. Eso ¿Cuál es tu evento de daño de propósito general para usar para cosas como daños ambientales. Y este vamos a estar hablando de daño de punto de evento. Ahora el daño puntual está dañado destinado a ser infligido por armas de proyectil, golpear Armas de escaneo, incluso armamento cuerpo a cuerpo. E incluso agregaré una cuarta aquí. Vamos a estar dejando caer una caja de física en las cabezas de nuestros jugadores para que pueda ser utilizada para algo como esto también. Ahora bien, si bien funciona similar para evitar cualquier daño, sí tiene alguna información agregada que se puede pasar a lo largo, lo que lo hace ideal para aplicaciones de daños de estilo proyectil. Ahora, en interés del tiempo, he montado un montón de cosas antes de filmar este video, pero te mostraré exactamente lo que hice para que puedas jugar en casa si quieres seguir junto con este ejemplo. En primer lugar, colocas un actor de malla estática en tu nivel y lo colocas justo encima de donde tus jugadores aparecen en ese actor de Player Start. Simplemente estoy usando un actor de Static Mesh en cubos, pero cualquier cosa va a hacer y puedes agarrar un cubo viniendo aquí abajo, forma cubo. Y luego con este cubo seleccionado en el panel Detalles, seleccioné mi Componente de Malla Estática. Y hay dos casillas de verificación que estaba seguro de revisar. Una es simular física para asegurar que esta caja va a caer encima de la cabeza de mi personaje. Y también abajo en la sección de colisiones, me aseguré de simular generar eventos de golpe. Fijando eso a verdadero también, porque yo sí quiero que esto genere un evento hit. Ahora con esto seleccionado encima en mi plano de nivel, usted puede encontrar que al venir aquí abajo , abra Level Blueprints. Luego hago clic derecho con ese cubo seleccionado en el nivel, clic derecho y agrego un evento para eso. Y agregué un hit de actor y demuestra que ese es el nombre de mi cubo. Ahora lo que estoy queriendo hacer es una vez que golpeo algo, quiero llamar a esta función aplicar punto dañado. Ahora me viste aplicar cualquier daño en el último video. Entonces algo parecido aquí. Este fue el aplicar cualquier daño del video anterior. Estamos haciendo algo similar aquí. Vamos a aplicar un daño puntual. Y al igual que antes necesitamos darle de comer a esto un actor dañado, antes de que fuera un personaje en tercera persona. Aquí vamos a ir un poco de una ruta diferente. Vamos a arrastrar fuera de nuestro resultado de golpe de nuestros hits cuando nuestro cubo golpeó algo. Y todo lo que necesitas hacer es arrastrar hasta aquí y escribir break y luego romper ese resultado del hit, puedes extraer todo tipo de información sobre el hit que ocurrió entre ese cubo y lo que sea que golpeó. Una de esas cosas que puedes extraer son los actores hit. Entonces, si conectas a tu actor de cabeza al actor de daños, podemos llamar a este evento de daño puntual en el plano de Hit Actor. Llegaremos a eso en un momento. Además, podemos pasar por donde salió este hit. Lo que estoy haciendo aquí está fuera de su cabeza, estamos rompiendo el resultado del golpe y estoy diciendo, Hey, donde ocurrió esto, la ubicación x, y, y z. Y estamos pasando eso al golpe desde la dirección esencialmente proporcionando unas coordenadas x, y, y z donde se está produciendo ese golpe. Algo más que debes hacer aquí antes de compilar es que necesitas pasar a lo largo de esta información de golpe de estos eventos de golpe a la información de golpe de tu función de daño de puntos de aplicación. Con todo eso hecho, puedes compilar y guardar eso. Y esto está todo bien y bien. Pero lo siguiente que debes hacer es saltar a nuestro plano de personajes de tercera persona. Una vez más, en el Navegador de Contenido, puedes encontrar tu ThirdPersonCharacter justo en esta ubicación. Aquí configuro este evento punto daño y todas las cosas que quería que ocurrieran. Entonces, en primer lugar, ¿de dónde sacas los puntos de este evento dañados? Bueno, dos formas en las que puedes hacer clic derecho y escribir daño puntual. Lo puedes encontrar en tu menú del botón derecho. Alternativamente, si no tiene esto agregado ya a su gráfica, podría venir bajo funciones y luego la sección de anulación, podría encontrar la función de punto dañado aquí como bien. No está listado aquí porque ya está agregado a mi gráfica. Ahora una vez que es hit ocurre nuevo en nuestro Level Blueprint, una vez más, estamos pasando por el Hit Actor y sabemos que nos va a golpear a un ThirdPersonCharacter. Se va a llamar a esta función de punto dañado, que luego va a resultar en que este evento sea despedido. Y lo que estamos diciendo aquí es que queremos hacer esto solo una vez porque este es un evento que a medida que golpea las cosas en nuestro nivel, este cubo puede atarse alrededor. Podría golpear a nuestro personaje varias veces. Nosotros sólo queríamos registrar uno hits, así que sólo vamos a ir más allá de esta 0.1 vez. Lo que estoy haciendo aquí es que estoy pasando a lo largo de la cantidad de daño que he especificado aquí atrás en mi función de daño de punto de aplicación. Aquí, solo digo 50.5 solo porque este número de aquí mismo se pase a lo largo de nuestro daño de punto de evento. Así que estoy restando esto de nuestra variable de salud por aquí y configurando eso como nuestra nueva Salud. Sólo estoy imprimiendo esto a la pantalla. Entonces, entonces lo último que estoy haciendo aquí es que voy a desovar en emisor en locación. Este es el viejo sistema de partículas aquí, el sistema de partículas en cascada. Yo sólo estoy usando una explosión aquí. Y lo que estoy haciendo fuera del daño de punto de evento está justo por aquí. Este impactó desde la dirección. Te estoy pasando esta información, salgo de aquí en locación de golpe para proporcionar la ubicación donde quiero que ocurra esta explosión. ¿ Qué resultados es esto? Ahora viste que el flujo de ejecución justo arriba. Y aquí estoy en mi terceraPersonaPersonaje. Hagamos esto otra vez. De mi Plano de Nivel. Aleja un poco. Por lo que una vez más, mantén el ojo en este guión disparando. Bam. Se puede ver que está disparando varias veces ahí porque está golpeando el piso además de golpear a mi personaje. Ahora, si quisieras usar el sistema de partículas más nuevo en lugar de este emisor de desove en la ubicación, podrías eliminarlo. Y si tienes alguna partícula de Niágara en tu proyecto, simplemente puedes especificar una de esas aquí. Tengo una ducha de monedas que no se ve tan cool como esa explosión, pero compruébalo aquí mismo. Ahora una cosa que aún no he mencionado, pero necesito es si vas a estar usando este punto de daño en una instancia como yo lo estoy usando, quieres estar seguro de que solo estás usando este punto de evento dañado? Mira lo que hice arriba. Desconecté mi evento cualquier daño. Ahora si enganche esto también y noto que estoy haciendo esta modificación de salud aquí para, bueno, va a resultar es que ambos eventos se disparen. Y se puede ver que mi salud en realidad se sumerge por debajo de una negativa allí. Cuando estás llamando. Si aplico daño puntual, también vas a estar llamando no sólo daño de punto de evento, sino evento cualquier daño también porque el daño de punto es técnicamente cualquier daño. Entonces solo ten en cuenta esa instancia también. Ahora tenga en cuenta, si bien estos eventos son similares, la ventaja del daño del punto de evento es que la ubicación se puede pasar a lo largo. Tienes algunas otras cosas que puedes pasar por aquí también, pero esa ubicación es la principal entre ellas. Muy bien chicos, eso lo va a hacer todo por esta. Nos vemos en la siguiente. 38. Daño radial: Entonces ahí te estás ocupando de tus propios asuntos y luego pisas una mina terrestre, sufres grandes daños. Vuela a mitad de la pantalla y te sumerjas hasta la muerte. Evento. daño radial es la causa de tales instancias y juegos de Unreal Engine. Y lo que hace que este evento sea único frente a los dos eventos de daño anteriores es que es perfecto para el daño de área de efecto. Con el daño radial por evento, puede especificar un punto de origen donde se aplica el daño máximo, y también un radio sobre el cual se puede aplicar la caída. Entonces, cuanto más lejos estés del origen, menos daño se le ocurre a tu personaje. Bien, así que le he puesto un ejemplo antes de filmar este video y voy a guiarte a través exactamente de lo que está pasando aquí. Sigue adelante si quieres jugar en casa. Entonces lo que hice aquí es colocar una simple esfera de disparo en mi nivel. Eso lo puedes encontrar entrando bajo el panel de actores del lugar. Y en mi ficha básica, simplemente coloco un dedo de Trier en mi nivel. Aquí, simplemente configuré mi radio de esfera en 1,000. Y también estoy haciendo que esto aparezca simplemente entrando bajo el ¿dónde está? Una vez más, la sección de renderizado, renderizado, renderizado. Ahí está. Estoy eligiendo no tener esto oculto y juego. También estoy configurando la escala de cartelera del editor. Ese es este icono hasta cinco, solo para que esto sea muy obvio, para ver a continuación, lo que hice es ancho esta actriz seleccionada, salté sobre mi Plano de Nivel. Y dentro de aquí, creé una referencia a esto desencadena el miedo al mantener pulsado el RT y hacer clic izquierdo, siempre y cuando tengas eso seleccionado en el nivel. Y luego me arrastré fuera de esto y obtuve la ubicación de los actores. Ahora lo que estoy haciendo aquí es al presionar la tecla E, puede tener cualquier encuadernación de teclas de su elección. Una vez más, Level Blueprints reconocerá eventos de entrada. Entonces estoy desove y emisor en esta ubicación, el punto central de mi esfera, solo estoy escalando la explosión para que sea extra grande. Una vez más, si no quieres hacer los emisores de cascada de la vieja escuela, bueno, puedes hacer un sistema de desove en lugar para los efectos de partículas del Niágara. Y entonces este es el nodo clave del que estamos hablando aquí, aplicando daño radial con caída. Ahora, tenga en cuenta, si hago clic con el botón derecho y algo de espacio vacío y tecleo aplicar radial, puede hacer aplicar un daño radial y también aplicar daño radial con caída. Ambos de estos dos llamaremos el evento de daño radial del que vamos a estar haciendo uso en solo un poquito. Sin embargo, este me gusta un poco mejor porque sí tiene la capacidad de especificar un radio interior y un radio exterior así como daño base y luego daño mínimo. Lo que esto le permite hacer es especificar un rango de decaimiento. Entonces, esencialmente lo que estoy diciendo por aquí, déjame deshacerme de este es mi radio interior. Una vez más, mi esfera es de mil unidades irreales de tamaño. Eso es esto de aquí. El radio de la esfera es 1,000. De vuelta aquí estoy diciendo que el radio interior es de 200 unidades irreales, el radio exterior es de 1,000 unidades. El daño en el epicentro del origen y dentro este radio interior va a ser de 100. Entonces cualquier cosa dentro de este radio interior va a sufrir al máximo daño que en el radio exterior, en el límite extremo, voy a hacer al menos un daño. Ahora sí puse en valor de caída dañada. Esto determina qué tan rápido caerá el daño desde el punto central, el origen apunta a los bordes por los que puedes jugar con ese número para tener más o menos de una caída extrema. Y entonces el resto de estas entradas son todas opcionales. Pero para que el sistema funcione, esto es suficiente. Ahora, entrando en mi Blueprint de personaje de tercera persona, configuré las cosas. Por lo tanto, conseguí mi evento radial dañado, que una vez más puedes obtener haciendo clic derecho, escribiendo en radial dañado, ahí está ese evento daño radial. Otra forma de obtener este evento ha terminado en la sección de anulaciones de funciones. Puedes encontrar esto aquí si aún no lo agregaste a tu gráfica. Y aquí estoy de paso este dañado recibido. Estoy restando eso de mi variable de salud y configurándolo como mi nuevo valor para la salud. Ahora bien, qué cantidad de daño se pasa a lo largo de la pared que realmente depende de cuánto estaba mi personaje en el centro de este daño cuando esto ocurrió. Ahora allá atrás también estoy imprimiendo este valor de salud a la pantalla para poder ver cuánta salud se restó realmente de mi nivel base 100 ahí. Entonces lo que también estoy haciendo aquí es un poco de cosas extra. Esto no es realmente necesario para ver que esto incluso sucedió. Pero lo que hice aquí es que estoy agarrando mi Componente Cápsula. Acabo de arrastrar una referencia a esto. E hice un set simular la función física aquí. Marque esa casilla. Esto es lo que va a hacer que mi personaje vuele por el, por el aire. Y esto es lo que le va a mandar volando por el aire un impulso radial, impulso en el punto de impacto. Todo lo que estoy haciendo aquí es que estoy pasando por el origen, el punto central de mi daño radial aquí mismo, estoy pasando por ese disparador, gatillo la ubicación de la esfera como origen. Y aquí es donde estoy diciendo que estoy enviando un impulso, imagínese como una onda de pulso invisible. Entonces el radio de este impulso va a ser 1,000. Y puse la fuerza con la que puedes jugar con estos valores para que sea medio millón de dólares. Ahora de vuelta en nuestro nivel aquí se puede ver a mi jugador inicio actor va a estar comenzando justo fuera de este radio. Entonces, si tuviera que hacer clic en Reproducir y ya tengo mi ThiredPersonCharacter Blueprint abierto y presiono esa tecla E. Se puede ver que no estoy haciendo ningún daño radial porque mi personaje no se encuentra dentro de este radio. Sin embargo, una vez que me pongo dentro del alcance, ahora tenga en cuenta que apenas estoy pisando pie dentro de este radio. Mira aquí en la parte superior izquierda. Se va a mostrar cuánta salud de mi valor inicial de 100 se resta. Entonces voy a, voy a adivinar voy a terminar con un valor de como 89 o algo así porque apenas estoy aquí, así que voy a presionar la tecla E, terminé con 87. Por lo que casi 13 de salud se restaron por apenas dar un pie. Y probemos esto. Una vez más. Esto, voy a dar un paso directo hacia el medio. Por lo que esto debería hacer el máximo daño. Y si volvemos a nuestro mapa de prueba, se puede ver que el daño radial aplicado se cae. Está demostrando que dentro de este radio interior de 200, debería estar haciendo los 100 completos dañados. Entonces veamos si ese es en realidad el caso. Déjame abrir mi plano de personaje de tercera persona. Una vez más, toca eso como y en la parte superior izquierda debería mostrar 0.0. Y lo hace. Entonces se puede ver, como se dijo, simular la física y el pulso radial de la cabeza. Todo es por diversión y juegos. Ahora, un último bit de información para pasar por aquí, igual que el daño puntual. Si tienes algún daño enganchado también. Hacer daño radial causará el evento cualquier daño para disparar dos. Entonces ahora debería estar haciendo algún daño a mi personaje, además de ver este texto Hola aquí arriba en cuanto presione la tecla E dentro de aquí. Para que puedas ver Hola sí apareció así como que se restó algo de salud. Bien chicos, hay un evento de daño radial. Recapitulemos rápidamente los diferentes eventos de daño. Por lo que cualquier daño es bueno para daños ambientales. Cuando no recibiste daño en ningún punto específico. Eso es genial para atravesar fuego o gas venenoso, ese tipo de cosas. El daño puntual es bueno para especificar una ubicación determinada donde ocurrió el daño. Genial para proyectiles que golpean al jugador. El daño radial es bueno para explosiones y especificando un punto en origen donde ocurrió el daño máximo. Y este tipo de daños pueden caerse cuanto más lejos del origen que se encuentre. Eso va a terminar esto. Te veremos en el siguiente video. 39. Evento Destruido: Bienvenidos de nuevo a todos. Eventos destruidos es el tema de este video y nuestro objetivo es conocer qué causa evento destruido al fuego para un actor y cómo podemos usarlo dentro de un guión. Para este video, voy a estar usando nuestro Blueprint de Nivel aquí. Lo puedes encontrar aquí, abrir Nivel Blueprint. Y también voy a estar usando nuestros planos de personajes en tercera persona. Lo puedes encontrar aquí en este directorio. También he hecho algunos trabajos de configuración antes de tiempo. Si lo sigues junto con los videos anteriores para varios nodos de aplicar tipo daño, todo esto te parecerá muy familiar. No obstante, si acabas de adelantarte a este video, déjame mostrarte lo que hice antes de tiempo en preparación para presumir evento destruido. Ahora para empezar aquí, coloqué una caja Trigger en mi nivel y todo lo que hice aquí es simplemente dimensionar la caja se extiende para ser 200 por 200 por 200, establecer mi grosor de línea en diez. Y también lo hice para que en la sección de renderizado donde está esa sección de renderizado, una vez más, Ahí está. Dije actor juego oculto para ser desmarcado. Después con este cuadro de Disparador seleccionado en mi nivel, encima en el Plano de Nivel, hice clic derecho. Creé un anuncio sobre actor comenzar a superponerse para ese cuadro de activación arrastrado fuera del otro actor estamos lanzando a nuestro personaje de tercera persona para asegurarnos que es el personaje de la tercera persona que se superpone a nosotros. Y entonces si es así, vamos a aplicar daño a nuestro terceraPersonaPersonaje, aquí estoy haciendo 25 puntos de daño. Entonces, en el Blueprint de personaje de tercera persona, esto también debería resultarte familiar si lo sigues junto con los videos anteriores. En caso de que se llame cualquier daño. Y una vez más, esto se llama cuando esta función dañada aplicada aquí en nuestro Plano de Nivel se dispara. Esto, luego se apaga. Todo lo que estoy haciendo aquí es que estoy tomando nuestra salud actual que comienza en 100. Vamos a restar la cantidad de daño que se suministra aquí mismo en nuestra función dañada aplicada en el Plano de Nivel 25. Vamos a restar eso de nuestro conjunto de salud eso como una nueva salud. Y si nuestra salud pasa a ser menor o igual a cero, vamos a destruir actor. Ahora bien, esta es la función importante aquí mismo. Porque cuando se llama a esta función Destruir Actor, evento destruyó incendios también. Entonces, si yo fuera a seguir adelante y jugar ahora mismo, esto es lo que tendría. Hago clic en el juego aquí. Déjame poner mi personaje como mis objetos de depuración, sacar mi ventana de juego una vez más, por aquí en la parte superior izquierda vas a ver que el valor de salud disminuye. Recordatorio, mi sistema de salud no está conectado a mi medidor aquí en absoluto. Podríamos cambiar eso más tarde. A lo mejor vamos a 75, 50. Estás viendo que ese evento se dispara arriba y luego boom, nuestro personaje está destruido, pero los eventos destruidos podemos usar aún más para hacer que algo más suceda. Entonces agreguemos evento destruido, y hay un par de formas en las que podríamos agregar esta. Podríamos hacer clic derecho y algún espacio vacío, Escribir eventos destruidos. Esa es una manera. La segunda forma, por supuesto, se acabó en el panel Mi Plano debajo del área de funciones, puedes anular eventos, destruir el objetivo aquí va a ser un actor. Y como pueden ver, nuestro Destruir Actor, el objetivo está inactivo. Entonces en este caso, nuestro personaje de tercera persona, estamos diciendo, Hey, destruirnos a nosotros mismos. Entonces aquí no hay salidas. Nos estamos destruyendo a nosotros mismos. Una vez que se llame a esto, vamos a estar haciendo una llamada a este evento para disparar. Bien, entonces vamos a hacer que algo pase aquí. Vamos a arrastrar fuera de aquí y escribir el emisor de desove en la ubicación. Una vez más, se podría hacer el sistema de desove en la ubicación que es el sistema de partículas del Niágara. Sólo voy a estar usando la explosión de la vieja escuela. Ahí vamos. Y por supuesto tenemos que proveer una ubicación para esto. Así que vamos a simplemente hacer clic derecho y algo de espacio vacío y escribir en obtener la ubicación del actor. El objetivo es nuestra terceraPersonaEl personaje es la ubicación. Y hagamos otra cosa es secarse de esto. Y vamos a engendrar actor de clase. Vamos a engendrar en algún fuego, nuestro fuego de efecto plano. Tenemos que abastecer una transformación de desove. Entonces voy a hacer clic derecho. Vamos a conseguir que el actor se transforme. Una vez más. El objetivo es nuestro yo. Eres un personaje de tercera persona. Y luego, por último, vamos a arrastrar fuera de aquí e imprimir cadena. Y en vez de lo de la cadena, hola, digamos algo así como el esteroide D destruido, si puedo deletrear eso bien. Bien, así como superpongamos ese volumen de activación, vamos a estar aplicando daño a nuestro personaje de tercera persona. Ese daño se va a aplicar a nuestro valor para la salud aquí mismo, una vez que nuestra salud sea menor o igual a cero, y eso es cierto. Vamos a destruir a este actor. Esto va a provocar que el evento destruido se desprenda. Y luego va a hacer todas estas cosas aquí mismo. Siempre es una buena idea compilar. Asegúrate de que tu guión esté listo para funcionar. Guardemos eso, y sigamos adelante y juguemos. Y déjame realmente mover esto hacia arriba para que veas este disparo. Aquí vamos. 12, que la salud está disminuyendo. Tres ahora, mira justo arriba de la jugada Windows. Bueno, por evento destruido para disparar. Boom. Ahí vas. Nosotros sí engendramos esa explosión, y también generamos ese fuego de efecto plano. Ahora me gustaría seguir adelante y mostrar un ejemplo más antes de que terminemos este video. Y solo para mostrarles lo que he hecho aquí está de vuelta aquí en mi nivel, agregué un cono justo por aquí un poco más allá de los límites de mi volumen de disparo. Puedes encontrar eso en tu lugar panel de actores justo por aquí. Pero cualquier malla estática servirá si quieres jugar junto con ese tipo seleccionado. Lo que he hecho en mi Plano de Nivel es si me desplazo hacia la derecha donde antes no podías ver esto a la derecha. Sólo voy a estar extendiendo la funcionalidad. Estamos dañando a nuestro jugador. Lo que quiero hacer aquí es traer esto. Entonces además de aplicar algún daño a nuestro personaje, voy a esperar 3 s la primera vez que superponga esta caja Trigger y voy a destruir nuestro cono. tengo una referencia a mi cono Aquí tengo una referencia a mi cono porque con ese seleccionado, si mantengo pulsada la tecla Alt, puedo hacer click izquierdo y trayendo una referencia a mi cono. Entonces digo, oye cono, tú eres el actor objetivo que quiero destruir. Ahora abajo. Con ese cono también seleccionado, puedes hacer clic derecho y algún espacio vacío y decir, Oye, cuando estés destruido. Una vez más, te mostraré cómo conseguí esto enDestroy. Aquí está tengo ese cono seleccionado. Puedo agregar eventos y debajo la sección de juegos puedes agregar en destruido. Y si lo selecciono ahora mismo, solo me va a saltar y decir, oye, te tengo. Entonces lo que estoy haciendo es que puedo extraer alguna información de mi actor destruido. Estoy suministrando a ese actor aquí mismo. Digo, oye, quiero conseguir tu transformación. Vamos a engendrar son BP ejemplo pick-up, y luego vamos a tocar un sonido. Entonces esto va a suceder la primera vez que superpongamos esta caja Trigger. Entonces, ignorando todo este daño al personaje de la tercera personaAhora mismo en 3 s, algunos van a destruir nuestro cono, y luego este evento destruido va a jugar y vamos a tener este spawn. Sigamos adelante y demos una jugada a esto. Vamos a compilar eso primero. Asegúrate de que se vea bien. Adelante y planeo aquí, permítanme establecer mi objeto de depuración para que sea mi mapa de prueba y sacar mi ventana de reproducción una vez más. Ahora la primera vez que superponga esto en 3 s, ese cono se va a convertir en la camioneta. Ahí vas. Por lo que un par de usos para el evento destruyeron. Me viste solo demostrar un par de ahora mismo. El número uno sería generar una partícula o un sonido en un lugar de destrucción. El número dos sería engendrar y otros actores como una gota de baño al matar a un enemigo. Bien chicos, eso va a hacerlo todo por este. Te veremos en la siguiente. 40. Eventos personalizados: Eventos personalizados es el tema de este video, y este es un tema súper importante porque los eventos personalizados son algunos de los eventos más utilizados en todo un script de blueprint. Entonces, nuestro objetivo en este video es conocer qué son, cómo se agregan y por qué son útiles. Ahora un evento personalizado es un evento que puedes nombrar y llamar para que se active cuando quieras. Bien, entonces ver es creer, voy a estar usando principalmente el Blueprint de personaje de tercera en este video, pero estaré incursionando un poco en el Plano de Nivel. Así que adelante y que los abran. Voy a empezar en el Plano de PersonaTercera PersonaPersonaje. Y en primer lugar, necesitamos agregar uno de estos eventos personalizados. Bueno, ¿cómo lo hacemos? Haga clic con el botón derecho y escriba algún espacio vacío en la palabra personalizada. Y bajo la categoría add event, hemos agregado evento personalizado. Ahora en el momento en que haga esto, va a agregar eventos a mi gráfica, pero me va a incitar a darle un nombre. Voy a llamar a esto agregar salud. Ahora, si en cualquier momento quieres cambiar el nombre de tu evento personalizado, puedes hacerlo de dos maneras. Simplemente puedes hacer doble clic sobre esto y te dará la posibilidad de cambiarlo aquí. O con este nodo de eventos agregó este proveedor cliente y agrégalo en el panel Detalles. puedes cambiarle el nombre por aquí. Bien, entonces agregando salud, sigamos adelante y hagamos que este evento realmente agregue algo de salud cada vez que se le llame. Ahora no ahora mismo. hemos conseguido nada que en realidad llamar a este evento. Nosotros nos encargaremos de eso en un poquito. Pero para hacer que esto haga algo, vamos a arrastrar en nuestra variable de salud. Voy a conseguir esto. Quiero arrastrar fuera de este tipo en el botón más. Vamos a agregarle alguna cantidad. Agreguemos 010. Suena bien. Entonces voy a arrastrar y soltar mi salud encima de esta salida para que podamos establecer nuestra salud. Entonces estamos consiguiendo nuestra salud, le vamos a sumar diez y luego vamos a fijarlo. Suena bien hasta ahora. Sigamos adelante e imprima esto en la pantalla también. Así que imprime cadena. Si tomo esta salida de mi sit health y la enchufo a la cadena, voy a obtener un pequeño nodo de conversión para convertir un tipo de datos a otro, un float a una cadena que lo imprimirá en mi pantalla. Y luego también arrastremos fuera de aquí y escribamos emisor de desove en la ubicación. Una vez más, puedes engendrar un sistema, el sistema de partículas del Niágara. Sólo voy a usar la explosión de la vieja escuela porque me gusta usar eso para prácticamente todo. Es muy visual, ¿verdad? Así que vamos a engendrar y estallar, ¿dónde? Bueno, vamos a conseguir la ubicación de nuestros actores aquí. Sin embargo, factorizar la ubicación. El objetivo es nosotros mismos, el personaje en tercera persona. Vamos a enchufar eso aquí. Y luego solo toquemos un sonido también. Arrastre algunos sonidos de reproducción. 2d. El sonido 2d es uno que no está en un lugar determinado. Es simplemente un gran para los sonidos del menú. Por cierto, voy a hacer compilar, compilar, éxito. Cualquiera de estos hará, bien, compilará y guardará eso. Eso parece un buen guión. Bien, entonces necesitamos algo que realmente llame para que este evento suceda. Entonces este va a ser un ejemplo bastante académico, pero solo para facilitar las cosas aquí, lo voy a hacer es hacer clic derecho en algún espacio vacío. Se puede poner en la única llave. Y voy a decir que fuera de presionar una tecla, vamos a arrastrar fuera de esto. Y ahora si escribo Add Health, Echa un vistazo a esto. Tengo un nodo que puedo agregar, un nodo de función de llamada llamado AddHealth. Entonces, lo que esencialmente voy a hacer aquí es cuando presione la tecla una, estoy llamando a desprenda este evento personalizado llamado AddHealth. Esta es una conexión inalámbrica y ese es uno de los beneficios de usar eventos personalizados y secretar estas conexiones inalámbricas. Ahora muy fácilmente podría decir, Oye, fuera de la única llave, haz todo esto. Sin embargo, a veces tienes guiones muy complicados y quieres mantener las cosas bonitas, limpias y sencillas. Esta es una buena manera de crear un disparo inalámbrico, inalámbrico, una llamada inalámbrica de ese evento. Entonces esto llama a esto, lo que va a hacer que todo este guión suceda. Sigamos adelante y compilemos y guardemos. Adelante, juega aquí. Y voy a tratar de enmarcar todo esto. Así que mira. Una vez que presione la tecla una, va a hacer que todo esto suceda. Vas a ver que ese emisor se produce. Vas a escuchar un sonido, etcétera. Aquí vamos. Y puedo seguir haciendo esto una y otra y otra y otra vez. Entonces estas conexiones inalámbricas son geniales y todo, pero eso no es realmente todos los beneficios que obtienes de los eventos personalizados. Con eventos personalizados, también puedes llamar para que este evento suceda desde otros planos. Así que sigamos adelante y llamemos a este evento desde dentro de nuestro Plano de Nivel. Entonces, si olvidaste cómo entrar en tu Plano de Nivel a partir de ahora, ahí vas por centésima vez. Y voy a hacer clic derecho y algún espacio vacío y sólo voy a traer en el, vamos a hacer las siete teclas o cualquier otro evento de teclado. Entonces voy a hacer clic derecho y algo de espacio vacío. Vamos a conseguir personaje de jugador. Vamos a arrastrar fuera de esto. Necesitamos esto para poder emitir a terceraPersonaPersonaje. Porque necesitamos abastecer nuestro casting de la terceraPersonaPersonaje con un objeto y eso es suficiente conseguir personaje jugador. Entonces, al hacer esto, estamos comprobando, oye, ¿ nuestro personaje jugador es el personaje de la tercera persona? Y si es así, podemos hablar con nuestro terceraPersonaPersonaje de alguna manera, forma, o forma. Eso incluye llamar a eventos personalizados. Entonces, para que esto funcione, debes asegurarte de haber compilado tu Blueprint de terceraPersonaPersonaje. Muy importante aquí. Una vez que hayas compilado esto, ahora podrás encontrar este AddHealth over en nuestro Plano de Nivel. Volvamos aquí, arrastremos fuera de tu terceraPersonaPersonaje y tecleemos , Add Health. Y mira una vez más, tenemos ese llamado de la función en la salud. Ese es el mismo tipo de nodo que teníamos en nuestro terceraPersonaPersonaje. El objetivo de Addhealth es ThirdPersonCharacter. En nuestro Blueprint de nivel, objetivo de AddHealth es ThirdPersonCharacter. Bien, compile esto, guarde y juegue y sacuda. Puedo presionar una tecla. Y la única clave otra vez es sumar. Algunos están llamando a ese evento personalizado desde dentro del terceraPersonCharacter. Pero ahora voy a presionar la tecla siete. Y tengo mi nivel establecido como mi opción de depuración aquí. Entonces van a ver apagarse este fuego. Aquí vamos siete. Eso puede llamarlo también. Entonces ese es uno de los principales beneficios de un evento personalizado es una vez que tienes una referencia a ese blueprint dado, en este caso, nuestro terceraPersonCharacter. Luego puedes sacar eso y encontrar ese evento personalizado. Puedes hacer una llamada a ese evento de cliente. Bien, con eso, fuera del camino, entremos en algunos de los matices, algunas de las otras cosas que puedes hacer con estos eventos personalizados. Voy a saltar de nuevo a mi Plano de PersonaTerceraPersonaAquí. Y lo que voy a hacer es que me voy a arrastrar de esta cajita roja de aquí. ¿Qué es esto? Se trata de un delegado de salida. Entonces, ¿para qué puedo usar esto? Bueno, pongamos un ejemplo. Voy a hacer clic derecho y algo de espacio vacío aquí y escribir eventos. Empezar a jugar. Tenía esto conectado a mi creación del widget, mis widgets de HUD. Olivia desconecta esto manteniendo pulsada la tecla Alt. Clic izquierdo, voy a robar evento comenzar a jugar rápidamente. Voy a traer eso hasta aquí abajo por mi sumando evento personalizado de Salud. Entonces voy a arrastrar fuera de esto y escribir set timer by event. Al comenzar a jugar. Ese es nuestro personaje de tercera persona que se genera en el juego. Podemos tener algún evento incendiando cualquier evento que conectemos a él. Ahora bien, esto funciona no solo para un evento personalizado, sino que lo estoy mostrando aquí con un evento personalizado. Esto también podría funcionar para otros eventos. Se puede ver el evento B en juego y otros eventos tienen este tipo de delegado también. Entonces voy a tomar esto, enchufarlo aquí, y voy a fijar mi tiempo para que sea 5 s. Y también voy a poner esto para que sea un lazo. Entonces ahora vamos a entender lo que tengo pasando aquí con estos eventos personalizados. Voy a decir que un estanque empieza a jugar. Vamos a llamar a esta función, este temporizador establecido por evento para que suceda. Lo que va a pasar aquí es cada 5 s, este evento que está enchufado a este temporizador establecido por función de evento se va a disparar. Y va a estar sucediendo cada 5 s porque tenemos marcada esta casilla de verificación de looping. Entonces mira esto. Así que vamos a compilar esto y jugar. Por lo que ningún empleado del evento B ya pasó. Cada 5 s. Puede esperar otros 5 s. Así que este evento comienza la jugada disparada desde el mismo inicio. Una vez que inicié mi juego, mi personaje responde en. A partir de ahí. Ya no vas a ver este fuego apagado, pero seguirá funcionando esto cada 5 s, bam, bam, bam, bam, bam. Bien, así que ahora sabes que con el evento del cliente creado y agregado a tu gráfica, depende de ti asegurarte de que llamas a ese respiradero del cliente para que se desprenda. A veces eso puede ser un poco molesto cuando estás probando cosas porque tal vez las condiciones que tienes configurado para llamar a ese evento personalizado son un poco complejas. Hay algo que puedas hacer con fines de prueba para sea más fácil tener ese incendio de eventos de clientes? Bueno, hay con este evento personalizado seleccionado en el panel Detalles, tienes una casilla de verificación del editor de llamadas. Adelante y comprueba eso. Este es un paso muy importante aquí con eso comprobado, siga adelante y haga clic en esta opción de compilar. Una vez que hagas eso, observa que este ícono aquí mismo en tu evento personalizado va a cambiar de ese ícono de flecha a esta pequeña f especie de cosa que se ve en el diamante. Lo que esto va a hacer ahora es si saltamos de nuevo a nuestro editor de niveles, una vez que juegue, vamos a ver nuestro personaje de tercera persona se genera en. Va a estar presente en nuestro outliner. Entonces podré seleccionar eso. Y otra vez en el panel Detalles. Habrá en el botón AddHealth que puedo seguir adelante y hacer clic para hacer que se active manualmente un evento personalizado. Hago que esto suceda. Necesito una especie de ventana lateral esto un poco. Voy a hacer clic en Reproducir. Bien, ahí está mi ventana de juego por aquí. Ahora, en, mi editor principal. Voy a tener que pelar esto un poco, perdón por esta falta de espacio. Ahí está en amarillo mi terceraPersonaCarácter, voy a seguir adelante y seleccionar ese engendrado en eso para que la coloración amarilla indique. Y aquí abajo en el panel Detalles. Si hago una búsqueda de AddHealth, ahora puedo encontrar en los botones de AddHealth, así que lo acabo de hacer, acabo de configurarlo. Entonces aquí en el editor, puedo llamar manualmente a este evento personalizado. Así que tenga en cuenta que una vez que haga clic en esto, va a hacer que todos los siguientes scripts sucedan, lo que va a crear la explosión en OneNote. Entonces si estás mirando por aquí mientras hago clic en esto Agregar Salud, es llamar a ese evento personalizado, bam, bam, bam. También estás viendo que la salud se pone de pie. Pero claro que eso no es todo checkout. Qué más podemos hacer con evento personalizado con este seleccionado en el panel Detalles, tengo esta sección de entrada. ¿Para qué podemos usar esto? Bueno, déjame hacer clic aquí mismo en este botón Plus y mostrar un ejemplo rápido. Llegamos a crear una entrada. Observe cómo esto acaba de aparecer en una nueva entrada de parámetro, y ahí está el nombre de la misma. Así que vamos a seguir adelante y nombrarlo. Llamemos a esta salud para agregar. Y puedes cambiar el tipo. Aviso Actualicé el nombre y un actualizado aquí. No quiero que esto sea booleano, así que voy a cambiar esto para que sea un flotador. Y sólo voy a modificar mi guión de la siguiente manera. Déjame seguir adelante y hacerlo para que nuestra salud agregue, No crucemos los cables, ¿verdad? Vamos a llamar a AddHealth. Cuando llamamos AddHealth, vamos a averiguar cuánta salud queremos agregar, agregarla a nuestra salud existente y establecerla como nuestra nueva salud. Ahora bien, tenga en cuenta que todo esto es un poco confuso, al menos en esta etapa porque input es lo que esto se llama. Y esto está en el lado derecho de un nodo. Y como mencioné antes, las salidas están en el lado derecho de un nodo. Las entradas están en el lado izquierdo de un nodo. Todo esto es un poco engañoso aquí, pero tiene sentido si te desplazas hacia abajo aquí y notas que esta llamada de AddHealth de este evento personalizado agregó una entrada aquí mismo, salud para agregar. Entonces, al agregar esta entrada a nuestro evento personalizado, lo ha agregado como una entrada sobre la llamada de esos eventos personalizados. Entonces cambiemos esto a, vamos 25. Y ahora si sigo adelante, compilar, guardar, jugar. Tenga en cuenta que cada vez que presione una tecla, va a requerir que se active este evento personalizado. Cada vez que lo haga, va a decir, oye, agregar 25 de salud a nuestra salud existente y establecer eso como nuestra nueva salud. Entonces aquí vamos. puede ver que está incrementando 25 cada vez. Entonces solo para recapitular aquí rápidamente, ¿por qué usar eventos personalizados? Bueno, número uno, si vas a llamar a un evento personalizado dentro del Blueprint que has creado, ese evento personalizado, puedes crear estas conexiones inalámbricas que mantienen las cosas bonitas, limpias y limpio. Pero el principal beneficio de un evento personalizado es con uno creado en un plano. Siempre y cuando tengas una referencia a eso, dado un plano, como lo hacemos aquí en nuestro Blueprint de Nivel, puedes hacer una llamada a ese evento personalizado, que es lo más poderoso de ellos. O chicos que van a hacer todo por este video, veremos en el siguiente. 41. Resumen de variables: Bien, entonces con eventos en el espejo retrovisor, vamos a estar desplazando nuestra atención hacia el tema de las variables y nuestro objetivo en estos videos específicos para aprender y las variables son a la hora de programar, o en nuestro caso, blueprints scripting. Bien, entonces, ¿qué es incluso una variable? Bueno, se puede pensar en las variables como contenedores que contienen un tipo específico de información. Y me encanta el hecho de que en irreal, estos contenedores, estas variables tienen una especie de forma de cápsula. Si imaginas que una cápsula puede contener algún tipo de cosas, se tiene la idea de qué se tratan las variables. Tienen algo, en este caso, contienen algunos datos y en realidad tipos específicos de datos dependiendo de sus tipos. Ahora bien, estos contenedores, estas variables existen dentro de un plano específico. Entonces ahora mismo estoy en mi Plano de Nivel. Estas variables que se crean sobre en mi, Mi panel Blueprint solo existe en este blueprint específico. Si salto a mi camioneta de ejemplo BP ese era un plano de clase de actor. Tengo algunas variables aquí, este sonido pick-up es una de ellas. También tengo una variable Delta segundos. Estos solo existen dentro de mi pastilla de ejemplo BP. Echemos un vistazo a nuestro personaje de tercera persona. Hay variables que existen justo dentro de mi terceraPersonaPersonaje. Ahora estos contenedores, estas variables se pueden crear. Estos contenedores, estas variables pueden tener un valor por defecto asignado a ellos o podrían estar vacías. Y solo echando un vistazo a nuestro personaje de tercera persona aquí, tengo esta variable de salud y actualmente tiene un valor predeterminado de 100. Y estos contenedores pueden tener su contenido cambiado con el tiempo. Su contenido puede ser variado. Como podemos ver aquí, un personaje en tercera persona comienza con un valor de salud de 100. Pero ya has visto en videos anteriores modificar esta variable de salud para cambiar. No tiene que quedarse a los 100. Si tomo algún daño, podría bajar a 75, 60, etc. o puedo curarme de nuevo y encontrar mi camino de regreso en plena salud y 100. Entonces, ¿dónde puedes crear estas variables? Bueno, hay un par de formas diferentes de hacerlo dentro del panel Mi Plano. La forma número uno es que simplemente haga clic en este botón Agregar justo aquí. Allí se puede crear una variable. Otra forma es dentro del panel Mi Blueprint, encuentra la sección de variables y haz clic en este botón más justo aquí. Por lo que vale la pena señalar que algunos planos pueden haber heredado variables. Es decir, variables que vinieron junto con la clase padre de la que hereda tu blueprint actual. Sin embargo, no aparecen por defecto por aquí en mi panel de planos. Puedes exponerlos. Entonces la forma en que podríamos hacer esto es haciendo clic en este ícono de engranaje y obtienes este pequeño menú fly out, mostrar variables heredadas. Siga adelante y haga clic en esta marca de verificación significa que se muestra esa categoría. Y ahora ves que un montón de categorías diferentes pueblan bajo tu sección de variables. Y puedes expandirlos simplemente haciendo clic en cualquiera de estos triángulos. Permítanme ampliar aquí esta categoría de peones. Y ahora puedes ver todas tus diferentes variables en el panel My Blueprint hover. Es un poco molesto, hacer clic en todos ellos individualmente así para ver cuál es su valor predeterminado. ¿Hay una manera más fácil? Bueno, claro que la hay. Si hago clic sobre el botón de valores predeterminados de clase en la parte superior aquí de mi blueprint, puedo ver todas las diferentes variables que existen para esta clase padre es carácter, esta específica de BP , terceraPersonaCarácter. Nota Tengo una categoría upon de variables. Y sobre el lado derecho está mostrando todas estas mismas variables y está mostrando todos sus valores predeterminados. Eso es un poco práctico. Esta clase se establece por defecto botón. Tenga en cuenta también, que las variables que creamos anteriormente en el curso, tenemos la variable de salud y demás. Pertenecen a una categoría llamada impagos. Y WPP HUD estaba bajo la categoría de default. Entonces, si llegamos a nuestros valores por defecto de clase, una vez más, podemos ver que tenemos una categoría por defecto y esos existen actualmente debajo de ahí. Ahora tenga en cuenta que las diferentes clases de padres tienen diferentes cantidades de variables heredadas. Pero si haces clic en esa clase por defecto, puedes ver todas las variables que puedes cambiar sobre un blueprint dado, incluyendo las que has creado y llegas a ver todas sus valores predeterminados también, bastante práctico. Ahora algo más que vale la pena señalar aquí que si bien una clase dada puede tener un montón de variables asociadas a ella. Entonces para hacer componentes, así que si iba a repasar y seleccionar mi componente de movimiento de personaje en el panel Componentes. Se puede ver que este componente de movimiento, este componente móvil de carácter, tiene un montón de variables asociadas a él. Todas estas son variables porque se puede cambiar su contenido. Ahora tenga en cuenta alguna lingo común que usted o escuche mucho cuando se trata variables es que puede obtener la variable o puede establecer la variable. Ahora permítanme simplemente saltar sobre mi Gráfico de Eventos rápidamente. Y simplemente voy a usar mi más saludable. Si hago clic con el botón izquierdo y arrastro esto a la gráfica, simplemente estoy haciendo clic izquierdo y arrastrando. Y solté. Se va a decir, ¿quieres obtener tu valor para la salud o quieres establecer tu valor para la salud? Entonces vamos a explorar estos. En conseguirlo. Podemos decir, Oye. ¿Cuánto hay aquí? Y pongamos eso en algún otro nodo. En este caso, estamos diciendo cuánta salud existe dentro de esta cápsula, ¿verdad? Por el contrario, puedo hacer clic con el botón izquierdo y arrastrar y decir, vamos a establecer la salud. Ahora, con este tipo de nodo, un setter, puedes determinar a cuánta salud se va a cambiar este. Nuevamente, se puede cambiar una variable. Aquí estamos obteniendo los contenidos actuales. Aquí, estamos configurando los contenidos el valor de esta variable. Entonces si quisiera cambiar el valor de nuestra salud, podría decir, ya sabes qué salud, quiero que tengas 50 años. Ahora solo codificé esto escribiendo un número. Pero podría tener otra variable que pudiera enchufar a esto que determinaría que es nueva cantidad de salud. Sin embargo, tenga en cuenta que con un getter, simplemente está extrayendo esos datos de esa variable. Con un setter. Es necesario enganchar en un cable de ejecución. Y el cable de ejecución necesita establecer esto. Entonces algún evento o algún otro nodo que conduzca a esto necesita fluir hacia él. Y podrías tener algo que salga de él también si quieres continuar con tu guión, pero debes tener algo que fluya en este pin de ejecución aquí mismo para poder establecer, es decir, cambiar el valor de esa variable. Ahora un par de atajos que puedes usar al intentar obtener o establecer un nodo. Me viste, pulsó con el botón izquierdo y arrastra y obtienes ese pequeño menú ahí para conseguirlo o configurarlo. Un atajo aquí es si mantienes presionada la tecla Control y haces clic izquierdo y lo sueltas así, obtienes esa variable. Por el contrario, si mantienes presionada la tecla Alt, haces clic izquierdo, arrastras y sueltas, obtienes un setter para esa variable. Así que una lingo muy importante para entender ahí, estás obteniendo el valor de una variable o tu configuración de esa variable a algún nuevo valor. Y finalmente, una cosa muy importante para recordar aquí es que debes compilar un blueprint para establecer un valor predeterminado. Entonces voy a saltar por encima a mi ejemplo de BP recoger aquí, ese es este tipo. Y digamos que quería agregar una variable que va a contener cuánta salud para sanar a nuestro personaje una vez que lo superponemos. Así podría crear una variable haciendo clic en este botón más. esto le llamaremos cantidades para sanar. Sin embargo, sobre en el panel Detalles dice que no puedo darle a esto un valor predeterminado a menos que lo compile. Entonces, si hago clic sobre en la parte superior izquierda por ese signo de interrogación amarillo, compilar significa bueno para ir. Ahora puedo darle a esto un valor por defecto. Diré 25. Genial. Eso también es importante porque si estás intentando acceder a esta variable desde dentro de otro blueprint, ese es un paso necesario. Y solo para demostrarlo, déjame mostrarte que tengo una instancia de este plano, mi recogida de ejemplo BP en mi nivel, voy a saltar sobre mi Plano de Nivel, abrir Nivel Plano. Voy a mantener presionada la tecla R y hacer clic con el botón izquierdo para crear una referencia a esa recolección de ejemplo. Y ahora si fuera a arrastrar fuera de esto y teclear lo que llamé eso equivale a sanar. Ahora podría obtener la cantidad para sanar si necesitaba encontrar eso e imprimirlo la pantalla o algo así. O podría arrastrar fuera de esto y escribir en cantidad para sanar. Y gritos, todavía no. Cantidades a sanar. Podríamos fijar esa cantidad. Entonces, si quería cambiar el valor predeterminado aquí a algún otro valioso, nuevamente, eso es lo que las variables te permiten hacer para cambiar el contenido de ese contenedor. Puedo decir, ¿sabes qué? No quiero que sanes 25. Quiero que sanes solo a cinco en su lugar. Yo también podría hacerlo. Bien chicos, va a terminarlo para esta rápida descripción general de las variables. Te veremos en el siguiente video. 42. Booleano: Bienvenidos de nuevo a todos. En este video, nuestro objetivo es aprender qué es una variable booleana, cómo crear una en cómo se puede utilizar al realizar scripts de blueprint. Entonces, en primer lugar, ¿qué es una variable booleana? Bueno, una variable booleana es una variable que contiene información verdadera o falsa. Y platicamos en el último video, las variables son esencialmente contenedores que contienen algún tipo de datos. Una variable booleana es un contenedor que simplemente contiene información verdadera o falsa. Así que imagina una cápsula y en el interior hay un trozo de papel. Y en ese trozo de papel dice ya sea verdadero o falso. Eso es todo lo que puede ser, ya sea verdadero o falso. Y dependiendo del contenido de eso, puedes emparejarlo con algo así como un nodo de rama para crear una ruta de ejecución de ramificación. Si es cierto, hazlo. Si es falso, hazlo. Entonces aquí estoy dentro de mi plano de personaje en tercera persona, y aquí vamos a mostrar un ejemplo. Comencemos creando una variable booleana entrando bajo las variables del panel My Blueprint, este pequeño botón más aquí. Y vamos a crear una variable llamada can jump. Y por lo general me gusta poner un signo de interrogación después de él. Voy a golpear Entra aquí. Yo personalmente, y esta es mi propia preferencia personal. Me gusta nombrar mis variables booleanas con un signo de interrogación. Esencialmente, ¿esto es cierto o es falso? Ahora puedo cambiar el tipo de variable ya sea haciendo clic aquí mismo, y puedes ver que es booleana por defecto para mí, puedo hacer clic ahí mismo y cambiarla, o sería esa variable seleccionados en el panel Detalles? Puedo cambiar el tipo de variable por aquí también. Solo un dato divertido para ti aquí. Cuando vayas a crear una nueva variable, establecerá el tipo de la variable para que sea lo que fue el último tipo de variable que creaste. Entonces, ¿qué vamos a hacer con esto puede saltar? Bueno, antes que nada, tenemos que darle un valor por defecto. Para ello, necesitamos compilar el plano. Entonces vamos a seguir adelante y compilarlo. Y con eso hecho, podemos establecer un valor por defecto. Voy a decir que sí, podemos saltar por defecto, marcar esa casilla. Comprobado significa verdadero, sin marcar significa falso. Sigamos adelante y marquemos esa casilla. Ahora vamos a seguir adelante y poner en uso esta variable booleana. Para hacer esto, voy a crear un poco de espacio aquí entre nuestra acción de entrada Jump, que se disparará cuando presionemos la barra espaciadora, y nuestra función de salto aquí mismo. Así que con nuestra variable can jump down en la sección My Blueprint, hagamos clic izquierdo y arrástrela a nuestro Gráfico de Eventos. ¿Queremos conseguirlo o configurarlo? En este caso, queremos obtener el contenido de eso. Queremos saber si podemos saltar. Lo que voy a hacer a continuación es arrastrar fuera de esto y traer un nodo de rama, uno de los nodos más comunes en todos los scripts de Blueprint. Se puede ver que este nodo de rama puede tomar en un tipo de variable roja que es un tipo de variable booleana. Esa es la condición aquí que nos permite enchufar algo a esto para evaluar, Oye, ¿cuáles son los contenidos de esta variable? Ahora solo son datos curiosos aquí. Si hago clic con el botón izquierdo y rompo este cable, podríamos establecer esta condición para que sea verdadera o falsa, verdadera, falsa. Pero quiero leer en el contenido de esta variable. Entonces estoy configurando esto como mi entrada del nodo de sucursal. Ahora vamos a escabullirse esto entre aquí. Aquí voy a cortar este cable manteniendo pulsada la tecla Alt y dando click izquierdo. Y voy a configurar mi guión para que sea así una vez que presione la barra espaciadora, que va a disparar este evento, vamos a evaluar, esta variable es verdadera o falsa? Si es cierto, saltaremos. Si es falso, no haremos nada. Ahora actualmente se establece en true. Entonces se esperaría que efectivamente, saltaremos. Sigamos adelante y compilemos. Y juguemos. Y si configuro mi objeto de depuración aquí para que sea mi terceraPersonCharacter. Déjame seguir adelante y traer esto. Ahora verás que ese guión se dispara justo por aquí. Cuando presiono la barra espaciadora. Verás que de hecho puedo saltar una vez que lo libere. Por cierto, esta parada de saltar se va a disparar. Pero debido a que esto se evalúa como verdad, puedo seguir adelante y saltar. Ahora bien, si iba a cambiar esto, voy a mantener presionada la tecla Control, clic izquierdo y cambia a false. Ahora vamos a ver, oye, ¿Ken salta puesto a falso? Pues no lo es. Entonces, si tuviera que seguir adelante y jugar, ya verán presiono esa barra espaciadora. Pero en realidad nunca va más allá de este nodo de rama se está muriendo aquí mismo porque el contenido de esta variable puede saltar. Las variables booleanas establecidas en true no se establecen en false, así que lo está haciendo así que nuestro personaje, no pueda saltar. Bien, es cierto que ese fue un ejemplo bastante académico, pero vamos con algo un poco más fiel a la vida. Vamos con este escenario en el que tus personajes acaban de entrar a un edificio abarrotado. Y muchas veces en los juegos, encontrarás que cuando estás dentro de un edificio abarrotado, deshabilitan a tu personaje para que no corra. Deshabilitan a tu personaje de un dibujo de un arma. Y en nuestro caso, vamos a decir que nuestro personaje no puede saltar. Ahora mi computadora choca entre pequeños cortes aquí. Así que asegúrate de haber configurado tu script saltado de acción de entrada para que sea el siguiente. Queremos decir puede saltar, que se establece en true por defecto. Vamos a ramificarlo y asegurarnos de que en verdad, vamos a decir que sí, se puede saltar. Lo que vamos a hacer aquí es dentro de nuestro Plan de Nivel, cambiar el contenido de esta variable. Entonces, cuando estamos dentro de un volumen de disparo, deshabilitamos a nuestro personaje para que no salte. Y cuando estamos fuera de él, lo volteamos hacia atrás para que pueda saltar. Sigamos adelante y hagamos eso. Ahora tenemos que volver a nuestro nivel. Dentro de aquí. Vamos a colocar una caja Trigger. Y una vez más, se puede hacer eso bajando. Aquí. Trae en tus placas panel de actores con esta pestaña básica, podrás encontrar tu caja de gatillo. Coloca eso frente a tus jugadores. Actor de inicio. Voy a dimensionarlo rápidamente hasta 100, 200, 200. Déjame establecer el grosor de la línea para que sea algo así como diez. Algo bonito y grueso. No me voy a preocupar demasiado por el policía de la misma. Y abajo, voy a cambiar el renderizado para que el actor hidden end game quede desmarcado. Eso va a hacer que podamos ver esto. Ahora, esta casilla Trigger seleccionada. Vamos a nuestro Blueprint de Nivel. Puedes traer tu Plano de Nivel yendo aquí y aquí, haz clic con el botón derecho. Y tenemos ese cuadro disparador seleccionado en nuestros niveles. Podemos agregar un evento para ello. Agreguemos uno para comenzar a superponerse. Y también vamos a agregar uno para la superposición final. En lo que queremos hacer es comprobar para ver quién era el otro actor. Queremos comprobar si era el personaje en tercera persona. Así que voy a arrastrar fuera de aquí, teclear en tercera persona podemos lanzar a nuestro terceraPersonpersonaje. Así. Si fue el personaje de la tercera persona que nos superpuso, ¿adivina qué? Podemos llegar dentro de nuestro Blueprint de terceraPersonaPersonaje. Y podemos acceder a esas variables que viven dentro de ella, incluyendo que puede saltar una variable booleana que acabamos de crear. Así que realmente viendo, voy a poner mi salto de diez, voy a teclear puede saltar así. Y ahí está mi variable. Puedo conseguirlo o configurarlo. En este caso, quiero configurarlo. Entonces voy a decir que cuando nuestro personaje se superpone a esa caja de gatillo, no podemos saltar. Vamos a dejar eso como falso. Haga clic izquierdo en arrastrar, va a resaltar estos dos nodos, controlar C para copiar, controlar V para pegar. Voy a enganchar esto así y así. Y vamos a decir que cuando terminemos superponiendo esa caja de gatillo, vamos a decir que sí, puedes saltar una vez más. Entonces dentro de la caja Trigger, vamos a decir, No, no se puede saltar fuera de ella. Vamos a decir, sí, puedes recordar aquí atrás en nuestro Blueprint Third PersonCharacter, estamos comprobando cuando presionamos la barra espaciadora, estamos comprobando el contenido de esa variable por defecto true. Pero en nuestro plano de nivel, cuando estamos superponiendo esa caja de activación, estamos cambiando a false. Cuando lo estamos terminando, lo estamos volviendo a cambiar a verdad. Adelante y compile esto rápidamente. Asegúrate de que nuestro guión se vea bien. Guárdalo. Sigamos adelante y jugemos y una frase esto arriba. Déjame mover esto solo un poco aquí. En realidad no puedo, no puedo mover esto mientras estamos jugando. Así que permítanme señalar eso aquí arriba. Juega una vez más. Bien, aquí vamos. Estoy fuera de esa barra espaciadora de caja de gatillo. Sí, puedo saltar. Vamos a mover mi personaje dentro de él. Verás, está cambiando esa variable ahora para que sea falsa, pasando el ratón sobre ella. Eso también lo puedo ver. Déjame seguir adelante y presionar la barra espaciadora. No puedo saltar. Sin embargo, una vez que dejo esto, esa variable vuelve a voltear a true y puedo saltar. Bien, hablemos de algunos posibles casos de uso booleanos que ves comunes en los juegos. Uno podría ser, ¿es cierto o falso el lote de la puerta? ¿Tienes la tarjeta clave, por ejemplo, ¿qué tal si puedes disparar un arma? ¿Te queda algún animal, verdadero o falso? ¿Qué tal si puedes recoger un artículo? ¿Estás lo suficientemente cerca, cierto o falso? ¿Qué tal puedes equipar un artículo? ¿Eres un nivel lo suficientemente alto, Verdadero o falso? ¿Qué tal puedes comprar un artículo? ¿Tienes suficiente dinero, verdadero o falso? Esos son todos posibles. Ejemplos de casos de uso de una variable booleana. Bien chicos, eso va a hacer para ofrecer este. Nos vemos en la siguiente. 43. Integer: En este video, nuestro objetivo es conocer qué es una variable entera y cómo se puede utilizar en tus propios proyectos de juego. Vamos a comenzar en nuestro Blueprint de personaje de tercera persona. Entonces ahí es donde lo puedes encontrar en tu navegador de contenido o cajón de contenido. Haz doble clic sobre eso para abrirlo. Y antes incluso de crear una variable entera aquí abajo, hablemos de lo que es un entero par. Bueno, esto es un contenedor. Este tipo de variable es un contenedor que contiene información de números enteros. Es decir, números sin punto decimal. Estos pueden ser números positivos o negativos. Ahora, se puede pensar en algunos casos de uso de ejemplo para donde se usan números enteros. Cosas como los valores de puntuación a menudo se imprimen en números enteros. Valores monetarios, cuánto oro o plata, ese tipo de cosas que tienes. ¿O qué pasa con el nivel de un personaje? Nivel uno al 100? Esos suelen ser números enteros. Ahora, los enteros también se usan a menudo para impulsar la lógica, por ejemplo, puede verificar si el valor dado de un entero guardar puntos de experiencia ganados ha alcanzado un cierto umbral. Y si lo ha hecho, el jugador sube de nivel, bien, vamos a crear una variable entera. Por aquí están mi panel de planos. Esta vez voy a crear uno haciendo clic aquí mismo debajo del botón de agregar. Vamos a crear una variable. Y por defecto va a hacer que el tipo sea el mismo que sea lo que fuera tu última variable creada. Entonces está comenzando Booleano. Voy a llamar a este XP total ganado. Y puedes cambiar el tipo de variable ya sea aquí, lo cual voy a hacer. Queremos establecer esto para que sea entero no entero 64, pero hablaremos de esas diferencias un poco más adelante en este video. Entonces puedes cambiarlo aquí en el tipo de variable o en el panel Detalles, también puedes cambiar el tipo de variable aquí mismo. Hablaremos de estas diferencias más adelante en el curso. Pero por ahora, solo conoce el tipo de variable que quieres cambiar está en este menú desplegable. Un poco más de matiz para explicar mientras estamos aquí, podemos establecer un rango de control deslizante para esta variable así como un rango de valores. Bueno, ¿qué significa eso? Bueno, para llevar realmente a casa este punto, vamos a compilar nuestro blueprint para que podamos establecer un valor predeterminado. Y ahora si establecemos un rango de deslizador e intentemos de cero a, vamos 50,000. Así. Y nuestro rango de valor es, diremos 0-100 mil. Básicamente, hemos establecido algunos límites sobre hasta dónde podemos llevar este valor. Ahora el rango del deslizador produce cuando haces clic izquierdo sobre esto, mira como el icono de flecha pasó del cursor de mi mouse a la flecha izquierda y derecha, puedo hacer click izquierdo. Y si me muevo esto a la izquierda, no puedo ir por debajo de cero. No obstante, si lo muevo hacia la derecha, puedo subir hasta un tope de 50,000, ese es el rango de deslizadores. No obstante, si tuviera que hacer clic en esto y poner un número e intentaré 200.000. Esto es difícil ingresarlo y presionar Enter. Lo va a tapar a mi rango de valores aquí está diciendo que mi rango de valores es de 0-100 mil. Eso es lo más alto que puedo establecer esto. El valor del deslizador determina cuánto si haces clic izquierdo aquí, cuánto va a ir si simplemente haces clic izquierdo y lo arrastras. El rango de valores es si haces clic en él, ¿Cuál es el número máximo y mínimo? Se puede entrada dura. Voy a poner esto de nuevo a cero por el momento. A continuación, vamos a saltar a nuestro gráfico de eventos y crear un script simple para hacer uso de esta variable entera. Voy a hacer clic derecho y algo de espacio vacío. Voy a escribir el teclado y voy a buscar el evento del teclado. cualquiera de estos le irá bien. Pero voy a buscar x porque vamos a estar haciendo algo que valga la pena nuestros puntos de experiencia aquí. Entonces, cuando presionamos la tecla X, ¿ qué queremos hacer? Bueno, vamos a tomar nuestra XP total ganada. Voy a mantener pulsada la tecla Control, clic izquierdo y arrastrar para obtener esa variable, cuyo contenido es actualmente cero. Y entonces me voy a arrastrar fuera de esto. Traer el botón add operator plus te llevará allí. esto le vamos a sumar 100. Sólo voy a poner duro esto. Entonces voy a establecer un nuevo valor de XP ganado. Así que voy a mantener presionada, en realidad, solo voy a hacer clic izquierdo y arrastrar y soltar esto justo aquí. Sólo voy a mantener pulsada la tecla Alt, hacer clic izquierdo y arrastrar. Pero si solo dejo caer esta variable aquí mismo en esta salida, me van a dar un setter. ¿Bien? Bueno, vamos a estar haciendo a partir de aquí es arrastrarnos fuera de esto. Vamos a imprimir esta cadena. Imprimamos la cantidad de esto en nuestra pantalla. Trae una pequeña conversión, convirtiendo un tipo de datos entero en un tipo de datos de cadena. Entonces me largaré de aquí. Y vamos a hacer una búsqueda de un nodo mayor que o igual a. Vamos a decir si nuestra XP total ganada es mayor o igual a, diremos 500. Y yo sólo voy a establecer. Estos, en el propio nodo, yo podría contener estas invariables ellos mismos, pero vamos a ir con el valor duro de 500. Arrastre fuera de esto, traiga un nodo de sucursal. Vamos a enganchar esto así. Y vamos a decir que si es cierto, si nuestro XP total ganado es mayor o igual a 500, lo que vamos a hacer entonces es arrastrar fuera de aquí. Haga otra impresión, pantalla, pantalla impresión, cadena de impresión. Y nuestra cadena aquí simplemente va a leer en Gratz tu nivel dos. Y vamos a cambiar el color del texto aquí para que sea un color algo nocivo como la orilla rosa fuerte. Y haz que eso aparezca en la pantalla durante 5 s. Así que esos son nuestros guiones aquí mismo. Podemos hacer clic izquierdo y arrastrar para poner un cuadro de comentarios alrededor de este clic izquierdo y arrastrar resaltar todos los toque CQI. Y llamaremos a esto R usando un entero para subir de nivel script. Voy a cambiar el cuadro de comentarios aquí en el panel Detalles a negro. Bien, compile esto para asegurarse de que su guión esté listo para funcionar. Eso es lo que estamos pasando aquí. Sigamos adelante y juguemos y veamos que estamos haciendo uso de esta variable entera. Bien, así que cada vez que presiono la tecla X, déjame establecer mis objetos de depuración aquí en mi terceraPersonCharacter. Cada vez que presione la tecla X, van a ver apagarse este fuego. En la parte superior izquierda. Tengo 100 XB. Empezamos con cero, sumado 100. Nuestro nuevo total es de 100. Una vez más, 200300400500 felicidades, eres el nivel dos. Entonces ese es un ejemplo de caso de uso de una variable entera. Bien, intentemos un ejemplo más esta vez accediendo a esta variable desde otro blueprint, nuestro Blueprint de Nivel. Voy a volver a nuestro nivel aquí. Asegurémonos de tener una caja Trigger colocada en nuestro nivel. Me has visto hacer esto varias veces. Voy a colocar una caja Trigger en mi nivel. Sólo voy a dimensionarlo un poco. Vamos 200 por 200 por 200, cambiamos el grosor de la línea a diez. Ya te estás volviendo bueno en esto. Voy a bajar a la sección Renderizado. Asegúrese de que no se verifique el juego oculto preciso. Con esta seleccionada. Voy a saltar por encima de nuestro plano de nivel. En cualquier espacio vacío, en cualquier gráfica que elijas. Voy a hacer clic derecho. Vamos a agregar un evento para esa caja de activación. Cuando empecemos a superponerlo, vamos a arrastrar fuera del otro actor, ver si ese es el personaje de la tercera personaPersonaje. Y si es así, ahora podemos extraer alguna información de nuestro terceraPersonpersonaje. Es decir, podemos acceder a cualquier variable que viva dentro de nuestro Blueprint de terceraPersonaPersonaje. Una vez más, una vez que se tiene una referencia de algún tipo a un objeto dado, en este caso, nuestro carácter de tercera persona. Se puede acceder a las variables llamadas funciones dentro de ella. Es cetera. Entonces voy a escribir en XP total ganada. Consigamos esa cantidad. Y vamos a arrastrar fuera de aquí. Haz lo mismo. Le vamos a sumar 100. Y luego sigamos adelante y fijemos esa variable drag off de aquí, total XB. Podemos fijarlo. Por supuesto, con los centros hay que canalizar y ejecutar alambre. Y vamos a establecer eso como la nueva cantidad de XP. Así que vamos a compilar este Guardar. Y ahora lo que estamos pasando aquí es que cada vez que superpongamos esto, vamos a incrementar nuestra XP total de esa manera. Aquí vamos. Entonces, mirando en la parte superior izquierda, lo superpuse una vez, y no lo imprimí en la pantalla. Entonces eso probablemente sería útil de hacer. Arrastre fuera de este tipo en cadena de impresión. No voy a estar subiendo de nivel y solo con la esperanza de demostrar que esto en realidad está incrementando esa variable. Bien, ahí están nuestros guiones, compilar, guardar, jugar. Cuando superponemos esa caja de gatillo, 100, volvemos a superponer, 200, 300, etc. así que imagina que podrías darle a tu personaje puntos experimentados si llegan a la cima de la montaña, ese tipo de cosas. Por último, antes en este video, dije que describiría un poco cuál es la diferencia entre un entero o un entero 64 variables. Así que déjame saltar de nuevo a mi plano de personaje de tercera persona. Voy a crear temporalmente una variable entera 64. Sigamos adelante y hagamos eso. Además, voy a llamar a esto int 64. Cambiaremos esto a un entero 64, tipo variable compile save. La diferencia es el rango de valores posibles. Entonces con un entero 64, puedes tener un rango más amplio de valores. Nuevamente, eso está en lo positivo y en lo negativo, va a hacer clic izquierdo y arrastrar esto hasta el final. Incluso podría salir de la pantalla ahí. No lo hace. Puedes buscar en línea el rango de esto, pero esencialmente, con el número entero 64, obtienes un rango mucho más amplio de números posibles. No es del todo infinito. En 64 es hacer tomar un poco más de memoria, pero no es tanto en la mayoría de los casos. Y casi todos los casos en entero deberían estar bien. Déjame volver a mi entero regular y mostrarte el rango. Vaya, tengo que quitarme la gorra aquí, borra mi gorra, borra. Déjame poner esto a ninguno y así. Boom, ese es el límite para un número variable entero que va en el positivo y el negativo en 64, infinito nueve. Y ese es el rango para el int 64. Nuevamente, eso va en la dirección positiva y negativa. Chicos, eso va a hacer todo por nuestra discusión de la variable entera. Muy útil, muy útil para saber que va a hacer para ofrecer este. Nos vemos en la siguiente. 44. Flotar: Bien, bienvenidos de nuevo a todos. En este video, nuestro objetivo es aprender qué es una variable flotante, cómo crearla y cómo se puede utilizar al crear scripts de blueprint. Entonces, en primer lugar, antes de empezar aquí, ¿qué es un flotador? Un flotador es una variable que contiene un valor de punto decimal. Nuevamente, puede ser positivo o negativo. Ahora, en Unreal, esta variable se utiliza muchas veces para mantener un valor de tiempo o para determinar un porcentaje como de cero a 100%. Y eso suele representarse con 0.0, decir 0%, y 1.0 igual al 100%. Vamos a mostrar un par de casos de uso diferentes aquí. Voy a estar dentro de mi BP ThirdPersonCharacter. Y voy a estar a cuestas del guión que usé en el video anterior cuando estábamos mostrando un entero. Sigamos adelante y creamos una variable. Lo voy a hacer haciendo click aquí mismo. Y llamemos a esto retraso. Vamos a establecer un retraso de tiempo antes hacer que nuestra cadena se imprima en la pantalla aquí. Nuevamente, queremos hacer de esta una variable flotante para que puedas cambiarla aquí. Cambiándolo allí, o a la inversa, puede cambiar el tipo de variable con esa variable seleccionada en el panel Detalles. Ahora, una vez que tengamos eso creado, podemos compilar para establecer un valor. Una vez más, los flotadores tienen un valor de punto decimal, así que intentemos 1.5. Ese será nuestro tiempo que vamos a retrasar esta impresión de nuestra cuerda. Vamos a traer nuestra variable de flujo manteniendo presionada Control, haciendo clic izquierdo y arrastrando traerá un getter de esa variable. Y se puede ver que los flotadores son de este color verde lima. Y luego solo vamos a traer un nodo de retardo para que pueda hacer clic derecho en él. Algún espacio vacío. Escriba retraso. Ahí está nuestro nodo de retardo. Y déjame escabullirme esto justo por aquí. Así. Entonces, una vez más, este nodo de función de retardo, podríamos difícilmente establecer podríamos difícilmente establecer un retraso que actualmente es por defecto en 0.2 s. o podemos enchufar algún valor a flote nuevamente, en el lado izquierdo está pidiendo una entrada. Y la entrada que se busca es un flotador. Entonces podrías codificarlo, o podrías almacenarlo en una variable. Así que lo estamos almacenando aquí. Nuestro retraso actual se establece en 1.5 s. Así que al presionar la tecla X, vamos a averiguar nuestro total de puntos de experiencia obtenidos. Vamos a agregarle uno. Y vamos a establecer eso como nuestra nueva variable para el total de XB ganado ese entero. Una vez que esto haya igualado o superado 500. Una vez que eso sea cierto, vamos a demorar en esta cantidad 1.5 s, y luego imprimir ese mensaje que Felicidades eres nivel dos. Vamos a compilar nuestro script. Asegúrate de que sea bueno ir a guardarlo. Aquí vamos. Jugar. Déjame meter esto por aquí para que veas que todo esto funciona. Bien, así que al presionar esa tecla X, aún no hemos superado este umbral también. Puedes ver esa cantidad justo aquí arriba. Y estamos sacando algún valor extraño para x p ganado porque olvidé establecer XP ganados nuevo a cero desde el último video. Entonces necesito arreglarlo. Volvamos a poner eso a cero. Eso va a fastidiar las cosas. Compilar guardar, jugar una vez más. X Conseguí 100, 200,300,400.500 XP retrasando y luego felicita a tu nivel dos. Ahora se puede ver que una vez que hemos superado eso, ese tipo de retraso de cuenta regresiva cuenta atrás aquí en el guión, lo cual es bastante práctico. puede ver como lo presiono de nuevo porque estamos superando ese umbral, que cuenta regresiva bastante útil. A continuación, ¿por qué no saltas a esto un poco de guión en tu Blueprint BP ThirdPersonCharacter donde estábamos creando nuestro HUD y agregándolo a la ventana gráfica? esto un poco de guión en tu Blueprint BP ThirdPersonCharacter donde estábamos Destruí esto algunos videos atrás. Entonces lo que voy a estar haciendo aquí es dejarme traer mi respiradero, comenzar a jugar. Me va a saltar hasta aquí abajo. Permítanme simplemente mover este evento B en juego a su posición. Y si lo hiciste destruir esto un poco de guión, es como puedes recuperarlo. Evento Comenzar Jugar. Vamos a crear widget. Este es un nodo Crear Widget. Puedes volver a configurar tu WB P HUD aquí para crear ese Widget Blueprint. Entonces en este pin hice clic derecho sobre esto y lo promoví a una variable para encapsular eso con cualquier variable. Y luego agregamos esto a la ventana gráfica. Con todo esto hecho, hacemos clic en Reproducir. Podemos ver que ese medidor de salud se agrega de nuevo a nuestra pantalla aquí. Ahora todo eso es relevante porque vamos a estar usando una variable flotante para impulsar la cantidad de salud que se muestra en este medidor de salud. Entonces. Dentro de tu mente Panel de planos de tu tercera personaPersonaje. Hace algún tiempo creamos una variable de salud. Si no lo hiciste, puedes seguir adelante y hacer eso. Ahora. Actualmente se establece en un valor predeterminado de 100. Ahora mencioné que los valores flotantes a menudo se utilizan para tener un valor entre 0.0 y 1.0 para determinar un porcentaje 0% hasta el 100%. Así que vamos a establecer este valor flotante 1.0, es decir, salud completa. Y luego abajo tenía algún guión para establecer la visibilidad de ese HUD. Enciéndalo y apágalo. Yo solo voy a destruir este en su lugar, lo voy a hacer es cuando presione la tecla cinco, voy a disminuir un poco nuestra salud para que podamos ver una disminución. Así que voy a mantener pulsado Control, clic izquierdo y arrastrar esto hacia adentro. Y luego voy a arrastrar fuera de aquí y voy a traer la tecla menos, la clave restar. Y sólo voy a decir disminuirlo en 0.1, es decir 10%. Y luego vamos a arrastrar y soltar esto en la salida con el fin de establecer la salud. Bien, entonces actualmente tenemos este bit de script pasando dentro de nuestro terceraPersonCharacter. Podemos compilar esto y ahorrar. Ahora bien, si aprieta su tecla cinco ahora mismo, van a ver que no le pasó nada al propio medidor real. Y solo para probarlo, estoy presionando F5 y parece que, bien, los medidores de salud no bajan. Eso es porque necesitamos vincular esta variable a este medidor. Entonces eso va a implicar que vayamos al activo WPP HUD, haciendo algún trabajo dentro de ahí. que podamos localizar este activo viniendo a este nodo aquí mismo, dando clic aquí mismo para navegar por este activo dentro del navegador de contenido. Ahí está. Y adelante y abre esto. Bien, dentro de aquí queremos dar click en nuestra barra de progreso. Podemos hacerlo aquí mismo en el diseño visual o sobre la jerarquía. Puede seleccionar ese widget de barra de progreso. Y luego sobre en el panel Detalles, debajo de la sección de progreso, se puede ver que tenemos este valor actual y actualmente es de 1.0%. Nuevamente, este medidor va de 0.0 a 1.0. Entonces, si hago clic con el botón izquierdo y arrastro y muevo esto hacia la izquierda, mira el medidor por encima en el lado izquierdo, esa barra verde está cayendo a medida que decremento esto de 1.0 a 0.0. Entonces eso está todo bien y bien. Pero, ¿cómo asociamos nuestro valor de salud sobre en nuestro bp terceraPersonaPersonaje, este derecho, eso, cómo asociamos eso con este widget en particular? Bueno, tenemos que crear una unión aquí. Y la forma en que podemos hacerlo es con esta barra de progreso seleccionada, justo donde está este valor presente aquí. Tienes esta pequeña opción de atarse. Adelante y da click sobre esto. Queremos crear una encuadernación. Nos va a saltar escuchar de nuestra pestaña Diseñador a nuestra pestaña gráfica. Una vez que hagamos eso, hagámoslo. Crear una encuadernación. Y ahora lo que hemos hecho es que hemos creado una función, se crea una tabulación gráfica aquí arriba llamada Obtener porcentaje. Podemos cambiarle el nombre a esto. Voy a hacer eso ahora. Y nos ha dado estos dos nodos. En primer lugar, cambiemos el nombre de esto. Voy a dar click en esto, presionar F2, y voy a llamar a esto Get Player health, así. Y luego sosteniendo Control, rueda del ratón. Y vamos a acercarle un poco a esto. Lo que queremos hacer es hacer clic derecho en algún tipo de espacio vacío en obtener el personaje del jugador. Podemos arrastrar fuera de esto y Cast to ThirdPersonCharacter. Me has visto hacer esto varias veces. Vamos a donde esta entrada así que ¿por qué la escena es así? Y una vez que hacemos esto, tenemos acceso a todas las variables o funciones, o podemos llamar eventos personalizados dentro de nuestro ThirdPersonCharacter. Bueno, queremos extraer esa variable de salud. Así que vamos a arrastrar fuera de aquí, escribir, obtener salud. Ahí está esa variable de salud flotante. Y mira, esto es buscar un flotador entradas. Podemos enchufar nuestra salud tal como se extrae de nuestro personaje de tercera persona y devolverlo. Para que podamos compilar y guardar esto. Todo lo que estamos haciendo ahora es asociar son terceraPersonCharacter es variable de salud con este medidor. Y va a impulsar este porcentaje. A lo mejor debería cambiar el color de esto de verde lima. Hace algo un poco más oscuro. Vamos azul oscuro, algo así. Hazlo un poco más visual aquí y compilar guardar. Podemos hacer clic en Reproducir desde aquí. En realidad, hagámoslo desde nuestra terceraPersonaPersonaje. Podemos ver este script funcionando. Haz clic en Reproducir desde aquí. ¿Bien? Y hemos creado nuestro widget de salud al comenzar el juego. Y ahora cuando presione la tecla cinco o la salud va a disminuir un 10% cada vez que deberíamos ver eso reflejado en nuestro medidor de salud aquí arriba también. Entonces aquí vamos. 555-55-5555 por cinco, todo el camino hacia abajo. Y ahora mira esto. Ahora que tenemos una variable flotante de salud asociada con nuestro terceraPersonCharacter. Y ahora que tenemos esa variable ligada a ese medidor dentro de nuestro HUD WPP. Podemos volver a la parte inicial del curso donde creamos esta pastilla de ejemplo BP y hacerla para que cuando nuestro personaje realmente recoja esto, que parte de la salud de nuestro personaje se restaura. Entonces, si olvidaste dónde estaba ese blueprint, teníamos un en este directorio aquí mismo , descripción general de scripting de contenido. Voy a hacer doble clic sobre esto para abrirlo. Dentro de aquí, vamos a crear un poco de espacio entre nuestro nodo ThirdPersonCharacter aquí mismo y esta reproducción del sonido, que puedas empujarlo hacia la derecha. Bueno, vamos a hacer aquí. Intentemos enmarcar todo esto para que lo veas. Vamos a arrastrar fuera de nuestro terceraPersonaPersonaje. Vamos a conseguir su salud. Esa variable flotante. Bueno, vamos a hacer entonces es agregar en cantidad de salud que queremos sanar cada vez que superponemos este plano. Entonces vamos a agregar otra variable aquí. Llamémoslo salud para agregar. Esta también será una variable flotante. Necesitamos compilar esto para darle un valor por defecto. Así que vamos a talar el 20% de la salud de nuestro personaje que sería punto para recordar, nuestra salud va corriendo desde una escala asociada nuestro medidor de salud de 0.0 a 1.0. Entonces 0.2 sería 20% salud. Vamos a arrastrar y soltar esto en nuestra gráfica. Vamos a conseguir eso. Vamos a sumar estos dos números juntos, arrastrados fuera de aquí, teclee el botón más para traer un nodo de anuncio, así. Y luego vamos a arrastrar fuera de nuestro terceraPersonaPersonaje y vamos a establecer esa salud. Entonces aquí estamos consiguiendo la salud. Estamos agregando esta cantidad de Salud Cada vez que superpusimos su camioneta. Y vamos a establecer eso como la nueva variable de salud. De nuevo variables, se pueden actualizar sus valores. Bien, entonces ese va a ser nuestro guión, ¿verdad? Hay script actualizado. Vamos a compilar esto un poco de bono aquí quiero agregar a nuestra salud para agregar, seguir adelante y seleccionar esa variable. Si marca esta casilla llamada instancia editable, lo que esto hará es hacerla para que vuelta en nuestro editor de niveles, podamos realmente modificar cuánta salud puede dar este blueprint en particular. Y podemos cambiarlo por cada instancia de la misma. Así que vamos a compilar y decir eso una vez más. Y voy a alargar esto y tengo una instancia de ello actualmente en mi nivel. Déjame seguir adelante y mantener pulsada la Alt, hacer clic izquierdo y arrastrar. Entonces tengo dos de ellos. Y con el segundo seleccionado en el panel Detalles, tengo este estado para agregar que ya ha sido expuesto una vez marcamos esa casilla llamada instancia editable, voy a cambiar el estado para agregar éste a uno. Vamos a decir que esa es la salud plena. Yo también puedo cambiar la escala aquí. Cambiémoslo hasta que sea 22.2, solo para hacer eso muy evidente que ese va a ser el sanador completo. Bien, así que con eso, este de aquí va a ser el pequeño sanador. Se va a sumar un 20% de salud. Este, agregaremos 100% salud. Sigamos adelante y juguemos esto. Y si recuerdas, si presiono la tecla cinco, puedo disminuir mi salud. O voy a superponer el primero de aquí. Vamos a recuperar 20% de salud. Cinco claves, un poco más todo el camino hacia abajo y se superponen y el tipo grande, y estamos todo el camino de regreso a la salud plena. Y así ahí lo tienes. flotadores contienen valores decimales que pueden ser positivos o negativos. Y muchas veces se utilizan para mantener valores de tiempo o para mantener un porcentaje que va de 0.0 a 1.0. Chicos, eso servirá para ofrecer este video, veremos en el siguiente. 45. Nombre: Bienvenidos de nuevo a todos. Nuestro objetivo en este es aprender qué es una variable con nombre, cómo crear una y cómo se puede utilizar cuando se realiza un script de blueprint. Entonces, a menudo hay mucha confusión en Unreal si se debe usar o no un nombre, una cadena o una variable de texto. Entonces, en el transcurso de los próximos tres videos aquí vamos a estar hablando de algunas de las sutiles diferencias entre esos tres. Entonces, comenzando con la variable name, name es una pieza de textos utilizados para identificar algo dentro de un juego. Ahora vamos a estar usando un par de variables de nombre dentro de este video. Identificar un nivel al que transferir. Vamos a estar transitando de este nivel a otro. También vamos a estar usando un nombre para identificar un socket al que queremos adjuntar un prop. Esto podría ser algo así como una espada a mano, ese tipo de cosas. Ahora, un nombre, un nombre es una variable que es insensible a mayúsculas y minúsculas, y eso significa que mayúsculas o minúsculas no importa. En una variable con nombre se utiliza para caracteres alfanuméricos, es decir, todas las letras y números. Bien, vamos a empezar aquí dentro de nuestro Plano de Nivel. Entonces, si aún no lo tienes abierto, puedes venir aquí y abrir tu Plano de Nivel. Y vamos a crear un par de variables de nombre. Entonces bajo el panel Mi Blueprint, vamos a agregar una variable. Voy a llamar al primer subrayado de un nivel 01. Actualmente sí lo tengo como variable de nombre. No obstante, si quisieras cambiarlo, ahí mismo es donde puedes hacerlo. Ahí está el nombre. Alternativamente, con eso seleccionado en el panel Detalles, también puedes cambiar el tipo aquí mismo. Ahora quiero crear un duplicado de esta variable y llamarla nivel dos. Así que de un par de maneras podría hacer esto. En primer lugar, podría hacer clic derecho sobre él y duplicarlo de esa manera. No obstante, también podría hacer control más D con eso resaltado. Para crear un nivel duplicado, O2 es lo que quiero nombrar a esto. Sigamos adelante y compilemos para que podamos darles a estos algunos valores predeterminados. Comenzando por el nivel uno, voy a ingresar mi nivel uno como mapa de inicio. Y fíjate como deletreé todo esto en minúscula. A continuación pasa al nivel dos. Y con esto, establece el valor por defecto Mínimo, subrayado predeterminado. Y estoy haciendo esto en mayúsculas. Tienes que asegurarte de que lo escribes correctamente. Ahora bien, si te estás preguntando por qué los ingreso como valores predeterminados, es porque aquí atrás en nuestro editor de niveles, dentro de mi carpeta de mapas de contenido de historias, tengo dos mapas que existen dentro de esta estrella carpeta de mapas de contenido. Uno llamado mínimo predeterminado. Observe cómo se escribe solo la M y la D están mayúscula y luego un nivel de mapa inicial. Y fíjense que la S y la M en el veterinario nuestro capitalizan. Entonces intencionalmente no estoy usando exactamente la misma carcasa con variables de nombre. No es necesario tener exactamente la misma carcasa. Son insensibles a mayúsculas y minúsculas. Bien, volviendo a tu mapa de prueba de niveles, sigue adelante y compila y guarda eso. Y luego en una gráfica de tu elección, podría ser la gráfica de eventos predeterminada u otra gráfica que hayas creado. Sigamos adelante y creamos un guión sencillo. Voy a hacer clic derecho y algún tipo de espacio vacío en el teclado para que tenga eventos de teclado. Voy a usar la tecla L porque eso tendría sentido para hacer la transición a otro nivel. Estoy muy alejada aquí manteniendo pulsado Control, el ratón rueda hacia arriba. Déjame acercarme a ese evento clave L. Lo que voy a hacer es arrastrar fuera de aquí, traer un nodo de sucursal. Y si esto es cierto, queremos abrir un nivel por nombre. Y voy a duplicar este Control C, Control V. Y si es falso, queremos abrir un nombre de nivel diferente. ¿Qué nivel nombrado? Bueno, mira esto. Se busca una entrada de nombre. Ahora podría haber codificado esto con solo ingresar esto. Sin embargo, estoy almacenando estos nombres de nivel dentro de estas variables. Así que voy a arrastrar y soltar el nivel uno sobre aquí y el nivel dos sobre aquí. Entonces, si nuestra condición aquí resulta ser cierta, vamos a hacer la transición a nuestro nivel de mapa inicial. Y si nuestra condición resulta ser falsa al presionar la tecla L, vamos a hacer la transición al nivel dos. Ese es el mínimo por defecto. Ahora actualmente nuestra condición es difícil de cumplir. Sin embargo, si tuviera que hacer clic derecho y algún espacio vacío y escribir bool aleatorio. Este práctico nodo simplemente emitirá una bola aleatoria eligiendo aleatoriamente verdadero o falso cada vez que presionemos la tecla L, bastante útil. Aquí vamos. Vamos a compilar esto y guardar y darle una jugada a esto. Bien, entonces presionando la tecla L aquí, deberíamos estar transitando a uno de estos dos niveles. Aquí vamos. Y me sale un fracaso de viaje. Y esto debe ser porque no debo haber copiado correctamente uno de los nombres. Entonces nivel dos aquí, Comprobemos por defecto mínimo. Y si vuelvo a ingresar a mi Mínimo los valores predeterminados son altos. Tenemos que deletrearlo correctamente. Sí lo deletreé incorrectamente. Entonces déjame seguir adelante y arreglarlo. Es bueno aprender de nuestros errores. Valores mínimos por defecto. Pierna. Entonces Compila y di, intentemos esto una vez más. Nuevamente, es insensible a mayúsculas y minúsculas. No importa si estas letras, estos caracteres están en mayúscula o no. No obstante, sí hay que tenerlo deletreado ¿verdad? Entonces presionando la tecla L, elegimos nivel a ese momento. Entonces tenemos este nivel raro aquí, vamos a salir de aquí. Así que eso fue nivelado a los elegidos en. Asegurémonos de que el Nivel uno funcione correctamente. Detenerlo reproduciendo una vez más, presionando la tecla L, se eligió una, y ahí vas. A continuación vamos a usar una variable con nombre para adjuntar un prompt a nuestro ThirdPersonCharacter. Entonces, si aún no tienes abierto tu activo de ThirdPersonCharacter, entra bajo los planos de contenido en tercera persona haz doble clic en ellos para abrirlo. Y dentro de aquí, encuentra tu componente de malla. Necesitamos hacer un poco de trabajo de configuración incluso antes de hacer uso de cualquier variable de nombre. Vamos a agregar unos zócalos a nuestra malla esquelética. Así que selecciona tu malla y otra vez en el panel Detalles vienen bajo Malla Esquelética. Haga clic aquí para navegar hasta ese activo en el Navegador de contenido. Entonces vas a querer hacer doble clic en este SK M Quinn, sencillo. Y luego en la parte superior derecha tienes diferentes pestañas. Da click en esta pestaña esqueleto y lo que queremos hacer es agregar un socket a la mano de nuestro personaje. Entonces este es nuestro Árbol Esqueleto, todos los diferentes huesos dentro de nuestro esqueleto de personajes. Entonces voy a buscar una mano en esto. Y agreguemos un socket a nuestros personajes de la mano derecha. Voy a hacer clic derecho en esta mano. Y con hacer clic con el botón derecho sobre ese hueso de la mano, podemos agregar un zócalo. Y acabamos de agregar un socket. Ese es el pequeño icono es, voy a hacer click sobre esto y voy a renombrarlo aquí. Entonces el nombre del socket voy a establecer para que sea toma de mano así. Ahora, dato curioso aquí es que puedes agregar un prop de vista previa para que puedas ver cómo se ve esto. Cuando algo está unido al zócalo de aquí, voy a hacer clic derecho en este zócalo de mano. Vamos a agregar una malla de vista previa. Y agreguemos una lámpara, malla de vista previa como una lámpara de techo. Obviamente algo así como una espada o una daga estaría mejor aquí, pero no vamos a ser muy particulares con esto. Sólo voy a hacer clic derecho aquí, presionar la barra espaciadora. Se puede ver cómo se podría posicionar esto tal manera se podría mover aquí así. No me voy a preocupar por ser súper cuidadoso con esto. Puedes rotarlo, algo así. Y nuevamente, podrías pasar mucho tiempo jugando donde existe este socket. Estamos compensando esto relativo a nuestra mano aquí. Entonces puedes ingresar algunos números aquí arriba para la ubicación y la rotación, etcétera. O también puedes jugar con él aquí en la ventana de vista previa. Nuevamente, no voy a ser súper específico para esto. Por el momento. Sigamos adelante y guardemos esto. Y a continuación, volvamos a nuestro terceraPersonCharacter y creemos un par de variables. Así que saltando de nuevo a nuestro terceraPersonCharacter, vamos a crear una variable haciendo clic en este botón más. A éste se le va a llamar nombre de sockets. Voy a cambiar esto para que sea una variable de nombre. Y aquí voy a cambiar el valor por defecto. Si compilo, como llamamos a eso tomas de mano, solo voy a hacer todas tus tomas de mano en minúsculas. Y fíjense que esa no va a ser exactamente la misma carcasa que como la hicimos aquí en nuestro esqueleto. Lo llamamos socket de mano con la mayúscula H y S. De vuelta en nuestro terceraPersonCharacter, solo vamos todos en minúsculas. Ahora voy a agregar un componente más aquí como un prop para adjuntar a nuestro socket. Así que vamos a fingir que tenemos una especie de fuente. Voy a agregar unos componentes de malla estática. Y a esto le llamaremos nuestra espada, pesar de que va a parecer una lámpara. Y con esos componentes de espada seleccionados, ese Componente de Malla Estática sobre en el panel Detalles. Vamos a encajar como una malla estática o lámpara, lámpara de techo. Voy a posicionarlo muy, muy calumniosamente. Déjame apagar el movimiento, chasqueando justo aquí arriba. Y no voy a pasar mucho tiempo en esto para nada. Sólo vamos a ir a algo loco así. Claro. Así. el buster ordenado de Final Fantasy. Claro. Y luego vamos a ir a nuestro gráfico de eventos y vamos a hacer clic derecho y algún espacio vacío, necesito una clave de evento. Hagamos las entradas R, o en realidad hagamos el teclado. Veamos qué tenemos para los eventos de teclado disponibles. Vamos a la tecla cero. Claro, eso va a funcionar. Vamos a arrastrar fuera de esto y adjuntar. Y lo que estamos buscando es unir un componente a otro. Tengo varias opciones aquí. Vamos a unir Componente, dos componentes, espada. La espada. ¡Vaya! Eso es algo que queremos adjuntar. El padre es a lo que queremos adjuntarlo. En este caso, es nuestra malla. Y recuerda, la malla es lo que tiene asociado un socket. Así que vamos a arrastrar y soltar nuestro nombre de socket ahí mismo. Entonces, un par de cosas que necesitamos arreglar aquí son nuestra ubicación y reglas de rotación. Queremos establecer esto para que se ajuste al objetivo, así. Entonces este debería ser nuestro guión. Queremos unir nuestra espada, Ese es el objetivo. Queremos adjuntar eso a nuestra malla padre. Y donde específicamente, bien en se llaman socket y establecemos nuestro nombre de socket como socket de mano. Así que compila. Digamos, juguemos. Ahora, mira esa espada fina en la bolsa de mis personajes. Si bien se ve terrible, permítanme presionar una tecla cero y boom, ahora la está unida a nuestra toma de mano. Todo gracias a ese nombre, variable, nombre saccad. Ahora vamos a resumir. Una variable de nombre es una pieza de texto utilizada para identificar algo dentro de un juego. Las variables de nombre consisten en caracteres alfanuméricos, es decir, todas las letras y números. Y son insensibles a mayúsculas, lo que significa que la carcasa, la capitalización o la minúscula no importa. Chicos, eso lo hará todo por este video, veremos en el siguiente. 46. Cadena: Bien, bienvenidos de nuevo a todos. En este video, nuestro objetivo es aprender qué es una variable de cadena, cómo crear una y cómo se puede utilizar al programar blueprint. Para este video, vamos a estar trabajando dentro de nuestro bp, un terceraPersonCharacter, ese es el directorio donde puedes encontrar eso. Así que sigamos adelante y abramos esto enseguida. Entonces, como es de esperar, puede crear esta variable String aquí en el panel Mi Blueprint haciendo clic Agregar variable o debajo de la sección de variables, haciendo clic en este botón más. Y voy a crear nuestras dos primeras variables de cadena desde el principio aquí. A este primero voy a estar llamando First Name. Y una vez más, se puede cambiar el tipo de la variable ya sea desde esta cadena desplegable es lo que estamos buscando hacer aquí, o sería esa variable seleccionada sobre en el panel Detalles bajo tipo de variable? Y voy a duplicar esto enseguida. Puedo hacer clic derecho y duplicarlo. O con eso seleccionado, puedo usar esa tecla de acceso rápido ahí, que es control más D. Y voy a cambiar esta a LastName. Entonces voy a seguir adelante y compilar esto para que podamos darle a esto algunos valores predeterminados. Entonces para el nombre de pila, voy a entrar bajo la sección Detalles y escribir mr. Con un periodo. Y luego voy a agregar un espacio en blanco justo después de él. Apellido, voy a añadir una gota. ¿Bien? Ahora hablemos de ¿qué es una variable de cadena? Bueno, una variable de cadena es una variable que puede contener cualquier letra, número o símbolo. O las cadenas son útiles para manipular dinámicamente texto en tiempo de ejecución usando algunas funciones listas y exploraremos algunas de ellas más adelante en este video. Las cadenas se pueden buscar, se pueden modificar y se pueden comparar con otras cadenas. Tenga en cuenta que debido a esto, cadenas son preferibles a nombrar variables si quieres manipular el texto de alguna manera mientras el juego se está ejecutando. Entonces las cadenas son un poco más caras que las variables de nombre. Pero quiero decir, si estás ejecutando un juego más pequeño o incluso un juego más grande, quiero decir, el costo no es tanto mayor. Bien, así que vamos a crear nuestro primer script que va a estar utilizando algunas de estas variables de cadena. Entonces aquí hay algo de espacio vacío en un gráfico de eventos. Voy a hacer clic derecho. Voy a traer, probemos la llave siete. Cualquier evento de teclado servirá. Déjame acercarme a esto. Y me has visto usar esta función muchas veces arrastrando fuera de aquí, imprimir cadena. Entonces este nodo puede tomar en una variable de cadena. Ahora hay muchas cosas que se pueden convertir en una cadena, pero ese alfiler rosa de ahí mismo, si pasas el cursor sobre él, dice que está buscando una variable de cadena. Si tuviera que enchufar nuestro nombre de socket, lo convertirá en una cadena, en realidad lo hará, si voy así y arrastro aquí y digo toString, puedo convertir eso en una variable de cadena. Muchas otras variables también se pueden convertir en cadenas. Pero vamos a mostrar nuestras dos variables de cadena y cómo podemos agregarlas juntas. Eso es para unir uno al otro. Así que voy a mantener pulsado Control, clic izquierdo y arrastrar en mi nombre y mantener presionado Control clic izquierdo. Y también voy a conseguir mi apellido también. Como muchos nombres se presentan. Es FirstName seguido de apellido. Entonces, una forma en que podemos manipular estas dos cadenas separadas es añadiéndolas. Entonces, si hago clic derecho en algún espacio vacío y vengo bajo la sección de utilidades camino hacia abajo porque todo está en orden alfabético. Utilidades. Podemos venir bajo cadena Utilidades. Y en la parte superior hay una función llamada append que es concatenar dos cadenas juntas para combinarlas. Así podemos tomar nuestro FirstName y agregar el lastName en él. Y eso nos va a dar el resultado final. Así. Si compilo esto, asegúrate de que mi guión se vea bien aquí. Ahorre, sigamos adelante y jueguemos. Ahora cuando presione la tecla siete, debería ver mi nombre y apellido combinados aquí arriba. Aquí vamos. Siete, ya ve señor vagar todo combinado. Ahora en esa sección de cadenas de utilidades, hay muchas funciones que se pueden usar para manipular cadenas. Déjame encontrar otro aquí. Voy a arrastrar mi apellido, así. Y voy a escribir dos superiores, otra vez, lo va a encontrar en la sección de cadena de utilidades. Voy a ir así, enganchando esto también a la sección B. Ahora bien, si tuviera que compilar, guardar y jugar, lo que notarás en la parte superior izquierda cuando presione esa tecla siete es notar cómo cambió toda la cadena de apellido en mayúsculas. Así que eso también es un poco útil. Muchas formas de manipular cuerdas. Ese es uno de los principales beneficios de hacer de algo una cadena son todas esas diferentes funciones para manipularlas. Voy a presumir algunas de las otras funciones manipuladoras en el Blueprint de Nivel porque he preparado algunas antes de este video. Entonces voy a saltar de mi terceraPersonaPersonaje e ir a mi Blueprint de Nivel una vez más, así es como puedes hacerlo haciendo clic ahí mismo, abre Planos de Nivel. Aquí tengo varias funciones diferentes. Hay muchos más que vamos a estar explorando aquí. Nuevamente, puede encontrarlo haciendo clic con el botón derecho y algún espacio vacío pasando por debajo la sección de cadena de utilidades. Aquí, todas las funciones del manipulador de cuerdas que viste anexar. Entonces, si tuviera que hacerlo, voy a arrastrar y soltar cada uno de estos en mi función lista para usar aquí, mi script de función de cadena de impresión que puede disparar con la tecla S aquí. Entonces, si tuviera que probar esto, puede ver como presionando la tecla S, puedo anexar esa cantidad en dólares después de los textos del dinero. Bastante práctico. Bien, déjame deshacerme de ese tipo y vamos a mover el tiempo segundos a la cadena. Este es otro que me gusta mucho. Lo que esto va a hacer, y preparo ésta con anticipación, es que cambié esta variable float para tener un valor de 500. Entonces, si iba a cambiar eso en segundos, ¿cuántos segundos es eso? Bueno, esto hará el trabajo por ti. Entonces, si presiono la tecla S ahora, puedes ver cómo eso lo imprime en una bonita forma de tiempo. Eliminemos esa. Intentemos dividir una cadena. Entonces si esta es mi cadena fuente el 4 de julio con una coma 17, 76, y quiero dividirla en esto en STR, esta poco bien. Aquí, a la izquierda de eso voy a conseguir el 4 de julio. A la derecha de eso, obtendría 17 76. Entonces, sigamos adelante y probemos esto rápidamente. Dividir una cadena. Sólo estoy llegando a la izquierda de esa coma, presionando la tecla S. 4 de Julio. Y si tuviera que mantener presionado control y llegar a la derecha de eso, ahora obtendría que en realidad sería un espacio en blanco en 17 76, pero no puedes ver el espacio en blanco, solo va a mostrar un 17 76. Ahora algo genial que podrías hacer aquí es que podríamos convertirlas en variables que podríamos cambiar. Entonces podrías hacer clic derecho sobre esto, promover eso a una variable y llamar esta fecha de independencia estado independiente para Estados Unidos de todos modos, los internacionalmente, eso sería alguna otra fecha ojalá para tu independencia, ¿ deberías disfrutar de ese lujo? Y así al hacer esa compilación, se puede ver cómo creamos la variable de esa manera haciendo clic derecho y la promocionamos a variable. Tenga en cuenta que automáticamente toma esa información que tenía codificada en esa función en ese lugar y rellenó automáticamente esa variable de cadena. Así que solo pensé que tiraría eso por ahí también. Veamos otra aquí, esta función de reemplazo. También puede encontrar esto en la sección de cadenas de utilidades y haga clic derecho en el menú. Súper práctico porque se podía ver un escenario como este. Y otra vez donde tienes una cadena fuente que dice que la puerta está cerrada con llave. Puedes cambiar algunos textos que especifiques, en este caso bloqueados al texto abierto. Entonces esa es otra ventaja de estas funciones de cadena. Tienes todas estas formas diferentes de manipular los textos. Entonces aquí vamos. Esto debería decir es que la puerta está cerrada, estoy diciendo cambiado con llave para abrir. Entonces, al presionar la tecla S, la puerta está abierta. Y así ahí lo tienes. Una variable de cadena es una variable que puede contener letras, números o símbolos. Son útiles porque se pueden manipular dinámicamente en tiempo de ejecución. Y una vez más, para encontrar todas esas funciones haz clic derecho y quieres entrar en Utilidades. Camino en la parte inferior aquí, cadena de utilidades y tienes toda una serie de funciones para manipular esas cadenas. Bueno, eso lo va a hacer todo por este chicos, los veremos en el siguiente. 47. TEXTO: Bienvenidos de nuevo a todos. En este video vamos a estar aprendiendo qué es una variable de texto, cómo crear una en cómo se puede utilizar cuando blueprints scripting. Entonces esta es la tercera de esta categoría de variable, es decir, la variable name, la variable string y la variable text. ¿Cuál es la variable de texto y cuándo se debe usar? Bueno, las variables de texto deben usarse para cualquier texto que un usuario pueda ver durante un juego. Textos que puedes ver en un HUD dentro del juego, o tal vez algunos textos que veas en los menús o tal vez en una pantalla de puntuación alta, ese tipo de cosas. Usa este tipo de textos que quieras localizar. Entonces, si buscas traducir tu juego y todo el texto que acompaña a eso al alemán, francés, español, todo ese tipo de cosas. Vas a querer asegurarte de que ese texto esté en el tipo de variable de texto. Ahora bien, las variables de texto son sensibles a mayúsculas y minúsculas, mientras que las variables con nombre no Fueron insensibles a mayúsculas y minúsculas. Las variables fiscales diferencian mayúsculas de minúsculas Bien, vamos a estar haciendo un poco de trabajo dentro de nuestro WB P HUD. Entonces ahí es donde puedes encontrar que creamos eso hace algunos videos. También vamos a estar haciendo un poco de trabajo dentro de nuestro Blueprint de personaje de tercera persona. Así que lo puedes encontrar en la carpeta Blueprints en tercera persona también. Así que abre a esos dos tipos. Voy a empezar en mi W BP HUD. Ahora, tal vez recuerdes cuando hicimos esto hace algún tiempo. Todo lo que hicimos fue crear una caja horizontal. Y dentro de esta caja horizontal, agregamos un widget de texto así como una barra de progreso. Ahora, tengo esta cosa de salud por el momento, pero voy a cambiar esto en el panel Detalles. ¿Simplemente dices el nombre del personaje? Nombre del personaje. Esta es del tipo de variable de textos. De hecho, si pongo el cursor sobre esta bandera aquí mismo, se puede ver que se trata de algunos textos que pueden ser localizados en la que está activada la casilla de verificación. También voy a cambiar el nombre de estos widgets en particular a nombre de personaje o textos de caracteres. ¿Qué tal eso? Estamos hablando de variables de textos aquí. Sólo para que eso sea un poco más claro. Entonces lo que vamos a estar haciendo ahora es E dentro de nuestro terceraPersonCharacter, estoy dispuesto a estar creando una variable de texto. Y le voy a dar el nombre que deseo nombrar a nuestra terceraPersonaPersonaje. Así que voy a subirme por allá. Vamos a crear una asociación aquí en sólo un poquito. Pero súbete a tu terceraPersonaPersonaje. Y vamos a crear una nueva variable. Y vamos a llamar a esto nuestros textos de personajes solo para que quede más claro. Y vamos a cambiar esto a un tipo de variable de texto. vamos a compilar. Y voy a llamar a esto mi superhéroe. Eso suena como un buen nombre. Ahora con esta variable de texto creada, voy a compilar aquí y guardar. Y ahora vamos a asociar esta variable a nuestro HUD W, B P para que podamos leer realmente en estos textos de superhéroes. Así que salta a tu HUD WPP. Selecciona donde dice el nombre del personaje. Y encima en el panel Detalles donde dice el nombre del carácter de texto, necesitamos crear un enlace. Voy a hacer eso haciendo clic en la encuadernación. Crear encuadernación. Y esto nos va a saltar de la pestaña Diseñador a la pestaña gráfica. Eso es justo lo que pasó ahí. La pestaña Designer te lleva de nuevo a este diseño visual. Graph tab es donde se puede crear algún script. Y más específicamente, nos saltó a crear una función completamente nueva. Entonces en este momento nuestra función se llama get character texts. Textos es cero, que es un nombre horrible. Lo que se hace es abrir una nueva pestaña aquí. Y aquí está el nombre de la función que estamos armando. Voy a cambiar el nombre de esto al pasar el rato sobre esto. Y le cambiaremos el nombre. F2 también mentirá para renombrarlo, y voy a llamar a esto obtiene textos de caracteres. Entonces ahora lo que queremos hacer fuera de aquí es muy parecido a lo que hicimos con nuestra salud Get Player. Sólo voy a saltar a esa función muy rápido haciendo doble clic sobre ella. Estábamos obteniendo nuestro personaje de jugador y estábamos lanzando a nuestro terceraPersonCharacter para que pudiéramos obtener esa información variable. Voy a destacar estos dos nodos, haciendo click izquierdo y arrastrando. Voy a hacer Control C. Y luego voy a doble clic en la función de la que acabo de venir. Obtengo textos de personajes. Y entonces aquí dentro voy a hacer Control V para pegarlo. Voy a cablear esto así. Y una vez más, una vez que tengas una referencia a tu terceraPersonpersonaje, puedes extraer alguna información de él, incluyendo cualquier variable que viva dentro de él. Así que creé esa variable dentro de mi personaje en tercera persona aquí llamada textos de caracteres. Así que de vuelta aquí a mi WB P HUD, dentro de esa función, voy a arrastrar aquí y puedo hacer una búsqueda de textos de un personaje. Quiero conseguirlo y mirar el valor de retorno que esta función está buscando. Mencioné que en la pestaña Designer que este widget de texto en particular, estamos vinculando esto a algunos textos reales. Esa es la salida que estamos buscando aquí en nuestra pestaña gráfica. Eso es buscar el valor de retorno de una variable de texto. Entonces vamos a enchufar estos textos justo aquí. Así. Y si compila y guardo y ahora juego, notarás que en la parte superior izquierda, ahora dice superhéroe, el nombre de nuestro personaje como especificamos dentro de esa variable de textos de caracteres. Bien, algo más que quería presumir con una variable de texto aquí es la forma en que puedes formatear algunos textos porque creo que a muchos de ustedes les resultará esto útil también. Ahora para hacer lo que quiero presumir, vamos a saltar de nuevo a nuestro terceraPersonaPersonaje. Y luego volveremos a saltar aquí a nuestro WPP Hudson. No solo cierres esto todavía. Volvamos a nuestro terceraPersonaPersonaje. Así. Vamos a crear un nuevo texto variables. Voy a venir bajo Variables click plus. Y voy a llamar a esta pierna de estado de salud. Entonces voy a cambiar el valor predeterminado del estado de salud para que sea algo tipo de interesante. Entonces vamos a compilar aquí y ver lo que voy a escribir aquí. Déjame ampliar esto un poco. voy a poner tienes, y esto va a ser un hermano rizado, lo siento, corchete rizado, no corchete recto manteniendo presionado el turno, corchete izquierdo, salud. Soporte rizado derecho manteniendo presionado Shift y presionando el botón del soporte, HP restante. Ahora mientras. Ahora bien, por qué he hecho esto es porque con nuestra variable de texto aquí, sí tenemos la capacidad de formatear nuestros textos y cambiar estos contenidos aquí mismo para que se lea esto, le quedan 100 HP, te quedan 50 HP, ese tipo de cosas. Ahora la forma en que podemos hacerlo es a través un nodo de formato textos. Entonces quiero formatear esto. Voy a hacer algunos guiones aquí y luego unirá esto de nuevo a nuestro HUD WPP. Entonces aquí están ThirdPersonCharacter Event Graph. Voy a hacer clic derecho y vamos a probar la tecla nueve. Cualquier tecla de entrada servirá. Nike funcionará bien por ahora. Y me voy a arrastrar fuera de aquí. En realidad, no nos alejemos de aquí todavía. Quiero traer nuestro estado de salud, arrastrar eso y vamos a conseguir eso. Y luego voy a arrastrar fuera de aquí y escribir en formato texto. Bien, entonces las hojas actuales solo tienen un pin, pero aquí vamos a agregar un pin. Y actualmente está etiquetada como cero. Sin embargo, si selecciono este nodo de textos de formato, puedo cambiar aquí arriba el argumento que va a ser este pin de entrada. Para ser a menudo esto se debe deletrear exactamente como tenemos un escrito en nuestro estado de salud. Entonces tengo mayúscula H E, H E a L T H, salud. Así como así. Con tu formato, los nodos de texto seleccionados cambian el argumento ahí para que sea exactamente el mismo, y eso aparecerá como un pin de entrada en este nodo de texto de formato. A continuación, lo que voy a hacer es que voy a tomar nuestra variable de salud aquí, así. Este es actualmente un flotador y enchufarlo aquí abajo. Ahora esto es actualmente gris, lo que significa que puede tomar cualquier cosa. Entonces voy a enchufar una variable flotante, y así dirá: Bien, quieres enchufar a flote, esta ahora será una entrada flotante. Lo cambiará a cualquier tipo de entradas que le pongas así. Y el resultado aquí, voy a promover esto a una variable. Haga clic derecho en promover. Y creó esta nueva variable de texto aquí abajo llamada resultados. Voy a cambiar esto para ayudar a resultado. Creo que eso va a ser un poco más descriptivo. Entonces ahora lo que estamos haciendo aquí es cuando vamos a presionar la tecla nueve, vamos a tomar nuestro estado de salud actual aquí, esta frase, si se quiere, vamos a intercambiar lo que especificamos aquí mismo esta salud y la razón por la que tenemos esta salud exacta entre llaves es exactamente la misma aquí en los argumentos es para que se lea que es la textura que estamos tratando de intercambiar. Y entonces el resultado aquí será el resultado de esta línea con la salud siendo intercambiada por lo que sea este valor flotante. Ahora se dio cuenta de que esto está en forma de punto decimal. Entonces vamos a conseguir un valor aquí, 0-1. Y normalmente querrías leer en 100 salud, ese tipo de cosas. Pero eso va a estar bien para fines de demostración. Voy a compilar este último bit que necesito hacer aquí es que necesito atar este resultados de salud de la noche a la mañana, WB sea HUD. Entonces para hacer esto, voy a volver a subir por aquí. Déjame volver a mi pestaña Diseñador. Voy a arrastrar y soltar rápidamente un widget de texto en algún lugar por ahí. Esto no se pide que sea súper preciso. Esto va a estar pasando el rato aquí. No voy a mostrarlo ni esconderlo ni nada por el estilo. Sólo voy a llamar a esto mi estado de salud. Y actualmente si iba a jugar esto solo nos va a mostrar el estado de salud en la pantalla. Así, estado de salud. Sin embargo, quiero vincular esto a nuestra variable, nuestra variable de estado de salud dentro de nuestro terceraPersonaCarácter. Entonces necesitamos crear este enlace yendo aquí, bind, create binding. Y como nos saltó a la pestaña gráfica, vamos a cambiar el nombre de esta función, golpeando F2 por aquí para obtener el estado de salud así. Vamos a hacer como hicimos con nuestras otras funciones aquí, voy a hacer doble clic sobre esta otra función. Vamos a agarrar estos dos nodos, control C. Saltar de nuevo a nuestra función de estado de salud en la que estamos trabajando, control v . Así. Y ahora que podemos hacer es encontrar dentro de nuestro terceraPersonpersonaje, asegúrate de que has compilado esto. Queremos agarrar esta variable de resultado de salud. No debería cambiar esto a Help Desk, voy a llamar a esta salud buenos resultados de salud. Seamos un poco más precisos. Están arrastrando fuera de nuestro tipo de personaje en tercera persona en resultados de salud. Queremos obtener el resultado de salud, no el estado de salud de los resultados de salud. Hay dos de nombre similar. Y ahora, si tuviera que compilar, guardar, notar que nuestro terceraPersonpersonaje, una vez que presionamos la tecla nueve, eso es lo que vamos a actualizar nuestro resultado de salud aquí. Entonces voy a presionar el botón de reproducción. Y una vez que presione la tecla nueve, le queda un HP. Ahora bien, en algún lugar de esta tercera personaPersonaje, yo estaba decrementando nuestra salud. Bueno, eso fue con los enfermos, los cinco claves, ¿no? Entonces saltando de nuevo aquí. Y estoy presionando la tecla cinco para bajar mi salud. Ahora bien, si presiono la tecla nueve, debería actualizar esto. Ahora tengo 50% de salud, las cinco claves bajando, bajando, bajando. No debería tener 20 por ciento de salud. Entonces voy a presionar la tecla F9. Una vez más, también tienes 20% de salud. Y podría formatear esto para que sea más sensata, pero ya entiende el punto. Y por último, sí hice mencionó que cualquier texto orientado al usuario, ya sea en el HUD o en los menús, ese tipo de cosas que quieres tener localizadas. Debe estar dentro de una variable de texto, ese tipo de textos. Debe estar dentro de una variable de texto si un usuario va a leerla en diferentes idiomas. Ahora bien, ¿cómo vas con todo ese proceso que está mucho más allá del alcance de este video? No obstante, le señalaré este pedacito particular de documentación. En la documentación oficial de Unreal Engine five, puedes venir bajo docs dot Unreal engine.com. Puedes ver la dirección justo aquí arriba. Mucha información sobre cómo conseguir textos localizados con esos chicos. Eso lo hará todo por éste. Te veremos en la siguiente. 48. Vector: Bienvenidos de nuevo a todos. La variable vector es el tema de este video. Entonces aprendamos a crear uno y a utilizar uno dentro de algunos scripts de blueprints. Entonces, en primer lugar, ¿qué es una variable vectorial? Bueno, una variable vectorial es aquella que contiene tres valores flotantes, es decir números con un punto decimal. Por lo general, se utilizan para especificar datos de coordenadas 3D x , y y z. Sin embargo, se pueden usar para contener R, G y B, es decir, datos de color rojo , verde y azul. Bien, para mostrar algunos ejemplos aquí, quiero hacer uso de nuestro Plano de Nivel, pero incluso antes de que saltes ahí, asegurémonos de que tienes un lugar de caja Trigger dentro de tu nivel porque estamos va a estar haciendo uso de eso para mostrar algún uso de variables vectoriales. Entonces, si aún no lo has hecho, entra aquí mismo debajo del panel de actores de lugar, con la pestaña básica seleccionada, puedes encontrar una caja Trigger. Adelante y coloca uno de esos en tu nivel. Y entonces todo lo que hice aquí fue poner mi caja se extiende hasta ser 200, 200, 200, grosor de línea de diez. Y debajo de la sección de renderizado, acabo de apagar actor oculto y juegos para que pueda ver este volumen disparador cuando estoy jugando. Bien, con esta caja de activación seleccionada, luego salta a tu Plano de Nivel. Enseguida. Lo que vamos a hacer es hacer clic derecho. Me has visto hacer esto 1 millón de veces. Ahora. Vamos a agregar en actor comenzar evento de superposición. Queremos que algo suceda cuando superpongamos esta caja Trigger, y queremos que suceda solo cuando el personaje de la tercera persona es el otro actor. Eso nos superpone para arrastrar fuera de ahí escribiendo Cast to ThirdPersonCharacter. Lo primero que quiero hacer aquí es simplemente deformar a otra ubicación. Ahora bien, para determinar en qué ubicación queremos trabajar también, podríamos sostenerla en una variable vectorial. Así que vamos a entrar en nuestra sección de variables. Haga clic en el botón más y llamemos a esto nuestro warp, también locale. Y para cambiar esto a una variable vectorial, una vez más, puedes dar click aquí y configurarla como una variable vectorial. O con eso seleccionado sobre el panel Detalles, también puede cambiar el tipo de variable a un vector. Voy a compilar aquí. Y podemos ver que una vez que lo hacemos, el valor por defecto se establece 00.0 y estos son valores decimales. Estos son tres valores de flotación. Y se puede ver como estoy resaltando sobre estos, estas son las coordenadas x, y, y z típicamente. También puedes hacer clic en esta pequeña flecha hacia abajo para expandirla y mostrar las x, y y z. Lo que voy a hacer aquí es establecer esto para que sea un valor que esté por encima, arriba en el aire, por encima de mi caja de activación. Entonces, lo que esencialmente voy por aquí es que quiero superponer esto. Voy a engendrar aquí mismo. Voy a superponer esto y luego quiero deformar a un lugar que esté justo encima de él con la idea de que voy a caer en algún lugar cercano a él. Y entonces puedo repetirlo una y otra vez. Entonces voy a copiar la ubicación de este cuadro Trigger con este seleccionado sobre en el panel Detalles, voy a hacer clic derecho derecho por aquí y copiar estas coordenadas. Entonces voy a saltar de nuevo a mi mapa de pruebas de nivel, Plano de nivel, pasar bajo mi urdimbre a locale. Y aquí mismo voy a hacer clic derecho y pegarlo para pegarlo en esos mismos valores. Sin embargo, quiero establecer mi valor z para que sea mayor para que no me vuelva a deformar en la misma caja. Entonces voy a establecer mi valor z aquí para que sea 2000. Sepa que dependiendo de dónde coloque su caja de activación, sus valores aquí serán diferentes. Solo necesitas saber que tu x e y pueden decir lo mismo que tu caja de gatillo. La Z que vas a querer establecer sea un número mayor para que termines deformándote por encima de los límites de esa caja. Ahora lo que queremos hacer aquí es cuando superponemos esta caja con un personaje en tercera persona, queremos arrastrar fuera de nuestro personaje de tercera persona y escribir la ubicación del actor de inserción. Este es un nodo de función que puede mover tu objetivo. En este caso, nuestro personaje en tercera persona a una nueva ubicación. Y qué sabes que estamos almacenando esa ubicación dentro de esta variable vectorial. Así puedo hacer clic izquierdo y arrastrar y soltar esto justo encima de nuestra nueva ubicación. Y voy a compilar esto para asegurarme de que nuestro guión se vea bien aquí y lo está, vamos a guardarlo, y sigamos a jugar. Entonces, una vez que superponga esto, debería deformar a una ubicación que esté por encima de ella en alguna parte. Aquí vamos. Ahí vamos. Se ve que simplemente sigo cayendo a través de él una y otra y otra vez. Déjame tratar de alejarme de ahí. Bucle infinito. Pero entiendes la idea. Ahora puedes ver cómo podrías expandir este script aquí mismo en un efecto de sonido, tal vez un efecto de partículas más pequeñas en la ubicación de donde solaparemos ese cuadro de activación y en el warp a locale. Pero la ubicación de la caja Trigger, que es un ejemplo de uso de una variable vectorial. Ahora hagamos un uso más de una variable vectorial y utilicémosla para especificar un color. Para ello, voy a hacer click izquierdo sobre este warp para configurar el Control D para duplicarlo. Duplicará esa variable y sólo voy a llamar a este nuevo color. Simplemente voy a agregar una clave de entrada aquí. Vamos a probar el, no sé la llave nueve y ver si eso está disponible. El nueve clave, Claro, Cualquier evento de entrada servirá. Y voy a arrastrar esto y escribir cadena de impresión. Y va a imprimir el texto Hola. No obstante, si explico esto hacia abajo, puedo especificar un color de texto. Ahora bien, si coloco el cursor sobre este pin de entrada, dice que este tipo de variable es una estructura de color lineal. Ese es el tipo de variable que busca. Y podemos crear uno de esos haciendo clic derecho sobre él y promocionando a una variable. Pero la idea aquí es que quiero mostrar cómo se podría usar una variable vectorial para especificar un color. Ahora bien, si selecciono mi nueva variable de color aquí y la compilo para poder agregar un valor aquí. Es copiar los datos que vinieron de mi warp a locale. Así que permítanme poner esto de nuevo a 00.0. Ahora bien, si estás usando una variable vectorial para especificar un color RGB, necesitas saber que estos valores se ejecutarían esencialmente de 0.0 a 1.0. Básicamente estás especificando qué porcentaje de rojo o porcentaje quieres de verde y qué porcentaje quieres un azul. Voy a establecer mi nuevo color aquí para que sea 1.0 para el valor r, el b y el g, voy a dejar como cero. Así que esencialmente estoy diciendo que me den 100% rojo, no verde, y no azul. Ahora si trato de arrastrar y soltar esto encima de mi texto el color es porque ellos no, no pueden hacerlo. Sin embargo, si lo arrastro y lo suelto, lo entiendo. Y luego arrastro esto a la entrada de color del texto. Va a convertir mi vector a un tipo de estructura de color lineal. Ahora al hacer esto, puedo compilar, guardar, asegurarme de que mi guión sea bueno para comenzar. Sigamos adelante y jugemos. Ahora cuando presione la tecla nueve, verá que el texto Hola aparece en rojo y eso está siendo impulsado por mi variable vectorial donde estoy usando eso para especificar un valor de color R, G y B. Y ahí lo tienes. usos comunes de las variables vectoriales incluyen su uso para los puntos de generación o respuesta, o tal vez para los puntos de inicio y finalización de una plataforma móvil. Y lo exploraremos más adelante cuando hagamos una lección sobre cómo hacer uso de nodos de línea de tiempo dentro de los scripts de blueprints. Chicos, eso lo hará todo por éste. Nos vemos en la siguiente. 49. Rotador: Bienvenidos de nuevo a todos. La variable rotador es la estrella de este video. Entonces aprendamos cómo crear uno y cómo se puede utilizar dentro de un script de blueprint. En primer lugar, ¿qué es un rotador? Bueno, rotador es una variable que contiene información rotacional. Ahora, los objetos se pueden rotar alrededor de tres ejes diferentes, el x, el y y el z. Y esto puede informar cuánto queremos que se rote un objeto dado, almacenándolo dentro de estas variables rotadoras. Ahora antes de llegar a alguna de esas cosas, solo quiero señalar aquí con cualquier objeto seleccionado en tu nivel sobre cómo gira la rotación alrededor de un eje dado. Entonces ahora mismo puedes ver que tengo mi disparador Volumen seleccionado aquí, mi cuadro de activación, y actualmente estoy dentro de mi modo de movimiento, indicado por eso para widget con flecha. Ahora bien, si tuviera que cambiar esto al modo de rotación, podemos ver como si giramos alrededor del eje x son flecha roja aquí. Eso implica moverse así. Se mueve alrededor de ese eje. De igual manera, observe nuestro eje aquí apuntado en esta dirección. Si tuviéramos que cambiar esto a rotación, lo estaremos moviendo alrededor de ese eje. De igual manera, si tenemos nuestro eje z aquí apuntando hacia arriba y hacia abajo, si estamos rotando alrededor de ese eje, esencialmente lo estamos moviendo así. Girándolo así. Necesito ser gramaticalmente correcto. Muy bien, con eso, también hice un cambio más entre videos en que creé una carpeta completamente nueva aquí y nuestra carpeta de scripting simplemente hice clic derecho, creé una nueva carpeta y la llamé actor. Bp's. Lo que hice aquí es que moví todos mis planos que estaban en mi carpeta de resumen. Simplemente los arrastro y suelto, hago clic con el botón izquierdo y los arrastro dentro de la carpeta de mi nuevo actor BP. Porque eso simplemente parecía un nombre más descriptivo. Carpeta de visión general. Es como que sobrevivió su vida útil. Entonces voy a crear un nuevo plano aquí dentro de las carpetas de mis nuevos actores BP. Al hacer clic con el botón derecho, vamos a crear una nueva clase de blueprint. Este será un plano de clase actor. Así que elige actor. Y voy a nombrar a este BP subrayado puerta giratoria. Vamos a estar creando algunas variables rotadoras dentro de este plano. En primer lugar, sigamos adelante y doble clic sobre esto para abrirlo. Y no quiero agregar un par de componentes. Entonces el primer componente que voy a agregar entrando bajo mi sección de componentes, va a ser una caja, caja, caja caja. Déjame solo hacer una búsqueda de caja. Ahí está. Colisión de Caja. Y con eso seleccionado, sí tengo algunos detalles que quiero establecer para esto en el panel Detalles. Quiero establecer la ubicación para que sea negativa 45 y la ubicación z para que sea 110. Verás por qué aquí en un poquito. Vamos un poco en el aire así. Además, voy a cambiar la extensión de la caja para que sea 170 en la x, 60, en la y, en 110, en la z. Así que es un poco alta, algo así. Bien, con eso hecho, vamos a agregar un componente de malla estática. Voy a añadir esto. Estamos buscando una malla estática. Y actualmente esta Malla Estática está unida a nuestra caja. Lo arreglaremos en un poquito. Voy a llamar a esto mi malla de puerta. Bien, con esto seleccionado en el panel Detalles, quiero establecer nuestra malla estática para que sea, haga clic en este pequeño desplegable, puerta de subrayado S M. Ahora bien, este es un activo que vive en la carpeta de indicaciones de contenido de inicio. Honestamente, puedes usar cualquier tipo de puerta como malla, pero esta funciona bien. Entonces sigamos adelante y usémoslo. Nota al margen aquí, esta malla no tiene ninguna colisión en ella. Sé que puedes simplemente atravesarlo, pero va a estar bien por mostrar la rotación de una malla de puerta. Sigamos adelante y coloquemos eso. Ahora, mencioné que esto está actualmente adjunto a nuestra caja. Solo voy a arrastrar y soltar esto encima de nuestra caja para que sea así que no esté adjunto. No debería ser un gran problema, sino solo para jugar conmigo en casa. ¿Bien? El siguiente que vamos a hacer es vamos a crear un par de variables. Entonces en la sección Mi Blueprint, debajo de la sección de variables y haga clic en el botón más. Vamos a llamar a este primero, el inicio ubicado, iniciar rotación, no rotación de ubicación. Vamos a cambiar el tipo aquí para que sea rotador. Entonces voy a seleccionar esto una vez más y hacer Control y D para duplicarlo. Esto va a ser arte y rotación. Entonces con eso, vamos a compilar para que podamos establecer algunos valores aquí, están comenzando la rotación, asegúrate de seleccionar eso. Queremos que sea 00.0. Después sigue adelante y selecciona tu rotación final. Solo queremos que nuestro y la rotación a lo largo del eje z sea 90. Entonces, ya sabes, si abres una puerta a 90 grados, esencialmente vas a empezar con ella, como si esto fuera a vista de pájaro. Y entonces el final va a ser un poco así, ¿verdad? Sólo lo va a abrir . Balanza esto de aquí hacia arriba así con mi ratón. Eso es lindo, señor Waldroup. Bien, a continuación, sigamos adelante y hagamos un poco de scripting en nuestro gráfico de eventos. Entonces tenemos algunos nodos de eventos aquí por defecto, podemos hacer clic izquierdo en arrastrar, deshacernos de estos. Y ahora queremos que algo suceda cuando empecemos a superponer esa caja. Y luego cuando terminemos superponiendo esa caja, y esa es esta caja de aquí, salté a mi pestaña de ventana gráfica. Entonces volvamos a mi gráfico de eventos. Voy a hacer clic derecho en mi componente de caja. Vamos a agregar un evento para cuando empecemos a superponerlo. Y luego volvamos a hacer clic derecho sobre él en el evento para la superposición final. Ahora queremos especificar que es el personaje jugador el que nos está superponiendo. Ahora, podría lanzar a mi terceraPersonaPersonaje. Sin embargo, hay otra manera en la que puedo hacer esto. Entonces me gustaría presumir diferentes técnicas. Voy a teclear con el botón derecho en obtener el personaje del jugador. Y lo que voy a hacer aquí es comprobar para ver si el otro actor es igual a. Sólo voy a escribir el símbolo igual. Si eso es igual a mi personaje de jugador. Si son iguales, voy a mantener presionada la tecla B y traer así un nodo de rama. Otro actor es igual a mi personaje de jugador. Lo que quiero hacer es girar la puerta abierta. Ahora para hacer esto, vamos a estar haciendo uso de un nodo de línea de tiempo. Ahora tengo un video completo más adelante en el curso que va a estar dedicado a esto. Así que vamos a estar saltando un poco el arma aquí. Este video no se trata de crear una línea de tiempo. Entonces, si ni siquiera entiendes completamente lo que está pasando aquí, solo tengan paciencia conmigo. A pesar de que voy a hacer todo lo posible para explicarlo lo más rápido posible, haga clic con el botón derecho y algo de espacio vacío y haga una búsqueda un nodo de línea de tiempo. Una vez que escribas la palabra línea de tiempo, se pesará el fondo aquí para agregar una línea de tiempo. Y este es un nodo muy especial. Y una de las cosas que te va a permitir hacer es darle un nombre. Voy a llamar a esto mi rotación de puertas. Se puede ver que tiene muchos pines de entrada, muchos pines de entrada de ejecución donde podemos jugarlo. Podemos detenernos en este nodo, se puede hacer doble clic para especificar una animación de esta es una línea de tiempo. Vamos a estar animando nuestra puerta a través de una línea de tiempo determinada. Si hacemos doble clic sobre esto, podemos agregar una línea de tiempo a nuestra ventana aquí, así que simplemente hice doble clic en ella. Tenemos nuestro nodo de línea de tiempo de rotación de puertas justo arriba en la parte superior aquí. Queremos agregar una pista. Queremos agregar específicamente unas pistas de flotación. Si voy a la pista justo aquí, haga clic en el botón Más. Queremos agregar una pista de flotación. Una pista flotante nos permite cambiar una variable flotante a lo largo del tiempo. Así que vamos a agregar una pista de flotación. Podemos renombrar esta pista y voy a llamar a esta rotación. Ahora lo que quiero hacer es que quería especificar algunos puntos en el tiempo. Entonces, la forma en que puedo agregar un punto a esta gráfica es haciendo clic derecho y agregando una clave. Esa es una forma de agregarlo. Y con este primer punto, agregó este primer fotograma clave, como se le llama, voy a especificar un tiempo de cero. Un valor de cero. Golpea Enter. Y eso va a colocarlo aquí mismo en mi pista. A continuación, voy a hacer clic de nuevo con el botón derecho en otra tecla. Esa es una forma en que podría hacerlo, o puedo mantener presionada la tecla Mayús y hacer clic con el botón izquierdo. Esa es otra forma de agregar una clave. Voy a seleccionar esta clave. Y voy a establecer el tiempo en uno, es decir, 1 s, y el valor en uno. Ahora lo va a saltar de la parte superior de la pantalla aquí. Pero si haces clic en estas flechas, puedes enmarcarlo así. Ahora también quiero cambiar la longitud de mi pista aquí para que actualmente sea de 1 s lugar de 5 s. Eso es esencialmente especificar cuánto tiempo quiero que sea esta pista. Quiero que esto sea tan largo como mi último fotograma clave aquí, quiero que esto sea 1 s. Entonces, lo que esencialmente voy a hacer aquí es que voy a cambiar el valor de una variable flotante llamada rotación de cero, un valor de cero a 0 s a un valor de uno 1 s después va a ser lentamente, cambiando gradualmente ese 0-1 en el transcurso de 1 s. Ahora bien, esta rotación flotante variable, si salto de nuevo a mi evento grafica aquí, fíjate que esto se llama rotación. Ahora puedes ver que mi línea de tiempo de rotación de puerta tiene una salida, y esta salida es un valor flotante. Va a dar salida a este valor flotante. Y nuevamente, si vuelvo a entrar en esta línea de tiempo haciendo doble clic sobre ella, haciendo doble clic sobre ella. Voy a estar cambiando el valor de ese 0-1 gradualmente a lo largo de 1 s. Ahora bien, esto es útil porque podemos usar esto para impulsar algo llamado loop. Entonces, si hago clic derecho y algún espacio vacío, puedo hacer una búsqueda de un nodo llamado rotador. Ahora esto va a ser confuso al principio, pero voy a describir cómo funciona esto. El nodo de alerta nos permite pasar de un valor a otro en un periodo de tiempo determinado. Y de hecho, si giramos o si pasamos el mouse sobre la parte superior de este nodo, dice que vamos a interpolar linealmente entre a y b en base al valor Alfa que le proporcionamos. Entonces va a funcionar así. Una rotación va a ir 0-1. Ese es el valor. Va a ir entre 0-1 en el transcurso de 1 s. Cuando Alfa es cero, va a leer en el valor de este nodo están comenzando la rotación. Tenga en cuenta que nuestra rotación inicial es básicamente 00.0. Ahora, como nuestro valor de rotación aquí va 0-1, poco a poco vamos a estar moviéndonos de nuestro valor a, nuestro valor b. Entonces como nuestra rotación aquí va así, 0-1 sobre 1 s, va a estar continuamente alejándose a a B sobre 1 s de 01 va a movernos de a a b Así que nuestra rotación final va a especificar nuestra rotación final. Estamos empezando en esta rotación. Estamos terminando en esta rotación. Ahora bien, todo esto está bien, pero el valor de retorno aquí necesita ser enchufado a la función de rotación relativa establecida. O vamos a estar haciendo aquí es decir, oye malla de puerta, ese es el componente que queremos rotar, arrastrar y soltar eso en nuestra gráfica. Entonces arrastra fuera de esto. Queremos establecer su rotación relativa. Eso es cambiar tu rotación con respecto a donde desde donde empezaste. Entonces nuestra configuración final va a verse así. Pasemos por esto para entender esto un poco más a fondo. Ahora al superponer ese volumen disparador, vamos a averiguar si es el personaje jugador el que fue el factor general, el otro actor que nos solapó. Si eso es cierto, vamos a jugar, jugar esta línea de tiempo. Va a ir 0-1, un valor de rotación si valor flotante por encima de 1 s. Y como está haciendo esto, cambiando el valor de esta variable 0-1, vamos a ir de nuestra rotación inicial a nuestra rotación final en el transcurso de 1 s. Eso es lo que está haciendo esto. Y el regreso de esto pasando de la a a la B va a estar diciéndole a nuestra malla de puerta que rote sobre ese segundo. Sigamos adelante y danos una tribu. Ni siquiera nos preocuparemos por nuestro solapamiento final por ahora. Pero para hacer esto, necesitamos arrastrar y soltar esto a nuestro nivel. Vamos a arrastrar y soltar esto en nuestro nivel. Lo colocaré justo por aquí. Vamos a seguir adelante y hacer clic en Reproducir. ¿Y sabes qué? Para hacer esto, debo asegurarme de que estamos haciendo esto en una nueva ventana del editor así. Y además, voy a hacer esto desde dentro de nuestro, nuestro plano aquí para que puedan ver el guión en el trabajo. Así que déjame meter un poco de esta manera hasta aquí. Vamos a hacer clic en play aquí. Tenemos nuestra configuración de depuración para una puerta giratoria. Tráelo en nuestra ventana de reproducción aquí. Y a medida que me superpongo esto, se puede ver que lo giró 90 grados. Ahora, como pueden ver, una vez me alejo de ese volumen disparador, no lo hace retroceder ni nada por el estilo. Y ya se fijó la rotación de esto para que sea abierta. Entonces está abierto. Ahora quiero hacer esto cerca. Solo necesitamos aprovechar una configuración similar como la que tenemos aquí. Entonces lo que voy a hacer es que voy a arrastrar un aquí. Escriba el signo igual. Una vez más, vamos a averiguar si otro actor es igual a nuestro personaje jugador. Una vez más, vamos a copiar nuestro control de sucursal C, control V. Y si esto es cierto que el otro actor terminó nuestro solapamiento, si eso es cierto, vamos a revertir esta línea de tiempo. Vamos a revertir la rotación de esa puerta. Entonces vamos a compilar esto. Guardar en juego. Voy a llevarte esto por aquí para que veas el guión disparándose. Bien, Así se juega la línea de tiempo. Entonces terminemos con nuestro solapamiento. Esté atento a que se dispare el guión. Sésamo Abierto. Bajo, así como así. Y así ahí lo tienes. En este video, utilizamos la variable rotador para especificar una ubicación inicial para nuestra malla de puerta, así como una rotación final para nuestra malla de puerta. Es tan sencillo como esos chicos que lo harán todo por este video. Nos vemos en la siguiente. 50. Transformar: Bienvenidos de nuevo a todos. La variable transform es la que estamos tratando en este video, vamos a mostrar cómo crear una y cómo se puede utilizar cuando blueprint scripting. Ahora un excelente uso de la variable transform es cuando estás especificando un punto dentro un nivel al que tal vez quieras responder. Ahora, la variable de transformación es una variable que contiene datos de ubicación, rotación y escala. De hecho, si miras por encima en el panel derecho, en el panel Detalles para cualquier actor que hayas seleccionado dentro de tu nivel, puedes ver alguna información de transformación al respecto. De hecho, si selecciono a mi jugador inicio actor aquí, se puede ver la ubicación especificada, la rotación de la misma, y la escala. Entonces esta esencialmente es una variable que consta de nueve valores flotantes, tres cada uno en la ubicación, rotación y escala nueve totales. Ahora, en aras del tiempo, configuré un montón de cosas antes de filmar este video. Entonces déjame mostrarte lo que he hecho y te guiaré a través de esto paso a paso. Para empezar aquí tengo a mi jugador comienzo actor ubicado justo ahí. Al igual que con muchos otros videos, tengo un cuadro disparador agregado a mi nivel. Y siempre y cuando tengas a tu jugador, tu panel de actores de lugar disponible, que puedes traer ahí mismo. Puedes agarrar una caja Trigger ahí mismo. Y luego también tengo tres actores de punto objetivo, 12.3. Y puedes encontrar a estos chicos si buscas en el panel de actores de lugar y solo buscas target, encontrarás un actor de target point. Estos son esencialmente excelentes para especificar un punto en el espacio. Estos iconos no se mostrarán mientras estés jugando. Sin embargo, cuando los seleccionas, puedes ver su ubicación. Utilice su ubicación o sus datos de rotación también. Y me gusta utilizarlos para esos fines. Ahora, saltando a nuestro plano de nivel, déjame mostrarte el guión que he elaborado aquí. Así que vamos a verificar bajo nuestro Plan de Nivel, comenzando con nuestro establecimiento de puntos de generación aleatorios. Entonces todo este video, vamos a estar haciendo uso de una variable transformada. Entonces, lo que quieres hacer aquí se acabó en el panel Mi Blueprint debajo de la sección de variables, haz clic en el botón más y crea una variable completamente nueva. Debería ser de la variedad transformadora ahí mismo, y yo lo llamo responder punto. Ahora bien, si lo compilas, vas a encontrar que tus valores predeterminados son ceros, ceros, ceros, y la escala es 111, esencialmente los valores predeterminados verdaderos. Ahora lo que vamos a hacer aquí es al comenzar a jugar, al comenzar nuestra jugada, puedes encontrar esto haciendo clic derecho y haciendo una búsqueda de Event Begin Play. Queremos establecer nuestro punto de respuesta, es decir, poblarlo con algunos datos porque no queremos mantener la ubicación y la rotación, todo esto un poco de cosas en ceros, ceros, cero. Entonces, ¿qué vamos a poner este valor a eso otra vez, las variables, el contenido del mismo se puede cambiar, se pueden establecer. Entonces, lo que hice aquí, agarré una referencia a los tres puntos objetivo. Ahora nombro estos puntos objetivo, objetivo 0.0, objetivo 0.1 y punto objetivo a. Y entonces lo que puedes traer en referencias a estos está de vuelta en tu nivel. Puedes seleccionarlo y luego uno por uno con él seleccionado, puedes mantener presionada la tecla R y hacer clic izquierdo, así. Divertido más complicado. Si yo fuera a seleccionar los tres puntos objetivo allí, están todos seleccionados y luego golpear el RT y hacer clic con el botón izquierdo, puedo traer referencias a los tres de inmediato. Buen truco. A mí me gusta mucho esa. Entonces lo que hice es que arrastré en cada uno de estos. Y dije, dame que los actores se transformen. Estoy diciendo, dame, dame estos datos justo por aquí para cada uno de estos puntos objetivo dados. Entonces lo que hice fue que me fui de aquí y escribí make array. Entonces, esencialmente, estoy creando una lista de diferentes transformaciones, diferentes datos de transformación desde el objetivo 0.0, punto objetivo y el objetivo 0.2. Entonces tengo una lista de tres posibles transformaciones. Lo que hice entonces es que me drogué de aquí y escribí se pone y quería conseguir una referencia, ese tipo de ahí mismo. Y luego me arrastro fuera de esto hacia atrás y escribí entero aleatorio en rango, estoy diciendo dame una de estas transformaciones de esta lista y hazla 0-2. Es posible que deba ajustar estos números dependiendo cuántos puntos de destino diferentes haya conectado a esta matriz. Entonces estoy diciendo que me den 01 o dos, Ese es mi rango, cero a dos. Y la salida de esto, voy a establecer como mi punto de respuesta. Entonces va a estar cambiando al comenzar la jugada. Vamos a actualizar nuestros puntos de respuesta a una ubicación determinada. Uno de estos tres, va a escoger al azar. Ahora eso es solo establecer estos puntos de respuesta, esta variable de transformación, pero en realidad no hemos conseguido y hecho uso de esta Transformación de punto de respuesta. Entonces abajo, tengo un guión adicional. Y debería ser de la siguiente manera. Lo que hice aquí es al comenzar superponer ese cuadro de activación y una vez más, con ese cuadro de activación seleccionado nuevo en su plano de nivel, puede hacer clic derecho en un evento para eso y hacer en un actor comienzan solapamiento. Podemos arrastrar aquí y luego hacer un casting a nuestro terceraPersonaPersonaje. Queremos hacer algo cuando nuestro terceraPersonCharacter se superpone a ese cuadro de activación. Y lo que estamos haciendo aquí es que estamos haciendo un par de cosas y ahí es donde entra un nodo de secuencia , donde secuenciaron al otro. Podemos decir hacer esto, luego hacer esto. Y en realidad podemos agregar cosas adicionales si hacemos clic en este botón más aquí abajo. Pero es esencialmente una forma agradable y ordenada de decir hacer esto, luego esto, luego cualquier cosa que venga después de eso. Entonces, lo primero que queremos hacer después nuestro tercer personaje se superponga es Trigger box es que queremos destruir a nuestro personaje jugador actual, nuestro personaje de tercera persona actual. Queríamos destruirlo. Entonces lo que vamos a hacer inmediatamente después es engendrar a un actor de clase. Ahora bien, tenga en cuenta que este es un actor spawn del nodo de clase. Sin embargo, una vez que pobles la clase a nuestro terceraPersonCharacter, va a actualizar el nombre aquí, pero este es un actor spawn del nodo class. Ahora lo que necesitas hacer aquí es que necesitas especificar una transformación de spawn. Y aquí es donde estamos haciendo uso de nuestra variable de transformación que creamos y estamos poblando, estamos de vuelta aquí cuando comenzamos a jugar. Sin esto. Si compilas, arrojará un error y me dejaré hacer esto en realidad. Voy a romper esto, manteniendo pulsada la tecla Alt y dando click izquierdo. Entonces, si tuviera que compilar, va a decir, Oye, necesitas tener una transformación de spawn enchufada para que podamos seguir adelante y enchufar eso. Y entonces lo que estamos haciendo fuera de aquí es clic derecho en algún tipo de espacio vacío en get player controller. Y fuera de esto, y debe estar fuera de esto. Si arrastras fuera de esto porque el objetivo es un controlador, puedes buscar este nodo de posesión. Al poseer, arrastrando fuera de allí y agarrando un nodo poseedor, puedes elegir un peón para poseer. Aquí estamos generando un nuevo ThirdPersonCharacter. Aquí estamos diciendo, Oye, queremos engendrar o queremos poseer ese personaje de tercera persona con nuestro controlador de jugador. Hablaremos más sobre el controlador del jugador más adelante en el curso. Sigamos adelante y compilemos aquí. Y este es nuestro guión para destruir al jugador y luego responder a otro, terminar poseerlo. Entonces eso está todo enmarcado aquí. Si quieres pausar el video aquí y echar un buen vistazo a eso, ahí tienes. Bien, sigamos adelante y volvamos a jugar. Y veamos esto en acción. Esto va a ser un poco pequeño aquí. Pero ojalá pueda ver algunos de estos cables disparándose. Sigamos adelante y juguemos. Y ya hemos establecido un punto de respuesta. Déjame seguir adelante y establecer mi objeto de depuración ahí a mi nivel. Ahora, una vez que superponga esa caja de gatillo, vas a vernos destruyendo al actor. Y luego inmediatamente después de engendrar un nuevo personaje de tercera persona y poseerlo. Aquí vamos. Y muestra ese punto más allá de detrás del nivel. Y actualmente está eligiendo esa misma otra vez, otra vez, porque solo al comenzar el juego estamos estableciendo nuestra variable de transformación a uno de estos tres puntos objetivo. No obstante, si tuvieras que hacer algo como esto, arrastra fuera de aquí, arrastra de nuevo hasta aquí. Cada vez que superpongo ese cuadro de activación y estoy reiniciando, estoy eligiendo al azar uno de estos tres puntos objetivo en los que quiero establecer mi variable de respuesta para que sea. Entonces probemos eso. Así que se superponen. Yo engendro detrás de él. Volvamos a encontrarnos con él. Fuera a la izquierda, esa vez atrás. Nuevamente, esto es elegirlo al azar. Hay algo más con lo que quiero presumir aquí. La variable de transformación es que realmente puede extraer esos datos únicos de ubicación, rotación y escala. Ahora bien, esta variable de transformación contiene todos estos datos. Pero si quisieras extraer solo una parte de esos datos, podrías. Y la forma en que podrías hacerlo es arrastrando fuera de este pin aquí mismo y escribiendo divisiones. Déjame romper este cable de aquí. Más bien haciendo clic derecho sobre él y las cosas dividieron el Pin Struct. Perdón por eso. Aquí podemos dividir nuestros puntos de respuesta transformados en la ubicación, la rotación y los datos de escala. Y como puede ver, una variable transformada consiste esencialmente en datos vectoriales, datos rotadores y datos vectoriales. Del mismo modo, de esta transformación de spawn aquí en nuestro actor spawn de nodo de clase, podría hacer clic derecho sobre esto y dividir este pin está bien en los datos de ubicación, rotación y escala. Si no te gusta este nivel de granularidad, puedes hacer clic derecho sobre estos pines y recombinarlo nuevo en una sola transformación singular. pin recombinado y golpeado es lo que se llama. Así que solo pensé que tiraría eso por ahí también. Entonces ahí lo tienes. Una transformación, una calificación variable para algo así como especificar un punto de respuesta. Eso va a hacer para ofrecer este chicos, vemos en el siguiente. 51. Actor (Object): Bienvenida. En este video, nuestro objetivo es aprender qué es un actor, una variable, cómo crear una y cómo se puede utilizar al programar blueprint. Ahora divulgación completa aquí, este video va a ser en gran medida una revisión de nuestra clase BP runtime object references video que hicimos anteriormente en el curso. Ahora bien, si entro y juego aquí, esto va a servir como un pequeño recordatorio. Cuando presionamos la tecla de flecha, esto es lo que escribimos en ese video. Cuando presionamos una tecla cero, estábamos enviando una línea trazada al mundo así. Y cuando un objeto oculto en la parte superior izquierda, se muestra el nombre de esa cosa que estamos golpeando. Y una vez que establecemos una variable a ese actor, entonces podremos presionar la tecla nueve para que desaparezca. Ahora al hacerlo, mientras estábamos haciendo es establecer una variable de actor cada vez que nuestro rastreo de línea detectó un acierto. Ahora volvamos a nuestro bp thirdPersonCharacter ubicado en nuestra carpeta Blueprints en tercera persona y veamos los scripts que armamos allí. Entonces lo que estamos haciendo aquí es al presionar alguna tecla de entrada, estaba usando la tecla de flecha. Estábamos enviando un rastreo de línea comenzando en ubicación de nuestros actores y terminando en nuestro punto final de rastreo de línea, que era una variable que habíamos creado en nuestra sección de componentes aquí. Está en nuestra ventana gráfica justo por aquí. Este es un componente de error que también aparece como una variable bajo el punto final de seguimiento de línea de componentes. Eso es lo que denominamos a ese componente de flecha. Entonces estás iniciando un rastreo de línea en la ubicación de nuestros actores. Lo estamos terminando con esa flecha. Y estamos enviando eso, esa línea traza hacia el mundo a lo largo del canal de Visibilidad. También tenemos este tipo Draw Debug establecido en cuatro duraciones. Para que podamos ver ese trazo de línea. Y si detectamos que le pegamos a algo, si esto efectivamente le pegó a algo, ese valor de retorno resulta ser cierto. Vamos a tocar un sonido. Y entonces también vamos a romper los golpes aquí. Eso es lo que está haciendo todo esto. Nos arrastramos fuera de aquí y estamos rompiendo los golpes. Y estábamos averiguando qué es lo que pegamos. Y estamos configurando eso dentro de un tipo de variable actor. Ahora, podríamos crear esto ya sea haciendo clic con el botón derecho sobre aquí y eligiendo promueve dos variables en ese menú contextual. O la forma en que puedes crear una variable actor ha terminado en la sección de variables, podrías hacer clic en el botón más y simplemente escribir actor var. Y entonces aquí lo está poniendo a actor enseguida porque esa es la última variable que dije. Pero podrías hacer una búsqueda de actor. Y en los tipos de objeto querrías elegir la referencia de objeto actor. Ahora hablemos de lo que son las referencias de objeto válidas. Bueno, los objetos de ejemplo podrían incluir luces, podría incluir mallas estáticas, cámaras, señales de sonido u otros actores de planos. Aquí solo estamos detectando lo que golpeamos y configurando eso como nuestro actor. Realmente no importa si se trata una silla de malla estática versus lo que sea que sea esta cosa. Sea lo que sea esa malla, realmente no importa. Cualquiera que sea nuestro rastro de línea está chocando con. Va a establecer eso como nuestra variable de actor. Entonces sólo estamos imprimiendo el nombre de eso en la pantalla. Ahora bien, la razón por la que estábamos almacenando esto dentro de las variables de un actor porque una vez que nuestro rastro de línea golpea algo y nos pone, queremos que pueda destruirlo. Y eso es lo que hacía este guión aquí abajo. Al presionar la tecla nueve, entonces nos estábamos enterando, oye, ¿cuál es el contenido de esta variable Hit Actor, esta variable de actor? Si eso es válido, es decir, hay algo en él. Si eso es válido, queremos destruirlo. Por lo que el contenido de este Hit Actor podría cambiar. Déjame ir y demostrar que estoy haciendo clic en jugar aquí. Y de nuevo voy a presionar el, déjame simplemente establecer mi objeto de depuración. Aquí está mi b, mi terceraPersonaPersonaje. Trae de nuevo a mi personaje. Entonces voy a enviar esa línea trazada al mundo presionando la tecla V cero. Y luego en la parte superior izquierda aquí vas a ver el nombre de la cosa que estoy pegando. Clave cero. No estoy lo suficientemente cerca. Hay que acercarme un poco más. Ahí vamos. Stat, vista previa, malla, sea lo que sea. Entonces, si le pego a la Nike, eso obviamente va a desaparecer. Pero si me dijera que repita ese escenario y un poco haga lo mismo, voy a empezar golpeando la tecla cero aquí está configurando eso. No obstante, puedo restablecer el contenido ahí viniendo a esta silla presionando la tecla cero. Entonces ahora si eso es lo que se establece como mi hit actor aquí. Entonces ahora si presiono el Nike, no va a destruir esto. Va a destruir mi silla porque ese fue el más reciente set Hit Actor. Aquí está la Nike, boom By Chair. Ahora, sólo para presumir que esta variable actor no tiene que ser una malla estática. Podría ser algo así como una luz. Voy a establecer esto a partir de otro plano. Y también solo para presumir que puedes establecer esto desde otro Blueprint. Así que voy a volver a mi nivel aquí, y voy a colocar una luz en mi nivel. Podrías colocar cuando estés en tu lugar, panel de actores. Aquí es donde puedes encontrar las luces. O alternativamente puedes venir debajo aquí y luego las luces florecen. Se puede agregar una luz por este medio punto de luz va a hacer. Vamos a arrastrar y soltar uno de estos en nuestro nivel. Yo sólo voy a hacer esta suma de colores nocivos como el rosa. Y entonces lo que voy a hacer es saltar a mi Plano de Nivel, abrir Plano de Nivel. Y vamos a decir eso cuando presione alguna tecla dentro de aquí, y veamos qué tipo de teclas tienen disponibles aquí. Solo he usado la llave cerca, así que usemos las dos claves, ¿verdad? Estoy en mi gráfico de eventos aquí mismo, vamos a teclear con el botón derecho en la tecla dos. Vamos a hacer una búsqueda de teclado. Así es como puedes encontrar estos eventos de teclado muy fácilmente. Golpea las dos teclas. Y al hacer eso, vamos a hacer clic derecho obtiene personaje jugador. Entonces si arrastramos fuera de esto, podemos pasar a nuestro terceraPersonaPersonaje. Otra vez. Una vez que tengas acceso a tu terceraPersonaPersonaje. Y si, me doy cuenta que tengo una referencia de personaje almacenada por aquí a la izquierda. mí también me vendría bien eso. Pero una vez que tengo eso, puedo arrastrar fuera de aquí y puedo encontrar este Hit Actor variables siempre y cuando eso haya sido creado y haya compilado. Entonces nuevamente, estamos tratando de extraer este actor o una variable y establecerlo desde nuestro Plano de Nivel. Vamos a arrastrar fuera de aquí, escribir éxitos actor. Vamos a configurar el Hit Actor. ¿Y a qué queremos configurar al Hit Actor? Bueno, si mantengo presionada la tecla R y hago clic con el botón izquierdo, puedo configurarla para que sea mi punto de luz. Vamos a entender lo que tengo pasando aquí. Déjame compilar esto rápidamente, asegúrate de que los scripts sean buenos para llevar. Entonces, desde el Plano de Nivel, me estoy acercando a mi Plano de Personaje cada vez que estoy presionando la tecla dos, y voy a establecer la variable actor dentro de mi terceraPersonaPersonaje para que sea el punto luz. Y luego dentro de mi Blueprint de personaje de tercera persona, voy a presionar entonces la tecla nueve para destruir el contenido de esa variable Hit Actor, que en este caso estaría poblada con ese punto de luz. Entonces sigamos adelante y danos una jugada. Realmente no tengo un buen medio para presumir ambos, en realidad, puedo presumir ambos de estos. No importa. Voy a jugar aquí. Así que estamos empezando en nuestro mapa de pruebas de nivel aquí mismo. Voy a configurar mi opción de depuración para que sea el mapa de prueba. Bien, entonces averiguaremos la luz. No puedes ver el icono de la luz, pero puedes ver esa luz en el piso para que sepas que está ahí. Voy a presionar la tecla dos. Entonces eso va a poblar esta variable actor con la luz puntual. Bien, eso ya se ha establecido. Ahora déjame saltar a mi terceraPersonaPersonaje. Y una vez más, tengo que volver a poner esta ventana. Vaya, mira, ahí vamos. Entonces ahora cuando presiono la tecla nueve, Mira desaparecer esta luz, y ahí va. Entonces en este video, has aprendido a crear una variable de actor y cómo se podría configurar y manipular de alguna manera. E incluso hicimos alguna comunicación cruzada de Blueprint también. ¿Para qué te vendría bien algo así? Bueno, imagina como un sistema de elaboración en un juego donde tal vez necesites interactuar con algunos objetos cosechables en tu mundo. Y tu objeto, tu objeto cosechable podría ser lo que tu personaje esté más cerca de una flor, un trozo de madera, ese tipo de cosas siempre se pueden establecer como tus actores cosechables con los que intentas interactuar. Bien chicos, eso va a hacerlo todo por este video, veremos en el siguiente. 52. Cosas variables que debes saber (parte #1): Bien, bienvenido de nuevo. En este video, nuestro objetivo es aprender algunas cosas importantes que hay que saber a la hora trabajar con variables en irreal. Ahora bien, estos no son realmente Consejos y Trucos per se. Son más una explicación de algunos conceptos clave en las opciones de variables, debes conocer cosas como cómo inicializar una variable, cómo establecer una variable a pública o privada, e incluso qué eso significa. Y cómo exponer la variable a las cinemáticas o cuando se genera. En primer lugar, vamos a estar hablando de inicialización de variables. Y para demostrarlo, voy a estar trabajando dentro de mis planos de personajes de tercera persona. Si olvidaste dónde está ese tipo, yo accedo a él en nuestra carpeta de Planos en tercera persona, ahí está tu BP, personaje en tercera persona. Entonces, ¿qué significa inicializar una variable? Bueno, eso significa darle un valor inicial de alguna manera. Ahora a menudo le damos a una variable un valor por defecto cuando creamos la variable, pero no siempre, podemos inicializar y de otra manera vaciar la variable cuando ocurre un evento, esto podría ser un evento de superposición, podría ser un evento de entrada, algo de esa naturaleza. Considera este ejemplo que he configurado antes de este video en mi terceraPersonpersonaje. Entonces, antes que nada, creé en el panel My Blueprint una variable llamada warp to locale. Y es del tipo de variable vectorial. Ahora lo que estoy haciendo aquí es que tomé evento comenzar a jugar. Recuerda que solo puedes tener un evento comience a jugar en una gráfica aquí. Yo agregué eso. Y lo que estoy haciendo es en cuanto estamos empezando a jugar, ahí es cuando este personaje se genera en mi nivel mi jugador iniciar locale ahí mismo. Cuando se genera en, simplemente estamos obteniendo la ubicación de nuestros actores. En este caso, nuestro terceraPersonaPersonaje. Y estamos estableciendo esta ubicación como las coordenadas dentro de esta variable vectorial. Entonces, por defecto aquí, mis valores para esta variable warp a locale son 00.0. No obstante, una vez que empiezo a jugar, se inicializan los contenidos de éste. Se intercambian a la ubicación de mis actores donde está desove mi personaje en tercera persona. Entonces por aquí, simplemente estoy agregando un poco de script para hacer uso de esta variable ahora inicializada, esta variable poblada. Una vez que presione la tecla número en mi teclado, voy a establecer la ubicación de mi actor. Ese es este plano, ese es el yo actor objetivo a esta ubicación dada, la ubicación warp a locale. Así que mira esto de nuevo en mi mapa aquí. Coloqué esta silla justo cerca de donde estoy desove. Porque recuerden, somos un personaje engendrado justo en esta ubicación. Al comenzar la obra donde nuestro personaje responda, vamos a establecer la ubicación de nuestros actores como el lugar donde queremos deformar a nuestra nueva ubicación de actores o, bueno, nuestro personaje en tercera persona es la ubicación exacta. Entonces, esencialmente, lo que está en juego aquí. Ahora bien, esta variable ya se inicializó incluso antes de que configurara mi objeto de depuración aquí, así que eso ya ocurrió. Y ahora una vez que vuelva a poner esto en su lugar, van a ver, me voy a alejar de este punto. Pero este warp a locale se ha establecido en el lugar en el que he engendrado. Y así cada vez que presiono la tecla número, la tecla a más número de mi teclado, el símbolo más. Va a volver a ese lugar porque esa es la ubicación de inicialización. Botón Plus, no importa. Botón Plus. Muy hábito que es inicializar una variable para asignarle un valor inicial. A continuación, hablemos de variables públicas versus privadas y lo que eso significa incluso. Y para este ejemplo, voy a estar usando mi pickup de ejemplo BP. Tengo uno de estos colocando mi nivel y luego he hecho doble clic en él para abrirlo, aquí arriba. Entonces, si recuerdas de un video anterior, creamos una salud para agregar variable flotante. Y sobre el lado derecho por aquí donde tenemos este globo ocular cercano para algunas de estas otras variables para que la salud agregue, simplemente hacemos clic en esto para mostrar ese ícono del globo ocular. Y al hacer eso, eso hizo que este campo editable de instancia tuviera esa casilla de verificación. Entonces esta casilla de verificación equivale a globo ocular no expuesto por aquí. Entonces no importa si hago clic en esto para cerrar. Se va a establecer esta casilla de verificación editable de instancia para que sea falsa. Y si hago clic en esto, va a configurarlo para que esté encendido. No importa a cuál de estos alternes, estás alternando la misma propiedad. Ahora con esto puesto. Y se puede ver en la punta de la herramienta aquí, es decir que se trata de una variable públicamente editable. ¿Qué significa esto? Entonces, una vez que has establecido eso, compilas esto, vuelves a tu editor de niveles. Por cualquier instancia, eso es para cualquier copia de esto, este plano se sumó a tu nivel. Esa variable que has configurado para sea editable públicamente ahora es accesible una vez que hayas seleccionado ese objeto en tu panel de detalles, échale un vistazo. Esta variable add saludable ahora se puede modificar para cada instancia de este blueprint. Si tuviera que mantener presionada la tecla Alt, hacer clic con el botón izquierdo y arrastrar, ahora tengo una segunda instancia de este plano, nivel MI. Entonces para esta instancia del plano, podría cambiar mi salud para agregar a ser 0.5. Mientras que en esta instancia del plano, podría fijarlo para que sea punto a que sea 20%, esta curación 50%. Así es como tuvimos esa configuración. Entonces esa es una variable pública. Es igual a este campo editable de instancia aquí mismo. Ahora, abajo un poco de esta instancia, el campo editable es esta opción privada. Si marcamos esta casilla en una variable dada, lo que hemos hecho es que la hemos hecho para que esta variable no se pueda modificar a partir de blueprints externos. Entonces lo que voy a hacer aquí es que voy a compilar esto. Voy a ahorrar, entonces voy a entrar en mi Plano de Nivel aquí. Observe que tengo mi pastilla de ejemplo BP, una de estas seleccionada, está bien. Cualquiera de estos servirá. Tengo el número dos seleccionado aquí, pero cualquiera de estos servirá. Voy a saltar a mi plano de nivel. Voy a mantener pulsada la tecla R y hacer clic con el botón izquierdo para traer una referencia a ese ejemplo, recogerlo. Y ahora voy a hacer una búsqueda esa variable llamada Salud para agregar. Y aquí vamos. Voy a arrastrar fuera de esto y escribir en salud para agregar. Y ya pueden ver, ni siquiera la encuentro aquí. No aparece porque está configurado como privado, lo que significa que no puedo modificar ni acceder a esa variable en absoluto desde un plano externo como el Plano de Nivel. No obstante, si tuviera que volver a mi recogida de ejemplo BP aquí, voy a desmarcar esto. Voy a compilar, guardar y volver a mi Plano de Nivel. Voy a arrastrar fuera de aquí y escribir en salud para agregar y ahí puedo conseguirlo o configurarlo. Entonces lo raro es que aquí es que puedes tener una variable que se establece para ser pública. Es decir, se puede acceder y editar desde el editor. También puedes configurarlo para que sea privado. Esos no son uno ni lo otro. Puedes tenerlo configurado en ambos. Eso confunde a mucha gente, pero podría estar configurado para que sea público, es decir, puedes editarlo desde el editor. Y también se puede establecer en privado, es decir, que una vez que se establece en privado y se intentó arrastrar fuera de él guardado de otros planos. No se puede encontrar ni acceder a esa variable. ¿Por qué querrías hacer eso? Bueno, solo podría ser una prueba de fallas para asegurar que no modifiques algo que no querías hacer. A continuación, exploremos esta opción expuesta en spawn que encuentras en variables. ¿Qué hace eso? Para esto? Voy a estar usando nuestra puerta giratoria bp. Creamos este plano de clase de actor cuando estábamos explorando el tipo de variable rotador. Y si olvidaste dónde está eso, esto es dentro de nuestros actores una carpeta BPS. Lo movimos todo. Trasladamos todos estos planos posteriores a la clase de nuestra carpeta de descripción general a la carpeta de nuestro actor BP. Dentro de aquí, continúe y seleccione su variable rotador de rotación final. Y en el panel Detalles, queremos establecer esto para que quede expuesto en spawn. Ahora, cuando vayas a compilar esto, te va a gritar. Y cuando lo haga, va a decir, oye, eso es genial. Lo marcaste como expuesto en el engendro. Pero para ello, también necesitamos marcar esto como instancia editable. Así que adelante y hazlo también. Ambos deben ser marcados para presumir están expuestos en la función de desove aquí. Entonces, una vez que se comprueben ambos, vuelve a compilarlo. Y entonces lo que vamos a hacer es que vamos a saltar a nuestro Plano de Nivel. Entonces si aún no tienes eso abierto, Ven aquí, abre Plano de Nivel. Y vamos a montar un guión sencillo. Voy a hacer clic derecho en algún espacio vacío. Cualquier evento de entrada servirá. Yo sólo voy a traer F h porque eso parece una entrada fina de m. Vamos a arrastrar fuera de aquí y hacer engendrar actor de clase. Ahora recuerda con estos nodos necesitas alimentarlo con una transformación de spawn. Así que sólo voy a agarrar la transformación. Vamos a agarrar la transformación de nuestros jugadores inicio actor aquí tengo ese seleccionado en mi nivel. Entonces con eso seleccionado, volviendo a mi Plano de Nivel manteniendo presionado el click izquierdo para obtener una referencia a eso. Arrastrado fuera de esta transformación todavía actor. Vamos a enchufar eso. ¿Y qué queremos engendrar en ese lugar? Bueno, vamos a engendrar una de nuestras bp rotando Doris. Voy a desplazarme por aquí abajo. Donde hace esa puerta giratoria ahí está BP puerta giratoria. Ahora, en el momento en que hice eso, puse como la clase en la que quería engendrar. Echa un vistazo a esto. Mi variable de rotación final ha sido expuesta en esta función de generación. Así que aquí podemos establecer la rotación para que sea algo distinto al valor predeterminado. Ahora me había puesto para que la puerta se abriera 90 grados. Lo que significa que se abriría. Normalmente se abre una puerta, pero puedo abrirla aún más aquí. Entonces sigamos adelante y probemos eso. Y voy a poner eso en 135. Ahora bien, si iba a seguir adelante y jugar esto, voy a dar clic en Reproducir aquí arriba. Y ni siquiera voy a establecer mi opción de depuración aquí para mostrar este guión disparando, solo confía en que bien, me voy a mover fuera de este jugador estrella de aquí mismo. Entonces quitando esto, voy a presionar F8. Boom, esa unión de Doris, aunque un poco más alta que estar colocada perfectamente en el suelo con eso está perfectamente bien que está flotando en el aire medio. Voy a superponer ese volumen disparador. Recuerda que hay un volumen disparador que va a detectar cuando mis personajes se superponen y cuando lo superpo, se abre más de 90 grados, abre 135 grados. Entonces ahí lo tienes. Exponer en spawn, tienes que tener eso marcado así como la instancia editable verificada para que eso aparezca. Cuando engendras actor de clase. 53. Cosas variables que debes saber (parte #2): Y por último, quería presumir esta casilla de verificación expuesta a cinematográfica que encuentras en algunas variables, no en todas ellas. Y voy a explicar cuáles puedes y no encontrarla más adelante en este video. Entonces para este ejemplo, estoy una vez más dentro de mi pickup de ejemplo BP. En el panel Mi Blueprint, he creado una nueva variable vectorial. Lo he llamado escala. Y después de compilar, he establecido mi escala en 11.1. Sigamos adelante y verifiquemos esta casilla de verificación expuesta a las cinemáticas también. Entonces adelante y compila. Ahora para presumir lo que queremos mostrar tu exponiendo esta variable a una cinemática. Necesitamos agregar una cinemática a nuestro nivel. no hacer eso, vamos a saltar de nuevo a nuestro nivel justo aquí arriba a lo largo de la barra de herramientas, tienes este pequeño icono del portapapeles. Adelante y da click en esto, y queremos agregar una secuencia de niveles que sea una cinemática. Sigamos adelante y hagamos esto. Y una vez que hagamos clic en esto, va a decir, ¿dónde nos gustaría guardar este activo? Pongámoslo dentro de una nueva carpeta. Tengo secuencias de comandos seleccionadas aquí. Voy a hacer clic derecho. Voy a crear una nueva carpeta, llámela secuencia. En realidad, lo llamaré cinemáticas, así. Y lo voy a dejar en nueva secuencia de nivel, ese será mi nombre orilla. Y una vez que hago esto, estoy dando clic en Guardar. Ahora he agregado un nuevo actor a mi nivel. Se llama nueva secuencia de niveles. Es del tipo de actor de secuencia de nivel. Y también junto a mi navegador de contenido aquí he expuesto una nueva ventana llamada secuenciador. Ahora bien, lo que toda esta ventana te permite hacer para modificar algo a lo largo del tiempo para crear una especie de cinemática. Entonces para hacer eso, necesitamos agregar una pista. Entonces, si hago clic en este botón de pista aquí abajo, quiero agregar un actor a mi secuenciador aquí en, en el menú de la pequeña flor, puedo elegir un actor en mi nivel. Observe que todos los actores aquí también existe en mi outliner y el extremo superior derecho aquí, quiero agregar mi pickup de ejemplo BP. Lo he reducido a solo uno en mi nivel actualmente. Entonces voy a añadir eso. Y ahora puedo hacer clic en este botón Plus aquí mismo para profundizar más dentro de mi pastilla de ejemplo BP y mirar la parte inferior. Tengo una propiedad a escala que ahora ha sido expuesta a una cinemática. Este secuenciador es una cinemática. Ahora en esta pequeña mosca, veo que es un vector y puedo modificarlo. Puedo elegir x, y o z. No importa cuál de estos elijas. Voy a elegir x aquí. Ahora va a exponer esa variable a esta línea de tiempo, a esta cinemática. Y si hago clic en este pequeño desplegable, puedes ver que ahora puedo modificar la x, y, o z de esa variable vectorial a lo largo del tiempo. Ahora esta escala actualmente se muestra en cuadros por segundo. Eso es lo que significa este 30 FPS. Podemos modificar esto ya sea frames o lo que me gusta hacer es dar click sobre esto. Y me gusta cambiar esto como un tiempo en cambio. Así Showtime como segundos, así. Y ahora para mí esto es un poco más sensata. Puedo cambiar las cosas desde 0 s actualmente hasta 5 s. Puedo expandir esto también, pero no vamos a crear una. Eso es bastante largo. Bien, entonces, ¿qué quiero hacer aquí? Quiero modificar una de estas propiedades de escala a lo largo de 5 s. así que voy a modificar solo la escala z. Podría modificarlos todos, pero voy a agregar un fotograma clave a 0.0 s aquí haciendo clic en este botón más. Entonces estamos diciendo que quiero que el valor de escala para esa variable vectorial sea uno en la z a 0 s. Entonces voy a mover mi deslizador de línea de tiempo hasta 5 s. Y luego voy a hacer clic nuevamente en el botón más. Sólo que esta vez voy a decir en este punto de la línea de tiempo, agregué otro fotograma clave. Eso es lo que significa ese punto rojo. Voy a decir en este punto, quiero que la escala Z sea cinco, así que vamos 1-5. Y si muevo este deslizador, observe que el valor de la escala Z cambia con el tiempo. Todo esto está bien, excepto porque en realidad no estamos haciendo uso de esta variable todo dentro de nuestra pastilla de ejemplo bp, hemos expuesto, hemos expuesto variable vectorial de escala a nuestra cinemática aquí. Y aquí vamos a estar ajustándolo sobre esta cinemática. Pero aún no tenemos ningún guión que en realidad va a aprovechar esto. Entonces hagámoslo a continuación. Y así para esto, vamos a agregar una caja de gatillo a nuestro nivel. Y voy a hacer esto relativamente rápido aquí. Voy a escalarlo en tamaño va a cambiar la extensión de la caja a 200 nuevamente por 200, 200 encima en el panel Detalles. Va a cambiar el grosor de la línea a diez una vez más, así. Este secuenciador de nivel, actor, actor ahí mismo, no importa donde coloques eso en el nivel, por cierto. Y entonces voy a hacer esto para que podamos verlo. El actor renderizado juego oculto a falso. Y luego con este actor seleccionado, voy a saltar sobre mi Plano de Nivel, voy a hacer clic derecho. Voy a hacer algo cuando empecemos a superponerlo. Lo primero que vamos a hacer es que vamos a arrastrar fuera de aquí el elenco a una tercera persona. Vamos a hacer algo con nuestras superposiciones de personajes de tercera persona en. Lo que queremos hacer es entonces tomar una referencia a nuestra secuencia de niveles aquí. Así que adelante y haz clic en eso de nuevo en tu Plano de Nivel. Si va a mantener presionada la tecla R, haga clic con el botón izquierdo para traer cualquier referencia a eso. Y entonces voy a arrastrar fuera de esto y escribir en el juego de palabras. Queremos jugar a nuestro jugador de secuencia. Esa es la opción que estamos buscando. Esencialmente estamos diciendo, oye, toca esta cinemática, así que debería estar enganchada así. Eso va a tocar la cinemática. Por lo que en realidad va a modificar esa propiedad. Pero va a modificar esta propiedad de escala a lo largo de 5 s. Pero en realidad no estamos creando ningún script todavía para mostrar que el crecimiento está sucediendo. Entonces para que eso ocurra, este es un conjunto muy enrevesado aquí. Voy a hacer clic derecho, traer en un evento tick. Cada cuadro. Nosotros queremos. Selecciona tu ejemplo, recoge ahí en el nivel. En la parte posterior a nuestro plano de nivel, vamos a mantener pulsado el archae click izquierdo para traer una referencia a eso. Vamos a arrastrar fuera de aquí. Vamos a establecer una escala mundial tres D para la colisión de la esfera. Porque nuestra colisión de esfera, todo está apegado a eso. Y muévelo así. Y luego también vamos a arrastrar fuera de nuestra pastilla de ejemplo y encontrar esa variable de escala. Tengo que desplazarme hacia abajo hasta el fondo para obtener nuestra báscula. Así. Así que fíjate que nuestra escala es por defecto 11.1. Entonces cada fotograma, va a leer eso en. Va a establecer nuestra colisión de esfera aquí, que es el componente más arraigado en todo lo que está unido a ese 2111. Sin embargo, una vez que superponga ese cuadro disparador, vamos a decir esa secuencia o a jugar que va a actuar como una línea de tiempo para modificar el valor de esta variable, 1-5 sobre 5 s. que es nuestra cinemática. Entonces puedes pausar el video aquí, mira esto si quieres seguir adelante en casa, voy a compilar esto. Sigamos adelante y demos una jugada a esto. Mueve esto a un lado aquí solo un poquito. Para que puedas ver nuestro ejemplo de recogida ahí en la parte de atrás. La escala se mantiene constante. Déjame establecer mi objeto de depuración ahí mismo para que puedas ver garrapata del evento disparando cada fotograma. Tráelo en mi ventana de juego una vez más. Entonces una vez que me solapé es superior a 5 s, deberías ver esto aumentando de tamaño. Aquí vamos. Bastante dulce. Y efectivamente eso sí sucedió. Entonces esa es una forma muy larga de mostrar qué es exactamente lo que hace esta opción cinematográfica expuesta exactamente. Entonces solo para traer esto de vuelta alrededor casilla de verificación expuesta a las cinemáticas, puedes encontrar eso en variables booleanas, enteras, flotantes, cadenas, transformadas vectoriales, un actor. No lo encontrarás por nombre, textos o variables rotadoras. Bien chicos, eso va a hacer para ofrecer este video, veremos en el siguiente. 54. Consejos y trucos variables: Bienvenida. En este video vamos a estar revisando consejos y trucos esenciales que absolutamente debes conocer para poder trabajar con variables de la manera más eficiente posible. Vamos a hablar de las diferentes formas de obtener y establecer variables. Vamos a revisar cómo promover una variable. Vamos a hablar sobre cómo categorizar las variables y darles información sobre herramientas. Y por último, vamos a hablar de cómo cambiar los tipos de variables. Empecemos en nuestro bp ThirdPersonCharacter Blueprint para ayudar en esta discusión. Entonces, si no tienes eso abierto, lo puedes encontrar en planos de tercera persona. Ahí es donde puedes encontrar a la terceraPersonaPersonaje. Y una vez dentro de aquí, vamos a explorar cómo obtener y establecer variables de tres formas diferentes que vamos a hablar aquí. En primer lugar, exploremos las tres formas diferentes obtener una variable que es averiguar qué contenidos existen dentro de esa variable. Y para eso, vamos a deshacernos de esta matriz GET de salud aquí porque vamos a estar explorando eso. Entonces la primera forma es que podemos hacer clic izquierdo y arrastrar. Y luego en nuestro pequeño cuadro de diálogo aquí, cuando soltemos nuestro clic izquierdo, podríamos obtener la salud. Esa es la vía número uno. Camino número dos, puedo mantener presionada la tecla Control, clic izquierdo, arrastrar, soltar, clic izquierdo, eso también puede obtener un getter de eso. Y la tercera forma, menos común, pero súper efectiva, es simplemente hacer clic izquierdo y arrastrar esto en un pin de entrada para un nodo dado. Así que una vez que lo arrastramos y soltamos encima de ahí, va a conseguir que el contenido de esa variable sea bastante práctico de hecho. Bien, hablemos de establecer una variable. Así que aquí arriba tenemos un centro en su lugar. Lo dejaré ahí por el momento. Pero lo que vamos a hacer aquí es arrastrar con el botón izquierdo cuando el número uno aquí es simplemente elegir Establecer salud en ese menú. Si hace clic izquierdo, arrastre, suelte, haga clic con el botón izquierdo. La segunda forma es mantener pulsada la tecla Alt. Clic izquierdo, arrastre, suelte, clic izquierdo. Esa es la segunda forma de conseguir un centro de eso. Y la tercera forma de establecer los contenidos de una variable. Así que sólo voy a eliminar a este tipo por el momento, es simplemente arrastrar y soltar en el pin de salida de un, de un nodo dado, y eso va a traer en un centro también. Por lo que establecer una vez más, permite alterar el contenido de esa variable. A continuación, hablemos de promover a una variable que ya sabe que puede crear variables haciendo clic aquí, agregando variable, o entrando debajo aquí variable y haciendo clic en el botón más. Sin embargo, promover la variable es la tercera forma de crear una variable y es bastante útil por un par de razones aquí. Una, te puede dar el tipo de variable que necesitas desde el principio. Entonces usando este nodo como ejemplo aquí. Entonces digamos que tenemos nuestra variable de salud y queremos agregarle alguna cantidad. Bueno, simplemente podemos hacer clic derecho sobre este pin y eso nos va a dar el tipo de variable que ya necesitamos, en este caso un flotador para que pueda hacer clic derecho, promover y hago clic, puedo llamar a esta salud para agregar. El segundo beneficio de promover a una variable es que si compilamos esto, podemos ver que automáticamente agarra el valor que estaba dentro de ese nodo. Si ya habías colocado un valor dentro de ahí y lo has promovido a una variable, y luego lo compilas, va a poblar automáticamente esa variable con el valor que estaba dentro de ella . Así que eso es súper práctico. Vale la pena señalar aquí que puedes promover una variable en cualquier nodo, no solo desde el lado de entrada, sino también desde el lado de salida también. Entonces el lado de salida de este centro de salud, podría hacer clic derecho sobre esto, promover esto a variable, y volver a llamar a esto mi salud variable. No sé por qué querrías establecer tu, establecer una nueva variable después de esto, pero tal vez quieras hacer algo así. Así que promocionando una variable súper práctica manera obtener el tipo de variable que de hecho estás buscando, así como configurarlo a los contenidos que ya estaban duros establecidos ahí. Ahora bien, lo que realmente me gusta de promocionar a una variable, permítanme simplemente saltar a mi pastilla de ejemplo de BP es, hemos hablado de algunos tipos de variables muy comunes aquí, pero también hay algunas más oscuras. Por ejemplo, tengo este nodo de reproducción de sonido 2D aquí estoy IBP ejemplo pickup. Y tengo algo llamado configuración de concurrencia. Quizás te estés preguntando, no tengo idea de lo que es eso, pero quiero jugar con esto y ver qué puedo cambiar. Bueno, podrías hacer clic derecho en este pin. Se podría promover eso a una variable, compilarlo. Y luego en el panel Detalles puedes ver qué cosas de esta variable puedes establecer. Y tal vez no seas capaz de ver nada, quizá no tenga sentido para ti. Pero esa es una excelente manera de aprender cuáles son todos estos diferentes tipos de pines, cuáles son todas estas diferentes variables en el lado de entrada de un nodo o el lado de salida del pin. Gran manera de aprender esas cosas. Bien, Siguiente, hablemos sobre la creación categorías para que tus variables vivan en. Ahora, a medida que te complicas con tus scripts, es posible que tengas más y más variables en el lado izquierdo y quieras tener alguna forma de categorizarlas. Bueno, puedes crear categorías para que vivan en ellas. Permítanme seleccionar por salud para agregar justo por aquí. Y en el panel Detalles, tenemos una categoría y actualmente todos estos están en mi categoría predeterminada desde el sonido de captación hasta la configuración de concurrencia. Podría crear uno simplemente seleccionando este campo de categoría aquí mismo. Anulándolo, voy a llamar a esto mi categoría de salud. Bien, entonces ahora que ves en el panel Mi Blueprint, he creado una categoría de salud y mi salud para agregar existe dentro de eso. Ahora puedo agregar otras variables a esta categoría. Yo podría decir, Oye, escala, quiero que también vivas en esa categoría simplemente seleccionándola. Y ahora si hago clic en este desplegable, voy a, voy a poder encontrar salud dentro de ese desplegable. Así que puedes crear una nueva categoría simplemente anulando esto y escribiendo un nuevo nombre de categoría. Sin embargo, una vez que hayas creado una categoría, puedes elegir establecer una variable dentro de esa categoría eligiendo esto aquí. O simplemente puedo arrastrar una variable hacia arriba a esta categoría. Entonces cinco es tratar de arrastrar este sonido pick-up y colocarlo aquí mismo encima de la escala. Mira que va a pasar aquí. Se va a reordenar que automáticamente lo coloque dentro de esta categoría de salud. Ahora bien, esto también es útil para crear estas categorías. Porque vamos a ver esto aquí mismo. Mi salud para agregar. Tiene este pequeño globo ocular revisado, lo que hace que esta instancia sea editable. Cualquier conjunto de variables para ser editable por instancia. Una vez más, compilando esto aquí solo para asegurarme de que lo tengo, salta de nuevo a mi mapa de prueba. Tengo una de estas pastillas de ejemplo de BP aquí en mi nivel sobre en el panel Detalles con esa seleccionada, puedo ver mis diferentes categorías que puedo cambiar sobre esto. Ahora, una de las categorías que puedo cambiar es mi salud para agregar y ver esto. Ya no aparece en una categoría llamada default. Ahora está listado en una categoría llamada Salud para agregar. Sigamos adelante e intentemos crear una categoría más aquí dentro de nuestro bp example pickup. Déjame cambiar mi escala. Es decir, en realidad no tiene sentido tener eso en una categoría de salud per se. Dos, cambiémoslo a una categoría llamada escala. Y voy a configurar esto para que sea instancia editable. Debemos compilar después de establecer esto para que sea editable por instancia para que luego encontremos esta variable expuesta en nuestro editor. Entonces con esta seleccionada, ahora tengo una categoría de salud con salud para agregar dentro de ella. Y categoría de escala con una variable de escala dentro de ella. Ahora bien, ¿para qué te gustaría crear estas categorías? Bueno, en algo así como tu BP ThirdPersonCharacter, podrías tener algunas variables que están todas relacionadas con el nombre de tu personaje, nombre, apellido, segundo nombre. Podrían ser algunos atributos de carácter que todos queráis categorizar. Eso sería algo común. Podrían ser cosas relacionadas con la salud o daños. Podrías crear una categoría de salud y daños, ese tipo de cosas. A continuación, vamos a explorar la adición de información sobre herramientas, dos variables. Entonces voy a saltar de nuevo a mi pastilla de ejemplo BP. Entonces, para cualquiera de mis variables, puedo agregar una descripción, una descripción emergente. Observe que cuando paso el mouse sobre mis variables actualmente, dice que mi salud para agregar es simplemente un sonido de flotación por captación que es la escala de descripción base simplemente dice que es una variable vectorial, pero puedes cambiar el contenido de eso, los textos de información sobre herramientas si quieres. Con mi salud para agregar seleccionado en el panel Detalles, mi campo de descripción. Puedo cambiar esto para que sea esta es la cantidad de salud a agregar Enter. Y ahora si paso el mouse sobre esta salud para agregar variable en ya no dice flotar de doble precisión o lo que sea que se diga antes, solía decir flotar de doble precisión. Ahora dice que esta es la cantidad de salud para agregar los textos que pongo ahí mismo. Y por último, solo quería señalar que si realmente quieres cambiar los tipos de variables, puedes, y ya sabes, puedes cambiar el tipo de variable ya sea aquí mismo haciendo clic en esto, eligiendo uno nuevo en el cuadro emergente aquí, o en el panel Detalles, también puedes cambiarlo aquí mismo. No obstante, si lo haces, hay algunas cosas que debes conocer. Entonces con mi salud para agregar variable flotante seleccionada en el panel Mi Blueprint, voy a cambiar el tipo de variable para que sea un entero. Ahora bien, una vez que hagas esto, vas a tener una cajita emergente que diga: Oye, podrías romper algunas conexiones aquí. ¿De verdad estás seguro de que quieres hacerlo? Entonces, sigamos adelante y cambiemos ese tipo de variable. Pero te darás cuenta de que cuando lo hagas, vas a conseguir este dicho, bien, hemos encontrado esto aquí mismo en la gráfica. Tu recogida de ejemplo de BP agrega tu salud para agregar. Ahí estaba. Ahora voy a salir de aquí. Y vas a ver esto aquí mismo siendo como, Bueno era un flotador, ahora es un entero. Entonces, ¿qué haces aquí? Bueno, puedes arreglarlo haciendo clic con el botón derecho en este nodo, refrescándolo. Ahora reconoce que, oye, cambias eso a un entero. Pero ahora tienes algo de trabajo que hacer aquí. Rompimos este enlace y podría enchufar esto también aquí. Y en este caso va a traer en un, sólo va a convertir eso en real amablemente. Pero otros casos que no van a jugar tan bien. Así que realmente debes tener cuidado de romper tus conexiones cada vez que cambies tus variables. Ahora, solo teníamos esta instancia de esta variable agregada aquí mismo. Sin embargo, si quisieras encontrar todos los lugares donde esto pudiera existir para arreglar todas estas referencias de esa variable. Puedes hacer clic derecho sobre esto, encontrar referencias. Y al hacerlo, puedes encontrar dónde existe esta variable en cualquier parte de esta gráfica. Y puedes encontrar incluso más allá de esta gráfica, si estuvieras usando esta variable, estás llamando a esta variable desde otro Blueprint. Puedes hacer clic en este pequeño botón aquí para encontrar dónde se estaba obteniendo o estableciendo esa variable en cualquier otro Blueprint. Así que es muy útil saber sobre hacer clic con el botón derecho, encontrar referencias. Traerás a colación este pequeño pop-up. Puedes hacer doble clic sobre esto para saltar directamente a él. Y luego también si quieres encontrar donde esta variable está haciendo referencia a otros planos, puedes dar click aquí mismo para poder hacerlo. Bien chicos. Eso lo va a terminar para este video. Eso va a hacerlo todo por las variables. Te veremos en la siguiente. 55. Resumen de las funciones: Bien, bienvenidos de nuevo a todos. En esta sección del curso, vamos a estar cambiando oficialmente nuestro enfoque al tema de funciones. Y aunque me has visto usar un montón de funciones en nuestras discusiones de otras cosas relacionadas con el scripting de Blueprint. Aquí es donde los desglosamos en su totalidad, hablando de todos los matices de las funciones. Entonces nuestro objetivo en este video es cubrir rápidamente qué son las funciones. Da algunos ejemplos de cómo se utilizan en Unreal. Y por último, habla de dónde puedes encontrarlos. Entonces, antes que nada, ¿qué es una función? Bueno, para ayudar a facilitar esta discusión, estoy dentro de mi Plano de Nivel y he colocado algunos nodos de función. Una función es un nodo de blueprint que simplemente hace algo, realiza una operación específica. Entonces, qué tipo de cosas he colocado antes de que oigas, bueno, podrías engendrar y actor. Eso es generar algún objeto en tu juego que te pueda ser útil. Puedes generar un efecto de partícula. Este es el antiguo sistema VFX, el sistema de efectos visuales en cascada o un sistema de partículas más nuevo conocido como Niagara. Se podría crear un widget que sea para mostrar un Blueprint Widget, que a menudo se usa en Endgame HUD, o menús. Se puede reproducir un sonido. Podrías cambiar la ubicación de un actor, todo tipo de cosas que se pueden hacer con funciones. Ahora las funciones pueden tomar entradas y devolver las de Albert. Solo como recordatorio, las entradas se encuentran en el lado izquierdo de un nodo. Las salidas se encuentran en el lado derecho del nodo. Irreal viene con toda una serie de funciones ya, si tuviera que hacer clic derecho y algún espacio vacío y desglosar en alguna de estas categorías, ves todas estas S de aspecto elegante Aquí. Están en azul o verde. Estos son todo tipo de nodos de función listos para usar a los que tiene acceso. Ahora puedes crear tus propias funciones en un blueprint y llamarlas cuando lo desees. Hablaremos de eso en unos videos tiempo aquí. Ahora algunas cosas que vale la pena señalar en esta visión general generalizada de funciones es que a medida que estás trabajando con funciones en Unreal, notarás que vienen en dos sabores diferentes. Tienes azul, que se conocen como funciones impuras, y tienen este encabezado azul para ellos. Y si voy a la derecha aquí, tienes funciones verdes y estas se conocen como funciones puras. Ahora bien, la diferencia clave entre estas es que estas funciones verde y pura no tienen pines de ejecución en el lado de entrada o salida, mientras que las funciones impuras azules sí. Ahora tenemos un video completo dedicado a las funciones impuras versus puras. Entonces hablaremos de esos más adelante, pero solo quería señalarlo mientras estamos aquí. Otra diferencia que quería señalar entre diferentes nodos de función es que a veces el encabezado para ellos es un poco más descriptivo que otros. Y bueno, ¿qué quiero decir con eso? Si miramos algunos de nuestros nodos de función aquí abajo ya que son sistema de desove esa ubicación, eso todo lo que dice este nodo de función es sistema de desove en la ubicación. Ahora contrasta eso con este nodo aquí arriba, establece la ubicación del actor. Y luego justo debajo dice que el objetivo es actor. Este está pidiendo un objetivo del que queremos cambiar la ubicación. Este no tiene ningún subdescriptor de subtítulos debajo de él. Ahora observe que éste también establece que el objetivo material es un componente primitivo. Puedo suministrar una malla de la que queramos cambiar el material. Si salto a mi blueprint de terceraPersonCharacter, también coloco algunos nodos de función aquí abajo. Todos ellos dicen que el objetivo es el carácter, el objetivo es el carácter, el objetivo es el carácter, etcétera. Entonces diferentes funciones tienen diferentes objetivos. En este caso, todos estos nodos de función son específicos de una clase de caracteres. Mientras que en nuestro mapa de prueba de nivel, algunos de estos nodos de función no son específicos ninguna clase dada o ningún componente dado. Las funciones pueden tener diferentes objetivos. Podría tener un objetivo componente, podría tener un objetivo actor, un objetivo de personaje, cosas de esa naturaleza. Y llegaremos a eso más en un poquito. Y por último, quería hablar de dónde se pueden encontrar funciones dentro de una gráfica. Bueno, un par de formas diferentes podrías hacer esto. La forma más común es hacer clic derecho en algún espacio vacío. Aquí dentro. Si hago clic en mi lista desplegable de actores aquí, Aquí es donde puedes encontrar muchas funciones diferentes. Nuevamente, vienen en las funciones impuras de sabor azul, o el sabor verde, es decir funciones puras. Y estos están disponibles dentro de cualquier categoría dada. Vas a encontrar un montón de estos que ya están preconstruidos para ti. Ahora también puedes buscar una función dada. Nuevamente, el actor engendrado de clase es común. Entonces, si sabes lo que buscas, puedes simplemente teclearlo ahí, engendrar actor de clase. Algo más que quiero señalar aquí es que las funciones pueden ser contextuales o no contextuales. Y esa es esta casilla de verificación de aquí arriba. Se comprueba por defecto. Y déjame mostrarte cómo esto puede cambiar los resultados aquí. Así que tengo a este actor engendrado de Class Blueprint, y ya he colocado una pastilla de ejemplo BP en la clase aquí. Si tuviera que arrastrar fuera de esto, ahora mira mi casilla de verificación sensible al contexto está marcada y en el actor superior es mi categoría superior. Eso es con sensible al contexto comprobado. Un actor es la categoría más alta. Ahora permítanme venir a esta función Crear Widget justo por aquí. Déjame arrastrar fuera de aquí. Aviso sensible al contexto está marcado. obstante, ni siquiera veo esa categoría de actor en la parte superior aquí porque estos van a devolver dos tipos diferentes de cosas. Este va a devolver un objeto widget. Este va a devolver mi pickup de ejemplo BP porque esa es la clase que he ranurado aquí. Ahora, si estás en este menú contextual, cursor sobre esta casilla de verificación sensible al contexto aquí. Y das click en este pequeño menú fly out. Puedes decidir en qué contextos va a encontrar dadas las funciones disponibles. Este plano como punta de herramienta dice que va a incluir funciones y variables que pertenecen a este blueprint. Si se comprueba componentes, va a incluir funciones que pertenecen a componentes de este blueprint y, u otras clases de destino. Y luego bibliotecas que es para incluir cualquier otra función que sea accesible globalmente. Y una vez más, tenemos un video completo dedicado a las bibliotecas de funciones en poco tiempo en el futuro. Ahora, si tienes alguna funcionalidad específica que quieres tener construida, puedes crear tus propias funciones en el panel Mi Blueprint bajo la categoría de funciones, puedes crear tus propias funciones aquí mismo. Puedes llamarlos como quieras. Se puede crear la funcionalidad que vive dentro de ese nodo de función. Y entonces es tan simple como arrastrar y soltar ese nodo de función desde tu pestaña my blueprints de aquí en tu gráfica. Pero también hablaremos más de eso en el futuro. Bien chicos, hay una visión general de las funciones dentro de los planos de Unreal Engine. Te veremos en el siguiente video. 56. Funciones del actor: Bienvenida. En este video, nuestro objetivo es conocer qué son las funciones del actor, explorar cómo encontrarlas y demostrar algunas. Ahora lo dejamos en el último video simplemente tomando una visión general de las funciones dentro de nuestro Blueprint de Nivel. Y yo estaba hablando de cómo algunas funciones tenían este subtítulo debajo de ellas, incluido este para ubicación del actor establecido que dice que el objetivo es actor. Entonces de eso es de lo que estamos hablando en este video. Estamos hablando de la función de actor. Entonces, ¿qué es una función de actor? Bueno, es simplemente una función que apunta, es afectar a un actor específico que le suministres. Ahora el objetivo podría ser él mismo, pero en el caso de un Blueprint de Nivel, yo no es muy útil. En realidad tenemos que decir, Oye, ¿qué es lo que estamos tratando de efectuar? Y en este caso, ¿qué nueva ubicación vamos a estar tratando de darle? Ahora, voy a volver a mi nivel aquí, y he agregado una malla estática a mi nivel. Si quieres seguir el juego en casa. Esto está en mi carpeta de indicaciones de contenido iniciado de contenido. Coloco a uno de estos tipos en mi nivel. Y con eso hecho, también cambié la movilidad aquí para que sea móvil. Y eso va a ser importante para la función que vamos a estar tratando de establecer sobre esto. Entonces con eso hecho, asegúrate de tener estos actores de malla estática seleccionados en tu nivel. Y voy a saltar dentro de mi Plano de Nivel ya lo tengo abierto aquí. Pero una vez más, así es como puedes acceder a tu Plano de Nivel. Ahora no importa en qué gráfica estés. Aquí tengo dos gráficas, mi gráfica de tipos de nodos y mi gráfica de eventos. Mi Gráfico de Eventos es un poco más limpio, así que voy a entrar de ahí. Ya tengo una referencia a esto en mi gráfica. Ahora, la forma en que puede obtener una referencia a eso es simplemente mantener presionada la tecla R y hacer clic con el botón izquierdo o en su menú contextual. Si lo tienes seleccionado, deberías poder encontrar y crear una referencia al mismo haciendo clic derecho y eligiendo ahí mismo. Cualquiera de las dos opciones servirá por ti. Entonces este es el actor al que queremos apuntar. Entonces, si arrastramos fuera de aquí y soltamos, tenemos aquí comprobados sensibles al contexto, lo que significa que si perforamos en alguna de estas categorías, podemos encontrar funciones que son específicas que trabajará para este actor dado, incluyendo algo como Destruye Actor. Tenga en cuenta que dice que el objetivo es actor. Podría traer un evento de entrada y al presionar ese evento de entrada, podríamos destruir al actor que es nuestro objetivo. Estamos hablando de funciones de actor. Así que probemos algunos por aquí. Hemos visto que Destruye Actor una vez suficiente. Entonces, vamos a traer algunos más. Entonces voy a arrastrar fuera de aquí. Y voy a escribir la ubicación del actor del set. Y puedo ver que esto está en la categoría de transformación. Entonces así es como se puede ver dónde está. Ahora bien, esta es la razón por la que tuvimos que poner nuestra malla aquí para que fuera movible. Porque si en realidad no configuramos esto para que sea movible, vamos a conseguir algunas quejas. Cuando compilamos. Voy a establecer mi nueva ubicación. En lugar de enchufar una variable, solo voy a ponerla duro aquí para, digamos 1,000. Y simplemente lo moverá a algún lugar arriba en el aire. Vamos a arrastrarnos hasta aquí de nuevo, podemos hacer múltiples cosas. Voy a hacer rotación de actores set, eso también está en la categoría de transformación. ¿Bien? Así que vamos a ir así y señalar que estamos usando la misma referencia el objetivo para múltiples funciones de actor que es totalmente aceptable de hacer. Voy a arrastrar fuera de esto y vamos a hacer un conjunto actores escala 3D. Esto también se encuentra en la categoría de transformación. Y luego, por último, voy a arrastrar fuera de esto una vez más y vamos a establecer la vida útil. Esto está en la categoría actor, por lo que diferentes funciones pueden vivir en diferentes categorías, pero si conoces el nombre de la misma, simplemente puedes escribir arriba arriba. Ahora, actualmente no tengo ninguna entrada por aquí, así que hagamos clic derecho, zoom, espacio vacío adentro. Vamos, hagamos qué llave no he usado todavía la llave siete. Hagamos la llave siete. Claro, eso va a funcionar bien. Entonces, cuando presionamos la tecla siete, vamos a querer establecer la ubicación de nuestros actores para que esté en algún lugar en el aire. La ubicación 001000 en el mundo. Entonces vamos a mantener el flujo de ejecución y establecer la rotación de nuestros actores. Aquí no establecí una rotación, así que pongamos eso para que sea 45.45 solo para angularlo un poco para que podamos ver algo diferente a lo que es actualmente. Entonces vamos a mantener el flujo de ejecución entrar aquí. Queremos establecer una nueva escala para ello. Hagamos 44.4, algo un poco grande. Y luego vamos a dibujar aquí la vida útil. Entonces, este es el tiempo que esto va a vivir antes de que se destruya menos de lo que nuestra vida útil sea. Vamos 5 s. Bien, así que fíjense que todas estas funciones toman en cuenta, en un objetivo actor. Podemos usar la misma referencia y conectarla a la nota de entrada objetivo de todos estos. Entonces voy a compilar aquí, voy a mover esto fuera a la izquierda. Vamos a jugar, déjame configurar mi objeto de depuración para que sea mi mapa de prueba. Y ahí está mi actor. En cuanto presione la tecla siete, vas a ver bang, bang, bang, bang. Aquí vamos. Siete. En algún lugar en el aire. Se gira, es grande. Y después de 5 s boom, sí se va adiós. Entonces se puede ver que sí llamó a esa función en este actor dado. E hizo todas estas cosas, cambia la ubicación, cambia la rotación, establece la escala y establece la vida útil. Entonces ahí lo tienes. Funciones de actor. Puedes encontrarlos arrastrándolos fuera de un actor determinado, haciendo una búsqueda de él, o simplemente buscando aquí para ver qué tipo de funciones están disponibles para ti. Bien, eso va a hacerlo todo por este chicos, los veremos en el siguiente. 57. Funciones de la clase: Bien, bienvenido de nuevo. En este video, nuestro objetivo es aprender qué son las funciones de clase, explorar cómo encontrarlas y luego demostrar algunas. Entonces, en primer lugar, ¿qué es una función de clase? Bueno, es simplemente una función que sólo puede ser utilizada por un tipo específico que es una clase específica. Ahora bien, ¿de qué estamos hablando aquí? Bueno, si saltamos de nuevo a nuestro Navegador de Contenido, y me vio hacer clic derecho antes en el curso en algún espacio vacío en mi navegador de contenido, si vengo bajo la clase Blueprint, estas son las diferentes clases de las que estamos hablando, las diferentes clases de planos. Ahora, tenemos funciones que son específicas de cada clase. Y esto va a ser más obvio demostrar cuando se habla de nuestra clase de personajes, porque casi todos los juegos que vas a crear van a tener un personaje o tal vez incluso sobre clase, pero vamos a demostrar un personaje. Así que adelante y abre tu BP ThirdPersonCharacter. Ahí es donde empecé este video con él. Y fíjate en mi gráfica aquí tengo varios nodos de función. Y observe que justo debajo del encabezado aquí, el subencabezado aquí dice que target es character, la función jump target es character, la función de lanzamiento character, target es character, the agachate in y funciones agacharse. El objetivo es el carácter. Estas funciones son específicas de esta clase, esta clase de caracteres. Y puedo encontrarlos haciendo clic con el botón derecho en algún espacio vacío. Y entonces si busco ese nombre de clase de padres, estamos buscando el personaje justo aquí arriba. Vamos a desplazarnos hacia abajo. Y si encontramos carácter C H ahí está, aquí abajo. Puedes encontrar estos eventos. Tenemos agachados, tenemos personaje de lanzamiento saltado en agacharse, etcétera. Por lo que estos son muy específicos esta clase dada de Blueprint. Ahora, vamos a demostrar estos. Y quiero señalar aquí antes de que lo hagamos si quieres encontrar y hacer uso de estas funciones agacharse y agacharse, necesitas seleccionar tu componente de movimiento de personaje y otra vez en el Panel de detalles bajo la categoría de movimiento de navegación, se asegura de que verifiques puede agacharse. No se comprueba por defecto. Bien, así que sigamos adelante y probemos estos. Voy a hacer clic en reproducir aquí, voy a establecer mi objeto de depuración para que sea por personaje en tercera persona. Y voy a minimizar estos un poco así. Se puede ver obviamente si presiono mi barra espaciadora, eso va a hacer que mi personaje salte soltando, hace que dejen de saltar. Si presiono la tecla L, tengo esta función de personaje de lanzamiento que han establecido duro la velocidad de lanzamiento para que sea 2000s y z, que es un poco como un súper salto, si se quiere. Sin embargo, todavía puedes hacer esto mientras estás en el aire. Así que eso es un poco divertido. Y luego tengo la entrada C establecida para agacharse y agacharse cuando solté el CQI. Ahora cuando haga esto, vas a notar algo. Presiono la tecla C y whoops, déjame hacer eso. Una vez más. Presiono la tecla C y la cámara baja y vuelve a subir. Cuando me agaché, mi personaje no entra en una animación agachada. Tendría que hacer un poco más de trabajo para engancharme eso. Pero no vamos a entrar en declaraciones, queso y cambiar nuestras animaciones, todo ese tipo de cosas. Pero notarás que esto en realidad está bajo el capó, agachando a mi personaje, es decir, que está bajando mi cámara, está ralentizando la velocidad de movimiento de mis jugadores. Y luego cuando me agaché, volví a altura normal de la cámara, a la velocidad de movimiento normal. Ahora bien, un par de cosas que vale la pena señalar aquí para todas estas funciones, el objetivo es el carácter, y no tenemos nada enchufado a este objetivo. El objetivo simplemente se fija a uno mismo, lo cual es válido en esta situación porque Esto es, nuestro yo es una clase de carácter por lo que no tenemos que enchufar nada en él. El yo es una cosa perfectamente válida para haber dicho aquí. El objetivo es nosotros mismos, que es un terceraPersonaPersonaje. Ahora también vale la pena señalar que puedes encontrar acceso, hacer uso de estas funciones dentro de otro Blueprint. Así que permítanme demostrarlo rápidamente subiendo a mi plano de nivel. Notarás que aquí hay algún espacio vacío. Si simplemente hago clic derecho y hago una búsqueda de lanzamiento, teníamos esa función de lanzamiento dentro de nuestro ThirdPersonCharacter. No lo encuentro. Puedo encontrar algunas otras funciones con la palabra lanzarlo, pero no mi personaje de lanzamiento. Se comprueba el contexto sensible aquí. Este no es un plano de clase de caracteres. No lo vas a encontrar. Ahora bien, si desmarca esto, ahora puedo ver que no estamos buscando a través de la sensibilidad al contexto. Y ahora bajo nuestro personaje, podemos encontrar nuestra función de personaje de lanzamiento. Esto pertenece bajo la clase de funciones de carácter. Sigamos adelante y agreguemos esto a nuestra gráfica. Y es decir, bien, quieres llamar a esta función Eso es genial. El objetivo es celular, así que dame un objetivo. Ahora bien, si tuviera que simplemente tener un cubo existente en mi nivel como lo he colocado antes de tiempo aquí. Tenga en cuenta que eso está seleccionado. Permítanme traer una referencia a eso manteniendo pulsado el clic izquierdo arcaico. Si trato de enchufar esto como objetivo, va a decir, No, ese no es un objetivo válido. No puedes hacerlo. El objetivo que buscamos es un personaje. Así podríamos obtener una referencia a nuestro terceraPersonCharacter y conectarlo a él. Y entonces esto funcionaría. Ahora, para ello, necesitamos obtener una referencia a nuestro personaje. Tengo esta variable de referencia de personaje que creé anteriormente en el curso. Pero si hago clic derecho sobre esto y encuentro referencias, debo haber destruido el contenido de esta variable, por lo que actualmente esta se establece en nada. ¿Bien? Todavía podemos obtener una referencia a nuestro personaje de tercera persona por otro medio. Y ya me has visto hacer esto antes. Haga clic derecho en el personaje jugador de deuda Tenemos esta función pura que devolverá un personaje jugador. Pero no sabe qué personaje queremos estar buscando aquí. Así que hagamos un ThirdPersonCharacter Cast to ThirdPersonCharacter. Va a decir, bien, tu personaje jugador, es ese un personaje en tercera persona? Y si es así, podemos llamar a algunas funciones que estén relacionadas con ese personaje. Y el ThirdPersonCharacter puede hacer uso de esta función de personaje de lanzamiento porque el personaje en tercera persona es una clase de personaje que es un objetivo válido. Solo necesito simplemente suministrar en entrada aquí, Hagamos clic derecho para buscar la tecla ocho. No creo que estemos haciendo uso de la llave ocho y cualquiera de nuestra hierba aquí solo en nuestro gráfico de eventos aquí. Bien, sigamos adelante y enchufemos esto. Compila, vamos a guardarlo. Y ahora si tuviera que jugar, pongamos nuestro objeto de depuración para que sea eso para que podamos ver este ardiente apagado. Y entonces ahora si presiono la tecla, woops, en realidad está tratando de llamarlo, pero no me senté a una velocidad de lanzamiento, así que eso sería un problema. Eso es o velocidad de lanzamiento para ser 2000. Sí, ese es un detalle importante ahí mismo. Y presionando la tecla Alt, ahora podemos llamar a esa función de lanzamiento. Entonces una vez más, siempre y cuando tengas una referencia a esa clase dada, puedes llamar a funciones específicas de esa clase. Bien chicos, eso va a hacerlo todo por este video, veremos en el siguiente. 58. Funciones de los componentes: Bien, entonces en el último par de videos, hemos explorado actor de funciones y funciones de clase. En este video, vamos a estar explorando las funciones de los componentes. Vamos a explorar cómo encontrarlos y demostrar algunos. Ahora bien, esto plantea la pregunta, bueno, ¿qué carajo es una función componente? Bueno, es simplemente una función que apunta que es afectar a un componente específico dentro de un plano. Ahora para presumir de esto, vamos a estar usando nuestro blueprint bp thirdPersonCharacter. Ahí es donde lo puedes encontrar. Entonces haz doble clic en eso para abrirlo. Antes de filmar este video, seguí adelante y creé algunos guiones solo para hacer esto un poco más breve en cuanto al tiempo. Y sobre el gráfico de eventos, lo que tengo en su lugar es que he colocado los tres componentes diferentes en mi gráfica. Ahora bien, estos son respectivamente mi componente de espada entre comillas, es decir, un componente de malla estática. El siguiente componente con el que vamos a trabajar aquí es nuestro Componente de Malla. Y eso es saltar de nuevo a la ventana gráfica aquí. Esta Malla Esquelética que representa a nuestro personaje, esta mujer maniquí, si se quiere. Y entonces el último componente que tenemos es nuestra cámara de seguimiento. Y simplemente saltando de nuevo a la ventana gráfica o seguir a la cámara es este componente ahí mismo, esa cámara. Entonces, ¿cómo agregamos estos a nuestra gráfica? Bueno, como sabes por las variables, simplemente puedes arrastrar y soltar para agregarlas a tu gráfica. Entonces obtienes una referencia a ese componente dado. Y si arrastras fuera de estos, puedes encontrar funciones específicas ese componente que son sensibles al contexto y funcionan con ese componente. Entonces lo que tengo aquí está fuera de mi espada, simplemente me drogo e hice una búsqueda de set static mesh. Pero si te estás preguntando dónde existe esto, si vas a establecer una malla estática, puedes ver que está en la categoría de imagen estática de componentes. Y lo enumero justo arriba su malla estática de componentes. Entonces, si simplemente saliéramos de esto y entráramos bajo componentes y entráramos bajo una malla estática. Puedes ver que tenemos esa función que podemos agregar o podemos agregar la función pure get local bounds. Pero ésta es mucho más visual. Ahora abajo aquí, para estos componentes de malla, simplemente hice una búsqueda bajo la categoría de componentes, componentes, componentes de malla pelada. Puedes ver que tenemos muchas funciones diferentes aquí para esto. Pero para este solo quería simplemente cambiar la Malla Esquelética asociada con eso. Y por eso, de lo que estoy hablando aquí es con nuestros componentes de malla seleccionados, vamos a estar intercambiando la Malla Esquelética asociada con eso. Es muy visual. Entonces puedes ver el objetivo aquí es el componente de malla desollada que está hablando de esto aquí mismo. Por último, tenemos la cámara de seguimiento. Entonces tenemos algunas funciones que son específicas de un componente de cámara. Y los puedes encontrar en el menú contextual bajo la categoría de cámara. Así que hay muchas funciones aquí para jugar también. Este es muy visual, el entorno, el campo de visión. Entonces, una vez más, el subtítulo bajo esta muestra a qué componente específico se puede apuntar. Bien, así que jugando a este súper visual aquí, vamos a configurar nuestra opción de depuración para que veas esto disparando. Entonces cuando presione la tecla F, vamos a cambiar nuestra, nuestra espada ahí por esa bola. Esa es la nueva malla que metí ahí cuando presioné la tecla G, nuestra malla aquí, esa mujer maniquí en lugar de Aaron va a ser intercambiada también. Así es, sólo un cubo. Y este cubo esquelético de aquí mismo está en el contenido del motor que es cubo esquelético. Por último, fíjese el, el campo de visión aquí cuando presiono la edad, se va a desplazar un poco. Bien, así que aquí vamos, Press y la tecla H como que la hace zoom un poco así. Y así ahí lo tienes. Puede agregar todo tipo de componentes aquí en el panel Componentes. Hay toneladas de ellas. Y así solo tenga en cuenta que para cualquier componente que pueda agregar, puede haber funciones asociadas a ese componente en particular, específicas de ese componente. Exploralos, juega con él, aprende haciendo, bien, eso va a hacerlo todo por este video, te veremos en el siguiente. 59. Crear funciones: Bien, bienvenidos de nuevo a todos. A lo largo de los últimos videos mostramos cómo encontrar diversas funciones que ya existen en Unreal. En este video, nuestro objetivo es mostrar cómo podemos ir creando nuestras propias funciones. Ahora bien, este es un concepto extremadamente poderoso dentro del scripting de blueprint. En ella esencialmente te permite crear cualquier funcionalidad que quieras. Ahora para la mayor parte de este video, vamos a estar haciendo algún trabajo dentro de nuestro personaje bp en tercera persona. Entonces te sugiero que abras a ese tipo. También tengo mi Plano de Nivel abierto a lo largo de la parte superior también. En primer lugar, es importante tener en cuenta que las funciones se pueden crear dentro de un plano de clase o un plano de nivel. Entonces solo para presumir, comenzando con mi plano de nivel o en el panel Mi Blueprint. Tienes una sección para funciones. Así que las funciones se pueden crear aquí dentro de un Blueprint de Nivel. Adicionalmente dentro de un Blueprint de Clase como nuestro ThirdPersonCharacter, encontrarás esa misma sección de funciones para que puedas crear una aquí también. Bien, ahora hablemos de diferentes formas crear funciones. Bueno, tenemos este botón Agregar justo aquí arriba. Puedes hacer click en eso, crear una función de esa manera. Otra forma es con el encabezado de la función aquí mismo, puedes hacer clic en este botón que creará una función. Y la tercera y menos obvia forma es en cualquiera de estos encabezados, gráficos, funciones, macros, variables, etc Simplemente puedes hacer clic derecho, y déjame simplemente hacer clic derecho en este encabezado de gráfico aquí. Y sacará a colación este mismo menú que obtuviste al dar clic aquí mismo. Entonces puedes agregar una función aquí. Y si creo cuando así lo voy a agregar a mi categoría de funciones. Voy a darle un nombre a esto de inmediato y llamar esto modificar salud porque voy a crear una función que modifique la salud de nuestro jugador. Y tenga en cuenta que cuando hicimos clic para agregar una función, ya sea aquí, aquí o aquí función, lo que hemos hecho es que también hemos abierto una nueva pestaña justo arriba en la parte superior. Entonces lo que tienes ante ti es simplemente un nodo de entrada, en nodo de entrada a tu función. Y aquí en el resto de la gráfica, llega a crear qué funcionalidad quieres que esta función tenga una al final, necesitas agregar unas notas de retorno voy a hacer clic derecho y algunas vacíe el espacio y agregue un nodo de retorno de inmediato, simplemente haga clic con el botón derecho y escribiendo a cambio en la parte inferior, puede agregar un nodo de retorno. Ahora, de nuevo, aquí es donde vamos a estar construyendo lo que realmente hace este nodo de función. Pero mientras estoy construyendo esto, creo que sería útil si en el gráfico de eventos, simplemente arrastrara y soltara este nodo de función en mi gráfica. Entonces aquí vamos, arrastrándolo y soltándolo. Ahora es azul. Al ver al objetivo es un personaje en tercera persona porque lo estamos construyendo aquí dentro de nuestro personaje de tercera persona. Entonces ese va a ser el objetivo predeterminado. Y tenga en cuenta que todo lo que tenemos aquí es una ejecución en pluma y ejecución fuera pin y un objetivo. Pero podemos agregar más pines, más pines de datos en el lado de entrada o en el lado de salida. Y vamos a presumir de eso un poco aquí en este video. Entonces así es como se ve actualmente el nodo de función. Y a lo largo de este video vamos a estar modificándolo un poco. Volvamos a nuestra función de modificación de salud y construyamos alguna funcionalidad. Entonces lo primero que quiero agregar a esta función es una entrada. Quiero poder tener la capacidad de ingresar cuánta salud o daño va a estar recibiendo nuestro personaje. Entonces para hacer esto, necesito seleccionar mi nodo de entrada aquí, mi Modificar salud, y otra vez en el panel Detalles donde dice entradas, Hagamos clic en este botón más para agregar una entrada. Ahora nos va a permitir nombrarlo enseguida. Por defecto, debería mostrarse como un booleano. Sin embargo, se puede cambiar el tipo. Se muestra como un flotador para mí porque estaba haciendo algunos trabajos de preparación antes de este video. Entonces cámbialo a un flotador. Y nuevamente, puedes hacerlo dando click aquí. Y cambiemos el nombre de esta entrada para que sea sanación o cantidad de daño. Ahora, tenga en cuenta que si salto de nuevo a mi gráfico de eventos aquí, donde colocamos nuestra función de modificar salud, ahora veo en el lado de entrada de nuestra función la capacidad de ingresar una variable flotante, una sanación de salud o cantidad de daño. Entonces es un poco engañoso cuando estás construyendo tus funciones aquí. Aquí selecciona este nodo de entrada y luego agrega una entrada. Y la razón por la que es un poco engañosa es que piensas que las entradas están en el lado izquierdo de un no-no. Pero aquí en esta nota de entrada, la está mostrando en el lado derecho del nodo. Así que la primera vez que estaba aprendiendo todo esto, lo he sentido bastante confuso. Sin embargo, en la función resultante final que podemos ver en nuestro gráfico de eventos, cuando arrastras y sueltas esta función en el gráfico mismo, sí aparece como entrada en el lado izquierdo de un nodo. Por lo que se puede ingresar un valor flotante de salud o daño que se va a recibir. Bien, sigamos adelante. Lo que quiero hacer es sacar de nuestra salud o cantidad dañada en la que vamos a estar incurriendo. Voy a traer una señal mayor que. Queremos hacer algo si nuestra salud o cantidad de daño es mayor que cero, o lo vamos a hacer es arrastrar fuera de aquí, traer un nodo de sucursal. Tenemos que mantener este flujo de ejecución pasando por aquí. Entonces vamos a evaluar, es la montaña sanadora o dañada mayor que cero. Y si es así, vamos a arrastrar fuera de aquí y vamos a tocar sonido a D. De hecho, voy a darle a Control C y Control V para copiar esto porque queremos tocar un sonido, ya sea que esto sea verdadero o falso. Ahora bien, si es cierto, el sonido que quiero tocar se va a llamar el laser push. Si es falso, el sonido que quiero tocar se llama sondeo láser. Ahora, al simplemente pasar el cursor sobre este polo láser, se puede ver que el camino para esto está en las carpetas de contenido del motor. Entonces, si estás jugando en casa, no ves el láser empujando el pool láser. Justo aquí. Tienes este ícono de engranaje. Asegúrate de que tienes marcado el contenido del motor de espectáculos, entonces tendrás acceso a estos dos. Bien, entonces sondeo láser para esto. Entonces dependiendo de si la cantidad entrante es mayor a cero, vamos a reproducir un sonido. Si no es mayor que cero, vamos a tocar otro sonido. Esos son como efectos de tipo más positivos o negativos. Bien, entonces lo que también queremos hacer aquí es arrastrarse fuera de esta cantidad que vamos a estar ingresando. Y voy a golpear el símbolo Plus. Vamos a agregarle algo. esto queremos sumar va a ser nuestra salud aquí mismo. Así que vamos a arrastrar y soltar nuestra salud justo encima de esto. Eso nos dará un getter enseguida. Entonces vamos a agregar eso, la cantidad viene a nuestra salud. Y luego vamos a establecer eso para que podamos simplemente arrastrar y soltar nuestra salud en la salida para traer en un centro. Ahora lo que quiero hacer es traer de esta manera por aquí para poder ponerme esto así así. Y así cuando esencialmente estoy diciendo aquí, es que pase lo que pase, si la cantidad que entra es mayor a cero o no, quiero agregar eso a mi salud actual. Voy a tocar un sonido independientemente de si es mayor que cero o no, un sonido positivo o negativo, entonces vamos a establecer eso como nuestro nuevo valor para la salud. Entonces voy a enchufar esto a nuestro regreso. Pero por último pero no menos importante, puedo arrastrar y soltar esto en el nodo devuelto para agregar un pin a nuestro regreso. Para tener en cuenta que una vez que haga esto, simplemente arrástrelo y suéltelo ahí. Se va a sumar una salida justo aquí arriba. Pero probablemente queremos darnos un nombre mejor del que solo se obtiene la salida. Entonces voy a nombrar a esta salud actual. Así. Ahora algo más que quiero hacer aquí es que quiero poder sujetar esta salud porque digamos que ya estamos en plena salud y la cantidad entrante va a sumar a nuestra salud que nosotros técnicamente podría tener más de 1.0 de salud. Podemos tener más del 100% de salud. Entonces, la forma en que puede asegurarse de que esto se sujeta a unos valores dados para traer en un nodo de abrazadera. Así podría arrastrarme fuera de aquí. Mecanografiar en pinza. Queremos sujetar nuestro flotador y queremos asegurarnos de que sea 0-1. Eso es un poco agradable. Entonces solo voy a cablear esto así para asegurar que aunque estemos recibiendo una cantidad saludable eso va a sumar a nuestra salud y hacerla superior a 1.0. Que no importa lo que se vaya a quedar en 1.0 no puede ir por encima de eso, así que asegúrate de hacer eso también. Ahora, échale un vistazo. Esta es nuestra, esta es nuestra función aquí mismo. Esta es una funcionalidad que estamos agregando en nuestro gráfico de ventilación con su función de modificar salud agregada a nuestra gráfica, tenemos esta cantidad de daño del sanador de entrada, y en el lado de salida, nuestro gráfico de ventilación con su función de modificar salud agregada a nuestra gráfica, tenemos esta cantidad de daño del sanador de entrada, y en el lado de salida, puede dar salida a nuestra salud actual. Ahora algunos detalles importantes antes de terminar este video en el panel Detalles con sus funciones seleccionadas, eche un vistazo a nuestras entradas aquí. Tenemos este talón o los dañamos. Y tenemos esta pequeña flecha desplegable. Si haces clic en esto, puedes establecer un valor predeterminado para esto. Por lo que actualmente es 0.0, que se puede ver reflejado en el propio nodo de función. Si tuviera que cambiar esto a 0.5, puede ver que una vez que golpee Enter, va a ser muy duro. Pon eso ahí dentro. Bien. En realidad no quiero eso por ahora, pero solo pensé en señalarlo que puedes establecer un valor predeterminado ahí. Déjame volver a poner eso a cero. Y además tienes esta opción de pase por referencia. ¿Qué significa eso? Bueno, pasó por una opción ref o pasada por referencia permite decirle a la función que sea cual sea variable que esté enchufando a esta, esa es la variable que desea cambiar. Esencialmente te permite obtener y establecer una variable al mismo tiempo. Ahora vamos a entrar en esto un poco más en el siguiente video. Pero solo quiero señalar aquí que si tuviera que marcar esta casilla, tenga en cuenta que este pin va a cambiar a partir de este tipo de forma circular, también. Un poco más de esta forma de diamante. Bien, voy a desmarcarlo por ahora. Y una vez más, lo mostraremos un poco más en el siguiente video. Algunas cosas más que necesitas saber aquí es que si tuviera que hacer doble clic en esta nota de función estoy en mi Gráfico de Eventos. Vigila lo que sucede. Haga doble clic. He saltado de mi gráfico de eventos a mi gráfico de funciones. Entonces aquí, Esa es una manera rápida y fácil de ver qué está haciendo esta función. Y eso te saltará directamente a tu gráfica de funciones. Punta muy práctica. Un par de notas más sobre las funciones que creas. No puedes tener nodos latentes como un nodo de retardo o una línea de tiempo dentro de tu función. Esa es una limitación de funciones. Y algo más a tener en cuenta sobre las funciones. Con las funciones solo obtienes un pin de ejecución y un pin de ejecución, es decir, una ejecución adentro, una ejecución out. Si necesitas más, macros, son el camino a seguir ahora, en el futuro, agregaremos algunos videos hablando de macros. Pero chicos, eso sí va a ofrecer este seguimiento en el siguiente video donde vamos a hablar de llamar a funciones. Nos vemos ahí. 60. Funciones de llamadas: Bien, en el último video, terminamos de crear una función dentro de nuestro bp thirdPersonCharacter. Y así lo convertimos en el target donde sea que crees tu función que será el target. En este video, vamos a aprender cómo podemos hacer llamar a esta función tanto desde un Blueprint de clase aquí mismo dentro de nuestro personaje de tercera persona, como desde un Blueprint de nivel. Así que vuelve a entrar en tu plano de personaje de tercera persona. Y si olvidaste dónde estaba eso, has estado viviendo bajo una roca en alguna parte. Aquí está el camino para que ese doble clic sobre ese tipo lo abra. Ahora, he agregado esto a mi gráfica en el último video. Déjame simplemente borrar esto y hacer una actualización aquí cómo podemos agregar eso a nuestra gráfica aquí, voy a hacer clic derecho y algo de espacio vacío. Entonces, en busca de un nodo de eventos, porque queremos comenzar con un evento F3. F3, no lo sé porque me imaginé que no estaba en uso. Ahora un par de formas en las que podemos ir agregando esta función a nuestra gráfica. Una forma es que podemos hacer clic derecho y algún espacio vacío aquí y hacer una búsqueda para ello. Modificar la salud, esa es una forma en la que podríamos agregarla. De otra manera, permítanme borrar eso es simplemente arrastrarlo y soltarlo desde nuestra sección de funciones por aquí. Arrastre. Y si lo dejas caer en el panel de ejecución aquí mismo, lo va a enganchar enseguida. Entonces simplemente vamos a arrastrar fuera de esto y traer un nodo de cadena de impresión. ¿Correcto? Y vamos a enganchar esto en nuestra salud actual a la cadena solo como un repaso si haces doble clic en tu nodo de función aquí. Bueno, lo estamos haciendo es que estamos tomando una cantidad de salud o daño. Vamos a estar agregando eso a nuestra salud actual. Vamos a estar sujetándolo entre estos dos números y vamos a estar fijando eso como nuestro nuevo valor para la salud. Y entonces vamos a estar pasando eso por el otro lado de nuestra función aquí. En este caso, vamos a estar pasándolo fuera de este nodo. Observe la salud actual, ese es el pin de salida de nuestra función aquí. Y simplemente vamos a imprimirlo en la pantalla. Además, necesitamos codificar en cantidades de curación o daño. Entonces, ¿vamos a empezar con cuánta salud? Bueno, dentro de nuestra modificamos salud, aquí mismo, nuestra variable de salud. Esto es lo que vamos a empezar con 1.0 salud. Eso es lo mismo que vemos en el panel Mi Blueprint con esa variable de salud seleccionada 1.0. Entonces, ¿con qué queremos modificar esto? De nuevo, podemos sanar o dañar. Entonces lo que voy a hacer es establecer esto en cantidades dañinas. Así que vamos 0.5. Y porque queremos que esto haga daño, hagamos 0.5 negativo. Entonces los números negativos van a dañar. En este caso, los números positivos van a sanar. Bien, vamos a compilar, asegurarnos de que nuestro script se vea bien. Jugar. Déjame establecer mi depuración a mi terceraPersonCharacter aquí. Si presiono F3 aquí, pueden ver que reduce nuestra salud a la mitad. Y también viste 0.5 en la esquina superior izquierda aquí. Recuerde, nuestra variable de salud también está ligada a nuestro medidor de salud aquí. Entonces, si presiono esto una vez más, van a ver 0.0 y ahora nuestros medidores de salud se han ido. Ahora bien, si vuelvo a presionar F3, va a seguir mostrando 0.0 de salud. Y eso es porque en o modificamos la función de salud, estamos sujetando esta modificación de nuestra salud entre estos valores. Bien, ahora solo para presumir que esta función puede sanar así como infligir daño, modifiquemos nuestro original más sano. Modifiquemos el valor original de Salud para que sea, diremos puntos a. Así que vamos a empezar con sólo el 20% de salud. Y luego en nuestro gráfico de eventos vamos a cambiar nuestra curación o daño MT. Digamos que cada vez que llamamos a esto, vamos a sanar en un 10%, 0.1. Muy bien, así que esto puede funcionar en ambos sentidos. La forma en que tenemos esta configuración, estás haciendo clic en Reproducir. Así podemos ver que estamos empezando con un 20% de salud. Presiono F 3.3, 40%, 50%, 6070809100. Y claro, si traté de repasar eso, no puedo porque haciendo doble clic en nuestra función de modificar salud aquí, me va a saltar a esa gráfica. Estamos agarrando nuestro valor para la salud 0-1. Bien, así que hemos probado que se puede llamar a esta función desde dentro del plano en el que se creó. Pero, ¿puedes llamarlo desde otro plano? Y claro que la respuesta a eso es sí, se puede. Siempre y cuando tengas una referencia a tu terceraPersonCharacter en otro blueprint, puedes llamar a esta función. Y para demostrarlo, vamos a utilizar nuestro Plano de Nivel. Saltó de nuevo a tu nivel aquí. Y tengo un poco de configuración que puedes intentar replicar. Una vez más, tengo una caja de gatillo colocada dentro de mi nivel. Y como has visto en otros videos, puse la extensión de la caja en 200, 200, 200, el grosor de la línea a diez. Y simplemente volví al actor oculto y se le apagó el juego. Dentro de la sección de renderizado para que pueda ver este volumen disparador. Y entonces simplemente coloco una partícula de fuego. Esto se encuentra en mis contenidos iniciados, contexto iniciado. Dónde está la carpeta de partículas, ahí mismo. Un lugar que en el medio solo para hacer que toda esa zona parezca peligrosa? Y luego simplemente lo escalé diez veces. Entonces esta va a ser mi zona de peligro. Y la idea aquí es que cuando mi personaje se superpone a esto, se dañan. Así que sigamos adelante, selecciona tu caja de activación y salta a tu Plano de Nivel. Entonces lo primero que queremos hacer es que algo haya pasado cuando superpusimos esto. Así que hagamos clic con el botón derecho en Agregar evento cuando superpongamos esto. Y claro que sí necesitamos obtener una referencia a nuestro personaje de tercera persona. Si haces clic con el botón derecho y haces un personaje de jugador get, y tratas de arrastrar fuera de aquí e intentar encontrar esa función de salud modificar. Vas a estar como, ¿por qué no puedo encontrarlo? Si desmarcas sensible al contexto, estarás como, oh, ahí está. Bajo la clase BP, ThirdPersonCharacter. Oh, ahí está. Pero el problema es que no puedes simplemente conectarte, meter al personaje del jugador aquí. Entonces eso es un problema. La forma en que puedes obtener esta función de modificar salud, déjame eliminar de aquí es a través de casting. O si nuestra variable de referencia de caracteres aquí mismo. Si esto estuviera realmente poblado, si hubiéramos inicializado con nuestro personaje de tercera persona dentro, podríamos encontrar la función Modificar salud arrastrando fuera de allí también. Sin embargo, aquí vamos a utilizar el concepto de casting. Esa es una forma de verificar si en este caso el otro actor era lo que se superponía a esta caja Trigger. Así que vamos a arrastrar un personaje de aquí, elenco de dos terceras personas. Y si hacemos esto, si comprobamos para ver si el otro actor era el objeto que se superponía a la caja Trigger, entonces podemos sacar de aquí y encontrar esa función de modificar salud. Y si revisas sensible al contexto como lo hice ahí, y de repente desaparece, simplemente despeja la búsqueda arrastrada de nuevo, escribe Modificar salud, y la encontrarás. Una vez más. Una vez que tengas una referencia a tu ThirdPersonCharacter, puedes llamar a cualquier función que viva dentro de ahí. Puedes hacer referencia a cualquier variable que viva dentro de ahí, obtenerlas o establecerlas. Incluso puedes modificar cualquiera de los componentes en cualquiera de sus propiedades que vivan dentro de ese terceraPersonpersonaje. Así que conseguir una referencia a algo es enorme. Bien, este caso, ¿queremos sanar o dañar a nuestro personaje? Yo diría que los dañó. Así que vamos a la negativa 0.1. Y eso debería ser lo suficientemente bueno porque vamos a ver disminuir nuestro medidor de salud. Vamos a compilar esto. Déjame volver en mi terceraPersonaPersonaje. Asegúrate de volver a poner mi salud un valor de 11.0, 100%. Y vamos a jugar. Voy a configurar mi objeto de depuración aquí para que sea el mapa. Volviendo a sonar mi personaje. Así que estamos empezando con el 100% de salud. Yo me superpongo que están disparando volumen aquí, un poco de audio allá también. Cada vez. Una cosa más antes de que terminemos este video. En el último video, hablamos de una opción de pase por referencia dentro de nuestra función. Y tengo que volver a eso. Entonces para volver a saltar a nuestra función, aquí estoy en mi Plano de Nivel. Puedo saltar de nuevo a esta función haciendo doble clic sobre esto. Y fíjate que una vez que lo haga, voy a hacer la transición de nuestro Plano de Nivel. Haga doble clic en nuestro Blueprint de terceraPersonCharacter donde reside esta función de modificación de salud. Y nos ha abierto la pestaña Modificar función de salud. Siga adelante y seleccione su función de modificar salud en el lado izquierdo, o también puede hacer clic en el nodo Modificar entrada de salud. Y encima en el panel Detalles se puede ver que agregamos una entrada MT de talón o daño. Y eso equivale a esta entrada que ves en el propio nodo de función, eres am y mi Gráfico de Eventos saltando nuevo a la pestaña de función misma. Ahora bien, este pase por referencia del que empezamos a hablar en el último video, ¿qué rayos hace esto? Bueno, visualmente hablando, lo que van a ver pasar aquí es que una vez que marqué esta casilla, este pin de forma circular ahora va a ser reemplazado por unos pines en forma de diamante. Así que aquí vamos. Ahora es un alfiler con forma de diamante. Además, el valor predeterminado fue adiós. Ahora bien, si compilo este Blueprint, también notarás algo más compilar, nos sale un error y va a decir que esto no es válido, que deberíamos tener una entrada cableada en él. Entonces, ¿de qué se trata aquí? Déjame saltar de nuevo a mi Gráfico de Eventos está hablando de esta área aquí mismo diciendo, oye, necesitas algo conectado a esto. Ahora bien si estaba en mi modificar, como funcion soy como Por qué no tengo idea de lo que esta hablando esto. Este es un enlace. Simplemente puede hacer clic en él. Y te va a saltar directo a ella. Entonces está diciendo, oye, conecta una variable a esto. Entonces, para presumir esto, qué carajo hace pasar por referencia. Sí, necesito modificar nuestra función de modificar la salud sólo un poco. Y haciendo esto, voy a cambiar nuestro valor. En lugar de ir a escala 0-1, voy a romper temporalmente nuestro medidor de salud, si se quiere. Voy a decir que vamos a empezar con una salud de diez. Vamos a pretender que tenemos una escala de salud va de 0.02, 100.0. Bien, entonces lo que voy a hacer es que voy a agregar algo de salud. Y de nuevo, voy a ir con una escala de cero a 100 en lugar de 01. Digamos que nuestra salud para agregar, vamos a cambiar para ser, agreguemos una salud. Bien, déjame seguir adelante y enchufar esto aquí. Ahora voy a volar. Estoy siguiendo junto con nuestra función de ayuda modificada. Déjame hacer doble clic sobre esto. Una vez más, esencialmente estamos diciendo, Oye, estamos enchufando uno a aquí. Entonces vamos a agregar eso a nuestra salud existente, que es diez y aplaudiendo esto entre cero y vamos a sujetarlo a 100. Entonces podríamos tener 11. Y si presionamos de nuevo F3, esperaríamos que fuera a 12, etcétera. Pero aquí vamos a modificar una cosa más dentro de nuestra función modificar salud. Lo que vamos a hacer es que vamos a agregar en incrementos nodo a esto, arrastrar fuera de aquí y escribir en incrementos. Vamos a incrementar esta carroza. Y voy a volver a cablear las cosas un poco aquí, manteniendo pulsado Control, clic izquierdo y arrastre donde las cosas así como así. Vamos a tomar el resultado de esto y enchufarlo ahí. Y enchufa esto ahí. Vaya, me perdí ahí, como celular. Y así ahora nuestra función se ve así. Entonces, si compilo aquí, ¿ qué tenemos pasando? Bueno, en esencia, lo que estamos pasando es algo por lo que vamos a agregar una salud. Esto se está enchufando a nuestra función. Al sumar una salud, estamos incrementando ese número aquí mismo. Y si pasamos el cursor sobre esto, dice que va a agregar uno a ese valor especificado, y luego lo va a establecer. Entonces, en vez de la próxima AS incrementando nuestra salud, siendo una, entonces va a ser dos. Y entonces la próxima vez van a ser tres, y así sucesivamente y así sucesivamente. Volviendo a nuestro gráfico de eventos, deberíamos ver esto reflejado en nuestra cadena de impresión. Una vez más, ese medidor va a ser de ningún valor. Entonces sigamos adelante y jugador en él diciendo que tenemos este aire también en nuestro Plano de Nivel. Adelante y da clic en este mapa de prueba de nivel. lo que está hablando si haces clic en eso es porque no hemos enchufado nada aquí, voy a romper temporalmente eso. Sí. En cualquier lugar que tengas que te va a gritar y decir, Oye, necesitas algo enchufado a esa entrada. Muy bien, vamos a jugar a esto. Entonces presionando la tecla F3, ahora tenemos 12 salud, 15, salud, 19, salud, 24, salud. Y puedes ver que sigue sumando uno a la cantidad que agrega cada vez. Ahora la razón por la que esto empezó a las 12, déjame ir a jugar una vez más. Otra vez. Estamos empezando a las diez de salud que a sumar una o creemos que estamos agregando una excepto que vamos 10-12. Y la razón de eso es porque aquí mismo, estamos tomando este valor uno y lo estamos incrementando enseguida. Y al hacerlo, porque esto es un pase por referencia, también estamos incrementando esa variable. Recuerda en el último video que dije hacer esto pasado por referencia, donde quiera que hayas enchufado a este pase por referencia. Y no solo estás obteniendo este valor, también lo estás estableciendo de inmediato. Entonces, aunque empiece como uno, cada vez que pases por aquí, va a incrementar uno. Entonces 234, etcétera, etcétera. Un poco de matiz en el que pasé demasiado tiempo. Muy bien, ahí lo tienen, chicos. Eso es llamar a funciones. Puedes llamarlos desde dentro del plano en el que los creaste, o puedes llamarlos desde otros planos. Siempre y cuando se tenga una referencia al plano en el que fueron creados. Chicos, sí voy a ofrecer este. Nos vemos en la siguiente. 61. Collapse a la función: Bien, bienvenidos de nuevo a todos. En este video vamos a aprender a convertir una red existente de nodos dentro de cualquier blueprint en una función. Esto se llama colapsar a una función. Ahora bien este es un truco súper práctico. Cada vez que te encuentres duplicando una selección de nodos en diferentes partes de tu gráfica. Entonces, en lugar de hacer eso, podríamos simplemente convertir esas notas en una función y luego llamar a esa función cuando y donde quieras. Entonces actualmente estoy dentro de mi camioneta de ejemplo BP. Y digamos por ejemplo voy a hacer clic izquierdo y arrastrar eso. Estamos duplicando este bit de guión una y otra vez en varias partes de nuestra gráfica por cualquier razón. En lugar de copiar y pegar estos nodos, podemos resaltarlos todos tal como lo hice aquí. Y luego puedes hacer clic derecho en cualquiera de tus nodos resaltados, y luego hacer clic derecho en el menú, podrías colapsar para funcionar. De eso se trata este video. Esto lo voy a demostrar brevemente aquí, aunque no es aquí a donde me propongo ir con este video. Entonces voy a colapsar esto a una función. Tenga en cuenta que cuando lo hago, he reducido todos estos nodos en una sola función. En encima del lado derecho dice, ¿cómo quieres nombrar a esta función? Sólo voy a dejarlo como ese nombre temporalmente. Entonces voy a golpear entrar aquí. Y si me sumerjo dentro de esta función, están todos los nodos que crearon una función de todos esos nodos. Y el beneficio de esto es que entonces podríamos simplemente arrastrar y soltar esto en otras partes de nuestra gráfica y usarlo tal como lo haríamos si copiáramos y pegáramos todos estos nodos. Entonces esa es la ventaja de eso. Ahora, una vez más, aquí no es exactamente donde pretendía hacer esto. Así que déjame hacer el control Z aquí un montón de veces y que vuelva a su estado original. Voy a compilar y decir eso una vez más. Y vamos a crear una nueva Clase Blueprint aquí. Para demostrarlo, voy a hacer clic derecho y algo de espacio vacío aquí dentro de una carpeta Blueprints. Cambio el nombre de esta carpeta entre videos del actor BP a planos porque este no va a ser un plano de actor. Hagamos clic derecho en Clase Blueprint. Y la clase Blueprint que vamos a crear aquí es una búsqueda de sacudidas de cámara debajo de la sección de todas las clases bajo shake de cámara. Y estamos buscando base de batido de cámara. Y luego vamos a hacer click en seleccionar aquí abajo para poder crear esto, vamos a darle un nombre a esto. Voy a llamar a esto BP guión bajo, batido de cámara. Bien, entonces hagamos doble clic sobre esto para abrirlo. pocas palabras, lo que esta clase padre base de sacudidas de cámara nos permite hacer es que nos permite especificar algunos parámetros de vibración de cámara. Me doy cuenta de que hay un gráfico de mi plano por aquí. Hay un gráfico de eventos y todo este tipo de jazz es consistente con otros planos. Pero el corazón de una clase de padres de sacudidas de cámara es que puedes especificar algunos parámetros de vibración de cámaras, y luego podemos reproducir esos parámetros de vibración de cámara. Entonces, lo que vamos a hacer aquí en el panel Detalles está bajo root, shake, param, haga clic en este pequeño desplegable, haga clic en este pequeño desplegable, y queremos establecer esto en el patrón de sacudidas de la cámara del oscilador de onda . Una vez que lo hagamos, podemos hacer clic en este como desplegable. Y sí tengo algunos parámetros establecidos antes de tiempo para los intereses del tiempo. Ven por debajo de esta configuración de campo de visión F0 v. Ábrelo un par de veces. Queremos establecer nuestra amplitud cinco y nuestra frecuencia de cinco. Y el tipo de desplazamiento inicial se va a establecer en aleatorio. Más adelante, puedes jugar con estos parámetros, pero te sugiero que solo juegues o simplemente sigas en casa. Para que veas cuanto hace esto. Y luego más tarde puedes volver atrás y jugar con él y ver cuánto diferentes valores sacuden las cosas. Bajo la categoría de cronometraje, vamos a establecer una duración de 0.5 medio segundo. Aaron son tiempo de mezcla y tiempo de espera de mezcla. Vamos a establecer que sea 0.2, 5.0, 0.25. Genial. Adelante, guarda esto, y vamos a saltar a nuestro personaje en tercera persona. Así que volvamos a nuestro Navegador de Contenido. Planos de personajes de tercera persona. Haz doble clic en tu ThirdPersonCharacter para abrirlo. Ahora vamos a saltar a nuestro gráfico de eventos. Entonces ya no necesitamos esta función de modificar la salud. Y en nuestro evento los grafitos encuentran algún espacio vacío. Necesitamos una entrada de evento aquí. Entonces un evento de entrada, Hagamos F. Bueno, claro, F2 parece un buen evento de entrada aleatorio. Y ofrecer esto, vamos a arrastrar y escribir un nodo de función llamado play world camera shake. Aquí con este nodo de función, mira eso. Es un azul señaló que es un nodo de función. Podemos especificar una clase. Y aquí es donde entra nuestro batido de cámara B P porque si hacemos clic en este desplegable. Podemos ranurar en los parámetros de vibración de la cámara que acabamos de configurar en nuestro plano de sacudidas de cámara, bastante práctico. Ahora sí necesitamos especificar un epicentro. Es decir, ¿dónde queremos basar esta cámara sacudida de como, cuál es el epicentro? ¿Sabes cómo los sismos tienen epicentro? Bueno, los batidos de cámara necesitan un epicentro definido para ellos también. Para esto, vamos a decir, Oye, basemos en los componentes de la cápsula. Es decir, esta cápsula componentes que rodean nuestro carácter. Vamos a basarlo alrededor del centro de eso, ¿verdad? Entonces tenemos componentes de una cápsula. Vamos a arrastrar y soltar esto en la gráfica, obtendrá una referencia a ellos. Vamos a arrastrarnos fuera de esto al escribir aún ubicación mundial. Esto devolverá el valor de las coordenadas x , y y z. Entonces diremos que es nuestro epicentro esencialmente justo en medio de nuestro componente de capital. Ahora bien, necesitamos especificar un radio exterior aquí, esencialmente desde el epicentro, ¿hasta qué punto llega su cámara en juego? Vamos a sentarnos. 500 es nuestro radio exterior. Apenas mientras nuestra cámara vaya a estar dentro de ese radio, que si dejaste la configuración de tu cámara, por defecto, ese debería ser todo. Pero puedes jugar con esto, puedes expandirlo si quieres un poco más allá. Entonces lo que vamos a hacer es arrastrar fuera de esto. Y voy a traer un nodo llamado spawn sound attach. Ahora podríamos simplemente generar un sonido aquí, pero solo para mostrar alguna funcionalidad diferente, vamos a generar un sonido y luego adjuntarlo. Adjuntarlo dónde? Bueno, aquí lo vamos a unir a nuestro componente cápsula. Una vez más, sé que no tenemos que hacer esto. Podríamos simplemente tocar un sonido, pero vamos a seguir adelante y engendrar y adjuntar ese sonido. ¿Qué sonido queremos aquí? Vamos con una explosión, tipo en explosión a a la explosión P. Aunque cualquiera de estos realmente va a funcionar bien. Y alejando un poco aquí. Vamos a arrastrar fuera de esto y hacer un emisor de desove en la ubicación. Este es el viejo sistema de partículas. Si quieres usar un sistema de partículas del Niágara, podrías hacer un sistema de desove en el lugar. La razón por la que estoy haciendo emisor de desove es porque sé que tengo el efecto de partículas de explosión aquí mismo. Pero una vez más, también se puede utilizar en el sistema de partículas del Niágara. Y en realidad no quería hacer el emisor de desove en la ubicación de mi mal, hagamos un emisor de desove adjunto. Una vez más, solo para mostrar spawning mid o attach que podemos usar diferentes nodos de función aquí. Ranura en esa explosión. Ahí está. ¿Dónde queremos adjuntar esta explosión? Bueno, puedo extender esto desde mi componente de cápsula así. Haga doble clic en ese cable para introducir un nodo de reencaminar. Y eso debería casi hacerlo. Ahora bien, estos tres nodos de función son algo que convertiría en su propia función. Yo colapsaría estos en una función. Sí, puedes tener funciones que conforman otra función. Y la razón por la que diría que estos tres son válidos para hundirse en su propia función. Porque ahí hay un montón de efectos. Esencialmente algo así como los efectos de daño de un jugador. Vas a tocar un batido de cámara. Vas a tener un sonido de explosión y vas a tocar efectos de partículas de explosión. Entonces van todos juntos. Tiene sentido convertirlos en un solo nodo. Ahora cuando colapsemos en una función, voy a estar dejando fuera estos dos y verás por qué en solo un poquito aquí. Así que voy a hacer clic izquierdo arrastrar resaltar solo estos tres nodos. Entonces voy a hacer clic derecho en cualquiera de ellos y voy a colapsar para funcionar. Entonces eso va a traer un nodo de función como este como nueva función. Y vamos a darle un nuevo nombre a esto. Entonces sobre en el área de funciones donde creó eso para nosotros, Vamos a golpear F2 en esto, y voy a llamar a esto simplemente daño de jugador. Jugador dañado f x Eso parece bastante bueno. Ahora puedes ver por encima en el lado derecho ya está creado nuestras entradas para este nodo de función, pero aquí tenemos un par que son redundantes. Así que en realidad puedo simplificar esto un poco. Así que permítanme ampliar un poco mi panel de detalles aquí. Tengo adjunto al componente y adjunto un componente también. Pero están pegando a los mismos componentes. Así que en realidad puedo eliminar uno de estos. Eso va a funcionar bien. Ahora, vas a conseguir este cable rojo y eso va a parecer espantoso. Entonces simplemente haga clic derecho sobre esto, actualice el nodo, se deshará de eso. Podemos deshacernos de este tipo de aquí mismo. Si quisieras, podrías renombrar tus entradas pero epicentro y apegadas a componente o simplemente bien, podría eliminar esto, ya sabes, simplificar esto un poco más, hacer que esto se vea un poco limpiador. Algo como esto. Si me sumerjo en esto un nodo de función, observe lo que tenemos pasando. Tengo los componentes de mi cápsula. La ubicación mundial del componente católico y enchufarlo al lado de entrada de mi función. Dentro de mi función. Estos se están pasando como el epicentro y los dos componentes adjuntos para ese sonido y el emisor. Ahora realmente se deshizo porque eliminé esa entrada inferior, los dos componentes adjuntos en realidad necesitan cablear esta copia de seguridad. Pero nuevamente, lo mismo apegado a los componentes funciona para ambos de estos. Así que puedes traer algunos nodos redireccionados aquí para limpiar un poco esto, así. Y en realidad, voy a ir así, mantén pulsada la Alt, clic izquierdo. Esta es una configuración válida como esa. Bien, compilar y guardar esto. Volviendo a mi gráfico de eventos, eso se ve bonito y limpio, Vamos a saltar y jugar y ver cómo se ve esto. Así puedo estar corriendo por aquí mismo. En realidad déjame establecer mi opción de depuración a mi personaje ahí para que veas que esto se dispara. Bien, así que presionando F2, boom, viste que la cámara temblaba solo un poco, una especie de efecto de zoom ahí. Para que pueda moverme y presionar F2. Y ahora lo que podrías hacer es si quisieras, puedes volver a saltar a tu función que acabas de crear aquí. Podrías cambiar tu sonido, podrías cambiar tu explosión. Vamos a ir con llama por el momento, ¿verdad? Llama, lanzallamas. En realidad no lanzallamas. Quiero ir incendios de fuego. Al que quiero ir con algo así como un incendio en lugar de explosión haciendo clic en jugar aquí. Cuando presiona F2. La razón por la que elegí fuegos, porque recuerden lo que estábamos haciendo con ese nodo de función en particular es que respondíamos a ese emisor y lo estábamos adjuntando. Entonces esa es la diferencia entre solo desovar un sonido y desovar un sonido y adjuntarlo. Yo quería presumir eso solo para mostrar algo extra. Bien, de vuelta en nuestro gráfico de eventos aquí, qué podrías hacer si no quisieras y no quisieras mantener todos estos colapsados a una función. Puedes hacer clic derecho sobre esto y podrías expandir el nodo así. Y luego te llevará de vuelta a donde tenías cosas. Querías ver qué es lo que hay dentro de ahí. Sólo voy a darle a Control Z para deshacerlo porque me gusta que todo se derrumbó a una función. Ahora, solo un par de cosas que quería mencionar antes de concluir este video, permítanme volver a sumergirme en mi función dañada de reproductor aquí. Voy a seleccionar estos nodos, controlar C y controlar V. No se puede, no se puede tener un nodo latente en un colapso de la función. Lo que va a pasar es irreal, te gritará. Entonces, si así lo traigo un nodo de retardo, manteniendo pulsado el clic izquierdo. Entonces, digamos que quería colapsar los cuatro en una función. Voy a resaltarlos clic-derecho, Contraer para funcionar. Me va a gritar y decir: No podemos hacerlo. Mostrar el registro de mensajes. Vamos a mostrar el mensaje largo y dice: Oye, retraso no se puede colocar en el gráfico de funciones. De igual manera, si me deshago del retraso, vamos a traer un nodo de eventos. Hagamos F ocho. Claro. Intenta traer un evento de entrada o cualquier evento a tu función de esta manera , haz clic derecho, Contraer para funcionar. También vas a recibir otro mensaje diciendo: Oye, tampoco puedes tener un nodo de eventos ahí dentro. Entonces solo para tu información, cuando estás tratando de colapsar para funcionar. Entonces chicos, ahí lo tienen. Colapsar para funcionar, muy recomendable si se trata de una colección de nodos que va de la mano y es solo algún script que repites una y otra vez en varias partes de tu gráfica porque eso servirá para ofrecer este, te veremos en la siguiente. 62. Funciones puras e imperfectas: Hola y bienvenidos de nuevo. En este video, nuestro objetivo es detectar y entender las diferencias entre funciones puras e impuras. También te mostraremos cómo puedes designar que es hacer una función ya sea pura o impura. Ahora para facilitar esta discusión, voy a estar trabajando dentro de mi personaje de tercera persona. Entonces, si quieres seguir el juego en casa, aquí es donde te sugiero que tuviste. Y una vez más, puedes meterte dentro de tu personaje de tercera persona viniendo debajo de este directorio y haciendo doble clic en tu personaje de tercera persona. Bien, hablemos de algunas diferencias entre nuestras funciones puras e impuras. Bueno, para empezar, hablemos de las funciones puras. Estas son las funciones de color verde y aquí hay algunos ejemplos por aquí. Estos generalmente se usan como funciones getter que solo generan algunos datos. Entonces esa es una de las claves con funciones puras. No tienen ningún pin de entrada o salida de ejecución. Entonces, si nota nuestros tiempos de deuda segundos, solo generaremos nuestro tiempo en segundos obtenemos la ubicación real, solo generaremos la suma de las coordenadas x, y y z. No se necesitan pines de entrada o salida de ejecución para obtener el valor de, en este caso, nuestra ubicación real o tiempo en segundos. Ahora bien, ¿cuándo corren estos? Ya que no tenemos pines de ejecución que fluyan a través estos en el lado de entrada o el lado de salida. ¿Cuándo corren? Bueno, corren cuando se usa el valor de retorno. Entonces solo para demostrar esto, he conseguido tick de evento que va a despegar cada fotograma. Tenemos esto enganchado en un nodo de función impura de cadena de impresión. Vamos a enchufar esto aquí. Un valor flotante en una cadena. Va a convertir ese flotador en una cadena. Y lo que va a pasar aquí es cada fotograma, se va a disparar hasta esta cadena de impresión para imprimir algo en la pantalla. Cuando lo haga, va a llegar nuevo por aquí para obtener nuestro tiempo en segundos. Esto se ejecuta, se ejecuta cuando se invoca su valor de retorno. Entonces déjame seguir adelante y jugar aquí. Se puede ver como esto está regresando nuestro tiempo de juego en segundos y está contando hacia arriba desde cuando empezamos a jugar. Ahora algo más a tener en cuenta sobre las funciones puras es que prometen no modificar el estado o los miembros de una clase objetivo de ninguna manera. En nuestro ejemplo aquí va a ser nuestra ubicación de actor get. El objetivo aquí es un actor. Y debido a que estamos dentro de nuestro plano de personaje en tercera persona, el objetivo aquí siendo yo mismo, sería nuestro personaje de tercera persona. Lo que notarías con este nodo de función pura es que no va a cambiar en absoluto el estado de este actor. Simplemente va a devolver la ubicación de nuestro personaje de tercera persona. Contraste esto con nuestra función impura de ubicación de actor set. No, esta azul. Este puede cambiar el estado de nuestro objetivo, nuestro actor o personaje en tercera persona aquí. Y puede cambiar el estado cambiando la ubicación del mismo. Entonces esa es una de las diferencias clave también. Entonces con una función pura, haces una pregunta, cuál es la ubicación de un actor, por ejemplo, y obtienes una respuesta y una ubicación XYZ en este caso. Ahora, sólo para presumir algunas de estas funciones puras dando salida a algunos datos que se solicitan. Ya has visto que los usuarios obtienen tiempo en segundos. Permítanme simplemente enchufar esto, obtener la ubicación real. Nuevamente, esto va a estar disparando de cada fotograma. Y porque voy a estar moviéndome, vas a ver esta actualización. Conseguir la ubicación de mis actores, la terceraPersonaPersonaje. Estas son las coordenadas donde el tercer personaPersonaje actualmente se encuentra el tercer personaPersonaje dentro del mundo. Entonces podría simplemente dar salida al nombre para mostrar de nuestro controlador de reproductor. Así. Una vez más, nuestro controlador de reproductor es como las cuerdas de títeres que controlan nuestro maniquí aquí mismo. El controlador del reproductor, al igual que un repaso aquí, está configurado en la configuración de tu proyecto. Esto es un poco tangente bajo mapas y modos. Entonces el controlador del reproductor que hemos configurado en nuestros mapas y modos y la configuración del proyecto es ese controlador de jugador bp. Entonces solo estaba dando salida a ese nombre. Una vez más con una función pura, haces una pregunta. Lo que es un actor es la ubicación, por ejemplo, y obtienes una respuesta. Y ahora volvemos nuestra atención a las funciones impuras, es decir, las funciones de color azul. Una cosa que notarás de ellos es que sí tienen ejecución en pines y pines. Y eso significa que porque tienen una ejecución en pin, debes ejecutarlo explícitamente conectando algún cable en él. Ya sea que tengas o no algo saliendo del otro lado, eso es completamente opcional. Pero para que esto alguna vez haga algo, hay que tener algún cable fluyendo hacia él. Otra diferencia entre una función impura versus la función pura. Y me acabo de dar con esto hace un momento, es que una función impura puede pero no tiene que modificar el estado de una clase. Entonces, en el caso de nuestra ubicación de actor set aquí, esto podría modificar el estado. De nuestro objetivo, nuestro yo aquí son terceraPersonaPersonaje, y modificaría nuestro estado dándole una nueva ubicación. Nuevamente, esta función es impura porque cambia el estado que es la ubicación de la clase. En este caso, nuestro personaje en tercera persona dentro del mundo. Entonces ahora la pregunta se convierte con son funciones creadas, ¿cómo las haces puras o impuras? ¿Cómo lo designa? Bueno, con la función, selecciónala por aquí y voy a seleccionar nuestra función player damage fx. Si lo seleccionas en el panel Detalles, tienes una casilla de verificación especificando si esta va a ser una función impura o una función pura por defecto, si arrastro y suelto esto, puedes verlo como de color azul. Es una función impura. No obstante, si tuviera que marcar esta casilla, podría convertirla en una función pura. Entonces esta es la versión impura. Déjame duplicar esto rápidamente así voy a hacer clic derecho sobre este reproductor. El daño afecta la función. Voy a duplicarlo. Control D es la tecla de acceso rápido para eso. Y voy a llamar a este jugador FX dañado. Y voy a poner un espacio aquí y simplemente llamar a esto puro. Bien, y puedes ver que abrió una pestaña completamente nueva aquí. Lo que voy a hacer es con esta función seleccionada, voy a seleccionar la opción pura aquí mismo. ¿Bien? Entonces ahora aparece nada ha pasado aquí en nuestra gráfica de funciones en sí. Podría cerrar esto, pero voy a volver a nuestro gráfico de eventos aquí y arrastrar y soltar a este tipo en la gráfica. Una vez más, las funciones puras son verdes versus nuestras funciones impuras son azules. Tenga en cuenta que este no tiene pines de ejecución en ninguno de los lados, mientras que la función impura sí. Ahora bien, esta función aquí arriba no nos sirve de la manera en que la hemos diseñado porque no tenemos forma de llamarlo a esto. Y no da salida a ningún tipo de datos. Entonces esta no es una gran función para convertirse en una función pura. Uno no sirve para nada en este foro. Así que voy a eliminar esto. De hecho, voy a eliminar esta función, no la necesito. Y voy a tratar de traer un ejemplo donde esto pueda tener sentido. Para que esto se demuestre, se demuestre, voy a duplicar nuestra función modificar la salud aquí mismo. La razón por la que vamos a modificar nuestra función de salud aquí es porque recuerdas dentro de aquí, déjame hacer doble clic sobre esto. Estábamos devolviendo un valor. Entonces este podría ser un candidato donde quizás quisiéramos convertir esto en una función pura. Pero no voy a destruir esta. Simplemente voy a hacer clic derecho sobre esto. Y vamos a duplicar esto y voy a llamar a esto mi Modificar salud menos. Y lo que entonces voy a hacer aquí se acabó en el panel Detalles, marca esa casilla para que sea pura. También voy a modificar algunas cosas sobre esto también. Ahora, tengo esta configuración para pasar esto por referencia en el video anterior. Voy a desmarcar eso y sólo voy a simplificar un poco esta gráfica de aquí. Así que me voy a deshacer de este nodo de incremento así. Voy a enchufar esto a nuestra sucursal. Vamos a tomar nuestro talón o montaña dañada, enchufar eso aquí. Todo eso se ve bien. Justo aquí. Vamos a enchufar esto aquí y nos estamos poniendo un poco atrás de la forma en que lo teníamos originalmente. Entonces esa va a ser nuestra función pura. ve bien compilado en eso. Volvamos a nuestro gráfico de eventos. Y vamos, vamos a traer, tengo mi llave F2 aquí mismo. Yo sólo voy a robar este nodo de eventos de aquí mismo. Lo que voy a hacer es que voy a traer en nuestra salud modificar pura, pura función así. Y observe que no hay pines de entrada, pines de entrada o ejecución de salida. Y voy a imprimir una cuerda. Así que voy a robar este nodo de cadena de impresión. Ya está aquí. Cuando presione F2, voy a imprimir algo en la pantalla. Voy a enchufar esto, va a convertir mi salud actual en una cadena. Y va a modificar algo de salud. Necesito alimentar esto alguna cantidad de salud o daño por la que queremos modificarlo. Entonces vamos a ayudar a agregar. Este actualmente está configurado en uno. ¿En qué se encuentra nuestra salud actualmente? Es a las diez. Entonces eso está bien. Déjenme llevar mi salud para agregar. Voy a enchufarlo a su compilación. Vaya, si no quería hacer eso. Sigamos adelante y juguemos aquí. Y no estoy cargando el medidor en absoluto ahora mismo, eso no me importa para nada. Así que estoy cargando es la impresión que vamos a ver en la pantalla. Entonces presionando F2, mira bien sobre dónde está el cursor de mi mouse, 11121314. Nuevamente, esto está configurado para simplemente dar salida a nuestra salud actual. No tenemos que cablear en ejecución dentro o fuera de ella. Por lo que simplifica un poco nuestra gráfica. Y de hecho, esa es una de las razones por las que querrías usar una función pura. Simplemente hace que un gráfico sea más fácil y limpio de leer. Tienes menos cables de ejecución para conectar. Además, siempre devuelven los mismos resultados predecibles siempre y cuando cualquier insumo, en este caso, nuestra salud para agregar, mismo, vas a obtener el mismo resultado predecible. Pero la mayor razón para usar una función pura sobre una impura. La razón principal por la que querría convertir una en una función pura son los beneficios del compilador que garantizan código más optimizado detrás de escena. No te aburriré con los detalles, pero puedes buscarlo en línea si quieres los detalles jugosos y aburridos. Bien chicos, eso va a hacer para ofrecer esta, la diferencia es entre funciones puras e impuras. Nos vemos en el siguiente video. 63. Biblioteca de funciones: Hola y bienvenidos de nuevo a todos. Bueno, hasta este punto en nuestra discusión de funciones, hemos aprendido a crear algunas funciones dentro de un plano. Y eso está todo bien si tienes una referencia a ese plano en el que se creó la función. Sin embargo, qué haces si quieres crear una función y tenerla accesible en todos tus planos. ¿Qué puedes hacer entonces? No quieres tener una referencia específica a un plano. Solo quieres que sea una función de uso general que esté disponible en cualquier lugar. Bueno, en ese caso, se quiere crear algo conocido como biblioteca de funciones. Nuestro objetivo en este es aprender a hacer eso en lo que es incluso una biblioteca de funciones. La biblioteca de funciones es un lugar para almacenar funciones que pueden ser accesibles desde cualquier otro plano. Bien, de vuelta aquí en nuestro navegador de contenido, Sigamos adelante y creamos nuestra biblioteca de funciones. Y creo que una carpeta Blueprints bajo la categoría de scripting tendría sentido para nosotros. Así que vamos a hacer clic derecho en él algún espacio vacío. En la categoría de planos, tenemos este fly-out in, en el menú desplegable. Dice biblioteca de funciones de blueprint. Ese es el que queremos seguir adelante y hacer clic en eso. Vamos a darle un nombre a esto. Voy a llamar a esto mis funciones de subrayado y voy a todos los topes solo para que sea muy odioso. Y luego voy a hacer doble clic sobre esto para abrirlo. Ahora, una vez que hagamos eso, nos va a incitar a crear una función de inmediato. Y tiene una pestaña de ese nombre coincidente de inmediato. Para nosotros, voy a llamar a esta función estamos a punto de crear material de malla de cambio. Y esta función va a hacer exactamente como sugiere el nombre. Ahora, voy a agregar un par de entradas a nuestro nodo de entrada aquí que podamos seleccionarlo o seleccionar la función en sí te permitirá hacerlas. Entonces el primer insumo que voy a agregar se va a llamar actor. Y aquí vamos a cambiar el tipo de entrada para ser simplemente un actor. Entonces, bajo tipos de objeto, simplemente hice una búsqueda de actor. Bajo tipos de objeto, actor, queremos una referencia de objeto actor. Y entonces nuestro segundo insumo que queremos aquí, crear otro se va a llamar material. Y vamos a cambiar este tipo para que sea simplemente tipo de material. Y bajo el material de tipos de objeto en el menú desplegable, vamos a cambiarlo a una referencia de objeto. Bien, entonces esas van a ser nuestras dos entradas. Aquí vamos a tener una salida. Entonces voy a hacer clic en este botón más. Al hacerlo, agregamos un nodo de retorno de inmediato. Llamemos a esta salida un signo de interrogación de cambio exitoso. Y entonces vamos a darle a esto un tipo de booleano. Así que vamos a dar salida en el otro extremo de este nodo de función ya sea que cambiemos o no con éxito el material de nuestra malla. Así que crea un poco de espacio aquí vamos a estar agregando algunos nodos intermedios. Lo primero que vamos a hacer es poder seguir adelante y romper este cable aquí. Voy a mantener pulsada la tecla Alt y hacer clic izquierdo. Vamos a alargar de nuestro aporte de actor y vamos a averiguar si nuestro actor es un actor de malla estática. Entonces vamos a emitir al actor de Static Mesh. Entonces esencialmente haciendo la pregunta, oye actor que estamos enchufando a este nodo de función, ¿ eres un actor de malla estática? Y si es así, queremos hacer algo y si no, queremos hacer otra cosa. Ahora lo que queremos hacer en primer lugar, es que queremos alternar una variable si va a ser verdadera o falsa o no en función de si este elenco falla o es cierto que es un actor de malla estática. Entonces necesitamos crear una variable aquí. Tenemos una sección llamada variables locales. Ahora, vamos a estar hablando de qué es más una variable local en el siguiente video, mucho más en el siguiente video. Así que solo juega ahora mismo y luego llegaremos a las diferencias entre las variables locales y de clase. En el siguiente video, vamos a estar creando una variable aquí, una variable local. A éste se le va a llamar éxito. Ful, cambiar signo de interrogación. Y ahí le di la llave equivocada. Así que déjame intentarlo de nuevo. Éxito. Yo solo lo llamaré signo de interrogación de cambio de éxito , ya es bastante bueno. Y voy a arrastrar y soltar esto encima de eso, voy a poner pin de ejecución, arrastrar y soltar en el elenco falló. Lo queremos dos veces. Entonces, si de hecho es un actor de malla estática, se disparará fuera de este cable de ejecución de exhibición. Y vamos a decir, sí, el éxito, lo hicimos con éxito lo cambiamos. Y si falló, vamos a decir que no, no lo cambiamos con éxito. Así que eso va a ser falso. A continuación vamos a simplemente arrastrar fuera de aquí y escribir play sound 2D. Vamos a reproducir un efecto de sonido de confirmación de sonido o un efecto de sonido fallido. Para aquí arriba, si tiene éxito en cambiar, vamos a llamar a la compilación de sonido éxito. Esa es la que estamos buscando. Ese está en las carpetas del motor. Entonces, si no ves que estás jugando, puedes hacer clic en ese pequeño engranaje ahí, encender el contenido de tu motor. Entonces vamos a tocar ese sonido vamos a golpear Control C, Control V para pegarlo aquí abajo. Si este casting falla, vamos a hacer fallido, compilar falló. Cualquiera de estos va a funcionar bien. Entonces tenemos que hacer un poco de trabajo aquí abajo. Entonces, lo que queremos hacer aquí es sacar a nuestro actor de malla estática y estamos buscando los componentes de malla estática. Por lo tanto, los actores de malla estática consisten en un componente de malla estática. Eso es lo que le convierte en una malla estática. Y fuera de esto, vamos a arrastrar y escribir el material del set. Hay un nodo que estamos buscando. Y el material al que queremos cambiarlo va a ser lo que introduzcamos en esta función. Así que vamos a arrastrar aquí mismo, voy a enchufarlo aquí, pero voy a hacer doble clic en este cable para traer un re, nodo de ruta. Bien, ya casi terminamos aquí, ya casi terminamos. Entonces lo que vamos a hacer aquí continuación es que vamos a tomar esta salida. Vamos a enchufar esto nuestro material de set porque si hemos determinado que es un actor de malla estática, queremos jugar esto y de hecho cambiar el material. Vamos a tapar esta copia de seguridad aquí en el reparto falla. No es un actor de malla estática. Vamos a pasar por aquí y sólo vamos a regresar al nodo devuelto. No queremos cambiar el material en este caso. Ahora para este cambio exitoso variable booleana, bueno, solo podemos enchufar el resultado de esto. Lo estamos poniendo aquí o aquí. El resultado de esto, podemos obtenerlo y simplemente enchufarlo ahí. Entonces esa va a ser nuestra función, nuestra función de préstamo que va a existir y son mis funciones biblioteca. Déjame seguir adelante y compilar esto y ahorrar enseguida. A continuación, pasemos a nuestro Blueprint de terceraPersonCharacter porque tenemos algo de trabajo que hacer dentro de ahí para mostrar esta función. Entonces, si olvidaste dónde está eso, planos de contenido en tercera persona hacen doble clic en eso para abrirlo dentro de nuestro personaje de tercera persona. Una vez que llegues al Gráfico de Eventos, haz clic con el botón derecho en algún espacio vacío en simplemente escribe mis funciones. Y se puede ver a medida que empezamos a teclearlo, muestra nuestra biblioteca de funciones debajo de la sección de clase. Entonces bajo la clase, mis funciones, biblioteca de funciones, ahora tenemos acceso a esa función que creamos. Está disponible dentro de este plano y cualquier otro plano. Fossa, da click sobre esto, podemos ver cómo es nuestra función actualmente. Toma un cable de ejecución en el lado de entrada, puede emitir uno. Puede tomar un actor, puede tomar un material, y puede emitir si cambiamos con éxito o no el material en un actor de entrada volverá a esto en solo un poco. Pero por ahora, borra eso. Vamos a dirigirnos a nuestra pestaña de ventana gráfica, y vamos a agregar un nuevo componente aquí. Así que sigamos adelante y seleccionemos nuestro Componente Cápsula. Y bajo esto vamos a agregar un componente. Y vamos a agregar un colisionador de esfera, colisión de esfera. Ahora bien, esto va a actuar como una especie de mano invisible, si se quiere. Entonces voy a darle un nombre a esto y llamarlo mano simulada. Y voy a colocarlo un poco delante de nuestro personaje aquí. Entonces voy a cambiar la ubicación x para que sea, diremos 60. Y voy a cambiar la escala universalmente en X, Y, y Z 2.5, algo un poco más pequeño porque está apegada a nuestro componente católico. Cuando giramos nuestro personaje alrededor, este va a estar rotando también alrededor. Lo que vamos a hacer es que vamos a estar comprobando para ver si esto se está superponiendo algo y luego vamos a cambiar lo que sea que se superponga eso va a ser, si se superpone, un silla, vamos a cambiar esa malla estática en una cuota de oro. Vamos a cambiar el material de esa Malla Estática. Una propiedad más que sí quiero configurar aquí está debajo de la sección de renderizado, quiero desmarcar oculta en los juegos para que podamos ver dónde está esto en el mundo. Bien, para que con eso todo configurado, podamos salvar esto, saltar de nuevo a tu nivel aquí. Vamos a colocar algunas mallas estáticas en nuestro nivel. Ahora tengo en mente algunos específicos ahí en la carpeta de contenido del agitador. Realmente cualquier medida estática va a hacer. Pero debajo de la carpeta Props, voy a colocar una silla está por ahí un poco. Voy a poner a uno de estos tipos rueda que alrededor un poco y voy a colocar, ¿qué tal un cilindro básico C. Podemos encontrar uno de esos debajo de aquí, o la ficha de actores de lugar, pero estoy va a venir justo debajo de aquí formas. Hagamos un cilindro. Y sólo voy a escalarlo un poco así. Con los tres seleccionados, voy a mantener presionada la tecla Control y hacer clic con el botón izquierdo. Por lo que los tres son seleccionados. Quiero establecer algo en cada uno de ellos y es para asegurar que generen eventos de solapamiento para que podamos detectar que los estamos superponiendo con nuestra cita, unquote simulada mano. Entonces con todos los seleccionados, simplemente puedo escribir en la barra de búsqueda aquí. Arpillera. Lo que busco es generar eventos de solapamiento. Así que adelante y vuelve a comprobarlo, asegúrate de que tienes los tres seleccionados. Y entonces lo que vamos a hacer es saltar dentro de nuestro Blueprint de personaje en tercera persona. Así que dirígete ahí atrás. Personaje de tercera persona, dirígete al Gráfico de eventos. Y queremos hacer algo, pero nuestra mano simulada se superpone, así que encuentra algún espacio vacío. Y con tu mano simulada seleccionada aquí puedes hacer clic derecho sobre esto. Vamos a agregar un evento para cuando empecemos a superponer ese componente. Ir a la cabeza a nuestra gráfica aquí abajo porque quiere, está bien. Entonces lo que vamos a hacer es salir de nuestro otro actor, vamos a alargar y vamos a cambiar el material de malla. Y simplemente puedo escribir cambio o comenzar a escribir cambio. Y es lo suficientemente inteligente como para saber que, oye, ¿ estás tratando de encontrar esa función de material de malla de cambio que vive dentro de tu biblioteca de funciones? Sí, lo hace. Ahora tenga en cuenta que esto puede dar salida, esta mano simulada era algo se superpone a lo que puede dar salida y otro actor. Y en este caso va a dar salida a una referencia de objeto actor. Esta entrada de actor sobre el material de malla de cambio busca tomar en una referencia de objeto actor. No es eso conveniente. Entonces vamos a detectar si se está superponiendo a algún otro actor. Y luego vamos a cambiar el material. Voy a cambiar el material para que simplemente sea oro. El oro vive en el contenido R star. Y lo que vamos a hacer aquí es traer un nodo de sucursal. Voy a teclear sucursal. Alternativamente, si elimina eso y arrastra fuera de aquí, esta es una salida booleana. Si tecleo en rama aquí, conectará ambos cables en uno. Es bastante práctico. Entonces simplemente vamos a imprimir cadena. Traeré un par de estos Control C, Control V. Y estos van a ser nuestros guiones. Entonces aquí arriba, si esto tiene éxito, vamos a imprimir en frío. Aquí. Vamos a teclear sin cambios. Bien, adelante y compile y guarde eso. Vamos a regalar esto a un dramaturgo. Entonces, al hacer clic en el botón R más, estableceré nuestro objeto de depuración para que sea nuestro terceraPersonCharacter que se ha generado y expandiendo esto ligeramente. Bien, si miro frente a mi personaje, ahí está esa esfera roja, esa es mi mano simulada. Se puede ver que gira alrededor, gira junto con mi personaje. Entonces cuando me superpongo la silla, ves que sí cambió el material bastante dulce. Cambió el material allí, y nuestro cilindro lo cambia allí también. Esa es una buena función global, si se quiere. Podemos usarlo dentro de nuestro terceraPersonaPersonaje aquí. Pero también mostremos cómo podrías usar esto dentro de tu Plano de Nivel. Porque después de todo, ¿cuál es el punto de crear una biblioteca de funciones si no puedes acceder a las funciones dentro de ella desde cualquier lugar? Volviendo a nuestra pestaña de mapa de pruebas de nivel justo aquí. Vamos a abrir el plano de nivel y sólo voy a traer y la clave de entrada. Cualquier tecla de entrada lo hará. Estoy haciendo clic con el botón derecho en algún espacio vacío. Vamos a probar la llave siete. Y pensará que estoy usando la llave siete para cualquier otra cosa aquí ¿lo sé? Por cierto, si haces clic debajo tu pasto aquí y expandes el pasto, te mostrará qué diferentes eventos tienes ahí dentro . Entonces para la clave siete, voy a arrastrar fuera de aquí, hacer una búsqueda de material de malla de cambio. Y una vez más, porque esta función existe en nuestra creada una biblioteca de funciones y la podemos encontrar en el Blueprint de Nivel. Claro. Y necesito abastecer a un actor aquí. Entonces, escojamos a uno de nuestros actores. Voy a asegurarme de que tengo mi cilindro aquí seleccionado. Saltando de nuevo a mi Plano de Nivel, manteniendo pulsado el clic izquierdo. Vamos a enchufar eso ahí. Y voy a cambiar el material aquí. Vamos a adoquines. Algo adoquinado. Bien, compilar, guardar. Juguemos. Establezca nuestro objeto de depuración a nuestro nivel. Trae de vuelta nuestro mapa. Y claro, puedo tocar a estos dos. Todavía van a cambiar el oro. Ahora bien, si toco el cilindro aquí, eso se convertiría en oro porque eso es todo lo que está configurado en mi Blueprint de personaje. Pero si presiono la tecla siete aquí, podemos ver que la convertiremos en adoquines. Entonces una gran función global que hemos creado ahí. Bien, terminemos este video hablando de los pros y los contras de las funciones en una biblioteca de funciones. Bueno, los pros incluirían que puedes acceder a esa función desde dentro de cualquier plano. Es un gran ahorro de tiempo. Si es una función que puedes usar en muchos lugares, ya sabes, no tienes que escribir el mismo script en múltiples lugares, varias veces, ese tipo de cosas. Ahora los contras, los contras incluirían tener más difícil hacer referencia a datos específicos del plano, por ejemplo, mi tercera persona Carácter Blueprint. Si agrego alguna función como digamos tal vez una función de modificar la salud que era muy dependiente de algunas variables y vivía dentro de aquí. Bueno, ese tipo de función estará mejor dentro de ese plano específico. O si tuviera alguna función que fuera muy dependiente de algunos de los componentes dentro de un plano dado. Esa función estaría mejor en una clase Blueprint misma en lugar de una biblioteca de funciones. Bien chicos, eso va a hacerlo todo por esta en esta discusión de una función bibliotecas. Nos vemos a todos en el siguiente video. 64. Variables locales: Bienvenida. En este video, nuestro objetivo es familiarizarte con el concepto de variables locales. Ahora, en este video, desglosaremos qué son las variables locales, diferencian de las variables de clase, cómo podemos crearlas y usarlas, y qué tipo de cosas necesitas saber con respecto a su accesibilidad dentro de los planos. Ahora el último video usamos una variable local, una llamada Cambio de éxito, una variable local booleana. Y mencioné que volveríamos a ello en un video futuro, ese es este video futuro. Ahora bien, anote algo sobre las variables locales. Solo podemos crear variables locales aquí dentro de funciones, dentro de la biblioteca de funciones, la biblioteca de funciones blueprint. No podemos crear variables de clase. Solo tenemos una sección variable local. Entonces, ¿de qué carajo estamos hablando aquí? Variables de clase versus variables locales? Bueno, para ayudar a facilitar esta discusión, tengo abierto mi Plano de PersonaTerceraPersonaCarácter. Salta hasta aquí. Y si revisamos en nuestro panel ThirdPersonCharacter Blueprint, tenemos una sección de variables. Estas son variables que pertenecen a nuestra clase de caracteres, por lo que podemos llamar a estas variables de clase. Pero notarás algo aquí en el panel Mi plano. No vemos variables locales aquí en la biblioteca de funciones, vemos una categoría llamada variables locales. Dónde está en un Plano de Clase, solo vemos una sección variable. Bueno, para poder ver las variables locales, hay que tener seleccionada una función o también su script de construcción. Entonces, si selecciono mi función Modificar salud aquí mismo, hagamos doble clic sobre eso para abrirla. Habrás notado que en cuanto hice esto, ahora tengo acceso a una sección de variables locales aquí abajo. Si salgo de aquí, vuelve a mi Gráfico de Eventos. Tenga en cuenta que las variables locales desaparecerán. Ya no está ahí. Bien, así que volvamos a sumergirnos en nuestra función de modificar la salud. Bien, ahora hablemos de algunas de las diferencias entre variables de clase y variables locales. Bueno, para empezar, cuando estás creando una variable aquí mismo en el panel Mi Blueprint, estás creando una variable de clase, una que pertenece a esta clase padre. Ahora, cualquier variable que desee obtener o establecer de otro blueprint debería ser una variable de clase. Ahora, solo para dar un ejemplo de eso, digamos en tu Blueprint de Nivel, tenías una referencia a tu personaje de tercera persona y querías modificar la variable de salud de tu personaje en tercera persona. mejor hay una zona dentro del nivel que hace daño o tal vez cura a la tercera personaPersonaje. Bueno en ese caso, para poder acceder a nuestra terceraPersonaPersonaje es variable de salud desde dentro del Plano de Nivel. Querría asegurarse de que esta variable de salud existiera como una variable de clase. Ahora en cuanto a las variables locales, se pueden crear dentro de una gráfica de funciones. Las variables locales solo son visibles para la función en la que fueron creadas y no otras funciones o el gráfico de eventos. Ahora vamos a seguir adelante y crear uno aquí dentro de nuestra modificar una función de salud. Ahora podría crear uno haciendo clic en este botón más justo aquí bajo la categoría de variables locales. No obstante, voy a crear uno haciendo clic derecho sobre un pin. Siempre y cuando intentes promover a una variable dentro de una función, tienes la opción de promover a una variable local. Entonces voy a hacer clic derecho aquí mismo debajo mi pinza flotante Tmax. Y haciendo clic derecho, vamos a promover a una variable local que va a crear esta variable aquí mismo. Entonces llamemos a esto mi salud máxima. Y lo que notarás ahora es que esta variable local no existe en ninguna otra gráfica de funciones aquí, si entro en mi player dañó la función fx, haciendo doble clic sobre esto, ese local no se puede encontrar. De igual manera, si iba a hacer clic derecho dentro de este reproductor dañó la función y busco salud máxima. No está disponible aquí. Si voy a mi gráfica de eventos y la busqué, no veo ninguna variable local aquí abajo y o haga clic derecho, max, la salud no está aquí también. De hecho, si desmarca sensible al contexto, no aparece. Esta variable de salud máxima dentro de Maya modificar la función de salud es local solo para esta función. Y si ya no la ves aquí, puedes hacer clic en esta pequeña flecha desplegable y te mostrará dónde está. Una vez más. Ahora en este punto tal vez te estés preguntando, cuál es el punto de las variables locales. ¿Por qué siquiera los necesito? ¿Por qué puedo crear todas las variables de clase y usar esas variables locales ayudan a reducir el desorden para cosas que solo son relevantes dentro del contexto de una función? ayudan a reducir el desorden para cosas que solo son No desea llenar una enorme lista de variables de clase aquí cuando algunas de hecho solo pueden ser necesarias dentro de una función dada. Entonces por esa razón, razones organizacionales, es una buena idea simplemente crear una variable local que ayude a mantener las cosas limpias y limpias. En segundo lugar, también ayuda a protegerte de tus propios errores. Aquí tengo dos variables. Tengo salud y salud máxima que son muy similares. Ahora a lo mejor quiero asegurar que, oye, nunca podré modificar mi salud máxima. Sólo va a ser accesible desde dentro de esta función. Bueno, ese es un buen candidato para convertir eso en una variable local para asegurar que no modifique accidentalmente esta variable desde dentro de otro blueprint. Bien, vamos a mostrar esto un poco más allá creando una nueva función para empezar aquí dentro de nuestro ThirdPersonCharacter. Entonces, bajo la categoría de funciones, vamos a agregar una nueva función. Voy a llamar a esto turbo run, que va a hacer exactamente lo que crees que va a hacer. Ahora dentro de aquí, lo que vamos a hacer es traer cualquier referencia a nuestro Componente de Movimiento de Carácter. Dentro de nuestro componente de movimiento de personajes, tenemos acceso a un parámetro llamado velocidad máxima de caminata. Queremos hacer algo con nuestra velocidad máxima de caminata. Entonces se está secando aquí y trae una referencia a nuestra velocidad máxima de caminata. Vamos a obtener ese valor, que por defecto aquí comienza en 500. Entonces lo que vamos a hacer es que vamos a arrastrar un aquí, presionar el botón más, vamos a agregarle algo. Entonces vamos a establecer nuestra velocidad máxima de caminata. Así que arrastrando de nuevo el movimiento de nuestro personaje, establece la velocidad máxima de caminata. Vamos a ir así y así. Entonces ahora queremos agregar una variable local con el fin de determinar cuánto de un impulso de velocidad queremos darle a nuestro personaje cuando corremos terribles. Entonces esto es lo que voy a hacer. Voy a agregar el valor aquí mismo, 2000. Y luego voy a hacer clic derecho sobre este pin. Vamos a convertir esto en una variable local, así que vamos a promover eso. Y vamos a ver eso poblado aquí abajo. Vamos a darle un nombre llamado turbo speed boost. Y ahora se puede ver porque lo promovimos con ese valor ya establecido ahí, va a establecer ese valor justo ahí también. Entonces ese es un pequeño truco práctico que me gusta mucho. Bien, vamos a compilar eso. Asegúrate de que eso se vea todo Skippy. Entonces saltemos a nuestro gráfico de eventos. Y voy a encontrar algo de espacio vacío aquí. Y vamos a traer en un evento de entrada. Veamos qué tenemos disponible aquí. Ahora hemos tenido acceso a muchas cosas diferentes. Voy a hacer clic con el botón derecho. Nosotros haremos las dos claves. Claro. Vamos a hacer entrada o en realidad escribir en el teclado a la derecha allí mismo. Trayendo una llave de dos. Fuera de esto, vamos a arrastrar y soltar nuestra ejecución de terminal. Y si soltamos la clave, lo que queremos hacer es que queremos traer así nuestro Componente de Movimiento de Carácter. Y entonces vamos a arrastrar fuera de aquí, hacer otro set, máximo, velocidad de caminata. Recuerda que el valor predeterminado era 500, así que volvamos a establecerlo 500 tan pronto como liberemos las dos claves. Entonces este va a ser nuestro script de Turbo run. Así que aviso son terribles ejecutar la función aquí mismo. Tiene esa variable local dentro de ella. Podemos hacer doble clic sobre eso, eso saltará a esa función. Tenemos esta velocidad turbo, impulso, variable local. Bien, ahora vamos a seguir adelante y darle una jugada a esto. Voy a compilar aquí, guardar y jugar, establecer nuestra depuración. Objetarse a nuestra terceraPersonaPersonaje. Podemos correr por ahí muy bien luciendo bien. Sin embargo, cuando presiono las dos teclas, hacemos zoom muy bien. Estamos terribles corriendo y lo libero y me despacio hacia atrás. Para resumir aquí, puedes buscar y encontrar variables locales desde dentro de la gráfica que fueron creadas son terribles correr aquí podríamos buscar y encontrar esta variable local. No se puede buscar y encontrar variables locales dentro del gráfico de eventos del plano en el que se crearon dentro. Entonces, en el gráfico de eventos de aquí mismo, no podemos encontrar esa variable local. Tampoco puede buscar y encontrar esta variable local son variables locales turbo run aquí. No puedes encontrar que si lo buscas dentro de otro bucle, otro blueprint, incluso si tienes una referencia a nuestro terceraPersonCharacter aquí no puedes encontrar una referencia a esto. Ahora, una última nota sobre las variables de clase. Esto vale la pena señalar que si hace clic en este botón de clase por defecto dentro de cualquier Blueprint. Cualquier clase de Blueprint, tienes acceso, lo siento, no Configuración de clase, clase predeterminada. Tienes acceso a todas tus diversas variables de clase. Aquí están justo encima en el panel Mi Blueprint. La salud puede saltar, etcétera. En nuestro panel de Detalles, podemos encontrarlos todos aquí también. Tenga en cuenta que si tuviera que cambiarlo aquí, diga que íbamos a cambiar nuestra salud de diez a decir 100, Enter. Y ahora iba a seleccionar mi variable de salud aquí. Se va a actualizar ese valor predeterminado. Entonces no importa donde lo cambies. Puedes cambiar tus valores variables desde aquí o la sección de valores predeterminados de clase pensé que también lo señalaría, ¿verdad? Eso lo hará todo por este video. Nos vemos en la siguiente. 65. Funciones cosas que debe saber: Bienvenido de nuevo. En este video, nuestro objetivo es cubrir algunas cosas realmente buenas que hay que saber sobre el trabajo con funciones. Ahora bien, estas son cosas que no necesariamente justificaban un video completo, pero que sin duda deberían tocarse al discutir el tema de las funciones. Para este video, voy a estar abriendo una variedad de planos, a nivel de tercera personaPlano a nivel de personaje los gustos. Así que voy a comenzar mi contenido de Blueprint de personaje de tercera persona, planos de tercera persona. Lo primero que vamos a tocar aquí es cómo depurar una función. Ahora bien, esto va a ser algo a lo que más adelante en el curso voy a estar dedicando todo un módulo, pero vale la pena mencionar aquí también. Entonces aquí tengo un guión muy sencillo. Cuando presione la tecla dos, voy a hacer correr a mi personaje terrible. Y cuando lo libere, voy a volver a mi velocidad de movimiento normal. Ahora puedes ver que he agregado un comentario sobre este nodo haciendo clic derecho y agregando un comentario de nodo que si presiono F9, F9 actúa como un toggle aquí y puedes ver cómo cambia esa punta de herramienta. Puedo agregar lo que se conoce como un punto de interrupción que va a permitir que el código se detenga aquí mismo en este punto, tan pronto como llegamos a este punto en la cadena de ejecución. Entonces te puedes imaginar si tuvieras un montón de nodos conectados juntos, congelaría el juego tan pronto como llegaras a este punto. Ahora, ¿por qué querrías hacer eso alguna vez? Bueno, a veces puedes tener algunas consecuencias inesperadas en tus guiones. Algo está pasando que no tenías intención de pasar, lo que sea. Y necesitas congelar el juego, pasar por el código, recorrer tu guión para averiguar qué está pasando. Ese es el uso de un punto de interrupción. Y sólo voy a presumir brevemente como esto puede congelar tu juego. Entonces voy a presionar el botón de reproducción aquí. Observe que sí tengo mis puntos de interrupción que aquí. También puede hacer clic con el botón derecho y eliminar un punto de interrupción, deshabilitar el punto o alternar ese punto de interrupción, activarlo o desactivarlo. Aquí vamos. Planeta. Voy a configurar mi objeto de depuración para que sea mi terceraPersonCharacter y volver a traerlos a mi ventana de reproducción. Así que en cuanto presione la tecla dos, va a saltar inmediatamente a ese guión y congelar el juego aquí mismo. Ahora desde aquí, con este nodo seleccionado y se puede ver esa flecha roja gigante siendo como, sí, ese es el tipo que estamos tratando de seleccionar. Tienes una serie de botones aquí arriba que te permiten decidir qué te gustaría hacer. Desde aquí, se puede localizar el nodo actualmente activo, que es actualmente. Podemos entrar en este nodo y lo que eso va a hacer es que me va a saltar dentro de la función misma. Déjame volver a mi gráfica de eventos. Podría dar un paso por encima, decir, si tuviera algunos nodos más por aquí, podría detenerme al siguiente. Y entonces este de aquí es salir de este nodo para ser ejecutado en la gráfica padre. Entonces nuevamente, tengo una sección entera de videos próximos de los que hablaremos de esto, pero puntos de interrupción, puedes agregarlos a cualquier nodo. Voy a parar este año simplemente haciendo clic en el nodo y activando y apagando con la tecla F9. Bien, a continuación para cualquiera de tus funciones que hayas creado en el panel Detalles, tienes la capacidad de agregar algunas palabras clave. Y lo que esto te permite hacer es cuando haces clic derecho en algún espacio vacío aquí, si buscas alguna de tus palabras clave aquí, encontrarás esa función que estás buscando. Entonces podríamos hacer algo chiflado aquí. Voy a agregar palabras clave aquí como morado. Y los voy a separar con un lavavajillas coma mono coma. Y si consigues ese chiste y de donde vino, me quito el sombrero para ti. Compilar guardar. Y ahora si haces una búsqueda para hacer clic derecho en morado , encuentra función terrible ejecutar. Mono, encuentra esa función así como lavaplatos. Y solo escribo platillo y ya lo encuentra. Ahora tenga en cuenta que esto funciona no solo dentro del blueprint que esa función fue creada, sino que si voy a mi nivel test map level blueprint, siempre y cuando tenga una referencia a ese blueprint aquí, Puedo hablar con mi tercera personaBlueprint de personaje. Puedo arrastrar fuera de aquí. Escriba en morado, encuentra esa función mono o lavavajillas. Entonces ahí tienes. Palabras clave. Así es como puedes encontrar una función usando cualquier palabra clave o palabras de tu elección. Y a continuación, exploremos este campo de título de nodo compacto que tienes disponible para cualquiera de las funciones que hayas creado. Lo que esto te permite hacer es simplificar un poco tu Nodo. No uso mucho esto, pero tal vez a algunos de ustedes les guste trabajar de esta manera. Entonces voy a cambiar mi título de nodo aquí para sea algo más que los efectos dañados del jugador. Voy a simplificarlo y simplemente poner en player FX. Y en cuanto golpee enter, este título se va a ir adiós, así como todos estos etiqueta pin. Entonces aquí vamos, presionando Enter. Ya puedes ver que he convertido este nodo en una versión simplificada. Efectos de jugador es ahora el título de nodo compacto de este nodo. Y todas esas etiquetas de alfiler se han ido. Ahora todavía puedes ver qué tipo de tipos de datos están buscando estos pines simplemente pasando el mouse sobre ellos. Eso va a estar buscando un objeto, un vector, así como unos componentes de sumidero respectivamente. A lo mejor algunos de ustedes preferirán trabajar de esta manera. Yo sin embargo, no, pero pensé que de todos modos lo tiraría por ahí. A continuación, quiero hablar sobre lo que este campo especificador de acceso hace este campo especificador de acceso para una función que hemos creado. Sin embargo, para hacer esto, necesito crear una clase infantil de nuestro terceraPersonaPersonaje aquí con el fin de hacer realmente esta justicia. Ahora bien, la herencia de clases es un tema del que hablaré más adelante en el curso. No obstante, de nuevo, para poder presumir de este especificador de acceso, necesito hacerlo ahora mismo. Así que de vuelta aquí en mi navegador de contenido, voy a hacer clic derecho en mi terceraPersonCharacter y voy a crear una clase de Child Blueprint. Y voy a dejar este nombre va a simplemente darle a Enter. Y lo que voy a hacer entonces es volver a mi terceraPersonaPersonaje y hablar de este especificador de acceso. Así que tenemos tres escenarios diferentes aquí, público, protegido y privado. Entonces esto determina qué planos pueden acceder a una función. En este caso, nuestra función de salud modificada, public es una configuración predeterminada. Cualquier otro objeto puede llamar a esta función siempre y cuando tengamos una referencia a ella, lo que significa que puedo usar esta función de modificar salud aquí dentro de este plano que hemos creado con él. También podría acceder a él desde nuestro Plano de Nivel nuevamente, siempre y cuando tengas una referencia a tu personaje de tercera persona, puedo encontrar a mi Dios, si phi salud ahí está. Saltando de nuevo a mi tercera personaPersonaje. Ahora cambiemos r, modificar la salud de un público, demasiado protegido. Ahora bien, esto significa que la función solo puede ser llamada por el blueprint actual, es decir, nuestro Blueprint ThiredPersonCharacter, así como cualquier blueprint que se derive del blueprint actual. Entonces, ¿la puedo encontrar aquí? Sí, puedo arrastrar y soltar. Ahí puedo acceder a él. Hacer uso de ella ahí. Si salto a mi hijoTercera PersonaPersonaje, y salto al Gráfico de Eventos, y hago clic derecho y hago una búsqueda para modificar la salud. Ahí está esa función. Yo también la puedo encontrar aquí. Esto demuestra que nuestra clase padre aquí es nuestro bp terceraPersonCharacter. Entonces sí, puedes usarlo dentro del plano original que hayas creado. creaste en o en la clase infantil. Por último, volvamos a nuestro bp ThirdPersonCharacter. Seleccione nuestro modificar salud. Y cambiemos esto de protegido a privado. Ahora bien, esto significa que la función solo se puede llamar desde dentro del plano actual. Entonces sí, podría arrastrar y soltar esto aquí. Podría llamar a esta función. No obstante, si tuviera que ir a mi mapa de prueba de nivel, arrastrado fuera de aquí, hacer una búsqueda de MOD si salud phi, sólo puedo encontrar esa función pura. Porque si miro hacia atrás en mi terceraPersonaPersonaje, recuerda que actualmente tengo dos versiones de la función Modificar salud. El Modify health pure está configurado actualmente para acceder al especificador público, es decir, lo puedo encontrar dentro del Plano de Nivel. No obstante, modificar la salud actualmente está etiquetada como privada, es decir, que no puedo encontrarla aquí. Modificar la salud? No. Ahora bien, si voy al plano de mi hijo, puede ver que esto todavía está por aquí y eso es porque todavía estaba aquí antes de que yo cambiara este especificador de acceso a privado. No obstante, si tuviera que volver a entrar en mi hijo, elimine esto, haga clic con el botón derecho, haga una búsqueda para modificar la salud. Ya no lo encuentro. Así que solo un poquito de mesa ahí también. Entonces el especificador de acceso, tienes público, protegido y privado. Ahora siguiente voy a mostrar lo que hace esta llamada en la casilla de verificación del editor. Pero para hacer esto, voy a crear una nueva función por aquí. Voy a hacer clic en este botón Plus. Y voy a llamar a esto mi Super salto. Dentro de esta función que estoy creando. Yo sólo voy a arrastrar el tipo En carácter de lanzamiento. Y lo único que voy a hacer aquí es cambiar nuestra velocidad z para que sea 2000. Ahora notarás que nuestra función aquí es idéntica a solo esta función de carácter de lanzamiento en sí. Pero para poder presumir esta llamada en la casilla de verificación del editor, quería hacer algo súper simple. Entonces con esta función creada, continúe y seleccione eso y haga clic en esta llamada en la casilla de verificación del editor, lo que esto nos permite hacer, Compilar y Guardar aquí también. Volvamos a nuestro editor de niveles. Voy a asegurarme con mis tres puntos seleccionados aquí. Voy a jugar en una vista seleccionada. Voy a hacer clic en Reproducir. Ahora conmigo jugando en mi viewport seleccionado. Voy a seleccionar mi terceraPersonaPersonaje. Y podría hacer una búsqueda de Super salto. Y podemos ver bajo la categoría por defecto, tengo este súper botón de salto. Si hago clic en esto, simplemente llamará a esa función. Ahora notarás que en el propio BP ThirdPersonCharacter, solo creé esa función. No tengo ninguna tecla de entrada para llamar realmente a esa función, pero esta es una excelente manera de simplemente probar la funcionalidad sin ninguna tecla de entrada ni nada de ese tipo. Simplemente puedes probar para ver qué hace de inmediato. Ahora hay un pequeño problema aquí que debes conocer y eso es. Tenga en cuenta que mi Super salto, déjame dejar de jugar aquí. Tenga en cuenta que mi función aquí no tiene ninguna entrada o salida. Si tuviera que seleccionar algo como efectos dañados del jugador, puedes ver que aquí tengo algunas entradas. No tengo ninguna salida en esta, pero podría devolver algo. Vamos a hacer clic en esto y hacer la devolución. Y podríamos devolver el emisor de spawn adjunto. Vamos a arrastrar y soltar eso ahí así. Ahora bien, si iba a tomar mi jugador el daño afecta a la función, voy a dar click en esta llamada en, editor checkbox compilar, guardar. Volvamos a saltar aquí y jugar. Al seleccionar mi terceraPersonpersonaje, desplázate hacia abajo. Voy a encontrar esos botones una vez más, ahí vamos. Bajo la categoría predeterminada, puedo encontrar mi botón Super jump call Editor. Sin embargo, no encuentro ese mismo botón para los efectos de daño del jugador pesar de que tengo marcada esa casilla. Ahora, ¿por qué es esto? Bueno, no sé la respuesta exacta a eso, pero supongo que porque sería bastante difícil llamar manualmente a una función que dependa de algunos datos que necesitan ser ingresados en la función a fin de que funcione correctamente. Ahora a continuación quiero señalar que para cualquiera de sus funciones creadas dentro del panel Mi Blueprint, si hace clic derecho sobre ellas, tiene la opción de convertir función en evento. ¿Qué es lo que significa eso? Bueno, vamos a sumergirnos dentro de nuestra terrible carrera, una función aquí. Y lo puedo hacer simplemente haciendo doble clic sobre él. Abrirá esa gráfica de funciones. Y fíjate que esta función es simplemente tomar a mis personajes la velocidad máxima de caminata, Así de rápido se están moviendo. Va a agregar un poco de refuerzo allí y agregarlo para crear nuestra nueva Velocidad de Paseo, nuestra nueva velocidad de movimiento. Así que observe esta configuración aquí mismo. Voy a saltar de nuevo a mi gráfico de eventos. Y lo que voy a hacer es que voy a clic derecho en mi terminal, ejecutar una función. Vamos a convertir esto en un evento. Y cuando lo haga, básicamente va a romper todo ese código que estaba dentro de esa función que modificó mis caracteres, max, walk, speed, y en todos los lugares en el propio gráfico de eventos. Ahora note que nuestra terrible función de ejecución ya no existe aquí en nuestra área de funciones. En cambio, vemos un evento personalizado llamado turbo run, ese mismo nombre. Ahora bien, esto necesita ser llamado para que este script se ejecute. Entonces algo que señalar aquí, no se puede hacer esto si la función tiene salidas. Y con eso quiero decir hagamos doble clic en nuestra función modificar salud aquí mismo. Esta función tiene una salida. Entonces, si intento hacer clic derecho sobre esto, al convertir esta función en un evento, vas a recibir una advertencia diciendo que no puedes hacer eso. Entonces pensé que lo señalaría mientras estemos aquí también. Ahora bien, ¿por qué harías alguna vez algo así? ¿Por qué convertirías alguna vez una de tus funciones en un evento? Bueno, quizá sea más fácil para ti leer tu guión de este tipo de manera fragmentada. O tal vez decidiste que esto es mejor como un guión único en lugar de una función que podrías verte queriendo usar múltiples lugares. Ahora un par de cosas más aquí. Antes de que terminemos este video. Recuerda, debes compilar eso es para presionar este botón justo aquí arriba. Debe compilar para acceder a nuevas funciones desde otros blueprints. Si agregaste una nueva función aquí, creaste una nueva y querías acceder a ella desde digamos, tu Plano de Nivel. Necesitas compilar primero antes de poder hacer eso. Otra cosa que vale la pena mencionar aquí es que puedes tener funciones dentro de otras funciones que crees. Entonces lo mostré aquí al tener una función que creé llamada Super jump y teniendo esa función dentro de esa función. Y por último pero no menos importante, para las funciones, no se pueden tener nodos latentes dentro de aquí. Y con eso, quiero decir, estoy hablando de nodos de retardo haciendo clic con el botón derecho. Y yo sólo voy a hacer una búsqueda de retraso aquí. Parece que ni siquiera se agregó aquí. Sin embargo, en el Gráfico de eventos, haga clic con el botón derecho del ratón Puede encontrar retraso o retraso recuperable. Tampoco se puede agregar un nodo conocido como nodo de línea de tiempo. Cosas tan importantes para recordar ahí para las funciones, bien chicos, eso va a hacerlo todo por este video. Cosas buenas para saber. Te veremos en la siguiente. 66. Descripción de las Macros: Bien, en los próximos videos aquí vamos a estar desplazando nuestra atención hacia el tema de las macros. Y específicamente en este video, nuestros objetivos son conocer qué son las macros, discutir cómo son similares o diferentes a las funciones. También vamos a explorar un par de macros preexistentes comunes y cómo se construyen. Y por último, vamos a hablar de dónde podemos encontrar macros dentro de los planos. Entonces, antes que nada, ¿qué es una macro? Bueno, una macro es esencialmente una colección de nodos que hace algo que es similar a una función en este sentido. Y tengo un par de macros justo aquí frente a mí, dentro de mi Blueprint de Nivel. Ahora, irreal sí viene con una gran cantidad de macros listas para usar que puedes usar. Es a partir de las macros estándar en el contenido del motor, que te mostraré en solo un poquito aquí, puedes crear tus propias macros dentro de una Clase Blueprint, un blueprint de nivel o una macro de blueprint biblioteca. Y nuevamente, en los próximos videos, mostraremos cómo hacer todo eso. Entonces, antes que nada, exploremos algunas macros comunes. Y como ves antes, tienes un par de macro nodos. Una es la macro comparar flotante, la otra está en, es macro válida. Hace apenas un momento hice, mencioné que una macro es esencialmente una colección de nodos que hace algo similar a una función. Y podemos ver esto haciendo doble clic en cualquiera de nuestras macros aquí. Y voy a hacer doble clic en comparar flotar aquí. Al hacerlo, voy a estar abriendo una nueva pestaña llamada Macros estándar. Esta es una biblioteca de macros que consiste en un montón de macros que ya existe aquí en Unreal. Y tenga en cuenta que también abrimos una pestaña Comparar Float dentro de esta biblioteca de macros. Y esto muestra todos los nodos conectados entre sí para crear esta macro flotante de comparación. encima del lado derecho, podemos ver que si seleccionamos nuestra entrada aquí, podemos ver que este particular macro compare float pertenece a la categoría float matemática. Entonces, si tuviera que profundizar aquí en nuestra colección de macros, float matemática, podemos ver ahí está nuestra macro de comparar float. Ahora puedes expandir todos estos para ver todas las diferentes macros que existen dentro de las diferentes macros que existen esta biblioteca de macros. Ahora la razón por la que estoy señalando esto es porque si iba a saltar nuevo a mi plano de nivel o a cualquier otro plano aquí. Y simplemente haga clic derecho y algo de espacio vacío y voy a hacer una búsqueda ahora para comparar flotador. Podemos ver que es la categoría donde se encuentra esta macro en particular, la categoría float matemática como se especifica aquí mismo. Flotador matemático. Ahora vamos a acercarnos rápidamente a algunas similitudes y diferencias de macro y funciones aquí. Entonces, comenzando con las similitudes, ambas macros en funciones ahorran tiempo ya que pueden almacenar secuencias de nodos de uso común completas con entradas y salidas tanto para la ejecución como para la transferencia de datos. Entonces, en lugar de decir, colocando esta secuencia de nodos en múltiples lugares a lo largo de tu gráfica, puedes simplemente crear una sola macro o una función puede hacer de manera similar. Y eso te ahorrará tiempo porque estás condensando estos nodos en similitudes entre sí. Se puede editar la funcionalidad de una macro o función en un lugar central, una gráfica. Aquí mismo tenemos nuestro propio gráfico de flotación de comparación. Puedes editar la funcionalidad aquí y propagará ese cambio a cualquier otra macro que hayas colocado en cualquier otro blueprint. Otra similitud es que son reutilizables. Puedes reutilizar esta macro en muchos otros planos. Se puede tener en múltiples planos. Se puede usar la misma macro dentro del mismo blueprint. Además, tanto las macros como las funciones permiten variables locales y tenemos un video completo hablando de variables locales. Pero esencialmente una variable local es una variable a la que solo se hace referencia y es utilizada por esa función individual, o en este caso una macro. Ahora la diferencia es que las macros pueden tener múltiples pines de ejecución de entrada y salida. Y podemos ver eso aquí en nuestro compare float macro. Si selecciono este nodo de entrada aquí mismo, Echa un vistazo a esto. Tenemos una entrada de ejecución, pero tenemos tres pines de salida de ejecución. Y si eso no es lo suficientemente claro aquí a partir de nuestras entradas y salidas, echemos un vistazo al nodo final, vuelta en nuestro Blueprint de Nivel, échale un vistazo. Tenemos una entrada de ejecución y tres salidas. Ahora se llega a nombrar estos por cierto. Entonces si vuelvo a nuestras macros estándar aquí, llega a ingresar cuál es ese nombre no tiene por qué ser exacto. Puedes ponerlo como símbolo, símbolos y letras, lo que quieras poner ahí. Otra diferencia, y esto es clave, esto es mucho qi Las macros pueden tener nodos latentes en ellas mientras que las funciones no pueden. Entonces, cuando estoy hablando de aquí, una vez más, saltando de nuevo a mi plano de nivel, permítame simplemente desplazarme hacia la derecha aquí. Solo estoy en mi Gráfico de Eventos, así que no estoy dentro de ninguna macro o gráfica de funciones en sí. Este tipo de nodos aquí mismo, nodos latentes, unos con este pequeño icono de reloj. Si paso el mouse sobre este nodo, esta función de retardo, incluso dice en la punta de la herramienta en la parte superior que es un nodo latente. Eso es lo que significa este icono de reloj. Ese es un nodo sensible al tiempo. Cualquier nodo tardío como ese, o un nodo de línea de tiempo. Cualquier cosa con lidiar con el tiempo, no puedes colocarlos en funciones. Sin embargo, macros, está bien. Por último, las macros no se pueden llamar desde otros blueprints. Como una función puede. Sólo para demostrar esto rápidamente. Si tuviera que entrar aquí en mi personaje en tercera persona, solo voy a crear una macro temporal rápida. Voy a llamar a esto mi temp. Yo lo llamaré macro temp. ¿Qué tal esa macro temp? Voy a compilar esto. Y luego en mi Blueprint de Nivel, si encuentro, tengo mis cuatro claves, si fuera a arrastrar fuera de esto y hago una búsqueda ahora de macro, no puedo encontrarla. No puedo encontrar eso, mientras que podría encontrar algo así como mi función de súper salto. Súper salto. Ahí está. Entonces no se puede llamar macros que vivan en otro blueprints de otro blueprint. Bien, entonces, ¿dónde pueden encontrar macros dentro de irreal? Bueno, aquí hay una macro biblioteca existente. Tenemos nuestras macros estándar. Bueno, ¿dónde existe esto en nuestro navegador de contenido? Si vuelvo a nuestra pestaña de nivel aquí, tienes que asegurarte de que tienes contenido de tu show engine verificado aquí. Y acabo de pasar por debajo de Configuración mostrar contenido del motor. Y aquí está el camino en la carpeta de recursos de planos All Engine Content Editor justo ahí mismo. Y aquí están sus macros estándar. Y se puede ver desde la punta de la herramienta ahí el tipo de blueprint es una biblioteca de macros. Al hacer doble clic sobre esto, solo va a saltar de nuevo a esa pestaña. Aquí hay un montón de macros diferentes que están disponibles en cualquier plano. ¿Dónde más puedes encontrar algunas macros? Bueno, tengo algunos disponibles aquí en mi plano de nivel. Si salto a mi gráfico de tipos de nodos en ojos, acercar mis nodos de control de flujo aquí. Todos estos son nodos de control de flujo. Vamos a tener toda una sección del curso dedicada a los préstamos de control de flujo, pero estas son todas macros. Entonces vas a notar que las macros tienen este encabezado gris. Esa es una manera fácil de identificar una macro. Tiene esta cabecera gris. Y sólo para demostrar que estas son macros, si hago doble clic en alguna de estas, permítanme simplemente hacer doble clic en mi puerta aquí. ¿Qué sabes? Me salta de nuevo a mis macros estándar. Eso sí es una macro. ¿Qué más podemos encontrar macros? Bueno, puedes crear tus propias macros, y yo puedo presumir eso aquí en nuestro terceraPersonaPersonaje. Creamos una macro temporal. Por supuesto esto está vacío en estos momentos, pero tiene una sección para macros son Nivel Blueprint. Tiene una sección para macros para que puedas crearlas aquí. Cualquier otro blueprint, puedes crear macros dentro de las cuales vamos a hacer en realidad el siguiente video. Entonces chicos, eso lo va a hacer todo por este en nuestro resumen de macros, veremos en el siguiente video. 67. Creación de macros: Bienvenida. Nuestro objetivo en este video es aprender dónde y cómo crear una macro y ayudar a conducir mejor a casa esas diferencias entre funciones y macros. Vamos a crear nuestra macro de tal manera que sería imposible que una función se duplicara porque vamos a incluir algunos nodos tardíos dentro de nuestra macro, además de tener un múltiplo pines de salida de ejecución, que de nuevo, una función no puede hacer. Vamos a estar haciendo un poco de trabajo aquí dentro de nuestro bp terceraPersonCharacter. Entonces está el camino para encontrarlo, así como nuestro Blueprint de Nivel. Así que ten esos dos a mano. Vamos a empezar dentro de nuestro terceraPersonaPersonaje. Ahora, dentro de aquí, simplemente baja al panel Mi Blueprint y en la sección macro, haz clic en el botón Más. Y vamos a crear una macro llamada en llamas. Qué gran nombre te va a entusiasmar por lo que está por venir. Bien, ahora selecciona tu nodo de entrada aquí. Crea un poco de espacio entre los dos aquí. Y con cualquiera de ellos ser seleccionados, voy a agregar algunas entradas a esto viniendo debajo del panel Detalles haciendo clic en el botón más. Ahora voy a agregar una serie de pines. El primero, simplemente voy a llamar y presionar Enter. Ahora podemos establecer el tipo de pin que queremos para una entrada. Si hacemos clic aquí mismo, tenemos un montón de variables entre las que podemos elegir, así como una pluma de ejecución. No tuviste esta opción dentro de una función. Vamos a agregar algunos más aquí. Así que haz clic de nuevo en este botón más. Vamos a llamar a esto un efecto, un retraso. Y esto va a ser un flotador. Y haciendo clic de nuevo en este botón más, esto va a ser efecto para retrasar. Y luego botón más otra vez, y vamos a llamar a este efecto tres delay. Esas van a ser carrozas. Entonces vamos a agregar algunas salidas aquí. Vamos a sumar tres de ellos. El primero va a ser llamado spawn effect one, y esto va a ser una salida de ejecución de pin de ejecución de ejecución de pin en eso. Finalmente tomó que vamos a sumar dos más. Ambos van a ser ejecución ahora pines también. Y van a llamarse Control C, Control V, efecto de desove también. Y engendrar efecto tres. ¿Correcto? Ahora con eso cuidado, pongamos en los nodos que van a ir entre aquí, realmente no necesitamos tanto espacio. Así que fuera de nuestro pin aquí mismo, vamos a arrastrar y traer un nodo de secuencia. Este nodo va a disparar de estos pines secuencialmente. Podemos agregar múltiples pines aquí mismo. Sólo necesito agregar una tercera. Entonces, en cuanto entremos en esto, vamos a disparar primero, segundo y tercero en una sucesión tan rápida que va a parecer instantánea. También vamos a agregar tres nodos de retardo. Entonces, si mantienes presionada la tecla D y haces clic con el botón izquierdo, puedes traer retraso en los nodos manteniendo presionada la tecla d y haciendo clic izquierdo. Y los vamos a enganchar así, 12.3. Y la cantidad de retraso tan buena para venir de fuera de nuestra macro aquí. Lo que sea que va a ser enchufado a nuestro retraso o podemos fijarlo duro dentro del propio nodo . Así que vamos a ir así. Y luego de estas terminaciones, las vamos a enchufar a nuestras salidas así. Entonces una macro muy simple, solo estamos tomarla en unos pocos retrasos. Entonces vamos a ir secuencialmente 12.3 de estos retrasos y luego vamos a la salida. Entonces solo para mostrar cómo esta macro en particular va a verse esta macro en particular de nuevo en el Gráfico de Eventos. Coloquemos uno de estos aquí afuera, arrastremos y soltemos nuestra macro. Ese es el look final. Entonces esto de aquí mismo se traduce en un macro nodo, a, un nodo de cabeza gris que se ve así. Tenemos nuestros tres pines de salida. Son para pines de entrada tres flotadores en una ejecución en pluma. Ahora bien, vale la pena señalar aquí que debido a que nuestra macro tiene algunos nodos de latencia dentro de ella, esos son nuestros nodos de retardo. Vemos ese pequeño icono del reloj, ese icono latente aquí mismo en la macro misma. Pensé en señalarlo. Bien, construyamos nuestro script aquí, haciendo uso de nuestra macro. Entonces voy a comenzar con un evento personalizado. Así que haga clic derecho. Vamos a traer eventos personalizados para buscar personalizados, agregar un evento personalizado Voy a nombrar a este jugador, incendia los puntos de exclamación. Y voy a enchufar esto directamente a nuestra macro en llamas. Y ahora podría enchufar algunas variables flotantes a esto. A mí me gustó la flexibilidad de esta macro de esa manera. No obstante, en interés del tiempo, sólo voy a introducir algunos números. Voy a codificar eso si se quiere. Entonces 0.2 va a ser nuestro efecto retraso uno. Nuestro siguiente efecto va a ser 4 s. En nuestro siguiente va a ser 6 s. Así que solo estaba haciendo clic en la pestaña simplemente te saltará al siguiente campo ahí. A continuación lo que vamos a hacer es fuera de cada uno de estos que vamos a engendrar y efectos. Así que arrastra esto y escribe actor engendrado de clase. Ahora en realidad vamos a usar tres de estos nodos. Así que déjame traer todo esto aquí abajo un poquito. Entonces engendra actor desde el nodo de clase Control C, Control V y Control V. Para enmarcar esto para todos ustedes aquí. Y el primer actor en el que vamos a engendrar va a ser algo de humo. Eso es humo de efecto plano. Eso lo podemos encontrar en el pack de contenido de inicio. De nuevo, puedes usar lo que quieras aquí, pero yo solo voy a fumar primero. El segundo, voy a agregar chispas, que también está en ese Starter Content Pack. Y el último va a ser fuego. Entonces sí, humo, chispas y luego fuego. Ahora sí necesitamos introducir una transformación de spawn. Así que voy a agarrar nuestro componente cápsula y simplemente saltando a nuestra ventana gráfica aquí, nuestro componente cápsula es una cosa que rodea a nuestro personaje, así que va a engendrarlo justo en el medio aquí. Así que volvamos a nuestro gráfico de eventos. Voy a traer una referencia al arte Capsule Component drag out of this. Queremos que el mundo se transforme. Y podemos enchufar esto en los tres actores engendrados a partir de notas de clase. Bien, vamos a tener un poco de algunos entrecruzando el cable, pero espero no hacerlo demasiado malo para ti. Ahora bien, esto no es suficiente porque estamos engendrando estos, pero queremos adjuntarlos a algo. Así que voy a arrastrar de clase a nuestro actor spawn. Anote aquí el valor de retorno y voy a decir adjuntar A actor, perdón, adjunto dos componentes. El que estoy buscando aquí, unido a componentes. Bien. Ahora el padre aquí va a ser nuestro componente cápsula. Entonces voy a tratar de ir con una puesta a punto como esta. Voy a arrastrar por aquí, pero voy a hacer doble clic en este cable para ir así. Ahora están las reglas aquí. Yo sí quiero establecer estos para que se conecten a objetivos así, así, y así. Bien, y voy a Control C y Control V, estos tres nodos así. Entonces, ¿por qué están este tipo y este tipo así, gritos? Esto en el blanco, los padres dentro de ahí. Esto va para allá, esto va para allá. Y podemos tomar esto, el componente de la cápsula y escabullirlo ahí mismo. Entonces, esencialmente, lo que todo este guión está destinado a hacer es sobre estos dados al disparar este evento personalizado. Vamos a entrar aquí y vamos a retrasar por estas cantidades una vez más, haciendo doble clic en esta macro. Vamos a hacer cada una de estas cuando sean llamadas de retraso para que luego engendremos el efecto dado. Entonces vamos a engendrar en el humo que en las chispas, que en el fuego, y vamos a unirlo en última instancia a nuestro personaje. Vamos a compilar esto y ahorrar. Bien, esa es la mayor parte del trabajo, pero tenemos un poco más de trabajo que hacer. Así que volvamos a nuestro nivel aquí. Y vamos a colocar un par de cosas abajo para que parezca una zona peligrosa. Entonces voy a colocar una esfera disparadores. Entonces tengo mi panel de actores de lugar. Puedes encontrar esto viniendo justo debajo de aquí, coloca panel de actores que para que puedas colocar este panel. Y nuestra idea aquí bajo la categoría básica. Voy a colocar una esfera disparadora en mi nivel. Así. Voy a poner el radio de la esfera sobre en mi panel de detalles para que sea 200 así, algo un poco grande. Y luego en la carpeta de contenido de inicio aquí voy a venir bajo partículas. Y solo voy a arrastrar y soltar mi P fuego justo encima de los disparadores miedo aquí en mi outliner para que esté unido a, bueno, en realidad no va a adjuntarlo ahí, pero Puedo arrastrarlo y soltarlo aquí. Y luego puedo arrastrarlo y soltarlo encima de mis disparadores temen ahí sujetarlo. Y la razón por la que esto es bueno para adjuntarlo. Esto es solo un FYI. Si muevo la esfera, el fuego viene junto con ella, pero puedo mover el fuego independientemente para que quede justo por encima de la parte superior. Sólo estoy buscando algo que se vea un poco peligroso aquí. Vamos a poner la escala de nuestro fuego aquí para que sea no sé, tres veces más grande algo. Cinco veces esta bahía. Sí. Algo un poco peligroso que se ve. Todo bien. Regresa y selecciona tu esfera de activación porque vamos a hacer uso de esto dentro de nuestro Blueprint de Nivel. Tengo mi ficha Plano de Nivel aquí mismo. Voy a hacer clic derecho con esa esfera en el disparador seleccionado. Vamos a hacer algo cuando empecemos a superponer eso. Me has visto hacer esto varias veces. Entonces lo que vamos a hacer es que vamos a arrastrar fuera del otro actor. Vamos a averiguar quién es ese. Entonces vamos a arrastrar fuera de esta escena, hacer Cast to ThirdPersonCharacter. Básicamente estamos haciendo la pregunta aquí. Cuando algo se superpone a esta esfera desencadena, vamos a decir: Oye, vamos a averiguar qué es el otro actor. Si se trata de un personaje de tercera persona, entonces hagamos algo. Bueno, lo que queremos hacer aquí es llamar. Queremos llamar a este evento personalizado jugador se incendia. Ahora bien, la razón por la que tenemos esta configuración, la forma en que lo hacemos es porque no podemos llamar a esta macro desde nuestro Blueprint de nivel, pesar de que esto está compilado y tenemos nuestra macro viviendo aquí dentro de nuestra terceraPersonaCarácter. No puedo simplemente llamar al fuego. Hace una búsqueda de jugador se incendia. Estos son nuestros eventos personalizados, pero no podemos llamar a esa macro directamente desde otro Blueprint. Entonces esa es una de las diferencias entre macros y funciones. Así que aquí está nuestro llamado a esos eventos personalizados. Voy a compilar esto. Se ve bien. Entonces esto va a contar en nuestra terceraPersonaPersonaje, esto para disparar. Bien, vamos a darle una jugada a esto, momento de verdad. Al hacer clic en reproducir. Sólo voy a tratar de minimizar esto un poco para que veas que estos guiones se disparan aquí. Haremos que nuestro terceraPersonCharacter simplemente se genere, y ese va a ser nuestro objeto de depuración allí. Una vez que superponemos esto corta el humo, está apegado a nosotros. Ahora estamos chispeando la zona de entrepierna y ahora estamos en llamas. Entonces en efecto, que hizo trabajo está diseñado. Entonces vale la pena señalar aquí que creamos una macro. No podríamos llamar a esta macro o directamente desde nuestro plano de nivel. Dentro de esta macro, sin embargo, pudimos hacer uso del nodo de retardo, algunos nodos latentes, esos están disponibles para que los uses dentro de una macro. Además, lo que hizo que esta macro diferente y especial de una función es que podríamos tener múltiples pines de salida de ejecución. También podrías tener ejecución múltiple en bolígrafos. En este caso, acabamos de tener múltiples pines de salida de ejecución, pero puedes tenerlos en cualquiera de los extremos de la macro. Bien chicos, eso es todo por crear una macro los verá a todos en el siguiente video. 68. Colapso para Macro: Bienvenido de nuevo. En este video, nuestro objetivo es aprender a mejorar nuestras vidas colapsando una colección de nodos en un solo macro nodo. Ahora bien, esta es una de esas acciones de tipo de calidad de vida que puedes tomar para hacer que un cierto poco de script sucediera usando un nodo. No muchos. Ahora vamos a presumir esto. Tenemos antes de que crearas algún guión destinado a simular un giro de moneda, lo que significa que tendremos dos posibles resultados, cabezas o colas. Y entonces vamos a colapsar esa funcionalidad en una macro que se puede usar en cualquier lugar dentro de nuestro terceraPersonCharacter? Sí, una vez más, estoy dentro de mi Blueprint de personaje de tercera persona. He preparado algún guión antes de tiempo, y esta es mi cita, unquote coin flips script. Esencialmente lo que estoy haciendo es que estoy lanzando mi personaje para simular un volteo de monedas. Vamos a lanzar a nuestro personaje al aire como si volteáramos una moneda al aire. Sólo los estamos lanzando 850 en la dirección z. Entonces vamos a tocar un sonido sólo para coincidir con ese lanzamiento de nuestro personaje. Este efecto de sonido se puede encontrar en el contenido de tu motor. Por cierto, si no sabes cómo activar el contenido de tu motor, haz que esas carpetas estén disponibles para ti. De vuelta aquí en el Navegador de contenido la sección Configuración, solo puede asegurarse de que el contenido del motor de espectáculos esté activado. Deberías poder encontrar ese efecto de sonido. Entonces vamos a demorar 2 s. Esa va a ser la duración de nuestro lanzamiento de monedas aquí. Entonces trajimos un nodo de sucursal. Y lo que estamos haciendo aquí es establecer una condición, o condición es que vamos a tener un entero aleatorio, ya sea uno o dos, ese es nuestro rango. Y si es igual a uno, entonces va a igualar verdad. Y vamos a tocar el sonido del éxito si termina siendo un dos. Y nuevamente, esto sólo puede ser uno o dos, entonces estos no son iguales porque dos no serían iguales a uno, entonces sería falso. Y tocaríamos el sonido fallido de compilación, esa sería nuestra S fallida de x. Y ambos efectos de sonido se pueden encontrar en esas mismas carpetas de contenido. Muy bien, entonces queremos convertir esto en una macro, colapsarla en una macro. Ahora una cosa que debes saber es cuando intentas hacer esto, solo queremos obtener estos nodos aquí mismo para que puedas hacer clic izquierdo y arrastrar si accidentalmente intentas traer tus eventos de entrada como tengo derecho aquí, déjame mostrarte lo que pasa. Haga clic con el botón izquierdo y arrastre. Y ahora si hago clic derecho en alguno de mis nodos seleccionados aquí, tenemos la opción de Contraer a Macro. Entonces al tratar de hacer este ancho, esa clave de evento aquí, vamos a recibir una advertencia que dice Colapso a Macro falla que si mostramos el registro de mensajes, va a decir que no se puede colocar ese cinco entrada aquí, así nos desharemos de él Esta vez. Vamos a hacer click izquierdo y arrastrar alrededor de estos nodos, dejando fuera de ella las cinco entradas. Haga clic derecho. Vamos a colapsar a una macro. Y podemos ver más en la sección macro, ahora tenemos la capacidad de darle un nombre a esta macro. Entonces voy a voltear mi página y vamos a llamar a esta moneda flip. Sí, siguiendo junto con mis notas, coin flip. Puedes ver que esto está enganchado, pero necesitamos hacer un poco de trabajo dentro de nuestra macro para que podamos hacer doble clic sobre ella aquí mismo. Y cómo se ve actualmente nuestra macro. Pero aquí queremos hacer un poco más de trabajo. Así que simplificamos un poco nuestra vida condensando estos nodos en un solo nodo en nuestro gráfico de eventos aquí. Pero todavía quiero modificar algunas cosas. Entonces primero, voy a seleccionar mi nodo de entrada aquí. Y quiero establecer mi nombre de entrada aquí en lugar de ejecutes para que simplemente sea n. Entonces yo, mi nodo de salida, voy a agregar un par de salidas. Además voy a llamar a éste cabezas. Y vamos a establecer esto para que sea un pin de ejecución fuera. Entonces vamos a hacer clic en el botón Más una vez más. esto le vamos a llamar colas. Y eso también va a ser en ejecución PIM. Y nuevamente, si esto da como resultado un verdadero, eso va a ser esencialmente nuestras cabezas. Entonces vamos a conectar esto en nuestras cabezas. Y si esto termina siendo falso, aquí tenemos un dos, no es igual a uno. Esta va a ser nuestra cola. Entonces, si volvemos ahora a nuestro gráfico de eventos, podemos ver que nuestra macro de flip de monedas ha sido actualizada. Tenga en cuenta que tenemos una ejecución en pin y dos fuera. También. Tenemos este icono latente aquí para indicar que dentro de esta macro. Y una vez más, puedes hacer doble clic sobre esto para abrir tu macro. Tenemos un nodo latente dentro de aquí, sí, nodos de LinkedIn como retardos, pueden existir dentro de una macro. No pueden existir dentro de una función. Muy bien, volvamos a nuestra pestaña Gráfico de eventos aquí. Y quiero extender nuestro guión fuera de cada uno de estos pines aquí. Vamos a decir si nuestro volteo de monedas aquí termina siendo cabezas, lo que vamos a hacer es que vamos a hacer que salud de nuestro personaje esté llena. Antes de estas tomas de video, tomé nuestra variable de salud aquí y recuerdo que esto está enganchado a nuestro capó o medidor de salud. Y lo puse en 0.1, es decir, que vamos a empezar con un 10% de salud. Voy a mantener pulsada la tecla Alt, clic izquierdo y arrastrar para traer un setter. Y voy a poner esto en 1.0. Vamos a ir a toda la salud si conseguimos un resultado de cabezas. Y lo que vamos a hacer fuera de las colas, vamos a matar a su personaje porque eso suena divertido. Entonces vamos a traer nuestra malla, una referencia a nuestra malla. Así que agarra tu componente de malla aquí. Fuera de esto vamos a arrastrar hacia fuera, tenemos una opción llamada set simular física. El objetivo para esto va a ser nuestro componente primitivo, es decir, nuestra malla aquí mismo. Y todo lo que tenemos que hacer aquí es establecer esto en verdad. Y te dejaré en suspenso en cuanto a lo que esto va a hacer. Muy bien, adelante y compile aquí y Ahorre. Y vamos a darle una jugada a esto. Así que jugando, déjame establecer mi objeto de depuración para que sea nuestro personaje, trayendo a nuestro personaje de nuevo. Para que veas que empiezo con un 10% más saludable. Si presiono la tecla cinco, una vez más, va a toparse con nuestra macro y determinar si obtenemos resultados de una cabeza o una cola. Entonces aquí vamos, cinco claves. Tengo plena salud. Me hizo saltar enseguida, luego me mandó a la salud plena. Porque el salto, si se quiere, el lanzamiento de nuestro personaje, esa es nuestra moneda voltear el comienzo de la misma. Déjame intentarlo de nuevo. Cinco claves, saltar de inmediato a segundos después volvimos a tener plena salud, sigamos hasta que consigamos el resultado de colas aquí. Así que salta 2 s después, vamos a averiguar el resultado y simular la física. Pasó por el suelo, Dejando es espada atrás. Y así ahí lo tienes. Si tiene una colección de nodos que desea condensar en un solo nodo. Y tal vez tenga un retraso no notó en él. O necesitas tener algunos pines de entrada o salida de ejecución múltiple. Considera convertirla en una macro, colapsándola hacia abajo en una macro. Es posible que tengas que hacer un poco de trabajo de arreglo como tuvimos que hacer aquí con nuestro nombre de entrada y agregar un par de salidas aquí. Pero esa es una manera muy práctica de simplificar tus gráficas, chicos, eso va a hacer todo por este video. Nos vemos en la siguiente. 69. Biblioteca Macro: Hola. En este video, nuestro objetivo es mostrar cómo podemos crear un add macros dentro de nuestra propia biblioteca de macros creada. Entonces, ¿qué es una macro biblioteca? Bueno, es similar a una biblioteca de funciones que creamos en la última sección de videos, en que es un lugar centralizado para almacenar macros creadas que hacemos. Ahora bien, ¿cuáles son las grandes diferencias, entre una biblioteca de funciones y una biblioteca de macros a las que solo se puede acceder a las macros desde blueprints que comparten la misma clase padre, una biblioteca de macros? Ahora, eso parece un poco confuso aquí. Solo quédate conmigo a medida que vamos creando nuestra macro biblioteca. Bien, así que aquí estoy dentro de mi carpeta de scripting Blueprints abajo en mi navegador de contenido. Voy a crear mi macro biblioteca aquí mismo. Entonces sigamos adelante y hagamos clic con el botón derecho. Y vamos a llegar a planos en, en el pequeño menú de volantes. Tenemos la macro biblioteca de planos. Así que vamos a seguir adelante y elegir esto. Y ahora vamos a ver es que nos va a pedir que escojamos una clase de padres. Entonces vamos a elegir una clase padre de personaje que va a ser similar a nuestro personaje de tercera persona. Nuestro ThirdPersonCharacter es de la clase de carácter. Bien, así que vamos a dar click sobre esto. Y va a pedirnos ponerle un nombre a esto y voy a llamar a esto mi carácter de subrayado. Voy a hacer todas las gorras. ¿Por qué no macros de subrayado de caracteres? Y luego sigamos adelante y doble clic sobre esto para abrirlo. Y ahora algo que notarás aquí es que dentro de nuestra biblioteca de macros aquí nuevamente, nuestra clase padre es de carácter. Tenemos la capacidad de acceder y usar cualquier variable que sea nativa de esta clase y están nativa de esta clase y listadas todas anotadas debajo de aquí. Entonces bajo el carácter, hemos conseguido mallado, movimiento de personajes, etcétera, muchas categorías diferentes. Ahora comparemos esto con nuestro personaje en tercera persona, que es la clase de personaje padre sobre en el panel Mi plano. Si nos encontramos bajo variables, asegúrese de que si hace clic en este icono de engranaje haya mostrado las variables heredadas. Echa un vistazo a esto. Bajo la categoría de personaje tienes malla, movimiento de personajes, etcétera. Estas son todas las mismas variables que son nativas de esta clase, la clase de caracteres. Así que los puedes encontrar aquí dentro de nuestro terceraPersonpersonaje y aquí en nuestra biblioteca de macros, nuestra biblioteca de macros de personajes, también tenemos acceso a ellos. Bien, sigamos adelante y creamos nuestra macro aquí dentro de nuestra biblioteca de macros de personajes. Ahora, una vez que abrimos esta macro biblioteca, tenía una macro creada para nosotros aquí. Puedes ver la pestaña justo por aquí. Sigamos adelante y dale un nuevo nombre a esto. Así que solo voy a hacer click sobre esto, presionar F2, y voy a llamar a este cambio velocidad máxima. Y eso es exactamente lo que va a hacer esta macro, es que vamos a alterar las velocidades máximas de movimiento de nuestros personajes. Así que voy a crear un poco de espacio aquí entre nuestra entrada y nuestro nodo de salida aquí. Así que vamos a seguir adelante y crear algunas entradas y salidas para esta macro, voy a crear una entrada aquí, haciendo clic en este botón más justo aquí abajo. Y el primero simplemente va a ser llamado. Esto va a ser una ejecución en pluma. Y luego voy a crear uno más. Y a esta se le va a llamar nueva velocidad. Vamos a alimentar a esto un nuevo valor de velocidad, y este va a ser un flotador. Y para nuestras salidas, tengo algunas en mente aquí. Vamos a hacer clic en esto una vez, y vamos a llamar a éste caminando. Esto va a ser en ejecución a cabo pluma. Y entonces vamos a conseguir crear dos más más, más. El siguiente va a estar corriendo, y al siguiente se le va a llamar sprinting. Y esos son todos los pines de ejecución. Bien, entonces lo que vamos a hacer aquí es que vamos a arrastrar de nuevo nuestro Componente de Movimiento de Carácter, uno de los beneficios de crear, en este caso, una biblioteca de macros de personajes es que tenemos acceso a todas las variables de carácter nativo, incluido nuestro componente de movimiento del personaje. Vamos a arrastrar esto en nuestra gráfica. Vamos a conseguir eso. Ahora te darás cuenta algo aquí cuando arrastre esto aquí. Y acabo de soltar, solo podemos obtener variables aquí dentro de nuestra biblioteca de macros. Y esto va para cualquiera de ellos. Si yo fuera a hacer esto, estaba saltando y tratar de arrastrar esto adentro. No podemos establecer ninguna variable aquí dentro de nuestra biblioteca de macros. Algo importante a tener en cuenta con una biblioteca de macros, sólo se pueden obtener estas variables, no se pueden establecer. Pero eso está bien. Bueno, vamos a estar haciendo aquí es llegar al interior de nuestro Componente de Movimiento de Carácter. Y vamos a escribir set max, walk, speed. Ahora, esta variable vive dentro de nuestro Componente de Movimiento de Carácter. Y solo para conducir esto a casa un poco, tengo mi terceraPersonpersonaje aquí mismo. Si selecciono mi componente de movimiento de personaje, tengo una variable de velocidad de caminata máxima que vive dentro de ese componente de movimiento de personaje. Bien, entonces vamos a alimentar esto a una nueva velocidad. Al igual que así. Entonces fuera de esto voy a arrastrar y traer un nodo de sucursal. Y luego voy a arrastrar fuera de aquí. Y tengo varios nodos de comparación que quiero traer. Entonces voy a hacer un menos que o igual a uno. Voy a alargar un aquí otra vez, y voy a hacer una mayor que, sólo mayor que. Entonces voy a alargar una vez más y voy a hacer un menor que o igual a pequeños bucles menor que o igual a o simplemente menos igual como se le llama. Para los valores para estos, voy a enchufar 200 para este no plugin, solo voy a codificarlo duro. 200 para eso. Vamos a hacer más de 200 por esto y 1,200 por esto. Y vamos a leer, te voy a leer todo esto en un momento. Cómo vamos a estar interpretando todo esto. En sólo un momento. Voy a traer otro nodo de sucursal manteniendo pulsada la tecla B haciendo clic izquierdo. Y voy a enchufar esta verdad en nuestro caminar, falso voy a arrastrar y así oyes el término, los voy a arrastrar aquí y lo falso voy a arrastrar aquí. Y nuevamente, voy a interpretar todo esto para ustedes aquí en tan solo un momento fuera de aquí. Y voy a arrastrar aquí y traerlo adentro y nodo, va a ser un AND booleano. Y booleano ahí mismo. Conectando esto aquí. Estamos enchufando esto a aquí y esto a aquí. Bien, señor Lavandería, pasó por eso bastante rápido. ¿En qué se traduce todo esto? Bien, así es como va a funcionar. Vamos a alimentar una nueva velocidad a esta macro. Así podremos alterar, establecer a nuestros personajes la velocidad máxima de movimiento. Si es menor o igual a 200, si eso es cierto, vamos a salir caminando. Entonces vamos a seguir extendiéndose fuera de nuestra macro y hacer algo cuando detectemos que estamos caminando. Ahora bien, si detectamos que vamos a una velocidad mayor a 200 y menor o igual a este valor aquí mismo, 1,200. Si eso es cierto, entonces nos van a considerar que estamos corriendo. No obstante, si esto resulta ser falso, entonces vamos a ser considerados velocistas, lo significa que vamos a alguna velocidad superior a 1,200. Ahora sigamos adelante y hagamos uso de esta macro dentro de nuestro Blueprint ThiredPersonCharacter. Una nota rápida aquí, no hay necesidad de compilar aquí. No es necesario compilar dentro de una biblioteca de macros. De hecho, está gris, pero podemos seguir adelante y salvar esto. Y sobre en nuestro bp terceraPersonpersonaje, podemos seguir adelante y hacer clic derecho sobre esto. Y podemos hacer una búsqueda de cambio de velocidad máxima. Y ahí está. Ahí está nuestra macro que acabamos de crear dentro de nuestra biblioteca de macros. Y vamos a crear nuestros guiones para hacer uso de esto. Entonces vamos a agregar una tecla de entrada al frente mismo de esto. He estado usando la tecla cinco y la he estado borrando entre videos. Parece que no lo tengo en ningún lado de mi gráfica en este momento, hagamos los cinco Kishore cinco input. Entonces lo que vamos a hacer aquí es al presionar la tecla cinco, vamos a cambiar nuestros personajes max, movimiento, velocidad. ¿A qué queremos cambiarlo? Bueno, vamos a hacer clic derecho en algún espacio vacío y voy a hacer flotación aleatoria en rango. Para que podamos enchufar a este tipo a nuestra nueva velocidad. Así que cada vez que pulsamos la tecla cinco, podemos elegir un valor, y yo voy a elegir un valor, 1-2 mil. Así que cada vez que presionas la tecla cinco nos va a dar algún valor dentro de ese rango. Cuando soltemos esta clave, vamos a querer establecer la velocidad de movimiento de nuestro personaje nuevo a lo que normalmente es. Entonces, si arrastramos y soltamos nuestro Componente de Movimiento de Carácter en nuestra gráfica y vemos a nuestros personajes la velocidad máxima de caminata en este momento es 500. Entonces, si arrastramos aquí, podemos hacer establecer la velocidad máxima de caminata. Entonces, cuando lanzemos esto, vamos a establecer nuestra velocidad máxima de caminata de nuevo a 500. Entonces presionar lo va a poner ese nuevo valor liberándolo lo va a hacer retroceder. Y todo lo que vamos a hacer con cada uno de estos, podríamos hacer algo más. Quiero decir, podría tocar un efecto de partículas o lo que sea. Sólo voy a imprimir una cadena a la pantalla. Entonces vamos a hacer varias impresiones. Strings es ante todo, solo va a decir caminar y golpear Control C, Control V. Control V. Puedes adivinar lo que voy a enchufar en cada uno de estos campos. Esto va a decir correr. Y éste va a decir esprint. Sprint, sprint ing. No es que importe tanto. Vamos a compilar esto. Vamos a guardar, y sigamos adelante y juguemos esta configuración, nuestro objeto de depuración, personaje enorme o en tercera persona, para que podamos ver este guión disparándose en el lado izquierdo aquí. Bien, así que sólo estoy caminando, caminando, caminando. Al presionar la tecla cinco, mira en la parte superior izquierda debajo de la palabra Superhéroe. Entonces cinco, corriendo. Enviándolo de vuelta a cinco. Correr no parece mucho más rápido. Cinco, esprint. Cinco carreras de velocidad. Ahora correr sí tiene el mayor alcance, 200-1200. Yo quería que caminara, así que están corriendo, presionando F5 nuevamente y corriendo. Otra vez. Correr podría estar bastante cerca de correr. Sprinting, consigue algo de carrera ahora tiene que estar apenas por encima de 200. Correr, correr. Vamos a dar un paseo por aquí. Voy a seguir adelante hasta que me ponga a caminar. Ahí vamos caminando. Entonces podemos ver que esa macro efectivamente está funcionando. Bien, ahora es importante señalar aquí que pudimos encontrar y usar esta macro aquí dentro de nuestro personaje en tercera persona porque ambos son tercera persona y nuestra biblioteca de macros share la misma clase padre. Si obviamente ir a nuestro Blueprint de Nivel. Vamos a abrir nuestro plano de nivel aquí. E incluso si tengo alguna referencia a nuestro personaje aquí, vamos a hacer un evento que empiece a jugar seguro. Incluso comenzar a jugar. Y íbamos a conseguir personaje de jugador. Y entonces, ya sabes, Cast to ThirdPersonCharacter, algo así. Y íbamos a tratar de encontrar ese cambio velocidad máxima arrastrado fuera de aquí, cambiado Max. No puedes encontrar esa macro aquí dentro de tu plano de nivel. No puedes simplemente hacer clic derecho en algún espacio vacío y encontrar la velocidad máxima de cambio porque esta no tiene ninguna clase padre, porque se trata de un Blueprint de Nivel, pero incluso dentro de otra clase, pero un plano como nuestro ejemplo pickup, esto tiene la clase padre de actores. Entonces, si tuviera que hacer clic derecho aquí y hacer cambiar la velocidad máxima, tampoco la encuentro dentro de aquí. Entonces eso es algo importante a tener en cuenta porque esta macro se creó dentro de una biblioteca de macros con la clase de carácter padre. Solo podemos encontrar y usar esto en cualquier otro plano que comparta esa misma clase padre. Entonces, dado ese matiz detrás de una biblioteca de macros, la necesidad de definir una clase padre, ¿cuáles serían los beneficios de usar una biblioteca de macros? Bueno, considera que tal vez tengas un juego de lucha y tengas una gran cantidad de personajes a los que puedas jugar ya que tal vez te gustaría tener algunas macros que todos los personajes pudieran compartir y usar. Algo como escoger entre una tante al azar o tal vez un cambio de atuendo, ese tipo de cosas. Quiero decir, aquí mismo, todo lo que estoy haciendo es elegir un flotador aleatorio en rango, y luego estoy decidiendo si estoy caminando, corriendo o corriendo. Tal vez podríamos alimentar esto con un entero aleatorio en base al entero que se escoge. Podríamos jugar al azar enseñamos algo de esa naturaleza. Ahora bien, si quieres sortear esa limitación de la biblioteca de macros, aquí hay un pequeño hack que puedes hacer para asegurarte de que tus macros estén disponibles en cualquier lugar. Y eso es para asegurar que tu clase padre para tu biblioteca de macros sea de la clase objeto. Ahora para conducir a casa ese punto, permítanme simplemente hacer clic con el botón derecho en algún espacio vacío aquí y voy a traer, digamos, un nodo de puerta. Y la razón por la que estoy haciendo esto es para que pueda hacer doble clic sobre esto y llevarme rápidamente a nuestra biblioteca de macros estándar. Simplemente navegando hasta esto, podemos encontrar dónde está esto en nuestro navegador de contenido. Se encuentra en la carpeta de recursos del blueprint del editor de contenido del motor . Una vez más, para ver esto, puedes asegurarte de tener activado el contenido del motor de espectáculos. Y si vamos a nuestra biblioteca de macros estándar, podemos ver que nuestra clase padre aquí es objeto. Ahora, volviendo a nuestro navegador de contenido aquí, si tuviera que hacer clic derecho en él algunos espacios vacíos, si íbamos a crear una nueva biblioteca de macros, blueprints, blueprint macro library. Consulta esto aquí abajo en la sección de todas las clases. Se puede ver que cada otra clase hereda del objeto. Entonces, si tuvieras que hacer una biblioteca de macros estándar que tenga la clase principal de objeto, cualquier otra clase va a poder usarla. De ahí, por qué puedes encontrar nodos como nodo puerta en cualquier otro blueprint. Bien chicos, va a hacerlo todo por éste. Te veremos en el siguiente video. 70. Matriz: Bienvenidos de nuevo a todos. En esta sección del curso, vamos a estar volviendo al tema de las variables porque hasta este punto del curso, solo hemos hablado de un solo contenedor de variables. Y en particular, de lo que estamos hablando aquí es con un tipo de variable seleccionado, tienes encima en el lado derecho aquí la posibilidad de elegir el tipo de contenedor. Solo hemos creado variables individuales. No hemos hablado de arreglos, Sets, o mapas. Entonces de eso se trata esta sección del curso, hablando de estos diferentes tipos de contenedores variables. En particular, para este curso, vamos a estar aprendiendo qué es una matriz. Vamos a mostrar cómo crear unos pocos y luego dar un ejemplo de cómo se pueden usar. Entonces, en primer lugar, ¿qué es una matriz? Una matriz es un contenedor de variables que puede almacenar una colección de valores de algún tipo de datos. Ahora términos más prácticos en array es una lista de cosas similares. Podría ser una matriz de valores flotantes, podría ser una matriz de textos, de sonidos, de objetos, etc. Ahora, cada entrada en la lista tiene asociado un índice entero o lo que se conoce como clave asociados con ello. decir, podemos buscar una entrada dada en la lista si queremos o necesitamos. Bien, aquí estoy dentro de mi Blueprint de personaje de tercera persona. Así que vamos a crear nuestra primera matriz. Y vamos a empezar bajando al panel Mi Plano. Vamos a crear una nueva variable, haciendo clic en este botón más, voy a llamar a esto frases de captura. Y el tipo aquí va a ser una variable de texto. Y luego sobre en el panel Detalles podemos establecer el tipo de contenedor, que voy a hacer clic en este desplegable y elegir una matriz. Ahora necesito compilar mi plano. Y cuando lo haga, me va a permitir agregar X número de elementos a mi lista. Recuerde, en array es esencialmente una lista y se llega a determinar cuántos elementos existe en esa lista. Voy a hacer clic en este botón Plus aquí abajo, tres veces 12.3. Y mi primera frase va a ser, oye, oye. Mi segundo va a ser el arco alto diddley. Y mi siguiente va a ser liberado a los sabuesos. Ahora tenga en cuenta que las variables de matriz o tipos de contenedor más bien son designados por estas cuadrículas de tres por tres colores muestran que no son variables individuales estándar. Y puedes ver eso representado no solo por aquí sino abajo en tu panel Mi Blueprint debajo de la sección variable, ves ese icono de gofre de tres por tres que indica que esa variable es una matriz, una matriz de variables de texto. Ahora, algo que vale la pena mencionar aquí es que puedes reordenar tus valores dentro esta matriz haciendo clic derecho sobre aquí y arrastrando uno arriba, o arrastrando hacia abajo, así. También sobre el lado derecho aquí tienes la opción si haces clic en esta pequeña flecha desplegable, insertar, eliminar o duplicar una entrada. Entonces voy a insertar solo para presumir eso y luego eliminemos rápidamente eso. Bien, ahora sigamos adelante y hagamos uso de esta matriz. Entonces voy a traer aquí una llave de evento. Haga clic derecho. Voy a hacer las cinco claves. Y entonces lo que voy a hacer es que voy a traer mis frases. Entonces quiero llegar a, así que voy a mantener pulsada la tecla Control, clic izquierdo y arrastrar. Eso me va a dar un captador. Y luego fuera de esto, quiero arrastrar aquí y escribir en consigue, quiero obtener una referencia aquí. Lo siento, más bien, quiero conseguir una copia. ¿Y qué quiero sacar de esto? Bueno, puedo elegir qué entrada en esta matriz, 01 o dos. Y nuevamente, esta es una lista basada en cero. Va a empezar contando a cero cuál de estas entradas me gustaría devolver. Entonces, sea cual sea el número que escriba aquí que se corresponderá con la entrada que quiero devolver. Y voy a elegir algo al azar aquí. Así que voy a arrastrar hacia atrás fuera de esto y escribir entero aleatorio en un rango. Y voy a decir 0-2, porque ese es mi rango, 0-2. Si tuviéramos que ir arriba para decir lo ponemos en un rango 0-3 y devolvemos el número tres, solo obtendríamos un resultado nulo y no se lanzaría ninguna flecha. Simplemente obtenemos un resultado nulo. Voy a arrastrar aquí, escribir texto impreso. Y vamos a enchufar esto aquí. Entonces, rápidamente vamos a darle una jugada a esto. Déjame compilar esto, asegurarme de que se vea todo bien. Y hago clic en mis opciones de juego aquí. No quiero simular, estoy en un avión y nueva ventana del editor. Voy a establecer esto como mis objetos de depuración para que podamos ver este script disparando. Y no a OBS. Aquí vamos. Cuando presiono la tecla cinco. Hola diddly. Hola. Hola diddly Hill, realmente suena. Se puede ver como soy spam la clave cinco, estoy recibiendo una de esas diferentes opciones al azar. Ahora mira esto. Actualmente tenemos tres frases clave en nuestra matriz. Sin embargo, nuevamente, se trata de una variable. No tenemos que quedarnos con estos tres elementos aquí mismo. Podríamos intercambiarlos. Intentemos algo como esto. Voy a traer una llave de cuatro. Para entradas. Lo hacemos por teclado, Ahí están mis cuatro teclas. Lo que voy a hacer esto es que voy a poner mi frase. Voy a mantener pulsada la tecla Alt, hacer clic izquierdo y arrastrar. Vamos a poner esto en este pin para traer un setter. Y lo que voy a hacer fuera de esto es arrastrado hacia atrás y escriba make array. Entonces este nodo, voy a agregar tres pines. Lo que voy a hacer es que me voy a poner duro ¿cuáles son los tres elementos que van a ser en esta carrera? Voy a poner en masa. Y en mi segunda entrada aquí voy a poner en Smithers. Y el tercero van a ser los meses de Nelson. Jaja. Así que mira lo que tenemos pasando aquí. Déjame reducir un poco esto un poco, meterlo aquí arriba. Al hacer clic en la configuración de reproducción, es posible que esto ya tenga eso como mi objeto de depuración. Eso está todo bien y bien. Entonces, si empiezo presionando la tecla cinco y solo la enviaré spam, verás las entradas originales en mi matriz. Ahora voy a presionar la tecla F4 y va a sobrescribir esas entradas. Así que sólo voy a presionarlo una vez. Mira cómo se apaga este fuego, auges. Eso sí se disparó. Entonces ahora cuando presiono la tecla cinco, las entradas, los elementos de esta matriz han sido cambiados. Entonces leerá como así las nuevas entradas que acabo de poner aquí, cambié, cambio el contenido de esa matriz. Bien, intentemos crear un par de matrices más. Así que vamos a crear uno más aquí en el panel Mi Blueprint bajo variables, haciendo clic en este botón más, voy a llamar a esto mi matriz de sonido. Ahora voy a cambiar el tipo de variable aquí para que sean archivos de onda de sonido, onda de sonido. Entonces, bajo tipos de objeto onda de sonido, queremos elegir la referencia de objeto. Ya es de los tipos de contenedor de variables de matriz. Entonces eso está todo bien y bien. Y voy a crear una variable más aquí, haciendo clic en el botón más. Y éste va a ser mi matriz de actores. Y voy a cambiar el tipo aquí mismo para ser de la variedad actor bajo tipos de objeto, actor el objeto referencia. Bien, ahora voy a compilar ambos de estos. Y para mi matriz de sonido, voy a entrar duro tres de estos, así que 12.3. Y aquí puedo meter algunos sonidos. Iré con cualquiera de tres. Tengo doble ventana cerrar cualquiera de tres haremos esto es todo solo por ejemplo sake. Var subrayado lo suficientemente cerca para mi tercera, simplemente voy a ir flotando UI cerrar. Así que te imaginas, digamos que tuve una serie de ruidos de bocina de auto. Quieres una llave increíble en tu teclado va a hacer que se apague la bocina de tu auto. Estas pueden ser tres variaciones diferentes a ese sonido. A lo mejor solo quieres elegir uno al azar. Bien, así que eso está todo bien y lo suficientemente bueno para mi matriz real. Voy a hacer 12.3. No obstante, voy a dejar estos como vacíos en estos momentos. Voy a compilar esto y guardar una cosa más. Olvidé marcar esta casilla instancia editable, así que asegúrate de marcar esto también. Adelante, compile y ahorre una vez más. Lo que voy a hacer es que una vez que juegue a este juego, voy a establecer qué objetos van a ser parte de esta matriz de actores. Así que tenga en cuenta que esta matriz actualmente esta lista está vacía. Entonces lo que voy a hacer es volver a mi nivel aquí. Voy a añadir tres objetos. Realmente no importa. Yo solo haré un cubo, una esfera y un cilindro. Así. Bien, tengo esos tres puestos aquí. Volvamos a nuestro personaje en tercera persona. Solo voy a intercambiar nuestras matrices aquí, solo modificamos un poco nuestros scripts aquí un poco. Así que aquí bajo frases, nos vamos a deshacer de estas cuatro o cinco claves. Voy a traer mi matriz de sonido manteniendo presionada Control, clic izquierdo y arrastre. Vamos a arrastrar un tipo aquí, consigue, queremos obtener una copia, enchufar estos. Entonces en realidad no quiero imprimir texto aquí. Quiero tocar un sonido. Reproducir sonido. Lo siento, más bien, vamos a arrastrar fuera de aquí y escribir play sound 2D, así. Y cuando presione mis cuatro teclas, borre estas aquí mismo, voy a agarrar a mi actor, levantar una tecla Control que mantiene pulsada. Clic izquierdo en traer una referencia para ese fin, voy a arrastrar fuera de este tipo en gets, vamos a conseguir una referencia. Copia, más bien no una referencia. Siempre los fastidio. Voy a hacer un entero aleatorio en rango para esto. Entonces Control C, control V. Ahora lo que voy a hacer aquí es que vamos a arrastrar esto y sólo vamos a destruir a un actor. Entonces cuando presione la tecla cuatro, voy a destruir una de estas ahora otra vez, esta es actualmente una matriz vacía. Entonces vamos a compilar esto. Ese guión va a quedar bien aquí. Voy a seguir adelante y saltar a mi nivel. No vamos a llegar a ver cómo se disparan estos guiones. Pero si necesitas volver aquí y hacer referencia a estos, eso está todo bien y bien. Bien, aquí vamos. Bien, ahora con mi personaje en mi nivel, puedo verlo poblado aquí en el outliner. Voy a seguir adelante y seleccionar mi terceraPersonaPersonaje. Y ahora necesito establecer los tres elementos de mi matriz de actores. Así que voy a hacer una búsqueda para ello aquí con mi terceraPersonpersonaje seleccionado. Hacer una búsqueda de matriz de actores. Y tenga en cuenta que todavía no tengo nada establecido aquí. Entonces voy a hacer click en estas flechas desplegables, y voy a ponerlas para que sean el cubo, cilindro y esfera respectivamente. Entonces cubo cilindro para el siguiente. La esfera está en algún lugar de aquí. Hay una esfera. ¿Bien? Y déjame volver a subir mi ventana de juego. Bien, así que al presionar esa tecla de cinco en primer lugar, vamos a escuchar algunos sonidos. Todo bien y bien. Bien, y ahora mis cuatro relojes clave, estos desaparecen cuando son seleccionados. ¿Se han ido los cuadrados los cilindros? Vuelvo a presionar la tecla F4, nada desaparece también, debió haber seleccionado ese elemento nuevamente. esfera se ha ido, y finalmente, la plaza se ha ido. Para que puedas ver esos diversos arreglos funcionando. Ahora la razón por la que me sale este error es porque estaba tratando de destruir a algunos actores. Ahí está yo estaba presionando mis cuatro teclas aquí. Estaba tratando de elegir un entero aleatorio y un rango, solo tratando de elegir uno de estos tres. Ahora el primero que se destruye fue el cilindro, que creo que también eran elementos . Podría equivocarme en eso. Una vez que eso esté destruido y vuelva a elegir ese mismo número, va a lanzar ese error cuando dejé de jugar diciendo como, Oye, estoy tratando de destruirte actor, pero ya has han sido destruidos. Pero nuevamente, todo esto es para fines académicos. Bien, sólo un poquito más aquí para ir. Antes de concluir esto, quería señalar eso para cualquier matriz, y vamos a traer aquí nuestras frases clave. Cualquiera de estos tendrá las mismas opciones disponibles para usted si bebió de esto y se encuentra en la sección de utilidades, matriz de utilidades, tiene un grupo de diferentes opciones que puede usar para modificar para editar su matriz. Se le puede agregar. Se puede arrastrar fuera de esto y escribir en claro. Puede borrar su matriz. Así que podríamos agregar otro elemento a nuestra matriz aquí. Este despejaría la matriz por completo. Puede agregar la matriz que va a tomar una matriz de frases clave. A lo mejor tienes un segundo rayo de frases clave y podrías combinarlas. Podrías, empecé al azar. Podrías elegir una entrada aleatoria de tu matriz y también devolver el índice. Entonces eso elegiría una entrada aleatoria que devolviera el índice. Entonces, con cualquier matriz tienes un grupo de opciones con las que puedes jugar para modificar esa matriz alguna manera, forma o forma. Y nuevamente, puedes encontrar los que están debajo aquí, array de utilidades. También tienes muchos más de ellos disponibles para ti. Muy bien, gracias a saber antes de concluir esto, los valores dentro de una matriz, una vez más, son valores de índice basados en cero, es decir, que el primer índice es cero, no uno. Las matrices son una excelente manera de almacenar una lista de este mismo tipo de datos. ¿Dónde usarías esto? Bueno, tuve una variedad de frutas que engendré en un juego al estilo Pac-Man que creé en Unreal mientras hacía tiempo. Otra cosa a tener en cuenta sobre las matrices es que puedes tomar una entrada específica de una lista obteniendo una copia, como lo estamos haciendo aquí. O puedes conseguir entrada aérea o aleatoria como lo estamos haciendo aquí. Entonces, si quieres obtener una copia específica, puedes simplemente romper este cable y decir: Oye, quiero elemento cero. El enfoque aleatorio haría algo así. Ahora más tarde, cuando hablamos de control de flujo, los nodos mostrarán cómo mirar a través cada entrada de la matriz usando un bucle for o un while para hacer algo a cada entrada de la lista o para conducir alguna lógica basada en mientras se da, mientras que se encuentra una entrada dada en la lista. Cierto chicos, eso va a hacerlo todo por este. Te veremos en el siguiente video. 71. Conjunto: Bienvenida. En este video, nuestro objetivo es conocer qué es un contenedor de variables establecidas. Mostrar cómo crear uno, y luego dar un ejemplo de cómo se pueden usar. Entonces, antes que nada, definamos qué es un conjunto par. Bueno, un conjunto es como una matriz en que es un contenedor de variables que puede almacenar una colección de valores del mismo tipo de datos. Por aquí en mis tipos de variables. A la derecha, tengo diferentes tipos de contenedores, conjunto de matrices individuales o mapa. Así que estamos hablando ambientado en este video, por ejemplo, podríamos tener un conjunto de tesoros ocultos que se te pide que encuentres en una colección de tesoros escondidos a nivel. Ahora, una de las cosas únicas de un conjunto es que todas las entradas dentro un contenedor de conjunto deben ser únicas, sin duplicados. Llegaremos a algunas más de las diferencias entre arrays y sets en solo un poquito aquí, voy a estar creando un par de variables aquí dentro de mi Blueprint de Nivel. Pero para este ejemplo, también podrías hacer esto en tu terceraPersonaPersonaje. Olvidaste cómo abrir tu Plano de Nivel ahí mismo. Blueprint de Nivel Abierto. Y vamos a entrar bajo nuestro panel Mi Blueprint y crear un par de variables. Al hacer clic en este botón más. Una vez, voy a crear uno llamado tesoros escondidos, todos, voy a cambiar el tipo aquí para que sea un nombre. Vamos a puñetear en algunos nombres por algunos tesoros escondidos. Y luego en el panel Detalles, voy a cambiar el tipo de contenedor aquí de single a set. A continuación, voy a hacer clic derecho sobre esto y voy a duplicarlo. Se puede ver la tecla de acceso rápido para ese control más D. Y esto se va a llamar tesoros escondidos. Encontrado. Y luego una vez que compila, puedo agregar algunas entradas aquí, algunos elementos de conjunto diferentes. Entonces comencemos con tesoros escondidos todos. Voy a hacer clic en este botón más una vez. Y si intentaste hacer clic en él por segunda vez, va a decir que no puedes agregar otra hasta que agregues alguna, una entrada aquí. Entonces voy a llamar a esta estatua de oro. Al volver a hacer clic en el botón más, llamaré a este collar. La razón por la que no puedes agregar otra cuando dice ninguno es porque intentaría crear una entrada duplicada que también diría ninguna. Así que recuerda, los conjuntos no pueden tener duplicados. Volviendo a hacer clic en este botón más. esto le llamaremos alfarería antigua. Alfarería. Alfarería. Claro. Cerámica antigua. Al hacer clic de nuevo en el botón más, vamos a llamar a este pergamino de sabiduría. Y haciendo clic de nuevo en el botón más, vamos a llamar a esta cresta guerrera. Bien, así que ahora voy a poner algunos tesoros escondidos que se encuentran aquí. Y en realidad ¿sabes qué? En realidad quiero tener algunas entradas duplicadas aquí. Así que voy a eliminar esta. Y te diré por qué vamos a eliminar esto para asegurarnos de que tenemos nuestros nombres deletreados exactamente igual. Entonces voy a hacer clic derecho sobre esto. Vamos a duplicar esto. Una vez más. Yo llamo a esto encontrado, y voy a compilar esto en. Una vez que lo compile, puedo ver todas esas mismas entradas. Solo eliminemos algunos de los míos aquí, así que eliminaré el collar dando clic aquí mismo. Eliminar mantendrá estatua de oro. Mantengamos también pergamino de sabiduría. No, realmente no importa cuáles nos quedemos, sino que solo mantengamos un par de ellos ahí mismo. Ahora bien, tenga en cuenta que ciertos tipos de variables no pueden usar conjuntos. Si tuviera que seleccionar mi, digamos, variable booleana aquí y pasar a los tipos de contenedor. No puedo establecer un set para esto. También puedo hacerlo para una tecnología variable de texto, o un rotador o una transformación. Todos los demás se pueden establecer como un tipo de contenedor establecido. Sólo pensé que lo tiraría aquí también. Ahora bien, si arrastro una referencia a uno de mis sets aquí y luego lo sacan arrastrado fuera de él, libera algo de espacio vacío debajo la sección del conjunto de utilidades. Ves que tengo un montón de diferentes funciones disponibles para manipular los datos de alguna manera, dar forma o formar muchas funciones específicas de conjuntos. Lo que voy a hacer aquí es adelantar el video rápidamente después de agregar estos, y simplemente hablar rápidamente sobre algunas de las diferentes opciones disponibles para ti. Bien, y aquí hay un montón de esas funciones de las que estaba hablando que son específicas para establecer. Se le puede agregar un elemento. Se le puede quitar un elemento. Tienes algunas comparaciones entre dos conjuntos diferentes, ese tipo de cosas. Ahora una cosa que vale la pena señalar aquí, si solo estuvieras para hacer clic derecho y algún espacio vacío como lo hice con este nodo de aquí mismo haciendo una búsqueda de un nodo de unión. Cuenta con estos grandes pines de entrada y salida. Estas son entradas y salidas comodín, lo que significa que cualquier tipo de datos se conecta primero a una entrada o salida, ese es el tipo de datos, el resto de la toma de entrada o salida. Y solo para demostrarlo, estos son grises ahora mismo si tuviera que enchufar esto para decir este top, se puede ver que todos se vuelven morados para representar el nombre tipo de variable. Ahí. Para eliminar eso y poner uno en el lado de salida, va a cambiar el lado de entrada a ese mismo color, ese mismo tipo también. Bien, aquí a mi Plano de Nivel, he empezado a crear un guión mostrando un ejemplo práctico de cómo se pueden usar los sets en un juego. Entonces, cuando presiono la tecla tres, lo que voy a estar haciendo es averiguar la diferencia entre dos conjuntos diferentes. Mi top set va a contener todos los tesoros dicen que necesito encontrar en un nivel dado. Mi fondo me va a dar los tesoros que he encontrado hasta ahora. Lo que esta nota de diferencia va a hacer es que va a dar salida a todas las. No he encontrado la diferencia entre un conjunto y otro. Así que no puedo simplemente arrastrar fuera de aquí y escribir cadena de impresión. Entonces no puedo, esto no va a imprimir los nombres de todos los elementos del conjunto que actualmente no se encuentran. Entonces lo que tengo que hacer aquí es arrastrado fuera de aquí. Esto me dará el tesoro resultante no se encuentra. Y voy a escribir en dos array. Lo que esto me permitirá hacer es generar una matriz de todos estos diferentes elementos del conjunto. La diferencia entre estos dos. Y con esto, puedo arrastrar fuera de aquí y traer un para cada bucle. Ahora aún no hemos hablado los nodos de control de flujo que se van a convertir en la siguiente sección. Pero lo que me va a permitir este nodo de control de flujo es mirar a través de cada elemento de esta matriz, cada elemento de esta lista, y luego enviarlos a la pantalla aquí. Y va a estar sacándolos a la pantalla de a través de una cadena de impresión. Entonces, para cada elemento en esa matriz, vamos a tomar eso y convertir ese nombre en una cadena para que podamos generar. Vamos a compilar aquí, asegurémonos de que nuestro script se vea bien. Guárdalo. Vamos a jugar. Puede establecer su objeto de depuración su mapa de prueba allí si aún no lo ha hecho. Y ahora si presiono esa tecla tres, se puede ver que esos son los tres elementos que aún tengo que encontrar. Solo estoy enviando spam con tres claves. Esa es la diferencia entre mi set completo y mis sets encontrados. Bien, así que ahora probemos algo más aquí. Voy a traer el teclado VY, la tecla V, no lo sé. Y con esto, voy a traer una referencia a mis tesoros escondidos encontrados. Voy a arrastrar fuera de aquí y voy a escribir AD. Asegúrese de elegir la función add en esta categoría de conjunto aquí. Y vamos a agregar collar. Vamos a decir que ya encontramos el collar. Entonces vamos a agregar eso a nuestra lista de tesoreros encuadernados. Entonces esencialmente esto sería oro, estatua, pergamino de sabiduría y luego collar. Así Compilar, Guardar. Ahora cuando toque, cuando presione la tecla tres, va a decir, oye, te faltan esos tres, pero ahora voy a presionar la tecla V. Vamos a decir, sí, ya encontramos el collar, llave V. Bien, así que eso se ha sumado a mi lista de mil. Ahora cuando presione la tecla tres, va a decir que esos son sus dos desaparecidos. Hemos encontrado el collar. Bien, acabemos este video hablando de algunas de las similitudes y diferencias entre arrays y sets, comenzando por algunas similitudes. Bueno, tanto arrays como sets almacenan una colección de valores del mismo tipo. Ambos te permiten agregar y eliminar elementos, y me has visto hacerlo en el transcurso de los dos últimos videos. En cuanto a las diferencias, el orden de los elementos es diferencia en las matrices que tiene una lista ordenada. Los conjuntos se consideran desordenados. Ahora, en cuanto a la singularidad de los elementos, las matrices pueden tener elementos duplicados. Los conjuntos no pueden tener duplicados, y esa es una de las diferencias clave entre matrices y conjuntos. Los conjuntos no pueden tener duplicados. Las matrices pueden, en cuanto a las diferencias funcionales, las matrices pueden buscar y obtener un elemento individual a través una búsqueda de índice porque están ordenadas. Y solo para presumir eso rápidamente, tengo una variedad de actores de recogida aquí. Si arrastro y suelto eso y lo consigo, puedo arrastrar fuera de aquí y obtener, puedo obtener un elemento individual dentro de esa matriz, cualquier número aquí, nuevamente, comenzando con la lista cero, actualmente no tienen nada en esta matriz. Pero sí, puedes obtener unos elementos dados especificados por un índice. Ahora en cuanto a los sets, no pueden buscar ni obtener un elemento individual. Sin embargo, los sets son geniales para comparaciones entre listas, como me acabas de ver hacer con estos tesoros ocultos, todas las listas y mis tesoros escondidos, set ilimitado o una matriz, a qué deberías ir con? Bueno, yo iría con un set si el orden no es para nada importante. La singularidad de los elementos es un requisito. Por otro lado, ir con una matriz si el orden es importante, pero duplicar elementos, no es gran cosa allí posible dentro de eso. Ahora los sets también tienen el beneficio de su poco más rendimiento que las matrices. Entonces eso puede ser algo a tener en cuenta también. Pero nuevamente, las matrices son excelentes para si necesita buscar en un elemento individual dentro de esa lista. Los sets son geniales si necesitas comparar un conjunto frente a otro , ese tipo de cosas. Bien chicos, eso va a hacer, ofrezcan este video. Nos vemos en la siguiente. 72. Mapa de HiRez: Bienvenida. En este video, nuestro objetivo es explorar qué son los contenedores variables de mapa, cómo crearlos y cómo podemos usar uno en un proyecto de juego. Ahora, ver va a ser creer que este va a ser más fácil demostrarlo que de lo que se habla. Así que vamos a saltar directamente a la creación de uno. Ahora, vamos a estar creando este contenedor de variables de mapa dentro de nuestro controlador de reproductor bp. Este es un activo que creamos durante nuestro evento. Comienza el cursor sobre el video. Si quieres volver atrás y revisar eso cuando puedas. Si no sabes cómo crear un controlador de reproductor, te voy a dar una cartilla rápida, un rápido repaso aquí. Lo haces haciendo clic derecho, pasando por debajo de la clase Blueprint, quieres crear un controlador de jugador. Y entonces lo llamarías así algo así como bp player controller. Pero luego después de hacer eso, tienes que asociarlo ya que eres controlador de jugador activo para el proyecto en el que estás trabajando. Y lo puedes hacer en tu configuración. Ajustes del proyecto bajo mapas y modos. Justo aquí es donde puedes colocar en esa clase de controlador de jugador. Ahora, vamos a tener algunos videos más adelante en el curso donde platicamos específicamente sobre estos planos conocidos como planos de Framework. Pero hay una razón específica por la que quiero mostrar este contenedor de variables de mapa usando un controlador de reproductor bp, mi plano de controlador de reproductor aquí mismo. Y eso se debe a un blueprint de controlador de jugador está asociado con, en nuestro caso, son terceraPersonaPersonaje. Ahora, en un juego real, tu personaje podría morir y cuando llegue a responder, todas las variables dentro de ese plano de personaje del jugador se restablecerían a sus valores predeterminados. Ahora, algo así como en la variable de inventario, donde contiene el nombre de un artículo y cuántos tienes de ese artículo estaría mejor almacenado en un plano de controlador de jugador porque si tu personaje muere, tu personaje muere en esas variables consigue resetear en un controlador de jugador que se mantiene vivo, por así decirlo, permanece persistente durante toda tu sesión de juego. Así, si tu personaje muriera, esos valores no serían borrados dentro de tu controlador de jugador. Bien, así que con su controlador de jugador creado y configurado dentro de la configuración de tu proyecto en mapas y modos. Clase de controlador de jugador. Vamos a bucear dentro de aquí. Y si obtienes esta pequeña ventana que dice, Oye, esto es solo un dato, solo un plano. Podemos dar click aquí mismo para abrir el editor de planos completo y ver qué queremos ver. Muy bien, lo primero que hay que hacer aquí es crear una variable. Ahora, en realidad antes de hacer eso, quiero borrar todas estas variables heredadas solo para simplificar esta sección del panel Mi Blueprint, todas estas son heredadas de nuestra clase padre del jugador variedad de controladores. Entonces puedo Hola estos afuera haciendo clic en este ícono de engranaje. Desmarcando mostrar las variables heredadas y eso solo simplificará un poco eso. Así que sigamos adelante y agreguemos aquí nuestra variable deseada. Voy a nombrar este inventario porque eso es algo bueno para almacenar dentro de un plano de controlador de jugador. Una vez más, un personaje jugador puede morir y responder y morir y las variables de respuesta dentro de un controlador de jugador persistirán durante toda tu sesión de juego, el controlador del jugador no muere. Piense en ello como como las cuerdas de títeres controlan la marioneta que pueden ser golpeadas de la cuerda una y otra vez. Muy bien, con esto seleccionado en el panel Detalles, vamos a cambiar nuestro tipo de variable aquí, booleana a cadena, y luego nuestro contenedor de variables de un solo a un mapa. Ahora eso me permite agregar un tipo de datos secundario aquí. Entonces quiero tener una cadena para los nombres de mis artículos de inventario. Y entonces voy a tener un entero para decir cuántos de ese ítem dado tengo. Entonces podría tener cosas como poción de salud, tres de esas, hombre una poción tres de esos cascos de cuero , uno no blindaría , etcétera, etcétera. Ahora para agregar elementos a este tipo de variable, voy a dar click en Compilar aquí. Y podemos ver más en nuestro panel Detalles, podemos agregar elementos. Voy a hacer clic en este botón más una vez. Si intento darle clic de nuevo, me va a decir , no, no puedes hacer eso. Ahora con una variable de mapa. Es un contenedor que almacena una colección de pares de valores clave donde las claves y los valores pueden ser de diferentes tipos de datos. Una vez más, en este caso, mi clave va a ser la cadena. El nombre de mis claves de artículo de inventario debe ser único. Entonces para mi primera aquí, voy a llamar a esta poción de salud. Y voy a decir. Tengo tres de estos por defecto. Entonces la poción de salud va a ser mi clave, y aquí va a estar mi valor representado por un entero. Estos no tienen por qué ser únicos. Estos pueden ser los mismos, y voy a representar eso aquí agregando otro elemento aquí. Entonces las claves, en mi caso, las cuerdas, necesitan ser únicas. Voy a hacer que esto sea hombre, una poción. Y voy a establecer tres es un valor por defecto para eso. Y vamos a agregar un par más aquí solo por diversión. Voy a añadir seguro. Cascos de piel. Tenemos uno de esos. Y pinchando más aquí, tengo un escudo de madera y tengo uno de esos. Bien, ahora tengo mi colección de pares de valores clave todos dentro de este contenedor de mapas. Ahora, los mapas son geniales porque admiten búsquedas eficientes y recuperación de estos valores con el uso de estas claves asociadas. Bien, ahora quiero crear una variable más aquí, y esto va a entrar en juego un poco más adelante. Entonces voy a hacer clic en este botón Plus y voy a nombrar este elemento para usar. Y quiero que este sea del tipo variable string. Antes de establecer esto como un tipo de variable de cadena, voy a establecer temporalmente esto en un Booleano. Ahora algo a tener en cuenta aquí es que no se pueden tener ciertas variables como mapas. Entonces si tuviera que tratar de decir, Hey, variable tipo Boolean, quiero tenerte dentro de un mapa. No puedes hacerlo. Por lo que ciertos tipos de variables no pueden usar mapas. Incluyen variables booleanas, textuales, rotadoras y transformadas. Entonces pensé que tiraría eso ahí afuera ahora mismo. Esos no pueden ser, no pueden usar el contenedor de variables de mapa. Bien, ahora realmente quiero cambiar este tipo de datos aquí de booleano a una cadena. Y vamos a compilar esto para que podamos establecer un valor predeterminado. Y esto va a ser maná océano. Entonces como su nombre indica, este va a ser nuestro ítem para usar a un hombre de poción que entrará en juego en el futuro aquí. Justo a continuación, queremos crear nuevos planos de clase de actor. Así que vuelve a tu navegador de contenido. Voy a poner esto debajo la carpeta de scripting Blueprints. Lo vamos a poner dentro de ahí. Entonces voy a hacer clic derecho en algún espacio vacío, vamos a crear una nueva clase de blueprint. Va a ser de la variedad actor y vamos a nombrar a esta poción de manera de subrayado BP. Y luego vamos a hacer doble clic sobre este tipo para abrirlo. Y en primer lugar, vamos a agregar un par de componentes y luego establecer algunos detalles. Entonces el primer componente que quiero agregar es una esfera componentes. No este tipo de esfera, sino más bien un colisionador de esferas, colisión de esfera. Eso es lo que estoy buscando. Y voy a establecer que el radio de la esfera por aquí sea 70. Y luego con su lanza los componentes seleccionados dentro de esto se unen a esto más bien, voy a agregar un cilindro. Y así sólo voy a teclear cilindro y encontraremos un cilindro de formas básicas. Y sí tengo algunos ajustes que quiero establecer para esto. Voy a cambiar la escala para que se desbloquee, así que desbloquea eso y vamos a establecer que sea 0.25, 0.2, 5.0, 0.5. Entonces voy a inclinar esto. Vamos a rotarlo un poco. Entonces aquí mismo en los cables giran es que eso a negativo 30. Y también voy a hacer que este material sea algo así como que tengo vértice, algo rojo. Vamos con eso. Ahora se ve una especie de hombre por igual. Claro. A continuación vamos a agregar una variable dentro de nuestro Blueprint bp. Así que haga clic debajo de este botón más para la sección de variables. Vamos a llamar a este ítem para usar también. Vamos a cambiar el tipo aquí a una cadena. Vamos a compilar para que podamos establecer un valor predeterminado. Y esta vez voy a escribir la poción Amana. Voy a hacer esto en minúsculas, pero solo estoy haciendo esto para que esto sea diferente a cómo lo nombramos como el valor predeterminado dentro de nuestro controlador de reproductor bp. Ahí usamos la carcasa superior para los inicios de nuestras palabras de maná y poción solo para demostrar que podemos, porque las carcasas no van a importar para nuestro mapa aquí. Entonces sigamos adelante y compilemos y guardemos esto de inmediato. Ahora, antes de ir más allá aquí, quería presumir en nuestro controlador de reproductor bp que para nuestra variable de mapa aquí voy a mantener pulsada Control clic izquierdo y arrastrar a nuestro gráfico de eventos. Si arrastramos fuera de esta versión, si vengo bajo el mapa de Utilidades, tenemos acceso a toda una serie de funciones que pueden manipular nuestros datos de mapa de alguna manera. En muchos sentidos eso es similar a nuestras matrices y establecer tipos de contenedores. Y sólo voy a añadir algunos de ellos aquí. Entonces voy a traer en un anuncio uno esto nos permite agregar a nuestro mapa. Arrastrando de esto, también hay otro para encontrarlo dado artículo. Arrastre fuera de esto, puedo quitar un elemento de nuestro mapa dragón fuera de esto otra vez, puedo encontrar uno que contenga, una vez más, puedo arrastrar. Puedo hacer búsqueda solo de las claves que existen dentro de este mapa, es decir, estos tipos, puedo arrastrar fuera de esto y podría traer una función que encuentre solo los valores de este mapa. Así que aquí hay muchas funciones diferentes que pueden manipular o darte información sobre tu mapa. Muy bien, a continuación vamos a regresar a nuestra menopausia bp para que podamos agregar algún guión para agregar a nuestro inventario aquí vamos a agregar a nuestro inventario de pociones Amanda cuando recojamos una poción a un hombre. Entonces volviendo a nuestra BPMN de movimiento, queremos hacer algo cuando estamos superponiendo esta esfera. Así que dirígete a tu gráfico de eventos, vamos a hacer clic derecho en nuestro colisionador de esferas. Vamos a agregar un evento para cuando empecemos a superponer eso. Y sólo queremos que algo suceda cuando nuestros otros actores que superponen a esta esfera es la terceraPersonaPersonaje. Entonces lanzando vamos a hacer una búsqueda de Cast to ThirdPersonCharacter. Y si se trata de un ThirdPersonCharacter, podemos extender nuestro script aquí. A continuación, lo que queremos hacer es que queremos hablar con nuestra variable de inventario aquí dentro de nuestro controlador de reproductor bp. Entonces, ¿cómo podemos hacer eso? Bueno, de vuelta aquí dentro de nuestro bp man of motion, voy a hacer clic derecho y algo de espacio vacío y teclear get player controller. Y entonces un error que muchos cometen es que piensan que, bueno ahora tengo esta función get player controller. Sólo puedo arrastrar fuera de aquí y hacer una búsqueda de inventario para encontrar esa variable. Y no, no puedes, porque necesitamos averiguar qué controlador de jugador queremos hablar contigo. Project podría tener muchos controladores de reproductor. Entonces este es el arrancador para identificar con qué controlador de jugador queremos hablar. Así que arrastrando fuera de aquí, podemos lanzar a nuestro controlador de jugador, nuestro controlador de reproductor bp para acceder a la información dentro de él. Ahora voy a simplificar un poco este nodo de aquí. Tengo algunos pines de ejecución aquí y aquí mismo. Si hago clic derecho en este nodo, puedo simplificar este nodo hasta lo que se conoce como un elenco puro. Sé que esto no va a fallar porque tengo un proyecto para un jugador. Sé que he configurado mi controlador de reproductor bp como el controlador de reproductor que mi proyecto está usando aquí en la configuración de mi proyecto. Entonces en esta instancia en particular, está bien que no compruebe si he tenido éxito en esta casta o no. Sé que va a tener éxito. Voy a hacer clic con el botón derecho convertir a puro elenco. Va a eliminar esos pines de ejecución, pero aún así puedo alcanzar dentro de él. Y acceder a mi inventario, lo cual es bastante dulce. Entonces ahí está mi mapa. El siguiente que quiero hacer es que quiero sacarme de aquí y hacer una búsqueda para encontrar. Y lo que este nodo me permite hacer es encontrar una clave dada, valor dado, dada una clave de entrada. Entonces la clave que quiero buscar aquí es hombre una poción. Así que voy a arrastrar y soltar esto en mi entrada. Esa es la clave que voy a estar buscando dentro de este mapa. Y va a dar salida al valor de esto. Pero quiero incrementar esto. Quiero incrementar esto cada vez que superpusimos esto. Entonces vamos a empezar con tres pociones de Amanda. Cuando me superponga esto, quiero que simplemente incremente esta cantidad. Entonces me voy a arrastrar fuera de aquí. Esto va a escupir mi valor de tres. Arrastrando de esto, voy a escribir en incrementos. Entonces este nodo aquí mismo va a incrementar automáticamente este 3-4. En este caso. Voy a cablear esto por aquí así. Pero no basta con incrementar esto. Todavía necesito agregar todo esto de nuevo a mi mapa aquí. Entonces lo que voy a hacer es arrastrar de mi inventario una vez más, escribir anuncio, entrar en el mapa de Utilidades, agregar. Entonces voy a ir así. Queremos agregar a nuestras pociones de maná. Y a qué queremos sumar esa cantidad se actualizan. La cantidad va a ser enchufada aquí abajo. Entonces eso va a establecer una nueva cantidad para nuestras pociones de maná. Y entonces lo que voy a hacer es arrastrar fuera de aquí. Queremos imprimir esto en la pantalla para que podamos ver esto funcionando. Y voy a arrastrar hacia atrás fuera de este tipo in, append in. Vamos a imprimir algunos textos a la pantalla. Entonces lo primero que vamos a imprimir es el nombre del artículo, en este caso un hombre, una poción. Entonces voy a poner en un espacio igual al espacio. Y entonces lo tercero que quiero incluir aquí es que los montos son montos actualizados. Si arrastro esto hacia abajo desde la salida de nuestros incrementos, podemos generar esa cantidad. Por lo que esto leerá como hombre una poción equivale a la cantidad actualizada. Y luego por último pero no menos importante, queremos destruir a este actor. Así que arrastrando fuera de aquí, vamos a escribir Destroy Actor. Se. Vamos a compilar los guiones y sigamos adelante y ahorremos. Ahora. Todo esto está bien y es bueno, pero aún no hemos agregado a ningún hombre repartir a nuestro nivel. Así que sigamos adelante y hagamos eso rápido saltando de nuevo a nuestra pestaña de nivel. Arrastre y suelte solo algunos de estos aquí así, y arrastra y arrastra. Y aquí vamos. Una vez más, recuerda que estamos empezando a los tres hombres una poción. Así que mira hacia arriba en la parte superior izquierda aquí, y ahora tenemos 45.6. Yo diría que eso está funcionando bien. Ahora, en interés del tiempo, vamos a regresar a nuestro controlador de reproductor bp donde he configurado algún guión para decrementar de nuestro inventario. Esta es casi la misma configuración que tengo en mi hombre, un plano de poción. Sin embargo, la única diferencia aquí es que estoy decrementando de nuestro inventario en lugar de incrementarlo. Una vez más, estoy usando mi clave aquí, mi clave de poción Amana, aunque estoy usando una M mayúscula, una P mayúscula, sigue hablando con este hombre, una clave de poción aquí mismo. Entonces ese es el que estoy encontrando. Y entonces simplemente estoy decrementando de ello y luego agregando esa decrementada una montaña de nuevo a mis montos de inventario actualizados. Entonces estamos usando la clave para ajustar el valor. Así que solo muestra esto. Tengo este controlador BP configurado como mi objeto de depuración aquí. Entonces estoy empezando con tres 456. Y debería tener alguna fuente roja para decrementar esto, voy a presionar 7543, etcétera, etcétera. Entonces ahí lo tienes. Un contenedor de variables de mapa para una clave, pares de valores. Búscalo por la clave, y luego puedes incrementar o decrementar el valor. Es genial para algo como inventario, como esto. Muy bien chicos, eso va a hacer para ofrecer este. Te veremos en la siguiente. 73. Enum HiRez: Bienvenida. En este video, nuestro objetivo es conocer las enumeraciones, que es la abreviatura de una enumeración. Este es otro tipo de listas que podemos crear y usar para ayudar a impulsar la lógica en nuestros scripts de blueprint. En realidad es una de mis variables favoritas para crear y usar. Entonces, ¿qué es una enumeración? La enumeración es un tipo de datos que consiste en un conjunto de valores con nombre. Se trata de un listado de etiquetas, por así decirlo. Ahora bien, esto es algo que vamos a crear aquí en nuestro navegador de contenido. Y luego vamos a hacer uso de él dentro de nuestro Blueprint de personaje de tercera persona. Así que entra bajo tu carpeta Blueprints de scripting, este va a ser un lugar sensato para crear una enumeración. Y si hacemos clic derecho y algún espacio vacío, tenemos esta categoría de planos. Y en nuestro pequeño menú volador, tenemos la capacidad de crear una enumeración, dice en la punta de herramienta, y la enumeración es una lista de valores con nombre. Sigue adelante y haz clic en esto, y vamos a darle un nombre a esto de inmediato. Voy a llamar a esto E subrayado estado de salud. Ahora siempre me gusta nombrar mis enumeraciones creativas con E guión bajo. Pero nuevamente, puedes usar una convención de nomenclatura de tu elección. Y luego voy a hacer doble clic sobre esto para abrirlo. Ahora dentro de aquí vamos a dar click sobre este botón más agregar enumerador una vez, dos veces, tres veces para permitirnos agregar algunas etiquetas dentro de aquí que podamos hacer uso de. Entonces voy a sobrescribir cada uno de estos. El primero se llamará Super. Se va a llamar al segundo, bien, puedes hacer estas etiquetas, ¿qué quieres? Y mi tercero aquí va a ser llamado herido mal. Entonces estos esencialmente van a ser mis tres estados de salud distintos es que voy a usar para impulsar algo de lógica dentro de mi plano de personaje en tercera persona. Voy a seguir adelante y guardar esto y luego puedo cerrar esto, ya no lo necesito. Y voy a estar saltando a mi Blueprint de personaje de tercera persona. Si olvidaste dónde está eso debajo la carpeta Blueprints en tercera persona, haz doble clic en ese tipo para abrirla. Una vez dentro de aquí, vamos a crear una variable. Así que voy a crear una variable simplemente haciendo clic en este botón más Agregar. Me gusta hacerlo de diversas maneras para presumir diferentes formas de crear variables. Y voy a llamar a esto E subrayado estado de salud. Voy a nombrar esto exactamente igual que nombré a mi enumeración. Voy a golpear Entra aquí. Ahora en el panel Detalles, voy a cambiar el tipo de variable. Ahora bien, si bien nombré esto exactamente igual a mi enumeración que acabo de crear, podría haber llamado a esto cualquier cosa que quisiera. Sin embargo, quiero mapear esto a venir bajo tipo de variable. Mi E subrayan salud, gritos, E subrayan la enumeración del estado de salud. Ahí está, ahí mismo. Entonces le estoy diciendo a esta variable que estoy creando, que quiero ser de este tipo. Ahora una vez que haga clic en Compilar aquí, puedo ver que puedo cambiar mi estado de salud valor predeterminado para que sea súper, bien o mal. Y porque esta es una variable, puedo cambiarla. Puedo cambiarlo de súper dos, bien, o mal, y luego usar ese estado para impulsar alguna lógica. Bien, así que vamos a crear nuestro bit inicial de guión aquí. Voy a comenzar creando eventos personalizados. Voy a hacer clic derecho en algún espacio vacío, escribir personalizado, vamos a agregar un evento personalizado que es un evento que llegamos a nombrar y llamarlo cuando y donde queramos. Y voy a acercarme aquí porque estoy muy lejos. Voy a llamar a esto actualizaciones estado de salud. Y luego voy a traer aquí mi variable de enumeración, manteniendo pulsada Control, haciendo click izquierdo y arrastrando. Y lo que podemos hacer con este tipo es que podemos sacar de esto y traer un nodo switch. Si apenas empiezo a escribir switch, esto trae un nodo switch que me va a permitir cambiar en función del valor de esta enumeración. Entonces aquí vamos, encienda el estado de eSalud. Puedes ver los pines de salida aquí mismo, digamos súper, bien, o doler mal. Esas son las etiquetas exactas que tengo aquí dentro de esta enumeración, súper bien. O ella mal, si enchufara una enumeración diferente aquí, diría encender lo que sea que fuera. Y tendría pines de salida correspondientes a las etiquetas que estuvieran dentro de esa enumeración. Ahora bien esto es genial porque dependiendo del valor de esta variable, se va a disparar de diferentes pines aquí. Y lo que esto nos permitirá hacer es ajustar algo, en este caso sobre nuestro carácter. Lo que voy a hacer es ajustar velocidad de movimiento de nuestro personaje en función de nuestro estado de salud, ya sea súper bien o mal herido. Entonces voy a traer mi componente de movimiento de personaje. Arrastre y suéltelo aquí. Dentro del componente de movimiento de mi personaje, tengo este parámetro llamado velocidad máxima de caminata. Eso es lo que controla qué tan rápido puede moverse mi personaje sobre el nivel que voy a arrastrar fuera de aquí y escribir la velocidad máxima de caminata. Quiero poder establecer mi velocidad máxima de caminata. Y voy a duplicar este Control C, Control V, control V. Y puedo enchufar este mismo Componente de Movimiento de Carácter en los tres. No importa si tienes uno de estos. O podría arrastrar y soltar mi personaje moviendo componentes por separado. Podría tener tres de estos y enchufarlos por separado en cada uno de los objetivos, no importa cómo lo hagas. Voy a ir así, así, y así, déjame hacer doble clic sobre eso para traer un nodo de reencaminamiento. Y ahora voy a poner duro mi velocidad máxima de caminata en función de si mi salud está súper bien o me duele mucho. Si es súper, voy a decir que mi salud me va a permitir caminar a esa velocidad máxima de 2000s? Lo es. Bien. Diré que está de vuelta en mi default de 500. Si me duele mucho, lo voy a poner en 100. Ahora mismo. Todo esto está bien y bien. Pero no vamos a llamar a este evento personalizado en ningún lado. Necesitamos una forma de llamar a este evento personalizado de disparo y apagado para que podamos establecer nuestro máximo de deseos para que se basen en el valor de esta enumeración. Necesitamos una forma ahora de cambiar este estado de establecer eso. Así que eso es lo que va a ser este próximo guión. Bien, así que solo voy a comenzar con un evento de entrada. Voy a hacer clic con el botón derecho y un poco de espacio vacío y voy a hacer una búsqueda placa clave h porque vamos a estar usando este evento de entrada para modificar nuestra salud. Y solo unos ajustes que tenemos que hacer aquí partir de cosas que habíamos cambiado en videos anteriores. Selecciona tu variable de flotación de salud aquí vamos a cambiar esta de nuevo a 1.0, que va a igualar 100%. Y luego con nuestra función de salud modificada, esto se creó de nuevo en nuestra sección de funciones del curso cuando nos proponíamos crear una función, puedes averiguar cómo lo hicimos ahí. Voy a hacer algunas modificaciones a esto también porque esa sección del curso, modificamos nuestra función de salud modificada. Voy a hacer clic izquierdo y arrastrar esto encima de nuestra tecla de prensa aquí mismo. Teníamos este insumo dado como pasado por referencia. Lo establecemos como un pase por referencia. En algún momento, vamos a deshacer eso. Así que con ese nodo se selecciona en la sección de entrada, se puede comprobar que porque queremos introducir algo que están codificados duro, por así decirlo. Y también necesito modificar algunas cosas sobre esta función. Entonces voy a hacer doble clic sobre esto para abrirlo. Tenemos este incremento actualmente ahí dentro. Voy a borrar eso. Entonces, lo que queremos hacer aquí es que tenemos un valor para la salud que vamos a poner duro aquí mismo de nuevo en nuestra función. Vamos a decir cada vez que presionemos esto, vamos a decrementar cero puntos uno, esencialmente 10% de salud. Así que esa va a ser nuestra entrada vamos a hacer doble clic de nuevo aquí. Cuando eso suceda, vamos a restar eso o mejor dicho, vamos a sumar eso a nuestro valor actual de Salud. A pesar de que ese es un número negativo, vamos a estar sumando ese número negativo a nuestra salud actual. Entonces vamos a estar tomando ese 0.1 negativo. Vamos a estar sumarlo a este valor, que va a igualar 0.9 o 90%. Y vamos a estar dando salida a eso. Vamos a enchufar esto así. Aún podemos sostener que si esto es mayor que, si eso es mayor que cero, vamos a tocar un efecto de sonido positivo. Si es menor que cero, vamos a tocar un efecto de sonido negativo. Entonces eso está todo bien y bien. Así que asegúrate de que estás modificando la función de salud se actualiza para que se vea así. Voy a compilar eso enseguida. Y de vuelta en nuestro gráfico de eventos, vamos a seguir adelante aquí. Entonces vamos a decir si nuestra salud actual arrastrando fuera de aquí es mayor o igual a 0.75. Esencialmente, si lo estamos, tenemos tres cuartas partes de salud o más, vamos a traer cualquier sucursal. Eso es cierto. Aquí vamos a establecer nuestro estado de salud. Así que vamos a arrastrar y soltar esto sobre el verdadero para traer cualquier centro. Vamos a decir si tu salud es de tres cuartas partes o más, tu salud ahora está etiquetada como súper. Si eso es falso, vamos a traer un nodo de otra rama. Y aquí vamos a hacer otra evaluación. Así que arrastrando fuera de aquí, vamos a hacer una búsqueda otro mayor o igual a. Entonces, si va a ser mayor o igual a 0.26. Entonces esencialmente 26%. Si está entre estos dos rangos, 26 a 75%. Si eso es cierto, vamos a Control C y Control V en este tipo un par de veces. Entonces eso es cierto. Está entre este rango 26.75% salud. Vamos a decir que tu salud está bien. Y si es falso, tienes 25% o menos de salud. Vamos a decir que estás herido. Mal. Entonces eso está todo bien y bien. Obviamente se ve que esto no está conectado. Y la razón que aún no está conectada es porque quiero colar una cadena de impresión aquí. Vamos a imprimir cadenas para que podamos ver realmente nuestra salud actual escupir en la pantalla. Así que voy a convertir este flotador en una cadena enchufándolo así. Todo esto está bien y bien. Sin embargo, cada vez que estoy cambiando el valor de mi variable de estado de salud aquí, estamos haciendo uso de eso parece conducir nuestra velocidad máxima de caminata, pero aún no estamos llamando ventajas para los clientes. Así que en realidad tenemos que rematar esta parte como agarrada llamando a donde este evento personalizado para disparar. Y podemos hacerlo haciendo clic derecho en algún espacio vacío y escribiendo fechas actualizadas. Ahí está, función de llamada actualizar estado de salud. Ese es el nombre exacto de esto. A eso lo vamos a llamar. Esto va a llamar para que se desprenda este evento personalizado. Entonces vamos a ver bien. ¿A qué se ha actualizado este estado de salud? Súper bien. O ella mal, Dependiendo de lo que esto esté configurado ahora, vamos a impulsar la velocidad de movimiento de nuestro personaje. Así que vamos a compilar esto, nos aseguramos de que todo esto sea hunky-dory. Olvídate de guardarlo. Voy a meter esto aquí arriba. Vamos a jugar esto que nuestro objeto de depuración como nuestro terceraPersonCharacter y vamos a seleccionar realmente mi personaje moviendo componentes. Por lo que nuestra velocidad de caminata predeterminada va a comenzar en 500. Aunque nuestro estado de salud por defecto está establecido en Super, no lo estamos evaluando aún no lo estamos evaluando para determinar nuestra velocidad máxima de caminata. Así que sé que cuando empiece a moverme por aquí, vamos a estar moviéndonos a nuestra velocidad de 500 así que volviendo a ponerme eso. Bien, puedes ver que me estoy moviendo a una velocidad de yay que es 500. Voy a presionar mi tecla H aquí. Ahora al 90% de salud, que sigue siendo súper así que mi velocidad máxima de caminata ahora va a ser 2000. puedes ver moviéndome mucho más rápido. Voy a presionar esa tecla H otra vez bajando al 80% de salud, 70% de salud. Ahora estoy en este rango bien, así que se va a volver a bajar a 500. Todavía no estoy bien rango. Entonces déjame seguir golpeando la tecla H aquí para agotar mi salud ahora al 20% de salud. Entonces ahora me duele mucho. Entonces esto es lo más rápido que puedo correr, por así decirlo. Ese es un gran uso de una variable de enumeración, determinando tu estado de salud y luego puedes modificar algo sobre tu personaje. Entonces con eso, ¿cuáles son algunos otros usos que se te ocurran? Bueno, déjame tirar algunos de ellos por ahí. ¿Y qué tal tienes una enumeración para diferentes armas? Y dependiendo de qué arma tengas equipada, digamos una espada, una daga, un bot, tu velocidad de movimiento, o incluso tus ataques disponibles podrían muy bien. ¿Qué pasa con cualquier NUM para clases de caracteres diferentes? Warrior made, the, etc. y dependiendo de en qué se establezca tu clase de personaje, ciertas armas pueden o no estar disponibles para ti. ¿O qué pasa con una enumeración para diferentes estados de juego o eventos? Piensa en un juego como Rocket League. Podrías tener una enumeración para cosas como jugabilidad, goles marcados, medio tiempo, etc. Y dependiendo de a qué se establezca esa enumeración, puedes hacerla para que sucedan cosas diferentes, como mostrar un escena de un gol tras un gol para marcar. Bien chicos, eso va a hacer para ofrecer este video, veremos en el siguiente. 74. Estructura: Bienvenida. En este video, nuestro objetivo es aprender y demostrar el uso del tipo de variable struct muy útil. Ahora bien, este es un tipo de variable que creo todo el tiempo en mis propios proyectos de juego. Con un trazo, puede contener muchos tipos de datos que están relacionados con lo mismo dentro de un solo contenedor. Así que vamos a seguir adelante y crear una variable struct. Aquí en mi carpeta de blueprints scripting, voy a hacer clic derecho en algún espacio vacío en debajo la categoría blueprints en el pequeño menú fly-out justo debajo de la enumeración tenemos la estructura también conocida un tipo de variable struct que podemos crear. Entonces, sigamos adelante y creemos esto. Voy a nombrar a este STR, hechizos de subrayado. Y luego hagamos doble clic sobre este tipo para abrirlo. Bien, definamos qué es incluso una variable struct. Entonces, una estructura o una variable struct es esencialmente una variable que puede contener muchas otras variables dentro de ella. Así que esencialmente estructura los datos agrupados juntos. Se puede pensar en una estructura como un casillero de almacenamiento gigante con todas las demás cajas dentro de ese casillero de almacenamiento como variables individuales. Cada caja dentro del casillero de almacenamiento tiene su propio contenido. Entonces podemos ir dentro del casillero de almacenamiento. En este caso, nuestra estructura y sacar el contenido de una caja, en este caso una variable según sea necesario. Ahora bien, estos trazos son geniales para mantener variables que pertenecen juntas de alguna manera, forma o forma. Entonces tenemos una estructura que vamos a estar creando aquí llamada hechizos. Piense en todas las diferentes propiedades de hechizo que podríamos contener dentro de 11 contenedores de clases. Aquí, podemos agregar el nombre del hechizo, el tipo de efecto, el elemento con el que está asociado. A lo mejor un hombre de costo, tal vez un enfriamiento. Todas esas cosas están asociadas con un hechizo dado y sería genial si pudiéramos contenerlas con todo en un solo activo. Bueno, un derrame cerebral es un gran lugar para hacer precisamente eso. Bien, deja abierto a este tipo por el momento. En realidad vamos a crear dos activos de enumeración más primero, antes de volver a nuestra estructura. Así que vuelve a tu editor principal aquí en, en tu carpeta Blueprints de scripting. Y vamos a crear estas dos enumeraciones. Puede hacer clic con el botón derecho debajo del menú de vuelo de planos. Vamos a crear una enumeración. A éste lo voy a llamar E subrayado elementos hechizos. Y luego puedo hacer clic derecho sobre esto de inmediato y duplicarlo. Control D también lo duplicará, porque también va a ser una enumeración y voy a llamar a este tipo de hechizos de subrayado E. Y luego podemos hacer doble clic en cada uno de estos para abrirlos. Así que los elementos hechizos están abiertos. Vamos a abrir también los tipos de hechizos. Bien, entonces bajo tipos de hechizos, voy a agregar tres entradas aquí. Comenzaremos con tipos de hechizos, 1234 tipos de hechizos. Voy a hacer daño directo en pantalla llamado número dos aquí va a ser área de efectos. El tercero va a ser, diremos sanación. Claro. Sigamos adelante y guardemos esto y luego puedes cerrar a ese tipo. Para los elementos hechizos, vamos a agregar tres entradas aquí, 123, y estas serán ninguna. Fuego. Y mi próximo aquí será viento. Y en realidad agreguemos uno más. Hagamos también un agua. Agua. ¿Qué bandeja? Alfarero. Sigamos adelante y guardemos eso y luego podemos cerrarlo. Ahora, los creados, tenemos que saltar de nuevo a nuestra estructura y vamos a agregar algunas nuevas variables a través de esto. De nuevo, piense en una estructura como un contenedor que puede contener muchas variables. Sólo voy a deslizar esto hacia la izquierda aquí. Entonces voy a agregar, veamos, 1234567 si estoy contando bien, así que agreguemos, creo que ahí son siete, del 0 al seis, **** es igual a siete. Entonces mi primero aquí, voy a llamar hechizo, nombre. Y esto será del tipo variable de textos. Vamos, textos, ahí vamos. El segundo aquí se llamará tipo deletreado. Y aquí es donde podemos slot en la habitación que acabamos de crear. Podemos pasar por debajo de la UE y encontrarla aquí abajo. Aunque también puedes buscarlo ahí arriba y allá, puedes ver que es tipos deletreados aquí mismo. Al siguiente, vamos a llamar a elementos hechizos. Y entrando dentro de nuestra nueva categoría, vamos a configurarla para deletrear elementos. A continuación, vamos a llamarlo administrar costo. Y gritos, ese no se llevó aquí arriba. Regresemos a ahí, a nuestros elementos hechizos aquí. Bajo enumeraciones deletrea elementos. Ahí vamos, hombre de costos. Vamos a establecer que sea un entero. Vamos a ir a enfriarnos a continuación. Vamos a poner eso para que sea un flotador. A continuación tenemos valor del efecto de hechizo que puede dañarse o curarse. Eso es a lo que me refiero a usted por hechizo afectar el valor. Y va a establecer esto para que sea un entero. Y luego por último pero no menos importante, tengo casting S f x Así que este sería el efecto de sonido asociado con lanzar un hechizo. Entonces voy a configurar esto para que sea una onda de sonido. Hará referencia de objeto de onda sonora y luego otra cosa. Solo para presumir aquí, podríamos establecer esto para que sea una matriz, para que podamos tener una serie de diferentes efectos de sonido que queramos reproducir. Así que ahí es un poco genial. Bien, sigamos adelante y ahorremos esto. Y estoy viendo esta advertencia aquí arriba. Y si pasamos el mouse sobre él, sí dice que no se puede analizar ese valor. Tienes que tener algo más que ninguno ahí dentro. Entonces ampliemos esto hacia abajo y sigamos adelante y agreguemos un par de valores predeterminados para esto. Podemos agregar esos valores predeterminados por no debajo de aquí. Aquí tenemos esta pestaña de valores predeterminados casting s efectos plus, plus, y déjame configurarlos para que sean. Vamos bola más oscura. ¿Qué tenemos abiertas las ventanas del Dr. Bowles y agregaremos etiquetas de datos? Cierre de ventana. Sí, realmente no importa lo que pongas ahí solo tienes dos efectos de sonido diferentes. Entonces ahí está nuestra estructura. Estamos viendo que eso es bueno para ir. Podemos seguir adelante y hacer clic en Guardar ahí. Bien, con todo esto hecho, salta a tu personaje de tercera persona. Y si olvidaste dónde está ese tipo una vez más en tu carpeta de planos en tercera persona, haz doble clic en ese tipo para abrirlos. Entonces dentro de aquí, vamos a hacer uso de esa estructura. Necesitamos crear una variable. Así que ven bajo tu sección de variables de mi plano, haz clic en el botón Más, y vamos a llamar a este mis hechizos. Vamos a cambiar el tipo de variable aquí abajo de un booleano a nuestros hechizos struct, STR, subrayado. Y ahí podemos encontrar nuestra estructura. Está bajo la categoría de estructura. Y si entro en el panel de detalles, puedo hacer esto en matriz de struct. Así que voy a cambiar el tipo de contenedor aquí de single a array. Necesito compilar aquí mismo. Y cuando lo haga, puedo agregar múltiples entradas a mi array de hechizos aquí. Así que vamos a hacer clic una y dos veces, y ahora echa un vistazo a esto. A medida que los expando hacia abajo, tengo acceso para cambiar todas estas diferentes propiedades que configuré aquí en mi estructura. Entonces aquí en mi estructura, configuré campos para ingresar un nombre de texto. Entré en. Entré en campos para definir un tipo de hechizo, elemento de hechizo, man accost, todas estas cosas y aquí están disponibles para mí ahora en mi BP ThirdPersonCharacter. Entonces, vamos a establecer algunos de estos. Voy a decir mi primer nombre de hechizo aquí va a llamarse bola de fuego, tipo de hechizo, daño directo, seguro, elemento de hechizo. Voy a dar click en este desplegable y mirar todas esas opciones que definí en mi emú. Nuevamente, para nuestro tipo de hechizo aquí y elemento de hechizo. asociamos con enumeraciones, esas listas nombradas que creamos anteriormente. Así que el elemento deletrear, lo pondremos en fuego. El hombre Acosta los fijará en cinco, enfriados a 0.5 de efecto de hechizo de orilla valor 25. En este caso, me refiero a eso como 25 como daño directo. Para mi siguiente entrada aquí, nombre del deletrear. Voy a poner esto para que se cure. Este tipo de campana se va a cambiar a elementos de hechizo de curación. Bueno, no va a ser ninguno de estos elementos van a dejar eso como ninguno. Los costos administrados dirán diez, enfriarse 3.8, efecto de hechizo valor 50. Y luego también podemos establecer los efectos de sonido para cada uno de estos. Se me olvidó hacer eso por la bola de fuego. Entonces expanda cada uno de estos hacia fuera. Sí, puedes seguir adelante y cambiar los efectos de sonido para que puedas dejar ahí los valores predeterminados para tu bola de fuego, pero tal vez para tu efecto de sonido curativo, quieres algo diferente. Así que voy a probar uno llamado nave VR shape scale up. Y yo haré lo mismo con esta otra nave, nave escalada también. Esos están en las carpetas de contenido del motor. Por cierto, si olvidaste cómo acceder a las carpetas de contenido de tu motor, puedes hacer clic en el pequeño ícono de engranaje, mostrar contenido del motor. Bien, así que todo eso está configurado bastante dulce. Adelante y compila eso de inmediato. Bien, entonces con toda esta configuración, ¿cómo hacemos uso de esta variable golpeada? ¿Cómo llegamos a esta variable strike y extraemos la información que estamos buscando extraer? Bueno, para empezar aquí tenemos que añadir esto a nuestra gráfica. Entonces voy a hacer click izquierdo y arrastrar. Voy a conseguirlo. Y esto es devolver una matriz porque aquí tenemos dos elementos, una bola de fuego con todas estas propiedades al respecto. Y nuestro índice uno aquí es nuestra Q o hechizo. Así que tenemos el índice 0, nuestro firewall, y el índice uno en nuestra matriz, el hechizo de curado. Para que podamos arrastrarnos sobre esto y escribir gets, podemos obtener una copia aquí. Y dependiendo de qué valor ingresemos aquí, está buscando un entero. Podemos ingresar 0 para devolver nuestro índice de bola de fuego 0, o podríamos ingresar uno para devolver nuestro curioso cinturón Ese es el índice uno. Entonces así es como funciona eso. Entonces lo que queremos hacer aquí es hacer clic derecho sobre este pin. Si hago clic derecho sobre él, puedo dividir el Pin Struct. Ahora mira cómo se transforma este nodo cuando hago esto. Bam. Ahora todavía tengo este número entero entradas, así que todavía puedo definir, quiero estar buscando el índice es 0 aquí, mi bola de fuego o índice uno aquí para la cura. Pero ahora puedo sacar todas las diferentes propiedades relacionadas con ese índice dado. Entonces puedo encontrar para índice es 0, el nombre del hechizo de bola de fuego, el daño directo, yada, yada, yada. Ahora tenga en cuenta aquí que puede regresar y colapsa todo hacia abajo haciendo clic derecho en cualquiera de estos pines. Y puedo recombinar el Struct Pin. Pero en este caso queremos hacer clic derecho sobre esto y dividir ese alfiler golpeado. Ahora bien, algo que vale la pena señalar aquí es que en realidad hay muchos trazos por encontrar cuando se trabaja con blueprints scripting. Y esto es un poco a un lado, pero vale la pena señalarlo aquí. Voy a hacer clic con el botón derecho y algún espacio vacío y solo teclear get actor transform. Esto conseguiría la transformación para nuestra terceraPersonaPersonaje. Ahora bien, si tuviera que hacer clic derecho en este pin de aquí arriba, puedo dividir el Struct Pin a transformado consiste en datos de ubicación, rotación y escala. Pero incluso algo así como la ubicación, ¿verdad? Es decir, tres valores en uno en los vectores X, Y y Z que determinan nuestra ubicación final. Esos son tres valores de flotación. Entonces, si tuviera que hacer clic derecho sobre esto, también podría dividir este alfiler golpeado. Entonces puedes ver cómo en realidad hay numerosos, numerosos nodos a lo largo de irreal que puedes hacer toda esta división y recombinación de pines de struct, algo así. Un vector es una estructura. Consta de tres variables de flotación. Entonces puedo hacer clic derecho sobre esto. Yo puedo dividirlo y tú puedes recombinar. E incluso nuestro rotador aquí mismo que consta de tres valores de flotación también, así que podemos dividir eso. Sí, digno de mención, haga clic derecho en recombine, haga clic derecho. Vaya, no promover. Haga clic con el botón derecho, recombine, haga clic derecho en recombinar Bien, de vuelta al tema aquí, hagamos uso de nuestra estructura. Entonces voy a eliminar esto. Voy a traer una llave de evento. Así que vamos a hacer clic derecho y algo de espacio vacío. Vamos a probar algo en la llave nueve. Seguro ¿Por qué no? No creo que esté usando la llave nueve en ningún lado. Vamos a arrastrar fuera de nuestro tipo de hechizo aquí abajo, llevar a estos dos tipos aquí abajo tipo deletreada. Y voy a buscar un interruptor. En el lado del hechizo facilidad. Vamos a hacer algo dependiendo del tipo de hechizo que estemos especificando aquí. Entonces lo que voy a hacer es que voy a arrastrar fuera de mis elementos hechizos y voy a hacer un interruptor en los elementos deletreados así. Y vamos a decir si estamos haciendo daño directo, entonces vamos a averiguar cuáles son nuestros elementos aquí. Y lo que entonces vamos a hacer es imprimir una cadena. Vamos a sacar de nuestro fuego aquí y voy a recapitular esto. Cuando esté todo terminado aquí. Saca de esto, entonces vamos a sacar de nuestro valor de efecto hechizo. Eso es como cuánto daño vamos a estar haciendo aquí. Alerta de spoiler, voy a dejar esto como los 0 elementos aquí. Entonces vamos a estar lanzando una bola de fuego, por así decirlo, sin ningún efecto de ningún tipo. Pero cobrando cotizaciones aéreas, arrastra fuera de aquí. Y en realidad no vamos a enchufar eso a ahí todavía. Voy a arrastrar atrás de aquí y hacer un append. Vamos a estar imprimiendo algo en la pantalla. Nuestro a va a ser tu trato de espacio. R, B va a ser el valor del efecto de hechizo va a convertir ese entero en una cadena. Aquí vamos a añadir otro pin. Vamos a enchufar el nombre del hechizo para C. Así que repartiste 25 bolas de fuego. Y la última palabra aquí, vamos a agregar otro pin va a ser daño. Y voy a agregar un espacio antes de eso. Y eso va a estar todo bien y bien. Nn por último pero no menos importante, nos vamos a arrastrar fuera de aquí. Vamos a tocar, un sonido, vamos a hacer es reproducir sonido 2D. ¿Qué sonido quieres tocarlo? Bueno, vamos a conseguir uno de nuestros diferentes efectos en cascada aquí. Arrastre fuera de esto. Vamos a conseguir una copia. Vamos a arrastrar eso aquí. Como llegamos a especificar, recuerda nuestro hechizo de bola de fuego aquí, tenemos dos posibles efectos de sonido de casting, elemento 0 o el elemento uno. Así que escojamos uno al azar. Así que voy a arrastrar hacia atrás fuera de aquí y escribir entero aleatorio en rango. Vamos a ir entre 01. Entonces esa va a ser nuestra configuración final, haciendo uso de nuestros trazos aquí. Bien, así que enmarcando eso bastante bien. Creo que lo conseguí. Bien, sigamos adelante y compilemos para asegurarnos de que el guión sea bueno para comenzar. Guardar, vamos a saltar y jugar y luego presionar que hay nueve teclas. Oye, configurando nuestro objeto de depuración, saltando hacia atrás. Aquí vamos. Y aquí vamos. Precedente Nike, deberías ver algunos textos aparecer aquí arriba. U del 25, daño de bola de fuego. Sé que no hay espacio entre la bola de fuego y los daños. Y a medida que amplíe esto de nuevo, de nuevo, deberías escuchar uno de estos dos efectos de sonido tocar al azar. Bien, entonces sé que esa fue una configuración muy básica, pero voy a desafiarte a tratar ampliar este tipo de configuración. Ahora, quiero que pruebes estos por tu cuenta, asegúrate de que puedes lanzar un hechizo solo si tienes la manera suficiente. No estamos haciendo uso de nuestras monocotiledóneas aquí mismo. Así que asegúrate de probar otra cosa. Asegúrate de que no puedes lanzar de nuevo a menos que te enfrías, la duración ha expirado. Prueba esto, intenta agregar un emisor o sistema de partículas a un hechizo que lances aquí. También intente esto, intente especificar una ubicación vectorial que este hechizo dado debería generar ese sistema de partículas dado. Entonces esas son todas las cosas dadas algunos de los conocimientos previos en este curso, me gustaría que siguieras adelante y traten ahora de acabar con esto, hablemos de algún otro posible uso golpeado también. Imagina que tienes un sistema de búsqueda golpeado. Puedes especificar un nombre, una ubicación, enemigos para engendrar o ser derrotados, y tal vez tipos de recompensa y cantidades que podrían estar todos contenidos dentro de una estructura. O tal vez todos los atributos de base de caracteres podrían estar contenidos dentro de una estructura. Y puedes especificar cosas como nombre, velocidad, salud, todo ese tipo de cosas. Bien chicos, eso va a hacer para ofrecer este video sobre la muy útil struct. Nos vemos en la siguiente. 75. Resumen del control del flujo: Bien, finalmente hemos llegado a ese punto del curso donde es hora de hablar de nodos de control de flujo. Ahora, sé que me has visto hasta este punto en el curso usar muchos de estos nodos de control de flujo. Pero aún no hemos tenido una discusión oficial al respecto porque hay muchos temas que cubrir. Así que eso termina ahora mismo. Aquí comienza nuestra conversación de nodo de control de flujo. Entonces, nuestro objetivo en este video es simplemente obtener una visión general y comprensión de qué son los nodos de control de flujo y su propósito dentro de los scripts, un propósito más profundo. También echaremos un vistazo rápido los nodos comunes de control de flujo utilizados en los scripts. Empecemos definiendo qué nodos de control de flujo, incluso nuestros nodos de control de flujo son nodos que permiten controlar el flujo de ejecución en función de las condiciones. Evaluan algunas entradas de datos. Y dependiendo de las entradas, ellos determinaron qué ejecución fuera pin dispara o cuando una ejecución fuera pin dispara son ambos esencialmente controlar el flujo de ejecución. Por ejemplo, tenemos este nodo de sucursal aquí arriba. Podemos fluir hacia ella. Y luego en base a una entrada de condición, podemos fluir fuera de la rama verdadera si la condición es verdadera, o podemos fluir fuera de la rama falsa si la condición es falsa. Ahora los nodos de control de flujo tienen una coloración gris en la parte superior. Y como mencionamos anteriormente en nuestra sección de macros, los nodos de control de flujo son macros y se puede ver esto simplemente haciendo doble clic en una de ellas. Voy a hacer doble clic en mi nodo de puerta aquí. Y eso va a abrir mi biblioteca de macros estándar. Estas son macros, los nodos de control de flujo son macros. Ahora bien, ¿dónde podemos encontrar un montón de estos nodos de control de flujo? Y aquí hay un montón de los comunes que encontrarás a lo largo de los guiones. Tengo todo esto en mi plano de nivel como una visión general rápida de muchos de los comunes. Bueno, si estás buscando algunos de estos, obviamente puedes buscarlos por nombre, haciendo clic con el botón derecho y buscándolos por el título aquí. También se encuentran debajo del menú contextual, aquí mismo en Utilidades. Y luego en la sección de servicios públicos, puede venir bajo control de flujo. Y ahí es donde residen un montón de estos. Ahora bien, vale la pena señalar aquí voy a estar lanzando este nodo selecto que no tiene un banner gris. No es oficialmente una carga de control de flujo. También lo voy a incluir en esta sección porque sí controla el flujo de datos que obtiene la salida en función de las entradas de índice. Entonces, en cierto sentido, es una especie de nodo de control de flujo. Entonces por eso voy a incluirlo también. Nodo súper práctico para conocer, por cierto, algunas cosas más que saber sobre los nodos de control de flujo. Muchos de ellos tienen teclas de acceso rápido y las incluí en los comentarios del nodo aquí. Y así podrás ver con un nodo de rama, si mantienes pulsada la tecla B, haz clic izquierdo, traerás una sucursal. Esos son trucos súper prácticos. Te recomendaría que te conozcas porque te vas a encontrar usando estos nodos todo el tiempo. Además, los nodos de control de flujo, son útiles para la activación o restricción cuando ocurre un área de script. También son útiles para determinar qué bit de guión sucede a continuación. Entonces eso es algo que debe saber sobre los nodos de control de flujo al descubierto que en el fondo de tu mente. Son útiles para determinar cuándo ocurre un área de script, qué bit de guión sucede. Siguiente. Ejemplo de qué guión sucede a continuación sería una rama. ¿ Fluyo fuera de lo verdadero o falso? Un ejemplo de cuándo ocurre un área de script sería con nuestro nodo de puerta. Y puedes conocer más sobre eso en el propio video del nodo puerta. Bien chicos, eso va a hacer a los cuatro son visión general de control de flujo. Te veremos en el siguiente video. 76. Rama: Bienvenida. En este video, nuestro objetivo es aprender a usar el nodo de sucursal usando un escenario de puerta cerrada extremadamente común como demostración. Entonces, en primer lugar, definamos qué es un nodo de rama. Me has visto usar varios de estos hasta este momento. Las ramas son esencialmente una sentencia if then code. Sirven como una forma sencilla de crear flujo base de decisión a partir de una única condición verdadera o falsa. Ahora una vez ejecutado, el nodo de rama mira el valor entrante del Booleano adjunto. Puede adjuntar una variable booleana a esto o simplemente puede codificar duro al tener que marcar o desmarcar las salidas. Y entonces esto generará un pulso de ejecución hacia abajo de la salida apropiada. Entonces, si esto es cierto, y eso es lo que significa la marca de verificación, fluirá fuera de aquí. Si esto es falso o sin marcar, fluirá fuera de aquí. Ahora, una vez más, la tecla de acceso rápido para colocar esto en tu gráfica es simplemente mantener presionada la tecla B y hacer clic con el botón izquierdo. Ahora bien, vale la pena señalar aquí que anteriormente hemos utilizado un nodo de sucursal. Esto lo hicimos durante la introducción de la variable booleana. Y lo hicimos dentro de nuestra terceraPersonaPersonaje. Entonces, ¿por qué no encuentras tu terceraPersonaPersonaje? Lo puedes encontrar en la carpeta Blueprints en tercera persona. Haz doble clic sobre eso para abrirlo. Y lo que hicimos durante el video booleano es que lo hicimos. Entonces, cuando entramos acción saltó a través de la barra espaciadora, evaluamos la condición de nuestra variable booleana can jump. Y si fuera cierto, que actualmente lo tenemos cierto por defecto, entonces podemos saltar. Si es falso, no podemos saltar. Y podemos ver esto simplemente tratando de jugar cuando envío mi objeto de depuración ahí. Y una vez más, esto se pone en realidad. Y lo puedes ver pasando el mouse sobre esto mientras estás jugando. Y si presiono la barra espaciadora, se puede ver que de hecho estoy saltando. En cuanto libere. Ahívamos. Eso sin embargo, si iba a cambiar, Ken saltó a falso, presionaremos la barra espaciadora. Esto se evaluará como falso y no pasará nada. Entonces sigamos adelante y probemos esto. Presionando la barra espaciadora, se puede ver el flujo de los troqueles de ejecución aquí mismo porque esto se evalúa como falso, lo que podemos ver en la pequeña punta de la herramienta. Nunca hubo ir más allá de esta rama. Está parando el flujo de ejecución muerto ahí mismo. Bien, intentemos presumir otro escenario aquí. Así que voy a crear una nueva variable en la sección My Blueprint del Blueprint de ThiredPersonCharacter Blueprint, haciendo clic en el botón más en la parte inferior de aquí, voy a llamar a esto hes key signo de interrogación. Y no voy a compilar esto. Y sólo para hacérselo saber aquí, voy a dejar esto tiene clave como falsa. No tengo la llave enseguida. En realidad, sabes qué, voy a comprobarlo a verdad diré que sí, nuestro personaje sí tiene la clave. Entonces vamos a compilar ese ahorro. Y entonces lo que vamos a hacer es volver a nuestro navegador de contenido aquí, quiero entrar en nuestra sección de planos. Tenemos nuestra puerta giratoria que creamos este plano es el plano de puerta giratoria cuando hablamos de las variables de los rotores. puedas revisar ese video si no has creado esta puerta, voy a hacer click izquierdo y arrastrarlo mi nivel de inmediato. Entonces voy a hacer doble clic sobre esto para abrirlo. Vamos a modificar nuestro guión aquí sólo un poquito. Así que lo que voy a hacer es matar a nuestro personaje get player aquí y aquí mismo, y aquí mismo. Esa era una forma que acabábamos de configurar ahí de verificar si era nuestro terceraPersonpersonaje superponiendo esa puerta. Lo que voy a hacer ahora es que vamos a comprobar agarrando a este otro pin de actor. Vamos a lanzar a nuestro terceraPersonaPersonaje. Esta es otra forma de verificar para ver, oye, ¿quién es lo que nos superpuso? Y nuevamente, estamos marcando la casilla como el componente que estamos comprobando para solapar el componente de caja ahí mismo. Vamos a cablear esto. Vamos a hacer algo solo si se trataba un personaje de tercera persona superponiéndonos. Sin embargo, todavía no vamos a abrir esta puerta a menos que descubramos que nuestro personaje de tercera persona tiene la clave, si lanzas tu personaje de tercera persona de esta manera, todavía tenemos que hablar oficialmente acerca de los nodos de fundición. Podemos llegar al interior de nuestro terceraPersonpersonaje y acceder a cualquier función o variable o cosa por el estilo que viva dentro de allí. Podríamos llamar a una función variables de acceso, etc. específicamente, queremos secarnos de aquí y encontrar r tiene clave. Vamos a conseguir, ¿ nuestro jugador tiene la llave? Si no ves esto, tratando de hacer lo que acabo de hacer ahí, asegúrate de que tu personaje en tercera persona esté compilado después de que creaste que tiene clave booleana. Ahora una vez más, esto es cierto por defecto, así es como lo configuramos. Entonces vamos a usar esto como nuestra condición. Si es cierto que nuestro jugador tiene una llave, entonces vamos a abrir nuestra puerta. Con todo esto en su lugar. Nome voy a preocupar por este solapamiento final ahora mismo. Sólo me preocupa la apertura de la misma. Sigamos adelante y compilemos esto. Salvemos, y luego vamos a darle una jugada a esto. Bien, por lo que podemos comprobar para R script de trabajo envolver su, aquí es donde se puede establecer su objeto de depuración. Si tienes varias puertas ahí mismo, puedes decir qué puerta estás registrando para ver si está funcionando. Bien, aquí vamos. Deberíamos tener esa clave porque dijimos que es cierto por defecto, ese booleano. Y ahí vamos, se abrirá. Ahora, déjame saltar de nuevo a mi personaje en tercera persona. Voy a cambiar tiene clave para falso, compilar guardar. Volvamos a una puerta giratoria, haga clic en reproducir aquí mismo. Y ahora nuestro personaje no tiene la clave. Entonces sigamos adelante y ya ves que nos acercamos a esa puerta. Se puede ver que esa superposición sucede, pero está deteniendo el flujo de ejecución muerto aquí mismo en nuestra sucursal. Bien, saltando de nuevo a nuestro Blueprint de personaje de tercera personaaquí en esta sección de salto del guión. Quería señalar que su condicionamiento de una sucursal de cuatro años no tiene que ser sólo una sola variable como esta. Y tampoco tiene que ser solo una sola entrada dura condicionada marcando esta casilla o desmarcando esta casilla, en realidad puedes hacer una evaluación más intrincada si quieres. Y si me muevo hacia la izquierda aquí, voy a mostrar algunos otros nodos que a menudo se encuentran enchufados a una rama. Y estos son estos tipos de aquí mismo. Tenemos un antinodo, un nodo NAND en o un NOR y una x o si se quiere. Entonces los comentarios aquí describen cómo funcionan estos, pero podemos probar algunos de estos. Voy a probar este porque esto es muy común. Puedes intentar conectar uno de estos a tu sucursal aquí mismo. E incluso podemos usar nuestro salto Ken es una de las condiciones. Ahora bien, esto devolverá un verdadero si todas las entradas son verdaderas. Así que permítanme hacer clic en este botón más. Vamos cuatro veces. Podríamos seguir agregando más pines de entrada. Ahora voy a enchufar mi lata saltar a esto. Ahora actualmente mi lata saltar. Eso es falso, pero voy a revisar todo el resto de estos. Ahora bien, esto solo debería devolver true si todas las entradas son verdaderas, estas tres son verdaderas. Puede saltar aquí, sin embargo no lo es. Entonces esto debería inhabilitar mi personaje de saltar porque no todos son ciertos. Compile esto y juegue. Presionando esa barra espaciadora. Ya ves que puedo saltar, déjame cambiar, puedo saltar aquí a la verdad, saltar y jugar. Y ahora puedo saltar, los cuatro son ciertos. Siguiente Estoy presumiendo este nodo NAND que puedo saltar se establece en true como lo son todos los demás. Esto evaluará a false porque todas las entradas son verdaderas. Así es como funciona esta. Por lo que solo devuelve false si todas las entradas son verdaderas. Entonces estoy presionando la barra espaciadora, no puedo saltar. No obstante, si tuviera que cambiar uno de estos dos falsos, y podría ser cualquiera de estos los que elija, entonces se evaluará a verdad. Así que ahora puedo saltar. El nodo OR devolverá true de cualquier entrada es true. Entonces tengo tres de ellos que son falsos, pero mi poder saltar aquí es verdad. Entonces haciendo clic en reproducir aquí, presionando la barra espaciadora, se evaluará como verdadero porque solo uno que es todo lo que necesito es cierto. A continuación, tenemos el NeuroNode. Esto se evalúa como verdadero solo si ambas entradas aquí son falsas. Entonces actualmente mi variable booleana es falsa, igual que esta ranura vacía de aquí. Entonces, si hago clic en Reproducir, puedes ver que puedo saltar. No obstante, si tuviera que establecer incluso uno de estos en verdad, salte de nuevo y juegue. Se puede ver que va a evaluar a falso. Por último, pero no menos importante, tenemos este nodo XOR y esto va a evaluar a true si las entradas no son las mismas. Por lo que actualmente mi salto ken se establece en false. Esta casilla de verificación está establecida en true por lo que no son lo mismo. Entonces esto debería evaluar el verdadero saltar y jugar. Sí, en efecto, puedo saltar si tuviera que establecer estos para que fueran ambos iguales. Entonces ahora mismo ambos son falsos. Salta y juega. No evalúa a verdad. Entonces ahí lo tienes. Esos son algunos nodos útiles, algunos complementarios que a menudo se enchufan a la entrada de condición de un nodo de rama. Entonces hablemos de algunos usos posibles para los nodos de sucursal. Bueno, podrías hacer la pregunta, ¿el jugador tiene suficiente manera de lanzar un hechizo? ¿ El jugador tiene suficiente maná para comprar un artículo? Podrías hacer alguna evaluación de dinero que el jugador tiene un valor entero de la cantidad de dinero versus la cantidad de dinero requerida para comprar un artículo. Si eso es verdadero o falso. Se puede evaluar eso para determinar si la compra se realiza. ¿ Y qué pasa, un jugador está en la ubicación correcta para usar un objeto? O tal vez, ¿el jugador poca salud, podrías evaluar? ¿ El jugador tiene veinticinco por ciento de salud o menos? Si eso es cierto, podrías hacer una cosa versus si es falsa, podrías hacer otra. Bien chicos, eso va a hacer para ofrecer esta discusión sobre los nodos de sucursal, los veremos en el siguiente video. 77. Secuencia: Bienvenida. En este video, nuestro objetivo es conocer cómo puede utilizar el nodo de control de flujo de secuencia en scripts. Ahora este nodo, puedes disparar múltiples secciones de guiones simultáneamente y de manera organizada. Ahora en este video voy a estar trabajando dentro de mi Plano de Nivel. Entonces, si te gustaría seguir el juego en casa y olvidaste cómo entrar ahí. En tus mapas. Simplemente ven aquí, abre Level Blueprint y eso te llevará allí mismo. Bien, ¿qué es un nodo de secuencia? Es uno que permite que una sola entrada de cable de ejecución se desprenda de múltiples salidas de ejecución. Ahora bien, esto es genial para eventos. Solo te permite tener una copia de un evento dentro de un script, como Comenzar a jugar, comenzar, superponer, etc. Ahora puedes agregar múltiples pines de salida aquí si hay múltiples cosas que quieres hacer fuera de, decir, Comenzar a jugar simplemente haciendo clic en este botón más. Ahora bien, si quieres eliminar alguno de estos pines de ejecución de salida, simplemente puedes hacer clic derecho sobre ellos y eliminarlos así. Esto es genial para mantener los scripts organizados y para agregar uno de estos, ya que este es un nodo de uso común, simplemente puede mantener presionada la tecla S, luego hacer un clic con el botón izquierdo del mouse, y eso va a traer uno para ti. Entonces pongamos uno de estos para usar dentro de nuestro plano de nivel aquí, no agilizar las cosas. Tengo un poco de guión que configuré antes de tiempo aquí en mi Plano de Nivel. Pero eso está todo bien y dandy, te explicaré lo que he hecho para que puedas seguir el juego en casa. Entonces quiero hacer tres cosas al comenzar a jugar aquí. Así que permítanme traer y comenzar a jugar nodo evento. Puedo mantener presionada la tecla P y hacer clic con el botón izquierdo para que el evento comience a jugar. Y sólo para demostrar que sólo se puede hacer que uno de estos eventos comience las jugadas dentro de una gráfica. Si trato de hacer clic derecho y algún espacio vacío, y voy a empezar a jugar así. Simplemente me va a saltar directo a ello. O si mantengo pulsado el PT y vuelvo a hacer clic con el botón izquierdo , no he conseguido nada. Entonces sólo uno de esos puede ir dentro de una gráfica. Ahora, ir al evento de conexión comienza a jugar. Esto se encenderá tan pronto comencemos a jugar nuestro juego. Y estoy fluyendo esto a través de un nodo de secuencia. Y la razón por la que estoy haciendo esto es porque quería hacer tres cosas fuera de Event. Comenzar a jugar. Quiero tocar un sonido. Esto va a ser algo de música de inicio. Voy a estar consiguiendo mi personaje de jugador que lanzando a mi tercera personaPersonaje. Y he promovido esto a una variable aquí para que pueda guardar una referencia a mi terceraPersonCharacter en caso de que quisiera hacerle algo a mi terceraPersonCharacter más tarde, simplemente necesitaría arrastrar y soltar uno de estos en mi gráfica. Entonces la otra cosa que quería hacer aquí es algo un poco más elegante. Coloqué un punto objetivo dentro de mi nivel. Puedes encontrar uno de estos en el panel de actores del lugar. Entonces fui aquí, agregué un panel de actores de lugar, hice una búsqueda de un punto objetivo, es solo agrega un ícono a tu editor y define un punto en el espacio para ti que puedes usar dentro de una gráfica como lo estoy usando. Entonces con esos puntos objetivo seleccionados, mantengo presionada la tecla R está en referencia y clic izquierdo, y así es como consigo una referencia a eso. Entonces simplemente arrastré fuera de eso, obtuve la ubicación del actor arrastrada fuera de esta búsqueda de punto aleatorio en cuadro delimitador, especifico un tamaño para un cuadro delimitador, esto es esencialmente un área dentro de mi nivel alrededor, centrado alrededor de mi punto objetivo. Entonces me drogo de esto para hacer una transformación. Todo lo que me importaba realmente era la ubicación. A mí no me importaba la escala de rotación. Entonces me arrastro fuera de esto y busqué un actor spawn de nodo de clase. Aquí, estoy especificando mi BPMN, una poción que creé anteriormente en el curso. Puedes especificar cualquier clase aquí, realmente no importa. Entonces estas son las tres cosas que quiero hacer fuera de comenzar a jugar. Así Comenzar Evento Juega aquí mismo usando un nodo de secuencia. Puedo ir bam, bam, bam. Y si quieres organizar tu script un poco mejor, puedes hacer doble clic en un cable para traer un nodo de reencaminamiento. Nuevamente, los nodos de secuencia son una excelente manera de organizar tus scripts. Así que voy a compilar esto para asegurarme de que mi guión se vea bien. Entonces al comenzar a tocar, deberíamos escuchar algo de música. Tendremos una referencia a nuestro personaje, y vamos a engendrar a un hombre, a una poción. Ahora, puedo jugar el juego y ver esto, o puedo simular el juego y deberíamos escuchar esa música. Y debemos engendrar esta poción. Ahora, todo esto va a pasar entre bastidores. Entonces esto, solo vas a confiar en que esto va a suceder. Pero vamos a escuchar algo y a ver algo para que pueda jugar el juego. Y vio que la emancipación nace aquí. Un poco de música. O si quieres probar esto, también puedes simular tu juego. Ahora para hacer esto, puedes venir debajo de tus tres puntos aquí mismo y elegir simular. Y puedes ver la tecla de acceso rápido para esto. Ahora cuando simulas tu juego, estás haciendo que tu juego ejecute todo el código, todo el script también se está ejecutando. Quienquiera que no estés saltando y jugando tu juego. Entonces, si haces clic aquí mismo, puedes ver que sí engendró de manera poción. Y también está sonando algo de música. Puedo detener esto. Alternativamente. Eso es un civil ahora mismo estoy en modo simular. Solo tenga en cuenta que alternativamente, si haces Alt más S, eso también hace el modo de simulación. Esto es genial por solo hacer que tu juego funcione. Y solo quieres volar así y ver las cosas. Ahora, antes de que terminemos este video, solo quería demostrar que no es necesario usar nodos de secuencia. Son esencialmente un nodo tipo calidad de vida para organizar mejor tus scripts. Aquí está exactamente la misma configuración sin el nodo de secuencia. Hará exactamente las mismas cosas. Sin embargo, mi cableado es un poco entrecruzado. Y se puede imaginar si tuviera 45610 cosas como podría ponerse muy, muy desordenado. Entonces si hago clic en reproducir aquí, pueden ver que sí tengo esa señora poción, tierras y música, etc. Así que a menudo estos nodos de secuencia vienen directamente después de un evento para hacer una cosa, una segunda cosa, una tercera cosa, etcétera. Pero no es ahí donde tiene que ir. Puedes colocarlos donde tengan sentido dentro de tu guión. Algo más que quería señalar aquí también. Una vez más, solo puedes tener una copia de un evento que comience a jugar, evento comienza se superpone a ese tipo de cosas. Sin embargo, hay ciertos nodos de eventos, como eventos de entrada como nuestra clave ocho, de los que puede tener múltiples copias. Un caso como este. No necesitarías un nodo de secuencia porque puedes tener uno eventos, hacer tres cosas. Entonces, para probar esto, simplemente haciendo clic en la prensa ese botón. Hola, ¿estás ahí? Hola, ¿estás ahí? Entonces no necesitas un nodo de secuencia para algo como esto. Aunque eso tampoco sería mala idea. Nodos de secuencia, tipo de calidad de vida, nota, los uso todo el tiempo. Eso servirá para ofrecer este video. Nos vemos en la siguiente. 78. Haz una vez: Bienvenida. En este video, nuestro objetivo es aprender cómo podemos utilizar el nodo do once dentro de nuestros scripts. Ahora bien, este es un nodo bastante autoexplicativo que parece que solo necesitarías usar de vez en cuando. Resulta que este nodo viene muy bien en todo tipo de escenarios. Entonces, ¿qué hace el do quiere no hacer? Bueno, dispara un pulso de ejecución solo una vez fuera de él. Ahora a partir de ese momento, cesará toda ejecución saliente. No volverá a disparar fuera de aquí a ningún otro script que tenga más allá de aquí, hasta que tenga un pulso enviado a la entrada de reinicio aquí. Una vez que haces eso, puede hacerlo una vez, una vez más. Ahora, para traer este nodo a tu gráfica, puedes hacer clic derecho y hacer una búsqueda para hacer una vez o manteniendo presionada la tecla O, puedes hacer clic con el botón izquierdo y eso también obtendrá el tuyo. Ahora pongamos esto a prueba revisando un ejemplo aquí. Para esto, voy a estar trabajando dentro de mi Blueprint de Nivel para que puedas acceder a eso aquí mismo. Plano de Nivel Abierto. Además, quería señalar aquí que vamos a estar accediendo a una variable dentro de nuestro personaje de tercera persona. Entonces, si acabas de venir a visitar el video directamente, abre tu terceraPersonpersonaje. Dentro de esta vía, vamos a estar accediendo a esta variable entera obtenida de XP total dentro de nuestro terceraPersonCharacter. Entonces, si no tienes esto, sigue adelante y crea una variable entera, tengo el valor predeterminado establecido en 0. Asegúrate de compilarlo también porque vamos a estar accediendo a él aquí en breve. Bien, volvamos a nuestro Plano de Nivel. Lo primero que vamos a necesitar es un evento. Y hagamos esto en realidad con una superposición de eventos. Superpongamos un área dentro de nuestro nivel y luego agreguemos algunos puntos de experiencia a nuestro personaje por ser tan increíble y atravesar ese lugar. Así que volvamos a nuestro mapa de prueba aquí y agreguemos una esfera de disparo. Si no tienes este lugar panel de actriz, lo puedes encontrar aquí. Coloca panel de actores que llegaremos a eso. Coloquemos una esfera desencadenante dentro de nuestro nivel. Con eso seleccionado en el panel Detalles, voy a aumentar el tamaño del radio de nuestra esfera, hacerla un poco más grande. También voy a entrar bajo la sección de renderizado, juego oculto de actor desmarcado, para que podamos ver esta esfera. Ahora con este seleccionado, voy a saltar de nuevo a mi Blueprint de Nivel. Vamos a hacer clic con el botón derecho en agregar un evento para esto. Al entrar, Agregar colisión de eventos. Vamos a hacer algo al empezar a superponerse. Entonces lo primero que queremos hacer es comprobar que es nuestro personaje de tercera persona el que es el otro actor que nos está superponiendo. Así que podemos hacer un chequeo aquí sacando de este otro pin de actor, haciendo un Cast to ThirdPersonCharacter. Y hablaremos de casting oficialmente más adelante en el curso aquí que viene pronto. Y con todo esto hecho, podemos llegar al interior de nuestro terceraPersonaPersonaje y vamos a conseguir esa XP total ganada. Y vamos a arrastrar un aquí, presionar el botón más. Vamos a sumar, diremos que vamos a sumar 100 puntos de experiencia para llegar a esa esfera. Buen trabajo chico. Entonces vamos a arrastrar fuera de nuestro terceraPersonaPersonaje, hacer una búsqueda de XP total. Nosotros lo pondremos. Entonces lo estamos consiguiendo, sumando un 100. Vamos a establecer eso como el nuevo valor actualizado. No obstante, sólo queremos hacer esto una vez. No queremos hacerlo para que podamos superponer esta esfera una y otra vez y otra vez y obtener 100 puntos de experiencia. Sólo queremos decir, Oye, lo hiciste la primera vez. Eso es genial. Nunca más fluirá por el nodo Arduino quiere aquí. Después Otorgar los 100 puntos de experiencia. Por último, pero no menos importante, tenemos que esperar para comprobar esto. Así que voy a arrastrar fuera de aquí, hacer una cadena de impresión. Y solo vamos a imprimir esto a la pantalla arrastrando nuestro XP total ganado a la cadena, convertirá ese entero en una cadena. Compile eso, ahorre. Sigamos adelante y juguemos para probar esto. Voy a establecer mi objeto de depuración allí en mi mapa de prueba. Y superpongamos eso y veamos lo increíbles que somos ganados unos 100 puntos de experiencia. Entonces revisa justo en esta esquina de la pantalla. 100 puntos de experiencia. Ahora eso sólo debería pasar una vez. Entonces voy a terminar esa superposición y luego voy a superponer otra vez. ¿ Ves que fluyó hacia el do quiere? No, pero no fluyó más allá porque este nodo dice hacer una vez y nunca más. Bien, ahora intentemos restablecer esto usando otra entrada. Así que déjame hacer clic con el botón derecho en algún espacio vacío. Buscaré el teclado seguro la tecla F. Entonces cuando presione la tecla F, voy a reiniciar esto. Y entonces aquí vamos. Voy a compilar esto. Voy a jugar, voy a superponer esto. Puedes ver que obtengo mis 100 puntos de experiencia. Estoy superponiendo de nuevo actualmente, no puedo pasar más allá de aquí. No obstante, cuando presiono la tecla F, mira aquí vamos presionando la tecla izquierda. Va a restablecerlo. Entonces debería hacerlo una vez. Una vez más, obtengo otros 100 puntos de experiencia. Se detiene porque lo está haciendo sólo una vez voy a presionar la tecla F. Me permitirá hacerlo una vez más. Ahí vamos. Entonces así es como funciona la tecla F para restablecer eso haciendo una vez, una vez más. Ahora tenga en cuenta en este nodo do once hay una entrada booleana donde puede comenzar cerrado o no. Actualmente estamos no estamos empezando cerca. Puedes enchufar una variable booleana si quieres comenzar al cerrar o no. Entonces déjame mostrarte eso. Si hago inicio un cierre, así que marqué esa casilla y ahora juego. Voy a superponer esta esfera. Pero aquí no va más allá. Sí, se llama el dual quiere no, pero estamos empezando cerrados, es decir, que tenemos que restablecerlo aquí primero para que haga uno. Entonces ahora si presiono F, se restablece. Y ahora puedo ir más allá de una sola vez. Otra vez no, presione F. Así que solo quería señalarlo también. Esta ropa de inicio puede asegurar que la primera vez en este caso la superpongamos. En realidad no lo haces una vez que tienes que restablecerlo primero. Hablemos de cuáles son algunos usos posibles para la nota du once aquí, bueno, piensa en una fanfarria de nivel o notificación al llegar a un umbral de puntos de experiencia dado, ya sabes, has llegado a 5 mil puntos de experiencia. Has subido de nivel. Solo quieres que eso juegue la primera vez que superes los 5 mil puntos de experiencia totales, no 5,005, no 5,010, etcétera. ¿ O qué tal si estás interactuando con un cofre del tesoro? Quieres abrirlo, pero abrirlo solo una vez. Ese sería otro gran uso de un do uno nevado. ¿ O qué tal cosechar un mineral? Tienes algo de mineral de hierro en tu nivel y caminas hasta él y puedes cosecharlo solo una vez. Y entonces tal vez un temporizador o podría establecerse para permitir que eso sea cosechable. Una vez más, digamos después de una hora, dos horas, etc. así que esos son todos los usos posibles del nodo Dew wants. Muy común usarlo. A mí me encanta. Uno de mis nodos favoritos de control de flujo, chicos que va a hacer para ofrecer este, veremos en el siguiente. 79. Do N: Bienvenida. En este video, nuestro objetivo es obtener ese conocimiento y demostrar el uso práctico del nodo do n, también conocido como nodo amanecer. Ahora bien, esta es una gran nota para usar para restringir la cantidad de veces que se puede hacer algo. Entonces, ¿qué hace y no hace el hacer? Bueno, se dispara en el pulso de ejecución n número de veces como se define por esta entrada entera aquí mismo, puedes enchufar un valor entero o puedes configurarlo duro como tengo el número 37 aquí. Entonces, después de que se haya alcanzado este límite, cesará toda ejecución saliente hasta que se envíe un pulso de vuelta a la entrada de reinicio. Entonces en este caso, si tuviéramos que conectar una tecla de entrada a esto, digamos la tecla F para fuego. Nosotros dispararíamos fuera de esta salida, esta ejecución daba salida 30 veces. Y después de 30 veces, tendría que restablecerlo para se ejecutara otro pulso de ejecución. Ahora bien, este contador dará salida cuántas veces se ha hecho, y lo mostraremos aquí en sólo un poquito. Pero así es esencialmente como funciona el nodo do n. Es muy parecido al nodo do once solo se llega a establecer cuántas veces hace la cosa. No tiene que ser una sola vez. Podrías configurar esto para que sea uno, pero puedes tener este sea 1102100, etc. así que para agregar este nodo, podrías hacer clic derecho y simplemente hacer una búsqueda de Don. Ahí está el nodo do n o manteniendo pulsado el botón izquierdo del ratón haciendo clic. También puedes agregar eso. Pongamos esto a un uso práctico. Estoy en mi tercera personaPlano de personaje. Ahí es donde lo puedes encontrar. Entonces probemos un ejemplo aquí. He montado uno antes de tiempo. Y aquí está mi ejemplo. Voy a presionar el botón izquierdo del ratón, vamos a hacer tres veces. Voy a sacar el contador aquí a la pantalla. Esto podría ser un texto impreso, nota, podría ser cadena de impresión. Aquí todo va a funcionar igual. Y al hacer eso, voy a engendrar a un actor de clase. Entonces este es un actor spawn del nodo de clase que acabo de ranurar en el fuego de efecto blueprint aquí. Realmente puedes colocar lo que quieras. Tienes que darle a esto una transformación de spawn. Podría haber hecho una transformación mundial GET. Yoquería hacer. Podría haber hecho una transformación get rolled, consigue transformación mundial para el actor o cualquiera de mis diferentes componentes que elegí hacer aquí para mi mano simulada. Ahora bien esta es una que agregué antes en el curso. Entonces, si te preguntas cuál es mi mano simulada aquí, es un componente de colisión de esfera. Y sólo para mostrarte dónde coloco esto dentro de mi ventana gráfica, ahí está. Esa es mi mano simulada representada por alguna colisión de esfera. Así que vamos a estar generando un fuego de efecto plano en ese lugar relativo a nuestro personaje. Entonces esa es nuestra configuración ahí mismo. Sigamos adelante y pruébenos aquí. Déjame compilar eso, asegúrate de que mi guión sea bueno para comenzar. Entonces estamos diciendo que vamos a hacer esto tres veces y luego presionar el RT restablecerá eso y me permitirá hacerlo tres veces más. Una vez más, haciendo clic en reproducir. Déjame configurar todo esto para establecer mi objeto de depuración el ThirdPersonCharacter para que puedas ver este script ejecutándose. Bien, entonces girando ahí está mi mano simulada. Una vez que se puede ver en la parte superior izquierda está emitiendo cuántas veces hemos hecho aquí nuestro contador una segunda vez, 21 veces más. Tres. Ahora bien, si intento hacerlo de nuevo, no va más allá del nodo final debido. No obstante, si presiono el receptor archae ahora, vamos a restablecerlo. Y eso me permitirá hacerlo tres veces más. Entonces aquí vamos. 123, pero no una cuarta. Entonces algo así, eso está configurado ahí mismo. Podría usarse para encender antorchas, como en un juego al estilo Legend of Zelda. Algunos otros usos posibles, podríamos usar una configuración como esta para determinar cuántas veces puedes cosechar un artículo antes de que puedas. Ese es otro buen uso del nodo n. Quizás lo estés usando para determinar cuántas veces puedes disparar un arma dada antes de que debas recargarla. O tal vez lo uses para determinar el número de interacciones que puedes tener con un NPC antes de que ya no puedas tener. Ya sabes cuántos juegos tienen es donde puedes interactuar con un MPC, digamos tres veces, tiene tres cosas únicas que decir. Y entonces eso es todo. Bien, entonces ahí lo tienes. El nodo final, es una especie de primo, es hermano, si se quiere, del do uno nevó un poco más de flexibilidad con el nodo do n que harán para ofrecer este. Nos vemos en la siguiente. 80. Flop del tirón: Bienvenida. En este video, nuestro objetivo es conocer y demostrar el uso del nodo flip-flop. Ahora bien, este es el nodo a usar siempre que quieras alternar entre dos bits de script, siempre que ocurra un evento de tu elección. Entonces, ¿qué es una nota flip-flop que toma en una ejecución entradas así? Y alterna entre dos salidas de ejecución, a y B. Así que la primera vez que fluyas en esto, voy a poner a se llama la segunda vez. La salida b se llama la tercera vez. La cuarta vez b, etcétera. Se flip-flops entre disparar fuera de un entonces B. Ahora sí tiene una salida booleana que le permite rastrear cuando se ha llamado a la salida a. Eso a menudo se usa para simplemente asegurar que sabes cuál de estos se está llamando. A lo mejor quieres imprimir cadenas para que veas cuando a se llama vs, B, etc. Para mostrar un ejemplo, uso de la nota flip-flop voy a estar haciendo esto dentro de mi Blueprint de terceraPersonpersonaje. Entonces, si quieres seguir el juego en casa, puedes encontrarlo bajo planos en tercera persona, haz doble clic en ese tipo para abrirlos. Y necesitamos un evento para que empecemos aquí. Entonces voy a hacer clic derecho y hacer un evento de clic con el botón izquierdo del mouse. Puedes usar cualquier entrada que quieras. Voy a ir con el botón izquierdo del ratón. Y así cuando presionamos esto, vamos a flip-flop entre a que B que a que B cada vez que presionemos eso. Entonces lo que quiero hacer es arrastrar esto y voy a traer a un actor spawn del nodo de clase. Y la clase que voy a engendrar en la primera vez que presione el botón izquierdo del ratón va a ser mi efecto de plano fuego. Ahora puedes encontrar esto si tienes estas carpetas de contenido de inicio y puedes navegar hasta donde está esto haciendo clic aquí mismo. Eso te va a saltar para que te pongas. Esto existe dentro de su navegador de contenido. Honestamente, puedes engendrar lo que quieras aquí. Esencialmente voy a estar desove en algún fuego y luego algunas chispas aquí abajo para simularme lanzando un hechizo. Entonces voy a Control C, control V. Así que la segunda vez que presionamos el botón izquierdo del ratón, en vez de fuego, voy a engendrar en sumas, ladras. Chispas con efecto plano. Ahora sí necesito darle a esto una transformación de spawn para poder arrastrar hacia atrás fuera de cualquiera de estos. Y voy a decir hacer transformar. Ahora bien, la única razón por la que quiero usar este make transform es solo una escala reducida de los efectos de cada uno de estos. Solo voy a hacer que esto sea la mitad del tamaño de 0.5 en la x, la y y la z. De hecho, vamos a adjuntar estos efectos generados a nuestra malla aquí en un poco. Pero esto disminuirá el tamaño de cada una de estas medias tallas para cada una de esas. Entonces lo que quiero hacer es que en realidad quiero almacenar lo que engendramos aquí dentro de una variable. Y la razón por la que vamos a querer almacenar estos diferentes efectos es porque cuando engendramos uno, vamos a matar al otro. Entonces esa es nuestra idea aquí detrás de las chanclas. Entonces voy a hacer clic derecho en este pin. Voy a promover la variable. Y voy a darle a esto un nombre de hechizo equipado 01. Así que he promovido eso a una variable aquí abajo. Y luego sobre este tipo voy a hacer clic derecho sobre esto, promover eso a una variable y voy a llamar a este hechizo equipado 02. Y entré con ese nombre ahí abajo por si te lo perdiste. Ahora fuera de cada uno de estos, voy a arrastrar y escribir adjuntar. Busco actor adjunto, dos componentes. Adjuntar actor al componente. Ese es el que estamos buscando. Ahora, el objetivo aquí va a ser nuestro hechizo equipado. El padre al que queremos adjuntar esto va a ser nuestra malla. Entonces, si vamos a nuestra ventana gráfica, nuestra malla es este maniquí de aquí mismo. Entonces esa va a ser nuestra malla, el actor. Queremos adjuntar nuestro efecto de hechizo aquí a nuestra malla y podemos alimentar esto con un nombre de socket. Ahora de vuelta en nuestro nombre variable video, creamos un socket en nuestro esqueleto, en nuestra malla aquí. Y creamos un nombre para socket. Ahora sí almacenamos esto a una variable. Nuestro nombre de socket que creamos en nuestro nombre video variable se llamaba socket de mano. Así que solo voy a arrastrar y soltar esto, enchufar esto justo aquí. Ahora bien, si no pasaste por este video de variable de nombre, esto no funcionará para ti porque primero necesitas configurar un socket. Yo te sugiero que vuelvas a ese nombre variable video para poder hacer eso, para que esto funcione correctamente. Ahora sí necesito cambiar mi rol de ubicación aquí para ser ajustado al objetivo. La regla de rotación que se debe ajustar al objetivo también para que esto funcione, bien, entonces simplemente voy a copiar esto. Copiar los tres nodos control C, control V. Los vamos a pegar aquí abajo, así. Y tenemos que asegurarnos de enganchar esto así. Entonces esa es nuestra configuración actual. Entonces, si necesitas pausar el video aquí para ver lo que tenemos actualmente, pero aún no hemos terminado del todo. Entonces lo que queremos hacer es sacar a este tipo en Troya. Actor. Ahora, ¿a qué actor queremos destruir? Bueno, cuando estamos desove efecto fuego, vamos a querer destruir nuestro efecto de chispas y viceversa para que solo tengamos uno de estos vinculación a la vez. Ahora, para hacer esto, voy a arrastrar en hechizo equipado O2, enchufarlo ahí. Esta es la que acabamos de promover a una variable aquí abajo, y viceversa. Voy a Control C, Control V con este Destruir Actor aquí mismo. Así. Y queremos enchufar el hechizo número uno equipado a esto. Ahora sé que cuando ejecutemos esto en un juego, vamos a obtener un error justo aquí arriba, pero voy a dejar que este error ocurriera solo para que veas cómo lo arreglamos en un poco. Ahora bien, este es el guión R que tenemos en marcha. Vamos a estar haciendo uso de nuestro nodo flip-flop. Vamos a compilar esto para asegurarnos de que todo esto se ve bien. Vamos a salvar esto. Así que sólo para correr a través de esto, vamos a hacer clic izquierdo del ratón la primera vez que vamos a ejecutar fuera de la salida a. Entonces este bit de script se va a ejecutar. Vamos a desovar en el fuego de efecto. Vamos a guardar ese efecto fuego dentro de una variable. Vamos a adjuntarlo a nuestra malla en el nombre del socket que proporcionamos. Entonces vamos a destruir actor para. Ahora la primera vez que hagamos esto, esto va a arrojar un error cuando nosotros aquí exóticos porque no hemos engendrado en efecto hasta el momento. Entonces por eso arrojará un error. La segunda vez que pulsamos el botón izquierdo del ratón, vamos a disparar desde la salida B del nodo flip-flop. Va a engendrar en el efecto de nuestras chispas. Vamos a guardar eso en variable. Vamos a adjuntarlo a nuestra malla en este nombre de socket dado. Y al hacerlo, también va a acabar simultáneamente con este efecto aquí mismo, nuestro efecto fuego. Ahora la próxima vez que presionemos nuestro botón izquierdo del ratón, la tercera vez vamos a generar en este efecto viral. Y vamos a estar matando chispas la segunda vez que lleguemos a esto, no va a arrojar un error porque habremos creado esta variable aquí mismo. Bien, sigamos adelante y danos una jugada. Intentaremos meter esto en la esquina superior. Al hacer clic en reproducir. Déjame establecer mi depuración. Objetarse a nuestra terceraPersonaPersonaje. Oh, aquí vamos. Voy a correr por aquí. Entonces voy al botón izquierdo del ratón. Observe este flujo de ejecución mientras hago esto. Aquí vamos, botón izquierdo del ratón. Ves que afectar el fuego es vínculo aquí. Se lo está uniendo a mi personaje, así. Voy a presionar de nuevo el botón izquierdo del ratón. Se apagó el fuego. Ahí están las chispas. Y vuelve a pulsar el botón izquierdo del ratón. Hemos matado las chispas. Ahora tenemos fuego. Ahora voy a salir de aquí. Aquí está ese error del que estaba hablando. Se está quejando una vez más de que no podemos destruir a este actor aquí arriba. Al menos la primera vez no pudimos destruirlo cuando engendramos en nuestro efecto fuego porque no había nada que destruir. Esto no existía todavía porque primero rodamos a través de la salida a. Sin haber disparado a través de la b, aún no habíamos creado esta variable. Entonces, ¿cómo se resuelve este tipo de problemas? Bueno, en realidad es bastante simple. Si hacemos clic derecho en nuestro hechizo equipado, No, aquí mismo. Y lo convertimos a un validado todavía. Convertirá el nodo para que se vea así. Y si lo conectamos así, podemos decir sólo si esto es válido, es decir, sólo si esta variable tiene algo dentro de ella, vamos a destruir al actor. Si no es válido lo que significa que no hay nada dentro de él, entonces no hay nada que destruir, así que no pasará nada. Entonces así es como puedes sortear eso. Así que compilar, guardar, jugar, clic izquierdo, fuego, clic izquierdo chispas estaban volteando a, b, a, b ahora y escapamos. Ya no obtenemos ese error. Entonces ese es un ejemplo del nodo flip-flop. ¿ Cuáles son algunos posibles usos de esto? Bueno, podrías usar un nodo flip-flop para intercambiar entre dos armas. Tal vez uses un nodo flip-flop para activar y apagar el interruptor de la luz. Esos son algunos ejemplos de casos de uso. ¿Cuáles son los? ¿ Se te ocurre? Chicos que van a hacer para ofrecer este? Nos vemos en la siguiente. 81. puerta: Bienvenida. En este video, nuestro objetivo es adquirir conocimiento y demostrar el uso del nodo puerta. Ahora bien, este es un nodo extremadamente autodescriptivo en el que se puede ingresar al nodo de puerta. Pero si fluyes o no del pin de salida de ejecución y haces lo que venga después esto depende de si la puerta está abierta o cerrada o no. Comienza cerca aquí con tu nodo de puerta. Ahora, para traer uno de estos nodos a tu gráfica, puedes hacer clic derecho y buscar puerta. Además, puedes mantener pulsada la tecla G y hacer clic con el botón izquierdo del ratón, y eso también te traerá un nodo de ganancia. Tengo un ejemplo que me gustaría demostrar para todos ustedes aquí dentro de su Blueprint de Nivel. Entonces, si quieres seguir el juego, ahí es a donde dirigirte. Lo que vamos a hacer aquí es comenzar con un evento ticks. Sólo voy a hacer clic derecho y hacer una búsqueda de tick de evento. Y vamos a desembocar en nuestra puerta cada tic. Así que cada fotograma que vamos a estar fluyendo hacia nuestro juego. Ahora no vamos a ir más allá de esto hasta que nuestra puerta esté abierta. Recuerda que nuestra puerta está empezando a cerrar aquí. Entonces, aunque estemos fluyendo hacia este nodo, cada tick, cada fotograma, no vamos a estar fluyendo más allá de aquí y haciendo lo que sea para venir a continuación hasta que abramos nuestra puerta. Entonces, ¿cómo vamos a abrir y cerrar nuestra puerta? Bueno, vamos a hacer esto a través un nivel interno de volumen disparador. Así que regresa a tu nivel. Y vamos a venir justo debajo de aquí. Voy a venir bajo básico. Vamos a añadir un cuadro de activación, simplemente haga clic izquierdo y arrastre uno de esos aquí. Sólo voy a dimensionarlo aquí rápidamente. Vamos 150 por uno cincuenta, cuatro cincuenta, uno cincuenta, uno cincuenta, uno cincuenta, uno cincuenta. No lo sé. Es el primer número que vino de nuestras mentes. Algo grande, grosor de línea, vamos a cambiar eso para tender a hacer esto un poco más fácil de ver. Sin embargo, no lo vamos a ver a menos que nos encontremos en la sección de renderizado. Sección de renderizado y desmarcamos actor juego oculto. Voy a levantar esto, presionar la tecla Fin para golpearla hasta el suelo. Vamos a comprobar para ver si hemos solapado esto. Entonces con este seleccionado, vamos a volver a nuestro Blueprint de Nivel. Si aún no lo tienes abierto, abre Nivel Blueprint. Y vamos a hacer clic derecho en algún espacio vacío. Y vamos a agregar un evento para ese disparador de volumen bajo la colisión cuando comencemos a superponerlo, así como colisión con el botón derecho cuando terminemos de superponerla. Entonces queremos hacer algo solo cuando somos nosotros, el terceraPersonCharacter superponiendo el volumen del disparador. Otra forma podemos verificar para ver si somos nosotros. Podría arrastrar fuera de aquí y echar. No obstante, sólo voy a presumir de un método diferente. Sólo voy a escribir get player character. Ahora bien, si arrastro fuera de nuestro otro actor y simplemente escribo el operador de iguales, podemos verificar para ver si es el personaje del jugador el que nos está superponiendo. Ahora no necesitamos agarrar dentro de nuestro terceraPersonCharacter y ejecutar ninguna función que esté llamando a las variables nada de eso. Solo tenemos que verificar si es nuestro jugador genérico. Realmente no nos importa qué personaje de jugador, cualquier personaje de jugador. En este caso, para ThirdPersonCharacter es el que estamos controlando. Entonces esto es lo suficientemente bueno, puede mantener pulsada la tecla Alt clic izquierdo. Esa será nuestra condición aquí mismo. Vamos a copiar estos nodos aquí arriba, control C, control V. Tráelos aquí mismo. Así. Entonces, si es cierto que estamos superponiendo esa caja de activación, si eso es cierto, vamos a abrir las puertas. Ahora bien, si hemos terminado superponiendo la caja Trigger con nuestro personaje jugador, ese está comprobado que es el otro actor que se termina esa superposición. Si eso es cierto, entonces vamos a cerrar la puerta. Ahora. Eso está muy bien, pero ¿qué vamos a hacer al abrir las puertas? Bueno, aquí vamos a agregar otro actor a nuestro nivel. Entonces, ¿por qué no golpeas ahí atrás? Y vamos a agregar una especie de puerta aquí mismo un poco más allá de nuestra caja Trigger. Entonces para agregar una cotización, sin comillas puerta, voy a entrar justo debajo de aquí. Vamos a venir bajo formas. Vamos a agregar un cubo. Y sólo voy a estirarlo un poco. Entonces golpeando la tecla R, voy a escalarla así. No voy a ser súper preciso. Vamos a levantarlo al aire, algo así. Tal vez adelgazarlo un poco así. Voy a golpear la tecla Fin para golpearla hasta el suelo. Y con esta seleccionada, también voy a necesitar acercarme al panel Detalles y cambiar la movilidad de estos dos móviles. Ahora la razón por la que voy a necesitar cambiar esto a movible es porque voy a estar moviendo lentamente esto fuera del camino en la siguiente parte de nuestro guión. Bien, entonces con eso hecho, tenemos nuestro cubo aquí seleccionado. Asegúrate de tener eso seleccionado. Regresa a tu plano de nivel. También se puede acceder allí. Si aún no tienes esa pestaña abierta, mantén pulsada la tecla R haz clic izquierdo para traer una referencia. Y luego vamos a sacar de esto y escribir componentes de malla estáticos. Entonces nuestro actor de malla estática consiste en un componente de malla estática. Y para ayudar a conducir a casa ese punto, si vuelvo a mi nivel y selecciono mi cubo, podemos ver que R cubed consiste en un componente de malla estática, que es esencialmente este cubo de aquí mismo. Pero tenemos que hacer eso con el fin de arrastrar fuera de esto y traer en el nodo de ubicación relativa al anuncio. Ahora en este nodo lo hace, puedes ver que nuestro componente de malla estática del cubo está conectado al objetivo. Está buscando una referencia de objeto componente. Esto es en lo que vamos a estar fluyendo una vez que nuestra puerta esté abierta. Ahora esta ubicación Delta nos permite cambiar la ubicación de este componente de escena, de este componente de malla estática. Pero sólo una vez que la puerta esté abierta. Ahora voy a cambiar esto cambiando nuestra ubicación z para agregar una. Así que vamos a agregar uno a nuestra ubicación z en cada marco, porque vamos a estar fluyendo hacia este cada marco una vez que nuestra puerta esté abierta. Así que solo para revisar, cada tick, cada cuadro que vamos a estar fluyendo hacia esta puerta. No obstante, aquí mismo, esta casilla de verificación dice Estamos empezando cerca. No vamos a estar pasando más allá de aquí en cambiar la ubicación relativa de nuestro cubo. Sin embargo, una vez que comenzamos a superponer una caja Trigger con nuestro personaje jugador, nuestro personaje jugador se considera igual al otro actor. Es el otro actor el que nos está superponiendo. Eso es cierto. Entonces vamos a abrir la puerta y luego vamos a estar moviendo eso al aire. Sin embargo, cuando terminemos superponiendo ese volumen de disparo con nuestro personaje jugador, cuando eso sea cierto, vamos a cerrar las puertas. Hablemos de esto , justo aquí arriba. Voy a hacer clic en Reproducir. Si no has configurado tu objeto de depuración, puedes hacer clic aquí y configurarlo para que veas ese flujo de ejecución yendo. Déjame solo, ahí vamos. Parada mostrada ahí solo brevemente. Bien, ahora voy a tratar de enmarcar eso un poco mejor. Trae de nuevo a mi personaje. Bien, así que veis evento tick estaban fluyendo hacia esta puerta cada fotograma, sin embargo, no vamos más allá de aquí ahora mira lo que pasa cuando me superpongo esto con mi personaje. Vas a ver esto abierto, la puerta. Aquí vamos. Puedo ver que se levanta en el aire. Y si termino mi solapamiento, va a dejar de levantarlo en el aire, comenzar a superponerse. Va a abrir la puerta y continuar levantándola y superponiéndola, etcétera. Ahora otro ejemplo rápido, el caso de uso del nodo puerta usando gran parte de la misma configuración que ya tenemos en su lugar. Acabo de cambiar un par de notas aquí. Aquí estamos lanzando a nuestra terceraPersonaPersonaje tanto Ana comienza la superposición como la superposición final. Y la razón por la que quería ir con este enfoque es para que podamos arrastrar fuera de nuestro terceraPersonaPersonaje y llamar a esta función modificar salud que creamos cuando hablamos de funciones. Ahora lo que vamos a hacer con esta configuración es hacer que cuando nuestro personaje se superponga a esta caja Trigger, vamos a estar decrementando salud de nuestro personaje mientras están dentro de él. Una vez que salgan de esa caja de gatillo, vamos a detener ese sangrado, por así decirlo. Entonces puedes imaginarte esto siendo como una cámara de gas venenosa o tal vez, ya sabes, tal vez estés cruzando un pozo de fuego, algo así. Entonces aquí vamos. Esto se puede ver en el trabajo. Te recomiendo si vas a hacer esto, aunque cada tick, pondrías tu decremento de salud a un valor muy bajo. En realidad vas a ver esto representado en nuestra barra de salud aquí arriba porque tenemos nuestra salud atada a este medidor encendido o HUD también. Entonces aquí vamos, superponiendo esto. Sé que el sonido es muy spam en estos momentos, pero entiendes el punto. Al salir de esta zona de gas venenoso, el sangrado se detiene. Y así ahí lo tienes. El nodo puerta, toma en rutas de ejecución. Pero si vas o no más allá de esto y haces lo que venga más allá de esta ejecución fuera pin depende de si o no, si la puerta está abierta o cerrada que haremos para ofrecer este chicos. Nos vemos en la siguiente. 82. MultiGate: Bienvenida. Vamos a estar hablando del nodo multi-puerta aquí en este video. Y creo que la mejor manera de demostrar lo que esto hace es simplemente seguir adelante y armar un ejemplo lugar de hablar de ello. Entonces voy a estar armando este ejemplo aquí en mi Plano de Nivel. Si quieres seguir el juego, si olvidaste cómo entrar en tu Plano de Nivel, puedes venir aquí mismo, abrir Plano de Nivel. Y para agregar un nodo multi-grado, simplemente puede hacer clic derecho y buscarlo o mantener presionada la tecla M, botón izquierdo del mouse, eso agregará uno allí también. Ahora bien, este primer ejemplo es de naturaleza un poco académica. Entonces seguí adelante y configuré el guión antes de tiempo para ahorrarnos algo de tiempo, pero voy a explicar lo que está pasando. Por lo que traje 34 claves de entrada para ayudar a facilitar esto. Tengo una pulsación de las tres teclas que fluyen hacia mi nodo multi-grado. En el lado de salida de las cosas, agregué un pin extra. Y cada uno de estos está conectado a un nodo de función de textos impresos correspondiente. Y simplemente va a imprimir 012 respectivamente para corresponder con la salida 012. Ahora, cuando presiono la tecla tres y fluimos hacia este nodo multi-grado, la primera vez que presiono esa tecla tres, va a dar salida a esta salida 0. Se va a sacar el número 0 a la pantalla. Esto está determinado por nuestro índice de inicio. Un índice de inicio por defecto a negativo significa esencialmente comenzar en la parte superior de nuestra lista aquí. Sin embargo, a diferencia de un nodo de secuencia que imprimiría todos estos en rápida sucesión, sólo va a imprimir este número 0. No va a imprimir uno o dos. Ahora bien, si presiono la tecla tres por segunda vez, fluirá hacia el nodo de múltiples puertas y luego imprimirá el número uno. Escogerá este 1 primero. Esto lo hicimos con la primera pulsación de una tecla. La segunda vez que lo presione, fluirá aquí. La tercera vez que lo presione, fluirá aquí, etcétera. La cuarta vez que lo presione, no va a pasar nada hasta que restablezca. Entonces aquí vamos. Eso es un desglose rápido de cómo funciona este nodo. Voy a hacer clic en Reproducir aquí arriba, voy a configurar mi objeto de depuración para que sea nuestros mapas de prueba de nivel. Así se puede ver todo esto fluyendo en la gráfica también. Entonces aquí vamos. Voy a presionar la tecla tres. Vemos el número 0 simplemente fluye ahí. Voy a presionar la tecla tres por segunda vez. Vemos el número uno. Voy a presionarlo por tercera vez. Vemos el número dos. Ahora bien, si lo presiono por cuarta vez, estamos fluyendo hacia esto. Sin embargo, no estamos fluyendo y no vamos a fluir hasta que restablecemos. Entonces, esencialmente, cuando fluyes hacia el nodo multi-grado, se asegurará de que todas estas salidas se ejecuten. Una vez que todos ellos hayan sido ejecutados, entonces debes Reiniciarlo para que esto vuelva a funcionar. Entonces, si presiono la tecla F4, que voy a hacer ahora mismo, solo restablecerla. Ahora puedo presionar la tecla tres, 0. Vuelva a presionar la tecla tres. Uno, presione tres teclas nuevamente para. Y si intento volver a presionar la tecla tres, estoy fluyendo hacia ella, pero no puedo salir de ella hasta que la restablezca. Y qué puntos puedo volver a hacerlo, 012. Ahora, intentemos eso de nuevo solo esta vez. Vamos a revisar. Esta es una casilla de verificación aleatoria. Antes esto no se comprobaba con un índice de inicio de uno negativo. Íbamos a disparar fuera de nuestro top. Voy a poner pin, luego nuestro segundo, luego nuestro tercero en orden secuencial, garantizado con es seleccionado al azar. No obstante, vamos a disparar a través los tres antes de que tengamos que reiniciar. No obstante, va a escoger un índice aleatorio con el que disparar desde la primera vez, la segunda vez, que la tercera vez. Aquí vamos. Por lo que al presionar la tecla tres decidió ir con ese 1 primero, ese 1 segundo, ese 1 tercio. Si lo presiono por cuarta vez, nada. Tengo que presionar la tecla F4 para restablecerla. Y luego ahí empezamos aquí abajo primero, ese 1 segundo, ese 1 tercio. Entonces eso es lo que hace la casilla de verificación es aleatoria booleana. Ahora bien, si se comprueba loop y juego, y voy a presionar la tecla tres aquí una, dos veces, una tercera vez , luego una cuarta vez, cinco veces, seis veces. Esencialmente cuando tienes un loop check aquí, puedes seguir presionando, en nuestro caso, las tres teclas una y otra y otra vez. No hay necesidad de reiniciar. Por último, solo para presumir a nuestro índice de inicio por defecto que está configurado en negativo. Sólo voy a desmarcar cada uno de estos. Vamos a establecer eso para decir dos, no negativo 22, y hago clic en Reproducir. Ahora cuando presiono la tecla tres, disparamos primero de los dos pines, luego 0, luego uno, o presionamos de nuevo la tecla tres, nada. No obstante, si reinicio, entonces presiono la tecla tres, se va a disparar de 2 primero que 0, de uno. Entonces una vez más, es cierto, un ejemplo bastante académico. Entonces probemos algo un poco más fiel a un juego. Y voy a demostrar esto aquí en el Plano de Nivel también. Vayamos a la derecha aquí, o cualquier espacio abierto aquí en tu gráfica. Una vez más, he montado algunas cosas antes de tiempo. Tengo un nodo de varios días. Mantenga pulsado y haga clic con el botón izquierdo, puede traer uno de esos. Y de cada uno de mis tres pines de salida, sí agregué uno aquí. Trají actor de desove de nodos de clase, y simplemente ranuré en tres clases diferentes mi efecto de plano, explosión, fuego y humo. Y ahora necesito algo para disparar este multi-día. Déjame volver a mi nivel aquí y voy a sumar aquí básico. Hagamos una caja Trigger. Levanta esto un poco, establece nuestras cajas de extensión para que sean algo así como doscientos doscientos doscientos doscientos grosor de línea de diez. Realmente debería dejar un cuadro de Trigger aquí para todos los diferentes ejemplos como este y presumir bajo la categoría de renderizado, desmarcar a ese actor escondido en el juego, bien, con su eventos seleccionados. Aquí en nuestro Nivel, Planos. Plano de nivel, mantenga pulsado o más bien un clic derecho, no mantenga presionado, haga clic con el botón derecho en Agregar colisión de eventos para cuando comencemos a superponerse eso, podemos verificar para ver que nuestro otro actor, nosotros puede decir iguales. Esta es otra forma de mostrar para ver si lo que estamos esperando superponer, esto es algo que estamos esperando va a decir, es que igual a r obtiene personaje jugador. No estamos buscando extraer ninguna variable que esté llamando a funciones dentro de nuestro terceraPersonCharacter. Entonces esto va a ser lo suficientemente bueno. Mantenga pulsada la tecla Alt y haga clic izquierdo. Diremos que si eso es cierto, fluirá hacia el nodo de rama, un nodo de control de flujo. Y si esto es cierto, fluiremos hacia el nodo de puertas multibit. Y si eso es cierto, vamos a generar una de estas compilaciones. Oh sí, necesitamos especificar una transformación de spawn. Bueno, ya tenemos nuestra caja Trigger seleccionada aquí en nuestro nivel. Así que vamos a engendrar. Está en algún lugar de esa caja de gatillo, ¿verdad? mantener presionada la tecla Alt, haga clic con el botón izquierdo para traer un cuadro de activación de almacenamiento de referencia arrastrado fuera de aquí, se transforma. Podemos enchufar estos en 123, así que estamos recogiendo uno de estos engendros al azar, compilar una vez más. Sigamos adelante y jugemos. Voy a meter esto aquí abajo. Tenemos nuestros mapas de prueba seleccionados, escritos allí como nuestro objeto de depuración. Y aquí vamos. La primera vez que nos superpusimos estaba recogiendo una de estas explosiones aleatorias la segunda vez fuego, y la tercera vez, también tenemos algo de humo ahí dentro. Ahora tenga en cuenta, si vuelvo a superponer esto, nos detuvimos aquí mismo en la puerta. No hemos restablecido esto en absoluto. Entonces eso sería algo que tal vez quieras hacer para permitir algún desove. Una vez más. Ahora una configuración como esta se puede usar como una gota de botín. A lo mejor matas a un enemigo y quieres premiar algo al azar, ese sería un buen ejemplo. Uso del multijuego. Quizás uses un multi-grado para generar oleadas de enemigos. Entonces podrías elegir una ola de enemigo entre nuestros ceros, fuera uno o dos. O tal vez podrías usar un nodo multi-grado cuando hables con un NPC. Una vez más, muchos juegos lo tienen para que puedas hablar con un MPC, y en tu MPC, lobos alimentan tres líneas de diálogo únicas diferentes. Puedes hacerlo de manera que usando un nodo multi-grado cuando superpongas ese volumen de disparo relacionado con ese NPC, puedas disparar la línea de disparo de diálogo 12 o tres respectivamente. Chicos, eso lo va a hacer todo para el nodo multiset. Te veremos en la siguiente. 83. Para bucles: Bienvenida. En este video, nuestro objetivo es adquirir conocimiento y demostrar el uso de los nodos for-loop. No confundir con los nodos para cada bucle, que estaremos hablando en el siguiente video. Ahora estos nodos repetirán una y otra vez una sección de script. Y aunque se pueden usar dentro de la hierba de eventos, realmente brillan al escribir contenido procesal usando el script de construcción. Ahora para empezar, ¿qué es un for-loop? Bueno, un for-loop es un nodo que cuando se llama, lo que significa que tiene un cable de ejecución enchufado en el lado izquierdo aquí. Se dispara un pulso fuera del bucle, cuerpo X número de veces, siendo determinado el número de veces por el primer y último índice. Entonces, por ejemplo, si tuviéramos algún evento enchufado a nuestro nodo for loop aquí, y nuestro primer índice era 0. En nuestro último índice era nueve, fluiríamos fuera de nuestro cuerpo bucle aquí diez veces, comenzando de 0 a nueve. Ahora cada vez que salíamos de nuestro cuerpo de bucle, estaríamos escupiendo en qué índice entre 09 estamos. De nuevo, de 0 a nueve, irías 0123456789. Entonces, cuando estábamos en la quinta iteración a través, estaríamos escupiendo índice para, nuevo, a partir del número 0. Ahora una vez que haya pasado por los diez, este cable de salida de ejecución terminada se dispararía. Ahora la única diferencia entre nuestro nodo for loop aquí en nuestro bucle for con nodo pan es simplemente esta pluma de ejecución de entrada break. Tienes la capacidad con este nodo de romper el flujo de ejecución antes de llegar a tus últimos índices. Si, por ejemplo, tu primer índice es 0 y tu último índice es 99, es decir, 100 bucles por aquí. Podrías por cualquier razón, romperlo temprano para que en realidad no lo completes. Y mostraremos una demostración de eso más adelante en este video. Bien, ahora, como mencioné al inicio de este video, puedes usar estos nodos aquí en un gráfico de eventos, pero realmente muestran su poder dentro de un Script de Construcción, construyendo contenido procesal. Y de hecho, al principio de este curso, cuando estaba hablando del script de construcción, hice uso de un nodo for-loop. Así que déjame traer eso de nuevo, volviendo a mi mapa de prueba aquí, realidad tengo En ejemplo Plano de Script de Construcción. Este es el plano que construí mucho antes en el curso al hablar del guión de construcción. Tengo uno de estos en mi nivel, pero si no lo haces, lo puedes encontrar en tu carpeta de scripting Blueprints. Ahí está tu ejemplo BP Construction Script. También. Puedes navegar hasta él aquí en tu Outliner seleccionándolo y tu mundo y haciendo clic aquí mismo. Ahora, no tengo nada aquí en este plano en mi Gráfico de Eventos, mi ventana gráfica muestra lo que ha construido el Script de Construcción. Así que aquí está mi pestaña de Script de Construcción. Si no tienes esto abierto, puedes hacer doble clic sobre este abajo en el panel Mi Blueprint para abrirlo. Y aquí es donde estamos haciendo uso de un nodo for loop. Ahora todo este script de aquí mismo ha sido construido para generar contenido procesal. Expongo estos números de la variable entera de sección al editor. Y así ajustando el número de secciones, podemos recorrer este nodo for-loop X número de veces pasando de 0 a r número de secciones menos uno. Y esto es solo hacer algunas matemáticas para determinar dónde colocar la malla estática de instancia de esta pieza de pared aquí mismo. Ahora tengo un poco de scripts adicionales pasando aquí para establecer el material para esta instancia, malla estática, pero eso es lo que está haciendo todo este script de construcción. Entonces el poder de esto, nuevamente con el for-loop, es que puedes especificar cuántas veces vas a recorrer el resto de este código aquí mismo. Y en este caso, vamos de un índice de 0 a cualquier número de secciones que especifique. Aquí en mi nivel, expongo esta variable para que sea instancia editable, esa casilla de verificación ahí mismo. Y al hacerlo, esa variable se vuelve disponible dentro del panel Detalles cuando tengo seleccionado este blueprint. Para que puedan ver si ajusto los números de secciones aquí, puedo ampliar este muro. Lo que está haciendo esto. Una vez más, está dando vueltas por aquí. ¿ Cuántas veces? Bueno, actualmente tengo este set para ser veintiuno. Veintiuno. Veintiuno menos uno es 20. Entonces del 0 al 20, eso es recorrer por aquí todos esos tiempos para sumar estas secciones de muros. Entonces ese es el cuerpo del bucle que está haciendo, haciendo repitiendo esta sección de script, sin embargo muchas veces pasando del primer índice al último índice. Ahora bien, vale la pena señalar aquí que las iteraciones de bucle se llevarán a cabo entre fotogramas, por lo que los bucles grandes pueden incurrir en un golpe de rendimiento. Entonces, si tuviéramos que establecer aquí nuestro último índice para que fuera bastante alto, veremos un poco de retraso. Entonces voy a tratar de establecer esto en un número alto aquí. En mi nivel. Actualmente lo tengo establecido en 21, lo cual no es tan malo. Si trato de establecer esto 500 mil y presiono Enter, mira lo que pasa. Y en efecto, eso sí llevó bastante tiempo. Ahora, corté el video ahí mismo para que pareciera que me tomó mucho menos tiempo, pero eso probablemente le tomó a mi computadora alrededor de un minuto mostrar realmente todas esas secciones de paredes. Así que solo debes saber que probablemente no quieras tener demasiados bucles a través de tu nodo for-loop. Bien, vamos a mostrar un práctico caso de uso para el bucle for. Nota aquí en nuestro nivel, voy a agregar una caja de gatillo y voy a configurar la caja se extiende para que sea algo un poco más grande. Vamos a ir 300 en la x, 300 en la y, y 40 va a estar bien para la Z. sólo voy a recogerlo un poco del suelo, algo así. Déjame establecer el grosor de la línea en diez. Y así como me has visto hacer un montón de veces hasta ahora, voy a desmarcar actor oculto y juegos para que podamos verlo. Entonces voy a duplicar esto, manteniendo pulsada la tecla Alt, click izquierdo y arrastrando. Y voy a bajar la extensión de la caja para esta, haremos 100 por 100 por 100, algo un poco más pequeño así, recogiéndola en el aire, golpeando la tecla End para golpearla hasta el suelo. Entonces, ¿qué estoy tratando de lograr con esta configuración? Bueno, esencialmente lo que voy a hacer que suceda aquí. Nuestro personaje va a engendrar aquí mismo al inicio de nuestro jugador. Vamos a hacer que cuando nuestro personaje se superponga a esta caja Trigger, vamos a generar algunas pociones de manera dentro los límites de este volumen ¿aquí mismo? Sí, puedes usar una caja Trigger que desencadena el volumen para generar cosas dentro. Eso es lo que vamos a usar para eso. Y también vamos a utilizar un nodo for loop para generar tres pociones de Amanda. Entonces, lo primero es lo primero, vamos a seleccionar esta casilla Trigger aquí mismo. Vuelve a tu plano de nivel. Y vamos a hacer clic derecho y algo de espacio vacío. Vamos a agregar un evento para cuando empecemos a superponer eso. Y simplemente vamos a arrastrar fuera de nuestro otro actor aquí, escriba el signo igual. Y este será nuestro método para verificar para ver si es nuestro personaje jugador. Vamos a hacer clic derecho para obtener el personaje del jugador. Nuevamente, hay todo tipo de métodos que podríamos usar para esta sección para verificar si es nuestro terceraPersonCharacter. Esto va a funcionar bien. Mantener pulsada la tecla haciendo clic izquierdo para traer una sucursal. Así. Siguiente Voy a mantener pulsada la tecla O y clic con el botón izquierdo porque queremos hacer algo una vez. ¿ Qué queremos que suceda? Bueno, queremos arrastrar fuera de aquí y traer un bucle for, no un para cada bucle, un for-loop. Estableceremos nuestro primer índice en 0, nuestro último índice en dos. Entonces el 012 serán nuestros tres índices. Y vamos a arrastrar fuera de nuestro cuerpo bucle y vamos a engendrar actor de clase. Y aquí es donde voy a meter en nuestro hombre una poción. De nuevo, puedes meter cualquier cosa aquí que sea algún tipo de objeto blueprint, yo recomendaría. Ahora bien, ¿dónde voy a engendrar esta cosa? Necesito acelerar esto una transformación de engendro. Entonces volvamos a nuestro nivel. Vamos a seleccionar este volumen de activación aquí. Entonces vamos a saltar de nuevo a nuestro Plano de Nivel, mantener pulsados los arcos son como en referencia y hacer clic izquierdo para traer una referencia a ese cuadro de gatillo. Vamos a arrastrar fuera de aquí. Obtener límites de actor es el nodo que estamos buscando. Entonces vamos a arrastrar fuera del origen aquí y escribir al azar un punto en un cuadro delimitador. Esa es la extensión de la caja. Podemos enchufar eso en el tamaño medio. Y por último pero no menos importante, vamos a arrastrar hacia atrás fuera de la transformación de spawn, donde vamos a escribir make transform. El único aspecto de la transformación que nos va a preocupar para esto es la ubicación. Así que toma la ubicación de nuestro cuadro delimitador aquí mismo y conéctalo a la ubicación del make transform. Así que recapitulemos muy rápidamente aquí lo que tenemos que hacer. Vamos a superponer este volumen disparador. Vamos a comprobar si fue el personaje jugador el que hizo la superposición si lo fue, y eso es cierto. Una vez, vamos a recorrer esto tres veces, a partir de las 0012. Entonces bam, bam, bam, desove tres pociones de maná dentro de los límites de este volumen disparador. Vamos a compilar. Eso va a comprobar para ver si nuestro guión es bueno. Guardar. Vamos a meter este guión justo aquí arriba y sigamos a jugar. Y ve ahí mis dos volúmenes. Vamos a superponer este primero de aquí. 123. Ahí vamos. Ahora bien, si intento superponerme y otra vez , no hay dados, hay dados, se puede ver que solo se detiene en el nodo do once. Ahora tal vez te estés preguntando ¿por qué esta emancipación engendró arriba aquí mismo? Bueno, estamos consiguiendo nuestros límites de actor para este cuadro Trigger aquí mismo, pero estamos escogiendo un punto aleatorio dentro del cuadro delimitador especificando un origen, el centro de este. Y el punto aleatorio que realmente estamos eligiendo es la mitad del tamaño de nuestra extensión de caja. Así que realmente puedes ir fuera de los límites de este cuento tan largo, este es solo un ejemplo rápido para mostrar el nodo for loop en el trabajo. Así que déjame salir de aquí. Para terminar, vamos a demostrar el bucle for con nodo pan dentro de nuestro terceraPersonpersonaje. Entonces aquí hay un directorio para encontrar eso. Haga doble clic sobre él para abrirlo. Y vamos a traer en un teclado eventos. Hagamos clic derecho y escribamos algo de espacio vacío en el teclado. Trae cualquier evento de teclado que aún no hayas usado. Yo iré con la llave E, shore y-nada, y él va a hacer. Lo que vamos a hacer es arrastrar fuera de esto y traer un bucle for. Un for-loop con break, no por cada loop que va a venir después. Siguiente video. Y vamos a tener el primer índice solo en 0, el último índice, sin embargo, voy a poner en el número 30. Entonces voy a hacer clic derecho sobre este pin y voy a promover eso a una variable solo para presumir, una vez más como recordatorio, que si lo pones en un número, luego promueve una variable, no solo vas a crear una variable, sino que si compilas, verás que ese número en el que tenías duro establecido ahora está establecido como el valor predeterminado para esa variable promocionada. Bastante práctico. Ahora voy a renombrar esta variable. Voy a golpear F2 en esto y voy a llamar a este inventario artículos max. Entonces, ¿qué estamos haciendo aquí? Vamos a pasar por un escenario hipotético en el que tu personaje de tercera persona puede contener 30 artículos de inventario. Pero digamos que en la interfaz de usuario de los personajes, solo pueden mostrar 15 elementos en una sola página. Entonces en este caso, vamos a detener nuestro for-loop con break cuando encontremos que hemos ido, hemos pasado por esto 15 veces. Entonces esencialmente vamos a ir de 01234567891011121314. Eso sería 15 veces en total. Y vamos a romper nuestro For Loop. Entonces, ¿qué tenemos que hacer a continuación? Tenemos que arrastrarnos de nuestro índice aquí. Y vamos a traer un símbolo igual. Y vamos a ver si nuestro índice es igual a 14. ¿ Por qué 14? Si queremos realmente romperlo después de haber llegado a 15 ítems porque recuerda que nuestro primer índice es contar 0. Entonces con ese conjunto ahí, voy a promover esto a una variable. Haga clic derecho promueve la variable. Podemos compilar eso. Ahora ese es nuestro nuevo valor ahí dentro. No obstante, pongamos a esto algo mejor que eso. Así que voy a renombrarlo por aquí. Llamemos a esa página uno artículos max. Y lo que vamos a hacer a continuación es arrastrarnos fuera de aquí y traer un nodo de sucursal. Entre esto, voy a colarme en unos nodos Print String. Así que cada vez que estamos recorriendo, vamos a imprimir. Así que imprime cadena, en qué índice estamos. Así que arrastra y suelta eso ahí. Traerá cualquier entero de conversión a cadena. Enchufa esto a nuestra sucursal. Y lo que queremos hacer aquí es si esto es cierto, nuestros ítems de la página uno son iguales a nuestros índices de 14. Vamos a compilar eso otra vez, 14. Si esto es cierto, vamos a volver a azotar por aquí y vamos a romper. Haga doble clic en esto para agregar un poco de reencaminamiento de la nariz para que se vea un poco más agradable. Una vez que nos hayamos roto, ya terminamos. Voy a arrastrar fuera de aquí, trayendo en otro nodo de cadena de impresión. Y simplemente vamos a imprimir en la pantalla. Cada uno de tu inventario está lleno o algo así. Y vamos a imprimir esto en la pantalla un poco más. Entonces hago clic en esa flecha hacia abajo ahí para exponer algunos parámetros más aquí vamos a establecer eso a una duración de diez. Entonces eso es lo que estamos pasando aquí. Nuevamente, en realidad no estamos imprimiendo nada en la pantalla. No estamos imprimiendo ningún artículo de inventario, no es solo todo hipotético. Compilar esto. Guardar. Y vamos a seguir adelante y colocar que son opción de depuración para ser nuestro terceraPersonpersonaje. Para que veas que se desencadena este guión. Y todo esto va a pasar muy, muy rápido. Así que busca aquí en la parte superior izquierda mientras toco la tecla E, página, uno de tu inventario es falso. Entonces viste todos esos índices, 012345678910 al 14 hasta que dice que la página uno de tu inventario está llena. Se puede ver de este ejemplo aquí es que nunca llegamos a nuestro último índice. Se suponía que íbamos a llegar hasta 30 artículos de inventario. Bueno, verdaderamente 31 si estás contando ese 0. Pero aquí rompimos nuestro bucle. No logramos atravesar el bucle que muchas veces rompimos cuando pegamos 14. Entonces ese es un ejemplo de un for-loop con nodo break. Una vez más, estos nodos son geniales al usarlos con script de construcción interno para crear algo así como muros procedimentales como este, pero también se pueden usar en gráficos de eventos. Ahora, una última cosa a tener en cuenta aquí en nuestro script de construcción que creé mucho antes en el curso cuando creé este script usando un nodo for-loop, menudo cuando se usa for-loop conoce el se utiliza en algún tipo de cálculo matemático. Entonces eso es algo a tener en cuenta también. Entonces, por cada vez que estamos recorriendo esto, estaba usando ese número de índice, multiplicándolo por otro número para averiguar dónde colocar exactamente esta instancia, Malla Estática, esta pieza de pared. Bien chicos, eso va a hacer para ofrecer este, veremos a todos en el siguiente video. 84. Para cada bucle: Bienvenida. En este video, nuestro objetivo es adquirir conocimiento y demostrar el uso de los nodos para cada bucle, el primo cercano de los nodos for-loop que cubrimos en el último video. Entonces, ¿qué hace que un nodo para cada bucle sea diferente de los nodos de bucle for? Bueno, son nodos de control de flujo que toman una matriz en lugar de cualquier número de índices. Por lo tanto, al tomar en una matriz, le permiten hacer algo a cada elemento de la matriz que es el contenido de la matriz. Ahora, si vuelves a nuestro video de matriz desde antes en el curso, recordarás que una matriz es esencialmente una lista. Es un contenedor que consta de múltiples elementos que tiene entradas del mismo tipo de variable. Bien, para presumir en el ejemplo aquí vamos a estar haciendo algún trabajo dentro de nuestro plano de nivel. Pero primero, vamos a estar haciendo algún trabajo de lado de nuestro nivel. Ahora, voy a usar esta lámpara SM de pared dentro de mi carpeta de contenido estrella Props. Aunque realmente puedes usar cualquier tipo de malla estática para crear lo que estamos a punto de crear. Aquí tengo un muro sencillo. Entonces, si quieres colocar una especie de pared en tu nivel para seguir el juego, eso también podría ser bueno hacerlo. Porque lo que voy a hacer es colocar esta pared de Scott a lo largo de esta pared que tengo aquí. Y voy a presumir algo más que puedes hacer aquí en Unreal, justo aquí arriba dentro de tu ventana gráfica, este icono de tres flechas, puedes activar el chasquido de superficie. Actualmentelo tengo puesto. Eso es lo que significa esa marca de verificación. Pero si no sabes si lo tienes encendido o apagado, puedes hacer clic aquí mismo. Sí lo tengo puesto. La razón por la que tengo eso encendido es para demostrar que si arrastro y suelto esto en mi nivel, lo romperá a cualquier superficie por la que lo esté arrastrando. Se puede ver que se desliza por el piso además de colocarse a lo largo de la pared así. Ahora bien, si tuviera que soltarlo y hacer click izquierdo y arrastrar, No va a deslizarlo por el piso así. No obstante, si lo agarro por el punto de tres arrinconados ahí, el widget de traducción esa bola ahí mismo. Si hago clic con el botón izquierdo y lo agarro desde ahí, entonces lo romperá a la superficie. Ahora, voy a arrastrarlo por mi pared aquí. Por supuesto que no está exactamente posicionado como yo quiero. Voy a tener que rotar esta en particular. Entonces golpeando la barra espaciadora, voy a girarla así. Rotarlo así, y girarlo así para llevarlo a lo largo de la pared. Va a aumentarlo de tamaño aquí un poco también. Y voy a sacar un par de duplicados. Entonces, manteniendo presionada la tecla Alt, voy a hacer clic izquierdo y arrastrar, manteniendo presionada la tecla Alt nuevamente, clic izquierdo y arrastre. Muy bien, tengo tres de esos en mi nivel. Genial. Voy a seleccionar a los tres aquí en mi outliner. Voy a seleccionar el primero, mantener pulsado Control, seleccionar los otros dos también. Así que tengo los tres seleccionados. Y luego de vuelta en mi Blueprint de Nivel viniendo justo aquí, abre el Blueprint de Nivel. Voy a bajar por aquí abajo y voy a hacer clic derecho. No, no voy a hacer clic derecho. Podría hacer clic derecho y crear una referencia a cada uno de ellos individualmente. Sin embargo, si los tuviera seleccionados individualmente, voy a mantener presionada la tecla R y hacer clic con el botón izquierdo traer una referencia a los tres de inmediato. Están apilados uno encima del otro. Desgraciadamente. Entonces lo que voy a hacer es que voy a arrastrar fuera de uno de ellos y escribir make array. Así que vamos a agregar pines a nuestra matriz aquí. Y vamos a conectar cada uno de estos tres en nuestra nota make array aquí. Ahora bien, esto puede generar una matriz. Lo que voy a hacer es simplemente hacer clic derecho sobre esto y promover esto a una variable. Aunque tenga en cuenta, sin embargo, no tengo que hacer esto. Voy a estar usando esta matriz de lámparas aquí, 123 para enchufar esto en un para cada nuevo, para cada nodo de bucle, esto funcionaría bien para los propósitos de eso. No obstante, sólo para presumir de que puedo promover esto a una variable, lo haré. Entonces voy a hacer clic derecho promover dos variables, y voy a llamar a esto mi matriz de lámparas. Ahora bien, esto inmediatamente lo establece en el tipo de variable adecuado. Terminó de inmediato. Lo convierte en una goma de borrar. Eso es un poco práctico. Y lo que voy a hacer aquí es después de configurarlos en una matriz, voy a enchufar esto en un pin de ejecución de mi para cada nodo de bucle, puedes usar la tecla de acceso rápido de mantener presionada la F y botón izquierdo del ratón para traer en un nodo para cada bucle. Vamos a enchufar esto a nuestra matriz. Ahora necesitamos un evento para despedir todo esto. Tengo en mi nivel un volumen disparador ya colocado abajo. Si no tienes uno de estos, puedes venir justo debajo de aquí. Entra bajo la caja básica de Trigger, coloca uno de esos en tu nivel. Tengo las extensiones de mi caja fijadas a cien, cien, cien por grosor de línea establecido para tender a que sea fácil de ver. Y tengo al actor escondido en el juego sin marcar. Ahora con eso seleccionado en tu nivel, vuelta en tu plano de nivel, haz clic derecho. Vamos a agregar un evento para cuando empecemos a superponer esto. Y sí queremos asegurarnos de que comprobamos si es nuestro personaje de tercera persona. Así que vamos a arrastrar fuera de aquí Cast to ThirdPersonCharacter. Y si lo es, y hemos vuelto a establecer nuestra variable de matriz, esta porción de aquí no es súper necesaria. Vamos a hacer algo por cada elemento de esta matriz. Ahora, ¿qué quiero hacer con cada elemento de nuestra matriz? Los tres de estos, bueno, lo que quiero hacer es arrastrar fuera de nuestro elemento de matriz y voy a escribir todavía la ubicación del actor. Vamos a usar la ubicación de cada una de estas paredes para generar un emisor. Así que voy a hacer clic derecho en algún espacio vacío y voy a hacer engendrar emisor en la ubicación. Conectaré ubicación precisa a la entrada de ubicación de nuestro engendro, una ubicación de minarete, nuestro cuerpo de bucle, conectaremos a este nodo de función. El emisor aquí que voy a usar es simplemente disparar mi fuego P. Este es un sistema de partículas más antiguo. Nuevamente, puedes poner en un sistema de partículas más antiguo o podrías hacer sistema de desove en la ubicación que está usando efectos de brillo del Niágara, desove el sistema en la ubicación es el equivalente allí. Esto funcionará como está sin embargo, solo por el bien de la integridad. Fuera de este pin de salida terminado, voy a imprimir cadena. Y simplemente voy a poner en la cuerda. Hecho. Así que lo imprimiremos en la pantalla. Y lo que creo que también voy a hacer es colarnos otra cadena de impresión aquí arriba, control C, control V. Vamos a escabullirse este final antes de nuestro cuerpo bucle. Podríamos ponerlo después de nuestro emisor si quisiéramos. Entonces vamos a ir así. Y para cada elemento de nuestra matriz aquí, vamos a imprimir el índice de matriz solo para que pueda ver ese número que se imprime en la pantalla también. Así que vamos a recapitular lo que tenemos. Una vez que nuestro personaje se superponga a ese volumen disparador, vamos a ver si de hecho fue nuestro personaje de tercera persona. Lo que vamos a hacer entonces es usar estas tres lámparas y hacer una matriz. Así que vamos a tener una matriz, una lista de actores de malla estática aquí que van a poblar esa variable. Entonces vamos a, para cada bucle en nuestra matriz, para cada elemento de nuestra matriz, vamos a obtener la ubicación de los actores y generar algo de fuego. Vamos a compilar esto hace que tu script R se vea bien para ir. Vamos a saltar y jugar. Estableciendo nuestro objeto de depuración en nuestro mapa de prueba aquí. Muy bien, así que aquí vamos. Una vez que superpusimos esto, deberíamos ver el fuego apareciendo aquí, aquí y aquí. Es como si encendiéramos tres antorchas. Ahora bien, esto es desovar en la ubicación de nuestro laboratorio. No es bajo. Si miramos nuestra lámpara, el widget de traducción está en la base de la misma. Entonces por eso esta llama se está mostrando un poco aquí abajo. No obstante, podríamos compensar esto un poco y hacer que aparezca arriba, pero obtienes los puntos. Ya ves, no voy a hacer esto una vez. Entonces, si sigo superponiendo esto, van a ver que este texto se imprime en la pantalla. Y estoy guardando un desove más efectos de partículas aquí también. Pero puedes imaginar una configuración como esta utilizada para encender la lámpara. Un ejemplo más para presumir aquí en nuestro Blueprint de Nivel. Esta vez vamos a estar usando el para cada bucle con nodo break. He seguido adelante y he creado una serie de textos. Entonces, si quieres seguir el juego, haz clic en ese botón más. Convertimos esto en el tipo variable de textos, y cambiamos el tipo de contenedor para que sea una matriz. Y luego hice clic aquí tres veces dos, se agregan tres elementos de matriz hechos guerrero y ladrón. Ahora algo a tener en cuenta con cada uno de nuestros cuatro, cada nodo de bucle es que tienes algunos pines grises aquí. Ahora bien, estos indican comodines, lo que significa que podemos conectarle una variedad de tipos de variables. Y reconocerá qué tipo le conectamos y cambiará el tipo correspondiente para que sea el mismo. Déjame mostrarte a lo que me refiero. Tengo una serie de textos aquí mismo. Si enchufo esto a nuestra entrada de matriz gris aquí mismo, va a reconocer que Hey, estás enchufando una matriz de variables de texto. Eso significa que vamos a estar emitiendo textos porque tu array consta de tres textos hechos. Guerrero y ladrón, tres elementos de matriz. Bien, ¿qué vamos a hacer con esta configuración aquí? Bueno, vamos a ver si nuestro elemento array es igual a algunos textos literales. Hagamos clic con el botón derecho en algún espacio vacío. Traer un operador de nodo igual, igual. Va a enchufar nuestros elementos de matriz en esto. En realidad esa es la equivocada. Mi mal. Vamos a traer en primer lugar el nodo make literal text, make literal text node. Ese es el que estoy buscando ahí abajo. Fuera de esto, voy a arrastrar y traer el signo de iguales. Buscamos texto igual exactamente a textos. Ese es el que estamos buscando, NO operadores iguales. Ahí vamos. Voy a mantener pulsada la tecla Control, hacer clic izquierdo y simplemente poner esto en la parte inferior. En nuestro elemento array se va a conectar al superior. Nuestra textura literal que vamos a estar buscando es guerrera. Nota. Tenemos Warrior enumerado aquí así como en nuestra matriz de textos. Entonces cuando eso es igual, vamos a arrastrar fuera de aquí y traer el nodo rama. Y vamos a arrastrar fuera de nuestra verdad. Me di cuenta de que aquí mismo falta un enlace. Voy a volver a eso en un poquito. Arrastrado fuera de aquí para escribir texto impreso. Y sólo vamos a imprimir guerrero encontrado. Y lo que vamos a hacer con esto es arrastrar y soltar esto todo el camino alrededor de nuestra entrada de descanso, vamos a hacer doble clic en el cable un par de veces aquí. Ahora bien, la razón por la que dejé un pequeño hueco aquí es porque también quiero introducir un nodo de texto príncipe aquí mismo. Así que voy a fluir así fuera de nuestro cuerpo de bucle en su, en su, en nuestros elementos de matriz. Vamos a desembocar ahí. Entonces entiende lo que tenemos pasando con esta configuración. Vamos a presionar la tecla B. Entonces vamos a recorrer nuestra matriz. Tenemos tres elementos en nuestra matriz. Cada uno de estos elementos del array vamos a imprimir en la pantalla, comenzando por mayor, luego yendo a guerrero. No obstante, vamos a señalar que aquí mismo vamos a detectar si estos son iguales. Si son iguales y eso equivale a verdad. Vamos a imprimir, oye, hemos encontrado al guerrero y luego vamos a romper nuestra ejecución aquí, es decir, porque guerrero es nuestro índice medio aquí mismo, nunca deberíamos llegar demasiado profundo porque esa es nuestra última entrada de matriz. Lo estamos rompiendo en cuanto encontremos guerrero. Sigamos adelante y probemos eso aquí afuera. Compile, guarde y juegue rápidamente. Presionando la tecla B. Ahí vamos. Dice guerrero mayor, guerrero encontrado, nunca llegamos ni a ladrón. Ahora algunos usos posibles para cada nodo de bucle para que los consideres, tal vez puedas usar uno de estos nodos para destruir una matriz de enemigos, o tal vez generar en una matriz de elementos, como botín soltar objetos al destruir a esos enemigos. Tal vez use a para cada nodo de bucle para verificar el parámetro de todos los objetos en una matriz y luego hacer algo a aquellos con un parámetro dado. A modo de ejemplo, para que cualquier enemigo con menos del 50% de salud Yulen caiga. Solo algunos ejemplos para hacerte pensar, bien chicos, eso va a hacer para ofrecer este. Nos vemos en la siguiente. 85. Bucle while: Bienvenida. El nodo while loop es el foco de este video y estaremos demostrando un caso de uso aquí momentáneamente. Primero, ¿cómo funciona? Bueno, conectarás un cable de ejecución en el lado de entrada del nodo. Y se ejecutará repetidamente fuera del cuerpo del bucle en el lado de salida. Siempre y cuando la condición booleana aquí sea cierta. Ahora tenga en cuenta que hay que tener cuidado con este nodo, ya que es muy fácil quedarse atascado en un bucle infinito si no tienes cuidado. Como una buena regla general, no ingrese un nodo de bucle while a menos que la condición pueda cambiar inmediatamente a false. Por ejemplo, si estás esperando tener tu personaje y superponer un volumen de disparo para cambiar una condición a false, tienes la garantía de estar atrapado en un bucle infinito. Tienes que tener de inmediato un medio para establecer tu condición en falso. Bien, ahora, en un caso de uso de ejemplo del nodo while loop. Ahora solo voy a hacer un poco de pre-configuración aquí antes de llegar a algunas secuencias de comandos, lo que he hecho es cualquier personaje de contenido, mallas, carpeta. Simplemente arrastré y solté la Malla Esquelética Imani en mi nivel. Realmente cualquier tipo de malla esquelética con alguna colisión, malla estática, haremos una forma básica siempre y cuando tenga colisión servirá. Vamos a hacer algo fuera de los eventos de éxito. Lo que esencialmente estamos tratando de configurar aquí es un escenario en el que Manny va a ser un ladrón y va a robar algunos artículos excesivos de inventario de nuestro personaje de tercera persona. Qué artero de hecho. Ahora a continuación, necesitas tener tu Blueprint de personaje de tercera persona abierto porque dentro de aquí, haz doble clic en eso. Vamos a agregar un par de variables. Entonces, debajo del panel Mi Blueprint vamos a hacer clic en Agregar variable. Este primero se va a llamar artículos de inventario máximo. Y entonces puedo hacer clic derecho sobre eso, duplicarlo. Control D es como puedes duplicarlo también. A éste se le va a llamar inventario. Elementos actuales que necesito compilar para agregar algunos valores predeterminados. Entonces voy a decir actualmente nuestro personaje tiene 75 artículos de inventario, armas, escudos, pociones de salud, todo ese tipo de cosas. Y en realidad solo se les permite depositar 50, ese es el máximo que se supone que deben tener. Entonces, debajo de este hipotético escenario, estoy diciendo que nuestro personaje lleva más artículos de los que se les permite tener. Pero les estamos permitiendo que realmente lleven estos artículos sobrantes hasta que realmente los depositen si los atrapan, sin embargo, vagando por el mundo abierto y llega un ladrón, pueden robar cualquier exceso de artículos que son carácter puede tener. Nuevamente, estamos viendo que el máximo permitido para cotizar banco sin cotización es de 50. Actualmente son codiciosos y llevan 75. Entonces a espesa el acero hasta 25 de esos. Bien, con eso, voy a compilar esto. Vamos a saltar de nuevo a nuestro nivel. asegura de que hayas seleccionado a tu actor de Manny Skeletal Mesh. Y con ese seleccionado dirígete a tu Plano de Nivel, abre Plano de Nivel. He hecho un poco de pre-configuración aquí antes de tiempo. Pero así es como puedes seguir el juego. En primer lugar, estoy haciendo un actor éxitos cuatro son muchos. Esqueleto ahí, Malla Esquelética. Si haces clic derecho en eventos, colisión, agrega en actor hip, así es como puedes agregar ese nodo. Entonces fuera de aquí puedes arrastrar y hacer un Cast to ThirdPersonCharacter para encontrar ese nodo. Ahora bien, si es nuestro personaje de tercera persona el que golpea a nuestro ladrón, a su Manny, al ladrón. Vamos a fluir hacia esto y hacerlo una vez. Lo que vamos a hacer una vez es iterar a través de este bucle while. Entonces a pesar de que esto dice hacer una vez, vamos a permanecer en este bucle while hasta que la condición aquí se vuelva falsa. Ahora tenemos que enchufar en una condición. Bueno, nuestra condición va a evaluar nuestros artículos de inventario. Así que arrastra tu personaje en tercera persona, escribe inventario, vamos a obtener nuestros artículos de inventario actuales. Y recuerda, tenemos 75 es nuestro inventario actual. Entonces voy a hacer click en estos tres puntos aquí mismo y ponerlos en 75 solo como un recordatorio para nosotros mismos. Entonces voy a alargar, si vuelves a escribir inventario, vamos a conseguir nuestros artículos máximos que se les permitió tener. Y voy a hacer click en estos tres puntos y ponerlo en 50. Y vamos a comparar estos dos. Así que arrastrando fuera de mis ítems actuales, voy a traer en un nodo mayor que. Entonces si nuestros ítems actuales son mayores que r max items es largo, es esto es cierto, seguiremos fluyendo fuera de nuestro cuerpo loop aquí. Ahora, cada vez que fluimos fuera de nuestro cuerpo de bucle, quiero disminuir la cantidad de artículos en nuestro inventario actual. Entonces voy a arrastrar fuera de aquí y escribir decrementos. Ahora este nodo toma una entrada y se decrementará automáticamente a partir de aquí. Entonces irá 75 decrementado. Esto en realidad lo hará volver a la cantidad actual. Entonces 75 menos 174, automáticamente lo establecerá como un nuevo valor. Entonces volverá a circular, 73, etcétera, etcétera, etcétera, etcétera. Siempre y cuando esto se evalúe como verdadero, tan pronto como éste se evalúe como falso, detendrá ese proceso. Así que voy a enchufar esto nuestra cadena de impresión aquí para que podamos ver estos números impresos en la pantalla así. Y por último, de la pluma de ejecución terminada, voy a traer otra cadena de impresión. Y simplemente voy a imprimir el exceso en vano de artículos tory robados, robados por ese su ladrón. Entonces ese es nuestro guión si quieres seguir el juego en casa. Ahora bien este es un ejemplo de caso de uso del bucle while porque sé, sé que esto va a evaluar a falso. Sé que mis artículos de inventario actuales eventualmente llegarán a estos límites. Entonces vamos a compilar esto. Guardar. Voy a meter esto justo aquí arriba. Al hacer clic en reproducir, configurar mi objeto de depuración mis mapas para que pueda ver cómo se desactiva este script. Aquí. Vamos, ahí está mi ladrón. Tengo mis 75 artículos que estoy rodando dentro de la vigilancia de nivel aquí arriba. inmediato, 7473 ha terminado y dijo que se retiraron los artículos sobrantes de inventario, y solo lo hizo una vez. Puedes ver si vuelvo a intentar esto, se atasca en la nieve no quiero. Entonces ese es un ejemplo. Caso de uso del bucle while. Ahora bien, en cuanto a las diferencias entre el bucle while y los bucles for en general, deberías usar un for-loop cuando sepas cuántas veces debe ejecutarse el loop. Si desea que el bucle se rompa en una condición distinta a la cantidad de veces que debería ejecutarse. Quizás entonces considere usar un bucle while. Bien chicos, eso va a hacer para ofrecer este. Nos vemos en la siguiente. 86. Interruptores: Bienvenida. Vamos a estar cubriendo un switch de nodos en este video. Y justo al salir de las puertas, puede notar que los nodos de conmutación vienen en una variedad de sabores aquí. Y no tienen un banner gris en la parte superior como el resto de nuestros nodos de control de flujo. Estoy considerando estas parte de la categoría de control de flujo porque esencialmente vamos a estar controlando el flujo de nuestro script. ese es de cuál de estos pines de ejecución fluimos, dependiendo de los datos que se ingresen en el nodo de conmutación. Ahora los nodos switch vienen en varias variedades. De hecho, un montón de variedades vamos a estar cubriendo las principales variedades aquí. Eso es un switch on int, switch on string, switch on name. Y también haremos un enumerador de encendido. No ve enumeraciones de encendido aquí porque el nombre de un conmutador en la enumeración variará dependiendo de la enumeración que haya creado. Esto es lo que creé antes en el curso, y esta enumeración consiste en las tres etiquetas, súper bien, y ella mal. Entonces, si tuviera que arrastrar un cable fuera de esto y escribir switch, podría traer un interruptor en ellos que sea específico de esta enumeración. Puedes ver mis salidas, hay súper, bien, y me duele mucho. Ahora bien, si tuvieras que hacer clic derecho en cualquier gráfico de eventos y simplemente escribir el interruptor de palabras. Puede encontrar una gran cantidad de nodos de switch, la mayoría de los cuales nunca usarán. Pero es bueno señalar que sí existen. Una vez más, estaremos cubriendo los sabores principales y éste y algo que notarás su comentario sobre todos estos nodos de switch es que tienen un solo pin de entrada de ejecución, pero sí tienen diferentes entradas de datos a ellos dependiendo del tipo de nodo de conmutación. Además, lo que es común entre ellos es que puedes salir de diferentes salidas dependiendo de los datos que se ingresen. Entonces así es como se ve un switch on int que es la abreviatura de Switch on on int que es la abreviatura de Switch on integer node cuando lo buscas por primera vez y lo agregas a tu gráfica. No obstante, por encima del lado derecho, ve cómo podría verse este nodo si le agrego pines. Entonces, para todos estos, puedes hacer clic en este botón Plus y agregarle más pines. Por defecto, comienzan con un pin de salida predeterminado. De hecho, puedes personalizar esto con cualquiera de estos nodos seleccionados en el panel Detalles, puedes elegir si tiene o no un pin predeterminado. Y también puedes, en el caso de un interruptor encenderlo, nota, si le estás agregando algunos pines, como lo estoy haciendo aquí, puedes elegir tu índice de inicio. Por lo que actualmente dice iniciar en el índice 0. Yo podría decir elegir comenzar en el índice diez, y luego voy a hacer el primer número aquí diez, y luego numerará en consecuencia. Voy a volver a poner eso por defecto. Enciende la cadena. Muy similar. Puedo agregar más pines como este. Y con eso seleccionado sobre en el panel Detalles, puedo elegir si tiene o no un pin predeterminado. Puedo elegir los nombres de los pines, etcétera. Yo puedo elegirlo. Son sensibles a mayúsculas o no. Por lo que hay algunas opciones diferentes dependiendo del tipo de nodo switch. Ahora bien, el pin de salida predeterminado, ¿ cuándo fluyen fuera de esto? Saldrá de esto si los datos que se están ingresando no coinciden con ninguno de sus diferentes pines de salida que desee. Esto se ve fácilmente en el interruptor en el entrenudo. Entonces ahora mismo tengo una selección de ceros. Si tuviera que fluir hacia esto, dispararía fuera del pin de salida 0. Si sin embargo, mi número aquí se guardó 50. Y nosotros íbamos a ejecutar un guión por aquí. No coincide con ninguna de estas salidas, por lo que dispararíamos fuera de la salida predeterminada. Bien, tengo algunos ejemplos que me gustaría mostrar aquí. Entonces voy a estar iniciando en mi tercera persona Carácter Blueprint. Ahora lo que he hecho antes de tiempo aquí, lo hice en un video anterior. Creé una enumeración llamada estado de salud E. Esta enumeración, esta enumeración consta de tres etiquetas, súper bien, y duele mucho. Sólo voy a deslizar esta sección sobre esta parte de la gráfica donde tengo algunos nodos esperándome. Y lo que simplemente voy a hacer es al presionar alguna tecla de entrada, voy a alterar la velocidad máxima de caminata de mis personajes. Ahora, puedes modificar estos parámetros aquí mismo, este parámetro de velocidad máxima de caminata, si seleccionas tu componente de movimiento de personaje, puedes ver en el panel Detalles tienes un parámetro llamado max caminar velocidad que, que controla qué tan rápido se mueve tu personaje. Entonces todo lo que necesitas hacer es arrastrar y soltar. Agregue esto a su gráfica, el arrastre fuera de aquí y escriba la velocidad máxima de caminata establecida, y encontrará ese nodo. Entonces, lo que vamos a estar buscando hacer aquí se basa en el valor de nuestra enumeración aquí, súper, bien, o ella mal, ya ves esas son las tres salidas que corresponden con las tres etiquetas que esta enum consiste en. Si es súper, vamos a aumentar nuestra velocidad máxima de caminata. Si está bien. Vamos a fijarlo para que sea. 500. Si nos duele mucho, vamos a establecer esto en 100. Entonces voy a hacer clic derecho y voy a traer una tecla de entrada. Vamos a probar la clave de las ayudas. No creo que esté usando la llave de ayuda para nada todavía. Entonces ahora mismo nuestro estado de salud es súper. Entonces una vez que presione la tecla a, deberíamos aumentar nuestra velocidad máxima de caminata a 2 mil años. Entonces haciendo clic en reproducir, configurando mi depuración. Objetar a mi terceraPersonaPersonaje. Aquí vamos. Entonces estoy vagando o combate preguntándome por voy a presionar ese dolorido. Y ahora de pronto puedo moverme mucho más rápido. Jactó cambió mi estado de salud aquí para simplemente estar mal herido. Ya lo he cambiado. Entonces una vez que presione la tecla a, vamos a evaluar este valor escuchado Valle. Vamos a salir de aquí y va a cambiar nuestro máximo B2, 100. Haciendo clic en Reproducir. Ahí vamos, presionando las teclas de movimiento ahora mismo, WAS y D. Aquí vamos. Ocho clave. Ahora me duele mucho y soy olímpico de inmediato. Entonces hay un ejemplo de un interruptor encendido enum. Para este siguiente ejemplo, voy a matar a este enemigo. Mira a ese tipo aterrador de ahí afuera simplemente haciendo clic en ellos. Cuando lo haga, voy a usar un nodo switch on inch para generar algún bucle para crear un poco un sistema de gotas de botín aleatorio. Entonces, si quieres seguir el juego en casa, simplemente agregué una malla. Este S k, m en Manny de mi personaje maniquíes malla carpeta, un arrastrar y soltar eso en mi gráfica. Y con ese seleccionado, entré aquí en mi Plano de Nivel. Y tengo algunos nodos configurados con anticipación aquí. Agregué un evento onclick para ese S KM muchos, nuevamente, tienes que tenerlo seleccionado y tu nivel y puedes agregar uno de estos haciendo click derecho. Y eventos en eventos de entrada, una entrada de mouse. Y aquí es donde hice un onclick eventos. Entonces, ¿qué quiero hacer cuando haga clic en Manny aquí? Bueno, voy a arrastrar fuera de aquí y traer un nodo de encendido. Y voy a agregar algunos pines de salida aquí. Voy a ir 1234. Y voy a escoger un valor entero de un rango aleatorio. Entonces voy a arrastrar hacia atrás fuera de esto y escribir al azar. Rango entero aleatorio es lo que voy a buscar. Entonces voy a decir dame un número entre 03. Entonces escogerá 012 o tres. Y luego dispararé de los pines correspondientes en función del número que seleccione. Ahora lo que quiero hacer es si conseguimos un 0 o uno, simplemente voy a fluir en una reproducción de sonido al nodo. Se va a decir fallar. Así que el 50% de las veces sólo vamos a tocar un sonido y no vas a conseguir nada. Entonces diremos el 50% de las veces por matar a un hombre. Él ahí no obtienes nada más que el otro 50% de las veces vamos a engendrar algo a nuestro nivel aquí. Voy a arrastrar a un actor spawn desde el nodo de clase. Puedes hacer clic derecho y hacer una búsqueda actor engendrado de clase. Vamos a decir si conseguimos un dos o un tres, vamos a desovar. Voy a engendrar en un hombre BP, una poción que creamos antes en el curso. Y tengo que alimentar esto una transformación de spawn porque si compila ahora mismo me va a gritar y decir, Oye, necesitas desovar transformar para esto. Entonces voy a decir, ¿dónde deberíamos engendrar esto? Déjame deshacerme de estos dos nodos de aquí abajo. Bueno, ya tengo seleccionado a Manny, así que voy a hacer clic derecho y algún espacio vacío. En realidad no voy a hacer clic derecho. Podría hacer clic derecho y obtener una referencia a Manny así. O puedes mantener presionado el botón izquierdo del RT y obtener una referencia a Manny así. Vamos a arrastrar fuera de Manny y escribir en obtener forma trans. Buscamos el mundo que se transforme. Conseguimos actor transformar está bien. Vamos a enchufar eso en. Ese es el final. Toquemos una especie de sonido después de esto. Así que vamos a arrastrar fuera de esta reproducción de sonido 2D, y vamos a tocar telepuertos. Comprometidos. Claro, eso suena bien. Vamos a compilar nuestro script aquí. Entonces, cuando hacemos clic en Manny, vamos a elegir un número aleatorio entre 03, dependiendo de qué número obtengamos. O fallaremos el 50% del tiempo o el 50% de las veces generaremos una manifestación. Entonces esta es una forma en la que puedes crear un sistema de botín aleatorio que esté ponderado. Si quisiera esperar este setenta y cinco por ciento del tiempo para abarcar y abarcar a un hombre, una poción. Se puede ver cómo podría ir con una configuración como esa. Pero voy a ir 5050 en su lugar. Compilar, guardar. Deshazte de este tipo de aquí mismo. Y trataremos con esas cadenas en los interruptores de nombre en un momento. Oye, esto, moviendo esto a la esquina aquí, voy a poner mi mapa como mi objeto de depuración de prueba. Y aquí voy, voy a dar click en él. Verán dispararse este guión. Bam, hay un hombre, una poción a sus pies, y yo no destruí a muchos. Probablemente debería haber hecho eso también. Porque ahora podemos seguir dando click sobre ellos. Todo está desovándolo exactamente en el mismo lugar. Y en realidad debería hacer eso. Matemos a muchos. Si de hecho engendramos esa poción de Amanda arrastrada sin dinero, diremos Destruye Actor. En los eventos en los que damos clic. Ambos pueden fluir hacia allí así. Entonces ahora cuando hago clic en ellos, bam, muerto, tenemos un hombre, una poción que podemos recoger también. Bien, el siguiente ejemplo que estoy presumiendo aquí se va a hacer dentro de mi Plano de Nivel. Y como un poco de preparación hecha antes de tiempo, tengo un Manny agregado a mi nivel aquí. Y solo para mostrarte qué más hice aquí es con Manny seleccionado de nuevo en mi Plano de Nivel, enseguida tengo una referencia a Manny aquí abajo. Para que puedas conseguirlo manteniendo presionada la tecla Alt y haciendo clic izquierdo. Y entonces lo que hice es sacarlo aquí. La ubicación de los actores escribiendo eso en. Te explicaré todo esto en un poquito, pero déjame hacer un poco de respaldo. En primer lugar, estamos presionando la tecla cinco. Entonces, si haces clic derecho y escribes en el teclado, así es como puedes obtener las cinco teclas. Bueno, entonces estamos haciendo es que vamos a fluir hacia un switch on string node. Ahora bien, así es como se ve primero el nodo cuando lo traes. Sin embargo, puedes agregar algunos pines haciendo clic en este botón más. Cuando lo haga, puede cambiar el nombre esos pines de salida anulando estos nombres. Y ya ves que lo hice nombrándolos Bob, Pablo, y whoo. Bien, así que voy a eliminar esta a favor de la que configuré antes de tiempo. Ahora estamos fluyendo una variable de cadena en esto, he creado una variable aquí, namestring, y es del tipo string. Y establecí el valor por defecto para que fuera Pablo. Como notarás, ese es el nombre de mi pin de ejecución de salida media aquí mismo. Dejé un puerto de notas justo aquí. Entonces lo que también estoy haciendo es no solo conseguir que esta variable de cadena se conecte aquí, también estoy configurando esa misma variable de cadena exacta de nuevo a Woo Tan pronto como libere la tecla cinco. Entonces lo estoy presionando, evaluando contenido de esta variable de cadena, va a ser Pablo. Entonces seguiremos fluyendo fuera de aquí. Y luego vamos a teletransportar a nuestro personaje jugador, que somos nosotros, a la ubicación de Manny. Ahora no podemos fluir exactamente a la ubicación de Manny. Simplemente me drogo de aquí, traje un nodo restar y simplemente estoy restando por 200 en la ubicación x solo para compensarme un poco. Y lo enchufo como mi ubicación de destino. Así que tenga en cuenta que estoy presionando la tecla cinco. Esta variable de cadena se leerá como sea posible, por lo que fluirá fuera de la salida de Pablo. Vamos a teletransportarnos a la ubicación cerca de Manny. En cuanto suelte la tecla cinco, va a cambiar el contenido de esa variable para cortejar para que la próxima vez que presione la tecla cinco, vamos a hacer nada porque no viene nada fuera de la salida Wu. Alfiler. Compilar guardar. Vamos a seguir adelante y jugar aquí en prueba esto fuera. Bien, así que revisa aquí arriba. Voy a estar presionando la tecla cinco y voy ser teletransportada cerca de muchos ahí. Y solo para probar esto de verdad, déjame volar lejos, huir lejos de Manny. Bien, aquí vamos. Cinco claves. Nos hemos teleportado. Ahora voy a soltar la tecla cinco, configurando el contenido a Wu ahora para esa variable de cadena. Entonces la próxima vez que presione la tecla cinco, incluso podemos ver que da salida whoo. Se puede ver que al pasar el ratón sobre este cable, está mostrando a Wu. Y no pasa nada porque no tenemos nada pasando fuera del pin de salida Wu. Entonces ahí lo tienes para encender la cadena. Y por último pero no menos importante, un ejemplo más del nodo switch. Este va a ser encendido nombre. También voy a estar haciendo esto dentro de mi Nivel. Blueprint tiene un poco de trabajo de preparación. Tengo un par de variables de nombre en la sección de variables. creé de esta manera antes en el curso. Uno de ellos se llama nivel 11 de ellos se llama nivel dos. Y cuando les di un valor predeterminado, nombré un mapa inicial en minúsculas y el otro nivel para escuchar el default mínimo en todas las mayúsculas, estos en realidad corresponden al nombre de algunos activos de nivel. Si vuelvo a mi navegador de contenido aquí dentro de la carpeta de mapas de contenido inicial, hay un mapa predeterminado mínimo y hay un mapa de inicio. Así que voy a estar usando estas variables para conducir a qué nivel vamos a transportar al que vamos a ir en base a la selección que conectamos a este interruptor en NameNode. Y voy a estar haciendo esto un poco diferente. En primer lugar, voy a hacer click izquierdo y arrastrar cada uno de estos a mi gráfica. Así. Entonces lo que voy a hacer solo para presumir una cosa diferente que podemos hacer aquí es voy a hacer array. Una matriz es una lista de cosas similares. Ambas son variables nombradas, por lo que podemos crear una lista de esas. Voy a agregar un pin para poder enchufar en el nivel dos aquí. Entonces voy a respaldar esto un poco y voy a arrastrar fuera de esto. Ahora tenemos una matriz que consta de dos elementos. Voy a arrastrar fuera de esto y escribir al azar, elemento de matriz aleatoria. Y voy a enchufar esto como sales. Entonces este nodo va a elegir un elemento de matriz aleatorio. Aquí solo tenemos dos selecciones posibles. Elegirá uno al azar, y me permitirá hacer clic en más y más fluir de cada uno de estos dependiendo del elemento que elija. Entonces voy a cambiar mi caso 0 aquí para que coincida con el nivel uno aquí. Entonces arrancador montaña sólo va a golpear Control C, encender nombre. Voy a anular ese control V. Y luego para el nivel a Control C y encenderé el nombre Control V. Bien, así que si es el mapa de inicio el que se elige, vamos a fluir al nivel llamado mapas iniciados. De hecho voy a arrastrar y soltar este nivel en esta función de nivel abierto por nombre. Y si esto elige de nuestra matriz, el nivel mínimo predeterminado hasta aquí, voy a arrastrar y soltar esto hacia aquí e ir así. Bien, así que sigamos adelante y compilemos eso. Guárdalo. Y aquí vamos a darle una jugada a esto. Entonces en cuanto presione la tecla cinco, nos vamos a congelar porque vamos a estar transportando los niveles aquí. Y así hicimos de hecho transportamos a otro nivel jugando una vez más, a ver si conseguimos que el otro aparezca aquí presionando la tecla cinco, ahí está nuestro nivel mínimo predeterminado, y ahí lotienes, encienda los nombres. Por lo que estos nodos de encendido son súper útiles. Personalmente me gusta usar bastante el switch on nodes para crear crónicos un sistema de gotas de botín aleatorio. Puedes esperar esos porcentajes de caída de botín, pero muchas aplicaciones útiles chicos que van a hacer para ofrecer este video. Nos vemos en la siguiente. 87. Selecciona: Bienvenida. En este video, nuestro objetivo es adquirir conocimientos y demostrar el uso del nodo selecto. Ahora la nota de selección no se considera oficialmente un nodo de control de flujo ya que no afecta el flujo de ejecución. De hecho, no hay pines de ejecución en esta nota. Sin embargo, la nota de selección ayuda en el flujo de datos en su script. Entonces pensé que lo mejor sería incluir esta lección aquí. Entonces el nodo selecto, ¿qué hace exactamente? Bueno, selecciona notas, toma cualquier índice y con base en ese índice, devolverá una de las opciones ingresadas. Ahora bien, esto es útil porque a veces quieres que el valor de retorno aquí sea diferente dependiendo del valor ingresado. Ahora solo un ejemplo muy rápido. Si cambio nuestro tipo de índice aquí para que sea booleano, vemos que nuestros pines de entrada aquí cambian a ser verdaderos y falsos. Ahora bien, dependiendo de si esto es cierto, podríamos tener aquí el verdadero valor, output. O si es falso, podríamos tener lo que sea de entrada en el falso ser de salida. Entonces puedes ver dependiendo del valor de esto, vamos a elegir una de estas opciones para regresar, bien, para traer uno de estos nodos seleccionados a tu gráfica, es tan simple como hacer clic derecho y haciendo una búsqueda para seleccionar. O alternativamente, otra forma en la que puede traer una nota seleccionada es si tiene uno de estos tipos de índice, booleano, byte, entero, entero 64 o cualquier enumeración que pueda arrastrar fuera de ese tipo de variable en encontrar la nota de selección también. Ahora solo para demostrar esto, voy a elegir, tengo una variable entera encima en mi lado izquierdo aquí. Sólo voy a arrastrar y soltar esto en mi gráfica. Yo iba a conseguirlo y luego arrastrarlo fuera de él y escribir seleccionar. Se puede ver que puedo encontrar un nodo selecto de ahí. Y ese entero se conecta inmediatamente al nodo select. Bien, vamos a explorar rápidamente algunas opciones de nodo aquí antes de mostrar algunos ejemplos, solo voy a eliminar este nodo rápidamente. Puedes hacer clic derecho en un nodo, el nodo mismo, y puedes ver cómo puedes agregarle pines. Haga clic con el botón derecho en Agregar pin, o puede eliminar pin haciendo clic derecho en el nodo, eliminar pin. Retire el pasador. Hacer clic derecho en una opción o valor de retorno puede cambiar los tipos de pin. este momento estos se establecen como comodines, lo que significa que se pueden cambiar a algo dinámicamente. Haz lo que sea que haya enchufado a esto. Digamos que si obviamente enchufar un vector en la opción uno va a cambiar todos los otros pines aquí la opción en el valor de retorno para que sea de ese mismo tipo. O podría establecer un aquí haciendo clic con el botón derecho en cualquiera de los pines de opción o valor de retorno. Y al hacerlo, podría cambiar el tipo de pin para que sea una de las diversas opciones. Haga clic derecho en Cambiar tipo de pasador. Y podría cambiar esto por decir, transforma. También puedo cambiar el tipo de índice aquí abajo ya sea haciendo clic en este desplegable. Y no estoy seguro de por qué lo está mostrando hasta aquí arriba. Una vez que hago clic en ese booleano, byte , entero, entero 64, o cualquiera de las diversas enumeraciones. O simplemente puedo hacer clic derecho en el propio pin y cambiar el tipo de pin con el pequeño desplegable allí también. Pero ya tienes este desplegable, así que no encuentro que esa opción sea tan útil. Y entonces por supuesto puedes ver en la propia nota aquí tienes la opción de agregar pines simplemente haciendo clic en este botón más. Entonces esa es otra forma de agregar algunos pines de opción más. Bien, tiempo de ejemplo, voy a estar mostrando varios ejemplos de nodos selectos aquí en mi Plano de Nivel. Entonces, si quieres seguir jugando en casa, seleccionando tu pestaña de nivel aquí mismo, abre Plano de Nivel, Así es como puedes encontrar tu camino por aquí. Y voy a comenzar haciendo clic derecho y escribiendo uniones seleccionar. Ahora el primer ejemplo que quiero mostrar tuyo es usar un índice booleano. Entonces voy a dar click en este desplegable y seleccionar un índice booleano. Ahora note que en el momento en que haga esto y seleccione booleano va a cambiar mis opciones aquí para que sean falsas y verdaderas porque un booleano solo puede ser falso o verdadero. Voy a arrastrar hacia atrás fuera de mi índice aquí y voy a escribir bool al azar. Entonces este nodo simplemente va a escupir aleatoriamente ya sea el valor de false o true, dependiendo de qué valor escupe. Digamos, por ejemplo, escupe falso. Elegirá esa entrada, la entrada falsa aquí, para volver. Si escupe true, elegirá la entrada verdadera para regresar. Así es como funciona. Bien, vamos a traer un nodo de eventos de inmediato. Voy a teclear con el botón derecho en la entrada de cinco teclados. Y vamos a arrastrar fuera de esto y escribir en nivel abierto por nombre. Ahora esta función abrirá un nivel por nombre. Se busca una variable de nombre. Echa un vistazo a esto. Por encima en el lado izquierdo. Tengo el nivel uno y el nivel dos. Se trata de dos variables con nombre. Ese es el tipo aquí que creé antes en el curso. Y después de compilar, establecí los valores de nombre aquí para que sean mapa de inicio para el nivel uno. Nivel dos, establecí el nombre tipo de variable aquí para que sea mínimo predeterminado. Ahora bien, esto no es un error. nombro como tales porque aquí atrás en mi navegador de contenido, en la carpeta de mapas de contenido inicial, hay dos niveles, dos mapas que podemos abrir llamados mínimos predeterminados y estrella mapa. Notarás que la carcasa de todas las letras aquí, mínimo predeterminado y mapa inicial es un poco diferente aquí de lo que ves en los nombres de las variables. Aquí está todo en mayúscula, y aquí está todo minúscula para las variables de nombre. No importa. ¿Bien? Así que voy a conectar el nivel uno en la entrada falsa, nivel dos en la entrada verdadera. Y en realidad antes de que lo deje caer ahí, tenga en cuenta esto, el momento en que enchufé un tipo de variable en cualquiera de estas entradas aquí mismo, o déjame simplemente cortarle este cable. Voy a mantener pulsada la tecla Alt y hacer clic con el botón izquierdo. O si enchupo algo en el valor de retorno en esta dirección, va a cambiar ambos lados del nodo para que sean ese tipo de variable correspondiente. Entonces sabe que nuestro valor de retorno deseado aquí es del nombre. Entonces va a decir, bien, estás buscando un tipo de variable de nombre, eso significa que tienes que enchufar algunas variables con nombre. Entonces el nivel uno, el nivel dos aquí. Entonces una vez que presione la tecla cinco, se va a abrir en algún nivel acuerdo con la variable name, conectamos a ella ¿qué variable de nombre va a pasar finalmente por aquí? Bueno, eso va a ser determinado por esta nota selecta. La nota selecta va a tomar cualquier toro aleatorio. Está escupiendo falso. Va a escoger, va a seleccionar el Nivel uno aquí, el mapa de inicio, y devolverlo para que sea el nivel que abrimos. Si este bool aleatorio escupe true, va a escoger, seleccionar el valor verdadero aquí, enchufado por defecto mínimo, y pasar eso como el nivel para abrir compilando, guardando, jugando. Ya tengo mi mapa de prueba instalado ahí para que podamos ver a este grupo disparando. Entonces cuando presiono la tecla cinco, aquí vamos. Me saltó a mi nivel mínimo predeterminado. En ese caso, muestra la opción verdadera porque al azar bool debe haber escupido true. Sé que ese era el nivel mínimo por defecto. Bien, siguiente ejemplo aquí voy a empezar colocando una caja Trigger aquí en mi nivel. Y puedes encontrar uno de esos viniendo justo aquí debajo de la sección básica, Trigger box, arrastra y suelta eso aquí. Con eso, en tu nivel, puedes establecer la extensión de tu caja para que sea un grosor de línea de 100100100 de diez. Y también, también te recomiendo hacerlo para que puedas ver esto en tu nivel también. Y puedes hacerlo entrando en la sección de renderizado y desmarcando actor oculto en juego. Bien, con eso seleccionado aquí en nuestro plano de nivel, voy a hacer clic derecho y vamos a hacer algo cuando superpongamos eso porque hacemos muchas cosas en ganancias cuando superponemos un volumen del disparador. Lo que vamos a hacer es que vamos a arrastrar fuera de nuestro otro actor y vamos a Cast to ThirdPersonCharacter. Esos son los personajes que estamos controlando. Y si es cierto que el otro actor que se superpone esa caja gatillo era el personaje en tercera persona. Vamos a engendrar algo, engendrar actor de clase. Y vamos a enchufar esto así. Ahora lo que engendramos va a ser impulsado por un índice entero. Entonces lo que voy a hacer es que voy a arrastrar y soltar un entero en mi gráfico aquí mismo en variable entera así, puedes crear uno de estos haciendo clic en el botón más y agregando un variable entera. Voy a conseguirlo. Y luego voy a arrastrar fuera de aquí y voy a escribir select. Porque estoy arrastrando esto fuera de la variable entera. Sabe que quiero ingresar eso como mi índice. Ahora, quiero elegir algo para generar en mi nivel dependiendo de la entrada del entero i. Entonces voy a ir así para asegurar que tengo las clases adecuadas para poner como mis opciones. Si solo arrastro hacia atrás fuera del actor spawn de la clase, sabía como aunque, así, y lo enchufar en el valor de retorno. Automáticamente va a cambiar mis pines de entrada para que sean del mismo tipo. Aquí vamos. Bien, entonces déjame agregar un tercer pin aquí. Y ahora puedo seleccionar diferentes clases en las que queremos engendrar. Voy a elegir algunos al azar aquí. Tengo un hombre, una poción que creé antes. Podemos desovar en algún efecto de plano de fuego. El fuego realmente no importa lo que lo engarces aquí, y también haces chispas. Esos son algunos comunes que me gustan. Bien, ahora mi entero aquí, si es 0, si ese es el entero que estamos alimentando esto, elegirá la Opción 0 para generar en el juego. Si cambio este valor entero a uno, elegirá esta opción para regresar y generar en el juego. Si entero es igual a dos, elegirá estas chispas para regresar y generar eso en el juego. Ahora sí necesito darnos una transformación de spawn, porque si compilo aquí, me va a gritar y decir: Hey idiota, necesito saber donde desovar. Entonces saltaré de nuevo a mi nivel. Voy a traer, vamos a traer un objetivo de puntos. Voy a dar click justo aquí arriba. Voy a traer en el lugar actores panel y mecanografiar objetivos. Puntos objetivo. Coloca uno de esos justo ahí. Con eso seleccionado aquí en mi Plano de Nivel, esta vez voy a hacer clic derecho. Crear una referencia a eso, expulsará de esto y mecanografiando obtener forma trans buen actor transformar. Y sé que ahora mismo son enteros es un valor de 0. Entonces voy a compilar aquí. Entonces deberíamos estar desove de una manera poción. Entonces sigamos adelante y juguemos aquí. Encoge eso. Entonces tan pronto como me superponga este volumen de disparo, debería seleccionar entero 0 aquí ese hombre una poción para generar en el juego en la ubicación de ese punto objetivo. Aquí vamos. Y de hecho lo hizo. Ahora bien, eso no es súper interesante porque sabíamos que ese iba a ser nuestro resultado porque tenemos duro establecer nuestro valor entero aquí para que sea 0. Entonces lo que podría hacer es eliminar esto, arrastrar hacia atrás fuera de nuestro índice y escribir entero aleatorio en rango. Y puedo decir, Oye, elige algo entre 02, compila, guarda en juego. Aquí vamos. Conocí a una poción. Si sigo superponiéndome porque no voy a hacer esto una vez. Eventualmente los conseguiré a todos. Ahí vamos. Y así podrás ver cómo está eligiendo una opción diferente aquí dependiendo del número aleatorio que le estemos alimentando. Bien, un último ejemplo aquí para este, voy a estar usando mi personaje BP en tercera persona. Entonces, si no te importaría saltar a su doble clic sobre él para abrirlo, voy a estar mostrando cómo podemos usar un nodo select junto con un e num en la enumeración. Ahora creamos esta enumeración antes en el curso. Entonces, si quieres saber cómo es una enumeración, estoy entrando bajo mi carpeta de blueprints de scripting. Y aquí tengo la enumeración eHealth status y puedes hacer clic derecho y algún espacio vacío entrar bajo Blueprints para crear un activo de enumeración. En esta enumeración de estado de salud, que es una lista de etiquetas, si se quiere. Tengo super bien y me duele mucho. Luego dentro de mi personaje de tercera persona, creé una variable, y configuré el tipo de variable para que apunte a esa enumeración que creé, estado de eSalud. Voy a arrastrar y soltar esto en mi gráfica. Vamos a conseguir eso y voy a arrastrar fuera de esto y escribir en seleccionar. Entonces podemos ver de inmediato porque nuestra enumeración aquí mismo consiste en esas tres etiquetas dolientes mal, bien, en super, vemos estas como nuestras tres entradas aquí mismo. Ahora bien, ¿qué queremos hacer dependiendo de si este índice aquí está mal herido, bien, o súper? Bueno, lo que quiero hacer es agarrar mi personaje moviendo componente, arrastrar y soltar eso. Y voy a hacerlo, hagamos otra cosa aquí. Ya me has visto ajustar mi velocidad máxima de caminata antes. Voy a establecer mi velocidad de salto z. Ahora el salto Z Velocity es un parámetro dentro del componente de movimiento de tu personaje. Ahí está, eso determina qué tan alto puede saltar tu personaje. Entonces voy a arrastrar hacia atrás. Oficinas saltaron z velocidad. Esta es una variable flotante de lo que está buscando y conéctela al valor de retorno. Ahora en el momento en que haga esto, va a cambiar todas las entradas aquí para que sean también un valor flotante. Ahora podría enchufar algunas variables para determinar estos valores aquí mismo. Sólo voy a ponerlos duro aquí. Entonces voy a decir si estoy súper mis saltos, la velocidad va a ser de 2 mil. Si lo es, bien, voy a establecerlo en 700, que es el valor predeterminado para los saltos, la velocidad. Y si me duele mucho, voy a decir que sólo podemos saltar hasta un 100. Voy a necesitar algún tipo de clave de entrada aquí. Entonces déjame hacer clic con el botón derecho. Es un espacio vacío. Traeré aquí la clave cinco porque ya no estoy usando eso en mi Plano de Nivel. Lo borré de ahí. Entonces, cuando presione la tecla cinco, vamos a establecer los movimientos de nuestros personajes. Saltar la propiedad de velocidad z, esa propiedad ahí mismo. Se va a establecer en 2000 si se le dice nuestro estado de salud, ajustado a súper. Si está configurado en bien, vamos a saltar 700. Y si estamos mal heridos, está listo para doler mucho. Vamos a saltar muy poco. Bien, así que ahora mismo el valor de esto está mal herido, así que apenas debería saltar hacia arriba. Así Compila, Ahorra, juega. Permítanme establecer mi objeto de depuración el ThirdPersonCharacter aquí para que podamos ver cómo se dispara el script. Entonces ahora mismo me duele mucho. Entonces cuando presiono la barra espaciadora, no salto demasiado. Pero en realidad esos son mis saltos normales. Lo siento, primero tengo que presionar la tecla cinco aquí. Ahora cuando salto, apenas me estoy levantando del suelo. Déjame establecer mi estado de salud aquí para que sea súper compilar guardar, jugar, y ahora estoy presionando la barra espaciadora, Ese es mi salto normal, presionando cinco. Entonces estoy configurando mi velocidad de salto ahora para ser 2000s porque el, la salida para esto es super. Entonces ahora cuando presiono la barra espaciadora, me siento feliz. Entonces hay un ejemplo de uso del nodo select usando una enumeración. Bien, entonces, ¿cuáles son algunos otros posibles usos del nodo select? Considera estos, tal vez dependiendo del estado de salud del jugador y puedes agregar al jugador jugado diferentes animaciones. Podrían cojear, por ejemplo, tal vez dependiendo de un estado de ánimo, enumeraciones, felices, tristes, ese tipo de cosas, podrías alterar qué pista de música se reproduce. Aquí hay otro ejemplo. Quizás dependiendo de cualquier enumeración de armas equipadas, podrías exhibir diferentes armas enfundadas en el personaje. Y por último, tal vez dependiendo de un entero clave, podrías mostrar x número de mallas clave colgando de la campana de los jugadores. Entonces, si tuvieras una entrada entera que dijera tres, podrías mostrarla tres llaves colgando del cinturón de los jugadores. Si ese índice entero en uno, podrías tener una llave colgando del cinturón de los jugadores, ese tipo de cosas. Bien chicos, es select node uno de los nodos más útiles en todos los scripting. Conoce lo que me encanta que va a hacer para ofrecer este. Nos vemos en la siguiente. 88. Casting: Bien, bienvenidos a todos. Bueno, hemos acertado a una parte muy clave del curso donde vamos a estar hablando de diferentes formas comunicarnos entre planos. Y vamos a estar hablando de casting específicamente en esta. Ahora hasta este punto del curso, me has visto en realidad hacer mucho casting. Todo el concepto de casting es esencialmente verificar alguna interacción que tiene lugar si un objeto dado es del tipo que estás buscando, no importa si lo es o no, puedes hacer un poco de guión fuego apagado. Ahora me has visto hacer mucho casting hasta este punto en el curso, incluyendo nuestra recolección de ejemplo bp que creamos al principio del curso. Y ahora, solo para saltar dentro de este plano, lo hicimos para que cuando empieces a superponer la esfera de colisión para esta pastilla de ejemplo BP esa es esta esfera de colisión aquí mismo. Estamos haciendo esta cosa llamada casting para comprobar si fue la tercera personaPersonaje el que fue el otro actor que hizo la superposición. Entonces, una vez más, el casting nos permite verificar si un objeto dado es del tipo que estamos buscando. Al hacerlo. En este caso, pudimos llegar al interior de nuestro terceraPersonaPersonaje, agarrar la variable de salud que vivía dentro de él, agregarle algo de cantidad y luego volver a establecer esa variable de salud. Nos estamos comunicando desde nuestra recolección de ejemplo bp aquí hasta nuestro personaje de tercera persona, aumentando la salud de nuestro personaje de tercera persona. Para que veas que la comunicación entre planos es un concepto muy crítico para bajar. Bien, me has visto Elenchar a terceraPersonaPersonaje aquí un millón de veces ya en este curso. Entonces voy a estar haciendo algo un poco diferente para nuestro ejemplo. Volvamos a nuestro editor de niveles aquí. Y luego mi sección de blueprints scripting, voy a hacer clic derecho y algún espacio vacío. Y voy a elegir una clase de planos, y voy a elegir la clase de actor. Y voy a llamar a esto BP subrayado. Muévete cuando esté cerca. Y ya verás por qué lo nombró así aquí en sólo un poquito. Voy a hacer doble clic sobre este tipo para abrirlo. Y voy a añadir para nuestros componentes en la parte superior izquierda aquí vamos a añadir un simple, vamos a añadir un cono simple debajo de las formas básicas. Y también vamos a agregar uno más componentes. Y a éste se le va a llamar interp para moverse. Ahora bien, este es un componente realmente genial que nos permite mover nuestro plano aquí entre cuantos puntos armemos. Ahora sólo voy a dejarlo a ese nombre en Too movimiento y golpeando a Enter en eso. Y con él seleccionado, voy a dirigirme al panel Detalles para configurar algunos puntos entre los que voy a tener este cono moviéndose. Ahora puedo configurarlo en nuestra sección de control de aquí. Y si hago clic en este botón más una y dos veces y expando estas flechas hacia fuera, puedo elegir algunos puntos en el espacio entre los que quiero mover este cono. Voy a dejar el primero al 000 y el segundo. Estas posiciones son relativas entre sí. Voy a establecer que sea 50 en la z. Ahora abajo, un poco aquí abajo en la sección de comportamiento, podemos elegir un tipo de comportamiento, ya sea que se mueva solo del punto a al punto B, eso es un disparo. Ya sea que lo tenga hacer un reinicio de looping, voy a elegir el ping pong aquí. Así que va a estar haciendo de ida y vuelta, ida y vuelta entre estos dos puntos. Mi duración aquí es de un segundo, así que va a tomar esa cantidad de tiempo moverse entre esos dos puntos. A continuación, voy a compilar esto. Vamos a guardar esto y vamos a dirigirnos a mi Blueprint de personaje de tercera persona. Ahora bien, si has olvidado dónde está eso, planos en tercera persona, haz doble clic en tu personaje en tercera persona. Ahora, antes en el curso, agregamos esta mano simulada, que es esencialmente solo una colisión de esfera. Si tienes esto genial, si no pasaste por ese curso y creaste esto, puedes crearlo ahora. Ahora tengo esto unido a mis componentes de la cápsula. Entonces, si no tienes esto, puedes seleccionar tu Componente Cápsula, va a agregar tipo en esfera, y puedes agregar un componente de colisión de esfera. Eso es lo que es. Ahora, he establecido mi radio aquí para que sea 32. Creo que sólo lo voy a poner delante de mi personaje un poco más, algo así. Y voy a aumentar un poco el tamaño aquí para que sea 50. Y llamé a esta mano simulada porque voy a estar haciendo algunas comprobaciones para ver si algo se ha solapado con esta esfera en el espacio. Bien, con todo eso hecho, vamos a dirigirnos a nuestro gráfico de eventos. Y con nuestro componente mano simulada aquí, vamos a hacer clic derecho sobre nosotros. Vamos a agregar un evento y vamos a hacer algo. Empezamos superponiendo que ya tenemos algo en empezar a superponerse porque no lo veo en nuestra lista aquí. Entonces, la forma en que podemos encontrarla es con mano simulada seleccionada hacia abajo. Bajo la sección de eventos podemos ir a sobre componente comenzar superposición. Podemos ver dónde está eso. Y se puede ver que este es el ejemplo que configuramos en nuestro video de biblioteca de funciones. Sólo voy a eliminar estos nodos por el momento para que podamos hacer uso de nuestra mano simulada. Una vez más, también eliminaré este cuadro de comentarios. Mueve eso a su posición. Ahí vamos. Bien, ahora el guión que tengo en mente aquí es que voy a arrastrar fuera de mi otro pin de actor aquí mismo. Y ahora puedo hacer yesos para acercarme a ese plano que acabo de crear. Entonces lo que estamos diciendo aquí es si el otro actor que se superpone a nuestra mano simulada aquí, esa colisión de esfera ahí mismo. Si ese otro actor fue la mudanza a cerca de un plano que estoy a punto de colocar en mi nivel aquí. Déjame ir adelante y volver a mi carpeta de Planos. Muévete cuando esté cerca, sólo voy a arrastrar eso por aquí. Bien, entonces ahí no está mi nivel. Volviendo a mi tercera personaPersonaje, si ese plano de aquí mismo fueron los otros actores que se superponen mi mano simulada, puedo hacer algo. Si no era lo que se superponía a mi mano simulada, podría hacer otra cosa, pero lo que quiero hacer es llegar dentro de mi BP, movido a cerca. Esto nos dará acceso a diversos componentes y propiedades dentro de mi BP movido a funciones cercanas, variables, ese tipo de cosas. En primer lugar voy a hacer clic derecho sobre esto. Voy a promover esto a una variable porque voy a estar usando esa variable un poco. Entonces promovamos esto a una variable. Podemos dejarlo con ese nombre ahí mismo. Y luego arrastraremos fuera de aquí y accederemos a nuestro interp, dos componentes de movimientos. Recuerden en nuestro bp movido a cerca, teníamos este componente llamado interpretar al movimiento. Ahora dentro de este componente aquí mismo al panel Detalles, voy a escribir la palabra activa. Y se puede ver que es auto activado reunión. Se movería entre esos dos puntos que habíamos establecido. Ahora voy a desactivar esto por el momento para que no se mueva entre esos dos puntos que había configurado. No se va a activar automáticamente. Vamos a compilar y guardar esto una vez más, volviendo a mi terceraPersonpersonaje, vamos a decir que una vez que nuestra mano simulada se superponga por nuestro movimiento al plano cercano, vamos a guardarla a su propia variable. Entonces vamos a agarrar dentro de él el componente de movimiento interp2. Y luego vamos a arrastrar fuera de ella y teclear la palabra activa. Florero, no activo, activar. Y aquí es donde estamos contando ese componente interpretativo del movimiento que vive dentro de ese plano para activarse, para activarse. Ahora la razón por la que guardé esto en su propia variable es porque ahora voy a arrastrar y soltar esta referencia aquí mismo en mi gráfica. Y vamos a arrastrar fuera de este tipo en interp al movimiento. Lo vamos a conseguir una vez más. Y voy a arrastrar sobre esto y teclear D activa. Apaga esa vuelta. Sólo voy a apagarlo con una llave. Déjame escribir. Probemos la tecla 0. Entonces, cuando nuestros componentes de mano simulados se superponen, BP se movió a casi el plano en su nivel. Estamos guardando eso a su propia variable, una referencia a ese tipo. Vamos a agarrar dentro de él y vamos a hablar con nuestro componente de movimiento interp2 ahí mismo. Vamos a decirle a ese movimiento interpretativo que se active para que se mueva entre estos dos puntos. Entonces de vuelta en mi Third PersonCharacter Blueprint, cuando presione la tecla de flecha, desactivaré esos movimientos. Bien, con eso, vamos a compilarlo y guardar. Déjame mover esto a la parte superior izquierda aquí arriba. Voy a entrar y jugar. Establezca nuestro objeto de depuración en nuestro personaje en tercera persona. Y puedes ver nuestro folleto simulado ahí y gira con mi personaje porque está unido al componente cápsula de mi personaje. Y voy a tratar de conseguir esto desde un ángulo lateral aquí para que veas que no se mueve en absoluto. Sin embargo, una vez que superpongo eso con mi mano simulada aquí, hecho sí se mueve hacia arriba, hacia abajo, hacia arriba, hacia abajo. Ahora cuando presione el 0, déjame alejarme de él y presionar la tecla de flecha. Se detiene, desactiva ese componente. Ahora bien, si lo vuelvo a superponer, no lo vuelve a activar por alguna razón. No sé la razón detrás de eso. No estoy seguro de si eso es un error del motor o no. Pero se puede ver que está tratando activarlo aquí arriba en mi guión. Una vez que lo desactivas por cualquier motivo lo mantiene activo. Pero el punto está bien tomado aquí que al lanzar a nuestro bp movido a cerca, nos estábamos asegurando que era ese actor el que se simuló la mano se había solapado. Y al hacerlo, pudimos seguir este guión fuera de este plan de ejecución. Ahora bien, si eso hubiera fallado, si no fuera el otro actor el que se superponía a esa mano simulada, una vez más, podríamos haber hecho algo que nuestro elenco fallara. Y ahí lo tienes, el casting de chicos esencialmente te permite verificar alguna interacción que tiene lugar. Si un objeto dado es del tipo que estás buscando, es un gran, gran método para almacenar de algunos dada la cosa a su propia variable y también poder alcanzar dentro de él una vez que haya fundido en él para acceder a cualquier variable, las funciones llaman a cualquier evento personalizado, ese tipo de cosas que desea hacer para comunicarse de un blueprint a otro. Eso lo hará todo por este video, chicos te ven en el siguiente. 89. Comunicación directa (parte 1): Bienvenida. La comunicación de planos ha sido el foco de esta sección del curso. Y en el último video, nos enfocamos en el casting. Y siendo ese uno de los métodos que puedes usar para que un plano se comunique con otro. Ahora el casting es una maravillosa práctica técnica de comunicación Blueprint en que si tu elenco tiene éxito, puedes capturar una referencia a lo que te has lanzado, así como permite para llegar dentro de lo que te has lanzado y acceder a cualquier componente, variable, función, llamar a cualquier evento de cliente, ese tipo de cosas. Sin embargo, sí tiene una debilidad. Esa debilidad es que debes enchufar algo en esta entrada de objeto para que realmente puedas obtener una referencia a lo que estás buscando para obtener una referencia o acceder a cualquiera de los componentes, variables, etcétera, a las que esperas acceder si no enchufas nada a esa referencia de objeto, déjame seguir adelante y simplemente matar esto aquí dentro de mi Plano de Nivel y yo compilo, me va a dar una advertencia diciendo, no puedo hacerlo, debes tener algo enchufado a esa referencia de objeto. Entonces, ¿hay otra manera de comunicarse de un plano a otro? Sí, la hay. Existe un método llamado comunicación directa. Entonces en este video, nuestro objetivo es demostrar cómo podemos hacer que dos Planos hablen entre sí a través de una técnica conocida como Comunicación Directa de Blueprint. Ahora con este enfoque, configura un blueprint de destino al que se hace referencia en respuesta a cualquier script que establezca dentro de un blueprint en funcionamiento. Ahora vamos a mostrarte lo que quiero decir con la creación dos planos de clase de actor diferentes. Vamos a tener una luz de plano y un botón de plano. Y vamos a tener una plática con otra usando este método acabo hablar de comunicación directa. Vuelve a tu editor de niveles aquí y dentro de tu carpeta Blueprints de scripting, vamos a crear dos nuevos planos de clase de actor. Al hacer clic derecho en Blueprint Class I creará una de las variedades de actor y esto se llamará luces de subrayado BP. Y dentro de aquí voy a hacer doble clic sobre esto para abrirlo. Y voy a añadir algunos componentes. Vamos a añadir un cono. Voy a escribir cono, cono forma básica. Eso está bien. Y luego voy a añadir otro. Bajo la sección de luz. Yo sólo voy a escribir en luz. Quiero agregar un foco. Y voy a tener que establecer algunos parámetros para cada uno de estos, empezando por nuestras luces son Spotlight, vamos a establecer nuestra intensidad para que sea bastante, bastante brillante. Entonces con el foco de luz seleccionado fijó la intensidad para que sea algo así como un 100 mil. Puedes establecer un color de luz diferente aquí mismo, pero voy a fijarlo para que sea de 100 mil ahora mismo. También voy a tenerlo boca abajo. Entonces se ha girado esto hacia abajo así. Eso va a hacer. Y también debajo de la sección de renderizado donde dice un visible, voy a marcar esto o desmarcarlo más bien para que no sea visible. Bien, entonces tienes un cono y los focos. Eso es genial. Bien, vuelve a tu navegador de contenido. Vamos a hacer clic de nuevo con el botón derecho del actor Blueprint Class. Esto no se llamará subrayado BP. Botón. Haz doble clic sobre este tipo para abrirlo. Y dentro de aquí vamos a agregar algunos componentes. Agregar, vamos a agregar un cilindro para iniciar formas básicas cilindro. El siguiente que vamos a agregar va a ser una colisión de caja. Entonces voy a seleccionar mi raíz de escena predeterminada. No tiene que estar unido a mi cilindro aquí y está bien si están todos unidos a mis rutas predeterminadas vistas. Entonces voy a hacer click ahí y escribir cuadro. Vamos a ir con Box Collision. Box es un buen nombre. Y después voy a seleccionar de nuevo mi ruta predeterminada vista. Y voy a añadir un componente de renderizado de texto. Bien, con cada uno de esos, voy a establecer sus datos uno por uno. Empecemos primero con el cilindro. Entonces seleccionando tu cilindro encima en el panel Detalles, voy a establecer mi rotación en la x para que sea U1 AT presionando enter negativo 90 en la y y la z, voy a establecer que sea 180. Me di cuenta de todos estos números antes de tiempo. Y luego para la escala voy a ponerla 0.4.4 y 0.05, algo delgado así. Entonces este va a ser nuestro botón con el que vamos a citar sin citar, interactuar para que nuestra luz, en nuestro plano de luz se ilumine para encenderse, para activar y desactivar. Justo a continuación vamos a seleccionar nuestro componente de colisión de caja aquí mismo. Voy a establecer la ubicación, la ubicación x para que sea 100. Y vamos a establecer la extensión de la caja para que sea de ciento, cinco, cincuenta por 100. Algo que se extienda un poco así. Bien, y luego voy a seleccionar mi componente renderizador de textos. Lo puedes ver solo Mostrando algunos textos ahí mismo. Con eso, voy a cambiar la ubicación. Vamos a establecer la ubicación para que sea 20 en la x y ciento ciento diez más bien en la z algo justo arriba, ahí mismo. Y voy a cambiar el texto para que lo lea aquí abajo. En lugar de textos, vamos a tener que diga prensa I para lesionar acto signo de exclamación. Y no está centrado por encima de mi botón ahí, ese cilindro. Entonces donde dice alineación horizontal, podemos cambiar eso de izquierda justificada a centro solo para que se vea un poco más agradable. Y luego en la sección de renderizado, actualmente voy a hacer esto invisible para que no podamos verlo para empezar. Bien, A continuación vamos a crear un par de variables aquí en el panel Mi Blueprint. Entonces haga clic en el botón más a lo largo del encabezado de las variables aquí. El primero que vamos a crear va a llamarse simplemente luz. Y para el tipo, vamos a hacer una búsqueda de luces BP. Este es el plano que acabamos de crear. Entonces ven bajo tipos de objeto, luz BP, elige una referencia de objeto. Y lo que vamos a hacer se acabó en el panel Detalles, vamos a marcar esta casilla. Dice instancia editable. Observe que cuando haga esto, esto va a tener el mismo efecto hacer clic en este pequeño icono de cerrar el globo ocular. Entonces, si hago clic aquí mismo, va a tener ese ícono del globo ocular puesto. Por el contrario, si hago clic aquí mismo y lo apago, lo desmarca. Eso es esencialmente dos formas diferentes de configurar esto para que sea editable por instancias, no importa si haces clic allí o haces clic en este globo ocular. Ambos esencialmente hacen lo mismo. Está encendiendo eso. Ahora eso va a ser genial porque va a exponer esta variable en particular en el editor. Eso lo verás en un momento aquí. Ahora voy a compilar aquí porque me está pidiendo que lo compile, para darle un valor por defecto. Pero fíjate en esto que estoy compilando. Voy a dejar esto en blanco por el momento. Vamos a poblar esto de nuevo en nuestros editores de nivel. Así que deja esto en blanco por el momento. Bien, vamos a crear una variable más aquí, haciendo clic en el botón más. Voy a llamar a esto puede alternar luces, signo de interrogación. Y esto sería, esta será una variable booleana. Si compila aquí, voy a dejar el valor predeterminado es falso. Entonces verás a este tipo en acción aquí en sólo un poquito. Ahora, como mencioné hacia el inicio de este video, Direct Blueprint Communication evoluciona un blueprint target y un blueprint de trabajo. Entonces el plano objetivo va a ser nuestro bp light. Ese es el que vamos a apuntar. Nuestro botón bp aquí, ese va a ser nuestro plano de trabajo. Entonces dentro de nuestro plano de trabajo aquí, vamos a hacer referencia, vamos a crear una referencia a nuestra luz bp para poder platicar con ella, para poder trabajar con ella. 90. Comunicación directa (parte 2): Bien, es hora de hacer un poco de configuración en nuestro editor de niveles. Y probablemente ayude si tienes algún tipo de superficie de pared, pero realmente no necesitas una. Así que voy a colocar ambos de estos fuera. Y nuestro amor, voy a empezar con nuestro botón bp arrastrando y soltando esto. Y no hay que ser súper preciso con esto. No obstante, voy a volarlo así. Quieres que la mayoría de tus volúmenes de gatillo sobresalgan en esta dirección. Por cierto, lo he vuelto a colocar a lo largo de la pared, no voy a ser súper preciso con esta colocación por el momento. Y luego voy a colocar nuestra luz ahí fuera. Ahí está mi luz BP en toda su gloria de maravilla. Se va a ver algo así. Eso es lo suficientemente bueno. Ahora bien, si selecciono mi botón B P, echa un vistazo a esto en el panel Detalles. Si me desplazo todo el camino hacia arriba, tengo mi variable de luz. Revisemos esto una vez más, mi botón BP ahí está mi variable de luz haciendo referencia al tipo de variable ligera B P. Actualmente está configurado en ninguno. Entonces aquí en mi editor, puedo configurar esto para hacer referencia directa a ese plano. Digo, oye, quiero esa variable B del tipo de luces B P. Pero necesito especificar con qué instancia de esa luz quiero hablar porque puedo tener múltiples instancias de estas luces aquí afuera. Y de hecho, permítanme establecer múltiples instancias de esta luz aquí afuera. Solo estoy manteniendo pulsada la tecla Alt y arrastrando. Ahora con mi botón seleccionado aquí, voy a dar click sobre este pequeño icono de gotas encima en el panel Detalles. Podría dar click en este desplegable para, para escoger uno de esos cuatro. Sin embargo, solo quiero mostrar la frecuencia si elijo este ícono de cuentagotas, entonces puedo pasar a mi ventana gráfica y seleccionar directamente esa luz dada. Ahora fíjate si lo estoy resaltando, ese no es ese tipo de variable dado, va a decir que no puedes seleccionar eso. No obstante, son BP la luz es de ese tipo variable, por lo que nos permite escoger esa. Entonces me ha permitido despilfarrar eso ahí dentro. A continuación, volvamos a nuestro botón de bp. Dentro de aquí, vamos a dirigirnos al Gráfico de Eventos de inmediato. Vamos a hacer cosas cuando superpongamos esta caja. Así que dirígete de nuevo al gráfico de eventos. Voy a hacer clic con el botón izquierdo, arrastrar, eliminar esos de inmediato. Con mi caja seleccionada. Puedo hacer clic derecho sobre esto para encontrar algunos eventos o con F-box seleccionado, podría ir hacia abajo hasta la parte inferior del panel Detalles. Ahí están mis diversos eventos relacionados con ello. Quiero hacer algo cuando empiece a superponerse eso, así como cuando yo y superponga eso. Entonces voy a dar click aquí para agregar una referencia a eso de inmediato. Al hacer clic de nuevo en mi componente de caja, haré algo cuando termine de superponer eso también. Entonces, ¿qué queremos hacer cuando empecemos a superponer esa caja, esta caja de aquí? Bueno, queremos comprobar antes que nada, para ver si ese es el terceroPersonCharacter que hizo la superposición. Así que voy a arrastrar el otro actor va a hacer algunas cancelaciones aquí a terceraPersonaPersonaje. Y cuando hagamos eso, vamos a traer nuestra luz de palanca Ken. Y si arrastras y sueltas esto justo en este pin, traerás un setter de inmediato. Ahí vamos. Truco práctico ahí, solo dejándolo caer sobre el pin, diré Sí, podemos alternar la luz si nuestro terceraPersonCharacter se superpone a esa caja donde esencialmente contra el rango de orina. Y entonces lo que vamos a hacer es traer nuestro componente de renderizado de textos. Vamos a arrastrar y soltar esto aquí mismo. Y vamos a hablar con nuestro componente de renderizado de texto. Vamos a arrastrar fuera de esto y escribir en la visibilidad del conjunto. Porque recuerda ahora mismo que está apagada. Vamos a marcar esta casilla y decir, sí, ya estás visible. Ahora voy a hacer mucho de lo mismo aquí abajo. Así que voy a seleccionar mantener pulsado Control, seleccionar mantener pulsado control y seleccionar, voy a copiar estos tres nodos control C, control V. Pégalos aquí abajo para cuando terminemos superponiendo esa caja. Y lo enchufaré todo así. No te olvides de este tipo. Y no olvides desmarcar esta casilla de aquí abajo, además de desmarcar esta casilla de aquí abajo. Porque cuando terminamos superponiendo esa caja, no queremos poder alternar la luz y también queremos apagar nuestro renderizado de textos. No queremos ver ese mensaje de interacción en absoluto. Bien, voy a hacer click izquierdo, arrastrar, tocar el CQI. Llamaremos a esto en rango para, alternar las luces. Voy a poner esta negra como mi alma. Bien, eso está todo bien y bien. Y a continuación voy a agregar algo de script de interacción aquí abajo. Recuerda, nuestro mensaje iba a decir, presiona la tecla I para interactuar. Así que hagamos clic aquí abajo y hagamos el teclado. Vamos a agregar un evento de teclado para cuando presionemos la tecla I, ahí está nuestro asqueroso. Lo primero que vamos a hacer es que vamos a traer una rama, vamos a mantener presionada la tecla B y hacer clic izquierdo en traer una rama. Para que cuando presionemos eso vamos a evaluar, Oye, ¿podemos alternar las luces? Recuerda, cuando estamos superponiendo o no superponiendo esa caja, estamos configurándola en true o false cuando la estamos superponiendo. Se va a evaluar como cierto. Entonces sí, se puede atar con luz. Entonces, fuera del dolor, vamos o no al achy, la verdadera clave, al pin verdadero, debería decir que vamos a traer un nodo flip-flop. nodo flip-flop nos permite cambiar a luego B que a a B cada vez que hacemos esto. Y lo que vamos a hacer flip-flop es que nuestro cilindro arrastre y suelte esto en nuestra gráfica. Cambiar el material, material de conjunto bien mecanografiado. Así, yendo a Control C, Control V, eso también. Y justo aquí arriba, voy a cambiar esto a un material de color verde. Así que déjame simplemente hacer clic ahí mismo y solo voy a escribir la palabra verde. Nuestro material aquí será, intentemos hacer una búsqueda de verde, vértice. verde que está en la vía del motor es por cierto. Entonces, si no ves esto, puedes hacer clic en este ícono de engranaje, asegúrate de tener activado el contenido del motor de espectáculos. Así que ahí vamos a ir verdes. Y luego en este nodo voy a hacer click en estos tres puntos y hacer una nota por mí mismo de que este va a ser un material rojo. El material aquí va a ser vértice de vértice rojo. Ahí está. Tengo que establecer esto para que también sea el objetivo para eso. Y luego voy a arrastrar y encontrar mi luz. Estamos hablando de esta luz aquí abajo en la sección variable arrastrar y soltar. Vamos a conseguir eso. Entonces vamos a arrastrar fuera de este tipo en foco de atención. Porque recuerda en lado de nuestra luz aquí, esta luz BP existe el foco. Y vamos a decirle a este foco que se va arrastrando de aquí para alternar la visibilidad. Entonces, si está apagado, lo va a activar. Y si está encendido, vamos a apagarlo. Entonces ese va a ser nuestro guión ahí mismo. Ahora vamos a estar cambiando esencialmente el color de nuestro cilindro aquí mismo, este material del cilindro para que se vea verde está encendido, el rojo está apagado. Así que permítanme darnos una coloración roja para comenzar con vértice Read Only. Bien, vamos a compilar este guardado. Voy a volver a mi gráfico de eventos aquí. botón izquierdo y arrastra, toca como CQI y te diré que hay que encender. Esta es una nota para mí mismo para el siguiente paso a hacer. Y para que hagamos entradas de auto recepción. Bueno, dos, jugador 0 en fallas clase D. Ahora vas a estar así, no tiene sentido para lo que acabamos de hacer. Entonces, ¿por qué pones esto como el encabezado del cuadro de comentarios aquí? Y ya verás por qué. Porque si compilo esto, guardo y voy a entrar y jugar, vas a estar como, bueno, esto va a funcionar tan pronto como superpongamos esta caja Trigger, vamos a decir, Si, puedes alternar el se aligeró aquí abajo cuando presionas la tecla I. Esto luego evaluará a verdad y debería permitirme cambiar ese material para el cilindro y luego activar la luz, pero no va a funcionar por esto aquí mismo. Permítanme demostrarlo rápidamente. Si salto y juego, incluso puedo establecer mi objeto de depuración allí. Para que veas que ese guión ha pasado por decir, sí, debería poder platicar con luz. Entonces ahora cuando presione la tecla I, permítanme simplemente mover esto hacia arriba. Pulsa la tecla I y veo que interactuaría ¿verdad? Voy a seguir adelante y sentarme, presionar la tecla I. Pero nada está disparando. A pesar de que lo estoy presionando. ¿Qué está pasando? Bueno, este mensaje de aquí mismo fue un recordatorio para mí y para ti de que tenemos que activar algo llamado auto recibir entrada dos jugadores 0 dentro de nuestra clase por defecto aquí. Ahora el botón BP debería ser tu plano aquí, los valores predeterminados de clase aquí abajo. Debajo de la sección de entrada, debes cambiar tu entrada de recepción automática aquí para que sea jugador 0. ¿Por qué? Bueno, nuestra clase de padres aquí es un plano de clase de actor. Los planos de clase de actor no reconocerán las entradas del teclado a menos que vaya dentro de los valores predeterminados de clase y le diga que reciba entradas explícitamente. El jugador 0 somos nosotros, el jugador individual, solo nosotros, ¿verdad? Así que eso va a hacer que funcione. También. Si tienes múltiplos de estas configuraciones alrededor de tu nivel, probablemente sea una buena idea aquí seleccionar tu icky y desmarcar, consumir entrada. Al hacerlo, lo lograrás para que este tipo de configuración pueda funcionar, funcione para más de un solo botón. Si dejas esto para solo consumir este insumo, funcionaría solo en un caso, no en todos los casos. Así que pensé que tiraría eso por ahí también. Bien, compilar, guardar, jugar. Vamos a superponer esto aquí. Planos. Diga presione I para interactuar. Estamos dentro del alcance. Entonces ahora cuando presiono la tecla I, se vuelve verde y ves que esa luz ahora se está mostrando y solo esta luz, no cada copia de la luz, solo esa porque esa era la que teníamos dijo específicamente para poblar esta variable ligera. Si vuelvo aquí, puedo interactuar una vez más. Y lo volví a leer para apagarla, encenderla, apagarla, encenderla, apagarla. Estamos alternando la visibilidad. Entonces este es un método llamado Comunicación Directa de Planos. Con este método, hemos configurado una variable del tipo que queremos platicar con un determinado tipo de plano. En este caso, queremos platicar con las luces BP. Y con esa variable ligera BP creada, configuramos a la instancia editable para que pudiéramos dirigirla específicamente. Aquí en el editor de niveles Working Class Blueprint es nuestro botón y el plano objetivo es nuestra luz dentro del Blueprint Working Class, tienes que crear una variable del blueprint objetivo y luego establece esa referencia aquí en el editor de niveles. Método muy práctico para comunicarse entre planos. Chicos que van a hacer para ofrecer este video. Nos vemos en la siguiente. 91. Despachadores de eventos: Bienvenida. Hasta ahora hemos hablado del casting y comunicación directa como métodos utilizados para que un plano se comunique con otro plano y esos son buenos y dandy, grandes métodos para usar. Sin embargo, hay momentos en Blueprint scripting en los que se necesita un plano para comunicarse con muchos planos. Entonces, ¿hay algún método para usar entonces? Sí, la hay. Hay algo que se llama Despachador de Eventos. Ahora bien, si no estás familiarizado con qué despachadores de eventos hay mucho como Twitter, esa es la mejor analogía que he escuchado hasta la fecha. Ahora bien, si estás familiarizado con Twitter, un usuario puede tuitear un mensaje en cualquier persona que siga tu cuenta de Twitter que reciba ese mensaje, entonces ellos pueden responder en consecuencia. En Unreal, un plano puede despachar, es decir , enviar una señal a cualquier otro plano que esté suscrito, que esté escuchando esa señal, y luego puedan responder en consecuencia. Bien, entonces el ejemplo que vamos a pasar por aquí es que voy a crear un plano de personaje, un personaje jefe si se quiere. Y cuando este personaje sea destruido, vamos a hacer que sucedan múltiples cosas. Vamos a comunicarnos de nuestro plano de jefe a otros planos, varios otros planos. Bien, aquí hay mucho que cubrir, así que me voy a mover un poco rápido, pero tienes el beneficio de pausar. Entonces vayamos directo a ello. En mi carpeta Blueprints de scripting, voy a hacer clic derecho en algún espacio vacío, vamos a crear una nueva clase de blueprint. Esta vez, el personaje es nuestra clase de padres que queremos. Y vamos a nombrar a este jefe de subrayado BP. Va a hacer doble clic sobre este tipo para abrirlo. Y seleccionemos nuestro componente de malla en nuestra lista de componentes sobre en el panel Detalles debajo de la malla esquelética, Ranuremos en Manny, Manny. Y hagamos un movimiento también. Entonces la Clase Anime, voy a hacer una P o una BP, muchos, eso va a hacer un movimiento. Y luego tengo para la ubicación, tenemos que dejarlos caer aquí un poco. La ubicación z que voy a establecer para que sea negativa 93 los va a soltar un poco. Ahora podría estar un poco demasiado lejos. Vamos a la negativa 85 o algo así. Negativo 85, algo así. Y para la rotación, solo voy a elegir 90 negativos y eso los hará mirar hacia adelante. Esa flecha azul está mirando hacia adelante tampoco sería un jefe si se quedara de ese color, llegamos a maquillarnos de miedo, así que no tengo los materiales, solo voy a escribir en rojo. Tiene que haber algún vértice de color rojo aquí. Cualquier rojo servirá. Iré con este material de puntero láser. Esto es sólo por estética, que el material cubra en esa porción de su cuerpo. Y luego también escribiré láser. Aluden al otro material puntiforme láser para su otra parte de su cuerpo. Mira a ese tipo aterrador. Bien, con eso, vamos a crear un despachador de eventos aquí abajo. Entonces creas despachadores de eventos en el panel Mi Blueprint en la parte inferior aquí, vamos a crear uno, haciendo clic en este botón más, llamaré a este jefe destruido y golpearé Enter ahí, adelante y compilar y guardar. A continuación vamos a agregar un evento para cuando superpongamos los componentes de esta cápsula. Entonces voy a seleccionar mi Componente Cápsula abajo en el panel Detalles. Esta es una de varias formas en las que puedo agregar eventos para esto. Voy a encontrar mi propio evento hit componente justo ahí está haciendo clic en este botón más. Me va a saltar de mi ventana gráfica al Gráfico de Eventos. Y vamos a construir a partir de este nodo de eventos. Voy a arrastrar fuera del pin del otro actor. Y vamos a averiguarlo, es que nuestro personaje en tercera persona. Si fue el personaje en tercera persona el que nos pegó, simplemente vamos a llamar a este jefe destruido. Vamos a mandar el tuit, si se quiere. Entonces, la forma en que podemos llamar para esto es arrastrando esto aquí, así. Y va a decir, ¿ quieres llamar a bind, desvincular todas estas opciones? En este caso queremos llamarlo, vamos a mandar ese tweet. Ahora la nota se va a quedar así. También va a tener un pequeño sobre en él. Entonces eso va a enviar los tweets a cualquier suscriptor si se quiere. Y por último, queremos arrastrarnos de aquí y escribir Destroy Actor para asegurarnos de que nuestro jefe se vaya adiós. Bien, con esto, podemos compilar y guardar. El tuiteo se logra. A continuación, solo necesitamos un suscriptor o tres. Así que salta de nuevo a nuestro nivel. Y no vas a seguir adelante y colocar algunos de estos planos ligeros en tu nivel. Creamos estos planos ligeros antes en el curso. Y los puedes encontrar en tu carpeta de scripting Blueprints. Si no tienes estos creados, podrías elegir algún otro plano que creamos anteriormente en el curso también. Estos son solo los que por casualidad elijo. Además, he colocado un plano de puerta giratoria que creamos antes en el curso aquí también. Voy a mostrar diferentes métodos en cuanto a cómo va a funcionar este tipo de comunicación. Pero voy a comenzar con mi puerta giratoria BP. Entonces, dentro de mi puerta giratoria BP, quiero cavar dentro de ese plano. Vamos a entrar ahí. Vamos a agregar una variable completamente nueva. Entonces, debajo de la sección de variables, vamos a hacer clic en el botón más. Y voy a llamar a esto el personaje jefe. Y bajo el tipo de variable, voy a dar click aquí mismo, hacer una búsqueda de jefe. Y ahí puedo encontrar mi objeto tipo B, P, jefe, ese plano que acabamos de crear. Y voy a hacer de eso una referencia de objeto. Ahora con esta variable aquí seleccionada en el panel Detalles, quiero marcar esta casilla, por ejemplo, editable para que podamos slot en nuestro jefe desde el editor de niveles. Y si compilo aquí, podemos ver que no hay nada poblando esta variable en este momento, pero con esta instancia cheque editable, alternativamente, podríamos haber hecho clic en ese globo ocular. Voy a poder seleccionar nuestro lugar jefe en el nivel. De hecho, voy a hacer eso ahora. Si coloco a mi jefe en nuestro nivel, así. Ahora puedo seleccionar mi plano de puerta. Y otra vez en el panel Detalles, puedo ver que me está pidiendo ranura en un personaje jefe para poblar esa variable. Podría seleccionar esto aquí mismo y seleccionar a mi jefe allí. Alternativamente, puedo seleccionar este pequeño cuentagotas aquí para elegir el personaje jefe adecuado de la escena. Y ahí tienes. Ahora puedes ver que nuestro jefe bp puebla esa variable dentro de nuestra puerta giratoria bp. Ahora lo que necesito hacer aquí es tener una puerta giratoria suscribirse a ese jefe destruido evento. Y esto se puede hacer de nuevo en nuestro gráfico de eventos de puertas giratorias. Entonces, lo primero que vamos a hacer es llegar a esta parte de nuestro gráfico de eventos justo aquí arriba donde estaba nuestra línea de tiempo de rotación de puertas. Creamos todo este crecimiento cuando armamos nuestra puerta giratoria, voy a mantener presionada la p. P está en juego clave. Y vamos a hacer clic con el botón izquierdo con la tecla P presionada para que un evento comience a jugar. A continuación, lo que vamos a hacer es traer una referencia a nuestro personaje jefe. Así que voy a mantener presionada la tecla Control, hacer clic con el botón izquierdo y arrastrar, y ahora me va a dar un getter enseguida. Sin embargo, no quiero que esto sea solo un típico getter. Voy a convertir esto en un gets fechado válido. Ahora si hago clic derecho sobre esto, puedo ver esa opción convertir para validar el get. Y lo que esto hace es que me permite verificar aquí mismo. Si esta variable es válida. Con eso, quiero decir, ¿está poblado de algo? Es en realidad algo que no es nulo, no ninguno. Si está poblado y alerta de spoiler, es porque actualmente tengo mis juegos de puertas giratorias para tener ese valor de personaje de jefe establecido en ese jefe. Si es válido, podemos disparar fuera de este pin. Si no es válida, es decir, esta variable es nula, podríamos hacer otra cosa. Entonces este es un get validado, úsalos todo el tiempo. A continuación, lo que queremos hacer es sacarnos de nuestro personaje jefe aquí. Y voy a iniciar sesión si escribo asignado correctamente ahí está lo que estoy buscando. Un jefe de señal destruido. Ahora cuando traiga esto, en realidad voy a estar trayendo dos nodos, así que compruébalo. Jefe asignado destruido. Cuando hagamos esto, vamos a traer un nodo Bind así como eventos personalizados. Voy a dejar este evento personalizado con ese nombre. Se le puede nombrar a otra cosa. Pero así es como funciona esto. Al comenzar a jugar. Vamos a verificar si nuestra variable de carácter jefe aquí es válida. Si está poblado con algo, si lo es, vamos a vincular estos eventos personalizados a este jefe destruido, este jefe destruyó a Despachador de eventos. Lo que esencialmente estamos haciendo aquí es decirle a este evento que espere a que ese evento se dispare. Cuando llamamos, cuando llamamos a este jefe eventos destruidos. Justo aquí cuando toquemos ese componente cápsula del jefe, vamos a llamar a ese evento aquí mismo, estaremos esperando, escuchándolo. Esto no disparará hasta que se llame a ese evento de jefe destruido. Nuestro jefe bp lo está llamando aquí mismo con este despachador de eventos. Y aquí mismo están la puerta giratoria, está escuchando eso con esta configuración de aquí mismo, que lo escucha. Una vez que esto suceda, podremos filmar fuera de este evento personalizado. Esa es esencialmente la configuración allí. Entonces lo que voy a hacer es después de que hayamos escuchado los eventos destruidos por ese jefe, vamos a demorar o solo un corto período de tiempo aquí, vamos a demorar un segundo. Entonces voy a cablear esto a la rotación de mi puerta. Entonces vamos a abrir la puerta. Eso es algo genial para hacer, ¿verdad? Después de derrotar a un jefe, pronto esa puerta queda abierta. Entonces voy a compilar y guardar esto. Y sigamos adelante y juguemos la prueba de inmediato. Así que aquí voy. Establezca este artículo. Aquí. Estoy jugando. Así se puede ver ese fuego por ahí. Entonces ahora este evento, este jefe destruyó eventos personalizados, está escuchando a este jefe destruido. Este jefe destruyó eventos para ser denunciados. Ese despachador de eventos, ese es el tweet, el mensaje que se está enviando. Entonces aquí vamos. Vamos a ver esto eventualmente disparar tan pronto como me encuentre con el componente cápsula de nuestro jefe. Déjame traer aquí la ventana de nuestro jugador. Bien, y esa puerta se abrirá después de un segundo. Entonces aquí vamos. Jefe va, adiós. 1 s después. Ahí se abre. Ese tuit fue recibido y la puerta giratoria BP respondió en consecuencia. Ahora tenga en cuenta que una configuración como esta podría duplicarse dentro de nuestro plano de bp light o cualquier otro plano de esa manera que colocamos en nuestro nivel. Y eso funcionaría bien. Todos esos podrían suscribirse al evento destruido de nuestro jefe de manera similar. Por cierto, muchas veces es genial tener estos escuchando para ese evento justo al comenzar a jugar, para que cada vez que ocurra ese evento, puedan responder en consecuencia. Sin embargo, voy a ir con un método un poco diferente de escuchar ese evento, por así decirlo, usando nuestro Plano de Nivel. Entonces voy a saltar de nuevo a nuestro editor de niveles aquí. Vamos a abrir nuestro Blueprint de Nivel. Así que abre Level Blueprint, encuentra algún espacio vacío dentro de aquí para trabajar. Ahora lo primero que tenemos que hacer es saltar de nuevo a nuestro nivel y seleccionemos a nuestro jefe b, a P. Ahora porque nuestro jefe bp existe en el nivel y sí los tenemos seleccionados. Por favor, háganlos seleccionados, saltaron a su Plano de Nivel ahora, podemos hacer clic derecho y algún espacio vacío y hacer una búsqueda de jefe destruido. Así que compruébalo. Podemos agregar un evento de jefe destruido. Por lo que este evento se llamará cuando nuestro jefe bp pida que ocurra ese evento de jefe destruido. Ahora, lo que vamos a hacer a continuación es traer una referencia a nuestros tres actores ligeros. Así que volviendo a nuestro nivel aquí, voy a seleccionar la primera luz, la segunda luz manteniendo pulsada Control clic izquierdo, y la tercera luz también, control clic izquierdo. Los tres están seleccionados aquí mismo, volviendo a mi Plano de Nivel, voy a mantener presionada la R. R está en referencia y clic izquierdo para traer una referencia a los tres. Apilarlos numéricamente así. Y lo que queremos hacer es arrastrar fuera de uno de ellos y escribir en la visibilidad del set. Lo sentimos, tenemos que conseguir el foco importante para nosotros. Entonces voy a decir obtener componente de luz puntual porque cada una de estas luces consiste en un componente de foco, que podemos ver con una de ellas seleccionada consiste en el componente de foco. Y voy a arrastrar fuera del componente de foco y escribir en la visibilidad del conjunto. Y diremos que se hará visible. Y puedo duplicar Control C Control V, ese foco para cada uno de estos. Así. Y cuando esto suceda, también puedo arrastrarme de esto y decir Place abajo a D. Vamos a traer un poco de sonido. Claro, así. Y tendrá una explosión Q dramaturgo. Bien, así que ahora compruébalo. Cuando tocamos a nuestro jefe con nuestro personaje de tercera persona, vamos a llamar a esto eventos. Va a mandar ese tuit. Ya sabemos que la puerta giratoria va a estar escuchando para que una palma comience a tocar. Y una vez que escuchen que el jefe ha sido destruido, disparará esto y girará para abrir esa puerta. Aquí en nuestro plano de nivel, podemos simplemente llamar a este jefe eventos destruidos. Podemos agregar este evento de inmediato. Al tener esto siendo llamado. Entonces solo vamos a establecer la visibilidad de nuestras vidas. Entonces sigamos adelante y probemos esto. En esta ocasión nos centraremos en nuestras luces. En una vez destruimos al jefe. Vamos a seguir. Se abre la puerta. Ahora, una vez más, podría haber adoptado un enfoque similar dentro de nuestras luces de bp para tener esa cotización de BP sin cotización, suscríbase al jefe destruido Despachador de eventos. Pero solo quería hacer una demostración aquí que puedes hacer que estos despachadores de eventos disparen directamente dentro un nivel y en realidad planos de subnivel. Siempre y cuando sea una referencia a ese actor, en este caso, nuestro jefe bp, contiene un Despachador de Eventos que existe en tu nivel. Bueno chicos, ahí tienes un Despachador de Eventos es un gran método para usar cuando quieres tener un plano, hablar con muchos, basarte en que ocurra un evento. Chicos, voy a hacer para ofrecer este. Nos vemos en la siguiente. 92. Interfaces de la impresión 1:: Bienvenida. En este video, nuestro objetivo es conocer cómo usar las Interfaces Blueprint para comunicarse entre planos. Ahora con una Interfaz de Blueprint, puede crear una colección de funciones vacías. Entonces puedes asignar qué blueprints tienen acceso a esas funciones. Entonces esas funciones de Interfaz de Blueprint, que ahora se pueden encontrar dentro de esos blueprints, pueden recibir una funcionalidad única. Ahora bien, esto es genial para un tipo genérico funciones donde podrías interactuar con algo? Y luego dependiendo del Blueprint con el que hayas interactuado, podrían responder de manera diferente. Así que estamos empezando con un gráfico aquí. Entonces vamos a crear un plano. Dentro de nuestra interfaz Blueprint, vamos a crear una función llamada interact. Y luego vamos a implementar esta Interfaz de Blueprint en tres planos diferentes son blueprint light, nuestro jefe de blueprint en nuestro terceraPersonCharacter. Ahora, dentro de cada uno de esos tres planos diferentes, vamos a llegar a personalizar exactamente lo que hace Interact. Bien, aquí atrás en irreal, Hay mucho que cuidar. Así que comencemos. Estoy dentro de mi carpeta de scripting Blueprints. Hagamos clic derecho en algún espacio vacío. Aquí dentro, voy a llamar bajo Blueprints in, en el pequeño menú fly-out, voy a elegir Blueprint Interface. Vamos a nombrar a estas funciones de subrayado BPI. Entonces vamos a hacer doble clic sobre este tipo para abrirlo. Ahora, dentro de aquí, todo lo que ves es solo tabulación gráfica vacía dice nueva función. Y luego la parte superior derecha debajo de la pestaña My Blueprint, está esperando que le demos un nombre a esta función. Así que vamos a crear nuestra primera función y se llamará interactuar. Abajo en el panel Detalles se puede ver que también cambió el nombre de esta pestaña de aquí para interactuar. Y aquí vamos a cambiar la salida para agregar una. Vamos a crear una salida y simplemente se va a llamar interactuado con signo de interrogación. Y vamos a dejar que sea un booleano. Entonces esta es nuestra función vacía. Simplemente tiene una salida. Ahora bien, tenga en cuenta, desde aquí no se puede hacer lo siguiente. No se pueden agregar nuevas variables, solo entradas y salidas. No se puede editar la gráfica en absoluto. No te pueden gustar las películas alrededor ni marcar esa casilla ni nada por el estilo. No se pueden agregar componentes. Esta función no está configurado para hacer nada. La idea aquí es que esta función vacía se agregue dentro de otros planos y luego dentro de esos otros planos, podamos personalizar lo que hace. Entonces, ahora agreguemos esta Interfaz de Blueprint a otros blueprints. Compilemos esto primero y guardemos. Después volviendo a un editor de niveles. Vamos a abrir nuestro terceraPersonaPersonaje. Vamos a volver bajo nuestra sección de planos y vamos a abrir nuestra luz bp. Y entonces también vamos a abrir a nuestro jefe bp. Aunque esas luces BP boss MBP fueron creadas en otros videos justo dentro de cada uno de estos planos, necesitamos agregar esa Interfaz de Blueprint, y esto se hace bajo el botón Configuración de clase. Así que voy a comenzar con mi jefe BP justo aquí arriba, Ajustes de clase. Y luego otra vez en el panel Detalles, Aquí es donde podemos agregar la Interfaz de Blueprint y haciendo clic aquí mismo en este desplegable debajo de agregar, ahí están nuestras funciones BPI. Vamos a agregar esa luz BP. Vamos a hacer los mismos ajustes de clase, agregar funciones bp. Y luego bajo nuestro terceraPersonaPersonaje, lo mismo. Ajustes de clase, agregue funciones bp. Ahora bien, si no estabas prestando mucha atención y es fácil perderlo al agregar esta interfaz de Blueprint en la sección My Blueprint de cada uno de estos planos, ahora tenemos una interfaz debajo del panel Mi Plano. Y si abro esto, podemos ver que ahora tenemos acceso para interactuar. Si hago doble clic en nuestra función Interact aquí mismo, se abrirá una pestaña de funciones. Y así ahora puedes ver que podemos agregar una funcionalidad única para cada función de interacción en cada uno de estos tres planos diferentes. Así que comencemos con nuestro plano de jefe aquí, hemos hecho doble clic en nuestra función Interact aquí. Vamos a darle a esto alguna funcionalidad única. Vamos a decir que si llamamos a esta función de interacción, todo lo que vamos a hacer por nuestro jefe es que vamos a arrastrar fuera de aquí. Y voy a decir que destruye al actor. Y luego solo marcaremos esta casilla diciendo que sí, sí interactuamos con ellos, compilamos y guardamos eso. Vamos a pasar a nuestra luz bp siguiente dentro de aquí, simplemente vamos a tomar nuestro componente de foco, hacer clic y arrastrar. Para arrastrar fuera de esto, vamos a escribir en la visibilidad del conjunto. Vamos a cablear nuestro cable de ejecución así. Y pondremos nuestra visibilidad en verdad. Y también marcaremos esta casilla para que el interactor haya interactuado con. Vamos a compilar y guardar eso. Y luego saltaremos a nuestro ThirdPersonCharacter y agregaremos algunas funcionalidades únicas aquí. Todo lo que vamos a hacer es hacer clic derecho en algún espacio vacío y decir conseguir actor, ubicación. Y vamos a usar esta ubicación para engendrar y emitir. Así que arrastrando fuera de aquí, voy a escribir emisor de desove en la ubicación. También podrías desovar el sistema en el lugar. El sistema utiliza las partículas del Niágara. Estas son las partículas más antiguas en cascada o bien servirán. Voy a enchufar esto aquí, y voy a engendrar en una explosión. Porque las explosiones siempre son divertidas. Voy a poner la báscula para que sea agradable y grande. Entonces 22. Y así, y también marcaré esta casilla para decir que sí, hemos interactuado. Así que ahora hemos configurado alguna funcionalidad única bajo cada uno de estos tres planos para cuando llamamos a esta función de interacción. Sigamos adelante y compilemos y guardemos esto. Pasemos a nuestro gráfico de eventos aquí. Y antes en el curso, configuramos esta funcionalidad de rastreo de líneas. Entonces, si no tienes esto ya creado, puedes copiar lo que ves aquí. Estamos enviando un rastro de línea al mundo. Y actualmente cuando golpeamos a un actor, solo estamos imprimiendo el nombre de ese actor a la pantalla. Vamos a modificar esto un poco. Así que voy a eliminar estos nodos aquí mismo. nos desharemos de este nodo de sucursal. Traeré otro momentáneamente. Pero lo que tienes que hacer es salir de este Hit Actor, puedes sacarte de tu atuendo y romper este exitoso resultado, expandir esto fuera de nuestro Hit Actor. Vamos a buscar inter acto. Y entre paréntesis debería decir mensaje. Engancha esto así. Ahora esto va a llamar a la función Interact dentro del Hit Actor. Si ese Hit Actor de hecho implementa la Interfaz Blueprint. Si el actor de éxito no implementa la Interfaz Blueprint, entonces no le pasa nada a ese actor. Entonces, lo que vamos a hacer a continuación es que vamos a arrastrar fuera de nuestro interactuado con la salida aquí. Voy a traer un nodo de sucursal. Y simplemente vamos a decir que si esto es cierto, hemos interactuado con algo y sí evaluó a verdad, simplemente vamos a imprimir en la pantalla. Imprimamos interactuado con número de cosa dentro de nuestra función Interact en nuestro terceraPersonpersonaje. Estamos poniendo eso en verdad. Aquí estamos desove y explosión dentro de nuestras luces. Cuando interactuamos con esto, solo vamos a encender el centro de atención y vamos a decir Yelp, has interactuado con él. Dentro de nuestro jefe. Interactúan con la función. Simplemente vamos a destruir al actor. Y dijimos, sí, hemos interactuado con él. Una cosa más aquí, necesitamos configurarlo dentro de nuestro jefe para tener ese rastro de visibilidad azota el rastro de visibilidad aquí dentro de nuestro personaje de tercera persona. Para que esto realmente interactúe con el jefe, entra dentro de tu jefe y selecciona tu colisión cápsula. Solo necesitamos cambiar un poco los ajustes de colisión. Bajo el Componente de colisión, sección Colisión. Bajo el preset de colisión, vamos a cambiar esto para que sea personalizado. Y tenemos que asegurarnos de que el canal de Visibilidad esté configurado para bloquear para que nuestro rastreo de línea aquí en el terceraPersonCharacter realmente lo golpee. Vamos a compilar y guardar eso. Bien, así que de vuelta aquí en nuestro Blueprint de personaje de tercera persona, vamos a estar presionando la tecla de flecha para enviar un trazo de línea a lo largo del canal de visibilidad partir de nuestros actores ubicación, el terceraPersonCharacter terminando con nuestro punto final de rastreo de línea, que si voy a la ventana gráfica, ese es este punto que configuramos aquí mismo antes en el curso. Entonces vamos a romper nuestro éxito para cualquier actor que hagamos hit, vamos a llamar a la función Interact que vive dentro de nuestras funciones BPI Interfaz Blueprint. Si lo que golpeamos ha implementado esa interfaz de Blueprint, llamará a esa función de interacción y de hecho realizará lo que sea que configuremos esa función para que haga en nuestro jefe bp, voy a destruir al actor y decir, Sí, hemos interactuado con él. Va a marcar ese Bool en nuestra luz bp. Vamos a alternar el foco y luego también marcar ese Boole para decir, sí, hemos interactuado con él. Si sin embargo, lo que golpeamos no ha implementado Esta Interfaz de Blueprint, no va a pasar nada, lo cual está bien. Ahora bien, si hemos golpeado algo que haya implementado esta función de interacción, esta Interfaz de Blueprint, vamos a pasar ese booleano por aquí. Y si es cierto, simplemente vamos a imprimirlo en la pantalla. Bien, aquí en nuestro editor de niveles, asegúrate de tener un jefe BP colocado en tu nivel así como una luz BP que es sobre la planta baja. Vamos a seguir adelante y saltar y jugar y pulsando la tecla cero. Una vez que estemos frente a nuestra luz ahí, deberíamos ver aparecer algunos textos aquí mismo. Entonces cero clave. Ves esa luz, ves que interactuó con la cosa. Genial, eso funciona bien. Y vamos a dispararlo. Y nuestro personaje jefe aquí deberías ver aparecer algunos textos, así como a nuestro jefe siendo destruido. Aquí vamos. Clave cero, jefe se ha ido. Ves nuestra línea siendo disparada al mundo ahí también. Ahí estaba el punto de impacto y eso sí está funcionando. Bien, un poco de matiz para discutir aquí en lo que respecta a llamar a un Blueprint Interface funciona aquí en nuestra terceraPersonaPersonaje que me viste antes, arrastra fuera de nuestro Hit Actor aquí y tecleamos la palabra interactuar y vemos interactuar mensaje y tenemos esa versión sobre de la misma aquí mismo. Esto es idéntico a eso. Ahora bien, esto señala el objetivo suministrado aquí mismo para llamar a esa función. Sin embargo, algo a tener en cuenta respecto, al llamar a esa función, en realidad no es necesario implementar la propia Interfaz de Blueprint dentro de este blueprint para poder hacer esto, de lo que estoy hablando está aquí en nuestros ajustes de clase. Se puede ver dentro de este plano, he implementado. La interfaz es que no es necesario tener esto implementado para llamar esto para el suministro a Target. Y solo para ayudar a conducir a casa ese punto, voy a saltar de nuevo a mi editor de niveles aquí. Voy a colocar mi botón BP en mi nivel. Con esta seleccionada. Esto lo creamos en una lección anterior. Voy a meter mis luces aquí para que sea esta luz. Entonces voy a elegir este pequeño cuentagotas. Y voy a elegir esta luz aquí mismo para que BP Li2 ahora se asocie a esa variable dentro de nuestro botón B P. Voy a abrir esto ahora, botón RSVP. Y solo voy a modificar este bit de guión justo aquí abajo cuando presione la tecla I, cuando esté dentro del rango. Entonces voy a ir así, solo voy a no preocuparme por esta alternancia del material en absoluto. Voy a romper esto, manteniendo pulsada la tecla Alt y dando click izquierdo. Lo que puedo hacer ahora mismo es hacer clic con el botón derecho. Y si busco un mensaje, no mensaje, busco interactuar. Eso es a lo que me refería. Interactuar. Ahí está mi mensaje de interacción de funciones B PI. Entonces puedo llamarlo para este objetivo de luz de aquí mismo. Porque recuerden, mi luz BP hace algo, o la luz BP sí tiene implementada esta función y alternará la visibilidad. Pero no, es, de lo que estoy hablando aquí está en la configuración de mi clase, no tengo implementada la interfaz de la función BPI. Eso no me impide llamar a esta función. Así que solo para volver más a casa el punto, lo que voy a hacer aquí es jugar el juego. Y voy a solapar este botón de aquí mismo. Ahora lo he solapado. Veo eso en realidad diciendo, sí, ahora mismo estoy dentro del alcance. Ese Texas al revés, pero no importa. Voy a presionar la tecla I ahora va a llamar a esta función. En mis planos de luz. Aquí vamos, presionando la tecla I, y de hecho sí llama a esa función y enciende esa luz. Ahora tenga en cuenta, cuando busco esa función de interacción aquí haciendo clic derecho y escribo en interactuar, esa es la única opción que obtengo. Sin embargo, de vuelta en mi BP ThirdPersonCharacter donde lo hago, tengo las funciones BPI Blueprint Interface implementadas. Puedo hacer clic derecho en algún espacio vacío y teclear inter act. Tengo otra versión que dice call function justo aquí arriba. Y ahora mira esta versión. Esta es una llamada de función local. Ahora, podría configurar algo como esto aquí dentro de mi Blueprint de personaje de tercera persona. Permítanme borrar esto. Esa función que acabo de borrar es idéntica a mí, haciendo clic izquierdo, arrastrando y soltando mi función de interacción justo por aquí en mi gráfica. Entonces, de cualquier manera traerás una copia de esa versión local de la llamada. Entonces para esta configuración de aquí mismo, voy a presionar la tecla nueve. Esto va a llamar a interactuar en el blanco de uno mismo. Mi tercera personaPlano de personaje. Sólo estoy pasando por ese booleano y luego nos vamos a destruir a nosotros mismos. Entonces, si recuerdas aquí en nuestra función local, simplemente vamos a generar un emisor en la ubicación de nuestros personajes. Compilar guardar. Déjame volver a mi gráfico de eventos aquí y jugar. Establecer mi objeto de depuración a mí mismo. Y ahora cuando presiono el Nike, boom, de hecho sí llama a esa función de interacción. Entonces, para llamar a una versión local de esa función, la Interfaz Blueprint sí necesita ser agregada a los blueprints para responder a esa versión de la llamada a la interfaz. 93. Interfaces de la impresión Blueprint Parte 2: Bien, aún más para mostrar aquí relacionados con Interfaces Blueprint. Así que volvamos a sumergirnos en nuestras funciones de BPI y vamos a agregar una nueva función en el panel My Blueprint. Así que haz clic en Agregar función y vamos a nombrar este daño. Y no vamos a sumar ninguna entrada o salida. Simplemente vamos a compilar esto y ahorrar. Ahora volvamos a sumergirnos en uno de nuestros planos donde ya hemos implementado esta Interfaz de Blueprint. Entraré en mi Blueprint de personaje de tercera persona. Ahora, nota sobre en la sección de interfaces, ahora vemos aparecer nuestra función dañada. No obstante, aparece en este color amarillo. Ahora bien, este color significa que se ha agregado la función, pero no se puede llamar dentro de otros planos ya que no tiene valor de retorno. Y con eso quiero decir, volvamos a nuestras funciones BPI. No tiene valor de retorno, mientras que selecciono nuestra función Interact, sí tiene un valor de retorno, devuelve un nodo. Entonces eso está bien. No es gran cosa. Aquí en nuestra función de daño, vamos a ir sin ninguna entrada, sin ninguna salida. Vamos a dejarlo así y vamos a mostrar cómo usar Blueprint Interfaces de una manera ligeramente diferente. Aquí en mi tercera personaBlueprint de personaje. Recuerda que tengo implementadas nuestras Interfaces Blueprint y hay una función de daño. Ahora si trato de agregarlo a una gráfica, va a ser como Nope, no puedo hacerlo. No obstante, si hago clic derecho sobre esto, puedo implementar esto como n eventos. Así que mira lo que pasa cuando hago esto. Agregará esto como un evento a mi gráfica. Y ahora puedo hacer que algo de funcionalidad sucediera fuera de esto. Sin embargo, tengo que asegurarme de que en realidad llamo a esto eventos de algunos otros planos. Así que hagamos esto aquí dentro de mi Blueprint de personaje de tercera persona, voy a decir, bien, cada vez que llamemos a esto, simplemente vamos a destruir a nuestro personaje, Destruye Actor eso es bastante simple. Compila y guarda eso. Ahora a partir de otro plano, tenemos que llamar realmente para que esto suceda. Así que vamos a saltar a decir son BP ejemplo pickup. Voy a hacer doble clic sobre eso. Y solo voy a secuestrar la funcionalidad original de esto solo por el momento, voy a poner de nuevo después del video. Voy a decir que cuando empecemos superponer esta esfera aquí mismo, vamos a comprobar si encaja el personaje de tercera persona. Y luego fuera de esto, simplemente voy a arrastrar fuera de él y escribir en el daño que BPI funciona. Mensaje de daños. Vamos a ir así y así. Y voy a deshacerme de estos solo para que esto quede un poco más claro. Entonces esto es lo que estamos haciendo. Dentro de nuestro bp ejemplo pickup. Estamos comprobando si hemos solapado esa esfera, esta esfera colisionó con el terceraPersonCharacter. Y si lo estamos, vamos a pedir ese daño Blueprint Interface. Ahora, eventos que ocurran aquí dentro de nuestro personaje en tercera persona. Así que sigamos adelante y probemos esta jugada de clic. Y se me olvidó agregar eso a nuestro nivel. Agreguemos uno de estos. Y así en el momento en que tocamos que deberíamos morir, BAM, y lo hacemos. Entonces esa es otra forma en la que puedes usar un Blueprint Interfaces en lugar de implementarlas y luego agregar alguna funcionalidad para cada función, como hicimos con nuestro evento interactivo. Simplemente podemos dejarlos en nuestra Interfaz Blueprint sin ninguna entrada o salida. Y luego haz lo que hicimos en nuestro terceraPersonCharacter, donde hicimos clic derecho sobre él y lo convertimos en un evento. Entonces al hacerlo, puedes hacer cualquier cosa fuera de él, siempre y cuando llames a ese evento desde algunos otros planos. Ahora bien, esta es una especie de forma de llamar a cabo un evento personalizado en cualquier otro blueprints que implemente esta interfaz, correcto, Por último pero no menos importante, vamos a hablar sobre cómo usar un Interfaz de Blueprint para comunicarse con un Blueprint de Nivel. Ahora, lo mejor es agregar una Interfaz Blueprint a un subnivel para facilitar la comunicación con el nivel. Vayamos a una manifestación. Antes que nada, asegurémonos de que tienes la pestaña de nivel abierta por aquí. Si aún no tienes eso en tu editor, puedes conseguirlo entrando por debajo ventana y luego abriendo los niveles TAM. Y antes en el curso sí creamos un subnivel. Seguiré adelante y crearé otro subnivel solo para que veas cómo se hace una vez más, aquí mismo donde dice niveles, puedes ir aquí y puedes crear nuevos. Y te incitará a crear un nuevo subnivel. Voy a elegir un nivel vacío. Crear. Nos va a preguntar ¿dónde queremos salvar esto? Pongamos esto en nuestro tenedor de niveles de scripting, y simplemente llamaré a este subnivel subrayado 02. Vamos a salvar esto. Bien, voy a hacer clic derecho en nuestro subnivel hasta aquí. Voy a cambiar el método de streaming. Para estar siempre cargado en lugar de Blueprint, cámbielo a siempre cargado. Entonces con nuestro subnivel aquí mismo, voy a dar click ahí mismo para abrir R sub nivel Nivel Blueprint. Y dentro de nuestro plano de nivel de subnivel, tengo nuestra configuración de clase aquí arriba. Y una vez más, aquí es donde puedo implementar nuestra Interfaz Blueprint. Entonces voy a hacer clic en Agregar. Ahí están mis funciones de BPI. Bien, siguiente de vuelta en nuestro editor de niveles, puedes asegurarte de que este es el nivel actual marcando aquí mismo. Nivel subnivel dos, ese es nuestro nivel actual. Si hacemos clic fuera de él, ese azul también demuestra que es nuestro nivel de trabajo actual. Aquí vamos a agregar un actor a nuestro subnivel. Voy a añadir, vamos por debajo de él aquí mismo. Vamos a agregar una forma. Hagamos un cilindro. Claro, algo así. Entonces tenemos un actor en nuestro subnivel. Podemos ver esto haciendo clic en este ícono del globo ocular para mostrar que eso es de hecho parte del subnivel dos. Y luego nos vamos a asegurar de que tenemos nuestro cilindro seleccionado y vamos a volver al plano R sub nivel dos niveles. Vamos a entrar en nuestra función Interact aquí. Haz doble clic sobre eso para abrirlo. Mantenga pulsada la tecla R, haga clic izquierdo para traer allí una referencia a nuestro cilindro. Y vamos a arrastrar fuera de aquí y escribir en Destruir piernas de Actor. Entonces diremos entonces que sí hemos interactuado con él. Eso es genial. Compila y guarda esto. Entonces vamos a sumergirnos de nuevo en nuestro Blueprint de personaje de tercera persona. Y lo que vamos a hacer es configurar unos guiones muy sencillos. Sólo vamos a hacer click derecho, no sé la llave ocho. No creo que tengamos nada saliendo de la llave ocho actualmente. Y voy a hacer clic derecho entonces en algún espacio vacío y escribir y obtener nivel de streaming. Y aquí es donde queremos poner en el nombre exacto de nuestro subnivel O2. Ahí está justo ahí. Sub subrayado un nivel, subrayado 02. Entonces podemos arrastrar fuera de esto y escribir en el mensaje inter acto así. Esto nos permitirá comunicarnos con nuestro subnivel dos y llamar a esa función de interacción que configuramos dentro de Sublime también. Entonces eso va a matar ese cilindro. Ahora, en realidad no voy a estar haciendo nada fuera de los bools. En realidad no tuve que marcar esa casilla, pero lo hice. Entonces, sigamos adelante y compilemos esto. Sigamos adelante y jugemos. Y ahora cuando presiono la tecla ocho, bam, se ha ido. De hecho, también nos hemos comunicado a través de Interfaces Blueprint con nuestro subnivel. Bueno chicos, eso va a hacer para ofrecer un Blueprint Interfaces. Una vez más, con Blueprint Interfaces, puedes configurar funciones dentro de ellas. Luego puede agregarlos a los planos a través de la Configuración de clase. Y luego, una vez que lo hagas, puedes configurar una funcionalidad dentro de ellos que sea única para donde sea hayas agregado estas Interfaces Blueprint bastante útiles en ustedes eso va a hacerlo todo por éste. Nos vemos en la siguiente. 94. Clase de padres (base): Bienvenida. En este video, nuestro objetivo es iniciar una conversación torno al concepto de herencia en planos. Ahora para demostrar verdaderamente el poder de la herencia con planos, vamos a crear una clase padre, una clase base sobre la que derivarán otros planos futuros. Ahora bien, lo que esto significa en última instancia es que cualquier blueprint que creamos como hijo de este padre viene preconstruido con todos los componentes, toda la funcionalidad en variables que el padre ya tiene. Ahora bien, si alguna vez has creado una clase de blueprint, ya has usado herencia y puede que ni siquiera te hayas dado cuenta que ningún blueprint en irreal existe sin heredar de otra cosa. Como ejemplo de lo que acabo de mencionar ahí, echa un vistazo a nuestro Blueprint de terceraPersonaPersonaje. Si abrimos a ese tipo en el extremo superior derecho, nos permite saber cuál era la clase de padres. En este caso, nuestro bp ThirdPersonCharacter heredado de la clase de carácter son BP ejemplo pickup que creamos desde el comienzo mismo de la clase. La clase de padres para eso es actor. Esto se deja aún un poco más claro si vuelvo a nuestro navegador de contenido y hago clic derecho en elegir Blueprint Class. Abajo, donde nos está pidiendo que escojamos una clase padre, se puede ver la jerarquía de diferentes planos. Object es el actor de clase base más hereda del objeto. Y si explico actor debajo de aquí puedo ver algo así como nuestro bp ejemplo pickup que hereda de la clase de padres. Bien, entonces lo que vamos a hacer en este video es crear a nuestro padre, nuestra clase base. Y luego en el siguiente video vamos a crear una clase infantil que se basa en nuestra clase de padres. Y vas a ver cómo nuestro hijo hereda todas las propiedades del padre así como tú eres un niño y heredó algunas propiedades de tus padres. Entonces, ¿nuestra clase hijo heredará también de nuestra clase de padres? Sigamos adelante y haga clic con el botón derecho y algo de espacio vacío aquí. Voy a hacer esto dentro de mi carpeta de scripting Blueprints. Haga clic con el botón derecho en la clase Basaremos esto en el actor o en una clase de padres. Y voy a nombrar a esto mi subrayado BP. Recogida de padres, así. Y haré doble clic sobre este tipo para abrirla. Y voy a añadir algunos componentes. Entonces vamos a comenzar agregando alguna esfera. Colisión de esfera. Se establecerán los detalles aquí. Después de esto con nuestra colisión de esfera seleccionada, voy a agregar una fuente de malla estática La malla estática está unida a nuestra esfera. Y luego con nuestras mallas estáticas seleccionadas, voy a agregar, voy a escribir en Niagara. Quiero agregarlo en componentes del sistema de partículas del Niágara así. Vamos a, vamos a agregar algunas partículas de Niágara aquí en un poquito. Y también vamos a añadir unos componentes de movimiento giratorio así como interpretar componentes de movimiento Too. Entonces nuestro, nuestro plano aquí va a rotar tanto como a bob arriba y abajo. Así que eso va a ser genial. Bien, vamos a establecer algunos detalles aquí. Así que seleccionando nuestra esfera, ante todo, acércate a tu panel de detalles. Vamos a establecer nuestro radio de esfera en 100, algo bonito y grande. Ya sabes, el desplazamiento hacia atrás aquí son mallas estáticas. Voy a entrar bajo el panel Detalles y elegiré el cubo de subrayado 1M. Vamos a hacer cualquier malla de cubo que en va a estar bien. Algo 50 por 50 por 50. Claro, eso es un poco pequeño, así que voy a escalar eso hasta tal vez el doble del tamaño ahí. Para realmente, permítanme poner esto de nuevo bloqueando nuestra báscula aquí. Puedo establecer que sean dos y golpeando Enter, lo escalará en consecuencia en la x, y y z. A continuación, voy a elegir nuestro componente Niagara aquí. Ahora, lo hice, antes de este video, sí me aseguré de tener algunas partículas de Niágara agregadas a mi proyecto. Y te voy a mostrar donde puedes agregar estos, porque esto puede llevarte un poco de tiempo. Aquí abajo en el lanzador de Epic Games, si vienes bajo Unreal marketplace, simplemente entré bajo la sección gratuita aquí. E hice una búsqueda de Niágara. Y aquí, elegí estos set VFX base pickup. Ahora para agregar esto a tu proyecto, puedes dar click aquí mismo. Eventualmente obtendrás esta opción Agregar al proyecto. Puede hacer clic aquí mismo. Ahora, ya tengo esto agregado a mi proyecto, así que no voy a volver a agregarlo, pero puedes seleccionar tu proyecto. Si tu proyecto no aparece, puedes hacer clic en este botón para asegurarte de que sí aparece. Entonces harías clic aquí para agregarlo a tu proyecto. Ahora me puede tomar un poco de tiempo para que me agreguen. Una vez que se ha agregado, solo voy a las menos una vez más vuelta aquí en nuestro navegador de contenido. Se mostrará como este conjunto de pastillas de subrayado de ensayo de carpeta, etcétera. Y aquí mismo en mi directorio, aquí mismo como un sistema de pickups FX nagger. Aquí es donde podemos encontrar algunos efectos de partículas del Niágara. Este es el sistema de partículas más nuevo en Unreal, usando Unreal Engine five. Bien, volviendo a nuestra camioneta padre, seleccionemos aquí nuestro sistema de partículas negra. Y donde dice sistema de Niágara, voy a ranura en uno llamado energía. Y voy a hacer esto NS energía subrayado dos. A continuación, seleccionaré nuestro componente de movimiento interp2. Ahí está entrando nuestra partícula. Y voy a establecer un par de puntos de control aquí, haciendo clic en el botón más una y dos veces, y voy a ampliar cada uno de estos hacia fuera. Voy a dejar el índice es cero en esa ubicación, index1, simplemente voy a tener que bob up en la dirección z por 20. Y entonces también estableceré nuestro tipo de comportamiento aquí para sea ping-pong para que vaya y venga entre esos dos puntos. Ahora, nuestro movimiento de rotación ya tiene una tasa de rotación de 180 en la z. Así que si tuviera que simular esto, se puede ver cómo va a ser esto. Gira alrededor. Ahí están adheridas partículas a nuestro cubo. Eso es tan encantador. Bien, Siguiente voy a agregar tres variables aquí abajo, que eventualmente serán heredadas por nuestro hijo. Así que voy a hacer clic debajo la sección de variables My Blueprint, el botón Plus aquí mismo. El primero se va a llamar pickup S FX. Y vamos a cambiar el tipo aquí para que sea sonido bajo base de sonido para buscar esa referencia de objeto base de sonido. Los pondremos todos un poco más tarde. Voy a hacer clic en el botón Más. Vamos a agregar otro, a esto lo llamamos pickup VFX. Voy a establecer el tipo aquí para que sea sistema de garaje de huevo, ese sistema de Ágora referencia de objeto. Y aquí vamos a agregar una variable más. Y a este se le llamará nombre del elemento. Y vamos a cambiar el tipo aquí para que sea una cadena. Bien, compilando, entonces podemos establecer algunos valores predeterminados para todos estos. Entonces mi ItemName va a establecer el valor predeterminado para que sea el nombre del elemento. Para nuestros efectos pickup v, voy a hacer slot in coin Burst, eso es un sistema Niagara. Y para mi camioneta S de x, voy a elegir una llamada objetos. Recogida de objetos. Esto está en el contenido del motor. Si no ves eso, puedes hacer clic en este ícono de engranaje y ahí mismo puedes encender el contenido de tu motor para que encuentres esa recolección de objetos. Eso es con lo que voy a ir. Puedes intercambiar cualquier sonido o un efecto de partícula que quieras. Esos serán mis incumplimientos. ¿Bien? Con eso, voy a compilar y guardar de inmediato y luego dirigirme a mi gráfico de eventos donde vamos a hacer un poco de scripting. Lo primero es lo primero vamos a hacer clic izquierdo y arrastrar alrededor de estos tres nodos de eventos que ya están aquí por defecto, los vamos a eliminar. Vamos a hacer clic derecho en nuestro componente de colisión de esfera, hacer clic derecho en Agregar evento. Vamos a hacer algo cuando empecemos a superponer eso. Entonces vamos a agregar eso a nuestra gráfica. Y como habrás adivinado por ir a arrastrar fuera de nuestro otro actor y ver si fue el personaje de la tercera persona que hizo la superposición. Si lo fuera, vamos a reproducir sonido, 2D. ¿Qué sonido quieres tocar? Bueno, tenemos un sonido de pick-up justo aquí. Vamos a simplemente arrastrar y soltar eso en el pin. Avanzando hacia abajo. A continuación vamos a arrastrar fuera de aquí y vamos a hacer sistema de desove en la ubicación, sistema de desove esa ubicación bajo la sección Niagara, sistema de desove es donde se puede desovar Niagara VFX. Ya tenemos uno guardado en una variable aquí mismo. Así que vamos a arrastrar y soltar esto encima de la plantilla del sistema. Vamos a alimentar a esta una ubicación. Así que vamos a hacer clic derecho. Obtenga la ubicación de nuestros actores. ¿Cuál actor? Esta camioneta de padres BP, donde quiera que se vaya a ubicar esta, esa será la ubicación donde queremos engendrar esto. Entonces vamos a arrastrar fuera de esto e imprimir cadena. ¿En qué cadena queremos imprimir? Bueno, vamos a arrastrar hacia atrás fuera de esto, traer un nodo append. Y cuatro son una, vamos a escribir en el espacio de dos puntos conseguido. Para el b. vamos a colocar el nombre de nuestro artículo. Así que arrastra y suelta eso aquí. Vamos a añadir un pin más. Y voy a hacer un espacio de exclamación. Entonces esto debería leer obtuvo dos puntos, espacio, nombre del elemento, espacio, signo de exclamación. Son las dos, realmente no necesitan estos espaciadores entre el nombre y el signo de exclamación. Entonces voy a retroceder ahí. Y luego por último pero no menos importante, vamos a arrastrar fuera de esto y vamos a destruir al actor. Entonces ese va a ser nuestro guión. Si quieres pausar el video ahí mismo y conseguir una buena mirada. Mira, bien, siguiente, solo para simplificar un poco nuestro gráfico aquí, voy a hacer click izquierdo y arrastrar por todos estos nodos excepto por nuestro evento. Y luego si haces clic derecho en alguno de tus nodos seleccionados aquí mismo, puedo hacer clic derecho sobre ellos y puedo colapsar para funcionar. Cuando haga esto se va a reducir a un solo nodo y justo encima en el panel Mi Blueprint debajo del área de funciones, va a decir, bien, nombra esta cosa. Simplemente voy a llamar a esta función pickup. Así. Si hago doble clic sobre esta función, puedes ver cómo se ve por dentro aquí. Y eso es genial. Ahora tenemos un gráfico de eventos muy simplificado. Sigamos adelante y compilemos y guardemos. Voy a colocar uno de estos abajo en mi nivel. Y vamos a darle a esto una prueba de juego rápida para asegurarnos de que de hecho podemos recopilar esto. Así que arrastrando y soltando este rojo aquí. Sigamos adelante y juguemos. Y lejos. Vamos Ahí está. Poco estallido de partículas de aire también. Bien, vamos a un gran comienzo aquí. Y en el siguiente video vamos a crear un hijo de este blueprint y ese hijo heredará todos los componentes. Las variables son las funcionalidades de este padre. Ahora bien esta es una gran manera de trabajar en irreal, porque si lo piensas, hay muchas cosas en los juegos que son similares entre sí, como camionetas, armas, tipos de enemigos, etc. Todos comparten algunas cosas en común sobre ellos. Entonces, ¿por qué recrear la rueda una y otra vez? Por qué crear un plano único para cada recolección de planos que vas a tener. Lo mejor es trabajar creando una clase para padres. Va a tener mucha de la funcionalidad base que dicen que todas las camionetas van a tener. Después en cada una de las funcionalidades de script hijos, agregue algunos componentes como algunas variables o propiedades que sean específicas de cada pickup individual. Pero la funcionalidad compartida debería ir dentro de un plano padre. Bien chicos, eso sí va a ofrecer este. Te veremos en la siguiente. 95. Clase infantil (Parte 1): Bienvenida. En este video, nuestro objetivo es mostrar cómo crear Clases de Planos Infantiles y luego cómo personalizarlas a partir de ahí. Ahora, crear planos secundarios es increíble desde el punto de vista de no tener que recrear la rueda haciendo que blueprints de clase hijo hereden todos los componentes base, variables y funciones de un padre. No tenemos que recrear todo eso en el niño. En cambio, ahora podemos personalizar cada plano infantil como mejor nos parezca. Adicionalmente, si hay algún componente agregado, variable o funcionalidad que queremos agregar retroactivamente al padre. Todos los planos de clase infantil lo ganarán automáticamente, lo cual es bastante dulce. Bien, así que comencemos a mostrar algo de esto creando primero una clase infantil. Así que aquí está mi recogida de padres BP. Voy a hacer clic derecho sobre esto. Y para crear un hijo a partir de cualquier plano existente, simplemente haga clic derecho sobre él y la opción más alta, ahí va. Crear clase de anteproyecto infantil. Nos va a incitar a darle un nombre. Entonces voy a cambiar esto para que sea BP. Recogida infantil. Entonces voy a hacer doble clic sobre este tipo para abrirlo. Ahora, echa un vistazo aquí. Entonces aquí está la camioneta de mi hijo. Tengo la recogida de mis padres abierta a lo largo de la parte superior aquí también. Y si me alterno entre los dos, se puede ver que se ven idénticos. También notarás que la camioneta principal tiene este listado de componentes. Y fíjate que en nuestro hijo tenemos exactamente ese mismo listado de componentes. Ahora en la recolección de padres, tenemos estas variables aquí abajo. En la camioneta infantil. Tenemos estas variables aquí abajo. Y si no ves estas variables aquí abajo que fueron heredadas, puedes hacer clic en este pequeño ícono de engranaje y se asegura que show las variables heredadas esté marcada. Debe tener eso marcado para que esas variables heredadas se muestren. Porque si los marcas, se van adiós, muestran variables heredadas. Y ahí tienes. Ahora un par de cosas para tomar nota aquí. Si miras en la parte superior derecha, dice que nuestra clase de padres es la recogida de padres BP. Y también en la lista de componentes, si quisieras editar alguna de estas cosas, di que querías cambiar este componente de esfera si hiciste clic aquí mismo en editar en Blueprint, nota lo que pasa aquí. De hecho, te salta de nuevo a la camioneta de tus padres. Entonces en el niño donde ves todos estos justo por aquí, si haces clic en alguno de ellos, va a saltar de nuevo al padre, ser como, Oye, quieres editar esto aquí en tu hijo, mientras que el lugar para hacer eso en realidad está en los padres, porque cualquier cambio que hagas aquí en el padre, se propagarán hasta el niño. Ahora, solo para conducir a casa ese punto muy rápido, voy a agregar una luz temporal aquí en la camioneta de mis padres. Entonces me voy a quedar por debajo, Agregar voy a escribir en luz. Vamos a agregar una orilla de luz puntual. Lo dejaré a ese nombre. Ahora bien, si voy a la camioneta infantil ahora mismo, no lo ves. Sin embargo, si voy a recoger a mis padres y luego hago clic en Compilar, guárdalo y vuelvo con mi hijo. Boom, ahí está ese componente puntiagudo y eso estaría ahora mismo enterrado en el interior de mi cubo ahí. Entonces ahí es donde realmente reside. Voy a borrar eso porque realidad no lo quiero. Entonces, si yo quisiera eliminar esto por decir el niño, podría borrarlo aquí. No. No puedo hacerlo. Derecha. Porque estás tratando de hacerlo, pero es como, No, estoy heredando esto de los padres. Así que tienes que ir Edit y Blueprint, eliminado aquí, luego Compilar y Guardar. Y ese cambio se propagará hasta su hijo. Ahora, una vez más, lo que hace que trabajar esta manera sea tan increíble es con nuestra camioneta para padres, creamos la funcionalidad base para recoger esta camioneta. Simple superposición aquí en nuestro gráfico de eventos, ¿verdad? Y cuando lo superponemos, simplemente hacemos esta funcionalidad aquí mismo. No tenemos que recrear todo este niño interior y podemos demostrarlo arrastrando y soltando este nivel de chico. Entonces tengo a los padres a la izquierda. Voy a hacer que el padre sea un poco más alto, el niño de la derecha. Y si me meto y juego, puedes ver que puedo recoger uno. Puedo recoger al otro. Esa funcionalidad de hecho se escurrió hasta nuestro hijo. Pero lo que también nos hace grandes es que podemos hacer algunos cambios en nuestro hijo manteniendo esa misma funcionalidad. Entonces, permítanme hacer algunos cambios muy superficiales aquí en nuestro hijo. Voy a cambiar algunos de nuestros componentes aquí, no los propios componentes, sino las propiedades reales de los componentes. Entonces por ejemplo I. Podría seleccionar mi componente de malla estática y cambiarlo para que sea algo que no sea un cubo. Podría cambiar esto para que sea, vamos un cono, alguna forma de cono y él forma de cono va a hacer. Simplemente voy a reducir eso para que sea uno en todos los ámbitos ahí. Grita para sincronizar eso un poco. Podría cambiar los efectos de partículas de mis relámpagos aquí para que sean algo así como Haremos algo curativo con algunos corazones. Claro. Hagamos sanando a tres tal vez algo así. Movimientos giratorios. Yo también puedo cambiar eso. Sí, una vez que cambies tu sistema Niagara aquí, va a tomar un poco de tiempo cambiarlo. En realidad, no me gusta esa porque eso es una especie de fuego y olvídate de uno. Intentemos sanar quiere algo persistente así. Movimiento intérprete. Yo también puedo cambiar esto. En este caso, vamos a cambiar la duración de un segundo a 3 s. Así que va a tomar más tiempo para que pase de. Posicione cero aquí para posicionar uno. Puedo cambiar mis movimientos de rotación. Puedo cambiar la velocidad a la que gira. Así que voy a hacer que este gire un poco más rápido aquí. Diremos 200, algo así. Y puedo cambiar mis efectos de sonido pick-up no tiene por qué quedar este objeto pickup. Voy a cambiar eso para que sea vista flotante. Cierro cualquier opción aquí vamos a hacer solo probar algo diferente. Mi camioneta VFX no tiene que quedarse igual ahí. Podría cambiar esto de moneda Burst a coin Burst O2. Y el nombre de mi artículo no tiene por qué permanecer igual. En lugar del nombre del elemento como nombre de elemento, voy a cambiar esto para que vuelva a ser saludable. Bien, así que con todos esos cambios realizados, puedo volver atrás y ahorrar. Vamos a probar esto. Se puede ver que se ve visiblemente diferente. Diferente efecto de partículas. Tendrá un efecto de partícula diferente cuando lo recojamos también, parece que ese efecto de partícula desaparece bastante rápido aquí, pero aquí vamos. El padre, el hijo. Diferente efecto de partícula, sonido diferente, etc. Muy bien, todo esto está bien que nuestro hijo ha heredado de hecho la funcionalidad y los componentes iniciales de nuestro padre. Simplemente intercambiamos algunos de los elementos superficiales. Nuestro hijo aquí, esa es la mirada en algunos de los sonidos y ese tipo de cosas, las variables. Pero ampliemos un poco más nuestra funcionalidad en el niño. Hagámoslo para que aunque no hayamos heredado todas estas cosas y eso esté todo bien y bien. Queremos llevar a nuestro hijo un poco más lejos. Queremos hacer algo específico para nuestra recogida de niños aquí. Así que vamos a empezar en nuestro Blueprint de terceraPersonaPersonaje. Ir a entrar en planos en tercera persona que son Persona, Carácter y nuestra función de salud. Esto lo creamos antes en el curso. Creamos una función de modificar la salud y se ve así. Vamos a arrastrar esto a nuestro gráfico de eventos. Voy a hacer clic con el botón derecho trayendo un evento personalizado. Voy a llamar a esta camioneta infantil de salud. Voy a enchufar esto a nuestra función modificar salud que creamos. Nuevamente en video anterior, hablamos sobre la creación de funciones en nuestro evento personalizado de recolección de niños de salud. Voy a agregar una entrada aquí, haciendo clic en este botón más. Voy a ponerle nombre a esta salud. Voy a cambiar el tipo de booleano a flotante. Y voy a enchufar esto enseguida a nuestra función para modificar la salud para que pasemos este valor de salud a nuestra función. Vamos a pasar algo a esto en nuestras camionetas infantiles. Verás eso aquí en un poquito. Entonces lo que voy a hacer es que voy a traer aquí una cadena de impresión. Entonces voy a arrastrar hacia atrás fuera mi cadena de impresión y traer un nodo append. Y voy a tener mi un valor aquí es simplemente decir salud colon espacio. Y nuestro valor b va a ser la salud actual que vamos a tener después de hacer este cálculo, arrastrando esto como así simplemente va a traer un nodo de conversión, convirtiendo un float a una cadena. Entonces nuestra función modificar salud actualmente se ve así. Si hago doble clic sobre él, puedes ver lo que está haciendo ahí mismo. Estamos tocando diferentes sonidos dependiendo del valor de salud que se transmita. También estamos aplaudiendo ese valor para la salud. Pero eso es esencialmente lo que tenemos pasando. Vamos a compilar esto muy importante que compiles y guardes esto. Y es importante que compiles para que podamos llamar a esta función o esto hasta eventos más bien personalizados que ocurran desde nuestra recolección infantil. Bien, así que todo esto hecho en tu Blueprint de personaje de tercera persona, regresa a la camioneta de tu hijo. Ahora, dentro de aquí, si buscas alrededor de tu gráfico de eventos, estás como, yo no, no veo ninguna de esta funcionalidad aquí en nuestro padre. Estamos haciendo algunas secuencias de comandos aquí mismo, así. Y sé que creamos esta función, esta función de recogida aquí dentro de mis padres. Y se ve así, pero si entro en mi hijo, no veo nada de eso. Bueno, aquí en nuestra sección de funciones del panel My Blueprint, si vienes aquí abajo, puedes anular tu función de recolección que actualmente existe dentro de tu recolección de padres BP. Entonces, si hacemos clic en esto, ahora veremos esa función de recolección que creamos dentro de nuestro padre. Y así es como se ve dentro de nuestro padre, dentro de nuestro hijo. Parece que esto es donde simplemente estamos haciendo una llamada sobre a nuestra camioneta de padres diciendo como, sí, esa es la función que queremos ejecutar. Ahora, puedo extender esto aún más. Lo que voy a hacer aquí es hacer clic derecho y escribir algo de espacio vacío , obtener el personaje del jugador. Elenco a terceraPersonaPersonaje, así. Ahora porque creamos ese evento personalizado dentro de nuestro ThirdPersonCharacter, y estás seguro de Compilar y Guardar. Vamos a hacer una llamada a este evento personalizado de recolección de salud infantil. Entonces en nuestra camioneta infantil, ahora puedo arrastrar fuera de aquí y escribir recolección infantil de salud. Y esto hará que el llamado a nuestro Blueprint de terceraPersonaPersonaEjecute esto. Ahora, aquí atrás en nuestra camioneta infantil, sí necesitamos pasar algo de salud que nos gustaría pasar a cualquiera de los talones o podríamos lastimar a nuestro personaje. Solo voy a poner algo duro sin embargo podrías hacer clic derecho sobre esto. Se podría promover esto a una variable o a una variable local. Una variable local solo sería vista por esta función aquí mismo. Yo sólo voy a poner puntos a cinco aquí mismo. Voy a compilar esto también. Y déjame volver a mi ThirdPersonCharacter Blueprint y solo asegurarme de que nuestra salud en este momento, actualmente está establecida en 100%. Entonces voy a establecer esto para que sea del 50%. Y así como pruebas de juego rápido, quiero asegurarme de que nuestro medidor de salud de hecho esté mostrando 50% de salud. Bien, así que con todo esto hecho, en realidad podemos saltar y jugar. Podría haberlo probado ahí pero no estaba pensando con claridad. Así que nota que mi salud el oído derecho está al 50%. Esto debería curarlo hasta por ahí en el medidor de salud porque eso es lo que le estamos instruyendo que haga. Y aquí vamos. De hecho aumentamos nuestra salud 2.75. Y viste que esa cuerda pasaba también. Entonces viste aquí dentro de la camioneta de mi hijo, simplemente extendí esa funcionalidad que ya estábamos heredando del padre. La camioneta de padres ya tenía guión aquí mismo. Entonces cuando superpongamos esa esfera, vamos a llamar a esa función, esta función de captación dentro de los padres. Entonces nuestro hijo va a estar heredando todo esto. Y nuestro hijo también lo va a estar extendiendo por aquí. Estamos haciendo esta llamada al evento personalizado dentro de nuestro terceraPersonpersonaje. Algo más que vale la pena señalar aquí es que cuando hicimos recoger a nuestro hijo aquí, note en la parte superior izquierda decía paquete Got Health. Y la razón es decir que Dios paquete de salud es porque aquí en nuestra camioneta infantil, cambiamos el nombre del artículo para que sea paquete de salud. Y si recuerda, dentro de la función de recolección padre que creamos aquí mismo es donde estamos diciendo que obtuvo el nombre del elemento y luego el signo de exclamación. Entonces, vamos a respetar todo esto. Está llamando a esta función de recogida dentro de nuestro padre. Pero también es respetar los nombres de las variables que hemos cambiado aquí en nuestra camioneta infantil, es decir, ya no es decir el nombre del artículo en nuestra camioneta infantil, dijimos que no, ahora va por decir paquete de salud. 96. Clase infantil (Parte 2): Bien, en la parte número dos aquí vamos a estar discutiendo algunos de los detalles más finos que puedes encontrar cuando trabajas con planos de clase padre e hijo, algunas cosas que deberías saber acerca de. Entonces, supongamos que creas una camioneta para padres como lo hemos hecho nosotros. Y digamos que hemos agregado estos componentes giratorios, móviles como lo hemos hecho y queremos hacerlo para que cualquier hijo de este plano obedezca esta tasa de rotación de un cajero automático que no hay posibilidad no queremos tener forma de que los planos de la clase hijo se desvíen de este valor. Queremos encerrarlos por así decirlo. Bueno, lo podemos hacer aquí es que podemos desmarcar esta casilla de verificación editable cuando se hereda. Y vas a encontrar esta casilla de verificación en todos nuestros diferentes componentes aquí mismo. Lo que pasa es cuando desmarca esto y yo lo haré, voy a desmarcarlo. Y luego voy a compilar esto una vez más y ahorrar. Ahora bien, si entro en la recolección de mi hijo, va a heredar todos estos valores porque acabo de compilar y decir que esos cambios se propagarán hacia abajo hasta el niño una vez que haga algunas ediciones en tu padre. Entonces nuestra tasa de rotación es de 180. Nuestra camioneta infantil ahora tendrá esa misma tasa de rotación, movimiento giratorio de 180. Pero mira esto. No puedo cambiar ninguna de las propiedades aquí mismo. De hecho, a lo largo de la parte superior dice que indicador de componentes no es editable cuando se hereda Esa es esta casilla de verificación de aquí. Cuando se hereda se debe editar en los planos padre. Entonces me está avisando, oye, no puedes cambiar esto aquí. Tendrías que volver a tus planos de par. Si haces clic aquí mismo, me envía de vuelta a mis padres. Podría hacer clic en esta casilla ahora mismo. Y una vez que haga clic en esa casilla, puedo regresar a mi hijo y oh, ya no puedo cambiarlo. No obstante, si vuelvo con mis padres, compila, luego de cabeza atrás, entonces puedo cambiarlo una vez más. Entonces eso es algo que definitivamente debes , definitivamente conocer. Algo más a tener en cuenta aquí es que solo porque tienes una propiedad establecida en tu panel de detalles para un componente dado, eso no significa que ese va a ser el valor real de la propiedad obedecido en el juego. Ahora déjenme mostrarles un ejemplo de exactamente lo que quiero decir con eso. Voy a cambiar la recogida de mi hijo aquí para tener una tasa de rotación de simplemente diez. ¿Bien? Tasa de rotación aquí de diez. Y los padres con los componentes de movimiento giratorio seleccionados. Voy a cambiarlo aquí a bien, en realidad lo voy a dejar a los 180. Entonces podrías pensar bien, el peligro de los padres a los 180, niño lo tiene a las diez. No obstante, si en mi recogida de padres en el Gráfico de Eventos quería hacer algo en Event Begin Play. Voy a mantener presionada la tecla P, clic izquierdo trayendo Event Begin Play. Y luego traigo a mi movimiento giratorio en componentes para que pueda hablar de esto de alguna manera. Y digo con este movimiento giratorio componentes seleccionados, voy a arrastrar hacia fuera y voy a alterar esta tasa de rotación de propiedad. Así que arrastrando fuera de esa velocidad de rotación, voy a establecer la velocidad de rotación. Y voy a decir que vamos a fijarlo en mil. Así que tenga en cuenta lo que tengo que hacer aquí. El componente de movimiento giratorio, lo tenía ajustado a 180. Pero al comenzar a jugar, estoy cambiando ese valor para que sea mil. Aquí en mi camioneta infantil. Tengo que ser diez, puedes decir, bien, van a ser diez para esto. Pero recuerde, el hijo va a heredar toda la configuración de funcionalidad en el padre. Y el padre ahora mismo está diciendo, oye, cuanto empezamos a jugar, vas a cambiar estás rotando el movimiento a mil. Entonces el niño va a respetar eso también. Entonces, si vuelvo a saltar aquí en mi mapa de prueba de nivel, y en realidad un cono es una malla muy pobre para ver esa tasa de rotación, voy a cambiar ese cono muy rápido, volviendo a la malla estática infantil. Hagamos algo que en realidad podamos ver girando alrededor. ¿Qué tal esta pipa? Veremos girar alrededor. Bien, así que ahora si iba a simular eso es correr el juego, pero en realidad no saltar y jugar. Se puede ver que ambos están dando vueltas bastante rápido. En efecto, este parece que está dando vueltas un poco más rápido porque tiene esas partículas por todas partes bailando. Pero efectivamente ambos están dando vueltas a un ritmo bastante rápido, el ritmo que hemos establecido en el padre, es decir 1,000 porque nuestro hijo ciertamente no lo está dando vueltas a razón de diez. Ahora creo que la clave para llevar ahí es solo estar atentos, donde se está creando un guión. Solo recuerda si creas algún guión dentro de tus padres que se va a propagar, eso se filtra a tu hijo en cualquier hijo que tu hijo pueda tener también. Entonces, si quieres tener alguna funcionalidad que sea única para el niño, solo con guión dentro del hijo, y omita scripting dentro del padre porque esto va a aplicarse a cualquiera en la cadena del linaje. Eso lleva a nuestro siguiente punto aquí. Así como ves que este padre tiene un hijo, nuestro Plano Infantil también puede tener un descendiente. Entonces probemos esto. Voy a volver a mi navegador de contenido aquí. Con nuestra camioneta infantil, ahora puedo hacer clic derecho sobre esto y crear una clase de Blueprint infantil. Y voy a llamar a esto BP subrayado. Llamaremos a este nieta. Recoger. Si hago doble clic sobre esto para abrirlo. Y déjame ponerlo justo aquí. Entonces tenemos padres, nietos. Podemos ver que la clase de padres es la recogida de niños, pero nuestra camioneta infantil tiene una recogida de padres por encima de ella. Entonces mira esto. Nuestro nieta, pensarías que nuestra tasa de rotación sería la misma nuestra recolección de padres debido a lo que acabo de describir, nuestro padre va a anular sobre juego son movimiento giratorio para ser no 181000, el niño va a respetar eso también. Y así deberían nuestros nietos, ¿verdad? Sigamos adelante y probemos esto. Lugares por aquí. Y deberíamos darle a los nietos una malla diferente aquí también, solo para llevar a casa el punto de que es diferente. Entonces voy a seleccionar estas mallas estáticas aquí y vamos a probar estas pirámides cuádruples, algo así. Y entonces ahora si tuviera que simular esto, alternativamente, Alt más S lo simulará. Todos están girando exactamente de la misma manera. Es solo un pequeño truco visual. Este parece que está girando más lento, pero en realidad todos están girando exactamente al mismo ritmo. Entonces, lo que sea que configuremos en nuestro padre para guión se va a propagar hasta el niño, que también se propagará hacia abajo hasta los nietos. Bien, un concepto más que quiero demostrar aquí, y tiene que ver con anulaciones de entrada. Ahora voy a volver a la recogida de mis padres aquí. Una vez más, la camioneta de mis padres desciende de la clase de actor un plano. Los planos de clase actor no se procesan. Es decir, no disparan eventos de entrada de teclado por defecto, sin embargo, podemos hacerlo para que sí reconozcan que es disparar eventos de entrada de teclado si los configuramos de esa manera. Así que voy a ir por debajo de mis valores predeterminados de clase aquí. Y en la sección de detalles donde dice entrada, auto recibe entrada. Voy a cambiar esto de desactivado a jugador cero. Al hacerlo, ahora puedo agregar un evento de entrada de teclado o un evento de entrada de controlador. Y eso lo reconocerá. Ahora cambiamos esto aquí dentro de la camioneta de mis padres. Si voy a recoger a mi hijo, valores predeterminados de la misma clase, y venimos bajo la sección de entrada. Ahora también lo configura como ceros de jugador también. Lo mismo en nuestros nietos, vamos por debajo de tus incumplimientos de clase. Esos cambios se han propagado hasta el final de la línea. Eso es genial. Bien, volvamos con nuestros padres. Y en algún espacio vacío aquí, voy a hacer clic derecho y hagamos algo cuando hagamos el teclado. Vamos a hacer, vamos a hacer el, vamos a hacer la K key apuntalar el KCI. Bien, fuera de presionar el KCI, vamos a imprimir cadena. Y lo que vamos a apuntar a imprimir es simplemente que van a ser padres. Y con nuestra clave K seleccionada aquí, tenga en cuenta que sobre la derecha tenemos comprobada la entrada consumida así como anular el enlace padre verificado. Ahora bien, lo que va a pasar aquí cuando juegue, déjeme simplemente dar click sobre estos tres puntos, irá a la nueva ventana del editor. Configuraré mi opción de depuración aquí para que sea mi recolección de padres. Observe que puedo elegir cualquiera de estos tres, pero voy a elegir la recogida de mis padres. Trae esa ventana. Cuando presiono la tecla K justo aquí arriba, veo a los padres impresos solo una vez. Solo una vez. Ahora puede que te estés diciendo a ti mismo, Qué carajo, pensé que cualquier tipo de cambios de scripting que hiciste en aparente que ese cambio de scripting se va a propagar hacia abajo hasta el niño y por lo tanto el nietos también. Entonces, ¿por qué no solo vimos esto impreso una vez? ¿Por qué no lo vimos impreso tres veces como en los padres que el niño y los nietos? Bueno, esto está funcionando así porque comprueba nuestro insumo de consumo aquí. Ahora lo que eso significa es que otros actores con menor prioridad no manejarán esta función. Eso significa que simplemente se detendrá aquí y morirá aquí. Ahora tenga en cuenta lo que sucede cuando desmarca esta casilla de verificación de consumo de entrada. Sigamos adelante y volvamos a jugar. Voy a presionar ese KCI y mirar en la parte superior izquierda de nuestra ventana de juego aquí, vemos a padre impreso tres veces. Eso es porque al no consumir la entrada aquí, estamos permitiendo que esa clave, tecla K se propague hacia abajo. Eso es para funcionar dentro de nuestro hijo en la recolección de nietos también. Entonces, cuando se marca la entrada de consumo, funcionará justo en el nivel más alto. Con esa desmarca, ese cambio se propagará hacia abajo a cualquier descendiente. Bien, así que vamos a empujar todo esto un poco más allá. Voy a hacer click izquierdo, Copiar estos nodos aquí mismo, controlar C. Y voy a ir dentro de la camioneta infantil Maya. Y dentro de mi gráfico de eventos, sólo voy a golpear Control V para pegarlos. Ahora con mi tecla K seleccionada en el panel Detalles, voy a decir, vamos a consumir la entrada aquí mismo. Y también voy a cambiar mi cadena de impresión y ahora para ser niño. Bien, y sigamos adelante a jugar pruebas desde aquí. Ahora lo que verán cuando presione la tecla K, déjenme poner a mi hijo recoger aquí mismo como el que queremos ver. Cuando presiono la tecla K. Ahora, verás niño, hijo único. Ahora, algo a tener en cuenta aquí. Esto se debe a que tenemos que nuestro hijo está configurado para consumir insumos, es decir, los padres no lo registrarán. Ahora bien, esto está siendo codicioso. Se trata de decir consumirlo aquí, ignorar a nuestros padres. Ese es para el que queremos procesar esta clave de entrada. Ahora bien, si lo desmarcamos aquí, desmarcamos consumir entrada aquí en nuestro bp child pickup y jugar una vez más, vamos a presionar ese KCI y ahora vemos parent child. ¿Qué está pasando aquí? Bueno, al no consumirlo, estamos permitiendo que también se muestre para que también se use dentro de nuestra camioneta para padres. Nuestro padre está diciendo padre aquí en nuestro hijo, estamos viendo niño. Y recuerden que nuestros nietos está descendiendo de nosotros, el niño también. Entonces hijo, hijo, pero en el propio padre, que también está desmarcando, consumiendo entrada. Es decir padres. Entonces por eso vimos el resultado que vimos ahí. Bien, entonces ahí lo tienes. El concepto de herencia que se muestra en Unreal y el poder que proporciona. Aquí hemos demostrado que puedes crear una camioneta para padres. A partir de eso, puede hacer clic derecho sobre él y crear una recolección hijo que heredará todas las propiedades y funcionalidades del padre dentro del hijo, puede crear una funcionalidad personalizada. Puede personalizar algunas de las variables y también algunas de las propiedades de los componentes. Y luego también demostramos que se puede mantener el linaje en marcha. Puedes hacer clic derecho sobre tu hijo y crear un nieto también. Por lo tanto, estos poderosos conceptos se pueden usar a lo largo de tu juego para simplificar varios sistemas que quizás quieras incorporar, como un sistema de recolección de armas, muchas armas para recoger . Todos ellos pueden tener sus propiedades únicas sobre ellos, pero la funcionalidad pickup, por así decirlo, seguiría siendo la misma. Chicos que lo harán todo por este video. Nos vemos en la siguiente. 97. Descripción del marco: Bien, bienvenidos a todos. En este video, nuestro objetivo es obtener una familiaridad y comprensión de lo que se conoce como blueprints de Framework en Unreal, este es un tema crítico que todos trabajan en Unreal deberían conocer. Entonces, ¿cuáles son estos planos de marco? Bueno, son planos de alto nivel asociados a un proyecto que determinan cosas clave sobre tu juego, como las reglas de tu juego. Ese tipo de cosas a menudo están contenidas dentro de un plano del modo de juego, o el jugador en tu juego, también conocido como el personaje o el estanque. ¿Controlaste ese tipo de cosas? Entonces, ¿dónde se encuentran estos planos de marco? Bueno, cada proyecto tiene algunos por defecto, y de hecho, algunos han existido hasta este punto en el curso. Algunos de ustedes han sabido, otros no lo han hecho, pero aquí es donde vamos a revelar todo. Así que puedes encontrar estos planos de marco aquí arriba en la parte superior derecha de tu editor Configuración, configuración del proyecto. Aquí, si seleccionas mapas y modos, tenemos un modo de juego predeterminado. Y tu modo de juego predeterminado contiene todos estos planos dentro de él. A menudo esto se derrumba. Se puede ampliar esto. Para que puedas ver dentro de aquí tenemos un modo de juego. Se Default Pawn Class, una clase HUD, controlador de jugador. E incluso tiraría la clase de instancia de juego, que está aquí abajo. Todos estos planos estamos hablando aquí mismo, y estos aquí mismo, estos se conocen como sus planos marco. Ahora solo te mostré que podías acceder a estos dentro de la configuración de tu proyecto, mapas y modos haciendo clic en este botón de aquí. Alternativamente, si te encuentras bajo ediciones, también puedes encontrar la configuración de tu proyecto allí. Puede acceder a mapas y modos y encontrar sus planos de marco también. Alternativamente, si haces clic aquí y entras en la configuración de tu proyecto aquí mismo puedes ver tu lo que se conoce como tu plano de modo de juego. Y luego abajo puedes ver algunos de esos planos de marco en esta sección aquí también. Ahora, cada uno de estos diferentes planos de marco como el modo de juego, un personaje, un controlador de jugador. Esos son todos tipos específicos de planos. Y veremos algunas de esas y cómo crearlas dentro de los próximos videos en esta sección del curso. Ahora, solo en este video de resumen de framework, es importante señalar que si bien tenemos algunos blueprints, algunos blueprints framework que se encuentran dentro configuración de nuestro proyecto aquí, mapas y modos. Estos son nuestros planos marco. Estos son planos que controlan las cosas de nuestro proyecto. Es decir, cada nivel que creamos dentro de nuestro proyecto. Es posible anular estos planos marco sobre una base por nivel, sobre una base por masa. Podemos encontrarlo volviendo a nuestro editor de nivel principal. Si entro por debajo de Ventana y accedo a la configuración de mi mundo, podemos ver si entro en la sección Modo de juego y hago clic en este desplegable aquí mismo. Aquí es donde puedo anular mis planos de framework para un nivel específico. Se encuentran en los escenarios del mundo. Entonces, si en la configuración de mi proyecto tenía algún framework, blueprints está configurado para mi proyecto y determinar cosas como, Bueno, voy a estar controlando el terceraPersonCharacter lo largo de eso está determinado por mi Clase de Peón Predeterminado. De hecho puedo hacerlo para que dentro un mapa específico con cualquier nivel específico, pueda establecer un estanque específico que quiero controlar justo dentro de ese nivel que se encuentra en los escenarios del mundo. Por lo que puedes encontrar eso no solo bajo la opción de configuración del mundo de ventanas. También lo puedes encontrar aquí mismo, dando clic ahí mismo. Y puedes ver si tu configuración mundial está anulando tu modo de juego ahora mismo podemos ver que no estamos anulando nada. Eso es lo que está ahí mismo esa alerta. Bien, así que una vez más, esa es nuestra descripción general de los planos de trabajo de marcos, sus planos de marco contienen estos planos aquí mismo. También lanzaría las instancias del juego, bueno, estos son todos diferentes tipos de planos y contienen información clave sobre tu juego, como las reglas que determinan el plano de Gamow, qué personaje que estás controlando, la Clase Peón, etcétera. Los vamos a estar explorando más lo largo de esta sección del curso. Te veremos en el siguiente video. 98. Modo de juego (parte #1): En este video, nuestro objetivo es conocer la importancia del blueprint del Modo Juego en Unreal, vamos a aprender qué hace, cómo crear uno y cómo decirle a nuestro proyecto que use este activo. Ahora, hemos tenido un plano de modo juego existente en la configuración de nuestro proyecto desde el inicio de todo este curso. Ahora cuando creamos este proyecto, usamos la plantilla de tercera persona. Y dentro de nuestra carpeta Blueprints en tercera persona estaba este modo de juego BP en tercera persona. Si te encuentras bajo tu configuración, Configuración del proyecto, puedes ver en la sección de mapas y modos que el modo de puerta de enlace predeterminado asignó automáticamente para ser BP, modo de juego en tercera persona. Entonces ha habido uno aquí todo el tiempo. Ahora bien, ¿cuál es el plano de Gamow? Bueno, es una de las dos clases principales que manejan información sobre el juego. El otro es el plano del estado del juego, que es otro plano marco aquí abajo. Ahora los modos de juego están diseñados para definir e implementar las reglas de tu juego. Algunos ejemplos incluyen la cantidad de jugadores permitidos, jugador genera y responde funcionalidad de transición entre niveles, ese tipo de cosas. Ahora el modo de juego también determina otras clases predeterminadas que usan en tu juego. Ahora para ayudar a conducir a casa este punto aquí mismo, voy a volver a mi editor de niveles aquí y hacer doble clic en nuestro modo de juego en tercera persona. Ahora bien, si ves esto, esto es lo que se conoce como un plano solo de datos. Pero incluso aquí podemos ver dentro de este modo de juego en tercera persona, aquí están nuestros otros planos marco como nuestra clase de controlador de jugador. Eso es algo que creamos antes en el curso. Y nuestra Clase de Peón por Defecto son BP, ThirdPersonCharacter dentro de tu plano de Gamow. Aquí es donde realmente engañas todo el resto de tu pie, tus planos de marco. Puedes hacerlo aquí o en la configuración de tu proyecto. Si lo cambias en un lugar, lo cambias en el otro. Ahora, solo para tu información, puedes abrir lo que se conoce como el editor de planos completo dando clic aquí mismo si alguna vez ves eso. Pero incluso aquí, tu juego o plano en tercera persona, si tienes seleccionada la clase predeterminada aquí arriba, justo aquí están todos tus diferentes planos de framework. Nuevamente, estos están asociados con tu plano de modo de juego. Ahora acabo de mencionar antes que el plano de Gamow era una de las dos clases en handle info sobre tu juego, siendo la otra el estado del juego. Entonces el modo de juego solo existe en el servidor, mientras que el juego afirma ese tipo ahí mismo. Lo puedes encontrar en la configuración de tu proyecto ahí mismo que existe en el servidor y se replica a todos los clientes. Bien, vamos a crear nuestro propio plano de Gamow y luego configurarlo aquí en la configuración de nuestro proyecto. Entonces para hacer esto, voy a volver a nuestro editor de niveles. Ahora, antes en el curso bajo mi carpeta de scripting, creé una carpeta haciendo clic con el botón derecho aquí, nueva carpeta. Lo llamé Framework. Ahora en realidad creé uno de nuestros planos de marco antes en el curso es el blueprint del controlador del jugador. Creé esto durante el evento. Comienza el cursor sobre el video. Si quieres revisar eso. Aunque pronto estaremos hablando del controlador de jugador, dentro de este directorio es donde voy a estar creando un modo de juego completamente nuevo. Así que haga clic derecho en algún espacio vacío Clase Blueprint. Y aquí mismo en nuestra clase de padres escogidos, podemos elegir un nuevo modo de juego. Se le conoce como Game Mode base. E incluso dice que define el juego que se está jugando, sus reglas, anotación, etcétera. Vamos a hacer click en eso. Voy a llamar a esto nuestro bp subrayado Modo de Juego. Entonces con eso creado, voy a hacer clic derecho y guardarlo enseguida. Control plus S también puede ahorrar eso. Y puedo meter esto en, en la configuración de mi proyecto. De nuevo, puedes acceder a la configuración de tu proyecto aquí y aquí. Debajo de los mapas y modos están el modo de juego predeterminado. Voy a cambiar esto para que sea mi modo de juego BP. Ahora tenga en cuenta que una vez que haga esto, mira esto, va a configurar automáticamente el resto de mis blueprints de framework. Ahora mi terceraPersonpersonaje ya no está aquí. Ahora estaba usando eso junto con mi controlador de reproductor que hice antes. Así que voy a querer ponerlos de nuevo aquí. Entonces voy a cerrar mi modo de juego en tercera persona que tengo abierto justo aquí arriba. Cierra eso. Y voy a abrir mi modo gay BP aquí mismo. Así que tenga en cuenta que si cambio mi clase de peón predeterminada dentro de mi modo de juego BP que acabo de crear, si cambio eso de nuevo a BP ThirdPersonCharacter, si lo cambio aquí de nuevo en la configuración de mi proyecto, bajo Clase de Peón por Defecto, también la cambió aquí. De igual manera, si cambio mi controlador de reproductor, este es el controlador de reproductor que creé anteriormente en el curso. El controlador del reproductor bp en el evento comienza el cursor sobre el video. Si lo cambio aquí, mi configuración del proyecto , bp player controller. Y voy y miro dentro de mi modo de juego BP. Se puede ver que ese cambio se refleja aquí también. Entonces lo cambias en un lugar, lo cambias en el otro. Voy a seguir adelante y guardar esto aquí mismo. Ahora tenga en cuenta que este no es el único lugar en el que podría haber editado toda esta información o incluso establecer mi modo de juego en sí, Bacchae por editor de niveles. Si tuviera que hacer clic aquí mismo debajo de este botón de Planos, puedes ver la configuración del proyecto, modo de juego. Podría crear un modo de juego desde aquí. Puedo editar mi modo de juego desde aquí. Y abajo también tengo mis diferentes clases de modo de juego. Así que podría seleccionar, por ejemplo, un controlador de reproductor de aquí. Podría crear un controlador de reproductor a partir de aquí. Todo tipo de opciones bajo este botón de Planos aquí arriba. Así es como puedes acceder a tu modo de juego, editar tu juego, crear uno nuevo, cambiar cualquiera de los planos de framework que existe con dentro de él también. Bien, ahora para un ejemplo, caso de uso de planos de un modo de juego. Voy a necesitar un volumen de disparo y tengo uno al lado de mi nivel aquí. Pero si quieres obtener un volumen de disparo o una caja Trigger, lo mismo. Puedes hacer clic aquí mismo. Me gusta venir bajo la caja básica de Trigger. Adelante y déjalo caer a tu nivel. Y luego con él seleccionado en el panel Detalles, puedes establecer la extensión de tu caja. Tengo 100 en todos los ámbitos. Configuré el grosor de la línea en diez. Y luego también bajo la sección de renderizado, apagué actor oculto y juegos para que realmente pueda ver este volumen disparador. Ahora dentro de mi viejo blueprint de juego, voy a crear una variable. Entonces viniendo bajo la sección variable, haciendo clic en este botón más, voy a llamar a esto niveles. Y encima en el panel Detalles de aquí arriba, voy a cambiar mi tipo de variable, al menos la primera mitad de la misma para que sea entera. Y luego voy a hacer clic en este pequeño desplegable justo al lado de esto porque voy a cambiar el tipo aquí, el tipo contenedor para que sea un tipo de contenedor de mapa. Eso me va a permitir crear un par de valores clave. Si no viste el video sobre Contenedores variables de mapa, este es un buen momento para revisar eso ahora, lo contrario seguiré adelante. Entonces nuestra clave aquí va a ser de tipo entero R valor aquí va a ser del tipo de nombre. Voy a compilar esto y voy a sumar dos pares de valores clave. Entonces el primero que vamos a agregar es hacer clic en este botón más. Y voy a establecer este primero para que sea el nivel uno. Y voy a establecer el valor aquí para ser mapa de inicio. Y después voy a hacer clic una vez más en el botón Plus. Diré que el nivel dos va a estar asociado con un mínimo defecto de subrayado. Ahora bien, si estos me parecen familiares, estos dos nombres de mapas, eso es porque de vuelta en nuestro contenido inicial, mapas, tengo dos mapas con ese nombre, un mapa de inicio, uno, valores predeterminados mínimos. Notarás por carcasa para mapa de inicio dentro de mi variable hay un poco diferente, pero eso no importa. No para nombres, no para quemar tipos de variables. Entonces eso va a estar todo bien y bien. Voy a compilar y guardar esto muy importante que lo hagas para este siguiente paso. Y lo siguiente lo que voy a hacer es volver a mi editor de nivel aquí. Tenemos nuestra caja Trigger. Asegúrate de tener esto seleccionado para nuestro siguiente paso aquí. Y entrando bajo nuestro botón de plano aquí arriba, vamos a hacer clic en este plano de nivel abierto. Asegúrate de tener tu cuadro de activación seleccionado aquí Abrir Plano de Nivel. Y vamos a hacer clic derecho y algún espacio vacío. Vamos a agregar un evento para ese cuadro de activación para cuando empecemos a superponerlo, queremos saber si el otro actor era nuestro personaje de tercera persona. Así que Cast to ThirdPersonCharacter, lo hemos hecho 1 millón de veces. Y si de hecho fue nuestro personaje de tercera persona el que nos superpuso, queremos acceder a alguna información dentro de nuestro modo de juego. Ahora, la forma en que podemos hacer esto es hacer clic derecho y algo espacio vacío y escribir en get Game Mode. Ahora, podrías pensar, Bien, genial. Ya podemos acceder con esta nota aquí mismo. Bueno, ¿por qué no me acaba de sacar de aquí y ver si puedo acceder a esta variable de niveles que vive dentro de aquí? Así que sigamos adelante y probemos eso, ¿verdad? Salgamos de aquí y escribamos Niveles. Y no veo esa variable en ninguna parte de aquí. Bueno, eso es porque necesitamos lanzar al modo de juego rbp para poder acceder realmente a esa variable de nivel que vive dentro de ella. Entonces probemos esta droga fuera de aquí. Elenco al modo de juego BP. Ese es el Gamow que acabamos de crear. Y así, si tienes una configuración como esta, ahora puedes arrastrar fuera de tu panel de Modo de Juego SBP aquí mismo, escribir niveles, y aquí abajo, puedes obtener tus niveles, tu valor clave pares. Lo vamos a hacer es arrastrar fuera de aquí. Voy a escribir en bind. Y voy a decir que cuando empecemos a superponerse que queremos encontrar mira número dos ahí mientras estamos hablando de aquí por mí poniendo en el número dos es que queremos acceder a nivel a aquí mismo, y luego queremos abrir el nombre del mapa asociado al nivel dos. Entonces ponemos el número dos aquí mismo. Y voy a arrastrar fuera de aquí y escribir en nivel abierto por nombre. Puedes ver que la salida aquí es un tipo de variable de nombre, ese es este nombre aquí mismo, valores predeterminados mínimos. Ahora, cuando superponemos esa caja de activación, llegando a nuestro viejo plano del juego y diciendo, oye, modo Jay, tú determinas las reglas de nuestro juego. Y esta regla determina que cuando superponga esa caja de activación, voy a ir al nivel dos. Vamos a compilar esto. Vamos a ahorrar. Sigamos adelante y juguemos aquí. Establecer mi objeto de depuración. Claro. Para que veas que ese guión se desencadena tan pronto como me superponga esto. Y aquí vamos. Ahí estamos mínimos por defecto. El nuevo nivel. 99. Modo de juego (parte #2): Bien, probemos otro ejemplo aquí. Esta vez vamos a intentar responder al jugador. Entonces para esto, voy a comenzar en mi tercera persona Carácter Blueprint. Bajo planos en tercera persona, personaje de tercera persona. Vamos a hacer un poco de guión aquí primero. Entonces lo primero que vamos a hacer es traer una llave. Veamos qué tenemos todos aquí. Hacemos uso de las cuatro claves. Parece que no hemos hecho uso de eso. Entonces voy a hacer clic derecho en él algún espacio vacío, teclear cuatro. Hagamos teclado para. Y vamos a decir cuando presionemos la tecla F4, simplemente vamos a destruir al actor que significa nosotros mismos. Entonces presionando para, vamos a destruirnos a nosotros mismos. Genial. Todo eso es necesario para este siguiente paso. Así que compila y guarda esto. Ahora en nuestro modo de juego bp, dirígete hacia allí. Vamos a entrar en el Gráfico de Eventos de aquí. Vamos a hacer algo fuera de la garrapata del evento. Siempre hay que tener un poco cuidado cuando usas tick de evento. Puedes Bork tu juego haciéndolo demasiado scrip off de tick de evento. Pero para fines académicos, estaré usando este hecho. Si vengo bajo los valores predeterminados de clase, voy a decir que nuestro intervalo de tick va a ser cada 1 s. No necesitamos estar tomando cada fotograma. Entonces diremos cada 1 s. voy a hacer clic derecho y algo de espacio vacío, obtener personaje jugador. Entonces vamos a arrastrar fuera de esto y hacer reparto a nuestro personaje en tercera persona. Entonces lo que vamos a hacer es arrastrar fuera de aquí y escribir en destruido. Ahora bien, si empiezo a escribir en destruido, tenía esta asignación en destruido. Ese es el que estoy buscando, un letrero en destruido. Ahora cuando haga clic en esto, voy a traer dos nodos, un nodo Bind, así como un eventos personalizados. Voy a describir lo que está pasando aquí en tan solo un momento va a enganchar esto así. Y dejaré este nombre de evento personalizado como tal. Ahora bien, si todo esto le resulta familiar aquí, esta vinculación, uh, a este evento personalizado. Esto se debe a que esta es una configuración que usamos cuando hablamos despachadores de eventos para escuchar esto en un evento destruido en este caso, para nuestro personaje de tercera persona, nos estamos suscribiendo a nuestro personaje de tercera persona está en el despachador de eventos destruido. Eso es esencialmente lo que estamos haciendo. Quizá te estés diciendo a ti mismo, espera un minuto. En nuestro personaje de tercera persona, no creamos un despachador de eventos en absoluto. Bueno, si vuelvo a mi personaje de tercera persona, si me desplazo hacia abajo hasta mis despachadores de eventos, en realidad podré encontrar juego Event Dispatcher un despachador para el destruido. Ahora esto se llama cuando destruyo al actor. Ahora bien, si no ves nada de esto aquí abajo, es porque necesitas hacer clic en este ícono de engranaje y mostrar heredado. Si apagas eso, no muestres heredado, no lo verás. Este es un despachador de eventos heredado heredado de la clase padre. Entonces, si lo enciendes en el juego de despachadores de eventos ThirdPersonCharacter, esto onDestroy, esto se está llamando. Esto está enviando una señal cuando destruimos a nuestro personaje aquí en nuestro modo de juego, lo que estamos haciendo aquí es que nos estamos suscribiendo, estamos escuchando para que esto suceda en un evento destruido. Y entonces cuando eso suceda, esto se disparará y dirá, dile al siguiente nodo que haga lo que queramos que haga. Ahora lo que queremos hacer es querer responder, queremos reiniciar con nuestros jugadores. Entonces una forma en que podemos hacer esto es hacer clic con el botón derecho y algún tipo de espacio vacío en el controlador git player. Y si alcanzamos dentro nuestro controlador de reproductor genérico aquí nodo y hacemos una búsqueda para reiniciar el reproductor. Hay un nodo de función relacionado con el controlador de tu reproductor. Esto reiniciará a tu jugador en la ubicación de tu actor de inicio de jugador. Entonces esta configuración de aquí mismo será suficiente. Así que vamos a ver esto. Voy a compilar y guardar en juego. Entonces fueron las cuatro claves la que nos va a destruir. Y cuando estemos destruidos, vamos a ser respondidos enseguida en este lugar. Entonces déjame salir corriendo de ese lugar. Las cuatro claves. Yo respondo en ese spot, toco clave foránea, respondo a ese spot, etcétera. Ahora bien, para aquellos de ustedes que dicen, Oye, ¿por qué estamos usando event tick aquí? Bueno, si lo hice, comenzó a jugar un evento, Sigamos adelante y demos Evento Begin Play. Empecemos, terminemos el evento, comencemos a jugar un try. ¿Qué pasaría aquí? Y vamos a desactivar esto. ¿Estamos escuchando ahora para este evento OnDestroy?. En cuanto comencemos a jugar aquí, Eso es genial. Pero esa escucha de ese evento ya ha sucedido. Entonces esto sólo va a disparar la única vez que se adhiera a este evento. Al comenzar a tocar, lo estamos escuchando solo esa vez. Entonces, si presiono la tecla F4 aquí, sí nos roseta una vez. Pero si vuelvo a presionar la tecla F4, no pasa. Eso es porque escuchamos por primera vez al comenzar a jugar con tick de evento. Recuerden, estábamos escuchando esto cada segundo. Así es como configuramos nuestro tick de evento dentro de los valores predeterminados de nuestra clase, bien, algunas notas del modo de juego para terminar este video. El juego puede tener cualquier número de modos de juego. Solo tenemos una, sin embargo, configuración en la configuración de nuestro proyecto a la vez, tu modo de juego principal está configurado en la configuración de tu proyecto. Pero recuerda, puedes anular qué modo de juego se usa en tu configuración de mundo. Y lo puedes encontrar en Configuración del mundo de ventanas , ahí mismo. Siempre es posible anular el modo de juego en la configuración de tu proyecto. El plano del modo de juego es donde configuras las reglas para tu juego. Cosas como responder ubicaciones, cosas como a qué nivel viajar a continuación, cosas como el número de jugadores permitidos, ese tipo de cosas. El Modo Juego no es un gran plan para almacenar variables que necesitan trasladar datos de un nivel a otro. Cosas como vidas o puntuación. Ahora bien, esto se debe a que cuando abres un nuevo nivel, cualquier variable creada y almacenada dentro del modo de juego, o restablece de nuevo a sus valores originales. Y quiero demostrarlo aquí rápidamente antes de que terminemos este video. Bien, supongamos que en nuestro modo de juego bp que este es un gran lugar para almacenar cuántas vidas hay. El personaje puede tener alerta de spoiler. No lo es, sino que solo juega bajo nuestra sección de variables, vas a hacer clic en este botón más. Voy a llamar a esto vidas. Y por aquí es donde puedes asegurarte de que se establece en una sola variable de tipo entero. Voy a establecer mi vida por defecto aquí en cinco. El motivo por el que el mío apareció como cincos porque corté el video ahí en, recreé esto antes de tiempo. Ahora voy a compilar esto y ahorrar muy importante para hacer eso. A continuación, lo que voy a hacer es hacerlo para que dentro de mi personaje BP en tercera persona, vaya a decrementos cuántas vidas tenemos dentro de nuestro modo de juego. Así que terceraPersonaPersonaje. Voy a hacer clic derecho. No creo que esté haciendo nada fuera de la llave seis. Entonces, lo que vamos a hacer desde aquí es clic derecho en obtener el modo de juego. Vamos a lanzar a nuestro modo de juego bp. Y una vez que hayamos hecho esto, entonces podremos llegar al interior de aquí, averiguar cuántas vidas tenemos para sostenerlo. Consigamos nuestras vidas y nos secaremos de esto y tecleemos decrementos. Esto es una especie de nodo especial en el sentido de que estamos consiguiendo nuestras vidas aquí. Tenemos cinco, esto va a decrementar uno, restarle uno, y luego lo va a hacer retroceder. Así que no hay necesidad de establecer vidas aquí también. Entonces vamos a ir 54321, etcétera. Eso sería genial. Ahora cuando todo esto suceda, déjame seguir adelante y compilar esto. Guardar. Recuerda en mi Plano de Nivel, lo he hecho para que cuando superponga esa caja de gatillo, me vaya a transportar al nivel dos. Entonces después de que transporte a nivel a, mi personaje en tercera persona va a venir junto con, voy a presionar la tecla seis y ver cuántas vidas tenemos. Entonces esa va a ser nuestra prueba que vidas altísimas dentro de nuestro modo de juego. No es una gran idea porque esas variables se vuelven a ajustar a su valor predeterminado cuando cambias de nivel. Aquí vamos. Así que haz clic y juega. Voy a presionar esta tecla seis. Podemos ver, bueno en realidad ya sabes lo que tengo que hacer, necesito imprimir esto en la pantalla. Vamos a arrastrar aquí. Imprimir cadena. Imprimamos estos resultados. Así. Compila, guarda y juega. Establecer mi opción de depuración para que sea mi terceraPersonCharacter. Entonces ahora cuando presiono la tecla seis, 4321, así me queda una vida, por así decirlo. Voy a superponer esto. Vamos a ir a otro nivel. Ahora cuando presiono la tecla seis, asumirías que tengo una vida, no debería bajar a cero, sino 4321, esa variable vidas se vuelve a poner a cero. Entonces solo un poco de matiz ahí para entender con el plano del Modo Juego. Cualquier variable que establezca dentro de aquí, se establecerán en, volverán a sus valores predeterminados si alguna vez cambias de nivel. Bien chicos, eso lo va a hacer todo por esta discusión sobre los planos del Modo Juego. Es el blueprint que establece otros blueprints de framework aquí dentro de los valores predeterminados de tu clase. Y es un gran lugar para establecer reglas para tu juego, como responder funcionalidad. Eso lo hará todo por este video. Nos vemos en la siguiente. 100. peón: Bienvenida y continuando nuestra discusión sobre los planos marco. Nuestro objetivo en este video es conocer qué es un Plano de Clase Peón. Cómo crear uno en cómo configurar uno para que nuestro proyecto sepa usar se crean Pawn Class Blueprint como el avatar predeterminado que queremos controlar. Entonces hablemos de qué carajo es un Plano de Clase Peón todo un estanque, es un actor que puede ser poseído y recibir aportes. Es la representación física de un jugador o entidad de IA en el mundo. Ahora los peones pueden ser humanoides, igual que nuestros personajes en tercera persona que hemos estado controlando hasta este momento en el curso. O puede que no sea humanoide. Entonces podría ser algo así como un auto o una nave espacial, una bola rodante, algo así, que puedas controlar. Bien, sigamos adelante y creemos una clase de peón. Y podría hacerlo de inmediato desde aquí dentro de la configuración de nuestro proyecto, mapas y modos, menú desplegable del modo de juego seleccionado haciendo clic en este botón más justo aquí junto a Clase de empeño predeterminada, podría crear el plano adecuado utilizando este método. Yo sólo elijo una carpeta. Yo querría guardarlo en etcétera. Sin embargo, no voy a hacer esto solo para mostrarte cómo podemos crear esto aquí en nuestro editor de niveles, voy a entrar bajo mi carpeta de framework de scripting. Y si hago clic con el botón derecho aquí, también puedo pasar bajo la clase Blueprint. Y has visto esta ventana 1 millón de veces, elige una clase de padres. Una de las más comunes para crear son las clases de peón. El segundo aquí abajo, y dice, un peón es un actor que puede ser poseído y recibir aportes de un controlador. Sigamos adelante y haga clic aquí el peón. Y voy a nombrar a este tipo BP subrayado peón. Y luego voy a hacer doble clic en m2, abrirlo enseguida. Vamos a configurar algunas cosas en el panel Componentes. Entonces lo primero que vamos a agregar aquí, haga clic en Agregar debajo de componentes es que agregaremos una malla estática. Y en el panel Detalles, tengo en mente una malla estática dada. Es HMD es lo que quiero buscar. Estoy buscando este HMD genérico. Ahora bien, esto es algo que se encuentra en la vía de tu motor. Entonces, si no ves esto y quieres seguir adelante en casa, haz clic en ese ícono de engranaje, haz clic en ese ícono de engranaje, asegúrate de que el contenido del motor de espectáculos esté activado. Esto va a parecer un auricular de realidad virtual. Vamos a controlar uno de esos. Voy a mandar mi báscula aquí, 255.5 con este icono de candado puesto, solo puedo cambiar uno de estos. Voy a elegir el medio aquí, la escala y, haga clic en F5. Entonces cuando presiono Enter, porque tengo ese icono de candado puesto por aquí. Al presionar Enter, lo va a establecer en cinco en todos los ámbitos. Bien, también voy a cambiar el material para que este sea Chrome. Voy a hacer una bola cromada. Así que vamos a, vamos a dirigir algo así por ahí. Eso es emocionante. Bien, siguiente componente quiero agregar aquí. Asegúrate de que tenemos seleccionada nuestra ruta vista predeterminada. Entonces así es como funciona. El senior por defecto en todos tus demás componentes que agregues se van a adjuntar a él. Así que ahora mismo nuestra malla estática está unida a nuestra raíz de escena predeterminada. Ese es esencialmente un punto en el espacio al que estamos adjuntando las cosas. Entonces elegiré ruta vista predeterminada, elija brazo de resorte, brazo de resorte. Piensa en eso como un palo selfie. Vamos a usar esto para conectar un componente de cámara también, lo que podría, con mis componentes armados por resorte seleccionados. Voy a agregar y adjuntar una cámara componentes, no cámara Sony, solo cámaras de cámara viejas simples. Un buen nombre. Aceptaré eso para que podamos ver cámara está unida a nuestro brazo de resorte. Para la cámara, voy a establecer la ubicación para que esto sea 100. Déjame alejar mis viewports. Puedo ver que la rotación vamos a establecer sea negativa 20. Y si selecciono mi brazo de resorte, se puede ver ahora mismo que si tuviera que girar mi brazo rociador alrededor, presionando la barra espaciadora, la cámara va a ir junto con ella. Ahora la razón por la que esto está compensado, no está apegado a esa línea roja. La cámara de brazo de resorte, que está determinada por esta longitud de brazo. Por cierto, podrías poner eso más, más lejos, más cerca, voy a poner eso en 300. Ahora bien, la razón por la que esto no está unido a esa línea roja justo ahí es porque tengo la altura Z establecida para ser 100 y la estamos angulando hacia abajo negativos 20 grados en la dirección y. Por último, pero no menos importante, vamos a agregar un componente de movimiento flotante Move are floating pond movement. Y dice en nuestra pequeña punta de herramienta aquí, este es un componente de movimiento que proporciona un movimiento simple para cualquier Clase de Peón. Yo digo que vayamos con él, sí, ya que vamos a necesitar eso para mover este auricular gigante alrededor. Ahora, aquí voy a hacer trampa. Voy a copiar y pegar algún script de nuestro ThirdPersonCharacter en el Event Graph de nuestros pons. Así que tengo mi terceraPersonCharacter abierto por aquí. Si te olvidaste o ese tipo es planos en tercera persona. Ahí está tu terceraPersonaPersonaje. Entonces, ¿qué quiero robar aquí? Bueno, quiero robar. Los controles de movimientos. Entonces donde dice movimiento, entrada, gamepad y mouse, voy a hacer click izquierdo, arrastrar por todos estos Control C. Voy a entrar en mi gráfico de eventos de estanques. Voy a eliminar todos estos y hacer Control V para pegarlos aquí. Y luego voy a volver a mi terceraPersonaPersonaje. Y quiero poder mirar a mi alrededor. Entonces esta va a ser nuestra mirada alrededor de los controles para el ratón. Estoy usando un ratón. Tienes gamepad. Mira a tu alrededor los controles por aquí. Voy a robar la entrada de la cámara, las entradas de mirada alrededor para el ratón. Clic izquierdo arrastrar, Control C, vuelta en mi estanque, Control V. Ahora, eso está todo bien y bien. Esto me permitirá mirar a izquierda y derecha. El guiñada y el terreno de juego aquí me permitirán mirar hacia arriba y hacia abajo. Sin embargo, necesito cambiar algo vuelta en mi clase por defecto de mi estanque aquí. Entonces en mi clase los valores por defecto, peón, estoy buscando un par de casillas para marcar, y están justo aquí arriba donde dice usar el tono de rotación del controlador. Quiero asegurarme de que eso esté comprobado. Donde dice usar mandibula de rotación del controlador. Quiero asegurarme de que eso también se verifique para que pueda lanzar mi cámara hacia arriba y hacia abajo y también mirar a izquierda y derecha. Bien, con todo esto hecho, voy a compilar y guardar. Y ahora para que realmente pueda probar esto, necesito colocar mi peón BP aquí para que sea mi Clase de Peón por defecto. Ahora podría hacerlo aquí. Pero solo para presumir diferentes técnicas, voy a volver a mi editor de niveles aquí. Tengo este plano de botón justo aquí arriba. Entonces voy a seleccionar que mi modo de juego actual es mi modo de juego b p. Déjame bajar a mi carpeta de framework de scripting. Puedes ver en el último video que creamos el modo de juego BP, dando click justo arriba aquí. Ese es actualmente mi modo de juego. Entonces, si elijo en este desplegable de aquí, peón actualmente, ThirdPersonCharacter, seleccionemos una nueva Clase de Peón. Y voy a elegir mi b p upon. Entonces voy a ponerla ahí mismo. Puedes ver si vuelvo aquí, vengo justo debajo de aquí, eso ahora se ha puesto como mi nuevo estanque. Si entro en el modo de juego ácido sí mismo haciendo doble clic sobre él. Puedes ver aquí ya se ha cambiado mi Clase de Peón por Defecto. Y también, si vas a la configuración de tu proyecto, puedes ver que tu Clase de Peón ha sido cambiada aquí también. Entonces lo cambias en cualquiera de esos tres lugares. Lo cambia en los otros lugares. Entonces ahora, cuando vaya y haga clic en el botón de reproducción aquí, no voy a aparecer como el personaje de la tercera persona aquí mismo en el jugador inicia actor, voy a engendrar como su gigante auricular VR. Sigamos adelante y demos una jugada a esto. Déjame volver a mi estanque aquí también. Para que veas que este guión se dispara. Así que voy a hacer clic en reproducir aquí mismo. Ahí están mis auriculares gigantes. Permítanme seleccionar mi objeto de depuración como mi generado en BP pond. Para que veas que todo esto está disparando continuamente. El eje de entrada gira a la derecha. Déjame acercarme un poco a esto. Estos están disparando continuamente. eje de entrada se mueve hacia adelante y hacia atrás, se mueve a derecha e izquierda Los eventos de Axis se disparan continuamente así. A ver si puedo moverme. Podemos ver que estoy puedo mirar alrededor y mantener pulsado el botón derecho del ratón. Izquierda y derecha. Eso es guiñada, cabeceo hacia arriba y hacia abajo. W a S. Andy, parece que me estoy moviendo. Basta con encontrar que ahora tenemos un peón con el que podemos jugar. Y así ahí lo tienes. Si tienes estos componentes en este guión, puedes tener planos sobre una también puedes tener planos sobre una clase para controlar en tu juego. Por supuesto, debes tenerlo configurado dentro de tu modo de juego, configuración de tu proyecto en ese espacio predeterminado de Pawn Class. Bastante genial. Bien, en la segunda parte aquí vamos a crear un plano de clase de caracteres. Una clase de personaje deriva de una clase de peón. Los veremos a todos en el siguiente video. 101. CARÁCTER: Bien, bienvenido de nuevo. En este video, nuestro objetivo es crear un plano de clase de personaje desde cero. Ahora la clase de personaje es una extensión de la Clase de Peón, y es un tipo especial de peón que tiene la capacidad de caminar por ahí. Pensé que lo incluiría aquí dentro de nuestro marco Discusión de Blueprint porque dentro de la configuración de nuestro proyecto, donde se pueden encontrar todos nuestros planos marco, así como dentro de nuestro modo de juego, donde los planos del marco se pueden encontrar en ranurado en cualquiera o. Tenemos un espacio para Default Pawn Class, y ahí es donde un blueprint de clase de personaje se puede ranurar en un estanque o un personaje puede ser ranurado porque el personaje deriva de la Clase de Peón. Ahora para ayudar a llevar a casa este punto, vamos a volver a nuestra carpeta de framework de scripting. Y vamos a hacer clic derecho en algún espacio vacío donde vamos a crear una Clase Blueprint. Y aquí mismo en nuestra ventana pick parent class, podemos ver si elegimos un personaje. Dice que un personaje es un tipo de estanque que incluye la capacidad de caminar por ahí. Y si nos encontramos bajo son todas las clases sección echa un vistazo a la jerarquía de diferentes clases de blueprint. Debajo de la clase de actor. Podemos encontrar, acabo de expandir ese triángulo ahí. Podemos encontrar la Clase Peón. Peón hereda del actor. Y dentro de aquí podemos ver que la clase de personaje hereda del peón. Voy a elegir personaje justo aquí arriba. Voy a nombrar a este personaje de subrayado BP, subrayado femenino. Entonces vamos a hacer doble clic sobre esto para abrirlo. Y se puede ver que tenemos un poco de trabajo que hacer aquí porque no vemos nada en nuestra ventana gráfica. Así que sigamos adelante y comencemos. Lo primero que quiero hacer dentro de nuestro personaje, plano femenino sobre sus valores predeterminados de clase. Quiero entrar bajo el panel Detalles y donde dice usar el controlador de rotación de guiñada. Quiero desmarcar esto. Nota. Si se dejara verdadero, nuestro personaje automáticamente estaría orientado en la dirección que estamos buscando. Ya sabes cómo puedes hacer pivotar esa cámara alrededor de tu personaje. Bueno, si dejaste eso cierto, tu personaje automáticamente estaría mirando también en esa dirección. Quiero desmarcar eso porque quiero que nuestra cámara se vea cara a cara con el personaje. Puedes experimentar con eso si quieres, cuando hayamos terminado con todo este proceso. Bien, voy a seleccionar nuestra malla a continuación. Y encima en el panel Detalles necesito ranura en una malla esquelética. Sigamos adelante y zapatos. Tenemos SKS, Manny, que es la versión masculina que voy a hacer S, K, M, Quinn. Va a ser la versión femenina la que va a cargar aquí. Ahora mientras eso se está cargando, y también voy a slot en una clase de animación también. Entonces bajo clase de anime, voy a estar buscando a ABP Quinn. Y ya verás a Quinn animando. Además, necesito poner un poco mi malla de personajes aquí abajo. Entonces voy a establecer la ubicación, la ubicación z para que sea negativa 87. Voy a ser súper preciso con esto. Eso va a ser lo suficientemente bueno. La rotación que voy a establecer para que sea negativa 90. Esta flecha azul indica hacia adelante. Entonces quieres tener a tu personaje mirando hacia adelante así así. Bien, a continuación con nuestro Componente Capsule seleccionado, voy a agregar componentes de brazo de resorte. Un componente de brazo de resorte es esencialmente como un palo selfie, aunque hay una configuración o dos que pueden ser muy útiles para controlar cosas sobre tu cámara. Voy a dejar ese nombre ahí como brazo de resorte y otra vez en el panel Detalles, quiero encontrar debajo de la configuración de la cámara aquí mismo, Usar Rotación de Control de Peón. Quiero asegurarme de que esto esté comprobado. Ahora esto va a hacer que cuando mantengamos pulsado el botón derecho del ratón en nuestro juego y giremos alrededor, la cámara va a girar alrededor, que es algo que sí queremos. Para que puedas jugar con esa configuración tan pronto como hayamos terminado con este video. A continuación, quiero seleccionar, con mis componentes de brazo de resorte seleccionados aquí. Quiere agregar una cámara. Hoy en día, la cámara de Sydney, pero solo una cámara normal, y debería estar sangrada así. La cámara de esta manera está unida a tu brazo de resorte, está esencialmente unida al extremo de tu selfie stick aquí para que puedas ver mi brazo de resorte. Si tuviera que cambiar la longitud del brazo objetivo, la cámara se ajustaría con él. Establezca eso de nuevo a su valor predeterminado de 300 por ahora. Entonces con mi cámara seleccionada, no hay nada que quiera cambiar aquí, aunque voy a señalar dentro de aquí que si quisieras, podrías cambiar algo como tu campo de visión ajuste. muchos usuarios les gusta jugar con eso. Juega con eso, encuentra un campo de visión que sea de tu agrado. A continuación, voy a cambiar mi componente de movimiento de personaje aquí. Tengo uno dentro de aquí que se llama Orientar Rotación al movimiento. Ahora hay muchos parámetros diferentes dentro del componente de movimiento de tu personaje que controlan las propiedades de movimiento de tus personajes . Si busco esta audiencia. Ese es el que estoy buscando, Orient Rotation dos movimientos. Yo sí quiero comprobar esto. Al verificar esto, voy a orientar que es rotar el personaje para moverlo en la dirección que estás tratando de ir. Sin eso, va a ser para que tu personaje pueda estar pareciendo que está caminando en una dirección mientras en realidad se mueve en otra dirección. Entonces esa es una buena para asegurarte de que te han comprobado. A continuación, si salto a nuestro gráfico de eventos, puedes ver que aquí no tengo ningún guión que vaya a controlar cómo se mueve mi personaje. Voy a hacer trampa en interés del tiempo. Entonces voy a eliminar estos nodos. Vamos a saltar a nuestro terceraPersonpersonaje y robar algunos nodos de ahí como hicimos en el último video. Entonces, si no tienes ThirdPersonCharacter abierto bajo personaje en tercera persona , planos hacen doble clic en tu personaje en tercera persona. Dentro de aquí, vamos a robar nuestros controles de movimientos aquí mismo, todas estas cosas, click izquierdo, arrastrar, controlar C, entrando en nuestro personaje, hembra, control V para pegar. Esto va a controlar nuestro personaje son los movimientos hacia adelante y hacia atrás, así como nuestros movimientos de izquierda y derecha que vienen bajo nuestro personaje de tercera persona. Una vez más, ahora voy a robar mi ratón de entrada de cámara. Si tienes un gamepad con el que también quieres jugar tu juego, podrías considerar robarte eso. Sólo lo estoy controlando con el ratón, así que voy a hacer click izquierdo y arrastrar aquí mismo, controlar C, entrando bajo personaje femenino, control V. Y con todo eso hecho, sigamos adelante y compilemos y guardar. Bien, a continuación, vamos a ranurar en nuestro personaje bp hembra como nuestra clase de estanque predeterminada. Así que vamos a saltar de nuevo a nuestro editor de niveles aquí. Y quiero poner esto en la configuración del lado de nuestro mundo. Voy a anular nuestra configuración mundial, nuestra configuración del proyecto en este momento. Estoy usando mi modo de juego b p. Si utilizo este modo de juego para todo mi proyecto, esto va a determinar los planos de marco utilizados para cada nivel, cada mapa de mi proyecto, a menos que los anule en mi configuración del mundo. Entonces ahora mismo la configuración de mi proyecto está diciendo, Oye, si haces clic en el botón Reproducir, vas a estar usando tu estanque BP. Y eso lo podemos ver por mí jugando. Ahí están los auriculares VR de mi hijo. Ese es mi estanque BP que creamos aquí dentro de nuestra carpeta marco, BP pond. Quiero decir que soy un escenario mundial. Voy a cambiarlo por sólo este mapa. Esto anulará la configuración del proyecto. Ahora para hacer esto, voy a elegir un modo de juego diferente dentro de la configuración de mi proyecto. Actualmente tengo mi modo de juego BP. Entonces voy a decir por nuestra configuración del mundo. Y si no tienes esto abierto, puedes pasar por debajo Ventana y activar la configuración de tu mundo ahí mismo. Eso traerá en este panel. Para nuestro modo de juego aquí, voy a usar, diré BP, modo de juego en tercera persona. Y aunque normalmente tenemos al personaje en tercera persona ranurado como el personaje para rodar con relojes haciendo clic en Reproducir, ahora controlamos el personaje de tercera persona. En lugar de nuestro peón bp, puedo decir en cambio, optemos por usar nuestro personaje bp femenino. Sólo para mostrar otra forma de enmarcar algo aquí, podría elegir algo de la lista desplegable. Sin embargo, aquí podría seleccionar mi personaje BP femenino. Y con ese seleccionado, simplemente haga clic en esta flecha de aquí para usar el ácido seleccionado del navegador de contenido. Y ahora con esa ranura en, podría controlar mi personaje femenino BP, personaje femenino. Y puedes ver que me estoy moviendo en la dirección que mi personaje está orientando, o mi personaje está orientado en la dirección que quiero mover. Y también soy capaz de correr hacia la cámara como así mostrar un poco de mejora. Algunas de esas casillas de verificación, casillas de verificación simplemente me dejaron salir de aquí rápidamente. Si tuviera que volver a mi personaje BP, componente de movimiento de personaje femenino y desmarcar, Orientar Rotación a movimientos. Y luego haz clic en Reproducir. Ahora mira esto. Cuando me muevo, mi personaje hace esto. No se orientan a la dirección que estoy tratando de mover. Así que voy a seguir adelante y poner ese componente de movimiento de carácter atrás. Sigamos adelante y verifiquemos eso. Siguiente. Tenga en cuenta que en nuestro componente de brazo de resorte, habíamos verificado esto. Necesito deshacer el filtro de búsqueda ahí. Habíamos comprobado a este joven al establecer la rotación. Si desmarca eso y juego, y mantengo pulsado el botón derecho del ratón, lo que estoy tratando de hacer ahora mismo. En realidad no estoy rotando alrededor de mi personaje. En cambio, la cámara solo se mueve y gira por sí sola para enfrentar cualquier dirección en la que se mueva mi personaje. no necesariamente me gusta, así que voy a volver a comprobarlo. Y finalmente, si recuerdas de vuelta en nuestra clase los valores predeterminados lo habíamos hecho para que desmarcamos usar la rotación del controlador. Ya si tuviéramos ese cheque, si lo hicimos. Y luego seguimos adelante y jugamos, voy a correr por ahí usando WAS y D. Se puede ver cómo se obtiene este tipo de resultado aterrador, que se ve terrible. Puedo girarlo así. Y mi personaje va a patinar y simplemente de cara en cualquier dirección que esté buscando. Realmente no me gusta tanto. Y así es por eso que prefiero tener eso descontrolado también. Bien, ahí lo tienes. Hemos creado un plano de clase de personaje desde cero. Con eso creado, puedes seguir adelante y colocar en cualquier personaje o estanque en tu defecto en clase y cualquier modo de juego que hayas elegido. Puedes ver aquí en nuestra configuración del mundo, estamos anulando el modo de juego solo en este mapa, solo este mundo que hemos establecido en la configuración de nuestro proyecto. Si no tuviéramos nada atrás aquí en nuestra configuración mundial, la configuración del proyecto determinaría Clase de Peón que se usaría en este mapa. Eso va a hacer para ofrecer este, chicos, nos vemos en la siguiente. 102. Controlador de jugador: Bienvenida. En este video, nuestro objetivo es conocer el papel del plano del controlador del jugador en la configuración general de nuestro proyecto de juegos. Y también para explorar algunos conceptos de scripting que a menudo se asocian con planos de controlador de jugador. Ahora bien, si iba a sumergirme en mi configuración, mi configuración de proyecto, en nuestra sección de mapas y modos. Si ampliamos nuestro modo de juego selectivo aquí mismo, podemos encontrar la clase de controlador de jugador. Ahora, una vez más, podemos ranurar en un controlador de jugador aquí o dentro de nuestro modo de puerta de enlace predeterminado. Si cambiamos algo dentro de nuestro modo de puerta de enlace predeterminado, ese es uno de estos blueprints de framework aquí mismo. También lo cambiará dentro de la configuración de nuestro proyecto. Entonces el modo de juego es el que determina la detención del marco. Los planos lo cambian en un solo lugar, como aquí. Lo cambiará en tu modo de juego y viceversa. Si lo cambias aquí en tu modo de juego, como un controlador de jugador, lo cambiará en la configuración de tu proyecto. Por lo que la clase de controlador de jugador va a ser el foco de este video. Ahora aquellos de ustedes que han estado jugando a lo largo de todo el camino desde el inicio de este video, tal vez recuerden que hemos creado un plano de controlador de reproductor. De hecho, en el video titulado los eventos comienzan con el cursor sobre. Creamos el controlador de reproductor bp. Y la razón por la que creamos que hay para que pudiéramos activar y hacer clic en eventos y también mostrar el cursor del mouse. Hay algunas cosas específicas un plano de controlador de jugador en las que nos sumergimos antes en el curso solo para mostrarlo ahí. Pero ahora, aquí está la parte en la que explicamos qué carajo es incluso un controlador de jugador. Lo que es de propósito general está en el marco de los planos de Unreal Engine. Ahora, para entender mejor qué carajo es un plano de controlador de jugador en Unreal. Considera este escenario. Considera un juego como Lego Star Wars, donde podrás controlar a toda una serie de personajes, pero solo uno a la vez. Tú como jugador tienes algunas ganas, algunas cosas que te gustaría hacer con tu personaje y el juego en sí. Tú, el jugador empuñas un controlador. En este caso, diremos que es este mando Xbox. Ahora estás jugando al juego y estás controlando solo un personaje a la vez. Digamos que estás empezando como Yoda aquí. Puedes presionar el botón a para hacerlos saltar. Puedes presionar el botón X para que haga que balancee su sable de luz, etcétera. Ahora sin embargo, digamos que Yoda muere. Lo siento, Yoda, te has ido. Ese personaje se ha ido. Ahora, tu controlador de jugador, que está representado por este controlador real, posee un nuevo personaje, en este caso Anakin. Ahora, de nuevo, con Anakin, puedes presionar el botón a para saltar, el botón X para empuñar su sable de luz, etcétera. Pero entonces, oh, y puedo morir. Entonces esa clase de personaje se va adiós. Sin embargo, el controlador de tu reproductor sigue vivo y sigue apegándose a nuevos jugadores. En este caso, ahora estás controlando cuenta Du Gu fueron una vez más, puedes presionar el botón a para saltar, presionar el botón X para balancear su sable de luz, etcétera. Y tal vez quieras incluso hacer algo como acceder al menú de pausa. Ahora bien, si tuvieras que construir parte de esta funcionalidad dentro del plano de clase de personaje, ¿qué pasa si tu personaje está muerto? Como por ejemplo, ¿y si estuvieras de vuelta aquí controlando a Yoda? Y esa funcionalidad para pausar el juego existía dentro de tu plano de clase de personaje Yoda. Bueno, una vez que esté muerto, no habría forma de pausar el juego. Los planos del controlador del jugador existen a lo largo de tu sesión de juego Y puedes pensar en un controlador de jugador como las cuerdas de títeres utilizadas para controlar tu títere, tu clase de personaje. Entonces, cualquier tipo de funcionalidad compartida que puedas tener entre clases de personajes o cualquier funcionalidad que quieras tener para ti, el propio jugador, como pausar el juego o interactuar con una pantalla de menú. Ese tipo de funcionalidad que querrías construir en el plano de tu controlador de reproductor. Entonces, en definitiva, cosas para recordar con un controlador de jugador, los controladores de planos son actores no físicos que pueden poseer un estanque o una clase derivada de estanque como un personaje. Por defecto, existe una relación uno a uno entre controladores, un controlador de jugador y un peón, también conocido como un personaje. Cada controlador controla solo un estanque a la vez. Y los controladores de reproductor se utilizan mejor para implementar funcionalidad centrada en el usuario , como abrir un menú de pausa o una pantalla de inventario. O para funciones de personajes compartidos, como balancear un sable de luz si todos tus personajes pueden hacer ese tipo de cosas. O saltando, si de hecho todos los personajes posibles también pueden saltar, cualquier tipo de funcionalidad específica de personaje, ese tipo de funcionalidad debería existir dentro de tu estanque o personaje plano de clase en sí y no el controlador del reproductor. ¿Bien? Si aún no tienes un controlador de jugador Blueprint construido desde antes en el curso. Puedes crear uno ahora haciendo clic con el botón derecho. Controlador de reproductor de clase Blueprint. Y le nombramos a ese tipo bp player controller. Y una vez más, quieres meter esto en tu framework. La forma en que puede hacerlo es bajo la configuración de su proyecto, que se puede acceder aquí Configuración, configuración del proyecto y en mapas y modos, puede insertarlo allí mismo. Alternativamente, en tu modo de juego, el plano en sí mismo. Y una vez más, tenemos el BP Game Mode dominando nuestro proyecto aquí. En este activo en sí, el plano del modo juego. En el lado derecho, puedes colocar el controlador de tu reproductor ahí mismo. Lo cambias aquí, también lo cambiarás en la configuración de tu proyecto. También de vuelta en tu editor de niveles, si te encuentras bajo tu botón de Planos aquí mismo, y te expandes en Configuración del proyecto, Modo de juego, controlador de jugador. Aquí puedes editar tu controlador de reproductor actual, crear uno nuevo o seleccionar uno existente. Ahora bien, si abres tu controlador de reproductor bp aquí, antes en el curso, teníamos clase predeterminada seleccionada dentro de nuestro controlador de reproductor bp. Y aquí es donde verificamos la capacidad de mostrar un cursor del mouse para habilitar eventos de clic y para habilitar eventos de mouseover. También podemos habilitar eventos táctiles. Entonces, hay algunas cosas muy específicas del juego, formas de interactuar con tu juego y tus menús que se encuentran dentro del plano de tu controlador de jugador. Ahora, antes de que comenzara este video, seguí adelante y creé alguna funcionalidad dentro de nuestro controlador de reproductor bp aquí, quería mostrar cómo podíamos escribir alguna funcionalidad de personaje dentro de nuestro controlador de reproductor. Ahora recuerda, cuando estás jugando un juego, eres el controlador de jugador se conecta a cualquier peón que sea que estés controlando peón o personaje cada vez que lo hayas configurado dentro de tu Default Clase Peón. Ahora mi guión aquí es que lo estoy haciendo para que cuando presiono el botón Arriba, esté obteniendo mi personaje de jugador actual, el que estoy jugando y simplemente estoy lanzando el personaje. Ahora el objetivo aquí es un personaje, no un estanque. Entonces esto sólo funcionará para personajes que estoy controlando. También podría haber llamado a esta función de salto que también existe dentro de mi blueprint de clase de personaje también. Pero yo quería hacer este personaje de lanzamiento a porque es genial. Y b, porque muestra otra función específica de carácter que podríamos usar. Debes conseguir el personaje del jugador y arrastrarte si eres el primero para poder encontrar esto. Y todo lo que va a pasar aquí es cualquier personaje que esté poseyendo aquí. Si presiono la tecla arriba aquí, mi plano del controlador del reproductor, simplemente voy a lanzar cualquier personaje que esté controlando hacia arriba en el eje z usando ese valor. Esto es como un súper saltos. Entonces, si solo tuviera que jugar aquí, configuraré mi depuración. Objetar a mi controlador de jugador de préstamo. Trae de nuevo a mi personaje. Tengo algunos personajes más aquí afuera que usaremos en breve. Entonces ahora cuando presiono la tecla arriba en mi teclado, eso es como un súper salto. Así que esto de hecho prueba que puedo escribir funciones específicas de caracteres aquí dentro del plano de mi controlador de reproductor. Bien, ahora considera este escenario vuelta en mi editor de niveles. He colocado a dos hembras de personajes BP más en mi propio nivel. Simplemente les renombro personaje femenino verde y un personaje femenino rojo. Y simplemente cambio el cero material para que uno de ellos sea verde. Y lo hice seleccionando la malla de caracteres, cambiando el elemento cero a verde, y seleccionando el otro, seleccioné la malla de caracteres y cambié el elemento cero para leer. Y luego con cada uno de estos seleccionados, hice esto uno a la vez. Entré en mi Plano de Nivel y creé este guión aquí mismo. Hay una referencia a mi personaje o femenino. Creo que esa es la correcta. Necesito actualizar esto. Voy a hacer clic derecho sobre esto y refrescar ese nodo. Ahí está el rojo, ahí está el verde. Tú, siempre y cuando los tengas seleccionados en tu nivel, como tu rojo aquí mismo, puedes volver al Plano de Nivel, mantener presionada la tecla Alt y hacer clic con el botón izquierdo. También podrías hacer lo mismo con el verde femenino. Y anote mi configuración aquí. Si traigo un nodo get player controller, puedo encontrar nodos, nodos de función para despreposeer un objetivo y luego poseer otro objetivo. Así que mira este agarre que tengo pasando aquí dentro de mi plano de nivel. Cuando presiono la tecla tres, la primera vez, vamos a disparar fuera de esto una salida. En cuyo caso vamos a conseguir nuestro controlador de reproductor. Ese es el controlador de jugador estemos usando en ese momento, nuestro controlador de jugador bp, vamos a y poseeremos cualquier objetivo que estuviera controlando. En este caso, será poco atractivo. En mi entorno mundial, actualmente estoy desove en una hembra de personaje BP. Será poco preposeedor de este personaje femenino. Entonces se le diga que posea. Este controlador jugador transferirá la posesión sobre dos. Mi personaje BP, rojo femenino. Entonces la segunda vez que presione la tecla tres, vamos a disparar fuera del pin de salida B porque el flip-flop va a, luego B que a que B. Así que la segunda vez que presione la tecla tres lo hará disparar fuera de la viga. Vamos a, estoy poseído cada vez que ahora estamos controlando, que en este caso será el personaje rojo. Y luego transferiremos la posesión al personaje femenino verde. Entonces a nuestro controlador de jugador se le está diciendo y poseer un personaje y poseer uno nuevo. Así que vamos a hablar de esto arriba en la parte superior izquierda aquí. Voy a hacer clic en Reproducir. Trae nuestro objeto de depuración de nuestro mapa de prueba. Y entonces échale un vistazo. Entonces, si también presiono el botón Arriba ahora mismo, tengo esa funcionalidad de súper salto construida dentro de mi personaje de jugador. Eso es súper capacidad de patear saltando. Eso se transferirá a cualquier personaje que posea. Entonces estoy presionando la tecla arriba. Bien, ahora voy a presionar la tecla tres mientras está a mitad de vuelo. He transferido la posesión a mi personaje rojo aquí. Echa un vistazo a esto. Si presiono la tecla arriba aquí, funcionalidad de mi controlador de reproductor transfiere y puedes ver mis otras, vuelo de algodón, están presionando las tres teclas. Presiono la tecla F3. Cuando estaba en vuelo, he transferido la posesión por el controlador del jugador ahora está controlando mi personaje femenino verde. Y por supuesto esa funcionalidad que construí dentro de mi controlador de reproductor bp también se transferirá. Entonces, si presiono la tecla arriba mientras controlo el carácter verde, también puedo Super saltar. Entonces esa es una demostración que muestra que dentro de mi controlador de reproductor bp, puedo construir funcionalidad para cualquier funcionalidad que quiera que todos los personajes compartan, todos los estanques para compartir. No obstante, tengo una funcionalidad muy específica para un personaje o peón individual. Ese tipo de guión sería lo mejor para poner dentro del estanque o personaje individual. Bien, ahora también mencioné que construir algo como interacciones de pantalla, pausar el juego, etcétera, ese tipo de cosas es genial para construir dentro de un plano de controlador de jugador porque peones, personajes que pueden morir controladores de jugador existe a lo largo de toda tu sesión de juego. Así que voy a subir un poco de espacio vacío aquí. Voy a hacer clic derecho. Voy a hacer una búsqueda teclado y hagamos algo cuando presionemos la tecla P, P. Y voy a hacerlo para que cuando presione la tecla P, vaya a traer un nodo flip-flop. Entonces, la primera vez que lo presionemos disparará de un. la segunda vez que lo presionemos rodará en un latido. Y todo lo que quiero hacer aquí es establecer juego, pausado. Control C, control V. Así que la primera vez que pulsamos la tecla P, queremos configurar el juego para que se padezca. La segunda vez que presiona la tecla P. Queremos configurarlo para que sea unpause. Ahora esto es muy importante. Compruébalo con tu tecla P seleccionada aquí. Debe asegurarse de marcar esta casilla para ejecutar cuando se pausa. Porque si dejamos esto desmarcado, podrías presionar la tecla P para pausar el juego. Pero debido a que el juego está en pausa, no reconocería presionar de la tecla P para volver a ponerla en pausa. Entonces tienes que asegurarte de que eso esté marcado si quieres poder usarlo para pausar y deshacer la pausa. Entonces mira esto. Estoy jugando el juego. Puedo correr por ahí, presionar la tecla P, el juego está congelado. Al presionar de nuevo la tecla P , la descongelará. Presionaré las tres teclas, cambiaré a mi personaje rojo aquí, presionaré la tecla P, una pausa, presionaré nuevamente la tecla P en pausa, e igualmente transferiré la posesión a mi personaje verde. Presiona la tecla P, pausa, presiona la tecla P nuevamente, despausa, funcionalidad compartida, todo dentro del plano del controlador del reproductor. Ahora, algo que quizás hayas notado aquí es que nuestro blueprint de controlador de reproductor reconoce y procesa eventos de entrada sin ningún tipo de configuración especial. No tuvimos que entrar en nuestros valores por defecto de clase y hacer nada especial para que esto funcionara o para que esto funcionara. Ahora, el carácter y los estanques hacen lo mismo que nuestro Plano de Nivel. Todos procesan estos eventos de entrada por defecto. Entonces, ¿qué pasa si uso en este caso, digamos el evento UP en un controlador de jugador, en un plano de personaje y un Blueprint de Nivel? ¿Qué pasa? ¿Cuál es la prioridad? Bueno, vamos a ejecutar un escenario aquí dentro de mi controlador de reproductor. Si presiono la tecla arriba, estoy lanzando al personaje. Vamos a configurar en nuestro personaje bp femenino, que actualmente estoy controlando aquí en mi configuración mundial que es. Mi clase de controlador de jugador. Yo solo traeré la llave arriba. Tengo que hacer búsqueda de teclado arriba. Y yo sólo voy a arrastrar fuera de aquí. Y voy a imprimir cadena. Y voy a decir carácter. femenino solo lo imprimirá en la pantalla por digamos, 20 s. solo para darnos un poco más de tiempo aquí, lo cambiaremos para que sea rosa para que sea agradable y notorio. Bien, compilar, guardar eso. Y luego dentro de nuestro Plano de Nivel, también voy a traer el teclado hacia arriba. Y dentro de aquí simplemente vamos a tocar un sonido y solo haremos una explosión, ¿verdad? Bien, así que Compile, Ahorre. Ahora tengo la clave up implementada en nuestros planos de nivel, nuestro personaje y nuestro controlador de jugador, ¿cuál de estos va a tener prioridad? Entonces voy a seguir adelante y hacer clic en jugar aquí. Y estoy presionando la tecla arriba y salté súper alto. No escuché nada y no vi ninguna impresión texteada en la parte superior izquierda. Por lo que el controlador del reproductor es la prioridad más alta. Ahora, ¿y si quisiera que esta clave para procesar realmente en mis otros planos también? ¿Cómo lo configuraría? Salgamos de aquí rápidamente. Y ahora con mi tecla Up seleccionada aquí, mis eventos de entrada, esta entrada de consumo es la clave que está determinando que solo este evento de entrada se está procesando dentro de mi controlador de reproductor y no los otros planos. tanto se verifique esto, esto consumirá esta entrada, lo que significa que este es el único lugar donde se va a registrar. Se lo va a comer y no lo reconocerá en ningún Blueprints de menor prioridad. Si desmarca esto e intentamos volver a jugar, y presiono la tecla arriba. Ahora puedes ver que hice el Super salto y también escuchaste ese sonido de explosión. Lo que pasó aquí es que presiono la tecla arriba y dije: Bien, lanzado con el personaje, no estamos consumiendo esa entrada. Y aquí mi mapa de pruebas de nivel. También procesó el mantenimiento, pero también dijo aquí mismo que vamos a consumir este insumo, es decir, se detiene aquí mismo, no va a permitir que ningún otro plano lo procese. Entonces va la orden. Nuestro controlador de jugador tiene la primera prioridad, el Plano de Nivel tiene la segunda prioridad, y luego tu estanque y personajes tienen la tercera prioridad. Entonces si quería que se procesara aquí en mi hembra también, aquí con mi mapa de prueba de nivel, tengo que asegurarme de que me he levantado seleccionado, no consuma la entrada. Así que nuestra configuración ahora está dentro del controlador del reproductor. No estamos consumiendo ese insumo. Estamos permitiendo que se filtre dentro de mi Plano de Nivel. No estamos consumiendo ese insumo. Estamos permitiendo que se filtre por dentro de mi personaje femenino. Realmente no importa aquí. Esta es la tercera prioridad. Podemos consumirlo aquí también. Eso lo imprimirá en la pantalla. Entonces ahora cuando juego, presiono la tecla arriba, voy a súper saltar. Vas a ver esos textos para personaje femenino justo aquí arriba. Y esa explosión también se escuchará. Aquí vamos. Super salto explosión personaje femenino 12.3. Bien, así que para recapitular, el plano del controlador del jugador es uno que se puede ranurar dentro de tu modo de juego. Los controladores de jugador son actores no físicos que pueden poseer un estanque. Tienen una relación uno a uno controlando un estanque o personaje a la vez. Y los controladores de placer se utilizan mejor para implementar una funcionalidad centrada en el usuario, como abrir un menú de pausa o para cualquier funcionalidad compartida entre personajes o estanques que pueda estar tomando control de. Chicos que van a hacer para ofrecer este, veremos en la siguiente. 103. Instancia del juego: Bienvenida. En este video, nuestro objetivo es conocer y demostrar uso del plano de instancia de juego en irreal. Ese es este tipo de aquí abajo. Ahora bien, este es personalmente uno de mis planos de framework favoritos en todos los irreales porque actúa como un gran contenedor de almacenamiento confiable al que puedes acudir para acceder a variables y demás sin importar qué nivel en el que estás. Ahora bien, no sé si esto se considera técnicamente un plano marco porque no es uno de estos planos el que se coloca en nuestro modo de juego. Ahora recuerdas de antes en nuestra discusión sobre los planos de marco, el modo de juego es lo que determina el resto de estos planos de marco como nuestra Clase de empeño por defecto, jugador controlador, etcétera. La instancia del juego está separada de eso. No forma parte de tu modo de juego en absoluto. Podemos ver que tengo mi modo de juego BP abierto en la parte superior aquí. Y si tuviera que seleccionar nuestras clases por defecto o una clase por defecto más bien. Podemos ver más en la clase de sección, aquí no hay nada para una instancia de juego, planos. Entonces, ¿qué hace que este plano sea tan especial? Bueno, es único en que no se destruye al cambiar de nivel en tu juego. Persiste siempre y cuando tu juego esté funcionando. Bien, entonces en este punto probablemente todavía te estés preguntando por qué el plano de la instancia del juego es tan valioso como a quién le importa si persiste, si existe a lo largo de toda mi sesión de juego? Bueno, lo que hace que la instancia del juego tan valiosa es que en realidad transporta datos variables de un nivel a otro a otro. Sin que se restablezca. Ves las variables que estableces en tu estanque o tu controlador de jugador, o tu modo de juego, se restablecerán a sus valores predeterminados cuando cambies de nivel, instancia del juego no tiene eso problema. Almacenará y arrastrará datos variables de nivel a nivel sin que esas variables sean reiniciadas. No realmente ayudó a conducir a casa este punto. He montado un escenario que vamos a probar aquí. Observe mi modo predeterminado, empeño y clase de controlador de jugador aquí mismo. Modo de juego Bp, peón BP y controlador de jugador bp. Dentro de cada uno de estos, he creado, y voy a empezar con mi peón BP aquí, una variable Vidas. Por defecto va a estar comenzando en cero. Y dentro de aquí, simplemente creé este guión aquí mismo. Entonces voy a presionar la tecla seis. Vamos a conseguir nuestras vidas. Este nodo lo va a incrementar. Esta es una nota especial y eso nos va a sacar la vida y de inmediato la va a hacer retroceder. Entonces, la primera vez que presione seis, va a cambiar esto para que sea uno, luego dos, luego tres, etcétera, etcétera. Y vamos a estar imprimiendo eso a la pantalla. Vamos a estar haciendo el mismo tipo de configuración aquí dentro de nuestro controlador de reproductor bp. Así que simplemente copié y pegué este bit de guión en mi controlador de reproductor. Simplemente cambié la tecla de entrada. También hay variables de mi vida. Ahora dentro de mi modo de juego, el modo de juego no reconoce los eventos de entrada. Sin embargo, dentro de mi modo de juego, sí creé una variable Vidas. Voy a empezar esto con cero también. Ahora bien, porque no pude incrementar eso aquí. Déjame compilar y guardar esto rápidamente. Eso lo estoy haciendo en mi Plano de Nivel. Así que fui aquí, entré en abrí mi plano de nivel, y a través del plano de nivel puedo presionar el achy, obtener mi modo de juego, emitir, mi modo de juego, obtener acceso a esa variable de vidas que dentro de ese plano del modo de juego. Puedo incrementarlo e imprimirlo en la pantalla a partir de ahí. Entonces en tres planos diferentes, mi peón BP, mi controlador de jugador, y mi Blueprint de Nivel, donde estoy accediendo a esa variable dentro de mi modo de juego, voy a estar incrementando esa variable de vidas. Entonces lo que voy a hacer más allá eso es aquí en mi Plano de Nivel, configuré este guión. Cuando presione la tecla L, voy a abrir un nuevo nivel. El nivel que voy a estar abriendo es este nivel mínimo predeterminado. Este es un nivel que se encuentra en mi carpeta de mapas de contenido de inicio, ese tipo de ahí mismo. Y quiero que sepan que dentro de mi Blueprint de Nivel mínimo predeterminado, configuré el mismo bit de guión para que podamos incrementar nuestros modos de juego bp se encuentra variable una vez más. Entonces, lo que vas a ver con estos tres, voy a incrementar estas variables y voy a transferir a un nuevo mapa. Y entonces voy a intentar incrementar de nuevo estas variables después de que me transfiriera al nuevo mapa, van a ver que esos recuentos están comenzando en cero una vez más. Y de ahí que eso vaya en detrimento de almacenar algunas variables dentro de un peón, un controlador de jugador o un modo de juego si estás transfiriendo niveles, que juegos a menudo transfiran desde el nivel uno al nivel dos, esas variables dentro de estos tres planos van a volver a ser predeterminadas. Bien, así que aquí vamos. Aquí va a ser nuestra prueba de juego, haciendo clic en play. Bien, entonces empezaré presionando la tecla seis. Como pueden ver, estoy incrementando mi engendro. Mis variables de vida peón suman ahí 25, y voy a presionar la tecla siete. La variable Vidas dentro del controlador de mi reproductor es hasta 25. Y ahora voy a presionar la tecla ocho. Y la variable mentiras dentro de mi modo de juego ahora se ha incrementado hasta 25. Ahora voy a presionar la tecla L para pasar a un nuevo nivel. Aquí estoy. Ahora, debido a que lo tengo configurado en la configuración de mi proyecto, este es mi modo de puerta de enlace predeterminado, mi clase de peón predeterminada, controlador de jugador. Todos esos se van a transferir para controlar con qué Modo de Juego, Clase de Peón y controlador de jugador me estoy metiendo aquí en este nuevo nivel. Así que compruébalo. Voy a presionar la tecla seis. Se puede ver mi vida variable dentro de mi estanque comenzó de nuevo en cero. Voy a presionar la tecla siete en lugar de que el controlador de mi reproductor empezara de nuevo en ceros, así que voy a tener que contar desde cero otra vez y luego presionar el dolorido. Mi vida variable dentro de mi modo de juego también se reinició desde el principio. Entonces aquí es donde la instancia del juego realmente viene muy bien. Si quieres tener algo así como una variable Vidas transfiera de nivel a nivel, recordando cuál era ese valor antes de entrar en el nuevo nivel. Bien, así que sigamos adelante y creemos nuestro plano de instancia de juego. Podemos hacerlo aquí dentro de la configuración de nuestro proyecto bajo mapas y modos, instancia de juego. Tienes este botón más aquí mismo para crear una nueva instancia de juego. No obstante, voy a saltar de nuevo a mi navegador de contenido. Y dentro de mi carpeta de framework de scripting, voy a hacer clic derecho y algo de espacio vacío. Y bajo clase Blueprint, no voy a ver Game Instancia arriba en esta área no es súper común. Pero bajo la sección de todas las clases, podemos escribir Instancia de Juego. Y quieres elegir a este tipo de aquí mismo, instancia de juego, no juego de plataformas en cambio es solo una buena instancia de juego vieja. Selecciona esto y voy a llamar a esta instancia de juego de subrayado BP. Bien, Siguiente, sigamos adelante y ubicemos esto dentro de la configuración de nuestro proyecto. Si olvidaste dónde acceder a Configuración del proyecto, puedes acceder a él aquí. O en Editar configuración del proyecto. Quieres venir bajo mapas y modos. Y está justo aquí abajo en la parte inferior. Al hacer clic en este desplegable, voy a tragarlo en mi instancia de juego BP. Eso es genial. No hay botón Guardar ni nada aquí, simplemente podemos salir de la configuración de nuestro proyecto o regresar a nuestro navegador de contenido. Voy a hacer doble clic en la instancia del juego IBP aquí para abrirla. Y vamos a agregar una nueva variable, y yo la llamaré vidas. Y vamos a hacer que sea un entero. Seguiremos adelante y compilaremos y ahorraremos. Y vamos a dejar esto en un valor predeterminado de cero por ahora mismo. Ahora bien, lo que puedo hacer aquí es que quiero imprimir cuántas vidas tengo a la pantalla. Una forma en la que podría hacer esto, podrías pensar que es, bueno simplemente haz clic derecho y haz una búsqueda de Begin Play, y te darás cuenta de que eso no existe. Lo que quieres hacer es aquí dentro de un plano de instancia de juego, quieres buscar un evento llamado event in knit. Esto es como si el evento comenzara a jugar. Dentro de BP Game Instancia, dentro de un plano de instancia de juego, esto se disparará al comienzo de nuestro juego. Entonces, si imprimo cadena, puedo arrastrar hacia atrás fuera de esto. Voy a escribir, anexar. En la a, voy a poner en instancia de juego. Hagamos instancia de juego. Vive por el valor b. Permítanme agregar un par de espacios después de eso. instancia de juego vive el doble espacio. Y luego simplemente arrastraré y soltaré esto en nuestro gráfico, lo conseguiré y lo conectaré a la B, también entrará un nodo de conversión. Entonces si compilo y guardo y juego, puedes ver inmediatamente en la parte superior izquierda dice Instancia de Juego vive cero. Bien, sigamos adelante y seamos generosos y digamos en lugar de cero vidas, en realidad empiezas con tres vidas. Y vamos a decir que aquí en nuestro nivel, voy a compilar y guardar esto muy rápido aquí en nuestro plano de instancia de juego, digamos de vuelta en nuestro nivel, vamos a hacerlo para que cuando tu personaje llegue a esta caja Trigger que hemos tenido fuera en nuestro nivel, vamos a premiar y extra de vida, buen trabajo. Lo has hecho todo el camino hasta el final del nivel. Así que de vuelta en mi Plano de Nivel aquí, puedes acceder al plano de nivel así. Voy a modificar un poco este guión aquí. De hecho, voy a acabar con esto por completo. Por tanto tiempo. Y siempre y cuando tengas tu disparador Volumen seleccionado aquí en tu Plano de Nivel, vamos a hacer clic derecho. Estamos llegando a agregar eventos para cuando empecemos a superponer eso. Hagamos un reparto para que en realidad voy a tener que echar a BP peón, elenco para ser P estanque porque eso es actualmente. El estanque que estoy controlando en mi juego. Así que eso va a estar haciendo la superposición. no tengo anulación de configuración mundial Actualmente no tengo anulación de configuración mundial para el modo de juego. Entonces solo quería dejar eso claro. Cuando superponemos esa caja de activación con nuestro peón bp, vamos a hacer clic derecho para obtener Instancia de Juego. Entonces vamos a emitir a BP Game Instancia. Dentro de nuestra instancia de juego bp, teníamos una variable llamada vidas. Y sigamos adelante y arrastremos fuera de esto y simplemente incrementarlo. Bien, así que eso va a estar bien y bien. Entonces esto es genial. Esto debería imprimirse. Voy a, en realidad, voy a imprimir esto a la pantalla, imprimir cadena. E imprimiremos esos montos actualizados aquí mismo. Así que cuando superpongamos ese cuadro disparador, vamos a agregar una vida e impreso a la pantalla compilar, guardar. Sigamos adelante y jugar la prueba es rápida. Déjame establecer mi objeto de depuración. Y sí vi muy rápido que cuando empezamos a jugar decía juego instancia vive tres. Entonces voy a superponer esta mirada en la parte superior izquierda aquí como lo hago. Entonces ahora tenemos cuatro solapamientos otra vez, 56, ahí está, 67, etc. ahora, aquí está el problema con nuestra configuración actual. Si presiono la tecla L para transferir mapas, no tengo forma de imprimir nuestro valor de vida actual a la pantalla. O sea, en nuestro evento en él, evento inicializado, lo estamos imprimiendo a la pantalla. Y cuando estoy superponiendo ese volumen disparador, lo estamos imprimiendo a la pantalla. Pero en mi nuevo mapa, no tengo medios para imprimirlo en la pantalla. Solo porque me siento elegante aquí dentro de mi controlador de jugador, voy a hacer que nuestro valor de vida de instancia de juego bp aparezca. Así que aquí tenemos mucha comunicación con Blueprint . Entonces dentro de mi controlador de reproductor bp, voy a modificar este script aquí mismo. Cuando presiono la tecla siete, simplemente voy a conseguir gamed instancia va a lanzar a nuestra instancia de juego bp. Vamos a obtener la variable vidas que vive dentro de ahí. Y simplemente vamos a imprimir esto en la pantalla. Al igual que así. Entonces voy a compilar y guardar aquí. Entonces entiende lo que tenemos pasando aquí dentro de nuestra instancia de juego bp, esto va a existir siempre nuestro juego esté vivo sin importar si transferimos nivel o no. Entonces, dentro de nuestra instancia de juego bp, al inicializar nuestro juego, vamos a imprimir cuántas vidas tenemos que filtrar. Eso va a ser tres. Cuando superponemos esto, desencadenamos un volumen aquí dentro de nuestro plano de nivel. Vamos a llegar a nuestro plano de instancia de juego, agarrar nuestras vidas, incrementarlo e imprimirlo en la pantalla. Y entonces cuando me transfiera a un nuevo nivel aquí hay nuevo nivel va a respetar la configuración de nuestro proyecto aquí, incluyendo nuestra clase de controlador de jugador. Y en nuestro nuevo nivel. Dentro de nuestro controlador de jugador, voy a estar tocando la tecla siete para obtener nuestra instancia de juego y nos mostrará que nuestras vidas actualizadas y modeladas se traspasan. Así que aquí vamos. Presionando Play, la instancia del juego vive tres. Vamos a superponer este 456.7. Voy a presionar la tecla L para transferir niveles. Ahora recuerda aquí arriba en mi controlador de reproductor, el controlador del reproductor va a continuar, a pesar de que el valor de las variables dentro de él van a ser restablecido. Nuestro controlador de jugador bp va a existir aquí de nuevo en este nivel, eso es lo que está señoreando nuestro peón aquí. Entonces dentro de nuestro controlador de reproductor, voy a presionar la tecla siete. Ahora. Configuraré mis objetos de depuración mis generados en el controlador del reproductor. Ahora cuando presiono la tecla siete, se puede ver que esa variable ha seguido adelante. Tenemos siete vidas dentro de nuestra instancia de juego bp. Ahora antes de cerrar este video, quería mostrarles lo poderoso que era esto, especialmente en lo que se refiere a planos de widgets. Así que abajo en mi carpeta de widgets de scripting, voy a abrir mi HUD WPP y sobre la pestaña gráfica MEW BP HUD. Lo que he hecho entre cortes de cámara aquí está fuera de Event Construct. Tengo mi instancia de juego. Estoy lanzando a instancia de juego BP. Hací clic derecho en este pin y promoví esto a una variable para capturar mi instancia de juego en una variable. Si haces esto, esto te permitirá volver a tu pestaña Diseñador para crear vinculaciones directamente dos variables relacionadas dentro de tu instancia de juego BP, por ejemplo, si tuviera que arrastrar un texto widget aquí, en lugar de esto diciendo textblock aquí mismo en el panel Detalles, podría venir debajo donde dice vinculante. Y ahora porque creé una referencia a mi instancia de juego BP, Echa un vistazo a esto. Como instancia de juego BP, puedo vincular esto a mi variable vidas. Esto seguirá diciendo text-block por defecto. Pero si compilo y guardo, entonces podría entonces el controlador del reproductor MIB P crear este bit de script, evento, comenzar a jugar, Crear Widget, crear tu HUD a través de eso, y luego Agregar a Viewport. Y entonces lo que esto me permitiría hacer es jugar mi juego. Y dentro de mi B, W BP HUD, mis vidas deberían estar representadas aquí mismo en mi HUD. Entonces sigamos adelante y juguemos esto. Y se puede ver la instancia de juego vive tres y vemos que ahora se refleja en el HUD. Está ligado a esa variable de vidas dentro de nuestra instancia de juego. Si tuviera que repasar eso por cinco, también estás viendo esa actualización. Y voy a presionar la tecla L para transferir los niveles seis. Todavía está presente aquí en mi nuevo nivel también. Bien, entonces ahí lo tienes, los planos de la instancia del juego. Uno de los principales beneficios de ello es que no restablece variables entre cambios de nivel. Algo a tener en cuenta aquí, si alguna vez te estás adelantando lo suficiente donde puedas crear e implementar un sistema de guardado en Unreal, que obviamente está fuera del alcance de este curso. El plano de la instancia del juego es menudo el facilitador entre tomar datos de un archivo de juego guardado y llevarlos a tu juego actual, así como escribir datos de un juego actual a un juego guardado. Actúa como un intermedio. Bien chicos, eso va a hacerlo todo por este video, veremos en el siguiente. 104. Compilar: Bienvenida. Este video va a ser todo sobre compilar. Ese es este botón en el extremo superior izquierdo de los planos. Por lo que nuestros objetivos serán los siguientes. Número uno, vamos a hacer demostraciones formas de compilar planos. Número dos, vamos a aprender a localizar rápidamente un problema cuando tu blueprint no se compila. Y número tres, vamos a mostrar cómo combinar las acciones Compilar y Guardar dentro de un blueprint que no tengas que compilar obsesivamente, guardar, compilar , guardar, compilar, guardar lata todo en realidad se haga con un solo paso. Bien, tengo mi pestaña ThirdPersonCharacter abierta en la parte superior porque voy a estar trabajando dentro de aquí dentro de poco. Pero comencemos hablando de qué demonios es incluso compilar, qué está pasando cuando estamos presionando este botón de compilar. Bueno, cuando estás compilando un blueprint, lo que estás haciendo es que estás iniciando el proceso de conversión de las propiedades y todo el script en tu grafo de un blueprint assets tales como nuestro personaje en tercera persona aquí, en una clase, es decir, nuestra clase de personaje en tercera persona. En programación informática, cuando compilas código, el compilador, que suele ser otro programa va a tomar el programa que el humano Rhodes, en este caso, nuestro script y todas las propiedades y variables y demás. Y va a convertirlo en un programa que la computadora realmente pueda entender. Ahora puedo ayudar a llevar a casa este punto un poco más allá haciendo esto, tengo este script de entrada de salto aquí en nuestro ThirdPersonCharacter. Si tuviera que hacer clic con el botón izquierdo y arrastrar por todos estos nodos, controle C. Tengo una aplicación de bloc de notas abierta en la parte inferior aquí. Sólo voy a hacer un Control V dentro de aquí. Este es todo el código que está respaldando todo nuestro script saltado aquí mismo. Entonces, esencialmente, cuando estás guiando a través de estos nodos que estás enlazando, hay código que respalda todo esto cuando estás compilando tu comprobación para asegurarte de que tu código en cualquier propiedad, variables, etc, que eres, que son todos parte de esto, son buenas para ir, que está limpio y que no hay errores, que la máquina pueda leerla y sepa exactamente qué hacer y puede hacer uso de ella así. Bien. Ahora bien, algo importante que hay que saber sobre la compilación es que al compilar un blueprint, podemos estar conscientes de los problemas con nuestros scripts de blueprint. No obstante, tenga en cuenta que no atrapará todos los errores porque algunas áreas son simplemente de naturaleza humana. Por ejemplo, por aquí, traje un sistema de generación en el nodo de ubicación. Ahora puedo decir, Sí, quiero engendrar este sistema, esta partícula de Niágara de aquí mismo. Pero, ¿y si tengo mi escala establecida en 000 y luego tengo algún evento tratando generar este sistema en, pero no lo veo? Quizá me quede preguntándome qué carajo está pasando. Debe haber algo mal con mi guión. Bueno, de hecho, puede que no haya nada malo con mi guión. No obstante, no estoy obteniendo el resultado que espero porque puse la escala en ceros, ceros, cero, es decir, no la vería. Así que compilar un plano no atrapará errores como ese. Bien, aquí en mi gráfico de eventos ThirdPersonCharacter, he configurado un escenario donde voy a hacerlo donde creamos intencionalmente algún script incorrecto y luego intentamos compilar. Voy a hacerlo aquí para que cuando presione el botón B, voy a engendrar algún actor. Sigamos adelante y digamos, Hombre una poción. Sin embargo, voy a dejar en blanco intencionalmente esta entrada de transformación de spawn si intento compilar ahora mismo, vas a ver que cuando lo haga, va a arrojar un error aquí. Y de hecho, esa punta de herramienta va a decir que hubo un error durante la compilación es ver el registro para más detalles. Entonces por registro está apuntando a esta pestaña de resultados del compilador que acaba de aparecer en la parte inferior de mi pantalla. Y me va a hacer saber que, oye, tienes algo que hay que abordar. En este caso, mi spawn un PIN de transformación no es válido para que nosotros engendremos a un hombre distribuyendo, tenemos que decirle dónde desovar. Ahora bien, si no ves esta pestaña de resultados del compilador aquí abajo, o si la cierras accidentalmente, puedes recuperarla de la manera en que la recuperas o casi cualquier otra pestaña aquí que falte es que vienes debajo tu ventana y aquí puedes encontrar resultados del compilador. Vuelva a encender eso. Ahora los resultados de su compilador muestran cualquier error o advertencia al compilar un blueprint. Y lo bueno de ello es que tiene algunos hipervínculos en los que puedes hacer clic para saltar al lugar problemático. Así que podríamos hacer clic aquí mismo en nuestra transformación de spawn. Y eso solo nos mostrará dónde está ese lugar de problemas. Entonces si estás en algún lugar allá afuera en tu gráfica camino por aquí y estás como, ¿Dónde demonios está este error? Sigamos adelante y hagamos clic en él y te saltará directo a él. Ahora mira lo que sucede con nuestro botón Compilar, nuestro ícono aquí arriba cuando sigamos adelante y cumplimos con los requisitos de spawn y transform de este actor spawn desde el nodo de clase. Solo voy a enchufar la transformación mundial de nuestro punto final de rastreo de línea. Eso es solo un componente de error que había agregado a mi personaje en tercera persona que acaba de salir un poco frente a nuestro personaje. Voy a enchufar esto aquí. Tenga en cuenta que en cuanto lo conecto, el icono sobre nuestro botón Compilar ha cambiado. Ahora vemos un signo de interrogación en amarillo. Entonces, cuando cambia a este ícono, eso significa que se ha hecho algún cambio en nuestro plano aquí. Eso va a suceder cada vez que se agregue algo nuevo a una gráfica o en cualquier nueva variable o función, o macro o componente se agregue. Es dejarte saber, oye, algo es diferente. Ahora bien, hay un par de formas de compilar un plano. Puede hacer clic en él o hay una tecla de acceso rápido asociada a ella. Prensado F7 compilará también. En realidad no voy a presionar un siete ahora mismo porque F7 es mi tecla de acceso rápido para iniciar y detener mi grabación aquí abajo. Pero solo debes saber que F7 es lo que puedes usar como tecla de acceso rápido. Entonces voy a seguir adelante y dar clic en Compilar aquí. Esa marca de verificación verde significa buena para ir. Y eso se puede ver en la punta de la herramienta justo ahí también. Ahora vamos a discutir algunas opciones de compilación. Estos tres puntos de aquí los revelan. Podemos ahorrar al compilar y podemos hacerlo Nunca. Podemos hacerlo en el éxito sólo o siempre. Si nunca lo es, que es lo que la he tenido durante la mayor parte de este curso. Tenemos que compilar. Y luego, si su compilador tiene éxito, desea guardarlo directamente después para asegurarse de que todos esos cambios realizados en su blueprint o realmente guardados solo en el éxito, solo se guardarán cuando tu blueprint se compila correctamente. Y siempre significa que va a guardarlo ya sea que esa compilación haya tenido éxito o no. También tenemos esta opción de salto a Nodo de Error. Puedes marcar esto encendido o apagado. En realidad es una marca de verificación que puedes activar o desactivar. Voy a encenderlo aquí. Y esto va a ser bastante dulce para hacernos saber dónde existe un error en nuestra gráfica. Saltará directo a él si hacemos uno. Entonces voy a desconectar esto rápidamente. Puedes mantener presionada la tecla Alt y hacer clic con el botón izquierdo, y luego voy a navegar a algún lugar aleatorio en mi gráfica así. Entonces ahora cuando compile, me va a saltar directo a ello. Me gusta esa opción en mucho muy recomendable que ha saltado al nodo de error ahí mismo debajo de esos tres puntos. Ahora, solo una nota rápida sobre eso saltó a errar opción nodo. Actúa como hacer clic en uno de tus hipervínculos de error aquí abajo. Eso es bastante genial. Obviamente no puede saltar a todos los errores al mismo tiempo. Si de hecho tienes múltiples errores, saltará al error en la parte superior de la lista. Ese es el error descubierto más recientemente. Además, quería devolver el golpe a esta opción de Guardar en compilar. Si voy a mi Plano de Nivel y doy click en estos tres puntos aquí mismo. Puedo ver que si voy por debajo de la opción guardar en compilar, todo esto está atenuado. Vas a encontrar que estas opciones no están disponibles en ningún nivel ni un plano de subnivel. Esto se debe a que el ahorro de un nivel o subnivel en sí guarda el blueprint asociado a él. Así que pensé en señalarlo aquí mismo. Podrías hacer presionar F7, esa es la tecla de acceso rápido dentro de un plano de nivel o subnivel. Tenga en cuenta que también guardará el nivel o subnivel en sí. Ahora, por último, solo quería señalar una vez más que los resultados de su compilador no mostrarán todos los errores humanos. Así que de vuelta aquí, mi tercera personaPlano de personaje. Podemos decir eso, sí, efectivamente, aquí es donde queremos engendrar a este hombre, una poción afuera un poco frente a nuestro personaje. Sin embargo, si tuviera que romper este cable de aquí mismo, voy a mantener presionada la tecla Alt y hacer clic con el botón izquierdo. Voy a seguir adelante y compilar. Y va a ser como, Sí, bueno para ir. A pesar de que puedas pensar mientras estás jugando el juego que Hey, estoy presionando la tecla B, pero no voy a engendrar a ningún hombre una poción. Una vez más, irreal, no puedes conocer tus deseos más profundos. No sabe que en realidad pretendiste desconectar esto o tenerlo conectado. Así que no va a coger errores como ese. Bien chicos, eso va a hacerlo en este video y compilando. Te veremos en la siguiente. 105. Puntos de descanso: Bien, bienvenidos de nuevo a todos. En esta sección del curso, vamos a aprender a solucionar mejor nuestros planos. Así es como depurarlos. Vamos a empezar con esto hablando de puntos de interrupción. El objetivo de este video es aprender a crear y usar puntos de interrupción dentro nuestros scripts para ayudarnos a analizar lo que sucede cuando se está ejecutando un script. Ahora he montado un escenario aquí. Voy a estar controlándolos IBP estanque, voy a estar superponiendo Una de mis puertas giratorias específicas que creamos antes en el curso. Y vas a notar que nuestro juego se va a congelar, pero intencionalmente no involuntariamente. Así que mira voy a superponer el volumen del disparador. Solo confía en mí, hay un volumen de gatillo frente a esta primera puerta. Parece que no pasa nada, pero voy a superponer este segundo volumen de gatillo frente a esta puerta. Y he aquí, congelamos el juego. Hemos alcanzado un punto de quiebre. Entonces, ¿qué es un punto de interrupción? Es una pausa o parada intencional que creas dentro un script como lo denota este punto rojo en este nodo aquí mismo. Ahora el propósito de hacer esto es averiguar si el guión está funcionando como cabría esperar. A lo mejor un evento que esperamos disparar no lo es. A lo mejor una función que esperamos disparar no esté disparando. A lo mejor aún no se ha establecido una variable que esperamos que tenga un valor. Esencialmente, un punto de ruptura nos da un tiempo de espera para inspeccionar más de cerca cómo se comportan nuestros guiones. Bien, actualmente voy a dejar nuestro juego y explicarte cómo configurar puntos de interrupción dentro de tus propios planos. Entonces haciendo clic en el botón Detener justo aquí arriba. Lo primero que debes entender es que quieres asegurarte de que estás evaluando el plano adecuado, la instancia adecuada del plano. Actualmente estoy mirando mi puerta giratoria BP ahora nota en mi nivel tengo dos de ellas. Tengo a este tipo, BP puerta giratoria y la segunda, BP puerta giratoria a ahora MIB puerta giratoria plano. Y este es un plano que configuramos durante nuestro video variable rotador. He establecido un punto de quiebre para cuando comencemos a superponer este componente de caja. Ahora arriba en la parte superior aquí, si hago clic en este desplegable, notaré que actualmente estoy evaluando, actualmente estoy depurando BP puerta giratoria a y se puede ver entre paréntesis ahí mismo. Ese es el que actualmente he seleccionado. Lo que esto significa es que si estoy superponiendo ese componente de caja para la puerta giratoria BP número uno aquí, esto no se detendrá. Esto no detendrá la ejecución de mi juego porque actualmente estoy evaluando BP puerta giratoria número dos. Entonces esto es importante de entender. Si tienes, digamos, 50 instancias de un blueprint dado por ahí, solo detendrá la ejecución para cuando superpongas esa instancia dada, esa copia dada del blueprint. Entonces aquí tengo BP puerta giratoria número dos. Ahora, ¿cómo conseguí este punto de ruptura, este punto rojo en este nodo para empezar? Bueno, hay algunas maneras de hacerlo. Puede hacer clic con el botón derecho en un nodo. Y puedes ver en nuestro menú contextual, tenemos opciones de punto de interrupción. El primer año que voy a utilizar es toggle breakpoint. Hay una tecla de acceso rápido F9 asociada a esto. Entonces, debido a que esto está actualmente encendido, puedo apagarlo y viceversa, puedo hacer clic derecho, activarlo de nuevo. Una vez más, con este nodo seleccionado F9, lo activaremos, desactivaremos, activaremos. Podría hacer clic derecho sobre él una vez más y eliminar así el punto de interrupción. Podría voy a presionar F9 para traerlo una vez más, podría hacer clic derecho sobre esto y desactivar el punto de interrupción. Lo que eso significa es que mantendrá el punto de ruptura aquí. No obstante, no va a detener la ejecución de nuestro juego cuando haga solapar BP puerta giratoria número dos, esto o conducir a casa este punto, puedo hacer clic en esto y superponer eso y ya lo ves, es un incendio apagado, pero es no detuvo mi juego en absoluto. Mantuvo ese punto de quiebre ahí, pero no detuvo el juego. Ahora, tal vez se esté preguntando, ¿por qué no me deshice de este punto de ruptura por completo? ¿Por qué lo acabo de desactivar? Bueno, a veces quieres tener un listado de tus puntos de interrupción que puedas ver para no perderlos de la pista. Si me hundo, Debug están aquí arriba y traigo mi depurador de blueprint. En esta ventana de aquí mismo se puede ver que tiene mi puerta giratoria. Aquí mismo están mis listas de puntos de interrupción. Y ya ves que tengo este punto de ruptura aquí mismo que corresponde con ese tipo de ahí mismo. Entonces, si tuviera que hacer doble clic sobre eso, lo resaltará. Ese círculo vacío ahí mismo muestra que ese es un punto de interrupción deshabilitado. Voy a atracar esto aquí abajo. Y si tuviera que hacer clic derecho sobre este nodo y habilitara el punto de interrupción, echarle un vistazo ahora en nuestro depurador de blueprint bajo puntos de interrupción, podemos ver ahora que eso es un punto rojo relleno, que es un punto de interrupción activo. Entonces, cualquier otro punto de interrupción que tengamos aquí, se enumerará debajo de aquí. Y una vez más, eso fue bajo Depurador de blueprint Debug. Ahí está mi puerta giratoria y mi lista de puntos de interrupción se puede activar y desactivar ahí mismo. Bien, ahora podemos ver que tenemos estos puntos de interrupción configurados para cuando comencemos a superponer este componente de caja para esa puerta giratoria. Número dos, recorremos lo que sucede cuando se golpea un punto de interrupción. Voy a seguir adelante y hacer clic en Reproducir aquí. Ahora tenga en cuenta que esta es la puerta giratoria número uno. Estoy superponiendo eso y no pasa nada. Voy a superponer la caja para la puerta giratoria número dos. inmediato el juego se detiene. Abrimos nuestro gráfico de eventos para la puerta giratoria número dos aquí. Y podemos ver que hemos solapado esa caja. Sin embargo, todavía no estamos seguros de qué se superpuso exactamente. Por lo que podemos continuar con nuestro script para evaluar más a fondo esta flecha roja está mostrando el nodo actual en el que estamos. Actualmente estamos superponiendo esa caja. Si hacemos clic aquí arriba, podemos pasar al siguiente nodo en nuestra cadena de ejecución, FTN. La tecla de acceso rápido también nos saltará por allá. Así que tenga en cuenta esa punta de herramienta. Entonces, al superponer esa casilla, vamos a verificar si fue el terceraPersonCharacter el que nos superpuso. Ahora, yo estaba controlando nuestros bp pons, así que este elenco debería fallar. Ahora porque falla. No tenemos nada conectado de nuestro panel de campo CAS aquí mismo. Esto debería echarnos justo al salir de aquí porque no hay nada más con lo que continuar. Nuestro guión está esencialmente muriendo aquí mismo. Sigamos adelante e intentemos saltar al siguiente nodo. Como pueden ver, no saltó a nuestro siguiente nodo. De hecho, si vuelvo a traer nuestra ventana de juego, permítanme minimizar esto. Ahí podemos ver que volvemos a jugar nuestro juego. Bien, sigamos adelante y salgamos de nuestro juego aquí, volvamos a nuestro motor. Y ahora hagámoslo para que en la configuración de nuestro proyecto, ya no estemos por defecto en la clase de peón del estanque BP, sino que estamos trayendo nuestro terceraPersonCharacter. Y la razón por la que estamos haciendo esto es porque en nuestro script de puerta giratoria, estamos comprobando aquí mismo para ver si fue el ThirdPersonCharacter el que nos superpuso. Tenga en cuenta de nuevo en nuestro nivel, también he despejado nuestra configuración mundial. Entonces vamos a estar respetando la configuración del proyecto, la configuración del proyecto que tenemos para nuestro framework, blueprints, BP Game Mode, BP ThirdPersonCharacter, bp player controller. Y ahora si tuviera que seguir adelante y jugar nuestro juego, vamos a seguir adelante y superponer el volumen del gatillo para la puerta BP número dos. Aquí va a llegar a nuestro punto de quiebre. Ahora hablemos de estas diversas opciones que tenemos al otro lado de arriba para cuando lleguemos a un punto de quiebre, este tipo de aquí mismo nos va a saltar de nuevo a nuestro juego. Básicamente es decir, oye, me alegro de que hayas detenido el juego. Muchas gracias, pero nos gustaría seguir en juego. Permítanme simplemente superponer esto. Una vez más. Nos detendrá el juego una vez más. A continuación tenemos este avance, un solo fotograma. Así que entonces simplemente nos saltaré al siguiente nodo. Si uno es un no sensible al tiempo en absoluto. A continuación tenemos este botón Stop aquí mismo, que hará lo mismo que presionar Escape. Básicamente estás abandonando tu juego y regresas a tu editor. No voy a presionar ahora mismo. A continuación por aquí, voy a saltarme a este tipo de aquí. Tenemos esto localizar los nodos actualmente activos. Entonces, si estuviéramos en nuestro nodo Cast to ThirdPersonCharacter como estamos ahora mismo, ese es el que estamos evaluando. Entonces decidimos navegar en algún lugar al azar así. Si tuviéramos que hacer clic en este botón, eso nos saltará de nuevo a nuestro nodo actualmente activo. A continuación, tenemos este paso hacia el nodo que tiene una tecla de acceso rápido F11 asociada a esto. Voy a presumir esto en nuestro siguiente ejemplo. Este no es un buen ejemplo aquí mismo. A continuación, tenemos paso por encima al siguiente nodo, F diez. Eso también lo haremos. Voy a presionar F2 para hacer eso. Y una cosa a tener en cuenta aquí, medida que avanza por las cosas, puede evaluar los diversos bits de datos que se pasan pasando pasando el mouse sobre estos pines de datos. Entonces e.g. I. Puede ver tiene clave aquí mismo se evalúa a falso. Entonces sé que nuestro guión esencialmente va a terminar aquí mismo porque solo vamos a hacer algo fuera de la verdadera rama. No vamos a estar haciendo nada fuera de la falsa rama. Ahora bien, este paso fuera de botón, lo exploraremos en nuestro siguiente ejemplo también porque esta es una buena configuración para presumir de eso. No obstante, algo más de lo que quiero tomar nota. Mientras estamos aquí, puedes visualizar el pulso naranja de ejecución hasta este punto, lo cual es súper útil cuando estás evaluando un guión. Y una vez más, no se trata solo de ver en qué nodos se están deteniendo y ejecutándose, sino también de evaluar los datos, pasarlos, mouse sobre estos diversos pines y ver si que los datos que se están transmitiendo es lo que esperas que sea. Bien, ahora paremos con este ejemplo. Vamos a saltar a nuestro terceraPersonpersonaje siguiente, vamos a hacer clic en parar aquí para mostrar otro ejemplo. Ahora la razón por la que nos dirigimos hacia aquí es porque tenemos algunas funciones hechas por el cliente que creamos anteriormente en el curso. Podemos entrar y salir de eso que no pudimos hacer en nuestro último ejemplo. Entonces, sigamos adelante y traemos nuestra función de modificar la salud. Cambiamos esto en nuestra sección de funciones del curso y vamos a traer en un evento de teclado. Vamos a hacer clic con el teclado. Hagamos algo cuando presionemos la tecla de flecha. Entonces cuando presionamos el cero, salud modificadora de Kayla, digamos por 0.1. Vamos a arrastrar una cadena de impresión de miedo, arrastrada hacia atrás. Vamos a anexar. Y vamos a añadir la palabra salud, colon doble espacio con nuestra salud actual. Eso traerá un nodo de conversión que va de float a una cadena así. Y luego déjame agregar un punto de interrupción a nuestro nodo de eventos aquí, tienes que presionar F9. Ahora bien, si ves un punto de quiebre con un signo de exclamación dentro de él. Eso podría significar que ese es un punto de interrupción inválido. No estoy seguro de por qué esta se está mostrando como tal. No obstante, si estás cuestionando si ese es o no un punto de interrupción válido, puedes seguir adelante y compilar aquí. Sé que uno va a ser bueno y lo es. Así que sigamos adelante y probemos esta jugada de clic. Puedes asegurarte de que tienes tu terceraPersonCharacter como tu opción de depuración para ver que este script se dispara en tiempo real si lo deseas. Vamos a traer de nuevo nuestra ventana de juego. Y cuando presiono la tecla de flecha, estamos deteniendo nuestra ejecución. Podemos dar un paso por encima. Y ahora esta es una función de la que tenemos alguna funcionalidad instalada dentro de. Entonces si hago clic en este botón aquí mismo, tecla de acceso rápido F11, podemos entrar en este nodo. Y ahora podemos pasar por los nodos de la propia función. Podemos ver que tenemos la pestaña Modificar función de salud abierta a lo largo de la parte superior ahora y ahora podemos pasar por esta de una a la vez. Podemos ver ¿eso es cierto o falso? Pasemos por encima una vez más. Y ahora, porque entramos en este nodo, puedo salir de estas notas. Permítanme salir de esta función. Se puede ver ahora que seguimos a nuestro siguiente nodo en la cadena, que es nuestra cadena de impresión. Entonces, con el paso de entrada y salida de los botones, puedes entrar en algo así como una función hecha a medida, ver cada paso de esa función y luego salir de ella si quieres. Ahora solo hay un par de notas ahí. La opción Paso a paso, si se trata de una función o macro hecha a medida, se profundizará en eso. Sin embargo, si no es una función o macro a medida, simplemente pasará al siguiente nodo. En cuanto a salir, si entraste en un nodo, saldrá al siguiente nodo de la cadena, en este caso a nuestro nodo de cadena de impresión. Sin embargo, si no hay nada para salir dos, no hay otros nodos dentro de tu cadena. Simplemente reanudará el juego. Ahora, LastNode, también podemos incorporar nuestra opción de depurador de blueprint de depuración. A partir de aquí, traemos esta ventana. Una vez más, me gustaría atraparlo a lo largo de la pata inferior. Entonces me doy cuenta que todavía estoy jugando el juego aquí mismo. Aquí están mis puntos de interrupción. Se puede ver que podría hacer clic en eso para saltar directo a él. Sin embargo, si te habías dado cuenta cuando hice clic en esta opción de depuración aquí arriba, tenemos la capacidad aquí arriba de deshabilitar todos los puntos de interrupción y eliminar todos los puntos de interrupción. Si tienes muchos puntos de interrupción configurados a lo largo de tu gráfica, es una manera realmente práctica de eliminarlos todos. Y nuevamente, puedes agregar puntos de ruptura y no solo en nodos de eventos como este, también puedes configurarlos en una función. En esta función también. Entonces si te configuras los tres y estás como, Oye, solo quiero deshacerme de todos estos. Sólo tienes que seguir adelante y eliminar todos los puntos de interrupción, y de repente se han ido todos. Y así ahí lo tienes. Esa es la verdad sobre los puntos de interrupción. Los puntos de interrupción son una pausa o parada intencional que creas dentro un script para que puedas evaluar más de cerca tus scripts paso a paso. Chicos, eso lo hará todo por este video, veremos en el siguiente. 106. Valores de ver: Bien, bienvenido de nuevo. En este video, nuestro objetivo es aprender cómo podemos monitorear más fácilmente los valores de los datos al depurar un script. Ahora esto se puede hacer mediante la designación variables para observar dentro de un plano al tener un medio fácil de ver y evaluar los valores de datos dentro de nuestros planos, podemos ver rápidamente si los datos que fluyen a través scripts R son los esperados o no. Ahora para este ejemplo, voy a estar trabajando dentro de mi puerta giratoria BP, así como mi terceraPersonpersonaje aquí un poco. Entonces, en primer lugar, para ver las variables con más cuidado, vamos a traer nuestro depurador de blueprint. Ahora te mostré cómo hacer esto en el último video, pero si te olvidaste o te saltaste ese video dentro de cualquier Blueprint son BP puerta giratoria te irá bien. Podemos hacer clic en Depurar, depurador de blueprint, y eso abrirá nuestra ventana de depurador de blueprint. Sí me gusta tener esto en un segundo monitor si lo tengo, pero como no lo hago si tienes un solo monitor, solo me gusta hacer el trámite aquí abajo. Ahora tenga en cuenta dentro de nuestro depurador de blueprint, podemos especificar qué blueprint nos gustaría depurar. Entonces, aunque estemos dentro de nuestra puerta giratoria bp, podría configurar esto para que sea mi terceraPersonpersonaje para depurar si quisiera. Sin embargo, si lo hiciste y llegaste a un punto de interrupción como nuestra tecla cero dentro de nuestro personaje de tercera persona. Te saltaría de esta gráfica a tu gráfica de terceraPersonaCarácter. No voy a demostrarlo por ti aquí, sino solo para tu información. Bien, tengo este set para mis puertas giratorias BP y tengo un set de punto de interrupción. Entonces ahora voy a configurar algunas variables para vigilar. Voy a ver esto tiene variable clave aquí mismo. Y la forma en que podemos hacer esto es haciendo clic derecho y eligiendo ver este valor de barril. Ahora cuando haga esto, van a ver aparecer un poco de icono de lupa en esto. Pero también vas a ver esta ventana aquí arriba que va a generar true o false siempre que esta información sea solicitada por nuestro nodo de sucursal. Siempre que esto se ejecute, vamos a averiguar si esto es verdadero o falso y va a imprimirlo justo en esta burbuja. También voy a configurar un valor de reloj en nuestro nodo rotador aquí mismo, el valor de retorno, para que pueda ver dónde estamos en esa rotación yendo 0-90 grados en el Ya, voy a hacer clic derecho sobre esto. Vamos a ver este valor. Bastante simple. Si quiero quitar alguno de estos relojes, simplemente puede hacer clic derecho sobre él. Deja de ver este valor. O si quieres dejar de ver todos tus relojes, puedes pasar por debajo, Depurar y eliminar todos los relojes que también puedan deshacerse de ellos. Ahora antes de mostrar este ejemplo, quería hacer notar que dentro de mi terceraPersonpersonaje aquí, ThirdPersonCharacter, sí configuré esto tiene clave booleana a true. Entonces, si aún no lo has hecho y quieres seguir el juego en casa dentro de BP. Tercera personacarácter, B tiene clave booleana. Pongo eso a verdad, compilé y Save. Y aquí estoy viendo esa variable. Esta variable vive dentro de mi terceraPersonaPersonaje, pero puedo verla desde aquí. Bien, así que sigamos adelante y juguemos nuestro juego. Y voy a superponer ese componente de caja para nuestra puerta giratoria número dos, esa es esta puerta justo en nuestro nivel que es la puerta giratoria número uno. Sin embargo, estamos evaluando la puerta giratoria número dos. Entonces aquí vamos, haciendo clic en play, superponiendo esta puerta. Bien, hemos llegado a ese punto de ruptura. Ahora en el último video te mostré que podías pasar por las cosas dando click aquí mismo, F ten va a hacer muy bien. También puedo avanzar un fotograma a la vez. Entonces eso también me detendría en este caso porque este no es un nodo sensible al tiempo. Sin embargo, tenga en cuenta que abajo en su depurador de blueprint, tiene estos mismos controles. Así que vamos a presumir esto porque podemos, se puede ver abajo, hemos golpeado nuestra puerta giratoria. Número dos, el punto de interrupción ha sido alcanzado. Esa flecha amarilla de ahí mismo denota que voy a expandir esto presionando este pequeño triángulo desplegable. Enseguida. Podemos ver que tenemos configurados relojes aquí porque tiene clave y también ese valor de retorno en ese nodo de bucle ahí mismo. Entonces eso es denotar que sí tenemos alguna configuración de relojes. Tenga en cuenta ahora mismo, esta burbuja aún no dice nada porque aún no se ha solicitado su información. Voy a avanzar al siguiente nodo dando clic aquí mismo. Ese flujo de ejecución. Vamos a avanzar sobre uno más. Ahora como hemos llegado a este nodo de sucursal, se ha solicitado esta información para la condición. Entonces podemos ver que estamos viendo este valor y ahora está mostrando de manera destacada que está evaluando a verdad. Ahora podría simplemente pasar el cursor sobre este pin sin el reloj y descubrir que esa información en realidad también es cierta. No obstante, al configurar relojes como este, se vuelve muy obvio. Es una manera de ver más fácilmente qué datos se están transmitiendo de inmediato. Ahora bien, si quisiera desactivar este reloj, podría, mientras esto se está ejecutando aquí, estamos depurando esto. Podría hacer clic en este pequeño icono de lupa y apagarlo. Y puedo hacer clic derecho y volver a encenderlo una vez más, Adiós. Elegir el valor de los relojes en él aparece una vez más aquí abajo. Además, si tuviera que haber navegado en algún lugar mucho más allá así, si tuviera que hacer clic en ese reloj de aquí abajo, eso me saltará de nuevo a él. Entonces eso es bastante práctico. Sigamos dando un paso directo, a través de esto porque podemos ver que aún no hemos llegado a nuestra segunda guardia por aquí. Así que presionando sobre. Bien, entonces ahora estamos golpeando un nodo sensible al tiempo, esta línea de tiempo, esta es de 1 s de largo. Entonces si siempre suprimen aquí mismo o f diez, me va a saltar a este siguiente nodo enseguida. No obstante, también podría adelantar un solo fotograma a la vez. Entonces, al hacerlo, voy a hacer click izquierdo. Se puede ver ahora que hemos ido 0.01 s porque apenas estamos avanzando un fotograma a la vez. Podemos ver que estamos viendo este valor de retorno aquí. Y a medida que aumentamos este uno a la vez, se observa un fotograma a la vez. Tu valor va aumentando poco a poco. Entonces, para que podamos ver cómo se está abriendo esto en el transcurso de 1 s. Ahora podemos seguir adelante y hacer clic en reanudar aquí mismo para ver el resultado final jugar, que se jugó sobre el resto de eso línea de tiempo, que 1 s línea de tiempo. Para que podamos ver ese valor. El Ya, nuestra puerta se abrió 90 grados. A lo mejor es lo que esperabas. Quizás no, pero estos relojes te ayudan a identificar si eso realmente está generando el valor de retorno que estás esperando. Y así hay una visión general rápida y sencilla de qué son los relojes y cómo se pueden configurar y utilizar al depurar su script. Una vez más, si tuviera que parar aquí y quitarme estos relojes, deje de mirar. Deja de mirar. Aún puede ver el valor de salida de estos pines de datos al golpear ese punto de ruptura. Permítanme simplemente superponer esto una vez más. Avanza, avanza pasando el ratón sobre él así. Sin embargo, al configurar relojes, simplemente lo hace un poco más prominente y fácil de ver. Permítanme adelantar esto hasta el final. Una vez más, podemos ver que y'all rojos ahí se está sacando 90. Pero esos relojes, de nuevo los hacen más prominentes y fáciles de ver. Chicos que van a hacer para ofrecer este video, veremos en el siguiente. 107. Registro de mensajes: Bien, bienvenidos de nuevo a todos. En este video, nuestro objetivo es mostrar el papel del mensaje iniciar sesión depurando tus scripts. Si bien esta es una ventana que puede reportar todo tipo de información relacionada con tus proyectos, como los resultados de iluminación al construir tu nivel. Aquí, solo vamos a explorar su utilidad para garantizar que nuestros scripts funcionen según lo previsto en tiempo de ejecución. Entonces tengo un ejemplo para presumir en nuestro personaje de tercera persona. Entonces, ¿por qué no te encuentras bajo tu tercera persona en la carpeta Blueprints Encuentra tu personaje de tercera persona. Por cierto, un consejo divertido para ti aquí. Si mantienes presionada Control y usas esa rueda de desplazamiento, puedes hacer que esas imágenes en miniatura sean más grandes o más pequeñas. Vamos a hacer doble clic en él donde ya tengo algunos guiones establecidos antes de este video. Lo que vamos a hacer es que voy a estar presionando la única tecla. Y entonces sólo una vez aquí, voy a engendrar en el efecto fuego. Y entonces voy a promover esto a una variable. Así que aún no lo he hecho, así que solo quería presumir. Podemos hacerlo una vez más haciendo clic derecho sobre este pin. Vamos a promover esto a una variable. cierto, este era un actor spawn del nodo de clase. Entonces, si estás buscando el nombre de ese nodo, es spawn actor de clase. Lo cambiará a fuego de efecto Blueprint. Una vez que usted ranura en ese blueprint efecto fuego blueprint desde el contenido de inicio promueve variable. Simplemente llamaremos a esto fuego. Ahí abajo está el nombre de la misma y podemos ver que es del tipo Planos efecto fuego. Y lo que vamos a hacer aquí abajo es cuando presionemos la tecla dos, vamos a destruir este fuego que hemos generado cuando presionamos la tecla única. Para que pueda arrastrar esto justo encima del objetivo de nuestra función Destruir Actor. Eso lo conectará automáticamente así. Vamos a hacer que nuestro registro de mensajes aparezca en otra cosa que voy a hacer enseguida es después de que destruyamos a nuestro actor, voy a establecer el reinicio de nuestro do want nevado. Y esto sólo va a hacerlo para que pueda presionar una vez más la tecla una vez más para generar otro plano, efecto fuego. Entonces eso es lo que está pasando aquí. Vamos a presionar una tecla y luego vamos a generar solo una vez ese efecto de fuego de plano en la ubicación, el mundo se transforma, debería decir, de nuestra mano simulada, eso es esto componente aquí mismo. Eso solo va a engendrarlo en ese punto del mundo, donde quiera que estemos en ese momento, estamos ahorrando a una variable. Y entonces cuando presionemos la tecla dos, vamos a destruir eso. Ahora, voy a compilar aquí y ahorrar. Y sigamos adelante y ejecutemos esto. Establezca mi objeto de depuración aquí en mi terceraPersonCharacter. Bien, así que estas son las pruebas que vamos a estar corriendo. Entonces primero voy a presionar uno para crear fuego aquí mismo, y verás esa tasa de disparo del guión arriba arriba. Así que aquí vamos. La única clave que hay es ese efecto de fuego. Ahora voy a presionar dos. Eso va a destruir ese fuego que creamos y pusimos dentro de esa variable de aquí mismo. Entonces aquí vamos, Las dos claves, ya se ha ido. También hemos restablecido este do una vez conocido. Ahora voy a presionar de nuevo las dos teclas. Entonces voy a tratar de destruir este fuego. Ahora lo presioné y se puede ver que se está ejecutando. Pero ahora cuando salga de aquí, escape, vigile lo que pase. Se nos presenta el registro de mensajes. De hecho, tenemos numerosos errores. Ahora la razón por la que tengo numerosos errores es porque me está gritando que traté de destruir este fuego que no existía. Ahora lo que estaba pasando aquí es la primera vez que presionaba la tecla una, repoblamos esta variable, esta variable de fuego de efecto blueprint. Con este efecto de plano generado fuego. Una vez que está poblado, comprimimos las dos claves y luego la destruimos. Ahora bien, cuando presiono de nuevo las dos teclas, aún no habíamos restablecido el contenido de esta variable para que fuera algo. Entonces esta era una variable vacía. Este es un mensaje muy común que te escupe en el registro de mensajes. Ahora el registro de mensajes puede escupir todo tipo de errores diferentes que ocurren con su script. Pero esta es una muy común donde te está gritando que no se puede encontrar el contenido de alguna variable. Voy a arrastrar y soltar esto por la parte superior aquí. Echemos un vistazo más de cerca a nuestro mensaje de error aquí. Ahora puedes ver que estos mensajes de error aparecen en la sección play in editor de nuestro registro de mensajes. Y se repite una vez más numerosas veces porque estaba presionando las dos teclas numerosas veces para tratar destruir el fuego que no existía. Ahora lo que es útil de este registro de mensajes es que tiene algunos hipervínculos en los que puedes hacer clic para llevarte a la ubicación, al aire. Ahora bien, si haces clic en Gráfico de eventos aquí, solo voy a hacer clic en Gráfico de eventos. Nos llevará a la gráfica de eventos correspondiente. Si hacemos clic donde dice ejecutar Uber BP, ThirdPersonCharacter, también nos hará clic en el Gráfico de Eventos. Y si haces clic en BP ThirdPersonCharacter, también te llevará a ese Gráfico de Eventos. No obstante, si tuvieras que hacer clic donde dice Destruir Actor aquí mismo, eso va a precisar exactamente en cuanto a dónde ocurrió el problema. Este nodo Destruye Actor estaba tratando de encontrar un objetivo válido. Sin embargo, este registro de mensajes dice que ese era un destino no válido. El objetivo no era válido. Y eso fue una vez más, porque la primera vez que creamos nuestro fuego, pudimos destruirlo. Pero cuanto más presionemos dos teclas, no se puede destruir algún fuego que no existe, que no se haya puesto dentro de esa variable de fuego. Entonces, ¿cómo podemos arreglar un escenario como este? Bueno, se puede verificar para ver si el contenido de una variable es válido. Y la forma en que podemos hacer esto es seleccionando nuestra variable de fuego aquí mismo, ese fuego de efecto de plano que se está poblando aquí mismo, eso se está configurando aquí mismo. Podemos hacer clic derecho sobre esto y lo convertimos en un validado todavía. Ahora tenga en cuenta que una vez que hagamos esto, va a cambiar este nodo de un nodo de aspecto de forma de píldora a un nodo que nos requiera engancharnos, en ejecución cable a él. Entonces ahora podemos tener un guión como este. Si pulsamos la tecla dos, primero va a hacer un chequeo. Si esto es válido, es decir, que hay algo establecido dentro de esta variable, continuaremos y destruiremos lo que no se haya establecido dentro de ella. Sin embargo, si presionamos la tecla dos y no es válida, es decir, no hay nada dentro de esta variable. Podemos hacer otra cosa. En este caso, solo arrastraré e imprimiré cuerda. Y yo solo diré despedido, no válido. Al igual que así. Entonces ahora si compila y guardo, y jugamos una vez más, antes incluso presiono la tecla una. adelante y presionemos la tecla dos y miremos aquí arriba en la parte superior izquierda de mi ventana. Va a decir fuego no válido y puedo seguir enviándolo spam. Ahora aún no es válido porque no hemos establecido el contenido de esta variable fire. No se ha poblado con nada. Ahora bien, si presiono la tecla una, ahora hemos establecido el contenido de esa variable de fuego. Entonces ahora cuando presione la tecla Tab, será válida. Así que mira justo por aquí. Se disparó a través, eso es válido. Destruyó al actor, y todos estamos bien. Ahora esta ventana de registro de mensajes aparecerá automáticamente si capta un error como ese, la abrirá por ti. Sin embargo, si quieres que esta pestaña de registro de mensajes esté abierta en todo momento, déjame cerrarla para que pueda volver a encenderla. Simplemente puedes venir debajo de una ventana. Y luego justo aquí bajo la categoría de registro, puedes elegir que ese mensaje inicie sesión. Bien chicos, eso lo va a hacer para este video en la ventana de registro de mensajes. Te veremos en la siguiente. 108. Búsqueda: Bien, así que si has visto todos los videos hasta este momento del curso, te estás volviendo bastante eficiente con el scripting de blueprint. Ahora llevemos tus scripts de planos al siguiente nivel aprendiendo algunos hacks de productividad. En este video, nuestro objetivo es explorar varios métodos de búsqueda de cosas mientras se trabaja con planos. Vamos a buscar un plano ácidos ellos mismos averiguar dónde residen aquí en nuestro navegador de contenido, así como buscar cosas que puedan existir dentro de un blueprint como variables, funciones, etc. Ahora quieres ser bueno en esto simplemente por razones de eficiencia laboral. Cuanto más rápido puedas localizar activos, funciones, variables, etc. más rápido podrás asegurarte de haber negociado planos de calidad libres de errores. Ahora para demostrar algunos de estos conceptos vamos a estar explorando aquí. Voy a estar haciendo esto dentro de mi terceraPersonaPersonaje. Puedes hacer esto desde dentro de cualquier plano, aunque eso está perfectamente bien. Entonces, haciendo doble clic en mi personaje en tercera persona, lo primero que vamos a aprender a hacer es navegar hasta este activo de planos. A menudo, cuando estoy trabajando con estudiantes, tienen un plano abierto, pero no tienen idea de dónde está este plano dentro del navegador de contenido. Pueden estar apagados en alguna carpeta aleatoria. Y si les pido que localicen su Blueprint de personaje de tercera persona, no tienen idea de dónde está. Bueno, hay un par de maneras de encontrarla. Camino. El número uno es que tienes algunos filtros. Estás en tu navegador de contenido. Puede hacer clic en una carpeta de su elección. Y puedes elegir la carpeta de contenido porque esa carpeta contiene todas las demás carpetas. Y da clic en Filtros, clase Blueprint, y ya estás deseando que las cosas bajen poderosamente. Déjame mantener presionada Control y rueda de desplazamiento hacia abajo. Y de inmediato podemos ver nuestro terceraPersonpersonaje está ahí mismo. Para desactivar un filtro. Simplemente puedes hacer clic en él. Eso es con él apagado, eso es con él puesto. Bien, así que esa es una forma en la que puedes localizar rápidamente los activos es filtrarlos dentro de tu navegador de contenido. Pero quiero hablar ahora sobre cómo encontrar este activo si estás dentro de esta terceraPersonaPersonaje mismo. Bueno, tienes un par de formas. número uno está en la parte superior de tu editor de planos aquí, tienes este botón Examinar aquí mismo. Si haces clic en esto, te llevará directamente a donde reside este activo en tu navegador de contenido, eso es bastante útil. Además, si estás dentro de aquí y solo haces Control plus b, eso también te lanzará directo a él. Entonces Control plus b, era ese hockey, Bien, Next, dentro de un blueprint, deberías tener una pestaña find Results abierta por defecto dentro de tu editor de Blueprint. Ese es este tipo de aquí abajo. Ahora esto es increíble porque puedes encontrar bala te dice aquí abajo. Puedes encontrar cosas como funciones, eventos, variables, todo tipo de cosas simplemente buscándolas aquí abajo. Ahora bien, de nuevo, esto debería estar activado por defecto, pero en realidad hay cuatro formas de acceder a este panel. Nuevamente, la primera forma es que debería estar encendido por defecto, pero supongamos que está apagado. También puede traer esto desde la barra de herramientas haciendo clic en el botón Buscar aquí arriba. Van a abrir esa ficha. Déjame simplemente darle click una vez más, también podemos acceder a eso entrando bajo la opción de ventana aquí mismo. Y también tienes la capacidad de activar tu panel de resultados finales. Además, si tienes eso apagado, puedes traer ese brazo usando Control F, ese es el control de teclas rápidas más F traerá esa ventana de resultados de búsqueda. Ahora bien, esta es nuestra herramienta de búsqueda dentro del editor de planos que nos permite rastrear rápidamente una variedad de cosas como un nombre de nodo, un seudónimo, un comentario de nodo, un nombre de propiedad, un valor de la propiedad. Entonces demostrémoslo. Shelly. Solo voy a hacer una búsqueda para modificar la salud, modificar la salud, y presionar Enter aquí y podemos ver todos nuestros diferentes resultados coincidentes modificar salud. Entonces solo necesito hacer doble clic en una de estas opciones aquí para ver qué encontramos. Hay una función modificadora de salud que coloca ahí en la gráfica. Este es un lugar de función de salud modificador ahí. Y esto incluso nos saltará a la función en este caso que creamos llamada modificar salud haciendo doble clic aquí, Esa es mi función de ayuda Modificar. Y una vez más tuvimos un modificador help pure function que podíamos localizar haciendo clic ahí mismo también. Intentemos algunos resultados de búsqueda más. Vamos a aclarar esto. Voy a escribir la palabra engendrar y mirar todos estos resultados de búsqueda. Ahora vale la pena señalar, si pasas el mouse sobre estos diferentes íconos, te va a decir a qué están asociados. Entonces ese es un pin de ejecución. Haz doble clic en eso, mira eso. Se trata de estos pines de ejecución de engendrar aquí mismo. Puedo pasar el ratón sobre esto. Esta es una transformación de engendro, estructura, haga doble clic en esas transformaciones de engendro. Entonces es encontrar esa palabra engendrar, y puedo ver que es un seudónimo ahí mismo. ¿Qué más tenemos aquí? Tenemos un sonido de spawn adjunto. Puedo hacer doble clic sobre esto, ese es un nodo de función ahí mismo. Y nos deja saber que es un nodo. La fantasía F es igual a una función. Ahí está. Muchas multas aquí en nuestros resultados de búsqueda. Opción, bien, intentemos escribir algo así como variable. Presionando Enter. Y tenga en cuenta que tengo un comentario resultados. Entonces, si hago doble clic en este comentario, sí, efectivamente, incluso puedo encontrar comentarios que tengan esa palabra dentro de ella. En este caso, está encontrando esa palabra variable ahí arriba. Intentemos la palabra target porque muchos nodos tienen la palabra target en ellos. Como puede ver, muchos nodos de función tienen esa palabra objetivo en él. Ese está buscando un objeto de personaje, que buscaba objetos de peón. Una vez más, puedes obtener mucha información pasando el mouse sobre los diferentes resultados de búsqueda y haciendo doble clic en el ítem para saltar a él. Tratemos también de encontrar un valor de propiedad. Voy a escribir la palabra quinientos porque creo que tengo eso por aquí en algún lugar, ¿en dónde? 500? Sí. Dije la velocidad máxima de caminata predeterminada o la velocidad máxima de caminata a un valor predeterminado de 500 antes en el curso. Por lo que incluso puede encontrar el valor de la propiedad. Entonces déjame hacer doble clic en eso. Eso me mostrará exactamente dónde está eso. Así que eso también puede ser útil. Si eres como yo pongo ese valor 500 en alguna parte. ¿Dónde estaba eso otra vez? Ahora todo esto está bien y bien. Ser capaz de buscar cosas de manera rápida y eficiente dentro de un plano es de hecho una habilidad clave. Sin embargo, es más potente este encontrar una ventana de resultados aquí al poder buscar en todos sus planos. Y si, puedes hacer eso. La forma de hacerlo es haciendo clic en este botón con el icono de los binoculares en él justo por aquí, encuentra en todos los planos. Ahora esto se vuelve especialmente importante cuando se está comunicando de un plano a otro. Tal vez tengas una variable de salud como la que hacemos dentro de nuestro personaje en tercera persona aquí que se hace referencia en otros planos como nuestra recolección de ejemplo, esa recolección de salud que creamos anteriormente en el curso. Entonces, para saber dónde puede existir esta variable de salud a lo largo de tu proyecto, simplemente puedes hacer una búsqueda de salud. Entra. Ahora aquí es donde se hace referencia a esto dentro de este plano. Pero si hago clic en este botón justo por aquí, descubrirá dónde se hace referencia a la palabra salud en cualquiera de nuestros planos. Entonces lo tenemos referenciado aquí en nuestro HUD WPP. Ahí está nuestro ejemplo de recogida o recogida infantil, etcétera. Solo necesitamos hacer doble clic en cualquiera de estos para saltar directamente dentro de ese plano en particular. Déjame hacer doble clic sobre esto. Consigue Salud dentro de nuestra pastilla de ejemplo bp que la abrirá justo en la parte superior. Podemos ver dónde se obtiene esa variable de salud desde dentro de nuestro terceraPersonCharacter y luego también se establece también. Truco súper práctico. Bien chicos, eso va a hacerlo todo por buscar aquí en planos de Unreal Engine. Te veremos en el siguiente video. 109. Separadores de páginas: bienvenida y navegar por los planos rápida y eficiente es una habilidad esencial para aprovechar al máximo el trabajo en Unreal y marcadores. Los marcadores de planos son una de las cosas que puedes utilizar para ayudarte a ser más eficiente. En este video, vamos a aprender a establecer algunos marcadores de planos, cómo ubicar dichos marcadores, y luego demostrar por qué esto es incluso algo útil de hacer. Entonces, ¿qué es un marcador? Se puede pensar en un marcador de plano como una forma de identificar una sección de una gráfica. Podría estar dentro de tu gráfico de eventos o el guión de construcción al que te gustaría navegar rápidamente. Ahora bien, esto es como colocar un alfiler o un marcador de waypoint en un mapa. Y luego simplemente seleccionando ese marcador de una lista, puedes saltar directamente a ese lugar en tu mapa o en este caso, a tu gráfica. Entonces, antes del inicio de este video, creé un marcador llamado Overview dentro de mi BP ThirdPersonCharacter. Y solo para mostrarte rápidamente cómo funciona esto, si hago doble clic en mi marcador, me va a saltar exactamente a donde coloqué este marcador dentro de este BP, un Blueprint de personaje de tercera persona. Ahora déjame salir de mi pestaña de marcadores aquí y crear un marcador desde cero solo para que puedas seguir junto con este proceso. Bien, así que dentro de cualquier plano, puedes crear un marcador de plano viniendo justo debajo de aquí. ¿Bien? Ahora voy a acercarme a un conjunto dado de nodos aquí que Hey, tal vez quiero crear un marcador ahí mismo. Bien, entonces tal vez estoy trabajando en algún guión y me llaman lejos y estoy como, ¿sabes qué? No quiero olvidarme de estos nodos aquí mismo. Déjame seguir adelante y poner un marcador. Entonces vienes justo debajo de aquí. Vamos a crear un marcador y solo voy a llamar a esto mi marcador de salud. Haga clic en Agregar aquí. Ahora, va a recordar este nivel de zoom así como este posicionamiento en nuestra gráfica aquí mismo. Ahora simplemente necesito acceder a mi marcador para poder volver a esto. Si me pasa a navegar lejos de esto, así. Ahora cada vez que traigo esta pestaña Marcadores que se encuentra debajo del menú de Windows justo aquí arriba, marcadores. Y aquí mismo puedes ver tu marcador con nombre. Entonces, si hago doble clic en salud, eso me saltará a estos conjuntos de nodos, ese mismo nivel de zoom. Ahora te darás cuenta también en esta ventana de marcadores, podemos ver que tenemos algunos nodos comunes. Cada vez que creas un nodo de comentarios. Y estoy hablando estas cajas comunes como esta adjunta Malla Estática a toma de mano. Van a aparecer aquí abajo en la sección de nodos de comentarios de tu ventana de marcadores. Entonces, siempre que estés creando un cuadro de comentarios, y una vez más, puedes crear un cuadro de comentarios resaltando una serie de nodos como este y luego tocando la tecla C y luego creando algún comentario aquí mismo. Puedes ver tan pronto como toque ese CQI, agregó este comentario aquí abajo debajo de la sección del nodo de comentarios. Voy a llamar a esto mi creación de HUD. Y así cada vez que creas un cuadro de comentarios así, todo lo que necesitas hacer, y como puedes ver, no lo actualizaba. Si compilas hover, lo actualizará. Entonces, si haces doble clic en ese nodo de comentarios de ahí mismo, también te lanzará a eso. Entonces, por defecto, al crear un nodo de comentario también, estos cuadros de comentarios, estás creando una especie de marcador. Ahora una última nota aquí, puedes crearlos dentro también puedes crearlos dentro de un script de construcción. En el lado derecho, mostrará dónde está establecido este marcador. Tenemos todo esto establecido dentro de nuestro gráfico de eventos. Pero si hubiéramos creado estos dentro de nuestro script de construcción, nos haría saber que también está dentro de nuestro script de construcción justo aquí. Bien chicos, eso va a hacer para ofrecer marcadores aquí, veremos a todos en el siguiente video. 110. Paleta / panel de favoritos: Bienvenidos de nuevo a todos. En este video vamos a mostrar dónde acceder al panel de paladar dentro de un plano, así como cómo agregar nodos a la porción de favoritos de este panel. Entonces como se puede ver por encima del lado derecho, tengo el panel de paleta abierto. Estoy dentro de mi tercera personaBlueprint de personaje. Sin embargo, puede agregar este panel a cualquier Blueprint. Tengo mi modo de juego en tercera persona abierto aquí también. Y se puede ver que la tengo abierta ahí también. ¿Cómo acceder a este panel? Está justo debajo del menú Ventana aquí. Así es como puedes encenderlo. Entonces, si alguna vez se apaga, así solo puedes volver a activarlo haciendo clic en Ventana y trayendo tu panel de paleta. Este panel muestra una lista no sensible al contexto de todas las diversas funciones y eventos que se pueden usar en su blueprint. Y este panel consta de dos secciones. Empezando por la parte superior aquí tenemos nuestra sección favorita. Ahora bien, esto es un poco engañoso porque si pasamos el mouse sobre la palabra favoritos, dice que este es un listado de tus nodos favoritos y más usados. Ahora puedes definir nodos como tus favoritos, y te voy a mostrar cómo hacerlo en un poquito. Sin embargo, detectará qué nodos está utilizando más. Y eso es súper útil porque entonces en lugar de buscar esos nodos en tu menú contextual, puedes simplemente buscar aquí mismo debajo de tu sección favorita. Y si estás usando algo como obtener todos los actores de clase comúnmente, puedes simplemente arrastrarlo y soltarlo en tu gráfico así. Ahora esta lista de tus favoritos es compartida por todos los planos. Entonces, si tuviera que saltar a mi plano del modo de juego en tercera persona de BP. Y pueden ver que tengo mi panel de paleta abierto por aquí. Puedes ver que tengo este mismo listado de nodos favoritos. Ahora, una cosa que es un poco fastidiosa es que no puedes reordenar tus favoritos arrastrándolos y soltándolos. Esa sería una buena funcionalidad, pero ay, eso aún no existe. Abajo tenemos nuestra sección de encontrar un nodo que te va a permitir filtrar por clase, encontrarás un evento dado o nodo de función. Ahora puedes hacer clic aquí mismo para reducir qué clase quieres buscar. O con este conjunto a la clase all, puedes dar click en cualquiera de estos triángulos desplegables para ver lo que hay disponible, como si vengo debajo de la sección de caracteres aquí mismo, puedes encontrar nodos como agacharse y saltar, por ejemplo ahora cómo agregar nodos a tu sección de Favoritos aquí arriba. Hay un par de formas de hacer esto en tu menú contextual. Si tuvieras que hacer clic derecho y buscar un nodo dado, y solo voy a escribir la cadena de impresión justo ahí. Al pasar el ratón sobre estos diferentes nodos, ve este pequeño triángulo estrellado a la izquierda. Así es como puedes preferir algo. Así que tenga en cuenta que una vez que haga clic en esto, va a mostrar una estrella llenada. Y eso ahora lo demostrará en mi sección favorita ahí arriba. Imprimir cadena. Hagamos imprimir texto también. Ves que también aparece. Si quieres quitártelos, simplemente puedes dar click aquí mismo para quitárselos. O podrías dejarme simplemente volver a hacer clic en estos. Puedes hacer clic derecho sobre ellos aquí en tu sección favorita, y puedes elegir eliminar eso de tus favoritos. También puede optar por agregar notas a sus favoritos entrando en la sección de nodo de búsqueda. Y al igual que podríamos hacer con el menú del botón derecho al protagonizar los de aquí abajo, mientras pasas el mouse sobre una función o eventos determinados, puedes hacerlos favoritos haciendo clic en estas estrellas también. También puedes hacer clic derecho sobre ellos desde ellos aquí abajo en la sección de notas y elegir eliminarlos de tus favoritos también. Ahora bien, si hubiera toda una categoría de nodos te gustaría agregar a tus favoritos. No tienes que empezar cada uno de estos. Simplemente puedes hacer clic derecho en esa categoría y yo elegiré carácter aquí mismo, haz clic derecho sobre él. Podemos decir Agregar Categoría dos favoritos. Y entonces verías arriba en la parte superior aquí, todos estos nodos, salto, lanzados, personaje, etcétera, se han agregado a nuestra sección de Favoritos. Y debido a que esto ha enumerado todo en orden alfabético, es posible que tenga que desplazarse hacia arriba o hacia abajo para ver todos los diversos nodos que puede ver en agacharse, justo aquí también. En agacharse ahí mismo, dejar de saltar, dejar de saltar, etcétera. Ahora, de igual manera, si quisieras eliminar todos estos nodos de tu sección favorita, no tienes que hacerlo uno a la vez. Simplemente puedes hacer clic derecho aquí mismo y eliminar esa categoría de tus favoritos, y todos ellos no se agitarán y se eliminarán de tu lista de favoritos. Otras opciones de nota aquí, si quisieras eliminar un nodo dado de tus favoritos, simplemente puedes hacer clic derecho sobre él. Haré clic derecho en mi nodo Les aquí y lo eliminaré de nuestros favoritos. Otra opción que tienes aquí es hacer clic derecho y elegir borrar todos los favoritos. Eso va a aclarar todo. Otra opción que tienes aquí es hacer clic derecho y podrías elegir cargar un perfil. Y si eliges perfil predeterminado, simplemente recupera todos los favoritos asociados con el perfil predeterminado. Bien, entonces ahí lo tienes, el panel del paladar, muestra un listado sensible sin contacto de todas las funciones y eventos que se pueden usar en planos. También tiene esta sección de Favoritos aquí arriba que te da fácil acceso a tus nodos favoritos y, o más usados. Chicos que van a hacer para ofrecer este. Nos vemos en la siguiente. 111. Nodos que colapsan: Bien, bienvenidos de nuevo a todos. En este video, nuestro objetivo es demostrar cómo se puede hacer colapsar nodos dentro de una gráfica con el propósito de limpieza y legibilidad de la gráfica. Ahora después de un tiempo un plano dado como mi ThirdPersonCharacter Blueprint aquí mismo. Podría comenzar a tener muchos nodos y redes de nodos, haciendo que la legibilidad de la misma sea algo difícil. Ahora al colapsar los nodos, puedes mantener tu hierba con un aspecto limpio y condensado. Bien, así que una forma más temprana en el curso, creamos este guión de trazas de líneas dentro de nuestra tercera persona y Character Blueprint. Y estuvo bien. Sin embargo, es posible que desee limpiar secciones de su gráfica, como esta, solo para hacer que la legibilidad de la misma sea un poco más simple. De hecho, al tener todos estos nodos por aquí, puede tender a abrumar el censo de vez en cuando. Entonces, ¿hay alguna manera aumentar la legibilidad de esto de un vistazo ? Sabemos que todo esto funciona. Crunch esta red de nodos un poco hacia abajo. Bueno, sí que puede. Lo que voy a hacer aquí es que voy a hacer clic izquierdo y arrastrar y resaltar todos estos nodos aquí mismo, excepto mis entradas de clave cero aquí. Entonces con todos esos resaltados, puedo hacer clic derecho sobre él y luego mi menú de clic derecho. Y podría haber hecho clic con el botón derecho en cualquiera de mis nodos seleccionados aquí mismo. Tengo la opción de colapsar nodos. Así que voy a seguir adelante y hacer eso ahora. Y cuando lo haga, vamos a ver que toda esta red de nodos se ha condensado en un solo nodo. Ahora podemos nombrar y de hecho, nos está incitando a darle un nombre. Así que sólo voy a llamar a esta línea de rastreo, así. Y ahora tenemos una gráfica muy simplificada. Hemos reducido todos esos nodos en un solo nodo colapsado. De hecho, dice que es una gráfica colapsada. Si hacemos zoom Obama aquí, ahora se puede ver como estoy pasando el ratón sobre este conjunto colapsado de nodos, tenemos un poco de una vista previa en nuestra ventana ahí. Entonces eso es útil de un vistazo. Se puede ver lo que hay dentro de ahí, aunque sea muy pequeño. Pero si quieres obtener la vista completa, todo lo que necesitas hacer es hacer doble clic en él y echar un vistazo a la parte superior aquí ahora estás dentro de una pestaña que dice trazo de línea. Ese es exactamente el mismo nombre que lo que llamamos esa gráfica colapsada. Y aquí está nuestra red de nodos. Tenemos un nodo de entrada. Aquí está todo el interior de esta gráfica, y luego tenemos un nodo de salida. Ahora bien, no se necesita nada para esta salida porque no teníamos nada que fuera necesario para pasar algún dato ni nada de ese tipo. Ahora tal vez te estés preguntando qué carajo le pasó a nuestro Gráfico de Eventos. Así que me gustaría llamar su atención sobre el panel Mi Plano de aquí. Y debajo de nuestra sección de gráficos, haciendo clic en esta pequeña flecha hacia abajo, haciendo clic debajo de la sección Gráfico de eventos, no solo tenemos acceso a cualquiera de nuestros nodos de eventos que hemos colocado dentro de un gráfico de eventos artísticos. Pero también tenemos acceso rápido a nuestro conjunto colapsado de trazas de líneas de nodos que acabamos de crear. Ahora arriba en la parte superior aquí, también tengo esta flecha hacia atrás y es flecha hacia adelante. Ahora mira esta flecha hacia atrás. Se trata de palabras iluminadas. La flecha hacia adelante está un poco gris aquí afuera. Si hago clic en eso, no pasará nada. Pero si hago clic en mi flecha hacia atrás aquí, me va a saltar de nuevo de mi trazo de línea colapsado gráfico aquí, vuelta a mi pasto de eventos. Entonces, una vez más, si hago doble clic en mi gráfico colapsado de trazo de línea, va a cambiar mi pestaña Gráfico de eventos a mi conjunto de nodos de colapso de rastreo Alinear. Si hago clic de nuevo aquí mismo, eso me pondrá de nuevo al Gráfico de Eventos. Ahora también podría simplemente hacer clic aquí mismo en mi Gráfico de Eventos para volver. Y ahora de vuelta aquí en el panel Mi Blueprint, puedo saltar de nuevo a ese conjunto de nodos de colapso de trazas de líneas haciendo doble clic aquí mismo. Eso me llevará de vuelta ahí. Y también puedo volver a mi Gráfico de Eventos haciendo doble clic en la opción Gráfico de Eventos aquí mismo también. Así que solo mostrando diferentes formas navegar por tu gráfica ahí mismo. Ahora bien, si alguna vez quisiste hacer tu gráfico colapsado aquí, todo lo que necesitarías hacer, déjame hacer un zoom de nuevo en mi línea. Trazar el gráfico de colapso es simplemente hacer clic derecho sobre él. Ahí tienes nodos expandidos, así que haz clic en eso. Y eso volverá a poner todos esos nodos en tu gráfica, como la tenías antes. Y también notarás que ese gráfico colapsado ahora ya no existe debajo de la, debajo de la sección Gráfico de eventos de injerto del panel Mi Blueprint. Ahora, moviéndonos por aquí, vamos a hacer una demostración de nodos colapsos que tienen otros nodos enchufados dentro y fuera de los nodos de colapso. Así que tengo una configuración aquí mismo. Estamos, si presiono una tecla to, comprobaría esta enumeración que configuré antes en el curso es enumeración de estado de salud, en la que tengo los posibles valores de súper bien. Y ella mal. Y dependiendo de en qué se establezca esto, si es súper, iba a cambiar el personaje. Componentes de movimiento. Saltar velocidad z que está controlando qué tan alto puede saltar mi personaje a 1,400 si mi estado de salud es súper, si está bien, lo dejaré en 700. Y si tuviera este set para doler mal, pondría mis saltos la velocidad 2350. Ahora solo voy a demostrar aquí de nuevo qué pasaría si yo fuera a colapsar nodos que tienen otros nodos enchufados dentro y fuera de los nodos de colapso. Ahora para demostrarlo, simplemente voy a seleccionar estos tres nodos aquí mismo. Así que tenga en cuenta estos cables aquí mismo, aquí mismo, y aquí mismo, e incluso aquí mismo, necesitan tener algo a lo que enchufar. Así que cuando colapso estos nodos e incluso tengo algo fluyendo hacia estos nodos de selección. Entonces voy a hacer clic derecho sobre esto. Voy a colapsar estos nodos. Y ahora échale un vistazo. Mi nodo de colapso se ve así. Tengo un pin de entrada, pero también tengo algunos pines de salida también porque necesitamos pasar a lo largo de esta información de movimientos de personajes a este conjunto salta es decir, aviso de velocidad, y también tienen que pasar a lo largo de esos enumeradores también. Entonces voy a nombrar esta gráfica en particular, mi gráfica de salud colapsada. Ese es un buen nombre. Y ahora si tuviera que hacer doble clic sobre esto y abrirlo, podemos ver que tenemos un pin de entrada de ejecución, y podemos verificar esto saltando de nuevo a nuestro gráfico de eventos. Ahí está mi pin de entrada de ejecución. Déjame hacer doble clic sobre esto. Una vez más. Déjame limpiar esto un poco. Pero automáticamente configuró algunos pines de salida en este nodo de salida. Así que tenemos tres pines de salida de ejecución y un componente de movimiento de caracteres, pin de salida también. Ahora bien, esto sí te permite nombrar estos si no te gustaste, ya sabes, nuevo enumerador seis, podría nombrar a estos dos súper bien. Y ella mal. De hecho, eso no sería una mala idea sólo para dejar eso claro, más claro. ¿Bien? Bien. Y cambiaremos esto para que duela mal. Entonces ahora si volviéramos a saltar a nuestro Gráfico de Eventos, simplemente parece tener un poco más de sentido ahí mismo. Bien, entonces ahí lo tienes colapsando sabe ahora esto es algo que normalmente no recomiendo hasta que estés en las etapas finales de tu proyecto. Y estás contento con todos tus guiones y solo quieres limpiar un poco tus gráficas, solo por el bien de la legibilidad. Bonito truco práctico que puedes llevar contigo chicos que lo harán todo por este video. Nos vemos en la siguiente. 112. Diseños personalizados: Bien, bienvenidos de nuevo a todos. Bueno, después de haber pasado algún tiempo trabajando en Unreal, sin duda se te ocurrirá tu propia forma de hacer las cosas, tu propio flujo de trabajo, si quieres tu manera de diseñar todos estos diferentes paneles informativos, no solo dentro de un editor de planos como el que tengo abierto aquí, sino dentro de cualquiera de los editores en Unreal, eso va para tu editor de niveles, malla estática, editores de materiales, todo ese tipo de cosas. Entonces entonces la pregunta se convierte en, ¿hay alguna manera de que pueda guardar un diseño personalizado que tal vez quiera cargar más tarde? La respuesta a eso es sí, claro que puedes. Entonces para ello, puedes encontrar esta opción bajo el menú de windows. Si vienes bajo Ventana en cualquiera de tus editores aquí, ventana debajo de la sección de diseño, aquí es donde puedes crear y guardar un diseño personalizado. Puedes cargar ese diseño, puedes eliminar ese diseño, etcétera. Entonces vamos a mostrar cómo hacerlo en este video. Ahora quiero señalar aquí que mientras estoy en el editor de niveles, tengo esta opción debajo de la sección Ventana aquí mismo. Si tuviera que saltar a mi personaje en tercera persona. Entonces estoy en un plano de clase de personajes y vengo bajo ventana. Puedo ver las opciones de diseño y puedo crear un diseño personalizado aquí abajo también. Y vamos a saltar a algún otro editor aleatorio también. No lo sé, voy a entrar bajo contenido iniciado tal vez incita esa buena silla vieja Editor de malla estática. Abre eso. Claro. Y debajo de la opción de ventana aquí mismo, tengo esas opciones de diseño también. Entonces, lo que voy a hacer antes crear mi propio diseño personalizado es que voy a traer varios paneles de ventana aquí y organizarlos a mi gusto. Y voy a empezar aquí en mi malla estática y la enfermera vendrá por debajo de la ventana. Voy a encender, decir mi registro de mensajes. Claro. Diré que quiero acoplar eso al lado de mis paneles justo aquí arriba. Entonces entraré en mi Blueprint de personaje de tercera persona. Vamos a traer otra ventana. A ver, traeré mi log de salida. Claro, voy a atracar eso aquí abajo. Voy a poner mis marcadores de nivel al lado de mi panel de planos. Así. Tomaré mi panel de paleta y también lo pondré junto a mis componentes. Seguro, ¿por qué no? Tienes el beneficio de pausar por cierto, para que puedas ver y recordar dónde estoy colocando todos estos paneles. Y luego entraré a mi editor de niveles. Tengo mi ventana Niveles abierta desde antes en el curso. Me lo he vuelto a poner. También tengo mi configuración mundial encendida. ¿Qué tal si traigo en el panel de actores del lugar también? Y vamos a ver ¿ qué más tengo aquí? Voy a traer, Vamos a traer a particionero mundial. Esto es si estás trabajando con paisajes. Así que voy a tener esa apertura por aquí también. Bien, entonces con todos estos diseños, personalice la forma en que cito sin comillas, me gusta. Voy a pasar por debajo de mi opción de ventana aquí. Y voy a venir bajo diseño de guardar. Y puedo guardar mi diseño ya que aquí va a traer un poco de diálogo. Y yo sólo voy a llamar a esto mi diseño de vestuario. Y para mi descripción aquí, claro que es opcional como dice, solo voy a llamar a esto mi diseño de ejemplo. Voy a seguir adelante y hacer clic en Guardar. Avísame que se ha guardado en ese directorio justo ahí abajo. Y ahora lo que voy a hacer es meterme debajo de una ventana. Y en mis opciones de diseño de carga, puedes ver mi diseño personalizado. Pero eso es lo que actualmente tengo en su lugar. Así que voy a por defecto esto de nuevo al diseño del editor predeterminado. Ahora cuando hagas esto, va a cerrar tu motor y por defecto, todos tus paneles de ventana vuelta a donde estaban por defecto. Entonces este es mi editor de malla estática, mi personaje en tercera persona. Tengo mi panel de detalles por aquí. puede decir que el panel de paleta se ha ido. ¿Dónde están mis ventanas aquí abajo? Se han ido todos. Y de vuelta aquí en mi editor de niveles en sí, me falta mi pestaña de niveles por aquí. ¿Dónde está mi navegador de contenido? Me falta mi configuración del mundo, partición del mundo. Todo ha vuelto a los valores predeterminados del editor. Ahora, vuelvo debajo de una ventana. Puedo cargar ese diseño. Y wallah, se puede ver que mi panel de paladar está de vuelta en justo donde lo puse. Mi panel de marcadores está de vuelta justo por aquí. Todo está justo de vuelta a donde lo tenía. Editor de niveles, actores de lugar, panel, niveles, configuración de mundo de tabulación, partición mundial, etcétera. Por lo que vale la pena señalar aquí que cuando vas a crear tu propio diseño personalizado, una vez que vas a guardar ese diseño, estás guardando el diseño no solo para el editor actual en el que estás trabajando. En este caso, este sería mi editor de niveles, pero también estás guardando ese diseño para todos los demás editores. Incluyendo en mi caso aquí, estos editor de puré estático y los editores de planos también, para eliminar permitir, simplemente entrarías bajo Diseño de eliminación de ventanas. Ahí está mi diseño personalizado. Cuando seleccione esto, voy a tener un cuadro de diálogo emergente aquí diciendo: ¿ Estás seguro de que quieres hacer eso? Ahora si haces clic en Bien, ahora, notarás que no le pasó nada a mi diseño personalizado porque ese es el layout que estoy usando actualmente. Entonces no va a eliminar el layout que estás usando actualmente. Entonces, si realmente quisiera eliminar el diseño de mi primo, primero tendría que volver a otro diseño. En este caso, volveré a mi diseño de editor predeterminado. Y ahora si iba a entrar bajo nuestra opción de ventana, debajo de la sección de diseño y estaba intentando cargar ese layout. puede ver que ya no existe. Ahora bien, mientras estamos aquí, también quería señalar que podrías importar un diseño existente o podrías, cuando estás guardando un diseño, podrías buscar exportar un diseño también. No voy a demostrarlo aquí, pero quería hacerte consciente de ello. Recomiendo encarecidamente que cree sus propios diseños personalizados, ya que le ayudará a mejorar su flujo de trabajo. Chicos, eso lo hará todo por este video. Nos vemos en la siguiente. 113. Consejos y trucos: Bienvenida. En este video, el objetivo es armarte con consejos y trucos adicionales para ayudarte a trabajar de manera más eficiente con planos en Unreal, no es un alarde de estos consejos y trucos voy a estar trabajando dentro de Maya, BP terceraPersonaPersonaje. No obstante, tenga en cuenta que puede estar trabajando en cualquiera de sus planos. Bien, con nuestro personaje de tercera persona abierto, quería llamar su atención estas dos flechas aquí arriba en la parte superior de mi Gráfico de Eventos. Son flechas hacia atrás y hacia adelante como se ve en cualquier tipo de navegador de internet. Lo que esto te permite hacer es pasar de gráfica a gráfica. Ahora, ahora mismo está gris. Y si traté de hacer click sobre ellos, no pasa nada porque solo abrimos esto. Sin embargo, a medida que hago clic en diferentes áreas de mi Panel de planos o mi área de marcadores que tengo abierta aquí mismo debajo de Marcadores de ventana. A medida que empiezo a dar click en algunas de estas cosas, como digo, salte a donde está mi tecla de entrada cero. Entré en mi función turbo run. O navego a una de mis interfaces de Blueprint aquí, vamos La función de interacción, o una de mis macros en llamas, o salté a uno de mis marcadores aquí, iré a mi marcador de salud o incluso mi marcador de visión general. Ahora me viste hacer clic en una variedad de cosas ahí. Así que ahora he construido una historia, y ahora puedo usar estos botones de ida y vuelta para navegar a esas cosas en las que había hecho clic. Entonces si vuelvo aquí, voy a saltar de nuevo a mi marcador de salud, de nuevo, a mi macro aquí, Maia en llamas, macro, de nuevo a mi interfaz de interacción otra vez. Y como puedes ver, funciona como cualquiera de los navegadores de Internet, botones atrás y adelante, adelante, atrás, adelante, atrás, atrás, etcétera. Ahora, mientras pasas el ratón sobre él, va a decir que puedes hacer clic derecho para ver una historia completa. Sé que en un momento dado esto estaba funcionando. No obstante, si trato de hacer clic derecho ahora mismo, no puedo ver esa historia completa. Tengo que imaginar que la funcionalidad va a encontrar su camino de regreso. Bien, siguiente, quería mostrarte cómo copiar y pegar valores en irreal. Ahora bien, esto es algo que sé, ya sabes cómo hacerlo a través tantas otras aplicaciones informáticas. Control C para copiar, control V para pegar. Pero este es uno de esos trucos que por cualquier motivo se escapa de la mente de mucha gente como incluso siendo posible. Lo que voy a hacer aquí en mi panel de componentes, y voy a saltar a mi ventana gráfica aquí porque esto va a ser un poco visual por naturaleza. Voy a agregar un componente completamente nuevo. Voy a agregar un bonito sistema de partículas de Ágora. Esto va a estar unido a mi Componente Cápsula. Voy a dejar ese nombre de Niágara. Eso va a estar bien. Voy a establecer un activo del sistema Niágara aquí. Al hacer clic en este desplegable, estableceré uno de estos mágicos. Claro. Ahora actualmente está apareciendo justo en el centro aquí porque esta se encuentra en la ubicación 000 relativa a nuestro Componente Cápsula. Esto se adjunta a mi componente consejero. Pero digamos que quería que esta partícula apareciera justo en la ubicación de mi componente de mano simulada. Bueno, esto sería tan sencillo como copiar esta ubicación. Esta es una ubicación relativa. Esta ubicación relativa de los componentes en relación con nuestro componente católico. Y para hacer esto, simplemente puedo hacer clic derecho aquí mismo en la ubicación, hacer clic derecho en Copiar. Se puede ver turno más arroz. botón derecho del ratón es la tecla de acceso rápido para hacer eso aquí. Entonces puedo acercarme a mi partícula de Niágara, haga clic con el botón derecho aquí mismo, y podría pegarla. Entonces, por cualquier razón, ese es un truco súper práctico que se le escapa la mente de la gente como incluso siendo posible. Pero créeme, usé esa propina todo el tiempo. A continuación, me gustaría llamar su atención sobre el panel Mi Blueprint donde tenemos este ícono de engranaje. Y si hago clic en esto, lo que quiero hablar es esta opción más alta que muestra variables heredadas. Actualmente tengo esta comprobada. Ahora bien, si marco esto, van a notar que muchas categorías variables aquí van a desaparecer. Y la razón por la que esos se van es porque esas eran variables heredadas categoría ahí se heredaron de nuestra clase de carácter padre. Ahora bien, la razón por la que es importante saber esto es porque si estás creando alguna clase base y luego heredas de esa clase, tal vez te estés preguntando como, Oye, dónde todas las variables que configuré en esa clase base, ¿ dónde existen siquiera? Ahora para ayudar a conducir a casa este punto, voy a abrir otro plano aquí. Anteriormente en el curso, creamos este plano de personaje infantil, éste heredado de mi personaje en tercera persona. Así que déjame abrir a este tipo muy rápido. Esto es un niño. Si alguna vez ves esto, puedes abrirlo el editor de planos completo haciendo clic aquí mismo. Se puede ver que la clase de padres aquí es mi personaje BP en tercera persona. Ahora si miramos por encima en la sección variable del niño. Como esperar un minuto, donde todas las variables dentro de mi clase padre aquí, he creado todas estas variables. Golpeé variable actor, un calcetín, y una variable. Estas son variables que acreditamos a lo largo del curso. ¿Dónde están? Bueno, si entro en el niño y hago clic en este ícono de engranaje en el panel Mi Blueprint y muestro variables heredadas. Y abrimos aquí nuestra categoría de variables. Ahora podemos ver todas esas diversas variables que habíamos configurado dentro de nuestra clase padre. A continuación, me gustaría llamar su atención sobre un icono de engranaje que se encuentra en el extremo superior derecho de nuestro panel Detalles. Si haces clic en esto, también vas a ver una variedad de opciones. Voy a hablar a través de algunos de estos que me gusta mucho usar, como mostrar solo propiedades modificadas. Si revisas esto, limitarás tu panel de detalles para mostrar solo las propiedades que modificaste. Eso es súper útil para saber como, Oye, ¿qué diablos cambié realmente de este componente? Esto me parece especialmente útil para algo como el componente de movimiento de personajes porque el componente Movimiento de personajes contiene todo tipo de propiedades. Entonces, si quiero conocer las solo las que he modificado, puedo dar click ahí mismo y mostrar solo las propiedades modificadas versus si marco esto, esta enorme lista de lavandería de propiedades que me presentan de otra manera, algunas de las otras opciones que me gusta explorar dentro de ese menú, tenemos que mostrar todos los detalles avanzados. ¿Qué carajo es eso? Bueno, en cualquiera de estas categorías dadas, tenemos algunas propiedades avanzadas que son menos conocidas, menor uso, etcétera. Puedes hacer clic y mostrarlos así manualmente. No obstante, si no querías hacer como lo estoy haciendo ahora mismo, y exponiéndolos a todos uno por uno. Simplemente puedes entrar en ese ícono de engranaje y mostrar todo avanzado. Y encenderá todas esas categorías avanzadas de inmediato para que no tengas que hacer clic en todas ellas. Eso es práctico. Déjame apagar eso. Algo más que me gusta usar aquí es en esta categoría, puedo colapsar todas las categorías o ampliar todas las categorías. Una vez más, tengo mis componentes de movimiento de personajes seleccionados por aquí. Aquí hay muchas categorías diferentes. Movimiento de personajes, saltos, caídas, componentes, movimiento de personajes de tick, networking, muchas categorías diferentes. Entonces, si quiero que los colapse a todos, simplemente podría hacer clic en eso y ver todas las categorías individuales para que pueda abrir solo las que me interesan. Y claro, puedo hacer lo contrario, que es ampliar todas las categorías. Entonces esa es una manera fácil de abrirlos todos sin tener que hacerlo uno por uno. Bien, Siguiente, me gustaría hablar sobre lo que hace este botón ocultar no relacionado a lo largo la barra de herramientas dentro de un editor de planos. Ahora que realmente ven esto funcionando, necesitas estar dentro de tu Event Graph o tu script o función de construcción o una macro, algo con algunos nodos. Voy a destacar mi componente cápsula dentro de esta red de nodos. Y voy a dar click en este botón. Esto es como un botón de alternar de encendido-apagado aquí mismo. Cuando es azul, se activa. Cuando es gris, se alterna. Déjame volver a encenderlo. Lo que esto ha hecho es que se ha atenuado. Cualquier nodo es ghosted ellos hacia fuera. Cualesquiera nodos que no estén relacionados con el que he seleccionado, uno o los que he seleccionado. Entonces, ¿por qué están todos iluminados todavía? Bueno, mi actor adjunto nodos de dos componentes aquí mismo, dependen del componente capital porque están enchufados a la entrada padre. Estos engendran actor de nodos de clase aquí mismo. Ellos dependen de la transformación del mundo que estamos obteniendo del componente católico. Entonces esos también están iluminados. Ahora bien, si tuviera que hacer zoom aquí atrás, puede ver que todos los demás nodos también están fantasmas porque no están relacionados con el que actualmente he seleccionado, este componente católico. Ahora bien, esto es extremadamente útil si tienes una maraña de cables, es difícil hacer cabezas o colas de lo que está haciendo tu guión. Y realmente estás tratando de brillar una luz para enfocarte en solo un subconjunto dado de nodos. Ahora también quería señalar aquí que derecho a la derecha de nuestro botón ocultar no relacionado aquí tenemos estos tres puntos. Si tuvieras que hacer clic en esto, tienes la opción de bloquear el estado del nodo. Ahora bien, si hago clic y enciendo esto, ya podemos ver que está encendido con esa marca de verificación. Lo que eso va a hacer es que va a mantener todos los nodos en su estado actual resaltados o dosis. Entonces eso significa que si tuviera que hacer clic en otro lugar y hacer clic en otro nodo, va a mantener todos los demás nodos todavía van a sentarse. Y los que tenía encerrados para ser iluminados, permanecerán iluminados hasta que los desbloquee. Entonces eso es bueno saberlo. Bien chicos, hay algunos consejos y trucos para trabajar dentro de planos de Unreal Engine. Espero que los encuentres útiles. Los veremos a todos en el siguiente video. 114. Teclas de conexión de productividad: Bien, bienvenidos de nuevo a todos. En este video, nuestro objetivo es resumir todos los atajos de aumento de productividad integrados en el editor Blueprint para que pueda construir y navegar sus scripts de manera más eficiente. Ahora para empezar, te voy a mostrar dónde se configuran las teclas de acceso rápido dentro de Unreal para que puedas personalizar tus teclas de acceso rápido para aumentar la productividad para todas las áreas del motor, no solo dentro de planos pero en todas partes. Entonces, ¿dónde puedes personalizar estas teclas de acceso rápido? Bueno, eso se hace en tus preferencias de editor. Puedes acceder a tus preferencias de editor entrando en el botón Editar aquí. Preferencias del editor. Y con esta pestaña abierta, sólo voy a abrirla por la parte superior derecha, aquí arriba. A lo largo del lado izquierdo, tienes atajos de teclado. Usted da click aquí. Y aquí es donde se configuran todas las distintas teclas de acceso rápido para cada área del motor, cada editor, editor de planos. Aquí es donde vemos algunas teclas de acceso rápido como compilar F7. Tienes retroceso para ir a un control de gráfico padre más F va a traer a colación ese menú de búsqueda, etc. Ahora esto obviamente es genial porque si te encuentras haciendo una acción dada una y otra vez, puedes crear algunas teclas de acceso rápido por ti mismo. Además, puedes personalizar las teclas de acceso rápido a tu gusto. Y de hecho, eso es valioso para mí hacerlo aquí porque la clave F7, que actualmente está destinada a compilar es también la tecla de acceso rápido que tenía vinculada a mi software de grabación OBS para iniciar y detener mi juego. Entonces, si quisiera cambiar esto, simplemente podría hacer clic en esto aquí mismo y decir que quiero que este sea el clic que el espacio irá F8. Y también puedes agregar una segunda encuadernación. Entonces puedo decir, claro, F9 va a hacer eso también. Ahora no hay botón Guardar ni nada aquí. Entonces, si tuviera que entrar en mi blueprint de personaje de tercera y hacer algún tipo de cambio como si acabara de cortar este cable, luego vuelva a enganchar esta copia de seguridad. Ahora puedes ver que me está pidiendo que compile. Entonces, si tuviera que presionar F8, eso lo compilará. Pero déjame cortar una vez más y volver a engancharlo. Y si tuviera que presionar F9 y obviamente no me ves presionando esos. Sólo vas a confiar en él. Yo lo estoy haciendo. F9, Eso va a compilarlo también. Así que una manera realmente práctica de personalizar eres teclas de acceso rápido para varias áreas del editor. Bien, así que con eso fuera del camino, voy a mostrar cómo realizar un montón de comandos de teclas de acceso rápido dentro de los planos. Estos van a ser específicos planos que debes conocer. Ahora, pasé por muchos de estos a lo largo del curso. Pero esto va a servir como un gran resumen. Así que de vuelta en mi terceraPersonaPersonaje, solo encuentra una selección de nodos, si se quiere, para jugar en casa. Si quieres seleccionar algún nodo, es tan sencillo como hacer click izquierdo sobre él, eso lo seleccionará. Si desea agregar a una selección determinada, simplemente mantenga presionada la tecla Mayús. Voy a mantener presionada la tecla Mayús y hacer clic con el botón izquierdo así. Si desea alternar una selección, puede mantener presionada la tecla Control y hacer clic con el botón izquierdo. Así. Para crear una selección de marquesina, simplemente puede hacer clic con el botón izquierdo y arrastrar y obtendrá este pequeño cuadro de línea punteada. Y siempre que esto toque, eso es lo que vas a estar seleccionando que la selección de marquesina haga clic izquierdo y arrastre. Si quieres agregar a tu selección de marquesina aquí mismo, puedes mantener presionada la tecla Mayús y hacer clic con el botón izquierdo, y luego puedes agregarle algunos nodos así. Si desea eliminar selecciones de su selección de marco, simplemente puede mantener presionada, Controlar, hacer clic izquierdo y arrastrar, y eso eliminará lo toque su selección de marquesina. Entonces esos eran comandos de selección de planos. Bien, los comandos de navegación que debes conocer. Tienes el botón derecho del ratón manteniendo esto pulsado. Te arrastraremos por toda la gráfica. Tienes este ícono de mano para arrastrar así. Si quieres hacer zoom a la selección, simplemente puedes presionar la tecla home en tu teclado y eso ampliará lo que hayas seleccionado. Enmarcarlo si quieres. Si quieres acercar y alejar tu gráfico, eso es simplemente desplazarte dispuesto a entrar y salir como esa rueda de desplazamiento hacia arriba y hacia abajo. Ahora bien, si quieres acercar Más allá de la escala 1.1. Así que aquí está tu nivel de zoom en la parte superior derecha Zoom uno, dos puntos uno, si quieres hacer zoom más allá de eso, mantén presionada la tecla Control, y luego puedes acercar Passat hasta una nivel de zoom de más siete. Bien, veamos algunos comandos genéricos que debes conocer sobre control más b. Eso te saltará a usar este activo. En este caso, el terceraPersonCharacter vive dentro del navegador de contenido. Déjame saltar de nuevo dentro de ahí. Tienes control más S que te guardarán tu plano. Entonces tenemos aquí tipo genérico de comandos de computadora donde si tuvieras que hacer algo como Control plus y, eso rehará algo, Control más z que deshará algo. Entonces, exploremos eso simplemente moviendo este nodo un poco hacia abajo. Voy a hacer Control Z para deshacer eso, Control Y para rehacer eso, para encontrar algo en este plano puedes hacer control más F. También tengo esta ventana de resultados finos abierta aquí abajo. Déjame cerrar esto. Entonces, si tuviera que hacer control más F, eso traerá mis resultados finales. Si tuviera que tratar de encontrar algo así como decir Mi cualquier cosa relacionada con la salud, podría buscarlo. Están justo dentro de este plano. Sin embargo, si quisiera encontrar algo en cualquier Blueprint, haría Control Shift y F, eso traerá mi hallazgo en cualquier menú de planos aquí. Y si tuviera que escribir en salud ahora y presionar Enter, puedo averiguar dónde se hace referencia a la palabra salud dentro de cualquier tipo de plano. Personaje de tercera persona, mi WPP, ejemplo de HUD, pickup, etcétera. Ahora, como recuerdas de antes en el curso, F7 es la tecla de acceso rápido predeterminada para compilar tu blueprint. Lo cambié por mí personalmente, en mis preferencias de editor, lo cambié a F8, F9, pero F7 es la forma predeterminada de compilar tus, bien, algunas acciones variables que debes conocer. Déjame ir a algún espacio vacío. Sólo voy a traer rápidamente un nodo de anuncios. Operadores, Agrega una forma de obtener y establecer una variable rápidamente. Si vas a estar enchufándolo en el lado de entrada, simplemente puedes hacer clic izquierdo y arrastrarlo encima de un pin como ese para obtener el contenido de esa variable. Sin embargo, si vas a arrastrar y soltar en el lado de salida de un nodo, haz clic con el botón izquierdo en la parte superior de ese pin y automáticamente traerás un centro de esa variable. También debes saber que si mantienes presionada tecla Control y el control con el botón izquierdo más el clic izquierdo y arrastra esto a una gráfica y la sueltas en cualquier lugar. Puedes obtener esa variable si mantienes presionada la tecla Alt y haces clic izquierdo y arrastras, puedes traer un centro de esa variable. Y si no estás seguro de lo quieres hacer con esa variable, puedes hacer clic con el botón izquierdo del mouse y luego obtienes ese menú para obtener o configurar. Y esa es una forma en la que puedes decidir sobre la marcha qué quieres hacer con eso. Ahora bien, algo de lo que mucha gente no conoce con variables en el panel Mi Blueprint, puedes reordenarlas simplemente arrastrándolas por ahí. Entonces, si quería colocar todas mis variables flotantes una cerca de la otra, simplemente puedo hacer clic izquierdo y arrastrar. Entonces, cualquiera que sea el que vayas a arrastrar encima, va a saltar eso justo encima de él, así. Entonces podrías hacer algo así para organizar tus variables, todo bien en tu sección myvariable. A continuación, voy a presumir en diversas acciones de nodo que puedes tomar. Y voy a eliminar a algunos de estos getters y setters aquí mismo. Voy a dejar este nodo add aquí mismo. También voy a hacer clic derecho y traer en un evento personalizado. Voy a dejar eso en un nombre genérico ahora mismo. También voy a traer una de mis funciones a medida, mi función Modificar salud también. Bien, primero tenemos el menú contextual específico del nodo. Si tuviera que hacer clic derecho en un nodo dado, traeré a colación un nodo contextos específicos Menú cosas que puedo hacer con ese nodo dado, podría agregar un punto de interrupción o alternar un punto de interrupción. Esas son dos acciones muy comunes. Romper enlaces de nodos es una acción muy común. Refrescar un nodo es una acción muy común. Obviamente, tienes tu copia y corte, duplicado, todo ese tipo de cosas también. Tenga en cuenta, sin embargo, este era mi menú contextual para este nodo de función. Si tuviera que hacer clic derecho en este nodo de adición, echa un vistazo a una de mis opciones que tengo específicas para este nodo. Tengo la capacidad de agregar un pin. Podría agregar un pin específico a este nodo, ese no está disponible. Si hago clic en este nodo de función aquí mismo, sin embargo, diferentes nodos pueden tener diferentes acciones de nodo como este nodo de adición aquí mismo. Ahora algunos nodos sí permiten hacer doble clic sobre ellos para ir a ese nodo asociado o a una gráfica. Esta es una función hecha a medida. Entonces, si tuviera que hacer doble clic en esta función que creé anteriormente en el curso eso abrirá esa pestaña de función dada para mostrarme lo que hay dentro de esa función. Entonces es bueno saber los nodos Timeline. También puedes hacerlo. Para abrir el Editor de Línea de Tiempo, mueve una nota, sabes que ya puedes hacer clic izquierdo y arrastrarla así. Sin embargo, también puedes usar las teclas de flecha tu teclado para moverlo hacia arriba y hacia abajo, la izquierda y a la derecha, etcétera. Para eliminar un nodo, simplemente puede seleccionarlo así y presionar la tecla Eliminar para cambiar el nombre de un nodo como un evento personalizado. Tenga en cuenta nuevamente, esto no está disponible en todos los nodos dados, sino evento personalizado donde puede nombrarlo. Simplemente puedes hacer click izquierdo sobre el título aquí mismo. Y eso te permitirá renombrarlo mis eventos de disfraces. Pulse Intro. Alternativamente, puede presionar F2 con el seleccionado, y eso le permitirá renombrarlo también, evento personalizado renombrado. Otros comandos aquí, permítanme simplemente borrar estos hacia fuera y traer en algunos nodos nuevos van a hacer clic derecho traer en la tecla siete, dirá siete clave. Vamos a modificar algo de salud. Y déjame volver aquí, accidentalmente hice doble clic en eso. También traeré un nodo de retardo. Entonces ya debes saber que si seleccionas el nodo y presionas la tecla F9, puedes agregar un punto de interrupción para eso, y yo puedo hacerlo por cada uno de estos. Entonces cada uno de estos tiene un punto de ruptura en él. Para borrar todos los puntos de interrupción, puedo hacer Control Shift y F9, eso me deshará de todos ellos de inmediato. Para cortar una selección, simplemente puedo hacer Control X. Obviamente controlar una V es pegar eso. Copiar una selección dada. Sólo puedo tener un par de nodos seleccionados como este control C, control V. Deberías saberlo desde casi cualquier tipo de aplicación informática. Veamos para duplicar una selección. Entonces solo voy a seleccionar estos y hacer Control más D, y eso los duplicará. Y por último, ya debes saber que puedes agregar un comentario alrededor una selección simplemente seleccionando los nodos alrededor de los que quieres crear un comentario. Al igual que todos estos tres, presiona la tecla C para agregar un cuadro de comentarios, mi cuadro de comentarios. Y nuevamente, una vez que hayas creado un cuadro de comentarios en tu ventana de marcadores, que accede Windows. Marcadores. Entonces deberías poder encontrar ese cuadro de comentarios en algún lugar de ahí está justo abajo en la parte inferior se conoce como Comentario. No obstante, si compilo, ahora actualicé a mi cuadro de comentarios, si tuviera que navegar lejos de él, podría hacer doble clic sobre él para saltar a mi cuadro de comentarios. Bien, varias acciones de pin que debes conocer. Vamos a traer aquí un par de nodos para ayudar a facilitar esta discusión. ¿Sabes qué? Voy a traer a un actor spawn de nodo de clase porque es bueno demostrarlo con eso. Si tuviera que hacer clic derecho en un pin dado, como mi spawn transform aquí mismo. Traeré un menú de diferentes acciones de pin que puedo tomar, puedo promover esto a una variable que es una acción pin muy común. Se puede ver que en casi cualquier dolor aquí promueve una variable también con una transformada de engendro o un vector o un pin rotador. Si hace clic con el botón derecho en esto, puede dividir el Pin de estructura porque una transformación consiste en datos de ubicación, rotación y escala. Entonces fomente haga clic derecho sobre esto. Esencialmente puedo exponer los componentes dados de ese pin, la ubicación, la rotación y los datos de escala de esa transformación. Si vuelvo a traer mi Add Node aquí, voy a hacer clic derecho, traer ese nodo add. Si tuviera que hacer clic derecho en estos bolígrafos grises, estos son pines comodín. Podría hacer clic derecho sobre él. Y tengo diferentes acciones de pin que puedo tomar aquí también, aunque estas no están listadas acciones de apuntalamiento, las considero acciones pin. Puedo convertir el lápiz a un tipo de datos dado. Entonces si sé que quiero que esto sea un entero más digamos, un bolígrafo flotante, puedo cambiarlos en consecuencia. Ahora a veces cuando comienzas a crear algún código de espagueti, tienes cables que van por todas partes. A veces solo quieres enfatizar un cable conectado solo para que sea más fácil de leer, por así decirlo. Entonces si tuviera que enganchar uno de mis cables aquí, déjame simplemente tomar cualquier flotador aquí salud, voy a arrastrarlo encima de ahí. Si tuviera que pasar el ratón sobre este alfiler, se puede ver cómo ilumina ese cable ahí mismo. Y funciona en ambos sentidos. No importa de qué lado del cable aquí estoy pasando el ratón, pero se puede ver que poco a poco ese cable gana en fuerza e ilumina un poco más. Entonces eso solo puede ayudar con fines de legibilidad. Ahora digamos que quería conectar esta variable a una pluma diferente. Podría cortar el bolígrafo manteniendo presionada la tecla Alt y haciendo clic izquierdo en el fragmento de la herramienta Pluma así. Sin embargo, si quisiera moverlo, podría mantener pulsado Control clic izquierdo y arrastrarlo a otra entrada también. Y nuevamente, eso funciona en ambos lados de nuestra conexión aquí. Entonces, si también quisiera mover este pin, podría mantener pulsado Control, hacer clic izquierdo y moverlo. O si quieres cortar ese cable, mantén presionada la tecla Alt, haz clic con el botón izquierdo y eso cortará ese cable. Bien, Y finalmente, vamos a mostrar las teclas de acceso rápido para agregar algunos de los nodos más utilizados a tu gráfica. Tenemos manteniendo pulsada la B y dando click izquierdo. Añadiremos un nodo de sucursal. Si mantienes presionada la tecla D y haces clic con el botón izquierdo, traerás un nodo de retardo, úsalos todo el tiempo. Mantenga presionada la tecla S y haga clic con el botón izquierdo que trae un nodo de secuencia, el GT y el clic izquierdo que trae un nodo de puerta, la M, M como en Mary, y el clic izquierdo, traerán un nodo de puerta múltiple. Si mantiene presionada la tecla F y hace clic con el botón izquierdo, trae una para cada bucle. Si mantienes presionada la tecla N, N como en Nancy, haces clic con el botón izquierdo y eso traerá un nodo do n. Si mantienes presionada la tecla 0 y haces clic con el botón izquierdo, quiero nevado. Y si mantienes presionada la tecla P y haces clic con el botón izquierdo, traerás Event Begin Play si aún no se ha agregado a tu gráfica, yo uso esas teclas de acceso rápido todo el tiempo. Bueno chicos, eso lo va a hacer todo por este video. Nos vemos la próxima vez.