Transcripciones
1. Introducción: Lo que me encanta de
los videojuegos es que puedes crear acertijos
interesantes
para que otras personas los exploren y resuelvan. Hola. Mi nombre es Lucas Ridley Soy desarrollador de juegos
y animador 3D trabajando en la industria de los
videojuegos y el cine Es posible que hayas visto
algo de mi trabajo si has jugado videojuegos
como The Last of Us,
Part II, o Suicide Squad:
Kill the Justice League. Para mí es salvaje que llegue
a hacer esto como carrera. Creo que es la mayoría de los sueños de
los niños jugar videojuegos
para ganarse la vida. En esta clase,
vas a
aprender a crear un videojuego
completo. Vamos a comenzar
con una cinemática que se funde con la jugabilidad, donde podremos crear
lógica de juego que muestre un temporizador, crea obstáculos para nuestro
personaje, y luego finalmente, podemos exportar todo esto que puedas compartirlo
con tus amigos Me emociona
enseñarte sobre este tema, porque crear videojuegos en realidad
es bastante accesible. No solo tienes
software libre como Unreal Engine, sino que puedes hacerlo en
casa en tu propia computadora Deberías tomar esta
clase si tienes conocimientos
intermedios
de Unreal Engine No voy a mentir,
vamos a saltar al fondo
de Unreal Engine, creando lógica de juego
con planos Para seguir adelante, todo lo que vas a
necesitar es Unreal Engine, una computadora y un mouse de
tres botones Al final de esta
clase, en realidad
vas a tener un
videojuego terminado que
podrás compartir con tus
amigos y competir con ellos en un tiempo
de carrera de obstáculos. Espero que te alejas
de esta clase realmente subiendo de nivel tus habilidades y sintiendo una sensación
de logro, porque realmente
vamos a crear algo impresionante juntos. ¿Quieres jugar un juego?
Empecemos.
2. Puesta en marcha: Bienvenidos a esta clase.
Estoy tan contenta de que estés aquí. En este proyecto,
vamos a crear un videojuego cronometrado jugable Va a ser uno que puedas compartir
con tus amigos, para que
puedas competir con ellos a través de esta carrera de
obstáculos cronometrada Así que vamos a
crear un temporizador a través lógica
del juego que pueda
aparecer en pantalla. Para que puedas competir con tus
amigos y comparar puntuaciones. Vamos a crear obstáculos
para que eso sea difícil. Entonces, si te encuentras con ellos,
en realidad simulará la física de
Ragdoll en tu jugador y reiniciará el nivel, para que
puedas empezar Al final de esta clase, vamos a exportar esto como un videojuego completo jugable Mi primer trabajo en la industria de los
videojuegos fue en
realidad en un videojuego de
realidad aumentada, donde tomaríamos un libro con marcadores de
rastreo y ese era el
controlador de juego real para el juego y puedes manipular a
los jugadores en ese libro Mi trabajo en ese proyecto era realmente dar
vida a
esos personajes a través de la animación en las páginas de ese libro de realidad
aumentada Ni siquiera conocía Unreal
Engine en ese momento. Entonces, si terminas esta clase, ya
vas a estar por delante de mí. Te voy a dar
unas grandes habilidades que pueden avanzar en tu carrera
en el diseño de videojuegos. Para tomar esta clase, debes sentirte cómodo usando un motor
irreal, navegar por la ventana gráfica navegar por la ventana gráfica
e incluso solo saber que los
planos son algo que existe va a ser útil porque
vamos a
sumergirnos mucho más y crear nuestros propios planos Así que agarra tu computadora,
tu mouse de tres botones y encuéntrame en la siguiente lección, donde vamos a
crear un inicio de jugador así que tenemos algún lugar para
comenzar nuestro videojuego
3. Crea el inicio del jugador: En esta lección, vamos a cubrir cómo
crear un Player Start desde cero si has creado
tu propio nivel personalizado, y también vamos
a hacer un poco de depuración para que podamos
mejorar nuestra velocidad de fotogramas De vuelta dentro del motor irreal, voy a empezar con
un nivel que he diseñado Si no has
seguido junto con las otras clases y has
diseñado tu propio nivel, puedes usar el proyecto de plantilla en tercera
persona y usar ese nivel que
viene con esa plantilla. Ese nivel ya tiene un
Player Start, pero necesitaremos crear uno si tienes tu propio nivel personalizado. Porque si presiono
“Play” ahora mismo, mi personaje jugable se
generará donde quiera que estuviera la cámara Entonces potencialmente
podría estar fuera del juego real, y no puedo entrar porque
depende de la
cámara que usé. Voy a golpear
“Escape” para salir, y quiero colocar
el inicio del jugador donde quiero que comience el juego real. Voy a hacerlo
donde creé cinemática introductoria a
la
que llegaré más adelante, y quiero igualar la
posición con mi inicio de jugador Voy a agregar el
reproductor, empezar haciendo clic en el botón más
aquí arriba y tecleando start. Puedes ver que tenemos
un Player Start, y como
no hay nada más en la escena, esto iniciará automáticamente al jugador donde lo queramos. Quiero igualar la
posición de la cinemática. Sólo voy a golpear “W” y sacar esto
del camino por el momento. Voy a hacer clic en la
cinemática y obtener su posición haciendo clic derecho en este
valor y eligiendo “Copiar”. Y luego quiero elegir
el Player Start de nuevo y pegar este valor haciendo clic
derecho y pegando Podemos ver un poco por el
piso. Sólo voy a
levantarlo una cierta cantidad, y luego presionaré el
botón “Fin” de mi teclado, E-N-D, y eso lo
romperá al piso Entonces solo quiero
girarlo porque vamos a ver que la flecha azul está
apuntando hacia un lado. Quería apuntar
en la dirección
del laberinto que he
creado en mi nivel. Ahora bien, si le pego a “Play”, podemos ver que los
jugadores iniciarán exactamente donde estamos esperando
en esa posición. Ahora bien, si se puede decir una cosa, es que la reproducción
es muy lenta. La velocidad de fotogramas no es buena, y podemos probarlo
activando fotogramas por segundo. Podemos elegir este ícono de tres líneas de
Hamburger aquí y bajar para mostrar FPS, que es la abreviatura de
fotogramas por segundo Cuando hago clic en eso, se puede
ver en la parte superior derecha aquí, tenemos 18 fotogramas por segundo. También puedo presionar “Reproducir de nuevo” y que los fotogramas por
segundo deben persistir. Podemos ver que es aún peor
cuando estamos jugando. Diez, 11 cuadros por segundo. Ahora bien, una de las razones de
esto en mi escena es por los árboles
de muy alta definición que tenemos
en nuestro entorno. Si sigues la clase
ambiente, sabes dónde vive este activo en este bosque
generado por procedimientos Voy a cambiar esto por un activo de menor resolución que
podamos trabajar
mucho más rápido. Esto se llama depuración. Queremos depurar nuestro juego a medida que
jugamos y resolver cualquier problema
que estemos enfrentando a medida que avanzamos. Porque resolviendo esto
ahora mismo haremos que
todo sea más rápido más adelante mientras estemos trabajando
en la escena, lo que se acumulará
a mucho tiempo ahorrado. Voy a presionar
“Barra espaciadora de control”, y voy a
navegar hasta donde se encuentra
este activo en mi
carpeta generada por procedimientos, y voy a
abrir la gráfica PCG donde está este Ahora bien, de nuevo, si estás usando el nivel de plantilla, no
vas a tener esto. Esto es para la
gente que pudo haber seguido junto con
la clase anterior. Voy a generar una malla estática
diferente aquí, así que reemplazaré los árboles de
alta resolución uno
de menor resolución Voy a
bajar este descriptor, y aquí es donde vive la
malla estática del árbol Voy a elegir un activo que venga con los activos
de PCG Voy a escribir en el árbol, y puedo ver que hay
estos árboles de marcadores de posición PCG, que son mucho más
baja resolución, y eso es lo que voy a usar en lugar de la alta Podemos ver que
ya está intercambiado, y ver qué pasa con
nuestros fotogramas por segundo Ya estamos hasta alrededor de
30 cuadros por segundo. Ahora bien, la otra cosa
que podría hacer es que podría reducir el número
de puntos,
así podría elegir el muestreador de
superficie y en lugar de 0.08 puntos
por metro cuadrado, podría elegir algo a la
mitad de eso, así que 0.04 Podemos ver que realmente
no ganamos tanto,
así que lo voy a dejar
atrás en 0.08, pero este es el tipo de
pruebas que quieres hacer para
asegurarte de que el juego que estás
haciendo sea performativo Ahora en presiono “Reproducir”,
deberías conseguir una reproducción mucho
más fluida, y hemos ganado muchos
fotogramas por segundo. En esta lección,
aprendimos a crear un
reproductor desde
cero en caso de que tengas tu propio
entorno personalizado que hayas creado. Si no lo haces, solo puedes usar el proyecto de
plantilla en tercera persona y usar el Player Start que
ya existe en ese nivel. Lo único a tener en
cuenta es que si quieres que una cinemática comience al
inicio de tu videojuego, entonces solo quieres
asegurarte de que Player Start se alinee exactamente
con esa secuencia de niveles Encuéntrame en la siguiente lección,
donde vamos a conectar nuestro personaje
jugable personalizado
4. Conecta personajes de juego personalizados: Bienvenido de nuevo. En esta lección, vamos a cubrir
cómo conectar nuestro personaje MetaHuman personalizado
con nuestro personaje jugable en tercera persona Volvamos a nuestro
proyecto y empecemos. Ahora quiero cambiar nuestro propio personaje
personalizado de MetaHuman por la tercera Hemos cubierto esto
en una clase anterior, pero voy a
cubrir de nuevo aquí que podamos rápidamente
ponernos al día con nuestro propio personaje personalizado de
MetaHuman
como el personaje jugable Ya he mostrado cómo
migrar personajes de otros proyectos donde es posible que los
hayamos hecho. Todo lo que necesita hacer es
“hacer clic con el botón derecho” en un activo y elegir
Acciones de activos, Migrar. Entonces elige el proyecto al que
quieres migrar esto si tienes un MetaHuman
de otro proyecto diferente Ya lo hemos hecho, y por
eso esto existe aquí. Ahora todo lo que necesito hacer es
configurar este personaje
para que sea jugable Necesito ir a la Configuración de
clase y
elegir el plano de tercera persona
como la clase para padres El personaje en tercera persona tiene mucha lógica ya establecida, así que solo podemos usar
esto en todas sus animaciones solo con
nuestro propio personaje personalizado Ahora voy a elegir esto. Voy a ir al Viewport, poder ver lo que está pasando, y puedo ver que
mi personaje y la tercera persona están ahora
en la misma escena Ahora puedo mover esta raíz, hacer clic y arrastrarla
debajo de la malla, y ahora puedo restablecer la raíz, modo que debería coincidir con
el personaje de tercera persona Ahora todos estamos en la
misma dirección. Voy a reorientar
este personaje personalizado la animación que
está sucediendo para la tercera persona Puedo hacer eso activando
el retarget en vivo. Puedo elegir la variable de
retarget en vivo y verificar
useLiveRetarGetMode Ahora puedo ver estas alineadas, y solo necesito hacer
invisible al personaje en tercera persona Puedo dar click en su malla
y buscar visible. Puedo desactivar visible
y renderizado. Necesito encender siempre la pose de
garrapata y refrescar los huesos. Actualizaremos el
personaje en tiempo real. Ahora puedo hacer clic en
“Compilar” y guardar. Quiero abrir el
plano en tercera persona y copiar y pegar toda la lógica del juego y las entradas
que no tenemos aquí Porque si
miro mi gráfico de eventos, que controla toda
la lógica del juego, en realidad no
hay ninguno. No hay nada que diga, oye, si presiono este
botón, entonces haz esto. Aquí está totalmente vacío. Tenemos algunas cosas de RA y cara, pero no hay entradas reales que estén sucediendo que hagan que esto
sea jugable Quiero abrir
el
plano en tercera persona donde vive eso, y copiar y pegar
esa información Podemos simplemente robarnos todo ese arduo trabajo que ya
han hecho por nosotros. Voy a “hacer doble clic” en
este plano, y quiero hacer clic y arrastrar, seleccionar toda esta información, y quiero
copiarla y pegarla pulsando “Ctrl C”, saltando de nuevo a mi
plano y presionando “Ctrl V” en un área vacía
para Entonces Ctrl V. Ahora
tenemos toda esta información de que han hecho todo el trabajo
duro por nosotros. Ahora solo tenemos que decir
cuándo comienza a reproducirse esto, luego emitir y comenzar a hacer todo el mapeo de entrada
que queremos hacer. Puedo eliminar este
CustomEvent y usar este evento,
BeginPlay, y mapearlo en
nuestro casting en nuestro personaje
jugable Ahora puedo compilar y
guardar este blueprint, y ahora solo necesito decirle
a mi juego que realmente use este personaje, porque si presiono “Reproducir” ahora, sigue usando el personaje
predeterminado Para cambiar esto, necesito ir a mi Configuración del proyecto en Editar, Configuración
del proyecto, Mapas y modos. Bajo el modo de juego seleccionado, necesito cambiar la clase de peón
predeterminada Puedo elegir el modo de juego en
tercera persona, y luego me
permitirá cambiar el plano con el que estamos
generando al personaje Voy a hacer BP_, y ahora puedo encontrar mi
plano para mi MHI_Lucas Ahora cuando cierro esto
y presiono “Reproducir”, deberíamos ver nuestro propio personaje
personalizado, y deberían ser
jugables golpeando las teclas W, A, S y D. Además de la entrada de salto, puedes presionar “Barra espaciadora”.
Ahora es tu turno. Toma tu propio
personaje personalizado y mapéalos al personaje
jugable en tercera persona, o simplemente usa el personaje en
tercera persona y presiona “Jugar” y jugar. Solo recuerda,
siempre es importante
aprovechar cualquier trabajo
que ya esté hecho por nosotros, y así es por eso que
vamos a buscar cosas en el contenido de inicio y
copiarlo y pegarlo No hay vergüenza en usar un trabajo que ya está
hecho para ti. Encuéntrame en la siguiente lección. Vamos a crear una nueva máquina de
estado para agacharse.
5. Configura una máquina de estado: Bienvenida de nuevo. En esta lección, vamos a cubrir
planos de animación y máquinas de estado Las máquinas estatales son una forma en la
que podemos hacer la transición de diferentes estados en nuestro
carácter como estar inactivos, caminar, correr, y
vamos a agregar agachados
en esta lección Es importante saber
que las máquinas estatales, aunque lo suyo,
en realidad viven dentro del plano de
animación Entonces, ahí es donde
vamos a estar trabajando. Ahora volvamos
a nuestro proyecto. Esta lección
te dará una idea de cómo
crear una animación agachada
para nuestro personaje Entonces, imaginemos que tenemos
algún tipo de obstáculo que
realmente necesitamos agacharnos debajo para poder
empujar uno de estos bloques, pero aún no podemos agacharnos Entonces, necesitamos crear una entrada agachada para que
nuestro personaje pueda agacharse, y luego empujar este bloque
a través para superar esta barrera Entonces empecemos con eso ahora. Para comenzar, necesitamos agregar
una acción de entrada para que
sepamos qué pulsación de tecla
permitirá realmente agacharse Entonces voy a saltar a
las acciones de entrada para mi personaje en tercera persona
porque eso es realmente lo que está controlando nuestro personaje personalizado es el plano
padre en tercera persona Entonces aquí vemos que tenemos
una carpeta llamada input. Dentro de aquí, tenemos
este master default, que es el contexto de mapeo de entrada. Este es el grupo principal que
va a controlar las acciones. Necesitamos una nueva acción
llamada Crouch. Se puede ver que tenemos
saltar, mirar, mover, y podemos agregar
cualquier otro tipo de acciones que queramos comenzar
a habilitar. Y en este ejemplo, vamos a habilitar una nueva acción y entrada de
Crouch Entonces necesito crear
una acción de entrada. Entonces voy a ir a entrada y acción
de entrada haciendo clic derecho y
eligiendo esta opción. Voy a elegir I
A para input action, y voy a
llamar a esto Crouch Ahora cuando vayamos a este tipo de activos de datos
maestros de
las acciones de entrada, podemos tener un nuevo mapeo
para el Crouch aquí Para que pueda presionar el botón más y luego elegir Crouch en el
menú Ahora en esta opción, aquí
es donde llego a agregar a qué pulsaciones de teclas quiero que se agregue
esto. Entonces puedo elegir entre
las opciones aquí, o simplemente podría hacer clic en
este botón y luego presionar el
botón del teclado real en mi teclado. Así que voy a elegir el control
izquierdo porque estamos usando una configuración W A S y D. Entonces, vamos a golpear Guardar. Y ahora le hemos habilitado
para recibir esa entrada. Ahora solo necesitamos conectar
esa entrada a todos los eventos y
lógica para reproducir la animación
correcta
y cambiar los componentes del personaje a Crouch Entonces tenemos que ir al
plano de nuestro personaje,
que para mí es el metahumano,
este personaje personalizado Para ti, podría
ser la tercera persona en carácter si
eliges usar eso. Entonces ahora en el gráfico de eventos, aquí es donde necesitamos
agregar nuestra propia acción de entrada. Puedes ver que tenemos
mirada, tenemos movimiento, tenemos salto, y necesitamos
agregar la acción de entrada agachada Pero antes de hacer
eso, tenemos que decirle al componente
del movimiento que en realidad
podemos agacharnos Entonces tiene las
variables y las cosas que estamos
buscando al agacharnos Porque agacharse es
algo normal de hacer. Esto en realidad
ya está disponible para nosotros en el componente de
movimiento de personajes, que es donde todos
estos tipos de valores de personajes
jugables
que nos interesan, como
qué tan rápido nos movemos, cómo es la gravedad Y así, si empezamos a escribir
y buscar agacharse, se
puede ver que en realidad no
podemos
agacharnos hasta que verifiquemos Esto hará que algunas
funciones incorporadas estén disponibles para nosotros, por lo que sabe activar y
desactivar agachados También puedes cambiar la velocidad a la que te mueves
cuando estás agachado Y también la altura a la que
vas cuando estás agachado. Entonces voy a comprobar esto. Y ahora en mi gráfico de eventos, que cuenta toda la lógica de las entradas y lo
que van a habilitar. Al igual que el salto aquí,
estemos saltando o no, necesitamos crear una acción de
entrada para Crouch Así que voy a
empezar a escribir Crouch, y eso debería
existir porque
ya hemos creado este evento de acción
de entrada Entonces queremos el evento
y no el valor, y podemos elegir
iniciado y completado igual que nuestro evento para
la acción de entrada para salto. Así que para empezar, en realidad tenemos esta función incorporada
llamada Crouch Y por eso estamos
habilitados agachados. Entonces tenemos esta
variable disponible para nosotros antes de comenzar este paso. Así que voy a hacer clic y
arrastrar fuera de completado y tecleando Crouch de nuevo y elegir Un Crouch para
cuando Y eso es todo lo que
realmente necesitamos hacer. Si queremos comentar esto, al igual que estos otros, podemos golpear C, y
podemos escribir entrada agachada Entonces ahora solo necesitamos
compilar y guardar, y deberíamos ver esos aspectos
del componente del movimiento ya afectan nuestro carácter. Al igual que la velocidad de Crouch se
verá afectada, aunque todavía no tendrá
ninguna animación para jugar Si estoy corriendo y presiono Crouch
o el botón de control, realidad solo
vamos a reducir la velocidad Pero en realidad todavía no tenemos
una animación agachada, y eso es lo que
necesitaremos ajustar Así que vamos a crear la animación que realmente necesitamos para agacharnos En esta lección,
aprendimos a comenzar a crear una nueva
acción de entrada para nuestro personaje, así podremos agacharnos Terminamos viendo
que puede afectar nuestra velocidad, y solo necesitamos insertar
las animaciones adecuadas ahora. Hagámoslo juntos
en la siguiente lección.
6. Termina tu máquina de estado: Bienvenido de nuevo. En esta lección, vamos a
seguir creando nuestra máquina de estado Crouch Vamos a tomar
nuestra acción de entrada que ya
hicimos
y conectarla a una animación para agacharse
inactivo y caminar agachado Entonces vamos a afectar
la velocidad a la que nos
movemos mientras
caminamos agachados para que se sincronice
con la velocidad a la que se mueven
nuestros pies Volvamos a
sumergirnos en el proyecto. Vamos a crear la animación
que necesitamos para realmente agacharnos. Por suerte, para nosotros, si entramos en el lanzador de Epic Games
en el mercado,
y buscamos los conceptos básicos de
MCO Mocap De hecho tenemos aquí
un activo gratuito que tiene una
animación de Crouch para Simplemente busca el activo, y podrás agregarlo
a tu proyecto. Una vez que se agrega a tu proyecto, podemos encontrar estos activos en el navegador de contenido
yendo al contenido, y puedes ver que se ha
creado una
nueva carpeta llamada MCO Mocap Aquí podemos encontrar una animación de
Crouch. Sólo puedo buscarlo en
el navegador de contenido aquí. Se puede ver que tenemos un par diferente a pie Crouch y Básicamente tenemos
una versión in situ
y una versión walking off
the spot. Queremos la versión in situ. Voy a seleccionar el in place Crouch y in place walk, y quiero hacer
clic derecho
y elegir animaciones de
retarget porque esto está en un esqueleto antiguo de Maniquí,
y queremos reorientar al nuevo esqueleto y queremos reorientar al nuevo Voy a escribir Manny. Ahora puedes ver que tenemos aquí el
nuevo Mannequin Skeleton, y podemos buscar estos
activos con tan solo escribir Crouch Si hacemos doble clic en él,
podemos ver que
tenemos el que está
caminando fuera del lugar. Pero queremos el que esté
caminando en el lugar. Escojamos estos dos y
exportemos estas animaciones. En estos conceptos básicos de MCO
Mocap, voy a crear una nueva
carpeta llamada retarget, y voy a
hacer clic derecho y elegir
Nueva carpeta y ponerla en
la carpeta Ahora bien, el
plano del personaje es donde
le dijimos dónde estaba la acción
de entrada Eso lo hicimos en nuestro plano
para nuestro personaje. Pero, ¿dónde
agregamos realmente las animaciones? Eso está en el plano de animación
y no en este plano. Tenemos que encontrar el plano de
animación. Si hago doble clic en el nuestro, puedes ver que la clase de
animación aquí es Anim Blueprint queen C, y puedo navegar hasta este activo, y puedo hacer doble clic en él, y eso en realidad es
hijo del Manny En realidad queremos el
Blueprint de animación de Manny y no la reina Si hago clic en esta clase
Parent aquí, puedo encontrar en
la carpeta también, que está justo al lado de la
reina y hago doble clic en ella. Puedes ver que tenemos
el gráfico de eventos para el Blueprint de Animación Esto es diferente del blueprint
del personaje, que acabamos de agregar
la acción de entrada Aquí es donde le decimos a la
variable para agacharse, si estamos agachados
o no estamos agachados, para que sepa qué Para ello, necesitamos
conectarlo hasta el componente de movimiento,
que ya tenemos. Voy a copiar
y pegar una versión de la misma aquí y hacer clic
y arrastrar fuera de esto. Voy a escribir
es agachado. Se puede ver que ya
tenemos la variable para esto porque habilitamos
la capacidad de agacharse Ya tiene esta variable
incorporada. Si hago clic derecho sobre esto, puedo
promoverlo a una variable. Podemos acceder a él en la máquina de
estado para establecer esto como regla de si se deben reproducir las animaciones agachadas o Ahora bien, no está conectado
a nada, así que necesitamos agregar un nuevo
pin a esta secuencia, que es lo que actualiza
los valores en cada fotograma para que pueda averiguar si algún
estado ha cambiado, como caer o
agacharse o Necesitamos agregar este
nuevo pin aquí para que podamos conectarlo hasta esta nueva variable que tenemos. Puedo hacer doble clic en
cualquier parte de esta línea para crear un nodo de reencaminamiento, y si mantengo Control, puedo moverlo fuera del camino Podemos quedarnos un poco
organizados aquí. También puedo hacer clic y
arrastrar estos y presionar C para comentar y mover esto hacia abajo. Ahora que finalmente tenemos
las acciones de entrada creadas, tenemos nuestras animaciones listas, y hemos creado
la capacidad de ver como una variable si estamos
o no agachados Puedo cambiar el nombre de esto a Crouching. Ahora estamos listos para conectar
realmente las animaciones a
la locomoción. Eso lo podemos encontrar
en la gráfica anim. Ahora mismo, estamos en
el gráfico de eventos, que puedes ver en este directorio
jerárquico aquí. Puedo saltar a
la pestaña gráfica Anim aquí o puedo hacer clic en
ella desde aquí En el gráfico anim, en
realidad podemos ver las máquinas de estado, que controla qué
animaciones se están reproduciendo La que
más nos preocupa
es la máquina estatal de locomoción Si hago doble clic en él,
puedo entrar dentro de él, y puedo ver que hay un ídolo y hay una carrera a pie. Esas son principalmente las dos cosas que podemos hacer con este personaje. Puedes ver
ahora mismo está previsualizando la animación de ídolos aquí
en la ventana izquierda Queremos agregar otro
estado llamado Agachado. Puedo hacer clic derecho aquí
y agregar un nuevo estado. Voy a llamar a esto
Agachado y eso interior. Puedo hacer doble clic
y meterme dentro de esto y ahora puedo agregar
mis animaciones aquí. Tenemos dos animaciones, una para si no nos movemos, y simplemente estamos agachados,
y otra para agacharnos mientras
caminamos Voy a hacer clic en Arrastrar
ambas animaciones a
la máquina de estado, y necesito decirle cuándo estamos inactivos y cuándo
estamos caminando. Por eso tenemos
estas variables para
decirnos si nos estamos moviendo o
si no nos estamos moviendo. Eso ya estaba
configurado en nuestro gráfico de eventos. De vuelta aquí, se puede ver que había una configuración de RD llamada Debería moverse. Podemos usar esto para saber
si estamos agachados o no inactivos o
agachados inactivos o
agachados Necesitamos mezclarnos entre estos dos en base a esa variable. Puedo agarrar esta variable
diciendo que get debería moverse, y esto controlará cuál de estas animaciones
estamos jugando. Necesitamos otro nodo
para determinar eso, y eso es una mezcla de Boolean, lo que significa o, ya sea está encendido o apagado, así podemos escribir poses de
mezcla por Bole, y ahora tenemos una
pose verdadera y una pose falsa Se va a controlar
por un valor activo. El verdadero estado
va a estar caminando, así podemos enchufar eso en verdadero. Podemos enchufar el estado inactivo, la animación inactiva en false. Lo que va a controlar
eso es esta variable aquí. Si deberíamos estar
moviéndonos o no deberíamos estarlo va a ser
el valor activo. Ahora, enchufamos esto
al resultado. Ahora volvemos a
nuestra locomoción. Solo necesitamos crear una regla
para cuando esto esté sucediendo. ¿Cuándo estamos agachados? Es cuando la
variable que hemos creado está agachada está habilitada, en
función de si estamos o no ingresando la pulsación de tecla correcta, la cual hemos ingresado
como control
como la acción de como la Todo eso ya está configurado. Sólo tenemos que establecer la
regla para esta variable. Puedo hacer clic y arrastrar sobre esta caja y
señalarla a agacharse Puedo ir de pasillo a agacharse ahora con la regla que voy Puedo pasar de agacharme de nuevo
a estar inactivo con otra regla. Pasando de pasillo a agacharse, quiero hacer doble Obtener esta variable es agachada. Si estamos agachados, queremos
entrar en la animación agachada Ahora bien, si ya no estamos
agachados, podemos simplemente establecer esa
regla para volver a la Queremos decir que vuelva a obtener
esta variable, pero desencadene esta transición
si esto no está sucediendo. Podemos escribir no y elegir
el booleano en opción. Ahora tenemos que hacer lo mismo
para las transiciones de carrera a pie. Caminar correr a agacharse debería estar sucediendo
cuando estamos agachados Deberíamos salir de este estado
agachado nuevo a caminar corriendo
si no estamos Ahora que hemos creado
las reglas para agacharse, hemos creado las animaciones y cuando van a jugar, podemos presionar Compilar y guardar,
y deberíamos poder ver a nuestro
personaje capaz de agacharse personaje capaz Ahora vamos a jugar y probarlo. Ahora para darle a Control, soy
capaz de agacharme, y se puede ver que me estoy moviendo, pero el agachado deja de moverse porque no encendimos loop Podemos saltar de nuevo a
nuestro plano de animación, al
que podemos acceder
en nuestros Maniquíes,
animaciones y Manny animaciones y Manny Tenemos que asegurarnos de que
la caminata esté puesta en bucle. Podemos escribir en bucle para encontrarlo, y solo necesitamos
activar la animación de bucle. Vamos a compilar y guardar. Ahora se puede ver que en realidad
bucles mientras estamos señalizando. Pero nos estamos moviendo mucho
más rápido que nuestros pies. Si recuerdas, podemos
ajustar la velocidad de agacharse, para que coincida más estrechamente con
la animación y con qué rapidez se mueven realmente
los pies Vamos a saltar al componente de
movimiento del personaje en nuestro plano Voy a entrar en el plano de los
metahumanos. Voy a ir al componente de movimiento del
personaje donde encendimos Agachado Si busco Crouch, puedo ver nuestra
velocidad máxima de caminata para Crouch Redujamos eso a la mitad, compilemos y guardemos,
y probemos esta velocidad. Mantenemos agachado
y seguiremos adelante. Ahora puedes ver que nos estamos
moviendo mucho más cerca a lo rápido que realmente
se mueven nuestros pies en la animación. Todavía se desliza un poco, así que voy a volver a entrar y seguir ajustando este valor hasta que me guste cómo coincide con la animación real
que tenemos que jugar Ahora hemos creado la capacidad de
realmente agacharnos bajo
los obstáculos que creamos Ahora, solo tenemos que
asegurarnos de que creamos estos a una altura que
tenga sentido para nuestro personaje. Ahora bien, si la velocidad es demasiado abrupta, podemos
ajustarla en los ajustes de mezcla de las transiciones. A
ver cómo se hace eso. Solo hacemos clic en esto, y podemos ver que hay una duración de una mezcla
de 0.2 segundos. Podemos aumentar esto
a algo así como 0.5, y podemos hacerlo
para ambas direcciones. Ahora hemos duplicado la
cantidad de tiempo que se tarda en
ir entre cada estado de
agacharse desde la caminata y la carrera Ahora quiero darle a play. Podemos correr y luego agacharnos. Toma mucho más tiempo para que esa
transición ocurra ahora, y así ojalá no
sea tan discorante. Una configuración final que podemos ajustar es que la cámara aparece
cuando nos agachamos, aparece desde la altura de la cabeza
de nuestros personajes y luego salta hacia
nuestra
cabeza de personaje agachada Podemos encender un lag que mezclará la
cámara más a la perfección. Abramos el plano de los
personajes y vayamos boom de la cámara y
a la ventana de pestaña de
componentes Tienes que dejar de
jugar para que podamos acceder a
estas funciones, y podamos desplazarnos hacia abajo
para habilitar el retraso de la cámara. Si solo habilitamos esto, los ajustes predeterminados
funcionan bastante bien. Podemos ajustar estos
ajustes si queremos, pero podemos presionar compilar y guardar, y podemos volver a jugar y probar el nuevo lag out de la cámara. Ahora combina mucho
más a la perfección, y también tiene un poco de retraso cuando estamos
haciendo otras cosas, pero funciona bastante bien para resolver el problema de la cámara Crouch En esta lección, cubrimos
mucho material complicado. Enhorabuena por
seguirlo. Has aprendido a
tomar una acción de entrada y de hecho implementarla. Rediseñamos la animación,
y ahora tenemos
un estado completamente nuevo
para que nuestro personaje
esté, que está agachado un estado completamente nuevo
para que nuestro personaje esté, que está agachado Siéntase libre de reemplazar esas
animaciones que usamos con otras animaciones que
encuentre en el mercado o en otro lugar. Entra y realmente
retoca esos valores. Ya sabes, cambiamos
la animación de mezcla para que sea de 0.2-0.5, pero tal vez haya un
mejor valor ahí Juega con
esos valores y hazlos lo más fluida posible.
Que se diviertan con él. Me conocimos en la siguiente lección, donde vamos a conectar la cinemática con el inicio del
juego
7. Conecta la cinemática con el inicio del juego: Bienvenida de nuevo. Una gran nota para esta lección es el hecho de que
querrás haber visto una clase anterior en
esta serie donde
aprendimos a animar a nuestro
personaje en una secuencia de niveles Donde empiezo aquí, ya
tengo esa
secuencia de niveles creada. Si no sabes cómo
hacer una secuencia de niveles, salta de nuevo a una de mis clases
anteriores en esta serie donde
aprendimos a crear una secuencia de niveles. Esa clase tiene que ver con la animación de
personajes. Ahora que eso está fuera del camino, vamos a tomar
nuestra cinemática, y vamos a mezclarla a la
perfección en el juego Cuando comenzamos nuestro videojuego, podemos ver
una reproducción cinematográfica
y luego se combinará a la perfección para que el jugador
pueda recuperar el control de ese mismo personaje
y comenzar el nivel Volvamos a
sumergirnos. Imaginemos que
cuando golpeamos “Play” en nuestro juego, queremos ver primero
una obra cinematográfica He creado una secuencia de niveles, cual discutí cómo
crear en esa clase anterior, y en esa secuencia de niveles, puedo abrirla para
ver la animación. Voy a hacer clic en “Abrir secuencia de
nivel”, y podemos ver que
inmediatamente hay un par de problemas. Una es que mi personaje
está por el suelo, y cuando froto la línea de tiempo de la secuencia de
niveles, no
hay animación que
realmente se esté reproduciendo. Podemos resolver estos
problemas uno por uno, y luego unir esta cinemática
para jugar exactamente cuando jugamos
nuestro juego y luego
mezclarnos a la perfección con la animación del
juego Primero resolvamos algunos
de estos problemas. Siendo el primero,
quiero que este personaje que traje
coincida con el inicio del jugador. Puedo seleccionar el inicio del jugador, y puedo copiar
estos atributos en el panel de detalles para
la ubicación de transformación. Entonces puedo hacer clic en el
personaje ellos mismos y luego pegarlo
haciendo clic derecho y eligiendo pegar. Ahora solo necesito obtener
la orientación correcta. Al hacer clic en el inicio del jugador, puedo ver que es un 50 positivo, solo
necesito ir a seleccionar al jugador y ir
positivo 50 también. Ahora bien, estos coinciden con
la misma orientación y dirección de dónde va a empezar el jugador
, así
como el personaje de
secuencia de niveles. Esos deberían coincidir cuando entremos y salimos de la
cinemática a la jugabilidad El otro problema es, no puedo
ver la reproducción de la animación, y eso es porque hemos
activado el blanco de librea
para este personaje Bueno, el personaje
que estamos viendo aquí es en realidad la
versión de clase spawn de este personaje Es una versión engendrada de nuestro personaje jugable
de nuestro plano En ese plano,
activamos la focalización de librea. Para la secuencia, queremos
apagarlo, de esa manera, no está buscando reproducir
el objetivo de librea, sino que estamos tratando de dejar reproduzca
la animación en
la secuencia En nuestro objetivo de librea,
puedo marcar esto para usar el objetivo de biblioteca para la versión de
blueprint de spawn de Puedo desmarcar esto, y entonces deberíamos
poder fregar y verlo. Actualizará y reproducirá la
animación en la que estamos incitando al jugador para
comenzar realmente a jugar el juego Esa fue la
elección de rendimiento que hice para mi cinemática. El tuyo
podría ser diferente. ¿Cómo tenemos ese juego de secuencia de
niveles y luego combinamos a la perfección en
nuestra animación de juego? Queremos
saltar a un nuevo tipo de plano llamado plano de
nivel Podemos acceder a este
plano de nivel yendo a este icono de árbol aquí arriba y alternar esto hacia abajo para
abrir plano de nivel Normalmente, no hay nada
aquí en el gráfico de eventos, y aquí es donde
realmente podemos usar el evento start play para este nivel para jugar
la secuencia que tenemos. Lo primero que quiero hacer es seleccionar
en realidad una secuencia de
niveles. El inicio de secuencia de nivel
es el nombre mío. Puedo elegirlo del
outliner de la ventana gráfica. Ahora cuando haga clic con el botón derecho,
puedo decir, crear una referencia
a la secuencia de niveles. Sin esta selección,
esta no sería una opción. Asegúrese de seleccionar
primero
la secuencia de niveles antes de
hacer clic con el botón derecho aquí Ahora que hemos creado esta referencia a
nuestra secuencia de niveles, necesitamos hacer clic en arrastrar fuera de esto para encontrar el siguiente
nodo que necesitamos. Cuando hace clic y
arrastra fuera de los nodos, esto es contextual a ese nodo. Si trato de encontrar
lo mismo que vamos a buscar aquí desde
el evento comenzar a jugar, no
lo podría encontrar. Quieres
asegurarte de que estás haciendo clic y arrastrando fuera de los nodos correctos para encontrar los correctos
que estamos buscando Quiero encontrar jugador de
secuencia de juego, y cuando haga clic en eso,
me sale un par de notas aquí, y
podemos arrastrar esto. Ahora tenemos una forma en la que nuestra
secuencia va a jugar, pero no
sabe
poseer realmente al personaje con el que vamos a estar jugando, y eso está en nuestra secuencia. Necesitamos alguna manera de
conseguir nuestro personaje, y podemos hacer clic derecho
y decir, conseguir peón jugador Eso significa obtener el peón
del personaje que se está generando con el que estamos jugando Eso es esto. A continuación, queremos crear una etiqueta para
un personaje para que sepa qué personaje
poseer. Podemos
controlar muy específica
y manualmente lo que esta
secuencia de niveles está controlando. Al hacer clic y
arrastrar de nuevo, tenemos que estar
arrastrando fuera de esto, puedo buscar un conjunto de
enlace por nodo de etiqueta Ahora lo único que queda por
hacer es conectar algunas de estas cosas y también
crear esta etiqueta aquí. Voy a minimizar este primer segundo y entrar en
crear nuestra etiqueta. Si hago clic con el botón derecho en el plano, puedo crear una etiqueta aquí Ahora, la parte complicada del
metahumano es que
en realidad hay múltiples componentes que comprenden este plano Tenemos el cuerpo, tenemos
la cara, y específicamente, lo que estamos tratando de
poseer y filtrar por una etiqueta es en realidad el cuerpo. Ahí es donde está la animación. Queremos agregar realmente
la etiqueta al cuerpo. Voy a hacer clic derecho
y agregar la etiqueta al cuerpo. Voy a presionar “Control A” y “Control C” para seleccionar todo y copiar para
asegurarme de que lo voy a escribir incorrectamente en
nuestro plano de nivel Voy a presionar “Enter”
para crear esa etiqueta, y podemos ver que existe
aquí junto a nuestro cuerpo. Si iba a golpear “Reproducir ahora”, podemos ver que se reproduce la
animación, pero genera otro personaje Arreglemos eso agregando la etiqueta al
plano del personaje también. Voy a agregar la etiqueta
al plano en sí también, y eso debería solucionar este problema Voy a reabrir
el plano de nivel, y puedo pegar esta etiqueta de enlace aquí
mismo que acabamos Ahora sabe a qué atarse basado en el actor que le
vamos a dar. El actor es el jugador peón, voy a conectar esto arriba. Vamos a obtener una
pequeña cosa de array que se va a
crear automáticamente. Ahora todo lo que tenemos que hacer es conectar todo de izquierda a derecha. Cuando el juego comience a jugar, estableceremos esta etiqueta y luego jugaremos la secuencia
basada en esa etiqueta, y voy a presionar
“Compilar” y “Guardar”. También voy a cerrar fuera del secuenciador porque a
veces lo irreal se confunde si
estamos tratando de jugar la secuencia en el juego
o en la línea de tiempo aquí Voy a cerrar esto solo
por razones de seguridad. Podemos ver que funcionó, y
nuestra animación retrocede. Ahora el problema es que
necesitamos mezclarlo un poco más suavemente a
esta animación ociosa. Voy a entrar en
la secuencia de niveles, y voy a crear una mezcla. Voy a hacer clic en
la secuencia de niveles, y voy a
abrir la secuencia de niveles. Cuando miro la animación, existe este atributo muy
furtivo que podemos ajustar,
que es la mezcla Ahora bien, si mantengo
el ratón bajo aquí, en realidad
estoy cambiando la
duración de la animación en sí. Pero lo que quiero
hacer en realidad es agarrar la esquina superior donde
podamos ver este
pequeño triángulo. Esto controlará la
mezcla real de la animación. En lugar de hacer estallar,
tendremos alrededor de un segundo para mezclarnos con
la animación ociosa desde el final de nuestra cinemática Como no
coincidirán exactamente donde están
las posiciones de los pies de
nuestros personajes, por ejemplo, tendremos una agradable mezcla
suave entre cualquier desajuste
con la imposición de
nuestra secuencia de niveles
y el comienzo de
nuestra
animación de juego inactivo de inicio Ahora cuando juego, debería
poder ver mi reproducción de animación, y deberíamos tener una mezcla
más suave en inactivo. El único problema con esto es que
si empiezo a intentar ingresar, es pelear la
animación aquí. Si estoy tratando de moverme mientras está jugando, es una especie
de pelear entre ellos. Necesito desactivar la entrada por cierta cantidad de tiempo, voy a ir al plano
de nivel, y voy a deshabilitar la entrada Entonces quiero
retrasarlo una cierta
cantidad de tiempo en
función de la duración de
la animación en sí. Digamos tres segundos. Entonces quiero poder volver a ingresar una vez
que eso esté terminado. La última pieza del
rompecabezas es decirle
cuál es el objetivo y el controlador
del jugador. Necesitamos obtener el controlador del
jugador, y luego fuera de este controlador de
jugador, quiero encontrar el peón
controlado El objetivo va a
ser el peón controlado. Puedo hacer doble clic en esto y control-clic en él para que esté
un poco más organizado, y el
controlador del reproductor va a ser el que
hayamos agarrado Golpeando control para que
pueda mantener eso abajo y sacar otra
versión de eso aquí. Haga doble clic, y ahora esto debería funcionar para deshabilitar
la entrada durante nuestra reproducción cinematográfica Si presiono en el teclado, no
debería poder moverme
hasta que esté
difuminando el retraso. Puedes ver que cambié un
poco durante eso, realidad
puedo simplemente aumentar
el retraso en nuestro temporizador aquí a algo así como
cuatro y compilar y guardar, y esto debería impedir
que podamos
mover a nuestro personaje
durante la cinemática Estoy manteniendo pulsada W y
no pasa nada, y luego empieza a moverse
una vez terminada la cinemática En esta lección, aprendimos a crear una mezcla perfecta de un modo cinematográfico al
modo de juego para nuestro personaje Aprendimos a crear una mezcla perfecta
ajustando algunos valores Siéntete libre de hacerlo
tuyo y convertirlo en una mezcla perfecta desde la cinemática de tu elección hasta la
animación ociosa de nuestro personaje Si te encuentras con
algún problema para que se produzca esa
mezcla perfecta, solo asegúrate de que
tu jugador comience y tu secuencia de niveles estén
orientados de la misma manera. Encuéntrame en la siguiente lección, donde vamos a
crear un temporizador de inicio.
8. Crea un disparador de temporizador de inicio: Bienvenido de nuevo. En esta lección, vamos a crear un temporizador de
inicio para nuestro jugador, que sepan
lo
exitosos que son en el nivel que hemos diseñado para
ellos. Volvamos a sumergirnos. Vamos a crear rápidamente
una línea de inicio aquí. Para crear la línea de inicio, voy a usar una caja de activación. Voy a escribir el cuadro de activación
en la parte superior del botón de
anuncio aquí. Quiero una caja de gatillo. No quiero un volumen de disparo ni nada más.
Quiero una caja de gatillo. Voy a usar eso, y puedo simplemente escalar esto, y asegurarme de que cubra
toda la línea de salida aquí. Por supuesto, también podría poner aquí
algunos otros elementos que signifiquen para el jugador que esta es en realidad
la línea de salida Pero por ahora, solo quiero
asegurarme de que los elementos del juego estén adentro. Entonces siempre podemos volver
y agregar algunas obras de arte o mallas
estáticas para que
los elementos funcionales del juego sean más claros para el jugador Voy a asegurarme de que el gatillo de caja cubra
esta sección por completo, y que sea lo
suficientemente alto como para que no
pudieras saltar por encima de
él como jugador. Cuando el jugador
pase por esto, vamos a
activar este volumen. Comencemos
configurando esta lógica para que tengamos una
variable en segundos, y podamos crear un pequeño temporizador que se mostrará en la ventana. Pero necesitamos crear una
variable para los segundos y activarla en base a que
pasemos por este volumen. Para ello, quiero
editar el modo de juego. El modo de juego se encuentra justo al lado del plano en tercera
persona, y se llama modo de juego en tercera
persona Puedo hacer doble clic en esto, y abriremos la ventana de configuración. Lo que queremos es el editor de planos
completo real. Necesitamos hacer clic en
este botón aquí para
acceder al editor de planos para el modo de juego Ahora que tenemos esto, podemos comenzar a crear nuestras variables
que vamos a necesitar. El primero son segundos. Necesitamos alguna forma de
medir el tiempo, y por supuesto, los segundos la forma más común y
fácil de hacerlo. Hay diferentes
tipos de variables. Esto es un tema relacionado con
las matemáticas de la informática. Si todos estos nombres realmente no tienen ningún
sentido, no
te preocupes por eso. Puedes buscar eso
o simplemente seguirme. Solo queremos
elegir flotar por ahora. Ahora podemos crear un evento personalizado que va a ser activado, así puedo agregar un evento personalizado haciendo clic
derecho y
diciendo, Agregar evento personalizado. Puedo llamar a esto Temporizador de inicio. Cuando se activa este
evento personalizado, quiero establecer los segundos cero porque necesitamos
comenzar desde cero. Voy a hacer clic y arrastrar la variable hacia afuera y
elegir Establecer segundos. El valor predeterminado ya
es cero, así que solo necesitamos
conectar esto arriba. Ahora, necesito otra
variable que pueda rastrear si el temporizador
está funcionando o no. De esa manera, puedo usarlo más adelante, ya sea que estemos rastreando si
el temporizador está encendido o apagado, y si queremos mostrar un
temporizador de línea de meta, por ejemplo. Voy a agregar otra
variable llamada temporizador B funcionando, y B es para booleano Queremos cambiar esto
a un tipo booleano, que es un valor verdadero o falso Si pasas el cursor sobre estas,
también puedes ver cuáles son estas
variables Para éste,
sólo necesito saber, ¿está funcionando o no
está funcionando? Cuando arranquemos el temporizador, va a estar funcionando. Puedo configurar la variable de
ejecución del temporizador para que esté
encendida, así puedo conectarlos
y luego marcar esta casilla. Cuando ocurre el
evento del temporizador de inicio, va a establecer la
variable segundos en cero, y va a establecer la variable time
o running en on. Pero, ¿cómo contamos los segundos? Necesitamos alguna manera de agregar tiempo a esta variable llamada segundos. Bueno, podemos usar algo
llamado tick de evento. Si hago clic derecho
y digo tick de evento, hay un evento que ya está
integrado en el motor Unreal Si coloco el cursor sobre él, se puede
ver el evento llamado cada fotograma. Es una manera fácil de
obtener un valor basado en el tiempo dentro del motor irreal Quiero tomar el valor
inicial de cero, y quiero agregar, para poder hacer clic y arrastrar,
y elegir Agregar. Quiero agregar los segundos Delta,
es decir, la
cantidad cambiante de segundos. Delta segundos ya está rastreado
en este evento nodo tick. Puedo hacer clic y arrastrar esto hacia adentro, y ahora estamos agregando
a esta variable. Pero ahora tenemos que configurarlo
después de que le hayamos agregado. Puedo hacer clic y arrastrar
esto y elegir Establecer segundos. Puedes ver que tenemos nuestra variable
personalizada aquí abajo, y ahora podemos establecer los
segundos en la garrapata Evento. Pero no queremos
hacer esto todo el tiempo. Solo queremos hacerlo cuando el
temporizador realmente está funcionando. Podemos usar este valor para
ramificarnos de esta tecnología de eventos. Podemos decir rama,
y podemos decir, si esto es cierto, si el temporizador
está funcionando, entonces haz esto. A continuación, establezca el número de segundos en función del
Delta en el tic del evento. Si esto es falso, no hagas nada. Ahora hemos creado nuestro evento de temporizador de inicio
personalizado, que va a rastrear
el número de segundos, y también va a establecer una variable que el
temporizador está ejecutando. Entonces va a establecer
esos números de segundos que podamos llamar a
nuestra interfaz de usuario,
y en realidad usar este valor, por lo que se poblará de
forma dinámica y procedimental Vamos a crear el elemento UI
ahora que el jugador puede ver. Voy a
hacer clic derecho y elegir Interfaz de
usuario,
Widget Blueprint Sólo hay una opción,
así que elijamos esa. Voy a llamar
esta vez Widget. Dentro de aquí, tenemos un Canvas que podemos agregar texto,
para mostrar cosas en
pantalla para nuestro jugador como estado de salud o en
nuestro caso, este temporizador. Lo primero que tengo que
hacer es agregar un Canvas. Ahora puedo ver cuál es la forma de mi ventana a la que le estoy
agregando cosas. Puedo hacer clic y arrastrar esto, y ahora podemos ver cuál es la
frontera de nuestra escena. Ahora puedo empezar y apenas
empezar a arrastrar el texto. En este bloque de texto,
quiero llamar a este temporizador, golpear un espacio y dos puntos. Ahora tenemos nuestro temporizador. Voy a poner esto
arriba en la parte superior izquierda. Puedes ponerlo en el
centro, donde quieras. Voy a añadir
otro trozo de texto que va
a ser nuestro segundo. Esa es la variable que
acabamos de crear. Voy a vincular este
texto a esa variable. En este pequeño menú desplegable, puedo elegir Crear encuadernación. Voy a vincular la
variable a este texto. Ahora obtenemos esta
función que es preguntar, ¿a qué quieres vincularte? Necesitamos obtener el modo de juego, porque
ahí es donde
vive esa variable , esa variable de segundos. Puedo hacer clic y arrastrar esto, y decir elenco al modo de juego en tercera
persona. Básicamente
solo estamos tratando de obtener este plano del modo de
juego en tercera persona, y una vez que lo tengamos, solo
podemos decirlo, sí, obtener el modo de juego,
y ahora podemos acceder a la variable haciendo clic
y arrastrando desde aquí, y eligiendo obtener segundos Ahora puedes ver que tenemos
nuestra variable aquí, y podemos dar click y
arrastrar esta al texto. Se va a convertir el valor
flotante en una cadena, para que pueda ser utilizado como texto. Voy a compilar y guardar. Voy a volver aquí
y compilar y guardar, y solo asegurarme de que
estamos todos instalados. Necesito mostrar el
temporizador que hemos hecho. Necesito mostrarlo en
la pantalla real. Puedo hacer clic en el
botón Diseñador aquí arriba, y volver y hacer cualquier
ajuste que necesite hacer, pero necesitamos alguna manera de mostrarlo
realmente en la pantalla. Podemos hacerlo en el plano del
personaje. Voy a hacer doble clic en
el plano del personaje. Cuando el juego comienza
el Evento comienza a jugar, todas estas cosas pasan. Yo sólo quiero agregarle
algo. Quiero decir cuando esto comience, también crear el widget
y mostrarlo. Puedo hacer clic y arrastrar esto y elegir
Widget, Crear Widget. Puedo seleccionar el Widget
de esta clase, y podemos tratar de encontrar
nuestro widget de temporizador
aquí mismo . Ahora lo hemos creado. Ahora quiero
mostrarlo en la ventana gráfica. Puedo hacer clic y arrastrar esto,
y decir, agregar a la ventana gráfica Ahora necesito saber qué agregar
a la ventana gráfica, y podemos simplemente devolver
este valor aquí Puedo compilar y guardar. El paso final es
conectar la caja de activación a nuestro evento personalizado que hemos
realizado en el modo de juego. Necesitamos alguna manera de
desencadenar todo esto, así puedo saltar
al plano de nivel, y puedo crear un evento
personalizado
basado en el cuadro de activación
que hemos hecho Es más fácil si en realidad
selecciono este cuadro de activación primero, y luego hago clic derecho, obtengo agregar evento
para Trigger box 0. Sabe qué
cuadro de activación he seleccionado, y quiero agregar
un evento de colisión. Add on Actor comenzar
solapamiento es lo que queremos, y cuando comencemos a
superponer esta caja de activación, hacer algo, y
vamos a decirle qué hacer. Si recuerdas,
nuestro evento personalizado está en nuestro modo de juego en tercera persona. Necesitamos llamar a este modo de juego en
tercera persona para acceder a este evento personalizado. Voy a hacer clic y
arrastrar, y decir, modo de juego en
tercera persona, y solo vamos a lanzar a eso y obtener el modo de juego. Entonces todo lo que quiero hacer es
llamar a este evento personalizado, así puedo comenzar a escribir el temporizador de inicio de eventos
personalizado. Podemos simplemente hacer clic y
arrastrar esto como su objetivo, y compilar y guardar. Ahora hemos enganchado todo lo
que necesitamos para ligar. Hemos creado un evento personalizado
que hará un seguimiento de la hora. Hemos creado un
elemento de interfaz de usuario y conectamos esa variable personalizada de
segundos a este cuadro de texto. Luego hemos creado
un
Widget Alt to viewport al comienzo
de jugar el juego Hemos conectado todo
esto a una caja de activación, por lo que activará
nuestro evento personalizado que creamos en el modo de juego en
tercera persona. Esto no está funcionando
porque en realidad
agregamos todo al plano de
tercera persona,
no a nuestro plano metahumano Copiemos y peguemos lo que hicimos en nuestro plano
metahumano Si estás usando un metahumano
personalizado, necesitas hacer este paso dentro de tu plano
metahumano personalizado Voy a saltar
a mis metahumanos, y voy a abrir ese
plano Sólo voy a
copiar y pegar esto en Begin play, que está aquí arriba. Puedo ver que Begin play
está sucediendo aquí, y solo quiero copiar y
pegar todo eso aquí. Ahora voy a compilar y guardar, y eso debería funcionar para
nuestro carácter personalizado. Ahora puedes ver que en realidad
ya tenemos el temporizador en la parte superior izquierda.
Sabemos que está funcionando. Está mostrando la pantalla. Si corro por aquí, no
está haciendo nada,
pero en no
está haciendo nada, cuanto cruce nuestro volumen
invisible del disparador, debería comenzar a
mostrar una hora. Puedes ver que estamos rastreando
el tiempo ahora en nuestro juego. Gran trabajo superando esta
lección. Cubrimos mucho. Estábamos trabajando en un par de planos
diferentes, y poco a poco conectamos cada
uno de esos componentes. Creamos un evento personalizado, creamos una variable personalizada. Agregamos a esa variable,
para que pudiéramos rastrear el tiempo. Luego creamos nuestra propia interfaz de usuario para que el jugador pudiera
ver todo esto sucediendo, y luego usamos la
caja de activación como una forma de
activar realmente todo esto sucediendo
para que sea visible para el jugador. Aquí hay mucha
información. Solo tómate tu tiempo con él, y refiérase de nuevo a esta
lección si es necesario. Encuéntrame en la siguiente lección
donde vamos a crear un obstáculo para que nuestro
personaje lo supere.
9. Crea obstáculos con la lógica del juego: Bienvenida de nuevo. En esta lección, vamos a crear
un obstáculo para nuestro personaje
jugable supere Este obstáculo va
a ser una caja giratoria, modo que si el personaje
realmente se encuentra con
ella, estimulará la física de
Rag Dall en nuestro personaje y
luego se reiniciará a nivel Realmente es solo un obstáculo o
desafío
peligroso para nuestro jugador para hacer nuestro nivel más interesante. Abriendo nuestro proyecto de
nuevo, vamos a saltar. Primero, vamos a crear
el obstáculo. Voy a crear
un nuevo obstáculo en mi área de Blueprint metahumano Si estuviera haciendo un
montón de obstáculos, podría estar organizado para
hacer una carpeta por sí mismo. Pero por ahora, sólo
voy
a hacer una nueva clase de planos Voy a hacer clic derecho
en el navegador de contenido, clase
Check Blueprint, seleccionar el Actor,
y voy a
llamar a esto BP Underscore Voy a hacer doble clic en
este Blueprint vacío. En el interior, tenemos
este lienzo en blanco donde podemos crear
nuestro obstáculo. Voy a agregar
una malla estática haciendo clic en Agregar y
escribiendo en Malla estática. Voy a elegir Malla estática, y voy a encontrar un
obstáculo para nuestro tipo de malla, y quiero agregarlo
a nuestro Blueprint En el contenido de inicio de VR, hay una malla básica
llamada SM cube 03. Debido a que tiene contornos rojos, creo que va
a funcionar bien para nuestro objeto giratorio aquí. Voy a usar
esta malla estática. Ahora quiero agregar un componente de
movimiento giratorio. Cuando presiono simular, podemos ver que de hecho
está girando, pero está girando en la dirección equivocada y
está girando muy rápido. Simplemente puedo elegir un
eje diferente para girarlo. Voy a elegir
malla estática y golpear E, puedo ver que
o va a ser Y o X y que quiero
girarla en uno de esos dos ejes. Voy a ir al componente de movimiento
giratorio. En vez de z, quiero
convertir eso a cero. No quiero que rote en Z, y quiero que rote en X o Y. Quiero girarlo más lento. Voy a elegir un
valor menor a 180. Quiero elegir 90, y ahora cuando presiono simular, puedo ver que en realidad está girando en otra dirección, algo más deseable
para este objeto. Voy a
desactivar la simulación. Ahora quiero crear
un volumen de disparo que coincida con el tamaño
de este obstáculo. Voy a agregar
una colisión de caja. Con esta colisión de caja, la
voy a
escalar y hacer que coincida con
este tamaño de caja. Voy a presionar
R en mi teclado para sacar el atajo para
el manipulador de báscula Ahora quiero que sea un poco más grande que las dimensiones de la malla estática para poder
asegurarme de que el jugador realmente
pueda chocar con esta caja Voy a compilar y guardar, y voy a hacer clic y arrastrar este plano
directamente a nuestra escena Voy a rotarlo hacia arriba, y voy a presionar play. Ahora puedo ver que tengo un objeto
giratorio en mi escena, y si me encuentro con
él, no pasa nada. Simplemente puedo chocar en él, y no me lastiman de ninguna manera Lo que realmente quiero hacer
es desencadenar un evento de muñeca de trapo. Mi personaje simplemente
básicamente va flaco y
muere y trapo muñecas cuando
se encuentra con esta caja Necesitamos crear esa lógica de juego y
conectarla a este obstáculo. Además, si quiero mover
esto a su lado, puedo simplemente girar esto hacia abajo
también golpeando E en mi teclado y rotando
esto en 90 grados. También puedo escalar este objeto hacia arriba. Si quiero que esta báscula
la haga más larga, puedo hacerlo y presionar
R en mi teclado y escala y también W para moverla
hacia abajo más cerca del piso. De esta manera, está
bloqueando el camino. Vamos a crear la
lógica del juego para un personaje a Rag Dall
entrando en su plano Si estás usando un personaje de plano en tercera
persona, entrarás en ese plano y harás todo lo que
estamos a punto de hacer Pero estoy usando un metahumano
personalizado, así que voy a saltar aquí y crear este evento personalizado Queremos nuestro personaje
a Rag Dall, así que voy a llamar a mi evento
personalizado Rag Voy a hacer clic derecho en el gráfico de eventos de Blueprint y
comenzar a escribir evento personalizado Voy a agregar un evento personalizado
y llamarlo evento de Rag Dall Para este evento personalizado, quiero
simular la física
de este personaje. Voy a hacer click
y arrastrar fuera de esto y empezar a escribir simular. Quiero establecer la
física de simulación a la malla. Voy a establecer simular
la física a la malla. Podemos ver que ya lo
mapeó. Si elegí el equivocado, o si quería
cambiarlo más tarde, siempre
puedo hacer clic y arrastrar el componente y luego
mapearlo al objetivo. Voy a encender
simular porque esa es la razón por la que estamos creando este nodo es para simularlo. Entonces quiero
reiniciar el nivel. Voy a crear un
retraso primero porque quiero que la simulación
se produzca por unos segundos. Voy a retrasar esto para que
podamos ver que el efecto se produce tal vez por 2 segundos. Entonces quiero volver a subir
de nivel. Quiero obtener mi nombre de nivel
actual. Voy a escribir en obtener el nombre del nivel
actual, y fuera de esto, entonces quiero cargar este nivel por su nombre. Voy a decir nivel
abierto por nombre. Entonces puedo simplemente pipa en
el valor de retorno aquí. Creará un pequeño nodo de
conversión de conectores para nosotros. Ahora tenemos un evento personalizado
que desencadena la física de nuestra malla y retrasa el siguiente
evento unos segundos, y luego vuelve a cargar el mismo
nivel en el que estamos. Básicamente empezamos de nuevo después de
chocar con la caja. Pero tenemos que establecer
esa relación. Todo lo que hemos hecho es crear
el evento personalizado, pero nada lo está
activando en este momento Ahora, hay una última
cosa que queremos hacer debajo malla es bajar a la sección de
colisión, y bajo la sección de colisión, queremos asegurarnos de
elegir Actor de Física. Por defecto, esta
es la malla de personajes, y queremos cambiar
esto a actor de Física. Ahora que ya lo hemos hecho,
podemos compilar y guardar. Ahora podemos conectar
este evento personalizado con el propio obstáculo. Voy a abrir el
plano para el obstáculo
golpeando la barra espaciadora de control y luego abriendo el plano Dentro de este Plano,
quiero decir que el actor de
eventos comienza a superponerse Pero quiero hacer esto para
la caja específicamente. Voy a hacer click derecho y decir en evento sobre componente,
comenzar solapamiento. Quiero agarrar el
evento personalizado que acabamos crear y que vive en el
plano de mi metahumano, o tu personaje en tercera persona,
si estás usando Queremos emitir a eso para que
podamos obtener ese evento personalizado. Yo sólo voy a
pipas en nuestro Actor, y voy a llamar a
este evento personalizado. Recuerdo que lo llamé Rag Dall, así que voy a
escribir Rag Dall, y aquí tenemos El objetivo aquí es en sí mismo, a
lo que estamos lanzando. Ahora puedo compilar y guardar, y podemos probar esto. Solo necesito
encontrarme con esta barrera, y debería activar el trapo
Dall, y ya lo puedes ver Funcionó. Creó un efecto de Dall de trapo y
simuló la física, y reinició Ahora estoy de vuelta al principio. Pero hubo un
par de cosas raras. La cápsula que contiene
al personaje seguía chocando con este obstáculo después de que se iniciara el Rag Dall,
y está moviendo
mi Las cosas se ponen un
poco demasiado caóticas ahí. Lo que podemos hacer es volver
al plano para
este evento de Bag Dall, y podemos agregar
algunas cosas más Después de que
comencemos a
simular la física, destruyamos el componente de la
cápsula para
que ya no colisione
con el obstáculo Voy a hacer clic y
arrastrar fuera de aquí y comenzar a escribir destruir componente y elegir el componente cápsula. Lo que esto es si
miramos en la ventana gráfica, el componente de
la cápsula
es esta jaula de alambre, y eso es lo que
está colisionando con el obstáculo después de que ya
tenemos a Rag Queremos
apagarlo después de que hayamos disparado para simular
el Rag Dall en la malla del personaje Queremos apagar
el componente de la cápsula, para que ya no colisione con el obstáculo
después de que hayamos muerto Hemos destruido ese componente después de haber simulado
la física, hemos retrasado el siguiente
paso en 2 segundos, para que podamos ver que
la física tiene lugar, y luego quiero crear una transición de muerte un poco mejor al nivel de apertura nuevamente. Vamos a crear un desvanecimiento de cámara. Pero para hacer eso, no podemos simplemente
hacer clic y arrastrar fuera de aquí. Primero tenemos que conseguir
el administrador de la cámara y hacer clic y arrastrar fuera de eso. Primero tenemos que conseguir
el encargado de la cámara. Ahora puedo hacer clic y
arrastrar fuera de esto y decir, iniciar el desvanecimiento de la cámara. Esto solo está disponible
para nosotros si estamos haciendo clic y arrastrando fuera del administrador de la cámara
del jugador La cámara va a comenzar a
desvanecerse después de que haya
ocurrido el retraso y justo antes de que
nuestro nivel vuelva a cargarse Voy a poner esto
en el proceso. Queremos digamos que se desvanecen de un color
rojo porque morimos. Lo estamos haciendo un poco de
rojo oscuro solo para que
sepamos que se está desvaneciendo
porque hemos muerto Quiero que la duración
ocurra más de 2 segundos. Puedes jugar con este
valor y hacerlo más, algo así como 5 segundos. Quiero desvanecer 0 -1. Quiero encender el efecto
por completo, que es uno. Voy a teclear en uno aquí. Ahora, para ver que esto sucedió, para ver que este desvanecimiento suceda, necesitamos otro retraso aquí. Voy a copiar y
pegar este retraso, y lo voy a
poner aquí para que podamos ver que se produce
el desvanecimiento. Quieres que este
retraso sea tan largo como la transición y el
desvanecimiento de la cámara debería estar ocurriendo. Ahora tenemos un evento personalizado. Se va a llamar cuando
choquemos con la caja. Va a
estimular la física, va a
destruir la cápsula, así que ya no vamos a
chocar con el obstáculo mismo después de que ya
hayamos muerto, y vamos a poder y vamos a poder
verlo por unos segundos, y luego vamos
a empezar a ajustar la cámara y recargar el nivel en
el que nos encontramos Voy a compilar y guardar
y probar esos cambios. Eso funcionó, ya no estamos
colisionando con el obstáculo después de que se
active la simulación y se recargue el nivel. Ahora que hicimos este
obstáculo para nuestro jugador, podemos tomar este
peligro subrayado de
Blueprint o como sea que
lo llames tu propio Blueprint, y en realidad simplemente haríamos
clic y lo
arrastraríamos a nuestra escena tantas
veces como queramos No tenemos que seguir creando este obstáculo una y
otra vez en los Planos Lo hemos hecho una vez,
y podemos usarlo una
y otra vez donde lo
queramos en nuestro nivel. Un paso que quieres asegurarte es
hacer que colisión de
la caja sea
más grande que el obstáculo en sí. De lo contrario, el jugador
nunca podrá realmente chocar con él porque está
dentro del obstáculo Queremos hacer que la
colisión de la caja sea más grande que el obstáculo para que podamos desencadenar todos
estos eventos que sucedan. Juega con él, haz obstáculos de diferentes
formas y tamaños, elige diferentes mallas estáticas y colócalas
alrededor de tu nivel Yo en la siguiente lección, te
voy a mostrar otra forma en
que podemos usar este plano
10. Termina las áreas de peligro: Bienvenida de nuevo. En esta lección, vamos a tomar ese plano de
obstáculo, y vamos a agregarle
una explosión También vamos a agregar un sonido, y luego lo vamos
a reutilizar, que podamos usarlo más lugares
en nuestro nivel. Empecemos. Así que voy a hacer algo de
espacio para este evento ragdoll, y voy a
hacer clic y arrastrar
y comenzar a escribir
emisor de spawn Voy a decir engendrar
emisor a adjunto. El adjunto va a ser
el componente real de la cápsula. Así que vamos a adjuntarlo
al componente de la cápsula. Pero tenemos que hacer esto
antes de que se destruya. Así que sólo voy a mover
este nivel hacia adelante. Por lo que puedo decir adjuntar
a este componente. Lo que queremos emitir es una explosión de stock que en realidad
viene con motor irreal Así que vamos a emitir una explosión en la ubicación del
componente de la cápsula. También quiero tocar un
sonido con la explosión. Voy a mover esto
hacia abajo y voy a sacar y
decir, reproducir sonido 2D. Puedo previsualizar estos sonidos
presionando el botón de reproducción. Entonces encontremos una explosión. Todos estos sonidos vienen
con motor irreal. Entonces voy a elegir
el de explosión, y voy a
compilar y guardar. Ahora cuando nos
topamos con este objeto, deberíamos ver una explosión
y escuchar un sonido. Ahora bien, si quisiéramos
tener el mismo efecto para nuestro obstáculo de fuego
o cualquier otro obstáculo, no
tenemos que tener
la malla estática. Podemos crear un nuevo plano de
obstáculos. Entonces voy a hacer clic derecho
y duplicar esto, y voy a llamar a
este disparador de peligro. Porque lo que en realidad podemos hacer es simplemente eliminar
la malla estática, y podemos simplemente tener
este componente disparador. Podemos apagar la rotación porque no la
necesitamos para rotar. Yo sólo puedo restablecer la escala, así cuando traemos
este componente de peligro, podemos redimensionarlo
a lo que necesitamos Voy a hacer clic y
arrastrarlo al pozo de fuego, y voy a escalar esto que cubra todo
el pozo de fuego. Pero quiero mantenerlo lo suficientemente
bajo para que no vaya
más alto que la caja en sí. Sólo voy a bajar
esto un poco. Ahora voy a probar
este volumen de disparo. Así es como creas obstáculos y reaparenas al inicio
de tu juego En esta lección, creamos una explosión para nuestro obstáculo, así
como para el sonido, y reutilizamos ese plano
de
obstáculos de diferentes maneras para que podamos salpimentarlo a lo largo decir, la siguiente lección, donde vamos a tomar todo
este videojuego y hecho empaquetarlo para que podamos compartirlo
con nuestros amigos.
11. Empaca y comparte tu juego: Bienvenido de nuevo. En esta lección, vamos a aprender
cómo podemos empaquetar el videojuego que has creado
y compartirlo con amigos. De esa manera podrás saber quién es el jugador más rápido de tu
videojuego. Empecemos. primero es que
queremos asegurarnos de que el juego cargue el nivel correcto para el jugador
cuando lo abra. Tenemos que establecerlo en
la configuración del proyecto. Vamos a editar la configuración
del proyecto, y en mapas y modos, podemos seleccionar el mapa predeterminado del
juego. Actualmente, está establecido en el Mapa Mundial Abierto
predeterminado, que no es el nivel
que hemos creado. El nivel que he hecho se
llama Nuevo Paisaje 01. El nivel que elijas será el que elijas para nombrarlo. Solo necesito
bajar este menú y hacer clic en mi
nivel que creé. Ahora, cuando empaquetamos nuestro juego, en realidad
va a
cargar el mapa correcto cuando empecemos a jugar el juego. Solo voy a
cerrar esto y para comenzar a empaquetar nuestro
juego para que jueguen nuestros amigos, podemos ir a
plataformas y elegir la plataforma en la que
queremos publicar. Voy a elegir Windows y paquete de proyecto. Pero aquí
nos sale un error. Es porque no tenemos instalado el
STK para Windows, así que voy a hacer clic en Cancelar Si vuelvo a
plataformas, ventanas, y miro el
fondo aquí, puedo ver qué
versiones están permitidas. Entonces todo lo que necesito hacer
es Google Windows, STK y descargar el instalador e instalar el STK para Eso tardará un poco instalarse y luego
una vez que esté terminado, podrás volver a saltar a lo
real e ir a plataformas. Luego haz clic
primero en Actualizar estado de la
plataforma a menos que ya hayas
cerrado y reabierto irreal Ahora debería actualizarse
y poder usar el paquete STK que
hemos instalado Ahora iremos a plataformas, ventanas y proyectos de paquetes. Ahora no obtenemos un error,
y es solo
preguntarnos dónde queremos guardar
este proyecto de paquete. Nos recibieron con
un error fallido, y puedo abrir el
registro de salida y ver por qué falló Parece que todavía nos
falta un componente, que es el Visual Studio 2022. Voy a encontrarlo en línea
e instalarlo y volver a intentarlo. Si su instalador
está atascado en cero, entonces puede cancelar y
asegurarse de que se ejecuta como administrador haciendo clic derecho y seleccione ejecutar como administrador. Asegúrate de incluir también las cosas de C++ en la instalación,
así que marca esta casilla. Ahora podemos volver a
saltar a plataformas, ventanas e intentar
empaquetar proyecto de nuevo. Si recibimos esta advertencia,
queremos asegurarnos de
que permitimos el acceso. Este paso va a
tomar un poco de tiempo, así que solo déjalo correr. Ya terminó de
empaquetar nuestro juego, así que tenemos una
carpeta de Windows justo aquí, y dentro de esa carpeta, podemos ver el icono
irreal del motor Todo lo que necesito hacer para jugar a
nuestro juego es hacer clic en este ícono irreal del motor que es
una aplicación ejecutable Ahora tenemos nuestro juego
y ya está listo para funcionar. Ahora, si queremos
dejar nuestro juego, todo lo que tenemos que hacer es
presionar la tecla tilda, que está en la parte superior izquierda de la
mayoría de los teclados justo
debajo de la tecla de escape, y podemos escribir
salir y presionar “Enter” Si quieres compartir este
juego con tus amigos, puedes hacer clic y
arrastrar todo, y en windows, puedes hacer clic
derecho sobre esto y elegir S dos carpeta zip
comprimida. Esto creará un
archivo que podrás compartir con tus amigos
que ellos puedan comprimir, y solo ten en cuenta que este puede ser un archivo bastante grande. Creo que el mío es
alrededor de 4 gigabytes. Querrás usar algún servicio de transferencia de
archivos como wetransfer.com o Google Drive para compartirlo con tus amigos En esta lección,
cubrimos cómo
empaquetar realmente el juego que hemos creado para que podamos
compartirlo con nuestros amigos. Hay dos cosas que
tuvimos que instalar para Windows. Teníamos el Windows STK
así como el estudio visual. Puede que tengas algunas de estas
cosas ya instaladas si eres algún tipo de programador de
computadora grande, pero yo no, así que
tuve que instalarlo. Esos tardan un poco, mío se colgó
del 0% durante mucho tiempo, así que solo trata de ser paciente
con esas instalaciones. Recuerda que el tamaño del archivo puede
ser bastante grande para estos. Querrá encontrar un servicio de transferencia de
archivos que permita tamaños de archivo
grandes. Me gusta usar transfer.com o Google Drive y
ahí lo tienes. Tienes tu juego,
puedes descargarte y compartirlo.
12. Reflexiones finales: Enhorabuena por
terminar esta clase. Si has estado siguiendo todas
las clases de la serie y aún mayores felicitaciones porque es mucho material. Ahora que has
terminado esta clase, tienes un conjunto de habilidades increíble. Aprendimos a agregar un
estado a una máquina de estado. Aprendimos a
crear obstáculos para nuestros personajes y
cronometrar sus movimientos a través de un nivel para que podamos crear un videojuego competitivo e incluso poder
compartirlo con nuestros amigos. Me encantaría ver lo que hiciste. Por favor, toma un video
de
captura de pantalla de tu juego y compártelo
en la galería del proyecto. Si te interesa
llevar esto aún más lejos, ve a jugar a tu videojuego
favorito. Ve qué tipo de características
y componentes existen en esos e intenta
recrearlos en tu propio videojuego Ahora, considera todas
las complejidades de tus videojuegos favoritos, y piensa en cómo puedes llevar tu videojuego
al siguiente nivel Podrías agregar un jet
pack a tu personaje. Podrías agregar un sistema enemigo,
un sistema de combate, un sistema de inventario de
armas. Hay tantas maneras
diferentes en las que podrías subir de nivel tu juego. Puedes ir a inspirarte
en tus juegos favoritos. Una vez que hayas ido por cada
una de estas avenidas, reconoce que cada una es
su propia disciplina de carrera Si te gusta crear enemigos y
descubrir el comportamiento de la IA, esa es su propia disciplina
en una compañía de juegos O si te gusta hacer el diseño de
niveles y
averiguar la lógica del juego de cómo el jugador interactúa
con el entorno, esa es su propia disciplina Continúa explorando tanto
como puedas, porque cada camino tiene su propio
camino hacia una carrera satisfactoria. Muchas gracias por
tomar esta clase. No puedo esperar a jugar tu juego cuando está
afuera en el mundo.