Blueprints de Unreal Engine 5 para principiantes: crea videojuegos y medios interactivos | Jordy Vandeput | Skillshare

Velocidad de reproducción


1.0x


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

Blueprints de Unreal Engine 5 para principiantes: crea videojuegos y medios interactivos

teacher avatar Jordy Vandeput, Filmmaker and Youtuber

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.

      INTRODUCCIÓN

      2:03

    • 2.

      La interfaz del blueprint

      10:00

    • 3.

      Eventos en Unreal Engine

      5:24

    • 4.

      Planos controlables: clases de peón y personaje

      7:24

    • 5.

      Explorar el plano de nivel

      4:32

    • 6.

      Mecánica de juego simple: sistema para plantar bombas

      12:46

    • 7.

      Detección de éxito con el calco de líneas

      11:17

    • 8.

      Eventos de simulación dinámica

      9:13

    • 9.

      Funciones de blueprint: código reutilizable

      7:28

    • 10.

      Mejores prácticas de organización del blueprint

      4:41

    • 11.

      Proyectos finales y conclusión

      3:45

  • --
  • 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.

441

Estudiantes

4

Proyectos

Acerca de esta clase

Aprende scripting visual en Unreal Engine Blueprint desde cero y da vida a tus niveles estáticos. Este curso para principiantes te enseña a crear mecánicas de juegos y sistemas interactivos sin escribir código. A través de proyectos prácticos, entenderás la lógica detrás de Blueprints y no solo copiarás lo que ves.



¿Eres nuevo en Unreal Engine 5? ¡Echa un vistazo a mi clase para principiantes!

Lo que vas a aprender:

  • Navega por el editor de Blueprint y comprende sus componentes
  • Crearás tus primeros objetos interactivos que respondan a la entrada del jugador
  • Construir mecánicas de juego como plantar bombas, pintar con aerosol y colisiones que cambian de color
  • Usar eventos, variables y funciones para controlar el juego
  • Implementar la detección de hits con el trazado de líneas para la mecánica de rodaje
  • Organizar planos desordenados en gráficos limpios y profesionales
  • Depurar problemas como un profesional utilizando técnicas comprobadas

Por qué tomar esta clase: cada elemento dinámico de Unreal Engine, ya sea una puerta que se abre, un enemigo que ataca o una luz que parpadea, requiere blueprints. Sin ellos, tus hermosos niveles siguen siendo museos estáticos. Con este curso, dejarás de ser una persona estancada con escenas sin vida para convertirte en alguien capaz de crear cualquier cosa interactiva.

Para quién es esto: perfecto para principiantes absolutos que han abierto Unreal Engine pero se sienten perdidos a la hora de hacer que las cosas realmente funcionen. No se necesita experiencia en programación: si puedes entender que "cuando esto sucede, haz eso", puedes dominar Blueprints.

Lo que vas a construir:

  • Rotación y cambio de color de objetos
  • Personajes y peones controlables
  • Sistemas de iluminación interactiva
  • mecánica de graffiti con pintura en aerosol
  • Alfileres de bolos basados en la física
  • Proyecto final: juego de plataformas aleatorio o escena dinámica del bosque para renderizaciones de películas

Qué necesitas:

  • Unreal Engine 5 (gratuito)
  • Habilidades informáticas básicas
  • El deseo de realizar experiencias interactivas

Recursos incluidos:

  • Todos los archivos del proyecto con planos comentados
  • Dos proyectos finales completos con soluciones

Deja de mirar escenas estáticas. Comienza a crear mundos interactivos. Únete a miles de estudiantes que han liberado el poder de Unreal Engine Blueprints.

Conoce a tu profesor(a)

Teacher Profile Image

Jordy Vandeput

Filmmaker and Youtuber

Top Teacher

Hi, I'm Jordy and I hosts one of the biggest YouTube channels about filmmaking & video editing; Cinecom.

With more than 2.5 million subscribers, we publish weekly tutorial videos. After graduating from film school in 2012, I immediately began teaching online where my real passion lays.

I've never liked the way education works. So I wanted to do something about it. With the classes I produce, I try to separate myself from the general crowd and deliver a class experience rather than some information thrown at a student.

Take a look at my unique classes, I'm sure you'll enjoy :-)

Ver perfil completo

