Saltar al contenido
Another Indie Studio

Cómo abrir y cerrar una puerta en Unreal Engine 4

A continuación veremos cómo hacer el código por Blueprints de abrir y cerrar una puerta para nuestro videojuego en Unreal Engine 4.

En el vídeo enseño una de las formas de afrontar este problema.

Creando el Matinee [Legacy]

Lo primero que debemos hacer es crear un Matinee con el fin de activarlo posteriormente por Blueprints (Cinematics -> Add Matinee [Legacy]).

Preparando el Workspace (1)

Clicamos en Abrir Matinee (u Open Matinee) y nos saldrá un área de trabajo o workspace vacío. Tras esto, seleccionamos el objeto, desde la escena, que queremos animar; en nuestro caso la puerta, y pulsamos clic derecho sobre el workspace vacío. Posteriormente, aparecerá un menú desplegable, y seleccionamos Add New Empty Group.

Preparando el área de trabajo (2)

Cuando tengamos el grupo vacío, hacemos clic derecho sobre éste y seleccionamos Añadir nueva Pista de movimiento.

Animando la puerta (1)

Seleccionando el grupo de movimiento, y posicionándonos en el instante 0.00 del timeline, añadimos un Key (el icono rojo de la parte superior)

Animando la puerta (2)

Tras esto, nos desplazamos en el timeline hasta la duración final de nuestra animación, y hacemos lo mismo añadiendo un Key. En mi caso 1.5 segundos.

Clicando en el último triángulito del timeline (el último Key), rotamos nuestra puerta desde la ventana gráfica o en el menú detalles de tal forma que quede abierta.

Comprobación de que la animación está bien hecha

Existe una forma muy sencilla de ver cómo será el resultado, y con ello ver si la animación está bien creada.

Esto se hace dándole clic a play y reverse en el menú superior, dentro del Matinee.

Creando los triggers o activadores

Con la animación terminada, vamos a hacer que se pueda abrir y cerrar la puerta sólo cuando el jugador se encuentre cerca. Para ello creamos disparadores de la caja, colisiones invisibles que detectan si el jugador está dentro, fuera, o acaba de entrar, etc. Los triggers se pueden encontrar en el menú Modos -> Volúmenes -> Trigger Volume (o disparador de la caja).

Con el trigger creado, lo colocamos en la posición que queramos y con el tamaño adecuado, de tal forma que se pueda abrir y cerrar la puerta y no haya nada extraño (como poder abrirla desde mucha distancia).

Repetimos este mismo proceso, pero del otro lado de la puerta.

El código

Con todos los activadores y la animación puesta a punto, ya sólo nos falta ensamblarlo. Para ello dejo por aquí el código que he decidido utilizar para abrir/cerrar la puerta (esto se debe duplicar e intercambiar las salidas A y B, usando el otro trigger volume) .

Para los que no os familiaricéis mucho con este editor, voy a intentar explicarlo todo lo más claro posible.

Seleccionando uno de los dos trigger volumes, hacemos clic derecho -> Add event for (nombre de tu trigger) -> Collision -> Add On Actor Begin Overlap.

Repetimos esto último, pero seleccionando  Add On Actor End Overlap.

Una vez tenemos estas dos funciones (o condiciones), pulsando clic derecho y escribiendo la función a añadir, ya podemos replicar el código copiando bloque a bloque. Sin copiar los «Meta» aún.

Cuando sólo queden por colocar los «Metas», lo haremos de la siguiente manera: «Meta» significa referencia, por lo que deberemos seleccionar desde la ventana gráfica el objeto en cuestión al que hace referencia esa función. Al estar seleccionado, ya se puede añadir una referencia pulsando clic derecho en el Blueprint del nivel.

Espero que os haya servido. Si tenéis alguna duda, podéis pasaros por el vídeo en donde se muestra todo de una manera más clara.