Tabla de contenidos

Introducción

Bienvenidos todos! No importa cuántos años pasan, los juegos de rol siguen siendo un género popular. Muchos desarrolladores sueño de hacer su propia, ya sea para experimentar con la mecánica nunca antes visto-o un simple deseo de contar una historia profunda e interactiva. Dada increíbles capacidades gráficas del Unreal Engine, también es una opción superior del motor para muchos la consecución de este fin de capturar el estilo estético único que buscan.

En este tutorial, vamos a estar dando los primeros pasos en este camino y le mostrará cómo crear un RPG de acción con el Unreal Engine. Se contará con un controlador de jugador de tercera persona, que puede moverse, saltar, atacar y bloquear, junto con un enemigo que va a perseguir al jugador y atacarlos. Este tutorial también cubrirá los fundamentos de la creación transiciones de animación para eso también. El proyecto que se muestra aquí puede ser una gran base para un juego mucho más grande, o simplemente una buena manera de aprender muchos de los sistemas en el Unreal Engine. De todos modos, si usted está listo para empezar a hacer sus propios juegos de rol, vamos a bucear en.

Si es tu primera vez que utiliza el motor, sin embargo, a continuación, le recomendamos ver nuestro tutorial de Unreal Engine para principiantes en primer lugar.

GIF de RPG de acción Unreal Engine

