Curso teórico-práctico sobre Desarrollo de Videojuegos (DEV) orientado hacia la creación de contenido y desarrollo de jugabilidad mediante un lenguaje de programación visual como Blueprints en Unreal Engine. Impartido en el Máster en Ingeniería Informática de la Universidad Complutense de Madrid.
2. ● El videojuego es interactividad, con lo que
todo lo relativo a entrada/salida es crucial
para dar control a los jugadores
Avatar y movimiento 2
Motivación
3. ● Lo más básico es percibir el mundo desde
nuestro avatar y lo siguiente el movimiento
del mismo, donde la entrada del jugador
se procesa
y cambia
el estado
del mundo
○ Mediante
las funciones
impuras que
haga falta
Avatar y movimiento 3
Percepción
4. ● Habitualmente se usan trazas (proyección
de rayos) para “ver” suelo, paredes, etc.
Avatar y movimiento 4
Percepción
TRACES
RAYCASTING
5. ● Dentro de la configuración del proyecto, en
las secciones Engine / Input
○ ActionMappings, relaciona entradas con acciones
instantáneas
○ AxisMappings,
vincula
entradas
con valores
en un eje
contínuo
■ Ej. [-1.0..1.0]
Avatar y movimiento 5
Configuración de la entrada
6. ● El stick analógico
manda una señal
MoveForward
entre -1.0 y 1.0
● Una tecla (como W)
sólo manda dos valores:
0.0 o 1.0 si está pulsada
Avatar y movimiento 6
Configuración de la entrada
7. ● Los eventos de entrada de un jugador los
gestiona su controlador
○ Salvo que haya actores con Enable Input
activo para gestionar dichas entradas
Avatar y movimiento 7
Configuración de la entrada
8. ● Podemos tener varios jugadores, cada uno
con su controlador y su gestión de entrada
○ Puedes crear
nuevos jugadores,
indicando siempre
su ID (-1 significa
“el siguiente que
esté libre”)
Avatar y movimiento 8
Multijugador local
9. ● Según el juego se podrá configurar cómo
asignar los gamepads a los jugadores, o si
hay una sola cámara que se comparte entre
todos los controladores
Avatar y movimiento 9
Multijugador local
https://www.youtube.com/watch?v=ZOc9fV6Sap4&t=3850s
10. ● También son “entrada” los datos, que
podemos meter
en DataTables y
CurveTables
○ Hojas de cálculo
que cargar desde
fichero CSV o JSON
Avatar y movimiento 10
Tablas de datos y curvas
https://docs.unrealengine.com/en-US/Gameplay/DataDriven/index.html
11. ● Recuerda que una variable tendrá tipo
básico, referencia o estructura anidable
● Puedes crear tus
propias estructuras y
tipos contenedores
○ Arrays, mapas y conjuntos
Avatar y movimiento 11
Tablas de datos y curvas
* Vector, Rotator y Transform
son estructuras tan comunes que
aparecen en la lista inicial
STRUCTURE / STRUCT
12. ● Para moverse en el juego los actores deben
tener activa su movilidad
○ Propiedad Mobility con valor Moveable
○ Por defecto son estáticos (inmóviles en el juego), lo
ideal para calcular la iluminación
● Luego hay que saber dónde está el actor, la
dirección de avance y al menos la velocidad
○ Transform > Location (vector 3 dimensiones)
○ Dirección (vector 3 dimensiones)
○ Velocidad (escalar)
○ ...
Avatar y movimiento 12
Movimiento
13. ● En el movimiento cinemático no se trabaja
con aceleración (como pasa en el dinámico)
○ En cualquier caso el código debe depender del
tiempo, no del render o de la entrada del jugador
Avatar y movimiento 13
Movimiento
16. ● Ya sabemos que la “mente” de un
personaje se debe programar en su
controlador
○ Sea PlayerController o AIController
○ Desde allí se dan órdenes de
movimiento, que ejecuta el
“cuerpo”, típicamente un
componente de movimiento
del propio peón
■ CharacterMovement
■ ProjectileMovement
■ RotatingMovementComponent
Avatar y movimiento 16
Movimiento
17. ● ¿Cuál es la diferencia entre ActionMappings
y AxisMappings?
A. Los primeros son para botones y los otros para ejes
B. Los primeros ejecutan órdenes que los otros dan
C. Los primeros son para acciones rápidas de ratón
D. Son sólo categorías para organizar el código
Avatar y movimiento 17
Participación
18. ● El mundo virtual es la salida diegética, pero
si queremos información adicional...
○ Se puede imprimir en el registro (log) o la pantalla
Avatar y movimiento 18
Salida no diegética
19. ● Slate es un armazón para interfaces de
usuario que usa el propio editor de Unreal
○ Desde Blueprints tenemos funciones que nos
permiten dibujar (Draw…) sobre el HUD
Avatar y movimiento 19
Salida no diegética
20. ● La salida diegética viene de las cámaras,
que podemos colocar como actores o como
componentes dentro de otro actor
○ Ej. Cámara que graba al avatar en tercera persona
○ Al seleccionarlas, aparece su vista, que podemos
dejar fija mientras trabajamos con otros actores
Avatar y movimiento 20
Cámaras
21. ● Tienen muchos parámetros
○ Configuración (proyección, campo
de visión, relación de aspecto…)
○ “Película” (tinta, saturación…)
configuración (tipo de proyección
○ Resplandor
○ Autoexposición
○ Destellos de lente
○ Profundidad de campo
○ Desenfoque de movimiento
○ …
● Hay componentes “grua”, posprocesados...
Avatar y movimiento 21
Cámaras
FIELD OF VIEW
BLOOM
AUTO EXPOSURE
LENS FLARES
DEPTH OF FIELD
MOTION BLUR
22. ● E incluso hay cámaras que simulan los
parámetros de las cámaras reales
○ Distancia focal
○ Apertura
○ …
Avatar y movimiento 22
Cámara de cine
23. ● Ejemplo: Zoom con la cámara para apuntar
Avatar y movimiento 23
Cámaras en movimiento
24. ● Oculus Rift, Oculus Quest,
HTC Vive Pro… las plantillas
funcionan con todo
Avatar y movimiento 24
Realidad virtual
https://wiki.unrealengine.com/VR_Template