Está en la página 1de 14

CURSO

Apuntes y réplica del procedimiento del jueves 13


de septiembre
I
Introducción

Eduardo Ruíz Vereo


Índice

Crear un Proyecto nuevo 1

Cambiar Lenguaje del Editor 2

Movimiento en la escena (Viewport) 2

Transformaciones tridimensionales 3

Dar forma al blanco 5

Programación del comportamiento 6

Definición del algoritmo. 8

Terminando el movimiento. 12
1.- Crear un Proyecto nuevo

Comenzamos abriendo Epic Games y procedemos a dar clic en Launch

1. clic en New Project


2. Nos aseguramos que estemos en la pestaña de Blueprint
3. Seleccionamos la plantilla de First Person
4. Confirmamos que esté seleccionado Desktop/Console
5. ‘’ Maximum Quality
6. ‘’ With Starter Content
7. Por defecto los proyectos se crean en Documents\UnrealProjects
8. Escribimos el nombre de nuestro proyecto
9. Damos clic en crear nuevo proyecto

1
2.- Cambiar Lenguaje del Editor

Las traducciones al español del editor tienen muchas deficiencias y no alcanzan a representar
correctamente las acciones que se realizan dentro de UE. Por ello, les recomiendo cambiar el lenguaje
para evitar confusiones. El inglés del editor es muy simple y bastante intuitivo, no requieren de
conocimientos avanzados de inglés para utilizarlo.

3.- Movimiento en la escena (Viewport)

Control Acción
Mouse izquierdo + arrastrar Mueve la cámara adelante y hacia atrás, y rota izquierda y derecha
Mouse derecho + arrastrar Rota la cámara
Mouse derecho + arrastrar + W Mueve la cámara haca enfrente
Mouse derecho + arrastrar + S Mueve la cámara haca atrás
Mouse derecho + arrastrar + A Mueve la cámara haca la izquierda
Mouse derecho + arrastrar + D Mueve la cámara haca la derecha

Al navegar con WASD + mouse derecho, se puede girar la rueda del mouse para incrementar o
decrementar la velocidad de movimiento de la cámara.

Si desean conocer más a fondo los controles del viewport de UE visiten:

https://docs.unrealengine.com/en-US/Engine/UI/LevelEditor/Viewports/ViewportControls

2
4.- Transformaciones tridimensionales

Los objetos tridimensionales que ocupen un lugar tridimensional dentro del espacio de UE contienen
tres transformaciones: Locación, Rotación, Escalamiento.

• Locación determinará las coordenadas tridimensionales del objeto, es decir, la posición.


• Rotación determinará el ángulo en el que se encuentra girado el objeto con respecto al espacio.
• Escalamiento determinará el tamaño del objeto con respecto a su tamaño original.

Dentro de UE estas tres transformaciones se representan con a través de estos gizmos respectivamente.

Las transformaciones se pueden aplicar a cada eje tridimensional, para hacerlo en un solo eje basta con
dar clic en el eje deseado y jalar con el mouse en la dirección de adentro hacia afuera o de izquierda a
derecha para realizar la operación.

Para aplicar en dos ejes hay que encontrar las líneas que conectan ambos ejes y realizar el mismo
movimiento.

Para cambiar de transformación, podemos hacerlo a través de las teclas W (Locacion), E (Rotacion), R
(Escalamiento). También seleccionando los botones mostrados a continuación.

3
Otra forma de modificar las transformaciones es a través del panel de “Details” del objeto (la cual aparece
al hacer clic en él), y establecer los valores manualmente.

4
5.- Dar forma al blanco

Para aprovechar la plantilla propuesta por UE de primera persona haremos un blanco movible para jugar
al tiro al blanco.

Para ello transformaremos un cubo por defecto de UE y le daremos forma de tabla.

Primero buscaremos un cubo dentro del panel “Modes” ubicado


del lado izquierdo del editor. Nos aseguraremos de que la pestaña
modes está puesta en la opción “Place” la cual se identifica con el
ícono del cubo y el bulbo. Seleccionamos la opción Basic y
buscamos el cubo contenido en la lista. Una vez ubicado, lo
seleccionamos y lo arrastramos a la escena para colocarlo donde
deseemos.

Procedemos a transformar el cubo para darle forma de tabla a través del escalamiento, seleccionando la
cantidad de unidades que queremos escalar a través del siguiente botón ubicado en la esquina superior
derecha de la ventana de la escena.

5
6.- Programación del comportamiento

Cuando queremos dar un comportamiento específico y personalizado a un objeto dentro de UE lo


hacemos a través de la programación.

Por ahora no programaremos en C++, por lo que la programación la llevaremos a cabo utilizando
Blueprints.

Dando clic al cubo, y desde el panel de Detalles daremos clic en el botón azul Blueprint/Add Script.

Escribimos un nombre para el código empezando por el prefijo “BP_” según la convención de nombres
de UE.

La ventana de Blueprints aparecerá y nos dirigiremos a la pestaña de “Event Graph”.

6
Event Graph es donde haremos la programación del blanco en movimiento.

Para navegar, haremos clic derecho dentro del espacio cuadriculado y moveremos el mouse.

Dentro del mismo encontraremos tres funciones (Eventos):

• BeginPlay: Todo lo que se coloque aquí correrá una sola vez, antes de la primera trama del juego
(Al principio del juego)
• ActorBeginOverlap: Pendiente
• Tick: Aquí se colocará todo lo que necesitamos que se ejecute una y otra vez mientras el juego
siga corriendo. Todo lo que coloquemos aquí se ejecutará cada trama del juego, lo cual quiere
decir que la velocidad de ejecución será muy rápida (Fracciones de segundo).

Para empezar a programar, buscaremos los nodos que necesitamos haciendo clic derecho para que
aparezca una lista de acciones. En el cuadro de búsqueda escribiremos “Location” ya que queremos mover
el blanco y el movimiento está relacionado con la transformación de locación. La lista se reducirá, sin
embargo, seguirá bastante extensa para poder seleccionar una acción. Procederemos a escribir “Set” ya
que queremos modificar la locación. <En términos de programación cuando queremos modificar algo se
hace a través de los Setters, cuando queremos obtener algo, a través de los Getters>. Esto reducirá la lista
aún más y podemos empezar a discernir entre las opciones disponibles. Si nos vamos por la opción que
describe de manera más simple y concreta lo que queremos realizar, encontraremos la función que dice
Set Actor Location. Todo objeto que realice alguna acción dentro de UE que no reciba entradas de usuario
ni características de la Inteligencia Artificial será considerado un actor. Es por esto que la función incluye
la palabra Actor.

Al dar clic en la opción de “Set Actor Location” nos aparecerá el nodo (función).

7
Una función o método puede definirse como un bloque de código que ejecuta una acción determinada y
puede llamarse cuando se desee.

La estructura de la mayoría de las funciones en UE se compone de tres elementos:

• Pin de ejecución (cuadro Amarillo): Establece el flujo de ejecución. Determinamos


secuencialmente qué se ejecuta antes o después de algo. En programación representa qué línea
de código va antes o después para que se ejecute en ese orden.
• Pines de argumentos (cuadro Rojo): Nos indica los elementos que la función necesita para realizar
su tarea. Algunos de estos pines pueden dejarse sin conectar ya que tienen valores por defecto,
sin embargo, existen pines que son indispensables y no pueden dejarse de utilizar.
• Pines de retorno (cuadro Azul): Estos son los valores de retorno que puede entregarnos una vez
terminada la tarea.

6.1 Definición del algoritmo.