No se pierda! extremos de la oferta en

  • Accede a los más de 200 cursos
  • Nuevos cursos añadió mensual
  • Cancelar en cualquier momento
  • Los certificados de terminación

    ACCESO ahora

    Proyecto Archivos

    En este tutorial se va a utilizar unos modelos y animaciones de Mixamo. Usted puede elegir conseguir su propio, o descargar los que usaremos para el proyecto.

    Además, se puede descargar el proyecto completo para ver cómo todos los niveles, modelos y planos de Interact.

    Creación del proyecto

    Para empezar, vamos a crear un nuevo proyecto (que no es necesario incluir el contenido de arranque). Cuando el editor se abre, vamos a crear cuatro nuevas carpetas.


    • Animaciones
    • Blueprints
    • Niveles
    • Modelos

      Guardar el nivel actual de los Niveles carpeta como MainLevel .

      Nuevo proyecto en el Unreal Engine

      A continuación, descargar los activos desde el principio del tutorial y extraer en cualquier lugar de su ordenador.


      1. En primer lugar, abrir los modelos Contenido de la carpeta carpeta y arrastrar el contenido en los modelos de nuestro proyecto folder.Import todos esos activos cuando es promovido a.
      2. A continuación, haga lo mismo para los Contenidos de Animaciones preguntó Folder.When para seleccionar un esqueleto para la animación, elija el jugador del enemigo uno dependiendo de la animación.

        Ahora debería tener ambos modelos y todas las animaciones enemigas y jugador necesarias para el tutorial.

        Animaciones y modelos agregados de enemigo y el jugador en el proyecto Unreal Engine

        Antes de empezar a crear el jugador, tendremos que configurar las entradas de control. En el Configuración del proyecto ventana ( Editar> Ajustes del proyecto … ) hasta llegar a la fuerte> entrada < pantalla.

        A continuación, desea crear tres nuevos Asignaciones de acción y dos nuevos Eje Asignaciones . Rellenarlos como se ve en la imagen de abajo:

        Enlaces del proyecto Unreal Engine para el movimiento

        Creación del jugador

        Es hora de crear nuestro jugador. En el Modelos carpeta, cree un nuevo proyecto (clase padre de Carácter ) llamado Reproductor . Haga doble clic en él para abrir el editor de modelo.

        Tenemos algunos componentes ya creados por nosotros.


        • CapsuleComponent (colisionador) ArrowComponent (define la dirección de avance) Mesh (malla del esqueleto de nuestro jugador)
        • CharacterMovement (movimiento, saltar, etc)

          En primer lugar, seleccionar el Mesh .


          • Establecer el esqueleto de malla a PlayerModel
          • Establecer la ubicación a 0, 0, -90
          • establecer la rotación a 0, 0, -90

            Configuración Blueprint Unreal Engine jugador

            Cuando se ataca, tendremos que comprobar si en realidad estamos chocar con nada. Esto se hará con un colisionador de daños. Crear un nuevo caja de colisión componente y que sea un niño de la malla.


            • Establecer la ubicación a -20, 100, 100
            • Definición de las extensiones de la caja de 20, 32, 32
            • Activar simulación genera eventos Hit
            • Establecer la colisión predeterminadas para disparador

              colisionador daño añadido a Blueprint jugador en Unreal Engine

              A continuación, tenemos que configurar la cámara. Con el fin de tenerlo órbita alrededor de nuestro jugador, vamos a crear una primera resorte del brazo componente. Esto mantiene sus hijos a una distancia.


              • Establecer la ubicación a 0, 0, 70
              • establecer la rotación a 0, -20, 0

                resorte del brazo de componente añadido al proyecto Unreal Engine

                Como un niño del brazo de resorte, crear un Cámara componente.


                • Establecer la ubicación a 0, 60, 0

                  Cámara añadido al proyecto Unreal Engine

                  Ahora que tenemos todo de nuestra configuración de componentes, podemos empezar con nuestras variables.


                  • Daños (entero)
                  • CurHp (entero)
                  • MaxHP (entero)
                  • banda (booleano)
                  • Bloqueo (booleano)

                    A continuación, puede hacer clic en el Compilar y relleno en algunos valores por defecto.


                    • Daño = 1
                    • CurHp = 5
                    • MaxHP = 5

                      Varios componentes añadidos a blueprint Unreal Engine

                      A continuación, vamos a volver al editor de niveles y crear un nuevo proyecto. Esto va a ser de clase padre GameModeBase y que va a ser llamado MyGameMode . Abrirlo, y todo lo que vamos a hacer aquí es establecer la Hipoteca defecto Clase a Reproductor .

                      Hipoteca defecto fijado Clase de jugador en el Unreal Engine

                      De vuelta en el editor de niveles, vamos a ir a la Ajustes World panel y fijar el GameMode Ignorar a nuestro MyGameMode . Ahora bien, cuando presiona el juego, el jugador debe desovar.

                      MyGameMode anteproyecto añadido a proyecto Unreal Engine

                      Orbit Cámara Lógica

                      Vamos a ir al gráfico de eventos a todos los jugadores y comenzar mediante la implementación de la funcionalidad de la órbita de la cámara. Esto nos permitirá mover el ratón alrededor, haciendo que la cámara de moverse por el jugador como en un juego en tercera persona.

                      La Evento Ratón Y nodo se desencadena cuando se pasa el ratón hacia arriba y hacia abajo. Estamos creando una rotación a lo largo del eje Y y agregó que al brazo de resorte. Si usted presiona el juego, usted debe verlo en el trabajo.

                      lógica Blueprint a la cámara giran en Unreal Engine

                      Uno de los problemas, sin embargo, es que podemos girar en todos los sentidos. Lo que tenemos que hacer, es sujetar la rotación. Evitar que se mueva demasiado y demasiado abajo. Vamos a estar usando el Clamp ángulo nodo para sujetar el eje de rotación Y. Ahora bien, si usted presiona el juego, verá que hay un límite en donde se puede girar la cámara en posición vertical.

                      lógica Gráfico de sucesos para rotación de la cámara de sujeción en Unreal Engine

                      Para la rotación horizontal, podemos usar simplemente evento de ratón X nodo y enchufe que en el Añadir guiñada entrada del controlador nodo. Esto rotará automáticamente el jugador en posición vertical.

                      Lógica para la rotación horizontal de la cámara en el Unreal Engine

                      Ahora tenemos una órbita cámara completamente de trabajo.

                      Mover al jugador por

                      Para el movimiento de los jugadores, estamos en primer lugar va a ser la comprobación de que el jugador está utilizando el Move_ForwardsBack eje de entrada. a continuación, vamos a comprobar si están actualmente atacante o bloqueadora. Si no es así, vamos a pasar en la dirección respectiva.

                      También puede seleccionar el CharacterMovement componente para cambiar algunas de las propiedades de movimiento.


                      • Establecer la aceleración máxima a 1000
                      • Establecer la velocidad máxima a 400 Walk
                      • Establecer el control de aire a 1,0

                        Ahora bien, si usted presiona el juego, usted debe ser capaz de moverse con relación hacia delante y volver a donde estás frente.

                        lógica gráfico de eventos para el movimiento del jugador

                        El movimiento horizontal es básicamente el mismo, pero nosotros estamos verificando para el Move_LeftRight de entrada y el establecimiento de la dirección del vector mundo a la derecha del jugador.

                        lógica de eventos para el movimiento del jugador horizontal en el Unreal Engine

                        Si usted presiona el juego, usted debe ver que ahora podemos mover completamente alrededor. Puesto que estamos utilizando la clase de caracteres de los padres, que viene con un montón de cosas pre-hechos tales como saltar. Para llevar a cabo el salto, sólo tenemos que comprobar si estamos en la tierra, y dispare el nodo de salto.

                        lógica gráfico de eventos para permitir que el jugador salte

                        Atacar y bloqueo

                        El jugador puede atacar y bloquear ataques entrantes. En primer lugar, para atacar comprobaremos para la entrada apropiada y asegurarnos de que estamos ya no atacar o bloquear. A continuación, vamos a establecer la variable de atacar a verdadero, espera 1,5 segundos (la duración de la animación de ataque) y la puso de nuevo a falso.

                        lógica gráfico de eventos para el jugador atacante RPG de acción

                        Es similar para el bloqueo. Vamos a comprobar para la entrada, asegúrese de que no estamos atacando a continuación, establezca la variable de bloqueo en true. Cuando soltamos el botón, vamos a establecer a false.

                        Lógica de bloqueo gráfico de eventos de acción RPG carácter

                        He aquí un resumen de todo lo que debe tener en el gráfico hasta el momento. Me he comentado las diferentes secciones para que sea más fácil de leer. Usted puede hacer esto mediante la selección de un grupo de nodos, a continuación, hacer clic derecho y haciendo clic en Crea comentario a partir de la selección .

                        Descripción general del gráfico de eventos para el movimiento de la cámara, el movimiento del jugador, y el jugador combate < / p>

                        animaciones de los jugadores

                        Tenemos nuestra configuración jugador pero el modelo es estático. Para solucionar este problema, vamos a ir a la Modelos carpeta y crear una nueva > Animación Blueprint . Cuando se pide un esqueleto, elegir el modelo de reproductor. Llamar al plan PlayerAnimator .

                        PlayerAnimator anteproyecto añadido a Unreal Engine Navegador de contenido

                        Haga doble clic para abrirlo. En primer lugar, vamos a crear una nueva máquina de estados (botón derecho del ratón y crear nodo de máquina de estados). Tapar esto en el Salida Pose . Una máquina de estados determina básicamente lo que la animación para jugar en base a entradas dadas (nos estamos moviendo? Atacar? Bloquear?).

                        Pose de salida añadido a la máquina de estado del jugador

                        Haga doble clic en la máquina de estados para abrirlo. Aquí es donde vamos a conectar los 7 animaciones que tenemos. Arrastre en como tal, y conectar el nodo de entrada a la animación de inactividad.

                        Nueva máquina de estado creada para animaciones de los jugadores

                        En la parte inferior izquierda podemos crear las variables que usaremos. Todos estos son booleanos.

                        Variables para rastrear las acciones del jugador para máquina de estados

                        Empecemos con la animación de inactividad. Conectar a que todas las otras animaciones que pueden hacer la transición a.

                        animación de inactividad reproductor conectado a otros estados de movimiento y combate

                        Se verá que cada conexión tiene un botón blanco círculo. Haga doble clic en la transición de ejecución hacia delante, que nos llevará a un gráfico donde podemos configurar una condición. Esto va a devolver verdadero o falso de si o no podemos entrar en la transición.

                        lógica a las transiciones de control cuando se mueve hacia adelante

                        A continuación, puede volver a la máquina de estados. Seleccione la transición que acaba de hacer y haga clic en Promover a Compartida . Llamarlo Para Adelante . Esto es básicamente una regla de transición salvado podemos utilizar de nuevo sin necesidad de volver a entrar en el mismo gráfico.

                        Unreal Engine con la lógica de transición salvado salvado para más uso

                        Vamos a ir adelante y rellenar el resto de las transiciones apropiadas.

                        Transitions añadido a la máquina de estado de animación Player

                        Tenemos las transiciones de la animación de inactividad, pero ¿qué hay de nuevo a él? Crear una transición de cada animación, de nuevo a marcha lenta. La condición va a ser el mismo que el que va a la misma, pero con un no nodo en el medio. Básicamente lo contrario.

                        máquina de estado del jugador que muestra la condición para la transición

                        A partir de aquí, todas las animaciones son más o menos lo mismo en la forma en que están conectados, a excepción de la Player_Block una. Para ello, sólo podemos transición de vuelta al estado de reposo. Por lo tanto crear una transición de todas las otras animaciones, usando el Para bloqueo regla de transición.

                        estado de bloqueo reproductor conectado a todos los demás animaciones en jugador de la máquina de estado

                        Para el resto de las animaciones, queremos crear una transición hacia y desde todos los demás animación como ya tenemos con la animación de inactividad. Sólo asegúrese de que no hay transición de regreso de la animación bloque.

                        Esto es lo que la máquina de estado final debe ser similar. Básicamente para cada animación -. Pensar lo que puede animaciones transición a

                        Descripción general del gráfico de eventos de la máquina de estados reproductor para animaciones

                        Tenemos la configuración de las animaciones, pero no hay lógica detrás de establecer las variables todavía. Ir a la gráfica de eventos , y hay dos nodos por defecto. Cada marco, queremos emitir el dueño del peón a una clase de jugador para que podamos acceder a sus propiedades.

                        Jugador lógica fundido en el Gráfico eventos para acceder a las propiedades

                        Lo que queremos hacer es conseguir la velocidad del jugador. Vamos a utilizar esto para determinar en qué dirección nos estamos moviendo en, por lo que podemos decidir qué animación para jugar. El nodo de secuencia puede desencadenar una serie de diferentes nodos secuencialmente. Haga clic en Añadir pin por lo que tenemos 5 salidas.

                        nodo Secuencia añadió a las propiedades de jugador de sujeción en el Unreal Engine

                        Así es como queremos establecer los valores booleanos en movimiento.

                        Moving booleanos establecidos dentro de gráfico de eventos Unreal Engine para el jugador

                        Los booleanos atacantes y bloqueadoras será simplemente basarse en respectivas variables de nuestro jugador.

                        ataque y bloqueo de nodos configurado con Reproductor de eventos Gráfico

                        Por último, de vuelta en el Reproductor modelo seleccionar el Mesh componentes y establecer el Anim Clase a PlayerAnimator .

                        Jugador Anim ircled y estableció

                        Ahora debería ser capaz de ver las animaciones jugar en el juego!

                        Volumen de navegación

                        Antes de crear el enemigo, tendremos que configurar el NAV malla. Esto permite una IA para moverse libremente a través de un medio, en torno a navegar y por encima de obstáculos. En el Modos Panel, busque el Nav malla límites de volumen y arrastre de objetos que, en.


                        • Establecer la ubicación a 0, 0, 150
                        • Set la X e Y a 2000
                        • Establecer la Z a 500

                          También aumentó el tamaño de la planta. Puede pulsar P para cambiar la visibilidad de navegación de malla.

                          Mesh límites que muestran en Unreal Engine

                          Creación del Enemigo

                          Modelos carpeta, crear un nuevo modelo de tipo Carácter . Llamarlo Enemigo . En el modelo, sólo vamos a modificar el componente de malla.


                          • Establecer la malla estática a EnemyModel
                          • Establecer la ubicación a 0, 0, -90
                          • establecer la rotación a 0, 0, -90

                            Enemigo Blueprint creada en el Unreal Engine RPG de acción

                            Ahora, para las variables.


                            • Salud (entero)
                            • Daños (entero)
                            • banda (booleano)
                            • Dead (booleano)
                            • Target (Jugador)

                              Las variables establecidos para enemigo en Unreal Engine RPG de acción

                              Gráfico de eventos , estamos en primer lugar va a conseguir al jugador.

                              gráfico de eventos con el personaje del jugador obtenido en Blueprinting lógica

                              A continuación, cada cuadro vamos a utilizar el AI ir a nodo. Esto utilizará el navegador via malla para mover al enemigo hacia el jugador. Asegúrese de ajustar la Aceptación Radio a 150 para que el enemigo no va a ir dentro del reproductor.

                              Mover a la IA nodo añadido a la acción RPG enemigo

                              La El éxito de salida se activa una vez que el enemigo llegue al jugador. Cuando esto sucede vamos a permitir que la variable atacar si podemos, espere 2,667 segundos (ataque duración de la animación), a continuación, volver a habilitar la variable atacar.

                              Lógica para una vez que el enemigo llegue al jugador de RPG de acción

                              Seleccione el CharacterMovement componente.


                              • Establecer la aceleración máxima de 300
                              • Establecer la velocidad máxima a 250 Walk

                                ventana de Unreal Engine detalles con ajustes de velocidad aplicada

                                De vuelta en el editor de niveles, que puede arrastrar en un enemigo, juego de la prensa y probarlo!

                                Enemy Animaciones

                                Al igual que con el jugador, crear un nuevo proyecto de animación llamado EnemyAnimator . Asegúrese de que también va a asociar el esqueleto enemigo.

                                EnemyAnimator Blueprint creada en Unreal Engine

                                Dentro de la animación enemigo, crear una nueva máquina de estados, a continuación, haga doble clic en él para entrar.

                                nodo Pose de salida añadido para Enemy

                                Comenzar con las variables.


                                • Mover (Boolean)
                                • banda (booleano)
                                • Dead (booleano)

                                  A continuación, puede arrastrar en los 4 animaciones. Conecte la entrada a la animación de inactividad.

                                  máquina Enemigo Estado para animaciones

                                  Gancho las transiciones hacia arriba como la de abajo. Asegúrese de que la animación de morir no tiene transiciones de salida.

                                  máquina de estado Enemigo con varias transiciones añadidas en Unreal Engine

                                  Para evitar que la animación de morir a causa de bucle – doble clic en él, seleccionarlo y desactivar bucle de animación .

                                  Enemy Dying nodo añadido en Unreal Engine

                                  Gráfico de eventos , vamos a querer conectarlo como este.

                                  gráfico de eventos configurado para evitar morir bucle de animación

                                  Finalmente, de nuevo en el Enemigo modelo, seleccionar la malla y establecer el Anim Clase a EnemyAnimator .

                                  Enemy Anim Clase conjunto con animador en Unreal Engine

                                  dañar el Enemigo

                                  Ahora vamos a poner en práctica la capacidad para el jugador para dañar al enemigo. En el Enemigo modelo, vamos a crear una nueva función llamada TakeDamage. Crea una entrada de tipo entero llamado DamageToTake .

                                  lógica gráfico de eventos para el enemigo para tomar el daño de jugador

                                  Esto se llamó en el Reproductor modelo. Ahí, crear una nueva función llamada TryDealDamage . Esto hará que una gran variedad de enemigos solapados del colisionador daños. Sólo vamos a llamar a su función reciben daño.

                                  lógica gráfico de eventos para el jugador para tratar de acuerdo daños

                                  La TryDealDamage función será llamada cuando nuestros “éxitos” de animación del objetivo. Así que vamos a ir a nuestra PlayerAnimator y haga doble clic en el Player_Attack animación para abrirlo. Mover el cabezal de juego a donde queremos atacar. Haga clic derecho en la línea de tiempo y seleccione notfies Añadir Notificar> Nueva Notificar . Llame a este TryDamage . Una notificación es básicamente un evento personalizado que desencadena en un cierto punto en la animación.

                                  animación Unreal Engine con el gatillo de la función Try daños añadido

                                  Durante la PlayerAnimator gráfico de eventos, podemos crear el nodo AnimNotify_TryDamage. Sólo queremos lanzar el reproductor de nuevo y llamar a la función TryDealDamage.

                                  AnimNotify nodo añadido para el jugador para intentar función de daño

                                  Ahora debería ser capaz de juego de la prensa y derrotar al enemigo.

                                  Atacar el jugador

                                  Ahora tenemos que poner en práctica la capacidad del enemigo para atacar también. En el Reproductor modelo, vamos a empezar con la creación del , función TakeDamage. Esto tendrá una entrada de tipo entero llamado DamageToTake . Cuando la salud del jugador llega a 0, el nivel se reiniciará.

                                  Tomar la lógica de daños para el jugador en el juego de rol de acción

                                  Enemigo modelo, crear una nueva función llamada TryAttack . Aquí, sólo estamos comprobando nuestra distancia del jugador y si está dentro de un rango, vamos a hacer daño.

                                  lógica plan Enemigo con la nueva lógica ataque probarlo

                                  Por último, tenemos que ir a la EnemyAnimator modelo, haga doble clic en el Enemy_Attack animación y crear un notificar en el punto de daño.

                                  Enemigo Animación con el gatillo Ataque Try añadió

                                  En el gráfico de eventos enemigo animador, podemos crear el nodo de notificar caso y tratar de ataque como tal.

                                  AnimNotify añadido al enemigo Evento Graph

                                  Ahora usted puede presionar el juego y probarlo!

                                  La fijación de un par de cosas

                                  Usted puede notar que cuando el enemigo ataca, su cámara problemas técnicos fuera un poco. Esto se debe a que la cámara se mueve automáticamente en función de si hay algo entre ella y el jugador. Ir a la Reproductor modelo, seleccione el brazo de resorte y desactivar Do colisión de prueba .

                                  opción Do prueba de colisión resaltado en Unreal Engine

                                  También puede querer que el enemigo siempre se enfrenta al jugador. Para solucionar esto, podemos ir a la Enemigo modelo y agregar estos nodos de la ruta caso garrapata.

                                  lógica Editado por la rotación de la cámara en el Unreal Engine gráfico de eventos

                                  Conclusión

                                  Y hay que ir! Ahora tenemos un juego de rol de acción de trabajo!

                                  A través de este tutorial, hemos creado un controlador de tercera persona jugador, una cámara giratoria, IA de los enemigos, las máquinas de estado de animación, y más – todo ello utilizando el Unreal Engine y planos. Con estas bases en su lugar, el proyecto puede ampliar fácilmente en caso de que desee añadir más niveles, enemigos, o una variedad de otras características. Puede, por supuesto, utilizar los fundamentos cubiertos aquí para crear otros diferentes tipos de juegos.

                                  De cualquier manera, esperamos que hayan disfrutado el tutorial, y buena suerte con sus proyectos de juegos!

                                  Acción RPG hecho con Unreal Engine

                                  Mensajes relacionados
                                  Cómo crear un juego de acción en primera persona en el Unreal Engine Unreal Engine para los principiantes - Build 5 juegos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *