Crea un juego 2.5D en Unreal Engine 5 | Hyper Dev | Skillshare

Velocidad de reproducción


1.0x


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

Crea un juego 2.5D en Unreal Engine 5

teacher avatar Hyper Dev

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 descripción general

      5:40

    • 2.

      001 Accede a Unreal Engine y comienza el proyecto

      2:43

    • 3.

      002 Configuración del nivel de desarrollador

      5:12

    • 4.

      003 Instalación de Paper Zd y carga a nivel de desarrollador en la startup

      4:32

    • 5.

      004 Cómo agregar un personaje jugador al mundo

      8:23

    • 6.

      005 Importación de arte a Unreal Engine para el personaje del jugador

      4:43

    • 7.

      006 Cómo configurar una animación de inactividad simple y gestionar sprites y flipbooks

      9:57

    • 8.

      007 Cómo planificar tu juego

      5:08

    • 9.

      008 Explicación detallada sobre cómo agregar entradas de controlador

      18:03

    • 10.

      009 Movimiento a izquierda y derecha con teclado y controlador

      8:15

    • 11.

      010 Cómo agregar restricción, corregir la deriva de la barra y establecer la posición del reproductor

      2:36

    • 12.

      Cómo configurar Paperzd para la gestión de animaciones

      10:38

    • 13.

      012 Reproduce la animación de inactividad con Paperzd

      5:29

    • 14.

      013 Reproduce la animación de correr a través de Paperzd

      6:35

    • 15.

      014 Dirección de Sprite de Changine basada en la dirección del movimiento

      4:51

    • 16.

      015 Cómo agregar archivos de audio en ejecución

      9:18

    • 17.

      016 Agregar sonido espacial corriendo cuando el pie de Sprite aterriza

      10:38

    • 18.

      017 Cómo usar comentarios para organizar nodos de blueprint

      0:18

    • 19.

      018 Configuración de control y código para agregar un salto

      5:11

    • 20.

      019 Cómo agregar una animación de inicio rápido

      4:36

    • 21.

      020 Lógica de transiciones de animación de saltos

      7:02

    • 22.

      21 Sonido de inicio

      5:48

    • 23.

      22 Sonido de salto para aterrizar

      4:51

    • 24.

      23 Cómo agregar plataformas para la creación de plataformas

      4:38

    • 25.

      24 Cómo personalizar el movimiento del jugador y el salto

      6:55

    • 26.

      25 Cómo agregar recursos de plataformas tridimensionales de Quixel

      4:50

    • 27.

      26 Cómo agregar recursos de la tienda de motor unreal para tus entornos

      1:29

    • 28.

      27 Agregar recursos Parte 2

      4:24

    • 29.

      28 Mírame cómo creo mis niveles básicos de diseño

      21:51

    • 30.

      29 Comparte tu opinión sobre la calidad de la enseñanza y el aprendizaje

      1:19

    • 31.

      30 Comprobación del conocimiento del progreso del curso

      4:17

    • 32.

      31 Restablecer el nivel de desarrollador a Despejar

      3:28

    • 33.

      32 Creación de un sistema de salud sencillo Parte 0

      2:28

    • 34.

      32 Creación de un sistema de salud sencillo Parte 1

      3:04

    • 35.

      33 Creación de un sistema de salud sencillo Parte 2

      10:09

    • 36.

      34. Creación de un sistema de salud sencillo, parte 3: agregar un objeto dañado

      13:18

    • 37.

      35 Comprobar si el intérprete está vivo o muerto al recibir daño

      3:57

    • 38.

      36 Cómo hacer una interfaz de usuario con pantalla de muerte

      15:59

    • 39.

      37 Cómo agregar la pantalla de muerte en caso de muerte

      5:12

    • 40.

      38 Cómo agregar funcionalidad a la pantalla de muerte

      5:59

    • 41.

      39 Agregar entradas de ataque del jugador

      3:56

    • 42.

      40 Crear una maqueta en combate, parte 1

      20:26

    • 43.

      41 El ataque del jugador, parte 1

      14:45

    • 44.

      42 Hacer un ataque de jugador, parte 2: cambios en el código

      11:00

    • 45.

      Animación de ataque con espada de 43 jugadores, parte 1

      7:22

    • 46.

      Animación de ataque con espada de 44 jugadores, parte 2

      5:29

    • 47.

      45 Animación de ataque con espada aérea

      5:44

    • 48.

      46 Uso de notificaciones de animación personalizada para la caja de éxito de la espada

      8:35

    • 49.

      047 Más animaciones de ataque

      13:36

    • 50.

      47 Añadir más animaciones de ataque para el sistema de combo

      15:49

    • 51.

      48 Cómo empezar con el almacenamiento de entradas

      9:44

    • 52.

      49 Configuración del combo básico con Hard Input Lockout

      12:37

    • 53.

      50 Una breve descripción antes de una mayor integración del sistema de combo

      3:28

    • 54.

      51 Añadir enlace de ataque al primer ataque con espada

      15:14

    • 55.

      52 Añadir enlace de ataque al segundo ataque con espada

      8:59

    • 56.

      53 Finalizar los enlaces de combinación y reajustes del combo a tierra

      19:55

    • 57.

      54 Comprobar si el jugador está en el aire para las rutas de ataque con espada

      8:36

    • 58.

      55 Configuración de planos de animación para combinación de aire

      8:20

    • 59.

      56 Cómo configurar la lógica de la combinación de aire

      9:39

    • 60.

      57 Cómo pulir la lógica de la combinación de aire

      18:25

    • 61.

      58 Detectar al músico en el rango

      8:50

    • 62.

      59 Haz que la IA se mueva hacia el jugador

      7:04

    • 63.

      60 Ajuste del movimiento de la IA hacia el jugador

      11:59

    • 64.

      61 Ajuste del componente sensorial y algo de trabajo teórico en torno al tiempo

      6:04

    • 65.

      62 Cómo agregar un sprite visible al enemigo cuerpo a cuerpo

      6:48

    • 66.

      63 Cómo agregar animaciones para caminar en PaperZD

      9:14

    • 67.

      64 Cómo agregar un sprite de ataque enemigo cuerpo a cuerpo

      4:50

    • 68.

      65 Resumen de la IA de Melee Enemy y comentarios del código

      7:59

    • 69.

      66 Agregado de caja de daños para un ataque enemigo cuerpo a cuerpo

      11:32

    • 70.

      67 Cómo vincular la animación de ataque con el código para un enemigo cuerpo a cuerpo

      13:59

    • 71.

      68 Cómo agregar la función de reajuste del estado de ataque

      10:01

    • 72.

      69 Evitar que el jugador pueda atravesar la IA

      1:53

    • 73.

      70 IA para entrar en contacto con el enemigo

      3:34

    • 74.

      Animación de la muerte para IA y algo de teoría de la lógica

      6:04

    • 75.

      72 Hacer visible la barra de salud de la IA y algunos ajustes antes de avanzar

      3:59

    • 76.

      73 - Empeñamiento de enemigos cuerpo a cuerpo y muerte en uno

      11:29

    • 77.

      74 Configuración del enemigo

      2:59

    • 78.

      75 Animación simple de inactividad para el enemigo de distancia

      6:22

    • 79.

      76 Crea un proyectil que va a la locación del jugador durante el lanzamiento

      13:27

    • 80.

      77 Configuración del plan de animación para Ranged Enemy

      12:23

    • 81.

      78 Vinculación de la animación de lanzamiento con el parto de proyectiles

      7:12

    • 82.

      79 Ajustar la dirección del sprite a la ubicación del jugador

      4:42

    • 83.

      80 Cómo agregar Sprite a la bola mágica

      3:09

    • 84.

      81 Dirección Changine de la bola mágica

      9:03

    • 85.

      82 Configuración de la combinación de animación de hito y muerte

      6:37

    • 86.

      Enemigo de 83 distancias de arrastre al recibir cualquier daño

      10:05

    • 87.

      84 Ajuste del retardo del ataque después de recibir un golpe

      11:41

    • 88.

      85 Cómo evitar que tus enemigos se atasquen entre sí

      1:47

    • 89.

      86 Creación de una distancia de ataque para el enemigo

      3:46

    • 90.

      87 Una mirada al nivel

      4:57

    • 91.

      88 Cómo hacer que el sprite del jugador reaccione a la luz

      3:17

    • 92.

      89 toques generales para el nivel

      10:07

    • 93.

      90 Cómo hacer un gran enemigo como práctica final

      4:28

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

55

Estudiantes

--

Proyectos

Acerca de esta clase

Hecha para principiantes absolutos que se inician en el desarrollo de juegos Unreal Engine. Aprende a crear un juego de plataformas 2.5D en Unreal Engine.

Los juegos de plataformas son una de las mejores formas de entrar en el diseño de juegos. Aprende a lograr que un juego de plataformas funcione en un estado totalmente jugable. Pasarás de un proyecto en blanco a todos los pasos que sigue un buen desarrollador de juegos para hacer un juego completamente jugable.

El ritmo está establecido al adecuado para que nunca te confundas ni te atrevas en un tema sin el conocimiento adecuado.

A lo largo del curso no vas a simplemente hacer un copia-pegado de lo que yo hago. En su lugar, te enseñaré a pensar como un diseñador de juegos para que puedas crear los juegos que quieres.

Espero que después de este curso salgas a terminar la idea del juego que has tenido en mente y lo lances. Como soy un ávido jugador, no puedo esperar a comenzar el viaje que vas a crear.

Para cualquiera que venga de UNITY ENGINE, este es el curso adecuado para ti. Enseña todo lo que necesitas para ponerte al día usando los planos para crear los juegos que quieres hacer. Construido por una empresa de desarrolladores de juegos.

Buena suerte.

Conoce a tu profesor(a)

Teacher Profile Image

Hyper Dev

Profesor(a)

Join me for some learning on how to make production ready games. Tutorials that give you the full scope of what you need to do to get a game totally ready for release.

They are made for people going from being a hobbyist to a professional game developer who wants to earn a living by selling games.

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. Video general: Me encantan los juegos de 0.5 d. Hay algo en tener el estilo de dos D art mientras se puede interactuar en una voluntad de tres D. Entonces esta es una descripción rápida costo de desarrollo de juegos de 2.5 d. Cubrimos mucho de lo que vas a aprender para que puedas pasar de, ya sabes, ver las cosas desde la pequeña escala a la escala más grande del desarrollo de juegos en su conjunto. Entonces, lo primero que vas a aprender fundamentalmente va a ser mi sencillo proceso de cuatro pasos para diseñar y crear cosas para tu juego. Básicamente, está diseñado, crea el arte, y luego agregar el audio. Ese va a ser el núcleo de todo lo demás que suma y cómo crear e implementar un personaje de dos D con movimiento y luego algo de combate. Entonces con este personaje, es capaz de realizar un combo de tres hits, incluyendo combos aéreos, también Y cuando construyas el personaje, vas a aprender a configurar los controles para PC para que puedas controlar el personaje usando el mouse y el teclado. Y además de eso, también vas a aprender a crear estos controles de personajes usando un controlador también. Entonces tendrás esas dos opciones. Y todas estas características se van a construir sobre el motor irreal y utilizando el sistema de planos para que todo lo que necesitas sea una comprensión básica de la lógica, y puedas crear el personaje Ahora, lo genial de los planos, cierto, es que vas a poder hacer cambios rápidamente en tu código Y en caso de cualquier cosa, se puede ver fácilmente el código vivo en tiempo real. Entonces ahora, cada vez que realizo una animación de ataque, puedo ver a qué línea de comida se llama. Este es un ejemplo sencillo de un ataque de tres golpes. Entonces puedo decir cuando el ataque rápido se llama solo, o cuando el jugador ha presionado los tres ataques, y está luchando, más bien está disparando todo el combo, y aprenderás esto también en el tutorial. Ahora, antes de hablar de algunas de las otras características del tutorial, una cosa que me encanta de aprender es la claridad. No estaba contento con muchos de los otros tutoriales que yo mismo compré cuando estaba aprendiendo el desarrollo de juegos. Pero no te preocupes esta vez, va a haber mucha claridad para esta. Entonces, una cosa que vas a ver mucho es mucho acercar Entonces lo que eso significa es la mayor parte del tiempo, voy a acercar exactamente dónde está mi mouse, y voy a mostrarte detalles sobre qué es lo que estoy haciendo para que puedas obtener una comprensión bastante genial y clara de todo lo que estoy cambiando Cada variable, cada vez que gire un dial, habrá algo de zoom para darte la claridad exacta que necesitas para saber exactamente lo que estoy haciendo. También me gusta que mis explicaciones sean muy claras y contenidas. Pero ahora avanzando, también va a aprender sobre los enemigos y la IA enemiga. Oh, mira, hay un enemigo a distancia. Una de las cosas que vas a aprender es cómo conseguir enemigos y crearlos que hagan daño al jugador, incluyendo enemigo a distancia que ataca desde lejos y un enemigo mucho más cercano a distancia que hace daño al jugador caminando hacia él y atacando Pero no se trata sólo de ser atacado por enemigos. También vas a aprender a dar inicio a las cabezas de los enemigos para que cuando reciben daño, puedan morir. Entonces nuestro jugador tiene la capacidad de contraatacar, lo cual es genial. Entonces los enemigos son carbón y todo, ¿verdad? Pero otra cosa que vas a tener que hacer es el diseño de niveles. Entonces te voy a enseñar paso a paso cómo vas a estar haciendo un diseño de niveles adecuado y haciendo diseño de niveles adecuado y niveles que tengan sentido para que los jugadores usen, así como los conceptos básicos de cómo incorporar activos en un motor irreal y cómo utilizarlos y hacer diferentes cambios en la iluminación y el entorno Bien. Y cuando termines de aprender todo eso, vas a terminar en un proyecto final donde vas a crear un personaje jefe que vas a usar para tus propios juegos. Y una vez que crees ese personaje, habrías aprendido completamente todo lo que necesitas saber sobre el desarrollo de juegos de 2.5 d. Así que eso cubre prácticamente todo lo que vas a estar aprendiendo en el tutorial. Te deseo buena suerte y asegúrate de tomarte tu tiempo, aprender todo paso a paso, y oye, el juego de tus sueños no va a hacerse solo. Te deseo buena suerte y me encontrarás en el siguiente video. Vamos a seguir adelante. 2. 001 Obtén Unreal Engine y comienza el proyecto: Bien, así que para empezar, tenemos que asegurarnos de sacar las cosas básicas del camino Vas a necesitar Motor NRL 5.4. Simplemente consigue el lanzador de Epic Games. Asegúrate de descargar UnrelEngine. Se puede ir a la biblioteca. Y desde dentro de la biblioteca, ya sabes, básicamente, tienes la opción de elegir diferentes versiones de motor, ya sabes, llegar tarde. ¿Bien? No necesitas nada más. Sólo consigue los lats. El último a partir de la grabación es 5.4. He organizado los planos para asegurarme de que funcionarán con cualquier versión de Unreal hasta 2025 como mínimo, muy raramente cambian el código de blueprint, ya que es solo C plus plus recogido Una vez que lo hayas hecho, inicia el motor, y una vez que lo inicies, vas a venir y dar clic aquí en Juegos. Entonces te va a pedir, ya sabes, configurar tu proyecto de juego. Ahora, configurarlo como un proyecto en blanco. No queremos comenzar con ningún archivo de plantilla. Empecemos de una pizarra en blanco. Y luego en el lado derecho, Asegúrese de que la plataforma de destino sea de escritorio y luego configúrela para blueprint Si haces clic en CiplusPlus tendremos que hacer mucho C plus escritura, pero es mucho más rápido comenzar desde aquí con el código Blueprint Es mucho más fácil comenzar con él. En cuanto a los presets de calidad, estos no son muy relevantes Puedes dejarlos como están. Puedes dejar de lado el contenido de inicio, y puedes dejar atrás por ahora Realmente no necesitaremos rastreo para este proyecto, y es muy intensivo gráficamente. Con toda esa configuración, simplemente baja aquí y selecciona el nombre de tu proyecto. Solo voy a llamarlo videos actualizados para la plataforma 2.5 d porque aquí todos estos videos se están actualizando de los originales en el curso, y luego puedes decidir sobre el nombre del proyecto. Voy a llamarlo 2.5 d Oh, no puedo poner barras espaciadoras. No, voy a llamarlo el viaje de un héroe. Sí, así va a ser lo que yo llamo el proyecto. Con esa configuración, ahora podemos meternos en un motor irreal. 3. 002 Configuración del nivel de desarrollador: Y una vez que Unreal Engine haya arrancado, esto es con lo que van a ser recibidos Entonces, lo primero es, cerremos esa ventana del navegador de contenido y echemos un vistazo a cómo Unreal Engine expone las cosas. Entonces notarás en la esquina superior derecha que es nuestro proyecto. Entonces tenemos una gran pantalla en el medio que es nuestra ventana de editor. Esta es nuestra ventana gráfica, nuestra mirada al mundo que vamos a crear Si hacemos clic dentro de él. Entonces ahora mismo, he hecho clic dentro de él. Puedes mirar a tu alrededor usando el mouse después de mantener presionado el botón derecho del mouse. Para que puedas ver mi ratón ahí. Estoy sosteniendo el botón derecho del ratón, y puedo mirar a mi alrededor. Y luego usando WAS D, voy a poder moverme desde dentro del mundo. Entonces ahora que tenemos nuestro botón del ratón, podemos usar W A para movernos hacia la izquierda, para movernos hacia atrás, y D para movernos hacia la derecha. Entonces con esos dos, básicamente podemos volar alrededor del mundo. Bien. Pero este es un mundo grande, y no necesitamos un gran mundo abierto. Y dependiendo de tu PC, tu PC podría incluso estar estresado. Así que vamos a eliminar este mundo abierto que tengamos algo un poco más claro para usar cuando nos metamos en este proyecto. Ahora, para hacer eso, todo lo que tenemos hacer es que vamos a necesitar crear un nuevo nivel. Ahora, para crear el nuevo nivel, lo que vas a hacer, es que vas a venir aquí a la esquina superior izquierda a la esquina superior izquierda, vamos a hacer clic en Archivo y después de hacer clic en archivo, solo vamos a crear un nuevo nivel. Ahora eso nos va a abrir un par de opciones. Podemos crear un nivel salvaje abierto. Podemos crear un nivel básico. Haga clic en Básico. Solo necesitamos establecer un nivel básico. Ah, perfecto. Ahora que tenemos este nivel básico, voy a retroceder. Observe que todo lo que es es este único objeto rectangular aquí. Se trata de un skybox. Podemos mirar a su alrededor. Hay un sol agradable, y hay nubes listas para que podamos usar y comenzar nuestro juego desde. Este es el buen punto de partida que necesitamos. Pero ahora que hemos creado nuestro nivel, vamos a necesitar guardarlo dentro de nuestro contenido. Entonces, ¿a qué me refiero con contenido? Si vienes y presionas Control y barra espaciadora al mismo tiempo, va a abrir un navegador de contenido. ¿Bien? Ahora, dentro de ese navegador de contenido en la parte inferior izquierda, fíjate que nos está mostrando contenido. Así que haz clic en eso. Esos son todos los archivos que usarás dentro de tu juego. Y luego queremos crear una nueva carpeta. Y llamemos a esa carpeta niveles. ¿Bien? Entonces ahora tenemos nuestra carpeta de niveles aquí. Ahora, solo queremos guardar nuestro nivel actual, bien, este nivel plano en esa carpeta. Observe que cada vez que haga clic de distancia, debe presionar Control y la barra espaciadora una vez más para abrirla. Ahora, para guardar ese nivel, volveremos a subir a donde podemos seleccionar Archivo, y notaremos que existe la opción de guardar el nivel actual como. Así que vamos a guardar el nivel actual como. Bien, abre la ventana. Entraremos en niveles, y simplemente llamemos a esto me gusta usar números cuando estoy nombrando niveles Ahora, el nivel que estamos creando va a ser el nivel desarrollador. Entonces lo llamaré cero, cero, cero, un espacio. Oh, sí, un guión y nivel desarrollador porque este es el nivel que vamos a utilizar para básicamente crear todas las cosas que van a entrar en el juego. Ahora, tenemos nuestro nivel de desarrollador listo, pero hay una última cosa que tenemos que hacer. Necesitamos configurarlo para que cuando arranquemos Unreal Engine, nos metamos en este nivel exacto, y también necesitamos configurar papel Z D que vamos a usar porque nos ayudará a usar porque nos ayudará lidiar con dos d sprites Hagámoslo en la siguiente lección. 4. 003 Instalación de Paper Zd y carga a nivel de desarrollador en el inicio: Ahora justo después de haber configurado nuestro nivel inicial, ahora vamos a agregar un plug in, así que cierra el motor real y vuelve al lanzador de Epic Games. Vaya al mercado y una vez que esté en el mercado, simplemente buscaremos. Los términos de búsqueda que utilizo son Z y D. ¿Cierto? Y deberías obtener inmediatamente el papel Z, en realidad, que debería ser papel Z D, papel, Z y D. Entonces esos son los términos de búsqueda que estoy usando. Se puede ver que ha surgido el papel Z D, y esto va a aparecer. Y está diciendo, Oye, papel Z D, y todo lo que tienes que hacer es hacer clic en Instalar en Motor, y te va a preguntar qué motor quieres instalar también. Por supuesto, instálalo a tu último motor que seleccionaste. Es una descarga razonablemente pequeña, solo 71 megabytes y luego está hecha Y ahora después de algún tiempo, se debería hacer la descarga. Está completamente instalado en el Motor. Puede que no se muestre así aquí, pero podemos ir a la biblioteca, y podemos verificar, veamos, los plugins instalados. Te está mostrando Quicksabidge y papel Z D. Eso es perfecto. Simplemente ciérrelo, y luego podremos lanzar Unreal Engine Ahora, una vez que estés de vuelta en UnRel Engine, realidad te está notificando que, Oye, hay un nuevo enchufe disponible Así que sólo voy a ir a administrar plugins. Voy a escribir Z D aquí. Entonces UnRel buscará, y ahí estamos. Tenemos el plugin paper Z D. Y va a decir, Oye, solo reinicia para que el editor haga los cambios y solo reinicie UnrelEngine nuevamente Perfecto. Ahora, el motor se ha reiniciado y este plugin ya está funcionando Pero fíjate que una vez que saltamos de nuevo a Unreal Engine, ahora nos está mostrando este nivel abierto, que no es lo que queremos Queremos que nuestro nivel de desarrollador real sea lo primero que veamos cuando arrancamos en Unreal Engine Para resolverlo, vaya a archivo, vaya a Editar y luego vaya a la configuración del proyecto. Entonces lo que quieras buscar, vamos rápidamente se congela. Le voy a dar 1 segundo. Bien, se ha descongelado. Entonces lo que quieres buscar es que voy a escribir el inicio del término de inicio. Bien. Entonces ese es el término que usé para buscar. Pero esencialmente, te va a mostrar las opciones de, oye, mapa de inicio del editor, y ahora mismo está configurado para OpenWorld Así que simplemente puedes hacer clic en eso, y ahí tenemos nuestro nivel de desarrollador, así que lo configuraré a nivel de desarrollador. Bien. Y ahora que he terminado con eso, en realidad voy a cerrar esto y voy a reiniciar Unreal Engine una vez más Todo bien. Entonces ahora he vuelto a cargar en Unreal Engine, y aquí estamos ahora estamos en el nivel de desarrollador Por lo que ahora está correctamente configurado. Tienes los plugins. Tienes tu simpático estoy presionando. Voy a presionar Control y barra espaciadora, y notar que tienes nuestro contenido agradable con un nivel vacío, no del todo vacío, pero es un buen nivel de punto de partida, y ahora estamos listos para comenzar a agregar algunos elementos de juego. Empezaremos agregando un elemento de juego, que va a ser el personaje del jugador. Entonces pasaremos por un poco de planificación y filosofía de desarrollo de juegos. Aunque ese va a ser un video muy corto, no va a ser demasiado largo y luego volveremos a este nivel de desarrollador y comenzaremos a elaborar los componentes de nuestro juego de plataformas de 2.5 d Hagámoslo en el siguiente video. Vamos. 5. 004 Cómo añadir un personaje jugador al mundo: Todo bien. Ahora que estamos dentro de Unreal Engine, tenemos nuestra configuración de nivel base Vamos a añadir en el primer objeto. Y solo para asegurarnos de que es algo realmente importante, comenzaremos por agregar un personaje de jugador. Entonces, para agregar un personaje de jugador, vamos a mantenerlo realmente simple, ¿de acuerdo? Todo lo que tienes que hacer es que vas a necesitar presionar Control y barra espaciadora para que aparezca ese menú, ¿de acuerdo? Ahora, una vez que se abra ese menú, queremos bajo contenido. Queremos venir aquí y vamos a crear una nueva carpeta. Solo para mantener las cosas organizadas, hemos creado una nueva carpeta. Ahora, para mantener las cosas organizadas, voy a presionar F dos después seleccionar y voy a llamar a estos personajes. Bien. Entonces tenemos una carpeta para niveles, otra carpeta para personajes. Voy a hacer doble clic en la carpeta de caracteres y voy a crear otra carpeta. Ahora, esta carpeta, la vamos a llamar jugador. Eso es esencialmente porque es el viaje del héroe y vamos a tener un personaje jugador que usaremos en el mundo. Voy a hacer doble clic dentro del jugador, y luego voy a hacer clic derecho y quiero buscar la clase de plano Nos va a dar algunas opciones. Ahora, entre las opciones, notarás que hay personaje, hay pan, hay actor. Simplemente ve y selecciona un personaje. Bien. Ahora con eso, nos ha creado un pequeño archivo aquí, un plano Lo seleccionaré F dos de nuevo, y después voy a llamar a este héroe. ¿Verdad? Ahora, sabemos que héroe va a ser nuestro personaje jugador. A continuación, vamos a poner a este héroe en el mundo. Sólo voy a hacer click y arrastrarlo al mundo. Y, boom, ahí está. Este simple objeto que en realidad es totalmente invisible es nuestro héroe actual. Ahora, ya que estamos usando un plano, cualquier cambio en un plano lo cambia Ahora déjame volver a hacer clic en el Héroe. Ahora mismo, todo lo que es es una cápsula básica que es invisible. Vamos a agregarle un objeto. Estoy haciendo doble clic en héroe. Observe que está cargando una ventana totalmente diferente. Personalmente prefiero que no esté en otra ventana. Yo hago clic en eso, lo arrastro, y lo arrastro aquí. Ahora puedo pasar del nivel desarrollador por aquí de vuelta al plano del héroe, ¿de acuerdo? Ahora dentro del plano del Héroe, hay algunas cosas que podemos ver A la derecha hay algunos detalles. Aquí tenemos los detalles, y también tiene un par de elementos diferentes que vamos a estar usando. Eso básicamente altera las cosas del personaje. Y luego del lado izquierdo, tenemos componentes. Los componentes tienen que las diferentes partes del personaje. Ahora el componente de carácter de línea base viene con una cápsula. Una cápsula es este objeto de aquí, ¿de acuerdo? Es un colisionador. Nos meteremos más en eso más adelante. Y luego tiene un componente de flecha que básicamente muestra la dirección. Bien. Y después del componente flecha, hay una malla básica de caracteres, y luego hay un componente de movimiento de personaje. El componente de movimiento del personaje es algo que usaremos para marcar el movimiento del personaje de izquierda a derecha y saltar. Pero ahora mismo vamos a agregar otro componente porque actualmente el jugador es completamente invisible y no queremos que sean completamente invisibles. Si hago clic en cualquier otro lugar y vengo aquí, note que el jugador es solo una malla, y si le pego play en el juego, no hay nada ahí. Me estoy moviendo alrededor del mundo con WAS D y estoy manteniendo pulsado el botón derecho del ratón y ahí no hay nada. Déjame presionar un escapo para que salga por esa ventana. Esto es completamente invisible. Empecemos agregando un componente simple para que podamos ver dónde está el jugador. Voy a añadir un simple cubo. Ahora que he añadido un simple cubo, no voy a tocar nada aparte de solo el cubo. Voy a seleccionar el cubo. Bien. Y luego en el lado derecho debajo de los detalles, observe que hay escala, que es el eje X, eje Y, y el eje Z. Eje Y, más bien, el eje X es ancho el eje Y es profundidad, y luego el eje Z, como habrás adivinado, es la altura Voy a reducir su tamaño en el eje X hasta que esté casi dentro del colisionador Voy a reducir su tamaño en el eje y. Ahora, estoy usando Worst D cada vez que escribo da click en Worst D ahí para que pueda ver eso. Eso es generalmente sobre. No creo que tenga que hacer nada más aquí. Ahora voy a pegarle a compilar. Y luego de vuelta al nivel de desarrollador. Al menos ahora cuando miro a mi alrededor, puedo ver al personaje del jugador. Entonces este es nuestro personaje jugador en estos momentos. Lo podemos ver. Lo siguiente que vamos a hacer es asegurarnos de que una vez que golpeemos play, lugar de estar en la cámara de desarrollo flotante, estemos apegados al personaje del jugador Y hacer eso es muy básico. Todo lo que tienes que hacer es hacer clic en el personaje del jugador aquí. Y luego ve a tu panel de detalles. Y luego dentro del panel de detalles, queremos buscar bajo búsqueda. En realidad, déjame mostrarte exactamente por qué es sin buscar. Quieres desplazarte hacia abajo, y lo que quieres buscar es la opción de poseer o poseer Auto. Ahora, mirando hacia abajo, veamos por qué es auto poseer. Vas a desplazarte. Ahora, vamos a buscarlo. Autoposeer. Aquí notarás que estos son los términos de búsqueda autopossess, y nos está dando un par de opciones diferentes Dice autoposeer AI colocado en Wil. Digamos que discapacitados. Nunca debería ser poseído por la IA. Es un peón. En cambio, simplemente diremos jugador de autoposesión. Jugador cero, ya es suficiente. ¿Bien? Ahora, si entramos ahora y presionamos play. Observe, estoy haciendo clic, me estoy moviendo. Déjame intentar mostrar de nuevo lo que estoy presionando en el teclado. Estoy presionando peor día y no pasa nada porque hemos tomado el control del personaje jugador, pero aún no hemos implementado los controles para el personaje jugador. Pero este es un comienzo bastante sencillo. Al menos ahora tenemos un objeto personaje jugador. En el siguiente video, vamos a agregarle una cámara y luego le agregaremos algo de arte. 6. 005 Importación de arte a Unreal Engine para el personaje jugador: Todo bien. Ahora tenemos nuestro personaje básico de jugador que está justo frente a nosotros. Se está poseyendo en inmediato comienza el juego. Entonces, cuando hacemos clic en Reproducir, estamos conectados a eso. Estamos listos para tomar el control de ello. Ahora, sólo vamos a agregar en una cámara al personaje del jugador. Tenemos una bonita vista de dos D como del personaje. Entonces volveremos al plano y agregaremos otro componente Ahora bien, este componente simplemente obtendrá un brazo de resorte, ¿verdad? Déjame ver el brazo de resorte de resorte. Ahora, el componente del brazo de resorte, puedes notar que está justo ahí, ¿verdad? Ahora, al hacer clic en el componente del brazo de resorte, es básicamente como un brazo de hígado, algo así como un brazo de cámara cinematográfica Ahora agregaremos otro componente y simplemente buscaremos cámara. Ahí estamos. Entonces ahí estamos. Tenemos la cámara, tenemos el brazo de resorte. Entonces vamos a compilar eso. Y luego cuando volvamos al juego, fíjate una vez que selecciones el componente jugador, ahora en la parte inferior derecha, hay una pequeña cámara que te muestra. Lo que está viendo la cámara, ¿verdad? La cámara que has conectado al reproductor. Déjame moverme un poco hacia atrás. Se puede ver ahí es donde está la cámara. Y la forma en que está configurado actualmente, está configurado para que ese movimiento, la cámara esté mirando al personaje desde el lado izquierdo, lo la cámara esté mirando al que significa que para que el que significa que para que jugador se mueva hacia la izquierda y hacia la derecha, se estará moviendo hacia la izquierda y hacia la derecha en el eje Y. Ese es este eje verde, y la profundidad estaría siendo manejada por el eje X. Bien. Ahora, a partir de aquí, simplemente presionamos play. Vala, ahora estamos conectados directamente al personaje jugador, y esta es la cámara que el personaje jugador más bien, esta es la cámara que se adjunta al personaje jugador Eso es genial. Ahora, antes avanzar hacia un proceso de planificación más profundo, agreguemos también algo de arte al personaje del jugador. Todo bien. Ahora, para agregar arte al personaje del jugador, hay una carpeta que te ha sido proporcionada y comprimirla, entra, consigue todos los sprites y cópialos, y luego entra en la carpeta de hey, el viaje de un héroe, esa debería ser la carpeta basada en cómo la nombraste Entra en contenido, entra en personajes. Lo organizamos de esta manera. Entra en el jugador y el arte, y luego vas a pegar todo el arte aquí. Y una vez hecho eso, pasa a Unreal Engine. Ahora, dentro de Unreal Engine, notarás después de que pegamos en ese arte, un pequeño pop up está mostrando 124 cambios en los archivos de contenido fuente que se han detectado ¿Te gustaría importarlos? Y es muy sencillo, simplemente decir importación. Entonces Unreal Engine va a traer todos esos archivos que hemos importado Ahora que tenemos esos archivos aquí, simplemente entraremos en el arte noto tenemos todos estos diferentes sprites que estaremos usando para nuestro personaje jugador Estos son algunos sprites muy agradables, algunos sprites básicos que vamos a usar Ahora, para poder avanzar aquí, lo primero es que quieres controlar A, has seleccionado todos los sprites, y luego vas a hacer clic derecho y después de hacer clic derecho , vas a ir a Acciones de Sprite, y básicamente quieres aplicar los ajustes de textura de papel dos D. Bonito. Entonces ahora, notarás que tus sprites tienen la configuración correcta para los fondos y la transparencia Esto significa que los sprites ahora son utilizables. Ahora que has importado los sprites y aplicado algunas configuraciones de sprites, a continuación, vamos a aplicar un sprite básico a nuestro 7. 006 Cómo configurar una animación de inactividad sencilla y gestionar sprites y folioscopios: Todo bien. Ahora que tenemos nuestros sprites dentro del motor irreal, ahora es el momento de ponerlos realmente en uso. Entonces para hacer eso, volvamos al plano del héroe Y ahora a partir de aquí, vamos a agregar otro componente y simplemente vamos a buscar un componente sprite, y tenemos un componente sprite de papel y un componente sprite de papel Ahora simplemente haremos clic en el componente sprite de papel, y eso es todo lo que tenemos que hacer Ahora que hemos seleccionado el sprite, tenemos un par de opciones En el lado de los detalles del sprite, observe que tenemos la capacidad de seleccionar entre un montón de sprites que hemos creado Empecemos por crear un Sprite. Si presiono Control y Barra espaciadora, eso es básicamente universal para si quieres sacar. Control y Barra espaciadora, traerá a colación nuestra selección de archivos. Y luego vengo aquí abajo. Digamos que simplemente vine aquí al Air tak, y salí y fui a Sprite Actions y hice clic en Crear Ahora ese único PNG se convertirá en sprite. Si hago clic lejos, y vuelvo a los sprites de origen aquí. Puedo desplazarme hacia abajo y mostrará el ataque aéreo de aventura. Ahora, inicialmente, habíamos montado un cubo, pero ahora está tapando nuestros sprites Así que simplemente voy a presionar eliminar porque ya no necesitamos ese cubo. Entonces volveré a hacer clic en el sprite de papel. Ah, hay un problema con el posicionamiento. este momento, seleccione Estaba seleccionando el resorte cuando seleccioné el sprite Entonces déjame arrastrar eso y ponerlo de nuevo en el colisionador de cápsulas En realidad, déjame borrar eso muy rápido. No estoy arreglando esto en post. Dejaré ese error ahí dentro. Voy a volver, simplemente añadir un sprite de papel. Bien, entonces voy a agregar un sprite de papel. Ahí está. Ahora está en la posición correcta. Y entonces porque su posición debería estar en el centro, y luego cambio el sprite fuente al ataque aéreo, y ahí está Nuestro ataque aéreo ya está aquí. Y si entro al nivel de desarrollador, note que nuestro ataque aéreo está aquí, pero necesitamos cambiar la dirección de la cámara porque si pulsamos play ahora mismo, no vemos nada porque el sprite está siendo mirado desde un ángulo Entonces volveremos aquí. Seleccionaremos el brazo de resorte. Con el brazo de resorte seleccionado, saldremos aquí y vamos a cambiar la rotación. Ahora queremos que se rote 90 grados. No, eso está en el eje X. Lo queremos 90 grados en vamos a ver el eje Y. No, ese es tu. Lo queremos 90 grados. Perfecto. Queremos que sea negativo 90 grados en el eje Z. Eso es negativo 90. Se puede ver lo que he seleccionado ahí. Entonces esta vez ahora, cuando volvamos aquí y pulsamos play, fíjate que estás viendo el sprite ahí mismo. Eso es bueno. Ahora, hay un par de cosas que vamos a hacer. Número uno, vamos a ajustar el escalado para que el sprite quede en la parte inferior, y sea el tamaño apropiado Entonces estoy seleccionando el sprite de papel. Estoy ajustando su posición para sea inferior a donde empezó inicialmente. Y entonces voy a aumentar su escala. Voy a dar click en este registro para que tenga una escala uniforme bloqueada, y luego voy a aumentar su escala. Entonces lo levantaré un poco. Perfecto, y haz clic en eso. Y ahora cuando hacemos clic en Reproducir, vemos ese ataque con espada como nuestro sprite Esto no es lo que realmente vamos a usar, sino que es bueno saber cómo funcionan juntos los sistemas. Ahora, con todo eso, volveremos con el héroe y vamos a volver a sacar a colación todos nuestros sprites Ahora, vamos a escribir lo que queremos buscar es el sprite inactivo Entonces haremos click de Idle cero a Idle tres. Bien, de IDO cero a IDO tres, y luego volveremos a hacer clic y esta vez acciones de Sprite, vamos a crear Sprite Entonces ahora tenemos estos sprites. Estos son los sprites reales. Observe que los nombres tendrán sprite junto a ellos. Estas no son imágenes, son sprites. Entonces simplemente voy a hacer clic del cero al tres, y luego voy a hacer clic derecho de nuevo. Pero esta vez, en lugar de crear un sprite, vamos a crear un flipbook Un flipbook es un conjunto de sprites que están agrupados. Ahora fíjate, si miras el flipbook Déjame hacer click un poco Déjenme volver a abrir eso. Deberías poder verlo claramente de tu lado. Cuando estoy rondando sobre él, está mostrando la animación de sprites Eso es fantástico. Ahora en lugar de tener un sprite, queremos un flipbook de animación inactivo Ahora para implementar eso en un motor real, simplemente volveremos al sprite de origen Bien. Y te darás cuenta ahora mismo, no nos está mostrando sprites. Más bien, no nos está mostrando el flipbook. Sólo nos está mostrando los sprites, y eso es lo que vamos a cambiar Así que ahora volveremos. Eliminaremos los sprites de papel porque hemos entendido cómo poner sprites en el juego Bien, simplemente borraremos eso. Y esta vez, lo que queremos es un flipbook de papel y luego agregarlo Entonces este es nuestro flipbook. Y ahora voy a seleccionar el flipbook y luego va a buscar flipbook fuente Lo abriré y haré clic en aventurero Idol Flip Book Ahora veamos cómo se ve en juego. Ahora cuando presionas Play, puedes ver que tenemos a nuestro pequeño aventurero ahí moviéndose hacia arriba y hacia abajo basado en el flipbook Vamos a pasar por el mismo proceso básico. Vamos a entrar, queremos mover el flipbook escribir. A ver, alrededor de 70 unidades negativas parece ser la cantidad correcta. Y luego vamos a encerrar la báscula y escalarla hasta aproximadamente creo que cuatro veces parece estar bien, y luego escalarla de nuevo. Quieres que sea solo tocando el fondo de nuestro porque esto es lo realmente importante. Esta colisión aquí mismo, esa cápsula es lo más importante. Déjame aumentar eso a cinco Perfecto. Entonces a las cinco y a unas 20 unidades en el Xaxis, parece estar funcionando perfectamente Entonces ahora cuando presionamos Play Notice, nuestro personaje está ahí. Pero la animación id es razonablemente rápida, ¿verdad? Entonces simplemente buscaré id aventurero, el flipbook. Y entonces lo que voy a hacer es después una vez que hagas doble clic en el flipbook desde aquí, ahora el id aventurero está aquí y en el lado derecho y los detalles, podemos bajar la podemos bajar Simplemente voy a hacer clic en eso y bajaré la velocidad de fotogramas para dejarme bajarla a nueve. Bien, esa es una animación de idea mucho mejor. Creo que eso es mucho más realista. Entonces con eso, presionaré Control S para guardar. Ahora, creo que esta es una buena animación de flipbook. Ahora tenemos nuestro mundo y tenemos nuestro carácter básico. A continuación, vamos a entrar en cómo en realidad ahora empezar a agregar algún código porque ahora tenemos un carácter simple. Está listo. Hemos aprendido a usar sprites, cómo poner sprites en el juego, adjuntarlos a un personaje de jugador Pero si muestro lo que hay en mi teclado, ahora mismo, todavía no somos capaces de movernos e interactuar. Entonces vamos a aprender a hacer todo eso después de una pequeña sesión sobre cómo planificar y ejecutar el diseño de juegos. Vamos a meternos en eso a continuación. 8. 007 Cómo planificar tu juego: Todo bien. Entonces ahora necesitamos pasar por un concepto básico que te va a ser muy útil para que sigas adelante. Esto funciona en todas las áreas de la vida, pero en el desarrollo de juegos, es de utilidad única, ¿de acuerdo? Entonces, permítanme comenzar con solo decir que la planeación está dominada Bien. Planear está bien. Es así de simple. Y con la planificación, lo único que quiero decir es que vas a aprender a escribir cosas y seguirlas. Eso significa que cuando decidas cómo funciona el juego o los personajes o cualquier sistema, solo escríbalo y trata de darle vida a eso. Déjame ahora compartir contigo un poco más profundo cómo voy a mostrarte cómo hacer eso para asegurarte de que tengas éxito porque la mayoría de lo que hace que los proyectos de juegos indie fallen, los proyectos juegos fracasen, fracaso general en general es la falta de una planificación adecuada y clara y de seguimiento. ¿Bien? Ahora, déjame explicarte eso con un poco más de detalle. Todo bien. Entonces la forma de pensarlo para desarrollo de juegos es un sistema sencillo al que me gusta llamar D a A. ¿Bien? Así es como lo llamo yo. Yo lo llamo D, a A. Ese es esencialmente el sistema que vamos a usar para este desarrollo de juegos, y debería terminar teniendo bastante sentido para ti. Ahora, Diseño. El diseño va a significar, digamos que decidimos que nuestro personaje jugador debería poder atacar con una espada y saltar por ahí. Eso es fundamentalmente, y más adelante le daremos un arco y una flecha para un compromiso de largo alcance. Eso es diseño básico, diseño de niveles. Simplemente dibujas cosas. Una vez que hayas terminado con esa cosa básica, vamos a codificar. Código significa para este ejemplo, planos, aprender a usar planos Entonces sabemos dónde queremos que salte. Qué planos necesitamos organizar para que él pueda saltar, ¿de acuerdo? Entonces sabemos, Oye, necesito organizar ese nodo de blueprint, este nodo de blueprint, ese, y luego el salto va a estar disponible, ¿ Una vez que hayamos terminado con el bit de codificación, vamos al arte. El arte se trata de los sprites, la animación de Sprite. Más adelante, si alguna vez haces un proyecto de diseño de tres D, va a incluir el modelado y la animación, pero se condensa en arte. Entonces por último pero definitivamente no menos importante es el audio. El audio se trata de obtener el sonido adecuado para el juego. Ahora con este sencillo ejemplo que quiero que tengas en mente, empecemos a trabajar en el personaje del jugador, diseñándolo un poco para que entendamos lo que queremos que haga, y luego pasaremos al código. Y después del código, vamos a pasar al arte y luego al audio. Bien. Hagámoslo de inmediato. Ahora, vamos a mantenerlo realmente, muy simple. ¿Bien? Entonces déjame copiar esto de nuevo. Entonces estamos diseñando un personaje de jugador, ¿verdad? Entonces, ¿qué queremos que haga, verdad? Entonces, para empezar, queremos que se mueva de izquierda a derecha. Bien. A continuación, queremos que tenga un ataque con una espada. Después de eso, también necesitábamos tener una barra de salud básica, ¿verdad? Necesita ser capaz de recibir daños. Vamos a llamarlo barra de salud y daños. Y luego en realidad justo después del ataque con la espada y la barra de salud, también queríamos tener un arco y una flecha. Para disparar a Range. Ahora, ese es el final de la fase de planeación. Es un plan muy sencillo. Es un plan básico, y vamos a pasar por cada 11. Oh, espera, muévete a izquierda y derecha, y salta. Bien, perfecto. También puede saltar. Entonces, con eso en mente, pasemos de inmediato al siguiente video donde vamos a aprender un poco sobre el movimiento, configuración de controles y empecemos las cosas desde ahí. 9. 008 Explicación detallada de cómo agregar entradas del controlador: Todo bien. Empecemos rápidamente con lo primero es movernos a la izquierda y a la derecha y luego saltar. Empecemos. Volvamos a Unreal Engine. Bien. Ahora que estamos de vuelta en Unreal Engine con nuestro personaje jugador, queremos tener la capacidad de movernos a izquierda y derecha, y vamos a comenzar con los controles Ahora, solo para mostrarte visualmente, tengo mi teclado, así vas a poder saber cuando presione AWS y D. Nos centraremos mayormente en A y D para comenzar. Y luego además de eso, cuando quieras tener este trabajo en Controller, también te mostraré cómo hacerlo para que el movimiento se base en el posicionamiento de tu controlador y tus botones. Ahora, para empezar, lo que queremos hacer es que vamos a presionar Control y Barra espaciadora una vez más, y fuera de los personajes, volvamos a la carpeta de contenido general, y justo por aquí, vamos a crear una nueva carpeta y llamarla Controles. La razón por la que lo estamos llamando controles es porque va a tener todo lo que estamos usando para determinar los botones que el jugador puede presionar. ¿Bien? Así que vamos a entrar en eso. Entonces, dentro de los controles, comencemos con un control simple, que se está moviendo hacia la izquierda y hacia la derecha. Entonces vas a hacer click izquierdo. Y después de hacer click izquierdo, quieres ir a entradas. Que está aquí, y lo que quieres es que quieres una acción de entrada. Empezaremos con solo uno. Y vamos a llamarlo mover a la derecha. Entonces esta acción de entrada o este botón va a hacer que el jugador se mueva hacia la dirección correcta. Y entonces vamos a volver a entrar en insumos. Pero esta vez, lo que buscamos es un contexto de mapeo de entrada. Haremos clic en eso. Y simplemente lo vamos a llamar mapa jugador. Entonces tenemos Move wight, que es una acción de entrada única, y tenemos el mapa del jugador. El mapa del jugador es básicamente, como puedes ver en los íconos, va a ser la colección de acciones de entrada que puedas presionar. Ahora, para asegurarnos de que move wright esté funcionando correctamente, primero vamos y hacemos doble clic en Mover a la derecha, y va a abrir esta ventana. Entonces puedes comenzar con una descripción de acción simple, y simplemente podemos describirla como mueve el jugador. Derecha. Puedes quedártelo así. Y entonces, ¿debería activarse cuando se pausa? No, no debe activarse cuando se pausa. Y luego reservar todas las asignaciones. Esencialmente puedes hacerlo para que esto no pueda ser anulado, o ahora lo dejaremos Y luego tipo de valor, esto es importante. Ahora, podemos cambiar el tipo de valor. Ahora mismo nos fijamos en un booleano digital. Eso se puede ver ahí mismo. Los booleanos son esencialmente unos y ceros. Entonces, si lo configuramos en un booleano, está encendido o apagado También podemos establecerlo como Eje uno D o Aces dos D. Pero esencialmente, establecerlo a Aces uno D va a asegurarse de que es un valor 0-1 Por simplicidad y por demostración, comenzaremos teniendo que solo sea una capa de abucheo digital. Ahora que esto está hecho, simplemente cerraremos esto. Y luego otra vez la barra espaciadora de Control, abriremos el mapa del jugador. Ahora fíjese en el lado izquierdo, hay algunas asignaciones Simplemente agregaremos uno haciendo clic en el más, y cuando nos desplazemos hacia abajo, notaremos que nos está mostrando el movimiento a la derecha. Da click en ese movimiento a la derecha, y luego desde aquí, simplemente podemos hacer clic en esa pequeña flecha para desplazarnos hacia abajo. Ahora nos está demostrando que no hay acciones apegadas a ello. Sin embargo, lo que podemos hacer es simplemente hacer clic en eso y luego deberíamos ser D. Así que he hecho clic en D en el teclado ¿Bien? Eso es lo que puedes hacer porque esencialmente lo que Unreal Engine es capaz de hacer es escuchar tu teclado Entonces, si vuelvo a hacer clic en él y hago clic en la barra espaciadora, cambiará la entrada a la barra espaciadora Si vuelvo a hacer clic en él y presiono W W, ese es esencialmente el concepto. Podemos dejarlo en D por ahora. Y luego simplemente haremos clic en la clase, lo que agregará otro enlace. Esta vez quiero hacer clic en el teclado. Simplemente voy a abrir mi mando, y voy a presionar en seleccionar este valor, y estoy presionando el botón derecho del gamepad en mi Yo he presionado eso y lo ha guardado justo por aquí, lo cual va a ser bueno. Eso es todo lo que tenemos que hacer desde aquí, ¿de acuerdo? Entonces ahora lo hemos configurado para que haya una acción de entrada de movimiento a la derecha. Y en los detalles del mapa del jugador, si presionas D, se ejecutará mover a la derecha. Si presionas el botón derecho en tu teclado, más bien, lo siento, en tu controlador, moverá al personaje del jugador hacia la derecha o más bien ejecutará la acción mover a la derecha. Con todo eso hecho, ahora podemos entrar al jugador Blueprint y agregar esos controles en Así que ve al héroe Blueprint. Y ahora hemos empezado a hacer ajustes al plano real del jugador Ahora, lo primero que vamos a hacer es que queremos asegurarnos de una barra espaciadora de control. Queremos asegurarnos de que el mapa del jugador sea el contexto de entrada que se está utilizando en Unreal Engine Ahora vamos a hacer eso en un nodo conocido como el nodo start play. Ese es este nodo. Comenzar juego significa que este es el código que se dispara cuando el motor irreal apenas arranca, o cuando este objeto se genera en el mundo Entonces hagámoslo. Ahora, lo primero que vamos a hacer es desde un simple clic derecho, queremos obtener controlador. Eso es lo que queremos. Aviso pata, consigue controlador, eso es bueno. Entonces a partir del valor de retorno, lo que queremos es que queramos lanzar controlador de dos jugadores. Esencialmente lo que eso hace es que le estamos diciendo a Unreal Engine que por favor acceda a todos los controles de este reproductor, y luego el casting es conectarlo para que cada función corra a través de ese objeto fundido Esa es una forma generalizada de ver las cosas. Después conectaremos la jugada de inicio al elenco al controlador del jugador. Una vez hecho eso, ahora tenemos nuestro controlador cargado, estamos fundidos a él para que podamos acceder a funciones desde él Ahora, como el controlador del reproductor, quieres arrastrar eso y escribir mejorado y ahí estamos, ir a la segunda opción, es decir conseguir mejorado subsistema jugador local. Esto va a ser lo que nos permita seleccionar las diferentes entradas que vamos a utilizar. Y una vez hecho eso, lo arrastraremos por última vez, y queremos agregar contexto de mapeo. Simplemente puede escribir agregar mapa después de hacer clic derecho y eso agregará el contexto de mapeo. Entonces conectaremos ese nodo por aquí. Y luego bajamos y ahí estamos mapa de jugadores. Recuerda ese contexto de entrada del mapa del jugador, ese es el que seleccionamos. Ahora que tenemos eso seleccionado, echemos rápidamente un vistazo a cómo se está ejecutando este código. El evento comienza a jugar significa que va a comenzar el juego haciendo esto. Básicamente, se está saliendo del plano del personaje del jugador Pero como el personaje jugador está en el mundo cuando comience el juego, comenzará haciendo eso. Se explica por sí mismo en el evento comenzar a jugar. Entonces es conseguir el controlador, bien, y luego lanzar eso como controlador de jugador. Entonces tenemos acceso a esas funciones. Obtenemos el subsistema jugador local para entradas, bien. Y luego decimos: Oye, usa el mapa del jugador como contexto de mapeo. Ahora, con todo esto hecho y configurado, ahora podemos usar la entrada que configuramos. Ahora déjame arrastrar todos estos otros nodos aquí abajo para que podamos tener una visión clara de esto. Lo siguiente que vamos a hacer solo por simplicidad y para asegurarnos de que esto funcione, vamos a hacer clic derecho y vamos a buscar esa entrada. Ahora bien, ese insumo lo llamamos mover a la derecha. Entonces tecleando, muévase y observe que hay ese evento de acción ya configurado por aquí. Como es un booleano, es como, Oye, cuando se activa en la acción de entrada mejorada, muévete Simplemente arrastremos esto y queremos comenzar con solo imprimir. Imprime esa cadena. Y el texto, vamos a decir, Oye, jugador se mueve a la derecha. Y eso es todo. Voila bien. Ahora, con solo eso, vamos a poder probar y ver si esto es leer nuestras entradas. Entonces lo que quieres hacer en este punto es hacer clic en Compilar y luego entrar en el nivel de desarrollador. Ahora, cuando presionas play, en el lado izquierdo, cada vez que presionas, comencemos con el teclado. Entonces voy a presionar D en el teclado. Eso es bueno. Entonces sabemos que esto en realidad está funcionando correctamente. Déjame acercar para que el texto sea claro aviso. En el momento en que presiono D en el teclado y estoy en Aldon, necesito presionar play Presionemos play. Aquí estamos. Entonces ahora que el juego se está ejecutando, cuando presiono D en el teclado, está imprimiendo esas acciones imprimiendo ese texto en pantalla. Es decir, oye, el juego se mueve a la derecha. Eso es bueno. Pero ahora, vamos a probar esto con el controlador. He agregado en el controlador. He pulsado play o justo por aquí, he pulsado play. Vuelve aquí y veamos si sale el texto. Entonces cuando golpeo justo en el controlador, sí, está registrando que el jugador se está moviendo. Cuando golpeo D en el teclado, se está registrando. Entonces ese es el fundamental básico de dejar que tus entradas sean leídas más bien dentro del motor irreal Ahora que eso está hecho, agreguemos realmente al movimiento. Pero justo antes de agregar en el movimiento, quería mostrarles esto también. Una de las cosas buenas de los planos. Entonces ahora, fíjate, voy a golpear play. Ahora estamos en este mundo. Estoy haciendo clic en el héroe, y tú eres capaz de ver lo que están haciendo los planos Estoy arrastrando eso solo para que vaya a estar un poco más a la derecha de la pantalla Esta es una forma útil de depurar y ver cómo funcionan realmente los blueprints Ahora en el fondo, he hecho clic en el juego Ahora, actualmente estoy en el juego. Déjame salir del juego. Ahora como debug Object, voy a seleccionar Hero. Ahora con ese seleccionado, voy a presionar Reproducir. Ahora estamos jugando en juego. Observe el momento en que presiono el botón derecho de mi teclado, muestra que se está presionando el movimiento hacia la derecha. Déjame mostrarle mi controlador y algunos de mis peores días para que quede mucho más claro. Vuelvo a hacer clic en jugar. Así que fíjate cuando presiono mi controlador, eres capaz de ver visualmente los planos mostrando lo que está funcionando Para que veas que eso ha sido despedido y está funcionando. Cuando presiono D, se apaga y funciona. Cuando presiono cualquier otro botón, no pasa nada. Cuando presiono cualquier otra cosa en el teclado, no pasa nada. Para que puedas configurar fácilmente tu plano en tal vez una segunda pantalla Al otro lado de tu monitor, cuando quieres hacer algunas comprobaciones dobles básicas, es bueno poder ver tu código visualizado Ahora agreguemos el movimiento a nuestro personaje jugador. Para agregar la entrada de movimiento, esencialmente, vas a usar el nodo de entrada de movimiento ARD. Aquí mismo, después de la cadena de impresión, simplemente arrástrela hacia afuera, y luego usará movimiento ARD y de ahí se desplazará hacia abajo, y notará que hay que agregar entrada de movimiento. Haga clic rápidamente agregue eso. Entonces, en cuanto a la dirección salvaje, necesitamos tomar una decisión sobre en qué dirección nos estamos moviendo. Ahora bien, sabemos a ciencia cierta que para nuestro personaje jugador en este momento, si miramos estas direcciones, la Y está controlando la profundidad, la X está controlando el movimiento izquierdo y derecho, y Z es el movimiento vertical. Ya que sabemos que para movernos a la derecha, eso significa que queremos movernos positivamente en la dirección X. Simplemente decidiremos que vamos a tomar la decisión de que para dirección salvaje, simplemente diremos uno en la dirección X. Ahora con solo eso, pulsa compilar y luego volver al nivel de desarrollador y jugar. Y ahora cada vez que actualmente estoy golpeando D en el teclado y se mueve en la dirección correcta, eso es bueno. Actualmente lo estoy presionando en mi controlador de juego, y está haciendo lo mismo. Ahora, déjame visualizarlo por ti. Deberías estar viendo exactamente lo mismo en tu pantalla si has estado siguiendo correctamente. En caso de cualquier cosa, siempre retroceda y refiérase. Entonces en mi controlador, presiono a la derecha. El personaje se mueve a la derecha. En mi teclado, presiono D. El personaje mueve D y Whoop D fuera del mundo Bien, he presionado escape para salir de ahí. Pero sí, está bien. Por lo que hemos hecho un insumo básico de movimiento. En el siguiente video, limpiémoslo para moverlo a izquierda y derecha y agreguemos algunas claves más al movimiento para mejorarlo. 10. 009 Movimiento izquierdo y derecho con teclado y controlador: Todo bien. Entonces ahora que tenemos al personaje jugador capaz de moverse hacia la derecha y tienes un entendimiento de cómo funcionan las entradas, vamos a agregar movimiento izquierdaderecha al personaje y déjame llevarte a través de cómo hacerlo correctamente. Ahora, inicialmente, comenzamos agregando una entrada de movimiento a la derecha y luego simplemente agregándola al mapa del jugador. Ahora vamos a hacer un cambio antes de seguir adelante. Cambiemos rápidamente el nombre de esto de movernos a la derecha a simplemente llamémoslo movimiento. Porque queremos tener una acción de entrada que mueva al personaje del jugador izquierda y también a la derecha. Así que simplemente lo he llamado movimiento. Bien. Ese va a ser nuestro punto de partida. Una vez que hayas terminado de cambiar ese nombre, ahora lo vamos a abrir, y eso es básicamente simplemente hacer doble clic en él. Y fíjate ahora mismo que simplemente está configurado como un Blayer digital, ¿verdad? Ahora, cambiemos eso a un vector D del eje tres. Eso es esencialmente lo que queremos que sea eje tres D nos permite asignarle un valor en los ejes X, Y y Z para determinar su movimiento. Con eso hecho, lo siguiente que vamos a hacer es entrar en el mapa del jugador. Ahora, actualmente, el mapa del jugador se muestra como movimiento. D, déjame abrir y asegurarme de que mis llaves estén visibles. Actualmente está configurado en D pad derecha, que es eso para moverlo en la dirección correcta, y también D en el teclado. Pero lo que queremos es que queremos poder usar los sticks analógicos para empezar. Queremos poder usar izquierda y derecha en los botones, y luego queremos poder usar A y D también. Ahora bien, para que eso funcione con el vector actual tres D que lo hemos configurado como, vamos a necesitar hacer un cambio menor. Entonces empezaremos dejando a D aquí. A continuación, en realidad vamos a agregar una serie de otros botones. Déjame arrastrar esto. Puedo arrastrar esto fácilmente para que no me dejen tapar ninguno de estos botones. Simplemente voy a seleccionar eso excelente y arrastrarlo hacia arriba. He hecho clic en eso Voy a llamarlo A porque vamos a necesitar A y vamos necesitar D. Luego está el pad direccional a la derecha, y luego voy a presionar a la izquierda en realidad. Déjame presionar primero a la izquierda y luego escribir en el pad D, y luego va a haber otra entrada, que va a ser el eje X del thumbstick El eje X del thumbstick básicamente se produce porque hice clic cuando hice clic en NRLenginet Escuchar, presioné mi eje X un poco hacia la izquierda y hacia Si hago clic en eso y presiono hacia arriba, va a escuchar el eje Y. Pero no necesitamos eso. Necesitamos el eje X, así que ahora lo he configurado correctamente. Ahora, con él configurado en su forma exacta actual, déjame mostrarte rápidamente lo que obtendrías del movimiento de tu personaje. Ahora, volviendo al plano del personaje, notarás que ha habido un cambio Ahora, nuestro plano está mostrando el valor de la acción aquí. Eliminemos rápidamente esa cadena de impresión. No es necesario y conecta el gatillo directamente a la entrada de movimiento. Bien. Ahora con eso conectado directamente, también conectaremos el valor de acción. Observe el valor de la acción. Está mostrando X cero, Y cero y z cero. Podemos conectarlo directamente a la dirección salvaje justo por ahí. Ahora, con solo este único cambio básico, guardaremos y compilaremos rápidamente. Y luego déjame arrastrar esto para que podamos verlo visiblemente Abriéndolo, estoy golpeando play para simular. Bien. Entonces ahora, fíjate que cuando estoy usando los sticks analógicos, ¿de acuerdo? Actualmente estoy usando los sticks analógicos del controlador. Déjame configurarlo otra vez. El stick analógico controlador ahora es capaz de mover al personaje del jugador en un valor negativo en X y un valor positivo en X, y se puede ver que el plano está reaccionando Sin embargo, si presiono a la izquierda en el pad D, se mueve hacia adelante. Si presiono a la derecha sobre el pad D, se mueve hacia la derecha. Si presiono D en el pad D, más bien, si presiono D en el teclado, se mueve a la derecha. Si presiono A en el teclado, todavía se mueve hacia la derecha. Ahora, eso es algo que vamos a corregir ahora mismo. Así que déjame rápidamente hacer doble clic sobre el héroe para que el juego me arrastre de nuevo hasta aquí, Control y barra espaciadora con el fin de abrir esto, y estoy haciendo doble clic en el mapa del jugador otra vez Ahora estamos haciendo un cambio bastante simple. Bajo A, A significa bajo peor D que esencialmente debería moverte hacia la izquierda. Vamos a encontrar modificadores, y luego bajo modificadores, vas a agregar Se puede escribir. Entonces escalar y abrirlo y luego queremos configurarlo a negativo uno Y luego ya terminamos con la configuración de A y luego gamepad izquierda va a hacer lo mismo Ven aquí, agrega un modificador escalar para cambiar la escala que usa para que negativo en el eje X se mueva hacia la izquierda Configura eso como uno negativo. Y con eso, terminamos. Rápidamente presionaremos Control S para servir. Y ahora nuestro movimiento debería estar funcionando correctamente. Voy a dejarme asegurarme de que se muestre mi teclado y mi mando presione play left, más bien a la derecha en el controlador, espero que puedan escuchar ese clic. Izquierda es hacer lo correcto, y luego en el teclado, A está haciendo lo correcto. D está haciendo lo correcto, eso es bueno. Entonces supongo que mi palo tiene un poco de deriva, pero está bien. Eso es sólo un poco de deriva de palo. Verás eso a la izquierda, a la derecha, y ya terminamos. Ahora que terminamos con movimiento izquierdista y derecha fundamentalmente, volvamos rápidamente a cómo estamos planeando las cosas. Así que muy rápido, recuerden, diseñe el código art. Ahora ya terminamos con el diseño básico. Sabemos lo que queremos. algún movimiento básico de izquierda-derecha. Es simple. Terminamos con el código básico. Ahora mismo, funciona y funciona correctamente, el movimiento. Ahora agreguemos algo de arte en el siguiente video para que la animación de ejecución funcione correctamente. Hagámoslo avanzando. Y una vez que hayamos terminado con eso, agregaremos en el audio. Vamos. 11. 010 Añadir restricción, corregir la deriva de la barra y configurar la posición del reproductor: Bien, así que hagamos algunas correcciones menores antes de seguir adelante. Ahora que estamos empezando a usar el movimiento, selecciona el personaje del jugador. Y después de seleccionar el personaje jugador justo debajo de los detalles, vamos a transformarlo y asegurarnos de que el eje Z deje eso, pero asegúrate de que está en cero, cero en la X e Y, para que sepamos que es ubicación salvaje cuando el juego comienza cero, cero, es básicamente el centro del mundo entero. A continuación, vamos a arreglar rápidamente la deriva del stick del controlador. Sé actualmente cuando juegas por primera vez, cuando te mueves, siempre hay un poco de deriva de palo. Ahora arreglar la deriva del palo es sencillo simplemente ir al mapa del jugador salir aquí, ir a los modificadores y en los modificadores, agregar el modificador y agregar el modificador conocido como zona muerta Después de que tengas la zona muerta, ya lo hice aquí, deja los valores como están. Con eso, no va a haber más deriva de pila, como estamos viendo en el video anterior. Ahora con eso hecho, va a haber una última cosa que necesitamos endurecer antes de seguir adelante. Vas a ir al plano del jugador. Vas a seleccionar el componente de la cápsula. Y lo primero que vamos a buscar es que queremos agregar una restricción y lo que queremos hacer es quererla al plano Z y X. Lo que queremos hacer es querer su posición sobre la Y. Y lo que eso significa es que el personaje jugador ya no puede moverse a lo largo del eje Y. Eso va a ser muy importante. Permítanme hacer clic en el propio héroe y bloquear su posición a lo largo del eje Y. Eso quiere decir que van a ser correctamente dos D. Ya no se puede mover hacia arriba o hacia abajo a lo largo del eje y, solo a lo largo de la X, vamos a asegurarnos de que no hemos estropeado nada Eso es perfecto y esto es bueno. Ahora en el siguiente video, agreguemos rápidamente el movimiento de izquierda a derecha para el personaje del jugador en cuanto a las animaciones. Vamos 12. 011 Cómo configurar Paperzd para gestionar animaciones: Bien. A continuación, vamos a agregar en una animación en ejecución. Ahora, para agregar en esa animación en ejecución, lo primero que vamos a hacer es volver a la carpeta principal. Estamos volviendo a los personajes, el jugador, y luego debajo del jugador volverá a la carpeta de arte. Ahora, bajo el arte, vamos a hacer una búsqueda rápida. Una de las cosas buenas de los sprites bien organizados es que podemos escribir eso. Ahora note que tenemos nuestra animación de ejecución, más bien nuestros sprites de ejecución, yendo 0-5, simplemente seleccionarlos todos Y luego acciones de Sprite y crear Sprite. Hecho. Ahora estoy escribiendo Run in de nuevo, manteniéndolo organizado, y voy a seleccionar 0-5 y luego hacer clic derecho y crear flipbook Entonces ahora tenemos este flipbook de Adventure Run. Hagamos doble clic en él y veamos. Entonces ahora tiene las cinco animaciones moviéndose simultáneamente, eso es bueno Ahora voy a tomar rápidamente la decisión de bajar sus cuadros por segundo 15-5 Bien, ahora está buscando. Aún no está ahí. Alrededor de siete. Alrededor de diez. Bien, creo que diez fotogramas por segundo, esa es una animación de ejecución razonable. Ahora que tenemos esta animación básica de carrera, ¿cómo la vamos a aplicar a nuestro personaje jugador? Porque en estos momentos el personaje jugador sigue siendo. Y lo que queremos es cuando el personaje jugador se mueve, queremos cambiar a ese sprite ¿Bien? Ahora, para hacer eso, vamos a seguir adelante, y aquí es donde usar el papel Z D para crear esos caminos de animación simplifica nuestra vida Entonces vamos a volver al jugador ahora mismo, déjame cerrar, quitar ese texto. Ahora mismo, nuestro lado principal del jugador. Aquí tenemos arte, y esta es una buena carpeta para tener. Vamos a hacer otra carpeta, y vamos a llamar a esta animación. Ahora que se establece la carpeta de animación, podemos entrar en la carpeta de animación y vamos a empezar a crear algunos elementos Z D en papel. Así que ve directamente al papel Z D, y lo primero que vas a agregar es algo conocido como salsa de animación. Deberías verlo ahí. Ahora lo que vamos a hacer es lo vamos a llamar salsa de animación de héroe. Entonces voy a llamarlo héroe. Papel Z de salsa de animación. Sólo vamos a dejarlo así. Ahora, cuando rápidamente hacemos doble clic en esa salsa de animación, note que tenemos este gran espacio, pero aquí no tenemos nuevas animaciones. Entonces lo que vamos a hacer es que vamos a llegar a la esquina superior izquierda y vamos a añadir una nueva secuencia de animación. Bien. Y simplemente vamos a llamar a esto. Voy a renombrarlo. Voy a llamar a esto ocioso. Ahora que tenemos nuestro ídolo listo, he hecho clic en eso del lado derecho, está mostrando secuencia de animación Voy a desplazarme hacia abajo y notar que inmediatamente tienes disponible aventurero Id y el aventurero Run Haga clic en Idle, y mostrará la animación inactiva. Lo siguiente que haremos es agregar una nueva secuencia de animación y llamarla Ejecutar, pasar por el mismo proceso, seleccionar la animación Ejecutar. Entonces ahora tenemos más bien, tenemos animación ociosa y tenemos la animación run. Asegúrate de que no esté configurado como una secuencia multidireccional. Nos encargaremos de la direccionalidad de esto más adelante. Haga doble clic en Ejecutar. Esa es la carrera. Se puede ver dónde está su posición. Parece que básicamente está un poco adelante desde el centro. Tenemos ocioso. El ralentí está 100% muerto en el centro. Corre e inactiva. Todo parece estar revisando. Están alineados correctamente. Esto es bueno. Entonces ahora tenemos Barra espaciadora de Control. Tenemos nuestra salsa de animación de papel Z D. Observe que ha hecho otra carpeta con animación o secuencias. No necesitamos tocar eso. Y nuestra animación, básicamente, nuestra salsa de animación de papel héroe Z D tiene una animación ociosa, y tiene una animación de carrera. Eso es perfecto. Aquí es donde empieza todo. Ahora que tenemos la fuente de animación, es básicamente una colección de todas las animaciones que Paper Z D va a estar usando. Ahora que tenemos eso, a continuación, vamos a crear un blueprint de animación, Barra espaciadora de Control una vez más Ahora, esta vez, ve al papel Z D, y lo que quieres es el papel Z D, nombre BP. Así que fíjate una vez que hagas clic en eso , se abre una nueva ventana , que te pregunta, entonces, Oye, cuál va a ser la salsa de animación para padres y simplemente selecciona la salsa hero paper Z di animation. Entonces este es el contenedor del que se sacarán todas las animaciones. Entonces ahora que está aquí, simplemente voy a cambiarle el nombre. Voy a renombrarlo héroe papel Zi Anime BP. Ahora, voy a hacer doble clic rápidamente en ese plano de animación Y aquí ahora estamos en una gráfica de animación que va a ser lo que está a cargo y en control de todas nuestras animaciones. Hay para estrella como gráfico de eventos, y luego hay un gráfico de animación por aquí. Y vamos a pasar por cómo usar ambos de manera efectiva. Ahora bien, esto de aquí mismo, el gráfico de animación es donde vamos a configurar todas nuestras diferentes animaciones. Pero antes de hacer eso, hagamos alguna configuración básica en el gráfico de eventos. Entonces, en el gráfico de eventos, hay un nodo llamado event on int o on initiate, y este es el primer nodo con el que necesitamos interactuar. Entonces tenemos que decirle qué hacer al iniciar. Entonces, lo que queremos que realmente haga es que inicie de inmediato, va a configurar el reproductor como una variable y asegurarse de que el gráfico de animación esté conectado a él Ahora, para que eso funcione, lo primero es, vamos a necesitar conseguir al actor que posee este objeto, ¿de acuerdo? Entonces vamos a conseguir al actor dueño, eso es lo primero que vamos a hacer Entonces, sea cual sea el objeto al que le unamos esto, que va a ser nuestro héroe y lo vamos a hacer a continuación. Este va a ser el actor dueño. Lo siguiente que vamos a hacer es que vamos a lanzar al jugador. Bien, en realidad, no, no queremos lanzar al jugador. Queremos el plano. Nosotros llamamos héroe al plano, así que queremos lanzar al plano héroe que va a ser nuestro personaje héroe Una vez que hayamos terminado de lanzar al personaje héroe, simplemente vamos a promover esto como una variable, llamémoslo llamémoslo el héroe. Simplemente promoveremos a variable. Aquí estamos, y es decir set y se llama héroe. Ahora, con esta configuración, notarás en el lado izquierdo, ahora hay una variable llamada héroe. Eso es bueno y eso es todo lo que necesitamos de aquí. Ahora, pasaremos al gráfico de animación. Ahora bien, este gráfico de animación funciona de una manera bastante sencilla. Esta de aquí es la animación de salida, y necesitamos conectar un nodo al resultado. Ahora mismo, puede que no tenga más sentido, pero no se preocupe. A medida que te encargues de ello, a medida que lo uses, va a tener total sentido. Y en caso de que algo sea confuso, solo envíame un mensaje y me pondré en contacto contigo. Pero voy a explicar todo paso a paso para que tenga sentido. Continuemos en la siguiente lección. Ahora, antes de seguir adelante, solo para encubrir, asegúrate de que tu gráfico de eventos, obtenemos al actor propietario, elenco a héroe y lo configuramos promocionarlo como héroe como variable Asegúrate de tener tu fuente de animación con la animación inactiva y la animación de ejecución, la animación inactiva y la animación de ejecución. Con esos dos configurados y organizados, eso es todo lo que vas a necesitar para seguir adelante. 13. 012 Juega la animación ociosa con Paperzd: Todo bien. Ahora que tenemos nuestra configuración básica del plano de animación, vamos a volver al plano del héroe Ahora tenemos nuestra configuración de flipbook, compilamos rápidamente. Vamos a agregar un nuevo componente y vamos a escribir Z D lo que queremos es un nuevo componente de animación de papel Z D. Con ese componente, vamos a mirar a la derecha, y va a haber un par de opciones. Dejaremos el nombre de la variable, un papel Zed di y notaremos que está pidiendo una clase de instancia de animación, y aquí estamos. Es el papel héroe Zi Animation blueprint que creamos en el último video Y ahora también está pidiendo un componente de render, ¿de acuerdo? Entonces el que seleccionaremos, queremos seleccionar el flipbook de papel Porque el libro volteado va a ser el componente que vamos a ser este de aquí mismo, es el que estamos renderizando por todas partes a las imágenes Ahora, sólo para asegurarnos de que todo esté funcionando como se pretendía, lo primero que vamos a hacer es que vamos a entrar aquí y vamos a ir a la fuente del flipbook Actualmente, se fija a ídolo de aventura. Sólo vamos a venir por aquí y vamos a despejar así que ahora ese flip book no se está rindiendo por nada. Vamos a usar papel Z D para gestionar todas nuestras animaciones. Entonces, si volvemos a la derecha al nivel, ahora notamos que no se está mostrando nada. ¿Bien? hay absolutamente nada y moviéndose de izquierda a derecha, y no hay nada, está bien. Ahora con toda esta configuración, estamos listos para comenzar a agregar las diferentes animaciones. Entonces vamos a volver al plano de animación de papel Z D, y luego vamos al gráfico de animación, y aquí es donde empezamos a trabajar en las animaciones Entonces vamos a presionar click derecho y teclear Estado. Y vamos a agregar nueva máquina de estado. La máquina estatal, simplemente la vamos a llamar, darle el nombre de héroe. Puedes ponerle el nombre que quieras. Estos son solo los nombres que estoy usando ya que este es el viaje de un héroe. Voy a conectar de héroe a animación de salida. Ahora que tenemos nuestra máquina de estado inicial, y lo que es una máquina de estado está esencialmente en el nombre. Es la lógica la que decide sobre el estado en el que se encuentra el jugador. Así que vamos a hacer doble clic en la máquina del estado para entrar. Y notarás inicialmente todo lo que tiene está fuera. Eso está bien. Simplemente lo arrastraremos. Y agregaremos otra estadística de animación Llamemos a este primer estado de animación inactivo porque esencialmente, una vez que cargues en el juego, lo primero que veas va a ser, ya sabes, el personaje parado ahí inactivo. Ahora que tenemos el conjunto de animación inactiva, estoy haciendo doble clic en el interior de eso, y luego voy a hacer click derecho y voy a solicitarlo para que juegue inactivo. Bien. Por lo que intentará reproducir esa animación ociosa. Ese es el resultado. Vamos a compilar rápidamente eso y luego volveremos a subir hasta aquí de nuevo al gráfico de animación. Entonces, la forma sencilla de pensarlo es que la máquina de estado está empujando las animaciones de salida. Dentro del estado héroe en este momento, de cuando empieza, que está afuera, todo lo que está mostrando es el ídolo. Y dentro de idol, todo lo que está haciendo es como, Oye, solo toca la animación ociosa. Esa va a ser la salida. Eso quiere decir que ahora mismo, una vez que volvamos al nivel y pulsamos play, todo lo que deberíamos ver es la animación inactiva. Y así entra una vez que presionas play, Boom, tenemos la animación ociosa. Ahora, recuerden, la forma en que se adjunta la animación inactiva, nuestro flipbook de papel no tiene ninguna animación conectada. Es así que ninguno. Es la animación de papel Z D, yendo al héroe Paper Zed Blueprint, que está controlando eso Entonces ahora mismo, volvamos a la animación Blueprint. Esto de aquí mismo es lo que está controlando nuestra animación. Ahora que esto está funcionando correctamente y debería estar funcionando correctamente, a continuación, asegurémonos de que si el jugador se mueve a una velocidad en la dirección horizontal, esté reproduciendo la animación de ejecución. 14. 013 Juega la animación de carrera en Paperzd: Bien. Ahora que lo hemos configurado para que Pepa z esté manejando nuestra animación inactiva, ahora nuestro siguiente trabajo es simplemente reproducir la animación en ejecución Entonces, para hacer eso, volvamos al plano de animación Entonces solo para ser claros, partir del gráfico de animación, haz doble clic en héroe. Ahora estamos afuera. Ahora, es bastante sencillo hacer otro estado de animación. Simplemente lo arrastraremos. Crearemos un nuevo estado de animación. Y a este estado, vamos a llamarlo correr. Eso es todo lo que haremos. Lo llamaremos correr. Ahora fíjate que hay algo aquí que está diciendo, Oye, ocioso para correr. Porque ahora dentro del gráfico de animación, vamos a estar transitando de una animación a otra Entonces, ¿qué se necesitaría para pasar de inactivo a ejecutar agregaremos en ese código y luego llegaremos a la capa externa de run y la arrastraremos con el click derecho un click izquierdo, lo siento, derecho de nuevo a inactivo. Entonces todo aquí va a ir de correr a ralentí. Todo aquí va a pasar de ocioso a correr. Vamos a entrar en lo que eso va a significar a nivel de código. Así que vamos rápidamente a entrar en la animación Idle. Todo lo que hace es que reproduce la animación inactiva y esa es la salida. Bueno. Ahora, vuelve al héroe, entra en la animación de carrera. Actualmente no hay corrida. Entonces lo siguiente que vamos a hacer es con un simple click derecho, vamos a jugar run. Eso es lo que he escrito para que lo encuentre Unreal Engine. Y como eso está dentro de nuestra fuente de animación que configuramos, simplemente puede vincular la ejecución a la animación de salida. Ahora eso está hecho. Ahora bien, si tuvieras que compilar aquí, bien, simplemente compilar rápidamente. Incluso si regresas y te mueves, no reproducirás la animación de carrera. Entonces dentro del plano simplemente entrará en inactivo para correr Y se busca un valor positivo para afirmar que debe entrar en esa transición, un booleano positivo Ahora, sólo voy a compartir contigo la lógica para que sea simple, ¿de acuerdo? Lo primero que vamos a hacer es que vamos a conseguir nuestra variable de héroe y arrastrarla. Así que nos pondremos como héroes, ¿de acuerdo? Eso lo conseguiremos. Después de eso, vamos a alargar esto de nuevo, y queremos obtener su velocidad. Asegurémonos de desplazarnos hacia abajo. Quieres la velocidad simple de obtener. ¿Bien? Ahora que hemos conseguido su velocidad, queremos dividirla en un pasador estructural. Ahora, ten en cuenta que mover a la izquierda y a la derecha está estrictamente en X. Así que queremos alargar el valor X, y lo que queremos buscar no es igual. decir, si no es igual a cero, puede entrar en la siguiente transición. Ahora, solo para volver a explicar la lógica, estamos haciendo que el personaje del jugador verifique su velocidad. En el momento en que su velocidad no es exactamente cero, puedo entrar en esa transición. ¿Y qué es esa transición? Esa es la animación de ejecución aquí mismo que hemos configurado para reproducir la animación de ejecución. Ahora con todo configurado así, vamos a compilarlo rápidamente y probarlo. Entonces el jugador se queda quieto. Ahora, cuando te mueves, entra en la animación de carrera. Pero te darás cuenta, aunque estamos en la animación de carrera, no estamos saliendo de ella. Entonces tenemos que volver al plano. Hemos agregado en el código pasando de inactivo a ejecutar. Vayamos aquí y copiémoslo todo. Estoy presionando Control C para copiar todo eso. Entonces salgamos de eso, vamos a correr a ralentí. Literalmente afirma la carrera al ralentí. Ya terminamos con ocioso para correr. Trabajemos en correr a ralentí. Y para que sea simple, simplemente pegaré todo desde antes excepto por un simple cambio pequeño. En vez de decir, oye, si la velocidad no es cero, lo que queremos comprobar es que queremos igual, ¿de acuerdo? Entonces, si la velocidad es exactamente igual a cero, pasará de la animación de ejecución. Volver a la animación inactiva. Con él configurado de esa manera, volvamos a pasar por la lógica. Comienza con ir directamente a la animación inactiva y reproducir la animación inactiva. Si la velocidad en X es mayor que cero, va a reproducir la animación de ejecución. Si la velocidad llega a cero, retrocede y reproduce la animación inactiva. Con eso hecho dentro del papel, este plano de animación, volvamos a un vistazo de verdad en el juego Déjame sacar mi controlador para esto. Prueba de verdad. He golpeado Play. Perfecto. Cuando me muevo, reproduce la animación de ejecución. Cuando me detengo, la animación se detiene. Esto es excelente. Las animaciones están alineadas correctamente. Esta es una buena noticia. Vamos a saltar rápidamente del puente. Bien. Eso es perfecto. Eso es bueno. A continuación, permítanme hacer doble clic rápidamente sobre el jugador para que me lleven de nuevo aquí. Ahora bien, aunque la animación está funcionando correctamente, notas que el personaje del jugador no está orientado en la dirección correcta. Ahora eso va a ser un simple cambio. Hagámoslo en el siguiente video. 15. 014 Dirección de Changine Sprite basada en la dirección del movimiento: Todo bien. En el estado actual del juego, si te mueves a la izquierda, con el control si te mueves a la izquierda, el jugador sigue jugando la animación a la derecha. Si te mueves hacia la derecha, el jugador, quiero decir, ese es generalmente correcto. Vamos a arreglar eso. Para arreglarlo, todo lo que tenemos que hacer es entrar en el plano del héroe y tú entres por aquí Ahora, el lugar que queremos poner el código que vamos a arreglar que está más cerca del lado derecho. Lo primero que vamos a hacer es que queremos obtener velocidad. Desplazarse rápidamente no por volumen, queremos velocidad. Obtendremos la velocidad. Ahí estamos. Ahora que hemos conseguido la velocidad, podemos poner eso ahí mismo. Queremos dividir el pin de estructura, eso es obtener el valor. Ahora, ya que nos estamos moviendo en la X, lo que queremos es la velocidad X. Simplemente obtendremos el valor y queremos hacer una simple comprobación. Y lo que queremos es que vamos a hacer una doble comprobación. ¿Es mayor que cero, o es negativo? Simplemente comience con una comprobación básica de si es mayor que cero. Entonces arrastraremos este nodo, y lo vamos a configurar en una rama simple. Ahora bien, una rama es básicamente un nodo utilizado para verificar a los booleanos Si sale como positivo, es decir, si la velocidad X es mayor que cero, entonces va a ser verdad. Si es menor que cero, va a ser falso. Ahora, ahora que hemos terminado con eso, lo que queremos es que vamos a volver aquí. Vamos a conseguir el libro volteo de papel ya que eso es lo que va a estar conteniendo nuestras animaciones, lo arrastraremos y lo dejaremos caer justo ahí. Una vez que hayamos terminado con eso, podemos arrastrar esto, y luego queremos establecer la rotación. Y queremos establecer una rotación salvaje. Ahora que lo tenemos configurado para establecer la rotación salvaje, vamos a copiar y pegar eso, soltarlo aquí, y conectar el libro volteo aquí también, porque vamos a estar estableciendo la rotación salvaje dos veces. Entonces diremos, Oye, si es cierto, seguirá la primera rotación salvaje. Si es falso, seguirá la segunda rotación salvaje. Ahora, recuerda cuando estás volteando algo, estás volteando a lo largo del eje Z. Déjenme demostrarlo rápidamente. Así que permítanme configurar rápidamente este libro de papel para mostrar el sprite corriendo Entonces lo que queremos hacer es que queremos girarlo a lo largo del eje Z. Bien. Entonces, como ejemplo, esto es cero grados o lo suficientemente cerca de cero. Esto es de 180 grados. Entonces lo que queremos es que cuando la velocidad X sea positiva, se va a quedar a cero grados. Cuando la velocidad X es negativa, decir, se mueve hacia la izquierda, ¿de acuerdo? Queremos que sea de 180 grados. Déjenme volver a poner eso a cero. Y dejar esto claro para que no haya nada que interrumpa papeles al día Vuelve a la gráfica de eventos. Ahora, vamos a decir, Oye, si la velocidad X es mayor que cero, set wild rotation va a ser cero. Si su velocidad X es menor que cero, lo que significa que está en negativo, queremos establecer su rotación salvaje a 180 grados negativos. Ahora, ese es un cambio muy simple. Espero haberlo explicado correctamente. Volveremos al nivel de desarrollador, pulsaremos play, y ahora notaremos cuando me muevo hacia la izquierda, el sprite sigue y no vuelve a cambiar de inmediato. Cuando me muevo hacia la derecha, el sprite sigue esa rotación y se detiene. Eso es fantástico. Eso es exactamente lo que queríamos. Y ahora vamos a pasar a agregar algunos sonidos y sonidos de paso a nuestro personaje jugador. 16. 015 Cómo agregar archivos de audio en ejecución: Actualmente tenemos nuestro carácter. Se puede mover a izquierda y derecha, y lo tenemos listo. Ahora, volvamos a los principios básicos que estamos usando. Ahora, terminamos con el diseño. Terminamos con código sobre ese elemento en particular. Ya terminamos con el arte para esa cosa en particular. Ahora tenemos que pasar al audio de la animación de ejecución. Hagámoslo ahora mismo, agregando algo de audio a la ejecución. Entonces aquí es donde nos metemos en algunas recomendaciones básicas. Número uno, te recomiendo encarecidamente que como desarrollador Indie, aprendas a agregar en tu propio sonido. Entonces vamos a sumar un sonido de running. Hay muchas maneras de obtener sonidos de pisadas. Algunos de ellos están pasando y comprando algunos activos, pero como Indi Dev, solo como un aparte adicional, creo que poder hacer tu propio audio va a ser muy importante Así que vamos a entrar en lo que sería eso, ¿de acuerdo? Ahora, ahora mismo, he abierto una aplicación gratuita llamada Audacity Ahora veamos la audacia. Así que la audacia básicamente te permite editar y cambiar diferentes clips de sonido, ¿de acuerdo? Ahora bien, fíjate que este clip de sonido que arrastré se llama yo caminando afuera Esto es básicamente solo algunos sonidos de pasos, que grabé saliendo, poniendo mi teléfono casi como cerca de donde estaba pisando, y va a sonar como si estuviera avanzando, pero en realidad, estaba en un solo lugar Ahora, solo escuchando cómo suena. Bien. Tenemos todos esos diferentes bits de audio de mí dando un paso. Ahora, no voy a entrar en todo lo que puedes hacer con audacia porque como dije, hay muchas formas de obtener sonidos Pero una cosa que es realmente útil es que volvamos a reproducir eso. Bien, quiero descomponerlo fundamentalmente para que pueda simplemente capturar. Déjame intentarlo y solo quiero capturar un solo paso. Entonces déjame arrastrar esto aquí y jugar. Déjame intentar volver a poner mi mouse en la pantalla, debería simplificarme explicando lo que estoy haciendo. Solo estoy arrastrando sobre un área y luego presionando play. Sólo tocará ese segmento sonoro. Bien, entonces ese es un paso. Bonito. Pero lo que quiero es que quiero obtener el sonido en el primer punto donde el pie está haciendo sonido. Bien, así que eso es por aquí hasta aquí. Esto es lo que quiero. Este es el verdadero sonido de paso. Entonces simplemente voy a copiar eso. Déjame alejar el zoom. Voy a dar click en Tracks, añadir una nueva pista. Déjame considerarla una pista mono. Entonces aquí abajo, voy a hacer clic en volver aquí para traer de vuelta el cabezal de reproducción, y voy a pegar Oh, sí, grabé esto en estéreo. Entonces cuando agrego una pista, tengo que agregar en una pista como estéreo. Bien, ahora, click izquierdo y pega. Así que déjame venir aquí, silenciar esto, bajar aquí, y entonces ahora soy yo caminando. Lo traeré de vuelta. Déjame tocar ese sonido. Ese es un solo paso adecuado Bonito. Ahora que he aislado un solo paso, voy a repasar a archivo y voy a exportar audio Ahora está diciendo, oye, ¿ quiero ponerlo en audio.com? Eso es genial. No, quiero exportarlo a mi computadora. Y ahora que ya he terminado de exportar eso, voy a pasar por el arduo trabajo de exportar alrededor de cinco sonidos de pasos diferentes Ahora, personalmente encuentro que alrededor cinco sonidos de pasos es el número ideal, y no voy a llevarte a través todo el proceso porque eso sería un poco aburrido Y voy a incluir estos sonidos con el proyecto, pero solo quería poner esto aquí. Ahora, pasemos al siguiente paso. Una vez que se exportan los sonidos de paso. Y al exportar, exportarlos como archivos WAV. Eso siempre es mejor con Unreal Engine. Y ahora por la magia del viaje en el tiempo, he organizado esos cinco sonidos de pasos Ahora, he ido y he creado una carpeta llamada Audio. Encontrarás esto. Va a ser descargable para ti. He creado otra carpeta bajo audio, y voy a llamar a esto pasos, bien Entonces dentro de la carpeta de pasos, voy a pegar vamos a ver control V. Ahí estamos Voy a pegar el paso uno, dos, tres, cuatro y cinco Bien. Ahora que tenemos esto, una vez que consigas esto, simplemente copia estos y los vas a pegar dentro de una carpeta para nuestro proyecto en Unreal Engine Entonces encontrar nuestra carpeta de proyectos, entrar en ella, entrar en contenido. Ahora fíjate que hay niveles, controles, personajes. Eso es genial. Ya que todo este audio es para un solo personaje, me gusta entrar en los personajes, hay jugador, es animación, hay arte. Simplemente voy a crear una nueva carpeta y voy a llamarla audio. Prefiero tener audio en una carpeta separada para cada personaje que me simplifica encontrar cosas Sé que a algunos desarrolladores les gusta tener una carpeta grande para todo el audio, pero no me gusta que esté demasiado desorganizado Entonces entraré en audio. Voy a hacer otra carpeta y voy a llamar a esta carpeta pasos. Bien. Entonces dentro de la carpeta de pasos es donde voy a pegar Yo pego con Control viaon Windows, pero puedes pegar sin embargo es si estás en MAC eso puede ser un poco diferente Ahora que hemos puesto esto dentro de nuestra carpeta de contenido para nuestro juego, entremos en Unreal Engine y veamos cómo implementarlos. Bien, entonces ahora estamos de vuelta en motor real. Y fíjate que justo por aquí, primero comienza diciendo: Oye, tres editores de activos se abrieron antes de que se cerrara por última vez. Aquí, volvamos a abrirlos, y luego se han detectado cinco cambios en el contenido fuente Es decir, ha identificado que aquí hay cinco nuevos expedientes. Entonces está diciendo, ¿te gustaría importarlos? Sí, me gustaría importarlos. Así que rápidamente vamos a tener esos importados y ya está hecho. Entonces entraremos en el nivel de desarrollador, hemos golpeado Barra espaciadora de Control para subir esto. Y ahora te darás cuenta debajo del reproductor, claro, ha identificado correctamente esa carpeta para audio para pasos, y ahí vamos Tenemos el paso uno, dos, tres, cuatro y cinco. Escuchemos rápidamente cada muestra de audio. Bien. Bueno. Bueno. Bueno. Bien, entonces tenemos cinco diferentes sonidos de audio de audio distintos disponibles para nosotros. El motivo por el que te recomiendo tener al menos cinco porque puedes usar uno. Pero si tocas solo uno, entonces no va a sonar bien. Entonces el siguiente paso va a ser simplemente agregar esos sonidos a nuestro personaje porque el personaje en este momento no está haciendo ningún sonido cuando funciona. Arreglemos eso en el siguiente video cuando agreguemos esos sonidos. 17. 016 Agregar sonido de ejecución espacial cuando el pie del sprite aterriza: Ahora, todo lo que tenemos que hacer es agregar en un componente de audio para comenzar. El componente de audio se llama cola de sonido. Una cola de sonido es solo una forma inteligente recopilar múltiples sonidos. Ahora, esa señal de sonido, simplemente llamémoslo jugador. Qué pasos. Entonces ese va a ser el nombre de la cola de sonido. Ahora, si haces doble clic en esa cola de sonido, abre la cola de sonido en el motor Anual, y esa es nuestra salida. Si pulsas play, no deberías escuchar nada ahora porque no se han conectado sonidos a la salida. Ahora lo que vamos a hacer, simplemente voy a reunir todos estos. Estoy usando shift y clicando, y los arrastraré todos a la vez. Ahora, hagamos rápidamente una prueba menor para ver si esto está funcionando correctamente. Vamos a agregar en el primer paso de poner, ¿de acuerdo? Y luego una vez que hayamos terminado con eso, toquemos la señal de sonido. Bien, para que uno esté funcionando correctamente. Déjame romperlo. Vamos a probar el tercero. Bien, eso está funcionando correctamente. Vamos a probar el quinto. Si esto funciona, todos ellos están funcionando correctamente. Perfecto. Ahora que todos estos están funcionando correctamente, solo necesitamos aleatorizarlos Ahora para aleatorizarlos, simplemente haga clic derecho y busque Lo que debería llevarte a tallar un nodo de sonido llamado aleatorio Entonces con ese nodo aleatorio, voy a empujar la salida hacia arriba, traer este nodo aleatorio por aquí y déjame agregar un par de entradas. Tienen que ser cinco. Eso es bueno. Así que estoy conectando todos nuestros diferentes sonidos de pasos al nodo aleatorio para que pueda aleatorizarlos para una variedad Conecte eso a la salida. Ahora, vamos a escuchar cómo sonaría eso. Perfecto. Ahora tenemos nuestra cola de sonido correctamente establecida. Ahora con la cola de sonido correctamente configurada, lo que vamos a hacer es controlar S para guardar, vamos a cerrar eso, y ahora tenemos que ir a nuestro personaje principal. Ir a nuestro personaje. Lo primero que voy a hacer es dejarme poner al aventurero inactivo aquí para que cada vez que estemos en el mundo, podamos al menos ver ahí al personaje Ahora vamos a agregar un nuevo elemento a nuestro personaje. Ahora que tenemos eso, pasemos rápidamente al flipbook de papel, y queremos arrastrar nuestra señal de sonido al Estoy usando Control y Barra espaciadora para subir esto. Estoy manteniendo presionada esa señal de sonido y voy a dejar caer encima del libro de papel. Ahora está aquí, juega aquí pasos. Está listo para ser usado. Ahora, en cuanto a la posición, empieza estando en medio del personaje. Quiero bajarlo un poco hasta cerca del suelo pero no debajo de él, para que no se enganche. Entonces después de seleccionar eso, baja en la señal de sonido y asegúrate de que esto de aquí mismo esté deshabilitado, autoactive No queremos que se active automáticamente. Ahora con esta configuración de señal de sonido tal como está, también queremos cambiar la atenuación. Aquí mismo, hay atenuación de anulación. Simplemente haga clic en eso. Lo que eso hace es que convierte el sonido en un sonido especial, por lo que el sonido se habrá caído. Una de las mejores formas de tener buen sonido sonoro es cuando se trata de especialización, cambiar la función de sonido lineal a natural Esto es más o menos así. Entonces volveremos y cambiaremos los detalles de esto más adelante. Hablando de sonido, una motocicleta muy ruidosa pasó por mi oficina. Qué genial. De todos modos, con todo esto hecho y configurado, tienes los pasos del jugador, la configuración de la señal de sonido por aquí Ahora, tenemos que hacerlo simplemente para que cuando el jugador se mueva, reproduzca ese sonido. Ahora, para hacer eso, tenemos todos los sonidos configurados en el reproductor. Simplemente tenemos que decirle al plano cuándo tocarlos. Entonces volveremos a subir a jugador. Entraremos en animación. Puedes hacer clic en Fuente de animación, o simplemente puedes entrar en esta carpeta con secuencias de animación y hacer doble clic en Ejecutar. Ahora notarás que nuestra animación de ejecución está aquí jugando. Entonces déjame hacer una pausa en eso. Aquí hay una pista llamada uno, que vamos a estar usando. Entonces voy a conseguir la cabeza de juego, bien, y simplemente voy a arrastrarla hasta un punto que veo el pie tocando el suelo. Boom, ahí mismo. Justo aquí, alrededor de 1 segundo, ¿de acuerdo? Este primer fotograma de animación cuando el pie toca el suelo, luego voy a agregar una animación Notificar. Primero voy a hacer clic derecho. Asegúrate de que notifique que me muestren, y luego bajaré aquí. Y luego voy a hacer click derecho otra vez, y después voy a decir, Hey, Nuevo notificar. Bien. Ahora hay varios notificadores pero solo usaremos una notificación Nueva Esto es básicamente para informar motor real. Queremos hacer algo en ese fotograma, y luego voy a llamarlo sonido de paso En realidad, déjame alargarlo un poco más. Sonido de pisada del jugador. Entonces, en este punto, hemos creado un notificador para reproducir sonido de paso Vamos a avanzar a lo largo de la jugada a lo largo, y luego otra vez. Por lo que voy a dar click en el sonido de paso, Control C para copiar Ven aquí, Control V. Lo pondrá justo por ahí. Entonces tenemos dos puntos por los que queremos reproducir el sonido. Ahí estamos. Boom, toca el sonido. Eso es todo lo que necesitamos para esta animación. Entonces debería funcionar correctamente ahora. Con estos player footstep sound notifier setup, siguiente, simplemente vamos al papel z la fuente de animación, Más bien no la fuente, vamos al plano. Ahora dentro del plano, observe que ahora hay nuevos notificadores, haga clic en el que se nombra correctamente, que es el pisada del jugador Y por aquí, estamos listos. Entonces lo primero que vamos a hacer es que vamos a conseguir a nuestro personaje héroe, arrastrarlo por aquí. Ponte como héroe. Eso es bueno. Y luego volvamos a verificar en el héroe. Esto se llama pasos de jugador. Bien. Así que vamos a arrastrarlo, y queremos conseguir pasos de jugador Oh, lo siento. Consigue los pasos del jugador Ahí estamos conseguir pasos de jugador. Este es el componente de audio y luego arrastrarlo hacia afuera, y queremos activarlo. Aquí está, activar Activar básicamente hace que esté activo. Una vez que lo hayamos hecho, ahora queremos reproducir el sonido. Voy a arrastrar de pasos de jugador y voy a escribir play, y aquí está Toca, por lo que tocará ese sonido. Déjame conectarlo aquí arriba. Vincular estos dos. Justo después de que se active, reproduce ese sonido, tiempo de inicio cero. Eso es bueno. Vamos a tener una visión general rápida de lo que tenemos aquí mismo. Entonces tenemos después de recibir Notificar como héroe, los pasos del jugador, que es lo que tenemos como componente de audio, activarlo y jugar Entonces con eso, ahora deberíamos escuchar los pasos del jugador que se están jugando. Ahora, vamos. Perfecto. Ahora tenemos nuestros pasos conectados a nuestra animación de dos sprites D. Ahora bien, una cosa genial es porque la tenemos especialmente atenuada, si entro en el héroe, entrando en la cámara y aumenté su ubicación para moverla hacia atrás, digamos unas 500 unidades, menos 500 unidades Negativo 500 unidades. Notarás que el sonido es significativamente menos fuerte. Por eso usamos la especialización porque si solo tocas el sonido, será como si estuviera en todas partes del mundo. Pero cuando usas atenuación, vas a tener sonidos basados en la ubicación, y también nos aseguramos de posicionar la cola de sonido en un lugar natural Eso es bueno. Ahora vamos a pasar a la animación de salto. Empezaremos configurando el código en el siguiente video. 18. 017 Cómo usar comentarios para organizar nodos de blueprint: Muy bien, así que ahora nuestro personaje jugador puede moverse a izquierda y derecha, y somos capaces de escucharlos. Lo siguiente que vamos a hacer es agregar una función de salto rápido a nuestros planos 19. 018 Configuración de control y código para agregar un salto: Bien, así que agreguemos la entrada de salto. Entonces tenemos nuestro movimiento ahí. Simplemente vamos a entrar en entradas y luego vamos a agregar en una acción de entrada. Vamos a llamar a esta acción de entrada salto. ¿Ese Jomo? Dónde está la P. Bien, se llama salto. Ahora, hagamos doble clic rápidamente en la acción de entrada de salto. Entonces descripción de la acción, creo que vamos a describirla como entrada de salto. Creo que es bastante simple. ¿Se activa cuando se pausa? No. ¿Cuál es su valor booleano digital Para una acción de salto, creo que Booleano está perfectamente bien Ahora, con toda esa configuración, vamos a cerrar eso. Y ahora que tenemos nuestra configuración de salto aquí, volvamos a entrar en el mapa del jugador una vez más, el mapa de entrada. Tiene todos los insumos para el movimiento. Eso es genial. Vamos a añadir otro Whoa. Nos iríamos, agregaríamos otro mapeo. Entonces ese mapeo, será una acción de entrada. Vayamos por aquí, y el que queremos seleccionar es saltar ya que ese es el activo que acabamos de crear. Eso es genial. Vamos a ir bajo salto, y ahora necesitamos tomar una decisión de lo que queremos que sea el salto? Voy a ponerla en el teclado para que sea W W está bien. Agreguemos otro. W es el núcleo. Sigue expandiéndolos. Pero de todos modos, déjame también hacerla barra espaciadora. Creo que eso funciona perfectamente bien. Pero luego déjame conectar rápidamente mi controlador. Entonces ahora el controlador está conectado. Bien. Sí, NRL Engine ha reconocido que he conectado mi controlador Entonces agregaremos en otro. Y quiero, supongo, cada vez que el jugador presiona A, pero es A en Xbox o X en X en, ya sabes, No, es A en Xbox, X en PlayStation. Entonces esto debería estar funcionando correctamente. Entonces ahora nuestra acción de salto está configurada. Funciona cuando presionamos W. Funciona cuando presionamos la barra espaciadora, y funciona cuando presiono ese botón X en el mando o A, si estás en Xbox. De todas formas, así que con todo lo que estás configurando, volvamos al plano del jugador Y vamos a agregar algún código para manejar el salto. Así que vamos a acercarnos. Quiero buscar salto, y luego bajaré y debería ser acrecentado eventos de acción. Ahí estamos. Déjame acercarme un poco más. Acción de entrada mejorada, atasco. El valor de la acción es un booleano, por lo que está activado o desactivado Entonces una vez hecho esto, lo que necesitamos es simplemente arrastrar disparado y digamos, Oye, salta. Esencialmente, tenemos un salto hecho solo esos dos nodos. Entonces para probarlo, controlar S para guardar, y luego voy a venir aquí y compilar. Ahora vamos a entrar en el nivel. Ir a jugar dentro del nivel. Y luego, vamos a probarlo spaceb. Eso es genial. El espacio B está funcionando, pero eso no es lo que quería. Déjame apagar eso siendo grabado, siendo no, no, no, no necesito eso. Prensa prensa prensa barra espaciadora? Bien, tenemos un salto. Moviéndose a la izquierda, moviéndose a la derecha, fresco. Saltar con la barra espaciadora está funcionando, salto de W está funcionando Y luego aguanta, el controlador Exon no funciona. Eso es un problema. Volvamos y verifiquemos rápidamente. Esto podría ser en su totalidad un problema M. Oh, aquí no. Necesito verificar la entrada en el mapa del jugador. Oh, Control S para guardar para volver a verificar dos veces, da clic en eso. Gamepad, cara, fondo, fondo. Bien, genial. Supongo que debo haber hecho algo mal. Gamepad, perfecto. Bien. Debería estar funcionando correctamente ahora. Una vez más, prueba rápida. W está funcionando, Spaceb está funcionando. X en el controlador o más bien el botón frontal hacia abajo funciona. Bien, genial. Ahora que tenemos el salto trabajando en términos de código, lo siguiente que hay que hacer, recuerda, DCAA, diseñar código arte animación A continuación, vayamos y agreguemos en algo de arte. 20. 019 Cómo agregar una animación de inicio inicial: Ahora lo hermoso es que ya tienes algunos buenos sprites para el salto Simplemente volveremos a subir personajes, el arte del jugador, y esto es todo el arte. Sólo vamos rápidamente a escribir en salto. Bien, entonces tenemos un par de animaciones de salto diferentes, ¿de acuerdo? Entonces simplemente seleccionaremos estos tres, bien, estos aventura saltan cero, cero para saltar 003. Estos funcionarán. Y luego con todos estos organizados, simplemente haremos clic derecho en Acciones de Sprite y luego, ya sabes, crear sprites Así que ahora que hemos creado esos sprites, volveremos a escribir salto, solo verifíquelo y veamos Entonces ahí lo tenemos. Tenemos esos tres sprites. Simplemente hagamos clic en todos ellos, y luego vengamos aquí y creemos un flipbook Crearemos un flipbook y ahora mismo está diciendo salto de aventura Podemos llamarlo arranque por salto. La razón por la que lo estamos llamando jump start y lo puedes ver por allá. Esa es la animación es porque la animación de iniciar el salto puede ser diferente la animación cuando está cayendo y nos meteremos en eso a continuación, pero esto es lo suficientemente bueno para comenzar, simplemente seleccionaremos esto y dope Ahora que tenemos esa configuración básica de animación, vuelve a salir a los personajes una vez más. Ahora, vamos a cerrar el texto, la animación del jugador, e iremos a la fuente de animación, el papel D. Ya tiene nuestro ídolo. Tiene nuestra carrera, y simplemente vamos a agregar nuevos. Y haga doble clic en eso. Déjame cambiarle el nombre. Vamos a llamarlo salto, arranque de tablero. Bien, porque sólo va a ser para el inicio del salto. Después de darle click, ven por aquí, y luego ahí estamos jump start. Y esa es la animación. Entonces tenemos nuestro salto inicial. Tenemos nuestra animación de carrera, tenemos nuestra animación ociosa, luego tenemos nuestro salto. Sí. Entonces, lo siguiente que vamos a hacer es que queremos probar esto. Eventualmente vamos a volver y ajustar los fotogramas para que encaje más con el personaje, pero esto es lo suficientemente bueno para comenzar. A continuación, vamos a volver con el héroe. Aquí estamos, tenemos este salto básico. Ahora una vez que se activa, es cuando queremos reproducir esa animación de Hey, el personaje está saltando. Cuando el personaje está en el aire, queremos saber que oye, están saltando. Ahora que tenemos eso, tenemos esto aquí y nuestras animaciones. Abramos también el plano de animación. Lo teníamos al recibir Notificar. Podemos cerrar eso. Estamos de vuelta aquí. Estamos de vuelta aquí. Tenemos nuestro inactivo, tenemos una carrera, y a continuación vamos a crear un nuevo conjunto de animación, y vamos a llamar a esto llamarlo jump start. Bien. Porque solo hay el inicio y luego está cuando el personaje está cayendo al suelo. Ahora, arrastraremos desde el inactivo hasta el arranque en salto. También vamos a arrastrar de correr al inicio del salto, ¿de acuerdo? Y vamos a pasar de, vamos a ver, desde el inicio del salto, mm mm. A ver. No, por qué moverse. Vamos, muévete. Quiero moverme. Estás bien. Entonces esto es todo. Entonces este es nuestro mapa ahora mismo. 21. Lógica de transiciones de animación de saltos 020: Ahora tenemos listo este conjunto adecuado de nodos. Iremos y haremos doble clic dentro del inicio del salto para que podamos adjuntar la animación de salida y luego simplemente pulsaremos play jump start. Entonces esos fotogramas iniciales iniciales después de que el personaje haya saltado. Entonces ahora que he guardado eso volveremos a la gráfica. Entonces cada vez que añadimos en el código, pasará de inactivo a hey, ha comenzado a saltar. Ahora bien, esta forma sencilla de saber cuándo debe pasar el personaje de inactivo a saltar es que vamos a entrar. Vamos a sacar a relucir el como héroe como siempre. Y entonces ahora que tenemos acceso a eso, saldremos aquí y obtendremos velocidad. Y queremos tener acceso a su velocidad. Esta es la manera realmente sencilla saber cuándo un personaje está saltando. Y entonces diremos un mayor siempre y cuando sea mayor que cero, debería poder entrar en eso. Entonces vamos a compilar. Entonces básicamente, si su velocidad vertical es mayor a cero, deberíamos ver esa animación de jam. Ahora, vamos a mostrar esto rápidamente. Entonces en estos momentos, los personajes de ido han golpeado la barra espaciadora. Observe, es reproducir la animación de salto, pero no está saliendo de la animación de salto. Entonces, para asegurarnos de que salga de la animación de salto, volvemos al plano Haremos clic y arrastraremos desde el inicio de salto de nuevo a inactivo. Y luego dentro de inactivo, en realidad, prefiero simplemente copiar esto para no tener que volver a escribir todo. Pero dentro de aquí, voy a añadir en el mismo código pasando de hey como el héroe, la velocidad. Pero esta vez, en vez de decir, Oye, eres mayor que, simplemente voy a decir, Oye, ¿eres igual a? Entonces, si es igual a cero, puede volver a estar inactivo. Vamos a compilar rápidamente eso, volver al nivel. Nosotros en IDO, estamos saltando, volvemos a id, podemos caminar. Estamos saltando de nuevo al ralentí, podemos caminar, saltar, movernos. Bien. Eso es genial. Eso en realidad no está mal, no está nada mal. Ahora bien, hay muchas formas en las que podemos manejar ese salto. Una forma en que podemos manejar ese salto es simplemente yendo a ver dónde está el salto al que vamos en el salto. Sigue escribiendo Jumo por alguna razón. Entonces iremos al arranque en salto. Iremos a ese libro volteado. Una forma de manejarlo es simplemente venir por aquí y simplemente configurarlo algo así como tres cuadros por segundo para comenzar. Bien, está bien. Alternativamente, puedo simplemente eliminar el primer fotograma clave, configurarlo para que solo reproduzca los dos últimos fotogramas. Entonces, permítanme borrar el segundo también. Entonces ahora solo está jugando ese tipo de cosa de animación flotante Permítanme aumentarlo a seis cuadros por segundo. Entonces parece que está haciendo eso, entonces podemos simplemente cerrar eso. Entonces ahora, creo que esa es una animación de salto mucho más realista y razonable. Pero fíjate si nos estamos moviendo de izquierda a derecha y saltamos, no tenemos esa animación transitada a solo cuando estamos en IDO que seamos capaces de hacer eso Para arreglarlo, volvemos al blueprint y usaremos el mismo tipo de lógica, volvemos al gráfico de animación dentro de esa máquina de estado Ahora podemos pasar de Run y básicamente vamos a obtener el mismo código entrar aquí, copiar todo eso. Para pasar de correr a jumpstart, siempre y cuando la velocidad Z sea mayor que cero, entrará en esa animación Después copiaremos el mismo código. Así que ahora, oh, no, no, eso va desde el comienzo del salto de nuevo a la carrera. Pega esto. Entonces, cada vez que la velocidad Z es exactamente igual a cero, volverá a esa animación. Ahora, veamos cómo se ve eso. Aquí estamos. Observe que salté y está jugando esa animación de salto. Entonces es algo escalofriante en el aire. Y esa es básicamente la forma simplificada y fundamental que puedes configurar tu animación de salto. Ahora tenemos nuestra animación de salto. Tenemos el código para el salto. El código para el salto está básicamente aquí. Y si alguna vez quieres cambiar alguna de las características de salto, simplemente vas al componente de movimiento del personaje, y luego en el lado derecho, debajo de los detalles, hay muchas variables con las que jugar. Déjame simplemente escribir rápidamente en salto para que podamos ver algunos de esos. Y solo puedes ver muchas cosas que te va a mostrar. Te voy a mostrar velocidad de salto. Se puede aumentar eso, romper la desaceleración, y hay un par de otros. Ahora, podemos entrar en esto más adelante cuando comencemos a hablar de crear niveles y diseñar eso porque en términos generales, basas tus niveles de cómo quieres que se mueva tu personaje. Entonces nos meteremos en eso. Pero por ahora, tienes una comprensión de lo básico. Lo siguiente que vamos a hacer, recuerda, DCAA es ahora agregar algo de sonido porque queremos que se reproduzca un audio justo después de que el personaje salte. Vamos a entrar. 22. 21 Sonido de inicio rápido: Bien. Ahora, entremos y solo agreguemos un sonido de salto. Ahora, dentro de sus archivos de curso, he agregado algunos sonidos básicos de salto. Así que permítanme ir rápidamente al audio y crear una carpeta separada llamada jumping. Y en el interior, hay dos sonidos de salto. El número uno es el arranque en salto. Bien, es un poco demasiado silencioso, pero hay un sonido de inicio de salto, y luego hay un sonido de aterrizaje de salto para cuando aterrizas en el suelo. Bien, entonces esos son los dos sonidos que vamos a estar usando. Pero comencemos con solo un sonido de arranque de salto. Entonces, actualmente, déjame alejar el zoom. Si vas adentro, puedes escuchar ese sonido cuando te mueves hacia la izquierda y hacia la derecha. Pero no hay un sonido agradable de mity cuando el jugador salta. Entonces vamos a corregir eso. Así que volvamos a entrar en nuestro reproductor, y luego vamos a agregar ese sonido de salto. Vamos a entrar en ello. Entonces esta vez no usaremos el blueprint de animación para agregar ese sonido porque este es un sonido que solo quieres tener una vez Ahora, hay una manera de agregar el sonido. Simplemente va a ser que comenzaremos por la barra espaciadora de control. Tenemos este sonido de inicio de salto de jugador. Vamos a seleccionarlo, y luego aquí arriba, vamos a crear una cola. Ahora que se crea la cola, voy a nombrar al jugador. Vamos a llamarlo arranque por salto. Ese es el inicio del salto. Ahora voy a conseguir eso y lo voy a arrastrar debajo del flipbook de papel Lo quiero debajo del libro de papel. Está justo debajo de aquí. Yo lo seleccionaré. Déjame volver a la ventana gráfica. Esta es una ubicación razonable para que el sonido sea. Creo que esa es una buena ubicación. dejaré ahí y claro, baja aquí. Asegúrate. Veamos que se hace clic en la atenuación de anulación. Lo dejaremos ahí y pondremos esto en sonido natural. Y luego queremos asegurarnos que no se reproduce al inicio, así que nos desplazaremos hacia abajo. Buscamos activación automática y apagamos la activación automática. Ahora con eso hecho, digamos que este salto empieza a jugar cuando el jugador salta. Ahora bien, hay dos formas de hacerlo. En realidad, hay muchas formas, pero solo quería mostrarte algo sobre lo irreal que piensa el motor Si lo arrastramos aquí y lo sacamos y decimos: Oye, juega. Básicamente le dijimos que jugara. Se lo hemos dicho para que juegue. Si lo conectamos bajo disparado, dijiste cuando se activa, haz la animación de salto, y luego después de eso reproduce ese sonido. Si lo conectamos aquí, compilar, entrar. Ahora escucha. Bien. Ahora puedes oírlo en realidad. Voy a necesitar aumentar su volumen y en realidad está funcionando correctamente. Entra. Pero se está reproduciendo cuando suelto el botón. Déjame poner mis botones en pantalla para que puedas ver. Si te mueves. Observe que reproduce el sonido cuando suelte el botón. Eso no queremos. Rompamos este enlace. Queremos que esté aquí en el inicio. Ahora que lo hemos configurado para que funcione en el arranque, entra. Se reproduce de inmediato, se inicia. Ahora bien, para que el sonido sea aún mejor, vengamos aquí al componente de arranque en salto, ¿de acuerdo? Este de aquí mismo. Y entonces lo que queremos hacer es querer aumentar el volumen. Entonces voy a aumentar el volumen a algo así como dos. Así que vamos a escuchar. Ojalá sea mucho más audible porque hay algunas cosas que quieres que el jugador escuche realmente como saltar. Bien. Sí, a las dos veces el volumen, el salto suena bien. Ahora, ahora que ya terminaste con eso, sigamos adelante. Hemos añadido en un sonido de salto. Ahora recuerda, es DCAA, diseño, código, arte y audio Hemos hecho el código para el salto. Nosotros hemos hecho el arte, y ya terminamos con el audio. Sigamos adelante. Y en el siguiente video, solo agreguemos algo de sonido cuando aterrice el jugador. 23. 22 Sonido de aterrizaje con salto: Bien, bienvenido. Entonces ahora vamos a hacer un simple sonido de aterrizaje de salto. Bien, entonces para hacer eso, lo primero que vamos a hacer es ir al plano de Iroharacter Entonces, como hemos organizado antes, si simplemente vuelves y haces clic en eso, ¿verdad? Y para cualquier otra persona, básicamente presionas Barra espaciadora de Control. Hemos organizado nuestros planos correctamente, vuelve al jugador El plano del héroe, e iremos a donde configuramos nuestro manejo de saltos Ahora, en aras de la simplicidad, solo voy a copiar ese cuadro básico de comentarios, ponerlo aquí, y luego voy a decir, oye, sonido de salto de aterrizaje, para que sepa que todo el código de aquí es para gestionar el sonido de salto de aterrizaje. Ahora que tenemos eso, lo siguiente es simplemente volver a donde ponemos los pasos del jugador, y luego voy a seleccionar para duplicarlo porque ya tenemos algunos ajustes básicos como para la gestión de audio que quiero mantener igual Ahora que eso está hecho, simplemente llamaremos a este aterrizaje en salto. Ahora que tenemos ese objeto de aterrizaje de salto configurado dentro de nuestro jugador, déjame compilar. Arrastraré eso y lo soltaré aquí mismo. Aquí es donde realmente nos adentramos en el código básico. He acercado el zoom Hay un nodo de aterrizaje de salto. Queremos alargar esto. Después de arrastrarlo, voy a presionar play Entonces sacaremos el nodo play. Entonces tenemos nuestro salto de aterrizaje y tenemos nuestro nodo de juego, lo cual es bueno. Y ahora simplemente necesitamos una forma sencilla para Unreal Engine nos diga que el jugador ha saltado Entonces la forma sencilla de hacerlo es simplemente voy a hacer clic derecho y voy a escribir y, y notar ya hay un evento llamado On event On Landed. Voy a arrastrar esto. Lo conectaré para jugar. Y estamos hechos, fundamentalmente, algo así, pero aún no hemos terminado del todo. Volveremos al aterrizaje de salto. Ahora que lo he hecho clic, puedes ver que ahora mismo todavía está listo para despejar pasos Voy a bajar, más bien, lo siento, estoy seleccionando el sonido. Dentro de los activos ya está el activo para el sonido del jugador de salto de aterrizaje. Ahora haz clic en eso. Pero ahora está configurado para que reproduzca el sonido del jugador de salto de aterrizaje ahora que eso está hecho, entro aquí. Con todo configurado, compila, entro al nivel, presiono play. Sí, deberías estar escuchando eso. Bonito. Ahora, por supuesto, solo para pruebas rápidas, rompa el enlace. Vamos rápido. ¿Compilamos? ¿Asegurarte de que esté compilado? No hay sonido de aterrizaje. Vuelve aquí y luego conecta el evento en aterrizó a esa jugada, compila. Ahora hay un sonido de aterrizaje. Sí, espero que sea audible. Si no lo puedes escuchar claramente en el video, tal vez porque he mantenido el sonido del escritorio demasiado bajo. Pido disculpas, pero debería ser muy fácil escucharlo en el juego. Entonces, a continuación, voy a subir algunas lecciones nuevas todo sobre el diseño de plataformas para tu juego de dos D. Ahora bien, una cosa que muchos de ustedes pueden haber notado o no si están recibiendo este curso más tarde es desaparecí por cerca de un mes. En realidad estaba en el hospital, pero ahora estoy de vuelta. Todos los demás, no se preocupen por ello. Simplemente disfruta el resto de los videos. Vamos. 24. 23 Cómo agregar plataformas a la plataforma: Todo bien. Entonces ahora que tenemos algún movimiento de línea base funcionando, ahora solo vamos a agregar algunas plataformas con las que queremos que el jugador interactúe. Entonces para hacerlo, esencialmente, vendremos aquí para agregar rápidamente un objeto, seleccionar formas, y me gustaría agregar en un cubo simple, y ahí está nuestro cubo simple. Pero donde se posiciona ahora, si muevo al jugador, el jugador no interactuará con el cubo. Entonces voy a querer ese cubo. Voy a seleccionarlo. Y entonces en cuanto a su posición, me aseguraré de que, aguanta, ¿es el Objeto que tiene un problema? No. Bien. He seleccionado el objeto. Ponlo a cero en el eje y. En realidad un poco más que cero porque queremos que no, cero es perfecto. Entonces cero y luego en el eje X, lo pondré a cero. Ahora, eso lo mueve directamente al jugador. Así que vamos a tenerlo un poco más a la derecha y luego un poco más al suelo. Entonces en Z, lo pondré en 50. Bien, entonces esta es una plataforma sencilla y agradable. Ahora, cuando el jugador salta, básicamente, cuando presiono hacia arriba, note que el jugador está ahora en la cima de la plataforma. Vuelve aquí, boom. Pero tenemos un pequeño problema. Observe que donde los pies del jugador justo por encima de la plataforma. Entonces, cuando el jugador está aquí, el jugador está por encima de la plataforma, que en realidad no es lo que queremos. La razón por la que esto está sucediendo es porque el colisionador de cápsulas está interactuando con el mundo Así que queremos que los pies del jugador estén realmente tocando la plataforma, y tendremos que evitar que el colisionador de cápsulas alrededor del jugador interactúe con el mundo Entonces, cuando nos acerquemos un poco, notarás que ves ese espacio, ese espacio justo debajo de ahí. Quieres deshacerte de ese espacio. Ahora bien, para hacer eso, sólo vamos a cambiar la posición del libro volteo de papel para que donde están los pies esté en el suelo. Así que vamos a entrar en el personaje de aquí mismo. Genial, ahí es donde está nuestro flipbook. Y luego estoy seleccionando el flip book, y solo voy a ajustar ligeramente su posición Z. Ahí vamos. Así que solo lo he dejado caer un poco en la ubicación z. Ahora echemos un vistazo a eso en juego. Ahora en realidad parece que los pies del personaje están tocando el suelo, la superficie, lo cual es muy, muy bueno. Bien. Entonces está este objeto corto que ahora está en la pared, y somos capaces de saltar sobre él, y podemos empezar a considerar agregar en algunas plataformas más. Aquí estamos parados sobre él, saltando de él, saliendo de él. Bien. Esto es un comienzo. Ahora agreguemos un poco más a la plataforma. Ya que tenemos esa plataforma por aquí, simplemente la seleccionaremos. Hagamos una copia y pegado rápido, y veamos vamos a configurarlo. Sabemos que esta plataforma se trata de qué? Se trata de 50 en el Xaxis. Entonces, llevemos esto hasta cerca de 100 en el Xaxis. Y muévelo un poco más a la izquierda y mira, ¿puede el jugador hacer este salto? Sí, es posible hacer ese salto, pero no es posible hacer este salto. El salto del jugador en este momento es realmente, muy corto, y un salto corto significa que realmente no podemos hacer todas esas plataformas geniales Entonces, en el siguiente video, vamos a ver cómo ajustar la altura de salto del jugador y un par de cosas más para que el salto sea un poco más agradable para una plataforma. 25. 24 Cómo personalizar el movimiento y el salto del jugador: Entonces, cuando entramos en nuestro mejor activo, hay algo conocido como el componente de movimiento de personajes. Este es el que determina todas las propiedades del movimiento de los personajes. Ahora, rápido, si lo analizamos, va a haber un par de cosas. Tenemos gravedad. Entonces ahora mismo la gravedad está puesta en uno. Ahora bien, si entramos en juego y el personaje salta, es lo rápido que vuelve al suelo. Pero si volvemos y cambiamos la gravedad de gravedad uno a gravedad, digamos, cinco, para que podamos ver una gran diferencia. Cuando volvamos, compilemos rápidamente. Cuando volvemos, ahora, el personaje vuelve al suelo muy rápido. Ahora bien, si vamos por algo un poco más suave como la gravedad a, solo cambio la gravedad dos también. Ahora volvemos y la gravedad ahora está puesta en dos. La gravedad determina la rapidez con tu personaje jugador vuelve a caer al suelo. Ahora, como hemos aumentado la gravedad, necesitamos aumentar el salto. Queremos que el salto sea mucho más alto. Ahora dentro de estos ajustes, fíjate que hay mucho, aceleración, factor de ruptura que está desacelerando, masa estimada, movimiento predeterminado, no te preocupes por nadar No necesitamos eso aquí. Entonces estamos hablando de caminar. Ahora, ¿qué es un paso? Un escalón es la altura más alta, tu personaje puede caminar sobre algo. Tienes fricción en el suelo y velocidad de marcha. Siempre puedes ajustarlas a tu gusto. Lo que realmente queremos hacer es cambiar el atasco. Ahora, actualmente, la velocidad del salto Z es todo de 20 centímetros/segundo Como hemos duplicado la gravedad, para obtener la misma altura de salto, necesitamos duplicar la velocidad z del salto. Hagamos eso ocho 40 centímetros, perdón, ocho 40 centímetros segundo, que es 8.4 metros/segundo, lo cual está Ahora alejemos rápidamente, compilemos, volvamos a entrar y veamos la diferencia que marca en nuestro salto. Así que fíjate que salta alto y luego baja al suelo rápidamente. Y ahora tenemos lo que me gustaría llamar movimiento razonable para un juego de plataformas Sin embargo, sí necesitamos hacer un par de cambios. Ahora fíjate, déjame poner mis entradas en la pantalla para que veas lo que estoy presionando. Observe que ahora mismo cuando nos movemos a izquierda y derecha en el suelo, nos movemos a cierta velocidad. No obstante, cuando salto, básicamente pierdo, he saltado, estoy presionando, bien, no puedo. He saltado, estoy presionando a la izquierda, apenas ningún movimiento, lo cual no es realmente suave para los plataformas de movimiento Fíjate si me mudo, puedo hacer ese salto. No obstante, si no me muevo y salto, no puedo hacer ese salto. Eso es controlado por algo llamado control aéreo. Ahora, cuando volvamos a nuestro héroe, queremos buscar el control aéreo. En este momento, el control de aire está establecido en 0.05. Vamos a poner eso a. Pongámoslo a uno. Y ahora cuando volvemos a entrar y estamos cambiando lo que se siente al interpretar a un personaje, cuando salto, noto salté y todavía tengo ese movimiento. Así que cuando estoy aquí, puedo presionar saltar y seguir moviéndome a la derecha y aún así lograrlo. Ahora, solo esos pocos cambios básicos, creo que hemos hecho una plataforma lo suficientemente razonable en términos de plataformas básicas que podamos tener. Sin embargo, debido a que estamos usando la filosofía DCAA, ahora tenemos algunas plataformas básicas que podemos configurar Así es como piensas sobre las plataformas. Son solo cosas que el jugador necesita manejar y puedes configurarlo de la manera que te guste en tu juego. Ahora tenemos que averiguar, ¿cómo agregamos algo de arte a las plataformas para que se vean bien? Y vamos a hacer un pequeño cambio de cámara en cuanto a cómo se ve la cámara, y luego vamos a entrar y ajustar parte del arte en las plataformas. Ahora para el cambio de cámara, simplemente volveré al plano del héroe Seleccionaré la cámara, y un cambio que me gusta cuando estoy trabajando en plataformas es aumentar ligeramente la ubicación de la altura Z de la Permítanme agregar tal vez solo 50 unidades, lo que eso cambia, lo que significa es que ahora cuando miramos cómo se está mirando aquí al jugador, la cámara está ligeramente por encima del personaje del jugador. Así que fíjate que no es plano con el suelo. Lo hemos planteado solo un poco para que podamos echar un vistazo más fácil a las diferentes plataformas, que es núcleo ahora lo que podríamos hacer además de eso es que podemos ajustar ligeramente la rotación. Ahora bien, la rotación que vamos a seleccionar es probablemente, déjame verificar dos veces. ¿Es X? No, no es rotación X. Debería ser la rotación sobre este sí. Vamos a rotarlo hacia abajo en diez negativos. Eso es. En el eje Y en cuanto a rotación. Lo que significa que la cámara está ligeramente apuntada hacia abajo. Como pueden ver, cuando ajusto la rotación Y, puedo apuntarla hacia abajo, lo estoy haciendo negativo diez. Es algo ligero, pero solo ayuda al jugador a poder ver más del nivel porque está mirando ligeramente hacia abajo. Ahora después de hacer ese cambio, en realidad podemos levantar la cámara déjame levantarla hasta unas 80 unidades. Entonces eso debería darnos una buena visión del mundo cuando estamos mirando hacia abajo. Esto es bueno. Y puedes hacer todo tipo de ajustes a esto para que se vea justo para lo que quieras. Como, ahora, creo que quiero acercar un poco la cámara. De negativo 500 a tal vez negativo 450 para que se vea bien. Y déjame levantarlo en el cielo a unas 100 unidades en el eje Z. En el eje Z, está arriba en alrededor de 100 unidades. Esto es solo para enseñarte, siéntete libre de ajustarlos a algo con lo que te sientas cómodo. Pero para mí, esto es bueno para el platforming. Llegamos a ver mucho de los antecedentes. Llegamos a ver el suelo de las plataformas cuando estamos sobre ellas. Esto es lo suficientemente genial. Bien, ahora en el siguiente video, solo agreguemos algo de arte al mundo porque tenemos marcado un movimiento básico de personajes Tenemos algún movimiento razonable y saltos, y hemos visto cómo poner algunas plataformas en el mundo. Hagámoslo en el siguiente video. 26. 25 Cómo agregar recursos de plataforma 3D de Quixel: Todo bien. A la hora de agregar activos, lo primero que vamos a hacer es un poco de organización. Así que asegúrate de crear una carpeta en tu carpeta de contenido, y por favor llámala entorno. También he agregado una carpeta bajo llamada Village porque realmente quieres tener tus activos de entorno organizados y luego crear un blueprint y llamarlo plataforma Village Y el tipo de plano que debes crear es un simple plano de Actor Muy recomendable. Ahora, cuando haces doble clic dentro de ese plano. Oh, abra el editor de planos completo, ¿de acuerdo? Observe, es un objeto vacío simple básico. Y si entro al juego y lo arrastro y lo pongo delante del jugador, no hay nada. Ahora agreguemos en algunos activos ambientales. Entonces, si eres un modelador de tres D y tienes las habilidades, simplemente puedes diseñar tus propios modelos e importarlos. O puedes agregarlos desde NRL Engine Marketplace. Personalmente, solo por hoy, voy a mostrarte cómo usar QuislBdge Ahora en Quisle iniciarás sesión usando tu cuenta de desarrollador de UnrlEngine Y luego déjame simplemente escribir bridge ya que estamos en Quisle Bridge y teclear buscar Y veamos qué trae a colación. Todo esto es núcleo. seleccionar el puente de piedra japonés, y lo estoy trayendo en baja calidad. La razón por la que lo estoy trayendo en baja calidad es porque este es un juego de 2.5 d, y no lo cargo con muchos activos innecesarios en términos de complejidad Eso pone mucha presión sobre la GPU VA. Eso es una cosa de optimización, pero puedes hacer lo que quieras. Una vez descargado, puedes agregarlo rápidamente al proyecto. Una vez que hayas terminado, agregándolo al proyecto, simplemente volveremos. Observe que ahora hay una nueva carpeta antigua de mega escaneos y entra en ella, Puente de Piedra Japonés y haga doble clic en el Puente de Piedra Japonés. Ahora bien, si bien tenemos este activo aquí, si solo lo arrastramos y soltamos en nuestro pueblo de plataformas, no va a tener ninguna colisión. Entonces lo que quieres hacer es dentro de los detalles, quieres buscar colisión. Lo que nos da acceso a todos los ajustes de colisión. Asegúrese de seleccionar la malla de colisión simple para que sea su propia malla base, bien. Asegúrese de seleccionarlo para que su malla esté siendo utilizada para esas colisiones No debería estar en ninguno. Debe estar en su propia malla. Y luego establezca su complejidad de colisión para usar la colisión compleja de la manera más simple. Básicamente, se asegura de que la colisión sólo funcione en la parte donde hay tres objetos D reales. Es un cambio realmente genial, simple. El jugador puede caminar por aquí, pero todo lo demás tiene colisión funcionando. Ahora con ese setter, volvamos a la plataforma Ahora, dentro de la plataforma, estoy golpeando Control y barra espaciadora, y solo soy dragón dejándolo caer ahí. Y con ese arrastrar y soltar, entremos al juego, y ahí está. Y cuando le pego a play, el jugador puede caminar sobre él, lo cual es realmente genial. Lo cual es realmente genial. Y simplemente podemos obtener esto y copiarlo y pegarlo, y luego arrastrarlo hasta aquí. Entonces ahora tenemos un pequeño puente se está haciendo, lo cual es realmente genial. Bien, lo cual es muy, muy genial y muy, muy simple de tener. Y si ahora queremos empezar a hacer plataformas, podríamos simplemente obtener esta copia y pegarla, arrastrar esto aquí y subir esto. A ver si el jugador puede dar el salto. Viniendo aquí. Boom, y el jugador puede dar el salto. Esa es la forma sencilla de importar activos, asegúrate de que tengan la colisión adecuada para tu 2.5 el juego de plataformas Un último consejo es tratar de. Hay un par de cosas más que podríamos hacer con las plataformas, como agregar seguridad en salto, pero no recomiendo hacer eso Creo que es mejor probar tus saltos. Es menos dolor de cabeza para ti en términos de corrección de errores y otros problemas, y es mejor diseñar niveles limpios para que cada salto sea posible. Con eso, sigamos agregando algo de ambiente al mundo que podamos darle vida un poco más. Entonces agregando en un ambiente de tres días. 27. 26 Cómo agregar activos del almacén de motores irreal para tus entornos: Todo bien. Así que ahora estamos en la tienda de Epic Games, y ahora nos hemos ido, y hemos escogido un entorno. Encuentra cualquier ambiente que te guste. En mi biblioteca, encuentro que tengo un par de ambientes. Si quieres que sea sencillo, podrías recoger cualquiera de los motores Unreal muestras gratis Entonces, como ahora mismo en el marketplace, si entras y estas cambian semana a semana dependiendo de cuando recibas este tutorial, hay un cavins gratis Hay un par de otros activos como si hubiera una calle París estilizada Estos están disponibles para usted de forma gratuita para usar en proyectos de aprendizaje, así que siéntase libre de utilizar cualquiera. Por hoy, sin embargo, el ambiente que realmente quería agregar fue este ambiente estilizado, y agregarlo a un proyecto es realmente simple Simplemente haz clic en Agregar al proyecto. Usted selecciona su proyecto, y lo agregará al proyecto. Ahora, en el siguiente video, te voy a mostrar cómo acceder a todos los entornos aquí en tu proyecto, y nos metemos en uh, pasando de ahí a algunos otros pequeños detalles técnicos. Ahora, vamos a entrar en eso. Estoy aquí esperando una descarga. No voy a hacer un video largo ya que todos esperamos. Sólo tienes que pasar al siguiente video. 28. 27 Agregar recursos Parte 2: Todo bien. Por lo que he agregado la sien Infinity Blade al proyecto. Entonces entremos y veamos qué obtenemos. Entonces ahora notarás que hay algo del Parque Ambiental dos, que tiene planos, efectos, mapas, materiales Lo tiene todo, ¿verdad? Pero comencemos con las medidas, ¿no? Entonces estas son las medidas. Esos son los tres objetos D que podemos usar. Y si miramos al mundo ahora mismo, entonces hay un par de cosas. Ahí está el área activa. Y en el juego de 2.5 d, esta línea de aquí es el área activa donde está el jugador. Y luego está todo esto por aquí. Ese es el trasfondo. Y el trasfondo es algo a lo que queremos añadir algo de vida. Entonces hagamos esto paso a paso. Para empezar, agreguemos algo de vida al suelo. Así que simplemente seleccionaremos el terreno. Y en cuanto a materiales, cambiaremos el material. Voy a buscar un material que sea más el suelo. Entonces déjame buscar terreno. Ahí está el suelo, hay material de presa, hay tierra de mascotas. Déjame hacer tierra de presa para comenzar. Veamos cómo se ve esto. Todo bien. Así que ahora, de repente, el suelo debajo del jugador se ve mucho más granular, mucho más real. Entonces lo siguiente que haremos, agreguemos en algunos antecedentes. Entonces déjame ver. Entonces, dentro de esto, está este enorme pilar por aquí. Déjeme agregar eso en. Entonces, incluso solo agregando el suelo y el pilar, poco a poco vamos obteniendo un ambiente mucho más animado. Permítanme agregar un par de activos más. Voy a añadir una casita por aquí. Observe que esa es una casa muy grande. No quiero que esté aquí como una casa grande, la seleccionaré. No. Interesante. ¿Por qué es eso? Bien. Eso fue definitivamente una interacción. Voy a mover esto un poco más atrás allá contigo. Entonces tenemos ese gran templo en el fondo, y así es como se agrega en activos. Ahora, dependiendo de lo que quieras y cómo quieras que sea el aspecto de tu entorno, puedes agregar diferentes elementos al mundo. Ahora, otra cosa es, te darás cuenta de que ahora mismo podemos ver los bordes del mundo. Lo que podemos hacer para dejar de ver los bordes es que puedes seleccionar rápidamente el objeto de suelo, que es el piso. Vaya a escala y simplemente lo escalaremos a unos 50 en todos los lados. Entonces ahora, de repente, está completamente escalado, así que no podemos ver sus bordes Parece terreno general yendo a la distancia. Si 50 es demasiado grande, está bien. Nosotros hacemos 25, seguirá teniendo el mismo efecto. Alternativamente, podría configurarlo para que haya múltiples baldosas de tierra que se múltiples baldosas de tierra que extiendan en diferentes direcciones. Simplemente no sea demasiado intensivo en recursos. Ahora bien, tengan en cuenta nosotros como desarrolladores vemos todo esto sin embargo, un jugador solo verá esto por aquí. ¿Bien? Ahora, vamos a ajustar el sprite para que encaje un poco mejor con el mundo tal como es Queremos que tenga un material que le permita proyectar sombras. Como hay tanta textura por todas partes, tener al jugador proyectando sombras va a ser mejor para el look. Vamos a meternos en eso en el siguiente video. Y en realidad, antes del siguiente video, quiero que sepan que voy a estar haciendo alguna adición general de activos. No será ningún activo en la línea principal donde realmente está el juego, solo algunos activos del entorno. Tú también puedes hacer eso. Es solo escaparatismo para el fondo al siguiente video. 29. 28 Mírame hacer un diseño de nivel básico y cómo pienso en los niveles básicos: Bien, entonces este video es simplemente un poco mal acelerando a través de algunos básicos por falta de una palabra mejor. Ni siquiera lo llamaré diseño de niveles, principalmente solo colocando algunas cosas dentro del nivel y solo ajustándolas. Es ese diseño de nivel, supongo que eso es diseño de niveles. Pero esencialmente solo usando estos activos y tratando de posicionarlos de una manera que sea lógica o yendo desde el principio hasta el final del nivel. Eso es genial. Y entonces solo quiero que lo haga tan agujero Oh, espera. ¿Qué? Bien. Entonces estoy usando mucho del teclado. Déjame incluso mostrar el teclado, en realidad, porque estoy usando mucha esperanza y pegando cosas Uh, eh. Bien, eso es genial. Pero entonces quiero, así que ahí está este arco genial. No, estoy borrando eso. No necesito eso. Esencialmente, solo quiero tener un conjunto de un par de activos diferentes que sentido lógico tener para que haya una especie de entorno. Bien, eso es sólo un plato. Ahora bien, si la savia bueno que tenemos alguna continuidad. Y luego agregaremos algunos acantilados. Voy a rotar estos porque sin la rotación, no tienen ningún sentido. Perfecto. Y luego deja caer esto al suelo, muévalo ligeramente hacia la izquierda y luego trae esto más atrás. Entonces tenemos eso. Déjame ver qué vería el jugador. El jugador verá como rock, y oh, en realidad, déjame cambiar la posición del sol. Recuerdo correctamente, ajústelo. Solo el posicionamiento del sol un poco. Oh, para ajustar la posición del sol, estoy presionando Control L. Solo control y L. Quiero decir, no puedo tener que sea totalmente oscuro. El color estará bien por ahora. A lo mejor no va a estar tan bien. Por alguna razón, mi sprite está siendo súper luminoso. Entonces todo lo que voy a hacer es volver al héroe. Voy a seleccionar ese papel, flip book, enmascarado, iluminado Déjame ver. La iluminación suele ser lo que es. Oh, Dios mío, no. Déjame ver. Está siendo demasiado brillante. A ver. Color brillante. Déjame bajar su valor de brillo desde aquí. Ojalá eso ayude a reducir lo brillante que es. Vamos a ver jugar. No, ayudé un poco, pero es simplemente brillante. Creo que lo que tengo que hacer es ir a la configuración del proyecto. Y luego voy a buscar algo llamado auto exposición. Sí, ya ves que este auto exxposures el que nos está metiendo Voy a hacer clic en Auto Exposure off. Y con eso, veamos cómo se ve el mundo. Sí, esto es mucho más razonable con Auto Exposure O. Pero ahora déjame ajustar Control L. Déjame ajustar la posición del sol una vez más. Sí, mucho más razonable. Y ahora echemos un vistazo a qué material. Está usando un material de máscara con sprite iluminado. Queremos sprite sprite lit material. Bien, no me está enseñando el material aquí, pero para arreglarlo, volveré aquí. Y luego voy a solicitar, déjame ver los ajustes. Una de las configuraciones debe ser una de las configuraciones aquí debe ser Mostrar contenido del motor. Bien, entonces ahora está mostrando el contenido del motor. Ahora que está mostrando el contenido del motor, debería ver más materiales. Entonces voy a decir sprite. Tienes que estar bromeando. No, necesito Sprite iluminado. Oh, sprite. Aunque necesito asegurarme de que estoy usando el nombre correcto mask unlit sprite material Y lo enmascaró. Tienes que estar bromeando. Oh, Dios mío. ¿Dónde está el material de sprite iluminado con máscara Tienes que estar bromeando. Estaba escribiendo este material. Bien, entonces no me está enseñando eso aquí. Déjame regresar. Volviendo aquí bajo ajustes. Déjame ver. Mostrar localización, mostrar contenido para desarrolladores, Mostrar contenido para desarrolladores. Eso no debería cambiar nada. En realidad, déjame ver el contenido del motor. No. No, no necesito nada de eso. Esto en realidad va a ser difícil de encontrar. ¿Dónde está ese material? Vuelve al papel héroe, flipbook, busca sombra proyectada sombra El flipbook es falso, lo he puesto en verdad Entonces, veamos, ¿proyecta sombras correctamente todavía? Está proyectando una sombra de algún tipo, pero déjame ajustar el sol doble check. ¿El sol ya está ahí? Sí. Ahora está proyectando una sombra algo correctamente. Eso está bien. Eso va a ser suficiente. Entonces solo el sol una vez más, hombre, déjame alejarme un poco mientras estoy ajustando esto. ¿Eh? ¿A dónde moví el sol? Ahí está. Camino de regreso ahí. Quiero que venga aquí. Ya sabes, está trabajando en que básicamente es hacerlo así que el sol se mueve hacia la dirección negativa. Entonces no estoy acostumbrada a moverme así. Por eso estoy un poco luchando. Pero sí, ahí estamos con una sombra adecuada sobre nuestro despecho y una iluminación adecuada. Creo que esto es mucho mejor. Sin embargo, veamos el espaciado lógico del mundo. Entonces lo que vamos a configurarlo como es que lo vamos a hacer para que el personaje jugador comience aquí. Entonces, ya que está comenzando aquí, permítanme ocultar el contenido del motor. Eso es traquetear todo. Seleccionaré medidas. Y luego quiero que empiece el jugador. Entonces el jugador empieza aquí, lo que significa que puedo ajustar esto y hacerlo negativo 90 grados. Así que aquí es de donde va a empezar el jugador , ¿de acuerdo? Y entonces quiero detrás de eso que sea esto. Entonces está claro Oh, hombre, eso es una especie de activo terriblemente colocado Déjame conseguirlo y copiarlo y pegarlo , traerlo de vuelta aquí. Quiero que quede claro para el jugador que no hay vuelta atrás desde aquí. Bien. Pero eso es recorte. No me gusta ese recorte. Por recorte, quiero decir que esos dos activos se están conectando de una manera que no parece natural Entonces voy a traer esto de vuelta. En realidad, lo giro solo podría hacer eso, y eso resuelve el problema de recorte Esto se ve un poco más natural. A lo mejor déjame moverlo un poco hacia adelante. Bien. Perfecto. Así que tenemos. Esto parece razonable. Y luego cuando le pego a play, en realidad, déjame mover rápidamente el activo del jugador de aquí. Ahora vamos, vamos a seleccionar ese activo del jugador, moverlo hacia atrás. Quiero que esté justo aquí. Esto es bueno. He golpeado play. Bien. No está mal. Sin embargo, no me gusta la colisión de esta cosa. No me gusta su colisión. Déjame ahora hacer una comprobación rápida. ¿Está ajustando el posicionamiento en la X o Zaxs? Es que parece estar ajustando donde está el jugador en uno de los ejes. no me gusta porque eso significa que va a empezar a interrumpir donde está el jugador Entonces seleccionaré esto de nuevo. Voy a mover su posición. Muévelo solución aquí para que sea cero, cero en el eje y. Esto realmente puede permanecer en la misma posición. No va a cambiar nada. Oh, no, está dejando un agujero. No quiero que haya ese agujero. Vamos a avanzar un poco esto también. Entonces aquí es donde empieza el jugador. Pero para protección, vamos a sumar en algunos límites. Ahora bien, ¿a qué me refiero con encuadernado? Lo que vamos a hacer es que vamos a agregar lo que queremos que se llame bloque? Sí, este es un volumen de bloqueo. Y vamos a colocar esto justo por aquí. ¿Está en el lugar correcto? No. Vamos a moverlo hacia adelante aquí. Básicamente, es un muro invisible, por lo que el jugador no puede cruzar. Entonces ahora cuando le pego play, el jugador no puede cruzar. El jugador no puede cruzar, lo cual creo que es genial. Todo bien. Ahora que tenemos eso arriba, voy a sumar también otra cosa. Creo que voy a añadir, déjame ver. Vendré aquí efectos visuales, post procesamiento. Niebla de altura exponencial. Ahora, con esa niebla, veamos. Quiero agregar niebla de altura exponencial. Densidad de niebla, déjame aumentar eso Chicos bien. Ah. Esta niebla no está interactuando bien con el mundo, así que voy a borrar eso. Vendré aquí a nuestra niebla de altura exponencial de línea base Oh, tiene que ser muy, camino, muy alto para empezar a interactuar. Entonces voy a plantear esto un poco. Estoy tratando de volver a subir al mundo. Fue mi actor principal. Héroe, haz doble clic sobre él para que pueda volver a levantarme. Bien, entonces seleccionaré la niebla de altura exponencial y luego dejaré levantarla. Bien, entonces sí, eso agrega un poco más de niebla. Así que en torno a los 3,000 Perfect. Eso creo que es la cantidad justa de niebla. Ahora necesitamos llenar estos vacíos porque hay un agujero en el nivel ahí que no me gusta. A lo mejor voy a capturar esto. copiaré y pegaré, lo arrastraré aquí, lo traeré de vuelta, y luego lo voy a rotar un poco para que no parezca que es la misma formación rocosa. Haz clic en eso, trae esto de vuelta también. Veamos cómo se ve de principio a fin. Parece que ahí hay alguna formación rocosa. Formación rocosa otra vez. Y sigamos adelante. Mira, aquí hay una torre de vigilancia como cosa, pero no puedo decir de qué se trata. Estamos solo eso para que esto esté más cerca del suelo y veamos eso. Después están estas dos plataformas. Pero quiero que haya aún más cosas aquí. Copia y pega ese trapo esto aquí afuera. No, esto no va a quedar lo suficientemente bien. Pero déjame girarlo un poco, ver si encaja. Bien, una especie de tipo encaja una especie de tipo de ish. Esto es una especie de sa. Tráelo aquí. ¿Bien? Como que encaja ahí. Alguien notará esta brecha creo que la gente se dará cuenta. Bien, entonces seleccionaré esto. Haré doble clic en eso, levantaré esto un poco, lo moveré un poco hacia atrás para que esa formación rocosa esté ahí. Yo sólo quiero entonces lo rotemos. El eje X, no. Gírela un poco en la Y. Sólo un poco. No quiero que el jugador vea nada raro, pero necesitamos que se llenen todos estos huecos. ¿Cómo se verá desde el suelo? Sí, ahí hay recorte, así que lo voy a mover hacia atrás Bien, entonces ahora no hay recorte. Esto parece una formación rocosa propiamente dicha. Pero ahora estos dos, voy a seleccionar a ambos usando turno, traerlos un poco más cerca aquí. Y con esos dos ahí, voy a sumar. Quiero otra malla. Necesito otra malla. Necesito otra malla, dame algo genial. Creo que qué quiero escaleras, tal vez otra puerta. No. Lo que quiero es una montaña. Ya que quiero dejarme ver primero si hay una montaña en estos activos. No. Entonces para que yo tenga una formación de montaña, solo voy a hacer doble clic en esto, empujar esto hacia atrás, y luego voy a escalarlo. Y luego moverlo hacia atrás, hacia atrás un poco. Entonces déjame copiar y pegar eso. Y luego voy a arrastrar esto justo por aquí. Entonces voy a empujarlo una vez más para que coincida ahí arriba. Y luego por último pero no menos importante, voy a conseguir esto, y luego voy a copiarlo y pegarlo. Pero la pasta, la voy a mover a lo largo del eje X por ¿sobre qué? Muévelo a lo largo. Déjame alejarme un poco. Déjame arrastrarlo justo aquí. Que el mundo siga adelante desde aquí. Arrastra eso. Boom. Entonces me encargaré de esto. Copia y pega eso, arrástralo aquí. Voy a darle vueltas sobre la Y, acercarla, copiarla y pegarla otra vez, arrastrarla aquí, girarla otra vez en la Y. Empujarla aquí y luego meterla aquí. Ahora bien, creo que en términos de como diseño de nivel súper básico o más bien diseño de entorno, esto debería funcionar. Así que voy a bajar justo por aquí. Cuando le pego play, el jugador empieza desde aquí. Realmente no pueden ver mucho de otra cosa. Esto parece algo normal. Nada muy sas todavía. Te mueves. Estas son algunas formaciones rocosas. Yo necesitamos agregar algunas plataformas ahí para darle algo de vida. Pero entonces sigues adelante, Oh, estas son las pequeñas plataformas que estamos usando para probar el salto. Eso es genial. Bien, adiós. Sigue moviéndote. Oh, mira esto. Hay como estas dos estatuas de piedra por aquí. Me pregunto qué pasará después. Oh. Oh, esto no está en el suelo, pero eso es fácil de arreglar. Y luego muévete, muévete, muévete. Oh, zona de Bosht. Bien, aguanta. Sostén, aguanta. Entérate de esto. Asegúrate de que esté en la posición correcta, tráelo al suelo un poco. Déjame seleccionar al jugador. ¿Dónde está el jugador? El jugador, déjeme moverlo a 3 mil, que está justo por aquí. Lo he hecho avanzar. Entonces hagamos esta prueba, rap, ra, ra, ra, ra, boom. Y entonces esta zona de aquí va a ser donde la pelea de jefes es dura. Y luego habrá que haber un volumen de bloqueo ahí. Para que el jugador nunca tenga la idea de cruzar eso. Entonces para hacer eso, déjame ver qué querría agregar Déjame simplemente no, no, no, en realidad. Sí, no, voy a usar esto. No, no quiero usar esto. Quiero usar otra cosa, algo simple, que simplemente bloqueará esa zona. Oh, esto se ve bien. Esto se ve bien. Entonces voy a conseguir que lo conecte por aquí. Y boom, ahora el jugador no puede pasar por aquí hasta que haya derrotado al jefe final. Ahora también vamos a escalar eso un poco. Y ahora que está escalado, déjame retroceder un poco Traerlo adelante y perfecto. Esto es. Creo que esta es la línea de base. Bien, este es un diseño de nivel lo suficientemente bueno generalizado. Ahora déjenme seleccionar al jugador. Arrástralo todo el camino de regreso todo el camino de regreso. Por aquí. Yo juego. Entonces aquí es donde empieza el jugador y retrocede. Bien, un momento, alguien está en mi puerta. De vuelta de contestar a mi perro. Esto es algo de desarrollo de juegos realmente normal, por cierto. Um, la vida no se detiene porque estás buceando en el juego. Bien, entonces cuando miro esto ahora, no es lo mejor de mi vida. Pero todos lo hacen, siempre puedes, con más tiempo y más amor, sumar aún más cosas al mundo. Es genial. Hmm. En fin, sigamos adelante. Y en el siguiente video, vamos a ir un poco más profundo con plataformas y ver cómo hacerlo, así como, ya sabes, gestionar un sistema de muerte y salud. Esto ha sido un poco diferente. Esto no es realmente un video tutorial. Espero que hayas aprendido algo. Quería mostrarte un poco de cómo agregar y organizar los activos para hacer un nivel. Pero estoy tan segura de que puedes hacer de una manera más bonita que esta. Y cuando lo hagas, oye, envíame la foto, ¿de acuerdo? De hecho me interesa. Buen personal, vamos a movernos. 30. 29 Comparte tus comentarios sobre la calidad de la enseñanza y el aprendizaje: Ahora que has pasado algún tiempo en el curso y aprendiendo, me interesa recibir tus comentarios sobre cómo se está recibiendo la enseñanza y cómo va tu aprendizaje. Sé lo que significa pasar básicamente de cerca de la parte inferior de la clase a la cima. Y qué estrategias se utilizan. Entonces, si estás teniendo algún reto para aprender, solo comunícate conmigo. Contesto a todos los mensajes dentro de las 24 horas. Y luego, en cuanto a mi estilo de enseñanza, por favor dame comentarios sobre si algo no está claro o no está bien explicado y demostrado. Realmente es mi responsabilidad asegurarme que todo el conocimiento se presente bien y tengas todo lo que necesitas. Quienes practican todo lo que se enseña en este tutorial. Además de eso, estamos avanzando con más lecciones sobre cómo crear sistemas de combate e IA para la plataforma 2.5 d. Sigamos adelante y p aprendiendo. 31. 30 Curso Comprobación del conocimiento del progreso: Ahora, en este video, quiero que hagas un chequeo rápido de conocimientos, y solo necesitas hacer dos preguntas. Número uno, ¿puedes hacerlo? Número dos, si no tienes la capacidad de hacerlo, retrocede, vuelve aprender y practicar haciéndolo una o dos veces, y entonces eres capaz de avanzar. Esta es la clave más importante y fundamental para aprender realmente las cosas Con eso, repasemos cada una de las cosas que has aprendido hasta ahora. Así que empezamos aprendiendo a conseguir Unreal Engine y hacer un proyecto en Unreal Y luego pasamos a cómo hacer un nivel básico de desarrollador que sea sencillo para que empecemos a llenarlo con lo que necesitamos. Y una vez que terminamos de averiguar cómo configurar ese nivel de desarrollador, seguimos instalando papel Z D, que es extraoficialmente compatible plug in, que vamos a utilizar para administrar nuestros diferentes activos de sprites y animaciones Luego pasamos a agregar un personaje básico de jugador al mundo, que va a ser lo que estaría usando para interactuar con nuestro mundo de juego. Esta fue la configuración inicial sin agregar ninguna habilidad de moverse por el mundo para el personaje del jugador. Y luego pasamos a cómo importar arte de sprites a Unreal Engine Y luego pasamos a configurar animaciones inactivas para el personaje del juego. Una vez hecho eso y habíamos interactuado con Unreal Engine, pasamos a algunos consejos generales sobre cómo planificar tus diseños de juegos como desarrollador de juegos, que básicamente está destinado a enseñarte a reducir la cantidad de tiempo perderás y concentrarte en las cosas que has diseñado para tu Y después de eso, pasamos a comprender cómo funcionan las entradas del controlador dentro del motor Unreal y cómo utilizarlas. Ahora, con eso marcado, pasamos a cómo agregar realmente movimiento, movimiento lateral izquierdo y derecho al personaje del jugador Y justo después de eso, pasamos a agregar realmente la animación para correr cuando el jugador está haciendo las acciones de movimiento. Y luego hay múltiples videos sobre cómo agregar el sonido adecuado para saltar, aterrizar y moverse en el mundo a través de correr. Y luego nos adentramos en cómo agregar tres activos D al mundo, darle algo de vida y cómo trabajar en su colisión para que sean interactuables. Y el último video fue todo sobre diseño de nivel general y algunas recomendaciones sobre cómo organizar tus activos en tus niveles. Y con todo eso fuera del camino, ese es el final de los fundamentos generales del curso. Y ahora que tenemos esa base trazada. adelante y adentremos en una comprensión mucho más profunda de la IA en el juego, así como de los sistemas de combate. Si tiene y tiene una buena comprensión de todo lo cubierto hasta el momento, no dude en seguir adelante. Si aún no se ha marcado algo, siéntase libre de regresar y aprender antes de progresar Con eso fuera del camino, sigamos adelante y sigamos aprendiendo el desarrollo de juegos. Vamos. 32. 31 Restablecer el nivel de desarrollador en Clear: Ahora para hacer algunos preparativos rápidos para lo que vamos a hacer a continuación, ahora vamos a apartar y separar el nivel principal, que es un nivel, que habremos creado al final de todos estos tutoriales y nuestro nivel de desarrollador. Ahora te darás cuenta ahora mismo que tenemos un montón de activos colocados aquí, pero hagamos algunos ajustes. Así que controla la barra espaciadora ahora mismo bajo niveles. Tenemos un nivel desarrollador, que es este. Simplemente voy a seleccionarlo, y voy a duplicar. Bien, ahí está la opción duplicar. Y después de golpear duplicado, voy a llamarlo 001 dash nivel uno. Bien. Entonces ese es su nombre. 001 dash nivel uno. Y después seleccionaré el nivel de desarrollador. Alejar. Y lo que sí quiero es eliminar muchos de estos activos. Entonces a nivel de desarrollador, voy a simplemente borrar eso, eliminar eso, no quiero eso. Voy a borrar ese volumen. Quiero que el nivel de desarrollador sea lo más escaso posible porque quiero que el nivel desarrollador tenga solo un puñado de activos Es donde vamos a estar probando nuestro MAI, no hay necesidad de que tenga muchas cosas dentro de él. Siempre es bueno tener el personal solo para aprender sobre cómo colocar activos. Ese era el propósito de ese video. Pero ahora tenemos esto, y luego voy a seleccionar al personaje jugador, y voy a ajustar su ubicación en el eje X de menos 8,000, seleccionar a nuestro héroe a cero. Entonces ahora está de vuelta aquí. Entonces he seleccionado el terreno. Y voy a notar lo que estoy dando click aquí. Va a apenas revertirlo ligeramente. Entonces voy a restablecer esa propiedad. He hecho clic en Restablecer la propiedad, y eso debería ser eso Y ahora que he restablecido eso por aquí, lo he restablecido a su material predeterminado haciendo clic en ese reinicio de aquí, haciendo clic en eso. Alejemos el zoom. Seleccionaré esa plataforma extra y la eliminaré. Y ahora volvemos a aquí con solo nuestro personaje básico de jugador. Bien. Ahora, con esto listo para rockear, sigamos adelante y adentrémonos en algunos sistemas de combate. Sin embargo, también notarás que si hacemos doble clic en el nivel uno, eso es Sat, todavía tenemos esto. Entonces, cuando queramos venir a ver todos estos activos en juego, podemos venir aquí. No obstante, quiero volver al nivel de desarrollador directo, donde desarrollaremos nuestros sistemas. Esto es. Y siempre recomendaré tener un nivel desarrollador para desarrollar los sistemas, y luego puedes agregarlos a los propios niveles. Eso hecho, sigamos adelante. En el siguiente video, vamos a crear un sistema de salud sencillo. 33. 32 Cómo crear un sistema de salud sencillo Parte 0: Este es un video actualizado que muestra cómo crear un widget. Ahora, lo primero es lo primero, asegúrate de mantener las cosas organizadas. Tienes una carpeta llamada interfaz. Ahora aquí, el widget ya está creado. Se llama Barra de salud, pero esto te está mostrando cómo crearla. Para crearlo, simplemente haz clic derecho y luego quieres bajar a la interfaz de usuario y seleccionar Widget Blueprint Entonces va a decir, Oye, crea un widget de usuario. Sí, y ahora se crea nuestro plano, y puedes llamarlo barra de salud Aquí, sólo voy a llamarlo salud Br dos. Ahora que se crea nuestro Widget Salud dos, simplemente haz doble clic sobre eso. Ahora nos lleva a la interfaz del Widget donde llegamos a decidir qué se muestra en la interfaz de usuario cuando llamamos al widget. Va a tener mucho sentido en el siguiente video. Sólo tienes que seguir adelante. Lo primero es que queremos hacer click en Zoom para encajar. Es ese pequeño icono de ahí. Haz clic en Zoom para encajar, eso es bueno. Y queremos agregar el primer elemento de interfaz de usuario para el widget. Vienes a la búsqueda y quieres buscar Canvas. Ahora el panel Canvas básicamente nos va a dejar arrastrar y soltar en nuestra pantalla. Se puede ver que toda la pantalla está aquí. Ahora que tienes la pantalla arriba, simplemente vamos a agregar algo de texto, vuelve aquí y queremos buscar texto, y seleccionaré el texto y lo arrastraré justo por aquí. Ahora que tengo ese texto arrastrado aquí, voy a pasar a las propiedades del bloque de texto y voy a renombrarlo a barra de Hel Y con eso, he golpeado Control S para servir, y ahora en el juego, tienes un widget con la barra de salud del texto que es utilizable. A continuación, entremos en la creación del sistema de salud. 34. 32 Cómo crear un sistema de salud sencillo Parte 1: Ahora en este video, lo que vamos a hacer es vamos a crear un sistema de salud muy sencillo, y la razón por la que la salud es importante es porque eso es lo que hace que los juegos sean divertidos, sabiendo que podrías fallar y tu personaje claro puede morir. Ahora, ahora mismo, nuestro personaje de línea puede simplemente moverse y atascarse. Vamos a agregarles rápidamente algo de salud básica. Si nosotros, vamos a cerrar rápidamente todas las demás ventanas y abrir el jugador ¿verdad? Iremos y seleccionaremos el plano del jugador, bien, ahora mismo se llama Héroe ¿Por qué es este sonido de salto inclinado? Debería ser sonido de aterrizaje de salto, ¿de acuerdo? Ahora que estamos fuera de eso. Todo lo que vamos a hacer es que vamos a sumar un número o más bien variable que contendrá la salud del jugador. Entonces ahora mismo, vamos a ir a las variables, que está por aquí. Haremos clic en AD. Seleccionaremos en lugar de Bolean, vamos a configurarlo como un entero ¿Bien? La razón por la que queremos configurarlo como un entero es porque solo queremos hacer la salud 100 y luego aquí, en vez de llamarlo NUVA, llamémoslo salud del jugador Bien. Y ahora que tenemos eso ahora para agregar el widget a la pantalla, simplemente comenzaremos desde el segundo nivel de la secuencia por ahí. Lo arrastraremos y vamos a escribir Crear Widget, lo que va a llevar a ese guiño de Crear Widget Y luego es pedir una clase. Simplemente escribiremos Health Bar que es la clase que creamos. Y luego una vez que hayamos terminado con eso, simplemente arrastraremos esto, y luego simplemente vamos a escribir add to view port, que va a mostrar esto. Entonces agregaremos eso a la ventana gráfica y luego devolveremos el valor, lo arrastraremos al propio objetivo Y con solo eso, bien, con solo eso, compilamos, hemos golpeado Compile, y luego entramos en el nivel de desarrollador, y cuando pulsamos play, ahora, notamos en la esquina superior izquierda, hay texto que dice barra de salud, y ahora tenemos ese widget. Cambiémoslo de algún texto a una barra de salud real numéricamente hablando, y luego descubriremos cómo agregar algún daño para que podamos ver que esa barra de salud clara va bajando 35. 33 Cómo crear un sistema de salud sencillo Parte 2: Ahora una barra de salud, sí, volvemos al widget de barra de salud que tenemos. Una barra de salud es fundamentalmente una barra de progreso. Una manera fácil de acceder es simplemente voy a escribir progreso. Ahí estamos. Tenemos nuestra barra de progreso. Voy a conseguir esa barra de progreso, y la dejaré caer en el panel de Canvas. Bien. Ahora, déjame moverlo por aquí. Ahora tenemos esa barra de progreso. Déjame moverlo justo aquí arriba. Déjame extenderlo un poco, ya sabes, aumentar su ancho. Entonces esta barra de progreso va a ser lo que contenga nuestra salud. Lo único que vamos a cambiar para empezar es simplemente después de hacer clic en él, simplemente lo cambiaremos para que sea rojo. Cambia su color para que sea rojo. Eso es todo lo que necesitamos por ahora. Y luego le vamos a hacer algunos ajustes menores. El grande estando en la zona superior, fíjate que hay una opción para hacerla variable. Lo haremos variable. Y entonces lo vamos a llamar jugador barra de salud. Así es como lo vamos a llamar. Ahora que nuestra barra de salud para jugadores lleva el nombre correcto aquí, tenemos el texto que dice barra de salud. Tenemos la barra de salud del jugador, y tenemos nuestro lienzo listo. Ahora podemos pasar a ajustarla para que el jugador vaya a ser lo que controle hasta dónde está esta barra de progreso. Como es ahora mismo, si entramos en el nivel de desarrollador y golpeamos play, notemos que la barra de salud no está mostrando ningún progreso, que en realidad no es lo que queremos. Queremos que esta barra de progreso coincida con la barra de salud uno a uno. Entonces, para hacer eso, necesitamos vincular estos dos hacia arriba. Entonces volveremos a entrar en el héroe. Y lo que realmente queremos es que este widget de barra de salud esté conectado con el componente entero de salud del jugador. Entonces, dentro del plano de los personajes del jugador nuevamente, iremos y miraremos el punto en el que todo se sigue agregando a la ventana, que está Así que justo después de crear el widget de barra de salud, lo agregamos a la ventana Esta vez, vamos a sumar en un par de pasos intermedios. Entonces lo primero que vamos a hacer es extender el espacio aquí porque va a haber mucho más sucediendo. Y desde el widget Crear barra de salud, que es que vamos a salir. Y desde el widget Barra de salud, ten en cuenta que este widget de barra de salud va a contener toda esta información. Tiene acceso a este texto, y tiene acceso a la barra de salud del jugador que ahora hemos convertido en una variable para que podamos acceder a ella. Entonces a partir de aquí, primero vamos a crear una nueva variable. Crear widget Salud B, si haces clic derecho, va a haber una opción aquí llamada promover a variable, selecciónala. Ahora bien, lo que hace promover a variable es que crea una nueva variable. El cual va a ser un elemento separado que almacena los datos del widget. Espero que eso tenga sentido. Si no lo hace, no te preocupes, te acostumbrarás en Unreal Engine Y vamos a llamar a ese widget de salud del jugador. Así es como se va a llamar esa variable. Ahora, ahora que tenemos aquí este widget de salud del jugador y es una variable, rompamos rápidamente este enlace y rompamos este enlace también. Ahora tenemos nuestro widget de salud del jugador justo aquí. Ahora, lo siguiente que vamos a hacer es que vamos a alargar del widget de salud del jugador. Y lo que queremos es que busquemos la barra de salud del jugador. Entonces simplemente, ya ves eso, conseguir barra de salud del jugador. Entonces ahora tenemos la barra de salud del jugador. Y para mayor claridad, la barra de salud del jugador es esta barra de aquí, y es la misma barra de salud del jugador de aquí que convertimos en una variable para que podamos acceder a ella. Ahora, ahora que hemos llamado a esa barra de salud de jugador, vamos a alargar esto y queremos establecer el porcentaje. Ahora bien, esto de aquí mismo, aviso establecido por ciento es lo que queremos hacer. Entonces simplemente fijaremos por ciento y si miramos, está buscando un porcentaje para establecer también la barra de salud. Ahora, este porcentaje establecido por aquí, ¿de acuerdo? Ese justo allá va a ser lo que usemos para cambiar la cantidad de salud en esa barra de salud. Ahora bien, para hacer eso de manera efectiva, pongamos esto por aquí. Permítanme arrastrar esto por aquí para fines de organización. Y así después de crear ese widget, vamos a arrastrar esto aquí. Espero que pueda ver esto con claridad. Entonces después de crear ese widget, lo vamos a establecer como un porcentaje, y luego terminaremos de agregar a viewpot y luego simplemente conectaremos esa barra de salud, más bien, perdón, obtendremos ese valor de retorno, y va a ser el que agreguemos al viewpot Ahora, espero que todo esto tenga sentido. Me estoy tomando esto lo más despacio posible porque hay muchas cosas que estamos manejando. Lo siguiente que vamos a hacer es que vayamos a la salud del jugador. Actualmente, la salud del jugador se configura como un entero y se establece en 100. Simplemente vamos a hacer un ajuste en lugar de un entero binario. Ya que necesitamos usarlo como porcentaje, vamos a configurarlo como flotador porque lo estamos cambiando a un porcentaje. Y luego vamos a conseguir la salud del jugador y la vamos a alargar y queremos conseguir salud del jugador y luego arrastrarla de nuevo. Y queremos buscar la función llamada divide. Y deberías ver eso. Entonces queremos usar divide. Y queremos dividir por 100 porque así es como se obtiene un porcentaje. Y ya que 100 es la cantidad máxima de salud que tiene el jugador, y entonces voy a arrastrar esto al porcentaje y eso es esencialmente todo lo que tenemos que hacer. Ahora, vayamos paso a paso. Así que desde el punto evento comenzar secuencia de reproducción, lo primero que hacemos es crear un widget, barra de salud. Y entonces simplemente vamos configurarlo como una variable llamada player Health widget. Vamos a apuntar a la barra de salud dentro de ella, y queremos establecer su porcentaje. Ahora vamos a conseguir la salud del jugador. Esa es la variable dentro del jugador. Lo dividiremos por 100 para obtener el porcentaje. Va a ir ahí en el porcentaje que solíamos establecer como barra de salud del jugador, y luego agregamos a la ventana Espero haberlo tomado realmente paso a paso. No quiero que te pierdas nada. Ahora vamos a compilar eso, y cuando golpeemos play, notemos que ahora la barra de salud está llena. Tenemos una barra de salud completa, y si volvemos al héroe, seleccionamos al jugador infierno, y lo ajustamos para que el valor predeterminado sea 90, compilamos. Ahora fíjate que está 90% lleno, está 90% lleno. Si vamos y configuramos el valor por defecto a diez, Ahora, está 10% lleno. Entonces ahora tenemos una barra de salud de trabajo donde la variable de salud del jugador determina qué tan llena está esa barra de salud. Ahora, volveremos a entrar. Permítanme configurar esto en una línea de base de 100. Entonces comenzamos con una barra de salud completa. Bien, empezamos con esa barra de salud completa. Y ahora, a continuación, vamos a crear algunos obstáculos simples donde cuando el jugador golpea ese obstáculo, cambia la cantidad de ayuda que tiene el jugador. Hagámoslo en el siguiente video. 36. 34 Crear un sistema de salud sencillo Parte 3 Agregar un objeto dañado: Ahora que tenemos una barra de salud básica en nuestro personaje jugador, vamos a agregar de manera sencilla para dañar al personaje. Entonces después de presionar la barra espaciadora de Control, he creado una nueva carpeta, y he llamado a esta carpeta objeto de daño, para que podamos tener un solo lugar para poner en ese objeto de daño. Ahora, dentro de esa carpeta, simplemente escribiré click y quiero crear una clase de blueprint Y en cuanto a lo que es, sólo voy a llamarlo actor de Blueprint, y luego sólo voy a llamarlo daño Objeto Porque esto va a ser algo muy sencillo de tener. Así que haciendo doble clic en el objeto dañado. Ahora voy a agregar en un cubo al objeto dañado. Entonces ahora hay un cubo a su alrededor, lo cual es bueno. Y con eso, entro en el nivel de desarrollador, y luego solo quiero colocar este cubo en algún lugar del mundo. Entonces lo he puesto en algún lugar del mundo justo delante del jugador, asegurándome, claro, que esté en el eje derecho, en la posición correcta. Ahora cuando intento acercarme a él, no pasa nada. Sin embargo, voy a entrar en esto. Ahora, voy a agregar una caja de sombreros a su alrededor. Así que simplemente haremos clic en Agregar. Y luego lo que queremos, queremos agregar en un colisionador de cajas, en realidad Vamos a agregar en un colisionador de cajas. Entonces el colisionador de cajas está ahí ahora mismo. Simplemente voy a escalarlo. Para que sea solo aviso puedo hacerlo demasiado grande, eso no es bueno. Justo afuera de la caja, ¿de acuerdo? Justo afuera. Eso es perfecto. Y luego en cuanto a colisión, voy a teclear colisión. Ahora, quiero que no sea dinámica de solapamiento. Quiero configurarlo para que esté configurado para que se superponga solo al peón Esa es una muy buena opción para seleccionar, para que ese colisionador sólo detecte el peón Con eso hecho, simplemente compilaremos y luego entraremos en el gráfico de eventos. Ahora, dentro del objeto mismo, tenemos este colisionador de cajas Simplemente voy a conseguirlo y luego hacer clic derecho y luego agregar evento, y luego en componente, comenzar a superponerse. Este es el que queremos. Entonces va a que va a sacar esto a colación. En componente comienzan solapamiento, ¿verdad? Esa caja. Entonces una vez que tenemos esto aquí en componente, comenzar a superponerse, ahora queremos saber, qué componente se superpone y qué hacemos? Entonces comencemos con algo sencillo. Vamos a arrastrar esto. Y entonces diremos destruir Actorself. Eso es todo lo que va a hacer. Una vez que empecemos a superponerse, ahora se va a destruir rápidamente para probarlo. En realidad, antes de continuar, hagamos un cambio. Ya hemos establecido comenzar a superponerse, destruir el yo actor. Pero hagamos otro ajuste, seleccionaremos nuevamente el colisionador de cajas y cambiaremos de solapamiento en el pn Vamos a cambiarlo de eso. Nos superponemos todo dinámico. Para que esto sea un poco más confiable. Entonces ahora, cuando golpeas play, desaparece, se destruye a sí mismo Así que hit play se destruye a sí mismo. Ahora, volvemos al objeto dañado. Si rompemos este vínculo, cuando entremos, fíjese en eso. Ahora se queda ahí. Pero sabemos a sabiendas que la caja de sombreros a su alrededor está funcionando. Esa es una buena manera de testificar caja está funcionando. Se destruye a sí misma. Ahora, con esa configuración, hagámosla ahora para que cuando se superponga con el héroe, le haga daño al héroe Bien. Entonces con eso en mente, volvamos aquí de vuelta al objeto de daño, y queremos agregar algunos nodos más. Más nodos. Aquí es como lo vamos a gestionar. Ahora, el motor irreal incorporado tiene un par de funciones simples que son útiles para saber cuándo se han aplicado daños Ahora hay muchas formas de aplicar daños. Vamos a usar el más simple. Ahora, eso es simplemente con un nodo llamado aplicar daño. Ahora bien, fíjate que cuando traemos daños aplicados, tiene un par de otras conexiones. Ha dañado actor, el daño base, instigador de eventos casa, ninguna de esas cosas mucho sentido para nosotros en este momento Lo único que queremos ajustar es el daño base, que es un número, así que lo llamaremos diez. Es un flotador. Ahora simplemente tenemos que decidir sobre el actor dañado, que va a ser el héroe, y luego ya terminamos. Entonces simplemente entraremos, y entonces el otro actor lo arrastrará y lo echaremos a héroe. Oh, lo siento, lo neblé. Elenco a héroe. Y ahí estamos porque entiende que hay un personaje llamado el héroe. Y ahí está. Así que hemos echado a héroe listo. Y como héroe, esto no es importante. Primero conectaremos esto. Entonces el actor dañado va a ser el héroe, y el daño base va a ser diez. Y luego una vez que hayamos terminado con eso, destruiremos al actor. Con eso, vamos a compilar rápidamente. Ahora, fíjate que cuando volvemos al juego, si le pegamos, simplemente desaparece, pero no hay daños claramente indicados en la barra de salud. Eso es porque la barra de salud mientras que el héroe. La barra de salud se ha actualizado sólo en el evento comenzar a jugar. Observe que a partir del evento comenzar a jugar, lo primero que hacemos es configurar la barra de salud y configuramos su porcentaje. Entonces simplemente necesitamos agregar otra función, que va a mantener actualizada la barra de salud. Hay muchas maneras de hacerlo. Este es el último procesador intensivo que es bueno para usar. Entonces déjame copiar eso y pegar esto. Añadiendo en un comentario, por supuesto, puedes hacer un comentario simplemente presionando C. Bien. Pero solo me gusta a veces, ya que ya tiene los ajustes de estilo que quiero, entonces esto simplemente se va a llamar actualizar Barra de salud sobre daños. Así es como se llama. Y luego dentro de aquí, simplemente añadiremos en una función. Se llama a cualquier daño. Entonces queremos cualquier daño. Sí, esto es lo que queremos. que ese evento suceso sobre cualquier daño. Arrastra esto por aquí. Ahora, una vez que tengamos listo el evento sobre cualquier daño, simplemente arrastraremos esto, y luego ahora queremos comenzar a ajustar el valor de salud del jugador. Por lo que de inmediato se ha hecho el daño. Lo primero que queremos hacer, vamos a alargar la salud del jugador. Consigamos la salud del jugador. Empezamos por conseguir la salud del jugador, y luego la vamos a alargar, y vamos a restarle Restar. Ahora con ese funcionamiento restar, vamos a vincular el daño a lo que queremos que reste Por lo que estamos restando el daño que se ha hecho a la salud del jugador . Muy importante. Una vez que hemos restado el daño hecho a la salud del jugador, queremos alargar ese valor y queremos dividirlo y ¿por qué lo estamos dividiendo Lo estamos dividiendo por 100. Bien, porque queremos que se establezca como porcentaje. Y ahora que tenemos eso, ahora tenemos el porcentaje de salud que el jugador tiene ahora mismo. Déjame traer esto por aquí. Trae esto por aquí. Entonces lo que vamos a hacer es que vamos a conseguir el widget de salud del jugador y traerlo. Quiere obtener el widget de salud del jugador, y luego queremos arrastrarlo, y queremos buscar la barra de salud del jugador. Queremos obtener la barra de salud desde dentro del widget. Bien, estamos obteniendo la barra de salud del jugador de la pantalla, y luego simplemente queremos establecer su porcentaje. Bien. Entonces queremos establecer el porcentaje, y vamos a arrastrar el porcentaje como el daño que se acaba de tomar. Y eso va a ser eso. Entonces con eso, podemos simplemente con eso en mente, ahora podemos simplemente conectar evento en cualquier daño. Queremos actualizar ese porcentaje. Déjame repasarlo una vez más. En el objeto de daño, queremos lanzar al héroe, ese es el personaje del jugador. Bien, quiero lanzar al héroe, ese es el otro actor. Es el actor dañado. Y luego después de eso, se va a destruir a sí misma. Eso es lo que va a hacer nuestro objeto de daño. Y luego en el lado del personaje del jugador, claro, el mejor daño se ha establecido en diez en el lado del héroe, en cualquier daño, eso significa que cuando se recibe algún daño, obtenemos ese daño, lo restamos de la salud del jugador Dividimos eso por 100. Y luego venimos aquí y luego widget de salud del jugador, queremos actualizar el porcentaje. Y en realidad, falta una cosa más. Porque mientras estamos dividiendo la salud del jugador, aún no hemos actualizado correctamente la salud del jugador. Así que vamos a arrastrar esto un poco. En el medio de cuando restamos, simplemente vamos a establecer la salud del jugador Entonces este valor, arrastrarlo hacia arriba ahora va a ser el nuevo valor para la salud del jugador. Y entonces ese valor de salud del jugador va a ser el que esté conectado como el porcentaje establecido para la barra de salud. Espero que esto tenga sentido. Por favor, si no tiene claro sentido, repasarlo otra vez. He tratado de ser lo más preciso posible. Entonces con eso, vamos a probarlo en juego. Entonces ahora, cuando repaso el objeto dañado, ahí estamos. Mi barra de salud se ha reducido. Ahora, digamos que consigo que estos objetos tienen copia pegada. Ahora son dos, copiar y pegar. Ahora son tres, copiar y pegar, déjame alejar un poco y arrastrar esto aquí, cuatro, copiar y pegar, cinco, y luego 67, ocho, nueve, diez. Bien, entonces he hecho diez objetos dañados. El primero ha reducido la salud del jugador en un 10%. Segundo, 20, 30, 40, 50, 60, 70, 80, 90 y 100%. Ahora hemos encontrado cómo aplicar el daño al jugador y asegurarnos de que la compra de salud esté actualizada correctamente. Ahora, en el siguiente video, vamos a agregar en una simple pantalla de muerte, y luego profundizaremos un poco más en la IA después de eso. Entonces en el siguiente video, estamos haciendo una pantalla de muerte para que cuando el jugador haya ido por debajo de cierto porcentaje en salud, esté muerto, que es lo que queremos. Vamos. 37. 35 Verificar si el jugador está vivo o muerto al recibir el daño: Bien, ahora que tenemos a nuestro personaje teniendo su salud ba poder ser agotada por objetos Ahora agreguemos un simple estado de muerte. Entonces lo comprobaremos. Y una vez que la salud del jugador va por debajo de cero, decimos, el jugador ha pasado. Entonces, para hacer eso, volvamos al plano del héroe. Apagemos esto rápidamente por aquí, alineemos estos y organicémoslos para que se vean bien. Sólo un poco de pulcritud. Sabes, va un largo camino con esto por aquí y esto por aquí, y esto por aquí. Ahora, recuerda que esto es Actualizar barra de salud sobre daños y luego lo conseguiremos. Y entonces sólo voy a copiar ese diálogo. Por supuesto, como siempre, puedes hacer otro cuadro de comentarios simplemente presionando C, pero me gusta cierto estilo con texto negro porque eso es más legible para mí. Y entonces esto va a ser comprobar si la capa está viva. Eso es todo lo que va a hacer. Entonces justo después de que haya hecho eso, lo que quiero hacer, déjeme arrastrar esto por aquí para darle algo de espacio. Y entonces voy a arrastrar esta secuencia de tipos porque quiero que este sea un nodo de secuencia básica. Y luego voy a arrastrar esto por aquí. Y entonces lo que quiero hacer es buscar una sucursal BRA NCH sucursal, ¿verdad Ahora esta rama básicamente va a ser lo que verifique para ver si el jugador sigue vivo, y ¿cómo vamos a hacer eso? Es bastante sencillo. Vamos a arrastrar en la salud del jugador y queremos conseguir la salud del jugador. Entonces lo que queremos hacer es que queremos buscar menos que o igual, menos que igual. Eso lo conseguiremos si es menor o igual a cero, esa será nuestra condición. Lo que eso significa es que si la salud del jugador es cero, esto es cierto. Si la salud del jugador es menor que cero, esto también es cierto. Ahora, con eso, digamos simplemente, Oye, si es falso, comencemos con algo sencillo como una cadena de impresión, y diremos que vamos a escribir letras mayúsculas en vivo, ¿de acuerdo? Entonces controlemos pegar eso por aquí. Si es cierto que es menor que igual a cero, podemos simplemente escribir dead. Solo estamos haciendo eso para simplificar la comprobación si esta comprobación básica de sucursal está funcionando correctamente. Con eso, vamos a compilar volver al nivel desarrollador vivos, vivos, vivos, bien. Sigue diciendo vivo, y luego muerto. Se puede ver en la esquina superior izquierda de su pantalla, está el texto que decía muerto. Entonces ahora tenemos una buena manera de detectar que el jugador esté vivo o muerto cuando termine de recibir daño. Ahora que tenemos eso, sigamos adelante y de hecho agreguemos en una simple pantalla de muerte. 38. 36 Cómo crear una interfaz de usuario de pantalla de muerte: Ahora, para agregar en una pantalla de muerte, lo primero que vamos a hacer es crear un nuevo objeto UI. Va a ser muy similar a cómo creamos la barra de salud, que está por aquí, y hagámoslo. Así que he pulsado Control y barra espaciadora. Y ahora estoy buscando adentro, y estoy aquí en la carpeta de contenido. Voy a crear déjame revisar dentro del personaje dentro del jugador bajo Interfaz. Este es en realidad un muy buen lugar para poner esto. Y bajo interfaz, tenemos nuestra barra de salud. Voy a crear un nuevo widget. No me dejes buscar aquí. Interfaz de usuario, plano Widget. Es un widget de usuario, y luego vamos a llamar a esta pantalla de muerte. Bien. Entonces pantalla de muerte. Ahora con eso, hagamos doble clic en la pantalla de la muerte. Pongámoslo en la ventana principal para que no tengamos que saltarnos. Y luego igual que antes, lo primero que vas a poner, quieres poner en un panel de Canvas y luego hacer clic en Zoom para que quepa, ¿bien? Esta batuta hera Zoom para caber. Este, Zoom para caber. Por lo que se acerca y hace que encaje en la pantalla. Ahora, solo por simplicidad, vamos a agregar un fondo de imagen. Bien. Y en cuanto a anclas, anclemos a la esquina superior izquierda Le daremos posición cero y cero. De este lado, lo haremos cero y cero. Tamaño, voy a hacerlo en realidad, no, déjame alinearlo a través de todo. Y luego estoy usando esta , esta de aquí. Esto va a ser bueno para que llene toda la pantalla. Presiona eso. Y luego en el offset, voy a compensar cero y compensar cero. Todo bien. Ahora, por el color y la opacidad, voy a hacer doble clic Quiero que su color sea negro. Y luego es la opacidad. Opacidad es este valor menor, RGBA, A es para Alfa u Quiero bajar eso a tal vez algo así como 0.4. Va a actuar como un bonito fondo oscuro. Eso es bueno. Ahora con esa imagen de allá, solo compila. Lo siguiente que vamos a hacer es que queremos añadir en algún texto. Entonces vamos a conseguir este texto, arrastrarlo y soltarlo por aquí, y dentro del texto, diremos que el jugador está muerto. Ahora, por supuesto, realmente puedes poner el texto que quieras Esto es sólo para demostrar cómo lo haces. Ahora con ese texto por aquí, voy a seleccionar el ancla en el medio. Voy a cambiar su posición a cero, cero, y luego su tamaño en X, veamos, permítanme cambiar su tamaño aquí a 300 y tamaño Y también a 300. No, déjame ponerme esos 100 y luego solo alinearlo por aquí Es texto básico. Ahora, para aumentar el tamaño del texto, volvamos aquí de vuelta a donde están las propiedades. Vamos a escribir tamaño. Va a mostrar el tamaño de fuente del texto. Déjame aumentarlo a algo así como 80. Sí, 80 es bueno. Oh, lo siento, hice clic en algo equivocado. Déjame hacer clic en eso otra vez. Bien. Excelente. Ahora, tengo que asegurarme. Oh, no, se apila. Todo lo anterior está abajo, no hay problema. Ahora, Control S para ahorrar. Vamos a compilar rápidamente. Ahora tenemos alguna pantalla de muerte muy básica. Pero esto no es lo suficientemente bueno. Agreguemos algo un poco extra. Estamos volviendo al arte dentro del aventurero. Déjame ver. ¿Tenemos algunos sprites de la muerte? No, nosotros no. Voy a agregar en déjame solo agregar en la animación de diapositivas de pared, lugar de deslizar la pared por aquí. Y estoy presionando déjame ver. No, necesito escalar este tobogán de pared. Ahora que he seleccionado el tobogán de pared, haz acto de presencia. Esa es la apariencia. Ahora he seleccionado su talla. En este momento está establecido en 140. Déjame configurarlo a algo aproximadamente el doble de eso, lo que significa 280. Bien. Todavía no lo suficientemente grande. Creo que déjame hacer esto ahora 400 y 160 pixeles. Bien. Sí, esto funciona razonablemente bien. Pon esto por aquí. Entonces esta es nuestra pantalla de escritorio. Actualmente. Agreguemos en una cosa más, que es un simple botón. Oh, no está en la jerarquía. Tengo que buscar por aquí, buscar botón. Y luego vamos a arrastrar y soltar este botón justo por aquí. Aumentar su tamaño bit. Ahora voy a conseguir eso y agregar en otro botón, sólo para copiarlo aquí. Esto es bueno. Entonces tenemos una imagen simple que envía un mensaje de texto a un jugador está muerto, y tenemos dos botones. Fresco. Ahora que tenemos nuestros dos botones, agreguemos algo de texto. Añadiré el texto al primer botón, y luego volveré a arrastrar ese texto al segundo botón. Observe cómo se ha posicionado automáticamente en el medio. Y para el primer bloque de texto, seleccionaré su texto por aquí. Diré que el texto dirá reiniciar. Y entonces el último bloque de texto se va a llamar salida. Eso está en el texto. Ahora para los botones, voy a cambiar este botón para que el nombre del botón en sí de aquí se vaya a llamar salida. Y luego en el reinicio, el nombre del botón en sí, lo voy a cambiar para reiniciar, reiniciar, ¿de acuerdo? Ahora con eso cambiado, cuando se trata de la orden, note que el texto no es importante. El verdadero nombre que importa es el nombre en el botón. Ahora que tenemos eso marcado, organicemos estos para que se mantengan alineados entre sí Entonces vamos a buscar algo que se llama caja vertical. Bien. Ahora vamos a conseguir esa caja vertical y la arrastraremos a la escena. Y en cuanto a anclas, queremos anclarlo a la cuarta medalla Arriba, un momento. Todo bien. He resuelto la convocatoria y todos los retos que planteó. Me encanta ser útil. Y cuando estás en desarrollo de juegos, tienes que mantener tu vida organizada. Ahora, volvamos al tutorial. Ahora que he puesto en esta caja vertical, Aviso, no hay nada dentro de ella todavía, ¿de acuerdo? Oh, Dios mío. Alejar. Estaba distraído. Ahora que tengo esta caja vertical, he seleccionado la caja vertical. Vamos a abrirla. Es, creo, una buena talla. Queremos poner muchos elementos dentro de la caja vertical. Queremos que estén dentro de él para que los organice. Ese es el propósito de una caja vertical en general. Organiza elementos dentro de sí mismo. Ahora, pongamos los elementos dentro de la caja vertical. Acercándonos al área jerárquica, simplemente apretaremos esto. Todo lo que vamos a hacer es que vamos a conseguir estos dos botones, y los vamos a dejar caer en la caja vertical y luego obtendremos esta imagen del jugador está muerta y esa imagen, que debería ser el pequeño gráfico del jugador y dejarlos caer también en la caja vertical. Y ahora cuando retrocedamos el zoom, oh, mira esa organización. Han cambiado su orden. Han cambiado de tamaño. Entonces ahora necesitamos ajustar el tamaño y el orden para que tenga sentido. Para empezar, arrastraremos el texto. Entonces, para arrastrar el texto, quiero que los jugadores muertos sean lo segundo. Entonces seleccionaré el texto de los jugadores muertos dentro de la caja vertical. Lo pondré aquí arriba, y ahora mira, está en la parte superior. Entonces volveré a esta imagen. Lo arrastraré encima del texto, y lo detendré. Oh, no, va demasiado lejos. Ponlo sobre el texto ahí estamos. Y ahora la imagen viene primero, la imagen es primero, y el texto, luego los botones. Esto es exactamente lo que necesitamos. Ahora que estos están organizados de esa manera, comencemos fijando el tamaño de la imagen. Entonces he seleccionado la imagen, y en el lado derecho, noto que está ajustada a alineación vertical y alineación horizontal. Entonces estableceremos su alineación vertical para centrar horizontalmente. Y apenas de hacer clic en el centro horizontalmente, ha dejado de ser oprimido, bien. Y ahora que no se está estirando, sigue siendo pequeño, pero no se está estirando. Ahora, voy a seleccionar la imagen una vez más, y queremos cambiar su tamaño sólo un poco porque no queremos que sea esta cosita diminuta de aquí. Entonces cambiemos ahora su tamaño y hagámoslo grande. Entonces la imagen seleccionada, ahora queremos que sea mucho más grande. Simplemente seleccione la imagen. Y luego en el panel de propiedades, fíjese ahí está el pincel. Entra en el pincel, y luego está el tamaño de la imagen. Entonces simplemente cámbielo de 32 por 32 a algo así como 200 por 200. Eso debería darnos una imagen de tamaño mucho más razonable. Esto me gusta mucho. Hagámoslo aún más grande. Hagámoslo 300, 300. Eso es bueno. Hagámoslo aún más grande. Hagamos 400 por, 400, 300 parece hacer que aparezca claramente. Este es un buen tamaño de imagen. Ahora, da clic en el texto de Play is dead. Asegurémonos de que la alineación horizontal de aquí está en el medio. Y con eso, estamos contentos. Entonces ahora seleccionaremos el botón. Lo primero que vamos a hacer es que necesitamos cambiar el color de estos botones. Creo que cambiemos el color a algo así como, ¿bien? No, ese es el botón. El color del texto, resto control Z para cambiar eso. Cambiar el color de fondo a algo un poco más Eso está bien. Los botones pueden ser completamente negros. Creo que estoy bien con eso. Pero con texto en blanco, que siempre es bueno para la legibilidad Soy un gran creyente en fondos negros, texto blanco. Y ahora agreguemos algo de espaciado entre el jugador en medio la jugada está muerta. Seleccione el texto reproducido muerto. En el lado izquierdo, hay una opción llamada padding. Bien. Esto es. Y queremos agregar un poco de relleno al fondo. Agreguemos unos 200 píxeles, lo que da esa cantidad de espacio, eso es demasiado, 50 píxeles. Perfecto. Entonces solo 50 píxeles de relleno inferior está haciendo el trabajo. Y ahora tenemos nuestros botones. Entonces seleccionaré dos veces los botones manteniendo pulsada la tecla shift. Cuando estoy haciendo clic en los botones para que podamos cambiar los valores de ambos botones todos a la vez. Entonces vengo aquí bajo apariencia. Déjame ver. Quiero añadir un poco de relleno. Creo que a ambos a la parte superior, voy a agregar 20 pixeles para darles un poco de espaciado a la derecha 50 para darles algo de espaciado y a la izquierda 50. Oh, no hasta el fondo. Al fondo deben quedar 20. Entonces, a la izquierda y a la derecha, tendremos 50 pixeles. A lo mejor agreguemos más. Entonces 100 a la izquierda, 100 a la derecha. Con eso, compilar V. Esta es nuestra pantalla de muerte como es ahora mismo, y solo puedo ajustar ligeramente la caja vertical, y ya verás cómo ajustar la caja vertical va a cambiar la posición de todo en, así que tenemos una interfaz de usuario razonable. Ahora, voy a asegurarme de que la caja vertical esté anclada al centro superior La posición X es dejarme poner eso rápidamente a cero. ¿Bien? Eso va a poner eso ahí. Yo no quiero eso. Vamos a alinearlo correctamente a la parte superior central otra vez. Y quiero que la posición vertical de la caja sea mucho más. Oh, yo cerré eso. Volvamos aquí. Quiero que sea mucho más a algún lugar en el medio. Entonces es talla X, déjame hacerla talla X 700. Es la talla Y 800. Y así eso me va a dejar posicionarlo con precisión. Ya que sé que su tamaño X es 700, 700/2 es 350, así que simplemente puedo entrar y ponerle la posición X en negativo 350 ¿Bien? Entonces ahora tenemos un menú básico, que es lo que funciona en la muerte compilar rápidamente, y aún no va a funcionar, pero lo que va a pasar es que una vez que este jugador esté muerto, queremos ver esta pantalla de muerte. Empecemos a agregar esta pantalla de muerte al juego. 39. 37 Añadir la pantalla de muerte: Ahora que tenemos la interfaz de usuario creada, mientras que la pantalla por aquí. Ahora, simplemente necesitamos asegurarnos una vez que esa barra de salud llegue a cero, esa interfaz de usuario aparezca en la pantalla. Entonces volvamos al personaje héroe. Ahora, sabemos cómo comprobar vivo o muerto, y esto es lo que vamos a utilizar. Ahora vamos a quitar la parte viva. Ya sabemos que esto está funcionando correctamente, y vamos a eliminar esa cadena. No necesitamos esas pantallas de impresión porque sabemos que está funcionando correctamente. Ahora lo siguiente que vamos a hacer es simplemente añadir el widget a la pantalla. Ahora, al igual que de la misma manera que lo hicimos para la barra de salud, simplemente sacaremos esto a la luz. Y lo primero que vamos a hacer es que vamos a pausar el juego. Así que vamos a establecer la pausa del juego y estableceremos el valor post para que sea cierto. Bien. Eso es. Hemos establecido que el valor post sea cierto. Y con eso hecho, lo siguiente que vamos a hacer, vamos a arrastrar esto es que vamos a crear un widget. Qué widget, simple, va a ser el widget de pantalla de muerte. Así que vamos a escribir pantalla de muerte, y va a crear la pantalla de muerte por aquí. Ahora, en términos de ser dueño de jugador, vamos a hacerlo exactamente de la misma manera que agregamos el baro de salud por aquí Así que vamos a entrar aquí y vamos a conseguir el jugador local de ID. Así que ponte bien. Y queremos que este sea jugador cero. Así que hemos creado ese widget de pantalla de muerte. Bien. A continuación, simplemente vamos a agregarlo al tipo de ventana gráfica ad a viewport Y ahí está. Y vamos a conectarlo por aquí. Ese es el valor de retorno. Y con eso hecho, donde ahora permítame extender esto un poco. Entonces vamos a configurar el ratón coursa para que sea visible. Entonces, vamos a arrastrar esto. Y queremos escribir set show mouse, en realidad, set mouse cosa. No, no, no, no. Lo que en realidad, lo que haremos es obtener el jugador local de ID, y luego de ahí, arrastraremos esto para el jugador local. Vamos a poner ratón. Veamos Cursor. Sí, aquí estamos. No, este no es el que queremos. No vamos a poner el cursor del ratón. Sí, aquí estamos establecidos Mostrar cursor del ratón. Este es el que queremos. Lo hemos sacado del jugador Get Local de ID. Y queremos que el cursor del ratón sea visible. ¿Bien? Y luego después de eso, lo que queremos hacer es querer cambiar el modo de entrada para que ya no estemos ingresando al mundo del juego Simplemente estableceremos el modo de entrada. Bien, y vamos a configurarlo solo a la interfaz de usuario. Y qué controlador de reproductor va a ser ese mismo controlador de reproductor. Y luego en widget para enfocar, queremos, donde está el widget de pantalla de escritorio. Quiere estar enfocado dentro del widget de la pantalla de muerte. Y con solo eso, bien, vamos a probarlo en el juego. Entonces nivel desarrollador, juega en vivo, vivo. En realidad, vamos a acelerar esto. Voy a seleccionar el objeto de daño, y voy a aumentar el daño 10-25, así que solo necesito repasar cuatro de esos objetos para activar uno, dos, tres, cuatro Mira eso. Jugador está muerto, y ahora nos está mostrando la pantalla. Eso es genial. Entonces, uno, dos, tres, cuatro. Boom. El jugador está muerto. Ahora tenemos la pantalla de muerte apareciendo correctamente. Ahora que está aquí, volvamos a la pantalla de muerte y agreguemos algunos nodos para asegurarnos de que estos botones hagan lo que dicen. Vamos a hacer que este botón reinicie el nivel, y vamos a hacer que este botón salga del juego. Vamos. 40. 38 Cómo agregar funcionalidad a la pantalla de muerte: Todo bien. Ahora que tenemos una pantalla de muerte, vamos a darle algunas opciones de menú realmente utilizables y útiles. Lo primero es lo primero, pasemos directo a la pantalla de la muerte. Bien. Y ahora, vamos a empezar haciendo que los botones de reinicio y salida realmente funcionen. Para empezar, vamos a venir por aquí y ya ves que es variable, selecciónala para que la hagamos una variable. Y para la salida, también conviértelo en una variable. Hacerlo una variable es lo que nos va a permitir acceder a ella y usarla para un par de funciones diferentes. A continuación, baja y fíjate que aquí hay algunos eventos. Haga rápidamente un evento sin hacer clic. Eso es para la salida. Bien, entonces aquí está OnClickeDeit. Y luego volvamos nuevamente a la página de diseño, y luego hagamos clic en Reiniciar, y luego anotemos aquí, otro evento sin hacer clic Y así tenemos OnClick restart y OnClick Exit. Y ahora queremos agregar en las funciones a este botón, a estos botones. Ahora las funciones. Mm hmm. Disculpe. Las funciones son bastante simples. Empecemos con el más básico que sale del juego. Ahora, para salir del juego, primero agreguemos un comentario, arrastremos esto adentro, trapéelo. Y luego como de costumbre, cambiemos. Me encanta el fondo negro texto blanco. Aumenta el tamaño del texto a algo así como 50, pero es grande y arrastra esto. Diré que salga del juego. Eso es todo. Entonces al hacer clic en Salir, simplemente lo arrastraremos hacia afuera, y luego escribiremos quit Game. Eso es todo. Bien. Así que deja de fumar. Simplemente renuncie. Eso es todo. Salir, salir del juego. Bien. Bien, bien. A lo mejor este tamaño de texto es un poco grande. Hagámoslo 24. Bien, mucho mejor. Y luego voy a copiar y pegar esto. Arrástralo. Bien, esto es demasiado alto. Vuelve aquí abajo. Bien. Y luego haz clic en reiniciar. Entonces voy a decir reiniciar el nivel. Bien. Ahora, el reinicio, vamos a ponernos un poco más complejos. Lo primero que vamos a hacer es que vamos a arrastrar esto aquí. Y entonces lo que queremos es obtener el nombre del nivel actual, ¿de acuerdo? Esto va a obtener el nombre del nivel actual. Eso es lo primero que vamos a hacer. Ahora que hemos terminado con eso, lo siguiente que haremos es querer abrir nivel por nombre. Bien. Y vamos a vincular el nombre del nivel actual con el nivel abierto por nombre. Estoy seguro de que se aclara por sí mismo lo que va a hacer esto. Obtiene el nombre del nivel y dice abrir el nivel, y será el nivel actual en el que nos encontramos. Entonces eso es muy bueno. Y esto es confiable. Hay muchas formas de hacerlo, pero esta es la forma más confiable de hacerlo. Siempre va a funcionar. Obtener nombre de nivel actual, nivel abierto por nombre. Con solo esto, esto va a funcionar. Pero lo que queremos hacer es asegurarnos de que el modo de entrada esté configurado correctamente. Entonces llamaremos, en realidad, no, primero llamaremos, obtendremos jugador local por identificación. Veamos, consigue jugador Local de ID, perfecto. Y queremos que los jugadores sean cero, y luego arrastraremos esto y estableceremos entrada. Veamos, establece el modo de entrada. Y queremos establecer el modo de entrada a juego solamente. Entonces arrastraremos esto por aquí. Y ahí estamos. Así que vamos a repasarlo. Salir del juego, es sencillo. Al hacer clic, salir del juego. Sencillo. Sin embargo, para reiniciar el nivel al hacer clic para Reiniciar, comenzamos con G nombre de nivel actual, nivel abierto por nombre, y luego obtenemos el controlador del jugador de ID, y configuramos el modo de entrada para juego solamente Y con eso, entremos al nivel de desarrollador. Estoy muerto, puedo dar clic en Salir y estoy fuera. Sin embargo, también podría cuando estoy muerto, hago clic en Reiniciar, y reinicia el nivel Reiniciar. Perfecto. Entonces ahora tenemos un sistema de muerte que funciona. El jugador puede morir, y luego es capaz de salir del juego o reiniciar el juego, y está funcionando fundamentalmente a fondo, y sigue funcionando Somos capaces de mover todo lo demás está funcionando. Esa es una línea base suficientemente buena que es fantástica. Entonces ahora pasemos a hacer al jugador, ahora que el jugador puede recibir daño, vamos a darle al jugador la capacidad de repartir daño dándole un ataque y creando un maniquí de práctica, que podemos golpear y agotar su salud a cero Hagámoslo en el siguiente conjunto de lecciones. 41. 39 Cómo agregar entradas de ataque del jugador: Todo bien. En este video, lo que vamos a hacer es que vamos a repasar todo sobre cómo agregar rápidamente una entrada de ataque con espada. Sólo queremos configurar la entrada. Ahora, actualmente, en juego, cuando iPressPlay, si iPressckMás bien, haga clic izquierdo en el controlador, observe que en la zona superior izquierda, aparece texto que cuando iPressPlay, si iPressckMás bien, haga clic izquierdo en el controlador, observe que en la zona superior izquierda, aparece texto que dice ataque. Yo mientras me muevo, presiono E, texto que dice shows de ataque, y luego en mi mando, cuando me muevo a la izquierda o a la derecha, inmediatamente puedo presionar el botón X en Xbox y se muestra el texto de ataque. Así es como lo vas a configurar. Ahora, vuelve a Controls, que es esta carpeta de aquí. Es la misma carpeta que usas para configurar tu salto y tu mapa de movimiento y jugador en Unreal Engine Vas a crear una nueva acción de entrada y llamarla Mele, ataque cuerpo a cuerpo Ahora, cuando entres en él, puedes dejarlo como está y puede seguir siendo un booleano digital No es necesario que le hagas ningún cambio. Simplemente configura la acción, llámalo Melata. Una vez que hayas terminado con eso, quieres ir y entrar en el mapa del jugador, que es el contexto de mapeo de entrada. Cuando entras en el mapa del jugador, el contexto de mapeo de entrada, lo que quieres es asegurarte de que vienes por aquí y agregas un nuevo mapeo. Una vez que hayas terminado de agregar ese nuevo mapeo, lo vas a agregar como un ataque Mi que selecciones de un menú desplegable. Encuentra la acción de entrada de Mattach. Bien. Una vez hecho esto, agrega nuevas entradas, agrega en el botón izquierdo del mouse para activar el ataque mea, agrega E en tu teclado para activar el ataque mea. Y entonces si tienes un controlador, si no lo haces, está bien puedes saltarte esto. Pero si tienes un controlador, también agregas al presionar ese botón, o como disparador para el metack Una vez que hayas terminado con este paso, que es muy, muy similar a cómo configuraste el movimiento, bien. Una vez que hayas terminado con ese paso, ahora necesitas encontrar tu plano de jugador Ahora, el plano del jugador debe encontrarse bajo personajes jugador, y ahí está nuestra clase héroe Blueprint Ahora, dentro del plano del héroe, esta parte es muy fácil de entender Por supuesto, crear un cuadro de comentarios que va a contener los datos y decir, Hey, aquí es donde se encuentran esos nodos para la organización. Y luego vas a hacer clic derecho y buscarme ataque, lo que traerá a colación la adición en la entrada de ataque me. Una vez que esa entrada está en, simplemente pídele que imprima la cadena y llame a ese ataque de cadena. Y con solo eso, ya terminaste. Ahora tenemos el código de línea base para nuestra configuración de ataque Me. Entonces el ataque a la comida está listo. Entonces ahora estamos listos para comenzar a agregar e implementar, agregando en el hit box, y luego la animación. Pero entremos en eso en el siguiente video. 42. 40 Creación de una maqueta de combate, Parte 1: Entonces ahora que tenemos la línea de base de lo que va a ser nuestro evento de ataque, vamos a necesitar algo contra lo que practicarlo. Entonces para hacer eso, necesitamos un maniquí de ataque básico, que vamos a usar Entonces para hacer eso, simplemente vamos a volver a la carpeta de nuestro personaje. Y esta vez, vamos a crear una nueva carpeta, y vamos a llamar a esta carpeta. Vamos a llamar a este ficticio de ataque de carpetas, ¿de acuerdo? Porque vamos a sumar y crear un ataque básico dammi aquí Entonces vamos a crear una clase de blueprint, y queremos que sea veamos Queremos que sea un básico vamos a ver, veamos. A ver. ¿Qué queremos? Hagamos que sea un personaje, bien. Pero todavía va a ser solo un maniquí de ataque. ¿Bien? Este va a ser nuestro maniquí de ataque Y rápidamente hagamos doble clic en el maniquí de ataque. Y lo que realmente queremos con el maniquí de ataque ¿verdad? ¿Vamos a agregarle un cubo básico esto es todo lo que necesitamos agregarle. En cuanto al material, quiero decir, podríamos escoger prácticamente cualquier material. No importa. Bien. Realmente no importa. Pero esto es lo que vamos a usar, ¿de acuerdo? Así que vamos a compilar rápidamente eso. Y con ese ataque, Dummy vamos a arrastrarlo y soltarlo al mundo Asegúrate de que sea cero en el eje Y en cuanto su posición porque a su posición porque quiero que esté ligeramente a la derecha del jugador. Eso es genial. Lo siguiente es que queremos agregarle, ya sabes, algo bastante básico. Queremos agregarle un mal de salud. Entonces dentro del ataque dammi, queremos tener una barra de salud dentro Ahora, para agregar la barra de salud aquí, lo primero que vamos a hacer es entrar en el gráfico de eventos, y luego vamos a entrar en variables, y queremos crear una nueva variable. Y este tipo de variable es que va a ser un flotador. Y vamos a llamar a esta variable. Vamos a llamarlo Presa salud. Bien, eso va a ser una variable. Y queremos configurar el vamos a llamar Hagamos el maniquí Salud 100, ¿de acuerdo? El dammi salud va a ser de 100. Eso va a mantenerlo sencillo. Ahora que la salud de dammi es de 100, vamos a poder agregar en la barra de salud a la propia dammi para que tenga una barra de salud por encima de su cabeza Ahora, cuando creamos por última vez la barra de salud, yendo a la interfaz del jugador, creamos esta simple barra de salud para el jugador de esta manera, ¿de acuerdo? Entonces vamos a hacer exactamente lo mismo, pero esta vez para nuestro dammi Entonces iremos solo para mantenerlo organizado, vamos a entrar en el ataque a la presa. Vamos a crear una nueva carpeta, y vamos a llamar a esa interfaz de carpeta , mantenerla organizada. Así que dentro de eso, vamos a escribir click y queremos crear un elemento de interfaz de usuario. Y el ítem que queremos crear es un Plano Widget. Deberías poder verlo a tu lado, Widget Blueprint, ¿de acuerdo? Y sí, queremos crear un Widget de usuario. Eso está bien. Y lo vamos a llamar dammi Barra de Salud. Bien. Entonces así es como lo estamos llamando. Lo estamos llamando Dammi Barra de Salud. Entonces, haz doble clic en la barra de salud ficticia. primero es lo primero, queremos agregar en un panel de lienzo como siempre. Y luego después de agregar en el panel del lienzo, lo que queremos es que queramos tener una barra de progreso. Ragatin. Queremos anclarlo queremos anclarlo al centro, de verdad. Para que puedas escoger cualquier centro, pero me gusta ponerlo justo en el medio. Y luego para la posición y el desplazamiento, quiero que sea offset cero y offset cero porque esto va a ser un poco grande, ¿sabes? Y entonces quiero aumentar su tamaño Y a algo así como 300. Bien, así que solo haz una buena barra de salud carnosa y grande. Posición de cadera cero, cero. No, en realidad, hagamos que sea posición negativa 150. Entonces, esencialmente, lo que he hecho es molestarlo hasta el ancla media, alterarlo desfasado de izquierda a cero, desplazamiento de derecha a cero. Y la posición Y es negativa 150 porque su tamaño Y es 300, por lo que esto la lleva a este tamaño. Y luego llenar color, creo que voy a tener que sea amarillo. Bien. Eso es genial. Y ahora que el color de relleno está puesto en amarillo, pensemos en su progreso. Es por ciento va a ser creo que es por ciento va a ser cero para comenzar. ¿Bien? Esto es genial. Entonces esta es ahora nuestra barra de salud. Ahora fíjate ahora mismo que se llama barra de progreso. Cambiemos eso. Y en realidad, ni siquiera podemos dejarlo progresar, solo llamémoslo ayuda maniquí Barra de progreso. Ahora que tenemos nuestra barra DamihalthPgress establecida, debemos asegurarnos de configurarla como una variable. Y con todo eso hecho, básicamente estamos terminados aquí. Ahora, volvamos al ataque dammi, ¿de acuerdo? Ahora queremos que nuestro ataque dammi una vez que esté cargado en el mundo, Bien, este maniquí de ataque, queremos que tenga una barra de salud por encima de su cabeza Bien. Ahora, para hacer eso, vamos a entrar en el maniquí de ataque y necesitamos agregar algo de código a su inicio de juego Ahora, crea un cuadro de comentarios grande, bien, para que esto diga, Oye, esto le agrega barra de salud al maniquí y comenzaremos desde el evento empezaremos a jugar, ¿de acuerdo? Así que voy a arrastrar esto, y queremos crear un widget, ¿de acuerdo? Entonces lo que queremos, queremos crear Widget. Ahora vamos a seleccionar eso. Y la clase widget que queremos es DamiHalth Br. Puedes ver el bar DamiHalth por allá porque Areal es bueno para hacer un seguimiento de lo que has creado Y ahora que tenemos eso, tenemos el reproductor propietario, y esencialmente solo va a crear ese widget de barra de salud ficticia Probemos esto rápidamente y veamos cómo se ve. Bien. Ahora bien, si compilamos aquí, debería haber nada en pantalla. Entonces, lo que tenemos que hacer a continuación es que realmente necesitamos agregar esto a la pantalla. Entonces queremos agregar a viewport. Bien. Así que empieza por solo agregarlo a la vista. Asegúrate de que al menos esté desove correctamente. Doblemos C. Ahí vamos. Entonces en este momento está funcionando correctamente, pero se está agregando a la ventana gráfica Vamos a ajustar eso. Bien. Entonces ahora que hemos confirmado nuestra barra de salud es capaz de estar desove correctamente, eliminemos agregándola al puerto de vista, y luego vamos a venir aquí y la vamos a agregar al personaje ellos mismos Entonces queremos agregar widget y agregar ese widget en. Ahora, rápido, vamos al puerto de vista, ¿de acuerdo? Entonces verás que ahora hay este widget blanco arriba. Ahí está este objeto aquí, bien, ese va a ser nuestro widget. Ahora lo que queremos hacer es ahora que lo tenemos, moverlo un poco hacia la izquierda, aguantar. Eso es lo que queremos. Ese es el cubo. Es el widget que quiero seleccionar. Ahora que tenemos el widget seleccionado, queremos seleccionar qué tipo de widget es. Entonces seleccionando el widget, si vienes por aquí, notarás que existe la opción de seleccionar la clase de widget, y, por supuesto, buscar la barra de salud Dami, y ahí está Por lo que le ha agregado la barra de salud dammi. Ahora veamos cómo se ve esto en el juego. Bien. Así que básicamente no se puede ver desde aquí. Bien, pero puedes ver dónde está. Entonces volvamos a la presa del ataque. Entonces ahora mismo, está mostrando que la barra de salud no es visible desde aquí, pero es a partir de aquí. Entonces hagamos algún movimiento básico. Entonces seleccionaremos su rotación. A ver. Y queremos girarlo en el eje Z 90 grados. ¿Bien? Entonces eso está por aquí. Eje Z, 90 grados. Eso es genial. Y luego una vez hecho eso, vamos a reducirlo ligeramente. A aproximadamente 0.5. Ahora eso está hecho, y luego queremos levantarlo en rotación. Entonces quiero que sea un poco más alto. Ahí vamos, compilar eso. Y ahora en tanto, se puede ver que el widget está por ahí. ¿Bien? Sí, el jugador se movió debido al hit box, pero nos ocuparemos de eso un poco más tarde. Bien. Entonces, esencialmente, ahí está. Ahora que tenemos esto, se puede ver ese bar de allá. Vamos a bajar ligeramente lo alto que es. Quieren que sea una barra de salud, no una plaza gigantesca de salud Bien. Entonces entraremos y desbloquearemos el escalado y reduciremos su escalado en el eje Z para que sea un poco más razonable. Se puede escalar hacia abajo en el eje Z. Entonces ahí está. Entonces ahora tenemos esa barra básica de salud, pero aún no está conectada para mostrar ningún dato de salud. Entonces, lo que queremos hacer, volvamos al gráfico de eventos. Ahora que esto está aquí, ven aquí. Así que deslízate. Ahora, en el evento, empieza a jugar, saca esto. Agárrate. Queremos actualizar esa barra de salud con los datos correctos. Entonces vamos a obtener el widget, arrástralo aquí como un objeto. Bien. Y luego desde el widget, queremos conseguir ficticio No Queremos realmente sacar el componente widget. Así que vamos a conseguir eso aquí. Promoverlo a una variable. Actualmente está configurado en el widget variable cero. No quiero que sea el widget variable cero. Entonces voy a llamar a esa variable. En lugar de Widget cero, déjame llamarlo rápidamente Barra de salud. Entonces así es como lo vamos a llamar, ¿de acuerdo? Se llamará la barra de Salud. Entonces ahora que está configurado aquí como una variable, ahora queremos arrastrar eso, y queremos decir, Oye, consigue dammi No, no, no, consigue Un momento, hay que volver a verificar los nombres. Bien, ahora aguanta. Vamos a deshacernos de todo ese código inicial porque estaba usando un método de rotonda larga, y sin embargo hay un método rápido y fácil para hacerlo. Volvamos a bajar. Ves este widget de barra de salud. No lo necesitamos en. Realmente no lo necesitamos en absoluto. Permítanme borrar que eso no es necesario. Volveremos al widget de línea base. Todo lo que tenemos es la configuración de la barra de salud ficticia como widget, y en el mundo ahora mismo así es como se ve Volveremos al maniquí de ataque, y después del evento comience a jugar, en lugar de necesitar hacer todo ese trabajo para llamarlo, vamos a mantenerlo sencillo Ahora, esta vez, todo lo que tenemos que hacer es ir a buscar el widget y arrastrarlo hasta aquí. Y ahora tenemos nuestro componente widget. El componente widget ya está aquí. Ya tengo lista la barra de salud dammi. Ahora, déjame arrastrar el sur. Lo siguiente que vamos a hacer es que vamos a echar a ver, queremos emitir para ayudar a bar. No, no, no, quiero emitir. ¿Qué quieres lanzar dos? ¿Cuál componente? ¿Cuál componente? Bien, antes de lanzar , en realidad, tenemos que volver. Entonces tenemos nuestro widget. No lanzamos directamente. Lo primero que queremos hacer es que queremos obtener widget. Entonces, si te desplazas hacia abajo, si escribes G, tienes que obtener widget, lo que significa Widget Este no es el widget Este es el componente widget. Entonces queremos obtener el widget dentro del componente. Una vez que tengamos eso, ahora, podemos arrastrarlo y decir elenco dos, y queremos lanzar a DamihLth bar Entonces ahí estamos. Y conectemos esto rápidamente. Por lo que ahora está lanzando a la barra de salud de dammi. Pongamos esto bajo por organización. Mantenlo agradable y organizado. Así que obtuvimos nuestro componente widget. Tenemos el widget dentro de él, y luego estamos lanzando a la barra de salud de dammi Ahora, como la barra de salud de dammi, arrastremos esto y digamos: Oye, vamos a ver Quiero conseguir la barra de progreso de Dammi Health que justo ahí Tú g esto de aquí afuera. Y entonces lo siguiente que queremos hacer es que queremos establecer su porcentaje. Bien. Entonces, fijemos rápidamente su porcentaje en esa barra de progreso. Entonces, fijemos rápidamente el porcentaje. Pon esto por aquí y conecta estos dos enlaces de aquí. Ahora, antes de hacer cualquier cambio adecuado al porcentaje, voy a fijarlo en 100 en términos de establecer el porcentaje. Vamos a compilar rápidamente eso y boom, ahora tenemos nuestra barra de salud sobre ese maniquí de combate completamente amarillenta. Eso es genial. Volveremos a la presa de ataque y esta vez, qué vamos a hacer. Entonces aquí es cuando se lanza el juego, quiero conseguir la salud de dammi, arrastrarla por aquí, y queremos decir, oye, consigue la salud dammi Y después de que tengamos la salud dammi, queremos alargar esto y queremos dividirlo, y queremos dividirlo por 100 Bien, por 100. Entonces arrastra eso aquí como el porcentaje, y eso va a ser esencialmente y. Vamos a compilar. Entonces cuando golpeas play, ahí está. Ahí está. Sin embargo, aún no recibe ningún daño. No tiene ninguna de esas capacidades. Solo tenemos un maniquí básico con barra de salud. Lo siguiente que vamos a hacer es que queremos asegurarnos de que ante cualquier daño, actualice esa barra de salud correctamente. Entonces copiemos esto. ¿Bien? Arrastra esto. Y esto es A, agrega barra de salud al maniquí No, cambia la salud ante cualquier daño. ¿Bien? Así que vamos a sacar esto a la luz, y vamos a estar haciendo prácticamente lo mismo que hicimos cuando se trata de nuestro personaje básico, ¿de acuerdo? Actualizamos la barra de salud sobre cualquier daño. Entonces de una manera muy similar, venimos por aquí. Vamos a decir, Oye, cualquier daño. Ese es el evento. Por lo que el evento está en cualquier daño. Bien. Entonces vamos a conseguir ese daño. Y lo primero que vamos a hacer es que vamos a conseguir la salud de dammi. Déjalo caer por aquí. Quieren obtener la salud dammi. Y luego lo siguiente que queremos hacer, vamos a arrastrar de nuevo a la salud dammi Y esta vez estamos fijando la salud dammi. Entonces vamos a conseguir la salud ficticia, y luego restaremos, restaremos , y restaremos el daño que se ha llevado que va a ser Así que lo pondremos ahí arriba. Y luego una vez que hayamos terminado con esto, lo que vamos a hacer es que vamos a venir aquí y queremos cambiar este porcentaje también. Así que vamos a obtener básicamente todo este código por aquí, copiarlo y pegarlo por aquí. Y así justo después de eso, vamos a lanzar a esa barra de salud aquí y pasar por ese mismo proceso exacto. ¿Bien? Entonces vamos a conseguir la barra de salud de dammi y luego vamos a actualizar su barra de progreso a la nueva dammi Eso es todo lo que hay que hacer. Ahora con este código listo para configurar, regresemos ahora y demos al jugador algo de daño para que realmente pueda golpear a ese enemigo y hacerle daño. 43. 41 Cómo hacer el ataque de un jugador Parte 1: Todo bien. Entonces ahora que tenemos un maniquí de ataque básico, bien, vamos a volver al personaje héroe y volver a la tachueta de carne, y realmente queremos agregar algo a la tachueta de carne Y voy a compartir contigo una forma muy efectiva de tener ataques dentro de tu juego que es bastante confiable y razonable, y eso solo va a funcionar cada vez que lo llames y es confiable. No obstante, volvamos rápidamente también a nuestros personajes, y voy a abrir la carpeta attack dammi y asegurarme de que tanto el héroe como el dammi ataque estén abiertos porque vamos a necesitar ir y venir entre ellos, asegurarnos de que el código esté funcionando correctamente porque estos dos van a estar Ahora, vengamos por aquí. Solo una revisión rápida. cargar en, agregamos la barra de salud al Damik lo configuramos en ese porcentaje Y luego en cualquier daño, en cualquier daño, obtenemos el dammi salud, y luego cambiamos el número en la barra de salud Este código debería ser comprensible para ti y deberías tenerlo todo listo para funcionar. Ahora, con todo eso, lo que sí necesitamos es algo para realizar cualquier daño, y entremos en eso. Una muy buena manera de agregar eso en, he golpeado Barra espaciadora. Voy a volver a los personajes. Voy a volver al reproductor, y voy a crear una nueva carpeta. Y dentro de esta nueva carpeta, voy a más bien, voy a llamar a la nueva carpeta llamada caja de dañarlo, ¿verdad? O a veces me gusta llamarlo objetos de daño, ¿ verdad? Así que dañan los objetos. Ahora bien, esa es una forma de llamarlo, pero permítanme cambiar el nombre que he usado este nombre antes. No quiero que esto sea confuso. Entonces déjame cambiarlo a daños en caja. Y la razón por la cual es porque quiero poder tener diferentes ataques, tener diferentes cajas de hit dañadas, y tú quieres tener eso separado del personaje principal. Vamos a entrar y déjame explicarte esto con claridad. Entonces por dentro, vamos a crear una clase de blueprint, y lo que queremos es que queremos un simple actor de blueprint Entonces, simplemente llamemos a este tablero SWOD. En realidad, llamémoslo ataque SWOD subrayado uno. ¿Bien? Entonces este es el ataque de SWod bajo la puntuación uno Haga doble clic en eso para sacarlo a colación. Déjame sumarlo aquí arriba. Y dentro del ataque SWOD uno, simplemente queremos agregar queremos agregar una colisión. ¿Bien? ¿Qué tipo de colisión? Queremos agregar una colisión básica de caja para que. Y luego solo por claridad, agreguemos también porque puedes ver que hemos agregado esa colisión de caja. Agreguemos también en un simple cubo. Oh, lo siento. Agreguemos un cubo. No sé por qué ahí estamos. Así que hemos añadido en un cubo, ¿verdad? Ahora, en realidad podríamos decidir simplemente ignorar el control deslizante de la caja y usar el cubo solo. Pero vamos rápidamente he desvinculado su escalado. Entonces quiero escalarlo en el eje Y para que sea Déjeme dejarlo en uno en el eje y. Oh, no diez, diez es demasiado grande. Lo quiero en uno. Pero entonces quiero que sea un poco más corto en el eje vertical. Así que lo he reducido en la vertical a aproximadamente 0.2. Entonces este de aquí es nuestro simple ataque SOD. Ahora, aquí, no está haciendo nada. Es solo un simple ataque SWOD. Es sólo que, ya sabes, sentado ahí. Entonces lo que queremos es engendrar la escena. Ten en cuenta que no está haciendo nada, pero solo llamaremos uno al ataque SOD Entonces volveremos con el héroe bajo el ataque mele. Y lo que queremos es en lugar de simplemente imprimir un texto llamado ataque, queremos que abarque también en el de ataque con espada. Volveremos al héroe y justo después del texto que dice ataque es donde vamos a agregar en los nodos en los que lo van a generar Ahora, desovar en es bastante sencillo. Vamos a arrastrar esto y vamos a escribir span Bien. Y el actor hilado de clase es lo que seleccionaremos. Ahora, lo que vamos a traer, queremos buscar un ataque con espada. Perfecto. Ahora tenemos que decidir dónde va a generar y su anulación de manejo de colisiones, ¿de acuerdo? Pero eso está bien. No necesitamos tocar eso por ahora. Seleccionaremos la transformación de engendro, y luego simplemente dividiremos esto porque queremos que genere en una ubicación determinada Ahora mismo está desove a cero, cero, cero. Entonces, si volvemos, alejamos si compilamos. Básicamente, lo está engendrando más bien, perdón, déjame jugar a boxes Así que en cualquier momento, fíjate, simplemente genera eso. Eso es todo lo que hace. Está generando un objeto ahí mismo Entonces lo genera por allá. Queremos que se genere alrededor de la zona media del personaje, ¿de acuerdo? Entonces volveremos a héroe y queremos cambiar donde va a desovar Entonces, donde queremos que genere es alrededor del lugar donde está el libro volteo de papel Entonces déjame arrastrar en el flipbook de papel. Y luego solo quiero obtener la ubicación de la palabra, obtener la ubicación del mundo porque quiero llegar a donde está. Esto es bueno. Y justo después de obtener su ubicación, conectamos esto al span. En realidad, permítanme romper este vínculo. No, no, no. Por favor, recombine el pin de la estructura Sí, ¿bien? Vamos a solo ¿Por qué me estoy dividiendo? Quiero recombinar. No quiero separarme. Bien, así que vamos a colocarlo rápidamente por ahí, ¿verdad? Entonces hemos conseguido el flipbook de papel lo arrastramos adentro, obtenemos la ubicación salvaje, obtenemos la ubicación salvaje, y luego eso va a conectar con la Y esto es lo que obtienes ahora. Así que vamos a presionar play. Boom, fíjate en dónde engendró. ¿Bien? Ahora, volvamos. El único problema que tenemos es cuando lo hicimos girar, es como colisionar con el actor, que no es lo que queremos Entonces vamos a seleccionar este ataque con espada por aquí. Este cubo por aquí, y vamos a buscar colisión. Y ahora mismo, es colisión está configurado para bloquear todo dinámico, y no queremos eso. Llamémoslo superponer todo dinámico. Superposición significa que se superpondrá. Podrá chocar con las cosas y repasarlas, pero no bloquearlas. Así que intentemos darle vueltas. Y fíjate que solo se superpone. Y cada vez que hago clic en ataque, aparece en uno de esos, ¿de acuerdo? Y si solo mantengo presionado el botón de ataque, está generando infinitamente Pero eso es tonto, pero nos ocuparemos de eso más tarde. ¿Bien? Al menos ahora, sabemos con certeza que podemos hacer clic en el botón de ataque, y eso genera en Eso es increíble. Ahora que tenemos eso marcado, ahora solo necesitamos agregar un posicionamiento un poco más inteligente Entonces para empezar, este ataque de Espada, volvamos al héroe. Entonces en este momento, está obteniendo la ubicación salvaje y luego desove exactamente en la ubicación salvaje Pero a lo mejor no es lo que queremos, ¿verdad? Entonces lo que vamos a hacer es romper rápidamente este vínculo, ¿de acuerdo? Entonces dividamos esto. Y entonces también aguantemos, deja esto arriba. Ahora sabemos a ciencia cierta que esta es la X, este plano, el plano horizontal es la X. Hasta donde, está bien. Puede desovar en el mismo lugar en la Z. Puede desovar en el mismo lugar en el Pero en la X, simplemente lo obtendremos y luego agregaremos 120 unidades, lo que va a empujarlo un poco hacia adelante sobre el eje X. Ven aquí, conecta eso arriba. Excelente. Y con eso, vamos a compilar. Así que ahora esta vez, cada vez que entramos y presionamos el botón de ataque, se genera un poco por delante del personaje Sí, sé que no está funcionando del lado izquierdo, pero no te preocupes, ya nos ocuparemos de eso más adelante. Primero queremos asegurarnos de que haga daño. Entonces ahí es por donde va a aparecer el hit box . Eso es genial. Ahora que tenemos al personaje que acaba desovar en algo sencillo en el mundo, hagamos ahora algunos ajustes Entonces tenemos el ataque dammi por aquí. Queremos que le haga daño al maniquí de ataque. Entonces, cuando entro y lo hice girar, debería hacerle daño al maniquí de ataque Ahora, para que eso funcione, todo lo que tenemos que hacer es vincularlo. Queremos vincularlo al maniquí de ataque. Entonces, dentro de su gráfica de eventos, ¿verdad? Vamos a conseguir este cubo vamos a venir aquí. Quiero agregar un evento en componente begin overlap, cube. Bien. Entonces este es el que queremos. Bien. Componente comienza solapamiento. Ahora, por lo que respecta al otro actor, el otro actor va a ser el maniquí de ataque Entonces queremos lanzar para atacar a dammi. ¿Bien? Entonces esto de aquí, bien, elenco para atacar a Dammi Y luego lo configuró para que el otro actor se vaya a configurar para que sea el maniquí de ataque Bien. Y luego después de recordar, cada vez que se superpone con la represa de ataque, entonces queremos aplicar Bien. Entonces eso es todo, el nodo de daño aplicado. Y la cantidad de daño que quieres aplicar es de diez, ok. Y justo después de haber aplicado el daño de diez, queremos destruir actor y destruir a qué actor yo. Entonces se destruye a sí misma, lo cual es genial. ¿Bien? Entonces lo que queremos que haga es que va a aparecer en cada momento que se superponga como el cubo con la presa de ataque, va a aplicar diez daños y luego destruirse a Ahora, con solo esa simple interacción coddin entremos. Bien. Entonces está atacando, pero no lo es correctamente. Parece que no está haciendo daño, pero vamos a comprobarlo dos veces, ¿verdad? Entonces vamos al maniquí de ataque. Y rápidamente sobre cualquier daño, déjame rápido. Esto es solo solución de problemas, bien. Sobre cualquier daño, déjame arrastrar esto a una secuencia. Bien, entonces secuencia básicamente significa que hará una cosa y luego otra. Y luego en la siguiente, voy a aplicar una cadena de impresión, y luego voy a llamarla daño tomado para ver si se está haciendo daño. Entonces estoy aquí. Bien, entonces actualmente no está recibiendo daños, lo que significa que el elenco no está funcionando correctamente. Volvamos y volvamos a visitar al elenco. Ah, por eso. Debido a que el actor dañado no ha sido seleccionado, así que permítame seleccionarlo como el actor dañado. He ahorrado, vuelve, vuelve y vuelve a probarlo. Bueno. Observe que está tomando daños. Excelente. Entonces ahora lo tendrás funcionando para que cuando haga clic para atacar, el maniquí esté recibiendo daños. Sigue siendo rudimentario. Hay mucho más código para hacer que esto funcione de manera efectiva, pero esto es bueno. Ahora tenemos la capacidad de engendrar en una simple caja de calor, que hace daño. Vamos a seguir adelante y limpiarlo. A continuación, solo vamos a hacer un poco de limpieza del código para que funcione de manera más efectiva. 44. 42 Cómo hacer un ataque de jugador parte 2: Todo bien. Entonces ahora que tenemos, ya sabes, la versión más básica de un ataque con espada de jugador, volvamos y volvamos a visitar la DCAA de Entonces, desde el punto de vista del diseño, el jugador balancea la espada para hacer daño. Fresco. Código, aplica daño a objetos enemigos, ya tenemos eso marcado Y luego en la animación Soder tack y el sonido de soda tack Y nos meteremos en estos dos últimos bits en los próximos videos. Pero por ahora, limpiemos mucho del código que se trata de aplicar daño a objetos enemigos. Ahora, la forma en que funciona actualmente es cada vez que presionas cualquier botón de ataque. Observe que está haciendo muchas instancias de daño. Así que vamos a ordenar estos uno por uno. Vamos a asegurarnos de que solo haga una instancia de daño. Bien. Y luego tenemos que asegurarnos de que cuando esté de cara a la izquierda, se genere en el lado izquierdo Cuando está de cara a la derecha, se genera en el lado derecho Ya está haciendo eso. Pero sí, eso es lo primero que vamos a resolver. Entonces ahora mismo, si volvemos al héroe, está consiguiendo la ubicación salvaje actual. Y luego está sumando 120 unidades a la posición, y por eso está desove en. Bien. Pero vamos a hacer un cambio rápido. Ahora que sabemos que funciona, podemos eliminar todo ese código, y todavía estamos desove en el Sword tack one Pero ahora, su posición no va a ser determinada únicamente por el flipbook de papel Ahora, vamos al puerto de vista, ¿no? Tenemos un par de cosas. Ahí está el libro de papel. Ahí es donde configuramos el audio de pasos del reproductor, dónde viene el audio de inicio de salto, y el audio de aterrizaje de salto, de donde proviene Dado que todo lo que hace el jugador está unido al flipbook de papel, esta es la ubicación ideal para agregar en todos estos otros objetos Así que vamos a sumar rápidamente en una simple colisión. En realidad, no. Vamos a añadir en un simple déjame ver, añadir en un simple necesitamos algo visible. Agreguemos en una simple colisión de caja. Bien. Y esta caja, vamos a bajar su escala. Quiero que sea muy bajo, ¿de acuerdo? Y luego su posición, vamos a arrastrar justo al frente. Seguro que puedes ver lo que está pasando aquí. Y vamos a renombrar esta caja y queremos cambiarle el nombre a ataque FODA, ubicación, subrayado uno Bien. Entonces es la ubicación de ataque SWOD uno, y lo hemos configurado aquí mismo Ahora, solo para mostrarte por qué esto es importante, déjame agregar un simple cubo, ¿de acuerdo? Añadir en un cubo simple, y he añadido en el cubo simple al ataque de la Espada, ¿verdad? ¿Dónde se encuentra este cubo? Quiero que sea visible. ¿Dónde está? No lo estoy viendo. ¿Es así de pequeño? Si es pequeño, vamos a necesitar hacerlo más grande. Oh, chasquido. Bien, a lo mejor era demasiado grande. Hagamos esto más pequeño. Sí. Ahora déjame mostrarte rápidamente, oh, ¿por qué hay un descanso? Es negarse a compilar. Bien. ¿Por qué no está compilando Porque esta transformación de engendro no tiene nada que conectar. Déjame romper ese vínculo. Ahora compila correctamente, bien. Así que fíjate que no importa lo pase cada vez que el jugador cambie de dirección, esa caja de sombreros está en esa misma ubicación. Puedes notar eso, ¿verdad? Espero que lo estés viendo con claridad. Eso es bueno. Entonces ahora que tenemos esa ubicación, ¿no? Esa ubicación del cubo, déjame borrar ese cubo. Vamos a seleccionar rápidamente para eliminar el cubo. Ahora sabemos que en cualquier momento podemos llamar a la ubicación de eso. Entonces déjame volver al ataque no, lo siento, de vuelta al gráfico de eventos de héroes. Vamos a volver a vincular esta o, engendrando el ataque SOD Pero esta vez, vamos a conseguir la ubicación del ataque SWOD uno, arrástrela aquí Bien, arrástralo aquí. Entonces vamos a conseguir locación salvaje. Bien, consigue su ubicación salvaje, y eso es lo que vamos a usar como el lugar donde se conecta la transformación span. Entonces déjame apilar esto. Me gusta apilar esto verticalmente cada vez que tengo la oportunidad, para que todos los nodos puedan estar en un área y pueda mirar de abajo a arriba para ver qué está pasando. Así que vamos a compilar eso. Y ahora, de repente, desove al frente, genera la derecha, genera la izquierda, patrocina a la derecha, spas a la Bonito. Ahora tenemos que resolver el siguiente problema. Para empezar, estos ataques SOD solo se mantienen durante demasiado tiempo, bien, y son demasiados. Entonces tenemos que arreglarlo para que cuando engendremos en ese SwodTack, desaparezca después de cierto tiempo, ¿de acuerdo? Entonces volvamos al propio ataque SWOD. Y vamos a cambiarlo. Entonces, para empezar, dice, Oye, en el evento empiezan a superponerse. Si se solapa con el maniquí de ataque, hace daño, y luego se destruye a sí mismo Pero lo que también queremos está en actor, más bien, perdón, no necesito eso. Lo que queremos es, veamos que el evento comience a jugar. Eso es lo que queremos. Queremos que el evento comience a jugar. Queremos que haya un poco de retraso. Bien. Y este retraso se va a establecer en 0.01, después destruir actor. Esa es una forma de hacerlo. Entonces si entramos, ahora, notamos que cada vez que engendro en el ataque SOD, está disponible por aproximadamente 0.1 segundos, más bien lo siento, es visible por aproximadamente 0.1 Y luego desaparece. Esa es una forma de hacerlo. Otra forma de hacerlo es en lugar de usar event begin play para destruirlo, podemos usar evento Tech y T se llama cada frame. Entonces déjame romper el evento comenzar a jugar. Así que no necesito retraso si estoy usando la t. Así que la tecnología de eventos va a venir aquí, conecta eso por allá. Y básicamente, cada vez que se hace un fotograma, destruye al actor Entonces la soda tack va a existir para un solo fotograma. Ahora fíjate. Básicamente, ahora es invisible. Entonces, si vengo aquí y hago clic, note que está haciendo daño porque se está creando, pero está desapareciendo justo después de un fotograma, ¿de acuerdo? Y así es como ahora tienes tu personaje capaz de hacer daño con un hit box invisible en un solo fotograma. Eso es genial. No obstante, si bien esto es bueno, todavía tenemos un reto de cada vez que presiono el botón de ataque, está haciendo múltiples ataques. Está desove en demasiados. Entonces tenemos que ajustar eso. Así que volvamos una vez más con el héroe. La maleta de acción de entrada mejorada, vamos a hacer un cambio. Esta vez vamos a usar lo que llamamos el gatillo do once, ¿de acuerdo? Hacer una vez. Entonces esta vez, arrastrando desde disparado, diremos: Oye, hazlo una vez, para que solo lo haga una vez, y luego no pueda volver a hacerlo Y luego completado o mejor dicho o cancelado, se restablece. Así que volvamos. Entonces voy a hacer click. Oh, lo siento, todavía estoy acercado. Y no, no, sigue sin funcionar correctamente. No se cancela. Rompe ese vínculo. Quiero que se complete, se restablece, compile, vuelva. Entonces ahora, si presiono una vez, hace un ataque. Entonces cuando presiono una vez, hace un ataque. ¿Bien? Aviso, hago clic una vez, hace un ataque o diez daños. Sin embargo, si hago clic y mantengo pulsado, no sale nada hasta que lo vuelva a presionar, ¿de acuerdo? Tengo que presionarlo de nuevo para que funcione. Y con eso, tenemos esto funcionando de manera efectiva y clara. Entonces primero hagamos otra prueba. Bien. Entonces, ¿hace daño a la izquierda? Sí, hace daño a la izquierda. Hace daños a la derecha. Perfecto. Perfecto. Perfecto. Entonces ahora tenemos la parte de código de nuestra soda tack totalmente marcada Todavía hay más cambios, pero si has entendido todo al respecto este momento y cómo desove en obras, ahora podemos pasar a trabajar en la animación para que tengamos una animación de Tack de Soder que se ve bien 46. Animación del ataque con espada de 44 jugadores, parte 2: Bien, así que como héroe, arrastra como héroe, queremos encontrar un ataque con espada, que está aquí y queremos hacer una doble comprobación, ¿verdad? Es igual Bien, es igual a uno porque es un booleano Y si lo es, puede hacer la transición. Vamos a compilar eso. Estamos en el juego. Entonces, cuando presiono el botón de ataque, ahora está encerrado en esa animación de ataque. Eso es bueno. Entonces volvamos al plano Quieres ir al alto nivel del héroe para pasar de SOD ataque uno de vuelta a ídolo Vamos a copiar todo esto. Bien, porque creo que en cualquier momento puedes copiar y ahorrar tiempo y energía, para volver a la inactividad. Básicamente, hará esto excepto si esto está configurado para apagarse, y luego debería volver a estar inactivo. Tan ocioso, Aguanta. Ataque. Bien, entonces ahora espera . No, aún no está aquí. Bien, pero el ataque sigue en marcha, así que tenemos que averiguar cómo asegurarnos de que la animación de ataque retroceda. Entonces volveremos con el héroe. Soda tack se establece en uno. Déjame entender esto, ponlo al frente. Entonces justo después de que se genere en el SOD, soda tack se pone Esa es una forma simplificada de hacerlo. Entonces ahora, sí, no está funcionando. Está funcionando muy rápido. Va de encendido a apagado demasiado rápido, así que podría introducir un retraso rápido. Y haremos el retraso. En realidad, para hacer realidad el retraso, lo que nos gustaría es que volvamos, miremos el arte para el jugador. Y lo que queremos es la soda tack. La soda tack es de 15 marcos. Se puede ver aquí. Son 15 fotogramas, pero son cinco fotogramas de animación. Déjame caer ese 15-5. Entonces hace eso. A ver. Boom. Hmm. Interesante. Entonces son 15 fotogramas de sus cinco fotogramas de animación. Lo mantendremos a las cinco por ahora, solo por simplicidad. Regresa. Entonces cinco. Entonces eso va a ser 1 segundo de retraso. Entonces volvamos aquí, atacemos, y luego ya está hecho. Entonces ataca, y luego se hace. El motivo por el que se hace es porque como héroe, después de un retraso de 1 segundo, pone uno al ataque de la Espada, más bien establece que el ataque SWOD sea cero Vamos a volver y cambiar esto para arriba. Al menos sabemos que la lógica basal tiene sentido. Entonces ahora mismo de inactivo y luego puede comenzar a moverse. Para que puedas atacar y moverte, atacar y moverte, atacar y seguir moviéndote. Entonces se desarrolla la animación de ataque. Entonces ya está hecho. Pero si te estás moviendo, no puedes hacer la transición a la animación de ataque. Arreglemos eso rápidamente. Entonces ahora volveremos, volveremos al plano de animación a un alto nivel Haremos lo mismo para la carrera. Oh, déjame regresar y copiar el código porque quiero que, ya sabes, salve vida y tiempo. Regresa. Entonces, pasando de correr a refresco, básicamente, pasarás de correr a la de soda tack Si como héroe es como héroe, la tachuela de Soder está corriendo, Y luego puedes pasar de la soda tack a correr. Siempre y cuando la soda tack esté puesta a cero. Entonces, en otras palabras, estás avanzando, lo cual es bueno. Entonces ahora intentemos eso otra vez. Entonces me estoy postulando. Estoy tomando refrescos, puedo volver a correr. Estoy corriendo, estoy tomando refrescos, puedo volver a correr. Bien. Esto es bueno. Atacando al suelo, fresco, tachuelas de césped, fresco, ataque al suelo. Eso está funcionando perfectamente bien. Entonces veamos. Oh, bien, hay daños. Hay daños. Hay daños. Hay daños. Hay daños. Eso es daño. Hay daños. Entonces sí, ahora está haciendo daño. ¿Bien? Está funcionando. Está funcionando principalmente como se pretendía. Por supuesto, todavía hay un par de temas. Por ejemplo, está haciendo daño en el primer fotograma, que no es lo que queremos, quería hacer daño alrededor del tercer cuadro. Ahí es cuando es peligroso, ¿verdad? Porque baja, luego golpea, baja, luego golpea, luego se hace, baja, golpea, ya está. Entraremos en esos ajustes un poco más tarde, pero ahora la línea base está funcionando correctamente. Esto es bueno. 47. Animación de ataque con espada aérea 45: Bien, entonces ahora cuando se trata del suelo, cada vez que te mudes, eres capaz de hacer ese ataque. Cuando te quedas quieto, puedes hacer ese simple ataque básico. Pero, ¿y cuándo has saltado? Bueno, ahora tenemos que sumar un poco porque sigues teniendo ese mismo hit box cuando estás saltando, ¿verdad? Al igual que, todavía obtienes ese mismo hit box cuando estás saltando. Pero, ¿cómo nos aseguramos de que realmente puedas hacer daño? Es decir, el daño que ya pusimos, lo arregló. Pero, ¿cómo tenemos una animación aérea agradable para el ataque? Bueno, entremos y agreguemos la animación de ataque de salto. Así que volveremos al aventurero y quieres buscar rápidamente bajo el arte para atacar Bien. Y ahora fíjate que hay una simple animación de ataque aéreo, y tiene tres fotogramas de animación. Va 0-03 Encuéntralos. Bien, están por aquí. Espero que lo veas con claridad, pero deberías poder verlo claramente basado en la instrucción en el aire. Y entonces vas a convertir estos en sprites. En otras palabras, crear sprite. Y luego con esos mismos tres que has creado como sprite, crea flipbook y simplemente llámalo Ataque con espada aérea, subraya uno. Bien. Entonces ese es el nombre que recomiendo usar ataque de espada aérea, subrayar uno. Entonces es doble clic. Entonces este es el ataque aéreo de la Espada. Eso es realmente. Bien. Ahora fíjate que son cuatro fotogramas de animación. Entonces déjame cambiar la animación a cuatro. Bien. Esto se ajustará más adelante, pero esto es solo por claridad visual, ¿de acuerdo? Ahora, volveremos a la fuente de animación, y luego agregaremos una nueva secuencia de animación. Y, claro, lo llamaremos ataque aéreo SOD bajo la puntuación uno, y ahí está Bien. Ahora con eso, claro, daremos uno a los datos de animación del ataque Air SOD, y ahí está el ataque Air SOD Ese es el que vamos a usar. Ahora, con eso, volvamos al plano de animación Voy a volver a la cima. Y simplemente seleccionaremos la animación de salto. Este va a ser el indicado, ¿verdad? Mantengamos todo cerca de la animación de salto. Lo siento. ¿Cómo puedo mover esto por ahí? Sí, vamos a moverlo un poco. Oh, esto podría estropearlo. No hagamos eso. De todas formas, ten eso. Entonces vamos a crear una estadística de animación, y vamos a llamar a esta estadística Espada aérea, ataque bajo el cuadrado uno. Bien, por organización y claridad. Y luego dentro, vamos a escribir play air SWoD attack. Boom, ahí está. Y conéctelo. Ahora que está conectado, vamos a compilar rápidamente. Volvamos, y vamos a vincularlo desde el inicio del salto, y también lo vamos a vincular de nuevo al inicio en salto. Bien, vamos a vincularlo de nuevo. Y lo que queremos, vengamos por aquí, va a ser exactamente lo mismo. Bien. Entonces, pasando del arranque por salto a AirsData esencialmente, cada vez que el ataque SOD uno esté jugando, podemos entrar Y entonces cuando el ataque SOD no está jugando, podemos salir de esa transición ¿Bien? Así que vamos a compilar rápidamente porque esto es solo de saltar, solo de saltar. Así que vuelve al nivel de desarrollador. Entonces, si estoy en el suelo, juega ese ataque SOD por salto Toca el aire solar tuck. Mira eso. ¿No es eso genial? Juega el aire solar tuck Ese es el corte de aire. Slash de aire Entonces ahora lo hemos configurado para que en el aire, esté el corte de aire. Y en el suelo, ahí está el corte de tierra. Se ve un poco bien. Ahora que tenemos esa tacha de soldadura básica lista para rockear en juego Ahora vamos a entrar y hacer algunos ajustes mucho más complejos a la tachula de soldadura de aire y la tachueta de soldadura a tierra y entrar en cómo hacer un sistema combinado para que podamos tener múltiples tachuelas de soda diferentes y también entrar en cómo vincular los ataques, bien, cómo vincularlos y hacer que se vean geniales Entonces vamos a entrar en el siguiente par de videos, vamos a entrar en cómo hacer un combo de tres hits. Que se combina en sí mismo, que es un sistema confiable que utiliza un sistema de dial in combo Bien, vamos a meternos en eso en el siguiente conjunto de lecciones. 48. 46 Cómo usar la animación personalizada para notificaciones de la caja de impacto de sword: Bien. Entonces vamos a hacer un cambio muy importante. Ahora, ahora mismo en nuestra implementación, se darán cuenta en el momento en que haga clic, el daño está hecho. El motivo es porque la caja de impacto por daños se está creando instantáneamente una vez que hacemos clic. Estoy seguro que me puedes ver presionando el botón de ataque y el daño se hace al instante. Cambiémoslo para que el daño solo se haga en un momento determinado durante la animación, y es parte de un par de pasos que vamos a estar haciendo para que el combate sea mucho más limpio y mejor. Entonces ahora mismo, para que funcione el ataque cuerpo a cuerpo, lo que sucede es que hay entrada mejorada, ataque masculino, ese es nuestro ataque real Y luego realiza un ataque SOD. Bien. Y luego genera en el ataque SOD un cuadro de golpe Y luego después de un ligero retraso, dice que de aproximadamente 1 segundo, establece que el ataque SOD esté apagado. Todo bien. Ahora, lo que queremos es cambiar lo que está desovando en ese ataque SOD En lugar de estar desove aquí, rápidamente vamos a romper esto Rompamos ese vínculo y rompamos este vínculo. Permítanme ampliar rápidamente el cuadro de comentarios. Entonces todo esto, que en realidad está generando en ese ataque va a ser movido hacia abajo y en su lugar, solo dejaremos el código, que decide, bien, es el ataque SOD ocurre o no va a durar 1 segundo lo dejaremos ahí. Ahora, fuera de eso, aquí, esto es lo que realmente está desovando en el daño en la caja Ahora, antes de compilar, lo que queremos es que el daño se haga alrededor de la época en que ese slash golpea Ves esa buena parte slashy, ahí es cuando el daño necesita realmente golpear al enemigo Ahora, para hacer eso, entraremos aquí. Y lo que tenemos que hacer es que necesitamos tener una función o evento especial, que en realidad se genere en ese ataque con espada Así que simplemente vamos a hacer click izquierdo y luego queremos agregar evento. Y luego queremos agregar un evento personalizado, ¿de acuerdo? ¿Ves eso? Agregar evento personalizado, y luego llamaremos a este lapso de eventos. Vamos a llamarlo hilado, FODA, caja de golpe. Así es como lo vamos a llamar. Llamaremos a la caja de éxitos SWOD hilada del evento, y arrastraremos esto a desove en esa caja, ¿de acuerdo? Ahora, una cosa que podemos ver es ahora que tenemos quitada esta caja de calor, cuando entremos al nivel, estaremos atacando, pero no se está haciendo daño alguno. Ahora bien, lo que queremos hacer es querer unir el desove de la caja de calor cuando el césped esté justo después de que haya barrido Ahora, para hacer eso, simplemente entraremos en tu personaje, que es el jugador. Y queremos entrar en la animación y abrir la salsa Zi de papel y el plano de papel Zedi Animation Ahora, cuando se trata de la salsa de animación, dirígete a la animación SOD Attack Una vez que estés en la animación SOD Attack, vamos a repasar aquí mismo a esta pista de notificación Bien. Y ahora déjame tocar la animación. Bien. Entonces por aquí es cuando quiero engendrar en ese SOD Entonces voy a dar click derecho y agregar Notificar. Pero qué tipo de notificar, quiero usar un nuevo tipo de notifique y lo llamaremos SOT Hit box. Detener. De inmediato, déjame alejarme un poco. De inmediato, el personaje principal se balancea. Ahí es cuando aparece el SWOD at box. Ahora que tenemos esta notificación llamada Sword hit box hecha aquí, volvamos a la animación Blueprint Ahora, notarás que en la animación Blueprint, ahora hay una nueva función aquí llamada SWODHITBX Haga doble clic en la caja de golpe de Espada. Bien. En realidad, veamos, se llama Sword hit box. Después de hacer doble clic en él, estamos aquí dentro de esta notificación. Y lo que queremos hacer es arrastrar el como héroe, arrastrar esa variable adentro. Y entonces lo que queremos es llamar a ese evento. Entonces queremos llamar al evento veamos. El evento se llama spawn SOD Hit box. Esto es. Esta función por aquí se llama spawn SOD Hit box, y eso es Y Valla simplemente entrando, asegurándose de que haya una función especial en nuestro plano de personaje principal Ir a la fuente de animación, crear una nueva notificación, ir a nuestro Blueprint de animación, encontrar esa notificación y llamar al héroe y pedirle que desactive esa función de caja de golpe de espada, verifiquemos dos veces y asegurémonos de que esté funcionando correctamente ¿Por qué? Sí, fíjate, está haciendo daño en la diapositiva. Entonces está funcionando correctamente, y está desove la caja de calor de espada correctamente y en el momento adecuado eso es bueno Entonces ahora hemos separado nuestro desove de caja de calor de daño, y lo hemos puesto y conectado a la animación Lo siguiente que haremos es volver a la salsa. Vamos a guardar esto rápidamente. Esto es guardar. Seleccionemos rápidamente la tachuela de soda de aire y la tachuela de soda de aire Hagamos también lo mismo en esta época. Añadiremos la notificación y ¿dónde está esta notifica? Se llama SOD Hit box. Vamos a añadir la notificación aquí. Entonces ahora está ahí en el ataque aéreo y en el ataque terrestre. Ambos son capaces de hacerlo así que hace daño por salto. Puedo hacer una especie normal y va a hacer el ataque, y va a cortarme bien y está haciendo daño. Entonces ahora tenemos un Ataque Aéreo que hace daño, y tenemos el ataque por aquí ¿Bien? Ataque aero, y tenemos el aatack también El ataque aero funciona. El ataque a tierra funciona y funciona de manera confiable. Bien. Eso es algo realmente genial y es bueno. Tenemos eso marcado. A continuación, vamos a hablar de que vamos a hablar un búfer de entrada y entrar en cómo configurar combos Entonces queremos que sea para que el jugador de autos tenga un combo genial de tres hits. Del primer slash, un nuevo slash secundario, y un tercer slash para mostrarte cómo configurar un buen Vamos a meternos en eso en el próximo 49. 047 Más animaciones de ataque: Ahora, antes de entrar en la secuencia combo, lo primero que vamos a hacer es que vamos a entrar y vamos a entrar en la animación. Ahora, más bien, volveremos al jugador. Volvamos al arte. Y lo que queremos hacer es que queremos configurar un par de animaciones combo más, ¿de acuerdo? Porque ahora empezamos con el primer ataque de sod. Ahora queremos tener un par de animaciones de ataque más vendidas. Notarás que esta es la segunda animación de ataque aventurero Entonces haré exactamente lo mismo con el ataque dos. Cuenta con cinco marcos. Voy a usar las acciones de sprite, crear sprites. Bien. Entonces ahora el ataque Espada dos, más bien el aventurero ataque dos ahora tiene Sin embargo, necesito encontrar esos sprites. Aquí estamos aventurero ataque dos va de cero, uno, dos, tres, cuatro, cinco Y luego voy a crear unos flipbooks con esos, y luego los voy a llamar Ataque Espada. Ataque td bajo marcador dos. Bien. Ahora te darás cuenta del ataque SOD uno, ese slash, der tack dos, es ese Es la vertical, es la descendente. Ahora, por uniformidad, volveremos y unificaremos esto en un poco. Y luego voy a buscar aventureros atacan a tres. Entonces busquemos esas animaciones. Bien, entonces hay ataque tres. Voy a ir a acciones de Sprite, crear sprites. Quiero tener todos esos como sprites. Y ahora como tres, seleccionaré entre 025 y crearé unos flipbooks y lo llamaremos ataque SWOD Así que déjame acercarme. Entonces verán que tenemos ataque con espada uno, ataque espada dos y ataque SWOD tres Ah, bien. Ahora, vamos a ralentizar las animaciones. Este es el ataque SOD uno. Se reduce a uno, tres, cuatro, cinco cuadros. Entonces, lo que vamos a hacer y tener en cuenta, solo estamos haciendo este curso con fines de aprendizaje. Voy a bajar las animaciones de 15 fotogramas a cinco fotogramas solo por ahora. Y luego Espada ataca a tres. Va a bajarlo cuadros por segundo 15-5 también. Disminuir la velocidad para mayor claridad visual. Por supuesto, cuando estés haciendo tu desarrollo final de juego, puedes ajustar esos tiempos Solo quiero que esto esté aquí y sea fácilmente visible para ti. A continuación, vamos a entrar en la fuente de animación. Entonces ya tenemos SOD Attack uno aquí. Déjame asegurarme de que los nombres sean visibles, como puedes ver, SOD attack one está listo Vamos a agregar otro, y por supuesto, va a ser SOD Attack bajo el cuadrado dos, y agregaremos otro, y será SOD Attack bajo el cuadrado tres Entonces tenemos nuestros tres ataques SOD aquí. Déjame hacer doble clic sobre dos, y voy a buscar el ataque SOD dos Deberías poder verlo ahí, y aquí está. Juguemos. Bien. Entonces ese es el segundo ataque SOD, y luego SOD ataca tres En cuanto a los datos de animación, buscaré SOD Attack three Bien. Esas son nuestras tres animaciones de ataque de Espada. Eso es genial. Ahora, lo suficientemente bueno como para que estas animaciones también incluyan algunos nuevos ataques aéreos SOD también Así que voy a volver a la Voy a volver al escenario principal una vez más Control Spacebar Quiero encontrar el próximo ataque de Air SWOD. Entonces hay un segundo ataque de Air SOD. Deberías poder encontrarla. Tiene cuatro frams de animación, ¿de acuerdo? Entonces, en realidad, permítanme escribir aire para que simplifique la búsqueda de los ataques aéreos. Entonces esta es la primera. Bien, ataque aéreo uno. Bien. Y luego hay ataque aéreo dos. Ese es el indicado. Así que básicamente puedes usar el ataque aéreo dos como el siguiente ataque, que más bien como el siguiente conjunto de sprites, déjame alejarme un poco para simplificar esto O Ataque aéreo dos, vamos a convertir eso en un montón de sprites o crear sprites Entonces Ataque aéreo dos sprites están listos. Haré clic en esos y crearé unos flipbooks, y simplemente lo llamaré ataque aéreo bajo la puntuación dos. Bien. Entonces ataque aéreo, más bien, déjame cambiarle el nombre. Déjame cambiarle el nombre a Air SOD attack underscore dos. ¿Bien? Déjame entrar. En este momento está configurado en 15 cuadros. Eso son demasiados. Es 12. Se trata de tres fotogramas de animación. Entonces lo dejaremos como tres fotogramas de animación, bastante simples. Y entonces encontraremos los siguientes datos ARSO, que es el tercero Puedes entrar y buscarlo. A ver. Uno, dos, tres, boom. Este solo tiene dos fotogramas de animación. Parece, así que tendremos que entrar y agregar un par de diferentes. Veamos Air Soda tacha tres. Bien, entonces dependiendo de cómo se hayan organizado, se ve un poco diferente. Pero fundamentalmente, puedes simplemente bien, pasar de listo. A ver. Esto es un poco complejo dependiendo de cómo se organicen tus sprites Pero permítanme seleccionar todos estos. Y luego veamos las acciones de Sprite vamos a crear un sprite Después con los seleccionados, voy a seleccionarlos a todos, y luego voy a crear unos flipbooks Bien, ¿cómo se llaman los flipbooks? A veces los flipbooks aparecen en, como, diferentes. Déjame controlar Z. Oh, hombre, cambié los fotogramas por segundo Aguanta. Entonces déjame dejar esto de nuevo a cuatro. Deja esto. Entonces veamos, creé múltiples flipbooks, que no es lo que queremos Déjame borrar esos ataques aéreos tres flipbooks. Sí, eliminémoslos rápidamente. Déjame volver por aquí. Y lo que quiero, déjeme escribir aire. Quiero buscar los ataques ARSOD, emparejarlos a todos y luego crear Se debe crear un solo flipbooks. No debería ser crear múltiples flipbooks. Bien. Por alguna razón crea múltiples flipbooks, que en realidad no es lo que quiero Eso es un sprite. Eso es un sprite. Bien, vamos a tener que hacer esto el viejo fashunway. Entonces tenemos este ataque aéreo aventurero aquí mismo, ¿verdad? Llamemos a esto renombrarlo ataque aéreo bajo la puntuación tres. Entonces debería ser ataque de Air SOD. Déjame cambiar el nombre aéreo SOD ataque tres. Ahora lo he seleccionado. Y lo que quiero hacer es que voy a dejarme primero pausar de play pause. Bien, ahora que he impedido que juegue, voy al área de juego, y luego en realidad, solo voy a agregar un fotograma clave. Déjame configurarlo para que sean cuatro fotogramas de animación. La mayoría de los ataques aéreos son cuatro fotogramas de animación. Y después voy a seleccionar el segundo fotograma clave. Ven aquí. Y luego clic izquierdo, ¿de acuerdo? Ese es el indicado. Haz clic izquierdo en el siguiente, y luego quiero elegir un nuevo sprite Espero que esto sea claramente visible. Y luego déjame buscar ataque aéreo de tres finales, ¿de acuerdo? Entonces déjame ver cómo se ve esto. Bien. Entonces ambos se ven muy similares. Entonces lo que voy a hacer, no, lo que en realidad voy a hacer es dejarme cancelar esto. Lo que voy a configurar es en lugar de tener un cuestionable ataque aéreo tres, déjame borrar eso Lo configuraremos para que el Air soda tack uno y Air soda tack dos se conecten entre sí Entonces Airsdatak uno está listo para veamos, uno, dos, tres, cuatro, bien Soda tack dos se ve así. Déjame ajustar esto. Entonces lo que voy a hacer es que voy a conseguir Air soda Tak one, y voy a duplicarlo, y ya se ha renombrado AirsDataK tres. Esa es la llamada. Entonces voy a conseguir AirSDA Tak dos y eliminarlo. Y luego voy a conseguir AirSDA tak one, y luego voy a duplicarlo y notarlo se llama a sí mismo AirsDataK Pero lo que voy a hacer es que lo voy a conseguir voy a hacer una pausa más bien, voy a pausar, y lo que voy a hacer es que voy a cambiar el orden de los fotogramas. Entonces voy a conseguir el fotograma tres, y luego lo voy a arrastrar hasta el inicio. Déjame regresar, asegúrate de que esto va correctamente. Quiero arrastrar el último fotograma hasta el final. Juguemos esto, asegurémonos que lo esté organizando correctamente. Detener. Así que el fotograma cuatro más bien el fotograma dos va a ser el primer fotograma. Entonces tenemos que moverlo por ahí. Moverlo es sorprendentemente difícil. Voy a tener que elegir realmente el sprite. Entonces veamos aquí. Ataque dos querrá que sean dos. Así que quiero que empiece desde aquí. Y entonces el segundo es correcto. Perfecto. Y luego el tercero, nuevo sprite, queremos que sea cuando su brazo esté arriba por tipo aire Estoy buscando. Estoy mirando a cada sprite. Estos son realmente pequeños en tu pantalla, pero deberías poder. Bien, así que voy a entrar con una edición de post porque parte de este video no estaba muy claro. Ahora, estamos trabajando para tener un combo de tres golpes en el suelo y en el aire, un combo de tres golpes. Simplemente presiono el botón de ataque tres veces por ahí. Ahora, en el último video, todo lo que tenías que hacer era configurar la animación de ataque SOD y agregar el hitbox y la animación air SODA tack y agregar Todo lo que estás haciendo ahora es que vas a agregar dentro de la salsa de animación Paper Zd, el segundo SODA tack en el aire y agregar también el notificador SOD hitbox La tercera animación de ataque aéreo SOD y agregar también en el hitbox SOD Y luego en el suelo, actualmente tienes el primer ataque SOD configurado y el evento SOD eight box spawning Entonces quieres sumar en el segundo ataque y el tercero. Y una vez que los haya agregado a la fuente de animación Paper Zd, puede pasar a configurar realmente el búfer de entrada y el sistema combinado 50. 47 Cómo agregar más animaciones de ataque para el sistema de combinación: Ahora, antes de entrar en la secuencia combo, lo primero que vamos a hacer es que vamos a entrar y vamos a entrar en la animación. Ahora, más bien, volveremos al jugador. Volvamos al arte. Y lo que queremos hacer es configurar un par de animaciones combo más, ¿de acuerdo? Porque ahora empezamos con el primer ataque de sod. Ahora queremos tener un par de animaciones de ataque SD más. Notarás que esta es la segunda animación de ataque aventurero Entonces haré exactamente lo mismo con Attack two. Cuenta con cinco marcos. Voy a usar las acciones de sprite, crear sprites. Bien. Entonces ahora el ataque Espada dos, más bien el aventurero ataque dos ahora tiene Pero necesito encontrar esos sprites. Aquí estamos aventurero ataque dos va de cero, uno, dos, tres, cuatro, cinco Y luego voy a crear un libro volteo con esos, y luego los voy a llamar Ataque Espada. Ataque almacenado bajo la puntuación dos. Bien. Ahora te darás cuenta de que el ataque de Espada uno, ese corte, el ataque de Espada dos, es ese corte inferior Es la vertical, Ahí está la hacia abajo. Ahora, por uniformidad, volveremos y unificaremos esto en un poco. Y luego voy a buscar aventureros atacan a tres. Entonces busquemos esas animaciones. Bien, entonces hay ataque tres. Voy a ir acciones de sprites, crear sprites. Quiero tener todos esos como sprites. Y ahora como tres, seleccionaré 0-5 y crearé un flipbook y lo llamaremos ataque SWOD Así que déjame acercarme. Entonces verás que tenemos SOD ataque uno, SOD ataque dos, y SOD Oh, bien. Ahora, vamos a ralentizar las animaciones. Este es el ataque SOD uno. Se reduce a uno, dos, tres, cuatro, cinco cuadros. Entonces, lo que vamos a hacer y tener en cuenta, solo estamos haciendo este curso con fines de aprendizaje. Voy a bajar las animaciones de 15 fotogramas a cinco fotogramas solo por ahora. Y luego Espada ataca a tres. Va a bajarlo cuadros por segundo 15-5 también. Simplemente ralentizándolo para mayor claridad visual. Por supuesto, cuando estés haciendo tu desarrollo final de juego, puedes ajustar esos tiempos Solo quiero que esto sea claro y fácilmente visible para ti. A continuación, vamos a entrar en la fuente de animación. Entonces ya tenemos ataque Espada uno aquí. Déjame asegurarme de que los nombres sean visibles, como puedes ver, Sword attack one está listo. Vamos a agregar otro, y por supuesto, va a ser SOD tack debajo del cuadrado dos, y agregaremos otro, y será SOD Attack bajo Entonces tenemos nuestros tres ataques SOD aquí. Déjame hacer doble clic sobre dos, y voy a buscar el ataque SOD dos Deberías poder verlo ahí, y aquí está. Vamos a plato. Bien. Entonces ese es el segundo ataque SOD, y luego SOD Attack tres En cuanto a los datos de animación, buscaré SOD Attack three Bien, esas son nuestras tres animaciones de ataque de Espada. Eso es genial. Ahora, lo suficientemente bueno como para que estas animaciones también incluyan algunos nuevos ataques aéreos SOD también Así que voy a volver a la voy volver al escenario principal una vez más, Barra espaciadora de Control Quiero encontrar el próximo ataque de Air SWOD. Entonces hay un segundo ataque aéreo SOD. Deberías poder encontrarla. Tiene cuatro fotogramas de animación, ¿de acuerdo? Entonces, en realidad, permítanme escribir aire para que simplifique la búsqueda de los ataques aéreos. Entonces esta es la primera. Bien, ataque aéreo uno. Bien. Y luego hay ataque aéreo dos. Ese es el indicado. Así que básicamente puedes usar el ataque aéreo dos como el siguiente ataque, que más bien como el siguiente conjunto de sprites Déjame alejarme un poco para simplificar esto. Entonces Air ataca dos, vamos a convertir eso en un montón de sprites o crear sprites Entonces Ataque aéreo dos sprites están listos. Haré clic en esos y crearé un flipbook y simplemente lo llamaré ataque aéreo bajo la puntuación dos. ¿Bien? Entonces ataque aéreo, más bien, déjame cambiarle el nombre. Déjame cambiarle el nombre a Air SOD attack underscore dos. ¿Bien? Déjame entrar. En este momento, está configurado en 15 cuadros. Eso son demasiados. Es 12. Se trata de tres fotogramas de animación. Entonces lo dejaremos como tres fotogramas de animación. Bastante simple. Y luego encontraremos los siguientes datos de Air SO, que es el tercero. Puedes entrar y buscarlo. A ver. Uno, dos, tres, boom. Este solo tiene dos fotogramas de animación. Parece, así que tendremos que entrar y agregar un par de diferentes. Veamos Air soda tacha tres. Bien, entonces dependiendo de cómo se hayan organizado, se ve un poco diferente. Pero fundamentalmente, puedes simplemente bien, pasar de listo. A ver. Esto es un poco complejo dependiendo de cómo se organicen tus sprites Pero permítanme seleccionar todos estos. Y luego veamos las acciones de Sprite vamos a crear un sprite Después con los seleccionados, voy a seleccionarlos a todos, y luego voy a crear un flipbook Bien, ¿cómo se llama el libro plegable? A veces el flipbook aparece en, como, diferente. Déjame controlar Z. Oh, hombre, cambié los fotogramas por segundo Agárrate. Entonces déjame dejar esto de nuevo a cuatro, deja esto. Entonces veamos, creé múltiples flipbooks que no es lo que queremos Déjame borrar esos ataques aéreos tres flipbooks. Sí, eliminémoslos rápidamente. Déjame volver por aquí. Y lo que quiero, déjeme escribir aire. Quiero buscar los ataques ARSOD, emparejarlos a todos y luego crear un Debería crear un solo flipbook. No debería ser crear múltiples flipbooks. Bien. Por alguna razón, crea múltiples libros flip, que en realidad no es lo que quiero. Eso es un sprite, eso es un sprite. Bien, vamos a tener que hacer esto a la vieja moda. Entonces tenemos este ataque aéreo aventurero aquí mismo, ¿verdad? Llamemos a esto, cámbiale el nombre ataque aéreo bajo la puntuación tres. Entonces debería ser ataque ARSOD. Déjame cambiar el nombre aéreo SOD ataque tres. Ahora lo he seleccionado. Y lo que quiero hacer es que voy a dejarme primero pausar de play pause Bien, ahora que he dejado de jugar, voy al área de juego, y luego en realidad, solo voy a agregar un fotograma clave. Déjame configurarlo para que sean cuatro fotogramas de animación. La mayoría de los ataques aéreos son cuatro fotogramas de animación. Y después voy a seleccionar el segundo fotograma clave. Ven aquí. Y luego clic izquierdo, ¿de acuerdo? Ese es el indicado. Haz clic izquierdo en el siguiente, y luego quiero elegir un nuevo sprite Espero que esto sea claramente visible. Y entonces déjame buscar ataque aéreo de tres finales, ¿de acuerdo? Entonces déjame ver cómo se ve esto. Bien. Entonces ambos se ven muy similares. Entonces lo que voy a hacer, no, lo que en realidad voy a hacer es dejarme cancelar esto. Lo que voy a configurar es en lugar de tener un cuestionable ataque aéreo tres, déjame borrar eso Lo configuraremos para que el Air Soda ataque uno y AirsDataK dos se conecten entre sí Entonces AirsDataK uno está configurado en, veamos, uno, dos, tres, cuatro, bien Soda tack dos se ve así. Déjame ajustar esto. Entonces lo que voy a hacer es que voy a conseguir Air soda Tak one, y voy a duplicarlo, y ya se ha renombrado AirSDA Eso es coll. Entonces voy a conseguir AirSDA Tak dos y eliminarlo Y luego voy a conseguir AirSDA tak one y luego voy a duplicarlo y notarlo se llama a sí mismo AirDataK Pero lo que voy a hacer es que voy a conseguirlo voy a hacer una pausa más bien, voy a pausar, y lo que voy a hacer es que voy a cambiar alrededor del orden de los fotogramas. Entonces voy a conseguir el fotograma tres, y luego lo voy a arrastrar hasta el inicio. Déjame regresar, asegúrate de que esto va correctamente. Quiero arrastrar el último fotograma hasta el final. Juguemos esto, asegurémonos que lo esté organizando correctamente. Detener. Así que el fotograma cuatro más bien el fotograma dos va a ser el primer fotograma. Entonces tenemos que moverlo por ahí. Moverlo es sorprendentemente difícil. Voy a tener que elegir realmente los sprites. Entonces veamos aquí, ataque dos va a querer que sean dos. Entonces quiero que empiece desde aquí. Y entonces el segundo es correcto. Perfecto. Y luego el tercero, sprite de noticias falsas, queremos que sea cuando le levante el brazo. Así que escriba aire. Estoy buscando. Estoy mirando a cada sprite. Estos son realmente pequeños en tu pantalla, pero deberías poder verlo un poco más visiblemente Entonces quiero que empiece por ese lado y termine ahí. Bien, esto es bueno. Entonces este es el ataque aéreo número dos. Parece una especie de basura. Sostener. Esa última parte. Esa última animación, creo que la voy a quitar. Déjame borrarlo. Entonces es ahora veamos, animación de uno, dos, tres fotogramas. Bien, entonces es una animación de tres fotogramas. Bien, cortarles ahí. ¿Bien? Eso tiene sentido. Entonces ahora AirSOD ataca uno se ve así. Se corta arranca, baja, luego dos arranques más bien jugar Parece que está cortando en sentido contrario. Por supuesto, cuando estás haciendo tus propios sprites personalizados, puedes ajustarlo, pero esto va a ser lo suficientemente razonable para nuestro sistema combinado inicial Entonces ahora tenemos múltiples ataques SOD. Agreguemos esos ataques aéreos SOD. Nueva secuencia de animación, aire SOD, Attack, guión bajo dos, y otro aire SOD, Attack, Attack, Entonces dos. Vamos a vender. No, no, no, no, no. Dos. Hombre, mi ratón es enorme. Bien, entonces dos va a ser el ataque aéreo SWOD dos, y tres va a ser el ataque aéreo SWOD Ahí vamos. Y luego, claro, tenemos que agregar en los notifica la misma manera que agregamos en los notificadores para los ataques SWOD, tendremos que agregarlos aquí. Entonces Air SWD atacan dos Oh, esto no está en. Había soldadura tachuelas dos. Bien, sí, eso está funcionando vamos a guardar eso. Así que en el marco dos, añadir notificar una salsa notificar, caja de calor SoEd Bien, vamos a ver. Soda tack uno. Tack de soldadura tres Agregar notificar, notificar salsa, caja de calor de Sod, arrastramos por aquí Bueno. Ahora, soldadura tachuelas uno tiene la notificación, soldadura tachuelas dos. Agárrate. Déjame ver ¿de dónde sale? Aquí está. Entonces aquí voy a agregar ir. Bien. Agregar Notificar SOD Golpea caja, y luego SODA tacha tres. Veamos, en qué momento necesitamos que Soda tacle tres, ¿te importa jugar, por favor, por favor. ¿Se puede jugar? ¿Por qué simplemente no está jugando? Oh, bien. Déjame presionar el botón de reproducción. Bien. Ahora voy a arrastrar por aquí. Esto es cuando quieres agregar esa notificación, Así que golpea la casilla, guarda después de eso guardado. Ahora todos estos están listos para ser utilizados en un sistema combinado real adecuado. Ahora que hemos configurado todas las animaciones y las notifica, sigamos adelante 51. 48 Introducción al buffering de entrada: Todo bien. Entonces, antes de seguir adelante, quiero presentarles un concepto muy sencillo. Vamos a crear un búfer de entrada que almacene entradas, y luego finalmente se restablece después de un período de tiempo Este es un entendimiento muy general. Ahora vamos a entrar en el código. Quiero que esto tenga sentido total para ti. Vamos. Entonces la primera parte del búfer de entrada necesita que volvamos a la melata, ¿de acuerdo? Ves la forma en que funciona en este momento es que está escuchando la entrada mejorada, derecha, del ataque cuerpo a cuerpo Entonces va a hacer esto una vez y va a establecer el ataque SOD en uno, y luego hay un retraso Así es como lo está haciendo ahora mismo. Pero vamos a cambiar eso. Entonces, en lugar de presionar ese botón que lleva a eso hacer una vez y luego restablecerlo, lo que vamos a hacer es que vamos a arrastrar esto. Bien. Ahora, ahora mismo, está listo para hacer que el ataque de césped sea uno, pero vamos a romper esto. Va a romper este enlace. Y lo que queremos es que queremos ahora ahora que tenemos esto aquí, queremos agregar algo aquí que va a almacenar, cuántas veces los jugadores han pulsado el botón. ¿Bien? Ahora, por simplicidad, vamos a usar un entero básico. Ahora, recuerden, tenemos acceso a tres animaciones de ataque diferentes, lo que significa que queremos hacer una comprobación básica. Entonces, ¿por qué esto no funciona con claridad? Agárrate. A veces el motor irreal hace cosas extrañas. Pero para esto. Ahora debería estar mostrando el Bien, ahora es capaz de mostrar las animaciones correctamente. Así que tenemos acceso a tres animaciones de ataque diferentes, ¿de acuerdo? Tenemos animación dos, que está cortando. Tenemos dos los cuales están cortando hacia abajo, y el tercero es un corte medio ¿Bien? Ese es nuestro combo de tres cabezas. Entonces para crear un búfer, lo que queremos hacer es asegurarnos de que somos capaces guardar tiene el reproductor pulsado el botón una, dos o tres veces. Luego basado en eso, juega una, dos o tres de estas animaciones de ataque. Ese es el invitado básico de la misma. Ahora que hemos roto eso, vamos a entrar y pensar en cómo hacer un gran búfer de entrada. Esencialmente lo que queremos es un nodo que capture cuántos ataques de espada ha presionado el jugador. Si han presionado una vez, llevará a cabo una acción. Si han presionado dos veces, llevará a cabo una acción diferente. Si han presionado tres veces, lleva a cabo una diferente, y por simplicidad, lo dejaremos así. Bien. Entonces, con eso en mente, sigamos adelante. Entonces tenemos todo este espacio aquí, y comencemos por crear una variable. Esa variable va a ser un entero y llamaremos número de Ataque FODA Bien. Y por simplicidad, vamos a convertirlo en un entero, ¿de acuerdo? Lo que significa que es de cero a uno. Se trata de números grandes, números holísticos sin 0.1 o dos, es un entero. Ahora, como un entero, vamos a arrastrar esto. Vamos a arrastrarlo. Así que queremos, uh comenzar con establecer el número de ataque SOD. ¿Bien? Entonces abramos esto aquí arriba. Digamos que el jugador acaba de presionar el botón Meletack una vez. ¿Qué queremos hacer? Queremos establecer el número de ataque de refresco en realidad. Voy a necesitar crear algo de espacio. Entonces voy a arrastrar estos y empujarlos por una deuda. Entonces el jugador ha pulsado el botón una vez. Lo que queremos hacer es que queremos obtener el número de SodTac y aumentar su valor Para que puedas arrastrar de nuevo en el número SDTack Bien. Y luego queremos agregar uno. Quieres incrementarlo, ¿de acuerdo? Simplemente configúrelo en uno. Y luego boom, ya lo hemos montado. Entonces, lo que esto hace es que obtiene el número de tachuelas SOD y le agrega uno, ¿de acuerdo Porque fundamentalmente, queremos aumentar el número de tachuelas de soda Ahora, digamos que el jugador ha pulsado ese botón una vez. Ahora voy a decir, Bien, el valor de Soda tack ahora es uno Ahora, para mostrarte este trabajo, vamos a necesitar hacer algo de texto para desarrolladores. Así que vamos a tener una cadena de impresión. Y la cadena de impresión sólo va a ser una. ¿Bien? Sólo se va a establecer en uno. No obstante, ¿y si el jugador vuelve a presionar ese botón? ¿Bien? Es decir, ¿qué sucede cuando el jugador presiona ese botón por segunda vez? ¿Qué quieres que suceda? Es bastante simple. En realidad queremos agregar otro incremento a esa variable llamada Número de ataque de Espada Pero ahora tenemos que hacer una simple comprobación, ¿de acuerdo? Vamos a hacer una simple comprobación. Y lo que fundamentalmente es ese cheque va a ser un interruptor. Así que vamos a encender el entero. Bien, encienda el extremo. Eso es lo que quieres buscar. Y entonces si bajas, se destacará como interruptor de extremo encendido. Ahora bien, ¿qué hace un switch on end? Lo que hace es cambiar la ruta del flujo de código basado en el valor que ingresaste, ¿de acuerdo? Entonces pongamos aquí el número de ataque SD y ahora está configurado para encenderse. Y vamos a tener un par de valores diferentes. Dios mío, esto se está haciendo más largo. Estiremos el cuadro de comentarios, y vamos a empujar esto un poco más lejos. Ahora, volvamos aquí. Entonces, la primera cadena que está destinada a imprimir es una. Tengamos tres de ellos. Entonces la primera cadena va a ser una. La segunda cuerda va a ser dos. Y la tercera cadena va a ser Oh, espera, espera, espera, haz clic en esto correctamente. La tercera cuerda va a ser tres. Entonces fundamentalmente, lo queremos. Empecemos rápidamente ahora a agregar pines. Entonces esencialmente, si es cero, no hace nada. Si es uno, imprime uno. Si son dos, imprime dos, y si es tres, imprime tres. Ahora, ese es un interruptor muy sencillo. Ahora, entremos rápidamente al nivel de desarrollador. Entonces cuando presiono uno en la esquina superior izquierda, debería ver uno. Bien. Vuelvo a presionar, se muestran dos. Espero que esté mostrando dos para ti. Bien. Y cuando presionas de nuevo, muestra tres. Pero cuando vuelves a presionar después de eso, no muestra nada. Eso es fantástico. Ahora, volveremos a la espada más bien volveremos con el héroe. Sabemos a ciencia cierta que ahora somos capaces de configurarlo. Entonces, cuando el jugador presiona el botón una vez, tiene uno. Cuando el jugador presiona un botón dos, va a dos, y cuando el jugador presiona el botón tres, va a tres. Eso es bueno. Eso significa que tenemos una manera de determinar si el jugador ha pulsado el botón una vez, si ha pulsado el botón dos veces, y si ha pulsado el botón tres veces, eso es bastante genial. Ahora que hemos terminado con eso, vamos a arrastrar esto y traer esto aquí. A esto le vamos a sumar un poco más. Esta es la línea base del búfer de entrada. En el siguiente video, vamos a agregar algún código más para que funcione correctamente. 52. 49 Configuración de la combo básica con bloqueo de entrada dura: Bien. Ahora que tenemos esta configuración y listo para funcionar, entremos en agregar realmente las animaciones. Entonces para empezar ya tenemos nuestro ataque Espada uno listo para rockear. Entonces lo que vamos a hacer es que lo vamos a configurar una manera muy similar al ataque con espada uno, y vamos a cambiarlo que el switch on int suceda primero. Déjame mostrarte cómo es eso. Entonces ya tenemos todas estas cuerdas que te muestran una, dos y tres, ¿verdad? Ahora, vamos a crear algunas variables nuevas. Al primero se le va a llamar Ataque Espada bajo la puntuación dos. Eso será para nuestro segundo ataque SOD. Y el siguiente va a ser ataque SOD bajo marcador tres Estos solo van a ser útiles y déjame ponerlos debajo del número de ataque. Entonces voy a arrastrar el número de ataque hacia arriba. Boom, vamos a reordenar eso amablemente. Oye, salud del jugador, vuelve a subir. Bien. Eso es. Entonces tenemos nuestro número de ataque, y luego tenemos a los booleanos para mostrar si el primer ataque, segundo o el tercero son los que están activos actualmente Entonces, después de una compilación rápida, ven aquí y básicamente vamos a hacer una configuración muy similar. Entonces primero no conseguiremos querer establecer. Así que pon Swedatak 22 aquí. Copia eso por aquí. Aquí está apagado, y agregaremos en el mismo retraso de 1 segundo. Bien. Conservemos el retraso de 1 segundo. Ahora que tenemos eso aquí, agreguemos en Swedatag tres . Ahora, no conseguir. Sigo recibiendo cuando debería estar configurando, no conseguir. Vamos a configurarlo para configurar. Añadiremos en el mismo retraso, exactamente el mismo retraso de 1 segundo. Aquí va a ser sí, mientras que aquí, copia y pega esto por aquí. Aquí, va a decir que no, ya no estás llevando a cabo Sedatak tres Así que lo guardaremos rápidamente. Y luego vamos a, rompamos aquí este enlace de configurar el número de ataque del SWD Déjame romper este enlace. Rompe todos estos, y lo arrastraremos hacia fuera y cambiaremos su posición. Romper, romper. Bien, bien, bien. Trae esto por aquí. Y lo que haremos es en este mismo inicio, arrastraremos el número de tachuelas SODA para que sea lo primero que compruebe, y en el valor predeterminado, tenga en cuenta que acaba de disparar esto Al valor predeterminado, va a ser cero. Entonces como comienza en cero, entonces se conectará y se le agregará el número. Bien. Ahora que tenemos esa función básica, sumemos sigamos adelante con esto. Entonces justo después de presionarlo por primera vez, va a decir, Oye, va a presionar ese primer ataque, y va a hacer SOD ataque uno y continuar junto con eso Y luego después de la segunda ocasión para empezar, primero repasemos este texto. Este texto que básicamente, vamos a repasar las notas que estamos usando actualmente para incrementar el número, arrastrar sobre ellas, hacer clic derecho, y luego bajaremos y diremos: Oye, colapsar a una macro Entonces ahora esta nueva macro solo está actuando como un solo nodo, ¿de acuerdo? Es una función muy sencilla, y nos va a ayudar a limpiar nuestros planos Y entonces voy a cambiar su nombre. Déjame alejarme. Es una macro simple. Déjame copiarlo y pegarlo aquí y copiarlo y pegarlo de nuevo. Recuerda que todo lo que está haciendo es agregar uno al número. Entonces en dos, se romperá, arrastro todo el asunto. Entonces una vez que se presiona el botón por segunda vez, el botón de ataque, se imprimirá dos, y luego va a intentar demostrar que, oye, el jugador está tratando de hacer el ataque vendido dos. Y en tres, más bien tercera vez, el número subirá a dos. Y luego pasará, y le dirá motor irreal que el jugador está tratando de hacer el tercer ataque vendido Una vez que haya terminado con eso, déjame copiar. Oh, chasquido corté. No. Una vez que haya terminado con eso, déjeme copiar. Ven aquí, y en realidad, no necesito copia. Vamos a arrastrar el número de Soda tack stead, y vamos a establecer el número de Soda tack camino de regreso a cero para que vuelva a comenzar desde arriba Así que recuerda, si el número de Soda tack comienza en cero, si es cero, cuando presionas el botón la primera vez, va a aumentar el valor de uno a uno Y luego nueva cuerda, imprimirá la cuerda una, y luego hará el primer ataque con espada. Ahora, entremos en el plano para echarle un vistazo rápido. Entonces este es el plano de animación. Compila rápidamente y presiona play. Así que fíjate en este momento que está configurado en uno, 02. Ahora no es en realidad no te está aceptando presionar eso. Presiona tres, ahora es capaz de volver a hacer el primer ataque. Ahora bien, esto es lo que vamos a hacer. Inmediatamente el jugador presiona el primer botón. Vamos a configurar una ventana de entrada donde puedan presionar el segundo combo, bien, segundo botón en el combo. Pero antes de hacer eso, establezcamos cómo presionar realmente los otros botones del combo. Entonces vayamos al plano, y ya sabemos que el ataque SWOD uno está aquí Vamos a crear otro estado de animación, y vamos a llamar a este ataque almacenado dos bajo la puntuación dos. Bien. Oh, la palabra estado sigue ahí. Quitemos la palabra estado. Entonces aquí estamos SOD ataque está listo casi, y luego vamos a crear otro estado de animación, y vamos a llamar a este ataque SOD bajo la puntuación tres dentro de ese estado de animación Aquí vamos. Y vamos a configurarlo que de soda tack uno, puedes hacer la transición a soda tak dos o puedes hacer la transición de regreso al eido Bien. Puedes hacer una de esas dos cosas, y luego está Soda tak tres, que puedes entrar desde Soda tak dos. O puedes volver a IDO. Entonces esa es esencialmente la configuración de bucle. De ídolo, puedes ir a soda tack one. De soda tack uno, puedes ir a soda tack dos y de dos, puedes ir a tres Ahora bien, los botones aún no están establecidos, así que fíjate si presionamos el botón de ataque varias veces, no pasa nada, está bien. Entonces volveremos al plano y pasaremos de Soda Tech uno a dos, todo lo que necesitamos es que entremos, saquemos como héroe Entonces lo que queremos buscar es SOD ataque dos. Así que consigue Soda tack dos. Y lo que queremos dos es el nodo igual exacto, ¿de acuerdo? Entonces así es como queremos que se establezca. Y si es que sí, ese valor es positivo, entonces por favor, haga la transición a esa animación. Echemos un vistazo más de cerca. Entonces como héroe, Soda tack dos, si se establece en sí, puede hacer la transición ¿Bien? Así que salgamos de ahí. Y luego de la soda tack dos a la soda tack tres, pasaremos por el mismo proceso, nos pondremos como héroe, SOD Bien, quiero que el SOD ataque tres. Quiere verificarlo contra el valor igual, y si el valor igual es sí, puede hacer la transición. Bien. Eso es todo lo que necesitamos. Ahora vamos a configurar lo que va a ser realmente la papilla de refresco Ahora, tenga en cuenta, pasar de la soldadura de tachuelas uno a la inactividad se puede hacer con bastante facilidad configurándolo en una pegajosidad de soda uno siendo cero, Entonces, pasar de la soda tack dos a la ociosa hará exactamente lo mismo Ven aquí, conéctalo excepto aquí está vacío. Y luego para Tack SDA tres, exactamente lo mismo también Volver al ralentí. Simplemente pegamos nuestro código y desmarcamos la casilla de verificación. Esta es la manera fundamental, sencilla y fácil de configurar esto. Después haremos doble clic dentro de SDA tack dos, y queremos escribir play SOD Esa es la animación que queremos que se juegue. Y luego en soda tack tres, tecleamos play Espada ataque tres Bien. Cual es la animación que queremos que reproduzca. Verifique dos veces, coloque Tack de soldadura, dos o tres. Bueno. Ahora, con solo esa configuración básica, si volvemos al nivel de desarrollador, y uno, dos, tres. Bien. Observe que hace el combo, uno, dos, tres. Así que ahora tenemos nuestro combo básico funcionando. Entonces intentemos hacer los tres hits en nuestro maniquí de práctica. Uno, dos, tres. Bien. Hagámoslo otra vez. Uno, dos, tres. Bonito. Uno, dos, tres. Tenemos nuestro combo. Bien. Ahora, aquí está lo hermoso. Ahora que tenemos esta configuración, ¿de acuerdo? Los botones realmente funcionan, puedes ver que hay un retraso de 1 segundo donde llegas a tomar la decisión sobre si vas a seguir haciendo esto o no, o si vas a parar, ¿ves? Ahora vamos a meternos en eso. ¿Cómo lo configuramos para que haya un retraso de luz para que sepamos que puedo entrar si golpeo uno, verdad? En este momento está configurado con un retraso muy duro. O estás haciendo el combo completo o te bloquea de presionar botones. Entonces digamos que si solo presiono anime un ataque, no puedo presionar a los demás pase lo que pase. Entremos en el siguiente video y ajustemos el código para que tengas mucha más libertad de combo. Vamos. 53. 50 Breve descripción antes de más integración del sistema de combinación: Todo bien. Entonces ahora tienes un entendimiento razonable. Ya sabes cómo funcionan los sistemas de línea base para animación. Has entendido hasta cierto nivel cómo la animación notifica el trabajo, y has entendido cómo crear sistemas mediante los cuales, ya sabes, la salud se reduce Eso es ultra cool. Ahora estamos pasando a vincular esos sistemas de una manera mucho más apretada, mucho más integrada Entonces, entremos a cómo usar las notificaciones para nuestro sistema combo Entonces comencemos con lo que hemos configurado. Este es el plano de héroe actual, ¿verdad? Cada vez que se pulsa el botón Me attack, ¿de acuerdo? Cada vez. Ahora entramos y somos capaces de mirar veamos estos nodos. Pasamos de Mela tack se va a encender t ya que está contando el multiplicador Hace alguna adición simple más uno. Imprime esa cuerda, y luego elige qué tachuelas Seda Dirá, Oye, Seda tack uno se está haciendo. Entonces después de la demora, dice, Bien, ya terminamos de hacer soldadura de tachuelas uno Hace lo mismo para dos y tres. Así es como está funcionando actualmente, y lo uso para simplemente mostrarte cómo funcionan los sistemas. Ahora vamos a hacerlo mucho más integrado y la mayor parte de la lógica se va a hacer usando la animación notifica Como ejemplo, sabemos que el notificador de caja de golpe SOD span SOD es lo único que está llevando al ataque SWOD span que se está trayendo una caja de golpe Entonces vamos a hacer lo mismo, pero vamos a estar haciendo ajustes a cómo se hacen los ataques. Fundamentalmente, esto es lo que vamos a hacer. Nos aseguraremos que si el jugador está presionando el botón de ataque, el combo se ejecute completamente. Si el jugador se detiene, el personaje puede resetear. Ese es el panorama generalizado de lo que vamos a hacer a continuación. Y estamos, déjame presionar Barra espaciadora de control, Animación, Blueprint de animación Bien. Y a continuación, abre la fuente de animación. Entonces vamos a estar usando completamente el sistema de notificadores para configurar las animaciones y comenzaremos con las animaciones terrestres, luego seguiremos adelante y vamos a hacer algunos ajustes grandes a los ataques aéreos para que sean mucho más divertidos de usar Vamos a meternos en eso en el siguiente video. Espero que hayas entendido todo hasta el punto actual. Si falta algo, no dude en revisar los videos. Entonces cuando vuelvas, tienes ese profundo entendimiento y todo lo que suceda a continuación va a tener sentido para ti. 54. 51 Cómo agregar un enlace de ataque al primer ataque con espada: Bien. Así que ahora entremos en vincular nuestros ataques con escuchar la entrada correcta. Ahora, actualmente en el juego, cuando presionas el botón de ataque, para empezar, deja de escuchar después presionar después de que no logras ingresar el combo. Entonces ese es el código actual solo para mostrarte el combo de línea base. Ahora bien, esto es lo que vamos a hacer. Cuando el jugador presiona el ataque rápido, vamos a estar escuchando si el jugador ha pulsado el segundo botón de ataque. Si el jugador vincula el segundo botón de ataque, entonces presionaremos ambos ataques. Hará ambos ataques. Durante el segundo ataque, si el jugador hace el tercero, va a salir el tercer ataque. Para hacer eso, sigamos adelante y configuremos eso en el juego. Lo primero es lo primero, cuando pensamos en el código, todo lo que está haciendo es el momento en que se establece la soda tack tres, dispara la Soda tack Soda tachueta dos, hace esas cosas. Pero ahora vamos a configurarlos como conectados a la animación. Entonces para hacer eso, primero permítanme reducir el tamaño de este cuadro de comentarios de MeleaTak solo un poco Déjame realmente conseguirlo. Y, no sé qué fue eso. Copiarlo. Bien, sólo quiero otra caja aquí. Y voy a llamar a este ataque. Enlaces. Bien. Entonces, para empezar, vamos a empezar por mantenerlo muy sencillo. Vamos a hacer que el primero se llame SOD attack one Bien. Así que vengamos por aquí. Ahora vamos a volar de un evento. Bien, queremos tener un evento personalizado. Bien. Estamos agregando en un evento personalizado. Y entonces vamos a llamar a esto SOD. Déjame acercar correctamente. Se llamará ataque SOD. Bajo el punto dos, subrayado, Enlace. Bien. Eso es todo lo que se va a llamar. Se llama ataque SOD a Link. Eso es lo que queremos que sea. ¿Y qué haremos después del ataque SOD a Link? Bueno, es bastante sencillo. Vamos a salir aquí y queremos revisar algo. Entonces, ¿qué estamos comprobando? Bueno, es bastante sencillo. Queremos verificar y ver si se ha pulsado el botón de ataque SOD, el segundo botón de ataque Es decir, si el número de ataque SOD es dos. Entonces para hacer eso, vamos a venir aquí, vamos a arrastrar esto, y vamos a decir, Oye, consigue el número de ataque SWOD Y queremos hacer una comprobación básica, ¿de acuerdo? Entonces vamos a hacer una rama sencilla. Una sucursal nos va a dejar verificar y hacer un cambio en lo que sucede si es verdadero o falso. Entonces con el número de ataque del SWD, déjame arrastrar esto. Voy a decir que es igual a dos, ¿de acuerdo? En otras palabras, si es exactamente igual a dos, o vamos a arrastrar esto. Hagamos que sea mayor igual, ¿de acuerdo? Entonces, si el número de ataque de SVoD es mayor que uno o igual a uno, entonces va a jugar todo después de esa longitud Ahora, vengamos por aquí. Y comenzaremos con una simple pantalla de impresión. Entonces se imprimirá, y simplemente va a imprimir texto diciendo: Oye, haz SWoD SWTat Eso es. Porque solo vamos a verificar y ver si el código está funcionando correctamente, ¿de acuerdo? Ahora con el ataque SWOD dos enlaces registrados, para evitar que eso sea interrumpido por otra cosa, vamos a venir aquí y vamos a, vamos a romper rápidamente los otros enlaces Bien, vamos a romper esto. Entonces después de presionar el botón de ataque, cuando se presiona una vez, va a llevar a cabo ese primer bit de código para el primer ataque SWOD, pero no va a hacer otra cosa ¿Bien? Entonces, si entramos en juego ahora mismo, cuando presiono una vez, sí, todo eso se ha ido Así que sólo puedo presionar ese botón de ataque una vez. Eso es bueno. Ahora, volveremos al plano de animación y buscaremos el ataque SWOD uno Entonces ahí está esta función aquí. Más bien, está esta notificación llamada SWOD hit box. Ahora bien, esto es lo que vamos a hacer. Al final de la animación, al final del último fotograma, ¿de acuerdo? Vamos a agregar en una nueva notificación. Déjame saltar sobre la pista de notificación. Y se agregará en una notificación y será un nuevo notificador Y vamos a llamar a ese notificador SwodTakundsCoe. Dos, subrayado Enlace. Bien. Ahora bien, ese es un nombre bastante largo, pero, ya sabes, se adelgaba así por una razón porque este es el enlace de SODA tack uno va a dos Así que lo llamaremos SODA Tak two link, ¿de acuerdo? Ahora, ahora que tenemos eso listo, volvamos directamente al plano de animación, y entraremos en el gráfico de eventos Entraremos en el gráfico de eventos, y vengamos aquí. Hemos recibido Notificar para el hit box que se llama. Vamos a entrar en la recepción Notificar por ataque de Espada para vincular. ¿Bien? Esta es la zona donde se ejecutará ese código. Entraremos y diremos: Oye, como héroe, queremos que el ataque SOD se vincule Bien. Observe que está ahí. La función, SOD ataque dos enlace está ahí, ejecutar esa función Bien. Entonces ahí vamos. Ahora que tenemos esta configuración, vamos a echarle un vistazo en el juego. Voy a presionar Play. Primer ataque, segundo ataque, está haciendo ataque SOD para vincular, comprobando eso. Ahora vamos a entrar en héroe para conseguir que el SOD actualice realmente su número Rompamos este enlace aquí. No necesitamos ninguno de los otros códigos para funcionar aquí. No hay necesidad, pero lo que vamos a hacer ven aquí. Déjame agarrar esto. Entonces vamos a obtener todo este código que dice, Hey, SOD ataca dos, después de 1 segundo de retraso, lo apagamos, y luego vamos a simplemente agarrar este código y cortarlo. ¿Bien? Entonces nos lo estamos quitando para ser usado en otro lugar. ¿Bien? Entonces vamos a entrar en el enlace de ataque, y esto es lo que vamos a hacer. Vamos a poner ese código aquí. Así que déjame pasar por esto lentamente. En el momento en que se desencadene el evento personalizado de dos enlaces de SwedaTak, va a verificar dos veces el número de SwedaTak Y si el número SWDataK es mayor que uno, cierto, lo que significa que el jugador ha pulsado el botón SWDataK más de una Va a venir aquí, digamos que es verdadero núcleo. Por lo que imprimirá la cadena. Hacer Swedatak dos Y entonces me va a dejar vincular esto. Oye, vamos a acercarnos de nuevo. Dirá: Oye, Soda tacha dos, pulgares arriba, se está haciendo, y tras un retraso de 1 segundo, va a establecer ataque SWOD a Eso es todo lo que va a hacer, ¿de acuerdo? Eso es todo lo que va a hacer esa función. Ahora que ya está hecho, veamos si va a funcionar correctamente aquí. Entonces, ¿viste eso? Entonces hagámoslo empezar de nuevo. Entonces, cuando lo presioné una vez, en realidad reprodujo correctamente la segunda animación. ¿Bien? Por lo que está funcionando correctamente. Bien, está funcionando correctamente. Y la razón por la que está funcionando correctamente, voy a pasar por la lógica una vez más. Cada vez que el jugador pasa por ese primer ataque de soda, al final de la Sedatack al final es cuando el juego va a volver y comprobar, y va a llevar a cabo esta acción Longitud SodaAckt. Se comprueba doble. Oye, ¿cuál es el número de Soda Tack? ¿El número de Soda Tack es mayor que uno? Más bien, ¿es igual o mayor que uno? Entonces, bien, lleva a cabo el ataque completo. Ahora, hagamos una rápida comprobación lógica. Bien. Por lo que inmediatamente presionas el botón de ataque una vez. Esta macro básicamente la incrementa 0-1. Entonces va a convertirlo en uno y llevar eso bien. Entonces tendremos que cambiar este código a no mayor igual a uno, sino mayor igual a dos. Eso significa que el botón de ataque SOD se ha pulsado más de una vez Eso significa que el jugador quiere dos o más ataques. Vamos a probarlo una vez. Presiona una vez. No pasa nada. Bueno. Inténtalo de nuevo. Presiona dos veces. Ah, ese es el problema. Vamos a intentarlo de nuevo. Presiona dos veces. No es jugar el segundo hit. Bien, así que volvamos y hagamos un chequeo rápido. El motivo por el que no está jugando el segundo hit, aquí está. No es jugar el segundo hit porque esta macro no está conectada. Vamos a conectarlo de nuevo. Haz una compilación rápida, vuelve atrás y pruébalo de nuevo. Presione el botón de ataque SWOD una vez. Bien, sale el ataque. Presionarlo dos veces. Ambos ataques salen. Perfecto. Ahora está funcionando correctamente porque cada vez que presionas el número de tachuelas SWD se está reiniciando, más bien se está incrementando en uno. Eso es algo bueno, el código está funcionando correctamente. Ahora, solo para asegurarnos de que esto está funcionando completamente correctamente, volvamos. Si el número de tachuelas SWD en el SDTaktink no es mayor o igual a dos, queremos restablecer el impuesto de Seda nuevamente a cero Entonces vamos a venir aquí, simplemente voy a decir set Bien, número de ataque SOD Lo traeré aquí. Voy a poner el SDTack número dos. Voy a venir aquí. Permítanme primero romper ese vínculo a cero. Entonces esto es lo que va a pasar. Se comprobará si el número de ataque SD es dos o mayor. Si comprueba y eso es bueno, lo hace y hace el ataque SD a. Si no lo es, entonces restablecerá el número de ataque SOD de nuevo a cero Y la razón por la que estamos haciendo eso pero bien, la razón por la que estamos haciendo eso es para que aquí atrás, este código inicial corriendo del número de ataque SOD, comenzará a verificar desde cero una vez más Esto debería estar funcionando correctamente. Vamos a verlo en el juego. Entonces datos uno, dos, bonito, lo hace. Entonces da tacha uno. Bien, aún no está funcionando correctamente. Volvamos y hagamos otra comprobación rápida. Así que hacerlo una vez hace eso. Esto está funcionando correctamente como se pretendía. Esto debería estar funcionando correctamente como se pretendía. Eso es si es uno, rompa este enlace. Si son dos, debería estar aumentándolo por encima de dos, está bien. Entonces, si es uno, se convertirán en dos. Si es mayor que dos, está bien porque presioné más de dos veces. Entonces comprobemos dos veces y veamos uno, dos, hace eso. Bien. Perfecto. Perfecto. Ahora vamos a hacer un ajuste más. Entonces lo que vamos a hacer es que tenemos que hacer una comprobación básica viniendo por aquí. Entonces justo después de este retraso, porque hay un retraso de 1 segundo después del primer ataque SWOD, lo que queremos hacer, déjame copiar esto Trae esto por aquí. De hecho quiero hacer esta comprobación, pero no la revisemos aquí. Lo que queremos hacer es consultar aquí. Estamos comprobando para ver es el número mayor que dos? Si es mayor que dos, lleva a cabo la cuerda. Eso está bien. Si el número es menor que dos, es decir, si el número es uno, volverá a establecer el ataque SOD a cero Entonces, vamos a tener algo de texto aquí. Imprimimos algún texto, y lo llamaremos reset de ataque. Porque queremos asegurarnos de que podemos ver cuándo se restablece el ataque. Déjame cambiar ese color. Supongo que el rosa está bien. Vuelve al juego, asegurándote de que el código se esté ejecutando correctamente una, dos veces. Bien, lo hace. Pero no es capaz de volver a hacerlo y volver a hacerlo. Bien, vamos a tener una rápida revisión de código en el siguiente video 55. 52 Agregar un enlace de ataque al segundo ataque con espada: Bien, ahora sigue adelante. Actualmente, si presiono el botón de ataque dos veces, el jugador hará los botones, pero aún no se restablece. Pero si lo presiono una vez, se restablecerá, dejándome hacer el ataque. Ahora bien, el punto en el que se realiza el restablecimiento, abramos el plano del Héroe es si descubre que el número de veces que has presionado el ataque es mayor o igual a dos, hará el combo, pero no hay reinicio después de eso Eso está bien. Nos ocuparemos del restablecimiento más adelante Pero si presionas una vez, restablecerá el número de ataque de espada a cero e imprimirá el reinicio de ataque de cuerda. Entonces así es como se ve en el juego. Presiona una vez, ataca, restablece. Presiona una vez, ataca, restablece. Presiona dos veces. Hace ambos ataques, pero no hay reset. Eso es bueno. Está funcionando como se pretendía. Ahora pasemos al ataque número dos. Volveremos a la animación Blueprint sauce, y seleccionaremos el ataque número dos Ahora, con el ataque número dos, vamos a jugar rápidamente. Bueno. Ahora, justo después de que la caja de golpe de espada sea span, al final de la animación, agregaremos una nueva notificación. Bien. Entonces agregaremos uno de estos notificadores queremos un nuevo notifique, y vamos a llamar, en realidad Primero volvamos. Quiero que el nombre sea SWOD ataque dos enlace que es CO. Entonces en el ataque SWOD tres, vamos a agregar una nueva notificación, y se va a llamar SWOD Attack Underscore tres, underscore Link Bien. Ese es su nombre, y está al final de la animación. Ahí es cuando queremos hacerlo porque ahí es cuando la animación está completamente terminada. Eso es genial. Y luego en el plano de animación, Bien. Vamos. Ahora SWoD ataca el primer doble grillo de dos. Lo que sucede en ese enlace es que conseguimos al héroe y jugamos el evento SWoD ataque a Link Así que vamos a configurar el evento en nuestra clase de planos de personajes bajo ataque Enlaces Entonces los SWOD atacan a dos Link por aquí. Lo que ahora queremos hacer es que queremos configurar otro evento personalizado, y llamaremos a este evento personalizado SWOD ataque subrayado tres, subrayado Queremos que el nombre sea lo más uniforme posible. Muy bueno para la organización. Y luego con eso, básicamente voy a copiar todo esto, ¿de acuerdo? No creo que haya una razón para que lo reescriba todo Va a haber alguna reescritura. Pero por velocidad y simplicidad, vamos a copiarlo y repasarlo una vez más. Ahora bien, ¿qué hemos copiado? Ataque SWOD para enlazar. Vamos a acercar un poco más. Obtenemos el número de ataque SWOD. Si es mayor o igual a dos, Verdadero. Hacer soda tack dos Eso es lo que está impreso. Soda tack dos para que esté activo Después de 1 segundo de retraso, lo activa. Bien. Y entonces si es menos de dos, simplemente reproduce los nodos falsos. número de Sodtac se establece de nuevo a cero e imprime el reinicio de ataque de cadena. Eso es el núcleo. Ahora, en la soda tack tres, simplemente la vincularemos por aquí Ahora bien, si las tachuelas SOD son mayores o iguales a tres, se reproducirán las tres Bien. Viene por aquí. En lugar de establecer SDTack dos, cambiaremos eso a establecer el ataque SOD tres Entonces, hagamos que SOD ataque tres y arrástralo y configurémoslo como establecido Zoom in Entonces lo pondremos a, sí, el ataque SOD tres está en marcha Se está llevando a cabo. Vincularemos el retraso copiaremos y pegaremos esto por aquí, arrastraremos esto y lo configuraremos para que ahora esté apagado después de 1 segundo. Bien. Y entonces aquí podemos ver. Entonces el número de ataque se establece en cero, y hay un reinicio de ataque. Bien. Ahora, vamos a compilar rápidamente esto y voilá. Entonces vayamos al nivel. Vamos a golpear Play. Un reinicio de ataque, uno, dos. Bien. No revisé ese código correctamente. Tendremos que tener un chequeo rápido. Un reinicio de ataque, uno, dos, ¿de acuerdo? Oh, sí, la función no está hecha. Acabamos de configurarlo aquí. Oh, ese soy yo. Bien, volvamos al plano de animación. Abre el ataque de SWOD a tres tintas. Bien. Ahora que tenemos ataque FODA configuración de tres tintas, voy a agregar esto en, obtener como héroe, y luego queremos que el ataque FODA tres enlaces sea lo que juega Entonces juguemos eso después. Ahora debería funcionar correctamente. Se juega un reinicio de ataque, uno, dos, no estoy viendo el reinicio de ataque. Volvamos y echemos otra mirada. Entonces en el primer ataque SWD, tenemos ataque SWD para vincular, y está funcionando correctamente En el segundo ataque SOD, permítanme guardar eso rápidamente, asegurarme de que todo esté guardado Guardar todos, guardar todos los cambios. Tenemos SOD Attack tres eslabones establecidos por aquí. Volveremos al plano de animación. Espada adjuntar tres eslabones parece estar funcionando correctamente. Espada adjuntar tres eslabones está funcionando correctamente. Ahora volvamos, asegurémonos de que todo lo demás esté funcionando correctamente. Bien. Si el conjunto de números es, aquí es donde está el problema. Bien, agreguemos rápidamente un alfiler. Entonces, si el número es tres, consigue esta macro y vuelve a copiarla. Eso quiere decir que el botón se ha pulsado tres veces. Incrementar el número en uno. Probablemente ese no sea el problema, pero vamos a agregarlo. Eso significa que el botón se ha pulsado tres veces. Entonces ven aquí, Espada ataca a tres. Es decir, se deben presionar tres ataques. Entonces Sword attack two se está reproduciendo correctamente. Espero que estés siguiendo. Espero que esto tenga sentido. Nosotros venimos aquí, ataque Espada. Hacer el ataque de SWOD a tres. Ese es el texto correcto. Viene por aquí, Espada ataca tres. Retraso, retraso. Hecho. Bien, volvamos aquí. Presiona una vez. Attack reset, presione dos veces. Bien, hace el segundo ataque sembrado. Perfecto. Ahora bien, cuál es el problema es que después de terminar la segunda pegajosa de soda, no la restablece. A ver. ¿Por qué no se restablece después de la segunda tacha de Soder? Porque después de eso, esto se está jugando. Hagamos algunos problemas básicos. A ver si esto realmente se está desarrollando. Imprimir cadena hola hola debería estar lo suficientemente bien. Compilar. Presiono una vez. El reinicio está funcionando. Presiono dos veces. El reinicio está funcionando. Presiono una vez. Bien. Entendido. Voy a necesitar hacer algunas comprobaciones dobles para ver qué está funcionando. Hm. De cualquier manera, creo que en realidad estoy bastante cansada. Llevo mucho tiempo en esto . Volveré y actualizaré algo de este código. 56. 53 Enlaces de combinación finalizados y reajustes para la combinación a tierra: Bien, entonces se ha bebido un poco de café y ha pasado algún tiempo. Entonces volviendo y configurando este sistema correctamente. Entonces volvamos y hagámoslo desde los primeros principios. Para empezar, asegúrate de tener la salsa de animación. Aquí, asegúrate de tener el plano de animación Z. ¿Bien? Aquí, podemos consultar el gráfico de animación. Y vamos a ir uno por uno para verificar los ataques. Así que cada vez que se presiona el botón de ataque, dispara el ataque mele de acción de entrada mejorada. Bien. Una vez hecho eso, entramos en un do una vez que solo se restablece cuando se suelta el botón y vamos a un switch en integer basado en el número SwoDattack Entonces comencemos pasando por el ataque rápido. Entonces con el ataque rápido después de aumentar el número en uno, por lo que ahora el número de ataque SOD se establece en uno Imprimimos una cadena llamada uno. Eso está bien. Nos aseguramos de que el ataque uno del SWD esté establecido en true. Hay un retraso de 1 segundo, y luego SWD tack one se establece Ahora bien, cuando en realidad se está haciendo la tachueta SOD, lo que sucede es que SOD ataca dos enlaces, ese nodo se apaga, lo que cambia el refresco I comprueba el número de Sdtack si es mayor Esa será la condición. Si es cierto, que es mayor que no igual a dos. Es decir, el jugador ha pulsado el botón de ataque de soda varias veces. Imprime la cuerda, hace ataque de soldadura dos. Establece vendido ataque dos a ser despedido. Hay un retraso, y luego se cancela el ataque vendido dos. Si es falso, restablece el número de ataque vendido a cero e imprime el reinicio de ataque Ahora vamos a hacer un par de cambios. Para empezar Bien. Para empezar, vamos a eliminar el retraso. No necesitamos ese retraso, y vamos a obtener el nodo que establece la animación Swadata uno para que esté apagado. Dos, primero comencemos aplazando eso aquí. Ahora, la razón por la que queremos hacer eso es que queremos que esto solo se dispare Quiero que esto se dispare basado en animación, no basado en un retraso de tiempo. Ahora la razón por la que lo estamos haciendo es porque volvamos a los papeles de animación de sod attack one Entonces notarás que al final de la tachueta de Seder, Bien, perdón. Desplácese aquí. Al final del swedatak es cuando se dispara esto Déjame arrastrarlo un poco hacia adelante hasta el tiempo máximo. Así que quiero poner a Swedatak fuera por aquí, justo al final cuando se dispara Bien. Ahora, déjeme alejar el zoom. Eso es esencialmente lo que queremos. Entonces con tan solo ese simple cambio en el código, volvamos. Entonces el posicionamiento de establecer soda Attack one, two off debería estar en algún lugar de aquí. Déjame arrastrar muchos de estos hacia adelante, arrastra esto hacia adelante para hacer el espacio. Bien, organizándolos. Apilaré estos verticalmente, luego conectaré esto. Entonces, lo primero que hace tratando de vincularse a la segunda tachuela de soldadura es verificar que se asegure de que la tachueta de soldadura variable uno esté activada, Eso es esencialmente a lo que se va a establecer. Ahora con ese set, hagamos una comprobación rápida. Entonces esta es solo la primera tachueta de soldadura. Una vez que se presiona el botón cuerpo a cuerpo una vez, hace el simple do una vez, enciende int, comienza en cero, y luego va a configurar Suder tack 121 para comenzar a reproducir Voy a venir aquí. Para que ese evento personalizado establezca Seda tack one being off, hay una simple verificación de condición de sucursal Hará el swedatack dos. Y entonces pondrá a Swedatak dos a ser más. Empezaremos con eso y veamos si eso nos lleva a animaciones más limpias. A ver. Presione una vez. Aguanta. Bien, no hice el reinicio adecuado. ¿Una vez? No, no lo hace. Presione una vez. Bien, reinicio de ataque. El reinicio de ataque está funcionando bien. Presione una vez, ajuste de tacle, presione dos veces. No terminó de hacer SweData dos. Ahora la razón por la que no terminó de hacer SwedaTak dos se reduce al plano de animación Entonces ahora mismo, sólo puede pasar de SwedaTak uno a Seda Tak dos Eso es esencialmente todo lo que puede hacer. Pero vamos a cambiar esto. Así que rápidamente vamos a venir rápidamente por aquí. Entonces el código de SOD tack uno a dos es si Sud Atak dos Así que vamos a copiar ese código y vamos a arrastrar de inactivo a Swedtak dos, pegarlo adentro, conectar Bien, asegurémonos de que realmente me encanta la organización. De veras, de veras lo hago. alinearlos en el medio. Bien. Ahora, con solo ese simple cambio, lo hemos logrado para que pueda pasar de inactivo a ataque SOD dos, lo cual está bien Así que vengamos por aquí, estamos inactivos. Ataque de palabra un reinicio. Bien, entonces ahora puede hacer la transición puede pasar de Bien. Sin embargo, sólo puedo hacerlo una vez. Tenemos que trabajar en los reinicios. Eso puede hacer. Así que ahí jugué ambas animaciones. Pero necesitamos hacer un poco más de limpieza porque por mucho que sea agradable que pueda pasar de inactivo a Swedatack también, necesitarás configurarlo también para que pueda pasar de correr a Soda tack dos, lo que va a sumar mucho más a Ahora, un momento. Ahora, hacer eso resuelve ese problema, pero aún queremos que pueda pasar de Sedatak uno a dos ¿Y si volvemos al plano? ¿Verdad? Este es el plano del personaje Y si en cambio solo hiciéramos que Seda tack one se apagara primero eliminemos ese retraso de duración para desactivar el ataque de Sed dos Solo hicimos que eso fuera por aquí, ¿verdad? Entonces, justo después de girar el ataque de Sed en dos, ¿permitiría que Sdtack uno corra justo No obstante, también, tenemos que hacer esto para que al reiniciar el ataque, justo después del reinicio, también apague el de Sudtack Entonces probemos eso. Bien. Oh. Bien, entonces Soder tack dos se acaba Entonces aquí mismo, uno, un reset, bueno. Bonito. Ahora está saliendo el segundo ataque. Esto es bueno. Entonces esa es una implementación mucho mejor. Entonces vamos a pasar de vamos a ver. Entonces Soder tack dos lo encenderemos. Desactivaremos Solder tack uno, y seguiremos adelante a partir de ahí. Bueno. Ahora, para una última prueba, hay ocioso por aquí. Rompamos el enlace aquí, eliminemos eso. Vamos a compilar, encenderlo. Uno, reinicio de ataque, un reinicio de ataque, uno, dos. Bueno, no le hice Sedatack dos. Inténtalo de nuevo. Uno, reinicio de ataque, uno. Estoy viendo el texto de D SDTack dos, pero no estoy viendo que salga el SDTack dos real Hmm. Hm. ¿Por qué haría eso? Bien, entonces entremos aquí. Agreguemos un retraso. Creo que un retraso de 0.2 segundos es razonable. Vamos a bajar eso a aún menos. Entonces ese retraso es ahora de 0.1 segundos y ver si va a llevar a cabo el ataque correctamente. Una vez reseteado. Una vez reseteo una, dos veces. Bien. Bien. Ahora está funcionando correctamente. Bien, eso es bueno. Añadiendo ese retraso menor evitó que el código disparara demasiado rápido para que podamos apagar la tachueta de soldadura justo cuando la segunda tachuela de soldadura se esté disparando realmente Ahora con eso en mente, hemos hecho el primer ataque de soldadura. Ahora para la segunda tachueta de soldadura, eso ha venido por aquí Eso es Soder tachuelas tres de longitud, que es lo que disparamos cuando abramos SWD Vamos a guardar todo rápidamente. Siempre importante para salvar a todos. Entonces justo después de ese downswing, tenemos SOD attack three link, que es lo siguiente que debemos mirar Entonces entraremos en el SWOD atacan tres eslabones, y ya está establecido Entonces la forma en que está configurado, esto es al final del ataque del SWD dos viene aquí si el número de ataque es mayor o igual a tres Bien, voy a hacer esa comprobación si es menos. Establece el número de ataque SWD 20 y realiza un reinicio de ataque. Bueno. Si es cierto, hará el ataque SWD tres y pondrá el ataque SWD 32 Bien, esto es bueno. Esto es muy bueno. Ahora que esto está hecho, vengamos por aquí. Lo que queremos es que el ataque SWOD dos se apague y queremos que se apague por aquí Así que voy a sudar eso también. Déjame conseguir eso. Pega eso por aquí. Quiero que se ponga en marcha. Y luego al reiniciar, también queremos que se ponga dos fuera. Obtendremos este retraso, y lo bajaremos a 0.1, compilaremos, retrocederemos y ahora lo probaremos. Después de compilar, hagamos esta prueba. Uno, dos, tres. Bien, bien. Eso está funcionando correctamente. Hagámoslo otra vez. Uno, reinicio de ataque, uno, dos, reinicio de ataque, uno, dos, ataque se restablece. Hagámoslo tres veces. A, bonito. Ahora, simplemente necesitamos una función para poner fin al tercer ataque SOD Vamos a salir. Entraremos nuevamente en la fuente de animación, iremos al ataque SOD tres, y luego al final, vamos a agregar una nueva notificación y lo vamos a llamar combo de espada Bien. Arrástralo hasta el final, arrástralo por ahí. Bien, entonces es el final del combo de Sword. Ahora que tenemos el final combinado de SWoD configurado por ahí, entraremos en el héroe, y vamos a crear un nuevo evento, y será un evento personalizado Ahora, llamaremos a este evento personalizado espada, combo y Ok, quiero mantener los nombres consistentes. Eso es. SOD Combo final Ese es el que usaremos. Ahora, dentro de SOD combo end, todo lo que vamos a hacer es el número uno, vamos a hacer un reset básico Entonces vamos a volver a poner la cuenta de ataques a cero, y vamos a conseguir SwodaTack tres, ponerla aquí y apagarla Eso es todo lo que vamos a hacer. Así que rápidamente golpeó compilar. Y ahí estamos. Se pone en marcha la tacha de espada tres El número de tacha de espada se establece en cero. Y ahora volvemos al plano de animación. Déjame guardar todo rápidamente y compilar. Esa es una buena compilación. Y lo que queremos es buscar recibir notificar espada combo fin. Bueno. Entonces diremos: Oye, como jugador, más bien, consigue como héroe. Aquí, un extremo de combo de espada, disparas. Perfecto. Compilar. Y luego solo por el bien de la simplicidad, vengamos aquí y arrastremos esto. Y queremos imprimir cadena, y vamos a llamar al combo string end y dejarme darle vuelta a su color a un color que notaremos, voltearlo a rojo, bonito rojo profundo. Para que se pueda ver claramente si todo está funcionando correctamente o no. Entonces aquí estamos reset de ataque. Cuando presiono el botón de ataque una vez, obtengo un reinicio de ataque. Cuando lo presiono dos veces. Mm hmm. Bueno. Y luego obtengo el reinicio del ataque. Entonces si lo presiono tres veces, hace eso y hace que el combo termine. Uno, dos, tres, y hace que el combo termine. Eso en realidad es bastante bueno. Entonces ahora tenemos un sistema combo muy básico para los ataques a tierra. Entonces he pulsado el botón de ataque tres veces y ya está hecho. Ahora, ten en cuenta que la razón por la que estoy teniendo los ataques tan lentos es principalmente para aprender y enseñar. Puedes acelerar la velocidad de fotogramas de los ataques en función de lo que consideres apropiado. Por el tipo de ataques que quieras en tu juego. Así que ahora mismo, estos son muy lentos, ¿de acuerdo? Pero puedes tenerlo para que sean mucho más rápidos que esto. Entonces déjame mostrarte cómo se ve eso. Entonces volveremos a entrar en el vamos a ver. Ahora, entremos en las animaciones. No, no, no, yendo al arte. Sí, sí, sí. Después desplácese hacia abajo. Entonces sod attack one, por ejemplo, se establece en cinco fotogramas por segundo Bien. Pero podemos ir y configurarlo de otra manera. Podemos configurarlo hasta 15 cuadros por segundo. Entonces ese es un ataque de sod mucho más rápido. Entonces ahora que tenemos esto a 15 fotogramas por segundo, vamos a revisar en el papel la animación. Observe que es una animación mucho más rápida. Entonces vamos a atacar. Observe que sale más rápido. Bonito. Aviso, se dispara una vez y se restablece Bonito. Y luego están esos otros ataques. Esos ataques son más lentos. Ahora, permítanme ajustar la animación de ataque para que no sea tan rápida. Permítanme reducirlo a diez cuadros por segundo. Entonces así es como se ven las animaciones ahora. Bien, entonces esos dos son lentos. Vamos a acelerarlos. Entonces soda tak dos, déjame aumentarlo de cinco cuadros por segundo a diez cuadros por segundo. Cargar eso. Y luego refresco tacha tres. También lo aumento de cinco fotogramas por segundo a diez cuadros por segundo. Bien, uno, dos, así que hace ambos ataques. Entonces mira eso. Uno, dos, tres, uno, dos, tres, uno, dos, tres. Bien, entonces puedes marcarlos, o puedes cronometrarlo de semi precisión, ¿de acuerdo? Entonces ahí estamos. Ahora tenemos un simple ataque de jugador. Bien. Entonces eso es esencialmente todo. Así es como configurar un sistema combo simple para nuestro jugador. Entonces ahora que tenemos un sistema combinado simple, para nuestros ataques a tierra, hagamos lo mismo nuestros ataques aéreos porque note cuando salta, ¿de acuerdo? Cuando nuestro héroe salta, todo lo que están haciendo es un solo slash, y las animaciones se rompen un poco Entonces entraremos y ajustaremos esas animaciones de ataque aéreo en el siguiente video. Vamos. 57. 54 Comprobar si el jugador es aéreo para las rutas de ataque con espada: Todo bien. Entonces ahora que tenemos nuestros combos a tierra establecidos correctamente, ¿verdad? Ahora queremos que nuestro aire también esté correctamente configurado. Así que vamos a configurar un sistema combo de aire. Ahora, en esencia, vamos a estar haciendo lo mismo que hicimos por los conectados a tierra, pero van a haber un par de cambios, ¿de acuerdo? Pero nos meteremos en eso. Así que volvamos a la salsa de animación. Entonces este es nuestro primer ataque combinado aéreo. Ahí está esa porción de aire. El siguiente es ese corte hacia abajo mientras está en el aire, y el final es un corte hacia abajo mientras está en el aire Bien, entonces esto es esencialmente lo que tenemos para nuestros combos aéreos Vamos a llevar a cabo un tipo de organización muy similar a cómo queremos que interactúen los combos aéreos Ahora echemos un vistazo rápido al plano de animación. Entonces esta es la gráfica de animación. Entonces lo que somos capaces de hacer es que podemos pasar de cualquier ataque SOD de nuevo a inactivo Podemos pasar del ataque SOD uno, volver a la animación en ejecución o volver al inactivo Y luego a partir de aquí, como pueden ver, actualmente podemos pasar de un inicio saltador de nuevo al ataque aéreo SOD uno, ¿de acuerdo? Así que más bien volvamos a Seda tack. Pero Seda tack actualmente está configurado para ser Sword Attack one. Ahora, vamos a ajustar esto para que podamos separar nuestras comprobaciones de combo aéreo de nuestras comprobaciones combinadas a tierra. Así que vamos a entrar rápidamente en la animación de héroes, y ahí es donde vamos a empezar. Entonces aquí estamos. Hay todos estos diferentes enlaces de ataque, y lo que simplemente vamos a hacer es que vamos a más bien, vamos a conseguir esta caja, vamos a copiarla, y vamos a ponerla por aquí. Bien, abajo porque quieres que estén cerca. Y lo que haremos es cambiar este nombre de ataque a enlaces de ataque conectados a tierra. Y estos se fijarán para atacar enlaces aéreos. Entonces esto mantendrá nuestros enlaces de ataque a tierra, y esto va a tener nuestros enlaces de ataque aéreo. Ahora, volvamos al ataque me. Entonces este es el ataque me, normal, bien. Déjame sacar esto rápidamente y arrastrarlo hasta aquí. Sólo para darnos un poco de espacio para trabajar. Y ahora vamos a agregar un nuevo cheque. Ahora, ese cheque va a ser un simple cheque para ver si el jugador está saltando. Y de la forma en que vamos a hacer eso, simplemente tomaremos todo este contenido del extremo del interruptor, lo moveremos un poco hacia la derecha, vendremos aquí y primero rompamos esto, ¿verdad? Lo que solo queremos hacer es que queremos tener una sencilla función de salto de es. Necesitamos saber si el jugador está saltando o no, y la mejor manera de hacerlo es que queremos usar el componente de movimiento del personaje. Ahora, si vuelves al área izquierda, derecha, vamos a desplazarnos hacia abajo. Observe que hay un componente de movimiento de personaje. Queremos acceder a la información de ese componente. Ahora para acceder a la información del componente de movimiento del personaje, vamos a arrastrar esto y queremos preguntar está cayendo. Ahora, está cayendo siempre va a volver verdadero si el jugador está en estado de salto. Así que cada vez que el jugador está en un estado de salto está cayendo se va a establecer en verdad. Si el jugador está en el suelo, se fijará en caídas. Ahora, abramos una rama rápida. Y desde esa rama, lo que queremos es conectar esto de aquí, ¿de acuerdo? Quiere conectar el cheque de si el jugador está cayendo o no a esa rama. Y queremos haberme dejado primero alejar muy rápido porque quiero tener aún más espacio para esto, arrastra esto por aquí, ¿de acuerdo? Danos el espacio. Necesitamos el espacio. Bien, volvamos a entrar. Ahora bien, lo que queremos es si es cierto que el jugador está cayendo, simplemente imprimir en letras grandes en negrita. Sí. Bien. Y en qué color, hagamos el color verde. Sí, el jugador está saltando, está cayendo más bien. ¿Bien? Estoy copiando. Bien. L por aquí. No obstante, si es falso, vamos a configurarlo para que diga que no. Bien. Eso esencialmente va a ser. Y en qué color, vamos a cambiarlo al color rojo. Ahora bien, lo que hemos hecho fundamentalmente es bastante sencillo. Hemos configurado la animación de ataque, el botón de ataque para comprobar si el jugador está saltando, di que sí. Si el jugador está cayendo, di que no. Bien. Si el jugador está conectado a tierra, si el jugador está conectado a tierra, diga que no. Si el jugador se encuentra en un estado de área, diga que sí. Así que vamos a movernos. Presioné, es decir, no, no, no, no, no, no, porque el jugador está en el suelo. Así que eso va a ser bueno para nuestros combos a tierra, ¿de acuerdo? Es solo que no. Pero cuando estoy en el aire, es decir que sí. Fíjate en eso, ¿verdad? Cualquier estado de salto, va a decir que sí. Pero cuando esté conectado a tierra, dirá que no. Cuando estoy saltando, dice que sí. Con conexión a tierra, no. Saltando. Perfecto. Entonces tenemos lo primero que necesitamos ahora mismo en juego. Así que vamos a guardar todo rápidamente. Siempre es bueno ahorrar motor irreal de vez en cuando. Vamos a cerrar esto, cerrar esto, venir aquí y cerrar esto. Entonces ahora que tenemos a estos dos funcionando como se pretendía, establecemos ahora nuestra conexión. Ahora bien, sabemos a sabiendas, bien, que este interruptor en t funciona así. Una vez pulsado el botón de ataque, una vez pulsado, hace el incremento, luego viene aquí y configura SWOD attack one para que esté activo Bien. Lo que lleva al diagrama de flujo mediante el cual comienza a procesarse a través de los enlaces de ataque enlace SwodaTack dos y tres, y luego finalmente Todo eso se hace a través de eso. Entonces lo que queremos ahora es organizarlo para que dejemos el switch como de normalidad. Podemos dejar el interruptor como normal, si es necesario, podemos dejarlo como normal. No obstante, lo que vamos a hacer es configurarlo para que por aquí mismo, vaya a hacerlo en lugar de configurar el ataque SOD uno, va a configurar el ataque Aero SOD Y a partir de ahí, pasaremos por el mismo proceso para configurar los combos de ataque SWOD Así es como lo vamos a hacer. 58. 55 Configuración de planos de animación para Air Combo: Entonces ahora que básicamente tenemos la forma sencilla de hacer el cheque disponible para nosotros. Ahora consigamos esto, cortemos todo eso. Obtener todos estos nodos, ponerlos de nuevo desde el interruptor en int. Y esta vez, en vez de imprimir esa cuerda, vamos a pegar todo esto aquí, y esto es lo que vamos a hacer es que el jugador caiga. ¿Bien? Si el jugador no se está cayendo, comience con Sword attack one. Fresco. Eso es esencialmente todo. Eso es todo lo que estamos haciendo. Si el jugador está cayendo, encienda el ataque de SWoD uno Bien, ponle ese booleano a uno. Ahora vamos a crear otros tres booleanos. Para ese, lo vamos a llamar ataque aéreo SWOD bajo el cuadrado uno Vamos a sumar otro, y lo vamos a llamar ataque aéreo SOD bajo la puntuación dos, y otro llamado ataque aéreo SOD bajo la puntuación tres Entonces tenemos nuestras tres variables de ataque aéreo SOD establecidas. Ahora lo que vamos a hacer, vamos a venir aquí y vamos a arrastrar en aire SOD ataque uno, y lo vamos a poner Encendimos. Y arrastraremos y conectaremos estos dos juntos, y luego haremos una compilación rápida. Ahora, si estamos en el suelo, volvamos. Necesito asegurarme de que esto se esté haciendo correctamente. No había conectado este enlace inicial, arreglemos eso rápidamente retrocedamos y luego compilemos, volvamos una vez más, conexión a tierra puedo hacer mi combo de tres hits a tierra. Puedo hacer mi combo de dos hits a tierra. Puedo hacer mi combo de tres hits a tierra. Puedo hacer mis dos hits. Uno, dos, tres. Bonito. Perfecto. Entonces los combos a tierra están funcionando muy bien Pero si salto hacia arriba, fíjate Uh, eh. Aún no está haciendo nada. Eso es genial. Empecemos ahora a implementar el código para hacer el ataque aéreo. Ahora, volveremos a la animación de papel Z D. El primer ataque es ese golpe, que es el ataque aéreo uno. Entonces volveremos a entrar en el plano de animación, y pasar de jumpstart a Air Swedatak es lo que queremos. Así que entra aquí. Pero esta vez en lugar de buscar uno de Swedatak, estaremos buscando el ataque aéreo SWOD Agárrate. Sí, quiero que Air Sword ataque uno y lo vincule por aquí. Si es cierto, puede hacer la transición, y luego nos echaremos atrás. Y luego vamos a ir abajo aquí y luego él puso esto para ataque de Air SOD también. Trapo esto. El SWOD aéreo ataca uno. Perfecto. Y sí, si está vacío, se detendrá. Esta vez, en el suelo, me sale mi ataque. En el aire, obtengo mi ataque aéreo SOD. Eso es bueno. Aún no se está reiniciando, pero sabemos que esto está funcionando El siguiente paso, por supuesto, es de la misma manera que lo hicimos para los demás es que ahora vamos a agregar en nuevos estados de animación. Llamaremos a este ataque aéreo SWOD bajo el cuadrado dos y agregaremos otro estado de animación Y lo llamaremos ataque SOD bajo la puntuación tres. Y los organizaremos exactamente de la misma manera. Para que puedas pasar de aire SwodTack uno a AirsDtak dos. Se puede ir desde AirsDTack dos. Volver al inicio del salto, de AirSwdtack tres a arranque de salto y de AirSwdtack dos a AirsodTack Asegúrese de que estos estén conectados correctamente. Ahora que estos están conectados correctamente, vamos a hacer algunos ajustes más para hacer una doble comprobación rápida. ¿Bien? Esto está funcionando bien. Todo debería estar teniendo sentido lógico. Déjame simplemente mover estos hacia arriba. Solo subamos un poco sus posiciones, hagamos que se vea más así, así. Entonces hay una caja de animaciones. A mí me gusta cómo se ve eso en cuanto al diseño. Y déjenme también mover esto hacia arriba así, parecerse más a una caja. A mí me gusta esto. Esto se ve bastante genial. Todo bien. Ahora, sabemos que para pasar de inicio de salto puede pasar de inicio de salto a ataque AirSOD uno Y lo que estamos haciendo es que estamos comprobando el ataque AirSOD uno Ahora, del ataque AirSOD uno a dos, lo que queremos es que obtengamos como héroe Y revisaremos aire SWDATAk dos. Bien. Y queremos ver igual. ¿Es exactamente igual a, está encendido? Si es exactamente igual a encendido, puede hacer la transición. Para que puedas hacer la transición ahí. Copiemos esto para simplificar lo que tenemos que hacer a continuación. Después de AirswDataK dos de vuelta a JumpStart, eso es bastante sencillo eso es Si Air SOD Attack two está desactivado, puede hacer esa transición Ahora bien, ¿qué tal pasar del ataque AirSOD dos a tres? Eso es bastante simple. Lo único que cambiamos es que esta vez estamos recibiendo ataque de Air Word tres. Bien, lo estamos entendiendo. Conéctalo por aquí. Si está en bonito, perfecto, puedes hacer esa transición. Pero luego de aires warder tack tres, volviendo a Jump Start, es lo mismo excepto que esta vez nos aseguramos de que esté configurado para no estar activo, Y eso es todo lo que necesitamos para configurar esto. Ahora que hemos configurado esto, vamos a compilar. Y con todo compilado la manera en que está configurado ahora mismo, todavía estamos un poco lejos de tener todo funcionando como se pretendía porque hemos configurado los nodos de animación, pero no hemos configurado las animaciones. Entonces entraremos en el nodo de animación y diremos, Hey, jugar Air SWOD ataque dos Entonces está listo para reproducir esa animación, salga en el ataque SWD tres Jugar al aire. Entonces claro, ya sabes qué animación, Air SWD Attack tres Y ahora que todas estas animaciones de ataque están establecidas, estamos en un estado mucho mejor. Por supuesto, todavía no está funcionando correctamente, simplemente porque cuando saltas, solo hará un ataque, y luego no hay reajuste Entonces a continuación, vamos a hacer los resets y agregar un poco de código, finalizar eso para el combo aéreo 59. 56 Configuración de la lógica de la combinación de aire: Entonces ahora que tenemos ese enlace básico de animación, entonces vamos a usar el mismo flujo de lógica para configurar dentro de nuestras notificaciones para ataques SOD, Entonces entraremos en la fuente de animación para el ataque aéreo SOD, y al finalizar el ataque aéreo SOD, simplemente agregaremos una notificación Será una nueva notificación y será ataque aéreo SOT. Subrayar. Veamos Air SOD atacar dos, tinta de subrayado Ahí está Air SwodTackundercore. Link está completamente configurado y queremos usar exactamente la misma convención que usamos con la tachueta SOD normal Si voy a dar click en la tacaca SODA normal Agárrate. Eso es SODA Tack, estoy por aquí. Alejemos un poco. Creo que estoy demasiado acercado. Bien. Entonces notarás que ArSoD Attack three Link está configurado por allí Necesito alejar el zoom. ¿Por qué no muestra esto correctamente? Bien, no está mostrando los marcos correctamente. De todas formas, independientemente, tendremos que venir y ajustar esto más tarde, pero antes de hacerlo, sí, esto es mucho mejor. Se puede ver la caja de golpe de spawn. Y luego SOD combo ender, los notificadores están ahí Vendremos a limpiar esto, pero un poco más tarde. Entonces, como pueden ver, la caja de calor de desove está ahí, y luego al final está el enlace Air SODA Tak dos Y luego al final de ArsoDataC dos, vamos a dejar caer un notificador y vamos a crear un nuevo notificador y lo vamos a llamar aire SwodTaunder Score tres, vamos a dejar caer un notificador y vamos a crear un nuevo notificador y lo vamos a llamar aire SwodTaunder Score tres, guión bajo, Link. Bien, ese es el siguiente notificador. Y luego al final, volveremos a bajar por aquí, y esta es nuestra tercera. Entonces solo agrega el notifique un nuevo notifique, y simplemente será combo aéreo. Eso es todo lo que va a ser air combo end. Por lo que justo después del tercer ataque aéreo, el combo llega a su fin. Ahora, ahora volveremos al plano del jugador. Y literalmente como la lógica es la misma, simplemente conectaremos todos estos, los copiaremos. Bien, copiar y pegar te ahorra mucho tiempo. Confía en mí, bro. Bien, pararemos aquí. Ahora, ha configurado diferentes eventos personalizados para nosotros aquí. Ahora vamos a llegar rápidamente, haga doble clic en esto. He presionado F dos para que podamos cambiarlos. Entonces esto es aire, SOD, ataque, subrayado dos, enlace de subrayado ¿Bien? Ese es el nombre de ese evento. Entonces eso es lo que necesitamos. Entonces tenemos a Soder tack dos enlaces aquí. Aquí tenemos Soda tack tres, genial. Entonces vamos a hacer exactamente lo mismo aquí. Así que hemos empezado con el ataque aéreo SWOD dos Link. Cambiemos el nombre a esto también. SOD aéreo, ataque, guión bajo tres, guión bajo Enlace. No, eso es ortografía incorrecta. Subrayar tinta con una K, no con una L. Y luego para la última, este es el combo ender Así que primero volvamos y para asegurarnos de que este es exactamente el mismo nombre. Es el final combinado de aire. Bueno. Entonces ven aquí. Vamos a acercar el zoom. Entonces voy a renombrar esto y lo llamaré air combo end y ya terminamos. A continuación, necesitamos reemplazar todas las tachuelas SODA con su versión correcta Yo me dejo escribir este combo de aire final. Ahora sustituimos el impuesto SODA por los ataques aéreos SOD. Así que borra eso y esencialmente eso es Sod tack tres. Simplemente venimos por aquí, arrastraremos en AR Soda tack tres, y queremos configurarlo, configurarlo dos, y conectaremos esos nodos, y vamos a hacer exactamente lo mismo para todas las diferentes propiedades Entonces este es Soder tack dos. Entonces conseguiremos Air Soder tachuelas dos, y la arrastraremos y la configuraremos como un set Nos desharemos de la tacaña de Soder. Porque todos los combos funcionarán usando exactamente la misma lógica Entonces esto es Espada Aérea ataque dos serán puestos en marcha. Entonces restablecemos el número de ataque. Entonces aquí estamos, asegúrate de que estos estén funcionando correctamente. Entonces Ataque dos otra vez, en cambio, lo que queremos es aire Espada ataque dos. Entonces vamos a sustituir eso y luego aquí donde hay aire soda tachuelas tres Más bien Soder tacha tres, podemos quitar eso. Obtenemos Air soda tack tres, lo configuramos, y lo pusimos en marcha ya que eso es lo que era La lógica es exactamente la misma. Esto es solo que realmente ahorramos tiempo al utilizar exactamente el mismo árbol lógico para nuestro impuesto a los refrescos de aire y para nuestro impuesto a las gaseosas a tierra. Eso es esencialmente todo, es una muy buena manera de ahorrar tiempo. Porque todo lo que estás haciendo es que estás usando exactamente la misma lógica. Ahora vamos a hacer algunos ajustes al impuesto a los refrescos de aire para cambiar su estilo, pero vamos a entrar en eso a continuación. Para empezar, primero asegurémonos de que las tachuelas de soda estén combinadas entre sí correctamente Ahora que esto está completamente configurado, Bien, vamos a comprobar la lógica de los enlaces ArsoDTakt Bien, esto parece estar bien. Ahora que tenemos los eventos configurados correctamente aquí, volveremos al plano de animación, y queremos ajustar los notificadores Entonces iremos al notificador de enlace AISDTA. Y entonces lo que queremos es conseguir como héroe. Y luego arrastra nuestro como héroe. Y queremos buscar el evento ataque aéreo SOD para vincular. Y ese es el código exacto que queremos reproducir cuando se llame a ese notificador, ¿de acuerdo? Y luego nos dirigimos a Air SOD atacar tres tintas, caer en la G como héroe, y luego estamos haciendo exactamente lo mismo Air SOD ataca tres eslabones. Eso es perfecto. Entonces ahora eso está configurado para que funcione correctamente. Después iremos al final del Combo Aéreo y traeremos el como héroe. Y la función que queremos jugar es combo aéreo y boom, y hecho y empolvado Ahí vamos, y terminamos con nuestro sistema básico de combo aéreo. Veamos cómo está funcionando en el juego. Entonces estoy en el suelo. Mis incendios de nota están funcionando correctamente. Ahora si salto. Agárrate. Salta, ataca. Bien, el ataque no se ha restablecido correctamente. Volvamos y verifiquemos por qué. Empezaremos por mirar al héroe. ¿Detecta correctamente si el jugador está cayendo? Sí. Entonces está configurando esto para que el aire sdtack Empecemos comprobando eso. Bonito. Saltar. Es hacer el sdtack de aire y reiniciarlo Ah, bonito. Bien. Entonces ahora que está funcionando correctamente, el único d, vamos a guardar rápidamente todos. Tenemos que asegurarnos de que todo esté guardado para que funcione correctamente. Haz otra prueba. Cuando salto, puedo hacer un corte de espada. Pero de inmediato, fíjate que hay un problema. El código no funciona correctamente porque en algún momento, el jugador volverá a aterrizar en el suelo. Entonces para restablecer eso, tenemos que hacerlo de manera que cuando el jugador esté en el aire haciendo sus ataques, se quede en un estado con destino aéreo. Hagámoslo en el siguiente video. 60. 57 Pulir la lógica de la combinación de aire: Bien. Entonces ahora que tenemos nuestro código Air Combo disponible, lo único que estamos viendo es que, ya sabes, los jugadores golpean el suelo muy rápido. Entonces queremos hacer una cadena básica. Lo que realmente queremos hacer es que queremos mantener al jugador en el aire para los combos de Air ¿Por qué? Porque se ve un poco genial. Bien. Ahora, desde una perspectiva de jugabilidad, una forma sencilla de pensarlo es que cuando el jugador está en el aire y en combinación, los queremos Entonces digamos yo como jugador me muevo y salto, quiero caerme normalmente. Pero si yo como jugador ataque, quiero que como jugador permanezca en el aire por más tiempo. Ahora, sí, técnicamente, esto podría interrumpir un poco el juego, pero no te preocupes por contrarrestar el hecho de que estás más tiempo en el aire. Lo que también haremos es que vamos a ralentizar la velocidad de movimiento horizontal que el jugador no pueda simplemente venir, como, golpear ataques y extender la distancia de salto. ¿Bien? Entonces, ¿bien? Como, puedes ver, podemos hacer el combo ahí. Pero si trato de hacer el combo, terminaré en el suelo en algún momento. ¿Bien? Así que vamos a entrar en el código. Entonces, dentro del héroe en este momento, la etiqueta mela cuando está en el aire va a llevar a poner tachuelas de soldadura de aire y luego al final de la longitud del ataque, comprobamos si el jugador sigue Si lo son, vuelve a establecer el número de ataque de césped a cero más bien si no lo son y luego haz un reinicio de ataque y apaga el Sodtak Si siguen presionando, encienda el sod Attack two Después después de una duración menor, desactiva la variable de sod Ataque unos. Ahora, lo que vamos a hacer es que vamos a añadir un poco de salsa. Entonces justo cuando el jugador empiece a hacer sus tachuelas de soda de aire, vamos a ir a buscar componente de movimiento del personaje, ¿de acuerdo? Y vamos a arrastrarlo. Y entonces lo que queremos hacer es querer establecer escala de gravedad. Bien. Queremos establecer la escala de gravedad, y queremos establecerla. Empecemos poniéndolo a cero solo para mostrarte lo que estaría pasando. Bien. Ahora que lo hemos puesto a cero, compilemos y volvamos al juego. Entonces ahora cuando el personaje salta, fíjate que pueden hacer sus combos de aire completo sin gravedad Pero eso es con él puesto a cero. Vamos a ponerlo en algo más sensato. Vamos a configurarlo en algo así como 0.25. Eso significa que una vez que el jugador se está componiendo, obtiene un cuarto de la gravedad Entonces ahora, cuando el jugador salta, obtiene una cuarta parte de la gravedad, y pueden hacer sus normales de ataque aéreo. Bien. Eso es genial. No obstante, fíjate que hay un poco de problema cuando vuelven al suelo, si saltan normalmente, no hay problema. Tienen el salto normal que les hemos establecido. No obstante, si hacen un combo y vuelven al suelo, cuando saltan hacia atrás, se retiene la escala de gravedad. Entonces volvamos al plano del héroe, y luego copiaremos sobre los nodos de cambio de gravedad y haremos esto Inmediatamente justo después si el jugador se reinicia y no continúa el combo, vuelve a poner la escala de gravedad en uno Bien. Entonces, si el jugador ha detenido el combo en cualquier momento, establece la escala de gravedad en uno. Bien. Y agregaremos ese mismo conjunto de nodos en todo nuestro hold on. Estos podrían ser los ataques equivocados. Creo que puse esto en ataque SOD. Esto es ataque SOD Ups. Bajar a atacar tintas aire. Quieren estar en los eslabones de ataque del aire. Pongámoslo aquí. Entonces en cada reinicio, restablecemos la gravedad a uno, bajamos aquí. Este es el segundo reinicio. Reiniciamos la gravedad a uno. Ahí vamos. Luego, por supuesto, en el final combinado, restablecemos la gravedad a uno. Espero que esto tenga sentido y tenga sentido lógico para ti. Todo lo que estamos haciendo es cada reinicio, restablecemos la escala de gravedad a uno. Si el combo continúa, dejamos que la gravedad flotante de color se pegue alrededor. Veamos cómo se ve eso ahora. Entonces déjame dar un salto. Hacer. Oh, Dios mío. Oh, lo siento. Para eso. No quiero hacer ninguna depuración, por favor, gracias No estoy en modo de depuración. Empecemos desde aquí. Así que para la obra. Bien, salta. Bien. ¿Ves? Entonces vengo, me rozo. Una vez que he terminado con una barra, mi gravedad vuelve a la normalidad Don I slash, mi gravedad se restablece de nuevo a la normalidad. D con una baraja, mi gravedad se restablece de nuevo a la normalidad. Saltar, slash, la gravedad se restablece de nuevo a la normalidad. Salta, slash y slash la segunda vez. Restablecer. Acerca de la triple barra, tres barras, y luego el restablecimiento de gravedad, y no necesitamos reajustar la gravedad todas y cada una de las Ahora, volvamos a entrar, asegurarnos de que esto funcione correctamente. Déjame ver. Este reinicio se restablece a uno, restablece a uno, se restablece a uno, se restablece a No está mal. Pero también necesito volver a verificar algo. Cuando abro el componente de movimiento del personaje, déjame buscar la escala de gravedad. Por lo que la escala de gravedad, normalmente, para un salto normal se establece en dos. Entonces déjame hacer un ajuste para que el salto no cambie en absoluto. Volver al gráfico de eventos. Esta vez cuando se está reiniciando Lo sentimos, cuando se está reiniciando, restablecemos su escala de gravedad a dos para mantenerla igual Ahora, por supuesto, la forma inteligente es tener una variable con, digamos, gravedad base y configurarla aquí. Pero eso es para que añadas. Hagámoslo otra vez. Entonces esta vez, salto, me corte. La gravedad se volvió a dos. Yo salto, me agaché. Ponemos la gravedad a dos. Salta, hago las tres barras. Estoy de vuelta en el suelo. Hago dos barras. Oh, hice tres. Haz dos barras. De vuelta al suelo. Yo salto, cortaré. Estoy de vuelta en el suelo. Yo salto, me cortaré, estoy restablecido. Yo salto, me corte, se restablece. Yo salto, me corte, se restablece, ¿de acuerdo? Yo salto, hago el triple slash, lo dejo ir, se restablece Entonces así es esencialmente como mantenemos al jugador en el aire cuando está haciendo combos aéreos ¿Bien? Ahora, volveremos por aquí, y queremos hacer un último cambio adicional. Vamos a verificar rápidamente la escala de gravedad dos. Aquí, está configurado en dos. Sí, está establecido en dos. Bueno. Aquí, la escala de gravedad se establece en 0.25. Creo que dejadme bajar eso a 0.15. Creo que 15 els mejor. Por supuesto, puedes ajustar esto a cualquier valor que sientas que rinde mejor. A pesar de que ahí, lleva a un atasco más alto. ¡Oh! Bien. Entonces ahora que notamos que está llevando a un salto más alto, lo que vamos a hacer es que vamos a venir aquí. Vamos a conseguir vamos a ver, vamos a establecer velocidad. A ver, establecer velocidad. Bien. Vamos a establecer la velocidad. Volveremos a obtener el componente de movimiento del personaje, y vamos a conseguir velocidad. Obtener la velocidad. Veamos dónde está obtener velocidad. Bien, quiero conseguir velocidad. Vamos a dividirlos. Bien. Dividirlos. También esto, vamos a dividirlos. Y queremos que la velocidad X sea la misma, W la velocidad Y sea la misma, pero queremos que la velocidad en Z sea exactamente cero. Ahora bien, ¿qué significa eso? Oh, objetivo, W el componente del personaje, ¿verdad? Vamos a compilar. Ahora bien, esto es lo que queremos, ¿verdad? Fuimos cuando el jugador está flotando en el aire, veamos. Esto es sólo un set para un ataque rápido. Dejan de ganar velocidad vertical. ¿Ves lo que hicimos ahí? Lo configuramos para que el jugador no gane mayor velocidad vertical. Y ese ataque rápido, bueno. Pero pueden completar sus tres ataques aéreos. Agradable, no tan mal, no tan mal en absoluto. Pero ahora que lo he visto, creo que este salto es un poco débil. No es lo suficientemente alto, ya sabes. Bien. Pero ahora que ya lo hemos hecho, creo que ahora déjeme bajar la escala de gravedad. Es gracioso, seguimos haciendo todos estos ajustes. Ahora dejemos caer la escala de gravedad a, uh, hagamos que sea 0.05, ¿de acuerdo? Creo que 0.05 es una escala de gravedad razonable porque hemos reducido significativamente la altura del salto. Entonces venimos. Bonito. Para que el jugador pueda completar Oh, todavía estoy acercado. Disculpas. El jugador aún puede completar sus cortes de triple espada, y luego están de vuelta en el suelo Y esa es la rápida descripción general de cómo tener un buen sistema de ataque aero combo Y lo bueno es que el jugador conserva la capacidad de cambiar dirección incluso cuando está atacando y cortando mientras está en el aire Eso es algo genial. ¿Bien? Eso es más o menos. Bien, entonces veamos que este es un salto normal. Este es un salto de ataque. El salto atacante se mueve más rápido. Entonces, lo que haremos volverá al héroe una vez más. Entonces, ahora que estamos de vuelta en el movimiento del personaje, volvemos a estar dentro del personaje más bien por encima del personaje principal nuevamente. Queremos obtener otro componente de nuestro personaje porque hay otra característica de burgle Si hago un salto básico, fíjese, cuando salto, puedo saltar alrededor de 1.5 cuadrados. Pero si salto y empiezo a atacar, puedo saltar alrededor de tres, lo que significa que estamos haciendo ataques aéreos en tecnología de movimiento de salto, lo que no queremos. O sea, si lo quieres, puedes tenerlo en tu juego. Pero te voy a enseñar cómo asegurarnos que el ataque aéreo no cambie tus saltos porque más adelante vamos a adentrarnos en cómo desarrollar plataformas que sean atractivas y divertidas Entonces arrastraremos el componente de movimiento del personaje. Y queremos buscar controles de aire, queremos establecer control de aire. Es esa cosa llamada controles aéreos, quieren establecer control de aire. Lo pondremos aquí. Y lo que vamos a hacer es que vamos a establecer control aéreo para digamos algo así como 0.3. Porque en el mejor de los casos, la forma en que lo configuramos cuando estamos configurando el movimiento del personaje, control aéreo es mayor. Rápidamente echemos un vistazo a sus detalles. Quiero, abre los detalles. Bien, entonces mis datos no están viendo, así que iré a ver, y aquí estamos. Haré clic en los detalles, y volverá a aparecer esa ventana de detalles. Ahora, quiero buscar control aéreo. Bajo el componente de movimiento del personaje. Para que veas que el mejor control aéreo está configurado en uno, ¿de acuerdo? Entonces, lo que estamos haciendo al establecer el control aéreo en 0.3, es que estamos reduciendo la capacidad de los jugadores para controlar la velocidad diagonal cuando han saltado y están virando Entonces están aquí. Bien, entonces se ha reducido el control aéreo, pero aunque se ha reducido el control aéreo, el jugador aún puede hacerlo. No, esta podría no ser la solución correcta. Déjame quitar el cambio al control aéreo. Por lo que cambiar el control aéreo podría no hacer exactamente lo que le gustaría de la sensación del personaje. Entonces, en cambio, cambiemos rápidamente la velocidad de trabajo real. Mm. Bien. Entonces aquí tenemos la variable de velocidad de caminata. Ahora, vamos a sugerir solo esa variable. Veamos, en realidad hemos establecido la velocidad de caminata. Entonces aquí estamos. Cambiemos la velocidad máxima de caminata. Ahora, comienza a las 600. Sugeriremos que baje a 300 y veamos si eso hará la cantidad correcta de diferencia o asegurándonos de que el jugador no sea capaz de aumentar su distancia de salto. A ver. No, no es suficiente. Vamos a bajarlo a 150. Ese es el movimiento del personaje. Bien, entonces se ralentizó. ¿Bien? Vamos a bajarlo a 50. ¿Bien? Realmente déjalo caer para que podamos ver la diferencia en el impacto que está teniendo. No, no lo suficientemente bueno. Mm. Va a necesitar hacer otro ajuste. Entonces, si cambiar la velocidad de trabajo no está funcionando para este caso de uso, veamos. Creo que lo que podríamos cambiar es la fricción del aire. Necesito cambiar la fricción mientras estoy en el aire. En realidad, muchas formas diferentes de hacer esto. Cada uno con su propio conjunto de problemas que él mismo causará. Volvamos a esto más tarde. Ahora, fundamentalmente, ahora que hemos terminado con esto, lo que sí tenemos es la capacidad de configurar una bonita animación de tres hits y llevar a cabo esos hits ahí, y también digamos hacer un salto rápido. Podemos saltar y hacer ataques aéreos. Tenemos ataques aéreos. Entonces tenemos ataques a tierra. Tenemos ataques aéreos. Aunque los ataques aéreos son lentos, algo que podemos remediar muy rápido. A ver. Déjame adentrarme en el arte. Y seleccione el ataque de aire de sod. Esto se establece en cuatro cuadros por segundo. Permítanme actualizar eso a ocho cuadros por segundo para hacerlo más rápido. Y luego el segundo, veamos, uno, dos, tres. Bien, eso está configurado en cuatro fotogramas por segundo. Déjame configurarlo hasta seis fotogramas por segundo para que sea más rápido. Y el último está configurado en lo que quieres? En realidad, lo que voy a hacer, voy a cambiar este hacia arriba déjame ver. Cuál es la tercera animación. Déjame borrar eso. Sólo voy a configurar esto a cuatro fotogramas por segundo. Entonces esa va a ser la última tachueta de espada. No, mantenlo simple. Entonces con eso, solo esos par de cambios, veamos cómo se veían. Entonces estas son las tachuelas de espada puestas a tierra. Y luego cuando salto, mucho más rápido. Uno, dos, tres. Bien, entonces están hechos. Bueno. Uno, dos, tres, uno, dos, tres. Bien. Entonces cuando saltas, uno, dos, tres. En realidad me gusta ser capaz de controlar el movimiento cuando estoy en el aire así. Es algo genial. En fin, eso es todo. Por ahora, tenemos nuestra configuración de sistema combinado Baseline. Ahora que tenemos el sistema combo configurado en el siguiente conjunto de videos, vamos a hablar brevemente de algunas cosas que podemos hacer con la IA porque golpear un bloque es divertido, pero golpear a una criatura real que pueda atacarte y acabar con tu vida es mucho más divertido. Vamos a meternos en eso. 61. 58 Cómo detectar el guitarrista en el rango: Ahora que tenemos algo de combate disponible para nuestro jugador, vamos a darle al jugador algo para luchar, que va a ser nuestro primer enemigo cuerpo a cuerpo Ahora, lo primero que vamos a hacer es configurar y crear el plano de base del enemigo cuerpo a cuerpo, Entonces para hacer eso, entremos en los personajes. Ahora fíjate que aquí hay algunas carpetas. Tenemos nuestro ataque, objeto de daño, y luego el jugador. Así que vamos a crear una nueva carpeta, bien, la llamaremos enemigo cuerpo a cuerpo Lo mantendremos simple, ¿de acuerdo? Así es como se va a llamar. Ahora bien, este es el enemigo cuerpo a cuerpo. Y si vamos, vamos a crear al enemigo cuerpo a cuerpo como una clase infantil del maniquí de ataque Así que consigue el maniquí de ataque. Lo va a conseguir. Y luego arriba en la parte superior, está la opción de crear una clase de plano infantil Y vamos a llamar a ese niño plano clase mi enemigo Rápidamente corta eso vamos a cortar eso, volver al enemigo cuerpo a cuerpo, y luego pegar rápidamente el contenido aquí Aguanta, en realidad, déjame volver. ¿Dónde está la copia? En realidad quiero copiar esto en su totalidad. Motor real. ¿Dónde está la función de copia simple? Bien, no estoy viendo copia. Sólo voy a arrastrarlo y soltarlo en melenem. Dice: Bien, muévete aquí. Sí, eso es lo que quiero hacer. Editor muy interesante. En fin, ahora que estamos dentro del enemigo cuerpo a cuerpo, queremos agregar en un par de carpetas más Entonces crearemos una carpeta que vamos a llamar arte. Crearemos otra carpeta llamada animación donde pondremos nuestras animaciones, y crearemos otra carpeta llamada audio. Bien. Entonces tenemos audio artístico y animación, y agregaremos más carpetas en función de lo que se necesite. Pero por ahora, estos tres serán suficientes. Ahora bien, si bien ha sido agradable tener este maniquí por aquí, dejemos el maniquí a un Déjame alejarlo. Vamos, Cameoa. F por aquí. Fresco. Bien. Ahora, rápido, dejemos caer al enemigo cuerpo a cuerpo al mundo como asegurarnos de que sea cero en el eje ZY Bien. Entonces este es nuestro primer enemigo real en el juego. Esto es ahora mismo. Ya está aquí. Ahora, abramos el plano y veamos qué hay dentro. Entonces, al abrir, déjame agregarlo aquí, ¿de acuerdo? Entonces abriéndolo, fíjate que hay un par de cosas. Hay una colisión básica de cápsulas. Hay un cubo básico por aquí. Hay una malla básica de caracteres. Ahí está el widget, esa es la barra de salud por ahí, y hay un componente de movimiento de personajes que es bueno. Lo primero que vamos a hacer es que vamos a entrar. Vamos a seleccionar el cubo, y vamos a simplemente por ahora, dejémoslo por ahora ya que solo hacemos una cosa. Pero aquí vamos a agregar otro componente. Ahora bien, lo primero que debe hacer la IA antes de que haga otra cosa es que necesita poder detectar al jugador y saber cuándo el jugador está en cierto rango del mismo. Entonces vamos a ir a los componentes, y queremos agregar un componente llamado peón sensing. Eso es. Entonces esto es, el peón sintiendo. Déjame cambiarle el nombre a detección de jugadores. Ese va a ser el nombre que voy a usar para ello porque está pensado para la detección de jugadores. Y luego cuando alejas el zoom, nota que es un radio bastante loco, ¿verdad? Es un radio masivo. Entonces queremos bajar ese radio. Ahora, en el panel de detalles, podemos reducir el radio del sitio. En este momento está en 5 mil. Déjame bajarlo a mil unidades. Bien. Creo que mil unidades van a ser buenas. Y luego umbral de audición, podemos hacer ese cero para que no sea capaz de escuchar al jugador y el umbral de audición de LOS. Vamos a convertir eso a cero. Entonces todo lo que tiene es un radio de visión. Ahora, ten en cuenta que esto es en realidad una esfera. Parece que es una línea recta, pero no lo es. Es una esfera completa alrededor de todo el personaje, ¿verdad? Ahora, hagamos una comprobación rápida y asegurémonos de que el componente de detección de puntos, que he llamado detección clara, esté funcionando. Entonces entraremos en el gráfico de eventos. Déjame bajar aquí y vamos a crear. Vamos a dejar que en realidad lo arrastre en arrastre en la detección del jugador. Por lo que ahora está aquí la detección clara. Y queremos agregar en un evento sencillo para detectar al jugador así que vuelve a la detección clara. Vamos a agregar un evento. Podríamos usar aquí ruido, pero eso no es utilizable en este momento. Quiero agregar sobre el CPN, lo que va a llevar a que esto se agregue Entonces en CPO, que es básicamente para la detección del jugador, ¿ qué queremos hacer? Queremos simplemente imprimir una cuerda simple, y queremos llamarla player is visible. Eso es. Una vez que el jugador está dentro del rango detectable, simplemente dice: Oye, el jugador es visible. Eso es todo lo que necesitamos para empezar. ¿Bien? Así que volvamos al mundo. Presiono play. Bien, entonces ahora mismo, no es detectar al jugador. Entonces volveremos al plano. Entonces estoy viendo el plano sobre el CPN. Debería estar detectando al jugador independientemente. Volvamos. Entonces cuando salto a este lado, ahí está. Entonces ahora está afirmando que el jugador es visible. Si vuelvo, el jugador ya no es visible. Vuelvo de este lado, el jugador es visible. Eso es genial. Ahora sabemos que es capaz de ver al jugador siempre cuando esté en el lado derecho de su rango de visión. Ahora, vamos a ampliar su vista para que en lugar de que ellos miren hacia el lado derecho, sea capaz de ver al jugador tanto por el lado izquierdo como por el lado derecho. Y para aumentar el ángulo del rango de visión, observe aquí, ángulo de visión periférica en la detección del jugador. Entonces echemos un vistazo. ajustar ese número hacia arriba o hacia abajo. Voy a incrementar ese número a 179 grados, no del todo 180 sino 179. He descubierto que eso suele funcionar muy bien en la mayoría de los casos de uso. Entonces ahora, fíjate que el jugador es visible. Yo salgo del rango. El jugador ya no es visible. El jugador es visible. Déjame salir. El jugador ya no es visible. Eso es bueno. Entonces nuestra IA básica ahora es capaz de detectar simplemente al jugador. A continuación, descubramos cómo hacerlo para que cuando el jugador sea visible, la IA se mueva hacia la ubicación del jugador. 62. 59 Haz que la IA se mueva hacia el reproductor: Ahora que tenemos al jugador siendo detectado, así que ahora mismo estoy fuera de rango visible, y ahora estoy de vuelta en rango visible. Lo siguiente que queremos es asegurarnos de que el enemigo cuerpo a cuerpo se mueva hacia el jugador cada vez que el jugador sea visible Ahora bien, para hacer eso, necesitamos ante todo, crear navegación, y lo haremos estableciendo unos límites de malla nerviosa Ahora, ¿qué es eso? Déjame mostrarte rápidamente, ¿verdad? Para empezar, digamos que tenemos este objeto por aquí, ¿ verdad? Esa es nuestra IA. Si alejamos el zoom y luego entramos en la esquina superior izquierda, y queremos agregar algo y simplemente agregamos malla nerviosa en cada volumen de límites de malla nerviosa Agreguemos eso al mundo del juego. Retroceder el zoom. Esto aquí va a crear lo que se conoce como una malla nerviosa. Ahora bien, esta caja es un poco pequeña, así que la he seleccionado, y luego voy a aumentarla escala a 50 en todas las unidades, ¿de acuerdo? 50 porque quiero que sea grande. Mucho mejor. Ahora bien, esto es propiamente grande. Entonces ves esta zona verde. Esta zona verde de aquí te muestra la malla nerviosa. En otras palabras, a qué áreas es la IA capaz de navegar. Ahora notarás nuestra caja aquí, más bien nuestro enemigo cuerpo a cuerpo es capaz de moverse a lo largo de esa zona verde Ahora, déjame moverme aquí. Notarás esta área alrededor de estos objetos, se le dice a la IA que no pueda navegar por ahí, y eso es bueno. Ahora, por si acaso estás viendo algún espacio debajo de aquí, lo que vas a necesitar hacer es verificar, hacer doble clic en no al enemigo cuerpo a cuerpo Vamos al maniquí de ataque. Asegúrese de que el cubo de su colisión esté configurado para que simplemente se superponga a todos los dinámicos. No debería estar bloqueando porque cualquier colisión de bloqueo va a provocar que haya un espacio donde no se vea la malla nerviosa. Ahora bien, si vuelvo a hacer clic en la caja nerviosa, y presiono P, dejará de mostrar la malla nerviosa. Vuelvo a presionar P , ahora te está mostrando la malla nerviosa. Ahora que esa malla nerviosa está puesta, simplemente vamos a ir a construir y queremos buscar construir caminos. Lo que eso hace es que va a reconstruir la navegación, solo una simple doble comprobación. Y lo que puedes hacer es, digamos que queremos conseguir estos límites de malla nerviosa, a la derecha, y queremos moverlo un poco más hacia la izquierda Va a crear una malla nerviosa. Observe esta refundición por defecto de malla nerviosa. Puedes eliminar eso, repasar a construir y reconstruir caminos, y recreará la malla nerviosa por ti Ahora, sé que he dicho mucho la malla nerviosa, pero esencialmente, esa es solo el área viable que la IA puede usar Ahora que tenemos el área transitable que la IA puede usar configurado, vamos ahora y asegurémonos de que entienda para avanzar hacia el personaje del jugador Bien. Ahora les voy a demostrar con claridad lo que estamos tratando de lograr. Entonces te mueves hacia el enemigo y notas que te persigue. Entonces cuando salte por encima, siempre y cuando me ponga en rango visible, continuará intentando perseguir al jugador hasta la ubicación del jugador. Bien, vuelve. Bien, vuelve. Oye, vuelve, boom. ¿Bien? Por supuesto, se trata de llegar a la ubicación exacta del jugador. Ahora bien, este es el código de plano simple. Entonces lo primero que vas a hacer es volver a OSPN la detección del jugador Y luego después de la cadena de impresión, vas a lanzar a héroe. Básicamente, arrastras este pinout y quieres lanzar a cualquiera que sea el nombre del plano del jugador Una vez hecho eso, a partir de ahí, vas a como héroe, quieres obtener la ubicación del actor. Eso va a sacar a colación este nodo y luego vamos dividirlo rápidamente para que tengamos acceso al valor X, Y y Z. Por supuesto, no necesitamos el valor Z. Es el valor X e Y los que son más importantes. Luego después de eso, usaremos un simple movimiento al nodo de ubicación. Puedes acceder a eso simplemente escribiendo un simple movimiento a la ubicación. Y con eso, arrastrarás desde Controller y quieres obtener el controlador AI, podrás obtener el controlador AI get, y desde el Controlador AI, asegúrate de renunciar a una referencia a uno mismo. Esto básicamente le dice a la IA que tome básicamente, dice, Oye, IA una vez que detectas al jugador. Imprimir el jugador de cuerdas es visible, lanzado al héroe, que debería ser lo que estamos viendo, ese es el peón Como peón, obtenga su ubicación actual y luego simplemente muévase a su ubicación accediendo al controlador de IA dentro de usted Y así es como fundamentalmente consigues algunos déjame alejar el zoom. Así es como consigues un simple movimiento de IA a donde la IA solo sigue al jugador, y sigue intentando seguir al jugador siempre y cuando el jugador esté dentro del alcance. Ahora que tenemos eso, podemos seguir adelante y vamos a establecer algunas limitaciones básicas generales que la IA no intente moverse completamente en el jugador porque está tratando de llegar a su ubicación exacta, que no es lo que queremos, queremos se mueva a cierto rango. Bien. Y luego pasaremos a darle a la IA un ataque que dañe al jugador. 63. 60 Cómo ajustar el movimiento de la IA hacia el reproductor: Ahora bien, si vuelves a las carpetas una vez más y dentro de las carpetas, debería haber debajo del reproductor, notarás que creamos una carpeta específica para el daño en las cajas para el jugador. Vamos a hacer algo muy parecido por el enemigo cuerpo a cuerpo Dentro de eso, vamos a crear una nueva carpeta, y esa carpeta va a ser dañada en las cajas. Bien. Déjame solo revisarla casilla, no en las cajas. Bien, la caja del sombrero de daño. Bien. Quiero mantener igual el naming para que todo sea similar entre los dos Bien, ahora que hemos terminado de tener eso disponible, hagamos ahora algunos ajustes para que el enemigo cuerpo a cuerpo en lugar de llegar hasta la ubicación exacta del jugador, lo que debería hacer es llegar a los jugadores Básicamente, no debería intentar entrar dentro del jugador, ¿de acuerdo? Se trata de ir dentro del jugador. Eso no queremos. Queremos que se detenga justo afuera del jugador. Así que queremos que siempre detenga un poco de espacio ante el jugador. Ahora bien, la forma en que vamos a hacer eso es usando un nodo diferente, y ese nodo se llama get distance two. Entonces vamos a buscarlo. Obtener la distancia dos. Ahí estamos. Nos da la distancia a un personaje jugador, ¿de acuerdo? Entonces usaremos este nodo. Es el get distance to node. Entonces, primero movamos todos estos nodos que son para mover al actor, moverlo un poco más adelante. Entonces lo que queremos hacer es después de la sencilla herramienta de movimiento, queremos tener una comprobación básica de distancia al personaje del jugador. Y después de esa comprobación de distancia, queremos detener todo movimiento activo. Entonces, la forma en que vamos a hacer eso es, antes que nada, espaciemos rápidamente estos un poco más porque necesitamos hacer un par de comprobaciones. Bien. Entonces también tenemos distancia, y el otro actor va a ser ese héroe que está detectando. ¿Bien? Ese va a ser el otro actor. Y además, déjame mover esto aún más hacia la izquierda porque va a necesitamos un poco más de espacio, ¿de acuerdo? Entonces estamos consiguiendo la distancia al héroe y luego va a intentar devolver un valor. Y entonces lo que queremos hacer es desde el valor de retorno, vamos a arrastrar esto. Queremos buscar menos de igual a. Entonces queremos buscar menos o igual a. Bien. Y después de eso menos o igual a, vamos a establecer una cantidad. Digamos que la cantidad es de 150 unidades. Y después de eso, vamos a montar una rama simple y después de esa rama, si esa rama es, veamos. Entonces básicamente, si la distancia es menor o igual a 150 unidades, lo que queremos es que eso signifique que el jugador esté dentro de esa distancia, ¿verdad? Está dentro de 150 unidades. Básicamente queremos dejar de hacer cualquier movimiento lo que significa que si la distancia no es si la distancia no es inferior a 150 unidades, lo cual va a ser falso, lo arrastraremos hacia afuera y lo moveremos al movimiento simple también. Entonces se moverá si la distancia es menor o mejor dicho, si no es menor o igual a 150 unidades, sin embargo, si es cierto, arrastraremos esto y queremos imprimir una cadena simple, y queremos que el color de la cadena sea rojo. Clic, ¿bien? Y lo llamaremos en rango de ataque porque ese es básicamente el rango de ataque. Lo hemos configurado para que 150 vaya a ser como cada vez que el jugador esté dentro de las 150 unidades, ahora va a estar en el alcance de ataque, por lo que estará listo para comenzar a atacar al jugador. Ahora, con todo esto configurado correctamente, arrastremos al elenco a héroe hasta aquí. Así que vamos a repasar el código. En la detección de jugadores lanzados a héroe, va a obtener la distancia al héroe y comprobar si es menor que igual a 150. Si la distancia no es menor que igual a 150, simplemente intenta moverte a la ubicación del personaje. Si es menor que igual a 150, solo imprime que oye, estás en el rango de ataque. Bien, así que con solo eso, hagamos rápidamente una compilación y golpeemos play y hagamos una revisión rápida. U, dice en rango de ataque. Pero la distancia de 150 parece ser demasiado pequeña. Aumentemos eso a 500. Bien. Ahora a una distancia de 500 que estamos utilizando para verificar. Hmm. Ahora tenemos un problema menor. Así que cuando me muevo, lo intento, ¿de acuerdo? No, el cheque no funciona correctamente. A ver. Bien, ahora está parando en un buen rango correcto. Ahora se está deteniendo en el rango correcto. Ahora se está deteniendo en el rango correcto. Ahora no está funcionando correctamente. Ahora no está funcionando correctamente. Ahora no está funcionando correctamente. Esto va a necesitar algunos ajustes. Inténtalo de nuevo. No, está siendo poco confiable. Ahora vamos a hacer algunos problemas básicos. ¿Cómo estamos haciendo la solución de problemas? Ven aquí y vamos a golpear Play. Quiero ver qué está pasando. Oye, eso va, ¿ correcto? Bien. Entonces el único problema es que el simple movimiento también sigue funcionando. Parece que el código está funcionando correctamente porque déjame intentar demostrarlo. Cuando llego al rango correcto, espera. Espera un segundo. Parece que se está moviendo y en realidad está haciendo lo correcto de cambiar el flujo apagando también el movimiento simple. Pero lo que falta es este movimiento para correr una vez y sigue funcionando. Lo que queremos hacer es justo después de que se detecte que está dentro del rango de ataque, queremos parar vamos a ver. Aquí estamos. Queremos detener el movimiento activo. ¿Bien? Entonces, inmediatamente hagamos clic en eso. Entonces, lo que ha hecho es más bien, se abre el componente de movimiento del personaje y está deteniendo el movimiento activo. Ahora con esa configuración, probemos esto rápidamente de nuevo. Tan Perfecto. Me muevo un poco. Sí, ahora está funcionando correctamente. Ahora, vamos a reducir eso de 500 unidades a 150 unidades. Haz una compilación rápida. Vuelve aquí. Bien, entonces ahora se está deteniendo correctamente. A? No, pero ahora no funciona correctamente. Bien, aguanta. Déjame aumentar las unidades para que tenga una imagen más clara. Déjame aumentar a 300 unidades. ¿Bien? Bien, se está deteniendo. Se detiene ahí. Se detiene ahí. Se detiene ahí. Se detiene ahí. Bien. Por lo que actualmente no está funcionando de manera confiable. Ahí, está parando a la distancia correcta. Aquí, se detiene ahí. Bien. Entonces detener el movimiento es ayudar a resolverlo en algunos escenarios, pero no lo está ayudando en otros. Entonces lo que vamos a necesitar hacer es hacer otro cambio. Entonces ahora que estamos aquí, lo hemos configurado para detener el movimiento activo. Pero antes de hacer eso, lo que también tenemos que hacer es, primero reorganicemos esto un poco, asegurarnos de que esté realmente limpiado Déjame poner esto distancia y ramificar juntos aquí para que pueda ver claramente lo que está pasando. Esto va a estar aquí, bien. A mí me gusta esta organización. Y entonces si es cierto, se ramifica para detener el movimiento activo. Mm hm. Bien. Pero si está deteniendo el movimiento, ¿por qué se detiene a diferentes distancias? Eso se reduce a la velocidad. Eso se reduce a la velocidad. Entonces, ¿cómo alteramos la velocidad? Eso en realidad es bastante simple. Estamos usando detener el movimiento activo, arrastra esto. A ver. Aquí estamos he añadido en un movimiento de parada de inmediato para evitar que eso siga avanzando después de que lo hayamos hecho. Así que estoy usando tanto detener el movimiento inmediatamente como detener el movimiento activo. Probemos esto y veamos si esto va a dar el resultado correcto. Bien. Bien. No. No. Ah. Ya veo. Bien. Este es un comienzo suficientemente bueno, pero hay un par de ajustes más que vamos a necesitar hacer para que la IA siga al personaje y se detenga en un lugar determinado que trabajamos correctamente. Y creo que una parte importante de eso va a ser ajustar el componente psensing Hagámoslo en el siguiente video. 64. 61 Ajuste de componentes de detección y algunos trabajos teóricos sobre la sincronización: Entonces ahora que estamos en un lugar donde podemos movernos hacia nuestro enemigo cuerpo a cuerpo Y a veces se detiene en la posición correcta. A veces se detiene demasiado tarde, y, ya sabes, pero su movimiento ahora está funcionando. Necesito salir solo del código y los nodos en una forma de pensar un poco de nivel superior. Cada juego en el mundo entero se ejecuta con un temporizador. Este temporizador se llama el técnico. Ahora, déjame sacar esto a la luz. Déjame imprimir una cuerda. Y quiero que imprima los segundos Delta cada vez que tome. Entonces veamos cómo se ve esto. ¿Dónde está el nivel de este lado? No, quiero que se vaya. Bien. Entonces fíjate que está haciendo tictac. Ahora, ahora mismo, estás viendo 0.008 como el temporizador de toma. Ahora, lo que eso significa, vamos a abrir una calculadora, ¿verdad? Ahora, si conseguimos uno y lo dividimos por 0.0 083, obtenemos 120 Bien. Eso significa que cada toma se dispara alrededor de cada 120 fotogramas, y podemos verificarlo , ¿verdad? Viniendo aquí saliendo, si le pedimos que muestre FPS, ¿verdad? Observe de qué se trata el FPS de 120 fotogramas. Todo lo que hacemos está basado en temporizador. Ahora déjame presionar play. Entonces notarás que va a mostrar el tiempo entre cada fotogramas, que ahora es 0.008 3 segundos. Por lo que la variación en donde se detiene el oponente se reduce a la sincronización. Ahora, déjame regresar y borrar esta cadena que está apareciendo en Te go away. Ahora ya lo he quitado. Si vamos y verificamos la detección del jugador, entra en el panel de detalles. Déjame abrir esto. Y vamos a ver algo aquí. Aguanta, veamos, toma de componentes, eso es bueno. Bien. Así que he hecho clic en la detección del jugador en componente de detección. Ahora, vengamos aquí. Observe que en este momento su intervalo de tick está establecido en 0.0. Lo que eso significa es que se va a establecer en el mismo intervalo t que la velocidad de fotogramas. En realidad no es cero, pero está fijado a eso. Y ahora, lo que queremos es que podamos ajustar esto y podemos aumentarlo o disminuirlo. Eso no es lo más importante. Bueno, veamos. Aquí estamos detectando intervalo. Ahora, el intervalo de detección básicamente significa la cantidad de tiempo que lleva entre cuando el juego verifica ese componente. Entonces ahora está establecido en 0.5. Entonces lo que podemos hacer es establecer el intervalo de detección en cinco. Eso son cinco segundos enteros. Eso es mucho, ¿de acuerdo? Así que compile esto. Entonces eso significa esencialmente, va a seguir haciendo eso ahora, uno, dos, tres, cuatro, cinco. Observe que solo está haciendo esa comprobación cada 5 segundos. Uno, dos, tres, cuatro, cinco, ahora se mueve. Alternativamente, podemos hacer un ajuste a ese intervalo de detección para que tenga sentido mucho más rápido. Lo haremos 0.1. Recuerda, empezó a la 0.5, ¿de acuerdo? Ahora vamos a entrar aquí. Entonces fíjate que ahora en 0.1, está siguiendo y ajustando a la distancia correcta. La razón por la que está haciendo eso es porque ahora de repente, es verificar dos veces a cada 0.1 segundos que el enemigo está corriendo las matemáticas y comprobando dos veces la distancia al jugador. Entonces déjenme abrir una vez más el gráfico de eventos. Estoy alejando un poco, pero puedes, bien, déjame acercar la impresión de la cuerda, fundir y ramificar Así que vamos a golpear rápidamente Play. Quiero que veas lo rápido que es hacerlo, ¿verdad? Está completamente cambiado. Pase, es poner las cosas en la pantalla. Ahora bien, la razón por la que quería compartirlo es porque vamos a estar haciendo mucho trabajo usando diferentes sistemas de detección de puntos. Para hacer realmente una buena IA, vamos a necesitar trabajar mucho con ellos para detectar la distancia y tomar diferentes decisiones en función de cuál es la distancia del personaje. Si el personaje está lejos a través de un ataque a distancia, si están cerca, puedes configurar la IA para que huya Eso es solo un concepto general básico. Y ahora que tenemos aumentar el intervalo de detección a 0.1 segundos. Ahora el código está funcionando exactamente como pretendemos desde una perspectiva humana. Ahora, ahora que tenemos esta configuración y la tenemos configurada para atacar básicamente a distancia o mejor dicho cuando está en alcance de ataque. A continuación, pasemos del código y agreguemos algo de animación a nuestro enemigo cuerpo a cuerpo, y luego entraremos en agregar un ataque y hablaremos sobre cómo tomar decisiones en torno a los sistemas de ataque 65. 62 Añadir un sprite visible al enemigo cuerpo a cuerpo: Ahora, lo siguiente que queremos hacer es realmente cambiar a nuestro enemigo cuerpo a cuerpo para que podamos ver realmente a un enemigo en la pantalla Déjame acercarlo al jugador para que podamos ver rápidamente los cambios. Queremos que esto sea realmente un enemigo, no solo una caja con barra de salud. Entonces para hacerlo, entraremos en el plano del Enemigo cuerpo a cuerpo. Seleccionaremos el cubo, y entraremos en sus detalles, y queremos buscar renderizado visible y hagámoslo invisible. Entonces ahora no deberíamos estar viendo ninguna, solo estamos viendo una barra de salud. Eso es genial. Pero vamos a hacer otro cambio. Vamos a seleccionar el widget, entrar en detalles. Y además, sólo vamos a hacerlo invisible. Para que sepas, ahora solo tenemos al enemigo vacío. Con el enemigo vacío ahí, entremos, y ahora queremos comenzar a agregar algunos sprites en preparación para los sprites Vamos a añadir un componente, y va a ser un flip book. ¿Bien? Solo agreguemos un flipbook de papel como componente, y aquí va a ser donde vamos a poner en todos nuestros sprites Ahora, se agrega con este video también algunos activos de sprites que usaremos para crear al enemigo Puedes descargarlos y luego seguir adelante. Ahora, agregar los sprites va a ser bastante sencillo. Primero, seleccionaremos todas las imágenes que hemos importado y nos aseguraremos de que esas tengan aplicadas las configuraciones de textura de papel dos D. Lo siguiente que queremos es seleccionar esqueleto io, y queremos extraer sprites de él Después de golpear extraer sprites, observe que NRL ya ha segmentado automáticamente los diferentes sprites y simplemente presionamos extraer y simplemente presionamos Y ahí vamos. Entonces ahora tenemos todos estos esqueletos, sprites inactivos desempaquetados Entonces los seleccionaremos y luego iremos a crear Flip Book, que está por ahí y creamos un flipbook Y se llama esqueleto Ídolo Uno. Simplemente lo cambiaremos a mí NMI, subrayado inactivo. Bien, ahora echemos un vistazo al enemigo cuerpo a cuerpo inactivo. Entonces esa es la animación. Básicamente, el esqueleto está parado en un solo lugar. Es una muy buena animación, y esto es lo que usaremos para mantener al enemigo inactivo. Ahora que tenemos eso adentro, simplemente cerraremos esto. Seleccionaremos el libro de papel que hemos creado dentro de nuestro enemigo cuerpo a cuerpo Y vamos a cambiar el libro de volteo de salsa para que bajemos. Queremos que el enemigo cuerpo a cuerpo esté inactivo. Bien. Ahora que hemos puesto al enemigo cuerpo a cuerpo inactivo por ahí, vamos a compilar Y cuando golpeamos arcilla, mira, ahí está ese pequeño enemigo cuerpo a cuerpo por allá Muy lindo. Ahora eso está funcionando. Hemos demostrado que está apareciendo correctamente. Ajustemos la escala para que se ajuste y tenga más sentido lógico. Voy a bloquear la escala, escalarla en la Y. Eso es genial. ajustar su posicionamiento para que sea un poco más alto. Muévelo un poco hacia adelante, y luego hacia abajo. Por lo que su escalado actual es de 4.4. Déjame hacer ese 4.5. Ese es el escalado. Compilar. Déjame ver cómo se ve. Eso es bueno. A continuación, regresa, selecciona el flip book, busca sombra, y queremos configurarlo para proyectar sombras porque en este momento no está proyectando ninguna sombra. Va a seleccionar sombra proyectada, compilar. Y ahora nuestro pequeño enemigo dos D está ahí lanzando una pequeña sombra agradable. Qué genial. Y mira, se está moviendo correctamente, izquierda y derecha, moviéndose a la izquierda, moviéndose a la derecha. Esto es excelente. Ahora que tenemos a nuestro pequeño esqueleto ahí haciendo pequeñas cosas de esqueleto, creo que vamos a hacerlo un poco más grande, ya sabes, un poco más intimidante Vamos a verlo escala. Permítanme aumentar la escala a seis. Incrementar su ld vertical. Necesito mirar el suelo, asegurarme de que solo esté tocando el suelo. Permítanme aumentar la escala a siete. Eso es bueno. Asegúrate de que solo se trata de tocar el fondo. Déjame sacarlo a colación sólo un toque. Compilar. Veamos qué tenemos aquí. Esto se ve mucho mejor. Mira ese esqueleto. ¿Bien? El único ajuste que voy a hacer es bajarlo solo una pizca Veamos ahora mismo, 30. 20? No, quiero que su ubicación Z sea algo así como 28. No, déjalo caer 27. Eso debería encajar sobre lo correcto. Ajusta hasta que hayas terminado de gustarle, ¿de acuerdo? Ajusta a tu gusto. Bien. Ajusta a tu gusto. Esto es bueno, y me gusta. Ahora que hemos terminado con eso, hagamos un último ajuste. Um, no, dejémoslo así. Entonces ahora tenemos un enemigo esqueleto básico que es capaz de seguir al jugador alrededor. A continuación, vamos a trabajar en adjuntarlo, configurarlo en papel Zed y darle una animación de ejecución real para que persiga al jugador. Vamos. 66. 63 Cómo agregar animaciones caminantes en PaperZD: Bien, ahora que tenemos el arte básico, vamos a darle vida y sumar esa funcionalidad más dinámica. Entonces lo primero que vamos a hacer, es una configuración muy similar a la que se hizo con el jugador. Queremos encontrar el componente de animación de papel Z D. Y con esa configuración de componentes de animación, solo llámalo animación en papel Z. Y luego decidiremos, bien, instancia de animación, trataremos con esto más adelante, que renderizan bien el componente. Queremos usar el libro de papel como nuestro componente de renderizado, y ahora simplemente está buscando una clase de instancia de animación. Entonces vamos a crear eso. Así que dentro de la carpeta del enemigo cuerpo a cuerpo, entra en animación, y vamos a crear, veamos, queremos una instancia de animación Veamos qué son los papeles a. Aquí están los papeles al día. Queremos comenzar creando una salsa de animación, y la llamaremos salsa de animación cuerpo a cuerpo em Bien. Y después de eso, lo hemos salvado. A continuación, queremos crear un plano de animación. Bien. Y está aquí preguntando, Bien, ¿cuál va a ser la salsa de animación para padres? Queremos que la salsa de animación cuerpo a cuerpo NEM sea su madre. Y lo llamaremos enemigo cuerpo a cuerpo Animación BP. Mantendremos limpios los nombres. Ahora que hemos configurado esos dos, comenzaremos entrando en la fuente de animación. Queremos añadir una nueva secuencia de animación. Llamaremos a esta secuencia ociosa. Bien. Como pueden ver, lo estamos llamando inactivo. Ahora seleccionando la animación Idle. Queremos antes que nada, no sé por qué eso se abrió ahí arriba. Queremos una ventana llena. A continuación, qué datos de animación queremos macho mi ocioso. Así que no usaré la identificación del enemigo cuerpo a cuerpo, y esta es la animación Se trata de jugar limpio. Está jugando limpio. Esto es bueno. Ahora que ya lo hemos hecho, volveremos, nos aseguraremos de que todo esté guardado. Entonces esto es lo que hay en la salsa de animación. Entonces iremos a la animación cuerpo a cuerpo Enemigo Blueprint. Tenemos acceso al enemigo cuerpo a cuerpo como variable. Vamos a asegurarnos de que desde dentro del gráfico de eventos de la animación M Enemy Blueprint, queremos lanzar a Mel enemigo Y luego en cuanto al objeto, queremos conseguir el actor dueño Y la razón por la que estamos consiguiendo al actor propietario es porque tienes múltiples enemigos cuerpo a cuerpo y cada código de animación debe ejecutarse por separado, y luego simplemente queremos ascender a variable y la variable es enemigo cuerpo a cuerpo Eso es todo lo que necesitamos para ponernos en marcha. Bien. Ahora con toda esa configuración, pasemos al gráfico de animación. Entonces, dentro del gráfico de animación, lo primero que queremos hacer es crear una máquina de estado completamente nueva. Entonces busquemos la máquina de estado, agreguemos nuevos, y simplemente vamos a llamar a este mele Enemigo va a mantenerlo realmente simple Ese va a ser nuestro nuevo estado. Trae esto por aquí, entraremos en él, y saldremos directo de afuera, arrastraremos eso. Queremos agregar un nuevo estado de animación, y simplemente llamaremos a esto inactivo. Y haga doble clic en Idle. Y realmente queremos simplemente buscar play inactivo, que es la animación, la única que tenemos. Hasta el momento, conecta eso adentro , sal, Control y, por supuesto, para guardar y luego compilar. Ahora, aunque de esto compilado y listo, esencialmente tenemos nuestro artículo Z completamente configurado. Volveremos a la gráfica de animación. Entonces en este momento, de inmediato inicia, pasa directamente a inactivo. A continuación, sigamos adelante y agreguemos la animación de movimiento o la animación de carrera. Ahora, agregar la animación de ejecución es básico. Simplemente empezaremos primero, vamos a regresar, volver al arte. Oh, no del personaje. Queremos el arte enemigo cuerpo a cuerpo. Y dentro del arte, fíjate que hay m. Veamos. Tenemos W aquí. Hay caminata de esqueleto. Bien. Por lo que simplemente seleccionaremos la obra esqueleto. Queremos extraer sprites. Se cortan automáticamente. Y luego el sprite andante simplemente los seleccionará y creará flipbook y llamaremos al flipbook guión bajo cuerpo a cuerpo Bien. Entonces esta es la animación de trabajo del enemigo cuerpo Es un pequeño trabajo bastante agradable, que el enemigo está haciendo. Ahora que tenemos esa animación de trabajo, simplemente vamos a entrar en la fuente de animación del enemigo cuerpo Añadiremos una nueva secuencia de animación. Lo llamaremos trabajo. Haga doble clic en él, y lo mismo, queremos buscar trabajo en la secuencia de animación aquí. Entonces ahora tenemos esa sencilla animación de trabajo agregada. Con eso agregado, volveremos al Blueprint de Mele Animation Arrastraremos esto y crearemos un nuevo estado de animación. Nombraremos al estado W. Dentro del estado de trabajo, queremos jugar al trabajo. O la animación de trabajo. A continuación, queremos conectar el enlace de trabajo de nuevo a inactivo. Y una vez que entremos, simplemente obtendremos al enemigo ASM. Entonces queremos obtener velocidad. Bien, queremos obtener velocidad. Aquí está este componente de obtener velocidad, dividirlo y queremos que hagamos una doble comprobación rápida una vez más. Es la velocidad X lo que estamos buscando, y queremos ver algo. Entonces queremos ver, es igual a, y queremos decir no igual a. Entonces estamos usando la función no igual a, que es esta función. Y para pasar del ocioso al trabajo, que es la regla que estamos configurando ahora mismo, una vez que la velocidad en el eje X es mayor que cero, puede comenzar a funcionar, pero luego pasar de caminar de regreso a exactamente igual a. En otras palabras, exactamente igual a cero. Se debe hacer la transición a un trabajo. Este fue mi mal. Aquí, entra en la clase de instancia de animación y selecciona el plano mele Enemy Animation Guardar, compilar, y ahora vamos a ver. Bien, ya ves, ahí está ese paseo y jactancia. Mírelo persiguiendo al enemigo. Una vez que llega, se detiene. Entonces ahora tenemos a nuestro enemigo capaz de ver al jugador, trabajar hacia él, y parar. Bonito. Entonces tenemos eso configurado correctamente. Tenemos nuestra animación de trabajo de línea base enemiga configurada correctamente. Y ahora podemos meternos en sumar un ataque al enemigo cuerpo a cuerpo. Vamos a seguir adelante. 67. 64 Añadir el sprite de ataque al enemigo cuerpo a cuerpo: Ahora que tenemos a nuestro personaje enemigo que puede hacer swag y moverse hacia el jugador enemigo una vez que el jugador se vuelve visible Lo siguiente que realmente queremos hacer es que queremos hacer un básico como lo llamamos ataque para que el enemigo pueda hacerle daño al jugador. Y a medida que construimos en el ataque, vamos a hacer otros ajustes al sistema de movimiento para que sea mucho mejor en reconocer la posición del jugador y ajustarnos para moverse hacia el jugador. Entonces lo que vamos a hacer es salir aquí. Vamos a empezar seleccionando el ataque esqueleto, y después de asegurarnos de que tiene el papel dos configuraciones D, vamos a extraer sprites Y parece que esta vez, Unreal Engine está luchando por descubrir cuáles son las dimensiones de los sprites Por lo que actualmente, la extracción de sprites está configurada en auto. Va a cambiar eso porque auto no es suficiente. Vamos a configurarlo a grilla. Ahora como cuadrícula, necesitamos determinar el ancho de celda y la altura de celda. Ahora bien, esta es una manera fácil de hacerlo. Ahora esto va a funcionar para esta imagen específica. Para empezar, déjame acercarme un poco. Sabemos que el ataque tiene uno, dos, tres, cuatro. Bien, cinco, seis, siete, ocho, nueve, diez, 11, 12, 13, 14, 15, 16, 17, 18 cuadros, ¿de acuerdo? Entonces aquí hay 18 marcos. Entonces, para poder suss estos a los 18, sabemos que ahora mismo, cada ancho de celda está establecido en 774 Ahora, haremos algunas matemáticas y cálculos básicos. Por supuesto, cuando haces los sprites tú mismo, no necesitas hacer estos cálculos Pero si estás usando activos, a veces necesitarás hacerlo. Entonces tenemos 774/18, que es 43. Entonces cambiemos el ancho a 43. Y ahora tenemos sprites limpiamente cortados. Bien. Sólo con eso. Ahora con eso, nos acercaremos al extracto y al extracto. Y sin perder tiempo, crearemos un flipbook, y vamos a llamar a este EM mele veamos ataque de subrayado enemigo cuerpo a cuerpo Bien, eso debería ser perfecto. Ahora, con esa configuración, bien, tenemos nuestro ataque cuerpo a cuerpo enemigo Ahora volvamos a la carpeta del enemigo cuerpo a cuerpo. Quieres entrar en animación, y vamos a abrir la salsa de animación y el Blueprint de animación una vez más Bien, Salsa de animación, abre el Blueprint de animación. Ahora, dentro de la fuente de animación, queremos agregar una nueva animación, y simplemente la llamaremos ataque. Lo mantendremos simple. Ahora, ataque, masticaremos los datos de animación correctos, y buscaremos mi ataque enemigo Ahí está. Esa es la animación básica de ataque enemigo Me. Tan ocioso. Ataque a pie. Eso es bastante genial. Bien, déjame atender esta llamada telefónica. Y ahora hemos añadido en esa animación de ataque. Lo siguiente que vamos a hacer es que nos vamos a abrir de nuevo a mi enemigo, abrir la clase de planos cuerpo a cuerpo Enemigo Ahora, vamos a regresar, reorganizar la lógica y pensar en cuándo queremos que el enemigo ataque al jugador y asegurarnos de que los nodos aquí dejen que el jugador sea atacado en el espaciado correcto, y también vamos a ajustar el movimiento del enemigo para que el enemigo se mueva mucho más despacio para que el jugador pueda huir. Hagámoslo. 68. 65 Resumen de la IA de Melee Enemy y comentarios de código: Todo bien. A medida que vamos has configurado el movimiento, profundizando en la IA, has configurado el movimiento, es capaz de seguir la jugada. Volvamos a pensar en las cosas desde los primeros principios. DCAA, código de diseño en Audio. Ahora mismo, comenzamos con algo de código solo para darte una sensación de crear y configurar la IA. Funcionalmente, vamos a estar usando sistemas de detección, que son los sistemas de detección de pan y movimiento Esos dos son realmente lo que gobierna cómo se siente una IA. Así que volvamos a pensar en el diseño, ¿de acuerdo? Entonces esta es una visión general muy simplificada de lo que vamos a hacer con la IA. Esta es una IA NM cuerpo a cuerpo realmente simple. Lo primero que hace es patrullar una zona. Bien. Cuando el personaje jugador entra en un área, la IA parece estar patrullando un área A continuación, se mueve hacia el jugador detectado y realiza un ataque. Y lo último que tiene que hacer es, oye, cuando su salud cae por debajo de cero, muere inmediatamente, ¿de acuerdo? Simplemente muere, lo cual es muy bueno. Entonces esto es lo que vamos a hacer para establecer para el enemigo cuerpo a cuerpo Se necesita patrullar una zona. Necesita moverse hacia un jugador detectado y atacarlo. Y luego una vez que su salud cae a cero, muere. Sigamos con estos principios básicos en mente. Ahora, estamos de vuelta en el motor real, y estamos dentro del plano de nuestro simple enemigo cuerpo a cuerpo Ahora, entremos y echemos un vistazo rápido a todos los diferentes nodos. Entonces lo primero es, tenemos un peón básico, que es capaz de detectar al jugador Vamos rápido. Esta es la detección de jugadores. Entonces dentro de ese radio alrededor del enemigo, detecta al jugador. Eso es bueno. Ahora, pongamos rápidamente un comentario básico. Oh, Dios mío. No, no, no, presione C. Simplemente presionando C para los comentarios. Entonces este es un simple comentario, y llamaremos a esto detectar al jugador. Entonces todo lo que hace aquí dentro ese código es detectar al jugador. Eso es todo lo que hace. No es hacer otra cosa. Como de costumbre, me encantan los fondos negros con texto en blanco. Los encuentro muy fáciles de leer y organizar los nodos en. Entonces esta de aquí es la detección del jugador. Ahora hay actualmente una cadena que detecta cuando el jugador es visible. ¿Bien? Esa es una cadena que se dispara después de que eso es detectado. Déjame primero alinear estos, enderezar todas las conexiones aquí, bien Y luego arroja y comprueba si es el héroe lo que es bueno. Y luego ven aquí. Oye, trae esto por aquí. Empezar con esto. Básicamente detecta al jugador y arroja y como, Oye, bien, este es el jugador. Eso es genial. Esta es la línea de base de la IA. Es capaz de detectar al jugador, y luego hasta cierta distancia, se mueve hacia el jugador. Reorganicemos el movimiento. Trae todo esto aquí abajo, trae esto por aquí. Y esta rama, quiero dejarla fuera de eso porque quiero ponerla bajo un comentario diferente, asegurarme de que bajo un comentario diferente, todas estas estén correctamente alineadas. Bien. Ven aquí. Este es el simple movimiento a ubicación que usamos para mover la IA, mover la ubicación del actor del jugador, y luego el controlador mover esto por aquí. Para que podamos alinear el controlador en el lado izquierdo, ya que es el controlador de IA el que se utilizará para moverse por sí mismo, ¿de acuerdo? Entonces fundamentalmente, detectamos al jugador. Y una vez que sepamos que es el jugador el que es el plano del héroe, eso es lo que vamos a utilizar para llevar a cabo todas estas otras acciones. Bien, bien. A continuación, realiza una comprobación de condición básica para ver si la distancia al jugador es de 300 unidades. Si la distancia no lo es, se moverá hacia el jugador. Si la distancia es, en cambio detendrá todo movimiento, y necesita realmente llevar a cabo el ataque o más bien ahora mismo detectamos que está en alcance de ataque. Ya no necesitamos ese texto. Vamos a traer esto por aquí. Ahora, tenemos que hacer un comentario aquí. Entonces obtendremos esta copia y la pegaremos por aquí, la arrastraremos. Llamaremos a este ataque el jugador cuando esté en rango. Eso es todo lo que hace esto. Atacará al jugador cuando el jugador esté dentro del alcance. Entonces aún no hemos agregado en el código para el ataque, pero vamos a meternos en eso. Entonces esto está configurado para atacar al jugador cuando esté en el rango, y copiemos y peguemos ese comentario por el bien de la organización. Y esto va a ser movimiento al alcance de ataque. De jugador detectado. Ah, no, no, no hay necesidad de mayúscula L. Haz de eso una pequeña L. Bien. Por lo que esto se moverá al rango de ataque del jugador detectado. Vamos a arrastrar esto justo por aquí. Muévelo un poco hacia arriba. Vamos a mover esto hacia arriba. Mueve esto un poco más a la derecha. Esto es bueno. Entonces, esencialmente, estamos detectando al jugador cuando está en rango detectable. Una vez hecho eso, hacemos una comprobación básica del rango de ataque. Si el jugador aún no se encuentra en el alcance de ataque, se mueve hacia el jugador para intentar meterse en el rango. Sin embargo, si el jugador está en el rango de ataque, comenzamos por detener todo movimiento activo, y luego realmente vamos a atacar al jugador. Ahora, ahora que esto está realmente configurado en general, entremos y agreguemos realmente el ataque que la IA va a realizar hacia el 69. 66 Agregar un hitbox de daños para un ataque enemigo cuerpo a cuerpo: Todo bien. Entonces ahora que tenemos nuestro código razonablemente organizado, entremos y comencemos a agregar en el ataque para la IA. Ahora, lo primero que queremos hacer es, sabemos que vamos a estar desove en nuestra caja de cabeza Entonces, cuando volvemos y miramos la animación desde verificar la fuente de animación, y ten en cuenta que esto varía mucho en función del tipo de animación que quieras. Ahora, notarás que hay un arco de daño que hace. Mira ese arco. Bajemos cuadro por cuadro. Oh, chasquido, abre esto un poco. Volvamos. Mira ese bonito arco de daño. Mira eso. Entonces, alrededor del marco siete, tenemos ese gran arco de daño de barrido. Ahí es cuando queremos hacerle daño al jugador. Y puedes ver el bonito tamaño grande de ese arco ocho pavos, ¿de acuerdo? Ahora, ahora que tenemos esa escena, bien, volvamos a nuestro enemigo cuerpo a cuerpo, y tenemos que decidir la ubicación de donde va a aparecer esto en box Entonces iremos rápidamente y seleccionaremos el libro de papel, bien. Y luego dentro de eso, queremos agregar una simple colisión, ¿de acuerdo? Y usaremos una simple colisión de caja. Ahora, esta caja está aquí, es demasiado grande. Hagámoslo más pequeño. Para hacerlo más pequeño, vamos a reducir su escala a algo así como 0.1, hermoso, y luego vamos a movernos vamos a mover su posición justo adelante. Ahora que tenemos eso, creo que permítame volver a mirar esa animación. Oh, mira eso. Se trata de dos longitudes al frente, pero queremos tener un área enorme de caja de sombreros para eso. Entonces creo que voy a moverlo por aquí. Volvamos al enemigo. Así que por aquí, ¿de acuerdo? Esta es una buena posición para ello. Y ahora que ya vamos a ver, ahí es donde está. Y luego para la caja, llamemos a esto columpio de hacha. Bien, lo llamaremos x swing, ¿verdad? Ubicación. Bien. Lo llamaremos la ubicación x swing. Ahora que tenemos esa configuración de ubicación, lo siguiente que vamos a hacer es, agreguemos una bonita colisión para ello. Una bonita, hermosa, caja grande que va a ser la gran colisión que tenemos. Entonces para hacer eso, controlemos rápidamente la barra espaciadora Entonces, bajo nuestro personaje héroe, fíjate que teníamos una carpeta para la caja de impacto dañada. Ahora vamos a entrar en el enemigo cuerpo a cuerpo. Y el enemigo cuerpo a cuerpo también tiene una carpeta dañada en caja. Entonces dentro de esa carpeta, queremos crear una nueva clase de blueprint Va a ser un actor básico de planos, y queremos llamar a esto x swing at box Bien. Ahora haremos doble clic en la caja de sombrero x swing. Y aquí está. Tenemos un poco de x swing. Entonces este es nuestro columpio X básico. Ahora necesitamos agregar en una caja real propiamente dicha. Entonces vamos a agregar vamos a agregar una esfera porque la X swing en caja va a ser una esfera, y vamos a reducir su tamaño a aproximadamente 0.5 en la escala. Y esto es sobre el tamaño. Todo lo demás al respecto no es tan importante, ¿de acuerdo? Así que ahora que hemos configurado el swing X en box, vamos a compilar eso y vamos a volver a nuestro enemigo cuerpo a cuerpo, ¿de acuerdo? Y vamos a volver al gráfico de eventos. Y lo que vamos a hacer una camioneta que acaba de pasar. En fin, lo que vamos a hacer es que lo vamos a hilar aquí mismo. Entonces lo que queremos hacer es entrar y vamos a decir, Hey, actor de hilado hilado SP AWN Bien, actor hilado de clase, y queremos seleccionar la clase como X swing at box. Bien, x columpio. Caja. Y luego cuanto a la c para obtener la ubicación, todo lo que queremos hacer es obtener la ubicación del swing del hacha, la arrastraremos por aquí, y luego queremos obtener una ubicación salvaje de eso. Oh, vete, vete. Arrastre esto hacia atrás. Obtener ubicación mundial. Bien, ahí queremos obtener su ubicación, y esa va a ser su transformación. Bueno, bueno, bueno, bueno, bueno. Grafica esto por aquí. Y si no recuerdo bien, sí, va a dulce convertirlo en vector. Entonces aquí estamos. Entonces eso es esencialmente todo lo que queremos que haga, ¿de acuerdo? Ahora, todo lo que hemos hecho es configurarlo para que se mueva al alcance de ataque del jugador detectado. Una vez que esté en el rango, va a generar inmediatamente el columpio x en la caja Ahora, para asegurarse y probar que esto está funcionando correctamente. Sí, ahí está. Es desove en esa caja de calor. Es engendrarlo de inmediato. Pero lo que vamos a hacer ahora es que vamos a ir a la caja de calor x swing. Vamos a aumentar su escala a uno. Bien. Hmm. Tamaño razonable de tamaño razonable. Creo que ese es un tamaño razonable para el hit box. Ahora, solo para hacer una doble comprobación rápida, esta es la animación. Ahora, déjame volver al plano del enemigo cuerpo a cuerpo. No, vamos a volver a eso ahí. Entonces sobre esto es el hit box en estos momentos. Entonces volvamos al enemigo cuerpo a cuerpo. Redujamos el rango en el que va a parar. Ahora mismo está en 300 unidades. Reduzcamos eso solo a 150. Vuelve a entrar, haz otra prueba rápida. Bien. Entonces aquí es donde se detiene el hit box. Ahora, volveremos a la caja de golpes x swing. Vamos a cambiar las propiedades de esta esfera y vamos a ir a colisionar. Y ahora mismo está configurado para bloquear todo dinámico. Vamos a configurarlo como solapamiento, todo dinámico. Haz una compilación rápida. Veamos cómo se ve eso ahora. Bien, entonces se superpone. Entonces una vez que se mete en 150 unidades del jugador, lo hace. Esto es bueno. Esto es bueno. Eso es suficiente daño. Ahora bien, esa es una posición lo suficientemente buena para que inicie el ataque. Ahora que tenemos eso, agreguemos también en el código para reducir las del jugador. Ahora con el ánimo de acelerar nuestro desarrollo, he vuelto al ataque con espada del jugador, y luego básicamente voy a copiar todo este código, copiarlo, ir al columpio X, y luego simplemente pegarlo aquí. Ahora, claro, este código no va a funcionar desde adentro aquí, pero nos va a mostrar cómo hacer todo. Así que recuerda, todo lo que está haciendo es en componente comenzar a superponerse. ¿Bien? Pasa a lo que quieras que haga daño, aplica el daño y luego destruye al actor o en evento t que es un fotograma, destruye al actor. Ahora, estamos haciendo algunos cambios. Para empezar, el daño podemos vivir igual por ahora, eliminaremos el elenco para atacar el daño que no sea necesario, y eliminaremos la superposición del cubo. Todo lo que necesitamos es aplicar daños, destruir al actor, y en caso de que destruya al actor. Eso es todo lo que necesitamos. Ahora con solo eso nos dirigiremos a la esfera. Añadiremos el evento y lo llamaremos en componente begin overlap. Este evento ya se ha agregado en. Hemos agregado en el componente de superposición. Ahora, a partir de aquí, lo que queremos comprobar y ver, Oye, por casualidad, estamos pegando al héroe. Así que empieza con el elenco básico a héroe. Es decir, si estamos pegando al personaje jugador, eso es lo que queremos ver si nos estamos superponiendo. Entonces, si ese es el otro actor, eso es bueno. Como héroe, vas a actuar como el actor dañado. Y aquí vamos. Entonces esto esencialmente debería ser todo lo que necesitamos para que haga daño correctamente. Entonces en componente comienzan a superponerse, es la esfera. Es esa caja de calor x swing, estamos lanzando al héroe, aplicando diez puntos de daño, y ese es el actor de daño. En realidad, aumentemos este daño. Diez puntos es un poco tacaño. Aumentemos el daño a 25, ¿de acuerdo? Solo para ti idea x swing. Eres especial. Ahora, vamos a compilar. Con eso compilado, volvamos a ver si está funcionando correctamente. Ah, ahí estamos. No está mal. Ahora, claro, lo hizo varias veces, que no es lo que queremos. Pero puedes ver que sigue desove en esa caja de calor y está matando a nuestro jugador. Eso es bueno. Eso significa que nuestro swing de hacha está funcionando correctamente, más bien el swing en caja está funcionando correctamente. A continuación, ahora vamos a asegurarnos que en lugar de que desove de inmediato, el enemigo vaya a pasar por todo el ciclo de animación de su ataque y desove en esa caja de calor de oscilación de hacha única Durante el ataque, vamos a conectar el desove de la caja de sombrero de ataque a la animación Hagámoslo en el siguiente video. 70. 67 Vinculación de la animación de ataque con código para un enemigo cuerpo a cuerpo: Entonces ahora que hemos agregado en el cuadro de golpe de daño básico para el enemigo cuerpo a cuerpo, ahora asegurémonos y configurémoslo que cuando el enemigo cuerpo a cuerpo esté atacando, juguemos esa bonita animación de ataque ¿Dónde está eso? Sí, esta animación. ¿Bien? Esa agradable animación de ataque de barrido. Entonces, dentro del plano NEM cuerpo a cuerpo, queremos crear una nueva variable Ahora, dentro de las variables, agreguemos una variable llamada x swing attack. Y luego agregaremos otra variable. Bien. Y vamos a llamar a esa variable está atacando. Ahora bien, estos dos booleanos van a hacer algo muy, muy básico Ahora, el ataque x swing lo vamos a configurar para iniciar la animación x swing y luego E atacando le va a decir a la IA que actualmente está decir a la IA que en una animación de ataque o en estado de ataque, y vamos a estar usando eso más adelante para ajustar parte del comportamiento de la IA. Una vez que hayas agregado esos dos Bolans, todo esto va a tener mucho sentido una vez que entremos en el código A continuación, tenemos nuestro repunte en box. Entonces lo que queremos es configurarlo para que esto sea para detener todo movimiento activo. Agreguemos esto justo después de detener todo movimiento activo. Pero antes de desovar en el ataque con espada, obtendremos el ataque de swing de hacha Arrastra esto por aquí. Queremos establecer x swing attack, y queremos ponerlo en. Entonces estamos encendiendo el ataque de swing de hacha, bien. Y cuando el ataque x swing está encendido, lo que queremos es que queremos conseguir es atacar Bien. Y queremos establecer está atacando. ¿Bien? Entonces aquí estamos. Querer set está atacando. Pero donde queramos esto, trae esto aquí. A ver, el set está atacando. Vamos a arrastrar esto por aquí. Entonces vamos a establecer está atacando justo por aquí. Entonces de inmediato, dijimos, Oye, estamos atacando la IA está atacando, y debería usar el ataque x swing. Esa es la línea de base. Ahora, para evitar que esto se vuelva a reproducir varias veces, quería jugar una vez, vamos a esta rama Bien. Y vamos a crear otra sucursal justo por aquí. Ten en cuenta, estamos usando las sucursales aquí solo por simplicidad, ¿bien? Ahora bien, lo que vamos a prepararlo es justo por aquí. Así que justo después de detectar al jugador si el enemigo cuerpo a cuerpo está en el rango de ataque correcto, vamos a conectarlo aquí arriba Y entonces si esto es falso, lo hará. ¿Bien? Si es falso, va a continuar y hacer atacar al jugador cuando esté en alcance. ¿Bien? Permítanme avanzar un poco esto porque necesitamos extenderlo mucho, extenderlo. Seguimos agregando más y más código. Entonces fundamentalmente, si el jugador está atacando, si el jugador no está atacando, va a llevar todo esto a cabo, y se fijará está atacando a sí, y hará el ataque de swing de hacha, y va a engendrar en la caja de golpe, ¿bien? No obstante, si es falso, no debería hacer nada. Ahora, vamos a conseguir el ataque. decir, vamos a conseguir el ataque, lo arrastraremos hasta aquí, y lo conseguiremos, y lo conectaremos aquí. Por lo que sólo debe jugar una vez. Ahora, vamos a tener una visión general rápida antes de hacer algunas pruebas básicas. Se comprobará al jugador si el jugador está en el rango adecuado para atacar. Si definitivamente no está atacando ya, ahora llevará a cabo todo ese código, pero se configurará para estar atacando y pondrá el ataque de swing C en positivo, y se generará en esa caja de calor Ahora, solo con todo en su estado actual, entremos rápidamente al nivel de desarrollador, y lo hizo. Observe la pérdida de salud del jugador. Entonces hagámoslo. Boom, el jugador ha perdido 25% de salud. Entonces está haciendo eso y lo ha hecho una vez. Antes estaba creando múltiples cajas de hit, ahora lo está haciendo una vez. Eso es lo suficientemente bueno para comenzar. A continuación, agreguemos en la animación. Entonces iremos al plano de animación cuerpo a cuerpo. Iremos al gráfico de animación, e iremos al interior del estado enemigo cuerpo a cuerpo Entonces en este momento está configurado en inactivo y puesto a trabajar. Ahora, todo lo que tenemos que hacer es crear un nuevo estado de animación. Y en su lugar llamaremos a esa animación. Vamos a llamarlo x swing. Vamos a llamarlo x ataque de swing. ¿Bien? Sólo lo llamaremos X ataque swing. Entonces arrastraremos del inactivo al ataque del swing del hacha, y arrastraremos de trabajar a realmente. Ni siquiera necesitamos arrastrar del trabajo. La razón por la que eliminamos que solo nos conectaremos de inactivo. Y la razón por la que solo necesitamos conectarnos de ralentí es porque la IA siempre se detiene por completo antes de que inicie el swing del hacha. Ahora, cuando miramos el código, Observe que primero detiene todo movimiento, y luego inicia el está atacando. ¿Bien? Lo que significa que en ese punto, su velocidad de movimiento debe ser cero. Así que no tenemos que preocuparnos por hacerlo desde el trabajo porque los jugadores trabajan. Pero em es generalmente, los detienes muertos, aunque sea por una fracción de segundo y luego reproduce las animaciones de ataque. Ahora, hagamos doble clic en x swing, y simplemente queremos jugar ataque desde aquí. Bien. Y verás que esta animación se llama ataque. Ahora, dentro del plano ahora que está listo para jugar el ataque, lo que necesitamos es la condición que lo mueva de inactivo a ataque, y la condición se pondrá como enemigo cuerpo a cuerpo Entonces queremos comprobar x ataque swing. Estamos recibiendo x ataque swing, y queremos ver, oye, es esto exactamente igual a Bien. ¿Esto es exactamente igual a sí entonces juega la animación de ataque x swing? Eso es todo lo que va a hacer. Actualmente todavía tenemos una manera volverlo a pasar de x swing a inactivo, pero solo queremos probarlo. Ahora está haciendo la animación x swing. Mira eso. Mira cómo está cortando al jugador enemigo. Ese es un buen esqueleto evo. Buen pequeño eoskeleton. Bien hecho. Ahora, ahora que está configurado para hacer eso, ahora necesitamos simplemente conectar el desove in de ese daño a un fotograma de animación, lo cual es bastante simple Entonces entraremos en melemy y vamos a conseguir que veas desovar al actor del hit box, y vamos a crear un evento personalizado Bien. Entonces estamos agregando en un evento personalizado. Llamaremos a este evento de simplemente lo llamaremos Axe swing eso es todo lo que vamos a llamarlo. Ahora que tenemos ese evento, vamos a arrastrar todo este código de engendrar a este actor en box, y lo conectaremos desde aquí, y luego volveremos por aquí y romperemos ese vínculo, ¿de acuerdo? Entonces, lo único que va a abarcar en la caja de calor real es este evento personalizado x swing. Bien. En realidad, vamos a cambiarlo porque X swing no es suficiente. Vamos a llamarlo X swing hit box. ¿Bien? Así es como lo vamos a llamar. Y luego, claro, como Good Little Citizens, vamos a agregar en un cuadro de comentarios, y lo vamos a llamar vamos a escribir el comentario, spawn en X swing at box para que podamos saber fácilmente lo que está pasando Entonces con ese evento aquí, si volvemos al nivel, Observe que ahora no está haciendo daño porque se ha eliminado el cuadro de aciertos. Ahora, volvamos al plano de animación. Y lo que vamos a hacer es que nos vamos a encabezar, veamos. No, tenemos que entrar en la fuente de animación. Aquí estamos. Entraremos en la animación de ataque y vamos a reproducir rápidamente la animación de ataque. Bonito. Ahora, vamos a repasar, ¿verdad? Aquí, boom, ahí mismo cuando hace la chuleta. En el lugar donde haga la chuleta, vamos a agregar una notificación. Vamos a agregar una nueva notificacion y vamos a llamar al nombre de notificacion xSwinghtBx Ese es el nombre de la notificación. Ahora que esa notificación está configurada, volveremos al Blueprint de animación Me Enemy Pasaremos a la notificación. Ahí está xSwinghtBx que es bueno, y luego arrastraremos Ponte como enemigo cuerpo a cuerpo, y luego lo arrastraremos, y luego queremos usar la caja de sombreros x swing Por eso es importante nombrar todo de una manera que tenga sentido Así que no necesitas pensar demasiado en lo que estás haciendo. Simplemente es fácil. Entonces sabemos que esta es la x swing it box, y aquí está. Así que con solo esa configuración, vamos a compilar y ahora vamos a jugar. Boom, boom, está haciendo daño. Boom, daño otra vez. Boom, uh, el jugador está muerto. Bonito. Y eso es con nosotros. Entonces tenemos a Sepuldon. Hagamos de nuevo esta salida. Yo mato al jugador, mato al jugador. Bueno. Entonces el jugador está muerto. Ahora, la razón por la cual. La razón por la que esto funciona de manera tan efectiva y recomiendo todos estos métodos es porque hemos separado la posición de la animación hit box. Hemos separado la animación de los daños. Todo está separado para que podamos ajustarlo por separado. A lo mejor quieres ajustar el hit box, puedes ajustar eso. Puedes ajustar la animación y cambiar donde se extiende el hit box Esto es simplemente un buen diseño de juego en general, lo recomiendo encarecidamente. De todas formas, así que ahora que lo tenemos configurado para que el enemigo pueda ir realmente hacia donde está el jugador y comenzar a infligir daño. Lo siguiente que queremos es hacer un par de ajustes. Ahora, te darás cuenta cuando yo oh chasquido, realmente está tratando de venir y simplemente seguir atacando Aviso cuando estoy huyendo, sigue reproduciendo esa animación. ¿Bien? No queremos que esté haciendo eso. Queremos separar el movimiento de cuando hace el ataque. Queremos agregar un poco de retraso cuando el enemigo decida hacer diferentes acciones. Esa es la mejor manera de tener una buena IA en tu juego. Hagámoslo en el siguiente video, algunos ajustes de IA. 71. 68 Cómo agregar la función de reajuste del estado de ataque: Todo bien. Entonces, ahora que tenemos nuestra IA capaz de entender cuándo está atacando, ahora solo estamos haciendo algunos ajustes de tiempo, ¿de acuerdo? Entonces no es solo como correr por ahí haciendo lo que quiera. Bien. Entonces, antes que nada, enemigo cuerpo a cuerpo , ubicación ascendente, colisión, superposición todo dinámico, bien, no sé con qué nos estamos encontrando Pero hay algo con lo que nos encontramos, sí, el flipbook de papel que configuró para bloquear todo lo que lo estoy configurando para que se superponga todo lo que debería resolver el problema Ahora puedo, no sé qué está causando eso. Mm. Bien. No me gusta eso no me gusta lo que hacen las cámaras. Alternativamente, eso podría ser una cosa de personaje héroe. Entonces voy a ir a la cámara del héroe, la cámara, y luego a verificar su colisión. A ver. Bien, chequeado dos veces. No es la cámara. Es el brazo de resorte. Esa es la primavera. Voy a salir. En este momento está haciendo una prueba de colisión. Lo he desactivado durante la prueba de colisión. Quiero asegurarme de que esto se haya detenido. Bien, mucho mejor. Mucho mejor. Yo prefiero esto. Bien, así que sólo podemos correr a través de la gente. Camino vete, vete, vete, vete, bien. Eso está bien. En fin, eso fue solo una cosa rápida. Ahora, fundamentalmente, queremos que el movimiento y las acciones de la IA hagan que la falta de una palabra mejor, un poco más de sentido, ¿de acuerdo? Así que esto es lo que vamos a hacer, ¿de acuerdo? Cuando la IA se mueve y comienza a atacar al jugador, vamos a hacer una doble comprobación básica de la distancia al jugador desde el peón Y luego una vez que supera cierta distancia, asumimos que el jugador está huyendo o ha salido de la distancia donde puede ser atacado. Y luego en ese punto, vamos a desactivar la animación de ataque. Bien, esa es la visión general. Entonces entraremos en el enemigo cuerpo a cuerpo. Vendrá por aquí. Y luego justo aquí alrededor del rango de movimiento al ataque, justo después del simple movimiento a la ubicación, ya que está haciendo su movimiento a la ubicación cosa, luego lo siguiente que va a hacer, en realidad, lo primero que va a hacer, lo arg esto por aquí Bien, entonces vamos a hacer una simple comprobación. Va a hacer una simple revisión de sucursal. Y dentro de esta rama, vamos a preguntar si estaba atacando. ¿Bien? Vamos a conseguir está atacando. Es decir, ahora mismo, el jugador se ha movido fuera del alcance de ataque, pero la IA sigue atacando. Bien. Entonces como seguía atacando, lo primero que queríamos hacer es que queremos establecer x ataque swing. No, entonces, ¿por qué me está mostrando todo eso? Sí, aquí estamos establecidos x ataque swing off. Bien. Ahora que hemos establecido x swing attack two off, espera, vamos a arrastrar esto un poco más, dale un poco más de espacio. Justo después de establecer el ataque X swing off, va a hacer el simple movimiento a la ubicación. No obstante, si no estaba atacando, entonces todo lo que va a necesitar hacer es trasladarse a la ubicación. Es una lógica básica de código simple. ¿Bien? Muy básico. Entonces volvamos al plano de animación cuerpo a cuerpo, al gráfico de animación, al estado enemigo cuerpo a cuerpo Entonces vamos a venir aquí y vamos a conseguir el ataque x swing. Bien, y primero lo dejaremos como está. Ven aquí, principalmente animación de anime, bla, bla, bla, bla, bla Principalmente animación, obtendremos el ataque x swing. Y para pasar del ocioso al swing del hacha, todo lo que tiene que ser es x swing ataque es igual a verdadero. No obstante, para pasar de x ataque swing a inactivo, lo que queremos es que consigamos al enemigo cuerpo a cuerpo Queremos obtener x ataque de swing. Bien, estamos recibiendo el ataque x swing. Y también, vamos a conseguir que la A atacando Bien. Y entonces lo que queremos hacer es verificar dos cosas. Para empezar, queremos decir igual a. Quiere verificar si el swing ataque más bien. Quiero ver vamos a ver. La lógica tiene que ser apretada. La lógica tiene que ser apretada. Si el ataque Aswing es falso, puede entrar en esa transición Hagamos un chequeo rápido. Bien, ahora se ha detenido. Bien. Pero está creando otro problema. No va a volver a la animación. Entonces fíjate aquí, está atacando. Bien. Reiniciar, está atacando. No obstante, si está atacando y salimos del alcance de ataque, cuando vuelve al alcance de ataque, boom, ya no es capaz de atacar. Bien. En serio debería dejarme desactivar estas notificaciones de disco Bien, así es como está funcionando ahora mismo, y luego cuando huyes, las animaciones funcionan correctamente. Ahora bien, para que esto funcione, esto es exactamente lo que hay que hacer. F arrancadores dentro del enemigo cuerpo a cuerpo, lo vas a organizar para que justo después me dejes acercar correctamente Justo después de hacer el chequeo de distancia, nos bifurcamos y comprobamos y vemos si la condición de ataque es pulso, seguirá haciendo el movimiento. Esto es para garantizar que solo comience moverse después de que la animación de ataque se haya jugado en cuatro. A continuación, asegúrate, claro, ahí está la rama normal está atacando. Ahora note al final del inicio del código de animación de ataque, bien, yo atacando está configurado en sí, y el ataque CSWing está configurado en sí Ahora encima de eso, vas a agregar en un estado de ataque de reinicio simple. Comenzaremos con un evento personalizado llamado reset de estadísticas de ataque. Y dentro de eso, se restablece está atacando stat, y el ataque cswing también se vuelve a estar apagado Y eso está justo dentro del plano del enemigo cuerpo a cuerpo. Y luego dentro de la fuente de animación, ¿de acuerdo? Vaya a la animación de ataque y al final, agregue una notificación conocida como reinicio de estado de ataque. Una vez que esa notificación, esa notificación, por supuesto, se configura al final de la animación, al final mismo. Después de configurar esa notificación, entra en el plano de animación para el enemigo cuerpo a cuerpo Y bajo el notificador de reinicio de estado de ataque, agregue en recibir notificar reinicio de estado de ataque, por lo que llamará a esa función de reinicio de estado de ataque Y una vez que tienes todo ese conjunto, ahora cuando el enemigo se acerca al jugador, es capaz de hacer el ataque, pero el jugador es capaz de huir. Bien. Ahora, en el siguiente video, vamos a hacer un cambio sencillo porque ahora el jugador puede simplemente avanzar y ya no es capaz de hacerlo como puedes ver, el jugador ya no es capaz de recibir ningún daño desde aquí mismo, y el enemigo solo se da la vuelta después de que el jugador se mueve una cierta distancia. Queremos ajustarlo para que el personaje enemigo esté siempre orientado hacia la dirección del jugador. ¿Bien? Boom, no, hagámoslo. Bien, eso es bueno. Hagámoslo. Poco ajuste en el siguiente 72. 69 Impedir que el jugador pueda ejecutar IA: Bien, por lo que queremos evitar que el jugador simplemente chesing todo corriendo a través de nuestros enemigos Entonces, una forma sencilla de hacerlo es que la colisión cápsula está configurada actualmente en el preajuste de colisión de peón Básicamente podemos configurarlo en algo tan simple como bloquear toda la compilación dinámica, para que no interrumpa el diseño de niveles Asegúrate de que esto realmente tenga que estar en el suelo. No me gusta su posición cuando está afuera o ahí. Entonces ahora el jugador no puede simplemente atravesar al enemigo, el jugador tiene que saltar por encima Pero ahora con solo ese cambio, seleccionemos el personaje. Bien, ese es nuestro héroe. Selecciona el movimiento de su personaje, selecciona salto. Actualmente, la velocidad de salto Z se establece en 840. Vamos a aumentar eso a 900. Bien. Hagamos un chequeo rápido. Sí, eso es estúpido. 909,000 centímetros/segundo no es lo que queríamos. A ver. Vamos a poner eso a 9 metros/segundo. A veces Unreal Engine, a veces Unreal Engine cambiará los números de una manera que no tiene sentido para mí Ha habido mejores flujos, sólo una variable. Pero de todos modos, así que ahora somos capaces de saltar sobre el enemigo, pero no podemos queso y simplemente empujar a través de bulldoze a través del ¿Bien? Eso se estaba volviendo un poco salvaje. Entonces ahora que está arreglado, podemos movernos 73. 70 Cómo nerver a la IA del enemigo cuerpo a cuerpo: Todo bien. Entonces en el estado actual, tenemos un simple enemigo cuerpo a cuerpo que atacará al jugador Bien, está subiendo y atacando al jugador. Lo cual es bastante razonable. Bien. Eso es genial. No obstante, fíjate que cada vez que ataca, inmediatamente comienza a perseguir al jugador de nuevo. Queremos incorporar las cosas en la IA después de que haya hecho algo, dejar que disminuya un poco la velocidad y retrasar su siguiente acción para darle al jugador un poco más de tiempo para reaccionar. Entonces entremos en el enemigo cuerpo a cuerpo, y ahora vamos a separar mucho más de sus habilidades Para empezar, Clear es visible. Esa cadena, vamos a deshacernos de ella. No lo necesitamos actualmente. Y lo siguiente que vamos a hacer es dentro del nivel. Vamos al rango de visibilidad nerfs, así que esto va a ser mucho más claro Entonces estoy seleccionando su detección de jugador. Y voy a Nerf su rango de detección. Actualmente, está establecido en un radio de sitio de 1,000. Voy a nerf el rango de detección, su radio de visión hasta 600 Bien. Sólo para hacer mucho de lo que más está pasando, un poco visible. ¿Bien? Entonces ahora, el jugador necesita estar dentro de las 600 unidades. El siguiente NaF que se le va a dar es que vamos a conseguir su velocidad de movimiento, ir al movimiento del personaje Y luego busca la velocidad. Por lo que su velocidad máxima de trabajo es actualmente de 600. Vamos a bajarlo a 450. Bien. Entonces cuatro 50 centímetros/segundo, lo que significa que ahora es significativamente más lento que Entonces detecta al jugador, pero el jugador puede saltar fácilmente sobre él y huir. Observe que el jugador está a punto de huir. Ahora viene hacia el jugador, pero lo hemos ralentizado. Estos son nerfs básicos de simplificación, bien, porque nunca quieres que esto nunca quieras, ya sabes, que tu enemigo sea excesivamente difícil para el jugador Entonces hay que notar que necesita ponerse al alcance, luego ataca, necesita meterse en rango, luego ataca, pero el jugador puede huir. El jugador puede huir antes de que se haya jugado su animación de ataque. ¿Bien? Entonces esos son solo algunos nervios básicos. Entonces el nervio de velocidad de movimiento y la animación ya son lo suficientemente lentos como para que el jugador pueda realmente contrarrestarlo razonablemente huyendo. ¿Bien? Esto es solo para darle un poco de potenciación a los jugadores Y ahora que eso está hecho, entremos y hagamos que cada vez que el jugador ataque al enemigo, el enemigo inmediatamente se vaya a quedar aturdido para que el jugador pueda simplemente hacer su triple ataque con espada y sol al enemigo hasta la muerte Vamos a entrar en eso. 74. 71 Animación de muerte para IA y un poco de teoría lógica: Entonces ahora que tenemos un par de cosas basales funcionando, lo que realmente queremos ahora es para empezar, cuando el jugador hace daño al enemigo, no queremos que sigan atacando. Básicamente es un poco suficiente. Queremos que entren un poco de hit stern para que el jugador pueda realmente sacar su combo. Ahora sabemos que para hacer eso, necesitamos agregar algo de animación de estado de calor a nuestros pequeños sklebons Entonces entremos en nuestro enemigo cuerpo a cuerpo en el arte, y queremos buscar esqueleto muerto Bien, y el esqueleto golpeó. Ahora bien, si nos fijamos en el calor del esqueleto, básicamente está preestablecido con, como , Oh, se le ha llevado un poco de daño por calor, y luego vuelve a estar inactivo. Es una animación básica de it. Bien. Así que volvamos aquí. Entonces ahí esqueleto golpeado y luego esqueleto muerto es el esqueleto cayendo sobre. Bien, ahí lo puedes ver. Esqueleto básicamente cayendo. Ahora, solo por el bien de tener una buena lógica, solo vamos a usar el esqueleto muerto para esta animación. ¿Bien? Entonces seleccionaremos el esqueleto muerto y lo configuraremos acciones de sprites Queremos extraer todos los sprites. Ahora puedes ver todos los sprites que están aquí cuando acercamos el zoom. Hay múltiples sprites. Pero vamos a sacarlo de auto y ponerlo de nuevo en la grilla. Ahora son uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez, 11, 12, 13, 14, 15 animaciones diferentes. Entonces necesitamos dividir el ancho de celda por 15. Así que abramos nuestra calculadora muy rápido. Entonces 495/15 es 33. Entonces haremos el ancho de celda 33 píxeles, extraeremos esos sprites. Y entonces vamos a crear un flip book, y lo vamos a llamar. Lo llamaremos muerto. Lo llamaremos muerto, ¿de acuerdo? Entonces esta es la animación actual de muertos. La puedes ver ahí, 15 películas por segundo, ¿de acuerdo? Esa es la animación. ¿Bien? Eso es genial. Así que déjame hacer una pausa y pasar cuadro por cuadro. Para que veas que empieza por volverse blanco, ¿de acuerdo? Se vuelve blanco. Entonces como que retrocede un poco y luego se derrumba. Entonces aquí es donde entra la lógica. Lo vamos a configurar para que alrededor del cuadro seis, antes de que empiece a desmoronarse, vamos a hacer una revisión básica de la salud. Si la salud es buena, volverá a volver a estar inactiva, ¿de acuerdo? No obstante, si la salud es cero o más bien es cero o menos que cero, se desmoronará, y ese será el final de nuestro pequeño y agradable esqueleto enemigo cuerpo ¿Bien? Entonces ahora tenemos esta animación. Juguémoslo primero. Por lo que está configurado para moverse a 15 cuadros por segundo. Pero creo que tenemos que ralentizarlo un poco o ralentizarlo a unos 20 fotogramas por segundo. Ah, eso lo está acelerando. Disculpas. Vamos a ralentizarlo a unos diez fotogramas por segundo. Entonces está tomando un golpe. Está tomando un golpe. Está tomando un golpe. Bien. Pongámoslo de nuevo a 15. Regresaremos más tarde basándonos en cómo se ven y se sienten las cosas. Ahora que hemos configurado esa animación, volvamos a nuestra fuente de animación, y queremos agregar una nueva secuencia de animación, y llamaremos a la secuencia de animación, papá. Nosotros lo mantendremos, ya sabes, limpiaremos los nombres, mantendremos los nombres limpios. En cuanto a los datos de animación, estamos buscando muertos en flipbook Entonces esta es la animación de muertos vivientes. Mira eso. Bastante genial. Ahora que se terminaron configurando la animación aquí, volvamos. Volvamos y echemos un vistazo rápido. Volvamos a nuestro enemigo cuerpo a cuerpo. Bien, volveremos a pensar aquí, Gráfica de animación. Vamos a entrar en el plano de animación para el enemigo cuerpo a cuerpo Selecciona al enemigo cuerpo y ahora queremos tener un nuevo estado de animación Y a este estado de animación se le va a llamar papá. Alejar. Alejar, volver atrás, cambiar el nombre. Se llama muerto. Y lo vamos a arrastrar aquí. Así que de inactivo a x ataque swing, podemos ir inmediatamente a muertos, ¿de acuerdo? Y muertos, vamos a tener el tipo de animación play dead, así que empezará a reproducir la animación de muertos. Bien, eso es realmente lo que va a hacer. Vamos a compilar rápidamente. Ahora no está vinculado a nada. Lo siguiente que vamos a hacer es vincularlo y configurarlo para que juegue en cualquier momento que el enemigo tome 75. 72 Cómo hacer visible la barra de salud de IA y algunos ajustes antes de avanzar: Todo bien. Ahora, por el poder del viaje generalizado en el tiempo, ahora mismo, el jugador puede atacar al maniquí de ataque y su salud eventualmente llegará a cero ¿Bien? Aún no está configurado para morir, pero somos capaces de atacar el ataque más bien de atacar al enemigo y bajar su salud. Se han cambiado un par de cosas. Número uno, por tu ataque con espada del jugador, cambia su daño base de aproximadamente 25, aumentarlo a 40, que esté haciendo más daño. Y luego para que el hacha oscile la caja, baje el daño a uno. Esto es solo para que podamos hacer algunas pruebas sin que asesine al jugador súper rápido Eso es más o menos lo que hay que hacer para eso. A continuación, dirígete al enemigo cuerpo a cuerpo y crea un nuevo comentario A este comentario se le va a llamar cabezas stater al recibir daños, pero queremos asegurarnos de que lo configuramos para que el enemigo realmente tome daños visibles porque quieren que se muestre su mala salud Para que se muestre la mala salud, lo primero que hacemos es volver al widget, volver al widget y configurarlo para que sea visible. Configúrelo para que sea visible verdadero. Una vez hecho eso, lo siguiente es ahora organizar y configurar estos planos Dentro de ese comentario, comenzamos con un evento cualquier daño, y luego una variable golpea stan y haremos una cadena básica de impresión de hey daño se está haciendo. Y luego vamos a crear otra cadena de impresión, que va a teclear el daño más bien a escribir la salud del enemigo. Ahora, si volvemos, ahora mismo, nota que estás viendo a dammi Salud aquí Para tener eso revelado, dirígete dentro del My Blueprint y hay un ajuste y luego muestra las variables heredadas porque la variable DamiHalth está siendo heredada de la Ahora, aquí usamos mucho la salud de Dami. Para empezar, obtendremos la salud dammi, y restaremos la cantidad de daño del evento cualquier Entonces lo restamos por simplemente haber establecido dammi salud. Hay una resta pasando. Esa es nuestra nueva salud dammi. Una vez que terminamos con eso, venimos y obtenemos el widget del enemigo cuerpo a cuerpo y lo arrastramos hacia afuera. Y luego obtenemos el widget desde su interior, que es, por supuesto, dammi health bar Y una vez que lo hayamos lanzado a la barra de dammi Salud de aquí, como barra de salud de dammi, vamos a por supuesto, apuntar a la barra de progreso de dammi Salud, y la pondremos como el porcentaje de 100 haciendo el porcentaje establecido la barra de progreso de dammi Health, y estaremos usando el DamiHalth dividido por 100, y esa será la salud que Y con toda esa configuración, tendrás al jugador capaz de hacerle daño al enemigo y podremos ver bajando la barra de salud. Con toda esa configuración, pasemos ahora a sumar la lógica de Hit Stern. 76. 73 Melee Enemy Hitstun y Death todo en uno: Ahora, para agregar en el stater de cabezas en el juego, cuando estemos dentro del Blueprint enemigo cuerpo a cuerpo, note que en cualquier daño, configuramos esta variable llamada heads stan, y la hemos configurado para que sea verdad Ahora, ahora que tenemos esa configuración, vamos a entrar en el Blueprint de animación Me Enemy, y lo vamos a configurar para que desde el ataque de swing de Axe, pueda pasar a la animación de muertos, y todo lo que necesitamos es AsmLeeenmy Queremos checar headstan Get está en hits. Queremos verificarlo bajo igual. Bien. Esto lo hemos hecho varias veces. Esto debería ser fácil para ti ahora. Y siempre y cuando los hits sean iguales a positivos, puede pasar de atacar de nuevo a, ya sabes, reproducir la animación de muertos. Entonces hagámoslo. Entonces te estoy atacando. Entonces ahora está haciendo la animación de muertos. Observe, una vez que se golpea una vez, está atacando, está atacando. Pero una vez que se golpea una vez, reproduce la animación muerta. ¿Bien? Eso es genial. Ahora eso está perfectamente bien. Sin embargo, volvamos al plano de animación. También queremos que pueda pasar de la animación muerta de nuevo a la ociosa. Pero vamos a configurarlo así. Ahora la razón por la que pasa de x balanceándose Bien, de nuevo a muerto. Y la razón por la que también debería poder pasar de inactivo a muerto, lo configuraremos más tarde es porque de inmediato está dentro del rango de cleartack, comienza a hacer el swing x Pero le pegamos, empieza a reproducir la animación muerta, y esa animación es esa animación de que colapsa Pero no queremos que siempre reproduzca la animación de muertos si aún no está realmente muerta. Entonces vamos a venir aquí. Veamos uno, dos, tres, justo antes de que empiece a colapsar. Alrededor del final del quinto fotograma, vamos a crear una nueva notificación. Por lo que agregaremos una notificación. Añadiremos una nueva notificación, y la llamaremos MeleEM heads Bien, solo lo estamos llamando cabeza de enemigo cuerpo a cuerpo. Y eso es todo lo que vamos a llamarlo. Ese es el notificador. Ahora que estamos haciendo eso me Enemigo encabeza Stater, ¿de acuerdo? Está revisado por ahí. Ahora entremos al estado y fíjense en mí El headstand enemigo notifica aquí dentro del plano Y lo que queremos hacer es querer arrastrarnos como enemigo. Ahora lo siguiente que queremos hacer es que queremos crear una función. Y lo que va a ser esa función es que va a ser la función dst del enemigo cuerpo ¿Bien? Ahora, de vuelta al plano del enemigo cuerpo a cuerpo, voy a agregar un cuadro de comentarios, y luego vamos a llamar a este bateador help check. Se le puede llamar. Honestamente, puedes cambiar esto de múltiples maneras. A ver, yo llamo a esto Melanem headstart no hay problema. Llamémosme chequeo de salud de jefes. Entonces cada vez que el jugador es cabezas, va a llevar a cabo esto más bien el EM es head stan, lleva a cabo esta comprobación. Entonces vamos a crear un nuevo evento, y va a ser un evento personalizado, ¿de acuerdo? Ahora, sólo para asegurarse de que los nombres son exactamente los mismos, se llama mele ENM hit Stern. Vamos a llamarlo. Vamos a ponerle el nombre por aquí. Mele N golpeó a Stern así que ahora tenemos esa verificación de bateador enemigo cuerpo en lugar de funcionar por aquí, este evento personalizado Ahora bien, ¿qué queremos hacer en este evento personalizado, verdad? Entonces lo que queremos hacer es lo que realmente queremos hacer es que queremos arrastrar en la salud dammi ¿Bien? Entonces queremos obtener la salud de dammi y queremos hacer una revisión básica, ¿de acuerdo? Entonces lo que queremos ver es que queremos ver menos o igual a. Y es menor o igual a cero, ¿de acuerdo? Y luego vamos a hacer una rama básica. Una rama muy básica. Ahora bien, si la salud del maniquí es menor o igual a cero, lo que queremos hacer es quererlo configurarlo para que cambiemos la propiedad de la variable Hetster ¿Bien? Entonces, si la salud del enemigo es menor que cero, o igual a cero, eso significa que el enemigo cuerpo a cuerpo en realidad está muerto Entonces lo que vamos a hacer es si es verdad, es simple, lo dejaremos como está, simplemente lo dejaremos como está. ¿Bien? No obstante, si es falso, lo que vamos a hacer es que queremos poner la cabecera. ¿Bien? Oh, no estoy escribiendo. Ajuste el soporte para la cabeza en el reposacabezas para que esté apagado. Ahora bien, la razón por la que estamos haciendo eso es porque queremos que el stater de cabezas se apague porque queremos que el enemigo salga de la animación del stater de cabezas Ahora, actualmente no va a funcionar porque note ahora mismo que aún no está listo para funcionar. Los golpeé una vez que todavía están en la cabecera. Ahora, para que funcione, antes que nada, necesitamos configurar el evento aquí. Queremos centro comercial headstan enemigo, configurarlo dentro del plano de animación en la notificación Perfecto. Ahora está configurado en el Notificar. Todavía no debería funcionar, pero quiero asegurarse que incluso con el evento, esté configurado correctamente. Bien. Ahora, a continuación, queremos volver al plano de animación en el gráfico de animación, y queremos poder ir mientras pueda pasar de XSwing a muerto, la animación de muertos, queremos también pasar de animación ociosa a la muerta Yo solo voy a copiar exactamente el mismo código del AxSing porque es exactamente la misma lógica cada vez que esté en el headstand, y luego haremos doble clic en la animación dead y en el play dead, vamos a configurarlo para que no En otras palabras, se trata de una animación que sólo se reproduce una vez. ¿Bien? Así que ahora ya no hace bucles. Ahora que ya no está en bucle, vamos ahora puedo pasar de muerto atrás a inactivo en una instancia de donde si bateador es igual a off, volverá directo a Y si bateador es igual a off, puede ir directo hacia atrás. Vayamos aquí a atacar si está apagado. Bien. Por lo que tiene ambas rutas disponibles para ello. Así que vamos a jugar ahora. Observe que ahora, lo tenemos en pie déjenme hacerlo otra vez. Entonces ahora puede atacar. Si le pego, se pone hit start, pero vuelve a atacar y luego es capaz de ir tras el jugador otra vez. Cabezas, y luego se pone de pie. Pero esta vez se juega la animación. Espero que eso tenga sentido. He hecho todo lo posible para describir la lógica completa. Por favor, si nada tiene sentido, regresa y vuelve a ver el video Quiero que esto funcione correctamente, pero más que eso, también quiero que esto tenga mucho sentido. Ahora, entonces el enemigo es ahora matable. Entonces uno, es pie de cabeza, uno, dos, tres, ahora es stand de cabeza, y ahora está muerto. Lo hemos configurado correctamente para que realmente muera correctamente. Ahora, con eso en mente, no queremos que estos policías se queden sentados para siempre. ¿Bien? Entonces lo que vamos a hacer es configurarlo dentro del enemigo cuerpo a cuerpo para que si esta condición de salud dammi es igual o menor que cero es cierta, lo que también queremos hacer es que va a haber un retraso de creo que 0.2 segundos está perfectamente bien, pero creo que eso es un poco demasiado corto Pero entonces simplemente destruiremos al actor, y ese será el yo. Entonces, vamos a compilar esto rápidamente. Compilar bien. No, no, no, compilar. Primero guardemos todos y asegurémonos de que todos los cambios estén correctamente guardados. Esto está compilado. Entonces volvió a golpear, muerto. Y luego, boom, ha desaparecido del mundo. Y esa es una forma general muy sencilla de configurarlo para que el enemigo pueda entrar de cabeza al recibir daños. Bien, pero vuelve a atacar, pero aún puede entrar a Head Stan, y ahora está muerto. Ahora con esa configuración, ese muy buen sistema para Headstart, ahora podemos simplemente avanzar y hacer más ajustes Hay un par de direcciones diferentes a las que puedes ir. Para empezar, ahora podemos hacer exactamente lo mismo por el personaje jugador y configurarlo en Headster Podemos hacer exactamente lo mismo por otros enemigos, ya que la lógica ahora debería tener sentido para ti. Con esta configuración, pasemos a agregar más código a nuestro juego. Y a continuación, vamos a hacer algunas limpiezas y ajustes, hacer una doble comprobación rápida de todo con el enemigo, ajustar algunos de los números, y luego pasar a otro tipo de enemigo para tu 77. 74 Configuración del enemigo en rango: Ahora, para empezar rápidamente con tener un buen enemigo a distancia en nuestro juego porque aquí tenemos al enemigo cuerpo a cuerpo Pero ahora mismo no te necesitamos ahora mismo, así que solo podemos ya sabes, podemos dejarlo en el mundo para volver a visitarlo más tarde, pero por ahora, vamos a borrarlo No lo necesitamos en estos momentos. Pero lo que vamos a hacer es entrar y crear una carpeta completamente nueva, llamar a la carpeta enemiga a distancia y crear dos carpetas en su interior, una llamada animación, la otra llamada arte Ahora, dentro del arte, vas a tener algunos sprites básicos que se te proporcionan dentro de este proyecto, que puedas usarlos para aprender También puedes usar tu propia animación si eres un muy buen artista, y podemos empezar a crear el enemigo a distancia Una vez que tengas esas dos carpetas establecidas, lo siguiente que vamos a hacer es entrar en los personajes. Volveremos al ataque dammi y lo siguiente que queremos hacer es crear un plano infantil, Y vamos a llamar al plano enemigo a distancia. ¿Bien? Vamos a conseguir a ese niño pequeño. Lo vamos a cortar. Y esencialmente quiero moverlo. Veamos, usemos movimiento, quiero usar movimiento. Vamos a venir aquí, lo vamos a conseguir, y lo arrastraremos enemigo a distancia y queremos movernos allá, queremos moverlo Entonces ahora nuestro enemigo a distancia está por aquí. Ahora, cuando haga doble clic en el enemigo a distancia, permítanme traerlo ahora por aquí Aquí tenemos a nuestro pequeño y agradable enemigo a distancia básicamente listo para ir Lo siguiente que vamos a hacer, por supuesto, es que seleccionaremos el cubo que buscaremos colisión. Lo pondremos en ninguna colisión. Y luego en cuanto a visibilidad, haremos invisible porque realmente no necesitamos ese Ube en absoluto. Pero aquí estamos. Hay una barra de salud básica y simple, y el gráfico de eventos en este momento está completamente vacío. Esto es perfectamente bueno para que empecemos. Ahora, ahora que tenemos eso, sigamos adelante y agreguemos la animación de línea base para que podamos tener algo que mirar cuando estemos mirando nuestro arreglado 78. 75 animaciones inactivas simples para el enemigo alejado: Entonces, agregar la animación básica ociosa en el enemigo a distancia va a ser muy similar a como lo hicimos con el enemigo cuerpo a cuerpo Ahora, solo para asegurarnos de que estamos haciendo todo de la manera correcta, abriré el plano del enemigo cuerpo a cuerpo, Ahora bien, en un sentido muy similar, lo primero que vamos a hacer es agregar en un flipbook de papel, ¿de acuerdo Entonces simplemente agregamos y queremos flipbook de papel. Por lo que ahora se agrega el libro volteo de papel. Ahora que eso se agrega, bien. Exactamente igual que dentro del enemigo cuerpo a cuerpo, ¿de acuerdo? Entonces ahora que tenemos el flipbook de papel agregado, lo siguiente que vamos a hacer es agregarle una animación Entonces entraremos en el arte. No, no en el enemigo mele. Vamos a adentrarnos en enemigo arreglado, arte, y tenemos un par de animaciones diferentes, pero queremos la animación ociosa. Entonces, doble clic. Se puede notar que hay uno, dos, tres, o, cinco, seis sprites Bien. Entonces, esencialmente, queremos asegurarnos de que extraemos esos sprites. Ahora, lo que haremos es primero que nada, aplicaremos papel dos configuraciones de textura D. En realidad, vamos a aplicarlos a todo. Bien. Ahora, desde el inactivo, iré a Sprite Actions y seleccionaré extraer Sprite Déjame pasar por eso otra vez. En primer lugar, permítame guardar todo rápidamente. Bien. Así que de inactivo, simplemente haga clic derecho y luego vaya a Sprite Actions y extraiga Sprite como se ha hecho varias veces Ahora note que Engine real quiere entrar y extraer manualmente el sprite No vamos a hacer eso. Vamos a configurarlo como una grilla. Ahora sabemos que son uno, dos, tres, cuatro, cinco, seis, sprites Bien. Entonces lo que vamos a hacer es simplemente calcular que es 750/6, lo que los convierte Entonces haremos que el ancho de celda sea 125. Entonces, en el ancho de celda, lo pondremos 125 por 125. Eso ya lo ve. Eso es genial, ¿verdad? Bien. Entonces ahora que tenemos eso, vamos a extraer. Ahora con todos nuestros sprites extraídos, simplemente crearemos un libro volteo y lo llamaremos a rango M subrayado inactivo Eso es básicamente todo lo que vamos a llamarlo. Veamos ahora la animación inactiva. Es una animación inactiva bastante genial, agradable y sencilla. Con esta configuración de animación ociosa, volvamos al plano enemigo a distancia Nuestro flipbook de papel está aquí y simplemente cambiaremos el flipbook de origen a animación de inactividad enemiga a distancia Ahí está. Entonces ahí está. Ahora bien, si volvemos al mundo, bien, justo al lado de nuestro jugador, simplemente añadiremos un enemigo a distancia Asegúrate de que esté puesto a cero. Bien. Y bueno, tenemos nuestra pequeña dama fantasma enemiga a distancia justo por allá Ella no está haciendo nada, pero en este momento existe en el mundo. Ahora hagamos algunos ajustes. Así que volvamos al enemigo a distancia. Y entonces lo que haremos es, veamos con el enemigo mele, hicimos la escala siete Con el enemigo a distancia, hagamos la escala cuatro para empezar Eso es muy grande, muy grande. A una escala de cuatro, en realidad ya ni siquiera está en el mundo. Entonces lo que vamos a hacer es que primero comenzaremos levantando el posicionamiento de ese libro volteo de papel, para eso. Ahora que lo hemos levantado, compila. Ahora todavía es demasiado grande. Vamos a bajarlo a dos. Y luego bajar la posición de la dama fantasma flotante. Y veamos ahora. Bien, eso no está mal. A las dos, se ve un poco razonable, pero todavía se siente un poco demasiado pequeño. Entonces veamos 2.52 0.5, se ve bien. Se ve bien. Y ahora fíjense si nos paramos dentro, se descasca. Lo que podemos hacer es simplemente seleccionar al enemigo a distancia. Y en el eje de vamos a ver, en el eje Y, podemos simplemente moverlo donde diez unidades. Entonces lo moveremos a digamos diez negativos. Entonces ahora está en el fondo. Entonces no están en el plano exacto de píxeles, y básicamente puedes ajustarlo porque a los diez negativos, ya no están parpadeando Técnicamente, ya no debería parpadear ni siquiera en uno negativo porque estos sprites tienen un grosor de un píxel ¿Bien? Entonces así es como te deshaces de cualquier superposición de píxeles. Esa es una forma bastante simplificada de hacerlo. Bien. Pero ahora tenemos nuestro NEM arreglado con una animación básica de inactividad Ahora, vamos a agregar un simple proyectil que el enemigo a distancia dispara contra el jugador Hagámoslo en el siguiente video, y luego iremos más allá en meternos en más animaciones y vida en ese enemigo a distancia. 79. 76 Generar un proyectil que va a la ubicación del jugador en el lanzamiento: Bien, entonces ahora nuestro enemigo a distancia existe, y puedes golpearlo y recibe daño, pero no puede simplemente recibir daño. Necesita hacerle daño al jugador. Entonces, para asegurarnos de que hace daño al jugador, vamos a crear un objeto que pueda rastrear hasta la ubicación del jugador y hacerle daño al jugador. Ahora dentro de la carpeta enemiga a distancia, similar a como la hemos hecho en todas partes, vamos a crear una carpeta llamada caja de daño, y dentro, vamos a agregar en un plano Dirígete al enemigo a rango. Ese es el enemigo a rango ahora mismo. Crearemos una nueva carpeta y queremos llamarla caja de daño. Dentro de esta carpeta, Bien, dentro de esa carpeta, vamos a crear una nueva clase de blueprint, y solo queremos crear un actor de blueprint Y vamos a llamar a este proyectil enemigo. Eso es todo lo que vamos a llamarlo. Y luego vamos a ahorrar rápidamente. Entonces, dentro del proyectil enemigo, todo lo que vamos a hacer es que vamos a sumar agreguemos en una esfera rápida, ¿de acuerdo? Eso es todo lo que queremos, esta esfera básica. Así que vamos a compilar rápidamente. Entonces ahora, por sí mismo, dejemos caer rápidamente el proyectil enemigo al mundo Probablemente traerlo a alguna parte. Entonces ahí está. Hay una gran mancha por aquí, ¿de acuerdo? Ese es el proyectil enemigo. Entonces lo que queremos es que ese blob necesite moverse hacia el jugador, ¿de acuerdo? Entonces, para que esa esfera se mueva hacia el jugador, entremos en el proyectil enemigo y entremos en su vamos rápidamente a entrar en su gráfica de eventos Pero antes de hacerlo, seleccionamos la esfera. Selecciono colisión y luego selecciono solapar todas las dinámicas para que, ya sabes, esencialmente con la esfera, no pueda saltar a ella y hacer que se mueva alrededor del jugador sin bloquear el espacio. Bien, con esa configuración, vuelve a la esfera, entra en su gráfico de eventos y ahora comencemos a trabajar que se mueva hacia la ubicación del jugador. Bien. Ahora, para darle la cantidad correcta de movimiento, primero vamos a agregarle cierta propiedad, y ese va a ser el movimiento de proyectiles Por lo que ahora hemos agregado en el movimiento del proyectil a la esfera Podemos comenzar a jugar con su movimiento de una manera agradable integrada en el motor real. Ahora las cosas se van a poner un poco matemáticas, pero confío en que con tu conocimiento del motor irreal, ya que has llegado tan lejos en el tutorial, va a tener sentido Entonces, lo primero que vamos a hacer es que vamos a necesitar averiguar la ubicación del jugador, averiguar la ubicación de la pelota en sí, bien, la esfera, e intentar mover la esfera hacia la ubicación del jugador. ¿Bien? Eso es esencialmente lo que queremos hacer para que se mueva hacia el jugador. Entonces esa es la gran teoría general. Bien. Entonces, lo primero que haremos es que empezaremos trayendo movimiento de proyectiles, y queremos que esté aquí y asegurarnos de que esté listo para activarse Bien. Y estamos poniendo esto en el evento start play node. Ahora, el nodo de inicio de juego de eventos es fundamentalmente el primer nodo al que se llama cada vez que el juego tiene este objeto generado en Entonces quiero hacer todo esto en el evento comenzar a jugar. Ahora eso es todo enderezar enderezar la conexión. Ahora que eso está hecho, se activa. Hemos activado el movimiento del proyectil. Lo siguiente que queremos hacer es establecer su velocidad. Quiere establecer la velocidad. Veamos en el espacio, y eso es todo. Quiero establecer la velocidad en el espacio local y notar que es un componente de movimiento de proyectil Déjame coger esto y ponerlo aquí. Ahora estoy pensando, actualmente la velocidad está puesta a cero, cero. Eso es lo que estamos viendo. Vamos a establecerlo en uno en el eje X para empezar, compilar y ver cómo se ve eso. Observe que va hacia abajo. Fresco. Bien, entonces vuelve aquí y lo pondremos en uno, uno , uno por el bien de la simplicidad. Bien. Y así está tratando de moverse, y sigue cayendo por el mundo. Bien. Tendremos que hacer algunos ajustes más grandes. Ahora bien, lo que queremos que sea esta velocidad, no vamos a alearla y globo ocular sobre la velocidad En realidad queremos que tenga un valor específico, que es el valor de la distancia entre el jugador y el objeto mismo. Lo que vamos a hacer es que vamos a conseguir el personaje jugador. Vamos a conseguirlo y después de que lo hayamos conseguido, vamos a conseguir la ubicación. Bien, entonces ahora tenemos la ubicación del jugador. Lo tenemos. Y entonces queremos obtener la ubicación del yo, ¿de acuerdo? Entonces esto es notar el propio objetivo. Eso quiere decir que esta ubicación aquí es la ubicación del propio proyectil Ahora lo que queremos hacer es restar estas dos ubicaciones entre sí Bien. Entonces esto de aquí es esencialmente la diferencia entre estos dos actores diferentes. Y con solo eso, lo siguiente que vamos a hacer es que vamos a hacer una simple multiplicación. Observe que el multiplicador tiene tres coordenadas. Eso es para X, Y y Z, y conectaremos el final de ese multiplicador a la velocidad. Entonces suponiendo que establecemos el factor multiplicador en uno, uno y uno, se va a mover a una velocidad de una unidad por segundo hacia Veamos cómo se ve eso en realidad en el juego. Entonces, dentro del juego, presiona play. Ahora se mueve hacia la ubicación real del jugador. Entonces está funcionando como se pretendía. No obstante, fíjate que va demasiado hacia abajo, eso es algo de gravedad. Entonces para arreglarlo, volveremos al proyectil. Seleccionaremos el movimiento del proyectil. Y después de seleccionar el movimiento del proyectil, lo siguiente que queremos hacer es buscar dentro del movimiento del proyectil, Um, queremos que esto se ponga a cero porque este es un proyectil menos gravedad Si necesitamos empezar a factorizar la gravedad, vamos a tener un problema, bien. Las cosas se ponen muy complicadas y muy fuera de control. Entonces, sin gravedad, echemos un vistazo. Boom, se está moviendo hacia el jugador. Ahora que se está moviendo hacia el jugador, simplemente hagamos que se distraiga al contacto con el jugador, ¿de acuerdo? Ahora bien, la forma más sencilla de hacer que se detenga más bien en contacto es simplemente hacer que, ya sabes, se detenga. Cada vez que golpea cualquier cosa, se destruye. Entonces crearemos un actor de destrucción. Bien. Entonces está este componente de destruir actor. Lo pondremos por aquí. Por supuesto, el objetivo es el yo con el actor de destruir. Y luego dejamos esto aquí y agregamos buscaremos el evento sobre tope de proyectiles Bien. A ver, a ver. Entonces, para llamar a esto, en realidad voy a necesitar dirigirme a Movimiento de Proyectiles Ahí está este evento llamado On Projectiles Stop. Vamos a conseguir eso rápidamente. Entonces ahora tenemos ese evento disponible para que lo usemos, y agreguémoslo rápidamente justo antes del actor de destruir. Bien. Déjame romper este enlace. No creo que esto sea necesario. Vamos a probar rápidamente. Entonces en el tope del proyectil, eso significa en cualquier movimiento, parada del proyectil En cualquier movimiento, parada del proyectil, va a ser destruido Detener. Empecemos. Boom. ¿Bien? Entonces el movimiento no se detiene todavía porque en realidad no se superpone con el jugador haciendo que se detenga. Entonces ahora necesitamos simplemente agregar en una superposición rápida. Entonces ahora que estamos aquí, entremos y digamos: Bien, entonces tenemos esta esfera. La esfera es buena. Agreguemos otra cosa. Vamos a agregar en colisión. Agreguemos en una colisión de esfera. Consigamos la esfera propiamente dicha. En realidad, quiero esto en la raíz por defecto. Entonces esta es la esfera. Redujamos el tamaño de esta esfera. Bien, entonces la colisión está justo alrededor de la esfera. Entonces esta es la esfera uno, no hay problema. Entonces con la esfera uno, queremos agregar en un evento sobre componente comenzar solapamiento. Ese es el evento que queremos sumar. Y lo que queremos hacer es en componente comenzar solapamiento. Inmediatamente vamos a lanzar al jugador más bien ahora mismo lo estamos llamando héroe. Entonces lo llamaremos elenco a héroe. Y ese va a ser el otro actor, ese es el objeto que ha golpeado. Y justo después de que lo haya hecho, destruirá al actor. Ahora que tenemos eso, vamos a compilar rápidamente. Y enseguida le pega al actor. De inmediato me destruyen. Eso es genial, y luego para darle algún daño, para darle algún daño, fíjese como inmediatamente se destruye una vez que está en el personaje del jugador, bueno. Ahora bien, para darle algún daño, todo lo que tenemos que hacer es alargar esto. Y queremos decir, Oye, aplica algún daño, presa algunos daños, lo que sea. Y queremos que el actor dañado sea el héroe. Y digamos que cada proyectil hace 30 daños. Bien. Hagámoslos, compilemos rápidamente y luego presionemos play. Mira eso. El jugador acaba de recibir 30 daños directos a su barra de salud debido a que fueron impactados por el proyectil Entonces ahora tenemos un enemigo básico y tenemos un bonito proyectil que en realidad puede hacer daño al personaje del jugador En el siguiente video, combinemos esos dos juntos para que podamos tener un peligroso enemigo a distancia 80. 77 Configuración del plano de animación para un enemigo de rango: Y ahora que tenemos el proyectil básico, vamos a sacarlo rápidamente del mundo porque no sólo va a estar ahí en el mundo para hacer cosas por sí mismo No, tiene que ser creado por nuestro enemigo a distancia. Ahora que tenemos eso, entremos y agreguemos algunas animaciones adecuadas de lanzar la pelota y agreguemos algunas animaciones adecuadas de lanzar la pelota a nuestro enemigo a distancia Ahora, para hacerlo, lo primero que vamos a hacer es entrar en la animación enemiga a distancia Y entonces lo que queremos hacer es agregar en una salsa de animación de papel Z D, y llamaremos a esta fuente de animación enemiga a distancia Y ahora vamos a agregar en un plano de animación. Entonces por supuesto se nos pregunta qué queremos usar como fuente, queremos usar la animación enemiga a distancia. Como fuente. Nombramos a esta animación naranja, B P. Así es como la vamos a nombrar por el bien de la organización. Ahora, abriremos la fuente de animación enemiga a distancia y agregaremos una nueva secuencia, la primera Por supuesto, lo llamaremos ocioso. Ese es el nombre del primero porque comenzamos con una animación ociosa. Entonces simplemente queremos encontrar al enemigo a distancia inactivo. Esa es la animación. Hay una pequeña animación ociosa disponible para su uso. Entonces, para hacer la configuración adecuada, queremos abrir el plano de animación enemiga a distancia Eso abre esto. Y ahora que lo hemos lanzado al enemigo a distancia, lo que queremos hacer es querer conseguir al actor dueño. Bien, muy parecido a lo que hicimos con el cuerpo a cuerpo. Y entonces queremos promover al enemigo como a distancia con variable porque eso es lo que vamos a utilizar en la animación Entonces esto es todo. Evento al iniciar lanzamiento enemigo a distancia, y luego como enemigo a distancia va a ser la variable Bien. Ahora, ahora que eso está configurado, tenemos acceso al gráfico de animación, y queremos crear un nuevo estado de animación. Entonces agregaremos una nueva máquina de estado, y simplemente llamaremos a este rango EEM Lo mantendremos simple, y lo configuraremos como salida. Y luego para asegurarnos de que esto funcione de manera efectiva, volveremos al propio Blueprint enemigo a distancia agregaremos el componente papel Z D, para manejar las animaciones. Añadiremos en el Plano enemigo a distancia como la clase de instancia de animación Y luego para el componente render, seleccionaremos el flipbook de papel como nuestro componente de render En cualquier momento el papel está haciendo las animaciones, lo manejará a través que hemos hecho esto tres veces, dos veces antes. Espero que todo esto tenga sentido lógico para ti. Porque ahora notamos que simplemente está atascado en su lugar, pero luego volveremos al plano de animación enemiga a distancia Seleccionaremos hacia fuera, lo arrastraremos hacia fuera el estado de animación. Establezca el estado como inactivo. Oh, cap a I como inactivo, y luego seleccione el estado inactivo, y luego queremos que reproduzca la animación inactiva. Compila, vuelve. Y luego ahora cuando entramos al nivel, está reproduciendo la animación ociosa correctamente. Aquí es exactamente donde queremos estar, y espero que porque has estado aprendiendo muy bien de los otros videos, todo esto está conectando y teniendo sentido lógico para ti. De hecho, deberías poder hacer esto principalmente por ti mismo. Pero ahora que hemos hecho esto, pasemos a agregar realmente la animación de dibujo de proyectiles Ahora bien, si vuelves a los personajes dispuestos NEM y vuelves al arte, fíjate en que existe esta animación de remo de ataque Bien. Ahora con esto, lo que queremos hacer es queremos conseguir esa animación de ataque. Haz lo mismo, aplica papel a estos ajustes y luego extrae sprites. Todavía va a hacer lo mismo al tratar de extraerlos por ti automáticamente, pero el motor real no es lo suficientemente inteligente como para hacerlo todavía. Entonces configurarlo como una cuadrícula y luego dividir 750 por uno, dos, tres, cuatro, cinco, seis, que sale a uno, dos, cinco, y esos nos darán los sprites de tira limpia extraemos. Ellos salen como ataque de cero a cinco, y luego creamos un flipbook, y queremos llamarlo ataque de subrayado EM a distancia Bien. Y con eso, fíjate en la animación. Ese es el ataque enemigo a distancia. Pero vamos a ralentizarlo. Creo que esto es demasiado rápido, ¿de acuerdo? Entonces lo que quiero que sea es en lugar de 15 frames, hagamos cinco frames. Mucho mejor. Eso es mucho más razonable como animación de ataque. Para que veas a la bruja levantando su mano y luego tirándola. Entonces eso es muy, muy bueno. Ahora que tenemos esa animación aquí, ahora volvemos a la fuente NEM a distancia Añadimos una nueva secuencia de animación, y simplemente la llamaremos ataque. Mantenlo simple. Los datos de animación van a provenir de la animación de ataque NEM a distancia. Ahí está. Bien, eso es esencialmente todo. Y luego con la animación de ataque NEM a distancia en juego, vamos a guardar todo rápidamente Ahora podemos volver al NEM a distancia básicamente esto, Entonces tiene ocioso. Ahora básicamente necesitamos configurarlo para ataque. Entonces crearemos un nuevo estado de animación, y simplemente lo configuraremos como play attack para que reproduzca la animación de ataque cuando se haga la transición a Y vamos a configurarlo. Esto lo haremos más tarde, pero cambiemos el nombre. Vaya, de ese estado, no debería ser solo estado. Debería ser ataque. Entonces ahora tenemos una manera de pasar de inactivo a ataque, es capaz de reproducir la animación de ataque, pero todavía no hay código para hacer la transición, y eso está bien. Pero ahora simplemente volvamos al plano enemigo a distancia una vez más al plano enemigo a distancia y entraremos en el gráfico de eventos Ahora bien, para que haga el ataque de una manera muy similar a como configuramos al enemigo cuerpo a cuerpo, vamos a agregar vamos a agregar algún punto de detección Bien. Y vamos a llamarlo lo mismo que antes, detección de jugadores. Entonces una vez que se detecte al jugador, funcionará y lo mismo, radio de visión bajará eso hasta digamos 500. La audiencia será cero. No queremos que esté escuchando. El intervalo de detección se establece en 0.5, lo cual es fantástico. Eso es razonable. Lo bajaré a 0.1 solo para que el intervalo de detección sea mejor. El rango de visión se fijará 179 grados para que tenga mucho rango visual. Y con eso, simplemente entraremos en la gráfica de eventos. Vamos a arrastrar en no, no necesitamos arrastrarlo dentro. Entraremos en detección clara en el evento de peón en C que es la detección del jugador Entonces cada vez que ve el peón, todo lo que queríamos hacer es imprimir cuerda y queremos decir, Oye, jugador detectado Bien, ese será un buen comienzo para ver si está funcionando correctamente. Así que presiona play. No se detecta arcilla. Se está detectando claro. Entonces sabemos que está funcionando correctamente dentro del rango denamy Ya no necesitamos eso. Entonces ahora que tenemos esto, lo que vamos a hacer es simplemente vamos a desovar en ese proyectil Entonces ahora que lo tenemos. Ahora, en la misma línea que antes, entraremos en el libro flip book de papel, y lo que queremos hacer es agregar un colisionador de cajas básico, y queremos llamar a ese engendro de proyectiles Bien. Entonces la razón por la cual es porque ahí es donde va a desovar el proyectil, que podamos arrastrarlo dentro Y pongámoslo por aquí, ¿de acuerdo? Bonito. Lo pondremos por aquí. Ahora que tenemos encerrado ese engendro de proyectiles, entraremos en el gráfico de eventos Entonces, cada vez que se detecte al jugador, generará ese proyectil Entonces usaremos el nodo básico para el desove. Entonces lo llamaremos actor engendrado, bien, actor de tarea Y la clase va a ser proyectil enemigo. Bien. Esa es solo la clase básica que vamos a estar usando. Y entonces para span transform, obtendremos el palmo del proyectil. Obtendremos su ubicación salvaje. Oh, la física. No sé por qué esa física fue seleccionada por mí. Ese es mi mal. Lo que queremos es conseguir una ubicación salvaje. Y entonces ese lugar salvaje es lo que abarcará transformarse. Arrastra esto aquí abajo, arrastra esto aquí. Entonces ahora esto tiene sentido. Entonces, esencialmente, va a sentir y cada vez que siente, va a desovar en ese proyectil Vamos a compilar, verificar que esto funcione. Así que fíjate que sigue desove en esos proyectiles y observa los proyectiles desovan moviéndose hacia Entonces ahora tenemos listo ese desove de proyectiles. Ahora, en el siguiente video, agreguemos la animación de lanzamiento, y configuramos el fotograma en el que realmente va a aparecer el proyectil 81. 78 Vinculación de la animación de lanzamiento con el germinado de proyectiles: Ahora con todo eso configurado, tenemos a nuestro enemigo dispuesto desove en esos proyectiles Ahora, volvamos rápidamente al plano NEM a distancia. Y recuerda, cada vez que detecte al jugador, va a desovar en el proyectil Pero en lugar de que desove en el proyectil cada vez que detecte al jugador, vamos a hacer un ajuste muy básico Entonces comencemos agregando un comentario rápido. Entonces he añadido en el comentario de solo, ya sabes, detectar jugador. Por supuesto, como siempre, fondo negro texto blanco, aumenta el tamaño de este comentario y asegúrate de que los nodos estén bien posicionados. Entonces sabemos que dentro de aquí, todo lo que está haciendo es detectar al jugador. Y ahora, esto está desove en el proyectil. Entonces lo que vamos a hacer es que vamos a romper ese eslabón y arrastrar esto por aquí para separar esas dos acciones, y luego después de detectar al jugador, vamos a crear un nuevo comando y luego llamar al proyectil hilado Todo bien. Así que permítanme arrastrar esto rápidamente hacia aquí. Y vamos a crear una función personalizada. Bien. Ahora, más bien un evento personalizado, y llamaremos a esto fuego. No, llamémoslo disparar bola de fuego. Bien. En realidad no bola de fuego porque no es una bola de fuego Es una bola mágica. Así que simplemente llámalo disparar bola mágica. Así que disparar bola mágica es el nombre de esa función. Y cada vez que se llama bola mágica disparar, se desplazará en el proyectil, ¿de acuerdo? Ahora, con esta configuración y fuera del camino, salgamos a detectar jugador. Ahora, queremos configurarlo para hacer una de dos cosas. En primer lugar, si detecta que el jugador está muy cerca, queremos que el enemigo a distancia intente huir. Y sólo debería hacer esto una vez. No obstante, si el jugador se encuentra en el campo de tiro, entonces va a intentar disparar un proyectil al jugador Ahora, fundamentalmente, comencemos con solo configurarlo para que una vez que se vea al jugador, le dispara una bola de fuego al jugador Y la forma en que lo haremos es simplemente vamos a crear una nueva variable. Y añadiremos esa variable en. Va a ser un booleano básico. Y lo vamos a llamar yo pie bola mágica. Bien. Ahora con esa configuración variable, arrastraremos esto y lo configuraremos como set está disparando bola mágica. Y vamos a configurar eso como sí. Comienza como no, pero justo cuando se ve al jugador, lo configuraremos para disparar la bola mágica. Ahora que aquí tenemos su bola mágica de tiro lista para ir, abramos el plano de animación del enemigo Entonces ahora, dentro del plano de animación, para pasar de ocioso a ataque, todo lo que tenemos que hacer es entrar en la transición, y luego como enemigo a rango, perdón, arrastrar eso Ponte como el enemigo a distancia. Buscamos es disparar bola mágica. Y entonces queremos decir, Oye, igual a y, entonces puedes entrar en esa transición. Es muy lógico y debería tener sentido muy fácilmente. Entonces volvamos al nivel principal. Así que fíjate, ahora es de inmediato el jugador entra. Comienza jugando esa animación demostrando que está lanzando la bola mágica. Ahora, lo que haremos es ahora volveremos a la fuente de animación y seleccionaremos la animación de ataque. Queremos buscar un punto cuando se arroje la pelota por aquí. Boom, y crearemos una nueva notificación. Crearemos una nueva notificación y vamos a llamar al notifique lanzar bola mágica así es como la llamaremos Zoom back out. Así que a la vuelta oh, lo siento. Alrededor de este momento, lanzamos la bola mágica. Ahora que tenemos esa configuración en la fuente de animación, volveremos al plano, e iremos a buscar el lanzamiento de notificaciones de recepción Magic Ball Y entonces lo que queremos hacer es como enemigo a distancia. Queremos el evento de tiro lo he llamado disparar bola mágica aquí. Entonces llamaremos a ese evento de disparar bola mágica. Siempre es mejor nombrarlos de una manera que sea lógica. Entonces aquí estamos. Entonces cada vez que se llame a esa notificación, debería disparar la bola mágica. Entonces, vamos a entrar en esto. A ver. Así que vuelve al juego. Ahora, cada vez que el enemigo es capaz de ver al jugador , dispara la bola mágica. Bien. Boom. Eso es muy bueno. Entonces ese es un básico. Ahora tenemos la configuración de animación para lanzar la bola mágica, ¿de acuerdo? Entonces, sigamos adelante. Ahora, a continuación, arreglemos el cambio de dirección y luego agreguemos una animación mucho más animada porque en este momento la bola mágica básicamente está flotando para el jugador. Hagamos un ajuste a su aspecto. 82. 79 Ajustar la dirección del Sprite a la ubicación del jugador: Entonces ahora que tenemos al enemigo a distancia capaz de lanzar una bola mágica al jugador, y se configura y se hace en base a la animación, asegurémonos de que lo primero que hace el enemigo a distancia cuando el jugador está en rango de detección es se enfrenta hacia el Ahora entraremos en el sprite de enemigos a distancia, y notarás que estos sprites fueron dibujados mirando a la izquierda en lugar Entonces, lo que simplemente haremos es seleccionar el libro volteador de papel, y vamos a ajustar su rotación sobre el eje Z, y simplemente lo rotaremos 180 grados negativos. Es realmente así de simple. Entonces ahora, está enfrentando al jugador correctamente. No obstante, fíjate que cuando vas al otro lado, ya no está orientado correctamente. Eso está bien y es sencillo de corregir. Ahora, todo esto, sólo voy a mostrarte el código después de que esté escrito. Observe ahora que está orientado hacia la dirección correcta. Y déjame llevarte a través los planos y el pensamiento rápido Ahora, para hacerlo rápido, permítame comenzar mostrándole cómo está funcionando el flujo de código. Entonces lo he configurado para que el enemigo a distancia sea depurado. Ahora fíjate aquí, está fluyendo a través de la línea superior. Cuando cambio a este lado izquierdo, está fluyendo a través de la línea de fondo. Aquí, está fluyendo a través del flujo superior de la olla en los asentimientos. Aquí, está fluyendo por el fondo. Ajusté, claro, el daño a B un daño en el proyectil enemigo, pero esto es solo para mostrarte Ahora, entremos en los nodos ellos mismos. Lo primero que hacemos es desde Os pon ir directamente al casting al héroe. Después de lanzar al héroe como el héroe, obtenemos su componente cápsula. Esencialmente, casi cualquier componente servirá, pero la cápsula es muy útil. Y luego obtenemos la ubicación comodín, y al usar click izquierdo, dividimos los pines de la estructura para que podamos obtener el valor X por separado. Una vez que hayamos terminado con eso, obtendremos el componente flipbook que podemos obtener aquí desde dentro del enemigo a distancia como de costumbre hará cualquier componente, pero solo usaremos el flipbook por simplicidad y luego lo conseguiremos pero solo usaremos el flipbook por simplicidad y luego lo conseguiremos Una vez hecho eso, seguimos adelante y queremos restar Ahora, queremos restar la ubicación salvaje de la cápsula del libro volteo de papel, eso nos va a dar una medida de la distancia entre los dos Y entonces comprobaremos la diferencia de distancia usando el nodo mayor que, y ¿es mayor o igual a cero? Esa es la lógica detrás de esto. Y luego armamos una sucursal. Ahora bien, la rama es simple. La distancia es mayor o igual a cero, lo cual es cierto. Eso quiere decir que el jugador está a la derecha. Por lo que estableceremos la rotación salvaje para que sea negativa 180 llamándonos a sí mismo y obtendremos el libro de papel y estableceremos la rotación salvaje. Ese es el nodo que vas a usar. Ahora después de ponerla a 180 negativa, estará enfrentando correctamente al jugador. No obstante, si es falso, eso significa que el jugador está detrás del enemigo, así que pondremos la nueva rotación a cero. Espero que la lógica esté teniendo sentido para ti y luego después de eso, conectamos todo de nuevo a su bola mágica de tiro. Veamos eso en acción una vez más ahora que has visto los nodos. Entonces yo soy c el jugador está del lado derecho. El sprite está mirando a la derecha. El jugador está del lado izquierdo, el sprite está mirando en la dirección correcta constantemente, lo cual es muy bueno Ahora que esto está hecho, sigamos adelante y hagamos algunos ajustes más a nuestra IA NEM a distancia 83. 80 Cómo agregar Sprite a la bola mágica: Todo bien. Entonces ahora, el enemigo en realidad lanza una bola mágica real. Corregimos la dirección en el siguiente video, pero puedes ver al enemigo lanzando una pelota y déjame llevarte a través de los pasos muy simples para configurarlo. Para comenzar, simplemente entras en el proyectil enemigo y podrás eliminar la esfera inicial Una vez hecho esto, agrega un libro volteador de papel, algo que hayas hecho varias veces antes. También he configurado esto para que sus sombras se proyecten, lo cual creo que es genial, y también le he agregado lo cual creo que es genial, y también le he agregado sombras al enemigo a distancia además de eso Entonces dentro de aquí, después de haber agregado el flipbook de papel, notarás que dentro del interior de la carpeta del enemigo a distancia, hay un archivo llamado proyectil hay un archivo Ahora, dentro del proyectil hay uno, dos, tres, cuatro, cinco, seis pequeños sprites que son el proyectil, y para extraer los sprites, aplicas papel dos configuraciones de textura D les aplicas papel dos configuraciones de textura D y luego entrar en extraer sprites, y real siempre intentará Pero quieres configurarlo en cuadrícula, y ancho de celda, en vez de ser 288, solo obtienes 288 y lo divides por seis, lo que debería darte un ancho de celda de 48. Y fíjate ahora que puedes extraer limpiamente todos esos seis sprites Después de extraer, simplemente consíguelos y conviértelos en un libro volteo. Y esto se enrolla, no. Fue el libro flip, El libro, y llamar al flipbook bola mágica Una vez hecho eso, agregas eso al flipbook de papel y Wala, básicamente terminaste de agregar la fib real, por supuesto, aumentar el, aumentar la escala al tamaño correcto Y ahora que esa bola de fuego está montada, ahora vamos a entrar en el código para organizar su dirección para que esté orientada hacia la dirección, se mueva Hagámoslo en el siguiente video. Ahora, en caso de que estés teniendo problemas para hacer esa sencilla configuración, quizás volver a algunos de los videos anteriores te ayude. Esto es algo así como una comprobación de conocimientos porque esta es una acción que ya deberías haber hecho unas cinco o seis veces, y debería estar en tu sangre. Sin embargo, si has entendido completamente cómo hacer eso, eso significa que estás aprendiendo efectivamente del tutorial, y estoy muy contento por eso. Vamos a seguir adelante. 84. 81 Dirección cambiante de la bola mágica: Ahora que tenemos el sprite agregado a la bola mágica, solo ajustemos su dirección Pero antes de hacer eso, vamos a hacer una rápida limpieza básica del código, ¿de acuerdo? Entonces ahora, cuando se trata del código para el proyectil enemigo, tiene mucho que hacer Vamos a organizarlo rápidamente. Entonces todo este código aquí es para Actor comenzar a superponerse. Este es el código que maneja el daño. Simplemente agregaremos un comentario rápido presionando C. Me gusta establecer el tamaño del teléfono en 50. Y luego como siempre, fondo negro texto blanco. Ahora, solo vamos a agregar esto aquí, ampliarlo para que haya mucho espacio. Excelente. Ahora, voy a dejar caer estos nodos aquí abajo justo dentro del comentario. Entonces queda bastante claro lo que está pasando. Entonces esto está comenzando solapamiento de la esfera, lanzando al héroe y haciendo daño, y aumentemos ese daño de uno atrás a 30 porque solo estaba en uno para pruebas básicas. Y al detener el movimiento del proyectil, se destruye a sí mismo. Esto es bueno. Se destruye a sí misma. Esto es bueno. Ahora pasemos al nodo de inicio de juego. Consigamos rápidamente este comentario. Pon esto Oh, Dios mío, antes que nada, pon el comentario a solo un comentario que no esté moviendo nuestros nodos alrededor. Y así reorganizando todo desde comenzar a jugar. Todo el camino hasta el movimiento del proyectil. Déjame acelerar esto. Todo bien. Entonces estos nodos ahora están todos organizados en un solo lugar. No se han realizado cambios adicionales. Entonces lo que vamos a hacer es justo después de establecer la velocidad en el espacio local, lo que vamos a hacer es que la vamos a configurar para que apunte hacia la dirección del personaje jugador una vez después de que haya terminado de configurarlo. Y así es como se ve eso. Hay dos cosas que queremos. Lo primero es que queremos conseguir la ubicación del actor, ¿de acuerdo? Ese es nuestro actor actual. Y solo queremos tener su ubicación disponible para que la referenciemos. Después de obtener la ubicación del actor, lo siguiente que queremos hacer es que queremos conseguir oh, perdón. Queremos obtener su velocidad actual. Estos dos van a ser importantes para elegir la dirección a la que apunta el proyectil Ahora, hay un nuevo nodo al que vamos a hacer referencia, y ese nodo se llama el hallazgo mirada a la rotación. ¿Bien? Este es el nodo que queremos. Se llama el hallazgo Mira la rotación. Y lo que queremos que haga es que queremos que básicamente llame a un valor de rotación para que nuestro proyectil lo vea Y para que eso funcione, necesita una ubicación inicial y una ubicación objetivo. Ahora, la ubicación de partida va a ser la ubicación actual del actor. No obstante, el objetivo, el objetivo va a ser diferente. Lo que vamos a hacer es que vamos a sumar y vamos a sumar la velocidad actual, y después de sumar, vamos a agregar obtener la ubicación del actor. Y la razón por la cual es porque la velocidad va a estar apuntando a la dirección en la que se mueve el proyectil Y con esos, obtenemos el valor de eso y lo fijamos como el objetivo. El objetivo será aproximadamente un marco de movimiento por delante de la ubicación inicial del actor. Ahora, con eso, vamos a encontrar la rotación, y vamos a conseguir el vamos a ver, conseguir flipbook de papel, ¿ Entonces, oh, no, ni siquiera necesitamos eso. Lo que necesitamos es solo el flipbook, y luego vamos a establecer la rotación Bien. Entonces quiero establecer la rotación salvaje, y ese va a ser el nodo al que nos conectemos. Y entonces la rotación de Look se va a establecer como la nueva rotación. Sin embargo, por lo irreal que funciona el código del motor, si ejecutamos esto por sí mismo en este momento, no va a funcionar de manera efectiva Y esta es la razón por la que con todo como está, si entramos en el nivel desarrollador y presionamos play, Oh, disculpas Primero detengamos esa simulación muy rápido. Bien, porque estaba tratando de mostrarnos eso, pero no queríamos ver eso. Entonces, si presionamos Reproducir, observe que no hay cambios. No hay ningún cambio en cómo se trata de la dirección, excepto, claro, sí, no hay cambio. El motivo es por lo rápido que se realiza el cálculo, necesitamos que esto suceda después de al menos un fotograma. Entonces, para que esto suceda después de al menos un fotograma, lo que vamos a hacer es justo después establecer la velocidad en el espacio local, ¿de acuerdo? Justo después de ese nodo de velocidad establecida en el espacio local, vamos a configurar un delay un delay, pero hay diferentes tipos de delay, y el delay que queremos es este llamado delay until next Tech. Entonces simplemente nos retrasaremos hasta la próxima tecnología. Entonces una vez hecho eso, pasará por el resto de los nodos para establecer la rotación del flipbook de papel Ahora vamos a probarlo. Bien. Ahora está funcionando correctamente. Observe que la dirección se está calculando correctamente. Ahora, podrías preguntar, pero espera. Se ve un poco flippy. ¿Por qué es? Al igual que, verticalmente, parece que la dirección es la correcta, pero todo está mal. Eso es realmente simple. Simplemente volvemos al proyectil enemigo. Volvemos a la vista y notamos que este es el flipbook de papel Entonces lo que vamos a hacer es que obtendremos el propio flipbook de papel, y queremos darle la vuelta Y ahora que hemos regresado, notarás que el proyectil está orientado hacia la izquierda Entonces porque está de cara a la izquierda, vamos a hacer un pequeño ajuste. Entonces, en lugar de sumar la ubicación del actor get y la velocidad get, vamos a cambiarla, y vamos a configurarla para restar Por lo que queremos restar la ubicación del actor. Más bien, queremos restar la velocidad de la ubicación del actor y configurarla como objetivo Ahora con esa configuración, de esta manera, volvamos a entrar y ver si está funcionando según lo previsto. Entonces vamos a golpear play sí, ahora está funcionando como se pretendía. Observe que la pequeña bola mágica en realidad va en la dirección correcta. Eso es bastante genial. Y ahora que tenemos eso, fíjense que en realidad se está moviendo básicamente en la dirección correcta. Bien. Bonito. Mira eso. Bien, entonces ahora tenemos nuestra bola de fuego mágica moviéndose. En la dirección correcta. Mira eso. Bien. Eso está hecho. Ahora sigamos adelante y hagamos algunos ajustes adicionales a la IA del enemigo a largo plazo 85. 82 Configuración de la combinación de animación de impacto y muerte: Entonces, para realmente redondear y finalizar ese enemigo a rango, vamos a ajustarlo para que cuando esté golpeando el EM a rango o a cualquiera de los jugadores realmente, en un buen básico en la animación de stater, y luego muera y Y luego note que tenemos esos proyectiles siendo engendrados en el mundo, pero están pasando por el infinito a menos que golpeen infinito a menos que golpeen Así que vamos a poner un temporizador para evitar que se mantengan vivos para siempre. Hagamos esas dos cosas ahora mismo. Primero, comenzaremos con el proyectil enemigo y lo configuraremos para que después de que fallara el elenco, habrá un retraso, y ese retraso va a durar, digamos, 6 segundos, y luego destruirá al actor Por lo que el proyectil solo puede permanecer en pantalla durante unos 6 segundos antes de que se elimine por completo del mundo ¿Bien? Eso está hecho. Ahora pasemos directamente al enemigo a rango, y abramos, volvamos al redil del enemigo a rango, volvamos al arte, volvamos al arte, y notarás que hay un sprite llamado hart haciendo doble clic en él muestra que hay esta pequeña animación de corazón por aquí cuando recibe daño. Eso es genial. Entonces hay otra llamada muerte ahora nota que la muerte y el arte tienen muchas similitudes. Entonces queremos configurar el código de una manera muy similar a la que hicimos antes. Entonces hay una animación de daño, pero si la salud cae por debajo de cero o igual a cero, termina de reproducir la animación de muerte. Empecemos por hacer alguna extracción básica de sprites. Así que he seleccionado a Hart. Y antes que nada, corazón y muerte, permítanme aplicar rápidamente papel a los ajustes de textura, y guardemos rápidamente todo. Y luego después de eso, empieza con el arte. Y, lo siento, haz clic derecho en Sprite Actions, extrae Sprite. Hay tres sprites. Vamos a configurarlo como cuadrícula. Entonces haremos algún cálculo básico. Bien, así que realmente debería fijar la calculadora aquí. Entonces obtendremos 375/3, lo que significa que el ancho de celda es 125, y extraemos esos Entonces hay corazón cero, t uno, y corazón dos. Eso es bueno. Después seleccionaremos las animaciones de la muerte, bien, las acciones del sprite de la muerte, extraeremos sprite Vamos a configurarlo a la cuadrícula. Y ahora es 875 o uno, dos, tres o cinco, seis, siete fotogramas. Bien. Entonces, si sacamos nuestra calculadora y obtenemos 875 y la dividimos por siete, obtenemos 125 nuevamente. Entonces 125, cortamos esos sprites correctamente y extraemos. Eso es genial. Ahora, lo que vamos a hacer seleccionaremos todos los sprites de la muerte, y luego vamos a crear un flipbook y lo llamaremos lo llamaremos , solo llamémoslo muerte Vamos a llamarlo a rango EM Subrayar la muerte. Bien. Ahora con esa configuración, así que fíjate que esta es la animación de la muerte. Lo que ahora vamos a hacer es que primero reduzcamos eso a unos diez fotogramas por segundo. Ahora, lo que vamos a hacer es que queremos agregar otro fotograma clave. Lo arrastraremos dentro. Entonces veamos que este es el marco uno. El cuadro dos está vacío, luego el marco Bien. Entonces este es uno y este es dos. Entonces dentro de este marco vacío por aquí, vamos a ins vamos a escoger un nuevo sprite, y vamos a buscar, veamos, herir, sprite uno Ese es ese, que tiene el blanco ya sabes, destello blanco. Entonces ahora así es como recibe el daño. Y luego agregaremos en otro fotograma después y en ese fotograma vamos a agregar en otra animación. Escojamos un nuevo sprite. Entonces llamemos a pick heart zero. Usaremos corazón cero para eso. Así que fíjate, solo está haciendo un flash rápido cada vez que recibe daños, lo cual es genial. Ahora, bajemos los fotogramas por segundo de diez. Vamos a bajarlos a nueve. Así que vamos a reproducir la animación . Fíjese en eso. Entonces tiene ese pequeño destello cuando recibe daño, y esa es la animación. Bien, paremos justo en eso. Entonces, con esa configuración, ahora tenemos a rango la animación de la muerte enemiga lista para rockear Entonces simplemente volveremos al enemigo a rango, entraremos en animación Vamos a abrir la fuente de animación enemiga a largo plazo. Añadir una nueva secuencia de animación. Vamos a renombrarlo muerte. Bien. Y dentro de la muerte, usaremos la muerte enemiga a rango como animación Así que vamos a configurar eso como la animación. Ahora en la siguiente lección, agreguemos las notificaciones correctas y los eventos correctos para tener esta playout 86. Enemigos de 83 rangos entran en el golpe para tomar cualquier daño: Bien. Así que de vuelta a la salsa de animación, ¿de acuerdo? Observe que existen esos marcos cuando el enemigo ha recibido un poco de golpe. No queremos entrar en el tercer fotograma de animación. Entonces justo al final de la segunda animación, agregaremos una notificación. Lo llamaremos nuevo aviso, y vamos a llamarlo a distancia cabezas enemigas stater Así es como lo vamos a llamar. Se llama headstand enemigo a distancia. ¿Bien? Apenas se paran las cabezas enemigas a distancia Eso es todo lo que se va a llamar. Bien. Ahora, una vez que tenemos esa configuración, ahora entramos en el plano NEM a distancia y aviso bajo notifica al adster NM a distancia aquí Entonces vamos a estar accediendo a la función aquí. Entonces volveremos al enemigo a distancia. En lugar de simplemente copiaremos este cuadro de comentarios específico, bien, y lo pegaremos y vamos a llamar a esto. No, olvídate del cabezón. Eso es solo por el bien de la velocidad, llamemos a esto golpea stater, ese es el comentario Pero lo que realmente queremos es que queremos crear un evento personalizado. Sí, ¿bien? Y este evento personalizado se va a llamar Range NEM hits stater Así es realmente lo que queremos llamarlo. Solo ten listo ese simple evento personalizado. Ahora, con el evento listo para funcionar, ahora vamos a crear una nueva variable. Y llamaremos a esta variable en headstar es un booleano básico y se llama Ahora, ahora mismo, vamos a compilar esto rápidamente. Cuando empiece el juego, va a estar vacío. Ese es su valor predeterminado. Ahora, lo que vamos a hacer es ahora que tenemos esa variable headstand Cuando se llama a esta función de cabecero enemigo a distancia, solo queremos que haga una revisión rápida para ver la salud del enemigo Volvamos. Y ahora vamos a decir como enemigo a distancia, queremos que saque al enemigo a distancia la función estater Esto lo hemos hecho varias veces, por lo que debería tener sentido lógico. Ahora que tenemos eso, sabemos cada vez que se desarrolla esta animación, aquí mismo, va a hacer un chequeo rápido del stater de cabezas Y lo que queremos es que si la comprobación del headstand sale verdad que el jugador el enemigo está muerto, juega la animación de muerte completa No obstante, si los golpes terminan siendo, ya sabes, no, solo estás en la cabeza, aún no estás muerto, vuelve atrás A su animación ociosa por un corto periodo de tiempo. Y luego vuelve a su animación de ataque tras detectar al jugador. Esa es la lógica por la que vamos. Así que vuelve aquí. Rápidamente salvaremos a todos y volvamos al enemigo a distancia. Aquí solo queremos comenzar simplemente verificando el valor para la salud. Lo primero que vamos a hacer es que vamos a conseguir la salud de Dami, arrastrarla hasta aquí y queremos conseguir la salud de Dami, y vamos a establecer una rama básica Y lo que queremos hacer es que queremos comprobar el estado de salud de Dami es mayor Bien. Es decir, ¿es mayor que cero? Si la salud dammi es mayor que cero, esto va a ser cierto Bien. Entonces, si la salud dammi es mayor que cero, configuramos esto en true, y entonces simplemente realizaremos algunas funciones aquí Y para empezar, diremos, Bien, mira, yo maniquí La salud es menos que básicamente, si es menor que cero, lo que queremos hacer es querer alargar esto y luego queremos decir, Oye, no, más bien, déjame tener claro que esta lógica está teniendo sentido. Bien. Entonces, si es menor que cero, lo que realmente queremos. ¿Bien? No, si es menor que cero, decir, es falso. Queremos que haya un retraso de aproximadamente 1 segundo, solo un simple retraso de 1 segundo, y luego inmediatamente destruimos al actor. ¿Bien? Es un simple cheque. Es un cheque muy sencillo. Y lo que eso hace es que significa que el enemigo a distancia ya está muerto. Entonces, si volvemos a la gráfica de animación enemiga a distancia, notemos que solo hay ocioso y hay ataque Pero ahora, vamos a crear un nuevo estado de animación, y llamemos a esa estadística de animación muerte. Bien. Entonces, del ataque a la muerte, puede hacer la transición, y de la inactividad a la muerte, puede hacer la transición. Y la forma en que puede hacer la transición es, entremos. Vamos a hacer que se revise como el enemigo a distancia. Queremos que nos golpeen a Stern, ¿verdad? Y si en golpes stater, es igual a, sí, está en su stater Puede hacer la transición. Bien. Entonces, mientras el enemigo esté en su estón, puede hacer la transición. Eso es esencialmente todo. Y luego tomamos un vamos a copiar esto en realidad. Entonces, cada vez que el enemigo está en cualquier cabeza, comienza a reproducir la animación de la muerte Entonces copiemos y pongamos eso aquí. Eso salva eso. Hacemos doble clic sobre la muerte y queremos reproducir la animación de la muerte desde interior del nodo de muerte por aquí, bien, ese pequeño estado. Entonces puede pasar de ocioso a muerte y puede pasar de ataque a muerte. Sin embargo, solo puede volver de la muerte a inactividad en una situación en la que ya no está en la cabeza, entonces puede volver a su animación ociosa, ¿de acuerdo? Eso es esencialmente por ahora. Ahora bien, así es como se ve esto. Oh, aún no va a volver a estar inactivo. Nos meteremos en eso a continuación. Ahora fíjate que ahora mismo en el enemigo a distancia, todavía no hay de todos modos para volver a meterlo más bien, actualmente no hay forma darle la propiedad stater hits Cambiemos eso. Entonces, la forma en que vamos a hacer eso es que consigamos rápidamente ese cuadro de comentarios y lo pongamos por aquí. Ingresa tt animation en cualquier daño. Lo cual es bastante fácil de entender. Por lo tanto, ingresa la animación del headstand al recibir cualquier daño. Entonces empezamos por conseguir el evento, cualquier daño. Bien, vamos a obtener el evento de cualquier daño. Y luego simplemente nos pondremos en el cabezal y lo pondremos para que una vez que esté en el headstand, se ponga en headstand para que sea Ahora, con solo eso, volvemos al nivel de desarrollador. Entonces está recibiendo daños. Ahora está jugando eso, pero lo está jugando indefinidamente. Entonces, para evitar que juegue, volvemos a entrar. Y esta vez, cuando hace la doble comprobación básica y descubre que es, hecho, su salud sigue siendo mayor que cero. Lo que va a hacer es que queremos colocarnos en la cabeza, así lo pondremos y diremos que no, ya no está en la cabeza Entonces así es como se ve eso. Observe eso, ¿verdad? Entonces, si dejas de comboar al enemigo, inmediatamente vuelve, Eso es esencialmente lo que realmente queremos. Entonces, entremos aquí. Por lo que lanza un proyectil. Ahora le estoy pegando. Bien. Entonces en realidad está recibiendo daños, pero fíjate que no está muriendo, y hay un poco de retraso. Más bien, el retraso antes de que vuelva a atacar es realmente demasiado corto. Así que vamos a sugerir que en el próximo 87. 84 Configuración de retardo de ataque después de recibir un golpe: Todo bien. Entonces ahora tenemos nuestro bonito enemigo de alcance al que podemos atacar, y cuando atacamos, entra un poco de su estater y no puede atacarnos de nuevo Eso es bastante genial. Hagamos un ajuste sencillo para que una vez que sea golpeada, gaste mucho más antes de entrar en su animación de ataque real para que lleve más peso con ella. Ahora para hacer esto, realmente solo necesitamos abrir una cosa para comenzar, que va a ser entraremos en la carpeta enemiga a distancia y nos aseguraremos de que el plano enemigo a distancia Y una vez que esté abierto, ahora podemos avanzar y sumar un poco más de retraso al headstart Ahora, lo siguiente que vamos a hacer, te darás cuenta cuando vayamos y le hagamos daño al maniquí de ataque mientras esté recibiendo el daño, fíjate que la barra de salud no está funcionando correctamente La razón por la que eso está sucediendo es porque una vez que llamamos en caso de algún daño aquí, deja de ser llamado en el plano padre Así que vamos a necesitar copiar sobre todo el código del evento cualquier daño del padre para asegurarnos de que está funcionando correctamente aquí. Ahora, la forma más rápida de hacerlo es que quieres abrir tu ataque Dummy Blueprint y dirigirte al evento cualquier daño, y notar que podemos entrar y ahora hacer una copia de todo esto y luego ponerlo en el niño Ahora, déjame mostrarte cómo es eso, y luego te llevaré a través del código. Entonces, boom, hay un poco de pie de cabeza, y luego está muerto. Voila. Ahora bien, esto es lo que fundamentalmente, realidad se ve en el código. En realidad, volvamos un poco, ¿de acuerdo? Así que ahora mismo, el enemigo es capaz lanzarme proyectiles, ¿ de Es capaz de lanzar proyectiles. Oh, chasquido. No. No. Gato de ventana. Sin embargo, una vez que lo golpee, ahora, note que es por unos 2 segundos, ¿de acuerdo? Esa es la verdadera estrella de éxito. Y durante 2 segundos, no puedo hacer nada. Ahora, claro, eso es exagerado. En un juego real, quieres que ese tiempo sea un poco más corto, pero lo estoy exagerando solo por enseñar, ¿de acuerdo? Entonces el enemigo más bien el personaje jugador puede golpear a un enemigo solo por el enemigo a distancia, y por un tiempo, totalmente no pueden hacer nada y luego están muertos Así de simple, bien. Es así de simple. Ahora, déjame entrar en el código, y vamos a ir paso a paso. Entonces comenzaremos con el enemigo básico a distancia. Bien. Entonces aquí mismo ahora mismo, bien, todo lo que tienes es configurarlo para que vaya en la cabecera. Pero pasemos por esto paso a paso. Entonces una vez que llamamos al evento cualquier evento de daño aquí, ahora, ya no va a funcionar desde el evento padre. Entonces necesitamos volver a agregar en todo este código. Entonces comencemos. Hay una secuencia. Vamos a señalar todo aquí arriba un rato. Y sigue esta línea. Obtenemos el dammi Salud Por supuesto, eso lo conseguimos desde dentro del personaje. Bien. Y una vez que tengamos el dammi Salud, lo que haremos es restarle el daño a cualquier daño de la a cualquier daño de salud dammi y ponerle eso como el nuevo dammi salud Una vez hecho eso, queremos lanzar a la barra de salud de dammi Ahora bien, la forma en que lo hacemos es llamar a un widget. El widget está por aquí. Ya lo agregamos en. Esa es la barra de salud. Obtenemos widget y lanzamos a dammi Barra de salud Y luego como la barra de progreso de salud dammi, obtendremos dammi Salud, la dividiremos por 100 y fijaremos eso como el porcentaje establecido, eso está hecho Y todo lo que hace es que se asegure de que cuando golpeemos al Dummy más bien, cuando golpeamos a este enemigo, en realidad aparece en su barra de salud Bien, sigamos adelante. Ahora que tenemos eso Bien. Volvamos a la estado del stater de cabezas enemigas a distancia. ¿Bien? Aquí es donde estamos comprobando para ver si la salud es menor que si la salud es menor o mayor que cero. ¿Bien? Ese es el estatero de cabezas enemigas a distancia Ahora, por aquí, lo que queremos hacer es que va a haber un retraso de 1 segundo, y luego destruye al actor Eso está bien por ahora, bien. No obstante, queremos configurarlo para que esté a la cabeza. ¿Está disparando bola mágica? No, no lo es. Agregando un retraso rápido de 2 segundos. Y luego queremos crear una nueva variable llamada No se puede disparar. Ahora bien, ¿cuál es el propósito de disparar a Carnot? Vamos a entrar en No se puede disparar más tarde, sino simplemente crear esa variable. Y ahora mismo, No se pone en marcha el rodaje de No se puede disparar. Eso significa que después de dos segundos de retraso, no se puede disparar se apagará, lo que significa que puede disparar, ¿de acuerdo? Ahora, volvamos a la animación enemiga a distancia. Es la animación de la muerte. Al final de su animación de muerte, configuramos para destruirse a sí misma. Eso es usar un Notificar. ¿Bien? Ahora, dentro del plano de animación a distancia, simplemente está configurado para que si está disparando la bola mágica, vaya a atacar Si no lo es, pasa a ralentí. No va a tener eso configurado, ¿de acuerdo? Y luego del ataque a la animación de la muerte, es decir, ¿está en el headstand? Sí. Si está fuera de la cabecera, puede volver a atacar, o si está fuera de la cabeza, puede volver a estar inactivo o atrás de id, ¿de acuerdo? Esta es la lógica básica. Ya has hecho esto antes. Ahora, vayamos al yo destructor. Todo lo que hace es que lleva a una función en el enemigo a distancia llamada destruir yo Ahora dentro del rango enemigo, esencialmente, hemos establecido Destroy Self como un actor básico de destrucción. Eso es todo lo que hace. Destruye al actor si su infierno va por debajo de cero o llega a cero Bien. Eso es todo lo que hace. Ahora con esta configuración, en cualquier daño, está configurada para tener su reposacabezas encendida Ya no está disparando la bola mágica y no puede disparar. Ahora veamos cómo se ve eso en realidad en cuanto a código, ¿de acuerdo? Ahora, volvamos a donde se detecta al jugador. Esta vez hay un gran cambio. Bien, hemos añadido adentro, Está en el headstand Si está en la cabecera, no debería hacer nada. Yo headstan es verdad, no hagas nada. Si está fuera de cabezas stater, entonces debería hacer el resto de este código Por supuesto, siempre está el elenco a héroe, eso lo hemos hecho, el cambio de dirección. Pero después del cambio de dirección y estableciendo la rotación salvaje, hemos agregado una nueva rama y la rama es bastante simple, no puede disparar. Si no puede disparar, no hace nada. Si puede disparar, dispara la bola mágica. Ahora veamos cómo es esto en realidad, ¿ de acuerdo? Va a configurarlo a dbug juego. Entonces ahora mismo, puede disparar, así que está disparando. Sin embargo, bien, déjame reiniciar esto. Entonces, una vez que lo golpeé, se paró y no puede disparar ni un poco. Y puedes ajustarlo a tu gusto. Ahora bien, si seguiste los tutoriales correctamente, todo esto ha tenido un sentido lógico y limpio. Y ahora tienes un enemigo a distancia que trabaja, y vamos rápidamente a entrar en enemigo masculino para arrastrarlo al mundo Oh, en realidad ya tengo uno aquí. Es un enemigo que he colocado aquí. Entonces tengo un enemigo varón que viene y puede atacarme, pero, claro, puedo golpearlo y matarlo, así muere, y luego tenemos un enemigo a distancia Ven moria. Yo y se ata. Así que ahora tenemos un enemigo a distancia y un enemigo macho listos para ser usados, y has experimentado cómo usar el papel z d para configurar a estos dos enemigos Entonces hay una cosa más que vamos a hacer por el enemigo a distancia, y luego avanzamos Y eso va a ser nos adentraremos en el enemigo a distancia. Iremos al widget de su barra de salud y la configuraremos para que no sea visible. Y la razón por la que lo hemos hecho es porque solo queremos limpiar el aspecto de nuestro nivel. ¿Bien? Bien. Entonces ahora que sus barras de salud ya no son visibles en el juego, eso es genial. Preparémoslo también para el enemigo mele. O sea, con el widget. No necesitamos que la barra de salud sea visible. Eso es bueno. Ahora que ya está hecho. Bien. Desarrollar un nivel. Voi a fini. Ahora que terminamos con eso, hagamos otro ajuste al enemigo a distancia Que va a ser, vamos a establecerlo. En realidad son dos ajustes. El primero es que vamos a hacer un ligero ajuste a su velocidad. Y ahora mismo, parece estar chocando contra el enemigo a distancia, que es algo que no queremos que sea verdad Entonces queremos que el enemigo cuerpo a cuerpo pueda moverse y no interactuar con el enemigo a moverse y no interactuar con distancia en absoluto de ninguna manera porque ahora mismo se está apegando a él, que no es lo que queremos Y luego queremos configurarlo para que el enemigo a distancia, una vez que alcanzas cierto alcance, deje de lanzarte proyectiles Queremos que solo arroje proyectiles dentro de un rango específico ¿Bien? Hagámoslo. Siguiente, 88. 85 Cómo evitar que tus enemigos se atasquen entre sí: Entonces en este video, comencemos con el problema básico simple. Tenemos un enemigo cuerpo a cuerpo. Bien. Entonces, vamos, sígueme. Sígueme. Vamos, vamos, aquí. Bien. Pero una vez que llega al enemigo a distancia, se queda atascado Así que vamos a resolver ese problema, ¿de acuerdo? Ahora, la forma en que vamos a resolver ese problema es que entraremos en el Blueprint Me NEM Bien. Y seleccionaremos su componente cápsula porque ese es el que está ocurriendo la mayor parte de esa colisión, ¿de acuerdo? Ahora vamos a entrar en detalles, y quiero buscar su colisión. Ahora, ahora mismo, está configurado para bloquear toda dinámica, y cambiemos eso a pastor. Ahora que está en un estado personalizado, observe que podemos cambiar sus respuestas de colisión en todos los ámbitos. Entonces lo que haremos es seleccionar peón y lo configuraremos para que ignore, así se puede configurar para que ignore, así se puede configurar para que ignore superponga o bloquee, pero simplemente lo vamos a configurar para ignore por completo los peones en general, Una vez hecho eso, compilamos rápidamente. Ahora vamos a probarlo rápidamente y ver si realmente va a hacer el trabajo. ¿Bien? Bien. Y ahí está. Entonces ahora ignora completamente, Oh, chasquido, necesito correr Ahora bien, morí. Pero se puede ver que ahora ignora por completo al enemigo a distancia y ya no se quedará atascado en Sí, esa es básicamente la solución. Sigamos adelante. 89. 86 Crear un campo de ataque para el enemigo rangado: Bien. Déjame mostrarte rápidamente el resultado final porque el enemigo atacaba constantemente, pero ahora ataca al jugador. No obstante, una vez que salgo de cierto alcance, deja de atacar al jugador. Cuando vuelvo a estar al alcance, empieza a atacar. Y una vez que salgo de ese rango, inmediatamente deja de atacar al jugador. Eso es lo que queremos. Ahora déjame llevarte paso a paso por el código. Entonces, entremos en el enemigo a distancia. Lo primero que vamos a hacer es sumar en una esfera grande. Entonces este tipo de esfera requiere que entres, por supuesto, en la cápsula y agregues una esfera. He puesto mi esfera en unas 20 unidades de radio. Puedes configurarlo como cualquier radio que quieras. Y estoy llamando a esa esfera rango de ataque de colisión. Una vez que el rango de ataque esté configurado, simplemente agregue simplemente agregue dos eventos diferentes, ¿de acuerdo? El primer evento es start overlap y end overlap es el segundo. Una vez que haya creado esos dos eventos, entremos en el gráfico de eventos. Ahora bien, lo primero que queremos hacer es justo antes de que la detección del jugador comience a verificar si hay ventaja, queremos que haga una simple verificación bajo una nueva variable, que es una booleana, llamada en rango de ataque Básicamente, sostiene si el jugador está o no en el rango de ataque. Entonces, si es cierto, continúa. Si es falso, no hace nada. Ahora, cuando se trata de lidiar realmente con el rango de ataque, comencemos por mirar los dos eventos. Tenemos el componente start overlap event. Y tenemos el evento de superposición final del componente. Ahora, eso lleva a dos cosas distintas. Ambos están siendo arrojados al héroe porque solo queremos que el componente sea el héroe para causar esto Y ahora, si ha comenzado el solapamiento, establecerá en rango de ataque a true. Si está terminando la superposición, establece en el rango de ataque a off, y luego solo por claridad visual. Muestra si está en rango de ataque, se muestra en rango de ataque. Una vez que esté fuera del alcance de ataque, se imprimirá a salvo, y se establecerá está disparando bola mágica se apagará para evitar que el enemigo a distancia dispare la pelota Vamos a verlo en tiempo real. Ahora he entrado al alcance de ataque. Ahora estoy a salvo. Estoy en rango de ataque. Ahora estoy a salvo. Pero ahora aunque el rango de ataque está ahí, ahora entramos en el rango de detección, ¿de acuerdo? Porque esto también tiene la sensación de pata que en realidad causa los ataques. Entonces ahora que estoy en el rango de ataque, golpeé el peón sintiendo y empieza a atacarme. Pero cuando me voy, ahora estoy a salvo, y deja de atacarme y lanzarme proyectiles Esa es la lógica simple utilizada para crear un rango de ataque alrededor del enemigo a distancia y luego usar la detección para manejar el lanzamiento de proyectiles hacia 90. 87 Una mirada al nivel: Todo bien. Entonces ahora que hemos terminado, trabajando en estas IA, realidad vamos a ponerlas dentro de un nivel. Volvamos a los niveles y ahora que hemos terminado con algún trabajo en el nivel desarrollador, entremos en el nivel uno. Ahora bien, este es nuestro nivel uno actual, y vamos a hacer un poco más de diseño de niveles porque este nivel estaba configurado para ser muy abierto. Vamos a comprimirlo para que ocupe un área mucho más pequeña y hacerlo es en realidad bastante sencillo. Conseguiremos estos dos objetos en el inicio de nivel y los moveremos aquí. Bien, mucho, mucho mejor con solo este cambio. Y luego tenemos nuestro personaje de jugador. Entonces ahora mismo, esto es desde el inicio de nivel. Oh, hay algo más que no agregamos. Entonces está este pequeño bloque que agregué al nivel. Bien, la estoy arrastrando hasta aquí. Arrástralo justo por aquí. Básicamente evita que el jugador suba completamente las escaleras, a solo una cuadra. Y ahora tenemos estos pequeños pasos que el jugador puede pisar y por favor asegúrese, que dentro del activo de mega escaneos, si ha utilizado un activo de mega escaneo, que para asegurarse de que la colisión funcione correctamente, asegúrese de buscar la configuración de colisión en él, y desea asegurarse esté configurado para usar colisión compleja tan simple para garantizar que el jugador puede pisarlo correctamente. Ahora que tenemos eso, veamos, tenemos al jugador a partir de aquí. Haremos que entren, y luego comenzarán luchando contra un solo enemigo cuerpo a cuerpo Entonces después de eso, avanzarán y habrá un enemigo a distancia allá arriba, y luego va a haber un enemigo cuerpo a cuerpo más que necesitan para luchar, y luego enemigo a distancia Y una vez que terminen, suben las escaleras y va a haber un personaje jefe aquí arriba, ¿de acuerdo? Ahora hagamos un diseño básico de nivel adicional. Estoy entendiendo eso y copiándolo. La razón por la que estoy haciendo eso es porque quiero, veamos, Bien, esto no va a ser lo suficientemente bueno para mí. Lo que vamos a hacer es que vamos a agregar en una forma, y tal vez te preguntes qué forma, solo queremos un cubo simple. Vamos a escalarlo. Desbloqueemos la escala. Pienso escala de 50 en la X, diez en la Y y luego 50 en la horizontal. ¿Bien? Entonces ahora tenemos esta enorme sombra proyectada, y luego seleccionaré ese bloque. No lo voy a poner en rotación. Lo pondré en movimiento. Vamos a avanzar de esta manera. Bonito. Entonces ahora está proyectando esta enorme sombra grande por allá. Déjame mover la cámara hacia adelante de esta manera y solo quiero ajustar esa sombra un poco. ¿Bien? Esto es como hacer trampa real en el desarrollo de juegos, ¿de acuerdo? Usar un objeto artificial para proyectar una sombra. Entonces ahora está esa sombra, que creo que hace que se vea mucho mejor. Entonces ahora cuando saltes por encima, viniendo aquí, tendrás algunos enemigos que luchar. Y luego una vez que los enemigos han sido combatidos, avanzas, y luego subes por las escaleras, y en esta zona sombría es donde se va a pelear al jefe Esto es perfecto. Pero ahora, notarás que nuestro material de sprites no responde a la luz Así que vamos a ajustarlo para que realmente pueda responder a la luz, y podamos ver claramente cuándo el jugador ha entrado en el área de sombra. Hagámoslo en el siguiente video. Y luego haremos algún diseño de niveles, bajaremos un par de personajes, y luego llamaremos al Tutorial un wrap después de que te haya enseñado el ejercicio final, que va a ser crear un jefe enemigo. Vamos. 91. 88: Cómo hacer que el sprite del jugador reaccione a la luz: Bien, entonces he puesto al jugador justo alrededor del área que está siendo causada por ese pequeño objeto allá porque ahora mismo, cuando los jugadores en la sombra, se ven tarde. Cuando el jugador está en la luz, se ven tarde. Entonces podemos hacer un ajuste sencillo para hacer que reaccione a la luz. Entonces, lo primero es lo primero, entra en configuración y asegúrate de que contenido del motor de espectáculos y el contenido de show plug in estén ambos seleccionados. Lo que eso va a hacer es exponer Unreal Engine a todo su motor y enchufar contenido Esa es la razón por la que estamos haciendo eso es porque vamos a entrar en el reproductor y luego vamos a seleccionar el libro de papel y notar que su material actual está configurado en el material de sprite enmascarado y no iluminado, y queremos cambiarlo hasta el material y queremos cambiarlo hasta de sprite iluminado enmascarado, que va a abrir nuestro sprite a recibir Entonces entremos al nivel uno, dale play. Noto que ahora nuestro sprite está aceptando la luz y está reaccionando ante ella. Los cambios de color se basan en la iluminación de rebote a su alrededor. Literalmente, cuando la capa está fuera de luz, se puede ver que eso es bastante genial. Y ahora, cada vez que el personaje jugador se mueve hacia un área oscura, puedes ver la oscuridad a su alrededor. Eso es genial. Pero ahora que ya lo hemos hecho, agreguemos un poco de luz al personaje que siempre tenga algo que esté brillando luz. Ahora, para hacer eso, simplemente entramos en el héroe, seleccionamos el componente cápsula. Y lo que queremos hacer es que queremos añadir luz. Bien, comenzaremos con una luz puntual básica. Vamos a arrastrarlo hasta aquí. Y por aquí. Ahora, el personaje siempre llevará consigo un poco de luz. Muévelo hacia el personaje. Veamos cómo se ve eso. Observe aquí, es un poco demasiado brillante, está brillando en todo. Pero cuando el personaje jugador se encuentra ahora en una zona oscura, todavía tienen una luz sobre ellos. Podemos entrar. Levanta su posición y muévelo más atrás para ablandarlo un poco, y luego ahora mucho mejor no visible en áreas claras Pero una vez que entres en un área oscura, solo se está poniendo un poco de luz sobre el personaje del jugador que realmente lo está ayudando a verse un poco más y en la escena. Bien. Ahora, puedes hacer todo tipo de ajustes a la iluminación. Puedes cambiar su posicionamiento, puedes cambiar donde está. Todo se reduce a ti, pero esa es solo una forma genial agregar algo de vida a tu sprite 92. 89 toques generales para el nivel: Todo bien. Así que déjame rápidamente solo hacer un poco de diseño suave y de nivel lento. Entonces he agregado en otra plataforma aquí, agregué esto aquí. Bien, así que vamos a ver rápidamente. ¿El jugador puede llegar a esa plataforma? Sí, el jugador puede llegar a esa plataforma. Eso es bueno. Déjame opy y pega eso. Asegúrate de que estos dos se junten correctamente. ¿Puede el jugador saltar sobre esta plataforma y luego esta excelente. Ahora, asegúrate de que sea un desafío. Siempre es bueno poner al enemigo arreglado en un lugar difícil de alcanzar para el jugador. Permítanme elevar su posición sólo un poco. A ver. Cómelo y es agradable. Ahora que ese enemigo a distancia está allá arriba, estoy por aquí y lo pongo, aguanta, déjame asegurarme de que su posición es negativa uno, negativo 20 Ahora ese es un enemigo a rango. Voy a poner a otro enemigo a distancia justo por aquí. Negativo en el posicionamiento, bueno. Entonces voy a poner un neem cuerpo a cuerpo. Esta es la siguiente fase de desarrollo de juegos. Cuando hayas terminado con tu planeación, vas a hacer tu código de arte y animación y luego audio. Eso va a hacer componentes individuales, pero los componentes individuales realmente no hacen que el juego este enemigo sea el personaje jugador, los niveles. Lo que realmente hace un juego es cuando estos componentes se juntan de una manera de interactuar entre sí. Oh, perdón por eso. Observe que está luchando por moverse, ¿por qué? Porque le falta navegación. Agreguemos rápidamente veamos, una gran malla nerviosa limita el volumen Permítanme aumentar su tamaño para ser alrededor de 20 aquí, excelente, y luego aumentar su altura para ser alrededor de 20. Eso es demasiado profundo. No, no necesito mucho ancho. Pongamos eso a unas diez. Bueno y luego moverlo sobre todos estos diferentes personajes. Bien. Ahora, en cuanto a su altura, déjelo caer al suelo para empezar, pero luego significativamente buffets de altura a, digamos, 20, para que sea capaz de mirar estas áreas de navegación Bien, 20 es razonable. A lo mejor podamos ir un poco más alto. Hagamos eso 30. Bueno. Hay estos límites de navegación, aumentar un poco su ancho, aumentar su longitud alrededor de 30 Creo que 30 es justo para aquí. Entonces como esto bloquea al auto enemigo, ya es bastante bueno. Después copiaremos ese límites para crear un segundo volumen de límites Y ese volumen encuadernado sólo va a escalar su ancho hacia abajo porque este siguiente sólo va a aguantar. No quiero que llegue hasta las escaleras. Aquí estamos perfectos y luego copiamos eso y lo pegamos en el mundo, y aquí. Este siguiente volumen de límites tiene que ser aún más pequeño porque todo lo que tiene que hacer es manejar la arena de aquí Bonito. Por lo que nuestros enemigos son capaces de moverse por todas esas zonas. A continuación, dejaré caer a otro enemigo masculino por aquí. Eso es dos, claro. Y Valla tenemos las makings de un nivel muy básico. Oye. Ahora, nuestros enemigos en realidad son capaces de perseguirnos adecuadamente. Ese está muerto. Bonito. Ahora que venimos hasta aquí, nos están lanzando bolas mágicas. Oye, oye, mueres, mueres. Ese también está muerto. Y ahora, muere muere dos, y ahora que eso está hecho, seguimos adelante triunfalmente Ahora fíjate que este material de sprites no llega tarde, así que vamos a hacer algunos ajustes solo a ese material de sprites Entonces seleccionaremos al enemigo a distancia, iremos a Viewport, seleccionaremos el libro de papel y lo ajustaremos al material del sprite tardío Y luego le vamos a agregar una luz puntual. Bien. En realidad, vamos a traerlo aquí. Algo así como aquí. Eso está bien. Y luego vamos a ajustar rápidamente el color de las luces para que sea verde. Oh, eso es verde. Perfecto. Y entonces vamos a ahora que hemos ajustado esa luz para que sea verde, lo siguiente que vamos a hacer es que vamos a reducir el radio. A ver. Vamos a bajar su radio de atenuación. No 200. Hagamos 150. 150 no es suficiente, 100. Bonito. Ahora, ese es un pequeño radio de atenuación agradable ahí mismo. Eso es bueno. Ahora con eso, volveremos al nivel. Y esta vez, creo, déjame sacar al personaje del jugador y moverlo hasta aquí para que podamos llegar rápidamente a la acción, matar a este tipo. Bien, ven aquí. Ahora miren eso. Oh, pero tenemos un problema. Entonces ahora mismo en el campo enemigo, el centro de atención está bajo el flip book, así que está siendo volteado Entonces ahora vamos a conectarlo al componente cápsula para que no se dé la vuelta. Bien. Adiós. Ahora es tarde y tiene ese pequeño resplandor verde. Pero siempre podemos ajustar la posición del resplandor verde. Podemos ponerlo más cerca de los pies y echarlo atrás solo un poquito. Sólo un poco. Podemos bajar su intensidad a 2,500 y luego aumentar un poco su radio de atenuación y luego volver a bajar su intensidad a 1,500 Ahora con eso, echemos un vistazo a cómo se ve en ganancia. Por favor, muere. Te ataco, adiós. Ahora se ve bien, pero ahora está un poco demasiado cerca del suelo. Tenemos pero eso es genial. Todavía hace frío para ver eso. Vamos a aumentarlo un poco. De vuelta aquí, y luego levantarlo un poco más. Eso debería estar bien. Lo siguiente que vamos a hacer es en el EM a distancia, abramos ese proyectil, y luego vamos a agregar en una luz una luz, LUZ, una luz puntual Bien. Voy a arrastrarlo por aquí. Y entonces, claro, color claro va a ser verde que bonito verde. Y luego el radio de atenuación lo bajará a aproximadamente 150 es demasiado. Hagámoslo 100 y veamos si esta en cuál está la esfera? Bien. Entonces ahora veamos cómo se ven los proyectiles ¿Por a mí un proyectil? Sí, ahora los proyectiles tienen una pequeña luz agradable que se mueve con ellos Es solo un toque suave. Ten en cuenta, claro que puedes Oh, Dios mío. Muere, muera, muera, muera. Bien, te has ido. Ahora, todo esto es solo para mostrarte algunos pequeños toques. Esto es sin siquiera agregar tu propio audio personalizado o los efectos de calor y el daño. Ahora es el momento para mí en el siguiente video, te voy a dar tu prueba final, que va a ser para crear un jefe EM. Con todo lo que has aprendido, todo debería unirse. 93. Haz un enemigo jefe como práctica final: Ahora que has ido aprendiendo todo lo que tengo para enseñarte sobre los fundamentos del desarrollo 2.5 d, ya estás listo para tu práctica final Ahora, lo que harás en esta área o en cualquier área que hayas designado para tu personaje jefe es que vas a crear un jefe enemigo, y esta es tu prueba de práctica final antes seguir adelante creando tus propios proyectos de juego. Ahora, las animaciones que vas a usar para ese proyecto se van a encontrar todas en una simple plantilla gratuita cada punto IO llamado Demon slime y tiene muchas animaciones diferentes desde comenzar como un pequeño blob hasta cuando puede elevarse como un personaje jefe completamente madurado Tiene una animación de ataque, tiene un alto y tiene llamas además de lanzar un hechizo. Ahora, el enlace para esto se va a incluir con el curso. Ahora, una vez que tienes eso y lo has importado, ahora tienes todos los conocimientos que necesitas para crear un jefe sencillo. Como simple ilustración de lo que podrías hacer es que podrías tener al jefe viniendo y atacando al jugador. Ese es un ejemplo simplificado, ¿de acuerdo? Y entonces puedes hacer otras cosas, como, por ejemplo, golpear para que una vez que el jefe haya sido atacado a cierto nivel, genere en enemigo arreglado Ahora, ojalá pueda conseguir esto de una sola vez. Me ha dañado. Se acabó el juego. Bien. Entonces ese es un ejemplo sencillo. Ahora bien, hay muchas formas de diseñar la IA de jefe, pero un consejo rápido que te daría es que esta está configurado con dos fases diferentes. En la primera fase, lo único que hace es hacer un ataque cuerpo a cuerpo cuando está en el rango En la segunda fase, se genera en un solo enemigo a distancia que está destinado a atacar al jugador Eso es solo un simple conjunto de ejemplos de lo que podrías hacer para ser creativo. Si añades en el tocón, podrías hacerlo para que en la fase uno, seleccione aleatoriamente entre un ataque cuerpo a cuerpo y el tocón o lanzar un hechizo se pueda llamar como animación antes de que traiga a ese enemigo a distancia Hay muchas maneras de crear un jefe. Sólo puedo hacer recomendaciones. Depende de ti como desarrollador de juegos crear cosas por ti mismo. Con ese ejercicio de práctica final, quiero agradecerles por completar el curso de desarrollo de juegos de 2.5 d. Espero que hayas aprendido mucho para avanzar en el desarrollo de juegos. Recuerda siempre pensar bien, planificar antes de ejecutar. Y finalmente, realmente recuerden que planear las cosas está realmente dominada, ¿de acuerdo? Planear está bien. Así que no tengas miedo como desarrollador de juegos a solo escribir cosas y usarlas como tu guía. Y mi último consejo sencillo es en aras de simplificar cómo te gusta desarrollar juegos Siempre comienza con un diseño generalizado, luego pasa al código y luego, por último, más bien después de ese arte. Y luego, por último, audio para lo que sea que estés haciendo por tu juego. Hasta la próxima vez que nos encontremos, soy hiper dev y en caso de cualquier duda, puede enviarme un mensaje, pero espero que hayas aprendido mucho de este curso De lo contrario, sal y no olvides que juego de tus sueños no se va a construir solo. Te lo ruego bien.