Las macros son básicamente lo mismo que los grafos de nodos contraídos. Tienen un punto de entrada y un punto de salida designados por nodos de túnel. Cada túnel puede tener cualquier número de pines de ejecución o de datos que son visibles en el nodo de la macro cuando se utiliza en otros blueprints y grafos.
Cómo crear macros
En este tutorial, crearás una macro para comprobar si un personaje tiene suficiente energía para saltar. En caso de que tenga suficiente energía, la macro agotará la energía del jugador, mostrará su valor actual en la pantalla y luego llamará a la función de salto. Si no dispone de suficiente energía, la macro mostrará en pantalla el mensaje «no tienes energía» y le impedirá saltar.
Para este ejemplo, utilizaremos el Proyecto en tercera persona de blueprint con el contenido de inicio habilitado.
Después de crear y ejecutar tu proyecto, dirígete a la carpeta
Content/ThirdPerson/Blueprintsy abre el blueprint BP_ThirdPersonCharacter.Dirígete a la ventana My Blueprint y haz clic en el botón Añadir macro.
Se crea una nueva macro. Selecciónala y pulsa F2 para cambiarle el nombre a EnergyCheck.
Con la macro seleccionada, dirígete a Detalles > Entradas, haz clic en Añadir(+) para crear una nueva Entrada con el nombre BeginCheck y cambia su tipo a Exec (pin de ejecución).
Dirígete a Detalles > Salidas y clic en Añadir(+) para crear dos nuevos resultados. Asigna a una el nombre HasEnergy y a la otra NoEnergy. A continuación, establece los tipos de pin Exec.
Esto creará nodos de entrada/salida en el propio nodo de la macro que puedes utilizar para pasar datos hacia y desde la macro.
Para la entrada, utiliza un pin Exec con el nombre BeginCheck para iniciar la macro. A continuación, crea una secuencia de comandos que compruebe si el jugador tiene suficiente energía para saltar y, de ser así, ejecuta el pin HasEnergy. Si el jugador no tiene suficiente energía, ejecuta el pin NoEnergy.
En la ventana My Blueprint, haz clic en el botón Añadir variable para crear una nueva variable de tipo float con el nombre Energy.
En la barra de herramientas, haz clic en Compilar, luego selecciona Energy y dirígete al panel Detalles para establecer su valor en 100.
En el grafo Energy, pulsa B + clic izquierdo para crear un nodo Branch.
Blueprintcontext_graphMientras mantienes pulsada la tecla Ctrl, arrastra la variable de tipo float Energy desde la pestaña My Blueprint hasta el grafo de la macro. Haz clic y arrastra el pin de salida para buscar un nodo de operador Greater (mayor que), y luego conecta el pin de salida a Branch.
Mientras mantienes pulsada la tecla Alt, arrastra la variable Energy para añadir un nodo Set.
Pulsa Ctrl y vuelve a arrastrar Energy para conectarlo a un nodo Subtact(-). Establécelo en 10 y conéctalo al nodo Set. Con esta secuencia de comandos, definimos que si la energía es > 0, restamos 10 del valor actual de energía.
Haz clic con el botón derecho en el grafo y añade un nodo Print String. A continuación, conecta el nodo Set Energy al pin In String.
Se añade un nodo Conversion que convierte el valor de Energy en una cadena que se imprime en pantalla, mostrando su valor.
Desde el pin False de Branch, añade otro nodo Print String e introduce el texto "¡Sin energía!" en el cuadro. A continuación, conecta el primer y el segundo nodo Print String a los pines HasEnergy y NoEnergy, respectivamente.
Blueprintcontext_graphAhora la macro está configurada para comprobar (y, si procede, restar) la variable Energy e imprimir si el jugador tiene suficiente energía o no, lo que se utiliza para determinar si el jugador puede saltar o no. Ahora, necesitas implementar la macro después de pulsar la tecla «Saltar», pero antes de que se ejecute la acción Saltar.
En EventGraph, arrastra el pin Pressed del nodo InputAction Jump y busca EnergyCheck.
Deberías ver que la macro que has creado aparece en Utilidades y tiene el icono Macro junto a su nombre.
Una vez añadida la macro, la secuencia de comandos de Saltar debería parecerse a la de abajo.
Haz clic en los botones Compilar y Guardar y, a continuación, cierra el blueprint.
En la barra de herramientas principal del editor, haz clic en Play.
Al pulsar la barra espaciadora para saltar, en la esquina superior izquierda de la pantalla se imprime el valor de energía. Cuando la energía esté en 0, ya no podrás saltar.
Resultado final
Este es un ejemplo básico de cómo utilizar una macro para ejecutar y consolidar una secuencia de comandos en un único nodo, mejorando la legibilidad de nuestro grafo de eventos y la secuencia de comandos del personaje principal. Además, podrías llamar a esta macro en otras instancias. Por ejemplo, si tienes alguna otra acción que reduce la energía del jugador y quieres comprobar si tiene suficiente energía para realizar la acción (como atacar), puedes ejecutar esta macro para comprobar si el jugador tiene suficiente energía para atacar después de pulsar la tecla de ataque y, a continuación, ejecutar un ataque desde el pin de ejecución HasEnergy.