En vista de que la función establece al actor en la locación que nosotros le indiquemos, necesitamos una
forma de estarle estableciendo una nueva locación a partir de la que ya tiene para simular un movimiento.
En otras palabras, necesitamos preguntar al blanco por su ubicación actual, y a partir de ella sumarle una
cantidad cada vez que la función se mande a llamar. Para ello conectaremos la función a Event tick desde
el pin de ejecución (Exec) para que esta pueda ejecutarse constantemente. Partiendo del pin de ejecución
damos clic izquierdo y arrastramos la liga al pin de ejecución de la función. Si por alguna razón queremos
quitar la liga conectada entre dos bloques debemos dar clic izquierdo sobre uno de los pines conectados
+ ALT.

8
Diagrama de flujo del algoritmo.

Del diagrama de flujo anterior podemos notar que nos faltan dos elementos. La locación actual y la suma.

Para establecerlos en el blueprint procederemos a buscar la función que nos entregue la locación actual
del blanco, llamada Get Actor Location.

9
A continuación, crearemos una variable de tipo Vector para que el tipo de dato coincida con el que nos
está entregando la función Get y podamos realizar operaciones con ambas. Recordemos que para conocer
el tipo de dato que recibe o devuelve un bloque de blueprint basta con poner el mouse encima del pin y
esperar a que salga la descripción. Otra forma es identificando el color del bloque.

Para ello iremos al panel del lado izquierdo llamado “My Blueprint” y daremos clic en el icono “+” del
apartado “Variables”. Le estableceremos un nombre significativo que nos indique inmediatamente el
propósito de la variable. Al terminar este paso y teniendo seleccionada la variable, nos iremos al panel
“Details” (Si no tenemos seleccionada la variable, el panel no aparecerá), y en la opción “Variable Type”
daremos clic para desplegar la lista de los tipos de datos disponibles en UE y seleccionaremos el tipo de
dato Vector (Color amarillo).

Para poder establecerle un valor a la variable, necesitamos dar clic en el botón “Compilar” ubicado en la
parte superior de la ventana, y nos regresaremos al panel “Details” en la opción “Default Value”, donde
escribiremos la unidad de movimiento, en este caso será de una unidad en el eje “Y” ya que el blanco
resultó tener un movimiento horizontal enfrente del personaje con este eje.

Seleccionaremos nuestra variable desde el panel izquierdo y la arrastraremos al espacio cuadriculado. A


continuación, daremos clic en la opción “Get” que se nos presenta después de soltar el botón del mouse.

El siguiente paso es realizar la suma de vectores. Utilizando la sensibilidad de contexto de los blueprints
daremos clic a la salida de cualquiera de los dos componentes que nos entregan Vectores y escribiremos
el signo + para obtener el nodo de suma de vectores (Vector + Vector) y conectaremos ambos nodos para
aplicarles la operación, y el resultado conectarlo a la función de Set Actor Location.

10
Finalmente compilaremos y regresaremos a la escena para asegurarnos de que la opción de movilidad
está puesta en “Movable”, y daremos Play para visualizar que nuestro blanco se mueve.

11
7.- Terminando el movimiento.

Para hacer que nuestro blanco se mueva de un lado a otro a partir de cierto tiempo, necesitamos contar
cuánto tiempo ha transcurrido (reloj), y también establecer un límite de ese tiempo para el cambio de
dirección. Una vez que el tiempo ha superado el límite, el blanco cambiará su dirección, y el reloj tendrá
que resetearse para que el conteo vuelva a empezar.

Analicen el siguiente código y determinen qué parte hace qué cosa de este proceso y cómo funciona en
general. Si quieren ir más lejos pueden intentar replicarlo y ver su resultado. Recuerden que si
acumulamos Delta Seconds podemos llevar un conteo del tiempo transcurrido (Obtener segundos).
Guíense también por los colores de los nodos los cuales indican el tipo de dato que contienen.

Hay un nodo que no hemos visto aún, que sirve para tomar decisiones a partir de condiciones, para
encontrarlo en la lista de acciones sólo búsquenlo por su nombre.

Finalmente, los valores como el tiempo límite de cambio, velocidad de movimiento, etc. pueden
establecerse aleatoriamente en tiempo de ejecución para incrementar el dinamismo en el
comportamiento.

12