Level: Beginner

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. INTRODUCCIÓN: Comenzar a desbrotar el motor es súper emocionante. Puedes dar forma a un paisaje, arrastrar varios modelos al nivel, poner algunas cosas más ahí, aún más, incluso más modelos de tratados hasta que termines con algo que creaste. Pero es estático. No hace nada. Lo único que hace es verse bonita. Y así que muy pronto te das cuenta de que los planos, la base de la funcionalidad dinámica es la clave para que tus juegos sean jugables e introduzcas mecánicas de juego para hacer renders de películas tengan eventos dinámicos que los den vida, o en mi caso, incluso hacer una simulación de shooter totalmente dinámica que será utilizada para una obra de teatro Hola. Yo soy Jordi. Soy un creativo digital y uso UNRLEngine para todo tipo de proyectos, que van desde videojuegos hasta renders de películas y mucho más UNLEngine tiene cientos de aplicaciones diferentes, pero independientemente de para qué uses el motor, eventualmente, quieres aprender a crear Bueno, eso es exactamente en lo voy a ayudarte en esta clase. Mi objetivo es enseñarte la lógica detrás del blueprint para que entiendas lo que estás haciendo y no solo recrear sin cerebro lo que Por eso iremos paso a paso, crearemos pequeñas cosas divertidas y exploraremos realmente algunas de las notas clave de lo que hacen y cómo funcionan. Y también vamos a cometer errores y quedarnos atascados en las cosas porque eso es parte del viaje. Pero juntos, resolveremos esos errores, y te mostraré algunas técnicas realmente buenas como puedes resolver problemas para eventualmente hacer que tu plano funcione Al final de esta clase, tendrás una sólida comprensión de cómo funcionan los planos y Unreal Engine Podrás convertir tus ideas en un plano de trabajo y eventualmente hacer el juego de tus sueños Ese cortometraje demente o cualquier otro proyecto irreal, tenías en mente una Esta clase es para todos los que comenzaron a explorar UnRel Engine y ahora está atascado en Blueprints. ¿ Eso suena como tú? Bueno, entonces estoy súper emocionada ayudarte y espero verte en mi clase. Abordemos juntos la programación de Unreal Engines y aprendamos a comprender los conceptos básicos fundamentales de los planos 2. La interfaz del blueprint: Oigan, chicos, bienvenidos, y estoy súper emocionada de que hayan comenzado esta clase. Vamos a sumergirnos en el mundo de planos para el motor Unreal, que para algunos va a ser un monstruo aterrador de abordar Pero una vez que entiendes la idea fundamental de cómo funciona un plano, en realidad es bastante fácil y muy divertido Puedo pasar horas averiguando sistemas interactivos, y es muy gratificante si eso funciona Así que vamos a crear un plano. En el navegador de contenido, haz clic derecho y verás que podemos crear una clase de blueprint a partir de ahí Esto abrirá una ventana que nos pide seleccionar qué tipo de plano queremos construir Y en la parte superior aquí se sientan las más comunes, que vamos pero ampliando todas las clases, podemos encontrar más de 1,000 más. Ahora bien, no se sienta abrumado por esto. Hay clases de planos muy específicas que van a tener más sentido una vez que entiendas la idea general detrás de los planos Volveremos a esto cuando esto va a tener más sentido. Entonces, por ahora, simplemente colapsa esa ventana, y echemos un vistazo a la clase común. La clase de actor es la más utilizada. Como dice la descripción, te permite construir algo y colocarlo en el mundo. Entonces comencemos con esa y exploremos algunas de las otras más adelante en este curso. Y lo voy a nombrar BP Underscore interactive Cube. BP significa blueprint, y es una manera de mantenerse organizado en su proyecto Entonces ahora podemos seguir adelante y arrastrar eso al nivel, y mostrará el widget del plano tipo actor Está vacío, claro. Entonces, ya sea desde el outliner, podemos hacer clic en Editar o simplemente hacer doble clic en la clase de blueprint en su navegador de contenido Mano, aquí está. La ventana que pasarás la mayor parte del tiempo. Entonces, vamos a explorar lo que vemos y para qué se utiliza. En el lado izquierdo, tenemos los componentes. Y aquí, podemos agregar componentes con los que queremos hacer algo. Por lo que puedo hacer clic en y elegir entre una larga lista de artículos. Y comencemos con un simple cubo. Este es el mismo cubo que agregarías directamente a tu nivel, por cierto. Tiene su propio puerto de visión, y puedes moverlo, escalar, rotar, tal como lo harías en tu nivel. E interesante es que también podemos ver ese cubo de nuevo en el nivel ahora ya que lo hemos agregado al plano Lo que es muy importante entender es que si movemos el cubo en el nivel, realidad estamos moviendo todo el plano En el panel detallado de s, podemos ver el cubo que hemos agregado. Esto refleja la ventana de componentes dentro del blueprint. Y podríamos seleccionar un cubo de ahí para mover específicamente a ese actor, pero esa no es una buena práctica porque ya no refleja la posición del refleja la posición del cubo en el plano. De hecho, cambiar de nuevo la posición en el plano ya no se actualiza en el nivel Entonces, restablecemos lo que acabamos de hacer en el outliner. Ir a trabajar y construir todo dentro del propio plano. Bien, hagamos algo con este cubo. Vamos a crear nuestro primer plano funcional. Y hay dos lugares en los que podemos comenzar a escribir, ya sea en el script de construcción o en el gráfico de eventos El guión de construcción es todo lo que sucede en el editor. Por ejemplo, vamos a arrastrar el cubo a la ventana de construcción. Aquí mismo ahora es una referencia al cubo, y a partir de ahí, podemos hacer clic y arrastrar para conectarlo a un nodo. Unreal me mostrará una lista de todos los nodos a los que puedo conectar el cubo, mostrando esencialmente todas las características del cubo Como todas las opciones de transformación están ahí. Podríamos escalar la posición o rotar el cubo desde aquí. Ahora, obviamente, queremos establecer la posición o la escala o lo que sea. Elegir obtener retornos a la posición actual, lo cual es útil para otras cosas. Por ahora vamos a elegir establecer posición. Incluso puedes buscar eso. Verás relativo y mundo. El relativo es la posición dentro del plano, que está en cero La posición mundial es la posición y el nivel en sí. Así que escojamos un pariente por ahora, y se puede ver que este nodo nos permite ingresar a una nueva posición. Por ejemplo, 100 unidades más altas en el eje Z. Y lo último que tenemos que hacer es conectar el nodo build al nodo de ubicación. Si quieres ver los cambios en el nivel, tenemos que hacer clic en el botón compilar en el blueprint Así que con casi cada cambio en tu nodo, siempre haz clic en eso para ver el resultado. Y eso desvía la posición. Oye, tu primer plano te dijo que era fácil. Ahora, echemos un mejor vistazo al nodo. Cada nodo tiene entradas a la izquierda y salidas a la derecha. Y para activar un nodo, siempre necesita una conexión de ejecución entrante, y eso comienza con el script de construcción. Las otras opciones como target, nueva ubicación y demás, son valores A veces necesitas tener algo conectado a él. Otras veces no lo haces. Por ejemplo, puedo desconectar el cubo del objetivo haciendo clic Alt en el valor. Compilación del plano ahora me va a arrojar un error en las notas porque está tratando de ejecutar el comando para cambiar la ubicación, pero ¿de qué No se le dice para qué objetivo necesita cambiar la ubicación, y eso me arroja un error. En la parte inferior y los resultados del compilador, podemos leer más sobre el motivo del error en sí Entonces eso es genial para averiguar dónde y exactamente cuál es el error. Muy fácil de usar en mi opinión. Volvamos a conectar el cubo y compilar para resolver el error. Algunos valores en la entrada se pueden rellenar directamente como la ubicación, por lo que no necesita una entrada, pero podemos si queremos. Hagámoslo. Voy a agregar un nuevo componente esta vez una esfera. Y desde la ventana gráfica, voy a arrastrar a alguna posición diferente Vuelva ahora al guión de construcción. Lo que quiero hacer es llevar el cubo a la misma posición de la esfera. Entonces lo primero que tengo que hacer es obtener el valor de la ubicación de la esfera y luego ingresarlo en la nueva ubicación del cubo. Así que arrastra la esfera al editor de nodos y conéctela a un nodo get relative location. Interesante ahora es que el color del nodo se asemeja al color del pin de ubicación de entrada. Eso también es un indicio de que nos conectamos a él. Haga clic en Compilar y boom. Está funcionando. Y eso me lleva a la diferencia entre el guión de construcción y el gráfico de eventos. Verás, todo lo que creamos en el script de construcción es estático. Cualquier funcionalidad que necesitemos antes de ejecutar el juego o entrar en simulación se puede crear aquí. Un gran ejemplo son las plantillas. Y tengo un ejemplo, un montón de activos que he creado. Estos también son actores de planos. Puedo arrastrar uno a mi nivel. Y cuando entro en el plano en sí, se puede ver que también tiene algunos actores en la ventana de componentes Tenemos la propia luminaria. Luces y algunas otras mallas que conforman la luz. Y cuando entre en el script de construcción, verás un montón de nodos aquí. Ahora, déjame volver a mi nivel y seleccionar un plano para ver el detalle spanel Y todas estas opciones que ves aquí son personalizadas creadas desde dentro del script de construcción. Puedo cambiar el color de la luz, la intensidad y más. Todo eso se hace dentro de estas notas. Y te animo a que los pases paso a paso. Puedes leer fácilmente lo que está pasando, y lo entenderás. Al igual que el primero, cambiamos la intensidad de la luz, que es la intensidad establecida. Nosotros decimos qué objetivo, y luego elegimos la intensidad. Y esto aquí viene de las opciones que tenemos en el panel de detalles. Como dije antes, aquí solo podemos crear cosas estáticas, como cambiar una opción. En el momento en que queremos algo dinámico, tenemos que crear esas notas en el gráfico de eventos. Y se puede ver que también tengo un montón de notas ahí porque una de las opciones que tengo del panel de detalles es habilitar el parpadeo, y se puede ver que no hace nada porque el parpadeo es nada porque el parpadeo Sólo funciona cuando jugamos el nivel. Así que haz clic en reproducir y verás ahora que la luz está parpadeando Ahora antes de terminar esta lección, quiero mostrarles cómo se ve el gráfico de eventos. Volvamos a abrir el plano del Cubo y esta vez, haga clic en el gráfico de eventos en la parte superior Y en lugar de una nota de guión de construcción que tenemos al inicio, obtenemos un montón de ters como event begin play y event tick. Y me gustaría mostrarles cuáles son estos. El juego del evento se está ejecutando una vez que ejecutamos el juego, y voy a conectarlo a una nota impresa de texto. Esta es una nota muy simple que utilizará mucho para resolver las cosas y encontrar posibles problemas. También dice aquí, solo desarrollo. Entonces no está realmente pensado para dentro de un proyecto final. Voy a cambiar el texto al inicio del juego. Y la única manera de verlo en acción ahora es correr el nivel. Y por cierto, esta vez no compilé porque Unreal automáticamente hace eso cuando corres el nivel Pero se puede ver ahora que impulsó el texto. Haga clic en detener y vuelva al plano. Quiero conectar el texto al evento tick y desconectado del evento comenzar a jugar. ¿Mira lo que pasa ahora? Con cada nuevo tick o marco, ese texto se está emitiendo Por lo que te permite actualizar algo cada fotograma. Pero hay más eventos como el solapamiento del actor que tenemos aquí. Podemos realizar algún tipo de acción siempre que nos superpongamos o nos topemos con este plano Por ejemplo, corremos con nuestro personaje hacia el cubo, y luego el cubo tiene que convertirse en una esfera. Suena como algo divertido de hacer. Bueno, veamos cómo podemos hacerlo en la siguiente lección. Por ahora, recuerda que podemos agregar componentes que queremos usar en un blueprint Desde la ventana gráfica, entonces podemos ver esas cosas y también cambiar sus propiedades Y luego tenemos dos lugares para crear realmente una funcionalidad de blueprint, que es el script de construcción para cosas estáticas como un menú de opciones para una luz, y finalmente, el gráfico de eventos para entidades dinámicas Y ese es también el lugar en el que estaremos trabajando la mayor parte del tiempo. Gracias por mirar. 3. Eventos en Unreal Engine: Cuando estás diseñando un blueprint, entendemos que hay dos formas de hacerlo, ya sea estática, que agrega funcionalidad a un blueprint que solo se puede usar dentro del propio editor o funcionalidad dinámica que se desencadena por un evento Entonces eso significa algo que tiene que suceder para poder poner en acción nuestra secuencia de nodos. Y eso obviamente solo puede funcionar cuando corremos el nivel. Así que volvamos a abrir nuestro plano de cubo interactivo nuestro plano de cubo interactivo y naveguemos hasta el gráfico de eventos Por defecto, vemos tres eventos diferentes aquí. Pero no hay problema si, por ejemplo, eliminaría la garrapata del evento. Siempre puedes volver a encontrarlo haciendo clic derecho, luego vas a agregar un evento en que encontrarás todos los eventos disponibles, incluyendo el tick del evento. Ahora, un evento específico sólo puede ocurrir a partir de una nota. Si tuviera que agregar otra nota de tick aquí, verá que solo resalta la actual. ¿Eso es un problema? Bueno, vamos a crear algo en el tick del evento. Me gustaría rotar mi cubo para que siga dando vueltas. Y así es como quieres acercarte a esto. Piensa en qué propiedad necesitaríamos para la rotación. Bueno, eso va a ser la rotación fijada. Entonces busquemos la ubicación relativa establecida, y automáticamente va a sugerir el cubo, que ya tenemos en el plano Y así se dirige automáticamente al cubo. Si no lo hizo o eliminó ese destino, siempre puede arrastrar su malla de cubo desde la ventana de componentes al destino. Bien, entonces voy a conectar el evento tick a los nodos de rotación. Entonces ahora, con cada fotograma, la rotación del cubo se actualiza. Genial. Pero ¿a qué? Sólo puedo ingresar manualmente una nueva rotación, pero eso no la va a rotar. Así que llegamos a encontrar una manera tomar el valor de rotación actual en uno a él e insertarlo de nuevo en la nueva rotación. De esa manera, seguimos agregando uno con cada tick, y el disparo gira. Así que vamos a crear una nueva nota esta vez eligiendo la rotación relativa get. Pero espera, nos enteramos de que no está ahí. Bueno, eso apesta. ¿Existe un enfoque diferente para obtener la rotación actual, quizás? Bueno, si selecciono mi cubo, puedo ver que la propiedad rotation es parte del grupo transform. Entonces tal vez podamos encontrarla ahí dentro. Bien, haz clic con el botón derecho y busca Obtener una transformación relativa. Y sí, está ahí. El problema ahora es, sin embargo, que esta nota devuelve todo en un solo valor. Esto se ajusta a la rotación, la posición y la escala. En casos como este, simplemente podemos hacer clic derecho en el valor y elegir el pin de estructura dividida, que revela los valores t Esto es muy común cuando se trabaja con planos. A veces quieres múltiples valores en un pin, otras veces quieres algo específico, y luego solo puedes dividir los valores. De hecho, voy a hacer clic derecho sobre el valor de rotación también y volver a dividirlo porque no necesito los tres ejes de rotación. Solo necesito el eje Z. Y así es como conseguirlo. Ahora puedo hacer lo mismo en la entrada para la rotación del conjunto. Entonces ahora puedo enchufar el eje Z a la Z. Obviamente, esto no va a hacer nada Tenemos que agregarle uno con cada tick. Así que desconectemos el pin Alt click y arrastremos el valor Z a un lugar para agregar un nuevo nodo, y buscaremos add y encontraremos uno debajo de operadores. Entonces tomamos el valor actual y lo agregamos por uno. El resultado de eso entra en la rotación del conjunto. Bien, sigamos adelante y ejecutemos esto. Y mira eso. Tenemos un cubo giratorio. ¿No es increíble? Entonces, como puedes ver, no es tan complicado. No tengo idea de más del 90% de todas estas notas diferentes. Si quiero lograr algo, trato de pensar lógicamente ¿Cuáles son los pasos necesarios para lograr lo que quiero crear? Y solo uso la barra de búsqueda para buscar notas que tengan sentido, probarlas y ver si funcionan. Si no tratan de buscar otro. Mi objetivo es enseñarte a pensar lógicamente y planos para que puedas crear lo que quieras sin tener que seguir ciegamente Es muy importante que entiendas lo que estás haciendo. Esto es pura programación, pero los blueprints lo hacen visualmente, lo que es más fácil para los principiantes meterse en la programación Bien, entonces, ¿qué otros eventos tenemos? Si piensas en algo, trata de buscarlo. Al igual que, quiero presionar la tecla, que necesita para activar algo genial. Bueno, búscalo en la barra de búsqueda. Bueno, ahí está. Incluso te da dos posibles eventos cuando presionas la tecla o cuando la sueltas. Bien, eso es genial Quiero presionar esa tecla y luego poner en marcha el cubo giratorio. Así que desconecta la garrapata del evento y luego ponla en la clave. Ejecutemos eso y golpeemos la tecla. Pero, ¿qué es eso? No está pasando nada. ¿Cómo es eso? Bueno, eso es por algo que se llama posesión. Y en pocas palabras, no estoy controlando el cubo. Se sienta en algún lugar del nivel y vive por sí mismo. Algunos eventos como la pulsación de teclas sólo pueden ocurrir cuando controlo el cubo o en otras palabras, lo poseo Bueno, aprendamos sobre eso en la siguiente lección. 4. Planos controlables: clases de peón y personaje: Cuando existe un plano en tu nivel, vive por sí mismo No podemos controlarlo. Solo podemos ejecutar eventos como el tick o al inicio cuando se carga el nivel o cuando nos topamos con él. Pero eso significa que primero necesitamos poseer un plano que podamos controlar para chocar con la malla cuadrada Entonces, cada vez que nos encontramos con el problema que necesitamos controlar o poseer un plano, comencemos con el más fácil, y es posible que ya hayas jugado con él En mi navegador de contenido, voy a hacer clic en AD y luego elegir Agregar función o Paquete de contenido. Y de inmediato, podemos elegir entre un conjunto de diferentes plantillas de planos Puedes escoger cualquiera, pero para una mejor demostración, voy a elegir la plantilla de tercera persona y luego decir Agregar al proyecto. Luego puede cerrar esa ventana y encontrar una nueva carpeta en su navegador de contenido. Y estamos específicamente interesados en un artículo de la plantilla. Abre la carpeta Planos, y ahí dentro, encontrarás el personaje de BP en tercera persona Y podemos arrastrar eso a la escena. Voy a abrir el plano y explorarlo un poco. Y si portas, puedes ver diferentes componentes que se necesitan para darnos un personaje jugable, como el propio personaje, pero también una cámara que sigue al personaje y crea la vista que ve el jugador Hay un boom de cámara, asegurándose de que la cámara siga al personaje mientras recorre. Pero entonces, ¿cómo corremos? Mientras, al mirar el guión de construcción, está completamente vacío, ¿y entendemos por qué ahora? Porque es completamente dinámico. Entonces, cuando abrimos el gráfico de eventos, podrás encontrar todas las notas que conforman el movimiento del personaje. Bueno, eso es genial. Cerremos el plano y golpeemos a correr. Pero espera. Todavía no estoy controlando al personaje. Aún no lo he poseído . ¿Qué está pasando? Bueno, sólo se puede poseer un plano a la vez. Y por solo tenerlos en tu nivel, el proyecto no sabe cuál quieres controlar en realidad. Y la forma en que definimos esto es a través de un plano de modo juego Es otro tipo de plano. Ahora, como las plantillas de tercera persona venían con una de esas, probablemente ya la hayas visto. Voy a hacer doble clic sobre él. Ahora bien, en realidad no tenemos todas estas pestañas diferentes aquí, como el gráfico de eventos y demás, porque un plano de modo de juego es muy sencillo Es un archivo que va a establecer los planos predeterminados para su nivel Entonces, bajo las clases predeterminadas, encontrarás algo llamado la clase de peón predeterminada Y ese es el plano que se va a cargar para poder tomar el control Entonces voy a cerrar eso y buscar mi configuración mundial. Estos son los ajustes generales para todo tu nivel, y aquí encontrarás una configuración de modo de juego. Puedes elegirlo de un menú desplegable o simplemente arrastrar el plano del modo de juego a esa configuración Entonces el mundo dice: Mira este plano del modo de juego cuando ejecutas el juego Y el modo de juego Oye, mira el plano del personaje en tercera persona para que el jugador tome el control Ahora bien, esto significa que para un plano sobre el que tomamos el control, no necesitamos a los del nivel Entonces solo lo eliminaré y ejecutaré el juego, y ahí vamos. El plano del personaje se carga y se genera en el nivel Y si quieres que se genere en un lugar específico, puedes agregar un inicio de jugadores a tu nivel ¿No es eso algo genial? Entonces lo que ahora podemos hacer es abrir el cubo de nuevo, y vamos a crear algo divertido donde nos topemos con el cubo. Voy a hacer click derecho y buscar algo así como evento Colt, tal vez, y realmente no puedo encontrar algo así Así que vamos a desplazarnos hacia arriba hasta los eventos y ver que si tenemos algo así como un hit de evento. Hm, y la hay. Y dice que este evento se desencadenará cuando este actor se tope con otro actor. Eso es exactamente lo que necesitamos. Y bastante genial es que aquí tenemos un montón de opciones. Así que incluso dependiendo dónde lo golpeemos desde la ubicación del hit, podríamos crear diferentes tipos de funcionalidad. Pero mantengámoslo simple por ahora. Voy a arrastrar mi cubo al gráfico de eventos porque quiero hacer algo con eso. ¿Y si cambiamos la malla de un cubo a otra cosa cuando nos encontramos ella? Eso sería increíble. Entonces busquemos malla y veamos qué tenemos. Y veo que tenemos un nodo llamado set static mesh. Bueno, eso probablemente va a funcionar. Y puedo elegir una malla diferente de este desplegable, algo que está en mi proyecto Puedo encontrar muchos que vienen de diferentes paquetes dentro del propio motor, pero busquemos esfera y simplemente llevemos cualquier cosa. Realmente no importa aquí. Y, por supuesto, queremos ejecutar ese comando cuando se golpea el blueprint. Entonces conecta eso. Bien, vamos a darle una oportunidad. Golpea play, y vamos a correr hacia el cubo. Y boom, tenemos una esfera. Genial. Funciona. Pero volvamos al problema inicial que tuvimos. Voy a eliminar el hit del evento y crear un evento de teclado para la tecla y conectarlo al nodo de malla estática. Entonces, para que esto funcione, necesito tomar el control de este plano Bien, suena fácil, ¿verdad? Navegamos de regreso al plano del modo de juego. Ábrelo y desde la clase de peón predeterminada, voy a elegir mi cubo interactivo, pero no lo encuentro Hmm. Bueno, recuerda cuando creamos nuestro plano Voy a hacer eso de nuevo muy rápido. Elegimos una clase de actor. Pero como puedes ver, también hay una clase de peón o una clase de personaje, que tiene propiedades similares Bueno, ¿eso significa que tenemos que volver a hacer todo el plano Bueno, no te preocupes. Volviendo a mi cubo interactivo Blueprint, puedes encontrar un botón en la parte superior para ir a la configuración de clase Y aquí, puedes encontrar la clase de padres, que actualmente está puesta a actor, pero podemos cambiarla a peón al buscarla Así que en todo momento, puedes cambiar el tipo de blueprint que has creado Ahora, cuando volvamos al modo de juego Blueprint y desde el peón predeterminado, elige nuestro cubo interactivo vamos a ejecutar el juego y veamos eso Somos un cubo. Obviamente, no podemos correr con él porque no tenemos controles de jugador para el cubo. Para eso, tenemos que crear primero todos los gráficos de eventos, pero somos engendrados a la escena a partir de ese plano, y eso significa que lo poseo Si presiono mi tecla, la malla cambia a una esfera. Realmente no lo puedo ver porque ahora estoy dentro de la esfera. Entonces hagamos algo muy rápido aquí. Abre el plano del cubo, ve a la ventana gráfica, y voy a agregar una cámara a los componentes Arrastremos esa cámara un poco más hacia atrás y ahora volvamos a ejecutar el juego. Ahora estamos viendo el cubo a través de la cámara, pero seguimos en ese mismo plano Entonces, si presiono L, podemos ver el cambio a una esfera. Entonces, para concluir solo hay un plano sobre el que podemos tomar el control Sin embargo, con ese peón o plano de personaje, podemos interactuar con otros planos normales o actores en el nivel, y controlar directamente algo o interactuar con ellos son diferentes tipos No están categorizados así, pero tenemos que mantener eso en el fondo de nuestras mentes. Algunos de ustedes ya pensarán, pero, Jordan, quieren poder controlar múltiples planos al mismo tiempo, como tener un montón de luces en mi escena y presionar diferentes teclas, encenderlas o apagarlas Bueno, esa es una gran pregunta, y hay una solución a eso, pero eso es para la siguiente lección. 5. Explorar el plano de nivel: Creé un nuevo nivel llamado Luces, y lo que tengo aquí es un avión con algunos pilares, y tengo tres luces aquí dentro de las cuales me gusta tomar el control. Aquí tenemos un foco azul, una especie de luz rectangular verde fluorescente, y finalmente una luz puntual de color cálido. Estos no son planos. Acabo de poner estas luces directamente en mi nivel. Ahora bien, poner estos en un plano no es útil ya que queremos tomar control sobre estos presionando una tecla para encenderlos o apagarlos Ahora bien, hacer un plano de clase de estanque tampoco es una opción, ya que eso generará el plano en escena Por lo que tenemos muy mal control sobre dónde se posicionarán. Además, solo podemos tomar el control de un plano. Así que tenemos que averiguar una manera diferente. Bueno, aquí hay algo interesante. El nivel en sí también tiene un plano. Encima aquí, encontrarás un botón que va a enumerar todos los planos que están específicamente vinculados al nivel, uno de los cuales es el modo de juego, que ya hemos visto antes Como que lo hemos conectado a todo el nivel. Pero como puedes ver, también hay una opción para abrir el plano de nivel Y lo interesante de este plano es que corre al más alto nivel de la jerarquía, lo que significa que poseemos automáticamente Sin embargo, esta no es una clase normal de planos. Siempre está ahí por defecto, pero como puedes ver, no hay ventana de componentes ni ventana gráfica ni ventana de construcción Eso es porque los componentes son básicamente todas las cosas que se encuentran en tu nivel, como las luces. No podemos agregar propiedades a un nivel, así que no hay pestaña de construcción, solo cualquier gráfico de eventos para cuando se ejecuta el juego. Y así ahora se vuelve muy fácil. Simplemente podemos seleccionar las luces del nivel y arrastrarlas al plano de nivel Y voy a crear los eventos para el número 12 y tres teclas en mi teclado. El primero tiene que encender la luz puntual, y hay algunas formas diferentes en las que podemos hacerlo, y la mejor manera de averiguarlo es seleccionar las luces puntuales en tu nivel y ver la spanel de detalle Juega con sus propiedades para descubrir el mejor escenario para usar en el plano Al igual que, sí, podemos usar la intensidad. Ya sabes, básicamente ponerla a cero y luego volver a otra cosa. Pero entonces estamos codificando algo duro en, lo cual es una mala práctica, y quieres evitar esa codificación dura tanto como sea posible. La codificación Hart es donde vas a poner valores en el plano Imagínese que estableceríamos el lumen cuando la luz está encendida a 1,000 en el plano Pero luego vuelvo a mi nivel y empiezo a retocar y decido volver a poner el brillo de esa luz a 100 Eso significa que también llegué a volver a mi plano de nivel y establecer la intensidad allí en 100 también Codificación dura de un valor, ese número es fijo. Entonces, en lugar de hacer eso, busquemos una propiedad que simplemente pueda encender o apagar la luz en lugar de cambiar el valor de intensidad. Y bajo renderizado, podemos encontrar tal opción llamada visible. Como puedes ver un simple toggle, que mostrará o alturará el componente. En este caso, haciendo que la luz brille o no. Impresionante. Volvamos al plano de nivel Y desde el punto de luz, arrastremos el pin para conectarlo a la visibilidad del nodo. Y hay algo muy interesante aquí llamado la visibilidad de toggle. Y hoy tienes suerte porque no siempre tenemos una opción de toggle para cada propiedad. Por lo general, solo una opción de conjunto, y luego necesitamos crear manualmente algunas notas alrededor de eso para que se mueva. Pero por ahora, podemos usar el toggle, así que conecta tu clave uno ejecuta a la visibilidad de toggle. Y voy a hacer lo mismo por la luz rectangular. También aquí, alternar visibilidad. Y finalmente, el foco también alterna la visibilidad y conecta el árbol clave a esa nota. Volvamos y ejecutemos el juego. Y notarás que podemos encender y apagar estas luces ahora con la llave correspondiente. Incluso hacer que alguna discoteca sea efectiva. Eso lo haces rápido. Ahora, tengo una pequeña tarea para ti antes de pasar a la siguiente lección. Cuando arranque mi nivel, quiero que todas las luces estén apagadas, pero no quiero que las apaguen en mi nivel. Entonces el plano tiene que hacer eso. Necesitan comenzar cuando ejecuto el juego, y luego puedo comenzar encendiéndolos o apagándolos nuevamente presionando mi tecla. Es muy sencillo. los eventos correctos que se necesitan para establecer el estado de la luz cuando ejecuto el juego y te mostraré la solución en la siguiente lección. 6. Mecánica de juego simple: sistema para plantar bombas: Hola, bienvenido de nuevo. Entonces mis luces están actualmente encendidas en el nivel Designer. Voy a correr mi juego, y como pueden ver, ahora están apagados. Puedo volver a encenderlos o apagarlos presionando mis teclas dedicadas. Y también espero que eso funcione para ti. Ahora, interesante, hay diez formas diferentes de hacer esto. Probablemente lo hice diferente a lo que hiciste tú. Entonces echemos un vistazo al plano de nivel. ¿Qué está pasando aquí? Para empezar, la pulsación de teclas y alternancia de visibilidad siguen siendo las mismas. Yo uso los eventos comienzan a jugar para establecer la visibilidad inicial. Supongo que también usa eso. Ahora, permítanme desacoplar el nodo de secuencia por un momento. E interesante es que podemos conectar los eventos comienzan a jugar con la visibilidad de toggle también. Entonces eso significa que hay dos eventos diferentes que pueden encargarse de la ejecución de esas notas, la pulsación de teclas y los eventos comienzan a sonar. Ahora el problema es que un evento solo podría ejecutarse a otro nodo como puedes ver. Entonces tenemos que ser un poco creativos. Una cosa que podríamos haber hecho fue seleccionar todas las notas de visibilidad de alternar, copiarlas, y luego pegarlas por aquí, y podemos enganchar la placa de inicio a la primera nota, luego la salida de esa a la segunda, y finalmente esa a la tercera Estamos haciendo una cadena. Y cuando ejecuto eso, también funciona. Mis luces están apagadas. Pero como puedes ver, hay muchas notas para algo sencillo como esto. Lo estamos haciendo complejo. Estamos usando una copia de algo que ya está ahí, así que es una buena práctica tratar siempre trabajar con las notas mínimas posibles. Entonces voy a borrar todo eso y conectar mi start play al nodo de secuencia. Esto ejecutará cada comando uno por uno en una secuencia. Funciona exactamente igual, pero un poco más limpio. Bien, vamos a cerrarlo todo. Voy a abrir de nuevo mi nivel de cubo, y voy a abrir también el plano del modo de juego y cambiar el pan predeterminado nuevo al personaje en tercera persona Porque esto nos permite correr alrededor de los bits y así ayudarnos con lo siguiente que nos encantaría crear. Me gustaría colocar una bomba en cualquier parte del mundo. Entonces aléjate, y cuando presiono cierta tecla, esa bomba debería explotar Vamos a tomar un enfoque muy sencillo, así que no te preocupes demasiado. Voy a hacer clic derecho en mi navegador de contenido y elegir agregar un nuevo sistema Niagara. Se trata de un sistema de simulación de partículas y fluidos muy potente y muy abrumador, pero no te preocupes. Podemos elegir entre una plantilla, y aquí hay algo muy divertido llamado ráfaga de confeti, perfecto para la explosión Así que vamos a golpear Crear y nombrarlo ráfaga de confeti. En cuanto a la bomba en sí, podemos usar un cubo o algo que ya esté en el motor. Si lo desea, puede importar su propio modelo de tratado, realmente no importa. Entonces como toda esta acción ocurre desde dentro del personaje, vamos a abrirnos y trabajar dentro del plano del personaje Tan solo deja todas las notas que se encargan del movimiento en paz. Simplemente puedes ignorar eso. Trabajaremos en el sitio. Entonces vamos a pensar paso a paso lógico. Vamos a toparnos con problemas y luego resolverlos. Entonces lo primero es que presionamos una tecla para plantar la bomba. Entonces voy a crear un evento de teclado para la letra B. Cuando eso se dispara, una malla que represente la bomba debería aparecer frente al personaje en el suelo. Vamos a la ventana gráfica y en un componente de cubo. Podemos escalarlo y reposicionarlo un poco para que se asiente frente al personaje Ahora, ejecutando esto, podemos ver que el cubo está frente al personaje moviéndose a lo largo porque se está controlando todo el plano Pero eso es algo bueno porque significa que el cubo siempre estará en el lugar correcto cuando lo plantemos. El único problema es que en el momento en que el cubo empeña o se hace visible, ya no debe seguir al personaje De lo contrario, nos sale confeti en la cara. Bueno, hay una buena opción para sobrescribir que un objeto debe seguir al personaje, y eso es simplemente habilitando la física Simplemente podemos verificar esa propiedad en el detalle spanel cuando tengas tu cubo seleccionado Entonces ahora obtenemos un cubo que cae y se queda quieto. Incluso podemos toparnos con ello, lo cual es divertido. Habilitamos la física. Entonces al inicio, obviamente, también queremos desactivar la visibilidad del cubo. No todo necesita ser programado. A veces solo puedes alternar algunas opciones. Pero el siguiente polvo, cuando presionamos la tecla B, el cubo debería hacerse visible. Ya lo hemos hecho antes, así que debería ser fácil. Arrastre el cubo al gráfico de eventos y conéctelo a la nota de visibilidad establecida. No tenemos que alternar en este momento y, por supuesto, asegurarnos de verificar la nueva visibilidad para que sea verdad. Bien, ahora tenemos que asegurarnos de que el cubo se genere frente al personaje Y a pesar de que es invisible desde el principio, sigue engendrando justo delante del personaje al principio Pero luego caminamos y presionamos al Biki para ponerlo a visible Obviamente, simplemente aparece de donde ya estaba. Entonces, bien, tenemos que establecer una ubicación del cubo, y podemos hacer eso. Ya lo hemos hecho antes. Simplemente toma el cubo y conéctalo a una ubicación mundial establecida. El camino, si tienes problemas para entender la diferencia entre un mundo o una ubicación relativa, este es un gran momento para probarlo. Verás que ese pariente no va a funcionar, que es la posición dentro del plano A medida que corremos, la posición del personaje cambia en el mundo, pero no en el plano La posición relativa permanece igual. Pero entonces, ¿cuál es la nueva ubicación mundial del cubo? Bueno, obviamente, donde se encuentra el personaje. Así que tomemos al personaje, que es la malla esquelética, y obtengamos su ubicación mundial Conéctalo a la nueva ubicación. Genial. Ejecuta el juego, y voy a caminar un poco y luego plantar la bomba. Oh, ¿qué es eso? En realidad aparece exactamente en el mismo lugar que mi personaje. Sabes, debería estar frente a mí. Y aquí es donde se pone complicado. Vamos a tener que resolver un problema. Como hemos visto antes, podemos dividir los pines de la ubicación. Entonces, en teoría, podríamos conectar la X a la X y luego conectar la Y a un nodo add y agregar un valor de, digamos, 200 y poner ese valor en la siguiente ubicación Y. Y por último, la Z. no se queda igual. Entonces, bien, en teoría, ahora tenemos una compensación. Y corramos el juego, caminemos y presionemos la tecla B un par de veces. Y nos damos cuenta de que ese desplazamiento depende de hacia dónde se enfrente el personaje. Entonces esta no es realmente una buena opción. No podemos tomar la posición de la malla. Voy a eliminar todo esto y hacer clic derecho en mis pines para volver a combinarlos juntos. Vamos a necesitar la posición de algo que esté frente al personaje. Hmm. Y si solo agregamos algo ahí, como agregar una esfera a los componentes, y voy a arrastrar esa esfera frente a mi personaje. Ahora, mientras no habilite la física, esa esfera simplemente me seguirá y se quedará exactamente frente al personaje. Lo único que tengo que hacer es desactivar su visibilidad. Sin embargo, hay un problema. Aunque sea invisible, todavía puedo toparme con otros objetos. Entonces también tenemos que desactivar la colisión. Se puede buscar colisión. Realmente no hay una opción aquí para habilitar o deshabilitar eso, pero sí veo que hay un preset que dice bloque A, e interesante es que aquí hay una opción que dice que no hay colisión. Hm, me pregunto qué va a hacer eso. Bueno, arregló mi problema. Entonces ahora todo se junta. Vamos a tomar esta esfera, obtener su ubicación mundial y conectarla con la nueva ubicación del cubo. Y Bm, tenemos funcionando el mecanismo de siembra de bombas. Un problema, sin embargo, tenemos un error en el juego. Ya sabes, los jugadores pueden responder sin cesar a la bomba, y eso tiene sentido Cada vez que presionamos la tecla B , establece una nueva ubicación mundial. Sólo hay una bomba, así que eso sólo debería suceder una vez. Para hacer frente a ese problema, lo vamos a dar paso a paso otra vez. Entonces, si el jugador presiona B, la bomba se genera en, y tenemos que recordar que el jugador hizo esa acción, así que no podemos realizarla en otro momento Ya sabes, es como el trabajo de los humanos. Si tu hijo roba una galleta pero no la ves, puede tomar tantas galletas como quiera Pero si los viste tomando una vez una galleta, lo guardas en tu memoria, y puedes decirle a tus hijos que no lleven otro cocinero. Y los niños hacen eso. Escuchan muy bien. Así que también tenemos que almacenar esto en la memoria del juego, y ahí es donde entran las variables. Lo podemos encontrar aquí en la parte inferior izquierda en el editor de planos Ya nos dieron algunos. Estos son los componentes que editamos como la esfera y el cubo. Pero también podemos crear uno nuevo. Da clic en el Plus y nombra la variable plantada. Y por defecto, dice que la variable es una booleana. Este es el tipo de variable. Podemos almacenar todo tipo de cosas en un recuerdo. Un booleano es simplemente una declaración verdadera o falsa. Pero también podríamos cambiarlo a un entero. Este es un número. Podemos tener una variable de texto. También hay una variable vectorial. Estos son tres valores, es decir, XYZ, así que para almacenar una ubicación, y para empeorar las cosas, hay alrededor de 7 mil tipos de variables más Pero no te preocupes, al igual que con las clases de blueprint, solo usarás las más comunes a menos que ya estés familiarizado con irreal y estés trabajando en un proyecto más grande que tenga necesidades muy específicas Ahora un lingote está bien, verdadero o falso. Arrastra esa variable a la gráfica, y tenemos que elegir entre get o set. ¿Almacenamos un nuevo recuerdo o miramos lo que almacenamos antes? Vamos a empezar por establecer la variable. Entonces, cuando presiono la tecla B, primero tenemos que asegurarnos de pasar por todas las acciones para plantar la bomba, así que arrastra el nodo set al final, luego conectarlo y configurarlo en true. Ahora, vuelve al principio. Cuando presione el Biki antes de tomar toda la acción de plantar la bomba, primero revisaré mi mente para ver si ya lo hemos hecho Entonces esta vez, tomamos el get plantado. Y la forma en que podemos verificar esto es con una rama simple, una nota que usarás mucho, también. Si te gusta la programación, es básicamente una declaración IL. Si una condición es cierta, entonces hazlo. Esa es una declaración de IL. En realidad, es un poco diferente. Se llama sucursal. Se ve en la condición, y si es cierto, entonces sigue este pin de ejecución. Si es falso, entonces sigue al otro. Una excelente manera de dividir el flujo de tus notas dependiendo de una condición. Ya está plantada, si es verdad, entonces no hacemos nada. O podríamos agregar como un texto impreso diciendo que la bomba ya está plantada. Si es falso, entonces eso significa que aún no hemos plantado una bomba. Entonces podríamos hacer toda la siembra la secuencia de bombas de notas. Y ejecutando el juego, podemos ver ahora que funciona a la perfección. Bien, la bomba está plantada. Tomemos algo de distancia ahora y hagamos que explote. Podemos asignar la explosión a diferentes claves o usar la misma. sabes, ya tenemos una sucursal aquí, así que eso significa que podríamos armar la explosión misma cuando se plantó es verdad. Así que arrastra la ráfaga de confeti en el plano, y de inmediato en los puertos de visión, podemos ver que el podemos ver que Además, cuando jugamos el juego, se apaga. Entonces echemos un vistazo al panel de detalles. ¿Hay algo aquí que active automáticamente esta simulación? Bueno, sí, la hay. La activación automática está activada. Entonces apagemos eso. En el gráfico de eventos, eso quiere decir que vamos a tener que echar un vistazo al confeti y vincularlo a un nodo set activate Entonces todo lo que estoy haciendo es leer las propiedades de un componente que siempre vuelve como nota. Es así de simple. Si no sabes cómo hacer algo, solo mira las propiedades. Estas son todas las opciones que obtienes y lo que puedes cambiar. Ahora, también tenemos que establecer la posición correcta. Entonces voy a ir un poco más rápido sobre esto ya que deberíamos entender ahora cómo funciona eso. Confeti establece la ubicación del mundo, conectado. Entonces toma el cubo o la bomba, consigue su ubicación mundial y pon ese valor en la nueva ubicación del confeti Y finalmente, si tu bomba explota, también se ha ido Entonces tal vez tome el cubo y vuelva a conectarlo a un nodo de visibilidad establecido, pero deje la visibilidad desmarcada. Bien, vamos a intentarlo Voy a colocar mi bomba, huir un poco, y luego hacer que explote Sí, confeti. Eso funciona. Pero igual que con la bomba, no queremos que el jugador la haga engendrar o en este caso, vuelva a haga engendrar o en este caso, explotar porque eso va a pasar mirando mis notas actuales Nada aquí me dice que el jugador no debe reactivar el confeti Pero estoy seguro de que ya sabes cómo hacerlo. Entonces esa es una tarea pequeña para ti otra vez. Y como antes, te mostraré la solución en la siguiente lección. Gracias por mirar. 7. Detección de éxito con el calco de líneas: Estamos aprendiendo que con sentido común, sabes qué tipo de notas elegir y conectar entre sí. A veces llegas a probar algunas notas diferentes para encontrar la que funcione para tu propósito. Y un gran consejo es simplemente usar algo como HatChipt para preguntarle qué quieres hacer y qué nota tienes que elegir para Es una herramienta increíble para ayudarte con cosas como esta. Pero hay algunas notas en irreal, que tal vez no sean tan obvias a primera vista, pero son muy importantes de conocer Y uno de los cuales es un poco más complejo. Entonces quiero explorar eso junto con. Pero primero, veamos la solución de la lección anterior. Entonces cuando plantamos una bomba, siempre va a activar el confeti Y éste fue muy sencillo. Solo tuvimos que crear otra variable. Yo lo llamo explotó, y voy a comprobar si explotado es cierto. Si no, entonces activaremos el confeti. Y si es verdad, no hacemos nada. Entonces al final de esta serie de notas, nosotros, por supuesto, set explotó a verdad. Es exactamente lo mismo que hicimos con plantar la bomba. Y debido a que tenemos estos valores y una variable, podríamos seguir construyendo sobre esto. Ya sabes, el jugador podría, por ejemplo, recoger una nueva bomba y reiniciamos ambas variables a pliegues, que el jugador pueda volver a plantar una bomba. Ese es el poder de trabajar con variables. Voy a quedarme dentro de mi personaje Blueprint, click derecho en un espacio vacío y buscar Traza por canal Y aquí tenemos un par de opciones diferentes, caja, cápsula, línea, etcétera Todos son iguales excepto por la forma del rastro. Por ahora, tomemos fila. Tendrá más sentido en un poco. Lo primero que voy a hacer es crear un evento de pulsación de tecla T y conectarlo a la nota de traza de línea De esa manera, podemos dispararlo cuando presiono entonces, ¿qué hace esto y por qué es tan importante? Bueno, podemos filmar una línea. Ahora, necesitamos definir la posición inicial y final de esa línea. Entonces, si quieres filmar esa línea desde el personaje, tenemos que hacer que comience con obtener la ubicación mundial del personaje. Y eso lo hemos hecho muchas veces antes de ahora. En cuanto a la posición final, podríamos tomar lo mismo que el inicio, pero conectado a una nota add. Esto nos permite sumar 100 a la posición actual. Ya sabes, entonces conéctalo hasta el final. Ahora bien, si fuéramos a ejecutar esto, no vamos a ver nada. Eso es porque la línea no debería ser visible. Pero a medida que estamos trabajando en ello, podemos establecer el sorteo Dbuk a visible Y escojamos por duración para que la línea permanezca visible el tiempo suficiente. Bien, voy a probarlo. Cuando presiono una tecla T, puedes ver aparecer una línea del personaje. Cada vez que presiono la tecla. Y lo interesante es que podemos usar esa línea ahora para hacerla golpear con algo y luego realizar dinámicamente una acción específica sobre ese hit. Y una de las cosas en las que inmediatamente pensamos es un juego de disparos. Ya sabes, disparas una bala, que va a estar respaldada por esa línea invisible, y si golpea a otro jugador, muere. Pero va mucho más amplio que eso. Quiero mostrarte muy rápido un proyecto en el que estoy trabajando. Esto es para una obra de teatro. motor irreal se utilizará como proyección en el fondo Y tengo este juguete, que modifiqué para que cuando dispares el arma, haga clic en un botón. Y a partir de ahí, le dejo trazar una línea desde arriba, y donde luego golpea el suelo, hago que se apague una chispa de fuego. Tú haciendo esto, puedo hacerlo dinámico porque la superficie del suelo no es recta. Entonces no sé dónde colocar la chispa. Ahí es donde entra el rastro de línea. Entonces, llegaste a ver esta nota como una herramienta increíble para crear cualquier tipo de eventos dinámicos, ya sea para juegos, aplicaciones interactivas, renders de películas que tienes simulaciones que resultan diferentes con cada exportación Pero, bien, basta de ladrar. Vamos a crear algo, algo sencillo para empezar. Quiero subir a una pared y pintar con aerosol unos graffitis exactamente frente a mí en esa pared. Entonces lo primero es lo primero, voy a crear una pared simple a partir de un cubo. Voy a estirarlo un poco para que podamos conseguir una pared alta y larga. Mucho espacio para el graffiti. Y entonces necesitamos graffiti. Y supongo que ya está familiarizado con FAP, que es el mercado de activos irreales de motores Si buscas graffiti y estableces el precio gratis, encontrarás algunos, y quieres buscar calcomanías idealmente, y Quickle tiene algunas de esas Sólo voy a añadir el primero de mi proyecto. Muy sencillo. Si arrastra dicho material a su nivel, se proyectará en la dirección de esta flecha sobre cualquier superficie. Bien, así que volvamos a nuestro plano. Lo primero que queremos hacer es asegurarnos de que la línea se dispare correctamente. Empezó en la parte inferior del personaje. Entonces vamos a moverlo un poco hacia arriba a la altura del pecho. Entonces voy a hacer un add en la posición de inicio, y vamos a poner 150 en el eje Z. En realidad son 150 centímetros, lo que tiene sentido para un personaje. La posición de los extremos también lo conseguirá ya que tiene que disparar directo. Ahora bien, el problema va a ser el valor X e Y porque eso depende de donde se enfrente el personaje. Probándolo muy rápido, se puede ver que en el eje X, siempre dispara en la misma dirección. Así que llegamos a encontrar una manera de hacer que se filmara frente al personaje en todo momento. Ahora, podemos hacer un cálculo matemático completo, pero afortunadamente, hay una nota simple para eso llamada el vector Get forward. Dará salida a un pequeño valor X Y Z basado en la dirección hacia la que se enfrenta el carácter, así podremos conectar ese nodo a un nodo de multiplicar. El valor siempre va a ser uno o menos. Si haces X más Y, obtendrás uno. Entonces así es como somos capaces de averiguar la dirección hacia adelante. Pero tenemos que multiplicar en vez de sumar esta vez. Y como el vector forward es un número pequeño, por lo tanto una ubicación relativa, tenemos que agregarlo a la ubicación mundial de la malla. Y por último, queremos sumar 150 a ambos ejes Z para sacarlo un poco Conecte la posición mundial normal al inicio y la posición mundial con el desplazamiento agregado desde el vector hacia adelante hasta el final. Vamos a probarlo. Y como que funciona, pero tampoco lo hace. De alguna manera se dispara desde el sitio, y me tomó algún tiempo averiguarlo, en realidad. Pero volviendo al plano y seleccionando la malla, descubrirás que se ha rotado Ahora bien, no podemos simplemente girarlo de nuevo a cero porque así es se ha configurado el plano Recuerda, también tenemos controles de jugador, así que realmente no podemos jugar demasiado con estos activos. Entonces, en cambio, tomemos el componente de la cápsula. Encapsula todo, como el personaje, la cámara, etcétera. Y en realidad es el componente que está siendo controlado por el jugador. Y sí, eso funciona. La línea es un poco demasiado alta, sin embargo, y eso es porque en lugar de el punto de anclaje esté en la parte inferior, como con la malla, en la cápsula, está en el medio. Entonces solo disminuirlo a como 70 o algo así. Entonces te estoy mostrando estas cosas con las que también me encuentro. De esa manera, se puede ver el proceso por el que paso para resolver un problema. De todos modos, tenemos el rastreo de línea funcionando. En la salida del nodo de rastreo de línea, tenemos una propiedad out hit, y voy a hacer clic derecho sobre él y elegir dividir el pin. Verás cuánto hay realmente dentro. Hay muchas maneras diferentes en las que podemos comprobar cómo golpea algo dentro del nivel. Para un juego de lucha, realidad puedes localizar los huesos en la malla esquelética del oponente Pero lo que nos interesa es la ubicación de éxito. Esta también va a ser la propiedad más utilizada porque queremos generar la calcomanía de graffiti en una ubicación específica, la ubicación de donde la traza de la línea entra en contacto con la pared Entonces sí, agreguemos la calcomanía de graffiti. Y podrías pensar, como antes, agregamos calcomanía a los componentes, la arrastramos al plano y establecemos su posición, tal como hicimos con el cubo en la lección anterior Sin embargo, eso significa que solo tenemos una calcomanía con la que trabajar. En realidad, si fueras por esa ruta, te habrías dado cuenta de estar atascado en ella. Así que tenemos que encontrar una manera de hacer un nuevo tramo de calcomanía en el nivel cada vez que presiono mi tecla. De esa manera puedo pintar con aerosol múltiples graffitis en la pared A ver si hay un nodo para eso. Haga clic derecho y busque spawn. Y puedo ver que hay múltiples cosas que en realidad podemos engendrar en el nivel, lo cual es realmente genial Esto podría darte algunas ideas de lo que es posible. Y para mi sorpresa, en realidad hay uno ahí dentro que nos permite generar una calcomanía en una ubicación específica, y eso es exactamente lo que necesitamos Bien, así que tenemos que configurar el material de calcomanía, que va a ser el que descargué De hecho, podemos simplemente arrastrar ese material a la propiedad de la nota. A veces es más fácil. Vamos a tener que establecer una talla. De lo contrario, no podemos ver la calcomanía, y esto es algo a lo que quieres ir y venir para averiguar para corregir los valores. Te ahorraré el dolor. Simplemente fui por 100 y cada atributo de escala y establecí la rotación X en 90 y el resto en cero. En cuanto a la ubicación, esa va a ser la ubicación de golpe del trazado de la línea. Y finalmente, solo tenemos que asegurarnos de que el nodo se está ejecutando después de la nota de traza de línea. Bien, veamos qué hace esto. Funciona increíble. No obstante, me doy cuenta de un par de temas. La calcomanía también es visible en el propio personaje. Ya sabes, solo debería ser visible en la pared. Y cuando el trazo de la línea no golpea un objeto, también rocía pinta el graffiti. Está en alguna ubicación extraña ya que no hay ubicación de golpe, eso es normal porque la nota siempre se ejecutará pase lo que pase. Así que tenemos que arreglar esos dos problemas. Empecemos con la calcomanía del personaje. Voy a seleccionar mi malla esquelética y buscar calcomanía en el panel de detalles Y como pensaba, tenemos una opción aquí que se asegura de que no va a recibir calcomanías Genial. Esa fue una solución fácil. Ahora el segundo problema. Así que sólo cuando el trazado de la línea golpea, queremos decalar a span. Y desde el nodo de rastreo de línea, tenemos un valor de retorno en la parte inferior. Esto simplemente devolverá true si la línea es golpeada o cae si no hay hit. Así que simplemente podemos agregar un nodo de rama en el medio y hacer uso de esa verificación. Entonces solo si el golpe es cierto, engendramos el decalado De lo contrario, no hacemos nada. Entonces, cuando no me quede lo suficientemente cerca de la pared, no pintará con aerosol el graffiti, solo cuando esté lo suficientemente cerca, y la línea golpea. Obviamente, cuando todo funciona según lo previsto, quieres desactivar el sorteo Dbug para que los jugadores en realidad no vean ese rastro de línea Entonces este es solo un ejemplo de 1,000 de cómo puedes usar la nota de rastreo. Te recomiendo encarecidamente que juegues con esta nota y veas qué otras cosas dinámicas puedes crear. Explora la esfera y el rastro del cubo, también. Son exactamente iguales, pero en cambio disparan una forma diferente que podría darte más opciones para las cosas que vas a hacer. Han sido un par de lecciones largas hasta el momento, así que ve a tomar un descanso de esta clase, practica un poco con todas las cosas que ya aprendiste, y luego continuaremos más tarde con una simulación muy divertida que crearemos juntos. Gracias por mirar. 8. Eventos de simulación dinámica: Hemos estado trabajando mucho en el plano del personaje en tercera persona Entonces pensé en hacer algo diferente para esta lección. Entonces creé un nivel simple con algunas paredes y le agregué algunos pines. Ahora, tenemos tres bolas encima. Estas son solo esferas que habilité la gravedad para, ya sabes, la física. Ya lo hemos visto antes. E interesante es que con cada vez que ejecute el juego, vamos a conseguir un resultado diferente. Ya sabes, estas bolas nunca rebotarán igual. Siempre terminarán en otro lugar. Eso es lo que se llama una simulación, y podrías tener muchas simulaciones dentro de un juego, pero también al hacer renders de películas o cualquier otra cosa que use un motor irreal Eso quiere decir que para cualquier acción que queramos crear, tiene que ser dinámica. Tiene que reaccionar ante la simulación, y ahí es de nuevo, donde entran los planos Entonces tengo esta idea de cambiar el color de estos pines si una de las bolas choca con ellos, y si obtienen múltiples golpes, su color seguirá cambiando. Por ejemplo, una protuberancia las hará verdes, una segunda amarilla y una tercera roja. Entonces lo primero que queremos hacer es quitar todas las latas porque vamos a reemplazarlas por un plano Así que vamos a crear una clase de actor de planos, y lo llamaré BP pin Y dentro de los componentes, voy a agregar el cilindro, y quiero reescalarlo un poco para que el pin sea más largo Y en realidad ya puedes arrastrar el plano a tu escena para entender mejor cuánto tienes que escalarlo Siempre es mejor escalar la malla real en lugar del plano en sí Voy a rotar y moverlo en su lugar. Y una vez que termine, dupliquemos ese plano un montón de veces manteniendo pulsada tecla Alt y luego arrastrándolo a una posición diferente Bien, ahora podemos entrar en el plano Pin y comenzar a conectar algunas notas Por lo que queremos encontrar la manera de desencadenar un evento cada vez que se golpea el cilindro. Entonces lo primero que podemos hacer es buscar tal evento. Y bajo colisión, en realidad hay uno que se llama golpe de evento. Eso ya lo hemos visto antes. Y una gran manera de probar y ver si funciona es conectarlo a un texto impreso o una nota de cadena. Vamos a correr el juego. Y desgraciadamente, no funciona. Ahora, voy a ahorrarte la molestia. Pero normalmente, cuando no se activa un evento deseado , podría ser una configuración dentro de las propiedades de malla. Entonces, selecciona el cilindro y ve al detalle spanel. Aquí hay una configuración bajo colisión llamada Simulation Generate Hit events, y por defecto, está desactivada. Así que solo habilite. La razón por la que algunas de estas opciones están deshabilitadas por defecto es para el rendimiento. Si no estás usando el hit del evento, tampoco deberías registrarte porque aunque no estés usando algunas de estas notas del evento, bajo el capó, estos eventos sí reciben un ping cada vez. Y al construir un gran mundo, esto podría generar problemas de rendimiento. Así que siempre verifique los detalles del componente si hay algo ahí dentro que necesite habilitarse. Antes de seguir adelante, hay una cosa importante que hay que saber. Ya sabes, anteriormente, teníamos que establecer la malla como objetivo en una nota. Esta vez, no tenemos que hacer eso. Esto significa que el golpe del evento se activa cada vez que se golpea el plano Si tuviera que tener múltiples mallas aquí y quiero activar específicamente el hit para una malla específica, puedes seleccionar esa malla, y luego si haces clic derecho aquí, puedes ver que podemos agregar un evento específico para esa malla Y bajo una colisión, podemos encontrar el componente golpeado por cilindro. Entonces este es exactamente el mismo evento. Uno es para la malla específica. El otro es para todo lo que hay dentro del plano. Bien, ya lo tenemos funcionando. El texto de la pantalla dirá hola cada vez que se golpea un pin. Entonces queremos cambiar el color del pin. Y para ello, necesitamos hacer cambios dinámicos en el material. Por lo tanto, crearé un nuevo material y lo llamaré pin. La creación de materiales también se basa en nodos. Funciona muy similar como con los planos, y podemos hacer todo tipo de cosas y enchufarlo en diversas propiedades materiales aquí También podemos poner texturas aquí porque si quieres que el pin se vea como un poste de madera o lo que sea, voy a mantenerlo simple por ahora y solo cambia el color base a blanco en la propiedad del material en sí. Y luego volveré al plano, seleccionaré el cilindro y cambiaré su material a pin, el que acabamos de crear Bien, voy a tomar el cilindro y arrastrarlo al plano A partir de ahí, veamos si podemos encontrar un nodo para cambiar el parámetro de color base de su material. Buscar material y navegar por la lista, necesito una nota fija, y aquí hay algo que podría funcionar establecer el valor del parámetro de color en el material. Tomemos eso. Bien, entonces me pide definir el nombre del parámetro. El parámetro se llama color base, ¿verdad? Así que vamos a escribir eso aquí. A continuación, podemos elegir un nuevo valor de parámetro o color. Ya sabes, hagámoslo verde. Y por último, conecta el evento a esa nota para que pueda ser disparado al golpearlo. Bien, vamos a darle una oportunidad. Hmm. Eso no funcionó. A lo mejor el nombre del parámetro no es correcto. A lo mejor tenemos que hacer otra cosa con esta propiedad. Volvamos al material y veamos la propiedad de color base. Hagamos clic derecho sobre él y veamos qué opciones obtenemos. Oh, interesante. Podemos promoverlo a un parámetro. Hmm. Eso tiene sentido. Estas propiedades del material son justamente eso. Propiedades, y solo podemos hacer cambios en lo que está sucediendo frente a aquellas propiedades en las que establecemos un color o textura. Nosotros llamamos a esos parámetros, y ellos van a la propiedad. Esto significa que también podemos cambiar el nombre del parámetro a pin coolor, por ejemplo Esto hace que sea mucho mejor trabajar con él. Y esto también nos hace entender mejor que con materiales muy complejos, podemos hacer cambios en un parámetro específico, lo que podría alterar la suciedad y el agua o la reflexión en el vidrio. Bien, voy a cambiar eso a blanco, el color por defecto Y en mi plano, ese nombre de parámetro ahora se convierte en color pin Tienes 100 notas aquí, también tiene mucho más sentido ver color del pin en lugar del color base. Bien, ejecuta la simulación, e increíble. Eso funciona. Ahora, la idea ahora es cambiar el color tres veces. Y hay varias formas de hacerlo. Una forma es crear un valor numérico y agregarle uno cada vez que se activa el evento. Entonces verificamos cuál es ese número, y en base a eso, cambiamos el color en consecuencia. Pero eso es mucho código para algo que podemos simplificar con una nota D. De hecho, puedes encontrar un montón de nodos de control de flujo cuando lo busques. Ya tocamos algunos. El nodo dN donde N representa un número que establezca, realiza una acción para la cantidad de veces que elija. Entonces podemos definir eso en el valor de entrada. El contador en la salida nos dará el número en el que se encuentra el nodo. Entonces, si es la segunda vez que se dispara, el número de salida es dos. Y en lugar de hacer un montón de ramas y verificar si es el número uno, dos o tres, podemos hacer uso de un nodo switch. Y más específico, el switch on It donde representa entero o un valor numérico, y luego podemos agregar tantos pines de salida como queramos. Entonces voy a sumar uno por cada número. Ahora, el nodo due end comienza con uno, así que simplemente mantendremos el primer cero vacío. Podríamos duplicar el nodo material tres veces y hacer que cambie el color. Pero de nuevo, esa no es una buena programación. Demasiadas notas. Quieres que sea sencillo, que funcione y sea fácil de adaptar en el futuro. Voy a hacer clic derecho en el color del parámetro y elegir promoverlo a variable. Esto lo agregará a la lista de variables. Esta vez, no es un lingote como trabajamos antes, sino que es una variable de tipo de color lineal Funciona exactamente igual. Las variables se pueden obtener como lo hacemos aquí. Obtenemos el valor del color, pero también podemos establecer el color. Así que simplemente arrastra la variable al blueprint y elige set, y lo haremos tres veces También puedes simplemente copiar y pegar el nodo set por cierto. Ahora, conecta las salidas de uno, dos y tres, y finalmente cambia el color de cada una. Luego podemos traer las salidas X de cada nodo al nodo de parámetro de color para que realmente se active y cambie el color. Vamos a darle una oportunidad. En Yippie. Funciona. Entonces estamos empezando a entender que aunque con algunas notas, podemos hacer mucho, pero también se convierte en un desastre muy rápido. Aquí está, por cierto, exactamente lo mismo sin usar la nota do and switch, solo un montón de ramas, cheques y contadores manuales. Hace exactamente lo mismo. Pero en un proyecto más complejo, si planeas todas tus características así, se convierte en un desastre enorme. Así que explora un poco más las notas de control de flujo para familiarizarte con ellas. Definitivamente es abrumador al principio, pero una vez que empiezas a entender cómo funcionan, son mucho mejores. Aquí está la cosa. Me gusta mucho lo que acabo de crear, y quiero usar este cambio de color mucho más en mi proyecto. Y cuando piensas en escalar, incluso esta estructura de notas cortas es demasiado. Y ahí es donde entran las funciones. Pero eso es para la siguiente lección. 9. Funciones de blueprint: código reutilizable: Cree que acabamos de crear una característica increíble con estos giros cambiando de color medida que otro objeto choca con él. Quiero usarlo más, pero tener que copiar y pegar estas notas se vuelve un desastre. Y también quiero que estas notas se ajusten más fácilmente, sobre todo cuando se trata de propiedades como el color. Bueno, ahí es donde entran las funciones, y se puede ver como una nota personalizada. En el lado izquierdo, encontrarás una función sap desde la que podemos hacer clic en el Plus para crear una nueva función, y le llamaremos cambio de color o algo así. Se ha abierto automáticamente. Tiene su propia área de trabajo, y puedes ver aquí que podemos volver al gráfico de eventos. Y si cierras tu función, siempre puedes volver a abrirla solo hacer doble clic sobre tu función en el panel de planos Así que voy a volver a mi gráfico de eventos y de hecho poner todo en esa función excepto el nodo de eventos, lo cual no es posible. necesario conectarlo a una ejecución entrante que un evento no tiene, porque ahí es donde empiezan las cosas. Voy a controlar X, que se corta, y luego en la función, voy a pegar el nodo. Conectaremos el inicio de la función al nodo D N. Después vuelve al gráfico de eventos, y al igual que una variable, puedo arrastrar esa función a mi blueprint Y como puedes ver, es solo un nodo simple. Se puede ver como un contenedor para todos los demás nodos. Conectar los hits de componentes a esa función hará que todo funcione exactamente igual. Y lo genial es que puedo reutilizar esa función tantas veces como quiera. Por ejemplo, voy a ir a mi puerto de visión y duplicar ese cilindro para que tengamos dos de esos. Y para que sea más fácil, cambiemos el nombre de estos cilindros a pin uno y pin dos. Entonces volvamos al gráfico de eventos y creamos un hit de componente para el segundo pin también. Con él seleccionado, haga clic con el botón derecho en la colisión del evento al golpear el componente. Y podemos conectar la misma función ahora a ese evento también. Y como que funciona, pero no realmente. Ya sabes, mi segunda papelera no consigue un cambio de color. ¿Por qué es eso? Volvamos a echar un vistazo a los nodos en la función. Y aquí hay algo que me doy cuenta. Cuando hacemos el cambio de color, apuntamos al pin uno. Entonces, para el otro pin, tenemos que apuntar a ese también. Entonces necesitamos un parámetro en la función que podamos cambiar, y eso se hace fácilmente. Seleccione la función y vaya al panel de detalles. Aquí puedes ver en la parte inferior que podemos agregar un parámetro de entrada y salida. Vamos a crear una entrada, y estas son las mismas que las variables. Eso significa que podemos darle un nombre como target y luego elegir el tipo de variable. Y si no conoces ese tipo de variable, siempre puedes aspirar el parámetro en este caso, los nodos de color porque eso te mostrará qué tipo de parámetro es, y eso es lo que queremos hacer dinámico Es una referencia de objeto de componente de malla. Así que eso es exactamente lo que vamos a establecer como el tipo de variable. Ahora, antes de hacer otra cosa, volvamos al gráfico de eventos. Ver que la función tiene un pin de entrada ahora llamado target, que es el que acabamos de crear. Así podemos vincular el pin one mesh al primer objetivo de función y pin dos a la segunda función. Entonces, aunque estamos usando la misma función, hicimos dinámica al permitirnos usar la función en diferentes objetivos. Y eso es lo mejor de las funciones. Elegimos cuántas opciones o propiedades queremos exponer como entrada o salida y esto es exactamente lo mismo que cualquier otra nota. En realidad se puede ver como una nota reutilizable personalizada. Pero aún no hemos terminado. Volvamos a la función. Entonces al inicio, el objetivo se ha definido en la gráfica de eventos. Ahora solo tenemos que asegurarnos de que va al objetivo real del nodo de color. Así que elimina el pin uno y conecta nuestra entrada de destino al objetivo de los nodos de color. Bien, vamos a darle una oportunidad. Esto definitivamente resolvió ese problema. Ambos pines ahora cambian individualmente su color, pero solo cambian su color una vez. Debería ir al amarillo y luego al rojo. ¿Qué está pasando aquí? Bueno, hagamos algunas depuraciones. Esta es una técnica para averiguar dónde está el problema. Quiero ver si mi nodo final debido en realidad cuenta hacia arriba porque eso es finalmente lo que define el color. Entonces necesito la salida del valor del contador fuera de la función. Para ello, crearemos una variable de salida. Y le vamos a nombrar contador, y el tipo de variable va a ser un entero. Lo puedo ver instantáneamente mirando el color del pin del contador. Después a veces sabrás estas cosas también. Ahora, eso nos da una nota de retorno. Llegamos a conectar el último pin exacto al retorno y sacar el contador a la variable contador de la función para pasarlo a través. Cuando ahora volvamos al gráfico de eventos, notarás que la función tiene un pin de salida, y podemos usarlo en combinación con una nota de impresión de texto. Pero en lugar de que el texto dijera hola, quería mostrar el valor del contador. Automáticamente, agregará una conversión de variable de numérico a texto. Ejecutemos la simulación. Y como pensaba, sí, sólo da salida a uno No cuenta más. Así que hemos localizado el problema haciendo algunas depuraciones. Utilizo el texto impreso todo el tiempo para averiguar qué está pasando en mi plano y localizar problemas con los que me encuentro. Entonces, ¿cuál es el problema? Si compartieras tus hallazgos con She GPT, te dirá que una función siempre se restablecerá cada vez que se active Así que los controles de flujo donde necesita recordar algo así como la cantidad de cuotas que hizo se restablecerán a uno, y eso tiene sentido Entonces aunque esta nota final de do fue genial para mantener mis notas más organizadas, con cualquier función, no podemos usarla. Y eso está bien. Ya estamos haciendo uso de una función que es una sola nota reutilizable. Dentro de esa función, no es problema tener más nodos y hacerla un poco más desordenada Así que borra que hacen nodos y vamos a crear manualmente esa misma funcionalidad. Crea una nueva variable llamada counter y asegúrate de que es de un tipo entero. Después arrástralo al plano y elige conjunto. Conecte los pines exactos, y en lugar de conectar una variable get del contador a la selección del switch, simplemente podemos usar la salida del nodo set. Es exactamente lo mismo. Dado que estos nodos están tan juntos, podemos hacer eso sin hacer un lío. Ahora, solo necesitamos agregar uno cada vez que se active. Así que haz un get del valor del contador y tráelo a través de un nodo add. Añadiremos uno y luego lo conectaremos al nodo set. Entonces estamos tomando el número de contador actual, agregándole uno, lo que hace dos, y lo guardaremos en la variable con el nodo set. Siguiente ejecución, obtenemos de nuevo el valor del contador , que ahora es dos. Le agregaremos uno, lo que hace tres y así sucesivamente. Así que recreamos la nota do básicamente. Vamos a darle una carrera e increíble. Funciona perfectamente. Ahora, me gustaría agregar una extensión más a la función, pero eso va a ser una tarea para ustedes. Te voy a dar la solución en la siguiente lección otra vez. Entonces quiero que ambos pines cambien sus colores de manera diferente. pin uno va de verde a amarillo a rojo, pero el pin dos debe ir al azul, morado y al naranja o algo más. Te dejaré esa elección creativa de color a ti. Pero asegúrate de que se ejecuta a través de la misma función. Buena suerte con eso, y nos vemos en la siguiente lección. 10. Mejores prácticas de organización del blueprint: Echemos un vistazo a la solución. Lo que tuvimos que hacer era crear tres parámetros de entrada más, variables del tipo color lineal. Yo nombré a estos colores uno, dos y tres. Y en lugar de establecer estos colores en su respectiva variable, conectaremos esas entradas. Después volviendo al gráfico de eventos, ahora podemos establecer los colores para cada instancia de la función. Entonces el primero será el verde estándar, amarillo y rojo, y para el segundo pin, será azul, morado y naranja. Y cuando ejecutamos la simulación, funciona. Entonces así es como funcionan las funciones y cómo aún puedes tener parámetros específicos dinámicos. Y esta lección no va a crear mucho, pero quizás una buena idea para darle a tu cerebro un poco de descanso después de toda esta nueva información. Entonces, en cambio, vamos a limpiar un poco nuestro plano. Ahora bien, si entramos en nuestra función, empezamos a ver un desastre enorme. No es nada agradable trabajar en esto. Entonces aquí hay algunas cosas que podemos para empezar, puedes hacer doble clic en una línea dos en un punto y luego arrastrar ese punto alrededor, dándonos una mejor visión general de donde van las conexiones. Y lo bueno de una función es que también podemos elegir dónde deben estar las variables de entrada. Entonces, desde el panel de detalles, voy a arrastrar el objetivo hasta el fondo, lo que me permite posicionar mejor el nodo de color y la línea conectada a él agregando un punto en él también. Obviamente podemos seleccionar múltiples nodos y puntos para moverlos juntos. También puedes seleccionar un punto o un nodo y usar tus teclas de flecha para moverlas Y así es como quieres intentar asegurarte de que ninguna línea se superponga entre sí o vaya detrás de otras notas. Si alguna vez necesitas regresar para hacer ajustes, obtienes una visión mucho mejor de lo que hace la lógica en tu plano en lugar de tener que averiguar a dónde está conectado todo También me gusta ver tantas líneas rectas como sea posible, y hay una manera sencilla de hacerlo. Simplemente seleccione las notas que desee alinear y presione la tecla corta. P. Intenta hacer un hábito de esto mientras estás diseñando tu estructura de nodos. Otra cosa que también es un poco desordenada es cuando múltiples líneas de conexión entran en el mismo nodo que con el color variable establecido aquí Si tuvieras que hacer un punto sobre uno de estos, puedes conectar el otro a ese punto. Entonces, en vez de tener tres líneas van a esta nota, ahora sólo tenemos una. Entonces estas son algunas de las técnicas que podemos aplicar para limpiar la estructura del plano, y es para todos diferentes qué tan lejos quieren llegar con esto Al trabajar en un proyecto real, mi TOC siempre entra en y quiero que todo esté perfectamente alineado Bien, una última cosa que podemos hacer es agregar comentarios, y para planos más grandes, esto será súper importante Imagina tener cientos si no miles de notas en un solo plano, y quieres hacer un cambio en un sistema específico ¿Dónde volví a hacer eso? Bueno, seleccionas un montón de notas y presionas la tecla Ci para agregar un cuadro de comentarios a su alrededor. Y aquí, por ejemplo, sería el contador de aciertos. Puedes cambiar el tamaño de ese cuadro de comentarios, y si lo mueves, todo dentro también se moverá Cuando se selecciona, también obtenemos algunas opciones en un panel de detalles. A partir de aquí, en realidad puedes elegir si quieres que las notas del interior se muevan con ella o no. Se puede cambiar el tamaño del texto común, e incluso podemos cambiar el color. Y uso mucho ese etiquetado de color. Si estás haciendo un videojuego, podrías tener toda la lógica de habilidad, tener comentarios verdes, hacer toda la lógica de combate, comentarios rojos, movimiento, preps azules, etcétera Puede ver instantáneamente qué tipo de lógica tiene ese grupo de nodos. Te recomiendo encarecidamente que hagas uso de eso. Y por último, podemos agregar comentarios a notas individuales o líneas de conexión. Si seleccionas una nota, verás que este pequeño toggle aparece en la parte superior. Al hacer clic en él, se le permite agregar un comentario a esa nota. Por ejemplo, cambie el color base del material. Para notas no convencionales, tener ese comentario personalizado realmente podría ayudarte a Y siempre puedes ocultarlo alternando el cuadro de comentarios o mostrándolo de nuevo. Siempre recuerda lo que tecleaste aquí. Entonces, si no quieres el lío de todos estos comentarios, pero sí quieres alguna información ahí para la futura referencia, eso es posible. También me gusta usarlo mucho en puntos de anclaje y las líneas de conexión, sobre todo cuando recorren una distancia lejana o termino con tantas líneas diferentes. Me ayuda a hacer un seguimiento de lo que están conectados y para qué propósito. Entonces estos son algunos de los conceptos básicos para mantener tu plano limpio y organizado Alinea nodos usando el atajo, crea puntos de anclaje para guiar mejor tus líneas de conexión y finalmente agrega cuadros comunes alrededor de grupos de notas o un solo nodo. Y con eso, hemos llegado al final de esta clase. Ahora, me queda una lección de conclusión final con un gran ejercicio para practicar todas las cosas que has aprendido. 11. Proyectos finales y conclusión: En primer lugar, felicitaciones por terminar esta clase. Ya estás oficialmente listo para comenzar a hacer planos dentro del motor Unreal Y aunque solo he arañado la superficie, tienes un fuerte conocimiento fundamental ahora tienes un fuerte conocimiento fundamental de cómo funcionan los planos A partir de aquí, podrás seguir experimentando, explorar y aprender nuevas técnicas. Seguir los tutoriales de YouTube te irá mucho más fácil ahora ya que entiendes mejor por qué se usan notas específicas y cómo están conectadas. La forma en que aprendí a entender programación y los planos era simplemente pensar algo que quería crear y luego probar varias notas y depurar hasta que lo conseguí funcionar Y usar Hechipt me ayuda a empujar en la derecha a veces. No, si es para aprender, trata de evitar esos tutoriales que solo conectan notas sin explicar lo que hacen. Realmente no aprendes mucho de eso. Entonces aquí tienes una tarea final, un ejercicio para entrenar todo lo que has aprendido. Y tengo dos tareas. Puedes elegir el que se ajuste a lo que usas UnrelEngine, o puedes hacer El primero es para el desarrollo de juegos, y el otro es para un render de película. Entonces, para el plano de desarrollo del juego, me gustaría verte crear un juego de plataformas como en Squid Game, donde tu personaje tiene que llegar al otro lado saltando sobre estas fichas Ahora, una de cada fila de fichas caerá. Entonces, es un juego basado en pura suerte saltar tres veces seguidas sobre la ficha correcta, y hacerlo más difícil para el jugador, cada vez que ejecutamos el juego, las fichas que caerán son aleatorias Entonces cada nueva instancia del juego va a ser diferente. Ten en cuenta que una de cada baldosa en una fila necesita quedarse quieta y la otra necesita caerse. Cuando el jugador cae, la pantalla pasa a este color rojo desaturado Pero cuando lleguemos al final, estallará el confeti. Aquí tienes, nuevamente, una visión general de la tarea y trata de crear esto con las notas lo más mínimas posible. El archivo del proyecto se puede descargar si te quedas atascado. Pero recuerda, hay múltiples formas de hacer esto, y en realidad no hay una manera correcta o incorrecta. Entonces, si lo lograste y lo comparas con el mío, tómalo con un grano de sal. Buena suerte. La segunda asignación es para un render de película. Tuve que mantenerlo muy simple porque no puedo compartir un proyecto con un montón de activos, así que creé un bosque a partir de formas simples. También creé una secuencia de niveles con un movimiento de cámara. Cuando entramos en la simulación a intervalos aleatorios, estos troncos de árboles se iluminan y caen lentamente Esto es completamente dinámico creado con un plano. Así que cada vez que ejecuto la simulación, va a ser diferente. Esto tardaría días en animarse realmente en el secuenciador, pero con la ayuda de un plano, pude crear esto en solo No te excites demasiado todavía. Crear esto es mucho más difícil que el juego de plataformas. Vas a tener que hacer uso de algunas notas que no hemos visto en esta clase. Así que trata de pensar lógico. Revisa la lista de notas para ver si puedes encontrar lo que buscas. Aquí una vez más, una visión general de lo que se necesita un árbol simple que consiste en un cilindro y un cono. Y, por supuesto, también puedes usar un modelo de un árbol real si te gusta eso, y en un momento aleatorio en el tiempo, el árbol o una parte del árbol necesita iluminarse. Eso se hace en el material, y luego lentamente el árbol debe caerse. Es un verdadero desafío, así que está bien si usas HiPT para esto o echas un vistazo al archivo del proyecto Esta es definitivamente una tarea de siguiente nivel. En ambos archivos de proyecto, he agregado comentarios para explicar las notas que uso y lo que hacen. Entonces todas las respuestas están ahí dentro. Pero trata de crearlo primero sin echar vistazo al proyecto Me gustaría darle las gracias tanto por ver, y realmente espero que hayan disfrutado de esta clase. Te deseo todo lo mejor en tu viaje de motor Unreal y buena suerte con las tareas. Mantente creativo.