Transcripciones
1. 1.01 Introducción: En este curso, vamos
a aprender a desarrollar un juego de disparos en primera
persona multijugador usando planos en Unreal
engine Five recreando un juego similar al
icónico juego Counter Strike Este curso contiene todo lo que necesitas saber para
comenzar con desarrollo de juegos de
disparos en primera persona
multijugador en Unreal Engine Five Incluyendo cómo agregar movimiento FPS
multijugador. Cómo hacer una pantalla de
selección de equipo. Cómo recoger y soltar armas. Cómo hacer un inventario FPS. Cómo equipar una
pistola y un rifle. Cómo disparar usando
diferentes tipos de armas. Cómo calcular y mostrar la
cantidad correcta de balas. Cómo recargar un arma. Cómo agregar salud y armadura. Cómo inflige daño
a otros jugadores. Cómo recompensar los puntos redondos
para el equipo ganador. Cómo responder jugadores. Cómo actualizar los valores de la interfaz de usuario del juego
correctos en multijugador. Y por último, cómo agregar efectos
visuales y efectos de sonido
en multijugador. También te proporcionaré el proyecto
terminado para que
puedas inspeccionarlo como
desees mientras sigues el curso. Al final de este
curso
podrás crear con confianza tu propio
shooter multijugador en
primera persona desde cero en
hon real engine five Espero que hoy se unan a mí
en este curso. Y recuerda que
siempre estoy aquí para
apoyarte durante todo el curso
y espero verte pronto.
2. 1.02 Descarga Unreal Engine 5: Para descargar Unreal Engine Five, primero
tienes que ir a Epic games.com Y dentro de aquí, hay un botón azul
aquí arriba en la parte superior derecha Tienes que hacer click en él y se descargará el lanzador de
Epic Games. Puedes ver aquí,
ya se está instalando. No obstante,
ya lo he instalado, así que solo sigue adelante e
instálalo cuando esto termine. Y aquí he abierto el lanzador de Epic Games y te pedirá
que inicies sesión. Ya tengo una cuenta de
Epic Games, así que voy a iniciar sesión
con mi cuenta de Epic Games. Si no tienes uno, puedes seguir
adelante e inscribirte aquí. Es gratis, o puedes iniciar sesión con todos
los demás métodos. No obstante, voy a iniciar sesión
con mi cuenta de Epic Games. Una vez que hayas iniciado sesión
en el lanzador, estarás dentro de esta página. Adelante y da click en Honoral
Engine aquí a la izquierda. Siga adelante y haga clic en
la pestaña de la biblioteca aquí arriba, y verá las versiones
del motor. Esto es Honoral Engine, y si no ves nada, podrías tener una caja gris aquí si es la primera
vez que estás dentro de aquí Pero si no obtienes una caja gris, puedes hacer clic en
este botón más aquí
arriba y obtendrás uno. Después puedes seleccionar
el número y seleccionar qué versión de Unreal
Engine quieres instalar Ahora puedes ver que
ya tengo instalado Unreal Engine 5.2 Sin embargo, si tienes una versión posterior, si estás viendo esto en
el futuro y tienes 5.3 o 5.21 y así sucesivamente, solo tienes que seguir adelante e instalarla Se puede seguir adelante y
nada ha cambiado. Pero para este curso,
voy a instalar el nuevo motor
Unreal cinco Y entonces estamos listos para
saltar a la siguiente lección.
3. 1.03 Crea un nuevo proyecto: Sigamos adelante y lanzemos
Unreal Engine Five. Cuando Unreal Engine
five se haya lanzado, aparecerá
esta ventana, para que puedas ver tus proyectos
recientes Y si no tienes
ningún proyecto reciente, este estará vacío. Pero aquí se puede ver el mío. Y lo que queremos hacer,
queremos hacer clic en la pestaña Juegos porque
estamos creando juegos. Pero también se puede ver en
Real Engine Five se puede utilizar para hacer cine y arquitectura de
video, automotriz y simulación
también. Muy chulo. Pero para nosotros,
vamos a crear juegos. Entonces voy a ir
en la pestaña de Juegos. En la pestaña Juegos,
puedes ver que puedes seleccionar entre
diferentes plantillas. Por ejemplo, si quieres hacer un shooter en primera persona
como lo estamos haciendo nosotros, puedes seleccionar la plantilla de
primera persona. Si quieres hacer
un juego en tercera persona, puedes seleccionar este
y así sucesivamente. Para que veas puedes seleccionar entre diferentes plantillas
geniales. Sin embargo, todas estas
plantillas las puedes hacer tú. De hecho, puedes crear
un proyecto en blanco, y puedes construir
todo desde cero y crear todas
estas plantillas. Si sabes lo que estás
haciendo para mis cursos, me gustaría comenzar con un proyecto
en blanco sin nada en él. Porque quiero
enseñarte a construir un
juego de la nada. No me gusta empezar con
estas plantillas aquí. Y nuevamente, puedes
crear todo esto a partir de un proyecto en blanco si
sabes lo que estás haciendo. Entonces comencemos con
un proyecto en blanco porque quiero
enseñarte cada cosa. Partiendo de un proyecto en blanco, vamos a seleccionar Blueprint como nuestro lenguaje de programación Y la plataforma objetivo
es la calidad de escritorio. El ajuste preestablecido se establece al máximo. En cuanto al contenido de datos,
si tienes esto, lo
voy a quitar para que no
tengamos nada. De nuevo, quiero
empezar sin nada y luego seguir adelante y seleccionar donde quieres guardar el proyecto. Entonces voy a dar click
aquí y seleccionar una carpeta. Y luego sigue adelante y
dale a tu proyecto el nombre de este juego. Sólo voy a llamarlo Counterstrike porque es
el tipo de juego que estamos haciendo No lo estamos copiando al 100% También estoy haciendo
algunas cosas personalizadas. Pero será mucho más como contraataque para este shooter
multijugador Adelante, dale un nombre, y sigamos adelante y hagamos
clic en Crear proyecto. Una vez
creado el proyecto, aquí estamos dentro
de Unreal Engine Sigamos adelante en la
siguiente lección y echemos un vistazo a la descripción general
de Unreal Engine
4. Descripción de 1.04 Unreal Engine 5: Antes de comenzar
con nuestro proyecto, hagamos una breve descripción general de cómo se construye Unreal Engine Aquí en el medio,
tenemos la ventana gráfica, y aquí es donde
ves tu juego visualmente En la ventana gráfica, puede mantener presionado
el botón derecho del mouse. Cuando mantienes el botón derecho
del ratón en la ventana gráfica, puedes ver que puedes mirar a tu
alrededor dentro de la ventana gráfica Ahora cuando mantienes el botón derecho del ratón y haces clic en W, avanzas en el mundo. Al hacer clic en,
te mueves hacia atrás, Cuando haces clic en D,
te mueves hacia la derecha. Y cuando haces clic en A,
te mueves hacia la izquierda. Recuerda mantener presionado el botón de
la boca derecha cuando hagas esto. Así que mantén pulsado el botón derecho del ratón
y el
botón izquierdo del ratón al mismo tiempo. Entonces puedes ver que en realidad
puedes moverte solo con tu mouse, así. También puedes mantener el botón
izquierdo del ratón solo y moverlo
hacia adelante y hacia atrás. Y puedes ver que también puedes
verte así. Hay diferentes
técnicas de movimiento dentro de aquí. El siguiente es mantener pulsado
el botón derecho del ratón, y luego puedes hacer
clic en para bajar, o puedes hacer clic en para subir. Por supuesto,
lo último que tenemos aquí
es que si te desplazas con
el botón del mouse, puedes
acercar y alejar también. Estas son todas las
técnicas de movimiento, y eso fue todo. El principal que uso es que mantengo pulsado el botón derecho del ratón
y hago clic en S ADN. Simplemente me muevo por
el mundo así. Normalmente no uso
los otros métodos, este es el más
usado para mí. Entonces puedes intentar simplemente sostener el
botón derecho del mouse, hacer clic en, solo tratar de navegar, solo tener una idea
de lo que se
siente al moverse
dentro de este mundo. Por aquí, tenemos
diferentes botones dentro del visor, dando click aquí arriba, el
más importante es este llamado vista
de juego Y éste esconde
íconos en el juego. Y esto es útil para si tienes tantos
íconos en el juego. Recuerda cuando construyes un juego. Entonces, si haces clic en uno de los
elementos que tienes dentro del mundo y simplemente haces
clic en tu teclado, realidad te llevan a ese ítem. Puedes ver aquí si hago clic en,
en mi teclado, este es el
atajo para la vista del juego. Si hago clic en, escondo los íconos. Y esto es muy genial porque
quiero ver mi juego, cómo se ve realmente
sin ningún íconos. Y puedes volver
a hacer clic para mostrarlos aquí. El siguiente que tenemos
es el modo inmersivo, y esto hará que tu
Viewport esté a pantalla completa Al hacer clic en 11, ese es
el atajo para ello. Hace el juego
en pantalla completa. Y luego puedo dar click
en para ocultar los íconos. Y puedo tratar de ver
cómo se ve mi nivel sin que me
molesten todos estos íconos Haga clic de nuevo para
mostrarlos haciendo clic en 11 para
minimizar el Viewpoard Nuevamente, vamos a saltar por encima de estas herramientas
muy importantes. La primera se
llama herramienta Seleccionar. Al hacer clic en esto, puedes seleccionar diferentes artículos en el mundo. No uso esto demasiado, en
realidad uso estos tres. Nunca selecciono esto, en realidad. Si ahora que lo estoy
pensando, nunca
selecciono esto. Sin embargo, es posible que
encuentre un uso para ello. Pero al hacer clic en la
Q del teclado, puedes ver que tienen atajos si mantienes el mouse sobre ellos. Al hacer clic en Q,
selecciona la herramienta de selección, y al hacer clic en W en el teclado se
seleccionará la herramienta de movimiento. Seleccionando la
herramienta de movimiento, puedes ver si selecciono uno de los iconos, por ejemplo, me salen estas flechas. Para que veas
que tenemos una flecha verde, tenemos una flecha azul y
una flecha roja también. Con la herramienta de movimiento,
podemos mover artículos. Y puedes dar click en
una de las flechas. Y puedes moverlo
aquí sobre este eje. En este eje también. Y en este eje también. Aquí a la derecha, puedes ver en el panel de
detalles, realidad te muestra detalles
sobre el elemento seleccionado. Si seleccionas uno de ellos, puedes ver que cambia los
detalles sobre este artículo. Por ejemplo, aquí si
selecciono éste y también se puede ver cómo
se llama en el Outliner El Outliner básicamente te muestra todos los artículos que
tienes dentro de este mundo, dentro de este nivel
aquí que tenemos Esto es lo que hay dentro de él. Todas estas cosas
del paisaje que puedes ver aquí es solo
este mundo, puedes ver. Consta de bloques. Cuando lo seleccionas, puedes ver que también está
seleccionado aquí en el Outliner Cuando selecciono este
en la parte de vista, también
se selecciona
aquí en el Outliner Todas estas cosas que
puedes ver aquí es en realidad algo que
está dentro de tu mundo. Cuando selecciono esto, puedes
ver que se llama tragaluz. Es luz del cielo. Y se pueden ver detalles
sobre el tragaluz, por ejemplo, lo intenso que es Por ejemplo,
puedes aumentarlo. Digamos que quiero escribir tres. Y se puede ver que mi nivel es
más intenso en iluminación. Y puedo dar click aquí y volver a
hacer clic en uno o a la
derecha otra vez, y luego vuelve a la normalidad. Aquí puedes cambiar las cosas. Lo que quería
mostrarte aquí con la herramienta de movimiento es
cuando la mueves, puedes ver que también está cambiando la ubicación en
el panel de detalles. Si lo muevo, puedes ver que está cambiando valores en el valor z aquí cuando lo muevo esta manera y también cuando
lo muevo de esta manera. Pero para los puntos de pivote, se
puede ver que el rojo
es en realidad el eje X. Se puede ver sujetando
el ratón sobre él. Dice X. El verde
es el eje Y, y el azul es el eje Z. Tenemos el eje X, el eje Y. Y el eje z. Puedes cambiar la ubicación
de ellos haciendo esto aquí. O puedes cambiar la
ubicación escribiendo un número. Por ejemplo en la Z,
puedo escribir 200 haciendo clic Inter y se moverá hasta
el valor de 200 en la Z. Pero puedes hacer, en lugar
de escribir un número, también
puedes hacer clic, dar clic en el número y mantener presionado
el mouse y arrastrar Entonces puedes ver también puedes cambiar la ubicación
así también. Si quieres moverlo en
todas las direcciones a la vez, puedes dar click sobre esta bola
blanca en el medio. Y puedes moverlo en todas
direcciones todas a la vez. Si quieres moverlo en dos direcciones
diferentes a la vez, puedes hacer clic en la
casilla en el medio. Y puedes moverlo en estas dos
direcciones distintas que hayas seleccionado. A continuación, si haces clic en E en el
teclado o haces clic aquí arriba, simplemente obtendrás la herramienta de
rotación, tal y como dice. Puede hacer clic aquí
y rotar el artículo. este momento es un icono, así que realmente no
podemos ver
lo que está pasando. Pero si hago clic aquí arriba, esto agregará elementos. Pulsando aquí arriba,
yendo a Shapes, y solo voy a
agregar un simple cubo. Añadiendo un cubo simple, ahora
puedo hacer clic en el cubo, hacer clic en E en el teclado, o seleccionar la herramienta de rotación, y simplemente puedo rotar este
elemento alrededor de diferentes ejes. Nuevamente, puedes ver los
valores cambiando aquí para la rotación, y
puedes verlo aquí. También puede
rotarlo haciendo clic aquí, haciendo clic botón
izquierdo y arrastrando. Eso también lo rotará. Entonces tenemos la herramienta de
báscula por aquí, y como dice
escala el ítem. Se puede escalar en todas
estas tres direcciones. O si quieres que escale uniformemente en todas las
direcciones a la vez, puedes hacer clic en esta casilla
blanca en el medio. Y escalará en
todas las direcciones, todo al mismo tiempo
cuando lo escales. También puedes ver
los valores aquí, cuánto lo escalamos Si quieres restablecerlo, en realidad
puedes escribir 111
que restablecerá la escala. Sin embargo, también puedes hacer click
en esta pequeña flecha aquí. Esto restablecerá los valores a los valores predeterminados aunque al hacer
clic en esta pequeña flecha, volverá a los valores predeterminados. Por aquí a la derecha,
tienes diferentes herramientas de broches Se puede ver cuando hago clic en W en mi teclado para seleccionar
la herramienta de movimiento, puedo mover este ítem. Pero se puede ver que
no se mueve sin problemas. Se está rompiendo a una grilla. Puedo desactivar esto haciendo
clic en el icono de aquí arriba. Y ahora puedo
moverlo, y se puede ver que ahora se mueve sin problemas. Si vuelvo a hacer clic en él, lo
habilitaré. También puedes aumentar y disminuir la cantidad con la
que se está chasqueando Si hago clic en el
número aquí arriba, y puedo seleccionar, por ejemplo,
100, así que va a chasquear mucho más. Si lo arrastro ahora, se puede
ver que brota mucho más. Esto es útil para cuando
estás, por ejemplo, haciendo diseño de niveles
y quieres que los elementos coloquen como en un patrón uno
al lado del otro. Lo que puedes hacer,
por ejemplo aquí, es que puedes sostener Alt
en el teclado. Puede hacer clic y arrastrar
mientras mantiene presionada la tecla Alt. Esto copiará el artículo
si solo lo vuelvo a hacer. Hago clic y vuelvo a hacer clic
y arrastrar. Hago clic, clic y arrastre. Puedes ver que puedo
copiar los artículos. Y ahora se colocan a la misma distancia
entre sí. Así es como es útil la
herramienta de ajuste. Sólo voy a
restablecerlo de nuevo a diez por lo normal. Esto se puede hacer con la rotación y con
el dimensionamiento también. Se puede ver si hago
clic en para seleccionar la herramienta de rotación y hago
clic en una de ellas, yo giro, Se puede ver que gira cada diez grados.
Otra vez, está aquí arriba. Puedo aumentar o disminuir la cantidad con la
que se está rompiendo, o simplemente puedo hacer clic en el icono y puedo
girarlo ahora, libremente sin ningún chasquido Voy a volver a encenderlo. Y se puede hacer
lo mismo con el escalado. Ahora por aquí, puedes aumentar y disminuir la velocidad de la cámara. Se puede ver
ahora mismo me estoy moviendo dentro de mi mundo así. También puedo moverme mucho más lento. Imagina si tienes que
enfocar pequeños detalles aquí, es muy difícil mover la
cámara para que se vea aquí. Lo que puedes hacer,
puedes hacer click aquí arriba, aumentar la velocidad de la cámara. Ahora puedes moverte mucho
más lento y concentrarte en pequeños, pequeños detalles dentro
de tu nivel. No obstante, si quieres moverte al otro
lado del mundo, esto tardará para siempre. Puedes hacer clic aquí arriba,
aumentar la velocidad de la cámara, y ahora puedes moverte
al otro lado
del mundo rápidamente. Nuevamente, si quieres pasar
a un elemento específico, siempre
puedes hacer click sobre él aquí. Por ejemplo, si quiero moverme, digamos a mi
luz direccional, puedo dar click sobre ella. Y puedo dar click en mi teclado. Y lo hará aquí también. Ahora puedo
volver a disminuir la velocidad de
mi cámara a una por defecto. Y puedo moverme normalmente
aquí, igual que antes. Bien, así que esto era todo dentro
del Viewpoard Nuevamente, el outliner básicamente muestra lo que hay dentro
de tu nivel, lo que puedes ver visualmente
aquí dentro del nivel Pero por ahora, voy
a borrar estos cubos. Entonces voy a hacer click aquí, pulsa eliminar en mi teclado. Y también seleccionarlos todos. Y pulsa Eliminar en mi teclado. Ahora aquí arriba en la barra de herramientas, podemos guardar el
nivel actual en el que nos encontramos. También podemos hacer click aquí y utilizar las diferentes
herramientas que tenemos. Por ejemplo, si queremos
crear un paisaje, podemos usar la herramienta de paisaje
o follaje, por ejemplo. Si quieres pintar pasto
y árboles en tu nivel, puedes usar eso también. Sin embargo, no
vamos a usar esto dentro de nuestro juego
porque vamos a crear un nivel básico y también
nos estamos enfocando mucho en los
planos y en cómo
podemos programar nuestro shooter multijugador en primera
persona Entonces si quieres
enfocarte en crear paisajes
y follaje, por favor echa un vistazo a
Pixel Helmet.com mi sitio web Aquí
puedes encontrar muchos cursos que te
explicarán esto también A continuación por aquí, un botón
muy, muy importante es que puedes agregar diferentes
cosas a tu nivel. Por ejemplo, creamos
la Forma, el cubo aquí. También puedes crear iluminación. La iluminación que
puedes ver aquí, también
crearemos
desde cero. Y puedes crear las diferentes
luces dentro de aquí. También puedes crear efectos
visuales y así sucesivamente. Para que puedas colocar
diferentes elementos a tu nivel
usando este botón. A continuación tenemos el
plano de nivel. Y vamos a estar
hablando mucho de planos más adelante, así que no nos enfoquemos en
esto por ahora Y luego tenemos cinemáticas, y por ahora nos saltaremos las
cinemáticas Entonces tenemos el botón de reproducción, y si haces clic en
él, juegas el juego. Y entonces se puede ver que ahora estoy jugando mi juego
dentro del nivel. No está pasando mucho porque en realidad
no tenemos mucho dentro de aquí. Entonces voy a hacer clic en
Escape en mi teclado para salir del modo de reproducción haciendo clic
en estos tres botones. También puedes seleccionar cómo
quieres jugar tu juego. En este momento lo estamos jugando
dentro del Viewpoard. También haz clic aquí y
abre una nueva ventana. Y se abrió en
mi segunda pantalla, se
puede ver ahora estoy jugando
el juego en mi segunda ventana. Puedo hacer clic en Escape para salir de él. De nuevo, puedes seleccionar cómo
quieres jugar tu juego. Sólo voy a seleccionar
su Viewpoard seleccionado. Aquí abajo tenemos configuraciones
multijugador. Estaremos trabajando
con eso más adelante. Por último, si quieres
empaquetar tu juego y lanzarlo en Steam o
lanzarlo a tus amigos, puedes seguir adelante
y hacer clic aquí, Windows por ejemplo, y luego empaquetar el juego para lanzarlo. Ahora aquí arriba tenemos
los diferentes botones. Tenemos el botón Archivo, donde puedes crear un nuevo nivel, puedes crear un nuevo
proyecto y así sucesivamente. Muy básico en software antiguo
que hemos visto. Y luego en la edición,
lo más importante es el proyecto Settings, y vamos a estar usando mucho eso. Puedes ver que tiene
muchos botones y
puede parecer un poco confuso si eres nuevo en el motor general. No obstante, centrémonos en las cosas más importantes
que necesitamos aprender. Y puedes aprender todo
esto más adelante, pero por ahora nos
vamos a centrar en las cosas más importantes.
Vamos a saltarlo por ahora. Y vamos a estar
pasando mucho por esto en el curso. Entonces en Windows,
muy, muy cool, puedes abrir diferentes ventanas dentro de nuestro motor medio. Por ejemplo, esta ventana gráfica que puedes ver
aquí en el medio, puedes ir a Viewports, Y luego puedes dar click
en Viewports dos, y eso abrirá
una Ahora bien esto es genial si
tienes dos pantallas. Normalmente hago esto si tengo una cámara y solo
miro mi juego así, lo
pongo en mi segunda pantalla
y puedo trabajar aquí
también mientras tengo esta vista
de mi juego. Así que muy chulo. Puedes abrir
múltiples ventanas aquí. Y también va para
el panel de detalles si quieres abrir un
segundo panel Detalles. Y puedes ver aquí si
selecciono algo en mi mundo, puedes ver que son
los mismos detalles que se muestran
dentro de aquí. Tan muy, muy genial que puedes abrir múltiples ventanas aquí. En las herramientas, en
realidad no tenemos mucho, así que vamos a saltarlo por ahora. En Build, el único botón
importante aquí es que puedes construir el nivel
y construir la iluminación. Y hará las sombras
correctas y así sucesivamente, pero estaremos trabajando con esto más adelante cuando hagamos la iluminación, y al final
tenemos la ayuda y
puedes ver la documentación
aquí también. Bien. Lo último por lo que
quiero pasar antes de terminar aquí
es el cajón de contenido. Y da clic en el
cajón de contenido aquí abajo. Aquí es donde
estarán todos los archivos para motores reales, para el juego que estás creando. Por ejemplo, si tienes
texturas, si tienes música, si tienes tres modelos D, todos estos archivos
para tu juego, estarán aquí abajo
en el cajón de contenido. Lo que me gusta hacer,
puedes ver si hago clic en el Viewpoard,
desaparecerá Si hago clic aquí y vuelvo a hacer clic, digamos que estoy trabajando
en el Viewpoard, volverá a desaparecer Me parece un poco molesto. Lo que suelo hacer es hacer clic aquí y hago clic en Pato en Layout. Y se quedará aquí. Y ahora se llama
el navegador de contenido. Es quedarse aquí en
mi pantalla todo el tiempo. Cuando trabajo en mi juego aquí en el punto de vista
, nunca desaparece. Y también es mucho más agradable que
veas para este curso. Dentro del navegador de contenido, puedo crear carpetas. Si haces clic derecho aquí abajo, puedes crear una nueva carpeta. Por ejemplo,
puedes darle un nombre, por ejemplo, hola o
algo así. También puedes hacer clic derecho en la carpeta y
puedes establecer el color. Se puede establecer el
color de la carpeta. Y esto es muy agradable
si quieres mantenerte organizado aquí en
el navegador de contenido. Porque te puedes imaginar
si tienes un juego grande, tienes muchos archivos dentro de aquí en
el navegador de contenido, si quieres
crear algo nuevo, puedes hacer click derecho sobre aquí. Puedes ver en tu clic derecho, puedes agregar diferentes
elementos a tu juego. Lo más importante,
vamos a trabajar
con planos. Entonces esta es muy enorme. Y también podemos crear un
nuevo nivel, un nuevo material. Si tenemos algo
que ver con las animaciones, también
estaremos trabajando
con eso. Se puede crear
eso, por ejemplo. Puedes hacer click en una de ellas y podrás ver que
tienes diferentes opciones. Ahora mismo, en realidad no
tenemos un esqueleto, un jugador. Entonces voy a cerrarlo
y crear algo nuevo. Por ejemplo, un material. Y se puede ver aquí que está. Si quieres hacer que los
iconos sean más pequeños o más grandes, puedes hacer clic en la
configuración e ir al miniatura y
seleccionar un tamaño más pequeño Ahora lo que también puedes hacer,
puedes mantener el control en el teclado y puedes
usar la rueda del mouse. Entonces, si acercas con una rueda del mouse
mientras mantienes el control, porque también puedes aumentar y
disminuir los iconos. Ahora voy a hacer clic en éste y presionar
Eliminar en mi teclado. Y sólo tienes que seguir adelante y
eliminarlo por ahora. Si vuelves a hacer clic derecho, podrás ver todos
estos elementos que puedes crear y agregar a tu juego. Nuevamente, se ve muy, muy confuso si
nunca lo has usado antes, usado en motor real, y
si esto es nuevo para ti. Pero nuevamente, no trates de
enfocarte en todas estas cosas. Centrémonos en las cosas
más importantes y creémoslas
durante este curso. Y te prometo que
aprenderás todo esto lentamente. Así que no te concentres en
todo por ahora. Ahora, también puedes usar este botón Agregar,
pero nunca uso esto. En realidad solo entro en
la carpeta en la que quiero agregar algo y
solo escribiré haga clic aquí. Pero lo mismo, también puedes click aquí arriba si lo deseas. Bien, así que eso fue todo para
el Unreal Engine Overview. Si quieres un
panorama más profundo de Unreal Engine, por favor visita mis otros cursos También tengo una guía completa
para principiantes. Entonces con esto dicho, vamos a seguir adelante y
pasar a la siguiente lección.
5. 2.01 Introducción al juego: Hola Ron. Este
soy yo del futuro. Y este es el
proyecto terminado para este curso. Y sólo voy
a mostrarte lo que vamos a hacer
dentro de este curso. A veces es mucho más fácil ver el producto terminado
antes de continuar. Lo que vamos a hacer aquí es crear un juego FPS desde cero. Y literalmente desde cero, comenzamos con un proyecto en blanco. Y hacemos
de todo, desde crear el mapa, la iluminación,
importar las armas
y hacer el
equipo de armas, etc. Y si solo hago clic en Jugar aquí, y podrás ver el juego. Entonces tenemos algo de
sonido ambiental en el fondo. Algunas aves, aquí puedes
saquear armas. También puedes saquear esto. Lo tienes en la
espalda como puedes ver aquí en mi sombra. Pero también lo puedes ver aquí si acabo de engendrar como otro jugador Se puede ver aquí en
la parte posterior de este jugador. Y también puedo cambiar de arma. Puedo disparar el arma. También hay diferentes efectos de
sonido para cada arma. También se puede ver que tenemos
algunos efectos sobre el terreno. Tenemos balas calculando. Podemos recargar el arma. También podemos golpear a otros
jugadores. Sí, tenemos salud y armadura y
también tenemos puntos redondos. Tenemos mucho que hacer. Podemos soltar armas. Las armas tienen peso. Y también tenemos Ragdoll
muerte y respondiendo. Y también recibes una
notificación cuando
ganas la ronda y pierdes
la ronda y así sucesivamente. Pasan muchas cosas
dentro de este juego aquí, pero lo
pasaremos juntos. Y créeme, será fácil si solo sigues
el curso aquí. Te enseñaré
todo lo que necesitas
saber para crear un juego FPS. Lo bueno de los
planos es este curso, si lo sigues completamente
y lo entiendes, este curso te enseñará
no sólo a hacer juegos FPS, sino también a otros juegos Porque cuando
creas otros juegos, en realidad
estás usando
las mismas herramientas. Los planos son solo planos. Y solo tienes
como estas herramientas en una caja de herramientas y creas
diferentes cosas con ellas. En este caso, vamos
a crear un juego FPS. Espero que te diviertas conmigo. Sigamos adelante y continuemos, y no pierdas el tiempo, y te veré
en la siguiente.
6. 2.02 Crea un nuevo mapa: Para crear un nuevo
mapa. Primero sigamos adelante y creamos una
nueva carpeta por aquí. Voy a hacer click derecho
sobre la carpeta de contenido. Voy a dar click
en Nueva Carpeta, y llamemos a ésta Mapas. Entonces dentro de aquí,
vamos a hacer clic derecho aquí. Y sigamos adelante y hagamos clic
en Nivel para este nivel. Por lo general para los mapas los llamo mapa como prefijo
porque más adelante en realidad
podemos buscar elementos aquí y nos será
más fácil más adelante. Por lo que suelo dar prefijos a
mis archivos. Yo llamo a esto un mapa y
vamos a llamarlo principal. Este es nuestro mapa principal. Ahora podemos hacer doble
clic en este mapa. Y ahora nos pregunta si aquí
también queremos salvar
este nivel. Y sólo voy
a quitar esto. Solo quiero guardar mi nuevo mapa Y haciendo click
en Seleccionado Seguro. Y ahora estoy dentro
de mi nuevo mapa. Y se puede ver que está muy
oscuro por dentro de aquí, y en el outliner no
hay nada Y está oscuro porque no
hay iluminación. Todavía no hay activos
en nuestro nivel, y tenemos que agregarlos
en nuestras próximas lecciones.
7. 2.03 Importa Assets de entorno: Para los activos ambientales, vamos a utilizar un pack
del Marketplace. Si abres el lanzador de
Epic Games, y dentro de aquí haces clic en la pestaña Marketplace Cuando estás dentro
del Marketplace. Marketplace tiene muchos artículos
geniales que
puedes usar para tu juego. También puedes ver que
tienen gratis para el mes. Vale la pena echarle un vistazo, pero por ahora en los productos, busquemos grid. Si solo escribes Grid
aquí y presionas Enter, y luego por aquí en el
precio máximo, das clic en Gratis. Y luego ves este llamado Super Grid Start up Pack. Esto es lo que
vamos a utilizar. Entonces si haces clic en
él y luego
dirá descarga aquí si aún no lo
has descargado. Y cuando
descargues este activo, puedes crear un proyecto. Puede hacer clic en este botón
llamado Crear Proyecto. Y luego tienes que seleccionar
donde quieres
guardarlo y solo tienes que seguir adelante
y dar click en Crear. También puedes seleccionar qué versión
quieres crearla. este momento se
establece en 5.1. Lo es. Bien, no necesitas una versión
5.1 para poder usar esto, pero solo va a crear la última versión
del motor Honual No es necesario
que lo descarguen para usarlo, así que está bien. Ya lo creé. Entonces si vuelvo a mi biblioteca, aquí es donde, como
si la creas,
aparecerá aquí. Este es el pack
Stata super grit o Unreal Engine 5.1 Voy a hacer doble clic en
él para abrirlo De nuevo, no
necesitas Unreal
Engine 5.1 para De hecho, puedes abrirlo con 5.2 o cualquier
versión que estés usando Y aquí está, se
abre. Tienes que esperar. Si es la primera
vez que lo abres, tiene
que preparar los shaders Puede tomar mucho tiempo cuando
lo abres la primera vez, a veces media hora,
a veces una hora. Pero entonces cuando esté listo, ahora
puedes usar el SS aquí. Para poder utilizar activos
de un proyecto a otro, hay
que migrar archivos. La forma en que haces esto
es que puedes escribir, clic en esta carpeta súper Cuadrícula, y luego puedes
seguir adelante y hacer clic en Migrar, y hacer clic en Bien. Y después hay
que seleccionar
¿dónde desea guardar este archivo? Y quiero guardarlo
dentro de mi otro proyecto. Aquí lo hice en esta carpeta shooter
multiplicador y en Counter Strike. Y después tienes que seleccionar la carpeta de contenido para tu proyecto de
Unreal Engine Recuerda, tienes que
seleccionar la carpeta de contenido, No
puedes guardar esto
en otras carpetas, seleccionar la carpeta de contenido, y además no puedes seleccionar otra carpeta dentro
de la carpeta de contenido. Cuando migres cosas de
un proyecto a otro, tienes que seleccionar la carpeta de contenido y simplemente seguir
adelante y hacer clic
en Seleccionar carpeta. Y luego migrará todos
los archivos que están aquí, y ahora está terminado. Para que pueda cerrar esta
superrejilla hacia abajo. Y si abro mi proyecto, puedes ver ahora tengo esta carpeta
Supergrid y
puedo usar los activos dentro
de aquí ahora en mi juego Ahora, antes de que terminemos, voy a abrir de nuevo el lanzador de
Epic Games, porque necesitamos algo más. Antes de continuar,
voy a seguir adelante y
abrir el mercado. Y para la iluminación,
necesitamos un Cielo por aquí. Si solo
vuelvo a buscar Sky, hago clic en gratis. Dentro de aquí, voy a usar este que se llama Good Sky. Si vuelves a hacer clic en él, puedes hacer clic en Descargar si aún no lo has descargado, y luego puedes hacer
clic en Agregar al proyecto, y luego tienes que
encontrar tu proyecto. Puedes ver aquí, si vuelvo, solo
está disponible
para 5.1 Actualmente, estoy usando 5.2 Lo que tienes que hacer es hacer clic
en Ad To Project, y después dar click en
Mostrar Todos los Proyectos. Y luego puedo dar click en mi Proyecto
Counter Strike. Y después tengo que seleccionar
la versión o el Pac. Voy a dar click
aquí y voy a seleccionar la última versión con la
que sea compatible. Está bien,
no va a faltar. Va a funcionar bien. Voy a dar clic
en Agregar al proyecto, y lo agregará
a mi proyecto aquí. Entonces ahora si vuelvo
a mi proyecto, se
puede ver que el buen
cielo se ha agregado a mi proyecto y
puedo usarlo también. Entonces, ahora que hemos importado
los activos ambientales, sigamos adelante en
la siguiente lección y diseñemos el entorno.
8. 2.04 Diseña el entorno: Con el fin de diseñar
el entorno. este momento se puede
ver que el nivel es oscuro y es imposible
hacer nada si
voy a la súper grilla y
empiezo un pack y después voy a Source y se puede ver que
tenemos la carpeta de mallas, por ejemplo, si arrastre
esta caja dentro de aquí, puede ver que está oscuro y no
podemos ver nada Si hago clic en el modo
apagado por aquí, cambiando el modo iluminado a apagado, ahora lo puedo ver porque realmente no
tenemos iluminación y no
podemos ver las cosas cuando
estamos en el modo iluminado Así que en realidad no me
gusta mucho diseñar en el
modo apagado. Eso se puede hacer. Por supuesto, puedes intentar simplemente diseñar
todo el nivel en iluminado, porque después de eso,
vamos a agregar iluminación. No obstante, si deseas
diseñarlo en el modo iluminado, puedes simplemente seguir adelante
y dar click aquí arriba. Y ve a Luces Y agrega una luz direccional
solo por ahora. Y siempre puedes
cambiarlo después. Recuerda, si aumentas el tamaño de esta
caja, por ejemplo, y piensas que la
luz del sol es demasiado brillante, puedes hacer click en ella y puedes hacer click en E para tomar
la herramienta de rotación. Y siempre puedes
girarlo alrededor, trata de ver si puedes
conseguir un buen ángulo. Y también puedes disminuir la intensidad aquí
y trabajar a partir de ahí. Pero ahora mismo, esto
es sólo temporal. Sólo vamos a
diseñar el nivel, y después de eso estamos
haciendo la iluminación. Pero solo quiero
agregar este para poder diseñar mi nivel en
el modo iluminado también. Bien, así que ahora mismo sólo
voy a borrar esta casilla de nuevo. Y lo que vamos
a hacer es que vamos a diseñar algo
así para contraataque Entonces esto se llama mapa. Un mapa es básicamente, tienes dos lados de este mapa. Por lo que el
antiterrorista engendrará de
un lado y el terrorista
engendrará por el Y hay armas
que pueden
recoger y pueden dispararse
entre sí así. Sólo un
mapa muy, muy simple y sólo
vamos a diseñar algo
así de forma natural, un copiar y pegar completamente, pero algo que
creemos que queda bien por ahora. Empecemos por arrastrar este plano supercrítico
al nivel Lo que me gusta hacer
es
colocarlo en la ubicación de 000, así el centro del mundo. Y por lo general me gusta
empezar desde aquí. Muy chulo. Para estos activos, puede hacer clic en Arte para
tomar la herramienta de escala, y luego puede escalarlos en estas diferentes direcciones. Y puedes ver que crea el plano así y
crea un nivel para
ti. Muy chulo. Puedes escalarlo en ambos ejes
y luego crear el terreno para el juego para
que sea más fácil para que no
tengas que escalar mucho. Lo que puedes hacer es
que puedes hacer click aquí arriba teniéndolo escalado
así primero, para que teniendo mostrando
esta caja completamente Entonces puedes hacer clic aquí
para ver la herramienta de escalado aquí. Y tal vez seleccionando el
ajuste de escala a uno, configurándolo en uno. Ahora bien, si lo escalo en
esta dirección, se ve que
escala una caja entera, una escala una vez.
Esto es muy genial. En lugar de hacerlo
muchas veces ahora, lo que puedes hacer
es simplemente escalar una vez y crea
esa caja para ti. puede ver lo
útil que es usar el chasquido también para el
nivel cuando lo escala. Se puede ver también escala
aquí en mi panel de Detalles. Se puede ver que los números suben. Puedes escalarlo de esta manera o puedes
escalarlo de esta manera. Déjame en realidad solo
escalarlo de esta manera. Aquí te puedes imaginar
si vas aquí abajo, aquí es donde está parado el
jugador. Si quieres ver qué tan
grande es este mapa, también
puedes dar click aquí arriba
en el rápido en el botón dos Fundamentos y agregar un jugador
inicia este jugador inicia, voy a
bajarlo al suelo primero. Algo así.
Dirá mal tamaño. Si está dentro del suelo, voy a moverlo hacia arriba.
Algo así. El personaje está en el tamaño de este Los jugadores empiezan casi. Esto es sólo una
referencia. Ahora se puede ver que este nivel
es muy pequeño. Esto no es con lo que
vamos. Necesitamos que sea mucho más grande. Entonces voy a dar
click en este avión. Voy a escribir 80 para
la x y 80 para la Y. Ahora voy a intentar
construir este mapa aquí. Por supuesto, para este curso, siempre
puedes hacerlo más pequeño. No importa
lo que diseñes. Sigue adelante y vuelve a diseñar
tu propio nivel, no importa
lo que diseñes en esta etapa. Posteriormente, estamos
haciendo la programación con cualquier mapa que diseñes. Solo sigue adelante y
sé creativo y diseña lo tuyo
y diviértete con él. Cuando hayamos creado el terreno, lo que puedes hacer es
tomar esta caja por ejemplo. Se puede colocar
aquí en el suelo. Y luego lo voy a
mover para que vuelva a
brotar aquí a los bordes
del suelo Para el chasquido,
tenerlo puesto a uno, ahora
puedo escalarlo, y
esta es solo mi pared Vamos a escalarlo hasta
el otro lado, así como
así, hasta que
haya terminado por aquí. Entonces lo que puedes hacer es
también escalarlo hacia arriba para hacer una pared
algo así. A la escala de 20
para la altura. Siempre podemos cambiarlo después. Si pensamos que esto es demasiado
pequeño o esto es demasiado grande. Lo que puedo hacer es que
en realidad voy a
moverlo un paso aquí, por aquí en esta caja, porque quiero tener la
otra pared aquí también. Lo que podemos hacer ahora
con este muro es que en realidad quiero disminuir
el tamaño también aquí, ahora está afuera, disminuyendo el tamaño en uno. Así como así. Ahora lo que puedo hacer es
sostener Alt en mi teclado y puedo
rotar mientras sostengo Alt. Y esto copiará el modelo sosteniendo Alt mientras rotas. Esto lo copiará. Y ahora puedo arrastrar este modelo
a esta talla. Sólo voy a
aumentar
ligeramente la velocidad de mi cámara para poder ver
lo que está pasando. Y voy a ir al
modo apagado porque ahora se puede ver, en realidad
es difícil de ver Y voy a
moverlo así así. Tan solo se lo juntan. Solo asegúrate de que
se junten. Comprobando aquí para
ver si todo está bien. Todo está bien. De nuevo, voy a dar click en E old y luego arrastrar para copiarlo. No así. Voy a
hacer clic en Control Z, mantén presionado Alt. Haz clic y arrastra para copiarlo, y luego arrástralo por aquí
y luego lo ajusta. A lo mejor es mucho más fácil también
aumentar este chasquido. Es mejor controlar. Puedes ver aquí, no tienes que moverlo mucho
antes de que se estalle. Esto te lo hará
mucho más fácil. Yo voy a hacer lo
mismo aquí, arrastrándolo hacia este lado, asegurándome de que esté
chasqueando con esta pared Además, asegurándose de que
se vea bien por aquí. Ahora se puede ver que tengo una pared. Si ahora voy al modo Encendido, puedo dar click sobre esta luz
direccional. Puedo girarlo ligeramente. Puedo ver mi nivel. Y también puedo disminuir
la intensidad, así que no es tan intenso. Ahora tenemos este nivel
con las paredes. ¿Todo bien? Entonces quiero que
diseñes este nivel como desees. Siempre puedes colocar cubos aquí. Puedes intentar redimensionarlos, hacer algunos como muros
para el jugador,
así que el jugador está parado aquí y disparando a
los demás jugadores Puedes intentar hacer cubos,
algo así. Puedes mantener presionada la tecla Alt
y arrastrarla mientras
mantienes presionada la tecla Alt para copiarla y
tal vez colocarla así. Incluso puedes volver a copiarlo. Y puedes colocarlo al lado éste, algo así. Y también puedes
aumentar el tamaño, hacer algo como
esto interesante. Siempre se puede tratar de hacer modelos
interesantes también. Puedes ver aquí, puedes
usar todos estos activos. También puedes usar rampas. Puedes intentar arrastrar esta
rampa y puedes aumentar el tamaño de la rampa y el
tamaño de la pendiente también. Así Y así ver también puedes hacer
rampas en este nivel Intenta ser muy creativo
y simplemente diseñar un nivel aleatorio que podamos
usar para programar el juego. Ahora con eso dicho, si realmente no
estás interesado en diseñar el nivel y
solo quieres comenzar
con planos, también
he incluido
el proyecto para ti donde el nivel ha sido
diseñado sin ningún código También puedes usar eso si
lo deseas. Es realmente una buena práctica diseñar también tus propios niveles. Imagínese cuando esté haciendo su propio juego más adelante
en esta etapa, ya
sabe diseñar
su nivel también. Por lo que sí recomiendo
simplemente seguir adelante y divertirse con esto.
Simplemente diseñe el nivel. Usa tal vez una hora o 30 minutos
y luego vuelve aquí. Bien, aquí estoy otra vez. Estoy de vuelta y he
diseñado el nivel. Pasé un par de horas
para simplemente diseñar algo interesante y hacer que se vea genial cuando estamos
programando el proyecto. Nuevamente, he incluido
esto para ti, que
puedas usarlo
sin ningún código. Entonces, si no quieres diseñar, aquí está, puedes usarlo. No obstante, de nuevo, te sugiero
que sigas adelante, solo que te diviertas y diseñes algo al azar
que podamos usar. Puedes ver aquí hice una nueva
carpeta llamada marketplace. Y dentro de aquí arrastré en el cielo bueno y la
súper grilla también Están aquí y es
un poco más organizado. cuanto al nivel, en realidad
voy a cambiarlo a modo
apagado para mostrártelo porque la iluminación es un
poco molesta en estos momentos Dentro de aquí, se puede
ver lo que he hecho. Por ejemplo, acabo de
armar las cajas. Solo estaba tratando de agregar algunas formas interesantes a
este nivel, el tamaño para ello. Nuevamente, el suelo sigue siendo 80 por 80 como lo hicimos antes, y las paredes siguen siendo de 20
por 79, igual que antes. Puedes ver aquí
todas estas cajas, constan de diferentes cajas. Puedes ver esta caja aquí agregada con esta caja. Otra vez,
igual que antes. Solo usé la
herramienta de escalado para escalarlos hacia arriba y hacia abajo y solo tratando de hacer formas
interesantes para esta. Este es el anillo super grid. Si haces clic en él, por ejemplo, si haces clic en él aquí, puedes dar click sobre este pequeño icono. De hecho,
te llevará al modelo en
el navegador de contenido. Entonces esta es la manera
fácil de hacerlo, y esta es la que he usado dentro de la carpeta de
mallas También he hecho esta rampa. Así que puedes ver aquí
diseñé como una rampa. Puedes subir por aquí haciendo esta rampa y haciendo esta pared a su lado para
encerrar esta rampa aquí Se puede ver como lo hice esta tierra para solo tener
algo de terreno aquí. Y esta tierra también
debajo de esta rampa. Son sólo dos rampas
juntas y algo de tierra aquí entre ellas. Apenas un par de
paredes juntas. Se ve que pasé
algún tiempo solo para construir un nivel interesante. Estas son solo cajas
que puedes armar. También puedes usar estas formas. Si haces clic en este icono, te
lo llevará
y son estos cilindros los puedes colocar y
luego puedes escalar. Entonces lo que puedes
hacer es que puedes usar estos para ponerte encima. Puedes reducirlos
para que se vean bien. A lo mejor sólo sacar el
chasquido aquí o simplemente
reducirlo a algo así como 0.125
o algo así Y solo disminuirlo e
intentar copiarlo y pegarlo por
todas partes para hacer esa
interesante forma aquí arriba. Bien, pero eso es lo que he
hecho para diseñar este nivel. De nuevo, puedes
descargarla si así lo deseas. Lo he incluido para ti. Con eso terminado, recuerda
subir aquí también. Lo que puedes hacer en el outliner, puedes seleccionar todos estos
que hayas diseñado Y lo que puedes hacer es seleccionarlos todos. Entonces haz clic en el primero, mantén presionado Mayús y haz
clic en el último. Y luego puedes hacer click en este ícono de carpeta para
hacer una nueva carpeta. Y da click en dos en tu teclado para darle un nombre a
esa carpeta. Y se mantendrá
organizado así. Recuerda,
siempre es agradable estar organizado aquí abajo en
el navegador de contenido. Mantente organizado también
aquí en el Outliner. Ahora, con este nivel diseñado, volvamos al modo iluminado. Y ahora estamos listos
para hacer la iluminación. No obstante, se puede ver
que es muy brillante. Y cuando voy a la luz
direccional y la cambio
a algo como 0.2 puedes ver la iluminación sigue cambiando
y sigue brillando. Entonces tenemos que agregar un volumen de
post proceso antes de poder continuar. Así que pasemos a
la siguiente lección.
9. Volumen de 2.05 posproceso: El
volumen post proceso dentro de Unreal Engine es
algo que podemos usar para cambiar la
imagen del juego Así como puedes
pensar en Photoshop, donde agregas una imagen a Photoshop y cambias
los colores de esa imagen. Esto es lo mismo
aquí en Unreal Engine, utilizamos un volumen post proceso Ese volumen puede cambiar
la calidez del nivel, podemos cambiar el color, la saturación, las bengalas de la
lente Bloom, y así sucesivamente Entonces lo que podemos hacer
es que podemos hacer click aquí
arriba y lo puedes encontrar en cualquiera de los efectos visuales y
puedes ver que se llama volumen
post proceso. O puedes ir a
volúmenes y luego
seguir adelante y crear un volumen de
post proceso. Dos formas de crearlo. Así que adelante y da clic en él. Y si hago clic en, en mi
teclado para mostrar los iconos, puedes ver este cuadro
aquí que creamos. Este es el volumen post proceso. Ahora dentro de aquí, si
haces clic en uno de ellos, por
ejemplo, el Bloom, y haces clic en la intensidad. Y vamos a aumentarlo a algo demente, como cinco Se ve que
realmente no pasó nada, si se lo dije a uno, si se lo
dije a cinco,
no pasa nada. Esto se debe a que hay que entrar dentro de este volumen de
proceso de publicación. Se puede ver si muevo
mi cámara dentro de ella, la floración entra en vigor. Si salgo fuera de esta caja, puedes ver que la floración
no surte efecto, así que tengo que estar dentro de esta
caja para que surta efecto. Para aplicar esto
a todo el nivel sin entrar y
salir de esta caja. Puedes bajar aquí y
puedes marcar la llamada extensión
infinita. Puedes marcarlo y ahora puedes ver que se aplica a todo
el nivel. ¿Qué extensión infinita hace? Simplemente lo aplica a todo
el nivel para que
no tengas que ir dentro
y fuera de la caja. Ahora bien, ¿de qué
sirve aquí, para esta caja? Es, por ejemplo, si
tienes un calabozo, o digamos que quiero entrar
dentro de este edificio de aquí y quiero cambiar de
color. Esto es lo que puedes hacer. Se puede mover, por ejemplo, dentro de este edificio. Puedes moverlo aquí arriba. E incluso
puedes escalarlo. Puedes ver si la
muevo aquí arriba, puedo tomar la herramienta de escala, haciendo clic en R para
tomar la herramienta de escala, y luego puedo
escalarla en la X, Y y Z. Solo tratando de rellenar el área realmente
quiero que surta efecto Digamos por ejemplo,
quiero que entre en vigor aquí. Cuando me mudo, cuando me
mudo a esta mazmorra, se
ve la floración, la floración aumenta,
ahora entra en vigor Este es el uso de la misma para
no usar extensión infinita. Por ejemplo, si
tienes un juego RPG, tienes Dungeons y
quieres cambiar color siempre que estés
dentro de esa mazmorra Sin embargo, en realidad no
tenemos algo así. Quiero que se aplique
a todo el nivel, así que voy a dar click
en Infinite Extend. Voy a ir a
la cima, y
también voy por la báscula. Voy a presionar este
botón para volver a los valores predeterminados. En realidad no es que importe, pero solo quería tenerlo por defecto así,
como pueden ver aquí. Por ejemplo, para
la temperatura, puedes aumentar o disminuir la temperatura y puedes cambiar el color de este mundo. Incluso el tinte, puede aumentar
y disminuir el tinte. Se puede ver que el volumen de
post proceso es igual que en Photoshop. Puedes cambiar el
aspecto de este juego. Voy a dar click
sobre estas flechas, ponerlas de nuevo a las
predeterminadas por ahora. Por ahora no vamos a
jugar mucho con él. Lo que quiero hacer es
que puedes ver aquí, si elimino esta intensidad
para el Bloom, doy click aquí. Se puede ver por la
luz del sol, si lo pongo a, digamos cinco muy intensos, se
puede ver que cambia la
luz. Esta es la exposición. Si lo pongo a 0.2 se
puede ver que empieza por estar oscuro y luego
aumenta en la iluminación. No quiero hacer eso
porque estamos creando juegos, y en los juegos
realmente no hacemos cosas así. Siempre es agradable estar en una sola iluminación cuando
estás haciendo iluminación. Pasemos al volumen del proceso
posterior y hagamos clic en Exposición aquí. Vamos a hacer clic en el
mínimo y máximo EV y establecerlo en uno. Y establecer éste en uno también. Ahora puedes ver si hago clic
en la luz direccional y configuro la intensidad en
algo así como tres. Y ahora puedes ver si me
acerco, si me voy, si miro cosas diferentes, puedes ver que realmente
no está cambiando la luz y
está siendo estática. Y esto es lo que
queremos para los juegos. Pasemos al volumen de post
proceso para el Bloom. Por ahora, voy a dar click en la Intensidad y
ponerla a cero. Siempre es agradable
tenerlo a cero para empezar. Cuando estás haciendo iluminación, no
afectamos la
iluminación por otros factores, así que el Bloom la puso a cero. También aquí abajo,
el efecto imagen, tenemos algo
llamado viñeta Y una viñeta es que puedes ver si hago clic en ella y la
aumentas, crea esa
bota oscura alrededor de tu pantalla Si solo aumento la
intensidad de la dirección, luz para que
veas a lo que me refiero. Si lo configuro en diez y ahora dando clic en el volumen del proceso de
post, puedes aumentar y disminuir la viñeta. Así como así. Esto es solo un
albot cinematográfico alrededor de tu imagen. Y no quiero hacer
eso para empezar. No quiero que
afecte mi iluminación. Pongámoslo a cero. Puedes ver si no lo marco, es 0.4 por defecto, puedes ver que
en realidad se aplica. Si lo desmarco, acuérdate ticket y ponlo a cero,
eso lo eliminará. Si voy aquí solo para
asegurarme de que haya
algo más para el desenfoque de movimiento. la gente generalmente no le gusta desenfoque de
movimiento en los juegos de shoter en primera
persona Voy a hacer clic en la cantidad y establecer este 120 también. Y con eso hecho, ahora
en realidad estamos listos para hacer iluminación. Ya se puede ver nada
está afectando nuestra iluminación Cuando hacemos la
iluminación y vemos los resultados, nada está cambiando la iluminación. Y se puede ver cuando me
muevo de un lado a otro, la luz permanece igual. Y esto es lo que queremos. Así que sigamos adelante
y hagamos clic en Archivo. Y hagamos clic en Guardar todo. Y también aquí en el volumen
post proceso, lo que puedes hacer es que puedes hacer click sobre él, Crear una nueva carpeta. Y vamos a hacer clic aquí, hacer clic en dos y llamar a
este Post Process. Aquí está el volumen post proceso, y ahora estamos listos
para hacer la iluminación.
10. 2.06 Ilumina el entorno: Ya estamos listos para
hacer la iluminación. Entonces lo que podemos hacer es que
voy a borrar esta luz
direccional. Porque ahora estamos listos para
empezar de cero, ¿de acuerdo? La forma en que hago la iluminación
es que subo aquí, voy a luces, y primero
agregamos una luz direccional. Entonces esta es nuestra luz solar. Y suelo agregar todas
las luces antes de
empezar a ajustarlas. Entonces aquí está la luz del sol. Y dando click por aquí,
vuelve a las luces. Y agreguemos este
llamado tragaluz. El tragaluz es luz que
viene del cielo, que como puedes ver aquí, en este momento
está realmente oscuro Lo que podemos hacer es aquí en
la carpeta Marketplace, puedo dar clic en la carpeta Good
Sky que agregamos anteriormente, y luego dar clic en la carpeta
Blueprint Y este Buen Cielo, puedes pinchar y
arrastrarlo al nivel. Y cuando lo colocas, puedes ver que está dentro de aquí. De nuevo, quiero que
sea de día, pero por ahora en realidad no
voy a ajustar nada. Entonces lo que podemos hacer es
que podemos dar click aquí arriba. También tenemos otra luz, pero no está dentro de luces. Está dentro de los efectos visuales y es la atmósfera del cielo. Puedes hacer click en esa y luego dar click en
esta aquí arriba. Volviendo a
Efectos Visuales y da click en esta llamada Captura de Reflexión de
Esfera. Va a capturar las reflexiones dentro
de tu nivel. Para este,
en realidad voy a arrastrarlo hacia abajo tal vez 2000. Y déjame simplemente arrastrarlo a
la mitad del nivel. Naturalmente preciso
, no importa. Voy a incrementar este radio de influencia
para encapultar mi nivel Ya puedes ver que está
encapsulando mi nivel. Y va a agregar
reflexiones alrededor de mi nivel. Ahora aquí arriba, puedes
volver a hacer clic e ir a efectos visuales, realidad no a
efectos visuales en los volúmenes. Y tenemos este llamado
volumen de importancia de masa ligera. Da clic en esa. Importancia del mapa
El volumen es que solo le dice al motor lo importante que necesita
para renderizar la luz. Necesitamos encapsulganar nuestro
nivel y decirle al motor, esta área es realmente
importante para la iluminación Hagámoslo. Vamos a colocarlo en algún lugar aquí en el medio. Nuevamente, en realidad no importa. Voy a hacer clic o configurarlo
aquí para la configuración del pincel. Se puede ver en la X. Puede hacer clic y arrastrar para aumentarlo. Estás incrementando esta caja
para encapsul tu nivel. Nuevamente, en
realidad no necesitas ser preciso, solo nivel encapsul Y voy a hacer
eso por la Y también. Yo también voy a hacer eso
por las Z Xs. Voy a bajar aquí
sólo para ver si encapsula. Y en realidad no
necesitamos
que sea tanto aquí abajo. Voy a
aumentarlo un poco. En realidad disminuirlo
un poco solo para
asegurarse de que el suelo
está aquí con él. Y también me estoy asegurando de que las paredes de aquí arriba estén
aquí con ella también. Nuevamente, no es necesario ser precisos, solo asegúrate de que
encapsula el nivel Ahora tenemos la
dirección, la luz, el cielo bueno, el cielo, la
atmósfera, el tragaluz, la reflexión de la
esfera, y la masa de luz
dentro de nuestro nivel Lo que voy a hacer es que
voy a seleccionarlos a todos. Da click aquí para ver esta carpeta, llamémosla iluminación. Y ahora estamos listos para ajustar
la iluminación para nuestro juego. Con lo que suelo empezar es que hago clic en la luz direccional,
que es la luz solar. Y lo que puedes hacer es
hacer clic en E en el teclado para seleccionar
la herramienta de rotación. Y entonces se puede
tratar de rotar el sol. Entonces puedes darle algunas
bonitas sombras interesantes. Esto es lo que intentas
hacer para empezar, solo dale algunas sombras
interesantes. Simplemente puedes girarlo, ver dónde
son interesantes las sombras. También puedes quitar el
chasquido haciendo clic aquí arriba. Y luego puedes
rotarlo libremente y solo tratar de poner algunas
sombras interesantes para tu juego. Para mí, voy
a tratar de rotarlo a
algo así. A lo mejor también lo estoy
rotando de esta manera. Así que en realidad arroja
sombra de esta manera. Y siempre puedo tratar de
ajustarlo más tarde también. Entonces ahora mismo se puede ver que las
sombras son realmente oscuras. Y quiero cambiarlo un poco para
que sea más fácil para mí
tratar de encontrar algunas sombras
interesantes solo haciéndola un poco más brillante. Al hacer clic en este buen cielo, en realidad
voy
a subir aquí, y para la hora del día, en realidad
voy a cambiar
este, así que no son las estrellas. Voy a escribir 12 a
la hora del día. Y ahora se puede
ver que es de día. Y puedes dar click en
el tragaluz, bajar, hacer clic en Recapturar
para capturar el Se puede ver algunos colores realmente cambiados aquí y
se está volviendo más brillante. También puedes cambiar la intensidad del tragaluz aquí para que sea como cinco o
algo así Realmente loco ahora mismo. Pero solo para encontrar
algunas
sombras interesantes con las que puedas trabajar ahora, he girado en mi sol y estoy contento con mis sombras. De nuevo, voy a ir
al tragaluz y de hecho hacer clic en esta flecha y
ponerla de nuevo en una por ahora Ahora que tenemos el cielo,
en realidad voy a empezar
con el cielo bueno. Ahora da click en el Buen Cielo. Para estos presets, lo que
voy a hacer es que puedes ver, puedes hacer click sobre
ellos y cambiarlos aquí por el estilo
de las nubes Nuevamente, esto es opcional, pero voy a dar click sobre
él y seleccionar esta Nube B. Este es el estilo de las nubes, para la cobertura de nube, voy a seleccionar Medio. Y estos son los escenarios
para el buen cielo. En realidad no hay mucho que cambiar aquí. Solo para asegurarme, voy a hacer click en el tragaluz otra vez,
bajar, dar click en Recaptura, solo para asegurarme de
que tenga la correcta Iluminación desde el
cielo. Y voy a dar click en Construir y
Construir todos los Niveles. Y esto asegurará
que la iluminación se vea realmente correcta.
Así que adelante y haz eso. Esto llevará algún tiempo si es la primera
vez que lo haces. Y se puede ver el progreso aquí cuando se está
construyendo la iluminación. Pero como pueden ver, probablemente me tomará un par
de segundos. Ahora, cuando termines de
construir la iluminación
, te mostrará el progreso. Se ve igual que
antes. Todo bien. Puedes ver aquí si hago clic
en el tragaluz ahora y aumento la intensidad del tragaluz a
algo así como tres, puede ver que las sombras
se vuelven Y para esto es para lo que se utiliza el
tragaluz. Hace que las sombras sean más brillantes. Si tienes las sombras
muy oscuras en tu juego, siempre
puedes aumentar esto para que tus sombras se
vuelvan más brillantes. Y se ve mucho
mejor que antes. Sin embargo, esto en realidad no
suele ser tan oscuro. Si lo tengo en
la escala de dos, no
se supone que
sea así de oscuro. Y también si miras
dentro de
aquí, está pasando
algo más. Esto es lumen, el
nuevo sistema de iluminación. Si haces clic en este proceso de
publicación por ahora, voy a minimizar
esta exposición. Si solo vas por aquí
y encuentras a Lumen aquí, puedes ver la iluminación global. Lumen, puedes hacer click en él
aquí y aquí en el Lumin, iluminación
global,
puedes dar click en esta
distancia máxima para ésta Si escribes cero, puedes ver que es mucho
más brillante que antes. Si haces clic en esta flecha
para volver a la normalidad, podrás ver que todo
está tan oscuro. Y si vuelvo a escribir cero, es mucho más brillante. Algo está
pasando con esto también. De hecho voy a
reducirlo un poco para este. Puedes ver si escribes
100, se ve así. Si escribes 200, 300, 400500600700900, empieza
a tornarse muy oscuro En realidad voy a escribir 700. Puedes intentar
equilibrarlo ahora mismo, se ve mucho plano, así que no voy
a ir con esto. 1 Lumen es realmente bonito y
da bonitos efectos y verás que más adelante cuando la iluminación se vea bien, así que no quiero que se
vea este piso. Es realmente agradable
tener lumen en tu escena porque la iluminación
va a ser mucho mejor. En lugar de quitarlo todo, y pongámoslo a 200, 300, trata de
aumentarlo ligeramente, pero sigue siendo
plano en el suelo. Voy a seguir aumentando en 100
hasta que pueda ver algún detalle. Ahora en realidad puedo ver
algunos detalles aquí aquí. ¿Y si escribo 700
en lugar de 600? Y así es como se ve. Si escribo 800, esto se volverá
realmente oscuro aquí. Voy a ir con
700 con éste, siempre
podemos cambiarlo después. ¿Bien? Para que
veas la diferencia. Si hago clic aquí, se
ve así. Si escribo 700, se ve mucho
más ligero que antes. Ahora puedes hacer click en el
tragaluz y puedes aumentarlo ligeramente
para que no sea tan oscuro Para el tragaluz
ahora mismo, son dos. Puedes escribir 34, tal vez algo así
como cuatro por ahora,
bien, Tal vez algo así como cuatro. Y ya puedes ver que se ve mucho
mejor que antes. Antes era uno por
defecto y ahora son cuatro. Y puedes ver la
diferencia aquí. Seguiré ajustando la
iluminación hasta que esté satisfecho. En tiradores en primera persona, es muy agradable tener rincones oscuros porque la gente
quiere verse, quieren dispararse entre sí Y no es agradable tener un rincón oscuro donde no
se pueda ver al enemigo. Algo así,
va a ser realmente molesto. Escribamos cuatro en la escala de
intensidad aquí. Lo que voy a hacer también, puedes hacer click en la luz
direccional y puedes aumentar la intensidad de
iluminación indirecta. Y lo que eso
hace, simplemente rebota algunas luces en las paredes y
se verá mucho mejor Si lo aumentas,
puedes ver la diferencia. En realidad mira la
diferencia aquí. Si escribo cero o uno como antes y si escribo
seis, se puede ver el, estas paredes aquí están rebotando
luz una encima de la otra Y el ambiente se ve
mucho mejor que antes. Si justo uno, derecho seis, se
puede ver lo diferente
en esta pared también. Bien, entonces lo que
quiero hacer ahora es que quiero equilibrar las sombras
frente a la iluminación. Entonces se ve correcto.
Antes de hacer esto. Ahora si haces clic en el
tragaluz y luego haces clic en este Avanzado aquí en la iluminación aquí
en el tragaluz, das clic en Avanzado, puedes ver algo llamado
color del hemisferio inferior Lo que esto es,
rebota luz
del suelo a estas
paredes y ambiente Aquí puedes ver si
hago clic en él y pongo la luz o el
color a algo extremo, puedes ver que en realidad está
rebotando luz desde cero sobre
estas paredes de aquí Ahora es actualmente negro y
realmente no tiene sentido porque realidad no
estamos rebotando luz
negra en las paredes aquí Para hacerlo más realista, tenemos que cambiar el color
a algo más correcto. Ahora mismo, mi suelo es gris. Lo que puedes hacer aquí es que puedes click en el modo Iluminado aquí arriba, puedes ir a
Visualización de Buffer, y luego puedes
ir a Color Base. Ahora puedes ver el verdadero color
base de tu suelo. Lo que puedes hacer,
puedes hacer clic en él, tomar el seleccionador de color, y luego puedes seleccionar
el color del suelo Voy a seleccionar
esta gris aquí. Y voy a
volver a mi cielo. Si minimizo esto,
ve a la claraboya. Ahora se puede ver que hemos cambiado el color del hemisferio inferior. Ahora si vuelvo
al modo iluminado y
bajo y recuerdo
dar click en recapturar Porque hay que
recuperar la iluminación. Ahora está rebotando
la iluminación correcta aquí en estas paredes Bien,
déjame acercarme aquí. Y ahora quiero equilibrar
el equilibrio entre la
sombra y la luz. Ahora bien, si haces clic en
la luz direccional y cambias la
intensidad aquí, esto aumentará y
disminuirá la cantidad de luz. Si vas a la claraboya
y aumentas y disminuirás la cantidad o
la intensidad aquí, aumentará y disminuirá
lo oscuras que son estas sombras Empezaré haciendo clic
en la luz direccional, y voy a
aumentar la intensidad y tal vez algo así como siete. Ahora si vuelvo a pasar
al tragaluz, puedes comenzar con uno
y luego escribir 23 Puedes intentar
aumentarlo ligeramente solo para ver
cómo se ve hasta que
estés satisfecho, ¿verdad? He jugado con la intensidad para
el tragaluz
y la luz direccional Para la luz direccional, pongo a seis, en realidad, voy a poner
a siete para que no parezca de noche. Poniendo esto a siete
para el tragaluz, solo lo pongo a cinco otra vez. Simplemente lo aumenté aquí ligeramente hasta que estoy satisfecho
cuando lo aumento a seis. Creo que estaba un poco demasiado brillante, así que reduje cinco. Y siempre podemos
cambiarlo después. No es un problema,
pero ahora mismo, creo que se ve bien. Podemos ver cómo se
ven las sombras en
comparación con la iluminación. Y solo comparándolo
con el cielo también. Mira y mira si todo
se ve realista. Echa un vistazo al interior
de este túnel para ver si todo
se ve bien. No quiero que se vea muy
oscuro como puede ver aquí. Si haces clic en el
volumen post proceso y vuelves
a bajar al lumen y para
la distancia de traza máxima, si lo pones de nuevo a 2000, puedes ver cuánto
afecta a la iluminación. Realmente hace que todo sea oscuro y hay que volver a
disminuir esto. Puedes escribir 100 para
ver cómo se ve, pero ahora mismo es realmente
plano en el suelo. Si escribo 200, 300, 400, se puede ver que todavía se ve mucho
plano en el suelo. Y si seguimos
aumentando este número, en algún momento va
a parecer demasiado oscuro. Entonces voy a, de nuevo,
ponerla de nuevo en 700. Y me gusta mucho este número, así que me voy a quedar aquí. Pero así es como
suelo hacer la iluminación. Primero trato de ir a
la luz direccional. Intenta encontrar bonitas sombras
girando la luz del sol. Y luego voy a volver a aquí en el tragaluz,
igual que antes Haga clic en el
botón avanzado para la luz. Bajar al hemisferio inferior y cambiar el color
al suelo, por lo que cuesta una iluminación correcta
y también para el buen cielo. Cambiamos un poco
de configuración aquí. Ahora puedes ver si miro en
esta parte y me alejo, puedes ver que
de repente desaparece, el reflejo rojo aquí. Si me muevo cerca, puedes ver que aparece
si me
alejo, puedes ver que aquí hay un pequeño cambio en la
iluminación. Lo que puedes hacer aquí
es que realmente puedes jugar con la distancia del lumen. Puedes volver al volumen de
post proceso y puedes bajar aquí. Y tenemos algo que
se llama Lumen Scene Detail. Si das click en el Detalle de Escena
Lumen, si das click en el modo Iluminado y luego vas a la escena Lumen
y Lumen. Así que en la escena de Lumen se
puede ver realmente donde Lumen está afectando a Lumen. Nuevamente es el nuevo sistema de
iluminación en el motor
Ural hace que todo
se vea realmente bien. Tomemos esto como ejemplo. Si esto se pone negro, puedes
ver si me alejo de él. Esto significa que el lumen
no está trabajando en esta
malla en este momento. Si me acerco, funcionará. Se supone que esto
va a suceder porque
no queremos tener trabajo de
lumen todo el tiempo porque
en algún momento realmente
no lo
necesitas porque estás muy lejos. Y realmente no necesitamos poner un alto rendimiento
en el juego. Qué podemos hacer aquí
para que funcione un poco más. Puedes ver si me paro aquí, en realidad también quería trabajar en algunos de estos modelos. No quiero que sea así de extremo para el detalle Slumencene Se puede aumentar ligeramente. Si lo aumentas mucho, va a funcionar en todo aunque estés lejos. Si lo aumentas, va a
quitar algún detalle. Este por defecto es, puedes ver aquí,
si lo aumentas, va a aumentar
en el costo de la GPU. No quiero
aumentar esto demasiado, pero puedes
aumentarlo ligeramente. Voy a hacer click
y arrastrar solo para aumentarlo ligeramente hasta que esto aparezca algo así como 1.2
Este es un buen cambio. Se ve así cuando
lo pongo a uno, cuando lo pongo a 1.2. También consigue el telar en detalle
mucho más rápido que antes. Se puede ver cuando lo
teníamos a uno, en este punto estaba apagado. Si lo pongo a 1.2 está encendido. Si vuelvo al modo iluminado, ahora
es mucho mejor. Bien, así que antes
de terminar, primero
hagamos clic en Build
and Build todos los niveles. Y solo asegúrate de
que todo se vea correcto con la
iluminación y las sombras. Va de nuevo a
tomar algo de tiempo para construir y volveré después de que
haya construido la iluminación. Todo bien. Entonces ahora
ha terminado construir la iluminación y
todo se ve bien. Ahora, a veces para algunas personas la iluminación se ve diferente. Y esto es porque
puede ser porque hay que ir
a la configuración
y escalabilidad del motor Y ahora mismo se puede ver que estoy viendo todo
en los gráficos épicos. Y esto es porque
tengo una computadora rápida. Pero si tienes una computadora lenta, es posible que quieras usar medio por ejemplo, o baja igualdad. Pero bajo, no puedes
ver las sombras, pero puedes usar esas también. Si tienes una computadora más lenta, sin embargo, tengo una rápida. Voy a ir
con el Épico. Siempre puedes cambiarlo más tarde cuando estés
exportando el juego. Pero Epic suele ser
muy pesado, así que quizás quieras
ir con alto para tu computadora si
es un poco más lento. Pero como puedes ver,
esta escalabilidad del motor también afecta la iluminación, por lo que también puedes comprobarlo Bien, ahora para el último paso, voy a dar click en
este volumen de proceso de post. Ahora lo que podemos hacer es que
en realidad podemos cambiar un poco los
colores. Así podemos dar click sobre
esta temperatura y puedes marcarla aquí. Esta temperatura más ligera
y también este tinte. Entonces voy a reducir
la temperatura ligeramente, así se vuelve un poco más azulada. Algo así como tal vez 6,200
muy, muy ligera diferencia. Puedes ver si lo marco y lo desmarco, así es
como se ve Sólo una ligera diferencia. Hace que todo se
vea un poco más frío, más azul entonces para el
tinte, si lo aumentas, puedes ver que se ve un poco más anaranjado, algo de calor a Ahora, no quiero que
sea así de extremo. Entonces si subes 0.1 puedes
ver cómo se ve y puedes marcarlo y
desmarcarlo. El cambio. No obstante, creo que esto podría
ser un poco demasiado hasta ahora. I 0.05 en su lugar boleto NFI y
boleto. Así es como se ve. ¿Bien? Entonces solo un
cambio muy leve en los colores. Bien, así que
lo último que quiero hacer aquí, se
puede ver en la configuración
global, también
se pueden cambiar las cosas. Por ejemplo, la saturación. Si tu juego está demasiado desaturado, puedes aumentar
la saturación y todo se saturará
mucho más Ahora no tienes que aumentar demasiado
el ajuste. Por ejemplo, puedes
ponerlo en 1.1 y hay una ligera
saturación en tu juego. Se ve que le
da un poco más de color. No obstante, por ahora sólo me voy
a quedar con uno. También puedes aumentar la ganancia
si tu juego es demasiado oscuro, así puedes aumentar la ganancia. Todo el juego será
mucho más brillante que antes. Ahora para mí, voy a quedarme en uno para
éste también. No necesito
cambiar nada aquí. Lo que quiero cambiar es
que creo que las superficies son un poco demasiado brillantes y esto es
en realidad lo más destacado. Si vas a Destacados aquí
arriba y haces clic en, por ejemplo, la ganancia. Y puedes ver aquí, si
aumentas y disminuyes la ganancia, aumentas y disminuyes
los colores aquí arriba. Si solo lo pones a cero, en realidad
puedes ver a
qué afecta. Este es el
punto culminante. Afecta el destaque
arriba de estos modelos, 5.21 Creo que esto es un poco demasiado brillante y
molesto de mirar Lo que puedes hacer es
disminuirlo ligeramente, así que no es tan brillante. Y molesto mirar
tal vez algo así como 0.60 0.56 Y
puedes ver si escribes uno,
así es como se veía Y si escribo 0.6 así
es como se ve. Ahora creo que esto se ve un
poco mejor que antes, porque antes estaba un
poco demasiado brillante en el hielo, y escribir 0.6 ayuda a
solucionar ese problema. Esto es lo que tenemos
actualmente dentro de un nivel. Ahora, para esta,
podemos agregar algo de floración. Y en realidad voy a agregar un poco de floración
aquí para mi nivel. Esto es ahora preferencia. Tampoco puedes agregar
floración a tu nivel. A algunas personas no les gusta florecer dentro de costas en primera persona. Pero para mí, solo voy
a aumentarlo ligeramente solo
puedas aumentarlo
y ver cómo se ve. Si escribes uno, así
es como se ve. Le da ese efecto soñador. Si escribes 01, creo que uno es demasiado extremo. Si lo pongo a 0.6
y puedes intentar escribir 00.6 para
ver la diferencia Creo que algo como
0.6 es el camino a seguir. No más que eso, de lo contrario
será un poco más molesto. Ahora podemos ver cómo se
ve aquí dentro. La iluminación se ve muy bien. Se puede ver cómo cuesta
encima de las olas aquí, y también se puede ver
fuera de aquí también Intenta mirar dentro de aquí, asegúrate de que nada esté oscuro. Se puede ver al enemigo
si entro de aquí. Ahora bien, si crees que este
túnel está un poco oscuro, siempre
puedes entrar
de aquí y dar click aquí arriba. Vaya a las luces, haga
clic en la luz puntual y cree una luz puntual aquí. Y siempre puedes colocarlo en algún lugar aquí dentro
de este túnel. Para este punto la luz, se
puede aumentar y disminuir la intensidad y
ver cómo se ve. Ahora es un poco demasiado brillante
aquí en esta área específica. Y quiero suavizarlo
porque como pueden ver aquí, realmente no
tenemos una bombilla. Entonces se verá un poco raro que esta iluminación
sea tan brillante aquí. Entonces lo que puedes hacer es que
en realidad voy a
disminuir la intensidad. Voy a dar click en Avanzado, y aquí usar Inverse
squared Fall off. De hecho voy
a desactivarlo aquí. Ahora puedes ver cuando
aumentas y disminuyas
la iluminación, ahora
puedes aumentar
la intensidad para ser mucho más que antes. También se puede disminuir
esta intensidad de decaimiento. Y se puede ver que se
ilumina un poco más en el medio ambiente en lugar de
centrarse solo en esta área específica. Ahora si sigo adelante y de nuevo hago
clic en el punto de luz. Y sólo voy
a dejar que esté aquí a las dos para que la luz
caiga del exponente. Entonces voy a disminuir la intensidad a algo
como se puede ver, es muy, muy brillante ahora porque
hemos desactivado, hemos bajado la luz
caída del exponente y también
desactivamos esta
para la intensidad Si solo escribes
uno por ejemplo, puedes ver la diferencia
si lo metes dentro y fuera. Solo un ligero efecto
para asegurarnos de que
no tenemos ninguna mancha oscura
dentro de nuestro nivel. Ahora puedes jugar con
el radio de acentuación. Si haces clic en, podrás
ver dónde afecta. Entonces, si aumentas y disminues el radio de acentuación,
así es como se ve Sólo voy a ponerlo
a algo como el 2000, tal vez, algo como esto. Si haces clic en, puedes
moverlo así así. Intenta colocarlo en algún lugar
realmente agradable
donde realmente no veas que
hay una bombilla dentro de aquí. Y trata también de jugar
con la intensidad. Creo que esto es demasiado brillante, así que si lo pongo a 0.5 así no
es demasiado notorio. Y puedes dar click sobre este
ojo para ocultarlo y mostrarlo. Y se puede ver
cómo se ve, sólo un ligero efecto. Pero puedes ver
aquí, si el enemigo está parado aquí
y mirándote, puedes ver que hay
un poco más de luz. Y siempre es más
fácil ver al enemigo. Y eso es más agradable a la vista. Ahora, solo trata de moverte alrededor la luz ahora que
terminaste de colocarla. Y trata de colocarlo en una zona donde tenga
sentido para ti. Creo que la
luz de verano aquí es agradable. Yo voy a hacer lo
mismo aquí. Voy a mantener presionada la tecla Alt y dar
clic y arrastrar para copiarla. Voy a colocarlo aquí
dentro de este túnel también. Intenta colocarlo
en algún lugar en el medio aquí. Y entonces voy a
moverlo en esta dirección. Sólo voy a echar un
vistazo y ver cómo está afectando
en algún lugar como aquí. Es lo mismo que
lo que hiciste aquí para esta
iluminación también. Esta iluminación, también está
en el medio. Solo asegurándome de
que esté en el medio y que se coloque aquí. Para el otro,
voy a empujarlo un poco solo para que se vea
como la otra luz también. Ahora que hemos colocado
la luz personalizada solo para que se vea un poco
más brillante por dentro de aquí, creo que hemos terminado
con la iluminación y así es como se ve el
nivel ahora.
11. 2.07 consejos de optimización del entorno: Antes de que podamos llamar a este
entorno terminado, también
tenemos que echar un vistazo a
la optimización y asegurarnos de que funcione bien como un juego
cuando lo lanzemos. Para echar un
vistazo a la optimización, hagamos clic en el modo de
tapa aquí arriba. Pasemos a los modos de vista de
optimización y comencemos con este
llamado Complejidad Ligera. Por la complejidad de la luz, básicamente
estamos, como su nombre lo dice, echando un vistazo a lo compleja
que es la iluminación. Como puedes ver aquí,
tenemos un gradiente aquí, comenzando desde el oscuro y el azul, y luego va hasta
el rojo, morado y el blanco. Ahora bien, si
estás aquí abajo en el azul, esta es muy buena actuación. Si estás aquí afuera en
el morado y el blanco, este es un rendimiento pesado y
esto es malo para tu juego. Pero como pueden ver, nuestro
nivel es completamente azul. Y se puede ver
que es por aquí. Y es realmente muy bien
optimizado en cuanto a la iluminación. Esto se debe a que en realidad
no estamos usando tantas luces. Solo tenemos la luz
direccional y luego tenemos la luz del cielo. Están encendiendo esto principalmente como pueden ver, si vuelvo, si apago la luz
direccional
y si apago la claraboya, puede ver que
todo se oscurece Básicamente son en realidad estos dos los que están iluminando
el ambiente. Ahora si vuelvo a
la luz el
área de complejidad es verde. Esto se debe a
que agregamos las bombillas. Recuerda que hicimos clic
aquí en las luces y agregamos una luz puntual.
Por eso es verde. Esta es más pesada en el rendimiento en
comparación con esta área. Sin embargo, esto sigue siendo
bajo rendimiento. Esto es muy agradable. Esto
es bueno para tu juego. Sigues en la buena zona. Si tomo una de las
bombillas y esta de aquí, si tomo este icono,
este punto luz, si sostengo Alt y
arrastre para copiarlo, puedes ver si lo copio
y lo coloco fuera de estas otras luces puntuales,
es bueno para ir. No obstante, si empiezo a superponer luces, como pueden
ver aquí, ahora
se vuelve roja. Y en la zona naranja. Ahora, digamos que este era
tu nivel, esto está bien. No va a
afectar tu juego. Esto sigue siendo muy bueno. No obstante, si
todo tu juego es rojo, así, podrías
experimentar en tu juego. Sin embargo, si es
solo un área mínima en tu nivel que es
roja, está bien. Eso está bien. Ahora bien, si lo
copio, lo vuelvo a pegar, se ve que se vuelve
aquí, morado y blanco. Y si tienes
esto en tu juego, esto es realmente malo. Cuando optimices tu juego, trata de reducir la cantidad
de iluminación que estás usando. los puedas usar
lejos el uno del otro. Así, puedes superponer algunos
de ellos. Eso está bien. Sin embargo, no trates de
superponer muchas luces a la vez. Esto hará que tu juego se quede rezagado. Voy a borrar todas
las otras luces puntuales
que hice aquí. Éste y éste también. En este momento nuestro nivel está
muy bien optimizado. Así que pasemos a
la densidad del mapa de luz. este momento está abombada en motor
real. A
lo mejor lo arreglarán. Estas cajas negras parpadeantes no
se supone que estén aquí. A lo mejor
lo arreglarán en el futuro. Pero por ahora, solo ignora estas líneas negras parpadeantes
en la densidad del mapa de luz Lo que te muestra
aquí ahora mismo, vuelve a ser azul. El azul es resolución. Y es bueno
para el rendimiento de tu juego. Si algo es
muy rojo así, es malo para tu desempeño. Vamos de azul a rojo. Hay un gradiente.
Entonces va de azul a ligeramente verde a verde, y luego pasa al naranja, y luego va al rojo. Ahora mismo, ¿cuál es la densidad del mapa de
luz? ¿Cuál es la densidad del mapa de luz? Se puede aumentar la
resolución del mapa de luz para cada modelo. Y esto aumentará lo detallada que se
ve tu sombra en el suelo. Si tu sombra es realmente de baja
resolución en el suelo, esto se debe a que la resolución del mapa de
luz del suelo es baja. Esto puede ser una razón para ello. Lo que queremos hacer
es que queremos ir a la densidad del mapa de luz y
tenemos que aumentarla. El azul es realmente de baja
resolución para un mapa de luz. Tenemos que aumentar la
resolución para que
las sombras se vean bien
cuando golpeen las mallas, por
ejemplo. Esto
es realmente bueno. Queremos apuntar a
este color verde. Lo que quiero hacer es
hacer click sobre este terreno. Puedes encontrar este terreno
aquí en el navegador de contenido. No obstante, si no lo encuentras, lo que puedes hacer es hacer click en el suelo. Y puedes dar click sobre
este icono de aquí, y te llevará
a esa malla de tierra. Ahora vamos a
hacer doble clic y abrirlo aquí en el panel de detalles. Busquemos un mapa ligero. Ahora puedes ver la resolución del mapa de
luz
y la resolución mínima del
mapa de luz. Ahora tengo que hacer click
en otra cosa. No veo este color rosa, solo dando click en otra cosa. Puedo ver el color azul
aquí para el suelo. Ahora bien, si solo aumentas
la resolución del mapa de luz a algo así como usualmente lo
multiplicamos por dos, puedes decir 128. Ahora puedes ver que es menos azul. Ahora si lo vuelvo a hacer, me multipliqué por dos. Ahora en vez de solo escribir
el número, lo que puedes hacer, motor
realmente agradable e irreal, puedes decir multiplicar por
dos y luego presionar Enter Y lo va a
hacer automáticamente. Ahora se puede ver que es una
resolución más alta que antes. Antes eran 64 tú. Baja resolución. Ahora cuando lo
multiplicamos por dos, multiplicado por dos, todavía
quiero multiplicarlo por dos, porque esta sigue siendo una
resolución baja multiplicada por dos. Ahora esto es mucho mejor. A veces me detenía aquí porque esto
en realidad también es agradable. Pero lo que quiero hacer
es simplemente multiplicarlo por dos solo para ver cómo
se ve también. Este es el color al que suelo
ir en mis juegos. Esto todavía está en el área de
baja resolución, pero esto hará que
tus sombras se vean bien mientras sigues manteniendo
tu juego optimizado. No me gusta hacer mis
modelos muy verdes así. Me gusta quedarme en la zona verde
azulado. Todavía se ve bien
con las sombras. Resolución 1024, resolución de mapa
de luz para el suelo. Y recuerda copiar este
número y pegarlo. La
resolución mínima del mapa de luz también. Y luego puedes seguir
adelante y cerrarlo. Y te pregunta si
quieres aplicarlo. ¿Bien? Luego haga clic en Sí. Tienes que hacer eso para
todos los demás modelos. Por ejemplo,
tomemos otro ejemplo. Vamos a dar click en este de aquí. Este anillo de aquí. Es
este anillo de aquí. Haga doble clic en él, ábralo. Resolución de Mapa de Luz,
aquí está. Ahora vamos a hacer clic en
otra cosa para que podamos
ver realmente el color. Escribamos tiempos dos. Sigue siendo de baja resolución. Vamos a multiplicarlo por dos otra vez. Vamos a multiplicarlo por dos otra vez. Esto es realmente bueno. Creo que va a ser demasiado alto
si lo multiplico por dos. Ya puedes ver que es
verde y naranja. Éste. Sigue siendo
buena en cuanto al rendimiento. No obstante, sigo pensando que este
es un rendimiento demasiado alto. Recuerda, cuanto más aumentes
la resolución
del mapa de luz, más va a golpear
en los fotogramas por segundo. Y rendimiento,
voy a decir dividirlo por dos y simplemente quedarse
aquí como máximo. Voy a copiar este
número por aquí también. Y voy a cerrar esto y voy a aplicarlo ahora. Solo tienes que seguir adelante y
hazlo para todos los modelos que estés usando en el juego. Voy a saltar adelante y sólo tratar de hacerlo para todos los
modelos que tengo aquí. Terminé de
ajustarlas todas, y como pueden ver, así
es como se ve. Ahora se puede ver que algunos de ellos siguen siendo de muy baja resolución. Por ejemplo, este muro de aquí. No obstante, esta pared es también esta caja que se ve muy verde. Se puede ver si abro la caja de supercrid y
busco resolución de mapa de luz, puedo hacerla más Por ejemplo, multiplicarlo por dos nuevamente y
multiplicarlo por dos nuevamente, y este muro
será de alta resolución. No obstante, se puede ver
que estas cajas todas rojas y rojas ahora. Y esto realmente no es bueno. Esto se debe a
que cuanto más escales un ítem, menor será
la resolución. Por ejemplo, en realidad
volvamos a 128 antes. Si lo coloco aquí en el nivel, se
puede ver ahora
se ve verde. No obstante, si tomo la
herramienta de escala y la escalo hacia arriba, va a parecer de
menor resolución. Si lo escalo más arriba, se
puede ver que ahora está buscando una resolución más baja que antes. Cuanto más escales el ítem, menor resolución será. No obstante, todo se
ve bien hasta el momento. Y si solo vuelvo
al modo iluminado y lo que
puedes hacer es guardar nivel y luego
seguir adelante y dar click en Construir
y Construir todos los niveles. Y eso es solo
para asegurarse de que toda la iluminación esté construida, todas las sombras estén horneadas y todo se
vea correcto. Aquí va a tomar
algún tiempo. Va a tomar un poco
más de tiempo que antes porque has aumentado
la densidad del mapa de luz. No obstante, se puede
ver que el nivel sigue siendo muy optimizado. Entonces esto en realidad no tomó tiempo, y ya está terminado. La iluminación en este momento está en alta resolución aquí en
el suelo que antes. Se ve más de alta
calidad que antes. Esto se debe a que aumentamos
la densidad del mapa de luz. Ahora volvamos aquí en
los modos de vista de optimización. Entonces tenemos la superposición de luz
estacionaria. Como puedes ver,
no usamos mucho. Aquí estamos en la zona verde. Se puede ver que está muy optimizado. Si pasamos a la complejidad del
shader, nuevamente, se ve muy bien Nada de lo que
preocuparse si voy por encima, en realidad, sólo voy a pasar al
sobregiro de quad En lugar de
ponerlos juntos, voy al sobregiro del quad Y estos son los tres
modelos D que estás usando. Se va a echar un vistazo a cuántos triángulos
estás usando por modelo, y no tenemos mucho Se puede ver que está realmente,
realmente optimizado. Todo tu nivel está
actualmente optimizado. Y si pasas ahora
al modo Lit,
ahora ya terminamos con el nivel, todo
está optimizado. Y si voy a los
fotogramas por segundo, si hago clic aquí arriba, mostrar
los fotogramas por segundo. Y debes saber que 120 FPS es el máximo
aquí en Unreal En la ventana gráfica aquí, tienes que exportar tu juego
como un archivo EXC Por ejemplo, si
quieres liberarlo a vapor y será mayor FPS, pero dentro del propio motor, está bloqueado a un
máximo de 120, ¿verdad? Así que todo está muy
bien optimizado. Todo el nivel se
ejecuta al máximo FPS. Y también hemos optimizado
el nivel. Entonces ahora estamos listos para continuar.
12. 3.01 Importa los personajes: Bien, ahora es el momento
de importar los personajes. Ahora, durante el curso,
vamos a importar más cosas. Por ejemplo, las armas
y las animaciones. Pero vamos a darle
un paso a la vez. Empecemos con los personajes. Abramos el lanzador de
Epic Games. Dentro de aquí, quiero que hagas
clic en la pestaña Marketplace. Ahora dentro del Marketplace, puedes encontrar activos que
puedes usar para el juego. Puedes ver que están creando cosas
muy bonitas
que puedes usar. Por supuesto, gran parte
es por dinero. Sin embargo, lo que vamos
a hacer es que vamos a clic en Navegar y
ir a Caracteres. Entonces vamos a hacer clic
en el gratis aquí para que el precio máximo sean de uso gratuito. Ahora dentro de aquí,
voy a usar este se llama Militar Doc
y Military Silva. Sin embargo, también puedes
usar otros caracteres. Puedes usar esta
si quieres, puedes usar esta
si quieres. Realmente no importa.
Puedes usar esta. Depende de ti. No obstante
voy a usar estos dos, así que voy a dar click
en el primero. Después sigue adelante y da
clic en Descargar. Si no lo has
descargado antes
, dirá descargar aquí. Adelante y haz clic en Descargar. Entonces puedes dar click
en Agregar al Proyecto. Ahora puedes ver
aquí, esto está vacío, y esto es porque solo es compatible con Unreal Engine 4.8 a 4.27 Esta es
una versión muy antigua Ni siquiera es
Unreal Engine Five. Sin embargo, todavía podemos
usarlo para nuestro juego. Siga adelante y haga clic
en Agregar al proyecto, y haga clic en Mostrar todos los proyectos. Y luego puedes
seleccionar nuestro Proyecto. Y ahora está diciendo que no
es compatible con Unreal Engine 5.2 Así que hay que
seleccionar otra versión Da click aquí y selecciona la última versión
de Unreal Engine Ahora adelante y selecciónelo. Y siga adelante y haga clic
en Agregar al Proyecto. Ahora va a
ítem al proyecto, si ves aquí, si
vuelvo a mi juego aquí, si hago clic en él, ahora
puedes ver que ahora está dentro
del proyecto y puedo
usar a este tipo en mi juego. Está bien si
no es compatible, en realidad todavía
podemos
usarlo para el juego. Regresemos y
vayamos al otro,
este plateado. De nuevo, continúe y
haga clic en Descargar. Y cuando lo hayas descargado, haz clic en Agregar al Proyecto,
Mostrar todos los Proyectos. Seleccione nuestro Proyecto y seleccione la última versión con
la que sea compatible. Siga adelante y haga
clic en Agregar al proyecto, y también agregará este
al proyecto. Ahora tenemos ambos personajes. Tenemos este doc. militar. Tenemos esta plata militar que podemos usar para el juego. Bien, así es como importas cosas
del mercado. Simplemente descárgalos y
agrégalos a tu proyecto. Y si no son compatibles, recuerde mostrar
todos los proyectos, Seleccione el proyecto,
y también seleccione la versión con la que
sea compatible. Entonces ahora que hemos
importado los personajes, pasemos a
la siguiente lección.
13. 3.02 clases de planos para padres e hijos: Ahora estamos listos para
trabajar con planos. Hagamos una carpeta
aquí, haga clic derecho. Vaya a la carpeta nueva y llame a este plano dentro
de esta carpeta de planos Hagamos clic derecho y
seleccionemos la clase Blueprint. Ahora vamos a
hacer un personaje. Entonces voy a
seleccionar esta clase de Aca. No obstante, si no estás familiarizado con las clases de planos, la primera es un actor Y el actor es
simplemente un actor que
se puede colocar en el mundo. Por ejemplo, una mesa, una silla, una botella, sólo un
actor estático que está justo ahí. El peón es algo
que puedes controlar. Por ejemplo, si tienes una pelota rodando, este
es tu jugador. puedas controlar esa pelota en tu nivel porque se puede poseer un
peón Poseído significa
que el jugador puede controlar esta clase de planos
con el teclado y el mouse Ahora vamos a
crear un personaje porque tiene la
capacidad de andar por ahí. Se puede imaginar como un ser
humano con dos brazos, dos piernas caminando por ahí. Después hay que
seleccionar el personaje. Si tu personaje es simplemente
una pelota rodando, entonces basta
con ir con una pata. No obstante, tenemos personajes, así que adelante y
haz clic en personaje. Y voy a llamar a
éste BP Player Base. Ahora bien, ¿por qué no solo lo
llamé jugador BP? ¿Por qué lo llamé base de jugadores
BP? De esto se trata esta
lección. Se trata de clases de planos para padres e
hijos. Ahora voy a
crearlo aquí primero. Antes de explicarlo,
hagamos clic derecho en esta base de jugadores de BP y
creemos clase de plano infantil Llamemos a
éste BP Terrorista. Volvamos a darle clic derecho
y seguir adelante y llamarlo BP bajo terrorista. Bien. Esto es lo que son las clases de
planos
padre e hijo Ahora mismo. Tenemos,
creamos una clase de planos A partir de eso, escribimos clicked e hicimos una clase de plano infantil Lo que esto hace es
que si cambio ajustes dentro de esta clase de
planos padres, estos cambios
serán trasladados a la clase de
planos antiterroristas
y a la clase de
planos terroristas Digamos que entré en la base de
jugadores dentro de aquí. Fui al componente de
movimiento del personaje y luego cambié la velocidad
máxima de caminata. Digamos que quería que mi
personaje caminara más despacio. Entonces fui hasta aquí
y escribí 250. Reduje la velocidad. Pulsé en Compilar para
guardar mis ajustes aquí, y luego fui a, puedes ver que ahora
tienen esta estrella Y la estrella significa
que necesitan ser salvados. Si haces clic en
Contraterrorista, puedes ver si hago clic en el componente de
movimiento del personaje, también
está ahora en 250 Lo hizo automáticamente. Y si voy
también al terrorista , componente de
movimiento de personajes, la pieza máxima de Wx también
es 250 Puedes ver si cambias cosas en la clase de
blueprint padre, todos sus hijos también
cambiarán esta configuración Esto te ahorrará
mucho tiempo. Digamos por
ejemplo, Quincena. Si estás jugando
Quincena,
digamos que eres desarrollador
de Quincena Tienes esta base de jugadores y luego tienes todas las máscaras. En Quincena,
tienes todas las pieles. Todos los skins de jugador
que estás controlando. Cuando cambias una configuración
en la base de jugadores, cambiará la configuración
de todas las máscaras. Digamos de nuevo, por ejemplo, la velocidad a la que están caminando. En lugar de cambiar
la velocidad de caminata para cada
personaje en quincena, es muy fácil simplemente ir a
la clase de planos padres, cambiar la velocidad
y surtirá efecto en todos los niños del
plano Bien, entonces por eso creamos planos
padres y clases de planos
infantiles, por
ejemplo, el movimiento, vamos a hacer
el movimiento con
el teclado dentro de la base de
jugadores porque
no necesitamos codificar
el mismo movimiento en el antiterrorista y
el mismo movimiento
en
el Cuando tienen
exactamente el mismo movimiento, se mueven de la misma manera. O si eres
antiterrorista o terris no importa, el movimiento es el mismo Y por eso es mejor
hacerlo en la base de jugadores, así que solo tienes que hacerlo una vez. Bien, voy a
cambiar el máximo, caminar regreso a 600 y la base de jugadores compilada como se puede ver en el
antiterrorista y terrorista, se
vuelven a cambiar a 600. Así es como vamos a trabajar. Vamos a
hacer principalmente cosas dentro de la
cláusula de plano padre y cuando tienen cosas específicas
que no son similares, entonces las vamos a hacer
dentro de los niños aquí Pero por ahora, esta es
la explicación básica. Vamos a guardar todo y
cuando todo esté guardado, pasemos a la siguiente lección y configuremos el personaje.
14. 3.03 Crea el personaje: Para establecer el carácter. Empecemos primero con el terrista por
aquí en el terris Hagamos clic en Abrir editor de planos
completo. Este visor se te muestra
cada vez que el plano está vacío y lo abres por
segunda vez Luego haga clic aquí en el
editor de planos
completos de Abrir y
volverá aquí en la vista normal
aquí en la ventana gráfica Si da clic aquí arriba en los Componentes,
haga clic en la Malla. Y luego a la derecha,
puedes ver que
puedes agregar un activo de malla esquelética Ahora puedes pinchar
sobre él por aquí, y puedes seleccionar
el personaje. Lo que puedes hacer, también
puedes seleccionar la carpeta que
hayas importado. Y puedes hacer clic y arrastrar el personaje a este
componente de malla aquí también. Puedes
seleccionarlo desde aquí o simplemente
puedes hacer clic y
arrastrarlos a aquí. Por ejemplo, voy
a usar este, el terrorista masculino,
y voy a hacer clic y arrastrar esto hasta
aquí y asignarlo. Como pueden ver, voy a hacer lo mismo por
el terrorista. Haga doble clic en él. Abra el editor de planos
completo dentro de aquí.
Haga clic en la malla. Ve a la ventana gráfica, solo para que pueda ver lo que
estoy haciendo aquí Haga clic aquí y vende. Seleccione la hembra.
Eso depende de ti, realmente no
importa
lo que elijas, pero voy a
seleccionar este, el personaje
antiterrorista masculino. Ahora puedes ver que
en realidad se supone que
los personajes están enfrentados de esta manera, donde se muestra la flecha azul. Están enfrentando el camino equivocado. Ahora otra vez, te hablé las clases de
planos de padres e hijos En lugar de girarlos
tanto aquí como aquí, puedes hacerlo todo a la vez
dentro de la base de jugadores. Si abro la base de jugadores
y voy a la parte de vista, hago clic en la malla. Haga clic en E en el teclado
para la herramienta de rotación, y luego en realidad
tengo este chasquido encendido Me puse este chasquido y
giré 90 grados -90 grados Eso los hará
avanzar de esta manera. Si hago clic en Compilar y
hago clic en cada uno de ellos, se
puede ver que ambos
están rotados. Por eso es agradable
tener una pérdida de padres. Por lo que puedes cambiar una configuración y se aplicará
a todas ellas. Ahora lo que tenemos que hacer también, tenemos que hacer que el pie de estos personajes esté en la
parte inferior de la cápsula. Realmente no podemos
hacerlo dentro de aquí. Tenemos que hacerlo por cada uno
de ellos. Puedes hacerlo. De hecho, intentemos.
Sólo hagámoslo. Vamos a hacer clic en la malla. Y da click en la malla
esquelética aquí. Simplemente asigne cualquier
carácter aleatorio aquí. realidad no
vamos a preocuparnos por
el personaje porque también lo
vamos a quitar. Así que da click sobre este personaje. La mejor manera de hacerlo es ir a la vista en perspectiva aquí. Y da click en,
Empecemos con la
vista frontal, por ejemplo. Puedes acercar y arrastrar a
este personaje hacia abajo. Así como así, se puede ver que la cápsula no está realmente
llenando a todo este personaje. Entonces lo que voy a hacer es dar
clic en la cápsula. Y la cápsula a media altura, voy a aumentar
ligeramente, algo así como 93 o
algo así. Haga clic en el personaje.
En realidad voy a cambiar a
la vista correcta. Creo que es mucho más fácil de
ver y simplemente arrastrar a
este personaje. Entonces el pie aquí
está en la parte inferior. Te imaginas que este es el
piso. El piso está aquí. Donde llegue a este punto, voy a arrastrarlo hacia abajo. Entonces el pie está en el
piso así como así. No tiene que
ser 100 precisos. Siempre se puede ajustar más tarde. Pero esto es solo
un buen comienzo ahora. Realmente no tiene que
llenar todo esto. Cápsula de colisión. Este componente de cápsula se suele utilizar para que sea una colisión. Por ejemplo, en dos
juegos D, tres juegos D, si quieres golpear al jugador, van a ser golpeados a
través de este componente cápsula. No obstante, en nuestro shooter multijugador en
primera persona, vamos a crear un sistema de colisión más avanzado para brazos y piernas y así sucesivamente. Porque puedes
ver en este juego, si tenemos esta cápsula como la colisión, cuando
golpeas al jugador. En realidad se puede golpear al jugador si la bala es disparada aquí. Y eso
realmente no tiene sentido. Entonces vamos a hacer un sistema de
detección de aciertos más avanzado. Para que el jugador
solo sea golpeado si en
realidad son golpeados en el
brazo y no aquí afuera. Este realmente no
importa demasiado por ahora. No tiene que
ser del todo preciso, pero me gustaría estar aquí
en la vista correcta, solo hazlo lo mejor que
puedas que llegue al
piso así. Si vas a la vista frontal, puedes intentar reducir ligeramente
la cápsula. Se trata de su cuerpo,
así como así. Bien, hagamos clic
en Compilar ahora. Vayamos al
Contraterrorista. Mira cómo se ve. Si
voy a la vista correcta. Vista frontal,
échale un vistazo. Se ve bien. Si voy a la compilación
terrorista, basta con echar un vistazo en
la perspectiva. Toma la vista correcta. Basta con echar un vistazo al antiterrorista Este también se ve bien. Puedes ver que hicimos todo aquí
dentro de la base de jugadores, y ahora se aplican para todos los personajes futuros
que hagamos. Ahora digamos que quieres
hacer otro personaje
en el futuro. Lo que necesitas hacer
es hacer clic con el botón derecho aquí y crear una nueva clase de plano
infantil Digamos por
ejemplo que lo llamamos EP y hay un
terrorista llamado Phoenix. Un nuevo personaje
puedes entrar de aquí
y puedes hacer clic en este tipo en esta malla y luego puedes cambiarlo a
ese personaje de Phoenix. Por ejemplo, este
personaje femenino podría ser Phoenix. Y puedes ver lo fácil que
es crear nuevos personajes. Se aplican todos los ajustes. Digamos que para este personaje, hay algunos ajustes
que hay que cambiar. Entonces solo puedes entrar dentro de este personaje y simplemente
ajustar este personaje. Puedes ajustar bien estas clases de
planos de niños bien estas clases de
planos No es necesario que solo confíes
en la configuración de la base de jugadores. Puedes ajustar cada una de
ellas si quieres. Sin embargo puedes ver que es muy agradable que ya tengamos
los ajustes básicos Ajustes
predeterminados
suministrados y facilita nuestro trabajo. Ahora vamos a cerrar todo. Voy a borrar esta. Esto fue solo para mostrarte y voy a volver a
la base de jugadores, necesitamos agregar una cámara también, porque ahora mismo el
personaje está ahí. Sin embargo, no tenemos una cámara para que el jugador la vea. Vamos a dar click
en la Malla aquí, ir a D. Entonces vamos a agregar algo llamado resorte
de primavera. El brazo es solo un soporte
para la cámara. click en el muelle, ve a D y luego busca cámara. Entonces puedes seleccionar esta cámara. Ahora se puede ver que
tenemos un brazo de resorte, y dentro del brazo de
resorte hay una cámara. Ahora haciendo clic en el resorte, voy a hacer clic en mi
teclado para la herramienta de rotación, y luego voy a rotar la cámara para que
quede detrás del personaje. Por ahora. Sólo
voy a arrastrarlo hacia arriba. Simplemente algo así como, esto realmente no
importa por ahora. Vamos a ajustar
la cámara más adelante. Pero por ahora solo quiero ver a mi personaje cuando
estoy dentro del juego. Lo que puedes hacer
es que lo puedes ver aquí si, por ejemplo. Ahora se puede ver que en realidad
se aplica a ambos, los terris y al
antiterrorista porque
son niños Se puede ver que ambos
tienen un brazo de resorte ahora, tanto el terrista como el
contra-terista también Pero lo que puedes hacer es hacer clic y arrastrar la terraza del
mostrador, por ejemplo, al nivel. Si haces clic en el personaje, puedes ver que
tienes una vista aquí. Y esto es porque
acabas de agregar una cámara. Se puede ver cómo
se ve este personaje desde atrás. Lo que suelo hacer, en realidad
aquí en la base de jugadores, voy a dar click
en el brazo de resorte. Y voy a
establecer la longitud
del brazo algo así como 600, así que está un poco
lejos del personaje. Y luego voy a hacer click
en el personaje, y ya se puede ver
que así es como se ve. Me gustaría desarrollar mi shooter en
primera persona de esta manera primero y después
. Es muy fácil. La diferencia entre
un tirador en tercera persona y un tirador en primera persona es solo que puedes hacer clic en
el brazo de resorte y establecer la
longitud del brazo objetivo en cero. Y entonces en realidad estás viendo este juego como un modo en
primera persona. Pero por ahora, como estamos
haciendo el movimiento del jugador, me gustaría comenzar con una longitud de brazo objetivo de
600 porque entonces podemos ver todo el movimiento
que estamos haciendo y podemos ver si estamos
haciendo las cosas correctamente. Esto fue por
sentarse del jugador. Recuerda compilar y
guardar todo tu trabajo. Y pasemos
a la siguiente lección.
15. 3.04 modo de juego y controlador de jugador: Cada juego que creas. No importa cuál sea el juego, siempre
tienes un modo de juego
y un controlador Player. Vamos a hacer clic en la carpeta
Blueprint. Antes de hacer nada, vamos crear una nueva
carpeta dentro de aquí, y llamémosla Player. Voy a tomar todos estos
aquí y agregarlos dentro, moverlos dentro de
la carpeta Player. Así que estamos un poco más organizados aquí en
la carpeta de planos Vamos a hacer clic derecho y crear
una nueva clase de blueprint. Seleccionemos un controlador
de jugador. Un controlador Player,
lo que solemos hacer dentro de aquí es crear la interfaz de usuario y luego también
engendramos cosas
dentro de aquí Por ejemplo, si el jugador
deja caer un arma al mundo, entonces generamos esa
arma en el mundo, generando cosas dentro
del Controlador de jugador
y también la interfaz de usuario está dentro
del Controlador de jugador Vamos a seguir adelante y hacer clic y
crear un controlador de jugador. Y por lo general les doy un prefijo de EC para controlador de
jugador, entonces lo llamo el
nombre del juego. El juego es contraataque, solo
voy a
llamarlo bajo strike, luego haga clic derecho otra vez Ve a la clase Blueprint y luego crea un modo de juego Y por lo general para qué sirve el modo de
juego, crea las reglas y
la puntuación de los juegos. Por ejemplo, cuántos segundos por ronda y cuál es
el modo de juego, por ejemplo, capturar
la bandera y así sucesivamente. Así que adelante y
crea el modo de juego, y llamémoslo
GM para el modo de juego. Y otra vez, voy a llamarlo el nombre del juego
Hound, A Strike Entonces lo que quiero que hagas es hacer
doble clic en este modo de juego. Y necesitamos algunos
ajustes iniciales dentro de aquí. En el modo de juego,
puedes ver que tenemos en la clase predeterminada los valores predeterminados, tenemos la clase Player
Controller Este es solo el controlador de reproductor Unreal
Engine predeterminado. Queremos hacer clic en él,
cambiarlo a nuestra propia ley de control de
jugadores personalizada que acabamos de hacer. Lo mismo para
la clase por defecto. Más adelante, no
vamos a tener a nadie, vamos a seleccionar ninguno. Sin embargo, en realidad no tenemos una
pantalla de selección de personajes en este momento. Lo que quiero hacer
es simplemente engendrar como, por ejemplo, un terrorista
o un antiterrorista Sólo voy a seleccionar
antiterrorista. Más adelante lo vamos a
eliminar porque tendremos una pantalla de selección de personajes y podrás seleccionar como lo
que quieras engendrar Pero por ahora, vamos a engendrar como un antiterrorista
porque no
tenemos una pantalla de
selección de personajes Ahora vamos a cerrarlo. Vamos a Editar y Ajustes
del Proyecto. Dentro de aquí tenemos
los mapas y modos. En mapas y modos, hay que
cambiar el modo de juego. este momento está configurado en
la base del modo juego, que es solo el
modo de juego básico para Unreal Engine Sin embargo, quiero cambiarlo
a nuestro propio modo de juego personalizado. Y haciendo clic en esta pequeña flecha para el modo de juego seleccionado, solo asegurándonos de que la cláusula de punto
por defecto es el antiterrorista que
hemos seleccionado y el controlador del jugador
es nuestro también. Ahora si quieres,
has notado
si cierras y
abres el motor, te pondrá en ese mapa por defecto de mundo
abierto. También puedes cambiar esto dentro
de mapas y modos. Los editores inician mapa, puedo cambiarlo para que sea este mapa, este mapa que creamos también para el mapa predeterminado del juego, podemos cambiarlo a
este también. Bien, vamos a cerrar esto. Como última cosa,
sigue adelante y da clic en
la Configuración del mundo. Ahora si no puedes ver la pestaña, puedes hacer clic en Ventana y
hacer clic en Configuración del mundo, y podrás verla. Así que adelante y haz clic
en Configuración del mundo, y en la anulación del modo de
juego del juego, haz clic en éste y selecciona
nuestro modo de juego así. Esto es muy importante
que hagas todo esto
porque de lo contrario no podrás engendrar al jugador
dentro del mundo Ahora bien, si borro este reproductor, este es solo alguien que acabo colocar en la lección anterior. Tenemos que tener un jugador que empiece antes de que podamos realmente
engendrar dentro de aquí Voy a dar click aquí
arriba e ir a Básicos y seleccionar
un inicio de Jugador. Voy a dar click en
G para ver los íconos. Voy a moverlo
hacia abajo así, al mundo. Algo
así aquí. Puedes ver aquí, si lo
pones debajo del suelo, va a decir mal tamaño. Solo asegúrate de que esté por encima del suelo. Algo como esto. Ahora puedes hacer click en play, y esto debería engendrar a
tu personaje Si no genera, por favor
vea este video nuevamente. Asegúrate de que el modo de juego
está dentro del mundo, configuración está dentro de la configuración
del proyecto, y así sucesivamente. Pero ahora puedes ver que estamos desove como el personaje
y hacemos clic en Jugar Y en realidad se ve
genial. Esto es Lumen. Se pueden ver las iluminaciones de los lúmenes, en realidad lobo
tomándolo de la superficie Bien, entonces ahora hemos agregado el modo de juego y
el controlador del jugador. Y sigamos adelante y hagamos el contexto de mapeo de entrada y agreguemos movimiento para el jugador.
16. 3.05 Contexto de mapeo de entrada: Sigamos adelante y comencemos en el contexto de mapeo de entrada donde podemos agregar el movimiento
del jugador. Sigamos adelante y entremos dentro
de la carpeta del reproductor. Dentro de aquí,
voy a hacer clic derecho y hacer una nueva
carpeta llamada Input. Simplemente escribí mal esa entrada así
como esa dentro de aquí Vamos a abrirlo, haga clic derecho, vaya a Entrada y cree este llamado contexto de mapeo
de entrada. Normalmente llamé a IMC
como prefijo y sólo
voy a llamarlo default Ahora, antes de que podamos usar esto, puedes ver si
lo abro, está vacío. Si hago clic en este plus aquí
para agregar una clave a mi movimiento, por ejemplo, se puede
ver que dice ninguno, y no puedo seleccionar nada. Esto se debe a que
quiere una acción de entrada. Así que aquí abajo, hagamos clic derecho, vayamos a input y
seleccionemos input action. A éste lo vamos
a llamar movimiento. Ahora para esta, la
voy a abrir. Esta acción de entrada,
lo único que realmente
necesitamos cambiar dentro de aquí es
el tipo de valor. El tipo de valor,
puedes pincharlo y podrás ver que tienes
estas diferentes opciones. Lo que vamos a hacer
es avanzar y retroceder para nuestro personaje
dentro del juego. Si pongo el personaje
dentro de aquí, personaje se va a
mover de un lado a otro. Ese es un eje. El personaje se va a mover a izquierda y derecha. Ese es el segundo eje. Es por ello que voy a
elegir un eje dos D, porque estamos avanzando hacia atrás y también a la
izquierda y a la derecha, que es el segundo eje. Entonces voy a ahorrar aquí. Volvamos al contexto de mapeo
de entrada. Ahora podemos hacer click aquí y agregar nuestra acción de entrada
que acabamos de hacer. Bien, vamos a
minimizar esto por ahora. En lugar de aquí, hay
que asignar una clave. Quiero seguir adelante
con mi tecla W. Lo que puedes hacer es
presionar aquí arriba y buscar. Y entonces se puede ver que
este es el teclado. Puedes seleccionar la
W. Otro
método más fácil para hacerlo si haces
clic en el más aquí arriba. Ahora quiero moverme hacia
atrás con mi tecla S. En lugar de hacer clic
aquí y escribir y encontrar tu clave S. A veces puede llevar algún tiempo. Lo que puedes hacer es hacer clic en este icono, y luego puedes hacer click en el teclado que
asignará esta tecla. Ahora para moverme a la izquierda y a la derecha, voy a dos de ellos
aquí por la derecha, voy a dar click aquí y dar
click en D para la izquierda. Voy a dar click aquí y dar
click en A en mi teclado. Ahora tengo esas llaves. También quiero agregar es que quiero
agregar el movimiento del mouse. Voy a crear
una nueva acción de entrada. Voy a bajar
aquí, hacer clic derecho, ir a entrada y crear
una nueva acción de entrada. Voy a llamar a éste Mira, buscando con el ratón
esta otra vez, voy a abrir
la acción de entrada. Y voy a cambiar el tipo de
valor al eje dos D, porque voy a mirar hacia arriba
y hacia abajo. Ese es un eje. Y el segundo eje
está mirando el eje izquierdo y derecho dos D.
Va a hacer clic en Guardar. Y volviendo a mi contexto de mapeo de
entrada, ahora puedo hacer clic en el
más aquí arriba y puedo agregar mi nueva
acción de entrada para esta. Ahora da click en él aquí
y busca un mouse. Y tienes este
llamado mouse Xy2D. Ahora también solo agrega el mouse X, y también agrega otro, y agrega el mouse Y. puedes hacerlo. Eso es lo mismo, pero
para hacerlo más limpio, solo
voy a dar
click aquí y
buscar el mouse y
agregar este mouse Xy, porque podemos hacer
eso también y se volverá mucho
más limpio en el código. Ahora lo que queremos
hacer con el movimiento aquí con la WK, estamos
avanzando con la K, estamos retrocediendo Sin embargo, ahora mismo,
ambos están avanzando. Lo que tenemos que hacer
para que el SK se mueva hacia atrás es en los modificadores que necesitas para hacer clic en el más Entonces aquí abajo hay que
seleccionar esta llamada negate. Esto invierte tu entrada. Al hacer clic en él se
moverá hacia atrás. Cuando tienes este
negate lo agregó, Negate solo significa que
hace lo contrario de lo que hace la clave Tenemos que hacer lo
mismo aquí abajo. D se mueve hacia la derecha, en realidad, para la
izquierda y la derecha. Lo que tenemos que hacer
también en los modificadores, tenemos que dar click aquí y
seleccionar al espacio mundial Tenemos que hacer
lo mismo por la izquierda. Aquí, tenemos que dar click
en los modificadores y seleccionar al espacio mundial Ahora para la izquierda y la derecha, la D va a la derecha y la A va a la izquierda. Ahora para la izquierda, también
tenemos que agregar este modificador llamado Nick
Gate, igual que antes. Va a ir por el
camino opuesto a lo que va la D. Así que sigamos adelante
y hagamos clic en Guardar. Todo se ve bien. Y ahora estamos listos para agregar este
contexto de mapeo de entrada a nuestro personaje. Porque ahora lo hemos
sumado todo. Todo se ve bien. Ahora si conseguimos alguna caja
con el movimiento, siempre
podemos volver
aquí y cambiarla. Pero por ahora, esto
es lo que tenemos. Y eliminemos este personaje. Y pasemos
a la siguiente lección.
17. 3.06 Añade el contexto de mapeo de entrada: Antes de que podamos usar el contexto de mapeo de
entrada y agregar movimiento
al personaje, tenemos que agregar esto a nuestro blueprint Clauss. Sigamos
adelante y hagamos eso. Vamos al jugador y
vamos al interior de
la base de jugadores. Dentro de aquí,
vamos a sumar el movimiento. Cuando agreguemos el movimiento aquí, lo va a aplicar también
a los niños. En el plano padre
Claus, la base de jugadores. Vamos a la gráfica de eventos. Dentro del gráfico de eventos, puede hacer clic en mantener presionado el botón derecho del mouse y
puede desplazarse por dentro de aquí. Ahora sigamos adelante y
seleccionemos todos esos. Y golpeó la ventaja
en el teclado. Y empezar desde el principio como lo primero
que voy a escribir. Haga clic. Y cuando escribes click, puedes seleccionar entre
diferentes funciones y eventos. El primer evento que
vamos a crear se llama Begin, Play, Play. Sigue adelante y selecciona el
evento, Comenzar, Jugar. Y lo que eso hace es ¿qué debería pasar si
empiezo a jugar el juego? Puedes escribir código aquí Si arrastro de este
pin de ejecución y voy a soltarlo. Y escribo print y
uso esta cadena de impresión. Entonces esta es la función
simple, más simple que
tenemos en Unreal engine En planos, esto
solo imprimirá algún
texto en la pantalla Ahora si
compilo, hago clic en play. Se puede ver que dice
hola aquí arriba. Si vuelvo a hacer clic en reproducir, puedes ver que dice hola. Entonces esto solo dice ¿qué debería pasar si empiezo a
jugar el juego? Lo que queremos hacer es
agregar el contexto de mapeo. La forma en que haces esto
es primero tienes que
obtener la referencia del
controlador del reproductor. Para ello, escribamos click y solo busquemos controlador. Puede seleccionar este
llamado Controlador Yet. Estamos recibiendo el
controlador, sin embargo, este es solo el controlador básico de reproductor
predeterminado
en Unreal Engine Tenemos que especificar a
Unreal Engine que
en realidad estamos hablando este
control de jugador personalizado que hicimos La forma en que hacemos esto es
contratando desde aquí. Y podemos decir elenco dos, costo dos medios es
que estamos tratando de obtener la referencia de este controlador de
jugador
puedo arrastrar desde aquí
y decir cuesta dos y luego hay que darle el nombre del controlador del
jugador. Controlador de reproductor, PC. Counterstrike es
lo que lo llamamos. Así que adelante y selecciónala. Ahora podemos acceder a
todo lo que hay dentro de aquí. Digamos en el controlador
Player. Si yo, por ejemplo
agrego una variable, solo llámalo hola o
algo así. Cualquier cosa al azar haga clic en compilar dentro de
la base de jugadores. Ahora puedes ver si arrastro
desde aquí y escribo hola, puedo ver la
variable que acabo de hacer. Casting es que puedes
acceder a todo lo que hay dentro de este controlador de reproductor ahora porque tienes
una referencia al mismo, esto es lo que se llama comunicación de
planos Porque ahora estás en la base de
jugadores y te estás comunicando con
el controlador del jugador y puedes acceder a
todo lo que hay dentro de aquí. Lo único que
queremos hacer dentro de aquí es que queremos arrastrar. Y luego potenciamos, nunca
recuerdo este
nombre, es tan largo. Subsistema de
reproductor local de entrada mejorada. Simplemente escriba Enhanced
y selecciónelo aquí. A partir de esta
vamos a arrastrar y decir agregar contexto de mapeo. Siga adelante y agregue el contexto
de mapeo. Y recuerda conectar
tu código de lo contrario no
funcionará porque
va a ir desde el evento, va a obtener esta referencia de
Play Controller. Y luego va a agregar este contexto de mapeo
a este plano Y recuerda que en el
contexto de mapeo tienes que dar click aquí y seleccionar el contexto de
mapeo que hiciste. Adelante y haz clic en Compilar.
Y eso es en realidad. Ahora has agregado el contexto de
mapeo al jugador y ahora puedes usar eventos
y crear el movimiento. No obstante, en la siguiente lección, vamos a hablar de interfaces de
blueprint Realmente no me gusta hacer
casting porque el casting crea referencias
calientes en el motor real
cuando comienzas el juego. Por ejemplo, digamos que
creaste un juego completo. Has lanzado, por ejemplo, 100 planos en tu juego Ahora se lanza en Steam. No obstante, para las referencias calientes, cuando un jugador abre tu juego antes de que cargue el
menú principal y todo lo demás, va a cargar primero las referencias
calientes. Si tienes, digamos 100, 200 en tu juego del casting, va a ralentizar
tu juego porque necesita cargar todas
las referencias calientes. Necesita cargar
todos estos primero. Puede ejecutar tu juego. No estoy diciendo que nunca
debas usar esto, porque hay casos que es ridículo no usarlo. No obstante, para este caso, lo que normalmente me gusta hacer es que me gusta hacer una interfaz de
blueprint Y a partir de eso podemos
comunicarnos con otros planos sin
crear referencias calientes Entonces hagámoslo, hagamos
nuestro juego más optimizado. Y también estoy
tratando de mostrarte cómo lo
haría normalmente de
la manera avanzada, y realmente no me gusta
enseñarte malas formas de hacerlo. Intentemos evitar el
casting por ahora, y pasemos
a la siguiente lección donde podamos reemplazar esta parte.
18. Interfaz de 3.07 Blueprint: Se
utilizan interfaces de blueprint en lugar de calcular costos. Para una comunicación de blueprint, generalmente
usamos interfaces de
blueprint para que podamos evitar costos Y como puedes ver aquí en el jugador que hicimos
en la base de jugadores, hicimos este costo y para
evitar ocultar referencias que hay que cargar
en el juego antes del menú principal y
ralentiza
el juego, creamos una interfaz de blueprint
para evitar estos casting Sigamos adelante y creemos uno. Y veamos de
qué se trata. Por encima en la carpeta de planos, voy a escribir, dar clic
y hacer una nueva carpeta Y voy a llamar a
éste interfaces o interfaz. Y vamos a entrar en esa
carpeta dentro de aquí. Vamos a escribir click, ir a Blueprint y seleccionar Interfaz de
blueprint Por lo general, para las interfaces, suelo llamarlas t como prefijo. En este momento hay que llamarlo a lo que está
tratando de hacer referencia. Estoy tratando de hacer referencia
a mi controlador de reproductor. Voy a llamar a este controlador
de una reproducción. Voy a
entrar de aquí y esta es la interfaz del blueprint Ten en cuenta que las interfaces de
blueprint suelen ser difíciles
para los principiantes, pero trata de
entenderlas y
en realidad es muy fácil de
entender Solo intentemos
hacer uno y veamos qué sucede dentro de una interfaz de
blueprint Tienes esta vista, realmente no
puedes hacer nada
dentro de aquí. No se puede arrastrar ni hacer nada. Lo único que puedes hacer es
por aquí en las funciones, puedes crear una función. La función que quiero hacer ahora si haces clic
en dos en el teclado, puedes cambiar el nombre de este. Yo solo quiero llamarlo get
player controller ref. Estoy intentando, con esta función, estoy tratando de obtener la referencia de los
controladores del reproductor. que pueda evitar este casting de aquí por aquí. Voy a dar click sobre esta función que acabo de hacer. Voy a crear
una salida aquí. En las salidas, voy a seleccionar la clase de blueprint a la
que estoy tratando de hacer referencia Ahora estoy tratando de hacer referencia a mi contraataque de
PC Player Controller Así es como lo llamamos. Y seleccione la referencia del objeto. Selecciona aquí en las variables
que tienes para seleccionar la clase de blueprint a la que
intentas hacer referencia Voy a llamar a este Controlador
de Jugador. Y ahora esta función está
terminada. Muy sencillo. Recuerda presionar
y compilar aquí. Muy importante y
seguir adelante y ahorrar. Ahora tenemos esta
sencilla función. Ahora lo que podemos hacer con esto
es ahora vamos a abrir el controlador. Si voy a
planos y
abro controlador del reproductor
dentro de aquí, abramos el editor de planos
completo
y luego sigamos adelante y
seleccionemos Configuración de clase En la configuración de clase aquí abajo, ahora
puede agregar la interfaz del
blueprint Hagamos click aquí y
busquemos T. Aquí está, la interfaz que acabamos de hacer.
Adelante y selecciónelo. Cuando seleccionas la interfaz del
blueprint, podrías notar que por aquí a la izquierda, ves esta pestaña Ahora bien esta es una nueva pestaña que acaba de aparecer llamada interfaces. Dentro de aquí, puedes
ver la función que acabamos hacer dentro de esta interfaz de
blueprint Ahora ha aparecido cuando se
agrega la interfaz del blueprint. Si haces doble clic en esta función y
vas dentro de ella, ahora puedes establecer
esta variable aquí. Creamos esta variable
de control del jugador, pero ahora mismo está vacía. Lo que tenemos que hacer,
tenemos que arrastrar de esto. Y luego escribimos auto. ¿Qué significa eso?
Déjame hacerlo de nuevo. A lo mejor fue demasiado rápido.
Dragón de aquí. Y escribir yo y
luego seleccionar éste, obtener una referencia a uno mismo. Lo que eso significa es,
permítanme volver aquí. Hicimos la
interfaz de blueprint aquí e hicimos esa función dentro de ella aquí para las variables que
seleccionamos, la variable a la que queríamos
hacer referencia Ahora dentro del control del
jugador, cuando agregamos la interfaz
a través de la configuración de clase apareció aquí. La
función dentro de aquí para esta variable
estamos escribiendo auto. Lo que eso significa es que solo le
estamos diciendo al motor qué es esta variable del
controlador del reproductor. Porque si mantengo el control y hago clic aquí y lo
desconecto, el motor nunca sabrá
qué es esta variable. Si se mantiene
así, está vacía, la variable está vacía y
obtendrás era en tu juego. Pero si hacemos una autorreferencia, lo que eso significa es que significa esta variable es yo. Recuerda que estamos dentro
del Controlador del Jugador. Básicamente estamos definiendo esta variable
del controlador Player. Le estamos diciendo al motor que es este Player Controller
en el que estoy ahora mismo. Es uno mismo. autorreferencia significa lo que Eva, clase de
plano en la
que estoy en este momento, que es el controlador Player Entonces lo acabamos de definir aquí. Adelante, compilar y
guardar lo que podemos hacer ahora. Ahora ya terminamos con esto. Ahora podemos ir al jugador y sigamos adelante
y eliminemos esto. Lo que podemos hacer ahora
es que podemos arrastrar desde el controlador y luego escribir la función
que le llamamos. Aquí está el nombre de la misma. Obtener la referencia
del controlador del jugador, puedo arrastrar desde aquí y decir get layer. Y entonces se puede
ver que aparece aquí desde la interfaz de blueprint
que hicimos, Dice obtener referencia del
controlador del jugador Esta es la función que acabamos hacer cuando dice
mensaje al final, esto significa que proviene de
una interfaz de blueprint Así que adelante y selecciónala. Este icono aquí, solo
significa que proviene de una interfaz de blueprint.
Y ahora lo tenemos. Ahora evitamos el casting, evitamos las referencias duras, y nuestro juego también es más optimizado en cuanto al
rendimiento. Ahora puedes simplemente
seguir adelante y conectarlo. Ahora sabe que este controlador de
reproductor
al que
estamos haciendo referencia es nuestro controlador de
jugador de contraataque para PC Porque toda esta variable en el contraataque de PC
seguimos adelante y escribimos auto, en realidad ahora sabe de lo que
estamos hablando aquí Esto podría ser un poco confuso
para empezar si nunca antes
has usado
interfaces de blueprint, pero muy útil para evitar el casting Acabamos de crear la interfaz del
blueprint. Luego seguimos adelante y seleccionamos la clase de planos a la
que queremos hacer referencia Entonces dentro de la clase de
blueprint que
estamos tratando de hacer referencia, agregamos esa
interfaz de blueprint y esta apareció Entonces dentro de aquí
hicimos una autorreferencia. Y a partir de eso más adelante ahora ya
podemos usarlo aquí donde podemos decir
obtener el controlador y luego obtener la referencia del
controlador del reproductor, así como así y
evitar costos Muy bien, así que eso fue todo
para la interfaz del blueprint. Vamos a tener más
ejemplos en el futuro. Si esto fue un poco difícil, por favor eche un vistazo a mi servidor de
Discord o eche un vistazo a Pixel
Helmet.com Estoy muy,
muy feliz de ayudarte 2047 Así que sigamos adelante y hagamos
clic en Archivo Guardar todo. Y continuemos
a la siguiente lección.
19. Movimiento de jugador en 3.08: Ahora que hemos agregado el contexto
de mapeo de entrada
al jugador, ahora
podemos hacer el movimiento. Tenemos que escribir el nombre de las acciones de entrada
que creamos. El primero que
creé se llamó movimiento
IA.
Empecemos con esa. Lo que puedes hacer ahora aquí en
el jugador, puedes escribir, hacer clic y escribir IA movement, el nombre de la acción de entrada. Y luego puedes dar click en
este evento para crearlo. Recuerda, este símbolo significa que se
trata de un evento. Así que
adelante y créalo. Ahora tenemos este evento y
parece un poco complejo,
pero no realmente. Simplemente te dice, cuando el evento se desencadena,
inicia, continúa, se
cancela y se completa. Aquí no hay nada demasiado complejo. Ahora bien, ¿cuándo se
desencadena este evento ? El
evento se desencadena. Si vas al contexto de
mapeo de entrada, recuerda que agregamos botones
para nuestro movimiento. Si hago clic en W, se activará este
movimiento. Ahora veamos si
esto realmente funciona. Porque si
no has agregado este código, este no disparará cadena de impresión
correcta y solo imprimo un
mensaje sencillo en la pantalla. Si hago clic en, por ejemplo,
puedo dar click en play. Y si hago clic en, se puede ver que en realidad está
imprimiendo a la pantalla. Ahora si hubiera
desconectado esto y no
agregué mi contexto de
mapeo de entrada, y hago clic en Reproducir
y hago clic en, puede ver que nada está imprimiendo a la pantalla y no
está funcionando. Recuerda agregar
esto a tu código. Bien, ahora que esto está funcionando, hagamos algo de movimiento. Para el movimiento para el jugador, usamos una función llamada Entrada de
movimiento de anuncio, clic derecho, y escribimos entradas de movimiento, así es como agregas
movimiento a un personaje. Vamos a conectarlo ahora. Ahora
lo que te pide es, ¿en qué dirección
quieres mover al personaje? Ahora hagamos el primero. Avanzar y retroceder. Lo que puedes hacer simplemente click
derecho y derecho. Sin embargo, en el vector forward, este es el vector forward y podemos conectarlo aquí
a la dirección mundial. Ahora bien, ¿cómo nos movemos hacia atrás? En realidad no
necesitamos nada más. Esto es lo único que necesitamos. ¿Cómo es eso, cómo
sabe cuando caminamos
hacia adelante y hacia atrás? Esto se debe a
este valor de escala. El valor de escala es uno,
va a seguir adelante. Puedes ver aquí,
si hago clic en jugar y hago clic en él se mueve hacia adelante. Si hago clic en este momento, realidad también avanza porque este
valor de escala se establece en uno. Si lo configuro a menos
uno y hago clic en Reproducir aquí y hago clic en, o puedes ver ahora
se mueve hacia atrás. Cuando éste es uno,
avanza, y cuando es menos
uno, se mueve hacia atrás. Este es el valor de acción aquí. Podemos hacer clic derecho en esto
y dividir el pin de estructura. O puedes tomar esto y romper vector dos D. Esto es
en realidad lo mismo. Sólo voy a
darle click derecho y decir estructura dividida. Ahora para esta x, puedes
agregarla aquí al valor de la escala. En cambio, cuando haces
clic en, avanzas. Cuando haces clic en, te mueves hacia atrás porque
será menos uno. Recuerda en el contexto de
mapeo de entrada, escribiste el modificador
aquí para el, cuando presionas hacia atrás, escribiste o seleccionaste Negar, que simplemente invierte el movimiento Lo que significa que esto
será menos uno cuando hagas clic en el bien. Este es el movimiento hacia adelante
y hacia atrás. Esto ya está terminado ahora para la izquierda y la derecha,
muy, muy simple. Puedes copiar esto y
pegarlo y conectarlo aquí. Entonces para la dirección de la palabra, puedes escribir acorrightvector Y ya puedes conectarlo. Y ahora puedes conectarlo para la y sobre en el valor de la escala. Ahora recuerda
organizar tu código. Puedes hacer doble clic aquí
para hacer un nodo de reencaminar. Solo trata de mantenerte organizado. Haga doble clic en este también. Trate de mantenerse organizado. Así como así. Siempre es
agradable mantenerse organizado porque puedes
imaginar que tu código será muy grande más adelante. También puedes seleccionar
todo y hacer clic en C en el teclado
para crear un comentario. Por ejemplo, puedes escribir movimiento
WASD y así sucesivamente. Por ahora no lo voy a hacer, voy a hacerlo un poco más tarde. Sí, este fue el movimiento. Ya puedes compilar
y hacer clic en play. Pero en lugar de jugar
dentro de la ventana gráfica, creo que es más fácil para
ti para esta vista si juego en el editor
en una nueva ventana del editor, haciendo clic aquí arriba,
nueva ventana del editor, y va a
aparecer así Ahora puedo jugar ahora déjame en realidad solo
hacerlo un poco más grande. Haga clic en jugar, haciéndola más grande. Se puede ver ahora cuando hago
clic en, sigo adelante. A medida que me muevo hacia atrás, si hago clic en D, me
muevo hacia la derecha. Y si hago clic en,
me muevo a la izquierda. Ahora puedo mover mi personaje
con mi teclado. Muy, muy agradable. No obstante, ahora mismo todavía
no podemos mover el ratón. Tenemos que agregar el
código para eso también. Puedes hacer clic derecho aquí de nuevo. A este le llamamos IA
look Input action. Tenemos que usar ese evento. Ahora puedes hacer clic derecho
y escribir una mirada. Y luego podemos
seleccionar ese evento. Ahora para buscar, tenemos que usar algo llamado agrega tu entrada, esto es mirar a izquierda y derecha. Y entonces tenemos el segundo
llamado pitch Insumos, Este de aquí, este se mueve
o mira hacia arriba y hacia abajo. Muy sencillo otra vez,
haz clic derecho aquí, divide
el alfiler troceado. Adelante y conecta la
x aquí y la Y aquí. Y eso fue todo por
esto muy sencillo, por mirar arriba y abajo e izquierda y derecha
con el ratón. Vamos a compilar y
vamos a hacer clic en play. Y voy a mover mi ratón. Ya ves que puedo
moverlo de derecha e izquierda. No puedo moverlo hacia arriba y hacia abajo. Esto
en realidad está en el brazo de resorte. Si hago clic en el brazo de resorte, tengo que tomar este llamado
uso al control de rotación. Ahora puedo hacer clic en Reproducir. Y ahora puedes ver que puedo moverme arriba y abajo,
izquierda y derecha. Sin embargo, cuando me
muevo hacia arriba y hacia abajo, en realidad está invertida
en comparación con lo que estoy acostumbrado. No estoy acostumbrada a moverme hacia arriba y
hacia abajo al ratón así. Estoy acostumbrado a
tenerlo todo lo contrario. Vamos al contexto de
mapeo de entrada por aquí en el mouse Xy aquí. Para el modificador,
voy a agregar un nuevo modificador y a la derecha negar, quiero invertir mi movimiento Y para el mouse haciendo clic
en la flecha pequeña Para los negados,
voy a quitar la X
y la Z. no quiero
invertir la X y la Z, solo
quiero invertir la Y. Así que de nuevo, sólo
voy a dar click en play Y ahora cuando me muevo hacia arriba y
hacia abajo, en realidad es correcto. Entonces ahora cuando me muevo hacia arriba y
hacia abajo, es correcto para mí. Y cuando miro a la izquierda y a la derecha también es
correcto. Todo bien. Entonces este fue el movimiento. Y nuevamente, si algo es la forma opuesta a lo
que estás tratando de
moverte, siempre puedes
entrar de aquí usando el negate e intentar
invertir el movimiento Y cuando todo es correcto, este fue el movimiento muy, muy sencillo para nuestro personaje. Ahora podemos movernos y
mirar con el ratón. No obstante, nos
falta la animación. Y vamos a trabajar con
eso en la siguiente lección. Así que adelante y guarda
todo, y sigamos adelante.
20. 3.09 Importa las animaciones del jugador: Ahora que hemos terminado
el movimiento del jugador, ya
estamos listos para agregar algunas
animaciones en esta página web. He incluido para ti
algunos materiales del curso. Siga adelante y descargue los materiales de la
corte y
probablemente obtendrá esta carpeta de
materiales del curso como una carpeta Sip. Solo asegúrate de extraer el contenido de la carpeta Sip. Ahora lo que podemos hacer aquí es entrar dentro de la carpeta Animaciones de Counter
Strike. Este es un proyecto de Unreal
Engine. He agregado todas las animaciones para ti que necesitas usar
para el juego. Si solo sigues adelante y
abres este proyecto, cuando hayas
abierto este proyecto, esto es lo que verás. Tienes esta carpeta de animaciones. Dentro de aquí están todas las animaciones que
necesitas para hacer el juego. Tienes algo de desplazamiento de animación cuando estás apuntando
el arma y así sucesivamente. Para este, hagamos clic derecho en la carpeta de animaciones y
luego seleccionemos migrar. Por cierto. Otro consejo aquí. Si hace clic con el botón derecho en un
archivo en lugar de una carpeta, la migración se encuentra en Acciones de
activos, y luego está aquí migrar. Esto es si quieres
migrar solo un archivo, pero queremos migrar toda
la carpeta. Haga clic derecho y migre. Y solo dale bien, aquí de nuevo, vamos a
migrarlo a nuestra carpeta de contenido. Si vas al Multiplicar
Shooter, esta es mi carpeta. Está dentro de los contras, strike project y luego ins
content dentro del contenido. Aquí, nuevamente, solo selecciona
la carpeta de contenido, selecciona cualquier
otra carpeta, de lo contrario no funcionará. Sólo tienes que seguir adelante y seleccionar
la carpeta de contenido. Seleccionar carpeta, y
extraerá todas
las animaciones o más
a nuestro propio proyecto. Ahora que hemos
terminado de migrar, volvamos a
nuestro propio proyecto Dentro de aquí, puedes ver que
ahora tenemos el proyecto de animaciones, y tenemos todas
estas animaciones que hemos migrado Ahora vamos
a transferir todas estas animaciones a
nuestro propio personaje. Y posteriormente podremos eliminar estas dos carpetas
que importamos. Además, para estas dos carpetas, en realidad
voy a
hacer clic y arrastrarlas al mercado solo para
que sea un poco más limpio. A veces cuando arrastras
carpetas de una a otra, y puedes ver en el
mercado, ahora están aquí. Sin embargo,
todavía están por aquí, y solo son carpetas vacías. No borró.
Lo que puedes hacer, puedes seleccionarlos, presionar eliminar en tu teclado, y puedes ver que son redirectores de
objetos Simplemente puedes ignorar eso
y seguir adelante y eliminarlo. Ahora puedes ver que
todavía no está borrando. Ocurre a veces
en Unreal Engine. Puede hacer clic con
el botón derecho en la carpeta de contenido y hacer clic en Reparar redirectores, y luego puede
intentar eliminar nuevamente Si no borra, normalmente solo sigo adelante y
cierro el proyecto. Y luego entro
de mi propio proyecto aquí y la carpeta de contenido y solo
los borro de aquí. Solo asegúrate de
haberlos
transferido a la
carpeta Marketplace como puedes ver aquí. Sólo voy a eliminar estas carpetas vacías de
la carpeta de contenido, y luego voy a
abrir mi propia carpeta. Nuevamente, esto sucede
a veces en Unreal Engine. Bien, entonces aquí volvemos a estar
dentro del proyecto, y ahora que hemos
importado nuestras animaciones, y las vamos a transferir
a nuestro propio personaje. Y luego vamos a eliminar estas dos carpetas más adelante, pero pasemos
a la siguiente lección.
21. 3.10 Crea equipos de IK: Antes de poder copiar las animaciones a
nuestro propio personaje, tenemos que crear
algo llamado una plataforma K. Pasemos a los planos. Y vamos a ir a la
carpeta del reproductor aquí voy a click
derecho y hacer una nueva
carpeta llamada Animaciones. Y luego dentro de esta carpeta, podemos ir a animaciones. Aquí, aquí abajo
vemos algo llamado K. Entonces tenemos que seleccionar esto en el amarillo
llamado K rig. Normalmente los llamo,
llamemos a este maniquí. Maniquí es el nombre del
otro personaje que
vamos a copiar las animaciones
del maniquí K. Ahora puedes hacer doble
click e inter aquí. Y lo que puedes hacer
aquí ahora tienes que seleccionar una malla esquelética
que quieras usar Voy a usar
aquí este maniquí del que necesitamos
copiar los artículos Puedes seguir adelante y
seleccionar esta. Se puede ver que se llama en
esa carpeta de referencias 01. Si puedes ver esa información ahí
abajo en el enlace, si sigues adelante y das click en ella. Ahora este es el Maniquí, vamos a crear un rig
IK para muy sencillo Por aquí en la interfaz IK
rig
tienes todas las
animaciones como
puedes ver aquí en el navegador de
assets. Si puedes hacer doble clic sobre ellos, puedes ver las
animaciones aquí en
la ventana de retargeting IK Aquí hay que
especificar los huesos de este personaje y
luego también tenemos que especificar los huesos de
nuestro otro personaje. Y entonces de esa manera
podemos copiar animaciones de este
personaje al otro. Porque hemos
definido los huesos y motor
honoral sabe
copiar las animaciones Ahora sólo voy a dar click en reiniciar solo para que se
queden quietos. Aquí en el IK re targeting. Lo que tienes que hacer es crear una nueva cadena. la primera cadena a la que
vamos, sólo vamos a llamarla cabeza. Adelante y llámalo cabeza. En este momento no necesitamos
seleccionar nada, solo encadenar. Así como así. Bien, ahora
tenemos uno llamado cabeza. Sigamos sumando
los otros. Voy a golpear una cadena de nuevo. Y esta va
a ser llamada izquierda, izquierda, Y luego seguir adelante y crear una nueva llamada, derecha. Después crea uno nuevo, Leg left. Crea una nueva
llamada pierna, ¿verdad? Entonces podemos crear
una nueva llamada columna vertebral y
una última llamada raíces. Bien, entonces estas son todas las
cadenas que necesitamos crear. Cabeza, izquierda, pierna derecha, pierna
izquierda, columna derecha y raíz. Ahora hay que especificar dónde comienza la cabeza
y dónde termina, el hueso inicial y el hueso final. Lo que puedes hacer
aquí, y de una manera
muy, muy fácil, ahora
sé que se llama. Si buscas aquí cuello, entonces puedes seleccionarlo aquí
y termina en la cabeza. Ahora sé esto porque lo
he hecho 100 veces. No obstante, si eres
nuevo aquí o si
tienes un nuevo personaje con huesos
diferentes,
porque recuerda, si tienes un artista haciendo esto por ti de manera personalizada en
un software de tres D, ellos pueden llamarlo como
quieran Hay que saber
cómo se llama. Estos son solo los
nombres de los huesos que suelen entrar en motores reales. Sé cómo se llaman. Qué puedes hacer aquí
para poder ver sus nombres sin
saber realmente cómo se llaman. Aquí puedes hacer clic en
Mostrar realmente el personaje aquí. Da click en Carácter y ve a Huesos y selecciona todo Jerarquía. Esto lo hace para que puedas ver todos los huesos
de este personaje. Lo que puedes hacer aquí,
puedes hacer click aquí abajo. Ahora puedes ver que se
llama Neck 01. Mi cabeza empieza desde el cuello 01. Si hago clic aquí arriba, a esta
se le llama cabeza. El hueso final es la cabeza. Ahora
hagámoslo por el brazo izquierdo. Ahora este es el brazo izquierdo aquí. Si estamos de pie así,
este es el brazo izquierdo. Si puedes hacer click
en el brazo izquierdo, empieza en el clevical, a la izquierda sobre el hueso de inicio es Levical dejó el No es realmente el final
aquí en los dedos, sino donde empieza la mano, si haces clic aquí arriba, dice mano izquierda. El hueso final aquí. Vamos a seleccionar
había dejado, así como así. Se había ido como el final. Ahora por la derecha,
es lo mismo. Es solo Levi Coal, ¿verdad? Y luego la mano derecha
para la pierna otra vez, puedes probarla como ejercicio, puedes pincharla en algún lugar de aquí
arriba. Este es el muslo. Comienza desde el muslo aquí, buscando th
solo voy a copiar esto. Muslo a la izquierda, y voy
a pegarlo por aquí en la pierna derecha para que quede
muslo izquierdo. Muslo derecho. La pierna termina aquí abajo. Si haces clic en él, termina en el pie seleccionador izquierda
y abajo aquí, pie derecho. Ahora el último, columna vertebral,
esto es muy fácil. Es la columna media de aquí. Comienza desde la columna uno
y termina en la columna tres. Este es uno fácil. Buscando columna vertebral,
se puede ver que parte de la columna vertebral uno y
termina en la columna tres. La raíz se llama simplemente raíz. Puedes buscar raíces, solo llámalo root aquí
también. Raíz, raíz. Esto es lo mismo,
Es solo el hueso aquí arriba, El hueso de la raíz aquí abajo. Ahora ya terminamos con el
retargeting de este personaje. Y lo que puedes hacer es que puedes clic
derecho sobre la pelvis
aquí. Muy importante. Ahora haga clic derecho en la pelvis
y seleccione establecer raíz objetivo. Esto estabilizará
este personaje. Y siga adelante y haga clic en Seguro. Bien, ahora que hemos
terminado con este, lo que podemos hacer ahora es que
podemos seguir adelante en la carpeta de
animaciones. Encuentra tu IK Ric que acabas de hacer. Puede hacer clic derecho y luego realmente
puede duplicar esto. Déjenme llamar a este jugador K.
Este es el jugador. Ahora en lugar de hacer
cualquier cosa aquí, lo que puedes hacer es
simplemente seleccionar al jugador. Ahora por ejemplo, se puede seleccionar
este macho undaterroristk. No tienes que volver a hacerlo. Se puede ver que ya está ahí. Todo está bien.
Todo está bien. Ya está establecido como la ruta de retarget porque lo
hicimos para la otra Podemos cerrar esta, pero ahora tenemos
estas dos plataformas IK Con eso terminado,
pasemos a la siguiente lección y
creemos la retargeta IK
22. 3.11 Crea un redireccionador de IK: Ahora sigamos adelante y
creamos el IK Targeta. Vamos a la derecha, mira
aquí, dos animaciones. Y luego selecciona de nuevo el K C. Y seleccione el segundo
llamado IK Targeta. Porque ahora estamos listos para copiar las animaciones de un
personaje a otro, creando el retarget K. Voy a llamarlo IKR. Vamos a llamarlo
jugador por ahora, IKR. Vamos a abrirla. Ahora te va a
preguntar de qué IK Rick quieres copiar
animaciones. Quiero copiar animaciones de mi maniquí en las que
tenemos las animaciones Y quiero copiar animaciones a mi reproductor así como así. Se agregará estos dos caracteres
para usted automáticamente. Ahora se superponen por
aquí en la malla objetivo. Desplazar la x aquí. Voy a hacer click
y arrastrar y simplemente mover a este personaje
fuera del camino, algo así como 175
aquí en el eje x. Para que pueda verlas a las dos. Ahora dentro de la
tageta IK, puedes ver, ahora
puedo ver todas
las animaciones
aquí abajo en la cadena o
en el navegador conjunto En el mapeo de cadenas, se pueden
ver las cadenas que creamos
para que funcione correctamente. Y generalmente lo hace
correctamente de forma automática, solo asegurándose de
que la raíz para la cadena objetivo,
que es esta, la misma que la raíz de origen se empareja con la
raíz, y la columna vertebral se empareja
con la columna vertebral, y así sucesivamente. Solo asegurándose de que
la pierna derecha, por ejemplo, no
esté emparejada con la columna vertebral.
Eso va a estar mal. Deben ser emparejados con el mismo hueso o cadena
que creamos. Por lo general, Unreal Engine
lo hace automáticamente correctamente. Pasemos
ahora
al navegador ácido , estas son las animaciones. Si haces clic en uno de ellos, por ejemplo, vamos a seleccionar
este caminar ¿verdad? Se puede ver que es casi correcto. En realidad, voy a quitar estos huesos para que podamos
verlo más correctamente. Si hago clic en Huesos de
personaje y seleccioné solo ahora
es casi correcto. No obstante, los brazos
son muy raros, lo contrario todo lo
demás
parece funcionar correctamente. Podemos copiarlo casi sin embargo necesitamos
corregir algo aquí. Voy a hacer click en Detener. Yo creo. Aquí,
sí, da clic en Detener. Detendremos la animación. La razón por la que no está
copiando correctamente es porque la posición para este personaje necesita ser la misma
posición para este personaje. Y se puede ver que el brazo
no está en la misma posición. Por eso está creando una era con los brazos. En esta animación,
voy a golpear Detener aquí. Lo que podemos hacer es
seleccionar uno de los huesos. Nuevamente, da clic en los
huesos del personaje, todos en jerarquía. Para que pueda ver todos los huesos, y aquí están
para estos huesos. Ahora lo que podemos hacer es hacer
clic en el modo Editar. El modo de edición
nos permite editar la pose
de este personaje. Ahora puedes seleccionar uno de
los huesos, por ejemplo. Simplemente puedes probarlo, Selecciona éste,
intenta girarlo. Puedes ver que este no es
el que debes rotar. Puede hacer clic en el
control Z para volver atrás, y puede seleccionar el siguiente. El siguiente aquí. Si solo lo
rotas hacia abajo, así así, pienso algo así
como 50 grados. Creo que 40 grados
es un poco demasiado. A lo mejor podemos probar
-50 grados de esta manera. Para el otro, voy
a hacer clic en el mismo hueso y luego girarlo -50 grados, así
como así.
Al igual que este tipo. También se puede ver que este tipo tiene una rotación en
el hueso por aquí. Yo también tengo que hacerlo
por aquí. Tengo que dar click
aquí sobre este hueso. Entonces puedo girarlo
tal vez como 30 grados. Y sólo trata de
comparar estos dos. También haciendo clic en el otro, girándolo 30
grados, así como así. Solo trata de echar un vistazo desde arriba y comparar
estos dos personajes. Bien, creo que
se ven igual. Vamos a probar la animación y ver si realmente está funcionando. Voy a salir
del modo de edición. Voy a esconder
los huesos otra vez, sólo para ver cómo se
ve sin los huesos. Y luego voy a dar click
en una de las animaciones. Por ejemplo, en realidad vamos seleccionar uno donde esté
caminando o corriendo. Eso es un poco mejor a la vista. Se ve que las manos
es un problema en estos momentos, y creo que eso es porque
giramos demasiado los brazos hacia abajo. Volvamos de nuevo
en el modo de edición. Voy a ver todos los huesos, después voy a dar
click sobre este hueso y girar un poco el brazo
hacia arriba. Probablemente el tema, lo
rotamos un poco demasiado hacia abajo Ahora
echemos un vistazo. Volvamos del modo
de edición. Da click en el frente aquí, déjame simplemente quitar
el hueso para que pueda ver cómo se ve
probando otras animaciones. Se puede ver que todo
está funcionando correctamente. No obstante, el error aquí
es ahora mismo son las manos, realidad no
están
funcionando correctamente. Sólo para asegurarme de que
todo esté correcto, voy a detener las
animaciones y voy a echarle un vistazo desde
la perspectiva. Aquí. Desde la vista correcta. Simplemente echando un vistazo a
estos dos personajes, solo asegurándome de que
todo se vea correcto. También yendo a la vista frontal y asegurándose de
que todo esté correcto
para poder verlo mejor. Aquí podemos volver a hacer clic en
el personaje, Huesos, y luego en toda la jerarquía. Para que podamos ver todos los
huesos y aquí están. Se puede ver que hay
una pequeña diferencia. Si puedes hacer clic en uno de los brazos y luego establecer el
ajuste para la rotación, voy a configurarlo en cinco
y luego ir al modo de edición Entonces déjame solo
rotarlo aquí un poco. Entonces voy a girarlo ligeramente solo para que casi le
quede la otra mano. Algo como esto aquí. Puedes dar click en el otro, y tampoco en este,
este de aquí arriba. Y gírela para que
se ajuste a la otra también. Ahora puedes volver a
la vista en perspectiva, echar un vistazo a estos personajes. También puedes
echarle un vistazo desde la vista superior para ver cómo
se ven ambos. Y si se ven iguales, creo que en su mayor parte en realidad
se ven iguales. Volvamos ahora al modo
perspectiva. Lo que tenemos que hacer es
que en realidad necesitamos
arreglar las manos
porque no se ven bien. Sólo podemos intentar
ejecutar una animación. Por ejemplo, el caminar hacia atrás a la izquierda. Y voy a quitarle todos
los huesos para poder verlo. Se puede ver que se ven
bien. Ambos. No obstante, las manos están
un poco estropeadas. Entonces tenemos que arreglarlo.
Pasemos a la siguiente lección y arreglemos las manos antes de
copiar las animaciones.
23. 3.12 Arregla las manos: Ahora sigamos adelante
y arreglemos los dedos. Antes de copiar las animaciones, hagamos doble clic en este
maniquí K rig Ya he añadido las cadenas. Puedes ver aquí, hay que
agregar cadenas también
para los dedos. Si quieres que los dedos funcionen igual que las otras
partes del cuerpo, solo tienes que seguir adelante y
agregar los mismos. El pulgar aquí, este pulgar aquí. Y luego tienes el
dedo índice, el dedo medio, el dedo anular, y
luego el rosa aquí. Hay que agregarlos,
todos de nuevo,
pulgar izquierdo, pulgar
derecho, índice izquierdo, índice derecho, izquierdo, medio derecho,
anillo,
izquierdo, anillo, derecho y meñique
izquierdo y meñique, Sólo tienes que seguir adelante y
agregarlos. Sólo voy a mostrarte los dos primeros sobre
cómo puedes encontrarlos de nuevo, y luego voy a
sumar el resto de ellos. El primero aquí, el pulgar, puedes dar click sobre
el primero aquí. Se puede ver que este es
el pulgar 01, ¿verdad? Puede hacer clic aquí y
buscar el pulgar. Se puede ver que comienza
con el pulgar 01. Este es el de la izquierda. Tenemos que seleccionar el pulgar. 01, Izquierda, pulgar derecho. Termina en el pulgar 03, izquierda. También puedes dar click
aquí para ver el nombre, pero es muy fácil
para estos dedos, el mismo derecho, puedes buscar pulgar,
seleccionar el correcto. Termina en el 033, por aquí en el
dedo índice, puedes hacer click sobre él. Comienza con el índice 01. Se puede ver por las manos, en realidad
son sencillas. Si simplemente da clic aquí
y busca índice, puede ver el índice
01 para la izquierda, uno para la derecha, 1203 para el derecho 101203, uno izquierdo y uno derecho. Por aquí en el dedo medio, puedes hacer clic en
el dedo medio. Comienza con el 01 medio. Yo sólo voy a seguir adelante
y agregarlos todos aquí. Ahora los he agregado todos y podemos seguir adelante
y dar clic en Guardar. Y puedes
verlas todas aquí. Justo como lo que hicimos aquí arriba. Bien, entonces ahora lo que puedo hacer, puedo cerrar esto. Ahora en vez de agregar lo
mismo por aquí, sólo
voy a eliminarlo. Yo sólo voy a
borrar esta. Y haciendo clic en Bien. En realidad te va
a dar una época porque se agrega
a esta plataforma IK. Yo solo voy a eliminar
esta plataforma IK también. Ahora dice que aquí hay algo corriendo y no
estoy seguro de lo que quiere. Estoy tratando de salvar el proyecto. Al hacer clic en la
carpeta de contenido, arreglar redirectores, volver a las
animaciones del reproductor e intentar eliminar De hecho, eliminemos este. K jugadores me van a dar esto. De hecho voy a
cerrar el proyecto e intentar abrirlo de
nuevo para ver si funciona. Bien, aquí estamos otra vez. Voy a borrar esta. Y ahí va.
A veces Unreal Engine te
da algunos errores aleatorios No eliminemos el objetivo de IK, solo
hagamos que se quede aquí. Voy a
hacer clic derecho y duplicar mi maniquí IK y llamarlo jugador
IK como antes, entrar de aquí
y simplemente cambiar este maniquí con nuestro
propio antiterrorista Así como así, todo
está bien. Nosotros con guardar. Volvamos al objetivo de IK. Ahora mismo para el retarget de IK, asegúrate de que el maniquí IK sea la fuente y que el
objetivo sea el jugador Entonces todo se ve
bien. Vamos a intentarlo de nuevo. Intentemos ejecutar una animación. Si caminamos hacia atrás a
la izquierda, por ejemplo. Y solo voy
a esconder todos
los huesos para poder
ver realmente lo que está pasando. Se puede ver que tampoco se
ve bien. Sospecho que las
cadenas no están mapeadas. Si haces clic en
el mapeo de cadenas, tal como te dije antes, tienen que ser similares, puedes ver que en realidad
no son lo mismo aquí,
tengo que vincularlos. En lugar de hacerlo manualmente, intenta dar click aquí y
haz clic en Mapa Todo Exacto. Y puedes ver que los
mapea todos para ti. Ahora veamos cómo
se ve. Ya puedes ver
que es mucho mejor. En realidad es sostenerlo,
igual que el otro jugador, no solo sujetando los
dedos al azar. Aquí están, arreglamos
el mapeo de cadenas. Ahora puedes ver que la mano para este jugador está torcida,
como puedes ver aquí. Está retorcido por aquí. Sin embargo, en
realidad no es tu problema, es solo cómo se hace el
personaje. Se puede ver que está un poco
desordenado en esta parte del brazo. Está bien. No eres realmente tú quien ha hecho
algo malo. Juguemos un par
de animaciones solo para
asegurarnos de que todo esté
correcto antes de continuar. Y solo echándole un vistazo
y todo se ve bien, incluso se
puede ver que
este dedo en gatillo se sostiene correctamente, igual que este otro dedo
gatillo también. Bien, así que siempre nos puede gustar, si quieres que los brazos y las manos sean 100%
como este jugador, igual que
antes te lo dije antes, puedes ir a editar, mover
ligeramente los
dedos alrededor si
deseas recordar hacer clic
en los huesos del personaje y toda la jerarquía y
puedes intentar
moverlos un poco si hay algo con lo que
no estás satisfecho. Y luego puedes seguir adelante
y simplemente reproducir una animación. Echa un vistazo a cómo
se ve, pero creo que por ahora
esto se ve muy bien. Antes puedes imaginar, o puedes recordar, que los
brazos volaban hacia arriba. Ahora todos están bien y los dedos están funcionando también. Bien, entonces con eso, hagamos
clic en el personaje. De nuevo, voy a esconder todos los huesos porque en
realidad ya no necesito verlos. Y ahora vamos a guardar el proyecto, y pasemos a la siguiente lección donde
copiamos las animaciones.
24. 3.13 Retargeting de las animaciones: Ahora estamos listos para copiar
sobre las animaciones. Pasemos al IQ Targeta. Dentro de aquí, se puede ver cuando hago clic en las animaciones, igual que en la lección
anterior, todo está funcionando bien. Ahora estamos listos para copiar
todas las animaciones. Lo que puedes hacer,
esto es muy sencillo. Puedes hacer clic en el
primero y bajar seleccionar el último y
simplemente seguir adelante y hacer clic en las animaciones seleccionadas. Ahora tienes que seleccionar una carpeta donde quieras
guardar estas nuevas animaciones. De hecho voy a
crear una nueva carpeta. Para mantenerme más organizado, voy a hacer una nueva
carpeta y llamarla Activos. Esto es lo que suelo
hacer por mis juegos. Puedo escribir click
aquí y sigamos
adelante y llamemos a las nuevas animaciones de
carpetas. Y luego puedes seguir adelante
y dar click en Exportar. Y ahora estamos exportando
estas animaciones aquí, y ahora está terminada. Ahora bien, si minimizo y repaso
a mis animaciones assets, ahora puedes ver
que están todas aquí. Si solo hago clic en una de ellas, puedes ver que está trabajando
con nuestro personaje. Esto se ve muy bien. No, no creo que sean todas las animaciones
que puedo ver aquí. Y esto es porque
no están usando el mismo maniquí. Si vuelvo a, veamos aquí, el jugador y si vuelvo a
mi K targeta, este maniquí de aquí,
puedes ver si sostengo mi K targeta, este maniquí de aquí, el mouse sobre
él, está usando la malla esquelética de la carpeta
de referencia 01 Puedes ver aquí ahora mismo son solo las animaciones
para la pistola. Puedo ver que por aquí en
la carpeta de animaciones assets, hemos copiado todas las animaciones de
pistola. Se puede ver al final se
les llama pistola. Sin embargo, sí tenemos
más animaciones. Puedes ver si vas a
la
carpeta de otras animaciones que importamos, tienes el desarmado
y también el rifle No los podemos ver.
¿Y por qué es eso? Sólo podemos ver las de pistola. Esto se debe a que
los otros en realidad están usando otros maniquíes
para el rifle Si solo sostienes
el mouse sobre él, puedes ver que está
usando el esqueleto
de la carpeta de referencias 02, en
realidad está usando
otra Manequin Lo que podemos hacer es
volver
al maniquí K dentro de aquí Podemos dar click en éste. Si solo sostienes el mouse sobre los otros maniquíes
que tengas, por
ejemplo, este, dice que este es de la carpeta de
referencias 02 este momento estamos usando el
maniq de las referencias 01, haciendo clic en el segundo maniquí Ahora adelante y haz clic en Guardar. Pasemos al objetivo K. Ahora se puede ver en las animaciones todavía
hay la pistola. Lo que tenemos que hacer
es simplemente hacer clic en esta flecha solo para restablecerla. Después voy a hacer clic de nuevo
y seleccionar el maniquí IK. Y seguir adelante y golpear Guardar. Ahora puedes ver que ya no es
la pistola, son todas las animaciones de rifle para seguir adelante y seleccionar
todas las animaciones de rifle. Exportar animaciones seleccionadas. Y voy a
volver a exportarlos en la carpeta de animaciones. Adelante y exportarlos cuando
hayan sido exportados. Voy a volver
a mi maniquí IK. Voy a seleccionar
el Maniquí de la
carpeta referencias 03, puedes guardar Regresa a la Ktageta. Voy a hacer clic en la flecha nuevamente aquí arriba para restablecerla. Entonces voy a seleccionar de nuevo
el maniquí, y solo asegurarme de que al final diga
UA, lo que
significa Estas son todas las animaciones
desarmadas. Y puedes pinchar sobre él para
ver cómo se ve. Adelante y selecciona
todos de nuevo. Y continúe y haga clic en
Exportar animaciones seleccionadas, y vuelva a exportarlas en la
carpeta de animaciones. Golpear Exportar. Ahora vamos a cerrar todo, y echemos un vistazo a
la carpeta de animaciones. Ahora tienes todas las
animaciones aquí. Para que veas cuando
haces clic en ellos, se ven un poco tontos. Y esto no es porque
hayamos hecho algo mal, en realidad
es la animación la que se ve un poco tonta, en mi opinión, Pero está bien. Realmente no tenemos
mejores animaciones. Y estos son gratis,
y podemos usarlos. Así que puedes ver aquí todas estas animaciones
realmente, muy bonitas. Y podemos usarlos
para crear nuestro juego. Bien, entonces ahora todo está
funcionando para el personaje. Y se puede ver que todo
se ve genial. Y a veces podemos ajustar
algunas de estas animaciones. puede ver cuando mira al
suelo, es demasiado en el
suelo, en mi opinión. Y podemos ajustar eso más adelante. Pero se puede ver que todo
está funcionando bien. Y así es como se copian animaciones de un
personaje a otro. Así que sigamos adelante y golpeemos Guardar, y pasemos
a la siguiente lección.
25. 3.14 Introducción a Blend Spaces: Bien, así que sigamos adelante
y creamos un espacio de mezcla. Y un espacio de mezcla solo se usa para combinar dos
animaciones juntas. Y podemos usar eso en el plano de
animación. Más tarde. Se puede ver yo solo
seguí adelante y coloreé mi carpeta de planos solo
para verla o localizarla más rápido De nuevo, recuerda que puedes hacer esto seleccionando todas
estas carpetas. Haga clic derecho en Ir a Establecer color, y luego haga clic en Nuevo color
y solo seleccione el color. Así es como pones
colores en las carpetas. Ahora, dentro de la
carpeta de planos en las animaciones. Sigamos adelante y haga clic
derecho aquí. Ve a Animación y selecciona
este llamado espacio de mezcla. Nuevamente, un
espacio de mezcla es donde
puedes combinar dos
animaciones juntas. Por ejemplo, la animación inactiva
y la animación de ejecución. Podemos utilizarlos más adelante
en el plano de animación. Sigamos adelante y
creémoslo por ahora. Ahora te pide que
escojas un esqueleto. Tienes que escoger el
esqueleto para tu personaje. Para este voy a
seleccionar el estilo MW. Este es el antiterrorista
y este es el terrorista. Voy a seleccionar
al antiterrorista porque recuerden en
las animaciones que en
realidad reorientamos las animaciones a este antiterrorista Voy a seleccionar el esqueleto
antiterrorista. Llámalo BS por espacio de mezcla. Entonces sólo voy a
llamarlo correr después de eso. Normalmente lo llamo, por ejemplo, éste voy a hacer los
espacios de mezcla desarmados porque más
adelante vamos a
hacer la carrera con el rifle y la carrera
con la pistola también A éste se le llama correr armado. Vamos a hacer doble clic en
él cuando lo abras. Este es el espacio de mezcla. Por aquí a la izquierda, tienes un panel de detalles dentro de aquí. Se pueden hacer cosas como
suavizar la animación, la velocidad de
movimiento,
la dirección , etc., pero
vamos a trabajar más
con eso más adelante. Aquí abajo, muy, muy
importante, tienes una gráfica. Y aquí agregas todas
tus animaciones. Aquí es donde combinas
las animaciones, y lo vamos a hacer en la siguiente lección
a la derecha. No te preocupes demasiado por ello. Realmente no tenemos mucho que
hacer dentro de aquí. Pero aquí abajo se pueden ver
todas las animaciones. Si solo haces doble clic en uno de ellos, por
ejemplo éste, haz
doble clic en éste, puedes ver todas las
animaciones aquí dentro de este reproductor de
animación. Si haces doble clic en
él, podrás ver que estás fuera del espacio de mezcla. Ahora no puedes ver esta gráfica
si solo te desplazas por ahí. O bien puedes simplemente abrirlo de nuevo aquí haciendo clic aquí. Pero ahora también se puede ver
con las animaciones. Se puede ver aquí
abajo. Este es el color para el espacio de mezcla. Puedes hacer doble clic en él y abrirlo de nuevo,
así como así. Muy, muy sencillo.
Así es como lo hacemos. Y podemos, por ejemplo,
hacer clic y arrastrar una animación. En realidad no
usemos estos. Estos son un desplazamiento. Usemos estas animaciones. Vamos a trabajar con
el offset de Aim más adelante. Vamos a trabajar con
una de las animaciones. Puede hacer clic y arrastrar,
colocarlos en la gráfica. Y entonces se puede ver que este tipo ahora camina automáticamente. Y puedes arrastrar
otra animación y simplemente colocarla en algún lugar. Y ahora se puede ver
que en realidad se están fusionando. Si mantienes el control en tu teclado y solo mueves el mouse
de aquí a aquí, puedes ver que
ahora se están fusionando. Bien, realmente genial. Por ahora, esto era sólo un ejercicio. Hagamos clic en éste, haga clic
en Eliminar en el teclado. Da click en éste, haz clic
en Eliminar en el teclado. Sigamos adelante y ahorremos. Y comencemos desde
la siguiente lección, donde agregamos espacios de
mezcla desarmados
26. 3.15 espacios de mezcla sin armas: Ahora estamos listos para crear los espacios de lentes desarmados.
Empecemos por aquí. Con lo que suelo empezar es por aquí en
el panel de detalles. Tenemos un eje horizontal
y un eje vertical. Si simplemente da clic en
las flechas pequeñas, podrá ver toda
esta información. Por lo general en el eje horizontal, tenemos la dirección del movimiento. Sólo tienes que seguir adelante y
llamarlo dirección de movimiento. También se puede ver
que cambia de nombre. Aquí abajo aquí arriba
tenemos la velocidad de movimiento. Este es el eje vertical. Vamos a llamarlo velocidad de movimiento. Ahora para la dirección del movimiento, vamos de un valor mínimo
a un valor máximo. El mínimo es
menos 180 grados, el máximo es de 180 grados. Es así como podemos
girar 360 grados. Ahora para la velocidad de movimiento, por lo general lo que hago aquí, por ejemplo, esta
es la carrera. Si pasamos al personaje, si hacemos clic en el jugador y hacemos
clic en la base de jugadores, dentro de la
base de jugadores, hacemos clic en el componente de movimiento. Aquí se puede ver que
la velocidad máxima de caminata, que también es la velocidad de carrera, es de 600 en este momento. Por lo general, lo que hago es colocarlo aproximadamente la mitad de lo que aquí
está escrito. Porque si escribes 600, entonces tienes que
alcanzar la velocidad de
600 antes de poder hacer la transición
completa a esa animación. Quieres hacer la transición a
la animación de carrera, suelo escribir 300 porque cuando llego a
la velocidad de 300, lo cual hago muy rápido
porque mi velocidad máxima es 600, luego hago la transición a la velocidad de
carrera mucho más rápido. Normalmente solo lo hago
más bajo de lo que es. Sólo voy a escribir
300 para éste, para la dirección del movimiento. Voy a aumentar
aquí las divisiones de grid porque tengo más
animaciones que cuatro. Voy a escribir
ocho. un movimiento de ocho direcciones. Ya pueden ver aquí
tengo más líneas. Y así es como
queremos que sea. Ahora bien, esto es lo único
que quieres hacer dentro de aquí. Vamos a hacer clic en guardar para
este detalle spanel por ahora. Ahora por aquí en la gráfica, ahora lo que puedes hacer es
ahora mismo queremos hacer la animación de carrera para los desarmados de aquí abajo a
la velocidad de cero Aquí es donde tienes la
animación inactiva a la velocidad de cero. Sólo estamos parados. Ahora, por aquí, si
buscamos ociosos, este llamado ocioso armado. Tomemos esta. Inactiva,
desarmada, vamos a arrastrarla. Y tenemos que
bajarlo aquí, donde la
velocidad de movimiento es cero. Ahora bien, si mantienes el turno en tu
mouse mientras lo
arrastras, puedes ver que encaja a la cuadrícula. Y esto
es lo que quiero. Quiero cortarlo aquí abajo. Si lo colocas, puedes ver el personaje ahora está inactivo
con una animación inactiva Ahora vamos a hacer clic y
arrastrar esto de nuevo. Mantenga el turno para chasquearlo. Simplemente siga adelante y haga clic
y arrástrelo a todos
estos puntos de la cuadrícula aquí abajo. Solo toma la
animación ociosa hasta aquí. Es solo la animación inactiva
porque la velocidad es cero. Ahora por aquí, cuando
la velocidad esté llena, toma la animación de carrera. Si solo busco correr
ahora mismo estamos en el desarmado. Si solo vas aquí,
puedes ver que este
se llama es adelante. B significa al revés. B L por ejemplo significa atrás a la izquierda, y B R significa atrás a la
derecha, y así sucesivamente. Para este queremos
la carrera hacia adelante, pero estando desarmados,
correr hacia adelante aquí Y se puede ver este
llamado desarmado. Puedes arrastrar esta otra vez, mantener el turno, y ponerla aquí arriba. Ahora bien, si sostienes
el control en el teclado y
mueves el mouse, puedes ver que
puedes hacer la transición de la animación de Ale. Y si mueves el mouse mientras mantienes
el control en tu teclado, puedes hacer la transición a este. Se puede ver cómo se ve. Y esto es lo que es
un espacio de mezcla. Ahora por aquí, en
realidad voy a dar click en este botón para
mostrarte los nombres de las muestras, que veas lo que he para que veas lo que he
colocado y te será
más fácil también. Así que por aquí, en lugar
de buscar corrida, en realidad
voy a
buscar desarmado así como así Creo que será
más fácil para mí y puedo ver todas mis animaciones de correr
desarmadas Entonces por aquí a la derecha, tenemos el frente derecho. Este llamado frente a la derecha. Lo voy a dejar caer aquí. Entonces tenemos el
derecho por aquí. Voy a tomar el que
se llama bien. Déjalo caer aquí. Entonces esta está
de vuelta, ¿verdad? Voy a tomar la parte de atrás. Justo al final, en la esquina está
el movimiento hacia atrás. Estoy tomando la parte de atrás
y la pongo aquí para
que veas si tengo el control
y me muevo hacia ella lentamente. Puedes ver que mi personaje
está en transición. Así como así, todo
se ve correcto. Él camina hacia atrás y
luego camina de regreso. Para este es justo
lo contrario de esto. Este es el lado izquierdo, por lo que corriendo de frente a la izquierda. Entonces voy a tomar este de delante a
la izquierda, mantener turno, colocarlo y éste queda a la izquierda. Voy a encontrar a la izquierda
y luego atrás a la izquierda, recogiendo esta llamada atrás a la izquierda y esta volvió a
llamar otra vez. Al igual que en la
otra esquina tenemos el movimiento de espalda aquí y
también tenemos el
movimiento de espalda aquí. Porque estamos dando la vuelta de
360 grados. Bien, entonces esta
es mi animación y todo se
ve correcto. Entonces así es como se
supone que debe ser. Entonces tenemos el movimiento frontal, y luego tenemos
los movimientos de izquierda
y los movimientos de derecha. Y ahora
en realidad estamos terminados con el correr en el brazo, para que
puedas mantener el control. Mira cómo se ve
cuando haces la transición. Ahora tienes que hacer esto con
los otros también. Entonces sólo voy a
compartirte un ejemplo más rápido. Sólo voy a
pasar por ello rápido. Ahora, si solo regresas
a las animaciones del jugador, hagamos clic derecho,
vayamos a animaciones, hagamos un nuevo espacio de mezcla. Selecciona de nuevo el personaje, el esqueleto que
creamos, llámalo PS. Esta vez lo voy a llamar agacharse porque ahora
estamos agachados Y otra vez, llámalo no armado. El último, vamos a hacer
clic derecho de nuevo. Vamos a la animación. Ve al espacio de mezcla,
selecciona el esqueleto. Este S caminar porque ahora estamos caminando
y lo llamamos desarmado Esta la tenemos
que hacer también. Al hacer clic de nuevo en la agachada, por aquí en el eje
horizontal, tenemos la dirección del movimiento Entonces tenemos la velocidad de movimiento. Como el movimiento, estamos
pasando de menos 180 a 180. La división de cuadrícula es de ocho, porque tenemos ocho
movimientos que necesitamos
sumar aquí abajo para
la velocidad de movimiento. Nuevamente, esta es
para los agachados. Ahora, agacharse es mucho
más lento que la velocidad de caminar. De nuevo, puedes regresar si
quieres a la base de
jugadores. Haga clic en el componente de movimiento y eche un vistazo a
la velocidad de agacharse En este momento son 300. Sólo voy a ponérselo a 150, la mitad de eso por ahora. Como más adelante vamos a cambiar todo este
movimiento porque tenemos que poner
a prueba al jugador
en el juego y ver qué tan rápido está corriendo. Y siempre podemos entrar aquí y cambiar este
valor aquí, ¿de acuerdo? Ahora que tenemos eso
por aquí a la derecha, ahora necesitamos esto es el
agacharse, agacharse armado Sólo vamos a
escribir subrayado brazo, tenemos todos estos agachados El primero es el inactivo. Voy a tomar este
, anim agacharse ocioso. Voy a mantener turno,
colocarlo aquí abajo. Simplemente haga clic y arrastre
el mismo
inactivo agachado en todos estos
puntos aquí abajo. Porque nuevamente la velocidad de
movimiento es cero. Sólo estamos al ralentí. A continuación tenemos el movimiento frontal. Aquí vamos a tomar el
frente, frente desarmado. Entonces por aquí está
el movimiento correcto. Este es frontal, derecho,
arrastrando adelante a la derecha. El otro lado es delantero izquierdo, delantero derecho, delantero izquierdo. Entonces tenemos el derecho aquí, el derecho y el izquierdo
está del otro lado. En este está de vuelta a la derecha,
arrastrando hacia atrás a la derecha. En el otro lado está atrás a la izquierda. Y entonces tenemos el
movimiento de espalda en estos lados. Podemos volver a tener el control. Mira cómo se ve.
Todo se ve bien. Adelante y ahorra.
Y yo sólo voy a hacer el último y
me pondré en contacto contigo. Bien, entonces aquí he
terminado el andar y puedo habilitar las etiquetas para que
veas lo que hacía justo antes. Los movimientos de derecha,
los movimientos de izquierda, y también el inactivo aquí abajo. Nada nuevo. Sigamos
adelante y ahorremos, y sigamos adelante
y cerrémoslo. Y aquí tenemos todos
los espacios de mezcla para el movimiento desarmado Ahora más adelante, también
tenemos que crearlo todo de nuevo para el
rifle y para la pistola, pero no nos
preocupemos por eso por ahora. Vamos a saltar al plano de
animación.
27. 3.16 Introducción a los planos de animación: Ahora estamos listos para trabajar
con planos de animación. Sigamos adelante dentro de
la carpeta de planos. Voy a ir dentro de la carpeta del reproductor.
Carpeta de animación. Aquí. Voy a hacer
click derecho, ir a Animación. Y luego seleccione este
llamado blueprint de Animación. Ahora tenemos que
seleccionar el esqueleto para el jugador para el que lo estamos
haciendo. Lo estoy haciendo para este
Cando Terris ahora mismo. Voy a seguir adelante
y seleccionar el esqueleto. Adelante y haz clic en Crear. Vamos a
llamarlo un jugador MBP. Ahora hagamos doble clic y abramos este plano de
animación Un plano de animación
consta de dos partes. La primera parte es
esta gráfica de animación. Dentro de este gráfico de animación, conectamos las animaciones y puedes ver si
sostienes el clic derecho aquí, puedes desplazarte dentro
de este gráfico de animación, conectamos las animaciones aquí. Y la segunda parte
es esta gráfica de eventos. Dentro del gráfico de eventos, escribimos el código
para el movimiento. Tenemos la parte de código, y luego tenemos
la parte de animación donde agregamos las animaciones. Empecemos de nuevo aquí
en el gráfico de animación, puedes ver a la
derecha tienes todas las animaciones
que puedes ver aquí. Incluso puedes hacer clic
y arrastrarlo
al gráfico de animación y puedes conectarlos y
compilarlos y así sucesivamente. Y puedes ver cuando lo
conectas, puedes ver ahora el reproductor está inactivo y puedes
ver la animación Ahora estamos trabajando con espacios de mezcla de
animación, no solo estas animaciones
aquí. Eliminemos esta. En lugar de simplemente conectar
una animación aquí, hagamos clic derecho y
busquemos la máquina de estado Seleccionemos esta máquina
de un estado. Adelante y cámbiale el nombre a éste. Voy a llamarlo Movimiento
desarmado, porque más adelante
vamos a tener movimiento con la pistola y movimiento
con el fusil también Tomemos esto y
lo conectemos aquí, y vamos a compilar. Y se puede ver
que recibe una advertencia porque ésta está
vacía en estos momentos. Hagamos doble clic en
esta máquina de estado que creamos dentro de aquí. Si haces clic y arrastras desde esto, no
tienes muchas
cosas que puedas hacer aquí. Lo único que queremos hacer
es simplemente crear este estado. Haga clic en un estado, y llamemos a
este funcionamiento inactivo. Y ahora podemos ver
que tienes este estado. Ahora bien, si haces doble clic en
este estado dentro de aquí, ahora
puedes agregar la animación. Vamos a golpear este movimiento
desarmado de carrera aquí. Este es con el que estamos
trabajando ahora mismo. Vamos a enchufarlo y
hagamos clic en Compilar. Ahora se puede ver que la
época ha desaparecido ahora. Si quieres volver al gráfico
de animación,
puedes dar click aquí arriba. Se puede ver que
no tiene ficha. Solo tienes que dar click
aquí arriba y vuelves
al gráfico de animación. Se puede ver que la época
ha desaparecido. Hemos conectado el
movimiento desarmado dentro de aquí. Y tenemos este estado, el estado de funcionamiento inactivo. Más adelante vamos
a crear más estados. Por ejemplo,
si arrastras al estado, vamos a crear
el estado agachado, y luego vamos a
crear otro A lo mejor queremos crear
el estado del paseo y así sucesivamente. Pero por ahora, solo
el estado de funcionamiento inactivo. Dentro de aquí, tenemos este espacio de mezcla que
creamos antes. Ahora podemos ver que el espacio de mezcla
quiere tomar dos entradas. Si vuelvo al
espacio de carrera dentro de aquí, se
puede ver que creamos la dirección del movimiento
y la velocidad de movimiento. Esto es lo que quiere.
Quiere estos dos valores. Ahora bien, si solo escribo
un número estático aquí en la velocidad de movimiento, por ejemplo, digamos que me estoy
moviendo con una velocidad de 400. Y si compilo, se puede ver que el personaje está
funcionando correctamente. Si solo cambio la
dirección también, por
ejemplo, escribiendo 90 grados, podemos compilar que también está funcionando correctamente.
Muy bien, muy guay. Ahora realmente no queremos números
estáticos aquí, queremos calcularlo a través de
código en el gráfico de eventos. Sigamos adelante y hagamos
eso en la siguiente lección. Vamos a compilar por ahora, escribiendo 00 de nuevo aquí. Vamos a guardar todo
y sigamos adelante.
28. 3.17 Velocidad y dirección del movimiento: Para calcular la
velocidad de movimiento y la dirección del movimiento, sigamos adelante y entremos
en la gráfica de la camioneta. Ahora dentro de aquí, en lugar
de comenzar desde aquí, hagamos clic derecho ahora y
busquemos inicializar Y seleccione este llamado Blueprint Initialize Animation Este evento es, es
igual que la jugada de inicio. Si recuerdas, si vuelvo
a la base de jugadores, usamos esta llamada
la jugada de inicio. ¿Qué debería pasar si
empiezo a jugar el juego? Ahora en los planos de animación, esto se acaba de llamar blueprint,
Inicializar ¿Qué sucede cuando
inicializas este plano? Eso es lo mismo aquí. Qué quieres hacer,
toma esta función aquí, intenta conseguir dueño de peón Dirigimos desde aquí
y digamos que es válido. Y seguir adelante y
seleccionar éste con el signo de interrogación es válido. Ahora nos preguntamos si
el jugador es válido, si el jugador ha
engendrado en el mundo Si el jugador ha engendrado, queremos hacer clic derecho sobre esta promocionada a una variable y
llamarla peón jugador y seguir
adelante y conectarse
a la es válida Ahora lo que simplemente estamos haciendo
aquí es que solo estamos preguntando a este peón aquí es que este jugador tiene este
jugador engendrar al mundo Te puedes imaginar contraataque. Cuando te
conectas, tienes que seleccionar si quieres ser terrorista
o antiterrorista. Ahora bien, si el jugador aún no ha seleccionado a un terrorista
o antiterrorista, el jugador aún no ha
engendrado al mundo No tiene
sentido hacer todo
este código de animación si el jugador
ni siquiera ha generado todavía. Solo estamos comprobando si
el jugador ha engendrado, si el jugador es válido, si el jugador está colocado
dentro del mundo Si no, queremos esperar. Solo escribamos delay aquí
y seleccionemos este retraso. Vamos a retrasar el código
digamos 0.3 segundos. Por ejemplo, cuando este retraso esté completo, vamos a correr. Esto vuelve a ser válido porque
si el código no es válido, si el jugador aún
no ha generado, no
queremos quedarnos atascados aquí Si aquí no agregamos nada, el código sólo va a parar. Y no quiero eso,
quiero que esta variable
pon jugador se establezca
cada vez que el jugador reaparezca. Voy a seguir comprobando
si el jugador ha engendrado. Voy a retrasar
el código si no es válido y luego voy a volver
a ejecutar esto de nuevo. Y ahora podemos hacer doble clic
en éste para crear re, rutear nodos con el fin de
hacerlo un poco más organizado. Algo así.
Aquí seguimos retrasando el código si el
jugador no ha generado, hasta que el jugador genere y creará esta variable de dolor de
jugador Ahora podemos tomar esta
variable de peón jugador , podemos colocarla aquí Si lo tomas aquí,
puedes obtener la variable o
establecer la variable. Ahora para
simplemente hacerlo rápidamente, puedes mantener el control
y arrastrarlo en eso lo
conseguirá automáticamente. Si mantienes Alt y lo consigues aquí, establecerá la variable. Estos son solo atajos, manteniendo presionado el control y manteniendo presionado
Alt mientras los arrastras. Bien, entonces estamos obteniendo
esta variable de peón jugador. Ahora vamos a hacer clic derecho esta variable y
convertirla en una validada todavía. Ahora lo que hace esto es ahora
conectémoslo aquí. Lo que esto hace es de nuevo estamos comprobando si el jugador es válido, si el jugador ha empeñado Solo para asegurarnos de que
estamos ejecutando este código solo cuando el
jugador haya generado Porque se puede ver
si compilo ahora, ahora el código se está ejecutando. Y se puede ver que esto
corre infinitamente, porque aún no hemos engendrado Esto dejará de funcionar
cada vez que engendremos. En cuanto a este, esto siempre
se ejecutará, la actualización del blueprint, la
animación siempre se ejecutará Y siempre es agradable
comprobar si el jugador ha generado porque no queremos
ejecutar este código cuando un
jugador val aún no ha generado Bien, ahora para calcular
la velocidad de movimiento, golpeemos de
este jugador, pata. Busquemos la velocidad y consigamos esta
llamada velocidad. Esto es simplemente lo único que
tenemos que hacer, en realidad. No obstante, si vuelvo aquí en el blueprint de animación y
vuelvo a mi estado de ejecución inactiva, se
puede ver el plug in Quiere la entrada que quiere, es una variable de tipo float. No es un vector.
Puedes ver si vuelvo a mi gráfica de ventilación,
esto es un vector. Realmente no podemos
enchufarlo aquí. Lo que podemos hacer para
convertir un vector en un flotador, podemos arrastrar de éste
y buscar longitud. Podemos elegir esta
llamada longitud vectorial, que en realidad la
convertirá en una variable de tipo flotante. Podemos hacer clic derecho en esto
y promoverlo a una variable ahora y
llamarlo velocidad de movimiento. Ahora vamos a conectarlo
aquí a la S válida. Y ahora tenemos la velocidad de
movimiento. Esto en realidad es muy fácil. Así es como lo haces. Obtienes
la velocidad del jugador. Hicimos la longitud del vector
porque queremos convertir la variable en
una variable flotante. Y entonces tenemos aquí la velocidad de
movimiento. Ahora para calcular
la dirección del movimiento, podemos arrastrar desde aquí y
buscar calcular. Y se puede ver este
llamado calcular dirección. Al igual que éste ahora,
pide una rotación. Lo que puedes hacer es
dirigirte desde el jugador y buscar la rotación de actos. Este consigue rotación de actos. Ahora vamos a seguir adelante
y enchufarlo. Ahora bien, si eres muy
nuevo en blueprint, a veces no sabes cómo se llaman
estas funciones Si pide
rotación, por ejemplo, puedes simplemente dirigir desde aquí
y puedes escribir rotación. Esto es lo que hice
cuando empecé. Cuando estaba completamente,
solo escribí rotación y traté
de leer cuáles eran todas estas funciones. Después después de eso,
selecciono de esos. Ahora tomará un
tiempo si eres nuevo. Sin embargo, esto se
acaba de hacer una y
otra vez y se convertirá en memoria
muscular para ti. No te preocupes por ello,
solo sigue practicando. Estamos consiguiendo la rotación del
actor, estamos enchufando aquí Estamos calculando la dirección. Ahora podemos hacer clic derecho en éste, promoverlo a una variable, y llamarlo dirección de movimiento. Ahora hemos calculado la velocidad de movimiento y la dirección del
movimiento también. Sigamos adelante y compilemos. Y ahora tenemos este código aquí. Pasemos aquí al estado de
ralentí. De nuevo, se puede dar clic en
el gráfico de animación. También puede hacer clic en el gráfico de
animación de aquí. O ir al estado de
ejecución ociosa por aquí, a la izquierda, dentro de aquí. Golpeemos nuestra velocidad de movimiento. Conéctelo a la velocidad de movimiento y arrastre la dirección del movimiento, conéctelo a la dirección del
movimiento. Sigamos adelante y compilemos ahora. Antes de que podamos jugar,
puedes ver si juego
ahora no va a
pasar nada porque no hemos usado el
plano de animación en el jugador Vamos a la base de jugadores. Ve al Viewpo, da clic en
el jugador o en la malla. Por aquí, aquí arriba se
puede ver el modo de animación. Usa el blueprint de animación,
eso es correcto. La cláusula de animación,
tenemos que seleccionar nuestro plano y
dejarnos dar clic en Compilar Y ahora se puede ver que el jugador está animado aquí en
el Viewpoard también Vamos a hacer clic en Play,
y vamos a probarlo. Si hago clic en W para avanzar, para retroceder, también me muevo
hacia los lados. Me mudo a todos
los demás sitios. Se puede ver que está
funcionando correctamente. Impresionante. Las animaciones que hemos enchufado
funcionan correctamente. Ahora en cuanto a la velocidad de movimiento, vamos a
cambiarlas más adelante, así que no te
preocupes por ello. También puedo ver
que el jugador es realmente muy pequeño
en comparación con el entorno. Entonces tenemos que arreglarlo también. Pero no nos
preocupemos por eso por ahora. Todo está funcionando correctamente. Y saltemos
a la siguiente lección y creemos la agachada
29. 3.18 Entrada de entrada de Crouch multijugador: Ahora vamos a crear
la entrada para el agachado dentro de
la carpeta del reproductor Voy a ir a
la carpeta de entrada. Nuevamente, aquí hagamos clic derecho, vaya a Entrada y cree
esta acción de entrada. Nuevamente, llamemos a
éste agachado. Ahora vamos a abrir nuestro contexto de
mapeo de entrada dentro de aquí. Vamos a agregar este nuevo mapeo. Ahora ya lo hemos hecho antes. Voy a ir un
poco más rápido, esta vez creando
esta agachada Para el agachado,
voy a dar click aquí y usar mi botón de control izquierdo Ahora puedes elegir cualquier
botón que desees
para los disparadores, voy
a hacer click en el más aquí. Y solo quiero que
esta acción
agachada active cada vez que
presiono el botón Porque si no
agregas esto presionado aquí, esto en realidad va a correr muy
rápido muchas veces por segundo. Al igual que el movimiento aquí, si no agregas ningún disparador, simplemente correrá continuamente. Sin embargo, esto solo se
activará una vez
cuando lo presione. Y esto es solo hacer que
el código sea más optimizado. No solo presionado,
también quiero hacer clic aquí y seleccionar Liberado. Porque quiero agacharme
cuando suelte mi botón, ya sea presionado o Bien, sigamos adelante y guardemos esto ahora. Vamos a cerrarlo. Ahora volvamos
al jugador ahora. Y dentro del jugador, abramos la base de jugadores. Aquí abajo otra vez, haga clic derecho, busque IA agacharse
o como se
llame la acción de entrada.
Seleccione el evento aquí. Ahora aquí abajo en
el valor de la acción, que arrastrar
desde aquí y escribir una rama y
conectarla al disparado. Lo cierto aquí va a reproducirse cada vez que presiones el botón. Si solo arrastro desde
aquí y escribo una cadena de impresión y
solo escribo presionada. Ahora, siempre es bueno agregar cadenas de
impresión si estás
depurando el código Si tienes una era en tu código, muy, muy bueno simplemente
escribir cadenas de impresión por
todo tu código, como insertarlas aquí en medio del código, ver si funcionan, y así sucesivamente. Siempre es agradable depurar a
través de cadenas de impresión. Ahora podemos depurar la Siria
y ver si funciona. Si lo presiono,
debería decir presionado. Si lo libero, solo
debería decir liberado. Si compilo, ahora,
si hago clic en Reproducir, si hago clic en Control, solo una vez, y si lo dejo ir, ahora dice liberado. Se puede ver nota
de prensa. Prensa dada a conocer. Bien. Ahora está
funcionando correctamente. Entonces podemos eliminarlos por ahora, y podemos pasar
a la siguiente lección.
30. 3.19 Función de agacharse para multijugador: Bien, así que sigamos adelante
y hagamos el agachado Ahora, para agacharte, tienes que dar
click
en el componente de movimiento del personaje Primero aquí arriba, solo busca agacharte y tienes que hacer clic en
este llamado can Si no tienes esto marcado, realmente no
puedes agacharte
y no pasará nada Recuerda ir al componente de
movimiento del personaje, buscar agacharse y
seleccionar este, agacharse Bien, Ahora vamos a hacer clic
en esta T de nuevo. Ahora para el agachado,
podemos simplemente
seguir adelante y arrastrar aquí
y decir Esto funcionará perfectamente
para un solo jugador. No obstante, estamos trabajando
con el modo multijugador, así que tenemos que ejecutarlo
a través de un servidor. Ahora en Honorable motor tienes algo llamado
cliente y servidor. Si haces clic aquí arriba y estableces la cantidad o número
de jugadores en dos, y en el modo Ith, lo
configuras para que juegue
como servidor de escucha. Si haces clic en jugar aquí, ahora puedes ver que dos Windows se abrirán y ahora estamos
trabajando con multijugador. Ahora en Honorable motor, tienes el servidor y
tienes al cliente. Ahora el servidor es el verdadero
juego. ¿Y eso qué significa? El servidor tiene la
autoridad del juego. Y eso significa que el servidor puede hacer lo que
el servidor quiera. Por ejemplo, digamos aquí
en el shooter multiplicador, tengo un arma y disparo mis
balas a estos clientes. Ahora en el cliente, puedo disparar las borrones,
puedo pegarle al cliente No obstante, el cliente,
cuando disparo el arma con el
cliente ahora en el servidor. Este código para el
disparo del arma. Va a pasar por
el servidor y luego el servidor va a enviar esta información de vuelta al
cliente y decirle al cliente, bien, se le permite disparar. ¿Por qué hace eso? Y esto en realidad
es para evitar hacer trampa. Ahora el servidor, de nuevo,
es el verdadero juego. Eso significa que todos los clientes aquí están conectados
al servidor. El servidor puede ver el juego
tal como está, por ejemplo, dónde están parados los jugadores, qué están disparando, qué
armas tienen. Sin embargo, para los clientes, en realidad
tenemos que enviarles toda
esa información, del servidor al cliente. Por ejemplo, si alguien
saquea un arma, digamos que tenemos
múltiples clientes Y arreglemos ese
dólar más adelante. Pero digamos que tenemos, por ejemplo, cuatro jugadores. Y damos click en Reproducir. Y todos se abren
en mi segundo monitor. Así que déjame
arrastrarlo hasta aquí. Ahora digamos que aquí
estoy, el servidor, y tengo a todos estos
clientes jugando conmigo. Digamos que este cliente aquí
frente a mí va
a saquear un arma Ahora el arma que este
cliente va a saquear, tengo que mandar esa información Por ejemplo, si
saqueas un AK o un arma, solo Agle por ejemplo Tengo que enviar esa información desde el servidor a
todos los clientes. Porque si no envías la información en realidad solo el servidor puede
ver que has saqueado un deagle y los demás clientes no pueden ver que estás
sosteniendo un Si no envía
esta información desde los servidores a los
clientes, no funcionará. Es por ello que decimos que el
servidor es el verdadero juego, tiene la autoridad del juego, y toda la información está contenida aquí en el servidor. Y el servidor necesita
enviar información importante
a los clientes. Por ejemplo, si uno de los
clientes dispara una bala, este cliente va a decir, yo voy a disparar una bala. Y va a enviar esa
información al servidor. Ahora el servidor
va a verificar, ¿este cliente
realmente tiene balas? Porque estamos tratando de
evitar hacer trampa. Va a enviar esa
información de vuelta al servidor. El servidor va a verificar, ¿este cliente tiene balas? Entonces el servicio, a
lo mejor va a decir, sí, este cliente
en realidad tiene balas. Entonces va a enviar
esa información de vuelta
al cliente y luego
va a decir, bien,
puedes disparar. Ahora en realidad tienes balas
y el cliente puede disparar. Así es como lo hacemos aquí en la relación cliente-servidor, el servidor tiene toda la
información y el cliente simplemente recibe y envía información para evitar trampas. Bien, esta
sesión grupal está terminada. puede ver que están en una sesión de grupo discutiendo,
vamos a dejar de fumar aquí. Ahora tenemos esta era
aquí, muy, muy sencilla. Es solo decir acceso, no intentar leer esto, obtener subsistema jugador local. Y en realidad está aquí arriba.
Si solo haces clic aquí arriba, te
lleva hasta aquí,
solo dice eje ninguno. Tratando de leer esta
propiedad aquí, lo único que tenemos que
hacer es simplemente arrastrar de esta y decir que es válido. Y adelante y conecta
éste con el signo de interrogación. Solo nos estamos asegurando de que
el control del jugador sea válido. Y si es válido, podemos seguir
adelante y ejecutar este código. La época en la que llegas aquí es porque está
tratando de ejecutar el código. Cuando el control del jugador aún no
es válido, obtendrás un error
diciendo access none. Lo que el eje none significa
es que está tratando leer la variable
que intentas ejecutar. Sin embargo, el acceso, esta
variable está vacía. No sé de qué
estás hablando. Vamos a cerrarlo.
Juguemos de nuevo. Puedes ver si solo juego aquí y este tipo cayó
por el suelo, porque todos están desovando uno
encima del otro Y se puede ver que la época se ha ido. Bien, sigamos aquí
antes de que el video
se alargue demasiado. Vayamos aquí en
el código agachado. Aquí en el código agachado, primero quiero
crear una función Vamos a crear una función aquí arriba. Si haces clic en el
más esta función, voy a llamarlo agacharse Normalmente escribo delante de mis nombres de funciones
para
poder buscarlos más tarde muy rápidamente. Aquí arriba. Si también los agrego por aquí, puedo
ver que es
un.Si vuelvo a pasar al gráfico de
eventos, puedo arrastrar esta función aquí y simplemente
golpear dos de ellos. Conecta uno a lo verdadero y
conecta uno a lo falso. Lo que queremos hacer es añadir un lingote. Éste es porque queremos
agacharnos aquí y
queremos agacharnos Voy a dar click sobre esta
función en las entradas, voy a dar click
en el más y agregar este lingote llamado u
Como puedes ver, puedes
agregar una B delante de las variables de
lingotes y no
aparecerán aquí. Como puedes ver, puedes
agregar una B delante de las variables de lingotes y no
aparecerán Esto se suele hacer
en C plus plus. Podrás
buscarlos más fácilmente más adelante. Escribir una B no se mostrará en el nombre si lo
haces para bullins Ahora para el agachado,
voy a marcar esta. Entonces quiero agacharme aquí
cuando estoy tratando de agacharme con mi botón de control y cuando suelte el botón
quiero desenroscar,
esto se dice con mi botón de control y cuando
suelte el botón
quiero desenroscar,
esto se dice falso. Ahora bien, si entramos en
esta función agachada, ahora se va a poner tal vez
un poco difícil Y hay que
practicar esto un
poco dentro de esta función. Ahora podemos
hacer click derecho sobre este agacharse y solo voy
a promocionarlo a una variable local y llamar a
esta Crouch Ahora lo que es una variable local, simplemente está contenida
dentro de esta función. Ves si voy a
la gráfica de eventos, esta función o esta
variable no está aquí. Y si vuelvo
a la función, se
puede ver que tengo la
variable local, Crouch Esta variable
en realidad solo se usa dentro de aquí y
no se usa afuera. Ahora, antes de que hagamos algo, quiero arrastrar de aquí y
decir, cambiar tiene autoridad. Este interruptor tiene autoridad. Se puede ver que tiene
dos pines de ejecución. El primero es la autoridad y el otro es el remoto. Recuerda que te dije que el
servidor tiene la autoridad. La autoridad significa justamente que este es el servidor
que está ejecutando el código. Remoto significa que este es el cliente
que está ejecutando el código. Como te dije antes,
el cliente tiene que
ejecutar el código a través
del servidor y verificar si lo que sea que esté
haciendo el cliente es legal antes que podamos continuar
el código al servidor para evitar trampas. Pero por ahora,
hagámoslo a través del servidor. El servidor puede simplemente seguir adelante y hacer el código
sin ningún problema, porque el servidor tiene la
autoridad sobre el juego. Entonces lo que queremos
hacer es que queremos
comprobar aquí si esto
es verdadero o falso, porque lo establecemos aquí
en verdadero o falso. Y este lingote
establecerá aquí esta variable. Entonces voy a tomar
esta variable local y arrastrar desde aquí y escribir una rama y preguntar si esto es verdadero o falso y
conectarlo a la autoridad aquí. Ahora puedes hacerlo de esa manera o puedes hacerlo de esa manera. Eso está bien. Lo mismo. Solo quiero estar un
poco más organizado. Entonces lo conecto de esta manera. Si el agachado está puesto en true, quiero agacharme Si no es cierto,
quiero agacharme. Busca agacharte
así como así. Muy fácil. También voy a
crear variables que
usaré más adelante en el plano de
animación Crea una nueva variable aquí, un nuevo lingote llamado agachado Entonces puedes tomar esta, puedes arrastrarla desde
aquí y ponerla en true. Y arrástralo aquí y
ponlo a la culpa. Vamos a usar este más adelante en el plano de
animación, para que podamos cambiar la animación Ahora ya tenemos el servidor terminado. Se puede ver si hago
clic en jugar ahora, y juego como servidor y corro aquí. Doy click en el control. Se puede ver que la velocidad de movimiento reduce, en realidad ahora agachada Sin embargo, la animación aún no
está enchufada, por lo que no se puede ver la animación
agachada Ahora en realidad está funcionando. Ahora para el cliente,
lo que tenemos que hacer, necesitamos ejecutar este código a través del servidor primero para verificar si el jugador
está haciendo trampa o no. Volvamos a
la gráfica de eventos. Hagamos clic derecho y
busquemos un evento personalizado. Vamos a crear un evento personalizado. Llamemos a este
SRV para servidor. Y lo llamaré agachado. Porque ahora quiero ejecutar
esto a través del servidor. Dentro de este evento,
hagamos clic en él. Y ahora se pueden ver réplicas. Lo que necesitas hacer es hacer clic aquí y ejecutarlo en el servidor, y hacer clic en Confiable. Ahora estamos ejecutando este evento
aquí a través del servidor. Tomemos esta agachada aquí otra vez y
simplemente conéctelo Y conectar este
bullying a aquí. Y automáticamente
creará esta variable
dentro de este evento. Ahora en realidad
lo estamos ejecutando a través del servidor. Lo que tenemos que hacer es
que tenemos que volver a la función aquí
desde el mando a distancia. Tenemos que tomarlo
de aquí y
buscar el
evento de cuclillas del servidor que acabamos Ahora para esta entrada, simplemente la
conectamos aquí, creamos un nodo de ruta trasera solo
para mantenernos un poco organizados. Ahora se está ejecutando
a través del servidor. Después de que se ejecute a través del servidor, ahora puede ejecutar este código
junto con el servidor. Bien, esto fue todo. Ahora podemos compilar, y
eso debería funcionar bien. Si hago clic en play, ahora
soy el servidor y hago
clic en controlar. Ya ves que estoy agachado,
me estoy moviendo despacio. Lo mismo con el cliente. Puedo moverme y puedo dar
click en el control. Y también me muevo lentamente. Se puede ver en el servidor, en
realidad también me estoy moviendo lentamente. Esto quiere decir que está
funcionando correctamente. Ambos están trabajando lentamente. Solo para pasarlo
muy, muy rápido, puede ser un poco
confuso para empezar. Creamos esta función agacharse, agregamos el lingote
para que ya sea agacharse o agacharse cuando pulsamos el botón o soltamos el botón Dentro de esta función, tenemos básicamente
solo el lingote por aquí configurando
esta variable local Entonces tenemos el switch, tiene
autoridad comprobando si es el servidor ahora mismo que estamos jugando As o el cliente, si es el servidor,
solo puedes seguir adelante y ejecutar el código. Ahora si estás agachado, aquí nos vamos a agachar Si no estás agachado, nos vamos a agachar
dependiendo del valor que
hayas establecido aquí Ahora si estás jugando con el cliente, primero
tienes que pasar por el
servidor y verificar con el servidor cuál es este
valor que tienes aquí. Entonces va a correr a
través del servidor. Dependiendo de este valor
que conectaste, va a tomar
este valor y ya sea o
agacharse también
en el cliente
31. Plan de animación de 3.20 agacharse: Ahora que tenemos el agachado trabajando dentro de nuestro personaje de
plano, sigamos adelante y
hagamos eso dentro del plano de animación Vamos a la carpeta de
planos, animaciones
de com player Y entremos en el plano de
animación. Ahora dentro de aquí otra vez, puedes volver al gráfico de
animación por aquí. Puede hacer clic en
su máquina de estado. Dentro de aquí, necesitamos
hacer un nuevo estado. Vamos a golpear desde
aquí y vamos a la derecha. O da click en este estado aquí. Vamos a
agacharnos Ahora vamos a hacer
la agachada No tienes que
hacerlo aquí abajo. También puedes simplemente arrastrarlo
aquí a un lado o aquí arriba. Sólo me gusta
arrastrarlo hasta aquí abajo. Para los agachados. imagino que estoy agachado,
bajando Y luego podemos hacer doble clic sobre este estado
agachado por encima a la derecha Hicimos que éste se agachara desarmado. Podemos arrastrar este espacio de lente a la gráfica y luego
podemos conectarlo. Recuerda que ya hicimos la
dirección y velocidad del movimiento, así podemos arrastrarlos y
enchufarlos aquí. Entonces vamos a compilar.
Ahora nos llega un error o una advertencia aquí porque no
hemos hecho la transición. Volvamos aquí en
el gráfico de animación, puedes volver a
tu máquina de estado. Y dentro de aquí se
ve ahora este círculo. Y este círculo es
una regla de transición. Tienes que contar tu juego. ¿Cuándo quieres pasar del modo
de ejecución inactiva
al modo agachado Hay que
darle una transición. Ahora bien, si haces doble clic aquí, puedes ver aquí
está la transición, el lingote, así que tenemos que
darle una transición Y la forma en que haces esto,
primero tienes que ir
al gráfico de eventos y hacer algún código antes de poder
darle una transición. Hay que saber cuando
el jugador está agachado. Ahora bien, si vuelves a
nuestro en la base de jugadores, vuelves aquí en
nuestra función agacharse Si no haces clic aquí.
Hicimos este llamado agacharse Este lingote de aquí,
Recuerda que no es el local que hicimos Es esta una
variable bull global la que hicimos. Este lo podemos usar para saber
si el jugador está agachado o no y podemos usarlo aquí dentro del plano de
animación Primero tenemos que conseguir la
referencia al jugador. Ahora mismo se trata de un peón de jugador, pero necesitamos una referencia
a la base de jugadores porque ahora necesitamos
usar este lingote aquí Volvamos aquí y volvamos
a la carpeta Interfaces. Hagamos clic derecho para ir a Blueprint y hagamos una nueva interfaz de
blueprint Llamemos a esto
en base de capas porque queremos hacer referencia
a la base de jugadores. Vamos a abrirlo. Y aquí, dentro de esta interfaz de
blueprint, igual que para el controlador
del reproductor, si no lo recuerdas, puedes seguir adelante y ver la interfaz del controlador Player Cuando lo hicimos aquí,
en realidad es lo mismo. Puedes dar click aquí,
hacer click en dos para cambiar el nombre y decir get player, obteniendo la referencia del jugador. También puedes simplemente llamarlo get
get player base reference. Eso es lo mismo.
Entonces puedes dar click sobre esta función
aquí en la salida. Adelante y haz
una nueva variable. Recuerda aquí
tienes que seleccionar a qué Eva estás tratando de
hacer referencia. Estamos tratando de hacer referencia
a la base de jugadores de BP. Adelante y selecciónelo.
Déjame llamar a este jugador. Ya puedo compilar. Y yendo a la base de jugadores. Al ir a la clase, en
realidad en los valores predeterminados de clase, los ajustes de clase aquí, en las interfaces, haga clic en Agregar y busque la base de jugadores
T. Este compilar y
verás esta interfaz. Recuerda, si no ves esto, aunque lo hayas agregado, tienes que compilar dentro de la interfaz
antes de poder verlo. Muy importante haciendo clic en
la referencia Obtener jugador. Y aquí podemos volver a arrastrar y escribir yo igual que antes. Porque recuerda que estamos
en la base de jugadores. Sólo estamos diciendo
que esta variable aquí es esta base de jugadores. Ahora podemos ir a la.
Vamos a compilar primero. Ahora podemos ir al plano de
animación. Y aquí ya
tenemos al peón jugador. En lugar de simplemente
arrastrar desde aquí, permítanme crear
una nueva variable Sólo voy a
arrastrarlo por aquí y colocarlo y dar clic en Obtener. Y solo voy a usarlo aquí en vez de
arrastrarlo desde aquí Creo que se verá un poco desordenado cuando las líneas estén
por encima de todo el código Déjame tomarlo aquí como uno
nuevo y decir capa ref. Ahora tenemos este get player ref. Sigamos adelante y conectémoslo. Ahora podemos usar la variable. Ahora si arrastras de
aquí y a la derecha agacharte. En realidad un pequeño truco que
quiero mostrarte. Si tienes razón
agacharte y quieres usar la variable lingotes, las variables siempre se
encuentran Se puede ver que esta es la variable
agachada que necesitamos. Sin embargo, si no lo ves, siempre
puedes hacer
un espacio y escribir variable VAR para variable y podrás
ver todas las variables. Sólo un pequeño truco
para encontrarlo rápidamente. Obteniendo esta
variable agachada que hemos hecho. Ahora puedo hacer clic derecho sobre
esta variable promovida a una variable dentro de aquí
en el plano de animación Y yo sólo lo voy a llamar,
es agacharse así como así O simplemente puedes llamar a un
agachado lo mismo. Adelante, conéctalo
y da clic en Compilar. Bien, ahora estamos
tomando esta agachada. Estamos tomando el valor de
ello aquí en la base de jugadores. Entonces si es verdadero o falso, estamos tomando ese valor y poniéndolo dentro
de esta variable. Ahora podemos usar esta variable
para la regla de transición. Si vuelvo a la gráfica de
animación, a mi máquina de estado y
a esta regla de transición, puedes seguir adelante
y dar click en ella. Ahora te está preguntando,
¿cuándo debo pasar de la
carrera ociosa a la agachada Y podemos arrastrar de aquí
y enchufarlo a aquí. Cuando estamos agachados es agacharse
es verdad, entonces queremos seguir adelante
y hacer la transición Sin embargo, volvamos. Tenemos que dar click sobre esto
y arrastrar desde aquí. Y enchufarlo a aquí también. Porque en algún
momento tenemos que pasar de la agachada de nuevo a la inactividad, yendo y haciendo clic en la
segunda regla de transición Esto va a volver
de agacharse a correr. Voy a arrastrar esto
y aquí dentro podemos escribir N B y
éste llamado N lingotes Básicamente lo que estamos diciendo
es que si es agacharse es falso, entonces queremos volver
al modo running porque ya no
estamos agachados Será falso
cuando evalu no estén agachados porque lo configuramos
aquí para que caiga en
la Sigamos adelante y
compilemos. Y ahora se puede ver que todos los errores se han ido. Ahora veamos si nos
falta algo. Hemos hecho todo aquí enchufado en la
dirección de movimiento y velocidad De hecho,
probémoslo. Vamos a hacer clic en Reproducir. Y voy a hacer click en, en realidad estoy atrapado
aquí como el jugador. Déjame
volver a hacer click en play. Ahora estoy caminando. Como jugador aquí, voy a tener el control
para agacharme. Y se puede ver que estoy
agachado. Está funcionando. Pero se puede ver en
mis otras pantallas, no
estoy agachada Esto se debe a que ahora estamos
trabajando en multiplicador. Se ve que estoy
agachado como servidor,
los demás no pueden
ver. Estoy agachado No obstante, si llevo a este
cliente aquí y me agacho, se
puede ver que el
servidor puede ver que estoy agachado así si
estoy agachado como cliente,
pero si estoy agachado como servidor, estoy agachado No obstante, los clientes no pueden
ver que estoy agachado. Y recuerda en la lección
anterior
te dije que estamos trabajando
en multijugador. Y el servidor tiene que devolver la información
al cliente y decirle a los clientes, oye, ya estoy agachado,
actualizar mi animación El servidor tiene
que enviar esa información sobre de lo contrario no
pueden ver lo que estoy haciendo. Y esto es lo que
vamos a hacer en la siguiente lección con la replicación
variable.
32. 3.21 Replicación variable: Derecha. Sigamos adelante
y arreglemos la agachada Ahora antes de hacer
eso, voy a dar click aquí arriba y
seleccionar dos jugadores. Porque no quiero cargar demasiados jugadores todo el tiempo. Si hago clic en Reproducir, puedes
ver aquí igual que antes, si me agaché en el servidor,
el cliente no puede Estoy agachado, yo, estoy
agachado sobre el cliente. El servidor puede ver en el, el propio servidor
que estoy agachado Recuerda como antes,
tenemos que enviar información al cliente y decirle al cliente que en este momento estoy agachado Esto es muy fácil de hacer. Entonces, si vas a la base de
jugadores está agachado, esto es básicamente lo que va mal ahora mismo en el plano de
animación Si volvemos a las reglas de
transición, tenemos estas reglas de transición tomando de este lingote aquí Este lingote controla si
estamos agachados o no aquí, La variable, esta
información dentro de aquí, necesita ser enviada al cliente Si das click en él, podrás ver las variables también se pueden
replicar, no solo los eventos,
puedes ver el evento Lo hemos replicado antes
para ejecutarlo en el servidor, pero las variables
también se pueden replicar Si da clic en esta variable, puede ver que la replicación
aquí está establecida en none. Pero necesitamos enviar esta
información al cliente. El cliente también tiene la
información si estamos
agachados o no haciendo clic aquí y configurando esto
para replicarlo Y tendrá el símbolo aquí
arriba porque está replicado. Y ahora puedo dar click en Compilar. Ahora bien, muy importante saber, las variables sólo se pueden
replicar a través del servidor Nunca se puede tomar
una variable aquí. Por ejemplo, si,
digamos que estoy en el cliente aquí
y lo pego así, nunca se
podrá hacer esto. No se puede replicar
a través del cliente, las variables solo se pueden
replicar en el servidor Muy importante recordar
que no se puede establecer una variable y replicar
a través del cliente, nunca va a suceder Aquí se puede ver que se
está ejecutando a través del servidor porque
tenemos este switch tiene autoridad y se está
ejecutando a través del servidor y replicando así
como el remoto, realidad
se está ejecutando
en el servidor porque se está ejecutando
a través del servidor primero, y luego estamos
replicando esta variable Entonces esto era en realidad
lo único que teníamos que hacer, simplemente hacer clic en él y
configurarlo para replicarlo Ahora, si pudiéramos quejarnos, ahora como pueden ver, yo soy el servidor. Ahora bien, si solo
maximizo esto un poco. Entonces puedes ver si me
agaché como servidor, ahora
estoy agachado tanto en el cliente como en
el Y si yo soy el cliente
y agachado también, estoy agachado en el
cliente y en el servidor A veces también es
agradable hacer clic aquí, ir al modo Net y
jugar como dos clientes. Así que adelante y juega. Siempre es agradable
probarlo en ambos sentidos. Entonces como servidor y cliente, pero también como cliente y cliente para ver si
realmente pueden verse entre sí. Si me agacha sobre el cliente, el otro cliente
puede verme también Está funcionando y
volvamos a cambiarlo para
jugar como servidor de escucha. Por ahora, sigamos adelante y guardemos todo y
pasemos a la siguiente lección.
33. 3.22 Suaviza la animación: Cuando sigo adelante
y juego el juego, puedes ver que mi animación no
es realmente fluida. Entonces si camino por ahí, se puede ver que pasa muy rápido así
como como cuando me agaché
aquí, simplemente sucede De repente
puedo suavizar esto un poco
y hacer que se vea bien. Y en realidad es solo un
ajuste lo que tenemos que hacer. Si vas al jugador y haces
clic en las animaciones. Y haces clic en, por ejemplo, esta corrida de espacio de mezcla. Tienes este de
aquí abajo llamado Weight Speed. Si lo pones en
algo muy bajo, como uno, por ejemplo. Y puedes hacer click en play y
podrás ver qué pasa. Se puede ver si empiezo a
caminar, a correr, se
puede ver que pasa
a esa animación de carrera. Si me detengo, hace una transición
hacia atrás por carrera, hace una transición. Ya puedes ver que es muy
suave cuando corro y paro. Entonces tenemos que ponerlo a un
número que se vea bien, no demasiado alisado. Si aumentas este número, va a ser menos suave. Por lo general, algo alrededor del
56 es realmente bueno. Cinco ahora mismo es
mucho mejor que antes. Si lo pones a
algo así como tres, esta una velocidad de peso,
pongámoslo a tres y hagamos clic en play. A veces no me gusta
ponerlo demasiado abajo porque el personaje de alguna manera se siente
pesado cuando camino por ahí. Pero se puede ver que ahora está transición mucho
más que antes Creo que tres es demasiado bajo. Para que podamos seguir adelante y probar
cuatro y hacer clic en play. Y entonces podemos correr por ahí
y ver qué pasa. Cuatro sigue siendo demasiado pesado. Creo que cinco fue un buen número. O para el alisado
aquí, si simplemente corres así, queda bien. A lo mejor ni 5.5 no me gusta
que sea demasiado bajo aquí, 5.5 No me gusta que el personaje
se sienta demasiado pesado. Hagámoslo con
los demás. Vamos a hacer clic en el agacharse, poner la velocidad del peso a
5.5 Y dar clic en la caminata, poner la velocidad del peso
a 5.5 también Sigamos adelante y hagamos
clic en Archivo y Guardar todo. Vamos a hacer clic en Reproducir. Y se puede ver ahora
cuando estoy corriendo, cuando estoy agachado, también
está suavizando Se puede ver la
diferencia en realidad para los agachados mucho más Creo que si dijera el
agachado a cero otra vez. Y si hago clic en play, se
puede ver que
las transiciones son realmente rápidas. Cuando estoy agachado,
es casi antinatural. Si lo pongo en 5.5 y
guardo y hago clic en play. Ahora cuando me agaché y hago esto, se
puede ver que es mucho
más suave que antes No se siente antinatural. Solo un
ajuste muy pequeño que puede hacer tus animaciones se vean mucho mejor cuando las estás
suavizando.
34. 3.23 Paseo multijugador: Ahora estamos listos
para hacer el caminar. Ahora el caminar es
lo mismo que el agachado. Si volvemos al jugador
y vamos a la base de jugadores, en realidad
es el mismo proceso que hemos estado haciendo
aquí con el agachado Intenta hacer esto solo si puedes, y trata de ver hasta dónde
llegas sin mi ayuda. Es un ejercicio muy bonito si quieres continuar conmigo, adelante y
continuemos. Voy a seguir adelante en la
entrada y hacer una nueva. Vamos a Input y damos
clic en Input Action. Llamémosle a éste. Yo camino. Y sigamos adelante
dentro de aquí. Dentro de aquí,
realmente no necesitamos hacer nada. Vamos al
contexto de mapeo de entrada dentro de aquí. Vamos a hacer clic en el más y
agregarlo aquí abajo como el paseo. Para el caminar,
voy a sostener Shift, dando click en éste, dando click en
shift en mi teclado. En cuanto a los disparadores,
voy a dar click aquí, dos ventajas, y se
presiona el primero y se suelta el segundo Este botón se activará
cada vez que lo presione para caminar y cada vez que
lo suelte para dejar de caminar. Ahora sigamos adelante
y ahorremos aquí. Y volvamos a la base de
jugadores aquí dentro. Voy a escribir, dar
clic y escribir un paseo y seleccionar la acción de entrada recién
creada. Ahora para éste,
igual que antes, arrastremos de este
lingote y escribamos una rama de lo verdadero Estaremos caminando porque es entonces cuando
hemos presionado turno. Cuando liberemos el turno, dejaremos de caminar
aquí desde lo falso. Hagamos una nueva función
igual que antes. Voy a llamar a este paseo. Volvamos al gráfico
de eventos. Voy a arrastrar este paseo aquí y conectarlo aquí.
Y arrástralo otra vez. Y conéctalo aquí abajo. Ahora otra vez, igual que antes, necesitamos un lingote para
caminar o dejar de caminar, voy a compilar
y dar click en la entrada y llamar a
este B walk Ahora para este lingote, lo
voy a poner en verdad cuando
quiera caminar, y lo voy a poner a
caídas cuando deje de caminar Ahora igual que antes,
quiero
ejecutarlo a través del servidor
cuando sea el cliente. Entonces voy a hacer click derecho aquí
abajo, digamos servidor walk. Y recuerde configurar
las réplicas para que se ejecuten
en el servidor y sean confiables Ahora sigamos adelante y
tomemos este paseo conectado, y tomemos esta entrada para el lingote y colóquelo en el evento para que cree
automáticamente
esta variable aquí Bien, la mayoría está terminada. Vamos a entrar en la
función de caminar dentro de aquí. Vamos a hacer clic derecho en éste y promoverlo en una variable
local. Y a esta la podemos
llamar a pie local. Adelante y arrastra de aquí
y di que el interruptor tiene autoridad. Ahora, al igual que antes, primero
queremos ejecutar el código
a través del servidor. Si somos el cliente arrastramos desde
aquí y decimos server walk, el que acabamos de hacer y ahora lo estamos ejecutando
a través del servidor primero. Recuerda tomar esto y
conectarlo con el paseo doble clic para hacer un nodo
re redondo y simplemente hacerlo un poco
más organizado. Ahora tomemos esta variable de caminata
local y la dejemos caer aquí. De aquí, derecha, una sucursal
y vamos a conectarla. Porque tenemos que preguntar,
¿es esto cierto o falso? Porque si es verdad,
queremos caminar. Si se trata de caídas,
queremos dejar de caminar. Queremos a lo mejor empezar a correr. Adelante y conecta todo
lo que necesita para quedar así. Ahora a partir de aquí, lo que
básicamente queremos hacer
es que se pueda ver en el
componente de movimiento del personaje tenemos
algo que se llama
la velocidad máxima de caminata. Esto es lo
mismo que correr. No sé por qué se
llama velocidad de caminata, pero en realidad también es la velocidad de
carrera para esta. Esto es lo que
queremos ajustar cuando
queremos caminar y no caminar. Lo que tenemos que hacer es tomar este
componente de movimiento del personaje y tomar de aquí y decir establecer la velocidad máxima de caminata. Esto es lo que queremos ajustar. Queremos conectarlo aquí. Por supuesto, en
realidad no necesita ser alto. Si vas al componente de
movimiento del personaje en este momento, la velocidad de carrera es de 600. Cuando queremos caminar, necesitamos reducirlo a un número menor. De hecho, puedo hacer clic
derecho en este, Promocionar esto a una variable. Yo sólo voy a llamar a
este paseo velocidad. No me gusta tener números
estáticos así. Vamos a compilar y hacer clic en esta variable de velocidad de caminata Y
configurarlo en algo así como, vamos a configurarlo en 100 o en realidad solo 200 por
ahora, número aleatorio. Vamos a cambiarlo más tarde cuando ya
no estemos caminando. Vamos a tomar esto
por, pegarlo aquí. Volvamos a promover esto a una variable
y llamemos a ésta, por ejemplo, una velocidad de carrera. Ve y ponlo aquí abajo y
conecta las cataratas a él. Cuando ya no estemos caminando, vamos a ponerla de
nuevo a nuestra velocidad de carrera. Y da clic en la velocidad de carrera. Recuerda establecer
el valor predeterminado. Adelante y compile Primero te
pide que compiles
el plano Adelante, compilar y
establecerlo en 600, igual que por defecto. Y ahora volvemos a correr. Ahora, igual que antes,
necesito un lingote para usar dentro de mi plano de
animación Voy a hacer aquí un
lingote nuevo, paseo de bala. Ahora puedo tomar este tirón
y ponerlo en verdad
cuando estoy caminando. Y lo copio y lo pego aquí abajo. Y ponerla en falso
cuando no estoy caminando. Ahora recuerda que esto tiene que ser
replicado para que el cliente
sepa si esto es verdadero o falso para que el
blueprint de animación
siga adelante y establezca esto para
replicarlo Con eso terminado,
estamos terminados y tenemos que avanzar hacia
el plano de animación Pero vamos a
probarlo. Vamos a hacer clic en play. Y si hago clic en Shift, se
puede ver que estoy caminando. Estoy caminando despacio. La animación que necesitamos
arreglar en la siguiente lección. Pero como pueden ver, si
libero mi caminar, puedo volver a correr. Esto es muy, muy genial. Sigamos adelante y hagamos
el plano de animación.
35. 3.24 Blueprint de animación caminante: Ahora para el plano de animación,
sigamos adelante y vayamos a la animación del jugador y abramos nuestro
plano de animación Ahora dentro de aquí,
recuerda dentro de la máquina de
estado gráfico de animación, vamos a arrastrar desde aquí y
crear otro estado. Llamemos a esto caminar. Ahora para este, hagamos doble
clic en él y ábralo. Al igual que antes, creamos
este espacio de mezcla de caminata. Sigamos adelante y
conectémoslo aquí. Y vamos a arrastrar la
dirección del movimiento y
enchufarlo y la variable de
velocidad de movimiento. Y enchufarlo también. Sigamos adelante y hagamos
clic y compilemos Ahora. Volvamos aquí. Como puedes ver, al
igual que antes
tenemos que establecer la regla de transición, en realidad
tenemos que ir primero al gráfico de
eventos y obtener ese lingote que acabamos de hacer antes desde la misma
interfaz aquí Podemos arrastrar y
decir caminar variable. Podemos obtener este
lingote de éste. Podemos escribir click
y promover esto a una variable y llamarlo, por ejemplo, es caminar. Podemos llamarlo es caminar. Sigamos adelante y lo conectemos. Haga doble clic en esto para
hacer una nota de reencaminamiento, hacerla organizada, así como
así Vamos a compilar y
volvamos al movimiento aquí. Ahora para la regla de transición, ahora estamos transitando
de la carrera a la caminata Podemos arrastrar, esto es
entrar aquí, así como así. Si estamos caminando, queremos hacer la transición
de correr a caminar. Sigamos adelante y compilemos. Volvamos otra vez. Tenemos que arrastrar esto
de aquí a aquí, porque ahora
queremos pasar de caminar a correr. Si ya no estamos caminando, arrastra esto y consíguelo y di bullying si ya
no estás caminando, lo que significa que este
bullying ambulante será falso, entonces queremos
empezar a correr de nuevo. Salga y haga clic y compile. Ahora esto va a funcionar. Si haces clic en Play y
puedes dar click en el turno, puedes ver como estoy caminando. Y todo está funcionando de
maravilla. Todo está funcionando. Puedes probar la animación si algo anda mal
con la animación. Probablemente hayas hecho mal
el espacio de mezcla. Pero se puede ver que todo está
funcionando en todas las direcciones. No obstante, hay un
problema en estos momentos. Si haces clic en agacharte y haces clic en el botón de caminar
al mismo tiempo, ahora no es caminar,
no está en transición Esto se debe
a que hay que arrastrar de esto a esto también para crear reglas de
transición. Si estás agachado
y quieres seguir
adelante y empezar a caminar, solo
voy a
arrastrar esto un poco lejos que haya más espacio,
más organización Ahora adelante y da clic
en esta regla de transición. ¿Qué debería pasar? ¿Cuándo debo hacer la transición de
caminar a agacharse? Puedes tomar esto es caminar
y volver a conseguirlo aquí, igual que antes del bullying. Si no estoy caminando, ahora mismo estamos haciendo la transición
de caminar a agacharse Así que ya no vamos a caminar. Ya no voy a caminar, pero estoy agachado Si agacharse es cierto, pero correr es falso, y tenemos que arrastrar
desde aquí y decir, seleccionar este lingote,
seguir adelante y Si ya no estás caminando
y estás agachado, adelante y ejecuta esta regla de
transición Volvamos aquí y
golpeemos desde aquí,
desde el agachado hasta el andar así y hacer
doble clic sobre él Ahora bien, ¿cuándo deberías pasar de estar
agachado a Esto es si
ya no estoy agachado, tomando éste. Si ya no estoy agachado, así
como así, estoy caminando Quiero hacer la transición
a la caminata. Si
ya no estoy agachado pero estoy caminando, quiero hacer Si sigo adelante y hago
clic en jugar ahora, puedes ver si me agaché Si sostengo el turno para caminar
y solto el agachado, se
puede ver que estoy Podemos hacer la transición de
caminar y agacharse también. No obstante, se puede ver que todavía
hay un pequeño error. Se puede ver si me agaché, sostengo, cambio para caminar, y
ver que estoy Pero si tengo el control para agacharme, puedes ver que mi velocidad de movimiento es ligeramente mayor porque en
realidad estoy agachada Está tomando la velocidad agachada. Esto es algo que hacer
dentro de nuestro jugador, en la base de jugadores de aquí, dijimos esta velocidad de carrera y
velocidad de caminata. Estamos
corriendo automáticamente esta velocidad de caminata aquí cada vez que caminamos, a pesar de que estamos agachados Esta es una
época pequeña y quiero
presentarles más
adelante las enumeraciones Y podemos hacer que este
sistema sea mucho más inteligente, pero por ahora,
todo está funcionando. Y pasemos
a la siguiente lección.
36. Salto en 3.25 multijugador: Haz el salto. Sigamos adelante
en la carpeta de planos, vamos a entrada del jugador Sigamos adelante y
hagamos una acción de entrada. Justo como antes. Puede hacer clic derecho aquí, ir a Entrada y crear
una acción de entrada. Llamemos a esto un
salto dentro de aquí. Realmente no necesitamos
hacer nada, cerremos
la acción de entrada. Y vamos a entrar en el contexto de
mapeo de entrada en su lugar, vamos a minimizar todos esos para que podamos ver lo que estamos haciendo. Vamos a hacer clic en el plus aquí
arriba y agregar el salto. Si buscas salto y
seleccionas la
acción de entrada que acabas de realizar. En cuanto a los disparadores,
igual que antes, voy a dar click
en el plus aquí y voy a
seleccionar la prensa. Cada vez que presiono,
elijamos la barra espaciadora. Para que pueda dar clic aquí y dar
clic en la barra espaciadora. Así que cada vez que haga clic en
la barra espaciadora, activará
esta acción de entrada. Ahora que esto se ha agregado, puede seguir adelante
y hacer clic en Guardar. Vamos a cerrarlo, y
pasemos a la base de jugadores. Dentro de la
base de jugadores donde
tenemos todo nuestro movimiento
aquí en el gráfico de eventos, puedes hacer clic derecho
y buscar un salto, y luego puedes seleccionar
este evento de salto. Ahora para este evento de salto, lo que queremos
hacer es simplemente arrastrar desde aquí y saltar a la derecha. Y luego puedes seleccionar
esta función llamada jump. Ahora para que esto funcione, en realidad esto ya está
funcionando como puedes ver aquí. Hicimos todo esto
con el caminar y con los agachados,
pero el salto en el motor Unreal ya
está replicado Así que en realidad no necesitas
hacer más que esto. Puedes ver si compilo ahora y si hago clic en reproducir y
puedes dar click en la barra espaciadora, puedes ver que estoy
saltando ahora mismo. La animación no es
correcta porque no
hemos establecido nada dentro
del plano de animación Pero como puedes ver
aquí, si salto como cliente funciona y si salto como
servidor, funciona también. Saltar dentro de Wheel Engine ya
es multijugador. En realidad no necesitas
hacer más que esto. No obstante, antes de hacer esto, solo
quiero asegurarme de
que el jugador no pueda spam al botón de salto cuando ya
está en el salto. Porque se puede ver
aquí, si arrastre desde aquí y escribo cadena de impresión. Siempre es bueno usar
una cadena de impresión para
depurar para que podamos compilar
y hacer clic en Reproducir. Puedes ver si acabo de enviarme
spam a mi botón de espacio. Puedo spam del salto
aunque esté en el aire. Para arreglar esto, solo para
hacerlo más optimizado, podemos tomar este componente de
movimiento de personaje que podemos arrastrar desde aquí
y decir que está cayendo. Lo que básicamente es
decir básicamente si el jugador
está en el aire o no. Podemos tomar esto aquí
y ahora voy a decir que no por no lingotes Lo que estamos diciendo es
que solo queremos saltar siempre que mi personaje no
se caiga. Esto quiere decir que el
personaje no está en el aire y por lo tanto
quiero saltar. Si el personaje está en el
aire, no quiero saltar. Podemos arrastrar de aquí y
tomar esto y hacer una rama. Podemos arrastrar esto un
poco lejos así tenemos más espacio para trabajar
y conectarlo aquí. Lo que estamos diciendo es que si mi
personaje no está cayendo,
es
decir, mi personaje no está en un salto, queremos seguir adelante y saltar. Si compilas y haces clic en Reproducir y spam el botón de salto, en realidad,
escribamos
aquí una cadena de impresión para que veas
lo que está pasando. Compilemos, guardemos y juguemos. Si spa mi botón Espacio, puedes ver que solo puedo
enviarlo spam cada vez que aterrice
en el suelo. Sólo se activa una vez. Esto solo hace que el juego sea más optimizado solo para que sea
un poco más limpio aquí. Lo que puedes hacer, esto
es opcional por supuesto, pero lo que puedes hacer
es que puedes sobre estos nodos y puedes escribir click y decir colapso
a una función. Ahora bien esta función a la que
puedes llamar, por ejemplo, no
es saltar. En lugar de hacerlo con las entradas aquí, pines de
ejecución. Este es básicamente
solo obtener información si haces doble
clic en esta función aquí, si haces doble clic en ella
y vas dentro de ella. Y sólo voy a
organizar esto un poco. Se puede ver que sólo estamos
obteniendo alguna información. No estamos estableciendo
ninguna nueva información, solo
estamos obteniendo si el
jugador está cayendo o no. En lugar de tener
estos pines de ejecución, Esto realmente no tiene
sentido para funciones que solo
obtienen información. Podemos dar click en la
función y seleccionar puro. Puro solo significa que esta es una
función que obtiene información. No necesitamos ejecutarlo a
través del código porque realmente no
estamos configurando
nada nuevo aquí. Podemos simplemente arrastrarlos juntos. Y ahora estás diciendo que si
el jugador no está saltando, puedes seguir adelante y saltar. Y puedes ver que puedes
hacer las cosas un poco más limpias si
las colapsas a funciones. Para que puedas seguir adelante y
hacer clic en Compilar y Reproducir, y solo probarlo. Y todo está funcionando tanto
en el cliente
como en el servidor. Y sigamos adelante y hagamos
el plano de animación.
37. Plan de animación de salto de 3.26: Haz la animación.
Vamos a las animaciones. Y dentro del plano de
animación del jugador. Ahora dentro de aquí en realidad
voy a hacer clic aquí
y hacer clic derecho y cerrar las pestañas a la derecha
solo para que esté más limpio. De nuevo, voy a
abrir el gráfico de animación. Abre la máquina estatal
que hicimos dentro de aquí. Para el salto,
necesitamos tres estados. Para el primero
puedes arrastrar desde aquí y puedes
crear un nuevo estado. A este lo voy
a llamar jump start. Entonces puedes arrastrar
desde aquí y hacer un nuevo estado llamado
jump loop o jump air. Y puedes arrastrar de
éste y hacer un tercer estado llamado jump end. Ahora para el extremo del salto,
puedes tomar esto y conectarlo de nuevo
a la marcha inactiva. Ahora tenemos tres estados y
necesitamos agregarles las
animaciones. Cómo va a
funcionar esto es cuando salto, tengo una animación de
inicio de salto. Si hago clic en él y solo
busco saltar aquí
en mis animaciones, tienes esta llamada
Jump Start Unarmed Solo asegúrate de que sea
el desarmado. Haz clic y arrastra esto
aquí y conéctalo. Si quieres ver cómo se ve
la animación, siempre
puedes hacer
doble clic sobre ella. Y así es como se ve. Tenemos una
animación inicial de salto que vamos a atravesar antes de ir a la animación donde
estamos en el aire. Volvamos aquí. Ahora que hemos conectado esto,
volvamos, hagamos clic en el salto de aire y tomemos este llamado
Jump A desarmado Y ponlo aquí
para el último. Regresemos al extremo del salto. Vamos a dar el salto desarmados. Si lo encuentro, éste
en realidad salta tierra desarmada. Podemos tomar esto y
conectarlo y seguir adelante
y compilar, Bien. Ahora, igual que antes, tenemos que establecer estas reglas de transición, hagamos clic en la primera. El primero, básicamente
cuando estamos en el aire, como hicimos aquí en
la base de jugadores, si regresas como
hicimos aquí para el salto, si el jugador está cayendo, significa que estamos en el aire. Esto significa que en realidad
queremos saltar. Tenemos que ir primero en
el gráfico de eventos y codificar eso aquí como jugador, al igual que lo que hiciste
en la base de jugadores, puedes arrastrar de esto y obtener el componente de
movimiento del personaje. Y luego desde el componente de
movimiento del personaje puedes arrastrar y decir que está cayendo. Si estamos cayendo, puedes hacer clic
derecho en esto
y promoverlo a una variable y puedes
llamar a esta está en el aire. Esto significa que estamos en el salto. También puedes llamarlo
es saltar si quieres adelantarte y compilar Ahora
dentro de la gráfica de animación. Volvamos al salto
aquí. Esta regla de transición. Tomemos esto está en el
aire y conectado. Ahora estamos transf,
vuelvo aquí. Estamos haciendo la transición al
arranque en salto cada vez que
estamos en el aire Siempre que hagamos clic en este botón de
espacio por aquí. Desde el inicio del salto hasta el
salto, podemos hacer clic en esto. La función que queremos usar aquí se llama tiempo restante. Si estás con el botón derecho y
buscas el tiempo restante, este llamado ratio de tiempo
restante. Solo asegúrate de que sea ratio. Puedes arrastrar de
esto y decir menos, menos que aquí y luego
puedes conectarlo. Lo que estamos diciendo aquí
es que queremos hacer la transición de una
animación de inicio de salto al salto, una animación siempre que
el tiempo restante de la animación de inicio de salto sea
menor que cualquier número
que conectes aquí. Por ejemplo, si enchufo 0.5 y compilo,
en realidad
continuemos con esto y luego
puedo mostrarte
lo que está haciendo esto. Entonces volvamos aquí
para el salto aquí. Si hago clic para la regla de
transición entre el salto
aéreo y el extremo del salto, pero esta, vamos a aterrizar siempre que ya
no estemos en el aire. Porque puedes
imaginar que el jugador está saltando y luego el jugador vuelve a aterrizar en el suelo. Cuando el jugador
aterriza en el suelo, queremos reproducir esta animación de
extremo de salto cuando el jugador ya no
está en el aire. Entonces podemos conseguir esto decir no lingotes, y
podemos conectar esto Cuando el jugador ya no está
en el aire, queremos seguir adelante y jugar
la animación de salto final. Ahora para este de
aquí abajo, igual que antes, queremos escribir
click y buscar relación de tiempo restante para la tierra de salto cuando
es menor que algún
número que ingresamos aquí. Entonces queremos seguir
adelante y detener la animación de jump end y
volver a la carrera add. Para este voy a
escribir 0.5 otra vez y voy a compilar ahora podemos seguir adelante
y probarlo y ver qué pasa si haces clic en
play y maximizas esto aquí. Cuando corro y salto, se ve
que tengo una animación de inicio de
salto. También tengo una animación de salto
terrestre. Se puede ver más
claro si pongo este número a
algo muy bajo. Si vuelvo a éste también y lo pongo a
algo muy bajo, se
puede ver que las transiciones. Si hago clic en play jump, tiene una animación de inicio de salto. Y tiene una animación de salto
terrestre. Y mira que la
animación de salto terrestre es más visible. Ahora parece que el jugador se desliza por
el suelo cuando
el jugador aterriza. Así es como
lo controlas aquí para la proporción de tiempo restante,
si haces clic en él, cuanto más alto pongas esto, más rápido
se va a cortar la animación. Si lo pones muy bajo, puedes ver que la animación no
está cortando rápidamente. Y parece que el
jugador se está deslizando. No obstante, si lo pones
a algo muy alto, por ejemplo 0.9 saltas, puedes ver que el jugador ya no
se desliza. La animación de salto
cortará mucho más rápido. Cuando este es un número mayor, solo
tienes que
sentarte aquí y ajustar este número así
como este número. Para el arranque en salto, sólo
tienes que hacer clic en Reproducir varias veces, intentar saltar, ver
qué funciona para ti, ver qué se ve bien, e
intentar ajustar estos números. Trato de jugar con esto, y el número que mejor me
queda para el arranque en salto es 0.8 Si
vuelvo para el extremo del salto, es 0.9 Eso es correcto. Así que vamos a hacer clic en Reproducir y
ver cómo se ve. Ahora si saltamos, se puede ver que
así es como se ve. Siempre puedes ajustarlos
un poco más si así lo deseas. Pero creo que esta es una buena ronda de
salida para el salto. Ahora lo que puedes hacer también. Puedes ver aquí si hago
clic en jugar y camino por ahí sosteniendo turno para
caminar y hago clic en saltar. La animación no se está reproduciendo. Esto es porque, recuerda que tienes que hacer la transición
de la caminata. Aún no tienes una transición para arrastrar de la caminata y la transición al inicio
del salto desde aquí, puedes ver esta
regla de transición igual que antes. Al igual que lo que hiciste
aquí para la carrera al ralentí, usas el Is en lingotes de aire Tienes que dar click aquí
y usar lo mismo. Si estás en el aire,
puedes hacer la transición de la caminata al salto. Ahora, no estoy seguro si quiero hacer transición de la
agachada al salto, pero puedes agregar esa
mecánica a tu juego, pero no quiero
agregarla por No creo que lo vaya a
tener así. Así que puedes hacer clic en reproducir ahora, y puedes caminar presionando Mayús, puedes hacer click en el espacio. Y ahora puedes ver
que pasa a la animación de salto cuando
estás caminando también.
38. 3.27 Introducción a las enumeraciones: Ahora mismo, quiero cambiar algo con el
movimiento aquí. Puedes ver si hago clic en turno y camino y si
tengo el control, puedes ver que realmente no puedo agacharme mientras
sostengo el Si sostengo turno para caminar y tengo control al mismo tiempo, no
estoy realmente agachado Tengo que presionar turno y
luego tengo que soltar turno y luego presionar C. Realmente
no me gusta eso. A mí me gusta, por ejemplo,
si haces clic en Cuervo, presionas
en turno al mismo tiempo, va a caminar
aquí así. Pero no está haciendo
esto ahora mismo. Tengo que soltar el
botón y luego puedo caminar. Y tengo que soltar el botón
de caminar. Y luego haga clic en, en la
agachada antes de que pueda agacharme. Y realmente no
quiero hacer eso. Sigamos adelante y arreglemos
esto y hagamos que el sistema un poco más avanzado para que
pueda tomar entradas así. Lo que vamos a utilizar
para esto son las enumeraciones. En esas lecciones, sólo quiero
presentarles las enumeraciones. Puedes volver a
la carpeta de planos y puedes hacer
clic derecho aquí y hacer
una nueva carpeta y llamar a
ésta enoms o Eso depende de ti. Puede hacer clic derecho en esta carpeta,
establecer un nuevo color y simplemente usar el mismo color que antes dentro de esta
carpeta. Vamos a hacer clic derecho, Ir a Blueprint y seleccionar esta llamada enumeración Adelante y hazlo,
y lo llamaré
como prefijo y voy a
llamarlo estados de movimiento. Y puedes abrirlo
y puedes ver una enumeración es básicamente
solo una lista de ítems Puedes hacer clic
aquí para agregar un artículo. Si solo hago clic aquí
un par de veces, puedes ver que es una enumeración es solo una lista
de elementos que puedes hacer Puede ser una lista de
cualquier cosa, por ejemplo, una lista de abarrotes, una lista de armas, una lista de estados de movimiento Como estamos haciendo aquí solo una lista de cualquier cosa que desees. También puede ser una lista
de artículos que puedes saquear o una lista de qué porciones
tienes en tu juego Cualquier cosa de la que puedas hacer una lista, puedes crearlos aquí. Al hacer clic en estos iconos, puede eliminar los elementos de la lista. Para el primero, sólo
vamos
a hacer una lista de estados de
movimiento. El primer estado de movimiento
que tenemos es correr. Entonces puedes volver
a hacer click aquí arriba. Entonces tenemos caminando. Ahora bien, en realidad no
necesita estar en un orden específico. Se puede hacer, por ejemplo,
correr primero y o el caminar primero y así sucesivamente. Pero ahora mismo tenemos
el correr y caminar, y también tenemos el agachado y puedes seguir
adelante y ahorrar Entonces muy, muy simple y la enumeración es solo
una lista de ítems En este caso, estamos creando una lista de los estados del movimiento, y los usaremos en la siguiente lección para hacer que el sistema sea un poco más
avanzado para el movimiento.
39. 3.28 Cambia variables de movimiento a grupos: Ahora que hemos creado
la enumeración, hagamos clic en el Jugador Vamos dentro de
la base de jugadores. Ahora volvamos al gráfico
de eventos aquí. Y voy a arrastrar esta
pestaña hacia un lado. Entonces tiene un poco
más de estructura
así para la primera. Por ejemplo, para el agachado, vamos a entrar en la función
agacharse Dentro de aquí, puedes ver que
estamos agachados y estamos poniendo
este lingote a C
y no agachado este lingote a C
y Vamos a hacer
este sistema un poco más avanzado para que pueda
tomar múltiples entradas. Sigamos adelante y eliminemos
estos bulones por ahora. Voy a arrastrar esto hacia abajo
así tengo más espacio para,
vamos a crear una nueva variable. Esta variable, la
vamos a llamar estado de
movimiento para
el tipo de variable. En lugar de simplemente hacer
estas variables predeterminadas, también
puedes hacer variables de cualquier cosa dentro del juego. Por ejemplo, se puede hacer una variable a partir de la
enumeración que acabamos de hacer Si solo
buscas estados de movimiento, puedes ver aquí, esta es
la enumeración que hice Solo asegúrate de buscar el nombre tal como lo has escrito, para el archivo. Estados de movimiento. Puedes ver aquí, si
vuelvo a la enumeración, se llama estados de movimiento Ahora tengo esto como variable y puedo
hacer click y compilar. Ves si le echo un vistazo
aquí al valor predeterminado, puede establecer el elemento de lista
aquí para la enumeración Puedes configurarlo en uno de estos
estados si estás corriendo, si estás caminando, si
estás agachado y así sucesivamente Puede hacer clic y
arrastrarlo hasta aquí y escribir conjunto. También puedes ver la
enumeración aquí. Puede configurarlo en uno de estos elementos
de la lista. Puedes ver que esto es muy
bueno y también lo
vamos a usar más
adelante para los widgets. Cuando estamos creando la interfaz de usuario, podemos hacer una lista de UI. Por ejemplo, menú principal, menú pausa, menú de escape. Podemos hacer el juego Main UI. Y así uno puedes
hacer una lista de cualquier cosa que sea realmente
útil usar aquí. En lugar de simplemente tenerlo así como una variable
estándar, quiero darle
múltiples valores. Puedes ver si me
conecté, quiero caminar, en lugar de simplemente agacharme, establecerás esta variable en caminar en
su No obstante, esto
simplemente será como antes, Realmente no
hay un cambio. Solo lo estás configurando
para caminar y no caminar. Y lo estás configurando para
agacharse y no agacharse. Ahora quiero que tenga entrada
múltiple. Lo
que quieres hacer. En cambio, quiero
dar click sobre esto, en el tipo aquí de qué tipo de
variable debería ser. Y voy a seleccionar una matriz en lugar de
una sola variable. Ahora lo que se compara
una matriz con una sola variable o
la variable única, solo
puedes
establecerla en un valor. Por ejemplo, si lo configuro para
caminar en el caminar, esto anulará este
valor que he establecido aquí. Para el agachado para la matriz, puedes imaginarlo como una caja y tienes múltiples
entradas dentro de aquí Se puede ver si compilo. Y cuando lo cambias a una matriz y haces clic
en este plus aquí, puedes ver que puedes
tener múltiples entradas. Se puede tener el
correr, el caminar, el agacharse a la
vez una matriz, se
puede imaginar como una caja Y estás poniendo todos estos
valores dentro de la caja. Sin embargo, si solo tiene una
única variable estándar, es solo un elemento que puede configurar para caminar,
agacharse, etc. Pero para las matrices, de nuevo, se
puede imaginar como una caja. Básicamente estás poniendo todos estos elementos
dentro de tu caja, y tienes todos estos
valores almacenados para ti. Otro uso para una matriz es, por ejemplo, ¿qué artículos
tienes en tu inventario? Por ejemplo, puedes tener un triste, puedes tener un escudo y así sucesivamente. Así podrás tener varios artículos
dentro de tu inventario. Puedes ver que
las matrices son muy agradables, o si tienes
varios elementos que quieres almacenar por ahora, eliminemos todo aquí. Y vamos a compilar
para el agachado. Vamos a arrastrar esto
agachado hasta aquí. Lo que queremos usar
es si arrastras, puedes decir set array
element para las matrices. Si no conoces todas
estas funciones, básicamente
puedes arrastrar
desde aquí y escribir array. Yo hago eso a veces si
hay algo que olvido o no sé,
puedes escribir array. Y puedes ver, puedes ver todas las funciones
para la matriz. Puede borrar, puede encontrar un artículo que estés preguntando
si contiene un artículo. Puedes encontrar un artículo.
Puedes obtener un artículo específico. Puedes preguntar si esta matriz está vacía y puedes
hacer algo con ella. Puede obtener la
longitud de la matriz. Puedes ver que tenemos muchas funciones que puedes
usar para la matriz. El que vamos a usar
se llama set array element. Vamos a establecer un artículo. Ahora también puedes usar este
si arrastras y escribes un, por ejemplo, escribe agrega aquí. Y puedes escribir el agachado. Cuando estamos agachados,
vamos a
agregarle el agachado, el
ítem. Sin embargo, este está funcionando
muy bien en un solo jugador, pero tengo muchos problemas
con él en el modo multijugador. A veces no se agrega y
trato de depurar mi código durante horas, y en realidad es solo
este molestando. No hay nada malo en tu código. Este es realmente malo
para usar en multijugador, tiene muchos errores, así que voy a
eliminarlo y usar este. Si desea agregar elementos, use este elemento sit array en su lugar para continuar
y conectarlo. Lo que quiero establecer es
cuando me voy a agachar, quiero poner el
ítem a Voy básicamente lo que estoy
haciendo aquí a través del código. Cuando hago clic en agacharse, estoy agregando este
agachado Bien, adelante y asegúrate haber eliminado todos los valores
predeterminados por ahora. Entonces ahora estamos poniendo
el agachado. Ahora para el índice, solo te pregunta dónde
quieres poner el agachado Si haces clic en la matriz
y haces clic en el más, puedes ver que tienes
un número de índice. Y si vuelvo a hacer clic en
el más, puedes ver que tienes
otro número de índice. Las matrices comienzan en el índice cero, y cuantos más elementos
agregue, se incrementará Será el índice uno, índice dos, el índice 345, y así sucesivamente. Entonces comienza en el índice cero. No empieza en el índice uno. Muy importante saber ahora para el índice en vez de
solo tenerlo ya esto va a ser un
problema. Porque si tomamos esto y copiamos
pégalo en el caminar, y también establecemos la
caminata en índice cero. Aquí se puede ver que
se superpondrá si estoy caminando, digamos, digamos que aquí
estoy agachado Presiono la agachada y
voy a eliminar todas
las demás Esta voy a
borrar así como esta. Ahora mismo estoy
agachado. Añadió el agachado a mi índice cero Ahora bien, si hago clic en el
caminar al mismo tiempo, va a superponer
mi agachada aquí, El valor agachado, porque lo va a establecer en índice
cero en lugar de
superponer cero en lugar de Lo que puedes hacer es
tomar de esto y decir, último índice. Se va a echar un vistazo a cuál es
tu último número de índice. Ahora mismo, mi último número de
índice es cero. Si agrego estos ítems, por ejemplo así, mi
último índice sería tres. Va a encontrar el último
índice que puedas sacar de esto y ahorrar pérdidas y agregarle
uno así. Y luego puedes
agregarlo al índice. Lo que básicamente estás
diciendo es encontrar el último índice número tres por ejemplo, incrementado en uno Aquí es donde quieres
agregar este nuevo valor. Nunca estás superponiendo
tus viejos movimientos. Voy a borrar todo esto. Compile ahora haz
clic en Tamaño a Ajustar, porque esto básicamente
hará espacio para el nuevo
estado que vas a agregar. Bien, ahora tenemos esto aquí. Ahora para el agachado, si ya no queremos
agacharnos, puedes tomar este estado agachado y puedes arrastrar desde aquí y decir Y puedes elegir
este llamado remove item y
puedes conectarlo aquí. Cuando ya no estamos
agachados, básicamente
queremos eliminar el agachado de este elemento
o de esta matriz aquí Cuando estamos agachados, estamos agregando el ítem a la matriz, al último índice más uno, lo que significa que
no estamos superponiendo el último elemento que agregamos,
que tal vez podría ser caminar
o correr y así sucesivamente Y luego cuando ya
no estamos agachados, queremos eliminarlo de esta matriz porque ya
no estamos agachados Bien, vamos a compilar. Vamos a copiar y pegar todo esto aquí. Copiarlo y pegarlo
al caminar. Voy a borrar la velocidad de
movimiento y la caminata. Vamos a añadir la velocidad de
movimiento más adelante. Hazlo más palanca también. Eliminaremos todo
esto. Pegar este código, conectarlo, y para este, seguir adelante y seleccionar el caminar en su lugar. Si ya no estamos caminando, podemos tomar esto y decir quitar artículo igual que
antes y conectado. Y se puede quitar el caminar. Y adelante y
organízalo un poco más. Bien, entonces tenemos el caminar, ahora estamos agregando el caminar. Solo asegúrate de tener los valores correctos
para caminar y para los agachados también
. Agachado, agachado Cuando estamos agachados.
Vamos a agregar el artículo cuando estemos caminando. También vamos a agregar
el artículo. No obstante, ahora para la carrera, realmente no
tenemos
un lugar donde podamos agregarlo para el running. Lo que quiero hacer es solo
quiero agregarlo por defecto. Si hago clic en el estado de
movimiento, quiero dar click
en el más aquí. Y sólo voy a agregar
el running como predeterminado. Porque cuando estoy caminando o cuando no estoy agachado
aquí y no estoy caminando, básicamente
estoy corriendo Yo sólo quiero que este estado de
movimiento sea por defecto. Cuando no estoy agachado
y caminando, correrá automáticamente Entonces puedes ver aquí, cuando
empiece a caminar, agregará esta caminata
al último índice más uno, lo que significa cero más uno. Se sumará el caminar aquí
abajo y nunca
se superpondrá a mi estado de movimiento de
carrera. Ahora que tenemos esto terminado, en realidad
terminamos
con este sistema. Se puede ver que es un
poco más avanzado, pero va a funcionar
mucho mejor que antes. Y se puede ver cuando
hacemos una enumeración, podemos reducir la cantidad
de variables que hacemos Porque ahora para la agachada,
puedes seguir adelante y dar
click en Eliminar Simplemente puedes eliminar esto. Y para el caminar también. Ahora puedes ver que solo tenemos una variable para el agachado y para el caminar más adelante Si quieres crear una
variable sprint para tu juego, puedes seguir adelante dentro
de la enumeración,
agregar la variable sprint, y para el sprint nuevamente,
igual que antes, seguir adelante y convertirlo en una función
para el sprint Al igual que el agachado y el caminar, puedes agregar el sprint así como
así
40. 3.29 Cambia las reglas de transición de animación: Ahora que terminamos
con este sistema, compilemos, guardemos todo. Cerremos esto
y
pasemos al plano de animación del jugador en su lugar Ahora dentro de aquí,
obtenemos un par de errores porque hemos eliminado la agachada y la caminata
en el gráfico de eventos del plano de
animación Simplemente puedes seguir adelante
y borrar estos, el agachado y el caminar, porque ya no lo
necesitamos Se puede compilar y se puede
ver que los errores se han ido. Lo que queremos
usar aquí en cambio, podemos dirigir desde aquí y decir estados de
movimiento que
queremos usar esta matriz
que creamos. Adelante y consigue esta matriz. Puedes escribir lick it promovido a una variable y simplemente
llamarlo estado de movimiento aquí dentro
del plano de animación Adelante y
conéctalo. Y conectar el está en Er junto con él. Y adelante y solo
hazlo un poco más organizado. Ahora cuando compilamos,
te da un error. No estoy seguro de lo que
realmente quiere aquí. Si acabo de compilar de nuevo, se
puede ver que desapareció. No lo sé, eso fue
solo un error aleatorio. Pasemos al gráfico de
animación. Dentro de la gráfica de animación,
vamos dentro de aquí. Ahora queremos cambiar todos los estados de movimiento
por el
primero de los ociosos a
caminar, por ejemplo. Puedes hacer clic aquí usando este lingote
que usamos antes Sigamos adelante y lo eliminemos. Tomemos este estado de movimiento. Ahora para esta matriz,
lo que puedes hacer es tomarlo desde
aquí y decir get. Básicamente solo queremos
sacar el paseo. Recuerda, si
vuelvo con el jugador solo para
explicarlo un poco mejor. En lugar de cuando
estamos caminando, básicamente
estamos agregando el elemento
walking a esta matriz. Ahora, para el plano aquí, el plano de animación,
queremos que este camine Realmente no sabemos en
qué índice se encuentra, porque podría
estar en el índice cero. Podría estar en el índice uno. Recuerda, nunca puede
estar en el índice cero, porque en el índice cero siempre
estamos corriendo. Entonces puede estar en el índice uno o dos para
saber qué es esto. En lugar de simplemente obtener, puedes arrastrar desde este de
aquí y obtener el último índice. Recuerden, usamos este
en la lección anterior, luego seguir adelante
y conectarlo aquí. Ahora estamos obteniendo
el último índice. Recuerda que cualquiera que sea el último índice es el
botón actual que estás presionando. Si estoy presionando en el caminar, mi último índice
sería caminar aquí. Si obtienes esto
y estás pidiendo obtener el último índice
para esta matriz, este último índice es igual. Para que puedas escribir un signo igual y seleccionar esta enumeración
igual Si este último índice
que obtuviste de esta matriz es igual a
caminar, esto es cierto. Significa que estoy caminando. Porque el último índice,
si está caminando, significa que actualmente estoy presionando el botón de caminar
y quiero caminar. Quiero pasar
de ocioso a caminar más allá de esto aquí y
volver e ir a éste. Vamos de la caminata a
la ociosa en vez de usar
esta no es caminar. Puedes copiar y pegar
el código que escribiste antes y simplemente puedes
cambiarlo a ejecutarlo. Si el último índice es igual a correr significa que
no estamos presionando el caminar, porque
lo eliminamos de la matriz. Y no estamos presionando a
los agachados también. Debido a
que lo eliminamos de la matriz, solo
nos queda el estado de
ejecución. Si está funcionando, entonces podemos seguir adelante y correr
y esto va a ser correcto. Bien, solo sigue adelante y copia y
pega esto a todos ellos. Esto fue para el caminar. Ahora para que los inactivos se agachen, puedes hacer click sobre esto En lugar de
que este esté agachado, puedes pegarlo Seleccione agachado, conéctelo. Vuelve atrás y de la
agachada para correr, otra vez, borra este pasado, selecciona
el running y conéctalo Se puede ver que en realidad es mucho
más fácil de usar, pero esta de
la agachada para caminar, podemos eliminar todo No lo necesitamos de
la agachada para caminar. Esto quiere decir que estamos caminando.
Podemos seleccionar el caminar. Y conectó lo mismo
de la caminata a agacharse. Esto significa que estamos agachados. Podemos seleccionar esto y seleccionar
agachado y conectarlo. Ahora hemos cambiado todos esos. Nosotros los hemos cambiado. Y éste es
sólo para el salto. Realmente no necesitamos
cambiar nada aquí. Vamos a compilar y
vamos a hacer clic en play. Vamos a probarlo.
Se puede ver como el jugador, puedo dar click en el
control, puedo agacharme Si mantienes turno
al mismo tiempo, puedes ver que ahora puedo caminar mientras tengo control y
turno al mismo tiempo. Si dejo ir el turno para volver a agacharme, se puede
ver que está funcionando. Y si dejo ir el control, estoy caminando por aquí ahora, la velocidad de movimiento no
es correcta, y tenemos que arreglarlo más tarde. Pero pueden ver ahora puedo
presionar múltiples botones. Si dejo ir el turno
ahora, puedo caminar normalmente. Puedo mantener turno otra vez, mantener el control al mismo tiempo. Se puede ver que ahora podemos mantener
pulsados los botones al mismo tiempo. Y va a hacer esta acción en vez de antes tuvimos
que soltar el botón,
antes de que pueda hacer esta acción. Bien, así que
probémoslo también en el cliente, solo para asegurarnos de que
funciona en multijugador. Para el cliente, puedo agacharme, para el servidor, puedo agacharme y no está
funcionando igual que Si recuerdas lo que dije, tenemos que replicar la
variable antes de que pueda funcionar Entonces si volvemos al jugador y hago clic en el estado del
movimiento, y hago clic en Replicar. Y replicado y compilar y hacer clic en jugar como la encuesta Otra vez, si me agaché, se
puede ver que funciona. Y si camino, vuelve a funcionar. También podemos probarlo para dos
clientes solo para asegurarnos. Juega como cliente y juega. Ahora tenemos dos clientes. Si haces el movimiento,
funciona correctamente. Ahora otra vez, para fijar la velocidad de
movimiento más adelante. Pero ahora se puede ver que todo
está funcionando correctamente.
41. 3.30 Arregla el tamaño del jugador: Antes de continuar fijando
la velocidad de movimiento, tenemos que fijar el tamaño del
personaje. Porque ahora mismo se puede ver como el personaje, si voy por ahí, soy un personaje muy pequeño y
tenemos que hacerlo más grande. No estoy seguro de si es
mi mapa el que es muy pequeño o si
son estos personajes los que importé del marketplace.
Son muy pequeños. De cualquier manera, en
realidad no importa. Lo que tenemos que hacer es que tenemos que
aumentar el tamaño del jugador. Esa será la solución
más fácil. Sigamos adelante y hagamos clic en
la base del jugador en la malla. Recuerda, tienes que
hacerlo en la base de jugadores. Automáticamente
lo aplicará al encuentro terrorista, terrorista haciendo clic
en la base de jugadores. Al hacer clic en este personaje, intenté probar un
poco con los tamaños. Solo intenté escalar esto un par de veces para
ver qué es lo mejor aquí. Pero si haces clic en la malla
y haces clic en este candado, puedes ver si solo
escribes un número aquí, la y y la z no está
escalando junto con la x, en realidad no está
escalada uniformemente. realidad no está
escalada uniformemente Puede hacer clic en este candado. Esto significa que si
cambias un número, éste lo cambiará
para todos ellos. Extrema derecha, 1.7
aquí, por ejemplo. Y puedes seguir adelante
y hacer clic en Compilar, y puedes dar click en Reproducir. Se puede ver si voy
por ahí ahora, soy muy grande
comparado con el medio ambiente. Puedes intentar
probar diferentes tamaños. Intenta correr por
tu entorno y ver cómo se ve. Creo que esto es quizá
un poco demasiado grande. Voy a disminuirlo a 1.6 Adelante y compilar
y dar click en Reproducir. Y trata de caminar por ahí
ahora en el entorno para ver como tu altura se
compara con las cajas. Incluso puedes dar la vuelta por
aquí y tal vez caminar esta rampa para ver el
tamaño y subir hasta aquí. Creo que esto es mucho
mejor que antes. Voy a usar este 11.6
si tenemos problemas más adelante, siempre
podemos
cambiarlo y arreglarlo después Podemos simplemente cambiar
el número aquí. No obstante, creo que
esto es bueno ahora. También tenemos que arreglar
esta cápsula de colisión. Porque si corro por ahí ahora, tal vez vaya a esta
parte y entre aquí. Se ve que me superpo
con todo. Y puedo saltar a la pared. Y esto se debe a que
hay que aumentar de nuevo el tamaño de esta cápsula de colisión. Si hago clic aquí arriba y
voy a la vista derecha, por
ejemplo, puedo aumentar
la mitad de la altura de la cápsula, puedo dar click en el personaje. Mueve al personaje hacia abajo para que
el pie quede en la parte inferior. Aquí pueden ver tengo que
aumentarlo un poco más. Entonces si vuelvo a hacer clic en la cápsula de
colisión, aumentarla, tal vez
algo así como 150. Y puedo
volver a hacer clic en el personaje , Mueve el personaje hacia abajo. Se ajusta mucho
mejor que antes. Ahora bien, en realidad no
tiene que ser preciso. Vamos a hacer un
mejor sistema más adelante. Pero con solo hacer clic
aquí, asegúrate de que el pie esté en la parte inferior. Aquí, puede hacer clic en
esta cápsula de colisión. Ahora probablemente tengas que
hacerlo más amplio. Puedes hacer click, dar click
en la vista frontal, Ahora tenemos que hacer el
radio un poco más ancho. Y solo voy a
hacerlo un poco más ancho que estos brazos para que no
choquen con los objetos Algo así,
tal vez 60 precisamente. Podemos seguir adelante
y dar click en play. Ahora podemos andar por ahí. Es mucho más
preciso que antes. Puedes intentar
entrar aquí y
puedes ver que no
te permitirá. Tenemos caja pequeña. Si haces clic en control,
puedes caminar aquí, pero también puedo dejar el control y ya ves que me estoy
superponiendo ahora, tenemos que arreglar estos
pequeños problemas más adelante. Pero puedes ver en general
todo está funcionando bien, el tamaño del personaje es
mucho mejor que antes. Entonces sigamos adelante y continuemos.
42. 3.31 Establece la velocidad de movimiento: Ahora que hemos mejorado
nuestro sistema de movimiento, sigamos adelante y fijemos
la velocidad de movimiento. Vamos a cerrar esto. Y voy a volver al jugador en
la base de jugadores. Dentro de aquí, lo que quiero
hacer es hacer una nueva función. Vamos a hacer clic en el plus aquí arriba. Escribamos F, ajustemos la
velocidad de movimiento para esta función. Simplemente lo que quiero
hacer es tomar este componente de
movimiento del personaje y establecer la velocidad máxima de caminata. Esto es simplemente lo que
quiero hacer ahora. Quiero establecer esta velocidad máxima de
caminata
dependiendo de si el jugador está corriendo
o si el jugador está caminando, o si el jugador está agachado Ahora la forma en que podemos hacer
esto es que podemos dirigir desde éste y decir seleccionar. Y se puede ver este
llamado select. Esta es la primera vez que
estamos usando esta. Y este es
realmente, muy útil en los juegos o aquí básicamente en cada juego
que hagas en motor real con planos te permite seleccionar una opción dependiendo de
lo que conectes aquí abajo Digamos por ejemplo, estás
enchufando un arma aquí. Y dependiendo de qué
arma estés enchufando, tendrás como la velocidad de
disparo o
tendrás cuántas balas tienes en esa pistola y así sucesivamente Tan nota muy útil
para usar en este caso. Vamos a establecer
la velocidad de movimiento dependiendo de si estamos corriendo, agachados o caminando,
en realidad necesitamos esta velocidad de
movimiento nuevamente Consigamos el último
índice igual que antes. Recuerda que el último índice es
el último botón que hemos pulsado y vamos a
arrastrar de aquí otra vez
y digamos obtener y obtener una copia, y conectemos este. Bien, así que ahora estamos recibiendo
el último movimiento. Estamos presionando en el teclado y vamos a arrastrar de esto
ahora en vez de antes, arrastramos de esto y escribimos igual y lo hicimos así Ahora para los selectos, ahora vamos
simplemente solo para obtener el último índice y ver qué está empujando
actualmente el jugador. Y podemos arrastrar de esto
y enchufarlo aquí. Y ahora se puede ver el
correr, caminar y agacharse. Y la razón por la que ves
esto es porque simplemente lo está tomando de esta enumeración que
hemos escrito Si añades más cosas a esta enumeración también
agregarás más opciones a aquí Sea lo que sea que agregues a
esta enumeración, podemos ver muy útil ahora, siempre que estés corriendo, puedes tener esta variable de velocidad de
carrera Puedes arrastrarlo y enchufarlo aquí siempre que
estés caminando, puedes enchufarlo aquí
siempre que estés agachado Realmente no tenemos uno todavía. Vamos a hacer clic derecho en éste, ascendido a una variable
y llamarlo velocidad agachada Sigamos adelante y compilemos ahora. Por ahora, realmente no tengo números de movimiento
específicos, los
vamos a
ajustar más tarde. Por ejemplo, para el running, puedes escribir 1,000
para el caminar, puedes escribir 500
para el agachado, puedes escribir 150 Esto es solo para ver si
funciona y puedes seguir adelante
y hacerlo más organizado. Bien, para este
conjunto de velocidad de movimiento, lo que quiero hacer es
volver al gráfico de eventos. Y comencemos con la agachada. Para los agachados, aquí estamos
haciendo la agachada. Y entonces tenemos que tomar esta velocidad de movimiento establecida
y ponerla por aquí. También aquí abajo, necesitamos establecer también
la velocidad de movimiento, arrastrándola hasta aquí, establecer la
velocidad de movimiento porque cuando ya no
estamos agachados, de nuevo, necesitamos obtener el
último índice y ver si es correr,
caminar Tenemos que hacer esto
también para caminar. Volvamos a arrastrar la velocidad
de movimiento establecida. Enchúfelo. Y lo mismo aquí
abajo, Establecer la velocidad de movimiento. Ahora para la carrera,
no importa porque si quitamos la
caminata y la agachada, va a estar corriendo aquí como último índice y va a ir
y tomar la velocidad de carrera Bien, hagamos clic en Reproducir y probarlo y ver
si todo funciona. Entonces aquí estoy como servidor. De hecho, estoy corriendo
aquí para correr. También es necesario
cambiarlo primero. Aquí en el valor por defecto en el componente de movimiento catal
para la velocidad máxima de caminata. Ya que escribí aquí que la velocidad máxima de caminata
sería de 1,000 por defecto, escribamos 1,000
aquí también por ahora. Entonces son lo mismo aquí para
la velocidad de caminata, 500, bien. Volvamos a hacer clic en jugar
, probado. Ahora estoy caminando y
es muy rápido. Vamos a
ajustar esto más tarde. Crolick, turno para caminar. Se puede ver que todo está funcionando agacharse y
cambiar al mismo tiempo Ves que hay un error,
una pelea agacharse o una prensa
agacharse y luego Se puede ver que el movimiento
sigue siendo el agachado. La razón por la que esto es
porque cuando estás agachado, escribes esto,
tienes éste Nunca te agachas a menos que
realmente te quites el dedo
del botón agacharte Nosotros en realidad, cuando nos agachamos
y caminamos al mismo tiempo, seguimos en
este estado agachado En realidad necesitamos agacharnos para que la
velocidad de movimiento sea correcta Volvamos a la velocidad
de movimiento establecida. De hecho, vamos a
agacharnos si estamos agachados para
que parezca correcto, lo que vamos a hacer es que
solo vamos a Y voy a extender
esto aquí, copiar y pegarlo. Lo que hay que
hacer es arrastrar de esto y decir igual y necesitamos ver si
es igual a agacharse Tenemos que preguntar, ¿el jugador está
actualmente agachado o no? Si el jugador se encuentra
actualmente agachado, necesitamos simplemente escribir
esta agachada Si el jugador está agachado, es
decir, si el último índice
está realmente caminando A pesar de que el jugador también
presiona el botón agacharse, pero el último índice es caminar, el jugador está caminando actualmente Necesitamos en realidad,
vamos a conectarlo más adelante. Podemos agacharnos. Cuando
quitemos el caminar, vamos a conectarlos aquí.
Este es el agachado Y aquí nos agachamos. Y podemos simplemente seguir adelante
y enchufarlo aquí. De nuevo, solo voy
a hacer click y hacer un nodo trasero hacia afuera aquí y
voy a enchufar este de aquí. Sí, eso parece correcto. Ahora si me agacho, va a volver a poner el
agachado Si no estoy agachado,
digamos que estoy presionando el botón de caminar al mismo tiempo que estoy
presionando
el agachado, en realidad
va a agacharse realidad
va Y entonces voy a
aplicar esta velocidad de caminata. No obstante, cuando dejo de caminar y sigo presionando
el botón agacharse, simplemente
se
va a agachar aquí Vamos a hacer clic en Reproducir y ver. Vamos a hacer clic en Shift to Walk. Ahora puedes ver si hago clic en agacharse y hago clic en
Shift al mismo tiempo, puedes ver la
velocidad de movimiento ajustar correctamente Si
vuelvo a dejar el turno y me agacho, se
puede ver que las velocidades de
movimiento se están corrigiendo aquí y
están caminando correctamente Si me muevo, me agacho
y luego cambio, o luego primer turno
y luego agacharme, puede ver que también está Nuestra velocidad de movimiento
funciona correctamente. Ahora lo que básicamente
hicimos es que hicimos que esta función
estableciera la velocidad de movimiento. Ahora estamos preguntando si el
jugador está agachado o no. Y la razón por la que hacemos
esto es si no lo estamos haciendo y estamos presionando
primero el botón agacharse, vamos a aplicar
esta función agacharse Sin embargo, si
todavía estás presionando el botón agacharse y luego
presionar el botón de caminar,
todavía está teniendo
este agachado aplicado
porque nunca te agachas,
nunca dejas que este botón todavía está teniendo vaya por el agachado nunca dejas que este Básicamente aplicaría el movimiento
equivocado a pesar también
han establecido el movimiento para
la velocidad de caminata. Sólo estamos preguntando aquí, ¿estamos agachados o Si estamos agachados,
solo sigamos agachados. Si no estamos agachados, asegúrate de estar agachados
antes de hacer todo esto Porque si no te
agachas, sigues aquí arriba. Solo nos estamos asegurando de que estamos aplicando el movimiento
correcto. Ahora que la
velocidad de movimiento está terminada, podemos guardar todo y podemos pasar a
la siguiente lección.
43. 4.01 Espacio de mezcla de offset de objetivo: Ahora estamos listos para
crear el Desplazamiento de Apunte. Para que el jugador
cree el desplazamiento de objetivo, volvamos a
la carpeta del jugador. Dentro de aquí,
volvamos a Animaciones. Y vamos a hacer clic derecho
aquí, Ir a Animación. Ahora tenemos algo
llamado desplazamiento de objetivo, pero también tenemos uno
más simple llamado desplazamiento
de objetivo uno D. Esto es lo
mismo que el espacio de mezcla. En realidad tienes algo
llamado espacio de mezcla. Una D para esta,
solo te la estoy mostrando rápidamente Para
el espacio de mezcla. Por ejemplo, se puede ver antes de que tuviéramos el movimiento de
ocho vías, pero una D es simplemente pasar de caminar a correr un espacio de mezcla
muy simple. Ahora para el desplazamiento de Am, permítame eliminar este clic
derecho de nuevo. En lugar de hacer
el movimiento ocho, vayamos al legado y
utilicemos el offset Aim. Una D. Voy a
seleccionar de nuevo mi esqueleto y llamarlo un
O stand desarmado Vamos a hacer doble clic en éste. Esta es la compensación de objetivo. El Objetivo compensado,
muy, muy básico. Solo tenemos nuestro objetivo aquí es el centro donde
estamos mirando hacia adelante. Y el jugador está
mirando hacia abajo por aquí. Y el jugador está
mirando hacia arriba por aquí. Lo que tenemos que hacer, al
igual que el espacio de mezcla, tenemos un eje horizontal. Esta es nuestra dirección. Podemos escribir dirección. El valor mínimo
para la dirección es -90 Esto es cuando
estamos mirando hacia abajo, el máximo es 90, esto es cuando estamos buscando
la velocidad del peso Sólo voy a aplicar
igual que antes lo que hicimos con los espacios de mezcla. Voy a aplicar un poco de suavidad para que se vea mejor Y ahora estamos listos para aplicar la animación. Vamos a
guardar todo. Ahora puedes ver que también he importado para ti las compensaciones de objetivo Si tomas uno de ellos por ejemplo, vamos a hacer éste. Se puede ver cuando
intento
arrastrarlo, dice tipo de
animación aditiva no válida. Entonces tenemos que arreglarlo. Y pasemos
a la siguiente lección para arreglar este tipo de aditivo.
44. 4.02 prepara las animaciones de desplazamiento de objetivo: Antes de que podamos usar
nuestras compensaciones de objetivo, tenemos que prepararlas. Así que vamos a las animaciones
assets. Y aquí es donde están todas
tus animaciones. Recuerda, no está dentro de las animaciones la
que te di. Está dentro de estos,
los activos, animaciones a las que
nos dirigimos antes. Por ejemplo,
busquemos un desplazamiento de animación. Si solo escribes AO aquí arriba, verás todos los desplazamientos de
animación Ahora puedes dar click en uno de ellos y aquí puedes ver
éste, por ejemplo. Esta es la pistola mirando
hacia adelante, pistola central agachada. Para este, se puede
ver el tipo de aditivo, esto es de lo que
estaba hablando. Este, tienes que
hacer clic aquí y configurarlo en malla de espacio. Entonces hay que dar clic aquí y decir cuadro de animación seleccionado. Ahora hay que seleccionar el
ídolo para esta animación. El ídolo para esta animación es el ídolo agachado de pistola,
podemos buscar aquí Si solo buscas ídolo, éste de aquí,
animación agacharse Asegúrate de elegir esto para
tu esqueleto reajustado y
no para la pistola ídolo agachada de
animación manqin predeterminada Este sería el
correcto para éste. Sigamos adelante y
ahorremos ahora para éste. Puedes ver si lo
cierro y
vuelvo a las animaciones de mis
jugadores. Ábrela aquí,
puedes ver si
vuelvo a la pistola del sensor, si la encuentro aquí. Éste de aquí. Pistola con
sensor agachado Ahora bien, si lo arrastro hasta aquí, ya se
puede ver que está funcionando. Tenemos que hacer esto
con todos ellos. Se puede ver que
los otros
también son inválidos para
el tipo de aditivo. Permítanme simplemente borrar
esta por ahora. Y tenemos que
hacerlo por todos ellos. Ahora, hay una manera
más fácil de hacer esto. Si vuelves a hacer clic en
los Activos, animaciones, vuelves a
buscar el AO. Ahora puedes hacer clic en el
primero, Hold Shift. Haga clic en el último, puede escribir haga clic en
Ir a Acciones de Activos, y luego haga clic en
Edición masiva a través de la matriz de propiedades. Dentro de aquí, puedes editar los ajustes
de todos ellos a la vez. Un truco muy útil para hacerlo. Aquí puedes ver también
puedes editar otros ajustes como la
compresión, la animación. Puedes editar cosas como esta, pero por ahora
solo nos
interesa la
configuración de aditivos aquí. Veamos aquí, el tipo de animación
aditiva. Puede hacer clic aquí y configurarlo espacio de
malla para todos ellos. Para todos ellos,
puede hacer clic aquí y
configurarlos en el marco de
animación seleccionado. Ahora para la animación de pose base, no puede ser
lo mismo
para todos ellos porque algunos de ellos tienen una
pistola, un rifle, y así sucesivamente. Así que vamos a cerrar todo. Ahora que tenemos los ajustes
básicos establecidos, podemos seguir adelante y
guardarlos primero. Ahora lo que podemos hacer, por ejemplo, comencemos con
la pistola agachada Dando click en éste.
También estoy haciendo clic en esta agachada abajo
y agacharse pistola hacia arriba Solo tenemos tres por cada centro de
pistola hacia abajo y hacia arriba. Ya podemos dar click sobre ellos aquí, click
derecho Acciones ácidas
Editado a granel vía matriz de propiedades. Nuevamente, podemos ir a
la configuración de aditivos. Haga clic en este botón aquí,
estos cuadrados aquí. Tenemos que encontrar
la animación ociosa para esta pistola de gruñidos Podemos ver que es
la pistola agachada. Tenemos que encontrar al ocioso. Para la pistola inactiva agachada. Ahora es correcto.
Vamos a cerrarlo. Tenemos que hacerlo también
para el rifle aquí. Haga clic en el rifle agacharse, el
rifle agacharse y el
rifle agacharse Haga clic derecho en Acciones Bulk
Edd vía Matriz de propiedades. Vaya a la configuración de aditivos. Haga clic en los cuadrados. Ahora tenemos que encontrar la agachada. Para el rifle inactivo agacharse,
rifle aquí . Ciérrelo de nuevo. Se puede ver que es sólo
el mismo método, pero tenemos
que hacerlo varias veces. Ahora es para los
desarmados. Éste. Éste y
éste. Clic derecho, edición
masiva a través de la configuración de
aditivos de matriz de propiedades . Haga clic aquí
y luego busque inactivo. Ahora necesitamos encontrar la
agachada para los ociosos,
desarmados, así como Así que solo voy a hacer lo mismo por
el stand también. Y puedo ver que
éste tiene un nombre equivocado. Así que sólo voy a
cambiarle el nombre antes de continuar. A éste se le llama AO,
retírese desarmado. En lugar de esto,
ahora voy a aplicarlo para el stand,
igual que el agachado Y voy a saltarme adelante. este momento, los he preparado
todos para que veas si solo
buscas uno de ellos, por
ejemplo el
rifle de pie AO, puedes pinchar sobre él y ahora puedes ver que
lo
has aplicado rifle Animation Idol. Solo asegúrate de que estás aplicando la animación ociosa correcta, de lo
contrario estará mal. Así que lo hice por todo
el stand aquí
así como el agachado Ahora guardemos todo y pasemos
a la siguiente lección.
45. 4.03 Añade animación al desplazamiento de objetivo: Vamos a crear ahora la
compensación Am para los movimientos
desarmados Pasemos a los planos. Y vuelvo a volver
a la carpeta de animaciones. Yo en realidad, hagámoslo primero
para el estrado. Antes de hacer los otros, hagamos clic en este soporte
desarmados dentro de aquí Recuerda que hicimos la
dirección e
hicimos la suavidad
en el peso aquí Ahora lo que podemos hacer es que podemos
buscar AO para éste. Ahora es el estrado desarmado. Necesito el movimiento desarmado. Entonces el stand comienza
de aquí a aquí. Necesito el centro Primero, tomemos el centro desarmado Este clic y
arrastre y mantenga presionado Mayús, y luego se ajustará aquí. Ahora para el -90 en la
dirección esto está mirando hacia abajo, necesitamos este
llamado stand significa clic
desarmado y arrastre y mantenga presionado shift para
ajustarlo en esta esquina Luego, para el movimiento hacia arriba, ponte de pie desarmado, mantén el turno
y conéctalo aquí Ahora al hacer clic en el
control y mover el ratón, se
puede ver que este desplazamiento de
animación está tomando acción. Esto
se ve genial. Siempre podemos ajustar
qué tan lejos está mirando hacia abajo y qué tan lejos está mirando hacia
arriba más adelante si queremos, si creemos que esto se
ve un poco ridículo. Así que siempre podemos hacerlo
así en vez de esto. Siempre podemos
ajustarlo más adelante. Pero por ahora, vamos a
guardar todo. Esto está funcionando ahora
hagámoslo por los demás. En realidad solo voy a
hacer clic derecho en este y duplicarlo. Y llamémoslo brazo gruñido. Ahora para el caminar, en realidad es
lo
mismo que el de pie. Realmente no necesitamos
uno para caminar. Ahora que tenemos
esto duplicado, hagamos doble clic sobre él. Permítanme simplemente borrar
esta por ahora. Ahora esta es la agachada. Busquemos aquí
el agachado, el brazo central
agachado, y el brazo agachado, y
el brazo agachado arriba . Ahora puedes ver que esto también
está funcionando. Bien, sigamos adelante y
guardemos todo ahora. Vamos a
hacerlo más adelante para la pistola agachada y el rifle
y así sucesivamente, pero por ahora
realmente no los necesitamos Bajemos coloso ahora. Antes de que podamos aplicar
estos desplazamientos de animación, tenemos que calcular
la dirección del objetivo Necesitamos saber en qué
dirección apunta el jugador,
si está arriba o si está abajo. Y hagámoslo
en la siguiente lección.
46. 4.04 Cálculo de la dirección del objetivo: Muy bien, ahora es el momento de
calcular la dirección de puntería. Y podemos hacerlo de manera muy sencilla
acudiendo al jugador. Ahora yendo a la
base de jugadores dentro de aquí, hagamos realmente
una nueva función. Hagamos una nueva función
llamada calcular la dirección del objetivo. Para esta función,
permítanme simplemente
compilarla y dejarme volver
al gráfico de eventos. El lugar que quiero colocar este, tiene más sentido
para este evento look. Aquí es donde controlamos el movimiento del ratón
cuando estamos en juego. Esto tendría más
sentido ponerlo aquí,
en realidad, después de este, permítanme simplemente arrastrar esto, calcular una dirección, y
simplemente enchufarlo aquí. Ahora básicamente lo que queremos hacer es establecer un flotador llamado dirección de
puntería. Hagamos un nuevo flotador
llamado dirección de puntería. Y vamos a cambiarlo
en una variable flotante. Vaya, entero. Flotar, compilar y guardar. Ahora dentro de esto aquí, tomemos esta dirección de puntería. Simplemente queremos configurarlo. Ahora recuerda lo que dije
antes, en multijugador, nunca se
puede establecer una
variable para un cliente. Necesitas estar en
el servidor para establecer una variable y luego
configurarla para replicarla. que configurar este
para replicarlo, porque los clientes
necesitan saber en
qué dirección están apuntando los otros
jugadores Las animaciones se actualizan correctamente para todos los clientes
conectados. El servidor necesita replicar esa información
a los clientes De lo contrario, los clientes
no podrán ver en qué dirección apuntan todos
los jugadores. Y sólo van a
estar mirando hacia adelante. Y es como si nada
estuviera pasando cuando
estableces variables y las
pones para replicarlas. Nunca se pueden establecer y replicar variables
a través del cliente, tiene que ejecutarse a través del servidor Ahora puedes ver si escribo
una cadena de impresión a partir de esto. Ahora te voy a dar
un truco para saber cuándo estás en el servidor y
cuándo estás en el cliente. este momento, debería imprimir una cadena automáticamente
cuando mueva mi mouse, porque
lo he conectado aquí y se
conectará aquí
si compilo ahora, y hago clic en play
y muevo mi mouse. Cuando muevo el ratón,
estoy en el cliente. También puedes ver que estoy
jugando como el cliente
aquí arriba para que el cliente
pueda ejecutar este código. Cuando el cliente es
capaz de imprimir código, significa que este código que
estás escribiendo también se está
ejecutando en el cliente. Se puede ver cuando
juego como servidor, en realidad es el segundo cliente. Ahora déjame cambiarlo aquí arriba
para jugar como servidor de escucha. En su lugar, permítanme hacer clic en Reproducir. Ahora estoy jugando como el servidor y se puede
ver ahora es el servidor imprimiendo la cadena en la pantalla cuando estoy
jugando como el cliente. Déjame jugar otra vez
y llevarme a este cliente. Ahora puedes ver que el código
ahora está imprimiendo como el cliente. Cuando también puedes imprimir una cadena
a través del cliente,
esto significa que este código es ejecutado
tanto por el servidor como esto significa que este código es ejecutado
tanto por por el cliente
y no solo por el servidor. Cuando necesitamos
establecer esta variable, tenemos que asegurarnos de que
estamos ejecutándonos en el servidor. Lo que podemos hacer, de nuevo,
igual que antes, tomar esto y decir
interruptor tiene autoridad. Nos estamos asegurando de que solo
estamos ejecutando esto en el cliente servidor. Aún necesitas ejecutar el código. Si eres el cliente, primero
tienes que correr por
el servidor. Volvamos a
la gráfica de eventos. Yo sólo voy a volver aquí abajo. Vamos a
organizar esto más tarde. Aquí abajo podemos escribir
un evento personalizado, luego ejecutarlo
a través del servidor. Y lo voy a llamar
Calcular una Dirección. Y vamos a ejecutar esto en el
servidor y siendo confiables. Y voy a
tomar esto calcular una dirección y
conectarlo a aquí. Adelante y compilar
ahora
volvamos al calcular
una dirección. Y vamos a ejecutar este servidor, calcular la
dirección del objetivo aquí abajo. Y entonces podemos
continuar con el código. Cuando eres el cliente, vas a pasar por
el servidor y ejecutar esto. Y esto asegurará que como cliente nunca puedas
ejecutar este solo. Tiene que pasar por el servidor. Bien, Entonces ahora para
la dirección de puntería, cómo podemos calcular
esta es la primera lista, haga clic
derecho y digamos
control de rotación. Ahora estamos obteniendo la rotación
para el controlador del reproductor. Entonces podemos decir
obtener Rotación de Acta. Tenemos la rotación para
el controlador del jugador y tenemos la
rotación para el actor. Ahora lo que podemos hacer para
encontrar un punto medio, Necesitamos encontrar
este punto
medio para saber a dónde apunta
el jugador. Podemos tomar esto y decir delta y elegir este
llamado delta rotador Puedes enchufar esto, es a través de la rotación del
controlador del reproductor y la rotación del actor. Va a encontrar
un punto medio través de este rotador delta Ahora vamos a romperlo
aquí, rotadores. Cuando rompes un rotador, puedes ver la X, Y y la Z. También
puedes simplemente hacerlo Si escribes, haz clic aquí
y di split struct pin, eso es en realidad lo mismo Sólo me gustaría dividirme aquí. Entonces voy a escribir
break, Break rotador. Y puedo ver el XY y
Z para la dirección de puntería, necesitamos la y, la Y
Puedes tomarla y
enchufarla aquí. Ahora en realidad estás calculando correctamente
la dirección de puntería. Puedes seguir adelante y compilar
y guardar todo. Ahora estamos listos para
aplicar esto al plano
de animación y hacer que nuestro jugador que tenga
el offset Am funcione
47. 4.05 Añade el desplazamiento de objetivo: Sigamos ahora y agreguemos el desplazamiento de puntería al plano de
animación Vuelve a la carpeta de
animaciones y abre el plano de
animación del reproductor Aquí voy a volver
a la gráfica de animación. Y a partir de aquí vamos a desconectar
realmente esto. Te voy a enseñar
un truco con éste. Para esta máquina de estado, en realidad
puedes
arrastrar y decir Caché, y luego hacer clic en esta
. Guardar en caché Déjenme llamar a este Movimiento
Desarmado en Caché. Qué es esto, solo está
tomando la locomoción, toda
esta máquina de estado, y la está guardando
a través de este caché Lo está guardando dentro de aquí. En lugar de tomar este, en realidad
podemos simplemente usar el
caché. Vamos a ponerlo aquí arriba. En lugar de volver a usarlo, hagamos clic derecho y
digamos movimiento desarmado Ya ves que
puedes usar este. Se usa el
movimiento desarmado de caché aquí. Ahora puedes usar esto en lugar
de este aquí arriba. Hagamos clic derecho
y busquemos AO. Permítanme recordar realmente
cómo lo llamé. Usemos este soporte 10 desarmado. Busquemos
O, permanezcamos desarmados, y asegurémonos de que sea esto.
01:00 A.M. jugador offset. Un jugador offset, de pie armado. Justo como lo
llamamos aquí. Lo llamábamos el brazo de pie AO. adelante y conectemos
esto como el poste base, el movimiento desarmado con el desplazamiento de animación
desarmado Sigamos adelante y
conectémoslo aquí. En cuanto a la dirección de puntería. Recuerda, ya
calculamos esto. Tenemos que ir al gráfico del evento y tenemos que arrastrar
desde el jugador y necesitamos buscar la dirección de puntería.
Éste de aquí. Volvamos a promocionarlo a
una variable aquí dentro
del plano y
llamarlo dirección Vamos a conectarlo
aquí al final de, de la gráfica. Y déjame doble clic y
hacerlo un poco más agradable. Muy bien, vamos a compilar. Y ahora puedo volver
al gráfico de animación. Y dentro de aquí,
la dirección estoy tomando esta dirección de puntería, enchufándola aquí Y ahora vamos a compilar. Ahora cuando hacemos clic en play, veamos si funciona.
Y se puede ver que funciona. Ahora bien, si miro hacia abajo
y si miro hacia arriba, en
realidad está funcionando.
48. 4.06 Añade la cámara del jugador a la cabeza: Ahora cuando seguimos adelante
y jugamos el juego, se
puede ver que la cámara está
flotando por ahí y realidad no está siguiendo la cabeza cuando
miramos hacia arriba y hacia abajo. Para hacer esto,
volvamos aquí. Agreguemos la cámara a
la cabeza del personaje. Para ello, necesitamos encontrar el esqueleto de nuestro
personaje ahora mismo. Está dentro del mercado, dentro del
carácter militar Silva, y este es el esqueleto que
hemos estado usando hasta ahora. Déjame simplemente
hacer doble clic en él aquí. Dentro de este esqueleto,
encontremos el hueso de la cabeza. Simplemente puedes ir por aquí y tratar de buscar el hueso de la cabeza, y puedes ver que está aquí abajo. También puedes simplemente
buscarlo aquí arriba. Un tercer método es hacer clic
en el personaje aquí arriba. Ir a Huesos e ir
a Toda la Jerarquía. Esto te mostrará todos los
huesos para el personaje. Simplemente puedes seguir adelante y
hacer clic en el hueso de la cabeza. Y puedes ver que
también será seleccionado aquí. Quiero
volver a hacer clic en el personaje e ir a Bones. Y seleccionarlo sólo para poder volver a
quitar esos huesos. Ahora que has
seleccionado el hueso de la cabeza, sigamos adelante y haz clic derecho
aquí y creamos un zócalo. Agrega una toma para una toma. Es solo un soporte
vacío que puedes usar para
adjuntar artículos a él. En este caso, vamos a utilizar este soporte para fijar
nuestra cámara a la cabeza. También puedes imaginar que puedes usar esto para armas también. Por ejemplo, si
digamos que quieres adjuntar un AK 47 al
costado del personaje, siempre
puedes agregar un
socket al lado
del personaje aquí,
tal vez a la cadera. Y luego se puede fijar el arma también
a través de un zócalo. Pero por ahora sólo
vamos a agregar una cámara. Vamos a la derecha este hueso de la cabeza, vaya a Agregar zócalo. Y déjenme dar click en él y dar click en dos en mi teclado
para cambiarle el nombre. Y déjenme llamarlo para
socket y cámara. Bien, esta cámara socket, tenemos ahora, sigamos
adelante y perdamos todo. Ahora volvamos
al plano. Ve al jugador y
ve a la base de jugadores. Bien, dentro de aquí. Volvamos a la ventana gráfica. Y ahora queremos
unir este resorte a
la cabeza o a la cámara socket que
acabamos de crear aquí
en los zócalos, se
puede ver en el panel de
detalles, al seleccionar el resorte, puede ver la
sección de socket y
también se puede ver que está
unido a nada bien. Ahora, si hacemos clic en esta carpeta, ya se
puede ver el socket. Ahora bien, si no ves esto
es porque no tienes este resorte dentro de
este componente de malla. Si arrastro esto afuera
aquí así, puedes ver si hago clic en esta carpeta, ahora
no pasa nada. Puedes ver que tienes que poner el brazo de resorte en
el personaje. Es un hijo de esta malla. Antes de que realmente puedas hacer clic
aquí y ver todo esto, también
puedes hacer clic en el terrorista de
condominios, por ejemplo. Cuando haces clic en el
antiterrorista, realmente no
puedes hacer clic aquí en la primavera para el
antiterrorista, tienes que hacerlo a
través del padre Entonces en la base de jugadores,
esto es posible. Tendrás el
brazo de resorte dentro de la malla. Y luego para el brazo de resorte, podemos dar click aquí y luego
podemos seleccionar la cámara. Recuerda, si no
tienes nada en la malla, por ejemplo aquí no tienes ninguno, lo has borrado y no tienes un personaje parado aquí, entonces no encontrarás
el socket aquí también. Es por esto que en la base de
jugadores
necesitamos un personaje para
estar dentro de aquí, porque necesitamos dar click aquí y luego agregarlo a un socket. Da click en esta cámara. Ahora la cámara está adherida
al personaje. Se puede ver que en realidad se
mueve con el movimiento de la cabeza. En realidad está apegado. Ahora
es más realista ahora. Ahora está flotando.
Vamos a hacer clic en el resorte para la longitud del brazo
objetivo. Voy a escribir cero, ya que es un juego en primera persona. Después para la ubicación
y la rotación, simplemente haga clic en estas flechas para restablecer la ubicación y
la rotación también. Puedes seguir adelante y compilar
y guardar todo. Sigamos adelante y haga clic en Reproducir y ver cómo se ve. Puedes ver que estamos dentro de la cabeza del
personaje ahora mismo, pero cuando miro
hacia abajo y miro hacia arriba, puedes ver que está
siguiendo la cabeza. Ahora cuando me quedo quieto y miro como
delante de mí, se
puede ver que también está siguiendo
la cabeza. La cámara se mueve ligeramente
lo mismo cuando corro. En realidad se mueve con el
mismo movimiento que la cabeza. Bien, ahora está apegado
a nuestro jugador. Volvamos y
tratemos ahora de ajustar el zócalo. Si vuelves a abrir el
esqueleto,
vuelvo al
personaje militar Silva, abro el esqueleto. Y dentro de aquí, vamos a
hacer clic en la cámara socket. Y yo sólo voy a ir al
frente aquí y tratar de
ajustar el zócalo. Puedes ver para el socket, cuando lo hayas
seleccionado, también tienes la ubicación relativa. Puedes hacer clic y arrastrar aquí. Y solo estoy tratando de
ajustarlo cerca de los ojos porque la cámara
está realista cerca de los ojos
del personaje A lo mejor diez en la X y
en la Y y la Z. está bien ahora mismo Déjame, sigamos adelante
y volvamos a jugar para ver
cómo se ve. Ahora estamos dentro de la
cabeza del personaje. Si miramos hacia abajo, si
miramos hacia arriba, se ve bien. No obstante, la
cabeza de los personajes está en el camino. También puedo ver los lados
del personaje está en el camino.
Déjame volver de verdad. Déjame simplemente empujar la
cámara ligeramente hacia adelante. Si haces clic y
arrastras esto, puedes ver que estás deslizando
la cámara hacia adelante. No obstante, no quiero
deslizarlo demasiado hacia adelante. Sólo voy a escribir
cinco en vez de cero. Déjame intentar volver a jugar. Se ve mejor. Ahora, sin embargo, todavía
podemos ver
partes de la cabeza. La cosa es que aquí no podemos ver el cuerpo dentro de nuestro personaje. Todo se ve bien. No obstante, la cabeza está en el camino. De hecho, vamos a ir a
la siguiente lección y quitarle la cabeza
a este personaje. Sólo el enemigo puede
ver tu cabeza, pero tú como jugador
no puedes ver la cabeza, es así
dentro de la cámara. Sigamos adelante en la
siguiente lección y hagamos esto.
49. 4.07 Oculta la cabeza modelo de jugador: Para ocultar la
cabeza de los personajes para el jugador, puedes volver a acudir al jugador. Y abramos
la base de jugadores. Lo que queremos hacer es quitarme esta cabeza como jugador. Cuando interpreto a mi
personaje, sin embargo, los enemigos aún pueden ver
mi cabeza encima de aquí. El motivo por el que me
quito la cabeza porque cuando soy el personaje de primera persona
aquí, tengo la cámara. En realidad está dentro de
mi cabeza, justo esto, y no quiero ver todo
esto, no es necesario. Ahora vamos a quitar la cabeza para el jugador que está
interpretando al personaje. Vamos a la
gráfica de la camioneta dentro de aquí. Sólo hagámoslo
aquí arriba en el inicio Play. Cuando empecemos a jugar
el juego por aquí, puedes hacer clic derecho y
tienes una función llamada hide o por nombre. Ocultar hueso por nombre.
Y selecciona eso. Y va a crear esta variable de malla para
ti automáticamente. Esta variable es simplemente
de esta variable de malla. Simplemente puede hacer clic y arrastrar
esto. Es el mismo. Bien, así que sigamos
adelante y conectémoslo. Ahora te pregunta, ¿
qué hueso intentas ocultar? Ahora bien, si vuelves
a tu esqueleto, estás tratando de
ocultar el hueso de la cabeza. Si solo haces clic en él,
puedes ver que se llama cabeza. Hay que escribirlo exactamente
como está escrito aquí. Es sensible a mayúsculas. Hay que escribirlo
exactamente como está aquí. Si acabo de escribir cabeza
así y hago clic en Compilar, y si hago clic en Placa
para jugar el juego, puedes ver que la cabeza
se ha ido para mí. Y también
lo puedo ver en mi sombra. Se puede ver que la cabeza se ha ido. Y en realidad se
ve mejor. Ahora como el
personaje de primera persona por el que puedo correr, todo se ve bien, nada está molestando.
Sí, es increíble. No obstante, el lado del
personaje, puedo ver esto, creo que es la radio
del personaje la que
en realidad nos está apareciendo
para arreglar esto. Siempre puedes
volver con el jugador aquí si tienes algo para tu personaje que aún está mostrando. Y da clic en el
zócalo para la cámara. Y luego puedes
volver a hacer clic en la Y y solo aumentarla ligeramente hasta que ya
no esté molestando. Si solo aumentas
esto a algo como diez y das clic en play. Y si miro hacia abajo
y camino de costado, ya ves
que ya no puedo
ver la radio. Sin embargo, no aumentes
demasiado de esta manera porque si lo
aumentas demasiado hacia adelante, la cámara en realidad está
atravesando paredes. Si hago
clic en jugar ahora veo que está recortando paredes porque
lo he aumentado demasiado. No
aumentes demasiado este. mejor en vez de cinco, quiero probar seis y ver
si eso soluciona mi problema. Si voy por ahí y sigo
viendo la radio ligeramente, puedo aumentarla
a siete En su lugar, intente volver a hacer clic en reproducir. Intenta jugar con el
valor mínimo para ver si lo arregla. Puedo ver que siete es el
número para ir conmigo, y todo se ve bien. No obstante, se puede ver mi
sombra, me falta la cabeza. Entonces también tenemos que arreglar esto. Sigamos adelante en la siguiente
lección y arreglemos todo eso.
50. 4.08 Añade una malla de tercera persona: Bien, ahora arreglemos la cabeza
faltante en la sombra. Entonces sigamos adelante y
vayamos a la base de jugadores. Déjame dentro de aquí, cómo podemos arreglar esto es que
en realidad podemos agregar otra malla de
tercera persona. Si haces clic en la
malla y vas a Agregar y
buscas malla esquelética Ahora bien, si no sabes
lo que es una malla esquelética, si eres nuevo aquí, es simplemente un modelo de tres D
que está animado en estos momentos Por ejemplo, la malla para tu, tu personaje está animado. Esta malla, si sostienes
el mouse sobre
ella, dice que el componente de malla esquelética es simplemente un
modelo de tres D que está animado Se trata de una malla esquelética. Adelante y vuelve a crearlo. Llamemos a este personaje de una
tercera persona, o malla de tercera persona,
dentro de aquí. Lo que queremos hacer, de nuevo, queremos seleccionar el personaje y tenemos que seleccionar
este estilo, uno masculino como este. Entonces tenemos que seleccionar el plano de
Animación aquí arriba. Reproductor de planos de animación. Ahora puedes ver que se está animando exactamente como nuestra malla por aquí Lo que en realidad queremos
hacer es este personaje. No queremos que nuestro propio
jugador vea este. Si haces clic en play, ahora
puedes ver que la cabeza está de vuelta. El motivo por el que la cabeza
está de vuelta es porque ahora tenemos esta malla que
estamos viendo en juego, pero también tenemos esta malla. esta malla de tercera persona, en realidad no
queremos que la gente vea porque solo estoy agregando esto para ver mi
sombra en el suelo y corregirla desde
la otra. Para ocultar esto a
todos los jugadores, podemos dar click en esta malla en
tercera persona. Y luego podemos bajar e intentar ir a la configuración de
renderizado. Puedes ver en la configuración de
renderizado, puedes hacer clic en Oculto en el juego. Ahora está escondido en el juego. Si haces clic en play, puedes ver ahora que
la cabeza se ha ido. Sin embargo, mi sombra también se ha ido. Tengo que arreglarlo también. Si vuelves a hacer clic en la
malla de tercera persona y
buscas sombra, tienes esta
llamada Sombra oculta. Puedo ver la sombra
de mi objeto oculto, mi malla oculta en tercera persona. Si haces clic en
sombra oculta, compilas. Puedes hacer clic en Reproducir. Mi personaje está oculto. No obstante, ahora también puedo ver la
sombra en el suelo. Ahora está funcionando correctamente.
Ahora esto está arreglado. Y volvamos solo para
asegurarnos de que no
tenemos ninguna colisión en este personaje
porque no queremos que este modelo de personaje
colisione con la malla de aquí arriba Al hacer clic en esta malla de
tercera persona, solo
voy a bajar a
la configuración de colisión y me estoy asegurando de
que diga que puede caracter arriba, voy a decir que no aquí. Y asegúrate de no haber generado eventos de
superposición en. Y asegúrate de que
no tienes colisión como el preestablecido de
colisión. Vamos a compilar todo. Vamos a guardar todo y pasemos a
la siguiente lección.
51. 4.09 Suavizado de cámara y FPS: Cuando estamos jugando el juego, hay una pierna ligera, lo
mejor no estoy seguro si
puedes notar ahora mismo, pero si solo corres y
tratas de mover el
mouse hacia arriba y hacia abajo, a veces en realidad se
siente un poco rezagado Para arreglar esta rotación, puedes intentar cerrar
este juego ahora mismo. Acude al jugador y dentro de aquí puedes
hacer click en el muelle. Si haces clic en el resorte, puedes habilitar este aquí debajo
de este llamado habilitar rotación de
la cámara Le. Esto suavizará la rotación de
tu cámara. Si juegas y
puedes sentir que en realidad es, se
siente un poco rezagado En realidad se puede sentir rezagado cuando trato de
rotar mi cámara Para solucionar esto, puede habilitar
la pata de la cámara de rotación, y esto suavizará la
rotación de la Se puede escuchar para la pata de rotación de la
cámara, se
puede tratar de establecer un número. Si lo pones muy, muy alto, puedes ver
cómo se ve. Aquí no está pasando mucho. Si a lo mejor lo pones a uno
e intentas volver a jugar, ya
puedes ver que es
muy suave así. Esto es demasiado. puede ver que está
tratando de suavizar la cámara. Esto
es demasiado. Tengo que aumentarlo
a tal vez algo así como diez y se puede
tratar de ver cómo se ve. No obstante, si lo pones demasiado
bajo, puedes ver que es suave, sin embargo se siente un poco rezagado y probablemente dará mareo por
movimiento a algunas personas Déjame ponértelo en
algo así como 30. En cambio,
compilo y trato de rotar alrededor. Yo sólo quiero que
se sienta natural. Sigue siendo un
tirador en primera persona y no queremos ponerlo demasiado alto
o demasiado bajo aquí, tal vez poniéndolo en 40 en su lugar. Sólo trata de seguir jugando de nuevo. Trate de aumentar el número. Intenta mirar a tu alrededor y
ver cómo se siente. Todavía se siente un poco y, tal vez algo así como 60. Y voy a tratar de mirar a su alrededor. Se siente mucho más natural, igual que un tirador en primera
persona. Intentemos ajustar
este número aquí. No quieres que sea demasiado baja, de lo contrario la cámara se
sentirá muy lenta
y está bien, esto está arreglado. Ahora vayamos a la
ventana o editemos realmente, y vayamos a
Configuración del proyecto dentro de aquí. Si buscas sin problemas, tienes algo llamado velocidad de fotogramas
suave. Tienes que tener
esto habilitado para tu juego si quieres
lanzarlo en otro lugar, por
ejemplo en Steam
o a un amigo. La razón por la que esto es un error que cometí cuando solté
Fm tail en Steam. Si no tienes esto limitado, si no tienes esto habilitado, entonces el jugador que esté
jugando tu juego va a ejecutar tu juego al
máximo de fotogramas por segundo. Depende de qué tarjeta
gráfica tengan. Si tienen uno muy,
muy bueno, lo mejor tu juego se ejecutará
a 800 cuadros por segundo, y en realidad utilizará muchos recursos para su computadora. Probablemente puedas
escuchar a la computadora haciendo mucho
sonido de los ventiladores porque la tarjeta gráfica
está funcionando demasiado. Tienes que habilitarlo
para evitar que el juego se ejecute y utilice todos los
recursos del jugador. Siga adelante y use esta velocidad de fotogramas
suave. El mínimo, sólo lo
voy a poner a 30 cuadros por segundo
como máximo. Por lo general lo pongo a
60 cuadros por segundo. Para otros juegos, sin embargo, este es un shooter en primera persona, necesitas más fotogramas por segundo. A lo mejor lo pondré a 200 como
el fotograma máximo por segundo. Creo que 200 está bien. No creo que
necesites más que eso. Cerremos esto
y guardemos todo. Pasemos a
la siguiente lección.
52. 5.01 Ajusta la velocidad de movimiento: Ahora estamos listos para ajustar
la velocidad de movimiento. Puedes ver cuando
haces clic en play, se está ejecutando demasiado rápido. Entonces, si corres juego, puedes intentar tener una idea de lo rápido que quieres
correr en tu juego. Ahora para mí, esto
es demasiado rápido. Realmente depende del
juego que estés creando. Ahora bien, si estás creando
un juego de ritmo rápido, esta carrera podría incluso
ser demasiado lenta para ti Para mí, solo estoy creando algo cercano
al contraataque En realidad no al 100% sino algo así. Voy a reducir ligeramente esta velocidad de
movimiento. Creo que es demasiado rápido. Puedo ir aquí en mi
base de jugadores, el componente de personaje. Y entonces puedo disminuir
mi velocidad máxima de caminata. Ahora voy a
disminuirlo a algo así como 700. Trato de jugar un par de veces y tratando de
ajustar este número. Y después tienes que volver a
hacer clic en Reproducir. Y sólo para correr aquí y
tratar de ver cómo se siente. Ahora solo sigue jugando el juego. Trate de aumentar y disminuir el número de velocidad
y ver cómo se ve. Creo que para mí esto está bien. Tal vez en realidad pueda
aumentarlo a 750 e intentar volver a jugar. Creo que 750 es el
número para ir con. Bien, entonces cuando estás
pesado con este, también
puedes recordar que tienes estas variables de flotación
también para la velocidad. Permítanme en realidad
simplemente hacer clic y arrastrar esto aquí arriba, así
que están juntos. Puede hacer clic en esta velocidad de
carrera y
establecerla en 750 también. Sigue y compile ahora
Para la velocidad de caminata, voy a ponerla en
algo así como 400. Y para la velocidad agachada,
algo así como 200. De nuevo, intenté jugar mis juegos un par de veces.
Conozco estos números. que, de nuevo, establecer la velocidad de la caminata a algo. Entonces tienes que hacer clic en Reproducir. Entonces tienes que hacer clic
en Shift to Walk e intentar ver si esta
velocidad de caminata es buena para ti. O si quieres
tenerlo un poco más rápido. Solo intenta jugar
tu juego una y otra vez e intenta
ajustar estos números. Ahora bien, si
juego mi juego y si corro por ahí y trato de tener una
idea de lo rápido que es, si hago clic en Shift
para caminar, creo que esto también se
ve bien. Y si hago clic en el control y trato de ver cómo
se ve, creo que esta velocidad también me queda
bien. Bien, así que sigamos adelante
y cerremos todo esto ahora que se ha ajustado la
velocidad de movimiento. Y ajustemos también la velocidad de animación
en la siguiente lección.
53. 5.02 Ajusta la velocidad de animación: Cuando ajustamos la velocidad de
movimiento, también
tenemos que ajustar la velocidad de
animación, lo
contrario se verá incorrecta. Si
volvemos a hacer clic en el jugador y hacemos clic en
la base de jugadores. Por aquí, quiero agregar
algo de longitud a la Primavera. Um, otra vez, igual que antes. La razón es que quiero ver mi animación de running y ver
qué tan rápido están corriendo. Ya se puede ver que estamos corriendo. En realidad se ve bien. Se puede ver que está
siguiendo el suelo. A veces tus animaciones para el personaje cuando
estás corriendo, son demasiado rápidas y demasiado lentas. También hay que ajustar la velocidad de
funcionamiento. En realidad se puede ver que aquí hay
alguna colisión. Por alguna razón
creo que es mi cielo. Si hago clic en este cielo de
aquí y de hecho lo
muevo, por alguna razón este
tiene una colisión puesta. Pero esto es sólo el cielo aquí
arriba y
realmente no importa dónde esté, sólo
vamos a
ponerlo por aquí. Bien, para la velocidad de la animación, lo que
necesitas hacer es ir a las animaciones. Y luego puedes establecer
las animaciones dentro de los espacios de mezcla que
creamos anteriormente. Permítanme comenzar con
el espacio de mezcla de carrera. Y dentro de aquí,
si solo bajas y puedes ver
todas estas mezclas. Ahora todas estas animaciones que agregaste aquí como puntos, también las
puedes ver por aquí. Ahora primero lo que quiero hacer, en realidad
quiero
aumentar mi velocidad de peso. Porque la velocidad del peso, recuerda, es el suavizado
de las animaciones. Creo que a veces se está deslizando un
poco demasiado. A lo mejor si lo vuelvo a aumentar a
6.5 en vez de 9.5. Recuerda igual que antes,
cuando lo aumentas, aplica menos suavidad
a la animación Yo solo quería
lucir más natural. Voy a abrir
el resto de ellos. Para el resto de ellos, también
voy a establecer la velocidad del peso en 6.5. 6.5 para el paseo también. Voy a establecer la velocidad del
peso a 6.5 Bien, eso está arreglado. Vamos a
guardar todo. Bien, antes de
que hagamos algo, también
puedes subir aquí y recordar cambiar
tu eje vertical. Valor máximo aquí. Recuerda que esta era la velocidad de
movimiento para la carrera. La velocidad de movimiento en
estos momentos para mi juego es de 750. Normalmente lo pongo a
algún lugar alrededor de la mitad. Voy a poner
éste a 350 en su lugar. puede ver cuando
lo pone a algo más alto, ahora se aplica aquí, 350. Sin embargo, mis animaciones siguen funcionando a los 300,
tengo que hacer clic aquí, arrastrar y mantener presionado Mayús, y solo ponerla aquí otra vez, hacer clic en mantener turno para volver
a ajustarla y ponerla por aquí. Nada nuevo. Esto ya
lo hemos hecho antes. Simplemente arrastra todas estas
animaciones hasta 350, y ahora están
funcionando a esa velocidad. Bien, así que hagámoslo
con el resto de ellos. Vamos a abrir la agachada. Mi agachada era una velocidad de 200. Si abres al
jugador y dentro de aquí en la
base de jugadores la velocidad agachada, puse en 200, así puedo ir al
agachado y puedo poner éste a algo No obstante, puedes ver si lo
pongo a algo más bajo, me va a dar muchos errores y todas mis
animaciones se han ido. Esto se debe a que está eliminando
todas esas animaciones. Aquí arriba, voy a
hacer clic en el control Z para traer todos esos de
vuelta. Aquí están. Recuerda disminuir todos
esos antes de que realmente empieces a jugar con estos números para
que no se eliminen. Los puse aquí abajo. Permítanme disminuir este
número a 100 ahora. Y ahora puedes tomar todos esos y sumarlos aquí arriba
a la velocidad máxima. Desearía que hubiera una
funcionalidad en la que
realmente pudieras tomarlas todas y moverlas hacia arriba al mismo tiempo.
No creo que los haya. En realidad ahora para la velocidad de caminata, se establece en 400. Voy a ponerla a 200, volviendo a la velocidad de
animación, y en su lugar la voy a poner
a 200, por la velocidad, voy
a moverlos de nuevo hacia arriba. Bien, ahora que esto está
arreglado, vamos a guardar todo. Volvamos a la carrera
ahora por la velocidad de animación. Empecemos con
la carrera hacia adelante. Voy a comenzar
con la carrera hacia adelante. Y la razón por la que hago esto
porque cuando esto es correcto, voy
a aplicar al resto de ellos. El “running forward”
es el primero aquí. Corre hacia adelante desarmado. Y puede hacer clic en
la flecha pequeña para ver esos ajustes para
la escala de tarifas. Si lo aumento a
algo así como tres y todos ellos maximizados
por alguna razón, esta es la carrera adelante Si lo configuro en tres
y hago clic en reproducir, puedes ver que mi
velocidad de animación es realmente, muy rápida. Ahora tienes que ajustar
la velocidad de animación para que
se ajuste a tu movimiento
si yo ahora mismo, uno es el predeterminado. Si le dijera a 1.1 sólo
un poco más rápido. Y si hago clic en play, y se puede ver cómo
se ve, ahora, la carrera por los
lados no está funcionando porque esto es sólo el run forward que hemos ajustado. Así es como se
ve. Para mí. Creo que 1.1 en la escala
de tarifas se ve bien. De hecho quiero
aplicarlo al resto de ellos. Lo que puedes hacer es
mantener el turno y hacer clic derecho. Esto copiará esto. O simplemente
puede
hacer clic derecho y copiar. Pero puedes ver Mayús
y el botón derecho del ratón copiarán esto también. Entonces no quiero hacerlo
para la animación ociosa. Las animaciones inactivas, solo quiero que
sean una como de costumbre. Más problema para la animación
en ejecución. La derecha delantera corriendo aquí. Voy a mantener la tecla shift y click
izquierdo para pegarlo. De nuevo, puedes simplemente
hacer clic derecho y pegarlo también. Pero puedes ver que el atajo
es shift y click izquierdo. Voy a pegarlo también en todas las demás animaciones,
así que se aplican
así. Sigamos adelante y hagamos clic en
Guardar. Vamos a hacer clic en Reproducir. Ahora también puedes ver cómo
se ve para todos los demás lados. Se ve un poco mejor. Y la razón por la que lo
aumentamos es para que no se vea
un poco como antes. Bien, ahora que esto está
hecho, déjame cerrarlo. También hay que
hacerlo para el agachado. Tienes que jugar aquí. agacharte y trata de agacharte
, mira cómo se ve Quizás de nuevo, necesitamos aumentar ligeramente
la velocidad de animación porque puedes ver que parece que desliza porque la
velocidad de animación es demasiado baja. Entonces hay que volver a entrar aquí, ir a la animación,
agacharse Voy a
ponerla a 1.1 otra vez, igual que mi carrera, solo
para ver cómo se ve. Y si me agaché y trato de caminar
hacia un lado, tal vez necesitemos
un poco más aquí,
1.3 En su lugar, haga clic en jugar Intenta agacharte y
ver cómo se ve. Ponlo a algo como 1.1 y luego puedes hacer click en Reproducir. Entonces puedes recordar, esto es sólo para el agachado No funciona si corres a los sitios
o
te agachas a los
sitios agacharte hacia adelante, y puedo ver cómo
se ve A lo mejor todavía se está
deslizando ligeramente. Si lo pongo a 1.2 en su lugar, hago clic en play y
me agacho Creo que esto se
ve mucho mejor. Vamos a intentarlo, en realidad 1.2 Lo que voy a hacer es volver a copiar esto y pegarlo en todas mis otras animaciones
que no estén inactivas. Las animaciones inactivas
que no me importan. Los tengo a razón
de uno. Eso está bien. Y para las demás animaciones, voy a ponerlo a 1.2 así
como esto va a guardar. Y luego juguemos y
veamos cómo se ve. Si también camino hacia los lados, se está deslizando todavía. De hecho necesito
aumentarlo a 1.3 tal vez. Déjame ir de nuevo. Aquí se puede ver que lleva algún tiempo. Hay
que probarlo. Si lo pongo a 1.3
lo copio y lo pego en todas
las demás animaciones. Justo como antes. Sigo adelante
y vuelvo a hacer clic en jugar. Déjame ver cómo se
ve ahora. Ahora es mucho menos, puedes ver que se ve
mucho mejor que antes. Podemos seguir adelante
y seguir ajustando esas velocidades de movimiento y esas animaciones y ver
cómo se ven. Cuando estés satisfecho, ahora
puedes ir al paseo,
hacer lo mismo, seguir adelante y hacer clic en Reproducir, Mantener turno, Intenta caminar por ahí. Te estás deslizando
demasiado ahora mismo. Ir al movimiento hacia adelante. Déjame ver si la
puedo encontrar aquí. Si voy al frente, éste de aquí,
Animación. Caminar hacia adelante. Si lo pongo a 1.3 pincho en play y mantengo
turno y trato de andar por ahí. Y sigue
deslizándose ligeramente. Si lo pongo a 1.5 en su lugar, mantenga turno e
intente caminar por ahí, se
puede ver que caminar
se ve mucho mejor. No me estoy deslizando por ahí. Puedes ajustar
la velocidad de movimiento para caminar o puedes ajustar
las animaciones para que se ajusten a
la velocidad de movimiento. Creo que 1.5 está bien para mí. Voy a copiar esto en todas
las demás animaciones
que no estén inactivas, así y en la parte posterior también. Y ahora se puede
ver que esto está inactivo, así que no voy a
copiarlo aquí abajo. Bien, haz clic en jugar, y
ahora puedes sostener turno y caminar e
intentar caminar hacia un lado. Se ve mucho mejor. Si
crees que esto es demasiado rápido, siempre
puedes reducir la velocidad de movimiento o
reducir la velocidad de animación. Eso está bien. De nuevo, realmente depende del
juego que estés creando. Creo que para mí esto está bien. Y siempre puedo venir aquí y ajustarlo después si no
estoy satisfecho. A veces cuando
cierro mi juego y
me conecto al día siguiente, a veces pienso que
algo se ve estúpido y lo cambio, trato de cambiar la velocidad de movimiento y la
velocidad de animación y así sucesivamente. Pero por ahora, me
queda bien. Así que tengo que cerrarlo ahora y dejar que lo guardemos todo. Y pasemos
a la siguiente lección.
54. 5.03 Arregla el recorte de pared de la cámara: Ahora tenemos que arreglar
el problema de la cámara. Si vuelvo al
jugador y pongo el resorte a
la longitud del
brazo de cero, solo para volver al
modo en primera persona y juego el juego, puedes ver si me acerco a
algo y lo miro hacia abajo, veces se corta a través de la pared así, como puedes ver aquí. Y puedo mirar a través de la pared, y la gente probablemente hará un
mal uso de esto y hará trampa en el juego para ver qué hay detrás la pared con el fin de arreglar esto. Hay dos maneras. La
primera forma es si vas al mercado
y vas al jugador y encuentras el esqueleto
para el jugador. Ahora
depende aquí de tu socket. Primero, el socket que
has agregado, puedes ver que he
puesto mi valor Y a siete, si lo pones a
cero, por ejemplo. Y haces clic en Reproducir, puedes ver que empujas hacia
atrás la cámara. Y puedes ver más de
tu cuerpo, así como así. Puedes intentar hacer
retroceder tu cámara, tal vez en vez de cero, puedas hacerla menos cinco. Puedes ver
cuánto puedes empujar tu cámara hacia atrás sin
que se vea mal. Así se puede ver menos cinco. Empiezo a, se puede ver mi
personaje cuello o cabeza, casi donde la cabeza ha desaparecido y realmente
no se ve bien. Menos cinco es demasiado. Lo pondría de nuevo a cero, por ejemplo, e
intentaría volver a jugar. El problema con este
personaje es que tiene radio. Puedes ver la radio
en el reproductor aquí. En realidad se está poniendo
delante del personaje o la cámara así
y un poco molesto. Ahora bien, si este fuera un personaje personalizado que
has diseñado, podrías
estabilizarlo un poco más para que en realidad no
pase por la cámara. Y si ese fuera el caso, entonces esta posición para el socket en realidad
sería mucho mejor. Porque se puede ver el cuerpo
y se ve bien así. No obstante, la radio es un poco
molesta para este personaje, así que voy a empujarla otra
vez hacia adelante. Esta es la razón por la que
en realidad la empujamos a siete, porque a las siete no podemos ver la radio y todo
se ve genial. Bien, ¿cómo podemos arreglar esto ahora? Realmente ya no podemos jugar
con el zócalo porque está colocado
lo mejor que podemos. La otra cosa es que puedes ir
a la base de jugadores y
puedes ir a la ventana gráfica
aquí en la base de jugadores, puedes hacer clic en el Componente
Cápsula Componente Cápsula. Puedes
ver si lo aumentas, el radio de la cápsula a algo extremo,
por ejemplo, 150. Y haces clic en Play,
puedes ver que tienes colisión mucho más rápido
contra las paredes. Y no se puede ir hacia
las paredes fácilmente. Se puede ver aquí. Ahora es imposible caminar y
ver a través de las paredes. Sin embargo, es un poco poco
realista si lo
pones demasiado alto porque realmente no
puedes acercarte a las paredes
y te bloquean También te
bloquearán aquí arriba. Si vas a esta rampa, creo que puedes ver que no puedes
pasar por la rampa porque tu componente de cápsula está
demasiado alto y no
puedes pasar por él. Bien, aumenta este componente de
cápsula. Un tamaño que realmente tiene sentido para ti y elimina
el recorte de la pared, pero aún así es pequeño 70, por ejemplo.
Vamos a probarlo. Pasemos por la pared aquí. Mira hacia abajo, mira a la talla. A lo mejor es lindo. Esto está funcionando en realidad,
vamos a este. A veces puedo ver
a través de las paredes. A veces si entro en él, tengo que aumentarlo
ligeramente porque en realidad aún pasando por las
paredes puede aumentarlo a 75. Y luego vuelve a probar y
ver cómo se ve. Sí, quizá 75 esté
funcionando en realidad. A veces está chocando un
poco. Bien, entonces voy a poner un 280. Esa es mi decisión final aquí. Entonces vamos a compilar y
ahora está a los 80. Sí, si miro hacia abajo, miro hacia arriba, miro a los lados. No puedo ver a través de la pared. Y aún así puedo acercarme a
la pared. Y veamos si podemos
subir las rampas aquí. Si subo por la
rampa y funciona, aunque estoy cerca
de la pared de la rampa aquí, todavía
puedo subir por la rampa. Bien. Esta fue una
solución fácil si vas aquí. Ahora aquí, es un
poco problema porque el espacio
es realmente estrecho. Lo que puedes hacer
para arreglar esto
ahora mismo es que siempre puedes entrar aquí y puedes poner
el chasquido aquí arriba a
tal vez algo como diez Y póntelo. Entonces en realidad la velocidad de
mi cámara es demasiado alta. Voy a
disminuirlo. hacer click sobre este objeto aquí y
simplemente moverlo hacia un lado. Tal vez solo cambie un poco el
diseño del mapa para que
esto no se baje. Ahora bien, si necesitas un sistema de colisiones
muy, muy complejo, esto en realidad requiere un trabajo
demasiado avanzado
para este curso. Aquí, podrías
hacerlo con planos. No obstante, sí requiere
mucho código para que funcione, y será realmente avanzado
en comparación con este curso. Puedes volver a intentarlo para subir
aquí y ver si funciona. A ver si todo está bien. Y se puede ver que todo
está funcionando bien también. Bien, así es
como arreglamos la cámara. Recortando de nuevo
las paredes. Si alguna vez lo hace clip, siempre
puedes entrar aquí A lo mejor recuperar la posición aquí para el zócalo,
eso ayudará. O si puedes
entrar aquí y aumentar ligeramente
este componente de cápsula
para que no se reserve. Pero ten cuidado de no
aumentarlo demasiado.
55. 5.04 Arregla la posición de salto: Derecha. Ahora si juego el juego, puedes ver cuando salto, en realidad cuando salto y presiono mi botón agacharse
al mismo tiempo, puedes ver que puedo spam aquí Cuando salto y
sigo agachado, la cámara está
recortando Puedes tenerlo como mecánico
si quieres para tu juego. A algunas personas les
gustan cosas como esta, por ejemplo. Se puede saltar, se puede tratar de
hacer algo agachado y
se puede mirar por encima de la pared que
tal vez podría ser un mecánico Sin embargo, creo que es un poco
demasiado y realmente no
quiero a este mecánico aquí
cuando se graba así. Si sigo agachado, volvamos al jugador,
vamos a la base de jugadores dentro de aquí Bajemos a
la lógica agachada. Éste de aquí. En la lógica agachada, quiero asegurarme de que
el jugador no esté saltando No puedes
agacharte cuando estás saltando. Si tomamos esta, recuerda que ya hicimos esta
función no es saltar. Lo único que hicimos
aquí es simplemente tomar el
componente de movimiento del personaje y preguntar si el personaje
está cayendo o no. Si el jugador no está cayendo, significa que
no está en el aire, lo que significa que no
están saltando. Bien, podemos tomar esto,
podemos hacer una sucursal. Si el jugador no está saltando, entonces somos capaces de agacharnos Hay un pequeño
problema ahora mismo si saltamos y
presiono agacharme Porque ve, sólo puedo
agacharme en el suelo. No obstante, si salto y me agaché, cuando aterrizo, no me agacharé Necesito realmente agacharme cada vez que salto y
haga clic en agacharse, debería agacharse auto
cuando Y tenemos que arreglar esto aquí. Voy a arrastrar
de esto y retrasar el código por algo
realmente, muy pequeño. Entonces tal vez 0.05 después del retraso, podemos volver atrás y volver a
reproducir este código. Lo que esto está haciendo es simplemente
si estás en el salto, no
puedes agacharte, entonces
será falso Seguirá adelante y
retrasará el código y
volverá a preguntar de nuevo
si estás saltando o no. Sigue comprobando si
estás saltando o no. Y cuando aterrizas
en el suelo y todavía
tienes pulsado el botón
agacharse, realidad
va a
seguir adelante y Puedes probarlo, ver
si funciona o algo así. Bichos, Puedes saltar aquí, agacharte, auto, agacharse,
un ojo, aterrizar Eso realmente funciona. Ahora bien,
si pones esto demasiado alto, parecerá un poco rezagado
porque cuando saltas, lleva un poco de tiempo Antes de agacharte, puedes hacer que sea mucho mejor agacharte
aquí Si lo haces mucho más bajo, el tiempo de respuesta
será mucho mayor. Si saltas y haces
clic y te
agachas, puedes verlo
agacharse No me gusta
ponerlo demasiado abajo, porque recuerda cuanto
más abajo pongas esto, más veces se va a ejecutar este
código. Va a correr
esto muchas veces por segundo tratando de comprobar si
estás saltando o no. Para este, solo voy a ponerlo
a 0.05 en su lugar. Para comprobar cuántas
veces se ejecuta esto, siempre
puedes tomar este
navegador y decir 1/0 0.05 Entonces puedes ver
este código ahora mismo, corre 20 veces por segundo Y se puede ver que sí se
ejecuta muchas veces. Si lo pones a 0.01
entonces corre 100 veces por segundo. No me gusta
ponerlo demasiado bajo. 0.05 es un buen número.
Vamos a cerrar esto. Bien, ahora esto está funcionando. Ahora el problema está
aquí. Para los agachados. En realidad va a ejecutar el código agachado a pesar de que ya no
estoy agachado Se puede ver si
arrastre aquí y digo print string y solo imprimo un simple mensaje a
la pantalla para ver si este código se está ejecutando o no
compilar. Vamos a hacer clic en Reproducir. Puedes ver si salto y
aguardo, agacharme, y me voy a soltar. Entonces, cuando aterrice,
en realidad va a agacharse. Salto, me agaché y lo solté. Va a ejecutar
el código agachado aunque
realmente no lo necesite,
porque
aún no me he agachado para hacer esto o Podemos tomar el
estado de movimiento y podemos arrastrar de él y
podemos decir contiene ítem. Si contiene
el artículo agachado, entonces queremos
seguir adelante y agacharnos Cuando soltemos el
botón, vamos a golpear aquí. En realidad, solo
arrástralo aquí abajo. Y hagamos una sucursal y la conectemos
, así como así. Bien, organizo esto
un poco, ¿de acuerdo? Entonces lo que estamos haciendo
aquí es que estamos preguntando si estamos en
el salto o no. Y si no estamos en el salto, podemos seguir adelante y agacharnos
si estamos en el suelo No obstante, si estamos en
el salto en el aire, va a seguir
revisando cada vez que aterricemos Y cuando
aterricemos va a
pasar por este código y
luego va a preguntar, ¿soltó el botón
o presionó el botón? Si pulsas el botón, te vas a
agachar Si sigues presionando
el botón agacharse, si has
soltado el botón, primero va a comprobar si realmente
estás agachado,
si esta matriz de estado de movimiento sí contiene el elemento
agachado,
y si no lo hace, entonces no
hagas nada porque no hagas nada Tiene algún sentido para ejecutar este código. No obstante, si
contiene el agachado, y vas a soltar el botón, se va a agachar Vamos a tratar de jugarlo ahora. Y vamos a saltar
y hacer clic agacharse. Eso ayuda. Si salto y hago
clic en agacharme y soltarlo, puedes ver que el
código
ya no se está ejecutando y está
totalmente optimizado Vamos a compilar ahora. Todo está funcionando aquí. Cuando salto y spam mi botón de agacharse,
no va a funcionar Sólo cuando aterrice
aquí en el aire, no
puedo spam a mi botón agachado
56. 5.05 Arregla los errores de Crouch restantes: Bien, lo último que
quiero arreglar para el
agachado es que puedes ver si voy
a un borde o a una repisa Y me agaché aquí y
voy a este borde aquí y
simplemente me voy del Se puede ver que el personaje
está bloqueado aquí en el aire. Se puede ver cada borde
que realmente hace esto. Si voy aquí arriba, eso
es demasiado alto. Voy hasta aquí y voy a
agacharme y quiero caerme. Se puede ver que en realidad estoy
aquí en el borde. Y si, se ve raro.
Vamos a cerrarlo. Vamos a la base de jugadores. Y si haces clic en el componente de movimiento del
personaje y buscas
agacharte, tienes este llamado,
Puede caminar fuera de las Al agacharse, haga clic en eso y continúe y
compile y haga clic en reproducir Ahora puedes ver
cuando hace eso, si te agachas aquí
y si saltas,
caerá de este borde Eso era
lo único que teníamos que hacer, una solución muy, muy sencilla. Pasemos a
la siguiente lección.
57. 5.06 Prepara los pasos en SFX: Ahora es el momento de agregar algunos
pasos efectos de sonido para que
el personaje suene mejor en el juego para que no
sea demasiado silencioso Sigamos adelante y
hagamos una nueva carpeta. Sigamos adelante aquí en
la carpeta de contenido. Vamos a hacer clic derecho, ir a una
nueva carpeta, llamarlo audio. Dentro de esta carpeta,
voy a escribir click y hacer una
nueva carpeta también. Voy a llamarlo
efectos de sonido dentro de esta carpeta. Sigamos adelante e importemos
los efectos de sonido ahora. Nuevamente, en los
materiales de costo que
he subido para
ti en este sitio web, verás muchos más artículos. Por ejemplo, en la
interfaz de usuario o en el audio, verás muchos
más artículos de los que ves aquí
porque sigo agregando cosas. Mientras desarrollo este curso. Quizás veas aún
más cosas de las que estás
viendo aquí ahora mismo. No te preocupes por ello, no
te confundas demasiado, solo
sigo agregando cosas
mientras desarrollo este curso. Ahora mismo, lo que necesitamos
usar son los pasos,
el efecto de sonido de paso
1-6 Así que todos estos, puedes hacer clic y arrastrarlos
al panel aquí, al navegador de contenido, y soltarlos, y se agregarán Lo que hay que hacer es
que haga clic derecho ir y aquí en el
audio, hacer una cola de sonido. Cuando haces un sonido que, puedes llamarlo,
llamémoslo pasos Ahora otra forma de crear un
sonido que es también puedes simplemente hacer clic derecho en uno de ellos y seguir adelante y
hacer clic en Crear Que. La tercera opción es
seleccionarlos todos y crear una sola que en
realidad también los subirá a todos
en una sola
que, en realidad, es
lo que queremos hacer. Pero también puedes simplemente hacer clic
derecho e ir al audio y crear
el sonido que. Tienes diferentes opciones. Vamos al interior de
esta cola de sonido. Déjame hacerlo un poco
más grande para que podamos ver. Lo podemos hacer ahora es que podamos
llevarnos todos estos. Haga clic en el
primero, turno completo, haga clic en el último y
haga clic y arrástrelos
a la señal de sonido que agregará todos los efectos de sonido de
paso
a la señal de sonido Ahora dentro de aquí,
lo que puedes hacer es que
queramos tocar estos
pasos al azar Debe elegir al
azar cuál jugar, solo para que tengamos alguna variedad. Lo que hay que hacer es escribir
click y buscar al azar. Entonces encuentras esta nota aleatoria. Por cierto, para las
señales de sonido, puedes escribir click. Y puedes ver que
tienes estos nodos igual que en blueprint Sin embargo, no como en el plano. Puedes ver que no
tienes muchos nodos, pero también puedes hacer
cosas geniales con ellos, aunque no
tengas muchos nodos. Ahora para este,
vamos a usar el aleatorio, y va a reproducir uno de estos
efectos de sonido al azar. Vamos a conectarlo. Arrastremos
y conectemos estos hacia aquí. Y vamos a dar click sobre
esto. Además un par de veces tenemos esos insumos, podemos conectarlos así como así. Enchufar
todos ellos. La salida que
enchufamos a la salida. Vamos a
organizarlo un poco. Lo que podrías hacer
ahora es que puedes hacer click en Pl Q para ver qué hace. Y se puede ver que reproduce
un sonido al azar. Simplemente elige uno de ellos. Ahora creo que es demasiado tranquilo. Podemos ir al
multiplicador de volumen y aumentar el efecto de sonido de paso para
ponerlo a 1.2 por ejemplo O lo puedes poner a tres. Se ve que
aumenta el sonido, a lo mejor 1.2 no quiero que sea demasiado alto para este curso porque también estoy hablando contigo y
puedes escuchar mi voz. Si esto es demasiado ruidoso, probablemente
será demasiado molesto. A lo mejor uno para mí, puedes
aumentarlo un poco más alto. Uno todavía está quizá demasiado callado. Pero para este curso, me
voy a quedar con uno. Creo que
también me puedes escuchar cuando recuerdo el curso. Bien, tenemos este paso
y está preparado. Y también puedes tocarlo aquí
para ver cómo suena. Ahora bien, si también quieres más
variedad, puedes usar algo
llamado modulador. Si haces clic derecho y
buscas modulador aquí, en realidad solo voy a usar un sonido para
demostrártelo. Si tomo este sonido y lo
conecto a la salida, puedes ver si tocas ahora, suena un poco diferente. Si haces clic en el modulador y tal vez disminuyes el tono a 0.9 y aumentas
el tono máximo a 1.1 hay una
gran diferencia. Va a hacer una variedad del sonido con
diferentes tonos. Si haces clic en reproducir
ahora puedes escuchar que suena un poco
diferente cada vez que puedes usar un modulador para aumentar y disminuir el
tono al azar. También puedes conectarlo aquí. Si acabo de conectar esto de nuevo, puedes conectarlo aquí para
hacer un poco de variedad. Ahora en vez de 0.9
me voy a quedar con 0.95 Pero para el pitch max, puedo quedarme con uno Algo así. Obtienes un sonido diferente cada
vez que tocas esto. Bien, vamos a guardar todo. Vamos a cerrarlo y
pasemos a la siguiente lección.
58. 5.07 Temporizador por evento: Ahora para agregar el efecto
de sonido de paso. Si ya has hecho esto antes, sabes que puedes ir a
los assets y animaciones. Y dentro de una animación, por ejemplo, esta de aquí,
cualquier animación aleatoria. En realidad la agachada es probablemente la carrera que necesitamos encontrar
. Por ejemplo, éste. Sabes que puedes entrar
aquí, hacer clic derecho, agregar en los notificadores, luego poner un efecto de sonido Cuando haces esto y
seleccionas un efecto de sonido
aquí en la cola de sonido, y simplemente haces clic en reproducir. Se puede ver que
en realidad está funcionando. Y puedes copiar este efecto de
sonido, pegarlo, tratar de
armarlo con los
pasos, así como así Algo
así, por ejemplo. Así como así.
Funcionará también en
el juego cuando juegues el juego. No obstante, hice esto y
quería grabarlo para ti. No obstante, sí se mueve un
poco porque cuando corres, a veces coloca
el sonido dos veces. Porque en la otra
animación también tienes esto, tienes que poner esto en todas las animaciones
de ejecución cuando
cambias la animación de atrás a adelante o atrás de
derecha a atrás izquierda. A veces en realidad coloca
el sonido dos veces a la vez. Suena un poco buggy. Realmente no me gusta este método, así que probé otro. Así que cerremos esto y probemos algo
llamado temporizador por evento. En esta lección,
solo quiero
explicarte qué es este
temporizador por evento, porque en realidad lo vamos
a usar más de una vez. Y es un concepto
y función muy
importante dentro
del plano Vamos al jugador,
vamos a la base de jugadores. Ahora para la carrera, solo
quiero
ponerlo tal vez aquí en el evento de movimiento que
va a tener más sentido. Tomemos todo esto, y de
hecho voy a
empujarlo un poco hacia abajo para poder trabajar aquí
sin ninguna restricción. Vayamos aquí al final
del código de movimiento, y vamos a arrastrar desde aquí
y escribir temporizador por evento. Y podemos seguir adelante y seleccionar este llamado temporizador por evento. También puedes escribir, y
puedes ver lo que puedes hacer. Tienes temporizador por evento, temporizador por nombre de función. Esto es casi
lo mismo que el evento, pero se puede ver lo que es esto. Después de haber entendido
qué es el temporizador establecido por evento, seleccionemos establecer temporizador por evento. Ahora para este evento, tenemos que
agregar un evento personalizado aquí. Puedes ver esta entrada
que tienes que dirigir desde aquí y tienes que
escribir eventos personalizados. Entonces tienes que llamar algo a tu evento
personalizado. Por ejemplo, solo voy
a llamarlo play steps, efectos de
sonido, play
footstep sound effect Ahora te pregunta aquí, ¿cuál es el tiempo que
quieres hacer un bucle de esto? Por ejemplo, vamos a subir 0.5 Ahora voy a seleccionar aquí que este
temporizador esté en bucle Y sólo voy a
hacer click en esta flecha otra vez. Bien, Ahora es un temporizador de bucle. Y va a hacer un bucle
cada 0.5 segundos. Si dirijo desde aquí
e imprimo una cuerda, y puedo dar click en play aquí, deberías ver que corremos aquí. Y detengo mi código, se
puede ver que se
ejecuta cada 0.5 segundos. Se puede ver que en realidad imprime
hola cada 0.5 segundos. Esto se puede ver mejor
si sólo cambio el color. Por ejemplo, en la duración, en lugar de apenas 2 segundos, lo
pongo a 50 segundos. Hago clic en play, y
me muevo, y me detengo. Va a ejecutar el código. Ve cada 0.5 segundos, va a saludar. Si lo pones abajo,
puedes ver cada 0.2 segundos que va a
saludar, como puedes ver aquí. Así que podemos usar este
temporizador para ejecutar algún código. En este caso, lo
vamos a usar para hacer un bucle los efectos de sonido de paso
cuando estés corriendo, va a reproducir
los efectos de sonido Bien, para este temporizador, en algún momento tenemos
que parar el temporizador. De lo contrario, va a hacer un bucle para siempre y tu código se estrellará en algún momento porque has generado demasiadas
instancias de esto Entonces hagamos clic derecho y
promocionemos esto a una variable. Llamemos a esto pasos de 1 Ft. Esto afecta el tiempo o el manejo.
Se llama asa. Si sostienes el mouse sobre
él, se llama estructura de
manejador de tiempo. Normalmente solo lo llamo
tiempo o manejo al final. Paso a Paso, sonido,
efectos, tiempo o mango. Ahora tenemos esto más adelante, lo que podemos hacer es que
podamos tomar esto y decir claro e invalidar temporizador Aquí es cuando queremos
detener este temporizador. En algún momento,
podemos seguir adelante y usar este temporizador claro e
invalidar Pero lejos ahora
solo vamos a eliminarlo. Sí, eso fue en realidad
para esta lección. Permítanme cambiar éste a algo así como 0.5
para empezar. Porque recuerda, un temporizador
ejecuta esta cantidad de segundos. Entonces, por ejemplo, si eres 0.1 va a correr
diez veces por segundo. Te imaginas que no quieres poner esto a
algo así,
porque imagina cuántas
veces va a correr esto. Si digo hola y hago clic en
play y corro y me detengo, se
puede ver que va a spam. Este código, puedes ver que
mi juego en realidad se está estrellando y está muy rezagado No hagas esto, esto
es realmente malo. Me gusta quedarme en el
mínimo, valor mínimo. Si realmente tengo que ir muy bajo, es 0.3 o tal vez
0.2 en casos raros. Pero por lo general trato de
quedarme en 0.50 0.40 0.6 Eso es si
realmente necesito ejecutarlo Muchas veces, de nuevo,
lo que dije antes, siempre
puedes ir a tu navegador de Internet
y puedes decir, por ejemplo, 1/0 0.01 Entonces puedes ver
cuántas veces se ejecuta Normalmente no me gusta ir
más de 60 veces por segundo. Yo escribo, por ejemplo, si escribes 0.03
corre 33 veces por segundo. Y a veces esto está
bien, no te preocupes. A veces esto es necesario y sabrás
cuándo lo necesitas. Cuando puedes quedarte
así, eso es mucho mejor. Esto ejecuta el código 16 veces. Puedes ver 0.03 Ejecutas el código casi o en realidad
duplica la cantidad de tiempo que 0.06 Intenta
quedarte lo más alto que
puedas aquí porque
eso va a estar realmente optimizado para mí en este
momento para los pasos Vamos a ejecutarlo como 0.5
segundos, dos veces por segundo. Y siempre podemos
ajustarlo más tarde cuando lo necesitemos. Eliminemos esta
. Compilemos todo y pasemos
a la siguiente lección.
59. 5.08 Replicación de multidifusión: Bien, entonces aquí estamos otra vez. Ahora, muy importante
estamos en multi jugador. No podemos simplemente entrar aquí y arrastrar desde aquí y decir
play Sound por ejemplo. Sólo dices play Sound. Se puede reproducir el sonido dos D, que se utiliza generalmente para los elementos de la
interfaz de usuario cuando se
hace clic en un botón. Y puedes reproducir
sonido en un lugar, por ejemplo, para pasos Y solo puedes seguir adelante
y seleccionar el sonido. Y puedes ver si
hago clic en Reproducir, corro, va
a reproducir el sonido como puedes ver aquí. Ahora bien, esto realmente
no funciona
en el modo multijugador. El cliente no escuchará
el sonido, porque de nuevo, recuerde que tenemos que replicar los ítems a los clientes
de la lista de servidores Ahora bien esto funcionaría en un solo jugador, pero
no multijugador. Ahora para el modo multijugador,
necesitamos usar una multidifusión. Qué es una multidifusión, en realidad
vamos a crearla aquí y te lo
explicaré Hagamos clic derecho y
hagamos un evento personalizado. Este evento personalizado,
voy a llamar primero al servidor. Vamos a ejecutarlo a través del servidor. Pasos del servidor, efectos de sonido. Bien, vamos a hacer clic aquí
en las réplicas, ejecutar el servidor y confiable Ahora hagamos clic derecho
aquí abajo y hagamos un
nuevo evento personalizado. Vamos a llamarlo MC para multidifusión. Y nuevamente, toca pasos, efectos de
sonido para éste, hagamos clic en el Replicar Y ahora vamos a elegir multicast y confiable también Qué es una multidifusión,
puedes
imaginarlo, replica esto, lo que sea que escribas aquí a
todos los clientes Cuesta todos estos artículos que escribes aquí a
todos los clientes. Para multidifusión, solo puede
ejecutarse a través del servidor. No se puede entrar aquí y decir multicast footstep efectos de sonido porque éste se puede ver, dice si el servidor este solo
se ejecuta a través del servidor, no se
puede multicast
a través No podemos hacer eso. Es por ello que tenemos que arrastrar desde aquí y ejecutarlo
primero por el servidor, efectos de sonido de paso Entonces desde el servidor
podemos arrastrar y decir multicast footstep efectos de
sonido Y eso va a funcionar perfectamente, por lo que primero hay que ejecutarlo
a través del servidor, desde el servidor, luego
puede multidifusión Bien, otra
explicación también para la multidifusión que
hay que entender es multidifusión se suele utilizar para efectos que son temporales Por ejemplo, si juegas un efecto de sonido porque
recuerdas la multidifusión, si un jugador se conecta a tu juego y has
escrito un código en multidifusión, el jugador conectado no
podrá ver este Aquí es donde
entra rep notify . Y eso
vendrá después. No te preocupes por eso por ahora. Pero puedes ver aquí si
hago clic en una variable, si realmente tengo una
variable, si voy a ti agacharte por ejemplo, y hago
clic en mi estado de movimiento Se puede ver en el replicado, también
tengo algo llamado un representante notifique que
vendrá después Pero si volvemos y
volvemos aquí para la multidifusión, cualquier código que escribas
aquí no será visto por el reproductor conectado
a menos que vuelva a jugar Si solo me conecto
al juego y solo tocó el efecto de sonido de
ejecución, no
puedo escucharlo a menos que el jugador se detenga y
luego vuelva a correr. Y coloque este código mientras
estoy conectado al servidor, entonces se reproducirá correctamente
para la multidifusión Muy importante es que hagas
algo que el
jugador conectado realmente no
necesita escuchar o
ver a menos que se
vuelva a tocar, por ejemplo. Ahora para este
efecto de sonido de paso podemos tocar aquí, así
como algunos efectos visuales, por
ejemplo, algunos fuegos artificiales Y si
abres un cofre y hay algunos efectos visuales dorados
que salen de este cofre, entonces eso también necesita ejecutarse
en una multidifusión El representante aquí, si hago clic en
una de mis variables. debe usarse siempre que
necesite el reproductor conectado
para ver ese cambio. Digamos por ejemplo, si
el jugador sostiene, por
ejemplo, un AK o
una pistola, un deagle Entonces esto es muy importante
que el jugador conectado necesite ver el
arma correcta en las manos del jugador. El arma que
realmente no haces en una multidifusión porque el
jugador conectado verá el arma equivocada en el jugador Algunos juegos tienen mucho dólares porque usan
multidifusión para todo Nuevamente, por lo general para lo que lo
uso son principalmente efectos de
sonido y efectos visuales que no necesitan estar
ahí todo el tiempo. Por ejemplo, puedes ver si
tienes un semáforo que va de rojo,
amarillo y verde. Este semáforo
como ese color, probablemente lo
haría
dentro de un rep, notificar porque ese color necesita ser visible correctamente
para el reproductor conectado. El jugador conectado necesita
ver si es amarillo o rojo y no seguir viéndolo en
verde hasta que vuelva a cambiar. Para
efectos visuales temporales, por ejemplo, fuegos artificiales que desaparecen
después de 3 segundos que se relacionan no necesitan
estar en una notificación que necesita estar en una multidifusión Lo que sea temporal
que el jugador conectado no necesite ver de inmediato,
hay que hacerlo aquí. Recuerda, este código tiene que
volver a ejecutarse antes de que el
reproductor conectado pueda verlo. Bien, sigamos adelante y
toquemos el sonido aquí. Arrastremos desde aquí y
digamos reproducir sonido en el lugar. Así es como tocas un sonido. Tienes que especificar dónde
quieres reproducir el sonido. Recuerda, estamos codificando
dentro del jugador. Yo sólo puedo arrastrar de aquí
y decir obtener ubicación actor. Estoy consiguiendo la ubicación de este
jugador. Ahora este sonido va a
sonar donde quiera que esté este reproductor. Ahora tenemos que
seleccionar qué sonido. Vamos a seleccionar
los pasos. Ahora si hago clic en play
y corro por ahí, ahora me detengo. Se oye que
los pasos están sonando También se puede escuchar aquí
en el otro jugador. Si abro el otro reproductor, en realidad también
puedo escuchar
el sonido. Esto es del cliente.
Ahora bien, esto está funcionando, ¿de acuerdo? Se oye que
corre todo el tiempo, aunque yo no esté corriendo. Y también tenemos que
arreglarlo en la siguiente lección. Pero por ahora, sabemos que en
realidad se está reproduciendo este efecto de
sonido. Nuevamente, la multidifusión solo
se puede ejecutar a través del servidor. No se puede ejecutar una multidifusión a través del cliente,
ejecutarlo a través del servidor, y desde el servidor
puede multidifusión a efectos de sonido
temporales o efectos
visuales que
no necesitan aparecer reproductor conectado. Por ejemplo, algunos fuegos artificiales o una bala que acabas de disparar y
desaparecerá. Pero por ejemplo, qué
arma
sostiene el jugador es realmente importante
para el jugador conectado. Para que vaya dentro
de un representante, notifique. No te preocupes,
lo haremos más adelante. Por ahora no tenemos mucho. Sólo tenemos el efecto de sonido. Pero vamos a tener muchos
ejemplos a través de este curso. Bien, para detener el efecto de sonido cada vez que paremos por
aquí en el completado. Esto es cada vez que
soltamos las teclas de movimiento. Lo que podemos hacer es volver a dar
los pasos aquí. Podemos borrar e invalidar el
temporizador por asa. Esto impedirá que este temporizador
funcione más. Podemos seguir adelante y conectarlo, así como así podemos compilar e
intentemos jugarlo ahora. Si corremos y me detengo aquí, se
oye nada
cuando corres. La razón por la que no puedes
escuchar todo esto es porque esto sigue funcionando
así muy rápido. Nunca llega a este temporizador antes de que se ejecute el segundo
movimiento. Sigue corriendo así. Le da un descanso para repasar
y configurar este temporizador. Vamos a arreglar esto, pero puedes ver aquí
cuando agregas esto, el temporizador en realidad ya no reproduce el efecto de sonido
porque nos estamos deteniendo. Borra el temporizador solo para asegurarse de que no
se baje. Siempre podemos tomar
este mango de paso, podemos arrastrar y decir
válido y podemos usar, este es temporizador válido Si es válido podemos
hacer una sucursal y
podemos borrar este temporizador así. ¿Bien? Asegurarse de
que este temporizador sea válido y luego
limpiarlo para que sea más limpio. Siempre puedes simplemente tomar otra instancia de esta
variable y conectarla aquí. Y puedes seguir adelante y
organizar este foso más. Y ahora tenemos este código. Bien, vamos a compilar y
en la siguiente lección, hagamos esto menos pantanoso y ejecutemos este
código cada vez que estemos ejecutando
60. Condiciones de SFX de 5.09 Footsteps: Bien, primero de lo que tengo
que hacer es hacer un lingote, vamos a arrastrar esto. Y hagamos un nuevo lingote llamado Playing
Footsteps Reproduciendo el efecto de
sonido de los pasos. Y simplemente lo deletreé mal. Así como así, tocando el efecto de sonido de
pasos, vamos a arrastrar esto y establecerlo true cada vez que estemos
reproduciendo los efectos de sonido Antes de hacer esto,
tomemos esto y hagamos una rama. Primero, vamos a preguntar si
estamos tocando los
efectos de sonido o no. Sólo para que sea más legible, voy a arrastrar
de esto y escribir no lingotes, así como así Cuando no estamos reproduciendo
los efectos de sonido, quiero seguir adelante y
reproducir los efectos de sonido. No necesitamos ejecutar los efectos de sonido
del pie cuando ya los estamos ejecutando. Si no estamos tocando los efectos
de sonido de paso, entonces podemos seguir adelante y reproducir los efectos de sonido así
como así Recuerda, hay
que ponerla en fallas. En algún momento aquí, cuando paremos el temporizador y
detengamos los efectos de sonido, voy a poner esto en falso. Vamos a componer, a
ver si esto funciona, o si necesitamos hacer más. Ahora en realidad puedes ver que
funciona cuando estás corriendo, funciona cuando estás
parando, también se detiene. Bien, increíble. Ahora
corre demasiado lento. Entonces tal vez necesites reducir
este número a 0.5 o cuatro. Y puedes seguir adelante
y volver a jugar. A lo mejor eso es demasiado rápido. En realidad, voy a escribir 0.42 creo que hay que
tocarlo un par de veces Intenta probar tu juego.
Creo que esto está bien. Siempre puedes ajustar esto más tarde si tienes
un dólar con él. Pero creo que este número
está bien para mí ahora mismo. Ahora bien, esto está funcionando correctamente. Sin embargo,
tendrás algunos bichos. Verás si haces clic
en Play y yo corro por ahí, puedes ver si te
encuentras con algo. También coloque el efecto de sonido. Este es un pequeño error
que debes corregir. Para este, puedes usar
la velocidad del jugador, porque si acabo de
golpear esto,
alejemos todo
esto aquí. Así que en realidad puedes tener
algo de espacio para trabajar. Si haces clic derecho
y dices obtener velocidad, esta es la velocidad del jugador y tomas esto y
rompes, rompes este vector. Para que puedas volver a ver las
X, Y y Z. También puede hacer clic con
el botón derecho y dividir el pasador de estructura.
Eso es lo mismo. No obstante, sí me gusta
romper el vector solo
para tenerlo aquí afuera. Ahora, sólo para verlo,
vamos a imprimir una cuerda. Simplemente puedes imprimir
la velocidad x, por ejemplo, y
puedes ver lo que dice. Normalmente hago esto a veces
cuando hago un nuevo mecánico. Yo uso
mucho la cadena de impresión para ver lo que hace. Puedes hacer clic en
W para moverte, y puedes ver los aumentos de
velocidad. La velocidad de tu personaje
aumenta cada vez que me muevo. Bien. Así como así. Y lo mismo
con la X y la Y. Así podrás ver que aumenta
cada vez que te mueves. Lo que podemos hacer para reproducir los efectos de sonido cuando
entras en las cosas, no
quiero tocar el sonido. Golpeemos de
esto y digamos si esta velocidad es mayor que, por ejemplo, 100 o si
es inferior a 100. Porque recuerda,
si caminas de regreso, será un número menos si también es inferior a 100. O hagamos esto
por la y también. Vamos a copiar y pegar esto y
solo conectarlo aquí. Si es inferior o superior, o inferior a 100 aquí.
Vamos a arrastrar de esto. No necesitamos
usar lingotes porque n significa que todo esto
tiene que ser cierto Podemos arrastrar de esto y usar un lingote O si uno
de ellos es cierto, no
queremos tocar el
sonido porque somos demasiado lentos Hagamos clic en el plus
aquí y agreguemos todos ellos. Lo que estamos diciendo es si la velocidad para
la x es superior a 100, o si es inferior a 100, o si es esto,
o si es eso, entonces queremos
reproducir el sonido que
podamos arrastrar desde aquí
y escribir una rama. Entonces desde esta sucursal podemos
seguir adelante y conectarlo. Así como así,
podemos conectar el código. Ahora el código
sólo va a reproducirse cuando nos movemos
a esta velocidad. Vamos a hacer clic en play.
Y me muevo. Me detengo y me muevo
a algo aquí. Ver que sigue jugando. Y creo que es porque esto de
aquí no es lo suficientemente alto. Si escribimos, por ejemplo, en realidad esto es
porque éste es, el inferior también está equivocado. En realidad vamos a hacerlo
más alto primero, vamos a hacer 250. Y aquí tengo que escribir más bajo -250 Eso fue
un error de mi parte. Déjame solo escribir 250 y
es inferior a -250 En
realidad sigue reproduciendo
el sonido si entro en las cosas y es porque no lo he puesto
aquí en lo falso Cuando es falso,
puedes ver si es verdad, va a reproducir el efecto de
sonido. Pero si sigo presionando el botón
y será falso. Realmente no hacemos nada. Esto solo detendrá
el efecto de sonido cada vez que suelte el botón. Lo que tenemos que hacer es que
tenemos que arrastrar esto aquí abajo. Y tenemos que enchufar este
falso en aquí también. Por lo que detiene el temporizador
cada vez que es falso. Vamos a hacer clic en jugar ahora
y entrar en las cosas. Y ya se puede ver que
no reproduce el sonido. Cuando camino un poco, se
ve que empieza
a tocar el sonido. Siempre se puede
ajustar este número. Si lo haces más bajo,
va a reproducir el sonido mucho más rápido
cuando entres en las cosas. Pero por ahora, esto
está bien para mí. Y siempre puedes seguir adelante y organizar esto un poco más, ¿de acuerdo? Entonces algo así.
Acabo de poner las notas de ruta leídas solo para que sea
un poco más legible. Así como así, bien. Ahora lo que tenemos que hacer,
hay otros factores. Ahora el siguiente factor es, puedes ver si voy aquí arriba, déjame saltar
de aquí arriba y salto, también
está reproduciendo el
sonido en el aire. Lo que tenemos que hacer
es que tenemos que tomar, éste no es saltar, así que nos estamos asegurando de que
el jugador no esté saltando. De lo contrario no queremos
reproducir los efectos de sonido. Vamos a golpearlo desde el
remos y el lingote derecho. Si es cierto, si no estás saltando, entonces podemos seguir adelante y
reproducir los efectos de sonido. Esto también tiene que ser una
condición. En realidad, vamos a golpearles. Sí, un poco aquí atrás. Déjame arrastrar todo
esto más lejos. Ahora el salto está funcionando. Lo segundo es que también
queremos asegurarnos de que en realidad
estamos corriendo
y no caminando. Y puedes ver aquí, si
juego la carrera primero y camino, en realidad
va a
jugar también, correr. No sé si tengo
eso, no lo sé, en realidad. Podemos tomar este estado de movimiento y podemos arrastrar desde aquí y decir obtener una copia de nuevo. Podemos intentar comprobar
cuál es el último índice. Si está corriendo,
significa que estamos presionando el botón de correr en este momento y no caminar ni agacharse Si esto es igual a correr, entonces podemos seguir adelante y hacer este código así como así.
Podemos hacerlo así. Ahora para hacerlo más limpio, voy a seleccionar todo clic derecho
y contraer esto a una función a la que voy a
llamar a esta, la función se está ejecutando. Esto es solo verificar si el
jugador está corriendo o no. Lo estoy convirtiendo en
una función pura. Entremos aquí
y solo organicemos esto un poco más dentro de la
función, así como así. Aquí simplemente estamos comprobando si el jugador está corriendo o no. Entonces este está corriendo, así que nos estamos asegurando que
el jugador esté funcionando, lo contrario no queremos tocar
los efectos de sonido de paso Bien, sigamos adelante
y juguemos aquí. Y vuelve a intentarlo. Ahora estoy jugando. Me detengo. Si corro, si sostengo turno para caminar,
no voy a jugar. Si lo dejo ir, increíble. Ahora funciona, bien. Hay un pequeño
problema en estos momentos. Puedes ver si corro un poco, realmente no
va a reproducir
el efecto de sonido a menos
que corra un poco más. Lo que necesitas saber
aquí para el temporizador por evento es el tiempo
que aquí necesitas para correr antes que realmente reproduzca este
código encaja cinco, por ejemplo. Y hago clic en Play. No va a reproducir
este código al instante. Va a esperar 5
segundos antes de que se ejecute. La primera instancia
de este código ahí va 5 segundos
antes de que realmente comience a reproducir los efectos
de sonido del paso Como puedes ver aquí
acaba de tocar, el
efecto de sonido de paso es de 0.42
Necesitamos reproducir el efecto de sonido justo antes de que reproduzca
esto, solo una vez Esto lo podemos hacer aquí.
Siempre que vamos a empezar a tocar
los efectos de sonido. Puedo seguir adelante y recordar, no se
puede ejecutar el multi cast
directamente desde el cliente. También hay que ejecutarlo a través
del servidor. Es por eso que puedo conducir
desde aquí y escribir primero
los efectos de
sonido de paso de juego Y luego va a
reproducir la multidifusión. Después de eso voy a tocar el
efecto de sonido de paso de inmediato cuando corra después de 0.42 segundos, va a comenzar a hacer un ciclo de este
código. Porque si no hago esto, va a esperar a 0.42 segundos antes de que empiece a
correr todo eso Es por ello que tenemos
un pequeño retraso. Si haces clic, puedes jugar ahora
puedes ver que se reproduce de
inmediato , así que es mucho mejor. Ahora también lo que puedes hacer si no
quieres reproducirlo de inmediato, Si quieres tener
un ligero retraso en tu efecto de sonido,
qué puedes hacer, también
puedes hacer click aquí y tomar estos segundos transcurridos
o activar segundos Ambos funcionan.
Déjame en realidad solo usar el que se llama
trigger seconds. Lo que puedes hacer es arrastrar desde aquí, en realidad
vamos a
imprimir una cuerda. Me gusta imprimir cuerdas para
que veas lo que estamos haciendo. Conectemos esta cadena de impresión al código y solo conectemos este disparador segundos para
imprimir la cadena. Juguemos. Se puede ver cuando sostengo mi llave, solo cuenta segundos de cuanto tiempo llevo sosteniendo mi llave. Por ejemplo, no sólo mi llave, en realidad todo mi
movimiento puede decir que me estoy moviendo, cuenta. Si dejo ir mi movimiento, empieza desde el principio. Solo cuenta segundos de
cuánto tiempo llevas presionando
los botones de movimiento. Pero lo que puedes hacer es
rastrear a partir de esto y decir si los segundos gatillo
son mayores que, por ejemplo, 0.3 entonces
queremos seguir adelante y correr. Déjame agregar otra
condición aquí. Tenemos mucho
estado uno aquí. Al final tenemos
muchas condiciones. Vamos a conectarlo, y
vamos a hacer clic en Reproducir. Funciona, pero ahora después de 0.3 segundos va
a reproducir el código. Ahora bien, si lo haces más alto, lo va a jugar mucho después. Después de 2 segundos, si haces clic en Reproducir y
ejecutar después de 2 segundos, va a reproducir el código. Esto es si quieres
retrasarlo un poco. Si no quieres reproducir el
efecto de sonido corriendo instantáneamente, puedes tener un pequeño retraso, tal vez 0.4 en lugar
de 0.5 así, y se reproducirá mucho más rápido. Puedes ver que no reproduce el efecto de sonido cada vez
que solo haces esto. Si solo haces clic en la tecla rápido, pero si haces clic en
ella un poco más, va a reproducir
el efecto de sonido. Creo que lo voy a poner a 0.3 creo que lo está jugando
demasiado tarde. Si haces esto,
no va a jugar. No obstante, si lo
presionas un poco más, va a reproducir
el efecto de sonido. Bien. Ahora funciona perfectamente. Adelante y organiza el código. Si quieres quitar uno
de los pines del O, por
ejemplo, puedes escribir
click y quitar el pin. Adelante y organiza el código. Ahora todo está organizado y puedes ver el código aquí, si acaso te has
perdido algo. También he subido
este proyecto final para ti también, para
que puedas seguir. Sigamos adelante y compilemos. Vamos a guardar todo, y pasemos
a la siguiente lección.
61. 6.01 Coloca los puntos de aparición: Bien, entonces ahora que tenemos
el movimiento terminado, por supuesto todavía
necesitamos el movimiento para la pistola y el
movimiento para el rifle, pero nos centraremos
en eso más adelante. Por ahora, continuemos con el desove del jugador
para el desove del jugador, comencemos a colocar
algunos puntos de generación para el jugador aquí en
la carpeta Hagamos clic derecho en
hacer una nueva carpeta. Llamemos a este
Span Points Again, hagamos clic derecho en esta carpeta. Voy a ponerle el
color a éste. Nuevamente, dentro de esta carpeta. Hagamos clic derecho ahora para
hacer los puntos de generación, necesitamos que los jugadores comiencen para que el jugador pueda
comenzar realmente en el nivel No obstante, en lugar de
tenerlo creado a partir de aquí, porque este ahora mismo se acaba de crear a partir de
esto, comienzan los jugadores. Sin embargo, necesitamos
los puntos de generación que en realidad son planos En lugar de hacer esto
, eliminemos esto. Los jugadores empiezan desde el
nivel si quieres asegurarte de que no tienes más aperturas de jugador
en tu nivel, siempre
puedes simplemente
subir aquí en el outliner y comenzar la
búsqueda de jugadores Y se puede ver que aquí no hay nada. Voy a dar click en la X aquí
arriba para hacer una nueva. Vamos a hacer clic derecho ir a clase
Blueprint ahora en lugar de seleccionar uno de esos aquí, puedes hacer click sobre
esta pequeña flecha, realidad
puedes ver, puedes hacer planos de casi cualquier cosa Una cámara, follaje, e incluso
el jugador arranca y así sucesivamente. Así podrás ver que tienes 682
elementos que puedes buscar, por
ejemplo, un juego guardado, cuando vas a crear un juego donde guardes,
descargues y así sucesivamente Entonces tienes muchas
cosas dentro de aquí. Por ahora, solo necesitamos que
los jugadores comiencen. Si buscas un
inicio de jugador, puedes verlo aquí. Este llamado Players Start. Seleccione éste. Adelante
y haz clic en Seleccionar. Llamémoslo engendros BP. Ir a auto guardar
por alguna razón. Vamos a llamarlo BP base de punto
de generación. Tenemos, tenemos un
plano base igual que el jugador. Si vuelves al jugador
tenemos una base de jugadores. Y a partir de ese jugador
creamos estos dos. Ahora no he
explicado realmente para qué
se utilizan estos porque realmente
no tenemos nada dentro de los planos terroristas y
antiterroristas Y ésta la tenemos que
corregir más adelante. Pero ahora puedes ver
aquí están vacíos, los hijos de la base de jugadores. Recuerda, estos son los
planos hijos de la base de jugadores También puedes ver que si mantienes
el mouse sobre ellos, puedes ver que la
clase padre es la base de jugadores. Lo vamos a explicar en esta sección cómo se utilizan para
ellos. Ahora volvamos
a la suma de puntos. Y ahora que tenemos
un punto de generación base, hagamos clic derecho en él. Crear una clase de plano infantil. Llamemos a este punto de generación
terrorista BP. Volvamos a hacer clic derecho en
esta base
de punto de sierra y crear otra cláusula de blueprint
hijo Llamemos a este punto de generación
terrorista BP. Bien, tenemos un punto de generación
antiterrorista
y tenemos un punto de generación
terrorista. Ahora vamos a seguir adelante y
colocarlos dentro del nivel. Tomemos primero al
antiterrorista y lo
coloquemos al nivel en
alguna parte, por ejemplo, aquí. Y puedes volver a hacer clic en E para rotar y puedes
girarlo alrededor. Así como así. Puedes ver que tienes
esta flecha azul y aquí es donde está buscando el
jugador. Porque puedes ver
si hago clic en play, ahora el jugador está mirando
en esa dirección. Si lo giro de esta
manera y juego, el jugador está girando en
esta dirección. Entonces, para asegurarnos de que están mirando la dirección correcta, sigamos adelante y
hagamos que apunte hacia esa dirección así. ¿Bien? Ahora siempre se pueden ajustar
los puntos de enlace más adelante, pero por ahora
sólo voy a
colocarlos donde creo que
serían los más óptimos. Entonces por ejemplo, la terraza del
mostrador aquí, siempre se
puede sostener Alt
y arrastrar para copiarlo. Y puedes colocar este
aquí por ejemplo. Y por lo general los pongo
detrás de la defensa aquí, porque si
los pones aquí afuera, simplemente
pueden matarse
entre sí de inmediato. Normalmente los pongo
detrás de la pared para que no los
maten enseguida. Simplemente puedes colocar
un par de ellos. Esta es una tercera y
esta es la cuarta. ¿Bien? Así como así. Incluso puedes colocar uno aquí arriba, pero no quiero engendrar a
nadie aquí, en realidad Yo sólo quiero
engendrarlos aquí abajo. Otra vez, para tu juego,
todo depende de ti. Puedes elegir dónde quieres
engendrar a tus jugadores hasta ti Bien, los tengo engendrados aquí. Déjame hacer lo mismo ahora
por aquí por el terrorista. Déjame tomar esto a punto
y colocarlo en algún lugar aquí. De nuevo, estoy tratando de
colocarlos lo mejor que
pueda detrás de la pared. Sostén alton, arrastra para copiar y voy a
colocar uno por aquí Ahora dice, oh,
tengo el recogedor de color. Por alguna razón en realidad
no tengo idea de lo que acabo de presionar. Pulsando aquí y
arrastrándolo aquí de nuevo. Mantenga lugar en algún lugar de
aquí y sostenga el Alt. Arrastre y coloque el
último por aquí. Sólo voy a echar
un vistazo al costado, ver cómo se ven. Puedo seleccionarlos todos
manteniendo el control y
haciendo clic en ellos. Sólo puedo acercarlos
un poco más a la pared. Esto se debe a que en realidad
quiero colocar armas detrás de esos jugadores o
detrás de esos engendros Bien. Algo así. Creo que se ve bien. Puedes ajustar esos puntos de
generación como desees, pero creo que esto
se ve genial Entonces ahora tenemos los puntos de
desove terrorista colocados, y también tenemos los puntos de desove
antiterrorista puntos de desove
antiterrorista Así que sigamos adelante y guardemos
todo y sigamos adelante.
62. 6.02 Almacena información de puntos de aparición: Ahora que hemos colocado
todos estos puntos hijo, repasemos y almacenemos
toda la información. Ahora suelo hacer esto
dentro del modo de juego
porque el modo de juego elige
las reglas para el juego. Ahora muy importante ahora que estás trabajando
en multijugador, es muy importante
saber que el código que escribes aquí
dentro del modo de juego, solo se
está ejecutando en el servidor si eres el jugador y
digamos dentro del jugador, intentas aquí desde el movimiento porque recuerda cuando
inicias el movimiento aquí estás disparando el código como jugador o como cliente. Y como servidor, siempre
puedes ver como
cuál estás disparando. Si solo arrastras desde aquí
y escribes una cadena de impresión. Ahora recuerda que una cadena de impresión
es realmente poderosa de usar. Y si compilas
y haces clic en Reproducir. Y ahora cuando me muevo, se puede
ver que ahora está diciendo servidor. Y cuando me mudo como mi cliente, es el cliente que está diciendo hola. Esto significa que este código
aquí se está ejecutando a través del servidor y el cliente
y no solo el servidor. Ahora déjame conectarlo. Déjenme tomar otro ejemplo. Algo que sólo se ejecuta
a través del servidor. Por ejemplo, si voy
al agachado y lo juego aquí desde la autoridad
por ejemplo, puedo compilar Da click en play, y
cuando camino como servidor, nada está imprimiendo. Y esto es en realidad, ahora
cuando hago clic en play, camino como el servidor. En realidad me agacharé.
Esta es la clave agachada Si me agaché, puedes
decir hola. No obstante, si juego como
el cliente y me agaché, se
puede ver que el servidor
está diciendo hola No es el cliente el
que está diciendo hola porque este código
solo se ejecuta en el servidor. Ahora, para el modo de juego, no
puedes acceder al
código aquí desde un cliente. No tiene acceso
al modo de juego. Si quieres escribir
aquí algún código al que necesitas
acceder desde el cliente, esto no es posible,
entonces
no debes escribirlo dentro
del modo de juego. Puntos de desove. Muy
importante saber, siempre
es el servidor el que genera las cosas en el mundo Esto se debe a que estamos
tratando de evitar hacer trampa. Siempre dejamos que el servidor se
encargue del desove. Por ejemplo, engendrar a los
jugadores desovar un arma al nivel cuando el jugador la
deja caer del inventario
y cosas así El desove siempre se maneja
a través del modo de juego. Para los puntos de desove, podemos
escribirlos dentro de aquí. Eliminemos todo
esto por ahora. Escribamos click
dentro de los eventos. Si haces clic en un
evento, por ejemplo, y haces clic en juego, puedes ver algo llamado post login. También puedes simplemente escribir click y
escribir post login. Y este evento en jugadas
multijugador. Siempre que el jugador
se conecte a tu mapa, se conecta a tu servidor. El inicio de sesión de Unpost es
como una jugada de inicio. Siempre que el jugador se conecta a tu servidor, sucede algo. ¿Bien? Entonces lo
que queremos hacer generalmente aquí es que queremos
hacer una nueva variable. Hacer una nueva variable, se puede
ver la entrada del nuevo jugador. Aquí hay un controlador de reproductor, por lo que en realidad puedes almacenar el controlador del jugador
cuando se conectan y
puedes usarlo más adelante. Esta es una información muy útil. Escribamos reproductores conectados y el tipo es controlador de
reproductor, luego seleccione este, Referencia de
objeto controlador de
jugador .
Y vamos a compilar. Como queremos almacenar todos los controles
del jugador
cuando se conectan, tenemos que convertir
esto en una matriz. Recuerda que esta es
una sola variable, solo
puedes almacenar una
pieza de información. Sin embargo, en una matriz,
es como una caja. Puedes poner todos los controles del jugador dentro de esta caja y
podrás usarla más adelante. Tomemos este,
rastreemos desde aquí y digamos Ad. Podemos agregar este controlador de
jugador a esta caja aquí con todo el control del jugador con los jugadores
conectados aquí. En lugar de usar este anuncio, solo evita la casilla que
suelo golpear desde aquí y usar esta
llamada add unique. Solo puedes tener una instancia de ese controlador de jugador
dentro de aquí, acaso el jugador
se vuelve a conectar o cosas así No tenemos dos de los controladores de reproductor de
este tipo
dentro de la matriz. Agregar Único. Solo agrega una instancia de ese
controlador de reproductor dentro de aquí. Y luego almacenar la
información para los puntos de enlace. Ahora para conseguir cualquier cosa, esto es muy, muy importante. Cuando usualmente programas
a través de mis cursos, quiero que pongas atención a las herramientas que estoy usando. A veces es importante que
estemos programando un shooter en primera persona
o un juego de dos D. A veces es más
importante
prestar atención a los
nodos que estoy usando. E imagina de qué
otra manera puedes usarlo en un juego de rol cuando
saqueas monedas y así sucesivamente Para almacenar o para obtener cualquier cosa
que esté dentro de tu nivel, que exista
dentro de tu nivel, tenemos que usar un nodo
llamado Get Actor de clase. Si tienes razón haz clic aquí
y di Get Actor de clase, puedes ver ahora puedes conseguir cualquier cosa aquí que esté
dentro de tu nivel. Por ejemplo, los jugadores
empiezan que estamos usando. Si buscas jugadores
empiezan, puedes ver eso. Lo puedes ver aquí
también, ya que no se llama inicio de jugadores,
esto no está mal. Sin embargo, también puedes obtener, si vas a los puntos de generación, puedes obtener la base de
puntos de generación, ahora que la tenemos
en blueprint, si solo
buscas base de punto punto, puedes verla aquí Consigue actor de clase. Obtiene solo uno de ellos
aquí desde el nivel. También tenemos otro nodo
llamado get all actors of class. No solo estamos obteniendo
un punto, en realidad
estamos obteniendo
todos los puntos de generación. En realidad, sólo
quiero separarlos. Simplemente puedes
buscar base de punto span y puedes agregarlo y
llamarlo puntos España. No obstante, en realidad voy a separarlos ya de aquí. Voy a buscar los puntos de generación de terroristas de Cada Punto de desove. Asegúrate de que es el
punto de generación que seleccionas aquí. Voy a hacer click derecho aquí, promoverlo a una
variable y llamarlo Cada puntos de generación terrorista Ahora los tengo dentro
de esta variable array. Bien, a continuación podemos volver a decir
obtener todos los actores de clase, Podemos conseguir los puntos de engendro
terrorista Ahora bien, si puedes encontrar un punto de spa
terrorista, déjanos conectarlo aquí de nuevo. Permítanme hacer clic derecho en éste, promoverlo a una variable, y llamarlo
puntos de generación terroristas . Se está consiguiendo a todos los actores de clase
de puntos de engendro en terrazas, que son todos los que están aquí Está recibiendo los cuatro y
ahora lo estamos almacenando dentro
de esta matriz. Bien, ahora que
tenemos esto almacenado, de nuevo, siempre
puedes intentar imprimir
una cadena si quieres, haz clic
derecho en imprimir una
cadena así como esta. Se puede tratar de obtener
este por ejemplo, derecho obtener y obtener
una copia de este. Nuevamente, si no recuerdas
las funciones para una matriz, solo
puedes
buscar array y puedes ver todas las funciones
que puedes usar aquí. Por ejemplo, puedes decir get, si puedo encontrarlo
aquí, este de aquí y puedes
conectarlo. Ahora estás consiguiendo el
punto de España en el índice cero. Y si juegas puedes ver que se
llama punto de giro terrorista así. Si obtienes el punto de giro
en el índice uno en esta matriz, se llama spin 0.2 Si
obtienes el uno en el índice dos, se llama Spin 0.3 Puedes ver esta matriz realmente contiene
todos los puntos de España. Muy útiles, de nuevo para usar cadenas
Pin cuando
quieras depurar tu juego, solo te interesa
ver qué es lo que esta variable, por
ejemplo, está almacenando
realmente. Sigamos adelante y compilemos, guardemos todo,
y sigamos adelante.
63. 6.03 Importa los Assets de interfaz de usuario: Ahora que tenemos almacenada la información del
punto de España, en realidad
estamos listos para crear alguna interfaz de usuario antes de
terminar el desove Así que sigamos adelante
e importemos la interfaz de usuario en los materiales de costo
que
te he dado dentro de este sitio web, puedes ir a y
descargarlo de nuevo. Si aún no lo tienes
descargado, puedes entrar dentro
de la carpeta UI. Aquí tengo botones para ti y tengo los íconos
y también tengo imágenes. Ahora bien, si haces clic en los botones, déjame entrar en el
motor en realidad primero. Y déjame crear una carpeta de interfaz de usuario. Hagamos clic derecho en
la carpeta de contenido. Voy a hacer una nueva carpeta
llamada I dentro de aquí. Hagamos clic derecho y
hagamos una nueva carpeta. Y voy a llamarlo,
por ejemplo, botones. Voy a hacer
uno nuevo llamado íconos. Voy a hacer una
nueva llamada Images. Empecemos por
la carpeta de botones. Déjame entrar en los materiales de
mi curso. Toma todos los botones aquí y
haz clic y arrástralos
a tu navegador de punt Así como así, puedes ver
todos ellos importados Awesome. Ahora para estos aquí, si solo abres uno de ellos, puedes ver que son importantes
y todo es correcto. Para mejorarlos un poco y
no hacerlos borrosos ni
errores dentro del juego, que cambiar el grupo de
texturas a UI También hay que cambiar
la configuración de compresión a la interfaz de usuario dos
D. Entonces realmente sabe que es un elemento de la interfaz y no tenemos nada que
sea borroso o alguna línea blanca
detrás de esta interfaz de usuario y así sucesivamente Y en realidad tienes
que hacer esto por todos ellos. Ahora te voy a mostrar un truco. Ya hemos usado esto antes. Y si solo
seleccionas todas ellas, puedes escribir Click
Ir a Acciones de Activos y Edición Masiva vía Matriz de
Propiedades. Ahora lo hemos hecho
con las animaciones. Si recuerdas, también puedes hacer esto con los
elementos de la interfaz de usuario dentro de aquí. Vamos a hacer clic en compresión aquí. Asegúrese de que en la configuración
de compresión
conviértelos en una interfaz de usuario. Dos D, déjame
ver realmente cuál es el otro, creo que está en el
nivel de detalle aquí. Un grupo selecciona este
y lo convierte en UI. Ahora en realidad lo has
cambiado para todos ellos y no necesitamos
hacerlo para todos y cada uno. Ahora puedes ver si haces clic
en uno de ellos, por ejemplo, puedes ver que es UI e interfaz de
usuario dos, impresionante. Todo se ve
bien. Sigamos adelante y hagamos clic
en Archivo y Guardar. Volvamos a los materiales del
curso. Volvamos a los íconos Ahora, posible
que veas más íconos que lo que puedes ver
aquí en mi pantalla. Nuevamente, esto se debe a que suelo poner íconos a medida que
desarrollo este curso. Más adelante agregaré más íconos, pero en tu ejemplo o en tus materiales de
contenido del curso, probablemente
verás más íconos. No te confundas, los
vamos a usar más tarde. Pero por ahora solo
tengo estos dos. Y voy a ir a mis íconos y los voy a
arrastrar hasta aquí. Y nuevamente, igual que
antes, da click en él, conviértalo en una interfaz de usuario y en una interfaz de usuario dos D. También
lo voy a hacer para el otro, interfaz de
usuario dos D.
Bien, entonces estos están listos. Pasemos de nuevo
a las imágenes ahora. Y déjame abrir
mis materiales de costo. Volvamos a las imágenes. Déjame importarlos todos
aquí. Y a veces
en realidad
los va a convertir en un mapa normal
como puedes ver aquí. Estos fueron importados como mapas
normales y
no quiero eso. Y da click en Revertir,
Revertir y revertir no
los hará en un mapa normal, así que adelante y da click
en el primero de nuevo, selecciona el
último, haz clic derecho Ir a Acciones de Activos y
Edición Masiva a través de la matriz de propiedades. Abra la
selección de compresión aquí en los ajustes
de compresión. Seleccione la interfaz de usuario,
dos D en el nivel de detalle en el
grupo de texturas, seleccione la interfaz de usuario. Cerremos todo
y guardemos todo. Ahora que todo está listo, pasemos a
la siguiente lección.
64. 6.04 Importa una fuente personalizada: Bien, así que ahora que
tenemos la interfaz de usuario agregada, en realidad también necesitamos algún
fondo que podamos usar. Algún texto, texto personalizado, Y lo puedes encontrar si
escribes fondos de Google, esto es muy agradable
de usar porque
son gratuitos y tienen
muchos fondos geniales. Si vas a los fondos de Google y haces clic en él,
esto está fuera de aquí, uno de los fondos que
quieres usar en tu juego. Lo que suelo hacer es
aquí en categorías, suelo quitar la pantalla,
escritura a mano y monoespacio De nuevo, depende del
estilo que quieras para tu juego. En cuanto a la cantidad de estilos, por lo general
me gustan los fondos que
tienen muchos estilos porque sé que se ven
bien dentro del juego. Por ejemplo, podemos usar
Roboto o Open Sense. O también puedes usar, por
ejemplo, algo así como Rubic. Creo que voy a volver
a usar Rubic. Elige lo que
quieras, no importa. Voy a elegir Rubic y después dar clic en
Descargar Familia Se lo va a
descargar para ti. Puedo darle click y abrirlo. Y aquí puedes ver todos
los fondos estáticos, haciendo clic en los estáticos, y aquí están todos
los fondos, ¿bien? Lo que voy a hacer es
que voy a minimizar todos los que están aquí en mi escritorio. Voy a ponerlos
aquí primero porque esta es una carpeta y primero
hay que extraerla. Porque si intentas importar
cosas de una carpeta Sip, no te va a permitir, te va a dar
este error aquí. De nuevo, voy
a minimizar esto. Por lo general, en realidad no necesitas
fondos muy ligeros como este. Luz róbica, porque es
muy difícil de ver en el juego, por lo general solo
me llevo
las muy atrevidas. Rúbrica, negrita, extra
audaz. Escojamos también
el semi audaz, hay un medio regular. Tomaré el mediano
y simplemente haga clic y
los arrastraré a su escritorio
para extraerlos. Ahora voy a
cerrar esto. Así que ahora que tenemos esos fondos, podemos volver a Unreal
Engine y
dejarme hacer una nueva carpeta realmente
aquí en la carpeta UI Déjame hacer clic derecho y hacer una nueva carpeta llamada
fondos Entra fuera de aquí. Y los voy a arrastrar a mi
carpeta de fondos. Y le voy a preguntar, ¿ le
gustaría
crear un nuevo activo de fondo utilizando estos fondos importados? Voy a dar click y
aplicar a todos los D. Sí, quiero que hagas esto. Se va a crear
un fondo para ti. Adelante y guarda todo. Y ahora realmente puedes
usar este fondo si vas a alguna interfaz de usuario que estemos
creando en el futuro. Puedes cambiar el fondo a uno de estos para que
veas una manera muy, muy fácil de agregar esto. ¿Bien? Entonces ahora que hemos
agregado fondos al motor, sigamos adelante y te
presentaré los planos de
Widegit
65. 6.05 Introducción a los planos de widgets: Ahora sigamos adelante y
hagamos un plano de widget. Los planos de widgets
son básicamente la interfaz de usuario aquí dentro
de Unreal Engine Entonces, si haces clic derecho, ve a Interfaz de usuario y
crea un blueprint de widget Pero luego
créelo y selecciónelo. Aquí, aquí arriba, el widget de usuario. Y vamos a llamarlo WB. Y
lo voy a llamar selección de equipos, porque estamos creando la selección de
equipo donde se puede seleccionar para ser ya sea
el terrorista o el antiterrorista Vamos a abrir este
widget, blueprint. Dentro de este
widget. Casi se parece al visor de planos con el que
hemos estado trabajando Puedes escribir, dar click
dentro de aquí y
desplazarte alrededor a la izquierda. Puedes ver todos los elementos dentro de la paleta
que puedes agregar. Por ejemplo, podemos agregar imágenes, botones, bordes,
deslizadores, texto, etc. Estaremos trabajando
mucho con todo esto. También hay una jerarquía. Por ejemplo, si haces clic y arrastras este botón
a esta jerarquía, aquí puedes ver
que tenemos este botón agregado. Se ve muy raro ahora mismo, Pero tenemos un botón agregado a nuestra selección de vapor,
Widegit Ahora de nuevo, puedes
compilar para asegurarte de que no tienes ningún error, al
igual que en Blueprint Y puedes jugar el juego
en la prueba y ver tu juego. Sin embargo, realmente no hemos mostrado esta interfaz de usuario
en el nivel, así que no puedes ver
nada en el juego, bien. Y a la derecha
tienes un panel de detalles. Si haces clic en el
botón por ejemplo, puedes ver que puedes cambiar
las cosas sobre este botón. Puedes cambiar el estilo, puedes cambiar el color, y también puedes
cambiar otros ajustes. Vamos a estar trabajando
con esos ahora. El plano Wiga se
divide en dos secciones. Tienes el diseñador ahora mismo, estás diseñando la interfaz de usuario. Y luego tienes
la gráfica donde
codificas los botones y así sucesivamente. Aquí está todo el código,
el plano o la interfaz de usuario. Por ejemplo, aquí en
la gráfica puedes codificar, por
ejemplo, si haces clic en este botón, ¿qué debería pasar? Esto se hace aquí en el
código aquí diseñas, aquí codificas la
funcionalidad de la interfaz de usuario. Bien, sigamos adelante
y eliminemos esto. Y la razón por la
que se ve tan raro es porque
en realidad necesitas agregar algo
llamado lienzo primero. Si buscas lienzo, puedes hacer clic y
arrastrarlo primero a la jerarquía. Y ahora puedes ver
que tienes un lienzo. Cuando ya tienes un lienzo, puedes agregarle elementos. Ahora normalmente no hago
clic en estas listas, pero si eres muy nuevo aquí, puedes dar click en todas ellas. Intenta leer lo que
realmente puedes hacer dentro de aquí. Eso es realmente bueno. Sin embargo, si eres nuevo aquí, normalmente solo
busco elementos. Te vas a
acostumbrar mucho porque en realidad
vamos a
trabajar mucho con esto, Los mismos elementos que
seguimos usando una y otra vez, te vas a
familiarizar mucho con ello. Por ejemplo, puedes
buscar un botón y puedes hacer clic y
arrastrarlo al lienzo. Y puedes ver cuando lo
agregas al lienzo, también
se agrega
en la jerarquía. Lo que sea que veas dentro
de esta jerarquía, también está dentro
de tu diseñador. Aquí en el lienzo, por ejemplo, puedes hacer clic en este botón
y puedes redimensionarlo. O aquí en el panel de detalles, también
puedes redimensionarlo aquí en el tamaño x y el
tamaño Y también Por ejemplo, puedes
buscar una imagen, puedes arrastrar una imagen a aquí también. Se puede cambiar el tamaño. Haga clic en la imagen,
haga clic en el pincel, y podrá cambiar esta imagen. Por ejemplo,
puedes cambiarlo en, vamos a
importar algunos íconos. Si busco ICO y
selecciono uno de los iconos, y puedes ver aquí
tenemos el icono importado y puedes
jugar con él. También puede hacer clic
en Tamaño al contenido. Esto realmente lo dimensionará a cualquier tamaño que tenga
aquí en el tamaño de la imagen. Se puede aumentar y
disminuir esto también. Por lo general, cuando haces
clic en estas pequeñas flechas, las pone por defecto a cualquier resolución
que hayas importado Por alguna razón, no me está
funcionando en estos momentos. No sé si es un error en motor
real o lo que sea, pero generalmente funciona
sin embargo en
realidad debería cambiarlo de tamaño a cualquier
tamaño que hayas importado como Y como se puede ver, las
dimensiones para este icono es de 256 por 256. Entonces debería hacer que sea
256 como esta. Presiono aquí, pero por alguna
razón no lo hace. Pero este es en realidad
el
tamaño original de esta imagen aquí, y si haces clic en
Tamaño para Consentimiento, realidad la
redimensiona a esta de aquí Bien, así que
solo puedes jugar por ahí. Tenemos el botón,
tenemos una imagen, y también puedes simplemente
hacer clic en todos esos. En realidad, no
importa si simplemente metes todo
dentro de aquí. Simplemente haz clic en él, intenta ver
si le agregas un valor. Mira que en realidad puedes
mover este deslizador. Y puedes dar click en, por ejemplo, Editor Input. Por ejemplo, Texto editable. Puedes colocarlo aquí
y ver qué pasa. Puedes escribir algo dentro de este texto y simplemente
jugar por aquí. De hecho, es muy divertido
echar un vistazo a lo que hay
dentro de aquí. Y voy a dar
click y dar click en mi botón Eliminar y
borrar todo por ahora. Y también voy a
borrar el panel del lienzo. Adelante y compilar,
guardar todo. Y pasemos
a la siguiente lección.
66. 6.06 Muestra la interfaz de usuario de selección de equipos: ahora
y mostremos la interfaz de usuario antes de que realmente la
diseñemos para mostrar la interfaz de usuario. Por lo general, cuando trabajamos con UI, lo
hacemos dentro del controlador
del reproductor. Aquí es donde controlamos la interfaz de usuario que va dentro
del controlador del reproductor. Vayamos al gráfico de
eventos aquí. Lo que solemos hacer
en un solo jugador, tomamos esto y decimos crear
widgets, así como así. Crea el widget, y luego
seleccionas el widget, por ejemplo, Selección de equipo WB. Y luego solemos agregar esto a la ventana, así como así Y luego podemos hacer clic en play, y estamos contentos de que deberíamos
poder ver la interfaz de usuario. Y cuando hago clic en Escape, ya ves que me sale una era. Y esto se debe a que ahora
estamos en multijugador fin de mostrar la interfaz de usuario y en realidad podemos
ver algo. Primero volvamos a
entrar en la interfaz de usuario. Déjame solo agregar un lienzo de nuevo, déjame agregar una
imagen aleatoria porque en realidad
quiero ver si se agrega
a la ventana gráfica o no Así que solo voy a agregar esta imagen
rara aquí a mi UI. Y hago clic en Reproducir,
Y se puede ver que en realidad se está mostrando
en mi pantalla, tanto en el cliente
como en el servidor. En realidad estoy mostrando
la interfaz de usuario en este momento. Sin embargo, si hago clic aquí, si hago clic en Escape, se
puede ver que solo se
pueden asignar controladores de
reproductor locales a los widgets. Recuerda, cuando
estamos trabajando con UI, realmente no
necesitamos
ejecutarlo a través del servidor. Esto se debe a que cada
jugador tiene su propia interfaz de usuario. No es como un
arma que tienes en juego donde tienes que ejecutarla
a través del servidor y luego el servidor necesita replicar
esa información a los clientes y decirles que tienes un arma aquí
tirada en el suelo Es diferente para la interfaz de usuario, cada jugador
tiene su propia interfaz de usuario. No es como que se esté
ejecutando a través del servidor y luego el
servidor esté actualizando su interfaz de usuario. No es como está sucediendo. Está sucediendo solo por
cada jugador como su propia interfaz de usuario. No se está ejecutando
a través del servidor. Cuando trabajas con UI, tienes que ejecutarlo
a través del cliente. Recuerda, cada
vez que tienes UI, tienes que ejecutarlo
a través del cliente. Borremos todo
esto por ahora. Lo que voy a hacer es hacer clic derecho y hacer un nuevo evento personalizado aquí dentro
del controlador del reproductor. Llamemos a este widget de ocultar
show. Básicamente, lo que
este widget o este evento va a hacer es mostrar
u ocultar el widget, dependiendo de lo
que le digas que haga. Ahora tenemos que
darle dos parámetros. ¿Qué widget
va a mostrar u ocultar? ¿Y lo va a mostrar u
ocultar? Aquí, permítanme solo este toro de nombre para
demostrar que esto o bien
será verdadero o falso. Si es falso,
va a ocultar la interfaz de usuario. Si es cierto,
va a mostrar la interfaz de usuario. Podemos usar este toro aquí. No obstante, para el segundo, tenemos que decirle de qué
widget estamos hablando. Tenemos que hacer una enumeración. Vamos a minimizar esto. Ir a la carpeta de planos a
enumeraciones. Recuerden, antes hicimos este llamado estados de movimiento. Ahora hagamos clic derecho
y hagamos uno nuevo. Ir a plano y enumeración. Llamemos a esto widgets
de juego. Podemos hacer una lista de todos
los Widgets del juego que tenemos. Para este, permítanme agregar un
nuevo enumerador, un ítem de lista. Déjame llamarlo selección de equipo, porque ahora mismo
queremos hacer el widget de selección de equipos. También podrás hacer uno más adelante. Por ejemplo, el Mau I, que en realidad es el principal con tu salud y así sucesivamente También puedes hacer uno nuevo llamado Menú Escape cuando
tengas uno y así sucesivamente, pero por ahora los voy
a eliminar. Solo tengo la selección del equipo. Ahorremos ahora dentro de
nuestra ley de control de jugadores. Volvamos a hacer clic en nuestro Evento. Cambiemos este tipo a E.
Lo llamamos widgets de juego. Y es ésta,
esta enumeración. Adelante y llámalo Widgets. Y aquí lo tenemos.
Así que vamos a compilar ahora. Como pueden ver, si
escribo, comienzo, juego, y hago el
evento start play. Si arrastro desde aquí y llamo a este evento, mostrar ocultar widget. Mostrar ocultar widget,
puedes ver ahora
puedo seleccionar qué widget o de
qué widget estoy hablando. Y luego puedo seleccionar
si quiero ocultarlo, es
decir, el espectáculo es falso. O si quiero mostrar la interfaz de usuario. Y podemos pasar el
código por aquí. Bien, así que muy, muy genial. Ahora continuemos con el código. Te dije que esto necesita
ejecutarse en el cliente, así que toda la interfaz de usuario que
crees necesita correr a
través del cliente. Así que hagamos clic derecho y
hagamos un nuevo evento personalizado. Vamos a llamarlo CL para
cliente, mostrar ocultar widgets. Y vamos a ejecutar esto a través
del cliente y confiable, igual que el de aquí arriba, necesitamos las dos entradas. Vamos a crear las dos entradas. El primero se llama widgets y ya ha
seleccionado éste. El segundo se llama show
the lingotes. Mostrar u ocultar. Y seleccionemos el
lingote como el tipo. Tenemos que pasarlo por aquí. Elija el CL, muestre, oculte widgets aquí también. Entonces estamos conectando el evento del
cliente aquí arriba. Y seguir adelante y
conectarlo juntos. Bien, entonces lo que está pasando ahora mismo
está en el Begin Play, cuando empieces a empezar a
jugar el juego, voy a mostrar la IU de
selección de equipo al instante. Entonces voy a
marcar esto y
voy a mostrar la IU de selección de
equipo. Cuando haga esto aquí
en la jugada de inicio, el código va a
correr por aquí. Entonces va a poner esta información en la del cliente. Y ahora esta
información sale aquí y podemos
usarla como queramos. Ahora voy a
arrastrar a este toro y escribir una rama
porque quiero saber, voy a mostrar la interfaz de usuario o
voy a ocultar la UI? ¿Esto es falso o es cierto? Esto es lo que estoy preguntando
ahora mismo. Ahora si lo es, hagamos una nueva función. Hagamos esta función
llamada show widgets. Hagamos otro
llamado Hyde widgets. Nuevamente, da click sobre ellos y agrega una nueva entrada del
tipo A widgit La enumeración que hicimos
antes y la llamamos widget, nuevamente
compilamos porque necesitamos saber qué Widgit estamos
hablando en el Haz una nueva entrada
y llámalo widget. De nuevo, asegúrate de que ese tipo
sea widget de juego también. Bien,
volvamos a la gráfica. Arrastremos esas funciones que acabamos de hacer.
Siguen vacíos. No hay nada dentro de ellos. Pero por ahora, vamos a
agregarlos aquí. Bien, mostrar ocultar widget. Si es cierto, necesitamos mostrar el widget. Este, puedo conectarlo. Si es falso, necesitamos
ocultar el widget, y podemos seleccionarlo aquí. Ahora bien, ¿de qué ancho
estamos hablando? Esta información la tenemos aquí, porque la hemos configurado aquí, podemos conectarlas a
las entradas que acabamos de
hacer para los de aquí. Ahora esta información va
dentro de la función. Ahora tenemos esto aquí, y
podemos hacer lo que queramos. ¿Cuál es nuestro objetivo aquí?
Para mostrar un widget, necesitamos usar el
nodo llamado create widgit. Tenemos que
usar este de aquí. Entonces tenemos que seleccionar de qué
widgit estamos hablando. Éste por ejemplo, aquí, como pueden ver para
la enumeración, podríamos tener muchos artículos Necesitamos saber cuál es el
valor de esta enumeración. Lo hacemos simplemente arrastrando desde aquí y
buscando Switch Y tenemos este
llamado Switch on enumeration.
Adelante y selecciónelo. Y ahora
te va a dar un pin de ejecución, dependiendo de qué elementos de
lista tengas. Por ejemplo, si vuelvo a mi enumeración y
digamos que tengo un MenUI y tengo
un menú de escape, así como
así, por ejemplo Adelante y guárdala. Y volvamos al controlador del
reproductor. Ahora puedes ver que
obtengo pines de ejecución, dependiendo de mis elementos de lista, lo que sea que configures aquí. Entonces si vuelvo,
lo que sea que selecciones aquí va a
pasar por este evento, ponlo dentro del cliente uno y va a
continuar el código, ponerlo dentro de la función. Ahora sabe que
estás hablando la selección del equipo porque la
has seleccionado aquí. Entonces va a ejecutar el código dentro de
la selección del jugador. No va a ejecutar el
código que aquí está escrito. Y no va a ejecutar el
código que aquí está escrito. Sólo se va a ejecutar el
código que se escribe aquí porque se ha establecido el
valor a la selección del equipo. Sólo va a
pasarlo por ese
pin de ejecución ahora mismo. Así es como lo hacemos.
De hecho, solo eliminemos esos por ahora. Realmente no los necesitamos, solo
necesitamos la selección del equipo. Adelante, guarda y
compile esto también. Bien, para crear
o mostrar un widget, continúe y cree el widget. Selecciona cuál
quieres mostrar. Entonces hagamos clic derecho en él y
promocionémoslo en una variable. Debido a que es realmente
útil con la variable, podemos usarla más
adelante para ejecutar eventos. A este lo voy a llamar
Selección WB . Ahora que
has creado la interfaz de usuario, ahora si haces clic en Reproducir, realidad no va
a mostrar nada. Esto se debe a que no es suficiente simplemente
crear la interfaz de usuario. También hay que arrastrar desde
aquí y decir Agregar a la ventana. Ahora se agrega a la Viewport. Ahora si haces clic en Reproducir,
puedes ver ahora que se agrega a la ventana gráfica y no tienes ningún error al hacer clic
en el botón Escape Bien, esto se ve bien. Ahora para asegurarme de que no sigas agregando esto a tu ventana gráfica
sin ningún motivo, déjame realmente desconectarme
aquí y alejar esto. Déjame tomar esta variable,
arrastrarla hasta aquí, hacer clic
derecho y convertirla en una get validada,
adelante y conectarla Ahora si esta variable no
es válida, decir que aún no hemos creado
esta variable, el programa o motor irreal realmente
no sabe de qué
estás hablando con esta variable porque no
has puesto ninguna
información dentro de ella Esto significa que aún no hemos
corrido este código. Si no es válido,
siga adelante y cree la interfaz de usuario. No obstante, si es válida, si esta variable ya
contiene el widget. Entonces ya hemos corrido este código antes. Realmente no queremos volver
a ejecutarlo, solo
queremos
seguir adelante y agregarlo
a la ventana gráfica,
así como así, ¿de acuerdo? Así que esto evita que creamos
la interfaz de usuario una y otra vez. Si no es válido, siga
adelante y cree la IU y luego
agregarla al viewpoort es válida. No obstante, sigue adelante y solo agrégalo a la ventana Sigamos adelante y compilemos
y guardemos todo. Ahora para el widget hide
aquí, lo mismo. Ataquemos desde aquí y
digamos que encienda la enumeración. Tomemos esta variable, ahora que la hemos creado, hagamos clic derecho en convertir en un get validado.
Adelante y conéctalo. Ahora bien, si es válido, es decir, en realidad
queremos ocultarlo. Ahora vamos a golpear desde aquí
y decir eliminar de Padre. Así es como eliminas la
interfaz de usuario de tu Viewport. Eliminar de padre,
si es válido, adelante y retírelo, porque queremos ocultarlo. Ahora, si compilas
y haces clic en Reproducir, podrás ver la ventana En la ventana gráfica,
ha agregado la interfaz de usuario. Si sigues adelante en el gráfico de eventos de control del
jugador, si solo eliminas el programa, porque ahora es en realidad,
cuando
es falso, va a correr por aquí y va a
correr por aquí. Y va a mostrar falso porque lo
has puesto en falso. Lo que significa que seguirá adelante y
ocultará la interfaz de usuario, el widget. Y sabe de qué widget
estás hablando, porque está alimentando esa
información aquí. Y va a ocultar la IU
de selección de equipo. Como puedes ver aquí cuando juego, no
veo la IU de
selección de equipos. Pero por ahora,
en realidad queremos mostrar la interfaz de usuario por delante para
la selección del equipo, continúe y haga clic en Mostrar. Ahora debería funcionar perfectamente. Ahora bien, si quieres que
esto sea más organizado, siempre
puedes click y hacer pines de ejecución, o puedes seguir adelante y
seleccionarlos todos. Da clic en C en tu
teclado y llámalo, por ejemplo, Mostrar
Ocultar UI y así sucesivamente. Así que solo sigue adelante
y mantente organizado. Pero por ahora, sigamos
adelante y compilemos, guardemos todo,
y sigamos adelante.
67. 6.07 Tamaño de interfaz de usuario dinámica para todos los tamaños de pantalla: Ahora, antes de empezar a
diseñar la interfaz de usuario, es muy importante saber cómo se ve la interfaz de usuario
en otras pantallas, no solo tu pantalla,
sino mi pantalla. Si diseñas tu juego, tienes que saber cómo se
ve en mi pantalla, que es un monitor de
resolución de cuatro K. Y también en la
pantalla de un portátil y así sucesivamente. Entonces hay que
redimensionarlo correctamente. De hecho, aprendamos esto
antes de que diseñemos, porque será un futuro si
lo diseñas de manera incorrecta. Por ejemplo, entremos en
el plano del widget. Sigamos adelante y
agreguemos algo de texto. Esta será la forma
más fácil de verlo. Añadiendo alguna
pantalla de texto y digamos que estoy redimensionando algo
así, lo que sea. Ahora que tienes eso dentro de la interfaz de usuario, sigamos
adelante y compilemos. Y siga adelante y haga clic en Placa. Ahora bien, así es como
se ve en mi pantalla. Y por lo general solo tomo
mi plano de widget y
tomo mi juego aquí Y por lo general solo
trato de compararlo. Adelante,
abre tu juego aquí. Voy a
minimizarlo un poco, y trato de ver cómo se
ve en el juego. Así es como se ve
realmente. Si lo comparo con aquí, aquí se ve un poco más grande, en realidad
se ve así. Cuando acerco y alejo, en realidad
puedes ver
el zoom hacia arriba aquí. este momento he hecho
zoom más tres, y ahora se ve correcto Al zoom más tres,
se ve correcto. Ahora bien, esto podría parecer un
poco raro para arreglar esto. Ahora sube aquí en
el tamaño de pantalla. Por lo general lo que quieres
hacer es querer, en la interfaz de usuario a la
pantalla más pequeña posible. Si quieres diseñarlo
para juegos móviles, tienes que hacer clic
en el tamaño de pantalla, Ir a teléfonos y luego
seleccionar el teléfono. Quieres diseñarlo
para la pantalla más pequeña. Ahora mismo, solo quiero
hacer un juego de computadora. Voy a dar click aquí arriba. Por lo general lo diseño para laptops. Estos portátiles genéricos de 14,
15 pulgadas. No voy a hacerlo ahora mismo. Tengo un monitor de cuatro K. Puedo seleccionar esto y
simplemente diseñarlo aquí. Sin embargo,
tal vez se vea así en tu pantalla si tienes
un monitor one K y así sucesivamente. Muy importante
diseñarlo correctamente. Primero, hagamos clic
en el tamaño de la pantalla. Y voy a seleccionar
el tamaño genérico del portátil. Ahora mismo, si me acerco
y es uno a uno así aquí en
el tamaño del portátil, ahora mismo, en realidad lo estoy
mirando y viendo
cómo se ve. Si abro este juego
ahora mismo en mi laptop, este es el tamaño del texto, Por ejemplo, en laptop,
hagamos clic en este fondo. Da click en el fondo, y hago
el tamaño, por ejemplo, 30. Esto es ahora lo que se
ve en la computadora portátil. Pero si juego, ahora así
es como se ve. En mi monitor de cuatro K, se
puede ver que
hay una diferencia. Esta es la laptop. Este soy yo. Lo veo mucho más grande en la
mía que la computadora portátil. Si no te gusta eso,
si a veces la interfaz de usuario se vuelve demasiado grande en los monitores
más grandes, puedes hacer clic en este
botón de aquí abajo. Aquí puedes ver el
escalado de la interfaz de usuario. Los portátiles genéricos
están aquí abajo. Como pueden ver, esta
es la resolución. Lo estoy diseñando
para estas laptops. Ahora mismo tengo
un monitor de cuatro K, y en realidad está por aquí. Se puede ver en un monitor de cuatro K, lo
estoy escalando por 3.8
Es 3.8 más grande que
lo que es una computadora portátil. Ahora bien, si no quieres
escalarlo tanto, puedes seleccionar en esta
, esta resolución. En lugar de escalar a ocho, voy a escalarlo
a cuatro, por ejemplo. Ahora se puede ver
que no va a escalar tanto
en comparación con antes. Ahora bien, si hago clic en Reproducir, realidad
es
más pequeño de lo que era antes. Si vuelvo,
en realidad haga clic aquí, permítanme aumentarlo
a algo
así como 18, para que en realidad puedan
ver algo extremo. Si hago clic en Play, puedes
verlo ahora es muy grande. Normalmente lo que me gusta, si estoy satisfecho con el tamaño para el portátil, trato de escalarlo. Por lo que también estoy satisfecho
con mi monitor de cuatro K. Por lo general es alrededor de
2.5 en el escalado. No me gusta ir demasiado. Puede hacer clic en estos botones. Eso, es a tu pantalla así. Sólo voy a
alejar un poco. A lo mejor solo haga clic en,
voy a alejar un poco,
así se ve mejor. Déjame simplemente hacer clic en jugar Ahora, creo que esto se ve bien. Si necesito dimensionarlo más, voy a redimensionarlo. Pero creo que esto se ve bien. Se puede comparar ahora, y casi se ve igual. Voy a tratar de diseñarlo con
la escala de 2.5 pero de nuevo, sólo tienes que seguir adelante y
jugar con él. Simplemente escale esto hacia arriba y hacia abajo, dependiendo de lo que se vea en su monitor en comparación con
el monitor de la computadora portátil. Bien, cuando estés satisfecho, cerremos todo y
guardemos todo. Pasemos a
la siguiente lección.
68. 6.08 Diseña la interfaz de usuario de selección de equipos: Ahora que estamos
mostrando la UI a la pantalla y
tenemos el tamaño correcto,
sigamos adelante y
diseñemos la IU. Vamos a cerrar el juego. Pasemos a la carpeta UI. Y aquí, dentro del widget de
selección de equipos, plano. Ahora vamos a eliminar esto aquí. Lo único que tenemos en
estos momentos es el panel de lona. Nuevamente, si aún no lo has
agregado, sigue
adelante en la paleta
y busca lienzo. Y sigue adelante y agrégalo a
tu widget, blueprint. El lienzo es muy importante. Tienes que agregar esto
antes de hacer nada. Lo que queremos diseñar
es la selección del equipo. Esto es de mi otro proyecto. Me gustaría mostrarte la interfaz de usuario para que sepas
lo que estás diseñando. Esto es lo que queremos diseñar. Siempre que empieces a diseñar UI, tienes
que imaginarte lo que quieres diseñar porque te
será mucho más fácil. Esto es lo que
vamos a diseñar. Vayamos por aquí. Lo primero que queremos hacer, queremos descomponer la interfaz de usuario. Si
vuelvo a tomar esto aquí por
ti, tienes que descomponerlo. Como puedes ver aquí, tenemos un fondo y tenemos
algo de texto encima. Cuando tienes dos cosas una
encima de la otra, tienes que usar esta
llamada superposición. Cuando la superposición superpone elementos uno
encima del otro, cuando tienes algo
encima de algo, piensa en una superposición
arrastrándola hacia aquí, y busquemos una
imagen, para el fondo, y colocarla aquí también, dentro de la superposición.
Así como así. Vamos a arrastrar esto a la mitad del lienzo
para que podamos ver lo que estamos haciendo simplemente redimensionando esta superposición para llenar esta imagen. Se puede ver que es muy pequeña. Para llenar esta imagen
a toda la pantalla, que aquí en la alineación horizontal y
vertical, clic aquí para rellenar,
horizontal y verticalmente, llena toda la superposición. No importa cuán
grande sea tu superposición, tu imagen va a
llenar todo el asunto. Queremos llenarlo
con el fondo. Ahora el fondo, puedes dar
click aquí para la imagen, y en el pincel aquí, haz clic en la imagen y
podrás buscar, creo que lo llamé panel. Y este un panel azul. Nuevamente, depende de ti
lo que quieras usar. Puedes usar otro color, pero yo sólo voy con el
azul. Y aquí está. Bien. Motor Neral, para que las cosas no sean borrosas así y para que se
estiren correctamente, hay
que cambiar esto
en lugar de una imagen, hay
que
cambiarla en una caja Ahora, antes de hacer esto,
déjame mostrarte cómo funciona. Si voy a las imágenes de la interfaz de usuario
y busco el panel, puedes ver si sostengo
el mouse sobre
él, en realidad es una imagen
muy pequeña. Es de 68 píxeles por 68 píxeles. Si lo abres,
esto es realmente lo grande que es cuando lo
diseñé en Photoshop. Este lo puedes hacer muy grande y aún así quedar
bien en Unreal Engine Si solo agregas la imagen, pintas los sorteos en una caja
y luego cambias el margen a 0.5 como si hicieras clic en esta. Aquí se eliminan
estas líneas discontinuas. Me gustaría hacer eso para ver mi UI sin que
nada me distraiga Y esto es lo que
parece que puedes ver, pesar de que es una imagen pequeña ahora solo puedes hacer
clic en la superposición y estirarla y
hacer
algo más de ella sin que
sea borrosa Característica realmente genial
en Unreal Engine. No tienes que diseñar
cada botón, puedes simplemente diseñar la base, y luego puedes diseñar los botones ellos mismos
dentro de aquí. Este es nuestro antecedente
para la selección del equipo. Ahora para la selección del equipo, nosotros también, si arrastro
esto aquí, nuevo, tenemos algún
texto debajo de él. Tenemos estos botones. Tenemos algo que
se llama caja vertical. Si vas por aquí y
buscas vertical, ves este cuadro vertical. Voy a
agregarlo a la superposición. Ahora en el cuadro vertical, tenemos algún texto en la parte superior como título. Como
puedes ver aquí, también
tenemos estos botones. Antes de agregar estos botones, también hay que
descomponer esto. En realidad tienes
una caja horizontal. Estos están alineados
horizontalmente entre sí. Si busco una caja
horizontal,
esta caja horizontal, hay que
colocarla en la caja vertical. Tenemos el título, aquí
tenemos el título. Y luego tenemos
la caja horizontal donde agregamos los dos botones. Bien, este de aquí. El título en realidad necesita
ir en el medio. Voy a dar click en el texto, alinearlo aquí horizontalmente
a la mitad. Y se ve que no pasa nada cuando lo alineo al medio. A veces, cuando haces
esto dentro de una interfaz de usuario, no te confundas, también tienes que mirar
al padre. No importa si el texto está alineado así o si el cuadro vertical
tampoco está alineado. Se puede ver el cuadro vertical al hacer clic en uno de ellos. Aquí puedes ver que la caja vertical es
en realidad solo esta sección. No es así, si
alineas este texto aquí, aquí, y aquí,
solo tienes el espacio. No está llenando todo
el asunto. Al hacer clic en el cuadro vertical, tengo que llenarlo
aquí sobre esta superposición haciendo clic en la alineación
horizontal y la alineación vertical. Ahora se puede ver que es. Rellenar horizontal
y verticalmente. Bien, Ahora cuando alinee
el texto, debería funcionar. Siempre presta atención
al padre aquí arriba,
cómo está alineado. Porque si está
alineado así,
este texto nunca
va a ir aquí. Adelante y
alinearlos horizontalmente así. Ahora para darle más
espacio a los bordes, podemos dar click en el cuadro
vertical y podemos empujarlo aquí abajo en el
relleno o la izquierda. En realidad, también puedes
escribir un número aquí arriba, por ejemplo, 50 o 102030 Se puede ver que se puede empujar desde los bordes 50, 60, y así sucesivamente. Y si se quiere empujar
específicamente en direcciones, por
ejemplo, la izquierda
voy a poner a 55, y la parte superior voy a poner a 45. No tanto como la
izquierda y la derecha. La derecha es 55 y
la parte inferior también es 45. Algo así. Recuerda,
estoy en zoom más dos. El tamaño real se
ve así. Solo presta atención
al zoom
en el que estás porque es posible
que te acerques demasiado Así es como se
ve realmente en estos momentos. Creo que el espaciado a los
bordes está bien ahora mismo. Lo que puedes hacer
es seguir adelante y continuar con nuestro diseño. Y entonces podemos seguir adelante
y estilizar todo. Vamos a hacer clic en el cuadro
horizontal. Ahora para la caja horizontal, tenemos estos dos botones. Ahora de nuevo, estamos
superponiendo un botón. Encima de ella hay una imagen
y también tenemos algún texto. Nuevamente, tienes que
usar una superposición, lo contrario no puedes superponer
cosas una encima de la otra. Dentro de la
caja horizontal, tenemos una superposición. Dentro de esa superposición, tenemos un botón, y luego tenemos una imagen, que es el icono del botón. También tenemos algún texto. Si busco texto
y lo agrego aquí, tenemos el botón, la
imagen y algún texto. click sobre esta superposición, en realidad, esta caja horizontal, nuevamente, tenemos que
llenarla aquí. Así se puede ver, aunque lo estoy alineando
horizontal y verticalmente, no
está alineando verticalmente. Y esto es porque
hay que hacer clic en Rellenar, y va a
llenar todo el asunto. Al hacer clic en este
botón, sigamos
adelante y agreguemos algo
a este botón. Haga clic en el botón,
vaya al Estilo, haga clic en Normal aquí arriba, y seleccione el botón. Voy a seleccionar
el botón rojo. Y por lo general llamo botones BTN. Puedes intentar buscar
qué botón quieres usar. Nuevamente, es opcional,
depende de ti. No obstante, lo que quiero usar es este llamado Botón Rojo, creo, o Botón
Cuadrado rojo, así. Y voy a elegirlo aquí. Lo que puedes hacer es, de nuevo, vamos a teñir. Voy a dar
click en el tinte, y voy a
ponerlo en blanco, porque no quiero ningún tinte
gris en mi botón. Este es en realidad el color real. Si lo pones a blanco aquí, la caja redondeada, la
voy a cambiar a una caja, una caja normal. Nuevamente, el margen, lo que le
dije antes, lo
puso en 0.5 y
se verá normal. Ahora veamos si tenemos otras cosas que
cambiar y no, si quieres copiar esta
configuración al hovert, no
tienes que
hacer todo esto De nuevo, mantenga presionada la tecla Mayús
y haga clic con el botón derecho. O de nuevo puedes simplemente hacer clic
derecho y copiar. Pero puedes mantener presionada la tecla shift y el botón
derecho del ratón para copiarlo, y shift y el botón izquierdo del ratón
para pegarlo también para estos dos. Recuerda hacer clic en el hoverd. Y recuerda también cambiar el hoverd
por el acaparamiento Y da click en la presionada
a la, presionada esta. Bien. También necesitamos quizá
ajustar el tamaño de la imagen, pero hagámoslo más adelante. Por ahora, en esta se puede
ver que está muy estirada. Entonces lo que voy a hacer,
voy a hacer click en la superposición, y voy a dar click en Rellenar. Entonces llena todo el asunto. Entonces déjame
copiarlo de nuevo. click sobre esta superposición, voy a dar click en Control D, y eso copiará
el otro botón. Así que en realidad puedo ver cómo se ve si
tengo dos botones. Entonces ahora tengo estas
dos superposiciones, y pongamos un
espaciador entre ellas, Buscar espaciador y agregarlas entre
estas dos superposiciones Y luego agreguemos algo de espacio
entre estas dos superposiciones. Este es el eje x, y este es el eje Y. Y necesitamos espacio en el eje x. Déjame escribir algo así como 50. Y ahora se puede ver que
hay algo de espacio. Ahora para este texto. Quiero que esté en la parte inferior de
este botón de aquí. Al hacer clic en el texto,
voy a alinearlo al botón aquí y
también en el medio. Y lo mismo con
esta alineación inferior y en el medio horizontalmente. Bien, ahora para los botones. No quiero que se
estiren así. Al hacer clic en uno de los botones, en lugar de
alinearlo verticalmente, voy a dar click
en la parte inferior aquí. Lo mismo aquí.
Haga clic en la parte inferior. Alinear verticalmente, así. En lugar de
alinearlo verticalmente, vamos a
controlarlo nosotros mismos. Haga clic en el botón, puede
hacer clic en el Tamaño de imagen. Aquí, esta es la Y
aumentando hacia arriba y hacia abajo. Puedes aumentar la
Y para el botón, y puedes elegir
qué tan grande debe ser para este y este
, algo así como 160. Por ahora, 160. De hecho, agreguemos
los íconos antes de que
podamos decidir qué
tamaño debería ser. Voy a hacer de
nuevo por la imagen, es alinearla en el medio. De hecho, hagámoslo
por ambos. Vamos a hacer clic en ambos. Haga clic en un control antiguo,
haga clic en el siguiente. Vamos a alinearlos en el medio
y en la parte inferior otra vez. Para volver a empujarlos hacia arriba, podemos usar el acolchado, empujándolos de abajo hacia arriba. Entonces puedes
empujarlos, por ejemplo, 40, algo así, 50, 60. Ya ves puedes
empujarlos hacia arriba algo así como 40. Déjame en realidad solo
cambiar el icono primero. Haga clic en la imagen y
cambiemos el icono. Si buscas ICO para este voy a
seleccionar el contador o el terrorista
para este
voy a elegir el
antiterrorista. Aquí podemos ver que son
muy pequeños por alguna razón. Nuevamente, estos botones no funcionan, así que tengo que agregar
el tamaño manualmente. Si solo vas por
aquí en realidad, y haces clic si bajo
a la interfaz de usuario a los íconos, si mantienes el mouse
sobre estos íconos, puedes ver las dimensiones. El tamaño verdadero es de 256
píxeles por 256 píxeles. Si puedes hacer click en él,
si escribes 256 por 256, este es en realidad el tamaño
verdadero del icono. Sin embargo, esto es demasiado grande. Pero solo ten en cuenta
que si
lo aumentas más que el
tamaño máximo que tiene, en
realidad será borroso.
No repases eso. Lo que voy a hacer
es a lo mejor voy a hacer que sea como 150 por 150. Y lo mismo para
el antiterrorista, el tamaño 150 por 150. Bien. Algo
así. Ahora, para controlar qué tan arriba y abajo están
estos botones, puedes hacer clic en
el cuadro vertical, realidad la superposición misma. Y luego solo puedes cambiar el
tamaño de la caja vertical. Y luego elige qué tan arriba y abajo
deberían compararse estos botones con el título. Dando clic también en este texto. Quiero estilizar estos textos. Recuerda que agregamos algunos fondos
de los fondos de Google,
The Rubic one Siempre podemos hacer clic en el texto, hacer clic en la familia de fuentes, y luego elegir uno
de los estilos rubic Para este, sólo voy
a elegir el rubic bold. Y entonces voy a establecer
el tamaño a un poco más pequeño, tal vez algo así como 22. En cambio, voy a agregar
algún esquema al texto. Si solo vuelve a seleccionar
ambos, vaya a Configuración de esquema. Voy a poner el
tamaño en algo así como, puedes probar 1234, creo que algo así como
tres está bien aquí. Y luego también cambiar el color. Voy a cambiar el
color haciendo clic en el color del contorno y luego
tomando el seleccionador de color Entonces voy a
elegir color oscuro, lo mejor este de aquí. Adelante y da click en
él y escogerá ese color. Usted acaba de seleccionar. Bien, para el texto, si
quieres empujarlo hacia abajo, siempre
puedes probar este
fondo aquí, por ejemplo. Menos dos, menos cinco. Se puede ver que los puede
arrastrar hacia abajo. Si escribes un número más, en realidad los empujas hacia
arriba. Algo así. También puedes usar
este de aquí abajo, el traducir, si
lo encuentro aquí abajo, el transform. Y luego traducción,
puedes traducirla en la y. Si escribes dos
aquí, por ejemplo 56, también
puedes
empujarla hacia arriba y hacia abajo en la traducción para esta puede ser algo, dos está bien. Simplemente lo empujamos ligeramente hacia abajo. Bien. Yo también voy a estilizar
este texto Haga clic en él. Sigue adelante y
selecciona el Ruby negrita. Este hice 22. Este estoy haciendo 24
porque es un título. Y luego seguir adelante y seleccionar
los ajustes de contorno. Voy a ponérselo a tres,
igual que los otros. Para el color del contorno, voy a tal vez este color
oscuro o este, voy a escoger este
color oscuro y seguir adelante y dar click en. Bien. Ahora solo puedes
seguir adelante y cambiar el texto. Por ejemplo, seleccione
un equipo para éste. Voy a escribir Terri
para el otro, voy a escribir terrorista Bien, para el daterrist. En realidad quiero
cambiar el botón. Puedes hacer click en él,
cambiar este botón. Voy a cambiar a cuadrado, creo cuadrado verde. Y adelante y
selecciona cuadrado verde. Así como así. Otra vez,
igual que antes. Puedes copiar esto
encima de los otros, puedes dar click en el texto, click en el Color de Contorno. Toma el seleccionador de color y
selecciona éste en su lugar. Bien, creo que esto se ve
mucho mejor que antes. Bien, ahora
veamos qué está mal. Ahora bien, si haces clic en Reproducir, siempre
es agradable compilar. Haga clic en Reproducir y vea
lo que está sucediendo. este momento puedes ver el,
la interfaz de usuario o el widget de
selección de Steam en realidad
está en la parte superior de la imagen y no en el medio. Puedes ver si haces
clic en el lienzo, realidad está por aquí. Si solo arrastras esta superposición aquí
abajo, por ejemplo, en la parte inferior derecha, y haces clic en Reproducir, en realidad
puedes ver
que está en el medio. Eso realmente no tiene sentido. Debería estar aquí abajo,
porque lo acabo de colocar aquí. Este es un
concepto muy importante que hay que
entender estos puntos de anclaje. Son muy
importantes en estos momentos. Lo que está pasando es que tienes
el punto de anclaje aquí arriba. Si hago clic en reproducir, trato de
maximizar la pantalla aquí, puedes ver que esta interfaz de usuario se está poniendo. Hacia ese extremo de
la pantalla aquí arriba, va a ser empujado aquí arriba. Esto se debe a que su punto de
anclaje está ahí arriba. No va a quedar aquí
abajo como quieras. Hay que cambiar
el punto de anclaje. Recuerda
hacerlo siempre por tu UI. Al hacer clic en la superposición, hay
que cambiar el
punto de anclaje haciendo clic aquí arriba. Como puedes ver aquí, solo el padre tiene
un punto de anclaje. Todos los demás no
tienen puntos de anclaje, solo el padre. Al hacer clic en esa,
continúe y haga clic en Anclajes y luego seleccione donde
desee alinearlo. Para esta interfaz de usuario. Quiero
alinearlo en el medio, seleccionando el
punto de anclaje medio
al centro de la
pantalla así. Entonces para el puesto, voy a escribir 00 para
alinearlo en el centro. Pero como puedes ver,
no está alineándose con el centro. En realidad es un hasta
ese punto por aquí. Aquí es donde hay que
jugar con la alineación. Si solo aumentas este, puedes ver ahora lo estás
incrementando correctamente. Está en el medio,
en la posición 00. Ahora para este, hay que escribir el
número exacto en su lugar. 0.50 0.5 Puedes ver aquí, si escribes cero
en la alineación, esta es la alineación x Se va a alinear de esta manera. Si escribes 0.5
está en el medio. Si escribes uno, va
al otro lado la alineación. Puedes escribir 00 punto
5.1 Tienes estas opciones. Voy a escribir 0.5
por 0.5 porque
alineará esto en el medio
y en la posición 00. Ahora se puede ver que está
directamente en el medio. Y si compilo y juego, debería estar en el medio. No importa qué
tamaño de pantalla tenga, va a pegarse a
la mitad de la pantalla. Bien. El siguiente tema
que tenemos ahora mismo es que el ratón
no aparece realmente, y lo vamos a hacer más adelante.
Vamos a arreglarlo. Sin embargo, si trato de pasar el
mouse sobre los botones, en realidad
están molestando Y tengo que arreglarlo. Esto se debe a que si haces clic en el botón y haces
clic en la normal, has establecido el
tamaño de la imagen en 32 por 160. No obstante, para el
hovert, el tamaño de la imagen sigue siendo muy bajo Hay que copiar el
tamaño de la imagen del normal, basándolo tanto en el hovert
como en el prensado todos ellos. Y haz lo mismo
por el verde. Copia esto, basándolo en el tamaño de la imagen hovert y también en el tamaño de la imagen prensada Sigamos adelante y compilemos, bien. Haga clic en jugar. Ahora, de nuevo, si pongo
el mouse sobre él, en realidad
puedes ver que
puedo pasar el mouse
sobre el Sin embargo, cuando pongo el
mouse sobre la imagen, realmente no
puedo sobre el botón, y la imagen y el texto en realidad
están
bloqueando el botón. Vamos a arreglar eso. Da click en las
imágenes, todas ellas aquí. Y el texto también. Hay que encontrar este
llamado visibilidad. Y hay que
configurarlo en no hit comprobable. Y lo que eso significa es las imágenes y los textos
son solo decoración. No quiero que mi ratón
interactúe con ellos. Elijo este no comprobable, y eso
asegurará que estos no
estén interactuando
con mi mouse Ahora cuando hago clic en reproducir y
trato de pasar el botón, se
puede ver que también se cierne
aunque esté pasando
el cursor sobre el icono y el texto Bien, así que eso fue todo para el CI. Lo último que quiero
hacer es que también quiero que el fondo
sea borroso porque como pueden ver,
todo se ve bien No obstante, también me gusta que mis
antecedentes sean borrosos. Ahora es opcional. A
lo mejor voy a quitarlo más tarde. Pero por ahora, busquemos desenfoque y pongámoslo
aquí en el fondo, así sobre la superposición
fuera de todo. Ahora para éste, de nuevo, recuerda cambiar
el punto de anclaje. Quiero que este desenfoque
llene toda la pantalla. Como puedes ver, para este desenfoque, puedes cambiar la fuerza de
desenfoque. Entonces algo así
como 50 como puedes ver aquí. Pero quiero que llene toda
la pantalla. Lo que hay que hacer es
volver a hacer
clic en el punto de anclaje y seguir adelante y llenar toda la pantalla.
Así como así. Y cambiar el offset a
0000, así como así. Ahora va a llenar toda
esta pantalla. Y si haces clic en Reproducir,
la pantalla queda borrosa. Ahora para la cantidad de desenfoque, en realidad
voy a reducirla a algo tal vez como diez. Esto se debe a que
también puedes ver el fondo, efecto
realmente genial mientras
seleccionas al equipo. Cuando te unes al
juego, puedes ver los otros jugadores están jugando
mientras seleccionas el equipo. Bien, entonces ahora que
hemos terminado, adelante y guarda todo y pasemos
a la siguiente lección.
69. 6.09 Efectos de sonido de Button: Ahora sigamos adelante y agreguemos algunos efectos de sonido
a los botones. Y para ello,
pasemos al costo de los materiales. Y dentro de aquí,
vayamos al audio. Y tengo esos
efectos de sonido para ti. El botón pasa el cursor
y el botón pulsado. Pasemos también a la carpeta
de audio, y al motor y a los efectos de
sonido. Y vamos a arrastrarlos
al navegador de contenido. Ahora vamos a hacer clic derecho sobre
el botón, flotar, Crear. Y voy a
llamarlo, así que botón hover. Para el otro, el presionado, vamos a hacer clic derecho en
Crear Q y
llamarlo Botón de Sonido presione. Vamos dentro de ambos. El hover y el prensado. Déjame bajar
el sonido a tal vez 0.25 Eso suena
bien para la prensa. Déjame ponerlo a 0.4 tal vez. Sí, eso suena bien. Bien, vamos a guardar
todo de nuevo. Como ya te dije antes, podemos
ver si tocas el sonido. Si quieres que esto
sea diferente. Cada vez que puedas agregar un modulador y
conectarlo aquí, puedes. Me gustaría cambiar
el tono de 0.9 a 1.1 Suena diferente cada vez que puedes hacer
lo mismo aquí. Voy a copiar el modulador. Voy a pegarlo aquí y conectarlo aquí también. Ahora bien, esto suena diferente
cada vez también, cuando pasas el cursor sobre los botones Bien, increíble. Adelante y guarda todo Ahora para agregar
los efectos de sonido, volvamos a la interfaz de usuario. Abra el widget, plano,
haga clic en el botón. Entonces aquí abajo se
ven opciones presionadas. Sonido Puedes
seguir adelante y
cambiarlo a la
pulsación de botón para el hoverd Sonido Puedes cambiarlo
al botón, flotar. Lo mismo para el otro. Puede cambiar el pulsado por el botón presionado y el que se ciernen
al botón
hover . Adelante y compilar. Y ahora cuando haces clic en Reproducir, y pasas el
mouse sobre ellos, si presionas bien, ahora
puedes ver que funciona Sin embargo se puede ver que
en realidad tengo un dólar aquí, así que necesito cambiar
el verde. Verde flotaba y verde prensado. En realidad quiero usar el
otro, el tal uno. Creo que tengo una tal. Este es mucho mejor para mí. De hecho voy
a copiar esto. Elija la versión flotada y
prensada de esto. Voy a dar click en el texto y seleccionar el seleccionador de color Y seleccione éste en su lugar. Creo que se ve mucho mejor. Bien, para el sonido, en realidad
necesito reducir el efecto de
sonido para el hover, creo que es un poco molesto Déjame cambiarlo
a 0.15 en su lugar. Jugar. Y ahora vamos a probarlo. Aquí funciona. Bien,
ahora funcionan. Y también tienes algunos sonidos
en los botones.
70. 6.10 Cómo engendrar actores: Ahora sigamos adelante
y engendremos al jugador. Y antes de hacer esto,
repasemos en la medida de los escenarios
mundiales. Vamos
a ir a los planos. Haga clic en el modo de juego
para el modo de juego. Recuerda que en los valores predeterminados de clase, establecemos el valor por defecto en clase para engendrar como el
antiterrorista Sigamos adelante y
aclaremos esto por ahora. Y vamos, antes de que haga otra
cosa también, vayamos a los planos y abramos el
antiterrorista para asegurarnos de que sea correcto Si abro la ventana gráfica aquí, solo asegurándome de que
la
malla de tercera persona sea la misma la malla y creo que hay
un bicho en el terrorista Entonces si lo abro y
se ve que hay un bicho, la malla es el terrorista.
Eso es correcto. Y la malla de tercera persona, tenemos que cambiarla
al terrorista masculino así
como esta malla de aquí. Bien. Solo
asegurándome también de que la cámara esté equivocada por alguna razón y eso es en realidad porque necesitamos el zócalo para la cámara también aquí y
el enchufe principal. Porque recuerden que el terrorista
está usando otro esqueleto. Si voy al
mercado, éste, el personaje plateado está
usando este esqueleto, lo hacen
los militares, El terrorista
está usando este esqueleto. Voy a abrir este
esqueleto para el terrorista. Ve a la cabeza. Voy a hacer click derecho y agregar un socket para
este también. Voy a cambiar
el nombre a cámara, igual que la
otra que voy a salvar. Y ahora necesitamos
posicionarlo de la
misma manera que el otro. Voy a abrir el
personaje esqueleto plateado. Voy a hacer click
en ese socket. Solo voy a mantener el turno y hacer clic derecho para
copiar estos ajustes. Y luego voy a repasar
al terrorista
y mantener turno y click
izquierdo sobre ese y eso lo
colocará en el mismo, adelante y lo guardaré todo. Y ahora deberías ver si
vuelves al terrorista, automáticamente ha
colocado la cámara aquí arriba porque el
brazo de resorte está realmente unido a la cámara socket. Bien, vamos a guardar todo. Ahora bien, esto se ve correcto. Otra vez para el modo de juego. En los valores predeterminados de clase, necesitamos eliminar el pan
por defecto, establecerlo en non, porque ahora es el
jugador quien va a seleccionar si quiere engendrar como el terrorista o
antiterrorista Bien, vamos a cerrarlo. También asegúrese en
la configuración del mundo, si hace clic aquí que esta clase de panorámica predeterminada también
está establecida en non. Bien, ahora si haces clic en jugar, puedes ver que desoves
en un área aleatoria Y eso está bien.
Esto es intencional. Entonces ahora no estamos desove
como ningún personaje. Tenemos que seleccionarlo nosotros mismos. Bien, para engendrar jugadores, tenemos que hacer esto dentro
del Controlador de Jugador,
el Controlador de Jugador,
dentro de aquí Hacemos la interfaz de usuario como hicimos aquí, pero también hacemos la generación
de elementos y
personajes y así sucesivamente Cada vez que generas algo, tienes que entrar en la interfaz de usuario del controlador de
jugador y el desove está dentro
del controlador de jugador Vamos a abrir el controlador de
jugador. Y dentro de aquí, en realidad, esta vez quiero trabajar al revés porque lo
entenderás mucho mejor para el desove.
Muy, muy importante. Queremos ejecutar un evento, y no tiene que estar dentro del controlador del jugador. Puedes ejecutar el evento desde el jugador o desde
cualquier otro lugar. Entonces tienes un
evento inicial que quieres ejecutar. Entonces ese evento necesita
pasar por el modo de juego. Porque recuerda que el
modo de juego solo se ejecuta en el servidor. El cliente no puede comunicarse
con el modo de juego. Entonces el desove de
artículos y jugadores. De hecho, corremos por el modo de juego para asegurarnos de que
el cliente no esté haciendo trampa. Entonces el servidor siempre está comprobando si lo que estás
haciendo es legal o no. Y luego desde ese
modo de juego, si todo está bien, vas a ir al Controlador
del Jugador y
generar ese ítem o personaje El desove final siempre está
dentro del Controlador. Como no tenemos
un personaje en este momento y realmente queremos
generar el personaje, comencemos este evento desde
el controlador del jugador En realidad quiero
trabajar al revés. El evento final
al que queremos llegar es si escribes click y escribes un
evento personalizado y haces Saw player, llamamos a ese
evento personalizado spawn player Arrastras de aquí y dices
engendrar actor de clase. Esta es la función que se utiliza para engendrar
cosas al mundo Ahora para esta, en lugar de solo seleccionar lo que
queremos engendrar, vamos a dejar que
el jugador decida, voy a simplemente arrastrar esta
entrada o este pin aquí
al evento y automáticamente
creará esta variable para mí Y voy a
hacer lo mismo
por la transformación de spawn Ahora para esta clase, solo
voy a seleccionar equipo o llamarlo equipo porque es o antiterrorista
o terrorista lo que
va a engendrar El jugador selecciona al equipo, luego va a generar en algún
momento aquí para la colisión, tengo que configurarlo
para tratar de ajustar la ubicación, pero solo asegúrate de que
siempre engendras a este Bien. Siempre es agradable tener una variable
de este jugador. Vamos a hacer clic derecho,
promocionar una variable y llamarla peón jugador, ¿bien? Este es el paso final al
que queremos llegar. Queremos, por ejemplo, ejecutar un evento que
se llama Select Team. Y entonces ese equipo selecto va a pasar por
el modo de juego. Y el modo de juego
va a volver al
controlador Player y ejecutar este jugador spawn
si todo está bien y vamos a
engendrar al mundo Bien, vamos a guardar todo ahora pasemos
al modo de juego. Dentro del modo de juego, queremos ejecutar
este jugador spawn De hecho estoy trabajando al revés, ahora mismo estoy trabajando al revés. Este jugador de spawn tiene que
ser corrido dentro de aquí. Para ello,
hagamos realmente un nuevo evento personalizado. Y llamemos a este jugador de generación de una
solicitud, estamos solicitando engendrar
al jugador para este Nuevamente, quiero dirigir este evento. Realmente no tenemos una referencia a nuestro controlador
Player. De hecho,
agreguémoslo a éste. Simplemente hago clic en el y
busco mi PC. Creo que se llama contraataque de
PC. Éste. Sigue adelante y selecciona
tu controlador de reproductor. Y lo voy a llamar
Controlador de jugador, ya
podemos arrastrar desde aquí. Y entonces cómo lo
llamamos, Jugador de Spawn. Arrastre de aquí y digo Spawn player y seguir
adelante y seleccionarlo. Bien, entonces ahora estás
manejando esto. Ahora podemos ver que tienes que establecer el equipo y la transformación de
spawn Ahora para el equipo, nuevamente, se va a
determinar
el equipo cada vez que el
jugador presione este botón. Entonces este va
a ir todo el camino de regreso a la pulsación de botones. Así que solo voy a hacer clic y arrastrar esto a aquí también. Entonces ahora para la transformación de spawn, tenemos que determinar en del mundo queremos
engendrar a los jugadores, y está encima de
esos puntos de spawn que
creamos antes Entonces, sigamos adelante
en la siguiente lección y escribamos la lógica para eso.
71. Ubicación de aparición de jugadores 6.11: Bien, así que ahora tenemos que
determinar dónde queremos
engendrar a los jugadores Y recuerden que ya colocamos aquí
los puntos de engendro para el terrorista y
el antiterrorista, y ya almacenamos esos puntos de generación
dentro de esos arreglos Sigamos adelante y tomemos los puntos de
generación antiterrorista
y los puntos de desove terrorista Golpeemos desde aquí
y escribamos al azar. Así que tenemos una función
llamada random array item, así que solo vamos a engendrar al jugador en uno de esos puntos de
España por azar, seguir
adelante y seleccionando uno de estos
puntos de España por azar Y entonces
vamos a tomar
punto España y decir get act transform. Bien, haz lo mismo aquí. Vamos a escribir al azar
y luego conseguir transformar. Ahora tenemos la ubicación de los actores, rotación y la escala. Puedes ver que si haces
clic derecho aquí y divides la estructura, puedes ver ese punto de generación que ha seleccionado al azar Tienes la ubicación
de ese punto de sierra, tienes la rotación de la misma y también
tienes la escala de la misma. Voy a recombinar el pin struct porque en
realidad quiero transformarme Ahora lo que puedes
hacer, muy genial aquí, es que puedes arrastrar de este equipo, y ahora puedes decir
igual así y seleccionarlo aquí. Si este equipo seleccionado es
igual a, por ejemplo, antiterrorista, seleccionemos este BP counter Terrorist. Si el jugador seleccionó
al antiterrorista, lo que podemos hacer aquí es
que podemos arrastrar desde aquí y decir seleccionar, usar este. En realidad, usemos este
llamado select transform. Pero también puedes usar
este llamado select. Y entonces puedes
simplemente colocar esto aquí y usar este
falso o correcto. Por cierto, esto es
lo mismo, la transformación selecta. Ya nos da un lingote. En realidad,
solo usemos este. Sigamos adelante y
conectémoslo. Ahora lo que está diciendo aquí,
vamos a conectarlo aquí. Lo que está diciendo
es si el equipo aquí que ha sido seleccionado es
igual a antiterrorista, si es cierto,
adelante y elige A. Si es falso,
adelante y elige B. Eso es lo que está diciendo. Si es cierto que
seleccioné a antiterrorista, tengo que tomar
aquí los
puntos antiterroristas y luego tengo que enchufar eso
a A. Porque es cierto, he seleccionado al antiterrorista. Voy a tomar los puntos
antiterroristas y enchufar la transformación aquí. No obstante, si es falso, es el terrorista
que el jugador ha seleccionado y lo ha puesto aquí. Si tienes varios
equipos para tu tirador, tienes que usar este
llamado select porque este en realidad
solo te da la
opción de dos. Este te da la
opción de más de dos, tal como viste antes. Si enchufa una
enumeración aquí, le dará las opciones de
todas las enumeraciones para las que
haya seleccionado Ahora, vamos a eliminar éste. Centrémonos en
eso para el equipo, voy a
reconectarlo aquí arriba No sé por qué
se desconectó. Y sigamos adelante y organicemos
las cosas un poco más. Bien, entonces ahora
va a seguir adelante y engendrar a ese jugador al azar a uno de esos
puntos
dependiendo de si el jugador selecciona
antiterrorista o terrorista Como puedes notar aquí, para esos eventos nunca vuelvo a
seleccionar ejecutar en servidor, recuerda que el modo de juego
solo se ejecuta en el servidor. No es necesario ejecutar esto en el servidor
o en el cliente. Y por cierto, nunca
se puede ejecutar en el cliente en el modo de juego, porque nuevamente solo
se ejecuta en el servidor. Realmente no hace falta
replicarlo aquí. Se ejecutará automáticamente
en el servidor así
como aquí en el
control del jugador. Se puede ver aquí. O fíjate que no ejecuté
esto en el servidor también. Recuerda lo que dije antes, siempre
es el servidor el que genera las cosas
en el mundo De manera realista, debería
ser una ejecución en servidor. Sin embargo, recuerda,
vienes del modo de juego. El modo de juego solo
se ejecuta en el servidor y ejecuta este jugador spawn Esto está automáticamente
todavía en el servidor. Esto nunca corre del cliente. Esto viene del modo de juego que se ejecuta desde el servidor. Entonces este siempre se
ejecutará en el servidor, así que en realidad no es necesario
replicar eso también Bien, ahora si vuelvo
al modo de juego, así que ahora tenemos esta
petición spawn player Y esto en realidad
viene del controlador de reproducción. Entonces, si vuelvo aquí, hago clic
derecho y hago
un evento personalizado. Y llamémosle a
éste Seleccionar Equipo. Ya casi terminamos.
Seleccione Equipo. Y también quiero hacer que
otro se ejecute en el servidor llamado
Server Select Team. Y éste se ejecuta
en servidor confiable. Bien, entonces ahora
vamos a seleccionar un equipo. Cuando estamos dando clic en la interfaz de usuario, para este equipo selecto, quiero ejecutar el
servidor select team. Entonces ahora se va a
ejecutar a través del servidor. Para este voy
a ejecutar el modo juego. Uno llamado Request Spawn Player. Ahora no puedo ejecutar el jugador de spawn
request porque como puedes ver aquí, no
tengo una interfaz de
blueprint para mi modo de juego y no
tengo ninguna referencia al Así que sigamos adelante
en la siguiente lección y creemos una
interfaz de plano para el modo de juego
72. 6.12 Interfaz de Blueprint para el modo de juego: Bien, así que sigamos
adelante y creamos una interfaz de plano
para el modo de juego Ahora puedes hacerlo
tú mismo porque nosotros lo hemos hecho tantas veces. Ahora bien, si no te acuerdas, sólo tienes que seguir adelante y
sígueme aquí en esta lección. Sigamos adelante en la carpeta de interfaces de
blueprint. Vamos a hacer clic derecho, ir a Blueprint y seleccionar la interfaz de
blueprint Adelante,
llámalo y voy a modo. Entra dentro de esta interfaz de
blueprint. Llamemos a esta función, obtener referencia del modo de juego
dentro de aquí. Vamos a crear una salida. Tienes que seleccionar a lo que
intentas hacer referencia. Estoy tratando de hacer referencia
a mi modo de juego llamado GM, creo. Counterstrike. Si vuelvo a hacer clic
aquí arriba, a la derecha,
contraataque Selecciona mi modo de juego y
luego llámalo modo de juego. Bien, ahora terminamos aquí. Recuerda compilar todo. Volvamos a nuestro modo de juego
en el modo de juego Blueprint Dentro de aquí, hagamos clic
en la configuración de clase, vayamos a las interfaces
y luego seleccionemos la interfaz que acabas de hacer
esta en modo juego. Ahora vamos a hacer doble clic
en la interfaz. Y dentro de aquí,
escribamos autorreferencia. Ahora hemos definido
este modo de juego. Adelante, compilar
y guardar todo. Ahora podemos ir al controlador del
jugador y puedo aquí en mi inicio Play. En realidad sigamos adelante y digamos y haga clic derecho
aquí digamos obtener modo de juego. Ahora a partir de esto podemos decir obtener referencia
del modo de juego
que acabamos de hacer. Y es mensaje porque
viene de una interfaz de
blueprint Y seguir adelante y conectado. Ahora para este, ahora
puedes hacer clic derecho y promoverlo a una variable
y llamarlo modo de juego. Ahora tenemos una referencia
a nuestro modo de juego. Ahora que tenemos una
referencia a nuestro modo de juego, lo que podemos hacer ahora es que
podamos tomar este modo de juego y decir si vuelvo a mi modo de juego y recuerdo
cómo lo llamé en realidad, y volver aquí,
lo llamamos Request Spawn Player Así que ahora podemos dirigir desde
este modo de juego y decir Request Spawn Player,
así como así Bien, así que ahora podemos
usarlo en la siguiente lección. Sigamos adelante y compilemos y guardemos todo,
y sigamos adelante.
73. 6.13 Termina la lógica de selección de equipos: Bien, ahora sigamos adelante
y terminemos la lógica. Ahora sigamos adelante y
conectemos esta solicitud, evento
spawn player desde el modo de juego nos permite
conectarlo al servidor uno Ahora bien, si conectas
este de aquí arriba, en realidad también obtendrás una era si la conectas aquí. Y luego para este modo de juego, digamos que conectaste
este objetivo a aquí Esta es la referencia del modo de juego. Si haces esto aquí,
si lo ejecutas, esta es la referencia del modo de juego.
Si lo ejecutas desde aquí, en realidad consigue una era donde
dice que esta
variable de modo de juego no existe. No sé de qué
estás hablando. Esto sucede si ejecutas
esto en el cliente. Recuerda, el modo de juego
solo puede comunicarse
con el servidor. Si intentas ejecutar la
variable modo juego a través del cliente, te
va a dar una época y te va a decir, no
sé qué es
esta variable. Recuerda ejecutar este modo de juego a través del servidor también. Eliminemos esta variable. Déjame
volver a conectar mi modo de juego, así como así. Ahora tengo que conectar mi
player controller select. Recuerda que ya estamos en el controlador jugador
arrastra desde aquí y
escríbeme el equipo que
tienes que seleccionar. Nuevamente, queremos hacerlo a
través de la interfaz de usuario aquí. Lo que voy a hacer es simplemente
arrastrar esto al evento, y arrastrar esto al
evento también, y compilar. Ahora lo que podemos hacer ahora, puedes tomar este evento
y ejecutarlo a través de la interfaz de usuario. Si abro mi
widget, blueprint, hago clic en mi botón
Para este, vamos a cambiar
el nombre del mismo Si haces clic en el botón,
y yo lo llamaré BTN Terrace. sea a variable, porque si no tienes esto
como variable en la gráfica, cuando vas a codificar la funcionalidad
para este botón. Se puede ver que no tiene ninguna variable. Si
le pones esto a, ahora
puedes verlo como
una variable por aquí. Y puedes hacer
eventos a través de él. Asegúrese de marcar es variable. Haz lo mismo por
el antiterrorista. Llamémoslo BT N terrorista. Hagamos que sea variable. Adelante, compile
y guarde todo. Pasemos ahora a
la gráfica para ésta voy a borrar
todo esto. Por ahora, voy a dar click en el
Terris primero, por ejemplo Y ahora tenemos estos eventos. Podemos seleccionar este clic. ¿Qué debería pasar cuando
haga clic en el botón Terris? Lo que quiero hacer
es cuando hago clic, quiero ejecutar este Select Team. Necesito una referencia
al controlador Player. Entonces la forma en que haces esto muy, muy fácil dentro de la interfaz de usuario, puedes escribir, hacer clic
y decir get owning. Y puedes ver que
tienes dos cosas aquí. Usted puede hacer
conseguir el jugador dueño y esto conseguirá el
controlador del jugador para el jugador Y sí puedes conseguir
ser dueño del jugador Pon. Esto conseguirá el jugador P en lugar del controlador
del jugador. Ahora mismo necesitamos el controlador
del reproductor. Voy a hacer el
get dueño jugador. Ahora de nuevo ya recordamos tener una interfaz de blueprint para el controlador del reproductor donde
podemos arrastrar de este y decir obtener referencia del
controlador del jugador Adelante y conectado.
Ahora podemos ejecutar ese evento llamado Select Team y
seguir adelante y seleccionarlo. Ahora hay que especificar
cuál es el equipo. Es el terrorista porque
hemos hecho clic en el botón
terrorista Adelante, busca al terrorista BP y compilar
para el antiterrorista. Adelante y da click en él.
Adelante y haz clic aquí. Sólo voy a copiar y
pegar todo esto. Puedes escribirlo de nuevo si
quieres más práctica. Ahora vamos a seleccionar el contador en su lugar o éste. Sigamos
adelante y compilemos. Ahora solo para
explicarte lo que realmente está pasando es si hago clic
en el botón terrorista. Ahora va a
pasar por los
controles del jugador seleccione Evento de equipo. Va a correr por aquí. Recuerda que este se está ejecutando
tanto en el cliente como en el servidor. Lo ejecutamos a través
del cliente aquí y luego ejecutamos primero en el servidor. Cuando lo ejecutamos en el servidor, ahora
nos estamos comunicando
con el modo de juego. Vamos a
pasar por el modo de juego y preguntar por el modo de juego, ¿
realmente se nos permite generar esto Y vamos a
pasar por todo esto y generar el control del jugador Va a ir aquí abajo. Recuerda que sabe qué
engendrar porque los hemos
establecido aquí en la interfaz de usuario, aquí
hemos puesto al equipo Va a llevar este
valor al equipo selecto, lo va a llevar por
aquí, enchufarlo aquí, iniciar sesión aquí, ejecutarlo
por el modo de juego aquí. Y luego lo va a ejecutar
en el reproductor de spawn aquí. Y sabe cuál
es el valor porque le hemos dicho
qué es y también sabe
dónde engendrar al jugador Bien, ahora sigamos adelante
y hagamos clic en play. Y si selecciono uno
de ellos, por ejemplo, el terrorista, ya se
ve que no
pasa nada. De hecho, vayamos a la siguiente
lección y terminemos esto.
74. 6.14 Desvela al jugador: Bien, entonces hay una
cosa final para engendrar al jugador. Y tenemos que
poseer al jugador. Si realmente haces clic en esto, realidad
estás
engendrando al jugador Pero no se puede ver al
jugador en el nivel porque también hay que poseer
al jugador. Si arrastras desde display pon, recuerda que ya hicimos una interfaz para
la base de jugadores, que puedas arrastrar desde display y decir get player reference. Ya hicimos esa interfaz de
blueprint, y ahora puedes arrastrar
desde el reproductor Tienes que poseer al jugador para poder controlar a ese jugador. Adelante y compile
todo ahora, y hagamos clic en Reproducir. Si haces clic en el terrorista
ahora puedes ver que
en realidad puedes poseer este
antiterrorista. No obstante, todavía hay la interfaz de usuario frente a nosotros y
tenemos que eliminarla. La interfaz de usuario se ejecuta
a través del cliente. Cuando trabajas con UI,
estás trabajando dentro
del cliente. Ahora, en lugar de hacerlo aquí, hagamos clic derecho y
hagamos un nuevo evento personalizado. Y ejecutarlo a través del cliente. Spawn player, solo voy a llamarlo cliente spawn Sé que está conectado a éste.
Voy a hacer click en él. Siga adelante y ejecute en
ser dueño del cliente confiable. Pongámoslo también por
aquí. Cl spawn jugador para este de
aquí abajo en este momento Solo quiero recordar que lo
llamamos show hide widget. Así podemos bajar aquí y decir mostrar ocultar widget
y seleccionarlo aquí. Ahora podemos seleccionar
la selección del equipo, y esta sin marcar Ahora va a ocultar
la interfaz de usuario para los jugadores. Sigamos adelante y
compilemos y hagamos clic en Reproducir. Y seleccionemos, por ejemplo, el
Counter Terrist Ahora puedes ver que
estamos dentro de aquí. Ahora puedes ver aquí, no
puedo mover a mi personaje. Y también puedo ver la
cabeza de mi personaje. Recuerda que en realidad nos quitamos
la cabeza. Esto es un error. Si vamos al jugador, y solo quiero verificar mi código si haces clic en la base de jugadores, si vas a la gráfica del evento,
está mostrando mi cabeza. Recuerda en la jugada de inicio, quitamos la cabeza, tampoco podemos
controlar al jugador. Tengo la sospecha de
que este código aquí, el código de movimiento y el
esconder la cabeza no está corriendo. Porque si juego y hago clic, puedes ver que puedo ver mi cabeza, este código no se está ejecutando. Este también no está corriendo porque realmente no puedo
mover a mi personaje. Creo que es porque en realidad
puedes simplemente
imprimir una cadena aquí. Imprimir cadena de nuevo, imprimir una
cuerda es realmente potente. Debería decir hola aquí. Si hace eso, sé que
mi código se está ejecutando aquí. Si hago clic en mis gallinas, se
puede ver que
no es decir hola Pero si lo conecto
a la no válida. Entonces si solo lo desconecto, ponlo a no válido,
así como así. Y puedo volver a conectar esto. Doy click en play, y
ahora dice hola. En realidad es decir
que esto no es válido. Ahora, en el modo multijugador, tienes que
saber que tienes que darle un poco
de tiempo al jugador
para que genere porque
no es como un solo jugador Toman algún
tiempo para generar en el servidor o conectarse
al servidor Entonces hay que arrastrar de
esto y digamos retraso. A veces eso realmente
soluciona el problema. Si acabo de agregar delay y
no realmente uno grande, solo por 0.01 así que muy, muy bajo y compilar. Y ahora
si hago clic en Reproducir, Seleccione el Counter Terrorist. Ahora puedes ver que puedo mover mi personaje y mi
cabeza también se me ha ido. En realidad, lo único que
necesitábamos aquí es
agregar este retraso. Porque cuando te conectas a
la red en el servidor, tienes que tener un retraso
muy pequeño para que el reproductor realmente conecte y luego ejecute este código. Bien, así que ahora como
puedes ver aquí, todo está funcionando muy bien. No obstante, se puede
ver que el ratón está desapareciendo cada vez
que hago clic en la pantalla Y es molesto,
tengo que seleccionar mi otra pantalla antes poder hacer clic
en los botones. Y tengo que hacer click
aquí antes de poder jugar. Para que veas tengo que hacer click, o en realidad
minimizar esto. Y ahora puedo dar click en la interfaz de usuario. Y tengo que volver a hacer clic en la pantalla antes de poder mover
mi personaje con el ratón. Entonces tenemos que arreglarlo. Y en realidad tenemos que hacer eso en la siguiente lección
con algo llamado modo de entrada
que tenemos que establecer. Pasemos a
la siguiente lección.
75. 6.15 Establece el modo de entrada: Bien, ahora
sigamos adelante y abramos nuestro controlador de reproductor. Entonces si abres el
Player Controller, ahora mismo como puedes ver
cuando hago clic en play, no
puedo ver mi mouse y no
puedo presionar nada. Si voy al controlador del jugador y hago clic en los valores predeterminados de
clase, puedo seleccionar este
llamado zapatos Si compilo y juego, ahora puedes ver que puedo
ver el cursor de mi mouse. Sin embargo, a veces cuando
entro al juego, no
puedo pasar el cursor sobre mis botones Y aquí es donde entra en
juego el modo de entrada establecido. Por aquí en el controlador
del reproductor. Golpeemos desde
aquí, desde el principio. Juega y digamos que
establece el modo de entrada. Tienes estos diferentes tipos. Puedes configurar el
modo de entrada solo en la interfaz de usuario,
solo juego o en el juego y la interfaz de usuario. Ahora mismo cuando nos
conectamos al servidor, solo lo queremos a la interfaz de usuario solamente. Porque solo queremos enfocarnos en la selección de
nuestro equipo
y seleccionar al equipo. No nos importa
el juego en este momento, U será suficiente. Entonces tenemos que especificar
el controlador del reproductor. Recuerden, ya estamos
dentro del control del jugador, así que voy a arrastrar
desde aquí y decir yo mismo. Entonces para que el widget se concentre, aquí no
tenemos
que hacer nada. Y todo se ve bien. Entonces sigamos adelante y compilemos. Y ahora cuando hago clic en Jugar, realidad no
se está
enfocando en mi juego. Y puedo seguir adelante
y hacer todo esto. Ahora cuando el jugador genera, también hay
que
cambiar el modo de entrada Porque cuando
entramos en el juego, puedes ver que ya no puedo moverme porque ahora mismo tu
modo de entrada está configurado solo en UI, así que tienes que
cambiar eso también. Vayamos aquí abajo.
Y recuerda ,
en realidad, si vas
aquí arriba y ves el ícono, puedes sostener el mouse sobre él, puedes ver que
éste en la parte superior, puedes verlo dice cliente solamente. Sólo se ejecuta en el cliente.
Vayamos aquí abajo. Cuando engendramos al jugador, vamos a ejecutarlo
al cliente. Jugador de engendrar. Arrastremos desde aquí
y digamos establecer el modo de entrada. Ahora mismo necesitamos el juego sólo porque ahora estamos en juego. Queremos movernos. No nos importa la interfaz de usuario, el controlador del reproductor,
vamos a arrastrar y decir yo mismo, igual que antes. Eso debería ser.
Vamos a compilar y jugar. Ahora selecciono Counter Terrace, por ejemplo, y ahora
estoy dentro de aquí. Pero como pueden ver,
puedo ver mi ratón todavía. Arrastremos de
aquí y digamos ratón. Tienes este evento aquí abajo. El lingote llamado
set show mouseursa. Voy a configurarlo
para que caiga aquí arriba. Siempre puedes
configurarlo en true por defecto, si quieres,
puedes copiarlo. Y puedes pegarlo por aquí y enchufarlo y
configurarlo en true. Ahora, ya lo hemos hecho configurándolo en
true por defecto, Pero solo para asegurarnos de
que sea visible, si acaso haces algo en el futuro,
puedes tener eso. Pero por ahora
en realidad no es necesario. Pero en realidad
dejemos que esté aquí. Vamos a hacer clic en Play by
Select, No terrorista. Se ve que mi mouse desaparece y todo está
funcionando perfectamente. Bien, así que vamos a
cerrar todo. Recuerda guardar tu
juego y sigamos adelante.
76. 6.16 Coloca una cámara de espectador: Ahora mismo al hacer
clic en Reproducir, puedes ver que
comienza en un punto aleatorio. Y en realidad quiero
comenzar como un lugar genial donde puedas ver a todos
los jugadores justo
cuando te conectes. Eso va a ser muy agradable. Lo que puedes hacer es
simplemente configurar una cámara aquí arriba, por ejemplo. Déjame colocar primero
mi cámara. Por ejemplo, quiero
colocar mi cámara así aquí y puedo ver todo
el nivel y también a
los jugadores. Ahora cuando estés satisfecho con la posición
de tu cámara, puedes hacer clic aquí arriba en la Vista y luego
hacer clic en esta Crea Cámara aquí
y selecciona Cámara. Esto creará un
actor de cámara automáticamente. Ahora si hago clic en la Cámara, se ha creado aquí. Para asegurarme de que no muevo
la cámara aquí por error, voy a escribir
click y transformar
y luego seleccionar Bloquear
Movimiento seleccionado. Ahora ahora cuando haces clic en él y seleccionas la herramienta de movimiento, puedes ver que no está ahí. Realmente no puedo mover
esto por error. Ahora ha bloqueado el
movimiento para éste. Bien, voy a renombrarle
este y llamarlo cámara de
espectador. Vamos a ahorrar. Cada ahora lo que
podemos hacer es ir al controlador del jugador y recordar lo que dije antes. Si quieres una referencia a
cualquier cosa dentro del mundo, trata de recordar qué
función usamos realmente. Te voy a dar solo
un pequeño segundo para pensar qué
función podemos usar dentro de aquí para obtener la
referencia para esta cámara aquí. Pasemos ahora al
controlador del jugador. Lo que podemos hacer es que queremos
establecer esta vista cada vez que
el jugador se conecte. De hecho
lo voy a hacer aquí en el start Play. Lo que puedes hacer es que yo
solo lo voy a hacer
aquí después del modo, voy a arrastrar esto lejos. Y luego de aquí y decir
acto de clase en Floss. Esta es la función
que tienes que usar. Después selecciona la cámara. Si busco cámara, entonces puedes seguir adelante
y seleccionar la cámara. Esta es una cámara, estamos recibiendo la cámara
de nuestro nivel. Ahora lo que podemos hacer es que
podemos usar esta función llamada Set View Target, Blend. Establecer objetivo de vista con
mezcla va a establecer la vista para tu
cámara cuando te conectes. Ahora te pregunta ¿
cuál es la vista? La vista es solo esta cámara
que hemos creado. Adelante y conéctate.
Eso fue en realidad. Vamos a elegirlas aquí. Adelante y compilar,
guardar todo. Vamos a hacer clic en Reproducir. Y ahora puedes ver que arrancamos aquí. Y puedo ver este nivel. Se ve genial si los jugadores están jugando y
puedo seleccionar a mi equipo, así
como ver a
los jugadores de fondo. Cuando haces clic en terrorista, por ejemplo, sigues adelante y
engendras dentro del nivel Y todo está funcionando
bien para el otro. Si sigo adelante y engendro
como antiterrorista, y voy por encima y puedes
ver que se pueden ver. Ahora mismo, se puede
ver que hay un bicho. De hecho, arreglemos eso. Con la cabeza desapareciendo cuando veo al cliente
como el servidor, si dejo aquí,
en realidad me muestra una era y podría ser
por esta Dice eje no
tratando de leer esta era aquí, puedes intentar
arreglarlo tú mismo ahora antes de seguirme
solo para practicar. Axis non significa que intenta leer este valor llamado get
local player subsistema. Si hago clic aquí, este es el subsistema get local player. Está tratando de leer este valor
pero dice acceso ninguno, lo que significa que no puedo obtener ninguna
información de este. Vamos a tachar esto. Siempre agradable de hacer es simplemente
golpear de esto y decir que es válido solo cuando es válido. Vamos a ejecutar este código, vamos a
conectarlo aquí también. Siempre que el
controlador del reproductor sea válido así como
esta entrada mejorada, es válida, entonces queremos volver
a ejecutar el código. Simplemente haga doble clic aquí
en el nodo de reencaminar. Adelante y haz esta compilación
organizada. Vamos a hacer clic en play
y ver qué hace. Ahora adelante y selecciona terroristas para
éste por ejemplo. Vamos a ir al medio y seleccionar para el otro. Seleccionemos al
antiterrorista. Déjame ver al
otro tipo de aquí y ver si se ven. Y ahora se puede ver que está arreglado. Fue solo un problema con
esa época que teníamos antes. Ahora si quieres probarlo, puedes jugarlo como clientes. Se puede jugar como, por
ejemplo, tres jugadores. Abramos a todos
estos tres jugadores. Sólo voy a minimizar
este grande por ahora y hacer esos
un poco más grandes. Así como así para éste, vamos a engendrar un antiterrorista Y para el otro,
engendremos antiterrorista. Para el tercero,
engendremos a un terrorista. Déjame ir al medio aquí. Para éste también voy a
ir al medio. Y para el otro también. Ahora puedes ver que
están funcionando a la perfección. Todos pueden ver a todos. Y las animaciones, se les
puede ver la agachada, ésta también, los efectos de
sonido funcionando, Y todo está bien para ir Sigamos adelante y guardemos
todo, y sigamos adelante.
77. Espacios de mezcla de 7.01 pistola: Ahora en realidad estamos
listos para trabajar con las armas y colocarlas
en el nivel también. No obstante, antes de hacer eso, hagamos realmente las animaciones de rifle
y pistola porque las estamos perdiendo
ahora mismo. Terminemos esos antes
de trabajar con las armas, porque en ese
momento tendremos todas las animaciones
y todo será mucho más fácil para nosotros. Así que volvamos a
la carpeta de planos, clic en el reproductor y volvamos a la carpeta de animaciones aquí Lo que quiero hacer
es para esta lección, crear los espacios de mezcla de pistola. Al igual que esos,
pero los de pistola ahora si quieres
crearlo tú mismo. Entonces es un buen ejercicio y luego puedes
ver lo que estoy haciendo. Pero ya deberías saber cómo hacer esto. Porque en realidad es lo
mismo que esos agachados desarmados
y corren desarmados,
y caminan desarmados y caminan Si quieres seguir,
vamos a hacer clic derecho aquí. Vamos aquí en
la animación y seleccionemos el espacio de mezcla para éste. Nuevamente, selecciona nuestro estilo
esqueleto, uno masculino y
llámalo blend space. Llamemos a esta pistola
agachada. Vamos a crear ese primero.
Vamos a hacer doble clic aquí. Para el eje horizontal, esta es la dirección de movimiento
para el eje vertical, esta es la velocidad de movimiento. Para la dirección del movimiento, va de menos 180 a 180. Y entonces tenemos
ocho déficits
porque tenemos un movimiento de
ocho vías En cuanto a la velocidad de movimiento ahora, depende de si estamos
agachados o si estamos
caminando o corriendo Ahora volvamos a, en realidad puedo hacerlo aquí,
por encima a la derecha. Volvamos a la
agachada para los desarmados. Quiero ver cuál era la velocidad de
movimiento. Ahí están 100, así que voy a ponerla
igual aquí para la pistola, 100. Y lo último aquí
para la velocidad del peso, lo
ponemos a 6.5
Si recuerdas, si no lo haces, puedes dar click en el agachado, puedes bajar Y entonces se puede ver la
velocidad del peso, nosotros la configuramos en 6.5. Haz lo mismo por
éste, entonces son lo mismo. Y antes de hacer nada, voy a guardar
esto y voy
a hacer click derecho en esto
y duplicarlo. Esto es porque no tengo que hacer todo esto
una y otra vez. Y a esta se
le llama pistola de carrera. Y entonces voy a
duplicar esto otra vez y esto va a
llamarse pistola S walk. Voy a
abrir la pistola de correr. Ahora solo necesitamos cambiar
la velocidad de movimiento. Creo que son 350 y si no
te acuerdas de nuevo, clic en el desarmado Para la carrera, ya ves que son 350. En la agachada o en
realidad la agachada, la pistola de correr, hay que ponerla
a 350 también Bien. Y vamos a
revisar la pistola. Este creo que son 200
en el arte. Sí, son 200. Entonces pongamos el paseo uno a 200 también y
guardemos todo. Entonces ahora puedes ver
cuando lo
dupliqué, no tengo que hacer todo
esto una y otra vez. Entonces ahora están todos listos. Bien. Empecemos
con el de pistola uno. Busquemos el agachado o en realidad puedo simplemente
buscar pistola Eso es mucho más fácil. Y entonces puedo echar un vistazo a
la agachada de aquí Justo como antes. Primero
hay que tener el ocioso. Veamos, agacharse al
ralentí, éste otra vez, mantén el turno y
conéctalos a aquí abajo. Así como así. Y lo mismo del otro lado, así como así. Bien, aquí arriba está el movimiento hacia adelante
así como puedes ver aquí. Y luego tienes el
frente izquierdo hasta aquí, y luego el frente a la derecha hasta aquí. Entonces tienes la izquierda por aquí y tienes
la derecha por aquí. Y luego tienes la espalda izquierda y
la trasera derecha, y luego tienes la espalda
en ambos lados. Y puedo habilitar las etiquetas para que también puedan ver
cómo las coloco. Pero puedes sostener
el botón de control y mover el mouse solo para
comprobar si todo está bien. Todo se ve bien. Voy a guardarlo y cerrarlo. Y ahora puedo
abrir la pistola de correr. Voy a buscar el inactivo y voy a usar esta llamada pistola ociosa Y
seguir adelante y colocarla de nuevo. Mantenga el turno y
colóquelos todos. Ahora cuando los hayas colocado, busquemos pistola y yo voy a
encontrar los de carrera. Ejecuta esta, las
pistolas ahora necesitamos, si puedo encontrarla
aquí, la delantera Entonces necesitamos la parte delantera
izquierda y luego la delantera derecha. Entonces necesitamos la
izquierda, la derecha, y necesitamos la parte posterior
izquierda, atrás derecha. También necesitamos la espalda por
aquí a ambos lados. Nuevamente, mantén el control solo
para ver cómo se ve. Todo se ve bien. Bien. Podemos cerrarlo. Ahora abramos la final
, la pistola walk. De nuevo, voy
a encontrar al ocioso. Toma la pistola ociosa y vuelve a
colocarla aquí abajo. Entonces busquemos una pistola. Ahora necesitamos encontrar el paseo
en este paseo frente, colocarlo aquí así. Y entonces necesitamos a la
izquierda, al frente, a la derecha. Entonces necesitamos la izquierda
y la derecha por aquí, atrás a la izquierda, caminar hacia atrás a la derecha. Y luego necesitamos en
ambos sitios. Nuevamente, puedo habilitar
esas etiquetas para que pueda ver y pueda tener el control. Mueve mi mouse solo para ver cómo se ve y
todo se ve bien. Así que ahora podemos guardarlo todo. Y eso fue todo por
la pistola una vez. Pasemos a la siguiente
lección y hagamos el rifle.
78. Espacios de mezcla de rifle 7.02: Para el rifle. Nuevamente,
puedes intentar hacerlo tú mismo ahora que
también hicimos la pistola. Pero sigamos adelante
y hagámoslo juntos si aún
tienes alguna
dificultad con ello. Vamos a hacer clic derecho aquí.
Vamos a Animación. Vamos a Blend Space
y seleccionemos nuestro esqueleto. De nuevo, llama a éste S.
Vamos a llamarlo Rifle. Vamos a entrar en esta. Llama al horizontal. Dirección de movimiento. El eje vertical. Velocidad de movimiento. El sentido va
de menos 180 a 180. Con ocho divisiones de rejilla, la velocidad del peso es 6.5 En cuanto a la
velocidad de movimiento, esta es la agachada Por lo que se establece en 100. Eso es correcto. Vamos a
cerrarlo otra vez. Voy a duplicar esto
y llamar a este rifle de la ONU. Y voy a
duplicar esto otra vez. Llamemos a este rifle de paseo. Voy a abrir el rifle de carrera y cambiar
la velocidad de movimiento a 350. Sí, no necesitamos
cambiar nada más. Abramos el rifle de
paseo por aquí. Cambiemos la velocidad de
movimiento a 200 como las demás. Y vamos a guardar todo
y cerrarlo. Bien, para el rifle. Empecemos de nuevo con
la agachada. Para el agachado,
voy a
buscar rifle y luego voy a encontrar el rifle inactivo agachado
y colocarlo Y adelante y colóquelos de
nuevo, todo el camino hasta aquí abajo. Bien, cuando eso esté hecho, ahora encuentra el
rifle agachado hacia adelante y colóquelo aquí abajo. A veces solo estoy manteniendo el
control para comprobar si esta animación que he
importado para ti es correcta. Normalmente solo tengo el control y solo comprobando
si esto es correcto. No me equivoco
aquí en este curso. Ahora tenemos este frente. Bien, entonces tenemos la parte delantera
izquierda, tenemos delantera derecha, luego tenemos la izquierda agachada a la
izquierda y agacharse izquierda y Entonces tenemos la espalda
izquierda y la trasera derecha. Entonces tenemos ida
y vuelta también. Vaya, necesito
volver a copiar esto así otra vez. Mantenga el control, verifique si
todo es correcto, todo parece estar correcto. Vamos a cerrar esto. Volvamos a pasar al rifle
. Busco ocioso. Y cojo este rifle inactivo
y lo coloco aquí abajo. Y colóquelo de nuevo,
todo el camino hasta aquí abajo. Cuando eso esté hecho, siga adelante
y busque rifle. Y ahora encuentro la
carrera una vez y encuentro el rifle de carrera hacia adelante y
eso está buscando correcto. Y pongámoslo
al frente, a la izquierda, al frente, a la derecha. Y luego tenemos
la izquierda y la derecha. Y tenemos la parte trasera
izquierda y trasera derecha, y tenemos la espalda
en ambos lados. Y voy a tener el control, comprobando si todo
está buscando correcto. Se ve correcto.
Vamos a cerrarlo. El último es el rifle a pie. De nuevo, voy a
buscar al inactivo, arrastrarlo por el rifle y colocarlo abajo hasta aquí abajo. Nuevamente, sigamos adelante
y busquemos rifle. Y ahora necesitamos el caminar uno. Vamos a la caminata hacia adelante. Colóquelo aquí abajo y vamos a
comprobarlo. Eso es correcto. Después al frente, a la izquierda. Frente
a la derecha, y tenemos la izquierda. Tenemos los derechos. Entonces
tenemos los Bccrights También tenemos de vuelta en
ambos lados. Voy a controlar, de nuevo, solo para comprobar si
todo se ve correcto y todo
parece estar correcto. Vamos a guardar todo.
Vamos a cerrarlo. Y ahora el rifle y las
pistolas están terminadas. Pasemos a la siguiente
lección y hagamos el desplazamiento de puntería.
79. 7.03 Compensaciones de puntería de pistola: Ahora sigamos adelante y
hagamos el desplazamiento de objetivo. Ahora ya lo has hecho antes. De nuevo, trata de hacer
esto sin mí. Esa es una buena práctica. Y si no recuerdas, sigamos adelante y
hagamos esto juntos. Hagamos clic derecho aquí, vaya a Animación
y vaya a Legado. Y seleccionarlos, Desplazar una D, vamos a seleccionar el carácter. Llamémoslo O para una compensación. Y vamos a hacer la agachada. Y llamemos a ésta una pistola. Y vamos a hacer doble clic en él. Para este, el
eje horizontal es la dirección. También puedes simplemente dar click sobre el otro solo para
ver lo que has hecho. Entonces haces lo mismo. No es realmente bueno hacer cosas
diferentes
en tu mismo juego. Así que siempre es agradable solo
hacer lo mismo. Si
lo has llamado dirección aquí, trata de llamarlo
dirección aquí también, en lugar de moverte
dirección y así sucesivamente. Entonces trata de hacer lo mismo. Entonces tienes consistencia
en tu juego -90 Y creo que los deficientes simplemente
se quedan igual Todo se ve bien. La velocidad de peso que
he puesto a 5.5 voy a dar click en
la pistola y poner la velocidad de peso a 5.5 también. Voy a guardar
todo ahora. Busquemos el offset de la pistola
agachada. Si busco pistola y
bajo a la compensación Am y
estas son las agachadas El centro
voy a sostener y mantener turno y colocarlo aquí abajo. Entonces tenemos el up
y voy a tener el control para ver si todo
se ve correcto. Eso está bien.
Vamos a cerrarlo. Voy a hacer clic derecho en
Animación Legado Am. Desplazamiento uno. D. Selecciona tu esqueleto y
llama a esta pistola de 10 soportes. Volvamos a abrirlo. Llámala dirección yendo de -90 a
95.5 en la velocidad de peso Y volvamos a
buscar pistola. Esta vez es
la pistola de soporte, la central la voy
a poner en el centro. Entonces tenemos el abajo,
y luego tenemos el arriba. Y puedes ver la
etiqueta aquí también. Tenemos el abajo,
tenemos el arriba. Todo se ve bien. Vamos a guardar todo, y pasemos a
la siguiente lección.
80. 7.04 desplazamientos de puntería de rifle: Bien, entonces ahora sólo nos
falta el rifle. Objetivo compensado de nuevo, trata de hacer
esto solo para la práctica. Y si no te acuerdas de nuevo, sigamos adelante y hagámoslo
juntos. Hagamos clic derecho en Animación. Selecciona
Legado y objetivo compensado uno D. Y vamos a seleccionar
nuestro esqueleto y llamémoslo, llamémoslo rifle agachado Para este voy
a hacer doble clic, Llámalo dirección para el valor mínimo -90 Para
el valor máximo es 90 La velocidad de peso es 5.5
Busquemos rifle esta
vez para ellos compensados. Este es el agachado. Necesitamos el offset agachado. Voy a golpear este
centro y ponerlo aquí. Entonces tenemos el abajo,
luego tenemos el arriba. Esto de aquí se ve bien. Ahora, la animación
en sí se ve rara. Es decir, está muy doblado
y eso se ve muy raro. Pero estas son solo
las animaciones como si no fuera tu culpa, no
estamos haciendo nada malo. Es solo la animación
que se hace así. Ahora bien, si tuviera mejores animaciones,
te la daría. Desafortunadamente, realmente no
tengo mejores animaciones. A lo mejor en el futuro voy a que alguien haga
todo por encargo. Pero por ahora, esto es
lo mejor que podemos hacer. Todo se ve bien. Ahora vamos a cerrarlo. Y vamos a hacer clic derecho de nuevo. Ir a Animación y legado aquí estoy dicho
seleccionar el esqueleto. Llámalo AO rifle de pie. Vamos a hacer doble clic aquí
y llamarlo dirección. Entonces para el valor mínimo -90 para el máximo
90, para el peso, velocidad 5.5 Y
busquemos rifle y luego
ya podemos seleccionar el rifle de soporte, este es el centro Entonces tenemos el abajo. Y
entonces tenemos el viejo control para comprobar si todo es correcto y todo
se ve bien. Bien, vamos a guardar todo. Vamos a cerrarlo. Y ahora también tenemos el
objetivo compensado. Sigamos adelante en
la siguiente lección.
81. 7.05 Mezcla poses de Bool: Ahora estamos listos para volver al plano
de animación
y hacer algo de trabajo ahí Hagamos clic en la
carpeta del reproductor Animaciones, y abramos el plano de
animación Ahora dentro de aquí, quiero
que den click en la gráfica de
animación. Entonces estamos dentro de
aquí. Como puedes notar, anteriormente hemos utilizado
el offset para el stand. Sin embargo, hemos
utilizado el otro, el desplazamiento del objetivo, para
el agachado también Solo hemos utilizado el
para el stand. Cuando estamos agachados, no
estamos usando el desplazamiento de puntería
correcto. Para ello. Hagamos clic derecho y
busquemos agacharse. Este jugador offset, ahora mismo estamos en el, sólo
voy a
copiarles dirección. Y copia esta a
medida que la enchufamos. Ahora tenemos eso.
Pero el problema es ahora mismo es que no puedo
enchufar esto aquí, porque como pueden ver, solo una entrada. Tenemos que conseguir algo que ponga estas
dos cosas juntas. La forma en que podemos hacer esto
es si haces clic derecho y buscas poses de mezcla. Se puede ver que podemos mezclar estas dos poses por muchos factores. Se pueden
ver todos esos. Sin embargo, lo que necesitamos
es mezclar poses por, se
puede ver que hay algo
llamado blend poses por toro. Esto hace posible que mezcles las poses
a
través de un lingote Si tienes un lingote
eso es cierto, va a usar esta pose Si es falso,
va a usar esta pose. Tenemos que darle un lingote. El lingote que queremos usar es que queremos comprobar si el jugador
está agachado o Si el jugador está agachado, vamos a usar el
desplazamiento de puntería para el Si el jugador no está agachado, vamos a usar el
offset para el stand Sigamos adelante y encontremos
el lingote de aquí, si ya lo hemos
hecho ahora, está agachado y está Recuerda que los borramos
previamente de aquí. En realidad no se usan en
este momento y se equivocan. Eliminemos el Está
agachado y está caminando. Recuerden que los
cambiamos con el estado de movimiento aquí. Golpeemos a
éste. Y arrastremos de aquí y digamos que
consigue y consigue una copia. Y ahora puedes arrastrar desde
aquí y decir último índice, y luego podemos enchufar eso. Estamos comprobando si el jugador está presionando
actualmente
el botón agacharse Podemos arrastrar desde aquí y decir igual si el último índice
es igual a agacharse, es
decir, el jugador está
ahora mismo presionando
el botón agacharse, entonces podemos seguir adelante Ahora vamos a
enchufarlo si es cierto, es
decir, el jugador está agachado, queremos usar este donde
el desplazamiento de puntería es No obstante, si el jugador no
está agachado, queremos usar este con el
estrado Adelante, compile y conéctelos aquí.
Compilar todo. Y yo sólo voy a mover todo aquí
y organizarlos. Bien, así que ahora todo
está organizado. Ahora puedes intentar verificar
si esto está funcionando. Para que puedas dar click en
el estado de movimiento. Puede agregar una matriz aquí, agregar un elemento a la matriz. Y solo puedes
configurarlo para agacharse. Y se puede ver
cómo se ve. Entonces ahora en realidad se puede
ver que está funcionando. Porque si lo pongo a
agacharse, entonces está agachado. Si lo pongo a otra cosa, entonces cambia
a la otra. Ahora puedes ver que se enciende, eso está funcionando correctamente. Recordemos seguir adelante
y eliminar esto por ahora. Bien. Entonces eso está
funcionando correctamente. Así es como
mezclas poses a través de
esta llamada blend
poses por bullying. Bien. Entonces tenemos
otro que necesitamos usar más adelante porque éste es
solo el movimiento desarmado También necesitamos el movimiento para la pistola y el movimiento
para el fusil. Para que veas que se vuelve
un poco más complejo porque necesitamos crear todo esto para la pistola
y el rifle. Necesitamos otra llamada poses de
mezcla por enumeración. Pero por ahora, saltemos a la siguiente lección y
aprendamos sobre el tema.
82. 7.06 Blend Poses de Enum: Bien, aquí estamos otra vez. Esta vez queremos
usar esta
llamada poses de mezcla
por enumeración. Si escribes, haces clic y escribes
pose de mezcla o poses de mezcla, verás todas las que comienzan con una E. Comenzando con una E, eso es en realidad una enumeración Y esas son solo enumeraciones que se crean en
Unreal engine por defecto Ahora vamos a crear nuestra
propia enumeración en su lugar, permítanme minimizar todo esto Vayamos a los Enos. Déjame hacer clic derecho en esta carpeta, ir a Blueprint y crear
una nueva lista de enumeraciones. Pero llamémoslo tipo de arma. Sigamos adelante y
entremos en la enumeración. Y ahora puedes agregar qué tipos de
armas tenemos. Tenemos la pistola
y el fusil, pero también tenemos el desarmado porque necesito el movimiento
desarmado también Entonces voy a hacer el
desarmado para empezar. Y podemos hacer uno para la pistola y podemos
hacer uno para el rifle. Nuevamente, no importa
en qué secuencia se encuentren. Si es así, los has
creado o así, no
importa. Eso es, en realidad no significa nada. Bien. Sólo voy a hacerlo como pistola desarmada, rifle Adelante y ahorra, estas
son las armas que tenemos. Si tienes más armas, puedes seguir adelante y agregarlas. Pero por ahora, vamos a
guardar todo. Vamos a entrar aquí. Ahora podemos hacer clic derecho y
podemos buscar poses de mezcla. Y luego puedes buscar la enumeración que acabas de hacer, El tipo de arma, podemos
buscar el tipo de arma Y aquí está. Y ahora
puedes seleccionarlo. Ahora lo tienes
aquí. Ahora puedes mezclar poses a través de
esta enumeración. Podemos hacer clic derecho en esta pose
predeterminada y luego puede seleccionar y agregar un
pin para lo desarmado y cosa. Clic derecho,
seleccionar pistola, clic
derecho, seleccionar rifle. Ahora tienes alfileres para todos
los movimientos que tengas, así podrás enchufar
el movimiento desarmado,
el movimiento de la pistola
y el movimiento del rifle Y hay que enchufar
la enumeración para
poder cambiar en consecuencia Bien, adelante y
guarda todo. Ahora lo que tenemos que hacer aquí es, déjame volver con el jugador, porque ahora en realidad necesitamos
saber qué está
equipando el jugador ahora mismo Porque si estás
equipando un rifle, necesitamos cambiar tu
pose por un rifle Si voy a la
base de jugadores y solo
agrego una nueva variable que
usaremos más adelante, y voy a llamar a
esta arma equipada. Voy a convertir este tipo de variable
en el tipo de arma. Vamos a usar esta arma
equipada más
adelante cuando pongamos qué arma ha equipado
el jugador. Y vamos a guardar todo. Creo que éste
será replicado más adelante. Ahora hagámoslo replicado para que los demás puedan
ver realmente qué arma
tienes equipada Y volvamos al plano
de animación. Ve a la gráfica par dentro de aquí. Recuerda que ya tenemos la
referencia para el jugador, así que podemos arrastrar desde
aquí y buscar arma
equipada y
obtener esa variable. Ahora lo que podemos hacer es que podemos acertar flick promover
esto a una variable, llamar a esta
arma equipada también Adelante y conéctalo. Voy a hacer clic aquí para
hacer un nodo de re ruta, sólo para hacer las cosas un
poco más organizadas. Bien, ahora que tenemos
esto, adelante y compile. Volvamos ahora al gráfico de
animación. Ahora podemos enchufar esta arma
equipada aquí mismo, y vamos a compilar. Ahora para la pose predeterminada, hay
que tener una pose predeterminada. Normalmente lo que hago es enchufar
el movimiento desarmado dentro
de la pose predeterminada Para los desarmados, hay
que enchufar lo mismo. Sin embargo, realmente no se puede enchufar
esto dos veces así. De hecho hay
que copiar y pegar esto. Ahora para que esto sea más organizado, en realidad
quiero desconectarme. Y por eso
es tan agradable hacer las notas de caché porque no
tienes que copiar y
pegar todo esto. Lo que podemos hacer es simplemente colocarlo aquí. Y entonces voy a renombrarle este Caché de Movimiento Desarmado Yo sólo voy a llamarlo Máquina Estatal
Desarmada. Caché de Máquina de Estado Desarmado. Recuerde que esta se
llamaba una máquina de estado, Máquina estado
desarmada en caché Están
enchufados aquí correctamente. Para este en realidad
voy a arrastrar y decir
caché y nueva pose de guardar
caché Para esta en realidad
voy a llamarlo desarmado porque este
es ahora el movimiento desarmado que incluye también los desplazamientos de
puntería Este ahora solo podemos
tomar aquí y usarlo
aquí si
buscas movimiento de brazo,
no la máquina del Estado movimiento desarmado en caché Y ahora puedes ver
lo fácil que es y lo organizado que es. Realmente no necesitamos
copiar todo esto y enchufarlo aquí
una y otra vez. Ahora solo podemos
copiar y pegar esto y usarlo como la
pose desarmada también Ahora para la pistola
y el rifle, tenemos que hacerlos. Vamos a arrastrar esto,
enchufarlo aquí, Adelante y
compilarlo. Entonces aquí lo que puedo hacer ahora es que puedo dar click
en el arma de equipar. Y digamos que en el juego
cogí un rifle. Para que veas que está cambiando. Sin embargo, realmente no hemos
enchufado nada. Y esto es lo que dice
esta nota. Es decir que la pose de pistola
y rifle ha sido ignorada porque aquí no tenemos
nada enchufado Pero como puedes ver, en
realidad está funcionando. Y si
lo vuelves a cambiar a desarmado, vuelve al movimiento
desarmado Entonces ahora lo que nos
falta es que aquí nos faltan las máquinas
estatales de pistola y fusil. Así que saltemos a la siguiente lección y hagamos los planos de animación de
pistola
83. Blueprint de animación de pistola 7.07: Hola y bienvenidos de nuevo. Ahora estamos listos para hacer
la máquina estatal de pistola. Entonces ahora tenemos a los desarmados. Voy a copiar esto. Adelante, da clic en Copiar y controlar C y controlar V
nuevamente. Y ahora tenemos esto. Voy a presionar en F dos para cambiar el nombre de esto y voy a
llamar a este movimiento de pistola. Ahora voy a entrar en
esta máquina de estado ahora y recordar cambiar todo el movimiento
para la carrera inactiva. Sigamos adelante y cambiemos
esto por éste. Si solo buscas pistola, en realidad no necesitas
buscar ya. Téngalos aquí abajo
en la parte inferior. Y tenemos la pistola de correr. Arrastra esto aquí. Adelante y borra esta. Y enchufa la
dirección y velocidad del movimiento. Y seguir adelante y enchufarlo. Regresa a la
caminata ahora la caminata. Vamos a borrarlo.
Busquemos aquí la pistola walk. Solo asegúrate de arrastrar en el espacio de mezcla correcto que
hayas creado y compilado. Ahora volvamos y
vayamos a la agachada ahora. Adelante y borra esta
y para la
pistola agachada arrástrala y enchufa la
dirección y velocidad del movimiento Adelante y enchufa
esto también. Compilar, vuelve ahora
tenemos todos esos. No creo que tengamos que cambiar nada con las
reglas de transición y en realidad no lo hacemos. Ahora todo es correcto. Ahora para el salto,
tenemos que seguir adelante aquí. Ahora para los arranques del salto, busquemos el salto. Necesito usar el
de la pistola. Esta es la pistola de arranque en salto. Adelante, borra este
y conéctalo. Vamos al aire
y este es el salto una pistola delelete esta
, enchufa la pistola El último es la pistola de extremo de salto
y extremo de salto, esta de aquí y
enchufarla también. Ahora recuerda cambiar
la regla de transición para esta porque sigue
diciendo salto inicio desarmado Tenemos que buscar la relación de tiempo y seleccionar la
de la pistola. Y automáticamente sabe que es la pistola porque
hemos encerrado en la animación en la otra. Lo
hemos corregido. Así que adelante y selecciona
éste, ratio y pistola. Y sigue adelante y borra este y enchufa este en su lugar. Recuerda que también lo
tenemos aquí abajo. Haga doble clic en esta otra vez, busque la
relación de tiempo restante para la pistola de extremo de salto. Elimine este
y agregue este. Ahora, compilar, guardar todo. Déjanos aquí, solo revisa y mira si hay algo que
nos hemos perdido. Creo que ya no tenemos
nada aquí. Ahora tenemos el
movimiento de la pistola y que podemos hacer es que podamos arrastrar desde aquí
y volver a decir caché. Podemos llamar a éste
Pistol State Machine hash, así como así Y ahora tenemos el movimiento de la
pistola.
84. Plan de animación de rifle 7.08: Derecha. Entonces lo último que nos falta es el movimiento del fusil. Entonces sigamos adelante y copiemos
la pistola, Ted aquí. Y cambiemos el nombre de esto
a Rifle Movements. Déjame entrar de nuevo aquí. Haga doble clic en el inactivo para
esta pistola de una carrera en su lugar. Permítanme simplemente borrar todo esto. Baje, en realidad
sólo voy a buscar un rifle que va a ser mucho
más fácil ir aquí abajo. Solo vemos los espacios de mezcla de
fusil. Este es el rifle de la ONU. Adelante, enchufa
la dirección
y velocidad del movimiento y enchufa
esto también. Volvamos a la caminata. Y déjame borrar esta. Enchufe el
espacio de mezcla para la caminata, para el rifle. Encierra esos. Así como así.
Lo mismo para el agachado Adelante y toma
el agachado. Encierra esos en Otra vez, así. Lo mismo para
el salto. Jump start, voy a buscar el salto y encontrar el del rifle. Rifle de arranque en salto, éste. Eliminar el anterior.
Coloca esta nueva. Ahora lo mismo para el salto. A, selecciona el salto, un rifle. Enchufe eso. Lo mismo para el extremo del salto. Toma rifle de punta de salto y borra
este. Enchufe esto. Recuerda cambiar de nuevo la regla de transición
aquí para la relación de tiempo de
inicio de salto restante
para el rifle de arranque en salto. Adelante y borra el anterior. Selecciona éste, y lo mismo para
éste. Regla de
transición de fin de salto, relación de
tiempo restante para el rifle de extremo de salto. Eliminar el anterior.
Coloca éste en su lugar. Adelante y compilar,
guardar todo. Y creo que hemos terminado
con éste también. Sólo comprobando rápido,
creo que todo está bien. Volvamos al gráfico de
animación. Y dentro de aquí, vamos a
golpear y decir caché de nuevo. Y cámbiale este a
Rifle State Machine. Bien, puedes organizar esto
un poco más si lo deseas, pero por ahora todo
está terminado. Sigamos adelante y
guardemos todo. Recuerda compilar también
y sigamos adelante.
85. 7.09 Finaliza el plan de animación: Bien, ahora es el momento
de terminar esto. No nos queda mucho, así que sigamos adelante y
terminemos todo esto. Lo que tenemos que
hacer ahora es añadir también las compensaciones de puntería Empecemos con el de pistola uno. Sólo voy a
arrastrar esto. Toma la pistola aquí. Ahora necesitamos usar
esta pose de caché. Hagamos clic derecho y
busquemos caché de pistola. Toma esta,
máquina de estado de pistola en caché y usa esta. Ahora tenemos que hacer
lo mismo aquí. Necesitamos hacer clic derecho
y buscar AO Rauch. Busca el que tiene
la pistola Am jugador offset agacharse Adelante y conéctelo aquí para la
dirección de puntería también. Sólo puedo copiar y pegar esta
variable. Esto es ahora correcto. Voy a usar para ellos pistola de soporte
offset. Llévate el uno con el jugador offset
Am. Enchufe la dirección de puntería, siga
adelante y tome
la misma pose en caché y conéctela a aquí también Ahora tienes la para
la agachada y otra para la pistola de soporte,
igual que antes Usa esta mezcla de
poses de Bool. En realidad sólo voy
a copiar todo esto. Realmente no necesitamos
escribirlo una y otra vez. Así que adelante y toma esto. Pongamos este a agacharse, eso en realidad sigue siendo correcto Vamos a enchufar el verdadero. Si estamos agachados,
vamos a usar esta. Si no estamos agachados,
vamos a usar esta. Adelante y compilar. Y ahora sólo
voy a organizar
esto un poco más tarde. Ahora mismo, solo quiero enchufar esto porque
estos se van
a hacer un poco más grandes,
igual que este de aquí. Lo que voy a
hacer es que voy a tomar esto y guardar
una nueva pose en caché, igual que antes de
llamarla unun movimiento A éste lo voy a llamar movimiento de
pistola, así como así. Y adelante y
conéctalos aquí. Ahora voy a organizar
esto igual que antes. Bien. Por lo que ahora está organizado. Yo solo intenté
organizarlo todo. Y ahora tenemos el
rifle por aquí. Podemos simplemente
moverlo hacia abajo por ahora. De hecho voy a
mover el movimiento desarmado por encima de la pistola, uno así Intenta estar lo más organizado
posible porque cuando estés
creando un juego grande, va a ser muy desordenado porque vas a tener
tantas cosas pasando Y siempre es
agradable tratar de mantenerse organizado para el último aquí para la pistola
o el rifle. Volvamos a nosotros, igual que antes, voy a dar
click derecho y buscar AO Rauch y elegir
el del rifle Y otra vez ponte de pie y elige
de nuevo el del rifle. Ahora podemos seguir adelante y tomar
el fusil de máquina estatal, máquina de
estado en caché,
enchufarlo a aquí, tomar la dirección y
enchufarlo hacia aquí Ahora podemos pegar esto aquí
abajo también. Enchufarlo a esas entradas. Ahora todo se ve bien. De nuevo, igual que antes,
voy a copiar todos esos. La mezcla bulling a
los que están aquí también. Adelante y pegarlo. Conecta el agachado, Si estás agachado,
estás Si no estás agachado, estás haciendo esto, eso es correcto Y podemos arrastrar desde aquí
y volver a decir Caché. Podemos guardar una nueva pose de
caché y llamar a este movimiento de rifle en
caché así Bien, todo se ve
correcto. Y vamos a compilar. Y voy a
organizar esto otra vez igual que antes.
Ahora está organizado. Y voy a tomar
todo esto y
moverlo justo debajo de la
de la pistola, justo así aquí. ¿Bien? Intenta hacerlo lo mejor posible.
Ahora lo tenemos aquí. Tenemos el de los desarmados, tenemos el de la pistola, y también tenemos el
para el rifle Lo que podemos hacer ahora es
que podemos compilar y guardar todo solo para asegurarnos nada se estrelle para la pistola. Ahora podemos arrastrar y dice que
podemos usar el ahora este solo está usando el
movimiento porque a partir
del movimiento determinamos si
debemos usar el
agachado o el soporte De esta búsqueda de caché y recuerde seleccionar el movimiento de
pistola en caché,
no el movimiento de la máquina
de estado en caché Entonces para el rifle, podemos arrastrar y buscar de nuevo el caché. Y elige el único movimiento de
rifle en caché. Adelante y organiza
esto lo mejor que puedas. También voy a
arrastrar esto un poco hacia abajo. Se ve un poco mejor, tal vez algo así. Y ahora vamos a compilar. Y ahora se puede ver que la nota
se ha ido porque hemos
enchufado todo Y si hago clic en el
arma brotada y cambio a pistola,
está funcionando Si lo cambio a
rifle, está funcionando. Si lo vuelvo a cambiar a desarmado
, también está funcionando. Ahora, también puedes cambiar el tiempo de
mezcla si lo deseas. Entonces podemos ver si
aumentas todos esos e intentas cambiarlos Ahora lo que puedes hacer es si te cambias a
la pistola y al rifle, puedes ver que
cambia instantáneamente. Lo que puedes hacer,
también puedes aumentar esta vez. Por ejemplo, puedo
aumentarlo a dos. De hecho, se
mezclará mucho más lento. Recuerdo compilar de
otra manera no va a funcionar. Compilar y luego
cambiar a pistola. Ya puedes ver
que lleva mucho
tiempo antes de que cambie
a esas poses. Puedes intentar jugar con esto. Por ejemplo, 0.0 0.3
tal vez dos a extremo. Vamos a compilar y
seleccionemos fusil de pistola. A lo mejor eso es mucho mejor. Creo que sigue siendo demasiado lento. 0.20 0.20 0.2 Vamos a compilar. Seleccionemos la pistola de fusil
desarmada. Simplemente compilando, asegurándose de
que esté funcionando correctamente. Creo que eso es mucho mejor. 0.2 en lugar de 0.1
es mucho mejor. Ahora ya se puede ver que hemos
terminado con el movimiento, y tal vez podamos colocar este
de aquí en el medio. Esta es la última. Y ahora todo está funcionando. Así que siempre podremos cambiar
esta arma equipada más adelante en nuestra base de jugadores
cuando estemos saqueando armas Y automáticamente, en el gráfico de eventos, establecerá esa variable aquí y cambiará
en el gráfico de animación. Pero por ahora, para el arma
equipada, sólo
voy a ponerla
a un armado por defecto, compilar todo,
guardar todo, y ya estamos listos para seguir adelante.
86. 8.01 importa los Assets de armas: Sigamos ahora e
importemos los activos de armas. Para eso, vuelve al lanzador de
Epic Games. Y dentro de aquí,
vayamos al mercado. En el marketplace,
vamos a Navegar y vamos a Weapons In Weapons, tienes que hacer clic en los
gratuitos para que podamos obtener algunos activos gratuitos que podamos
usar para el curso. He descargado este
llamado FPS Weapon Bundle. Si da clic en él, continúe
y haga clic en Descargar. Si aún no
lo has descargado, puedes hacer clic en Agregar al proyecto. Una vez que se haya descargado de nuevo, haga clic en Mostrar todos los proyectos, y luego seleccione nuestro propio
proyecto, Counterstrike Y adelante y selecciona
la versión que sea compatible con la
última versión, esta. Realmente no importa que
sea esta versión con la que
sea compatible, no nos va a
dar ningún problema. Adelante, selecciónala
y ve a Agregar al proyecto. Se va a sumar
esto a un proyecto. Y podría llevar algún tiempo. Si es la primera
vez que lo haces, voy a volver aquí. Voy a descargar
este también porque este pack aquí no
contiene ninguna pistola. Y yo también quiero hacer
una pistola, claro. Entonces ya sabes
disparar con pistolas y así sucesivamente Entonces no son sólo rifles.
Vamos a dar click en éste. Y volvamos a
descargar este. Armas militares Doc.
Adelante y descárgalo. También puedes usar esta, plata
militar en su lugar, pero yo solo voy
a usar esta. Sigue adelante y descárgalo
y vuelve a Agregar al Proyecto, haz clic en Mostrar Todos los Proyectos, Selecciona nuestro Proyecto y
selecciona la última versión. Y Agregar al Proyecto también. Entonces puedes ver una vez esto haya terminado y
yo pueda cerrarlo, puedes ver dentro de
nuestro proyecto ahora tenemos el paquete de armas FPS y
también tenemos el arma
militar doc. Y antes de hacer algo, voy a seleccionar
ambos y luego arrastrarlos a la carpeta
Marketplace. Y selecciona Mover aquí. Y esta va
a tomar algún tiempo, así que saltaré adelante hasta
que termine. Todo bien. Entonces ahora se han movido, y como pueden ver, la carpeta
Marketplace, ahora
tengo el muelle de Arma
Militar y el
paquete de armas FPS también. Pero como pueden ver afuera, todavía
tengo esta carpeta de paquetes de
armas FPS. Y esto podría pasarte
a ti también. Puedes ver que están vacíos
y si golpeo eliminar en mi teclado y
selecciono Eliminar, no se eliminará. Y esto sucede a veces
en el motor real. Entonces lo que hago, normalmente solo guardo el proyecto y sigo
adelante y lo cierro. Entonces abro el archivo del proyecto, así que está dentro de aquí,
el contraataque. Y luego abro la carpeta de
contenido y después borro este paquete FPS. Así que solo asegúrate de
que ya esté dentro
del marketplace,
todos los archivos. Entonces puedes ver aquí,
el paquete FPS, está vacío y
no hay nada dentro de él. No sé por qué no está
borrando por alguna razón. Así que sigamos adelante y
eliminemos esta carpeta. Y luego puedo seguir adelante en la biblioteca y volver a ejecutar
mi proyecto. Y debería borrarse
ahora, como pueden ver aquí, una vez que vuelva a estar dentro de
mi proyecto, la carpeta se ha ido porque
acabamos de borrarla. Y en la
carpeta Marketplace tenemos el paquete de armas FPS y
el arma militar doc.
87. 8.02 Configura el arma: Ahora que importamos
las armas, sigamos adelante y pongámoslas. Hagamos clic derecho aquí
en la carpeta Blueprint. Y hagamos una nueva carpeta, y llamemos a ésta armas. Vamos a hacer clic derecho en este y establecer un nuevo color para esta carpeta. Nuevamente,
abramos esta carpeta, haga clic
derecho, vaya a la clase
Blueprint Para éste, sólo
vamos a crear un acto sencillo. Porque un arma es sólo un Ta estático que
está ahí en el mundo. No es un peón o un personaje
que puedas controlar. Y
tampoco es uno de esos, es sólo un actor. Llamemos a este BP Arma Base. De nuevo,
voy a crear una clase Base. Y a partir de esa podemos escribir, dar clic y seleccionar Crear Clase de Blueprint
Infantil Para éste vamos,
voy a hacer un AK 47, así podemos llamarlo PK 47. Entonces puede
hacer clic derecho nuevamente y crear una
clase de blueprint hijo para esta Vamos a llamarlo BP M41. Ahí está la otra arma. El último es una pistola. Podemos hacer clic derecho Crear clase de plano
infantil
y llamarlo pistola BP Solo sigamos adelante
y guardemos todo. Primero abramos la base de armas
porque tenemos que
hacer algún trabajo dentro
de aquí Primero. Aquí necesitamos un nuevo componente. El componente que necesitamos es una malla estática
o una malla esquelética, porque necesitamos agregar el modelo
tres D para el arma Ahora bien, si haces clic en esto
y buscas malla, tenemos ya sea la
malla esquelética y la malla estática Si no sabes la diferencia
es que la malla estática es solo un modelo estático de tres D
sin ninguna animación. Y tenemos una
malla esquelética que es un modelo de tres D con animaciones Si regresas, en realidad
tenemos que
comprobarlo aquí para las armas del
mercado, lo que vienen como si
abres el paquete de armas FPS, abres las armas
y abres mallas Y abramos
esta K por siete. Y se puede ver que
es una malla esquelética. Si ves esta línea rosa o también
puedes mirar aquí abajo, dice malla esquelética En realidad tenemos que
agregarlo como una malla esquelética. También podemos revisar la otra
carpeta solo para asegurarnos de que el documento de armas militares abra armas y también viene como mallas
esqueléticas Puedes ver aquí que
tienen animaciones. Tienen animaciones de recarga, animaciones disparo y así sucesivamente Estas armas tienen animaciones. Si volvemos a la
base de armas dentro de aquí, hagamos clic en Ad, y
busquemos malla esquelética Y selecciónala aquí. Y
llamémoslo arma. Ahora para esta arma aquí, también
necesitamos una esfera de colisión. Porque necesitamos
interactuar con el arma. Por ejemplo, si
está en el suelo, tenemos que ir a esa
arma y saquearla Es por ello que necesitamos
una esfera de colisión para poder chocar con
ella y hacer algunas acciones Si solo
busca colisión, podemos ver que podemos
hacer una colisión de caja, una colisión cápsula o
una colisión de esfera. Ahora son iguales, es solo la forma
que es diferente. Entonces solo voy a seleccionar una colisión de esfera para esta. Y voy a hacer
este radio de esfera un poco más grande. Ahora, ya no
importa porque vamos
a ajustarlo después. Cuando probamos las armas
dentro del nivel, entonces podemos hacer el radio de lo lejos que puede el jugador
saquear el arma y así sucesivamente Así es como lo controlas aquí. Pero por ahora, sólo
voy a ponerlo a un número aleatorio y
seguir adelante y guardar todo. Ahora cerremos la base de armas y
vayamos a los planos infantiles Si abres armas. Y abramos aquí
el AK 47. Ahora para el arma,
si haces clic en ella, seleccionemos la malla esquelética Si solo
buscas, no sé por qué se llama KA 47, pero puedes
buscarlo y puedes encontrarlo y seleccionar éste. Y abramos
el segundo. Y puedes dar click en arma, abrir esta de aquí
y buscar R cuatro. Puedes seleccionarlo aquí, luego abrir la
última, la pistola, hacer clic en el arma
y luego seleccionar o simplemente buscar pistola
y seleccionar esta de aquí. Ahora se puede ver que todas
las armas están ahora
dentro de aquí. Adelante y compile o
todos los planos. Pero como puedes ver aquí, todos
están girando de esta manera. Esa es en realidad la dirección
equivocada, porque en el motor Unreal, el eje X es el eje delantero Y puedes ver aquí,
el punto de pivote rojo aquí es el eje delantero. Las armas tienen
que girar de esta manera. Aquí todos están
girando de manera equivocada. Como pueden ver, tenemos que voltearlos
a todos en lugar de simplemente
girarlos uno por uno así. Y tenemos que ir aquí
y darle la vuelta también. De hecho hagamos otra
cosa. Recuerde que tenemos una base de armas que es la clase de
planos padres Cualquier cosa que hagas dentro de aquí se
aplicará a todos
los niños. Si haces clic en el
arma y tomas la herramienta de rotación y la
giras -90 grados, vas adelante y compilas Ahora echa un vistazo a
la pistola M cuatro, la AK. Todos están girando la manera correcta ahora que es la
forma correcta en que deben girar. Adelante y guarda todo. Creo que eso fue
todo para todo. Ahora que tenemos eso, solo
arrastrémoslos
al nivel y echemos un
vistazo a cómo se ven. Sólo voy a
separarlos un poco. Voy a seleccionarlos a
todos y luego moverlos
aquí en el nivel. Nuevamente, puedes hacer clic en G
para ocultar todos los íconos, y puedes echarles un vistazo y todo queda bien. Por ahora, adelante y guarda todo,
y sigamos adelante.
88. 8.03 Física habilitadora: Como pueden ver aquí,
cuando hago clic en play, todas las armas están flotando. Si voy en realidad están del
lado terrorista. Si hago clic en play y
selecciono terroristas, podemos ver que todas las
armas están flotando por ahí. Queremos que
caigan al suelo. En lugar de tenerlos
a flotar así. Necesitamos habilitar la física. Si volvemos al plano
y antes de hacer eso, en realidad
voy a reducir
la cantidad de jugadores que espío servidor de lecciones Bien, vamos a las armas, abrimos la
base de armas. Dentro de aquí haces clic en el arma.
Puedes ver algo llamado Simular Física aquí bajo
Física Simular Física. No obstante, por alguna razón no puedo seleccionar y no tengo idea de por qué. Pero lo que puedes hacer es simplemente
eliminar esos eventos por ahora. En el Begin Play,
hagámoslo aquí. Tomemos el arma.
Vamos a arrastrar desde aquí. Si solo escribes
el mismo nombre que puedes ver aquí, das
clic en Arma. Se llama Simular Física. Si arrastras desde aquí
y solo escribes Simular, puedes ver que es este
llamado Set Simulate Physics. Si solo lo seleccionas
aquí y lo conectas y solo lo configuras en true para que simule la física y siga
adelante y compile Ahora no funciona todavía
porque la colisión está mal Si haces clic en el arma y
bajas a la colisión, puedes ver que no tiene colisión. Si haces clic en jugar
ahora mismo y seleccionas al terrorista, puedes ver que aún no se están
cayendo. Siguen volando en el aire. Vamos a cerrarlo y
para la colisión, cambiémoslo a la costumbre. Por ahora, solo
voy a dar click en Ignorar la Colisión
va a ignorar
todo por ahora. Voy aquí por
la no colisión. Adelante y selecciona solo
la física. Nosotros solo queremos física. Qué significa consulta. Significa que si podemos interactuar
con el arma o no. Realmente no
necesitamos eso porque nuestra esfera de colisión es
en realidad solo una consulta. Esto es como si estuviéramos
colisionando aquí. Estamos haciendo algo de acción
con esta esfera de colisión. Esto es una colisión y puedes interactuar con
ella sin tener física. Pero para el arma, no
quiero eso porque
ya tenemos la
esfera de colisión para esta, solo queremos que la
física esté habilitada. Entonces voy a
ignorar todo. No obstante, hay que bloquear la estática del mundo
y la dinámica mundial porque ahora es el piso. Si ignoras todo,
puedes ver si hago clic en jugar ahora y
selecciono al terrorista, las armas se han ido. Esto es porque no has bloqueado el suelo. Están
cayendo por el suelo. Tenemos que bloquear el suelo, el mundo estático y dinámico. Adelante y compile y haga clic en jugar y
seleccione terroristas. De nuevo, en realidad
voy a tomar todos esos y solo tenerlos
aquí en cambio así. Sólo tienes que tenerlos en el medio
para que pueda
verlas más rápido si hago clic en
jugar, voy a terrorista, puedes ver que
ahora están siendo bloqueados por el suelo y están
cayendo al suelo, bien. Ahora también se puede ver si
entro en ellos como el
terrorista o como el peón, nada está
pasando realmente y esto es porque no estoy
colisionando con Ahora bien, si quieres que el peón
choque con ellos, no lo
voy a hacer
dentro de este proyecto Sin embargo, si quieres eso, también
puedes seleccionar que tu estanque que estás controlando también los
bloqueará. Y eso significa que ahora puedes interactuar con ellos
como el peón para que
podamos entrar en ellos y la
colisión también está funcionando También puedes hacerlo si
así lo deseas. No obstante, para este proyecto, realidad no
voy a hacer eso, voy a ignorar
esto por ahora. Entonces ahora tenemos habilitada la física, y estamos simulando la física
para todas las armas Así que sigamos adelante y compilemos y guardemos todo,
y sigamos adelante.
89. 8.04 actores de replicación: Anteriormente
replicábamos variables, pero también se pueden replicar actores de
planos Y tenemos
que hacer eso para que se
muestren correctamente para
todos los clientes. Si abres la base de armas y aquí en la clase por defecto, puedes ver que
también se llama réplicas Y hay que seleccionar
eso si quieres mostrar la información correcta
del servidor a todos
los clientes que muestran
estas armas, así
como el movimiento
para las armas y así sucesivamente. Entonces hay que presionar réplicas. Entonces funciona en multiplicador. También hay que replicar
el movimiento también, para asegurarse de que el movimiento de ellos no esté tapando también Esto era
lo único que tienes que
hacer a veces, si
te olvidas de esto, a veces haces algún código y puedes ver que no está funcionando para los clientes y te
confundes por qué es. Entonces, pero es porque también hay que ir en un actor
que creas, por
ejemplo, esta
es la base de armas. Y hay que seleccionar réplicas así como
replicar movimiento. Funciona para multijugador. Adelante y guarda todo. Como puede ver, como es
el plano padre, también
se replica ahora para
todos los niños también Adelante, guarda todo,
y sigamos adelante.
90. 8.05 Superposición de armas: Ahora estamos listos para
hacer algunos eventos para cuando nos superpongamos
con el arma. Para verlo mejor, puedes abrir la base de armas por ahora, si haces clic en la esfera, puedes hacer click en este juego
de ocultación Se puede quitar. Y si compilas, puedes ver la
esfera de colisión en el juego. Es agradable ver aquí. Se puede ver a qué distancia se
puede interactuar
con el arma. Siempre puedes hacerlo más grande o más pequeño dependiendo de tu
juego que estés creando. Pero siempre es agradable
ver dentro de aquí. Hagamos algunos eventos de
interacción. Lo que queremos hacer aquí
en la base de armas, queremos hacer clic en
la colisión Esfera en la parte inferior. Si vas
aquí en el panel de detalles, puedes ver este llamado
Componente Comenzar Superposición. Si haces clic en el signo más, éste creará el evento para ti. Ahora dice ¿qué debería pasar cada vez que te superpongas con
esta colisión de esfera? Para éste, primero
tengo que comprobar si es el jugador el que
está colisionando con él. Porque si tienes
enemigos corriendo por ahí o
algo más chocando con
él, en realidad disparará este código Quiero asegurarme de que sea solo el jugador quien pueda
interactuar con éste. El otro actor
es el actor que está interactuando con
esta esfera de colisión. Puedo dirigir de este
otro actor y decir actor tiene etiqueta y luego puedo
seleccionar esta función aquí. Y lo que esta función
está diciendo es que si el actor que está
interactuando con esta colisión de esfera
tiene esta etiqueta específica, puedo seguir adelante y
disparar el código. Puedo hacer una sucursal aquí. Si eso es cierto, el jugador tiene esta etiqueta que
estamos a punto de escribir. Los eventos pueden disparar aquí la etiqueta que
necesitamos escribir aquí. Tenemos que asignar una
etiqueta para el jugador. Si solo vuelves a abrir
al
jugador, base de jugadores aquí, dentro de
aquí en la clase por defecto. Si buscas etiqueta
en el panel de detalles, puedes ver esta debajo
de actor. No está debajo de las etiquetas. Tienes que asegurarte de
que está bajo actor. Y se pueden ver las etiquetas. Se llama actor tiene etiqueta. Tiene que estar bajo el actor. Si haces clic en la cláusula, y solo puedo llamar a
este jugador. Ahora agregamos una etiqueta aquí
para esta cláusula blueprint. Agregamos el tag player. Lo que podemos hacer es ir a la base de armas y solo preguntar, ¿este actor tiene
el tag player? Si eso es cierto, podemos
despedir estas funciones. Ahora, sólo es cierto para los
jugadores de la base de jugadores. Tienen el tag player. Y esto se aplicará
tanto al terrorista como al
antiterrorista, porque de nuevo, esta es la cláusula del plano
matriz Vamos a abrir aquí. Ahora
para colisiones aquí, para la superposición de componentes, siempre hay que
asegurarse de que lo ejecuta a través del servidor
para evitar trampas A partir de aquí, arrastra y di que el
switch tiene autoridad y luego podemos escribir el código
de esta autoridad aquí, que es el servidor siempre asegúrate de que ejecutes este
código a través del servidor. Porque si no lo haces, digamos que el cliente está parado aquí y de alguna manera
están haciendo trampa, tienen algún
software descargado, en realidad pueden interactuar con el arma aunque
estén
aquí parados haciéndola correr
por el servidor. El servidor comprueba si el jugador está realmente
interactuando con él o no. Bien, de este otro actor, lo que podemos hacer es que
podamos arrastrar también. Ahora sabemos que es el jugador y ahora lo ejecutamos
a través del servidor. Podemos arrastrar desde aquí y
decir obtener referencia del jugador porque recuerda que es el jugador quien está interactuando con él. Y también hicimos esto obtener el
jugador F desde la interfaz. Antes tenemos la referencia de
los jugadores, así podemos seguir adelante
y conectarlo. Haga doble clic aquí para hacer notas de reencaminamiento
y hacerlo más limpio Así como así, Dios y compilar. Y ahora realmente podemos
interactuar con él. Ahora para ver si esto es correcto, puedes arrastrar desde aquí
y escribir una cadena de impresión. Tal vez puedas
conectar este jugador a él. Adelante y mira si esta fuera. Si haces clic en play y en realidad vamos a
seleccionar al terrorista, entonces no estamos del
otro lado del mapa. Ahora bien, si voy hasta aquí
e interactúo con él, deberían
ver que aquí
dice, terrorista BP. Ahora en realidad es correcto, estamos interactuando con él. Todo está funcionando, así que
adelante y borra esto por ahora, compile y sigamos adelante.
91. 8.06 Establece el tipo de arma: Aunque, antes de continuar, necesito agregar el
tipo de arma a cada arma. Y esto es agradable de usar
más adelante porque siempre es bueno saber si
el arma que estás saqueando es un rifle o una pistola Lo necesitamos más adelante
para el inventario, así que no saqueamos
múltiples rifles, múltiples pistolas, y así sucesivamente Por supuesto, puedes hacerlo en tu propio juego, pero
también revisando, por
ejemplo, no puedes saquear tres rifles y
cosas así Entonces tienes que saber
si es un rifle
o una pistola lo que estás saqueando, porque ahora mismo no tenemos
idea de lo que estamos saqueando, solo
estamos interactuando
con estos artículos Lo que podemos hacer es aquí
en la base de armas. En realidad, antes
de hacer eso,
vayamos a las enumeraciones. Y ya tenemos esta
llamada tipo arma, en realidad ya
tenemos esta. Volvamos a la
base de armas y agreguémosla aquí. Haga clic en el más en
las variables y simplemente escriba el tipo de arma aquí. Para el tipo de variable
se puede buscar el tipo de arma, esta es nuestra enumeración. Salga y selecciónelo, y haga clic y compile y guarde todo. Ahora lo genial de esto
es que lo has agregado a la base de armas que es la clase padre de
estos planos de armas Realmente agradable es si
abres el AK 47 ahora y haces clic en
los valores predeterminados de clase, ahora
puedes ver el tipo de arma
variable y puedes seleccionar qué
tipo de arma es esta Si agrega variables
a la clase padre, son utilizables en las clases
infantiles. Ya puedes ver si abro
el 44 o la pistola, hago clic en los valores predeterminados de Clase, puedo ver las variables
de la clase padre Lo que sea que agregues aquí también
se puede aplicar a todos
los niños. Ahora haciendo clic en el AK, ahora
puedo seleccionar el tipo de
arma para que sea un rifle. Ya puedo compilar.
Puedo ir a los cuatro seleccionar el tipo de arma
para ser un rifle también. Si abro la pistola, voy a los
valores por defecto de clase y hago clic aquí
arriba y selecciono pistola
para el tipo de arma Adelante y compile para
todos esos planos. Y ahora podemos salvarlos. Sí, ahora sabemos cuál
es el tipo de arma para todos ellos. Esto es una pistola,
esto es un rifle. Y esto también es un rifle. Y tenemos que hacer eso para que
sepamos lo que estamos saqueando.
92. 8.07 Comprueba si el jugador tiene el arma: Ahora vamos a crear algunos,
un inventario de armas para el jugador y verificar si el jugador ya
tiene el arma. Porque lo que estoy tratando de hacer es si el jugador interactúa
con el arma, que verificar si el jugador ya tiene el arma o no Si el jugador ya tiene
el arma, no puede saquear el arma Sólo va a saquear el rifle si no
tienen ya un rifle Y van a
saquear la pistola si no
tienen ya una
pistola Sigamos adelante en
la base de jugadores y dentro de aquí,
hagamos clic en el más. Voy a hacer una nueva variable
llamada Inventario de Armas. Aquí solo buscamos el tipo de arma o
la base de armas, porque necesitamos agregar las
armas a ese inventario, tienen que ser el
tipo de base de armas. Y sigue adelante y selecciona
la referencia del objeto. Ahora, ya que ahora es
un inventario, permítanme seguir adelante y dar
click en la X aquí. Al ser un inventario, tenemos que cambiarlo de una
sola variable a una matriz. Recuerda, una matriz es como una caja donde le agregas cosas. Tenemos que sumar las diferentes armas que has saqueado Se puede ver si hago
clic en el más. Ahora aquí no puedo seleccionar porque
es la clase padre. Y en realidad no podemos
simplemente agregar cosas aquí automáticamente. Pero puedes ver que puedes agregar el rifle y
la pistola durante el juego. Puedes agregar múltiples armas
dentro de este inventario. Pero para nosotros, queremos agregar, por ejemplo, un
rifle y una pistola. Y puedes tener una escopeta
y así sucesivamente para tu juego. Pero por ahora solo tenemos
el rifle y la pistola. Adelante y solo
borránela por ahora. Esto fue sólo por ejemplo. Volvamos a
la base de jugadores. Ahora desde la base de jugadores, como ya
tenemos la referencia, podemos arrastrar desde aquí y buscar inventario de
armas y
podemos obtener esa matriz. Ahora para esta matriz,
queremos
recorrer todo este
inventario y verificar si el jugador tiene un rifle
que podamos arrastrar desde aquí y decir por cada bucle con freno. Y puedes seguir
adelante y seleccionar eso. Ahora puedes ver las
armas a través de este giro, si sostienes el ratón sobre ella. Ahora es un solo elemento. Es la base de armas BP. Va a tomar
cada arma dentro de aquí y
recorrer el código, recorrer esta matriz, y puedes hacer
algo con ella. Ahora lo que estamos tratando de hacer
es que estamos tratando de verificar si el jugador ya tiene esta arma con la que están
tratando de interactuar. Lo que tenemos que hacer es
tomar cada una de las armas del inventario que necesitamos arrastrar de aquí y verificar
su tipo de arma. Recuerda, acabas de hacer
este tipo de arma, así puedes llamarla aquí. Ahora está
recorriendo cada uno de ellos. Estás tomando el tipo de arma, solo
estás preguntando aquí, arrastrando y diciendo igual, si este tipo de arma dentro
de tu inventario es igual a este tipo de arma
que estás tratando de saquear Y podemos hacer una rama, si eso es correcto, entonces no puedes saquear el arma Tenemos que hacerlo más adelante para que no
puedas saquear el arma. No obstante, si es falso, en realidad
podemos saquearlo. Así es como lo haces. Ahora
necesitamos hacer este replicado porque
el cliente también necesita ver esta información, qué tipo de arma tienes Voy a seleccionar
replicarlo. Adelante, compilar
y guardar todo. Ahora puedes ver aquí estamos
tomando el inventario de armas. Estamos tratando de verificar si el jugador ya tiene el
arma. Estamos tomando el tipo de arma con el arma dentro
del inventario. Y estamos comprobando si
este tipo de arma es igual a la que
estamos tratando de saquear Si eso es correcto, no
podemos saquear el arma porque
ya tenemos el arma
en el inventario Si es falso,
podemos saquear el arma. Bien, este con descanso,
podemos usarlo más tarde. Puedo explicar lo que eso
significa, pero por ahora, ahora
podemos guardar todo y podemos pasar
a la siguiente lección.
93. 8.08 Saquea el arma: Ahora sigamos adelante y hagamos
posible que el jugador
saquee el arma Entonces ahora comprobamos que el
arma está en el inventario. Si esto es cierto,
sigamos primero en la base de jugadores y
hagamos un nuevo lingote, y voy a
llamarlo arma de botín Voy a
cambiarlo en lingotes. Vamos a cambiarlo a
una sola variable en lugar de una matriz.
Vamos a compilar. Ahora éste va a ser cierto si el jugador
puede saquear el arma Y va a ser falso
si el jugador no puede. Lo que voy a hacer es que lo
voy a poner por defecto. Por lo que el jugador puede saquear
el arma por defecto, a menos que encontremos aquí
en el inventario que el jugador ya tiene
un arma por defecto Adelante y configúrelo en verdad. Salvemos todo y
vayamos ahora a la base de armas. Ahora lo que podemos hacer es romper
de nuevo con este jugador y buscar esto puede
mucho lingotes de armas Lo vamos a poner aquí. Si encontramos esta arma que estamos
tratando de saquear, si la encontramos en el inventario, vamos a poner en fallas Es cierto por defecto, pero vamos a ponerle
a fallas que el jugador no pueda saquear el arma si realmente la encontramos
en el inventario Este bucle de aquí no
lo encuentra en el inventario
para el jugador, solo
va a ser culpa de
todos los artículos por los que está
buscando. Al final, cuando se completa el
bucle, éste sigue siendo cierto. Si no encontramos ninguna
arma, sigue siendo cierto. Para que podamos seguir adelante y saquear el arma que podamos
arrastrar de ésta Ahora otra vez, y puedo
buscar puede saquear arma. Dependiendo de si esto
es verdadero o falso, podemos hacer alguna acción
aquí cuando esté completa. Primero solo va a
recorrer los artículos. Y después de eso
vamos a comprobar si esto puede saquear arma
ahora es falsa o cierta Ahora voy a organizar
esto un poco. Va a agregar un nodo de roca trasera
aquí y enchufarlo aquí. En cambio, si esto es cierto, si el jugador
realmente puede saquear el arma, sigamos adelante en la
base de jugadores y bajemos aquí Voy a escribir click y
hacer un nuevo evento personalizado. Llamemos de nuevo a esto un
lote arma. Sólo voy a
ejecutarlo a través del servidor. Solo asegurándome de que ahora ya
se esté ejecutando
a través del servidor. Porque recuerdas que lo estás pasando por
la autoridad. Ya se está ejecutando
a través del servidor. Sin embargo, solo me gustaría hacerlo esta manera así me mantengo consistente. Simplemente puedes escribir este
servidor uno de inmediato. No tienes que hacer
esto porque
ya estamos corriendo por
el servidor por ti. Solo puedes usar este
si lo deseas, pero solo me gusta mantenerme
consistente con mi código. Voy a ejecutarlo a
través del servidor aquí. De nuevo, voy a arrastrar de
éste y ejecutar éste a través del servidor así. Entonces voy a escribir
mi código por aquí. Ahora de nuevo, puedes simplemente escribir un código por aquí si lo deseas, pero en el futuro, si
no lo estás ejecutando
a través del servidor, tienes que ejecutarlo por aquí. Ahora tenemos esto escrito. Ahora lo que queremos hacer
cuando saqueamos el arma, solo
queremos agregar esta
arma saqueada al inventario Estamos tomando este inventario de
armas y estamos diciendo
set array element. Porque queremos
agregarlo al inventario, te pregunta, ¿a qué índice
quieres agregarlo? Solo quiero agregarlo a
cualquier índice que esté disponible. Entonces voy a dirigir
desde aquí y decir longitud, entonces voy a agregarlo aquí. Ahora recuerden, las matrices
parten del índice de cero y luego
van a 123 y así sucesivamente. Si arrastras desde aquí y dices, último índice en este momento, el último índice es tres, o esta matriz aquí. Si estás tomando este último índice y enchufándolo aquí, en realidad
vas a sobrescribir cualquier arma que esté en
el índice de tres Si quieres usar
el último índice, tienes que tomar el último
índice y decir más uno. Estás encontrando el último
índice y luego en
realidad estás agregando la nueva arma
aquí en el índice cuatro, que puedes enchufar aquí. Ahora un mejor método para hacerlo
es simplemente encontrar la longitud. La longitud es 1234. En realidad lo va a
sumar al índice de cuatro. No tenemos que hacer esto aquí. Es por ello que uso la longitud. Se va a dar salida cuatro. Y también puedes ver
esto si solo escribes una cadena de impresión y
conectas esto a aquí, siempre es bueno agregar cadenas de
impresión. Si quieres verificar valores
por lo que estás haciendo, voy a
agregarlo a este índice. Ahora bien, ¿qué artículo
queremos agregar? Es el arma que queremos agregar. Ahora bien, en realidad no tenemos
ninguna referencia al arma. Hagámoslo. Vamos a hacer clic en
Pérdida en este evento aquí. Y busquemos base
de armas. Y vamos a seleccionarlo aquí
y llamarlo arma. También puedes llamarlo
arma saqueada si deseas arma. Y entonces voy
a tomarlo de aquí y conectarlo
a este evento. Y ahora podemos usarlo por
aquí en la base de armas. Si mucho arma es verdad, entonces queremos
tomarla aquí desde la base de jugadores y
buscar mucho arma. Así es como lo llamamos. Adelante y
selecciónala y
ya puedes conectarla aquí de nuevo, voy a hacer click para hacer notas
re
escritas para que sea un poco más legible. Así como así. Ahora te va a preguntar, ¿
cuál es el arma? ¿Cuál es la variable para ello? Ahora la forma en que definas esto es, recuerda que estás dentro de la base de armas si solo golpeas y
escribes a
ti mismo porque es el arma con la que estás
interactuando. Si interactúas
con este de aquí, sabe que es el 41 porque es con el
que estás interactuando. Y si escribes yo
como referencia, sabe
que esta arma es en realidad la
cláusula de un plano aquí abajo Si se dice que arma es
falsa, puede saquear arma. Entonces significa que no puedes saquear el arma porque
en algún momento realmente encontró el arma en
el inventario y
no puedes saquear el Ahora bien, si encuentra el arma en el inventario en
digamos por ejemplo, el primer índice,
en realidad encontró el arma. Y no tiene sentido
recorrer todas las demás armas porque
ya encontró
el arma
y no se puede saquearla En fin, esto es lo que
es esto, lo que significa esta ruptura. Quiero romper el lazo. Ya no quiero
recorrer esta matriz. Cuando encuentre el arma
a través del inventario y pueda poner el arma de
botín de lata a caídas De hecho quiero arrastrar
esto y configurarlo para que se rompa. Ahora puedo hacer doble clic y hacer algunas notas traseras para que
sea más fácil de leer. Lo que digo es, es cuando
encuentres esta arma
en el inventario, adelante y rompas el bucle. Porque no tiene
sentido recorrer todos los artículos cuando ya encontré
el artículo y no puedo
saquearlo de todos modos Entonces se va a romper
y esto puede saquear, arma está puesta a caídas Entonces no vas a saquear nada porque aquí
no tenemos ningún código Pero recuerda,
hay que volver a poner ésta en verdad
porque es verdad. Por defecto tiene que ser cierto. Esto va a fallar la próxima vez que vayas a
interactuar con un arma. Va a ser
falso por defecto porque no te acordaste de
establecerlo en true. Por defecto
va a ser falso. Y aunque
puedas saquear un arma, aunque no haya
encontrado nada, ésta será falsa La próxima vez que saquees un arma. Recuerda arrastrar de esto
otra vez y buscar de nuevo para lata mucho un arma y set y luego recuerda
ponerla en verdad otra vez. Por defecto, cada vez que
vuelvas a interactuar con un arma en el futuro
puedes establecer, pero en realidad puedes
saquear el arma si no la tienes
en el inventario También puedo simplemente
hacer clic y arrastrar esto aquí
en realidad va
a verse mucho mejor. Algo así. Entonces
ahora debería ser cierto, puedes seguir adelante y
compilar todo de nuevo. Recuerda si lo hiciste como yo, adelante en la
base de jugadores y en el inventario, voy a eliminar todos los aquí que acabo
de hacer para demostrar
el inventario de armas por defecto
no debería tener nada. Adelante y guarda todo. Y ahora para esta arma aquí, tomémosla aquí arriba, organízala un poco mejor. Y ahora lo que puedes hacer ahora, puedes conectar esta
arma porque aquí la
hemos definido
como la autorreferencia. Ahora puedes tomar, esta arma
va a correr por aquí y se va a
agregar al inventario. Nuevamente, haga doble clic para
hacer notas de ruta trasera. Ahora lo estás
saqueando al inventario. Y sigue adelante y
selecciona el tamaño que mejor se ajuste. Se va a asegurar de
agregarlo a esa matriz. Adelante y compilar. Y ahora debería funcionar
correctamente para probarlo. Para asegurarte, sigue adelante y arrastra desde aquí y
escribe una cadena de impresión. Y siempre puedes
tomar este, vamos a pegarlo aquí. Y vamos a arrastrar y decir
consigue y consigue una copia. Y siempre podemos obtener el
índice cero porque esto es, recuerda en arrays
empieza con el índice cero. Estamos obteniendo el
índice cero y
asegurándonos de que en realidad estamos
saqueando el arma Esto. Y agrégalo a la cuerda para que sepa
el nombre del arma. Entonces ahora vamos
a imprimir el nombre
del arma en la pantalla
que hemos saqueado, ir a compilar y
guardar todo Y asegurémonos de que
todo esté funcionando. Vamos a hacer clic en play.
Selecciona Terroristas Y si entro aquí va a decir AK 47
como puedes ver aquí. Ahora el uno
realmente no importa, es solo el número
para este plano Podemos tomar esta. Ahora puedes ver que no puedo
interactuar con él porque ya
tengo un rifle
en mi inventario. Entonces ahora si
vuelvo a jugar y selecciono al terrorista y paso por el 41, imprime el 41 en
la pantalla de aquí arriba. Ahora bien, si paso por la pistola, porque la puedes
ver para la K, no imprime
nada porque
ya tengo un rifle
que está funcionando correctamente. Ahora bien, si paso por la
pistola, debería imprimirla. Y se puede ver que está imprimiendo sin embargo está imprimiendo
el nombre equivocado. Y recuerda para
la cadena de impresión, solo
estamos imprimiendo
el índice cero, así que solo está
imprimiendo el 41. Nosotros solo fuerte siempre
puede configurarlo para indexar uno y
va a imprimir la pistola. Ahora bien, si quieres
imprimir todo dentro de este inventario para ver
qué hay dentro de él, siempre arrastra desde aquí y
di por cada bucle ahora
vas a recorrer toda
esta matriz y podrás conectar el bucle. Y luego puedes seleccionar
cada uno del nombre único
del ítem que está
dentro de aquí y puedes imprimirlo como una cadena. Puedo seguir adelante y
recoger el AK por ejemplo. Entonces puedes ver que lo
imprime en la pantalla. Puedo ir a la pistola y
ahora va a imprimir tanto el AK como la
pistola a la pantalla. Está funcionando como se
supone que debe hacerlo. Guardemos todo y pasemos
al siguiente.
94. 8.09 Crea el zócalo de arma: Antes de que podamos unir el
arma a las manos del jugador, tenemos que crear un socket. Recuerda, antes creamos
un socket. Cuando creamos la cámara
del jugador y colocamos esa cámara a
la cabeza del jugador, necesitamos agregar otro
socket donde
adjuntamos el arma a
la mano del jugador. Vamos a la
carpeta Marketplace y vayamos
al personaje militar Silva para adentrarnos aquí en ese esqueleto. Recuerda que esta es la cámara, esta es la toma para la
cámara que agregamos anteriormente. Ahora lo que tenemos que hacer es
añadir un socket para la mano del jugador para
que pueda sostener el arma
para la mano, ¿verdad? Aquí es donde usualmente sostienes un arma. Tenerlo en tu mano derecha. Para la mano, derecha,
puedo hacer click derecho y agregar un socket aquí. Voy a dar click
sobre dos para cambiarle el nombre. Y lo voy a llamar Rifle. Ahora voy a
agregar una toma para
un rifle y una toma
para la pistola. Ahora, antes intenté solo
agregar uno para el arma. Arma y podría
agregarle la pistola y el rifle. Sin embargo, la posición en la
mano son diferentes. Es mucho mejor agregar uno para el rifle y
otro para la pistola. Se ve mucho mejor
seleccionando rifle S. Sigamos adelante y agreguemos
una animación previa para que
podamos ver realmente cómo se ve si solo busco rifle y
busco uno de ellos. Por ejemplo, el rifle inactivo de
animación. Voy a pausar
esta animación
al primer fotograma solo para que esté
quieta y no se mueva. Y puedo ajustar el zócalo. Al hacer clic en el rifle de toma, puedo hacer click derecho ahora para agregar vista previa D. Vamos
a seguir adelante y agregar, por ejemplo, el 41,
o se llama R cuatro, en realidad por aquí
y seleccionarlo. Ahora podemos previsualizar y
podemos ajustar el socket. Así que adelante y da
clic en el zócalo. Y sigue adelante y selecciona
la herramienta de rotación. Y ahora puedes
girarlo 90 grados de esta manera. Y solo estoy tratando de
ajustarlo a la mano para que
se vea mejor. Voy a reducir la
velocidad de mi cámara. Es demasiado rápido. Ahora puedes ver el
único error aquí, puedes intentar
ajustar el socket. Ahora mismo, el único error para este personaje es que en realidad sostiene el
rifle así. Se ve raro
porque va a disparar hacia adelante aquí abajo. Si estoy parado frente a
él, en realidad está disparando al aire cuando se
supone que me va
a disparar . Eso está un poco
mal en el lado de la animación. Realmente no se puede hacer
nada al respecto. Intentemos hacerlo
lo mejor que podamos. Esta rotación
en realidad debería ser como, esto debería estar disparando hacia adelante. Vamos a quitar el
chasquido para la rotación. Y estoy tratando de que apunte hacia adelante
lo
mejor posible. También puedes ir a
la vista correcta. En realidad ir a la vista frontal. Para la vista frontal,
puedes de nuevo, simplemente rotar el arma lo
mejor que puedas. Aquí está. Tal vez mejor para ver cómo
está apuntando así hacia adelante. Puedes volver a
la perspectiva y echarle un vistazo,
asegurarte de que esté apuntando hacia adelante y todo se vea genial,
tal vez, algo así. Entonces puedes seguir adelante
y moverlo hacia arriba, tratar de colocarlo en la mano del personaje,
Algo así. Sólo intenta lo mejor
posible para
colocarlo correctamente en la
mano del personaje. Por ejemplo, tener
este gatillo por aquí, asegurándose de que
no le pase por los
dedos así aquí. Tratando de moverlo un poco
hacia adelante, pero aún tenerlo en
la mano del jugador. Ahora realmente no puedes
hacerlo perfecto. Si se trataba de un
proyecto serio, los personajes se diseñarían de tal manera que
estén sujetando correctamente esta
arma. El arma y el
personaje encajan entre sí. Por ejemplo, en contraataque, lo están diseñando así Sin embargo, aquí para este, es solo un personaje aleatorio, animación
aleatoria.
Con armas aleatorias. No se puede esperar
que esto sea 100% factible. Sólo estamos tratando de
encajarlo lo mejor que podamos. Ahora bien, esta se ve bien. Todo se ve genial. Sólo puedo intentar
arrastrarlo un poco atrás, así como así. Todo
se ve genial. Ahora sostiene el arma. Y puedes ver si lo animo, va a quedar
así. Luce increíble. Ahora hay que probarlo
con el otro rifle. Solo para asegurarme,
voy a hacer clic derecho en este y eliminar
todos los activos adjuntos. Voy a hacer
click derecho de nuevo en la reseña. Ahora déjenme agregar el KA para siete. Déjame agregar el AK. Se puede ver el AK está
recortando ligeramente Lo que voy a hacer es
que lo voy a mover hacia arriba
tanto como pueda sin hacer
que reserve algo así. Ahora va a recortarse ligeramente
por aquí, pero lo que sea, como que en
realidad no podemos hacer mucho al respecto. Estas armas no están diseñadas
para estas animaciones. No podemos ser 100% precisos. Pero algo así aquí. Y otra vez, puedo
seleccionar el rifle, chuparlo bien Para
moverlo hacia abajo tanto
como puedas sin
que parezca buggy,
algo así. A lo mejor es lo mejor que puedo hacer. Si solo haces clic derecho,
elimina el activo adjunto, haz clic con
el botón derecho de nuevo. Agrega el AR four como vista previa solo para
asegurarte de cómo se ve. Es un poco más hacia arriba. Pero esto es lo mejor que
podemos hacer por esta arma. Como que realmente no podemos
colocarlo mejor porque también va a
faltar para el AK. Ahora podemos mirar a través del hielo de este personaje y asegurarnos de que la
rotación sea correcta. Creo que se ha girado
un poco del lado equivocado. Voy a hacer click en el
zócalo de nuevo y voy a sostenerlo y luego girarlo
en esta dirección aquí. Creo que está
un poco inclinado, tal vez. Algo así. Y
se ve mucho mejor. Bien, esto fue todo. Eso sí, todo
se ve bien. Ahora, solo para
asegurarme, voy
a hacer clic derecho en esto de
nuevo. Retirarlo. Voy a
hacer click derecho en el AA 47 igual que la última vez solo para asegurarme de que
todo esté correcto. Ahora lo que podemos hacer es que
siempre lo podemos arrastrar un
poco más de esta manera. No está molestando aquí
a través del mango. Algo como esto. Bien, ahora se
ve mejor,
todo se ve bien. Ahora siempre se puede ajustar
ligeramente hacia arriba y hacia abajo. Creo que se ve bien. Ahora
vamos a guardar todo. Ahora hay que recordar agregar esto también al otro
esqueleto, pero primero agreguemos la pistola. Antes de hacer eso,
pasemos ahora a la vista previa. O no las previsualizaciones.
Animación de vista previa. Y
busquemos pistola ahora, tomemos una de las animaciones de
pistola. Y yo sólo voy a seleccionar a
este ídolo de pistola de aquí. Pongámoslo en la
primera animación. Ahora para éste, voy a retirar todos los activos adjuntos. Hagamos clic derecho en la
mano y agreguemos un nuevo socket. Y voy a llamar a
esta pistola. En realidad pistola.
Sabemos que es una toma de corriente. Ahora para este,
hagamos clic derecho y agreguemos la pistola como
activo adjunto. Si solo agregamos nuestra
pistola igual que antes, giremos el zócalo. Voy a agregar esta herramienta de
broches
girada 90 grados nuevamente para girarla de esta manera así
está apuntando hacia adelante, siempre
puedes volver
a la vista frontal Adelante y acerque.
Seleccione la pistola o el casquillo aquí y
retire el chasquido Voy a girarlo ligeramente hacia abajo para que apunte correctamente. Y vaya a la vista en perspectiva. Comprueba si todo
está bien. Intenta lo mejor que puedas
para que apunte hacia adelante. Y siempre podemos
ajustarlo después. Ahora vamos a moverlo a
la mano del jugador. Así, de esta manera,
tal vez de esta manera. Nuevamente, trata de colocar el dedo en el gatillo
lo mejor que puedas. Entonces algo como esto, nuevo, siempre podemos
ajustarlo después. No es realmente un problema. Si algo está un poco estropeado, puede ver que la rotación está un poco estropeada. Está demasiado
inclinado Voy a, otra vez,
rotarlo de esta
manera, para que no esté inclinado
así. Creo que esto es bueno. Siempre podemos ajustarlo después. Ahora intentemos
moverlo lo mejor que
podamos en manos del jugador. Creo que algo
así se ve bien. Creo que lo voy a mover
un poco hacia arriba, así como así. Bien, ahora sostiene
el arma y la está
disparando hacia adelante. Siempre podemos intentar previsualizarlo. Puedes intentar previsualizar con otras animaciones si así lo deseas. Por ejemplo, si busco pistola y tomo
el fuego de pistola, se
puede ver cómo se ve. Se ve bien. Ahora sigamos adelante
y guardemos todo. Ahora hay que copiarlos. Hagamos clic derecho y eliminemos
todos los activos adjuntos. También hay que copiarlos
al otro esqueleto. Entonces voy a
tomar este socket, voy a hacer click derecho aquí
y copiar socket seleccionado. O bien, puede dar click en el control C. Ir al otro esqueleto,
el doc. militar. Da click en la mano derecha
y controla V para pegarlo. Vayamos también al otro
esqueleto. Copia el rifle uno y haz clic en el control V para
pegarlo aquí también. Este también lo tiene. Ahora, tanto el
antiterrorista el terrorista deberían funcionar ahora. Bien, así que eso
fue todo para los enchufes. Pasemos a
la siguiente lección.
95. 8.10 Crea los sockets restantes: Ahora vamos a crear los zócalos
restantes. Entonces volvamos al esqueleto para el personaje plateado. Quiero agregar el
rifle a la parte posterior del personaje si el personaje ya
está sujetando la pistola. Por lo que no queremos agregar
la pistola a la mano
del personaje ya está
sosteniendo un arma. Vamos. Digamos por ejemplo
la animación de pistola. Sólo tienes que seleccionar uno de ellos.
Solo seleccionemos esta. Una vez más ociosa. Voy a hacer
una pausa en el primer fotograma. Voy a agregar una toma aquí
en la parte de atrás para el rifle. Voy a agregar el rifle en
la parte posterior si no lo
están sujetando. Yo solo voy a hacerlo, si
no estás seguro de qué hueso usar, siempre
puedes hacer click
en Character Bones y luego mostrar toda la jerarquía. Y luego puedes intentar elegir el mejor hueso que puedas ver aquí en el
jugador que le quede bien. Por ejemplo, puedes
elegir el lomo dos o puedes elegir
el lomo tres. Creo que voy a elegir
la columna tres. Se puede elegir el lomo
tres. Haga clic derecho. Agrega una toma. Voy a
llamar a esto es arma. El arma va a
estar aquí en la parte de atrás. Hagamos clic derecho de nuevo, agreguemos
una malla de vista previa y vamos agregar
simplemente las K se llaman KA 47. En realidad vamos a seleccionar éste. Simplemente rotemos esta arma. Voy a sostener o seleccionar esta herramienta de chasquido y
voy a rotar 90 grados. De esta manera voy a moverlo hacia afuera y solo tratar de
colocar el arma como quieras Realmente no hay una respuesta
para lo que es correcto o no. Sea cual sea el juego que
intentes hacer, trata de hacerlo a tu
manera, a tu estilo. Siempre puedes arrastrarlo a la parte posterior del
personaje si lo deseas. Siempre puedes inclinarlo
así para que se vea mejor y simplemente colocarlo en la parte posterior del personaje
lo mejor que puedas. Y tal vez algo así. Creo que eso se ve bien. Puedo moverlo un poco hacia arriba. Creo que esto se ve
bien si solo tocas una animación para
asegurarte de que todo
esté bien y que todo
esté chasqueando Si solo haces
una animación de carrera, por ejemplo, frontal derecha, desarmada, puedes salir
y reproducir la animación Y puedo dar click en los huesos del
personaje. Y seleccionarlo solo para quitar todos los huesos para que pueda ver cómo se ve realmente. Y así se ve. Bien, Todo se
ve correcto. El arma también se mueve
con el cuerpo. También puedo seleccionar
Quitar adjunto. Y puedo seleccionar el AR Four solo para ver cómo
se verá si en su lugar están sosteniendo eso. Bien, todo
se ve bien. Sí, eso está apegado
al jugador. Ahora podemos hacer clic derecho
y eliminar todos los adjuntos. Lo segundo que quiero
agregar ahora
volvamos al ídolo y
seleccionemos uno de ellos. Por ejemplo, el ídolo de pistola que voy a postular
en el frontal Lo que quiero hacer es agregar la pistola al costado
del personaje cuando están sujetando el rifle. Este era para el rifle, el otro aquí
es para la pistola. Pero esta otra vez, puedes dar click sobre
los huesos del personaje toda la jerarquía y puedes
seleccionar aquí un hueso que encaje. Por ejemplo, éste.
Este es el muslo. Vamos a crearlo aquí, el muslo, clic derecho, agregar un socket y llamar a
éste es arma así como así. Adelante y
haz clic derecho en éste. Adjunte un activo de vista previa
y seleccione la pistola. Esta igual que antes, voy a agregar la herramienta de ajuste y la
voy a rotar de esta manera Por ejemplo, permítame
que lo haga avanzar también. La pistola cuando de
manera realista la coloca aquí, va a estar realmente en el lado opuesto,
algo así En cambio, voy a
rotarlo si lo deseas, puedes rotarlo de alguna manera e intentar colocarlo lo
mejor que puedas. Ahora de manera realista, si fuera un jugador
diseñado para este juego, no colocaría este aquí Así que en realidad podríamos
colocar la pistola aquí. Pero podemos intentar colocarla
debajo de esta bolsa lo mejor que podamos e intentar
moverla un poco hacia afuera. También podemos moverlo o
rotar esta dirección e intentar colocarlo lo mejor que puedas en el muslo
del personaje. Creo que esto se ve bien. Ahora bien, si solo
guardas todo y vamos a intentar que vuelva a tener
la animación de ejecución. Seleccione uno de ellos, por
ejemplo, correr pistola delantera. Y si solo lo tocas ahora, lo
puedes ver aquí. Ahora personaje,
voy a seleccionar huesos. Seleccione sólo para que pueda
quitar los huesos. Y aquí está la pistola
cuando corres con ella. Bien. Eso está pegado
al muslo. Ya podemos detener esta animación. Y puedo hacer clic derecho u
otra pistola, la del muslo. Si lo encuentro aquí, éste de aquí abajo,
puedo dar click derecho. Eliminar todos los activos adjuntos. Y recuerda copiar esto
también para el otro esqueleto. Si solo hago doble clic aquí y abro
el doc del personaje, también
abro el esqueleto. Vamos a copiar la toma del muslo. Y voy a encontrar
el muslo aquí mismo. Si puedo encontrarla. Este
controla V para pegarlo. Voy a regresar
y voy a encontrar el zócalo trasero Por
aquí hay arma atrás. Voy a copiar esta. Y para el lomo tres otra vez, voy a
pegarlo y va a ser correcto
para éste también. Vamos a guardar todo y pasemos a
la siguiente lección.
96. 8.11 Adjunta un arma a la mano: Ahora que hemos
creado estos zócalos, podemos seguir adelante y sujetar
el arma a la mano. Volvamos a
la base de jugadores. En la base de jugadores
anteriormente, si recuerdas, ya
hicimos la lógica del arma de
botín aquí De hecho ya podemos hacer que el jugador
equipe el arma. Lo que podemos hacer es que necesitamos usar algo llamado adjuntar si solo
buscas adjuntar, así puedes usar uno de
esos, por ejemplo, adjuntar a actor, o actor
a componente y así sucesivamente. Así que solo puedes seleccionar uno
de ellos para ver de qué se trata. Básicamente estás aquí para
esto, por ejemplo, estás adjuntando a un
actor a un componente. Por ejemplo, estás uniendo
el actor de arma
al componente de malla donde
seleccionas a qué socket
quieres agregarlo. Por ejemplo, la pistola. Y luego puedes
chasquearlo hasta ahí y puedes
sujetarlo a la mano. Ahora en lugar de hacer esto, recuerda que estamos dentro
de un juego multijugador. Esto no es un solo jugador. Si esto fuera un jugador, podríamos
hacerlo aquí arriba sin todo este servidor y así
sucesivamente, y funcionaría. Sin embargo, como estamos
en un juego multijugador, necesitamos replicar información del
servidor al cliente Para cambios visuales como este, hay
que usar algo
llamado rep notify. Y aún no lo hemos usado
antes. Si solo haces clic derecho sobre esta arma y la
promocionas a una variable, y yo sólo voy a
llamarla arma saqueada Ahora cuatro variables. Ahora primero recopilemos
o conectemos éste. Déjame hacer doble clic, en realidad
ya tenemos un nodo de
ruta trasero por aquí, así que lo voy a
arrastrar aquí abajo. Haga doble clic en éste. Ahora tenemos esta variable. Y si haces clic en él ahora, en lugar de
configurarlo para replicarlo, tienes algo
llamado rep notify Y donde rep notify
es si tienes algún cambio visual en tu juego que necesita ser
enviado a todos los clientes, necesitas usar una réplica de
notificación de representante Sólo se utiliza para
información como números que van a
ser enviados al cliente. Anteriormente tenemos esta llamada
arma equipada, por ejemplo. Éste lo dijimos replicó. Porque el cliente necesita
saber si esta
información variable, qué se establece, si está configurado pistola o rifle desarmado No obstante, para esta
voy a hacer un cambio visual. No es solo número e
información como texto. Tengo que actualizar el arma. Por lo que se le
pegan las manos del jugador, en realidad
es una actualización visual. Esta arma va
a teletransportarse a las manos del jugador y
se va a quedar ahí Entonces tengo un cambio visual
que tengo que hacer, y aquí es donde
selecciona un representante notificar. Ahora si recuerdas,
también usamos una multidifusión. Entonces, si vuelvo
a los pasos, usamos este
llamado multidifusión Multicast también envía información
a todos los clientes. ¿por qué estamos usando
algo llamado Sin embargo, ¿por qué estamos usando
algo llamado
una notificación
de representante en lugar de
una multidifusión?, se usa una notificación de representante
para si tiene cambios
visuales que deben mostrarse
a todos
los jugadores, incluso aquellos que aún no están
conectados al servidor. Digamos que alguien
se conecta al servidor, como yo voy aquí y
saqueo el 44 o 41 Alguien se conecta a mi
servidor 2 minutos después. Si hago este código
dentro de una multidifusión, el reproductor conectado no
podrá
ver que estoy sosteniendo este 44 La multidifusión sólo es utilizable
para cosas temporales. Por ejemplo, pasos
aquí y ahora. O si juego algunos efectos visuales de
fuegos artificiales que desaparecerán
después de 2 segundos. Los jugadores conectados no, el jugador que se está
conectando en este
momento realmente no necesita
saber de esto. Porque probablemente ya
desapareció en el nivel. Por ejemplo, el
efecto visual para un rep, se utiliza para
cambios visuales que también necesita ser visto por
alguien que se va a
conectar a tu juego. de 2 minutos, quiero ver jugadores que
se conectan a mi juego. Quiero que vean que ahora
estoy sosteniendo el 41. Vamos por aquí. Y vamos a darle un click sobre él. Y
hagamos clic en Rep, Notify. Adelante y compilar.
Y puedes verlo ya creado como
una función para ti. Esto se va a llamar, así que vas a
saquear el arma Y éste se va a fijar. Siempre que esto se va a
establecer y cambiar de valor, va a
ejecutar automáticamente esta función. Así que ahora podemos escribir el código
dentro de esta función. Y lo que sea que escribamos
dentro de aquí, esto será notificado
a todos los clientes. Bien, entonces primero antes
de adjuntar algo, quiero tomar esta
arma saqueada que acabamos de saquear y golpeemos aquí y busquemos la malla
del arma Entonces si voy al fondo
y selecciono arma. Recuerda, esta arma de aquí. Si vuelvo a las armas
y selecciono la base del arma, esta es la malla del
esqueleto del arma. Voy a seleccionar la malla
esqueleto porque
recuerden que estamos
simulando la física Realmente no necesitamos
simular la física. Siempre que esta arma aquí
esté en manos del jugador, necesitamos eliminar la física. Lo que tengo que hacer es
primero tengo que arrastrar desde aquí y decir set
simular física. Sigamos adelante y conectémoslo. Pongámoslo para que sea falso. Realmente no necesitamos
simular la física cuando está en
manos del jugador. Lo siguiente es que también
necesito quitar colisión, porque cuando está en manos
del jugador, realmente no
necesitamos chocar con nada De nuevo, arrastra de
esta arma y di Set Collision y
selecciona esta. Configura la opción Collision habilitada y déjanos conectarla
sin colisiones. Ahora el arma no
tiene ninguna colisión. Realmente no lo necesitamos cuando el jugador
lo tiene en las manos. Ahora recuerda en la base de armas también
tienes la esfera aquí. También es necesario eliminar la
colisión de esto. De lo contrario, otros jugadores pueden entrar en
ti cuando tienes el arma y pueden saquear el arma de tu mano Ahora puedes tenerlo como
característica en el juego, pero para este,
vamos a eliminarlo. Tomemos de nuevo el arma
saqueada. Y voy a
arrastrar desde aquí y buscar mi esfera de colisión. Y está en la parte inferior aquí. Y en realidad se llama
colisión acaba de llamarse esfera. Y voy a renombrarlo
en realidad a polígonosfera, solo para que sea más obvio Esfera de colisión.
Adelante y compilar. Volvamos aquí y busquemos ahora la esfera
de la polísura. Y déjame ir al
fondo y seleccionarlo aquí. Bien, igual que antes, arrástralo aquí y di set collision habilitado este de aquí y déjanos
configurarlo a ninguna colisión. Ahora cuando otros jugadores están entrando en esta esfera de
colisión, no
están interactuando
con
ella porque ahora no tiene
ninguna colisión aquí. Voy a recordar
hacer esto falso porque no necesitamos
simular ninguna física.
Las colisiones de arma y las colisiones para la
esfera de colisión también Ahora cuando usamos la función
attach the, en realidad
necesitamos
hacer algo antes. Porque cuando estaba haciendo esto
antes, había un bicho. Estaba jugando aquí. Y le
pegué el arma a la mano. Siempre que entraba en estas
armas por alguna razón, aunque
las pegué a mi mano, seguían estando en el suelo
y no entendía. La razón está aquí para
la simulación de la física. Se puede ver aquí en
la parte inferior dice, Tenga en cuenta que si este componente está actualmente unido
a algo, iniciar la simulación lo
separará Esto significa que cuando
simule la física aquí, en realidad separará esta arma de la raíz de escena
predeterminada Ahora mismo, es como si
estos dos no están apegados, esto es separado de éste. En realidad tengo que
volver a unir el arma a la raíz de escena predeterminada.
Hagamos eso en realidad. Tomemos el arma
saqueada si
arrastro desde aquí y
busco la raíz de escena predeterminada, el mismo nombre aquí en la
parte inferior, y la seleccionamos Ahora lo que quiero
usar es que quiero
adjuntar un componente
a un componente. Recuerda, estos son componentes
si arrastra desde aquí y Seach y puedes seleccionar este componente adjunto al componente que estoy tratando de adjuntar realidad no esta. Estoy tratando colocar el arma aquí. El fi acaba de trapar y buscar arma e ir al fondo
otra vez, seleccionar la variable Estoy tratando de adjuntar el arma a la ruta de escena
predeterminada. Se ve así otra vez. Sigamos adelante y lo conectemos. Ahora tenemos que
seleccionar el socket. El zócalo,
realmente no tenemos nada. Solo estamos conectando el arma con la ruta de escena predeterminada. Este está bien para
la regla de ubicación. Todos estos deben
ser chasquidos al blanco. Se le encaja así así, y ahora es broches correctos Sigamos adelante y
compilemos. Y ahora todo debería estar
funcionando correctamente. Ahora si tratamos de adjuntar el arma a la
mano del jugador, así podremos arrastrar desde aquí. Ahora para el adjunto,
estamos tratando de
adjuntar a un actor,
esta base de armas. Estoy tratando de adjuntar a un actor a esta malla de aquí,
que es un componente. Tenemos que adjuntar un
actor a un componente. Si me arrastre de aquí y digo adjuntar y se puede
buscar de actor a componente, estoy tratando de adjuntar al actor arma
saqueada Si acabo de copiar pegado aquí
a la malla de aquí, que es un componente, el zócalo al que estamos
tratando de agregarlo ahora mismo es
digamos por ejemplo lo
llamamos rifle.
Probemos primero por el rifle, y siempre podremos hacer
la pistola después. De nuevo, chasquear al blanco
para todos esos. Sigamos adelante y compilemos
y guardemos todo. Veamos cómo funciona
si hago clic en Compilar ahora o Reproducir ahora y
selecciono al terrorista. Ahora bien, si entro en el rifle, se
puede ver que en
realidad está en mis manos. Se puede ver aquí
en la sombra. En realidad está en mis manos. Ahora la razón por la que no
estoy sosteniendo la animación del rifle es
porque también necesitamos actualizar el equipo,
el arma equipada. Recuerden, si vuelvo
al plano de animación, ya
es algún tiempo que lo hicimos Si voy al jugador, animaciones y plano de
animación Recuerda que aquí estamos cambiando estas animaciones
dependiendo de lo que sea esta enumeración de
armas equipadas Este viene del arma equipada con el
jugador. Necesitamos cambiar esta para que las
animaciones
cambien. Lo que tenemos que hacer aquí
es hacerlo rápidamente. Si volvemos a la gráfica de la camioneta, puedo hacer clic derecho y
hacer un nuevo evento personalizado. Puedo llamar a esto un
conjunto arma equipada. De nuevo, voy a copiar
este nombre click derecho, hacer un nuevo evento personalizado, ejecutarlo a través del servidor. Este se ejecuta en servidor confiable. Voy a ejecutar el servidor uno a través de esta
arma normal de conjunto de eventos . Ahora para esta, lo único que está haciendo
es poner aquí esta arma
equipada. Si lo acabas de conectar
así. Y si lo conectamos
así, nuevamente, lo único que
está haciendo este evento es que está configurando esta variable aquí a lo que
queramos establecerla, y vamos a
usar esta más tarde. Compilemos ahora.
Recuerda, solo puedes establecer variables y
replicarlas cuando se están ejecutando
a través del servidor No puedes usar esta de aquí arriba. Tienes que ejecutarlo a través
del servidor antes de
poder configurarlo y
replicarlo a todos los clientes Bien, ahora esto está hecho. Vamos a hacer doble clic
en esta variable. De nuevo, puedes abrir la función aquí o simplemente
puedes hacer doble clic aquí y te
hará entrar hasta aquí. Ahora recuerda que necesitamos configurar el arma equipada para que
la animación se actualice. Si arrastras desde
aquí y buscas el conjunto equipado
arma que acabamos de hacer, entonces tenemos que seleccionar a qué es lo
que queremos configurarlo. Lo que queremos fijarlo es lo que sea que hayas saqueado Recuerda en el arma que
hiciste, este tipo de arma. Si tomas esta arma saqueada arrastras desde aquí y
buscas el tipo de arma Ahora ya sabes si es un rifle
o una pistola por ejemplo, y sabe qué
animación usar. Si lo conectas aquí, compile. Vamos a hacer clic en
play. Si seleccionas al terrorista, solo así
engendramos junto a él. Y si entro en
este AK por ejemplo, ahora
va a cambiar la animación a
la correcta. Ahora bien, si abro
el cliente también, solo para asegurarme de que
todo esté funcionando. Si juego como servidor aquí, y voy a minimizar esto, y también estoy jugando como
cliente. Entonces abro el
antiterrorista para éste, y estoy abriendo al
terrorista para éste. Voy a caminar con el antiterrorista y sólo para ver si todo
está funcionando correctamente. Si trabajo en este cuatro, puede ver que lo he saqueado. Si me acerco al jugador, no
está interactuando con mi esfera de colisión porque he puesto en ninguna colisión. Y ahora para el otro, si entro en este AK, puede ver que también es
saqueado Creo que voy a reducir el tamaño AK. A lo mejor el arma
se ve muy grande. Se puede ver ahora solo es saquear el rifle porque ahora si
entro en la pistola, también
lo va a poner en
el zócalo para el rifle Y así se ve raro. Y tenemos que
cambiar esto más tarde. Entonces hagámoslo en
la siguiente lección. Por ahora, en realidad
lo adjuntamos y podemos hacer esto
un poco más complejo. Por lo que también está trabajando
para la pistola.
97. 8.12 Adjunta armas a la espalda: Bien, así que hagamos que
este código sea un poco más complejo en lugar de simplemente
adjuntarlo directamente. Ahora tengo que preguntar si el jugador ya está
sosteniendo un arma o no. Si el jugador ya está
sosteniendo un arma, quiero adjuntar esta
arma a la parte posterior
del personaje porque
ya está sosteniendo un arma, así que no queremos
atarla a la mano. Lo que quiero hacer es tomar esta arma equipada y arrastrar de aquí y
decir, ¿es igual, igual a un arte? Ahora mismo, ¿no tienes armas? Si ese es el caso, como
si no estuvieras sosteniendo ninguna arma, en realidad
quiero adjuntarla
a la mano del jugador. Lo que puedo hacer es
conectarlo aquí, aquí. En lugar de simplemente sujetarlo a la toma del rifle,
tal vez sea una pistola. Lo que puedo hacer es que
puedo arrastrar desde aquí y decir seleccionar éste. hemos usado este antes, pero ahora podemos ver
otro ejemplo de ello. Ahora tenemos que seleccionar dependiendo de cuál sea
el tipo de arma. Si es una pistola, va
a usar la pistola de toma. Si es un rifle,
va a usar rifle de toma. Voy a copiar de
nuevo
este tipo de arma y la voy
a conectar aquí. O si el tipo de arma
es igual a desarmado, realmente no
necesitamos
hacer nada Si es pistola, quiero
fijarla a pistola. Eso es lo que llamamos el socket. Si es un rifle, queremos
fijarlo al rifle. Ahora sabe qué socket usar, dependiendo de cuál
sea
el tipo de arma y todo lo
demás es correcto. Ahora vamos a
moverlo por aquí. No obstante, si no estás desarmado, significa que ya tienes
un arma en la mano Copiemos todo esto otra vez y ahora, en vez de depender ahora de cuál sea el tipo de arma, yo tampoco, si es una pistola, voy a agregarla
al muslo de arma. Recuerda que así es lo que
llamamos el zócalo para el arma del muslo. Si es un rifle ahora se lo va a poner
a esos también. Esto va a
estar conectado aquí. Si es falso, sólo
voy a acercar todo
esto. Ahora está más organizado y podemos salir y compilar
y guardar todo. Solo queremos colocar
el arma equipada siempre que
no tengamos nada en la mano. Porque si tenemos
algo en la mano, solo
queremos
agregar el arma
al dorso del personaje.
Vamos a guardar todo y vamos a hacer clic en play. Y si selecciono Terrorista
aquí, y camino
hasta aquí, permítanme realmente abrir permítanme realmente abrir éste para que
podamos ver si está funcionando para este personaje si
solo maximizo esto un poco. Entonces puedes ver si ahora
entro en el rifle, puedes ver que
lo sostengo en mi mano. Si entro en la
pistola ahora mismo, realidad se
puede
ver que la pistola ha caído por el suelo. De hecho quiero arreglar esto. Y creo que es
esta malla de aquí. Es muy delgada, así que está
cayendo por el suelo. De hecho, arreglemos eso. Déjame llevarme la
caja aquí, si voy, déjame recordar
dónde la guardé, la
carpeta super grid, el paquete stata, y las mallas. Y usemos la caja de súper cuadrícula para el
suelo en lugar del avión. Voy a tomar esta caja. De hecho voy a cortarlo a 100 aquí para el movimiento. Primero voy a poner esta
caja a algo así como aquí. Y volvamos a moverlo
al suelo. Y lo voy a hacer retroceder igual que donde está
este terreno, sólo
voy a
moverlo así, creo. Y aquí. Bien, ahora está en el suelo. Ahora voy a
escalarlo
igual que la báscula para el suelo. Sólo voy a intentar
lo mejor que pueda. Déjame en realidad solo
escalarlo primero. Déjame escalarlo aquí al 1010 para la Z. realmente no lo necesitamos.
Déjame simplemente dar click sobre este candado. Y déjame escribir uno aquí. Voy a hacer click
en el suelo, en realidad está más
abajo así aquí. Y voy a quebrarlo por aquí y por
el otro lado. Bien, ahora brota
en el suelo. Y voy a hacer
click en el suelo. Voy a mantener turno y clic
derecho para copiar esto. 80, 81. Voy a dar
click en mi casilla aquí. Voy a mantener la tecla shift y click
izquierdo para pegarlo. Y ahora debería ser correcto. Ahora si voy al
otro lado solo para comprobar si cubre el suelo
y lo hace, bien. Ahora lo que voy a hacer es que voy a seleccionar el avión. Simplemente hago clic un par
de veces aquí. Se va a seleccionar
el plano de súper rejilla. Voy a borrar,
y voy a copiar este material
para que vuelva
a guardarlo. Desplazar a la derecha, haga clic en la oreja, haga clic a la izquierda para
pegar este suelo aquí. Y se ve igual que antes. Bien, vamos a guardar todo. Y ahora si hacemos clic en Play, no debería caer
por el suelo. El suelo estaba bastante
delgado y tengo sospecha de que es blanco está
cayendo por el suelo. Permítame nuevamente
maximizar esto un poco. Ahora si juego como este jugador, y diluyo una M cuatro
y diluyo un arma, debería agregarla al muslo. Se puede ver del
lado de mi personaje, ahora
puedo ver el arma. Impresionante. Ahora para esta K, puedo saquear tan bien
como el otro jugador Ahora mismo ha desaparecido. Se puede ver que el cliente
no puede verlo en el servidor. Se puede ver que se ve
correcto porque recuerda, el servidor tiene la autoridad
y puede hacer cualquier cosa. No obstante, para el jugador,
está en la parte posterior. Como se puede ver aquí
en la sombra, hay algunos, un problema de
replicación, algún valor que
no va por encima. Lo único que se me ocurre esta arma equipada desarmada, porque ésta
elige si pone el arma en el
dorso o en la mano La forma en que solucionas este
problema donde no
puedes ver el arma
cuando la saqueas es De hecho, hagamos
esto de otra manera, el arma equipada con set. La razón es que
no es realmente saber este valor porque a veces
cuando juego como cliente, pone esta arma en la
parte posterior del personaje. Se puede ver aquí, en lugar
de saquearlo a la mano. La razón por la que lo vuelve a poner en la parte posterior del personaje
es un problema de replicación. Por alguna razón
esta equipada nosotros, esta es la que controla deberíamos estar en tu mano o el arma debería
estar en tu espalda. Por alguna razón es ver que este valor de
arma equipada no está armada como si ya tuvieras
un arma y pone en el dorso
del personaje en lugar
de en tu mano. Esto en realidad se
debe a que estamos ejecutando este a través de la notificación de representante. No hace falta que hagamos eso
porque va a desbaratar el juego. Voy a quitar
esto. Vayamos al gráfico de eventos en su lugar. Vamos a ejecutarlo aquí en el servidor. Porque tenemos que establecer
valores a través del servidor
en lugar de a través del representante, notificar, en lugar de simplemente
cambiarlo directamente. Recuerda, solo quieres
colocar el arma equipada siempre que estés
aquí en el desarmado Siempre que estés desarmado, quieres colocar el
arma equipada porque no quieres cambiarla cada vez que
pongas esa arma en la espalda En cambio, para ésta, tenemos que llevarnos el arma
equipada. Y nuevamente, tenemos que preguntar
si es igual a desarmado. Y déjeme simplemente alejar esto. Asegúrate de preguntar,
¿estás desarmado o no? Porque solo queremos ejecutar
este código si estás desarmado. Si estás desarmado, sí. Sigamos adelante y voy a poner un retraso en el código
antes de que realmente hagamos esto. Y la razón por la que hago esto es que estoy dando una oportunidad
para que este representante, notifique para que se quede sin este código. Recuerda que va a usar esta variable de arma equipada para verificar si estás
desarmado o no Y esto va a tener errores
Si instantáneamente pones esta arma equipada y
cambias este tipo de arma, nos aseguramos de
retrasarla un poco Asegúrate de que este
código se ejecute
antes de que realmente cambiemos el tipo de arma o el arma
equipada aquí. Este retraso tiene que
ser lo más bajo posible porque se verá
raro si estás
corriendo sin que se aplique la
animación. Pero probémoslo así antes de
que hagamos algo. Entonces déjenme dar click en jugar
aquí como el terrorista. Ahora puedo dar click
en play y puedo entrar en el arma y
ver si está funcionando. Ahora puedes ver que está funcionando. Tengo que hacerlo un par de veces solo para asegurarme de
que realmente está funcionando, y ahora se puede ver que no se
está molestando. Creo que esto solucionó el problema. No obstante, en el futuro, si todavía tenemos un
problema con esto, trataremos de solucionarlo. Pero creo que en realidad
ya está arreglado y no tenemos
ningún problema con ello. Bien. Ahora intentemos
reducir este número, 0.05 algo muy bajo. Y podemos intentar jugar
y tratar de reducirlo, pero aún así va a funcionar. Ahora se puede ver que
sigue funcionando. Si lo reduce demasiado, entra en el
riesgo de
que el código en el representante notifique no
poder llegar en este punto. Antes de que realmente hagas esto, asegúrate de que sea lento
pero no demasiado bajo. Te encontrarás con problemas, pero como puedes ver aquí,
todo está funcionando. Y solo asegúrate de comentar este retraso porque si vuelves
tres meses después, no
tienes idea de
por qué hiciste esto. Asegúrate de mantener presionado, haz clic en C en tu
teclado para agregar un comentario. Por ejemplo, puedes
para este comentario, asegurarte de que el
arma esté adherida a la mano antes de cambiar
el estado equipado del jugador. Así como así.
Incluso puedes escribir que estás esperando que
el representante notificado se aplique. Adelante, compilar
y guardar todo. Y eso debería funcionar
si haces clic en play. Ahora si
entras en la pistola ahora,
puedes ver que está cambiando. Si entras en este
te está poniendo en la espalda y puedo ver que
todo está funcionando ahora mismo. Otro dólar que tenemos, el último ojalá,
es cuando colocas dos armas una encima de la otra, va a estar un
poco confusa porque estás superponiendo dos esferas y no sé cuál
saquear y va a fallar si
te quejes ahora Y aquí está el cliente.
Entro en los dos, trato de encontrarme con
los dos así. Se puede ver que en realidad está
sujetando la pistola y los cuatro al mismo tiempo
y está un poco confuso. Tenemos
que arreglar ese dólar también. Hagámoslo
en la siguiente lección.
98. 8.13 Superposición de dos armas a la vez: El problema que estamos
enfrentando ahora mismo es que si me meto en
dos armas a la vez, se va a
desfilar porque ahora se ve que sostengo la pistola y el
rifle al mismo tiempo. Entonces este es un error
que tenemos en
estos momentos y tenemos que arreglarlo de alguna manera. Tenemos que verificar ambos solapamientos de armas
y no solo uno Porque ahora mismo
solo estamos comprobando si hay
una superposición de arma y no estamos comprobando
si hay dos armas que se superponen
al mismo tiempo. Para arreglar esto,
vayamos al jugador y abramos la
base de jugadores dentro de aquí. Ahora mismo tenemos
esta arma de botín. En lugar de solo
saquear el arma, necesito hacer una nueva matriz donde reúna todos los elementos de
superposición Y luego de esos actores
superpuestos seguirá adelante y saqueará las armas en lugar de
saquear directamente el Tomemos todo esto
y lo empujemos aquí abajo, y hagamos clic derecho y
hagamos un nuevo evento personalizado. Voy a llamar a este
evento un ítem solapado. Bien, con ese, de nuevo, voy a
ejecutarlo a través del servidor, servidor personalizado, y
agregar elemento solapado Y luego recuerda ejecutarlo en el servidor y confiable también. Y voy a ejecutar ese servidor uno aquí arriba en el evento normal, agregar ítem solapado, así
como así Lo que tenemos que hacer es
que voy a crear una nueva matriz llamada elementos
superpuestos Nuevamente, esta es una base de armas que en realidad no se solapan con elementos Probablemente sea más preciso
llamarlo armas superpuestas Y luego
haga clic derecho, o simplemente haga clic aquí y busque
la base de armas. Adelante y selecciónelo. Sigamos adelante y
seleccionemos esta matriz nuevamente. Ahora bien, en lugar de objeto superpuesto, probablemente sea mejor llamarlo un arma superpuesta que sea más precisa para que
no cambiemos nuestro estilo. Un arma solapada así como esa. Y adelante y
toma esta matriz. Lo que podemos hacer aquí, siempre que
superpongamos un objeto o un arma, podemos seguir adelante y agregar
esa arma a esta matriz. Ahora necesitamos saber qué arma
estamos superponiendo de nuevo. Adelante y agrega una variable, busca base de arma. Solo llama a esta arma y sigue adelante y
conéctalo aquí arriba también. Va a partir de aquí cada vez que nos
superponemos y luego la
información está aquí. Justo como antes,
lo que hicimos aquí. Sigue adelante y toma
esto y di set array element y conéctalo. Este es el ítem
que queremos agregar al índice. De nuevo, justo lo que te
dije antes. Usemos la longitud. Toma de esta búsqueda de longitud y automáticamente
encontrará el índice correcto. Lo agregará para seguir
adelante y organizar esto. Bien, lo que simplemente
estamos haciendo es en lugar de saquear instantáneamente
el arma desde el suelo, estamos agregando esa
arma superpuesta a esta matriz Y luego de esta matriz
podemos seguir adelante y
saquear las armas Nos aseguramos de que todas
las armas superpuestas sean
saqueadas desde aquí Cuando superponga un arma, recuerde volver a ejecutar esta arma de botín porque de
lo contrario no la ejecutará De hecho volvamos primero. Volvamos a la base de armas
en lugar de a la base de armas ahora, en lugar de aquí con
el código que escribimos, en lugar de saquear el arma instantáneamente cuando sepas que
puedes saquear el arma, sigue
adelante y agrégala a las armas
superpuestas Déjame quitar esto.
Busquemos aquí desde el jugador. Recuerda que este es el jugador de pines. Tomemos esto y
busquemos el arma solapada del anuncio. Adelante y agrégalo aquí. El arma es auto así
así y compilar ahora. va a agregar
esa arma superpuesta Aquí va a agregar
esa arma superpuesta
a la matriz primero. Sigamos adelante y
ejecutemos el arma del lote. Golpeemos desde
aquí y busquemos mucho arma. El arma aquí. En realidad, no
lo necesitamos porque recuerda ahora lo agregamos a esta matriz. En lugar de simplemente
tomarlo de aquí a aquí, ahora
podemos usar esta
matriz aquí abajo. En realidad no necesitamos este pin. Si haces clic en este
pin, quítalo. También da click aquí arriba y
retírela, así como así. Y para que este lo elimine,
mantenga pulsada la tecla Alt y haga clic en
ella y se eliminará,
o bien puede dar mantenga pulsada la tecla Alt y haga clic en
ella y se eliminará, click aquí arriba
y refrescar todos los nodos que también
eliminarán
estos pines de la era roja. Ahora estás saqueando el arma. Va a pasar por aquí. Ahora, antes de agregarlo directamente, primero
revisemos algo. Tomemos estas armas
superpuestas Primero, preguntemos si esto
está vacío o no Porque si está vacío, no
queremos saquear. Golpeemos desde aquí
y digamos que está vacío. Digamos que no está vacío. Si no está vacío,
vamos a O. Podemos arrastrar de aquí. Y escribir una sucursal y
salir y conectar. Ahora si no está vacío,
vamos a saquear. Bien, cual es el
arma que estamos saqueando, podemos arrastrar de aquí y
decir consigue y toma esta Simplemente estamos
obteniendo el primer elemento que está dentro de la matriz de armas
superpuestas, Obteniendo solo el uno
en el índice, cero. Entonces la primera arma
que está dentro de aquí, vamos a conectarla con
el arma solapada. Ahora estamos agregando esta
arma al inventario. Entonces va a ir aquí, agregarlo al inventario, va a colocarlo
en el arma de botín Vamos a comprobar
si estamos desarmados, si lo estamos, vamos a
poner el arma equipada Ahora recuerda quitar el arma
solapada, la que estás agregando ahora mismo. Recuerda
quitarlo de la matriz, lo
contrario se quedará aquí para siempre. Tienes que tomar esta matriz ahora. Entonces después de hacer esto, tal vez podamos tomar
las armas superpuestas. Podemos decir quitar artículo y
seguir adelante y conectarlo. Entonces recuerda llevarte
este que acabas de agregar. Puedes seguir adelante y
conectarlo aquí arriba en su lugar. Nuevamente, haga doble clic para hacer un nodo de ruta posterior y simplemente convertirlo en otro nivel
con los demás. Ahora estamos recordando
quitarlo de la matriz. Se quedará aquí para siempre y tendrás
caja en tu juego. Bien, entonces ahora estamos quitando ese elemento de superposición de la matriz porque ahora lo agregamos
al inventario y todo está terminado, así que lo eliminamos. Ahora recuerda esta función aquí, este evento aquí, solo se ejecuta una vez,
siempre que te superpongas. Está ejecutando el
evento de armas del lote como puedes ver aquí. Cuando terminemos,
detenemos el código. ¿Y si en realidad tienes diez armas en las armas
superpuestas Necesitas seguir corriendo esta arma de lote
hasta que esté vacía. Y cuando está vacío no
va a hacer nada. Tienes que seguir
ejecutando este evento para verificar si tienes
más artículos superpuestos Porque sigue comprobando si está vacío o no para ejecutarlo. De nuevo, aquí arriba,
hagamos un nuevo evento. Y voy a llamarlo, vamos a atacar desde
aquí, un evento personalizado. Llamemos a esto, a verificar si hay
armas superpuestas. Va a verificar si hay más armas
superpuestas. Esta la podemos tomar
y correr aquí abajo. Verifique si hay armas superpuestas. Cuando terminemos de
agregar el arma, estamos tomando esta comprobación por armas
superpuestas y la
estamos ejecutando de nuevo Y entonces el código aquí se ejecutará de nuevo y comprobará si
este está vacío o no. Si no está vacía,
va de nuevo a llevarse
esa nueva arma. Sigue agregándolos al
inventario como podamos. No obstante, si está vacío, vamos a hacer nada. Bien, un problema
que tenemos ahora mismo es ¿y si el jugador se solapa
con múltiples armas Porque cada vez que choques con un arma
y la puedas saquear, se va a sumar a
esta arma solapada Y
en realidad va a ejecutar esto nuevo a pesar de que
estamos en medio
del código y esto molestará el juego cada vez que te
superpongas con algo. Esto ejecutará
todo y en realidad también
activará todo esto. En cambio, pongamos a
algunos una barrera. Esto sólo se ejecuta una vez. Y lo que puedes hacer es arrastrar
desde aquí y decir hacer una vez. Este nodo se asegura de que
esto solo se ejecute una vez, pesar de que me superponga
con múltiples armas. Aquí no va a
repetir este código. En realidad va
a repetir este código, se va a sumar a esto. Pero esta parte del código
no se va a repetir. En realidad lo va
a hacer una sola vez. Y podemos controlar cuándo
debería volver a hacerlo. Solo queremos hacer esto una vez, aunque nos superpongamos con
tal vez como 100 armas. Solo hacemos esto una vez
porque recuerden que estamos haciendo como un bucle infinito hasta que esto
ya no esté vacío y detenemos el código. Realmente no necesitamos
amarla desde aquí también. Bien, hazlo una vez. ¿Cuándo podemos restablecer esto? El reset significa que solo
voy a hacer este código una vez. Me dices cuándo puedo restablecer, así puedo volver a ejecutar este código. El reinicio, vamos
a arrastrar desde aquí y hacer
un nuevo evento personalizado. Vamos a llamarlo puede
mucho arma otra vez. Puedo saquear el arma de nuevo
cada vez que deje de
saquear por aquí Cuando esta está vacía,
el arma solapada. Siempre que esto esté vacío, podemos arrastrar desde aquí y
decir que puede volver a saquear arma. Podemos volver a ejecutar este código
porque se ha detenido. Y voy a arrastrar un poco de aquí y hacer algo de espacio
y organizar esto. Bien, entonces ahora esto
está más organizado. Entonces entremos, compilemos, y recopilemos también
aquí, guardemos todo. Intentemos ahora hacer
click en play y ver qué pasa.
Seleccione Terrorista. De hecho, me dejo
copiar estas armas a todos estos
puntos puntuales para no tener que seguir corriendo
a ese lugar otra vez. Simplemente copiando un par de veces
y colocándolos alrededor. Selecciona terrorista
y vamos a entrar en él ahora no pasa nada. Probablemente ganamos un dólar aquí está,
superponiéndose, probablemente. Pero como puedes hacerlo es que
puedes arrastrar desde uno de ellos, por
ejemplo, este
servidor se superpone, y escribir cadena de impresión. Así es como depuras tu
código si tienes un error. No quiero quitar
esto del video porque quiero
mostrarte también como depurar. Conecta esta cadena de impresión
y haces clic en Reproducir. Siempre que imprime la cuerda, como puedes ver, en realidad está
imprimiendo la cuerda. Esto significa que esta parte
del código está funcionando. Aquí no hay nada malo.
Está pasando. Sí, creo que está aquí. Olvidé hacer
esta talla para que quepa. A lo mejor intentemos volver a
jugarlo y probarlo. Y ese era el problema. Yo no hice esta talla para que quepa. Y lo que eso significa
es porque para array, cuando los creas, en realidad
tienes que arrastrar
desde aquí y decir redimensionar Y entonces hay que decirle
al motor qué tamaño es esta matriz. Por ejemplo,
le voy a dar 20 ranuras. Ahora con estas 20 ranuras, ya
puedo agregar artículos. Tienes que hacer
esto, por ejemplo, en la obra Begin o
algo así. Sin embargo, con el tamaño a caber, le dice que
se puede crear automáticamente una nueva ranura. Eso está bien. No me importa
cuanto tiempo sea esta matriz. Que lo que estás haciendo aquí, tamaño para encajar era el problema. Ahora si tienes problemas, otra vez, arrastra desde aquí, escribe una cadena de impresión, mira si la cadena se imprime
en la pantalla. Si lo hace, probablemente haya
algo más mal. Nuevamente, recuerde, también puede
imprimir valores para ver si realmente se agrega a esta matriz de
armas superpuestas y así sucesivamente Pero por ahora, parece funcionar. Vamos a hacer clic en Reproducir. Si
quieres comprobarlo mejor, también
puedes hacer clic
en el resorte, hacerlo, por ejemplo, 600. Sólo para poder ver a mi personaje. Intentemos hacer mucho de nuevo. Ahora puedes ver que está en mi
arma o en mi mano y dorso. Solo voy a hacer esto un par de veces solo
para asegurarme de que todo esté funcionando correctamente
y parece que funciona. Entonces puedes ver que
arregla el problema, porque ahora mismo
sigue recorriendo todo esto Se asegura de que
pase por la
matriz de armas superpuestas antes de que se detenga y
podamos volver a saquear las armas Entonces es asegurarse de que
todo sea saqueado. Y como pueden
ver, aunque me superponga con múltiples
armas a la vez, está funcionando correctamente. El rifle está en mi mano y la pistola está a
un costado de mi pierna. ¿Verdad? Entonces ahora que hemos
terminado con esta lógica, adelante y guarda todo, y pasemos
a la siguiente.
99. 8.14 Crea la estructura de armas: Bien, con este juego, quiero mostrarte
todo lo que hacemos cuando desarrollamos un juego, aunque esté avanzado. En esta lección,
vamos a crear una estructura de
armas. Es mucho mejor que seguir creando variables
para las armas. Antes de que esto se vuelva demasiado grande, comencemos a
crear la estructura. Ahora puedo intentar mostrarte y entenderás
mucho en los planos Hagamos clic derecho y
hagamos una nueva carpeta. Llamemos a éste Estructuras.
Y haz click derecho otra vez, establece el color a
este color aquí, igual que antes
Dentro de esta carpeta. Hagamos clic derecho
y vayamos a Blueprint. Tenemos algo que
se llama una estructura. Da click en él y
voy a llamarlo ST como prefijo para estructura. Vamos a llamarlo información de armas. Esta estructura contiene
la información de las armas. Ahora cuando
abres una estructura, lo único que haces dentro
de aquí es agregar variables. Si agrega una variable, puede elegir cómo
debe llamarse esta variable. Puedes elegir el
tipo, igual que aquí en el blueprint donde
creas una nueva variable Lo mismo. Ahora dentro de
la estructura, puedes tener información de
armas todas juntas aquí. Puedes agregar múltiples
variables dentro de aquí y puedes tener toda la información del
arma dentro de aquí. Por ejemplo, qué tan rápido
puede disparar el arma, cuál es el nombre del arma, y todas estas
cosas que quieras. Por ejemplo, la miniatura del arma cuando la
agregas al inventario,
¿cuánto debería costar en la
tienda cuando compras el arma Puedes tener un valor de moneda
o un valor de $1 y así sucesivamente. Toda la información del
arma puede estar dentro de. Aquí puedes ver que puedes reunir todas las variables
dentro de una estructura. No tiene que hacer 100 variables dentro de este plano, en realidad
lo
están conteniendo dentro de la estructura Sigamos adelante y
comencemos a hacer uno. Voy a borrarlos a todos. Al primero de aquí
voy a llamar nombre. Necesito un nombre para mi arma. Y voy a cambiarlo al tipo
de cadena porque
string es solo algo de
un texto que podemos escribir. Ahora muy importante, la diferencia entre
una cadena y en un texto puede ser localizada o traducida a
diferentes idiomas. Por ejemplo, si quiero que mi juego
sea alemán o japonés, o chino, en el futuro
tengo que seleccionar texto. Por ejemplo, si quiero
traducir el nombre
del arma, si
eliges String, no
puedes
traducirla en el futuro. Asegúrate si quieres
un juego que pueda
traducirse porque
quieres traducirlo en el futuro. Adelante y selecciona texto. No obstante, voy a seleccionar nombres de armas de
cuerda
como un AK 47 o 44. A pesar de que lo cambie
a diferentes idiomas, realidad no
va a traducir. Es decir, ¿cómo se llama AK 47 en diferentes idiomas?
Es el mismo nombre. Por eso elijo una
cadena en lugar de un texto, aunque quiero traducir
mi juego en la futura cadena para el
nombre. Entonces recuerda que también agregamos este
tipo de arma. Este tipo de arma también podemos tener dentro de la
estructura. Yo solo puedo llamarlo tipo, puedes llamarlo
tipo de arma, eso está bien. Llámalo como quieras para que sea más visible
para ti por aquí. Cambiémoslo a tipo de arma. Recuerden, hicimos
ese tipo de
arma de enumeración por ejemplo También podemos agregar
uno nuevo y llamar a clase. Una clase es si buscas base de
armas y la tomas aquí, selecciona esta clase,
referencia Una clase es que puedes generar una nueva
arma a partir de esta A lo mejor lo necesitamos, quizá no. Siempre es agradable tener una clase para cualquier
juego que hagas, porque tal vez en el
futuro necesites
volver a engendrar esa arma al mundo Siempre es bueno tener
esta clase aquí. Ahora tenemos una estructura. Es pequeño, pero es bonito
y creamos uno más adelante. Se puede agregar, por ejemplo, velocidad de
disparo para esa arma. Y luego puedes
seleccionar un flotador por el número de qué
tan rápido puede disparar. Posteriormente se puede decir velocidad de
recarga y así sucesivamente. Para que veas puedes agregar mucha información
sobre esta arma. Tal vez quieras agregar como un valor de tienda o quieres agregar descripción
similar, o
quieres agregar una miniatura
para el inventario Se pueden agregar muchas cosas. Pero por ahora,
solo agreguemos estos. Y voy a añadir más a la estructura más adelante
cuando la necesitemos. Ahora que hemos
creado esta estructura, podemos pasar a
crear una tabla de datos. Te diré en la siguiente
lección qué es una tabla de datos, pero por ahora, increíble, creaste una estructura,
y sigamos adelante.
100. 8.15 Crea la tabla de datos de armas: En esta lección, vamos a crear una tabla de datos de armas. Para crear una tabla de datos, tienes que estar en Google
Drive o Google Sheets, o si tienes Excel
puedes usar eso también. Estoy usando Google Sheets. Adelante y crea una
cuenta de Google si no tienes una. Y luego dentro de aquí
estamos dando click aquí arriba
y yendo a mi unidad. Dentro de su unidad,
acabo de hacer una carpeta dentro de aquí para mantenerme
estructurada dentro de aquí. Cuando estés dentro de Google, puedes escribir, hacer clic, hacer una nueva hoja de Google. Da click aquí, y luego
va a hacer uno, y voy a llamar a este
de aquí arriba, tablas de datos. Voy a hacer un espacio
aquí, dentro de aquí. Sólo voy a
organizar esto un poco. Voy a hacer clic en Control
A para seleccionarlo todo. Voy a dar click
aquí arriba, Alinear su centro. Haz clic aquí arriba, Alinea su centro. Haga clic aquí arriba, seleccione
el envoltorio de texto. Entonces voy a cambiar
el teléfono a éste. Aquí arriba para esta fila, voy a dar click en esta negrita. Nuevamente, controla para seleccionarlo todo. Simplemente voy a hacer
todo más amplio así, y esto es solo preferencia. Bien, ahora estamos dentro
de las hojas de Google. Y lo que es una tabla de datos, es que podemos escribir todos esos valores desde una estructura
dentro de una tabla de datos. Entonces, las personas que no
pueden programar, en realidad pueden usar
esta tabla de datos y
pueden modificar información sobre
tu juego, por ejemplo. Empecemos por aquí y ya
puedes ver a lo que me refiero. Creamos esta estructura
aquí con la variable name. Lo que podemos hacer dentro de
esta tabla de datos para escribir, hay
que escribir
esas variables exactamente como lo que las
ha escrito. Dentro de una estructura. Para el nombre, podemos escribir nombre, y luego tenemos el tipo, y luego tenemos la clase. Esto es lo que tenemos dentro
de una estructura ahora mismo, recuerda escribirla exactamente como la escribiste aquí
dentro de la estructura. De lo contrario obtendrá caja, escríbala aquí para el
nombre del artículo. Por ejemplo, el primero
tenemos un AK 47 K 47. El siguiente tenemos uno si ves aquí en el arma de
planos, esto es lo que tienes Y entonces tienes una pistola. También se le puede dar un nombre. No obstante, mi pistola
se llama pistola. Realmente no tengo
nombre para ello. Ahora hay que escribir
el tipo de esta arma. Recuerda dentro de
la enumeración que hiciste este tipo de arma Dentro de la
estructura, también puedes ver qué tipo de
arma seleccionaste. Ahora para este tipo de arma, tienes que escribirla exactamente como los tipos de armas que
has escrito aquí. De lo contrario obtendrá caja
dentro de una tabla de datos. Tienes que escribir las cosas exactamente como lo que
hiciste dentro de aquí. Para el tipo de arma,
podemos tener un rifle. Este AK es un rifle, el cuatro es un fusil. La pistola es simplemente el
tipo de pistola así. Para la clase, tenemos que
hacer otra cosa. Vamos a crear la tabla de
datos primero porque esta no
puedo obtener una referencia a menos que realmente tenga la tabla de datos dentro
de los planos Hagamos una nueva carpeta. Llamemos a éste
Tablas de datos dentro de esta carpeta. Nuevamente, hagamos clic derecho en Establecer el Color dentro de esta carpeta. Hagamos clic derecho, creo
que está dentro de Michelaneo,
no plano Aquí está, la tabla de datos. Adelante y creado.
Ahora te dice, ¿a partir de
qué estructura
quieres crearlo? Quiero crearlo a
partir del arma Info. Adelante y haz clic. Bien.
Ahora vamos a llamarlo mesa DT, y de nuevo
llamarlo Información de Armas. Normalmente solo lo llamo
igual que la estructura. Sin embargo, DT para prefijo, porque esta es una tabla de datos. Si abro esta tabla de datos, se
puede ver que está
vacía ahora mismo. Si haces clic en
el plus, un puro, agregas una nueva entrada
para la tabla de datos. Se puede ver aquí,
se le puede dar un nombre. Por ejemplo, AK 47. Puedo convertirlo en un
rifle y la clase es este BPAK 47 que creamos Aquí puedes ver que
tenemos la información ahora en lugar de una tabla de datos, en realidad
podemos extraer esta información y
usarla en nuestro juego. Hagamos esto desde nuestra tabla de datos aquí
desde Google Sheet. Voy a dar click en esta, esta entrada que
creaste ahora mismo, y simplemente seleccionar una
de esas por azar. Por ejemplo, este PPK 47. Entonces puedes escribir, dar click ahora
en esta y decir copia, porque ahora estás
copiando esta referencia. Aquí puedes ver así
es como realmente
necesitamos escribirlo dentro
de tu hoja de Google. Ya hicimos esto. Escribimos el nombre aquí
correctamente, así. Escribimos el tipo como
este rifle, por ejemplo. Para la clase, hay
que escribirla
así también si solo controlo
V dentro de aquí. Recuerda escribir,
Pulsa por aquí, cópialo, controla
V. Dentro de aquí. Sólo voy a
hacer que se registre para poder ver realmente lo que estoy
haciendo.
Así como esto. Bien, aquí adentro, así
es como lo haces. Ahora copias este y lo
pegas a los otros. Recuerda, en lugar de
un AK 47, esto es 44. Entonces hay que escribirlo
exactamente como referencia. Estoy haciendo referencia a este PP
44. Puedo volver aquí. Estas son las
carpetas, planos, armas correctas. Y solo necesito
cambiar este 1141. La última es la
pistola llamada pistola BP. Yo escribo P
pistola pistola aquí también. Bien. Ahora tengo esa
información correctamente. Lo que tengo que hacer
ahora es hacer clic en el archivo para descargar y seleccionar CSV. Este es el formato que
necesitamos usar. Ahora si abro mi carpeta de
descargas por aquí, llamémosla T para tabla de datos. Voy a llamarlo con el
mismo nombre que dentro de aquí, así se puede importar. Recuerda llamar al mismo
nombre, ET Weapon Info. Ahora puedes pinchar y
arrastrarlo hasta aquí. Si haces clic y lo
arrastras hacia aquí, dice
Columna esperada Nombre no encontrado. No estoy seguro de cómo
lo llamo. Yo lo llamé de nombre. Esto se debe a que
en realidad necesitamos columna aquí. Necesitamos hacer clic derecho y agregar una columna a la
izquierda y llamarla ID. Por alguna razón
crea una identificación, necesitamos eso también. Lo que suelo hacer es simplemente copiar todos los nombres y
pegarlos dentro de aquí. En realidad va a extraer
información de la identificación. Y cuando extraes, por
ejemplo, este ID aquí, conoce el nombre, el tipo, esta clase, y así sucesivamente. Por lo que conoce toda
esta información. En realidad primero necesitas una identificación. Bien, así que intentemos ahora volver a
descargarlo como CSV. Volvamos a aquí. Voy a copiar este nombre. Voy a borrar el viejo. Y para el nuevo voy
a renombrarlo así. Y ahora puedo arrastrarlo hasta aquí. Ahora puedes ver que
funciona correctamente. Entonces necesitamos esa identificación. Ahora puedes ver cuando importo
mi tabla de datos, automáticamente rellena
toda la información. Entonces yo, hago clic en el primero, se
puede ver que tiene el AK 47 el rifle y está
configurado con el plano correcto Y el otro,
por ejemplo en cuatro un uno también
se puede ver la
información correcta está aquí también. que veas lo
realmente agradable que es para las personas que no pueden programar. De hecho, pueden
simplemente entrar aquí, cambiar el tipo de arma, o pueden cambiar el
nombre del arma. Y lo único que tienes que
hacer ahora es simplemente hacer clic en el archivo. Descarga esa carpeta o archivo y simplemente
arrástralo a tu juego. Y va a cambiar
todos los valores. Dentro de aquí, puedes imaginar que puedes tener un valor de
tienda y puedes tener monedas que cuestan por el arma si la compras
en la tienda. Y el diseñador del juego
puede venir aquí y editar todos esos valores
dentro de la hoja de Excel. Incluso puedes hacer fórmulas
dentro de aquí y calcular. Entonces puedes simplemente hacer clic en Descargar
y puedes simplemente
arrastrarlo aquí y cambiará todos los valores de las monedas
dentro de aquí. No tienes que hacerlo
dentro del motor. Realmente agradable usar una tabla de datos, especialmente para personas
que no pueden programar. Pueden entrar aquí y
cambiarlo de la tabla de datos, ahora lo tenemos dentro de aquí. Lo siguiente es que necesitamos
usar una biblioteca de funciones. Hagámoslo en
la siguiente lección.
101. 8.16 Usa la biblioteca de funciones: El paso final antes de que podamos usar esta tabla de datos es si
creamos una biblioteca de funciones. Una biblioteca de funciones
simplemente como el nombre dice una biblioteca y dentro
de ella hay funciones. Vamos a hacer clic derecho aquí de
nuevo, hacer una nueva carpeta. Déjame llamarlo bibliotecas. Y cambiemos el color
de la misma dentro de esta carpeta. Hagamos clic derecho en
Ir a Blueprints y utilicemos esta llamada biblioteca de funciones de
blueprint Se puede ver que ya hemos
usado un plano de vaca. Estamos usando la biblioteca de
planos. Se utilizó la interfaz de blueprint. La biblioteca de macros es
igual que la biblioteca de funciones. Hemos usado la enumeración y también hemos usado
la estructura Se puede ver que en realidad hemos pasado por la mayoría de estas clases de
planos Realmente agradable que
hayas pasado por todo esto y estés
obteniendo la experiencia. Vamos a crear una biblioteca de
funciones de blueprint. Y déjame llamarlo biblioteca de funciones
BP porque solo tengo
una en mi juego. Vamos a abrir esta biblioteca de
funciones dentro de una biblioteca de funciones. Puedes hacer funciones y
puedes hacerlas aquí. Lo bueno de
una biblioteca de funciones es que puedes usar las
funciones globalmente. Si hago una función aquí, vamos, déjame llamarla, por
ejemplo, aleatoria
si compilo. Ahora si voy a mi
plano de jugador por ejemplo. Y escribo click y digo al azar, así es como lo llamé. Puedes ver, ahora puedo ver funciones desde una biblioteca de
funciones. No importa
donde escriba esto. Si abro el
modo de juego y escribo, déjame salir de
éste, en realidad, déjame llegar al
gráfico de eventos y decir al azar. Se puede ver, puedo ver la función dentro de
la biblioteca de funciones. Cualquiera que sea la función que
hagas dentro de aquí se puede ver globalmente
a través de todos los planos Solo ten en cuenta, no solo funciones dentro
de aquí sin ningún motivo, porque ocupa rendimiento. Si esta biblioteca es enorme, lo único para lo que debes
usarla es si tienes una función que se usa
en muchos blueprints Por ejemplo, estás
obteniendo la información del arma, podrías usar eso
en la base de jugadores. Podrías usar eso
en el modo de juego. Podrías usar eso en
el controlador de reproducción. Si tienes una función
que vas a usar a través de
múltiples blueprints, entonces sigue adelante y
hazla dentro de
una biblioteca de funciones para que
no tengas que hacer
la misma función y
otra vez en
cada blueprint Pero las funciones específicas no las
crean dentro de
una biblioteca de funciones. Esto solo está pensado para
funciones que vas a usar muchas veces a
través de planos Por ejemplo, para
éste lo vamos a llamar Obtener información. Estamos recibiendo la información de
las armas. También voy a marcar puro,
puro solo hace
que sea esa función verde. Si compila y puedes ver si voy a la
base de jugadores por ejemplo y digo obtener información de arma, puedes ver que se puso verde. Y la razón por la que se puso verde
es porque hice clic en puro. Y aquí lo puedes ver. En realidad se pone como
esas funciones verdes si has creado una. Este por ejemplo, para este estamos obteniendo
el controlador, puedes ver que es verde
porque simplemente está obteniendo información. Si estableces información entonces necesitas estos pines
aquí y son azules. Estas son funciones establecidas y
estas son funciones get. Simplemente están
obteniendo información sin modificar nada. Esto es lo que queremos
hacer. Queremos obtener nuestra información de armas. Lo pusimos en puro
porque no estamos modificando nada
dentro de aquí. La función principal que
necesitamos usar dentro de aquí, si hace clic derecho en ella, aún
es la fila de tabla de datos. Este de aquí abajo,
sin embargo, fila de tabla de datos. Esta es la función principal
que necesitamos usar. Y tenemos que seleccionar
nuestra tabla de datos. Entonces necesitamos obtener información
de la información del arma T. Ahora tienes
que decirle ¿qué información quieres obtener de ella? Ahora esto tiene que ser dinámico, dependiendo de lo que estés
haciendo dentro del juego. Vamos a hacerlo, y puedo explicarlo más tarde para
la información del arma. Ahora vamos a crear una variable y llamémosle nombre de arma. Y voy a
convertirlo en una cuerda. Voy a tomar
esto y decir reemplace. Y usa esta función
llamada replace. Ahora la razón por la que uso esto es si estás dentro de tu tabla de
datos aquí, digamos que tienes un
nombre, por ejemplo, digamos que tienes un
arma llamada cuatro en uno. Vamos a fingir
que esto es un arma. Tienes espacios entre
tu nombre para la identificación. Ahora, cuando creas algo
dentro de una tabla de datos, en
realidad elimina los espacios. Si abres la tabla de datos, digamos que importas
esta en el espacio uno a. Si importas eso a aquí,
en realidad
eliminaría el espacio y solo
escribiría
una A sin espacio. Lo que suelo hacer aquí para quitar todos los espacios de aquí, cuando los subes, tomo el nombre del arma
aquí en el de. Presiono espacio,
asegúrate de agregar un espacio. Los dos simplemente pueden estar vacíos. Nada dentro de
aquí, eso es todo. Lo que esto simplemente está
haciendo es tomar todos los espacios
de estos nombres. Digamos que es éste. Está tomando el espacio y lo está
reemplazando por nada, lo que
significa que en realidad estás borrando el espacio así. Después encontrará el ID correcto dentro de esta tabla de datos. Porque esta tabla de datos elimina
automáticamente estos
espacios al importarlos. Cuando busques un nombre
como con este espacio
, te dará una época. Estamos quitando todos los espacios, y ahora vamos a
enchufar eso aquí. Automáticamente
va a convertir la cadena en una variable de nombre. Entonces podemos justo desde
aquí y decir regreso. Puedes conectar esta
salida a la devolución y puedes llamar a esta información
de arma. Bien, ahora hemos terminado
y necesito explicarte todo
el proceso porque esto puede ser un poco confuso. Lo que estamos haciendo aquí ahora es
que ahora podemos decir, por ejemplo, aquí dentro de la base de
jugadores podemos decir obtener información de armas. Y podemos llamar a esa función que hicimos en la biblioteca de
funciones. Estamos recibiendo esa información. Ahora necesitamos
enchufar un nombre de arma. Digamos por ejemplo,
vamos a hacer eso en
la siguiente lección. Pero digamos por ejemplo, enchufé el nombre AK 47 Va a tomar ese nombre. Va a ir dentro de esta función a
la biblioteca de funciones. Va a tomar
el nombre aquí, va a eliminar todos los
espacios, si los hay. Va a poner ese AK 47 que escribí aquí
en el nombre de la fila, lo
que significa que se ve
aquí en el nombre, busca el AK 47, busca
éste. Ahora sabe que estamos
hablando de esta fila. Conoce el nombre, el tipo, la clase, y así sucesivamente. Para que puedas arrastrar desde
aquí y decir break, puedes romper estructuras. Y ahora se pueden ver todas
las variables ya que toma la información
de esta tabla de datos, ahora conoce el nombre del AK 47, sabe qué tipo de arma
es, qué clase es, porque está tomando toda
esa información de esta tabla de datos. Así es como lo usas
y ahora necesitamos
realmente hacer esos nombres de
armas. Enumere esto por ahora. Compilemos y guardemos,
y sigamos adelante.
102. 8.17 Añade el nombre del arma: Ahora lo que tenemos que hacer,
cerremos todo. Volvamos a las armas, y vamos a la base de armas. Ahora dentro de aquí, hagamos una nueva
variable llamada,
llamémosla nombre de arma. Démosle el tipo de cadena. Entonces es sólo un texto. Y si compilas, puedes ver, puedes escribir algo aquí
ahora para el nombre del arma. Desde que crea esta variable, recuerde que ya que
creó dentro de la clase de blueprint padre, todos los hijos
heredarán esta Si abres la Q 47, puedes ver en los valores predeterminados de
clase que ahora puedes
escribir un nombre de arma Puedes hacerlo específico
para cada arma. Ahora agregas la variable dentro de la
base del arma y luego
puedes editar esta variable para que sea algo específico
para cada niño. El nombre del arma para el AK 47
es apenas K 47 para los cuatro. Lo puedo ver aquí. No
tengo que hacer click aquí arriba. El nombre del arma para
los cuatro es 41. Vamos a cerrar eso también. Para la pistola,
es sólo pistola. De hecho voy
a recordar
compilar aquí así como así. Guarde todo. Ahora has escrito el
nombre del arma para cada uno de ellos. Necesitamos ese nombre de arma, extraemos la información correcta de la tabla de datos porque si
el nombre del arma es pistola, vamos a enchufar
ese nombre de arma y
va a extraer toda
esta información de aquí. Bien, vamos a cerrarlo ahora. Ahora lo que podemos hacer, por ejemplo, es que podemos ir al jugador.
Vayamos al jugador. Sólo voy a mostrarte que en realidad no
deberías seguir aquí. En realidad solo quiero
darte un ejemplo. Tenemos por ejemplo,
esta arma saqueada. Esta arma saqueada la
puedo arrastrar de aquí. Y ahora puedo decir nombre y tomar esta variable de nombre de arma. De eso puedo decir
aún información de armas. Esa es la biblioteca de funciones. Ahora en realidad podemos
enchufar eso. Digamos que pasé por
encima de un AK 47. Lo pasé por encima y ahora
realmente puedo extraer la
información de él si solo imprimo una cadena mi pantalla y la
conecto aquí abajo. Tomemos esto y digamos
romper esta estructura. Vamos a imprimir el
nombre de esta arma. Si solo acecho, me acerco, en realidad tengo que elegir, así que si elijo terroristas
y paso por encima de esta pistola, va a imprimir pistola Si paso por encima de esto en cuatro, va a imprimirse en 41. Entonces puedes ver que ahora está extrayendo
información
correctamente dependiendo de
cuál sea el nombre del arma. Permítanme borrar esto por ahora. Recuerda muy
importante cuando añades esta variable a
la clase padre, recuerda que tienes que
entrar en cada uno de los hijos y cambiar
el valor de esta. Bien, adelante y guarda
todo y sigamos adelante.
103. 8.18 Reemplaza la variable WeaponType: Bien, en esta
lección voy a sustituir la variable
tipo de arma. Si vamos a la base de armas, recuerda que hicimos este
tipo de arma y la estamos usando aquí para verificar si el jugador ya tiene el arma en el
inventario. Este tipo de arma,
ya hicimos esto dentro
de la estructura. Si vas a la estructura,
recuerda que hicimos este tipo. Ahora no necesitamos que estas variables extra
estén por ahí. De hecho, podemos simplemente usar nuestra
estructura para reemplazar esto. Lo que podemos hacer ahora,
en lugar de todo esto, en lugar de tomar el tipo de
arma así, ahora
podemos decir obtener información de arma. Podemos tomar esto aquí,
enchufar el nombre así. Recuerda que estamos dentro
de la base de armas. Ya tenemos el
nombre aquí. Ahora para obtener el tipo de arma, tenemos que arrastrar y decir
romper y podemos romper esto. Lo que puedes hacer, también
puedes escribir click aquí y decir split struct Y puedes conseguir esos así. Sin embargo me gusta simplemente escribir break y tenerlos aquí
afuera en su lugar. Ahora esa es solo la preferencia. Ahora puedo tomar este tipo, este es el tipo de arma, y
puedo enchufarlo aquí. Ahora se puede ver que esto
es lo mismo. Ahora en realidad puedo eliminar esta variable de tipo de arma para ocultar esos pines que no
estás usando. Para que se vea mejor,
puede hacer clic en él y presionar ocultar pines desconectados.
Se ve así. Bien, tengo que organizar
esto un poco más tarde, pero dejemos que esté
aquí para este tipo de arma. Aquí estoy arrastrando de esto
y volviendo a decir nombre. Obtener el nombre del arma,
obtener información del arma. Y entonces puedes romper esto. Entonces puedes enchufar
el tipo por aquí, en cambio, podemos
eliminar esto también. Ahora puedes ver que ya no estamos
usando esta variable. Tenemos toda la información del arma
dentro de ésta. Bien, voy a
organizar esto un poco. Bien, ahora es un
poco más organizado ahora para echarle un vistazo si tienes otras referencias de
este tipo de arma. En lugar de buscarlo, conozco un hecho que también lo
usamos en la base de jugadores. Pero si no recuerdas, digamos que entraste
aquí un mes después y no recuerdas
dónde lo usaste. En otra parte, puedes ver si
intentas eliminarlo ahora, dice
que ya
se usa el tipo de arma variable . ¿
Quieres eliminarlo? Estoy presionando no, porque todavía lo estamos usando. Haga clic derecho aquí y
diga encontrar referencias. Ahora bien, esto aquí abajo sólo
está encontrando las referencias dentro de
este plano Pero si haces clic en
este pequeño icono, lo va a encontrar
en todos los planos Va a buscar en
todos los planos. Y puedes ver que se usa
en la base de jugadores de BP. Si haces doble clic
en la variable aquí, nos
lleva a y la usamos
aquí en el arma de botín donde establecemos el tipo de arma
equipada En lugar de volver a hacer esto, tomemos esta arma saqueada Digamos meter el arma. En realidad consigue información sobre armas. Obtener nombre, obtener nombre de arma. En lugar de hacer todo
esto una y otra vez, en realidad sólo
voy
a ir a la base de armas y voy a copiar
esto y esto aquí. Entonces la información del arma Git
y la estructura del freno. Así que solo puedo
pegarlo aquí y puedo enchufar esto aquí,
es un poco más rápido. Y ahora puedes enchufar
el tipo aquí. Y puedes volver a eliminar
esto solo para intentar que sea lo más
organizado posible. Pero se puede ver que ahora es muy
largo comparado con antes. No obstante, de nuevo, tienes toda la información contenida
dentro de esta estructura, por lo que va a ser mucho
más limpia para ti. Bien, entonces ahora
tenemos eso y
volvamos a abrir mis referencias. Voy a hacer doble
clic en éste ahora. Y lo estoy usando aquí
cuando quiero cambiar o adjuntar el actor
a mi componente mesh. Otra vez, igual que antes. Vamos a copiar todo
esto porque en realidad solo
estábamos usando
esta arma saqueada De nuevo, voy
a volver aquí, rep saqueado y voy
a borrar esto y hacer espacio más allá de esto y
luego conectarlo aquí Y luego simplemente empujarlos hacia atrás. Lo mismo aquí abajo.
Eliminarlos y conectarlo. Así como así. Bien, ahora lo
tienes compilar,
guarda todo. Y eso debería ser
todo lo que puedas ver. No tienes más referencias.
Esto fueron todos ellos. Si vuelves ahora a la base de
armas y presionas eliminar, la
va a eliminar
automáticamente
porque ya no la estás
usando. Ahora se puede ver que
reemplazamos a todos ellos. Los planos se están volviendo
más limpios en el futuro. No tenemos como diez
variables para el arma. Los tenemos todos dentro de nuestra función función,
nuestra estructura. Y de esa estructura, está tomando esta información
de la tabla de datos. Y siempre podremos
hacerlo más largo más adelante. Pero por ahora, esta es toda
la información que necesitamos. Ahora guardemos todo
y sigamos adelante.
104. 8.19 Acción de entrada de arma suelta: Bien, antes hacemos la funcionalidad
Lot, como cuando pulsas un
botón, por ejemplo. Si presiono E sobre un arma en
el suelo y la toco, creo que es mucho mejor
comenzar con un arma de caída. Porque si estás sosteniendo
un arma en la mano, necesitas soltarla también
cuando saqueas la otra Empecemos por dejar caer primero
un arma antes de que la lotemos con una tecla
en el teclado. Vamos a la entrada
aquí en la carpeta del reproductor. Vaya a Entrada clic derecho. En realidad, puedes intentar
hacerlo tú mismo si quieres. Este es un buen
momento para hacer ejercicio. Ya hemos hecho
muchos de esos. Deberías ser capaz de hacerlo tú mismo. Intenta hacerlo tú mismo. Si es posible, intenta crear una acción de entrada o
soltar un arma. Y agrégalo al contexto
de mapeo de entrada. Y también agregar el evento a
la base de jugadores también. Ahora hagámoslo juntos aquí. Vamos a la derecha a Entrada
y seleccione Acción de entrada. Llamemos a esto un
arma. Vamos a abrirla. En realidad, no necesitamos
cambiar nada dentro de aquí. Pasemos al contexto de mapeo. Agreguemos un nuevo mapeo. Seleccionemos el arma de caída. Voy a soltar el arma
con la tecla G en mi teclado, igual que en contraataque Ahora puedes usar
cualquier otra cosa que esté bien para el modificador. Voy a dar click en Presionado, porque hay que presionar
el botón y éste reproducirá el código una vez que
no abarque esto. Bien, ahora tenemos esto.
Vamos a cerrarlo. Vamos al
jugador, base de jugadores. Y dentro de aquí,
vayamos al gráfico de eventos. Aquí abajo puedes hacer click derecho
y volver a escribir el nombre, igual que lo que hiciste con
la entrada o el arma de soltar. El clic derecho y decir un arma de caída y aquí está el
evento que necesitas usar. Ahora podemos codificar en la lógica del arma de
caída, guardemos todo y
pasemos a la siguiente.
105. Lógica de armas 8.20: Bien, así que
vayamos aquí con la lógica del arma de caída. Ahora necesitamos saber
qué arma quieres dejar caer
del inventario. Ahora vamos a ejecutarlo
a través del servidor. Nuevamente, necesitamos ejecutarlo a través del servidor para evitar hacer trampa. Entonces voy a hacer
un nuevo evento personalizado llamado SRV Weapon Ejecutemos esto en el
servidor y confiable. Ejecutemos el servidor
uno dentro de aquí. Bien, entonces cuando presione la tecla
G para soltar mi arma, va a pasar por
este evento personalizado. Ahora necesitamos saber qué
arma estamos soltando. Estamos dejando caer el arma
que tenemos en nuestras manos. Necesitamos saber qué arma es la que
tenemos en nuestras manos. Ahora mismo, en realidad es
este tipo de arma equipada. Se sabe si estamos
sosteniendo un rifle, pistola o si estamos desarmados
para esta arma equipada De hecho voy a
renombrarlo para que suene mejor. No es arma equipada, es tipo arma equipada. También necesitamos
cambiar el nombre aquí. En realidad, establecer arma equipada. Se establece tipo de arma equipada. También lo voy a
hacer aquí abajo, Establecer tipo de arma equipada. Y lo mismo aquí
para las variables. Se les llama
tipo arma equipada y tipo de arma equipada. Tipo de arma equipada. Es
más correcto que antes. Ahora ya sabemos cuál es el tipo de arma
equipada. Tenemos que encontrar esto
en el inventario. Tenemos que tomar el inventario de
armas. Y podemos ahorrar para
cada bucle con break. Y volvamos a
conectarlo aquí. Recuerda que hicimos el
nombre en la última lección. Tomemos esto y digamos variable de
nombre y tomemos
este nombre de arma get. Ahora estamos recibiendo el
nombre del arma del artículo en este momento. El arma aquí. Entonces a partir de este nombre de arma vuelve
a obtener información de arma. La estructura aquí,
vamos a romperla. Lo que nos interesa es que nos
interesa obtener el tipo de arma
ahora mismo
del inventario que
estamos recorriendo, si este tipo que estamos
viendo actualmente en el inventario es igual,
igual enumeración, si es igual al tipo de arma
equipada, esto quiere decir que
tenemos esta arma en el inventario y es la
que estamos sosteniendo derecha ahora. Si ese es el caso,
queremos dejar caer esta
arma ahora mismo. Bien, si es el hecho que el arma que
estoy buscando
ahora mismo en mi inventario es la
misma que el
tipo de arma equipada en este momento. Esto quiere decir que
esta arma aquí es en realidad la que queremos
eliminar del inventario. Si eso es correcto,
hagamos clic derecho aquí y promocionemos
esto a una variable. Voy a llamar a esta
arma para que caiga. Y ahora podemos
conectarlo a aquí. Al igual que antes
hiciste este donde, veamos si lo podemos encontrar. Hiciste esta única arma de botín. Cuando saqueas el
arma, eliminas la colisión aquí de
la función de notificación Lo mismo que en realidad tenemos que hacer aquí abajo con
el arma de caída, porque tenemos que habilitar de nuevo
la física, recuerden que teníamos simular la física en las armas desde
el principio. En realidad tenemos que hacer lo
mismo aquí para éste. Agreguemos algunas
notas de ruta trasera para que caiga esta arma. Vamos a darle click y
digamos, vamos a compilar. Hagamos esa función
en la siguiente lección. Pero por ahora,
sigamos aquí, nos estamos soltando el arma. Y también recuerda
sacarlo del inventario. Voy a tomar este
inventario aquí y voy
a pegarlo aquí y
decir quitar artículo. Digamos quitar
el artículo así. Ahora vamos a seleccionar el
artículo que queremos eliminar. Es este artículo de arma
o artículo de inventario. Ahora lo estamos retirando del inventario porque
si no haces
eso, en realidad sigue
en el inventario. Si lo dejas caer al suelo, entonces tenemos que
recordar actualizar también
el
tipo de arma equipada. Arrastra desde aquí y di
set equip tipo de arma. Por ahora, solo
pongámoslo a desarmado. Podemos modificarlo más adelante
si tienes una pistola o lo que sea que tengas ahora mismo
cuando sueltes el arma, solo
vamos a ponerla a desarmada Y eso fue todo. Ahora
en realidad te estás soltando el arma. Ahora ya terminamos
con éste. Sin embargo, todavía necesitamos hacer
esta función rep, notify. Hagámoslo en
la siguiente lección.
106. 8.21 Notifica a representante de arma de caída: Bien, abramos el
arma para soltar rep, notifíquelo. Si no recuerdas
lo que hicimos, siempre
puedes volver
al arma aludida Y aquí lo que hiciste es
quitar la física de simulación, eliminaste la colisión para el arma porque
ahora la estás sosteniendo en tu mano y eliminaste también
la colisión de esfera de
colisión. opuesto a esto, si
volvemos a nuestra arma caída, primero
tenemos que separar
el arma de la mano Porque recuerda en
las armas saqueadas, le pegaste esto
al personaje Lo que tenemos que hacer primero es
tomar esta arma para que caiga. Tenemos que decir desprenderse. Y puedes seleccionar éste. Despegarse del actor. Ahora estás despegando
esta cosa de aquí, esta arma para que le
caiga a este actor Mantengamos la ubicación, rotación y la báscula para mantener el mundo donde sea que esté
ahora mismo en el mundo. Simplemente mantiene la
ubicación y así sucesivamente. Justo al contrario
de las armas saqueadas. Tomemos esto y
digamos primero fijemos colisión porque no podemos
simular la física. Si en realidad no configuras
la colisión correctamente, pongamos la colisión habilitada,
en realidad es el arma. Si regresas, si no
te acuerdas, siempre regresa a
la base de armas, revisa qué necesita colisión. Recuerda que es el arma la que
necesita esta colisión aquí. En realidad necesitamos tomar esto
y tomar primero el arma, la variable arma, obtener eso. Entonces podemos decir establecer colisión habilitada aquí. Vamos a conectarlo. La colisión, recuerda
fue solo física. No necesitamos consulta para esta
malla aquí, solo física. Y también necesitamos
simular la física. Y eso lo hacemos en el arma. Recuerda, si regresas
y haces clic en el arma, es aquí donde
simulas la física. No está en los valores predeterminados de clase. Hay que arrastrar del arma y decir simular la física. Y seleccione ese Dios y
conéctelo y habilite la física. Adelante y haz algunas
notas de reencaminamiento para que sea más agradable. Bien, ahora simulamos física
encendida y también tenemos
algunas colisiones habilitadas. Ahora recuerda que también
desactivaste la colisión. Si vuelvo al arma saqueada, también
desactivaste la colisión
para la esfera de colisión, necesitas tomar esta y necesitas tomar la variable esfera de
colisión Se baja en la parte inferior aquí, toma la
esfera de colisión y luego vuelve a establecer una colisión habilitada
y salir y seleccionar. Y sí, así como así. Ahora hay que establecer la
colisión para que consulte solo porque la colisión es en realidad consulta solo para la esfera de colisión. Se puede ver aquí. Solo consulta, necesitamos configurarlo para consulta solamente. Creo que eso es
lo único que teníamos que hacer. Vamos a probarlo. A
ver si todo funciona. Si tenemos alguna caja
necesitamos arreglarlos, juguemos como el terrorista. Ahora bien, si ruidoso, por ejemplo
el AK y hago clic en G, suelte el arma, se ve
que se le cae al suelo. Así como así. Impresionante. Juguemos en realidad
como primera persona, para que pueda verlo mejor. Voy a hacer clic
en mi brazo de resorte para la base de jugadores
y ponerla a cero. Juguemos como primera persona. Ahora tomemos esta K.
Ahora la estoy sosteniendo, presiono para dejarla caer. Ahora se puede ver
que está en el suelo. Impresionante. Tratemos de tomar este de aquí y
dejarlo caer al suelo. Ahora puedes ver que tenemos un dólar. No creo que sea invisible porque no se puede
ver en mi espalda. Me pregunto qué está pasando. Tomemos la primavera.
Voy a ponerla 600
para ver qué está pasando. Y en realidad es
sólo la M cuatro. Para que veas que la pistola
funciona correctamente. La K también está funcionando
correctamente. No pasa
nada más que la M cuatro. Lo estoy cargando correctamente
la primera vez. Sin embargo, si lo dejo caer
y entro en él, oh, en realidad está debajo de mí. Lo puedes ver en mis pies. Ahí está. De hecho,
arreglemos eso rápidamente. Creo que necesitamos
restablecer la ubicación. Si acudes al representante notifique
por el arma saqueada. Siempre que saqueas un
arma, tienes que reiniciar, transformar.
Hagámoslo aquí después adjuntar el componente
al componente raíz. Lo que puedo hacer aquí es que puedo tomar el arma y solo
puedo decir reset. Y se puede ver algo llamado reset,
relativo transform. Va a restablecer la transformación de esta arma aquí dentro del plano Debido a que no es suficiente que lo
volvamos a unir al componente
raíz, también
tenemos que restablecer
la transformación del mismo Vamos a compilar y jugar y
ver si eso soluciona nuestro problema. Yo los tomo cuatro, lo dejo caer. Vuelvo a tomarlos cuatro, y ahora se puede ver
que está funcionando correctamente. Si vuelvo con mi
brazo de resorte, ponlo a cero. Juega ahora como terrorista. Ahora puedo tomar esto en
cuatro y puedo dejarlo caer. Puede tomarlo de nuevo.
Se lo puedo dejar caer. Ya puedes ver que está
funcionando correctamente. Es un buen mecánico que
en realidad necesitamos salir primero de
la esfera de colisión
antes de que podamos volver a saquear Porque te puedes
imaginar si lo dejas caer y no tienes
esta funcionalidad, sigues saqueando el arma Cuando la dejas caer debajo de
ti, tienes que salir
y volver a entrar y todo está funcionando
perfectamente, bien. Lo último que
realmente olvidamos también, o lo olvidé, es
romper el bucle. Porque si encuentras
el arma aquí, en realidad
necesitamos
romper el lazo. Tenemos que tomar esto y ejecutarlo todo
el camino de regreso para romper. Y hagamos doble clic para hacer redirigir los nodos para
que se vea mejor. Porque ahora si
encontramos el arma, tenemos que detener el bucle. No necesitamos recorrer más porque ya
encontramos los resultados. Tenemos que romperlo
aquí a través del bucle. Eso lo hará
más optimizado. Ahora vamos a compilar y
hagamos clic en Reproducir. Y toca la chara solo para probar si todo está
funcionando correctamente Ahora podemos ver que todo está funcionando bien con
la pistola también. Todo está funcionando
bien también. Ahora a veces
te sale un error si dejas caer el arma y en
realidad no
tienes nada por aquí. En lugar de simplemente seguir
soltando el arma, tenemos que verificar si
realmente tienes un arma o no. Tenemos que tomar este tipo de
arma equipada y tenemos que decir, ¿es igual a desarmada En realidad, podemos decir
¿no es igual? Eso va a ser mucho mejor. Si no es igual a desarmado, puedes seguir adelante y
soltar el arma Si está desarmado, no
tienes
nada en la mano y no tiene sentido
dejar caer el arma Si no está desarmado, puedes seguir adelante y
soltar el arma, y eso la hará
mucho mejor Y también quita
alguna caja que
podrías tener más adelante si
dejas caer el arma. Y ya se puede ver que todo está funcionando como se supone que debe hacerlo. No obstante, no te engañen demasiado porque ahora intentemos
jugarlo como el cliente Ahora si jugaba como
cliente como terrorista, ahora si entro en un arma, puede ver que está
loteada correctamente Y si hago clic en G
para soltar el arma, bien, todo está bien. No obstante, si voy
a saquearlo de nuevo, se
puede ver que sostengo algo y en realidad
sostengo el arma No obstante, sigue
en el suelo. ¿Qué está pasando? Este error está ocurriendo porque
rep notifica Si voy a la
base de jugadores, rep notifica solo ser llamado si
el valor cambia Por ejemplo, aquí,
si mucho el arma aquí, digamos que aludido al
arma. Bien, bien. Pongo esta variable, este representante notifica que
está configurado en pistola. Ahora si lo
dejo caer, volvamos al juego. Si lo dejo caer aquí, si le asigno los cuatro,
bien, bonito déjelo caer. Si voy a la
pistola funciona bien. Ya ves que puedo hacer esto. No obstante, no puedo cargar la
misma arma dos veces. Se va a, Pero
entro en ello, se puede ver que se está
molestando y
algo es raro.
Esto se debe a si es el mismo valor al que se está alimentando aquí
que la última vez, realidad no va a
llamar a una función de notificación de representante. No
se llamará a la función rep notify si es el mismo valor exacto al
que ha conectado aquí Y esto va con todo. Por ejemplo, digamos que tenías una variable vectorial y
estás configurando alguna, Digamos que estableces
la ubicación del arma. Digamos que estás configurando
la ubicación del arma y en realidad la estás ejecutando
a través de una notificación de representante. Digamos que la
ubicación del arma tiene que ser 000 y la enchufaste aquí Ahora la próxima vez
que ejecutes esto y la ubicación
del arma es exactamente lo mismo, en realidad no va a ejecutar esta función de notificación de representante. La
función de notificación de representante solo ejecutará si está
cambiando el valor. Eliminemos este de aquí. Eliminemos esto en la ubicación del
arma rep que acabamos de hacer. Lo que tenemos que hacer aquí es
que tenemos que cambiar esto. Hagámoslo realmente
en la siguiente lección.
107. 8.22 Restablece el valor de Rep Notify: Bien, así que ahora reiniciemos la función rep notify
para que funcione correctamente. Entonces, qué podemos hacer
aquí ahora estás manejando esta arma de caída. Lo estás ejecutando correctamente. Ahora vamos a restablecerlo aquí. Cuando el bucle esté completo
y todo esto esté terminado,
sigamos adelante y
restablecemos este valor. Entonces la próxima vez que lo establecemos, aunque sea el mismo valor, va a ejecutar esta notificación, porque la hemos restablecido
antes de eso. Aquí abajo lo que
tengo que hacer es que
dejemos caer esta arma. Tomemos eso aquí.
Es aquí abajo, el arma para caer.
Vamos a sacarlo aquí. Conectémonos a lo completo. En realidad, eso es lo
único que hay que
hacer si no enchufa
nada a este valor, va a tirar toda la información
que hay dentro de él, y eso restablecerá
esta variable aquí. Lo que podemos hacer ahora,
habrá un pequeño bicho, y probablemente lo
verás también. Ahora si hacemos clic en
Play, tomo esto, lo
dejo caer, ya se ve
que está ahora en el aire. Lo estamos recogiendo correctamente. No obstante, todavía está en el aire. Esto es, déjame
cerrar esto. Esto se debe a que en realidad
todavía estás ejecutando esta
función aquí. Y al mismo tiempo estás
reiniciando esta variable. Necesitamos realmente
darle un pequeño retraso para darle la oportunidad de
jugar esta función de notificación. Antes lo restablecemos. Permítanme
simplemente retrasar por algo muy pequeño como 0.1 y luego
podemos restablecer esta variable. Vamos a compilar, juguemos
y veamos qué pasa. Ahora bien, si juego como terrorista, lo
recojo y lo dejo caer. Ver que funciona correctamente.
Si lo recojo de nuevo. Ahora todavía hay un
error aquí y
tenemos que hacer lo mismo
por el arma del laúd Ahora dice X no tratando de leer el arma de propiedad para
dejar caer desprendido del actor. Ahora lo que tenemos que hacer aquí
porque cuando ejecutamos esto, recuerda cuando ejecutas
una función rep notify, estás cambiando el
valor aunque estés poniendo cero en esto. A pesar de que si estás vaciando, sigues cambiando el valor Y en realidad va
a ejecutar todo esto. Nuevamente, la forma en que podemos hacer esto es que podemos hacer clic derecho sobre
esta arma para soltarla y podemos convertirla en
un get validado y
podemos conectarla aquí
siempre que sea válida. Podemos seguir adelante y
conectarnos y ejecutar este código siempre
que no sea válido. Es decir esto aquí, siempre que
no conectemos nada aquí, esto hará que esto no sea válido y no hagamos nada
si no es válido. Vamos a compilar y ver si eso
realmente soluciona los problemas. Antes de continuar, lo
puedo dejar caer aquí, entrar en él, y se
puede ver que sigue siendo invisible y tenemos que
vaciar la otra variable. No obstante, se puede ver que
no obtenemos ningún error, por lo que estos están arreglados.
Volvamos. Ahora, subamos a
las armas saqueadas. Este también tenemos
que resetear. Recuerda, esto también se establece en
la misma variable porque estás saqueando la pistola una y
otra vez Ahora para éste, lo que podemos
hacer aquí, recuerda que tenemos, esto no está vacío, así que estamos comprobando si la matriz de armas
superpuestas está vacía o no. Si está vacía, volvemos a colocar el arma de botín, por aquí Nuevamente, puedo decir retraso de 0.1 segundos para darle a
esto una oportunidad de jugar. Siempre que se haga eso, puedo tomar esta arma
saqueada y ponerla así y vaciar
los valores dentro de aquí Ahora recuerda entrar en
esto nuevamente y asegúrate que esto sea válido
siempre que lo hagas, hagamos clic derecho en convertir a un get validado, al
igual que antes. Sólo cuando sea válido. Queremos ejecutar el código
porque si no es válido, no
queremos hacer nada. Compilemos, guardemos todo. Déjame hacer clic en jugar ahora,
y eso debería funcionar. Si juego como terrorista, se me cae el arma,
vuelvo a saquear. Se puede ver que está
saqueado correctamente. Si lo vuelvo a dejar caer mucho, ya se
puede ver que está
funcionando perfectamente. Es correcto. Ahora
funciona como el cliente. Y si juego el
juego escucho servidor. Entonces si juego como servidor
y como cliente también. Ahora aquí está mi servidor. Voy a engendrar. Y aquí está mi cliente. Yo también voy a desovar. Yo aludió a la pistola como mi cliente y
se puede ver aquí en el servidor, y si el servidor mucho K por ejemplo,
se puede ver también Si me lo dejo caer aludió, se
puede ver lo puede ver
tanto en las pantallas
aquí como el cliente, puedo dejar caer este lote, todo está funcionando correctamente Si aludiera a la info
, también mucho correctamente Bien. Todo es
correcto, luciendo bien. Ahora, hay un pequeño problema. Si voy al jugador y
el jugador deja caer el arma, se ve que ahora
sostengo el arma. No obstante, como jugador, como cliente
no puedo ver nada. Pero como el servidor se puede
ver, puedo ver el K. Ahora, ¿qué está pasando? Podrías estar pensando
que esto podría ser un problema de replicación, porque como servidor puedo
ver la información correcta, pero como cliente no puedo
ver la información correcta. Esto podría ser un problema de
replicación. Porque se puede
ver en el suelo, realidad
puedo ver el arma. Hay algo mal. Ahora bien, no sospecharía de
un problema de replicación. De hecho puedo ver el
arma en el suelo. Si se trataba de un problema de replicación, el arma debería estar en mi espalda. Porque entonces piensa
que ya tengo algo en la mano y me
pondría mi Ak en la espalda. Pero por alguna extraña razón, el arma está
en realidad en el suelo y aquí está en mi mano. El problema es
muy probable que estés
saqueando el arma Como el otro jugador,
en realidad estás saqueando
el arma antes haber tenido la
oportunidad
de jugar todo este código en el arma de lanzamiento Hagámoslo realmente
en la siguiente lección. Arreglemos este problema.
108. 8.23 Booleano de interacción con armas: Para asegurarnos de que no podemos
interactuar con esta arma hasta que ésta haya pasado a través y esta
haya sido reiniciada. Entonces en realidad
queremos interactuar con el arma porque
ahora mismo los jugadores están interactuando
con ella demasiado rápido. Vamos a la base de armas. Y dentro de aquí voy
a hacer una nueva variable. Vamos a llamarlo, puede
ser interactuado. Hagámoslo sólo
en lingotes. Ahora vamos a la base de jugadores. De hecho, hagamos por defecto que puedas
interactuar con él. Si solo hacemos clic
en este lingote, lo voy a establecer en true default. Lo que podemos hacer ahora
es ir al jugador Ahora, no
quiero que
interactúen con él. Una vez que hayamos encontrado realmente esta arma y
queramos
soltarla, sólo voy a
arrastrar esto. Ahora tenemos esta arma. Yo sólo voy a duplicar aquí. Y puedo tomar de
aquí y decir y ser interactuado con y
podemos configurarlo para que sea falso Ahora no necesitamos replicar esto y la razón es que solo lo estamos ejecutando
a través del servidor A veces piensas que a veces
estás replicando cosas, a veces no estás
replicando Qué
necesito realmente para replicar Si necesitas algunas variables que en realidad solo
estás usando
durante las funciones del servidor, estas no necesitan
ser replicadas Estás configurando si esto puede
ser interactuado o no. Si solo estás usando esta
información dentro de las funciones del servidor para hacer algo de lógica y los otros jugadores no necesitan saberlo, en realidad no
necesitas replicarla No obstante, si quieres
otras cosas, por ejemplo, qué arma estás
equipando si la estás usando aquí puedes ver el tipo de arma
equipada En realidad lo estoy usando aquí donde el cliente también ejecuta el código. Ahora bien, si esto no se replica, entonces esto le dará una
era para el cliente No obstante, puede ser si lo uso aquí arriba donde está
el cliente también, tengo que replicarlo Pero como solo lo estoy usando
en la lógica del servidor, entonces en realidad no
necesito replicarlo Es como una
cosa interna. Ya puedes guardarla. Ahora no puedo interactuar con
el arma aquí abajo. Siempre que se complete, quiero
establecer mi puede ser interactuado
con para que sea verdad Ahora necesitamos
configurarlo antes de éste, porque recuerda que estás
borrando la variable. Antes de eliminar la
variable, necesitamos usarla. Tomemos esto y digamos que se
puede interactuar con. Y voy a establecerlo true porque ahora
podemos interactuar con él y luego queremos
eliminar esta variable.
No quieres hacer esto aquí porque
eliminas la variable, por lo que esta sería inválida. Ahora eso es borrarlo. Ahora lo que tenemos que
hacer, tenemos que ir a la base de armas aquí. También necesitamos escribir aquí que si no puedes
interactuar con él, no
hagas nada después de la autoridad. Vamos a
atacar desde aquí. Recuerde, no
replicamos esta variable. Si escribimos algo aquí, nos va a dar una época
ya que lo estamos escribiendo, después de que el switch tenga autoridad, así que solo lo estamos usando
dentro del servidor, entonces va a estar bien,
no necesitamos replicarlo Tomemos, esto
puede ser
interactuado y hagamos una rama Digamos, ¿se
puede interactuar con esto? Si puede, siga adelante
y ejecute el código. Si no puede, voy
a retrasar el código por, digamos 0.1 segundos. Y luego voy
a ejecutar esto otra vez. Así que sigo
recorriendo este código. De hecho voy a
organizar esto un poco más. Entonces, esencialmente, lo que
estoy haciendo aquí es que sigo
recorriendo el código para
asegurarme de que pueda interactuar con mi arma antes de hacer
algún código de interacción Entonces déjame solo tratar de
organizar esto aquí,
déjame empujarlo hacia abajo. Entonces ahora lo que
básicamente estoy diciendo es seguir adelante y echar un vistazo y ver si se puede
interactuar con esto Si puede, bonito
adelante ejecuta el código. Si no puede, voy a hacer un bucle o retrasar el
código 0.1 segundo. Y luego voy
a regresar y comprobar si esto puede
ser interactuado con Sigo
recordándolo y estoy esperando esto sea cierto porque
cada vez que sueltes el arma, esto será cierto muy rápido Así que ni siquiera te darás
cuenta de éste. No te preocupes, esto no
es pesado en el rendimiento porque esto
va a hacer un bucle muy rápido. Y no va
a correr muchas veces, porque esta va
a ser verdad muy rápido. Entonces esta en realidad
no está funcionando muchas veces. Así que no te preocupes por eso. Intentemos hacer click en
play ahora y veamos qué pasa si juego como el
terrorista maximizarlo. Saqueo algo y hago clic en, se
puede ver que en realidad lo estoy
saqueando instantáneamente. Y este es el problema
que tenemos ahora mismo. Si me cae el arma
muy rápido, sigo saqueando porque
en realidad va aquí y comprobando si puedo
interactuar con ella, aunque sea
el mismo jugador,
el mismo jugador que el
arma puede interactuar con ella Entonces esto es algo
que tenemos que arreglar. No obstante, ahora mismo
el código está funcionando. Solo podemos interactuar con él siempre que esto haya pasado por alto. Así que no obtenemos ninguna caja
de que sea invisible. Entonces pasemos a
la siguiente lección.
109. 8.24 Elimina la interacción del jugador que deja caer: Bien, entonces ahora necesitamos
escribir bastante código aquí
antes de que esto pueda funcionar. Porque queremos
asegurarnos de que
el jugador que suelta
el arma ahora mismo, queremos asegurarnos de
que el jugador que suelta esta información no
saquea esta información Nuevamente, solo queremos que el
otro tipo saquee la información. No queremos interactuar
con él de inmediato, de lo contrario sigues saqueándolo. Tenemos que definir
el arma caída. Déjame seguir adelante y hacer
un nuevo evento para clientes. Y vamos a llamar a este
conjunto arma caída. Y volvamos a ejecutarlo por
el servidor. Se ha caído el conjunto de servidores. Entonces tenemos que
ejecutar esto en el servidor
y ser confiables y
tenemos que ejecutarlo a través
del evento normal aquí, establecer arma caída. Bien, aquí abajo,
simplemente necesitamos establecer esta variable. Voy a simplemente dar click aquí, agregar una nueva variable. Es solo la base del arma
porque necesitamos el arma. Llamemos a esta arma
caída. Vamos a conectarlo aquí
arriba también. Para este, vamos a
promoverlo a una variable y digamos arma
caída. Ahora bien, no creo que
necesitemos replicarlo, porque creo que solo
necesitamos ejecutarlo a
través del servidor Pero realmente no puedo determinar
esto por ahora mismo. Hagamos el código y más adelante, si realmente usamos esto
dentro del cliente también, necesitamos replicarlo Por ahora, dejemos que no
se replique. Me gusta que las cosas
no se repliquen cuando no
necesitan ser replicadas Porque recuerda, cuanta más
información repliques, más lento será tu juego Porque estás
enviando información desde el servidor al cliente. Cuanta más información
envíes, menos rendimiento. Solo mantén las cosas sin replicar
siempre que puedas. Ahora tenemos esta arma caída. Ahora, cuando saqueas cosas aquí, cuando estás interactuando
con ellas en la base de armas, tenemos que asegurarnos de que
no saqueas el arma lanzada Lo que tengo que hacer es
aquí del jugador, antes de hacer todo esto,
puedo arrastrarlo lejos. Antes de hacer todo esto, puedo tomar esto y decir caído. Tomamos esto aquí. Si el arma caída
es igual a uno mismo, esta arma, estoy tratando de
saquear ahora mismo Si es igual,
no hagas nada. Si no es igual, en realidad solo
eliminemos
esto y déjenme decir que no es igual. Eso será mejor
para la legibilidad. Si el arma caída no
es igual
al arma en este momento con la que estoy
tratando de interactuar, entonces podemos
seguir adelante y saquearla No obstante, si es lo mismo, entonces no hagas nada. Ahora mismo, no hemos
definido el arma caída. Hagamos
eso en realidad. Déjenme decir esto. Déjame volver a la base de
jugadores de aquí arriba. Siempre que soltemos el arma, pongamos el
arma y la definamos. Déjenme llamar a este
evento aquí abajo. Establecer arma caída,
déjame llamarlo aquí. Y el arma caída
es simplemente ésta. Simplemente puedes llamar a este aquí. Y
acerquemos todo, igual que antes. Vamos a compilar y
guardar todo. Bien, ahora
podemos probarlo. Vamos a hacer clic en
Jugar y jugar como terrorista. Ahora bien, si saqueo
algo y lo hago, se
puede ver que no estoy
interactuando con él. El problema como esta arma
caída sigue
siendo el mismo. Así que en realidad nunca podré
volver a cargar esta arma. Tenemos que quitarlo cuando sea. Puedes ver aquí, cada vez que
lo cargo y lo dejo caer, vuelvo a entrar aquí, ya
ves que no puedo cargarlo. No obstante, cada vez que salimos de
esta esfera de colisión, necesito restablecer esta variable de arma
caída. Podemos volver a hacerlo en la base de
armas. Recuerde que usamos el
componente on begin overlap. Ahora lo que podemos usar si
vuelves a hacer
clic en la esfera de colisión y bajas, puedes usar esta
en superposición de colisiones. Ahora puedes usar eso para eliminar la definición
del arma caída. Ahora lo que podemos hacer
es como antes, vamos a copiar Este actor tiene jugador
tecnológico porque
queremos asegurarnos sea el jugador que sale
de esta esfera de colisión. Volvamos a conectar eso. Switch tiene porque
queremos asegurarnos de que es el servidor el que maneja todo eso
para evitar trampas. Lo único que queremos
hacer es que queremos establecer
el arma caída para que al
igual que resetear la variable. Toma esto y di
obtener información del jugador. O consigue la referencia del jugador. En realidad, no info, consigue referencia
del jugador.
Vamos a conectarlo. Vamos a llamar al set
arma caída y ponerla en nada. Sólo estamos reiniciando la
variable. Bien, aquí está. Vamos a compilar y
guardar todo. Y vamos a darle
una oportunidad de pelear. Da click en play y
coloco al terrorista. Ahora me encuentro con el. En cuatro, lo dejo caer, me quedo sin él, me encuentro con él. Ahora puedes ver que está
funcionando perfectamente. No lo saqueo al instante, solo lo saqueo cada vez que
dejo esta esfera de interacción Y vuelvo a entrar en ella. Puedo saquear el arma. Ahora intentemos hacer click en play. Y jugar como dos jugadores. Ahora bien, si minimizo este cliente, en realidad este es el servidor. Juguemos tanto como el cliente
como el cliente. Puedo saquear el en cuatro. El servidor toma una mirada que
se ve bien. Se lo puedo dejar caer. Parece correcto.
Puedo saquearlo otra vez. Parece correcto. Bien. Puedo tratar de darte
esta arma aquí. Voy a dejarla caer.
Este tipo ahora la saquea. Se lo puedo dejar caer a este tipo. Ahora en realidad no puedo saquearla. A veces se baña,
se puede ver a veces cuando lo dejo caer en realidad bichos. No lo hago mucho al instante. Esa es la
esfera de colisión, se puede ver aquí. Ya no puedo saquearla. Estoy tratando de entrar en él. No puedo saquearla
aquí como servidor. Esto se debe a que el otro jugador realidad
está parado sobre
él y le está quitando la colisión a ese otro jugador
que está parado sobre él. Siempre que el nuevo jugador intenta conectarse con él
o interactuar con
él, en realidad no
está haciendo nada. El problema ahora mismo con esta superposición inicial
es que solo está comprobando
por un jugador. Si hay varios jugadores superpuestos a esta esfera de
colisión, en
realidad está molestando un poco. Tenemos que arreglar esto también. Se puede ver que tenemos
muchas cosas que arreglar y esa es simplemente
la naturaleza de los juegos. Sigues teniendo problemas
que necesitas arreglar, pero es muy agradable
cuando todo está funcionando y todo
está escrito. Ahora pasemos a la siguiente lección y sigamos
mejorando el código.
110. Mejora la interacción con el jugador de armas 8.25: Bien, bienvenido de
nuevo. Ahora vamos a mejorar este código para
asegurarnos de que aunque varios jugadores estén interactuando con la esfera de colisión, es
tomarlo
en cuenta ahora cuando nos aseguramos de que podamos
interactuar con esta arma. Ahora bien, en lugar de simplemente
hacer esto aquí, déjame arrastrar este código. Déjame arrastrar esto
hacia abajo, y déjame arrastrar esto de esta
manera para que tengamos un poco más de
espacio para trabajar. La forma en que interactúas con
múltiples cosas es si escribes clic y dices obtener actores
superpuestos. Ahora obtienes todos los actores
superpuestos. Puedo conseguir a todos los jugadores
que se superponen. Esto de aquí, quien se superpone, Es la base de jugadores. Es la
base de jugadores, es decir, son todos los jugadores
aquí para éste. Ahora puedo preguntar si el largo es más de uno o si el
largo es realmente uno. Puedo tomar de esto
y decir longitud. Puedo preguntar si esto
es más grande que uno. Porque si no es
mayor que uno, significa que es solo un
jugador interactuando con él. Esa es información crucial. Si es más grande que
uno, puedo hacer algo. No obstante, si
no es mayor que uno, puedo tomar esto y obtener,
obtener el primer índice, es
decir, solo este
jugador, este jugador. Y ahora puedo
conectarlo a éste. En lugar de
quitárselo a este otro actor, ahora
puedo tomarlo de
este jugador superpuesto. Y puedo
conectarlo aquí Si es menor o no
mayor que uno, es
decir, es solo un jugador que está interactuando con
esta esfera de colisión. Puedo conseguir este jugador de
aquí desde el índice cero, y puedo conectar a ese
jugador aquí. Bien, entonces eso está
funcionando a la perfección. No obstante, ¿y si
tenemos múltiples jugadores? Ahora mismo, sólo estoy comprobando
si es un jugador. Entonces, si tienes varios jugadores superpuestos a
esta esfera de colisión, necesito mirar a través de esos. Puedo tomar todos esos actores
superpuestos, puedo decir. O cada bucle con break. Quiero asegurarme de que
quien haya caído el arma no
debería estar interactuando con esta arma que
tengo en el suelo. Puedo conectar esto Ahora puedo tomar de aquí y decir
obtener referencia del jugador. Ahora para cada uno de esos jugadores, lo que puedo hacer ahora es
llevarme el arma caída. Puedo preguntar, es esta arma
caída para este jugador que estoy recorriendo ahora mismo, ¿no
es igual? En realidad estamos escribiendo
el mismo código que aquí abajo. Si no es igual
al arma que estoy tratando de
saquear ahora mismo, entonces puedo seguir adelante
y saquear el Estoy recorriendo cada jugador. Estoy tratando de encontrar al jugador que aún no ha
caído el arma. Si es cierto,
permítanme simplemente lamer
aquí y
promoverlos a una variable. Y llamar a este jugador
que interactúa. Déjame ponerla aquí. Adelante y ponlo a hacer algunas notas de reencaminamiento para que
se vea mucho mejor Ahora cuando hayamos
establecido esta variable, lo que podemos hacer ahora es ahora
aquí en el completo, cuando encuentre a mi jugador que
interactúa, quiero tomar esto
y romper el bucle. Recuerda, siempre
rompa el bucle para que no
tengas ninguna caja aquí. Tu código también estará mucho más optimizado porque
no recorres todo. Rompo el código,
rompo el bucle. Ahora tengo al jugador que
interactúa. Lo que puedo hacer ahora. Ahora tenemos que revisar
el inventario. Porque no necesitamos
ejecutar todo esto aquí. Ya lo hicimos aquí arriba. Por lo tanto, tenemos que revisar
directamente el inventario para el jugador que
interactúa. En lugar de tomarlo de aquí, en realidad solo puede tomar
al jugador
que interactúa ahora corre a través de esto aquí arriba, un jugador y tú corres
por esto aquí. Lo que puedes hacer es simplemente dar
clic derecho sobre éste
y promocionarlo. O simplemente llévala aquí. Este es el jugador que interactúa. Ahora bien, si es solo un jugador
y va a pasar por esto y ejecutar esto
correctamente, puedes hacerlo. En lugar de hacer todo
eso,
siempre puedes simplemente tomarlo de
aquí ahora y conectarlo a aquí para que pueda mover mi código un poco para que
no esté demasiado estropeado Así como así. Ahora solo estoy usando este jugador
que interactúa. Puedes tomar esto y enchufarlo aquí. En realidad,
no así. No sé por qué lo configuré, lo arrastro, lo enchufé aquí. En vez de ir
directamente de esto, ahora solo estamos usando esta, esta variable que establecemos. De hecho voy a borrar este y solo
conectarlo a cada uno de ellos. Así como así. O
lo que puedes hacer. De hecho voy a
usarlo varias veces. Voy a usar el jugador que
interactúa aquí. También voy a copiarlo aquí
abajo en este caso. Y no necesitas este. Sólo puedo enchufarlo
directamente, así como así. También puedo enchufarlo aquí. Solo estoy reemplazando
esas notas
de arte traseras que se vea mucho mejor para que se vea mucho mejor porque esta va
a esta de aquí. Voy a eliminar
las notas de arte traseras. Y solo enchufarlo aquí, eso se ve mucho
mejor que antes Ahora estamos recorriendo esto. Estamos configurando al jugador que
interactúa, y ahora estamos
recorriendo el inventario Bien, así que ahora lo
he organizado. Ahora como puedes ver, estamos tomando la variable player interactuando y la estamos ejecutando a
través del código. Nos estamos asegurando de que sea el jugador que interactúa el que puede interactuar con todo esto. Probemos este código.
Vamos a hacer clic en play. Y juguemos como
terroristas, por ejemplo. Déjame jugar como el cliente. Nuevamente, seleccione Terrorista. Déjame simplemente mucho algo. Déjame saquear esta pistola. Voy al jugador, lo voy a dejar caer
al jugador. El jugador
debería saquearlo. Voy a dejarla caer de nuevo. Ahora puedes ver a este
jugador lo saquea. Voy a dejarla caer de nuevo.
Este jugador lo saquea, lo voy a dejar caer de nuevo. Ahora puedes ver que ahora está funcionando y todo
está funcionando bien. Si lo dejo aquí, no
puedo interactuar con
él a menos que salga de esta esfera y vuelva a
tropezar con ella. No obstante, aunque
esté frente a mí, este tipo puede saquearlo
sin ningún problema Ahora puedes ver que todo
está funcionando correctamente ahora. Impresionante. Ahora
en realidad se ve más de un juego en lugar de
sólo un prototipo. Nos estamos acercando más a nuestro objetivo y puedes ver que
todo se ve bien Es muy divertido
jugar y será mucho más divertido ahora cuando agreguemos el rodaje y la
recarga y así sucesivamente Como puedes ver, todo
está funcionando bien. Si de alguna manera
noto alguna caja en el futuro, voy a hacer algunos
videos para eliminarlos. O siempre puedes visitar Pixel Helmet.com o puedes
visitar mi servidor de Discord Si encuentras alguna caja de alguna manera
que no me di cuenta, siempre
estoy arreglando esas y
mostrándote cómo arreglarlas, pero por ahora
realmente no podemos ver ninguna caja. Todo
parece funcionar perfectamente. Voy a mejorar
el juego más adelante. Por ejemplo, podemos mejorar
lo que pensemos que se ve mal. Parece principiante como que siempre
podemos arreglarlos. Aquí lo estoy probando como
servidor y clientes. También se lo puedo dejar caer
al cliente. Pueden dejarlo caer de un lado a otro. Lo puedo dejar caer al suelo. El otro jugador puede entrar
dentro de él, saquearlo. Puedo dejarlo aquí
como el servidor. El cliente también puede toparse con
él y saquearlo. Se puede ver que en realidad no
tenemos ninguna caja en este momento y todo está funcionando
perfectamente en el futuro. Nuevamente, puedes volver a visitar mi sitio web
o servidor de Discord, Pixel Helmet.com y me
aseguraré de que si hay alguna caja de alguna manera que aparezca
durante el desarrollo del juego, siempre
podamos arreglarlas Pero por ahora,
todo está funcionando. Todo está bien.
Pasemos a la siguiente lección.
111. 8.26 Arma de saqueo con clave de teclado: Ahora sigamos adelante y agreguemos algunas teclas del teclado
para saquear las armas Antes de hacer eso, quiero
aumentar mi tamaño de UI. Alguien me dijo
que es difícil de
seguir cuando mi UIize es pequeña Si también quieres aumentar
el tuyo, puedes hacer clic en Herramientas y luego
depurar y luego reflector widgit Voy a aumentarlo a 1.2 Tal vez sea más fácil
para ti seguirlo. Puedes ver que mi interfaz de usuario es
más grande ahora avísame si esto ayuda o si
debo volverla a una. Con eso hecho,
sigamos con
la entrada y hagamos una
nueva acción de entrada, ¿verdad? Nuevamente, puedes hacerlo
tú mismo si así lo deseas. Ya hicimos muchos de ellos. Hagamos clic derecho y vayamos a
Entrada y vayamos a la acción de entrada. Llamemos a esto un lote arma. Entonces para esta,
sigamos adelante dentro de la acción de
mapeo de entrada. Voy a hacer clic en el plus aquí
arriba y bajando aquí y agregando este lote acción de entrada de
arma. Voy a presionar a mi Ekey para
saquear el arma otra vez. Por aquí para los disparadores, voy a configurarlo para que presione, siga
adelante y ahorre,
ciérrelo. Volvamos al jugador. Bien, dentro de aquí. Por cierto, vamos
a limpiar todo esto muy pronto en un
par de lecciones. Porque se puede ver
que hemos hecho mucho y
también necesitamos organizarnos un
poco antes de continuar. Antes de hacer esto,
bajemos aquí y hagamos
clic derecho y busquemos
el arma A lot. Y elige ese evento. Bien. Lo que quiero hacer
es cuando presiono mi EK, quiero lanzar cualquier
arma que esté debajo de mí. Lo que tenemos que hacer
es hacer una nueva función porque ya tenemos
una aquí. Déjame ver aquí. Ya tenemos esta
llamada Lot arma. Este lote arma. Recuerda
que agregamos un arma solapada de aquella que llamamos
el arma de botín Básicamente no es
saquear arma directamente. Es más como si estuviéramos
solicitando saquear un arma si encontramos
un arma superpuesta Si puedo volver a encontrarlo aquí, si encuentro un arma superpuesta, entonces puedo seguir adelante y saquearla Hagamos un nuevo evento personalizado. Y a esta la vamos a
llamar pedir mucho arma. Y vamos a ejecutarlo a través
del servidor y confiable. Y vamos a llamarlo aquí
cuando presionemos sobre el Ekey. Llamemos SRV
solicitar mucho arma. Bien, entonces primero
vamos a comprobar si estamos superponiendo alguna arma
porque no queremos
reproducir el código. Si estamos aquí
parados y no
tenemos armas debajo de nosotros, eso no tendría ningún sentido. Vamos a hacer clic derecho y decirlo. Actores superpuestos. Y cambiemos
éste a base de armas. Nos estamos asegurando de que nos
superpongamos con un arma. Golpeemos desde aquí
y digamos que no está vacío. Esto solo comprueba
que en realidad nos estamos superponiendo con un
arma. Por lo menos. Vamos a golpear aquí
y hacer una rama, y seguir adelante y conectarlo. Cuando tenemos un arma aquí, si no está vacía, esto significa que estamos superponiendo
con un arma. Tenemos que verificar si ya
tenemos esta arma
en el inventario. Porque si ya estás
sosteniendo esa arma sea en tu espalda
o en tu mano, tienes que dejar caer
tu arma actual. No puedes tener dos pistolas a vez y no puedes tener
dos rifles a la vez Por supuesto, puedes hacerlo por tu propio juego,
pero para este juego
que estamos creando, solo
puedes tener
un rifle, pistola, una granada o cuchillo o
lo que sea para este Digamos aquí, intentemos
encontrarlo en nuestro inventario. Recuerda, ya estamos
haciendo todo esto. En realidad sólo
voy a tomar esto y copiar todo esto aquí. Voy a copiar esto aquí
arriba y pegarlo aquí abajo porque estamos
tomando el inventario y luego estamos comprobando si ya
tenemos esta arma a través
de este tipo de arma, para este tipo de aquí abajo, es simplemente el arma
que estamos superponiendo. Entonces voy a arrastrar
de aquí y decir consigue. Y luego vamos a conseguir una copia. Y vamos a obtener
el índice de uno. Si estamos superponiendo
múltiples armas, sólo
estamos obteniendo el índice de cero aquí y
vamos a comprobarlo aquí. Bien, entonces lo que tenemos que hacer, igual que antes, tenemos que
obtener el nombre de éste. Realmente no podemos decir nombre de
arma en este momento y obtener esta variable
porque esta, si sostienes el mouse sobre
ella, es solo una referencia general de objeto
actor. ¿Recuerdas esta?
Se trata del BP, objeto basado en
armas
u objeto de referencia. Y así, si solo tienes
un general al que hacer referencia, primero
tienes que convertirlo en
esta base de armas. Para este tenemos que
obtener la referencia de arma. No creo que lo
hayamos hecho aquí. En las interfaces que no hemos
hecho, obtener referencia de arma. Nuevamente, intenta hacerlo
tú mismo porque lo
hemos hecho antes,
solo para practicar. Intenta hacer que una función obtenga referencia de
arma e
intente usarla aquí. Bien, si no te acuerdas,
hagámoslo juntos. Hagamos clic derecho, vaya a Blueprint y elija Interfaz de
blueprint Llamemos a esto una
base de armas. Vamos a abrirla. Digamos que consigue arma
F. Ahora vamos a compilar. Aquí abajo, tienes que seleccionar
a qué Eva estás tratando de
hacer referencia. Estoy tratando de hacer referencia a la base de armas y
seleccionarla y llamarla arma. Vamos a compilar y
guardar todo. Volvamos aquí. Déjame pensar en las armas, abramos la base de armas. Y vamos ahora a
la configuración de clase y agreguemos la interfaz
aquí abajo llamada Weapon Base. Adelante y selecciona Compilar. Y ahora puedes
abrirlo aquí en las interfaces y puedes
rastrear desde aquí y decir yo mismo. Esto es una autorreferencia. Ahora hemos definido
esta variable. Ahora lo que podemos hacer es
volver a la base de jugadores y aquí podemos arrastrar y
decirlo, referencia de arma. Ahora tenemos una referencia
a esta base de armas. Y ahora convertimos esta referencia de actor
general a un actor base de armas
o referencia de objeto. Lo que podemos hacer es que podemos
arrastrar esto ahora hacia aquí, iniciar sesión como antes. Vamos a arrastrar y decir,
en realidad solo podemos copiar y
pegar todo esto. Sólo vamos a copiarlo.
No tenemos que escribirlo 100 veces.
Adelante y conéctalo. De hecho voy a
arrastrar este por debajo de este aquí y
conectarlo por aquí. Arrastremos de aquí y hagamos una rama y conectemos esta. Bien, así que justo antes de que
nos confundamos demasiado, tal vez lo que estamos haciendo aquí es estamos consiguiendo esa arma con la que
nos estamos superponiendo. Y ahora estamos
recorriendo el inventario. Estamos tratando de ver si
ya tenemos esta arma. Si simplemente no hago clic para hacer una nota trasera para que
puedan ver lo que está pasando. Lo que estamos haciendo es
que estamos recorriendo el inventario y estamos comprobando si ya tenemos este tipo de
arma en nuestro inventario Si tenemos este tipo de arma, tenemos que soltarla primero. Digamos que estoy
saqueando un AK 47 y ya
tengo un
M41 en mi espalda Tengo que dejar caer ese 41. Entonces tenemos que soltar arma. Recuerden que ya
hicimos esa arma de caída. A eso lo llamamos. Ahora no necesitamos llamar a
este evento desde aquí. Esto se debe a que en realidad
estamos recorriendo el inventario No necesitamos hacer eso porque ya lo
estamos haciendo aquí. En realidad tenemos esta parte aquí, pero lo que necesitamos es
esta parte donde la hagamos para
que el jugador no pueda
interactuar con el arma. Y el arma
se dejará caer y así sucesivamente, y se retirará
del inventario. En realidad también establecemos
este tipo de arma. Necesitamos todo esto, puedes
pegarlo aquí abajo. Sin embargo, para una buena práctica de
codificación, en lugar de simplemente copiarlo pegándolo, mejor convertirlo en una
función para que podamos volver a usarlo Adelante y aquí en el servidor, suelte el arma de este. Selecciona todo esto, solo tienes seleccionarlo todo aquí
sin esta sucursal. Y haga clic derecho ir a colapsar. Para funcionar, hacemos
esto en una función, llamemos a esta función
drop weapon. Arma de caída. Déjame hacer doble clic
aquí para hacer un nodo trasero. Se redoble para
este pin de entrada. En realidad es si haces doble
clic en esta función, solo
hago que sea un poco mejor
para mirarla ahora mismo. Se puede ver que aquí está un
poco desordenado. Aquí termina. Déjame ver si realmente
necesitamos hacer algo. Después de lo verdadero,
deja caer el arma y luego vuelve
y rompe el bucle. Eso se ve bien. Realmente
no necesitamos hacer nada por aquí. Bien, entonces ahora se
ve mucho mejor. Vamos a compilar y guardar ahora
para este pin de entrada aquí. Vamos a llamarlo arma para soltar. Bien, estamos haciendo todo esto igual que antes y
solo estamos parando el bucle. Sólo estamos haciendo lo
mismo que antes. Pero ahora lo convertimos
en una función. Y ahora podemos usar
esta función. Si bajamos aquí ahora y nos
enteramos de que tenemos
esto en nuestro inventario, ya
podemos tomar esta arma.
Y ahora podemos seleccionar. ¿Qué arma quieres dejar caer? Quiero dejar esta arma en mi inventario
que acabo de encontrar. Para que pueda arrastrar de esto,
enchufarlo aquí. Voy a hacer click para hacer notas de rock. Bien, ahora bajamos al arma. Lo siguiente que tenemos que hacer es que tenemos que agregarlo a
las superposiciones aquí Porque cuando
lo agregamos a las superposiciones, recuerden que lo agregamos
a la matriz de superposición y luego seguimos adelante y
comenzamos a saquear el arma Tenemos que llamar a este
anuncio arma de superposición. Bajemos aquí y digamos
agregar arma solapada. Y ahora tenemos que seleccionar de qué arma
estamos hablando? El arma del que estamos
hablando es ésta. Recuerda, no es ésta. Porque no se puede arrastrar de
aquí y enchufarlo a aquí. Esto no va
a funcionar porque recuerda que esto es solo una referencia normal de objeto
actor. Y éste necesita una referencia de objeto
base de arma. Recuerda, ya
hiciste esto aquí arriba. Para que puedas arrastrar de
éste y conectarlo a aquí. Nuevamente, haga doble clic para
hacer notas de reencaminar. Aquí lo tienes.
Recuerda cuando encontraste esto en tu inventario y
terminaste con todo esto, recuerda arrastrar de este
y también romper el bucle, para que no continúes el bucle. Así que de nuevo, haga doble clic y
haga en las notas aquí también. Bien, antes de que terminemos
esto aquí en el bucle, recuerda cuando
sueltas un arma también, si vas aquí arriba
por el arma de caída, tienes esto donde la colocaste
para que se interactuara de
nuevo y así sucesivamente Así que vamos a copiar todo esto de nuevo, y vamos a bajar aquí
y pegarlo en aquí. Así como así, porque
recuerda que estás usando esta arma de caída y
dentro de aquí la estás haciendo para que no puedas
interactuar con un arma. Entonces tienes que hacerlo para que
puedas interactuar de nuevo. Y eso lo agregamos
al completo. este momento si haces clic en reproducir y ya podemos
seleccionar Terrorista. Vamos a correr por ahí, recoger
esas armas. Ahora bien, si hacemos clic en la K, se
puede ver que nada está pasando
realmente en estos momentos. Si me mudo y luego
otra vez algo está molestando. Y también tenemos un error aquí. Si hago clic en él,
es solo decir que este no se puede encontrar.
No te preocupes por este. Esto está relacionado con
otra cosa que arreglaremos más adelante. Pero por ahora
se puede ver se me cayó el arma y le agregué el
solapamiento para el arma, pero por alguna razón no la
está recogiendo. En lugar de quitar esto del video y en lugar de
darte la solución, intentaré mostrarte cómo
suelo depurar errores. Este es un buen lugar para hacerlo. Ahora estamos soltando el arma. Entonces sabemos que todo
este código funciona. Porque llega al
punto en el que realmente te suelta
el arma. Pero algo sale
mal aquí desde el arma de superposición de agregar
para lo primero. Ahora cuando depuras, tienes que agregar cadena de impresión. A este evento lo llamamos aquí. Déjame agregar aquí una cadena de
impresión. Busca cadena de impresión, selecciónela y debería
saludar por aquí. Cuando aludiste,
selecciono Terraza. Ahora voy a la AK. Déjame, en realidad,
no recogí este. Permítanme hacer click aquí. Se puede ver en la esquina
de aquí arriba, dice Hola. El código llega a
esta parte correctamente. Ahora necesito verificar
si esto es correcto. Ahora creo que esta
está mal. Pero podemos. Lo primero aquí,
sólo voy a comprobar aquí si esta vez realmente está
funcionando o no. Vamos a hacer clic en Reproducir.
Seleccione Terrorista. Adelante y selecciona
o recoge esto. Da click aquí en el AK y no
podrás ver nada imprime. Ahora sé que esta
parte del código funciona, pero esta parte no funciona. Nunca llega al punto que realmente
carga el arma. Hay algo mal aquí
con esta parte del código. A lo mejor nunca se abre. Esta nota nuevamente. Dice que puede cargar arma otra vez. Recuerda que este
es un nodo y
solo hace este código una vez
hasta que abrimos aquí, restablecemos este nodo. Hace esto otra vez.
Hay algo con este lote arma otra vez, puede mucho arma otra vez, estamos llamando aquí arriba. Hay algo
mal con esta parte. A lo mejor no estamos quitando cosas correctamente de
estas armas de regazo ovalado. Lo que podemos hacer es que
siempre podemos hacer clic aquí
e imprimir cadena. Sólo vamos a imprimir una cuerda
aquí y ver qué pasa si hago clic en reproducir ahora y
me llevo al terrorista. Mucho todo esto. Ahora
lo ves quitado. En lugar de hacer todo
esto, solo
rompamos con este índice.
En realidad sabemos lo que es. Eliminando el taponamiento de superposición, estamos obteniendo el índice
y lo estamos quitando Déjame simplemente enchufar esto
en su lugar aquí, realidad
puedo ver
lo que estoy quitando. Phyclicplaylutephld.
Retirar el ph. Hace eso como
puedes ver aquí. Si saqueo la pistola, debería
quitarla, pero se puede ver que
nada está imprimiendo Eso es
porque sólo está quitando el Inp pero no la pistola Algo está mal y lo que estamos haciendo
mal aquí es ahora mismo solo
estamos quitando estas cosas siempre que estemos en
el estado desarmado Si hago clic en Reproducir y jugar ahora, siempre que esté en
el estado desarmado, ahora mismo se está
quitando correctamente Sin embargo, si ya no estoy
desarmado, en realidad
va a
ejecutar este código aquí Y nunca ejecutará
esta parte del código. Lo que tenemos que hacer aquí, aunque no estemos desarmados, tenemos que quitar todo lo que
saqueemos después de la primera Si saqueamos la información, ya no
estamos desarmados Cuando saqueamos la pistola
, corre esta parte y no
hacemos nada En realidad, lo que tenemos que
hacer es directo desde aquí y también quitar la pistola que
saqueamos después de la info Así que adelante y
conéctalo a este remove. Y vamos a compilar ahora. Vamos a hacer clic en Reproducir y
ver si nuestro código funciona. Ahora si saqueo este, ahora si vamos al AK
y si hago clic en E, ya pueden
ver que
funciona correctamente Si voy a éste, en realidad saqueé la pistola, se
le dio un micrófono. Esto es algo que
arreglamos en la siguiente lección, pero por ahora puedes ver la información está funcionando y
cuando
superponemos la pistola, necesitamos arreglar este problema
y vamos a hacerlo. Pero se puede ver que está saqueando los fusiles correctamente, ya
nada malo. Esto es lo que hicimos
dibujando antes. Tienes que añadir algunas notas
reescritas también aquí. Bien, vamos a compilar. Lo siguiente es, ya ves aquí, si presionamos en E, simplemente
sigo haciendo spam en mi
teclado y me gusta escapar Se puede ver que aquí tenemos algún
error y dice, Access non trying to read
the property saqueado arma Aquí se pone algún error y vamos a estar arreglando
eso en la siguiente lección. Así como la era aquí abajo
que da a veces. Por ahora todo está funcionando, guardemos todo y
pasemos a la siguiente lección.
112. 8.27 Establece correctamente el tipo de artículo equipado: Bien. Antes arreglamos el
acceso, no errores. Ahora mismo lo que puedes ver
aquí es cuando hacemos clic en play y saqueamos la
info y la pistola Y cuando voy a
una pistola y presiono E, cambia
a ese modo de vista de
pistola. Esto es porque recuerda
en el arma de caída que
definimos que solo
debes cambiar a desarmado cada vez
que sueltes el arma Ahora tenemos que mejorar esto y porque cuando estás
sosteniendo un rifle, no
queremos
cambiar a desarmados O cuando estás cambiando
el arma que tienes en la espalda, no
quieres
cambiar a desarmado Lo que podemos hacer
aquí, muy sencillo, es que podemos llevarnos el arma
equipada. En este momento, tipo de arma equipada. Tratemos de preguntar si es lo mismo que lo que sea que
estemos dejando caer. Si el tipo de arma equipada es el mismo que el arma
que estamos soltando, significa que debemos
ir a los desarmados No obstante, si estamos soltando un arma que
no estamos sosteniendo en estos momentos, no
debemos ir a los desarmados porque
estaba en nuestra espalda Y no necesitamos cambiar
el tipo de arma aquí. Arrastremos de
aquí y digamos igual. Tomemos el arma que
estamos dejando caer ahora mismo. Vamos a arrastrar desde aquí. Digamos, por
ejemplo, nombre de arma. Consigamos de nuevo el nombre del arma. Digamos obtener información de armas. Éste. Rompamos esto. Tomemos el tipo aquí y lo conectemos. Y pregunta si es lo mismo aquí. Conectemos esta rama y
permítanme simplemente organizar esto. Ahora lo que estamos preguntando es, es el arma que estamos soltando, ¿es del mismo tipo
que la que tenemos ahora mismo? Si es así, vamos a
cambiar a desarmados. Si no lo es, no
vamos a hacer nada. No vamos a cambiar. Compilemos ahora y
veamos si funciona. Entonces, si voy aquí y cojo el rifle y si hago
clic en la pistola, pueden
ver que cae la otra pistola que
sostenía ahora, ya no está cambiando al estado de movimiento
equivocado. Si yo también hago ruido a éste, se
puede ver que está pasando
lo mismo, ¿de acuerdo? Ahora bien esto está funcionando y
lo único en
estos momentos es que conseguimos algún eje no era. Y hagámoslo. Arreglemos
eso en la siguiente lección.
113. 8.28 Arregla el error de saqueo de "No se tuvo acceso": Bien, entonces el problema
ahora mismo con el access non es si estamos
tratando de spam de la clave. Si solo sigo spamming la clave
E para saquear un arma, me
da un acceso no Si sólo lo intento aquí. Si trato de spam la
clave así como así y hago clic en escapar
porque vemos estamos consiguiendo esta era diciendo acceso, tratando de leer la
propiedad, arma saqueada Este no acceso significa
que esta variable está vacía. Y esto probablemente se deba a
que lo estamos reiniciando aquí arriba. Y no tiene la oportunidad de
procesar todo el código antes de que
intentemos saquear de nuevo Porque si envias
spam a la clave de botín, simplemente
estás haciendo spam a
todo este código aquí Y eso, llega a este
punto y luego llega este punto también
al mismo tiempo y dice acceso
ninguno. Se confunde. Lo que podemos hacer es que podemos pausar al jugador de saquear cada vez que realmente esté
saqueando el arma Si voy por aquí y
hago una nueva variable, llamemos a esta variable arma de
saqueo Compila éste cuando
estemos saqueando el arma. Tomemos esto y
digamos saquear arma, ponerla en verdad Siempre que termine de
saquear el arma, podemos tomar esto y decir falso Bien, Esto evita que el jugador
haga spam en el código. Tenemos que hacerlo por aquí
cuando estamos presionando la tecla, tenemos que decirle al jugador que no puedes hacerlo
siempre que estés saqueando Arrastre de aquí y diga que no toro. Cuando no estás
saqueando un arma, podemos seguir adelante y
hacer una rama y decir ahora puedes seguir adelante
y solicitar mucho arma Cuando éste se pone en verdad por aquí,
cuando empieza
a saquear el arma, no se
puede hacer nada Pero cuando terminemos de
saquear el arma por aquí, entonces puedes seguir adelante y
solicitar saquear una nueva Ahora bien, este te va
a dar un problema, y tal vez ya puedas
ver cuál es el problema. Ahora bien, si voy como cliente y trato de
saquear el arma aquí, puedes ver que me está
dando un problema Ahora mismo, si recuerdas
estamos en multijugador. Y este ahora mismo, lo
estás configurando
a través del servidor y por aquí estás tratando usar esta variable en el cliente. Recuerda, puedes arrastrar y escribir una cadena de impresión para ver si
estás en el servidor
o en el cliente. Si juego aquí como el
servidor y presiono, se
puede ver imprimo
hola como el servidor. Pero si juego aquí
como cliente, ahora juego y presiono. Se puede ver que estoy spamming
esto como el cliente. Puedo reproducir este código a través
del servidor y del cliente. Esto significa que
también estamos en el cliente. Cuando estamos aquí abajo, estás usando la variable
en el cliente, pero la estás
configurando en el servidor. Recuerda como servidor,
tienes que replicar la información de nuevo al cliente, lo contrario el cliente no tiene ninguna posibilidad de saber si esto
es verdadero o falso Cuando configuras algo en el servidor y
necesitas usarlo en el cliente, tienes
que replicar esa información de nuevo
al cliente. Vamos a
compilar y guardar. Entonces ahora si juego como cliente y sigo
adelante y hago clic en play, probémoslo
aquí como terrorista. Vamos a recoger las armas y dejarme ir
a K. Presiono, todo está funcionando ahora. Bien, está funcionando. Y también puedo
cambiar mi pistola en la parte posterior y puedo
cambiar esta también. Tienes que hacer esto
si envío spam ahora, spam de mi clave de lote, establecer un retraso si así lo deseas Si no quieres que el jugador
cambie esto rápidamente, puedes establecer un retraso para el saqueo Pero como puedes ver aquí, está funcionando correctamente. Y si hago clic en Escape, puedes ver que no
obtenemos ningún error. Esto se debe a que en realidad está
esperando que esto sea falso antes de que el jugador tenga la oportunidad
de volver a saquear Pero el jugador no se da cuenta de esto porque el código se está
ejecutando muy rápido. Pero ahora hemos puesto esta barrera y todo
está funcionando correctamente. A veces si
dice error con armas, estás tratando de caer. Si estás tratando de jugar
aquí y estás tratando spam la clave y
presiono en escapar. Ahora mismo no estoy
recibiendo ningún error, pero si consigues una
era en el futuro, siempre
puedes tomar esto. Esta es la época que teníamos antes. Puedes hacer clic derecho para convertir
esto en un get validado, asegúrate de que sea válido
antes de que hagamos todo esto. Sí, así es como te deshaces
de la era antes de que tuviéramos donde en realidad obtuviste una era
al dejar caer el arma. Se puede ver que estoy
tratando de spam. No está pasando nada.
Creo que está arreglado. Pero si tienes ese problema, siempre
puedes hacerlo. Vamos a compilar y
guardar todo. Por ahora. Pasemos
a la siguiente lección.
114. 8.29 Limpia el código: Bien, entonces antes de continuar, lo que quiero que hagas es
que limpies todo
este proyecto
porque se está haciendo bastante grande y necesitamos
arreglar algunas cosas. Si podemos optimizar las cosas y
podemos comentar algunas cosas, será mucho
mejor hacerlo ahora que después antes de que se
vuelva demasiado complejo. Entonces lo que quiero
que hagas, por ejemplo, puedes ir
aquí al Comienzo. Jugar. Intenta hacer apuntes de ruta trasera si no lo tienes ya. Y puedes seleccionar todo. Da click en C en el teclado y podrás, por ejemplo,
escribir comenzar, Reproducir. Eso es mejor que no
tener nada aquí en el código. Y
puedes hacer click en él. Puedes hacer click en
el color del comentario, Puedes cambiar el
color del comentario a algo. Por ejemplo, puedo elegir
este color azul púrpura. Puedo bajar la saturación 20.75 y puedo poner el
alfa 20.25 por ejemplo Solo trata de estilizar esto
lo mejor que puedas. También, por ejemplo, puedo
hacer el texto a 24 en su lugar, así puedo leerlo mucho
mejor cuando estoy alejada. Pero se puede ver aquí. Y también
puedes guardar el color. Si haces clic aquí y puedes hacer clic y arrastrar esto aquí arriba, eso es seguro. Ahora cuando comentes algo aquí
abajo, por ejemplo, déjame arrastrar todo esto y moverlo hacia abajo
diesel como este. Entonces no arrastre esto hacia abajo, arrastre todo esto
hacia abajo, por ejemplo. Puedes comentar esta parte porque esta
parte es para los pasos Lo que puedes hacer es que puedes hacer click en esta, por ejemplo. Puedes llamar a los efectos de sonido Playing the
Footsteps. De nuevo, igual que antes,
voy a hacer el frente más grande. Y puedes dar click aquí arriba
y dar click en este color. Y esto aplicará
automáticamente cualquier configuración que
hayas hecho aquí arriba. Bien, entonces quiero que
comentes todo. Intenta que todo sea lo más
organizado posible. Y además aparte de esto, voy a hacer los
comentarios en mi propio tiempo libre, que no tengas que
mirarme haciendo comentarios
de todo. Pero solo recuerda que
puedes hacer comentarios con comentarios. Tienes éste
y digamos que yo quería incluir el
movimiento con éste. siempre puedas seleccionar todo con el
comentario de aquí. Y puedes hacer un nuevo
comentario y por ejemplo, llamar a este movimiento. Entonces tienes un comentario principal. E incluso puedes comentar cosas
pequeñas dentro
de aquí también. Pero por ahora, voy a
hacer eso en mi tiempo libre. Lo que es más importante en este
momento es ver si
podemos mejorar el código de
alguna manera. En realidad podemos. Si bajamos por aquí, pueden
ver que ya hemos
usado este antes. Muchas veces estamos tomando el inventario y
vamos a entrar en un bucle y estamos tratando encontrar este artículo dentro
del inventario. Estamos haciendo eso
bastante tiempo aquí. Un par de veces.
También podemos ver que lo estamos haciendo aquí. Así que estamos
recorriendo el inventario y estamos obteniendo
este tipo de artículo Creo que hacemos eso algún otro lugar que no
puedo encontrar en este momento. Pero por ahora, vamos a
convertir esto en una función y esto
va a ser mucho mejor lo que podamos hacer.
Sólo vamos a copiarlo por ahora. Vamos a copiar esta parte
del código de aquí. También copiemos este igual. Vamos a copiarlo y
pegarlo por aquí. De hecho, podemos convertir
esto en una función. Lo que podemos hacer es
seleccionarlo todo. Haga clic derecho. En realidad no se puede convertir en una función porque
tenemos una macro. Si dices colapsar para funcionar, dice error y
puedes mostrar el mensaje. Y dice que sólo puede
tener un pin de ejecución. Y se puede ver que este
tiene muchos pines de ejecución. Lo que puedes hacer es hacer clic
derecho y contraer esto a una macro. Para esta macro, la diferencia entre una función y una macro es simplemente que una macro puede
tener múltiples pines de ejecución. Y las funciones solo pueden tener
una entrada y una salida, mientras que las macros pueden tener
múltiples pines de ejecución. Y puedes ver
aquí, esta rama que estamos usando es en realidad una macro y tiene múltiples pines de ejecución para
esta macro que acabamos de crear. Déjame dar click aquí
y dar click en dos. Llamemos a este M para macro. Llamémoslo Buscar Tipo de
Arma en Inventario. Esto es simplemente lo que está haciendo. Se trata de encontrar
el tipo de arma dentro de nuestro inventario. Hagamos un nuevo pin
de ejecución aquí. Si solo escribes
ejecución, creo que ejecutas. En realidad, si haces
clic en esto aquí, el tipo, si
solo escribes ejecutar, en realidad
eliminaremos
el texto de aquí. Ese es un secreto
para la escritura macro ejecutar. Vamos a conectarlo aquí. También necesitamos un
pin de ejecución para romper esto más adelante. Déjame hacer un nuevo pin de ejecución. Llamemos a esto un bucle de ruptura. Bien, ahora tenemos eso. Déjame conectar esto aquí abajo. Y también necesitamos un
insumo para éste. Vamos a meterle a este aquí. Déjame moverlo una vez. Si hago clic y
arrastro esto aquí arriba, cambiemos el
nombre por éste. Y esta es tipo de
arma para encontrar, estamos tratando de encontrar
este tipo de arma dentro de nuestro inventario. Simplemente siga adelante y haga
doble clic en esto y haga algunas
notas de reencaminamiento también Bien, aquí afuera
en la salida, necesitamos tener todo
esto dentro de aquí. Ahora primero tomemos este
cuerpo de bucle y lo coloquemos aquí. Y ya dice
cuerpo bucle. Eso es correcto. Tomemos ahora éste
y colóquelo aquí. En lugar del valor de retorno. Estoy diciendo arma
encontrada y podemos hacer una rama para ver si
esto es cierto o falso. Ahora por otra cosa,
voy a enchufar el terminado. Vaya, no
así. Tomando esto, enchufándolo aquí Y voy a solo para
aclaración bucle completado, también
necesitamos la referencia de
arma más adelante para que podamos hacer
algunas cosas con ella. Y voy a
moverlo aquí arriba, vamos a llamarlo arma ahora. No importa si se
mueve aquí abajo, por ejemplo. Si muevo esto aquí abajo o lo muevo aquí arriba, en realidad no
importa. Es solo mantenerse
limpio con el código. Pero solo me gusta
tenerlo de esta manera. De nuevo, voy a hacer doble
clic en esto y hacer algunas
notas de ruta así como para este pin de
ejecución por aquí. Bien, entonces aquí
lo tenemos y vamos a compilar. Ahora
volvamos a la gráfica de la camioneta. Y ahora se puede ver que
esta es la macro que hemos creado. Ahora podemos usar
éste en su lugar, látigos. Si me acerco de nuevo
para esta arma de caída. En lugar de hacer esto,
ya estamos haciendo un bucle dentro de aquí Lo que puedo hacer es
que puedo borrar esto y puedo enchufar este
en su lugar. Déjame alejarlo un
poco para que pueda ver lo que estoy haciendo. Ahora. En lugar de hacer todo esto, ya lo
estamos haciendo. Borremos éste también. Este tipo de arma equipada. Podemos tomar esto y
enchufarlo aquí. En cambio. Esto es,
recuerda que esto es lo que
estamos tratando de comparar
con nuestro inventario. Esto es
lo mismo que antes. Y si conecto este bucle y
conecto esta rama con aquí. Ahora veamos, esta arma. Esto es lo que necesitamos usar
para el arma de caída. Cuando hayamos encontrado el arma, voy a eliminar
estos tres nodos de ruta. Voy a
acercar esto a aquí. Y rompamos el bucle
después de que se nos caiga el arma. Este código es igual que antes. En realidad solo está optimizado. Aquí no hicimos algo nuevo. Solo estamos creando esta macro para que se vea mejor
y más limpia. Sí, cuando el bucle esté completo, conectemos todo esto de
nuevo, igual que antes. Ahora puedes ver que está
mucho más limpio que antes. Así es como optimizas el código. Ahora puedes usar esta. Permítanme organizar
esto un poco más ahora. Podemos tomar este tipo de
arma hallazgo en inventario. Podemos, veamos aquí
por aquí donde
intentamos encontrar el artículo nuevamente en el inventario.
Vamos a arrastrarlo. Eliminemos éste. Y borra esta también. Déjame conectarlo
por ahora en el cuerpo de bucle. Al igual que antes,
estamos conectando esto, todo esto aquí
ya lo estamos teniendo
dentro de la macro. Voy a borrar todo esto. Y éste también.
Este es lo que estamos tratando de comparar
este tipo de arma a partir de
la información del arma. Lo que realmente podemos hacer,
aunque parezca un poco confuso, podemos arrastrar esto y volver a
ponerlo aquí en el tipo de arma
para encontrar de nuevo, haga
doble clic para hacer en las notas
solo para que se vea mejor. Lo que esencialmente estamos haciendo
es lo mismo que antes. Sin esta macro, solo estamos
encontrando el tipo y lo estamos enchufando para compararlo con el tipo
de arma del inventario Debería hacer lo mismo. Déjame echar un vistazo por aquí. Está pasando por la sucursal. Recuerden que vamos a
dirigir esta sucursal aquí. También hagamos doble
clic en esos para hacer
notas de ruta trasera para este. Para esta arma aquí, arma para soltarla es del inventario. Entonces estamos tratando de soltar el
arma del inventario para que puedas arrastrarla
aquí y conectarla. Bien, ahora todo
está conectado. Y recuerda romper
el bucle desde aquí. Nuevamente, arrastre, rompa el bucle. Solo quiero ver si
realmente recuerdo hacer esto también para el
otro, y lo hice. Bajemos, y voy a
alejar esto un poco más. No se superponen,
así como así. Bien, compila y ahora
para que el bucle esté completo, volvamos a conectar este
de aquí abajo está El arma, estamos tratando soltar el arma
del inventario. Y es el arma que
estamos tratando de saquear. Que vamos a estar superponiendo
con igual que antes, pero acabamos de hacerlo
mucho más limpio que antes. Así que siempre es agradable
jugar el juego y sólo para probar y ver si todo está
funcionando como se esperaba. Entonces ya puedes ver que está
funcionando igual que antes. Sí. Entonces todo está funcionando. Hay un pequeño error
ahora mismo con el código, y eso está por aquí cuando estamos tratando de solicitar el
botín del arma, estamos tratando de
compararla con el inventario, tratando de encontrar el arma
dentro de nuestro inventario Si no tenemos el
arma en el inventario, entonces estamos terminando en
esta parte del código. Porque si tenemos el
arma en el inventario, el arma que estamos tratando de saquear, estamos tratando de soltar el rifle
existente, por ejemplo obstante, si
no tenemos rifle, en
realidad va a terminar aquí. En cambio, voy a tomar esto y enchufarlo
a la superposición, porque todavía queremos saquear el artículo si no
lo tenemos en nuestro inventario Sólo una pequeña solución a
este código, ¿de acuerdo? Todas las demás cosas, realmente no
veo más cosas
que podamos intentar mejorar. Pero si quieres
hacer algo a las funciones,
por ejemplo esta. Puedes hacer una función o cosas que quieras que
funcionen e intentar limpiar. Adelante y hazlo ahora mismo. No obstante, creo que
esto es suficiente y voy a
comentarlo todo. Lo que también puedes
hacer es poner todas estas variables
en categorías. Por ejemplo, la velocidad aquí, puedes escribir algo
en la categoría. Por ejemplo, las propiedades de capa, que podrían ser una categoría. Y puedes ver
que se agrega aquí. Y también puedes hacer clic en
la velocidad de carrera. Da clic en Categorías y
agrégalo a las propiedades del jugador. Lo mismo con el
agachado también. Ahora puedes ver que
están en una categoría. Puedes limpiar todas las
variables así como así. En realidad puedes hacerlo
también con funciones. No obstante, no puedes
hacerlo con funciones unrep, solo
puedes hacerlo las otras funciones
que hayas realizado ¿Bien? Entonces con eso dicho, voy a
comentarlo todo. Y recuerda que te voy a
entregar este proyecto. Y
lo puedes descargar de la página web para que veas todo
esto que he hecho, todos los comentarios, y así sucesivamente. Pero probablemente también lo
veas en la siguiente lección. Voy a seguir adelante y
comentarlo todo y nos vemos
en la siguiente lección.
115. 8.30 Arregla un pequeño problema de réplica: Bien, entonces antes de continuar, volvamos a
la base de jugadores. Así que puedes ver aquí, he
limpiado mi proyecto, he puesto todo en orden, y lo único que hice fue
básicamente crear algunos comentarios y organizar
las cosas un poco más. Entonces tenemos el movimiento básico del
personaje aquí con todas las cosas que
hemos hecho con la agachada,
la caminata, el salto y así sucesivamente Y aquí abajo tengo el saqueo
y la caída del arma, o tenemos las superposiciones, el saqueo para
el
arma y así sucesivamente Y también agregué un
comentario para éste, asegurarme de que el
arma esté adherida. El retraso del que
hablamos antes, siempre
es agradable
escribir por qué editas este retraso para que no parezca aleatorio y lo borres
por error en el futuro. Bien, así que vamos a guardar todo. Y ahora mismo, antes de
continuar a la siguiente sección, tenemos un pequeño bicho del
que me di cuenta. Si hago clic en terrorista
aquí y si
trato de saquear dos cosas,
a veces funciona Para que veas aquí
saqueé cosas. De hecho voy a hacer clic en el brazo de resorte y llegar
a algo así como 500. Sólo para que pueda ver lo que está
pasando y pueda volver a jugar. Tengo que hacerlo un par
de veces y a veces darás cuenta de que el jugador en realidad
no está saqueando el arma Así que voy a seguir tratando de
saquear el arma así y ver si puedo conseguir el
dólar para estar ahí Aquí. Bien. Así que intenté esto un par de veces y después 1 minuto de
intentarlo una y otra vez, se
puede ver aquí
que está molestando. No tengo
pistola en la mano. Si lo acabo de mover rápido para
que veas que mi mano
no tiene pistola. La pistola está en el
suelo y en realidad no puedo saquearla así,
está molestando No obstante, está trabajando
en el servidor. Entonces, si tuviera el servidor jugando, creo que estamos jugando
como dos clientes. Para que veas que este
es el segundo cliente. Me uno como el segundo inclinado
y miro a este jugador. Puedo ver que este jugador
no tiene pistola. Así que puedes ver aquí, no
tiene nada en la mano. No puedo ver la pistola
aún en el suelo. Y
tampoco puedo saquear en esta. El error está ocurriendo porque esto es solo un problema de
replicación. Si hago clic en G para
soltar el arma, se
puede ver ahora que en
realidad está en el suelo. Si camino de regreso y vuelvo
a caminar al frente de ella, puede ver que estoy
saqueando la pistola y ahora en realidad tengo
la pistola en la mano Entonces en realidad es solo
un problema de replicación y me di cuenta de que uno, me tomó tal vez 1 hora o
30 minutos solo tratando depurar y ver qué estaba
pasando porque todo
parecía correcto. No obstante, lo que está mal ahora mismo está en el arma del botín Si caminas sobre las armas. Y lo que hice aquí
para conseguir este bicho es sólo para caminar sobre dos armas rápidamente.
Como algo así. Y solo lo intento un par de veces y una de las veces
vas a conseguir el bicho, a veces una de las
armas no funciona. Esto en realidad se debe a que cuando este código se está ejecutando y
estás tratando de saquear el arma a través de este representante
notifica a veces si caminas sobre él lo suficientemente rápido
o a un ritmo correcto, realidad eliminará
tu arma saqueada aquí Y cuando el siguiente
lo alcance entonces no tiene nada, no
va a ser válido. Y entonces todo esto no va a pasar y
serás despedido, y entonces podrás ver que el
arma está en el suelo Pero si juegas como servidor, entonces realmente puedes
ver que el cliente está sosteniendo el arma. No obstante, para el cliente, el cliente no puede ver
el arma en la mano. Sólo
lo pueden ver en el suelo, pesar de que en realidad lo están
sosteniendo en la mano. Sabía que era un problema de
replicación porque el servidor lo
miraba correctamente, pero
el cliente miró el parecía estar en el suelo
aunque debería estar en la mano. En realidad es
éste. Esto es lo que es, lo que lo está haciendo todo raro. En lugar de eliminar la variable arma
saqueada, ¿
recuerdas lo que hicimos aquí? Solo un
paseo rápido para que no
nos confundamos demasiado porque
hemos hecho mucho en este curso. Lo que simplemente
hicimos es saquear el arma. Y luego pasamos por
esto, saqueamos el arma. Estamos comprobando si esta
superposición de armas no está vacía. Si no está vacía,
estamos saqueando el arma. Y luego después de todo esto, lo
estamos quitando
del arma solapada Y entonces estamos re
comprobando si hay más armas solapadas
que necesitamos saquear, eso nos llevará hasta aquí arriba. En realidad, déjame
ver dónde está. Nos lleva hasta aquí, comprueba si
hay armas superpuestas, y luego intenta
saquear de nuevo el arma Nuevamente, comprueba si está vacío. Ahora hay menos artículos ahora porque quitamos
el viejo aquí. Ahora vuelve a entrar. Digamos que sólo
fue la pistola. Digamos que solo fue la
pistola y aquí la quitamos. Éste debería estar vacío ahora. Y dice, si no está vacío, será falso
porque ahora está vacío. Y luego dice, puede volver a saquear arma. Lo retrasará. Aquí, eliminará esto. Recuerda, la razón por la que eliminamos una notificación de representante es porque
si saqueas la misma
arma una y otra vez Recuerda que una notificación no se ejecuta si la actualizas
con el mismo valor, si actualicé con
la misma pistola, esto en realidad no se ejecutará. Esta es la desventaja
de una notificación de representante. Si aplicas exactamente el mismo
valor no se ejecutará. Es por esto que en realidad eliminamos la variable y luego
podemos ejecutarla de nuevo. Bien, en vez de
hacerlo aquí arriba, solo una solución muy simple, podemos tomarla desde aquí. Vamos a pegarlo
en algún lugar por aquí. En cambio, no podemos
pegarlo aquí porque
en realidad lo estamos usando aquí para establecer el estado de movimiento o el arma
equipada apretada. Podemos agregarlo aquí antes
de retirarlo de éste. O también puedes agregarlo por
aquí. No importa. Yo solo voy a agregar antes de esto aquí y tú
adelante y lo conectas. Y luego voy a
reorganizar las cosas, ¿no? Entonces también moví los comentarios. Aquí lo tenemos ahora
está aquí abajo en su lugar. Y en realidad podemos
tenerlo aquí abajo porque estamos
teniendo este retraso. Podemos utilizar este retraso, así que no estamos sobrescribiendo esta variable aquí porque en realidad
tenemos un retraso Y este código puede reproducirse antes de que
eliminemos realmente la variable. Tiene sentido que
esté aquí abajo. Y entonces realmente no
necesitamos este retraso, este retraso. Lo agregamos antes porque queríamos esperar a que se reproduzca
este código. No obstante, para éste, solo
vamos a eliminarlo. Este solo podemos conectarnos de
nuevo. Así como así. Sí, creo que esto lo
arreglará todo. Así que vamos a guardarlo todo. Déjame hacer clic, en realidad déjame cambiar para
jugar como servidor de escucha. Y voy a jugar
como tres jugadores. Estoy tratando de volver a jugar y ver si puedo conseguir que este
libro vuelva a aparecer. Bien, así que ya lo he intentado unas 40 veces,
no pasa nada. Y parece haber
solucionado el problema. Esto fue un problema de replicación. Todo está funcionando
como se supone que debe hacerlo. Ahora permítanme simplemente hacer clic en el
resorte y ponerla a cero. Nuevamente, compilar todo. Pasemos a
la siguiente lección.
116. 9.01 acciones de entrada de cambio de arma: Ahora es el momento de crear
la acción de entrada para cambiar las armas e
intentar hacerlo usted mismo. Intenta hacer una acción de entrada llamada arma primaria
y arma secundaria, e intenta agregarlas tú mismo. Eso ya lo hemos hecho
bastante tiempo. Solo un desafío genial. Y puedes intentar
desafiarte a ti mismo. Y si no te acuerdas, sigamos
adelante y hagámoslo juntos. Hagamos clic derecho aquí y vayamos
a Entrada Y Acción de Entrada. Voy a hacerlo
un poco más rápido que antes porque sabemos
lo que estamos haciendo ahora. Arma primaria. Intentemos, haga clic de nuevo, vaya a la acción de entrada y haga el arma secundaria. Vamos al contexto de
mapeo de entrada. Y fuera de aquí estoy dando click
dos veces porque necesito agregar dos mapeos Y no tengo idea de por qué
no me muestra nada. En realidad, creo que necesito
cambiar esto antes de
poder agregar el segundo,
un arma primaria. Y voy a hacer click
en el más otra vez. No sé por qué
siguen maximizando, en realidad
es un poco molesto Creo que puedes presionar aquí. Sí, se puede decir aquí,
colapsar o expandirse. Todo lo que puedes colapsar todo.
Creo que a lo mejor funciona. ¿Un arma secundaria? Sí, volvieron a maximizar
sin motivo alguno. Arma primaria. Voy a dar click
en mi única llave para obtener mi arma principal
que es mi rifle. Y da click en las dos claves
para volver a conseguir mi pistola. Como disparadores voy a escribir presionado porque
solo quiero tocarlo una vez. Cuando hago clic en el botón, no
quiero
actualizarme constantemente. Por lo que se suman estos dos. Ahora vamos a guardar todo,
vamos a cerrarlos. Y vamos al jugador. Vamos a la base de jugadores. Y dentro de aquí, hagamos clic derecho aquí abajo
y digamos arma primaria de IA. Y aquí abajo digamos
IA arma secundaria. Bien, entonces ahora tenemos
estos dos eventos. Y los podemos usar para conseguir nuestro rifle o nuestra pistola si los
tenemos en el inventario.
117. Lógica de cambio de armas 9.02: Bien, entonces para el cambio de
arma, primero
bajemos por aquí. Voy a quitar esto a un lado porque
no necesito esto primero. Sólo tenemos que trabajar
con el arma primaria. Entonces, acertadamente aquí y
hagamos un nuevo evento personalizado. Y voy a correr por el servidor y
voy a llamarlo, llamémoslo equipar arma. Ejecutemos este en
el servidor y confiable. Cuando presionamos sobre
una tecla, por ejemplo, la clave de arma primaria, queremos equipar el rifle. Cuando hago algo como esto, trato de pensar
paso a paso. No pienses dos
o tres pasos adelante, porque te vas a confundir. Y
también me voy a confundir un paso a la vez. ¿Qué tenemos que hacer cuando
necesitamos equipar el arma? Primero, si tienes esta arma en tu inventario
y ¿cómo lo haces? Recuerda, hicimos este tipo de
arma de hallazgo en inventario. Podemos arrastrar esto aquí. Lo que queremos encontrar
es simplemente el rifle. Porque cuando haces clic en
la única tecla en realidad puedo arrastrar desde aquí y decir arma equipada con
servidor. Cuando le damos click,
queremos encontrar el rifle. Ahora primero queremos
asegurarnos de que
no tenemos el rifle ya en nuestras manos, de lo contrario realmente no tiene
sentido volver,
equipar el rifle. Voy a tomar lo que
ya tenemos equipado. Entonces el tipo de arma equipada, voy a decir si no
es igual a rifle, entonces podemos seguir adelante
y correr este evento. Porque si ya
tenemos el rifle equipado, no tendría ningún
sentido correr todo esto, para seguir adelante y
conectar esto aquí. Bien, entonces aquí abajo, vamos de esta rama
y hagamos una rama aquí, o de este lingote
y hagamos una rama Y siempre que encuentre esta
arma en el inventario, así que cada vez que encuentre el rifle, voy a hacer un lingote Y a este lingote se le llama
arma que se encuentra en el inventario. Y ahora podemos tomar
esto aquí y
fijarlo a verdad, así como así. Y recuerda romper el
bucle así, Bien, ahora sabemos que encontró el arma en el inventario
aquí abajo en el completado. Podemos continuar con el código aquí. Solo estábamos buscando el artículo en el inventario
y ahora lo encontramos. Entonces voy a tomar este
tirón y asegurarme que sea cierto
sólo si es cierto. Vamos a ejecutar algún código. Si no
lo hemos encontrado en el inventario, realmente no
necesitamos
hacer nada. Lo que tengo que hacer es
equipar el arma. Permítanos realmente aquí, podemos simplemente
hacer clic derecho en este. Esta es el arma que
encontramos en el inventario. Permítanme simplemente
promoverlo a una variable y llamarlo equipar arma. Ahora, ¿qué
hace esto, necesita ser
replicado o representante, notificar Puedes intentar responderte la
pregunta a ti mismo. Y ¿por qué debería ser rep,
notificada o replicada? Ahora te voy a dar la respuesta. Este necesita
ser representante, notificado. Y recuerda, siempre
que tengas cambios visuales. Entonces ahora mismo el jugador
va a sostener el rifle en la mano
eso es un cambio visual. Necesitas
convertirlo en una notificación de representante, para que puedas notificar a todos los clientes del cambio
visual. Así que adelante y conéctalo aquí. Y da clic en él y
configurarlo para que repita notifique. Y entonces también recuerda
cambiar tu postura. Porque ahora mismo
si haces clic en él, vas a equipar un arma. Entonces ahora mismo no
tenemos esto hecho, y lo haremos
en la siguiente lección. Entonces también hay que
recordar establecer su tipo de arma
equipada actual porque recuerde
que hicimos esto aquí. Este está controlando lo que se está retocando dentro de
tu plano de animación Vayamos por aquí
y digamos, y lo puedes encontrar aquí,
establecer tipo de arma equipada. Entonces el tipo de arma
necesita ser rifle en este caso. Además, hay que
poner esto a caídas, porque más adelante
cuando hagamos esto, nuevo, se fijará en true. Recuerda
configurarlo en cae aquí, necesitamos restablecer esta
variable también. Tenemos que configurarlo a falls cada vez que hayamos
terminado el código, la próxima vez que entre, ejecuta el código correctamente, lo
contrario será
verdadero automáticamente. Y ejecutará este código
aunque no esté bien. Y también quiero restablecer esta variable porque cuando
hayamos hecho todo esto, recuerda que necesitamos restablecer la notificación de rep para que
no se baje. Y podemos tomar esta arma
equipada y restablecerla aquí antes de que
terminemos con todo. Y tal vez necesitamos
agregar retraso aquí así que le damos al representante
notifique tiempo para jugar. Pero vamos a
comprobarlo más tarde. No soy fanático de
agregar retardos aleatorios. Solo agrego demoras
siempre que realmente necesitemos porque las demoras son agradables. Este no se notará. Es 0.05 Ningún humano nunca
se dará cuenta de esto, pero realmente no
necesitamos agregar uno si realmente
no necesitamos hacerlo. Bien, entonces
lo segundo que necesitamos realmente aquí es si ya
tienes un arma en la mano. Entonces, por ejemplo, si
ya estás sosteniendo una pistola, necesitas desequipar esa pistola De hecho, necesitamos
desequipar también. Entonces necesito preguntar si el
jugador está armado o desarmado. Porque el jugador
podría estar sujetando una pistola ahora mismo
y estamos saqueando el rifle y estamos presionando
la llave del rifle y ya
tenemos una pistola equipada Entonces tenemos que desequipar primero
la pistola. Vamos, a partir de aquí voy
a desconectarlo en realidad, y simplemente arrastrar esto un poco hacia abajo. Entonces podemos tomar este tipo de arma
equipada
y podemos decir, es igual a desarmada Hagamos una sucursal aquí
y volvamos a conectarla aquí. Si es igual a desarmado, solo
seguiremos adelante y ejecutaremos
el código que hicimos antes No obstante, si no está desarmado, queremos desequipar el
arma que tenemos Apenas otra vez, encuentra el arma en el inventario del que
estamos hablando. ¿De qué arma
estamos hablando? Estamos hablando del arma equipada
actual que tenemos. Esta podría ser la
pistola en estos momentos. Entonces cuando hayas encontrado esto, estamos haciendo una sucursal
igual que antes. Cuando hayas encontrado esto,
promovamos esto a una variable y
llamémoslo
arma no equipada . Y
hagámoslo a un representante, notifíquelo y déjenos
conectarlo aquí. Haz algunas notas de ruta trasera. Y luego cuando esto esté completo, porque ahora mismo estás ejecutando este código y estás
desequipando el arma Pero hay que equipar
esa arma después. Entonces aquí en lo completo, que volver a ejecutar
esto aquí arriba. Déjame arrastrarlo aquí para hacer algo de espacio y
hacer que se vea mucho mejor. Y podemos arrastrar esto aquí arriba. Bien, entonces algo
así se ve mucho mejor. Estamos comprobando si
estamos desarmados o no. Si estamos desarmados, vamos
a equipar el arma al instante Si estamos armados con una pistola, por ejemplo, vamos
a desequipar la pistola Recuerda romper el bucle. Se me olvidó enchufarlo aquí. Rompamos también el bucle. Después de que rompamos el bucle,
y esté completo, vamos a
equipar el arma, el no equipado y el equipo Eso lo haremos en
la siguiente lección. Pero también recuerda reiniciar
el
arma no equipada para que no
consigamos caja más adelante en nuestro juego Sí, eso fue todo por
la lógica en este momento, realmente no
podemos probarlo porque realmente no tenemos
que notificar al representante. Pasemos adelante a la siguiente
lección y trabajemos en ellas.
118. 9.03 Equipa y Unequip Arma RepNotify: Muy bien, así lo notifica al representante de equipamiento
no equipado. Esto va a ser muy fácil porque lo
hemos hecho antes. Si vamos al arma de botín o
arma saqueada, si vas al representante avisar
por el arma saqueada Si vas dentro de aquí,
recuerda que hicimos todo
esto con la desactivación de la
colisión y así sucesivamente Entonces cuando ya tienes el
arma en el inventario, ya
eliminamos la física, ya
eliminamos la colisión,
e hicimos todo eso. Así que en realidad no necesitamos volver
a hacer todo esto. Ya hiciste esto cuando
saqueaste el arma. Entonces lo único que
tenemos que hacer es equiparlo de nuestra espalda. Entonces este de aquí, adjuntar actor a
cualquiera de esos zócalos. Así que vamos a duplicar
este código aquí. Voy a copiar y
voy a ir a mi arma de equipo y
voy a pegarla por aquí. Bien, para ésta, no
es el arma saqueada Voy a borrar esos. Es nuestra arma equipada, así que la voy a arrastrar
y enchufar aquí. Y voy a enchufar
esta a aquí. Bien otra vez, voy
a tomarlo por aquí y hacer clic derecho y decir
convertir a un get validado. Estoy asegurándome de que mi variable sea válida
antes de hacer todo esto, antes de adjuntarla. Recuerda ahora mismo
tu arma equipada, esta de aquí ahora mismo, está adherida a tu espalda. Por ejemplo, tu AK 47 antes de
sostenerlo en la mano, se adjunta a
los personajes atrás. Primero lo que hay que
hacer, en realidad hay que separarlo de ese viejo zócalo Hay que arrastrarlo de aquí
y decir desprenderse del actor. Lo estamos separando
de atrás primero. Y podemos mantener la posición
al mundo en todos ellos. Después de que lo separemos de
la parte de atrás, podemos seguir adelante. En realidad voy a
eliminar este nodo de ruta. Voy a
conectarlo directamente aquí. Y podemos desglosar esto para que se vea
un poco mejor aquí. Y luego este realmente
puedes eliminar y puedes conectarlo aquí si lo deseas. Es sólo para que se vea un poco mejor,
algo así. Déjame
acercarlos más juntos. Bien, aquí lo tenemos. Este es el
código equipado para los no equipados. A lo mejor ya lo adivinaste. Tenemos que ir al arma
let's para soltar. Ya hicimos todo esto y en realidad
no wap en gota Vamos al arma saqueada. Necesitamos este código aquí
donde pones tu pistola, por
ejemplo, en
tu muslo cuando
hayas sacado el rifle. Vamos a copiar todo esto aquí donde lo pones en la
espalda o en el muslo. Y vamos al
arma no equipada, igual que antes. Vamos a pegar este. Y déjame tomar el arma
no equipada en su lugar y enchufarla aquí Permítanme borrar esta.
Déjame tomarlo de nuevo, Derecha, Convertir a un
validado conéctate. En realidad, vamos a eliminar éste y
conectarlo aquí en su lugar. Antes de hacer esto,
volvamos a separarnos del actor. Y vamos a mantener la posición al mundo y la vamos a separar
del actor Y entonces vamos a
conectarlo por aquí. Recuerda también aquí, estamos usando el arma no equipada, así
como esto Bien, adelante igual que
antes. Muévelo hacia abajo. Y acercarlo, para que se vea un poco mejor. Algo así. Y sigamos adelante y
compilemos y guardemos todo. Bien, entonces ahora hemos terminado con esos y podemos
seguir adelante y hacer clic en Reproducir para ver si realmente
funciona o si hemos
hecho algunos libros. Y sigamos adelante
y pulsemos en play. Déjame aquí como servidor jugar
como el antiterrorista. En realidad,
juguémoslo como el terrorista. Porque las armas
están ahí ahora mismo. Es sólo la única
clave que funciona. Entonces necesito eluir el
rifle como mi segunda arma. Ahora bien, si hago clic en uno, se
puede ver que en realidad estoy
seleccionando mi rifle. Y si le envío spam a la única clave, recuerden que no podemos spam la única clave si
cierro esto para poder mostrarles, porque aquí,
encontremos el gráfico de eventos. De hecho voy a
cerrar todo esto. Entonces voy a mover esto aquí, clic
derecho, cerrar
pestañas a la derecha. Entonces es un poco más
mejor mirar aquí. Recuerda, hicimos este
lingote para que no podamos spam de la llave del rifle porque si ya
tenemos el rifle, no
ejecutamos este código Esto también es bueno para la
optimización. Entonces no ejecutas
código innecesariamente. Todo está funcionando muy bien, y si encontramos alguna caja, siempre
podemos arreglarlas. No obstante, todo está funcionando. Lo siguiente que tenemos que hacer
es el arma secundaria, y hagámoslo
en la siguiente lección.
119. 9.04 Equipa un arma secundaria: Ahora mismo hagamos el arma
secundaria ahora. Puedes seguir adelante y copiar todo esto y
hacer un nuevo evento. Y solo copia, pega todo esto y cámbialo por una pistola. Sin embargo, esto no
sería realmente una buena práctica de codificación. Ahora recuerda que estoy
tratando de enseñarte el mejor código y podríamos copiar y
pegar esto aquí abajo, y funcionaría perfectamente. No obstante, cuando veo
algo copiar pegar, cuando veo código que necesita copiar pegar y lo único necesito cambiar es un valor, por
ejemplo, esto
de rifle a pistola Siempre trato de cazar. Yo solo tengo este
evento y puedo volver a usar este evento en lugar
de copiarlo pegándolo de nuevo Sí, podemos intentar
pensar por ti mismo, ¿cómo podemos usar este
evento aquí también? En realidad funciona aquí y aquí. Sin tener que
copiar y pegar todo esto, ¿qué tenemos que hacer ahora? Podemos publicar este video
y ustedes pueden regresar. Y ahora
te voy a dar la respuesta. En lugar de tenerla
como variable estática, podemos tenerla para que sea dinámica. Podemos arrastrar esto a
aquí, a este evento. Este es el tipo de arma a encontrar. De hecho creo que necesitamos,
sí, éste también. Cuando cambiamos el arma, la animación, ésta tiene que entrar en ésta también. Hagamos doble clic en este
y hagamos algunas notas de redirección. Bien, ahora lo hemos
enchufado aquí. Lo que podemos hacer es aquí arriba
en el arma primaria, podemos simplemente cambiarla por un rifle aquí
arriba en lugar de aquí abajo. Lo que podamos hacer aquí abajo,
sólo voy a copiar y
pegar todo esto. Y pegarlo aquí abajo. Voy a conectarlo ahora en vez de rifle. Ahora el
arma secundaria es una pistola. Entonces, si no tenemos una
pistola ya equipada, podemos seguir adelante y
correr este evento. Y éste voy a
cambiar a pistola ahora. Va a tener este
valor enchufado aquí y ahora va
a buscar una pistola Bien, entonces ahora, muy fácil, en realidad
terminamos
esta lección. Puedes hacer click en play y yo puedo dar click en terrorista y
puedo saquear estas dos armas Puedo dar click en uno
para tener mi rifle. Puedo dar click en dos
para tener mi pistola. Ahora se puede ver que podemos cambiar entre esas dos armas
sin ningún problema. Y ni siquiera copiamos y
pegamos todo esto. Acabamos de volver a utilizar el mismo.
120. 9.05 crea montajes de animación: Bien, entonces lo que me
gustaría hacer ahora mismo es que creo que ahora mismo es un
poco barato. Porque podemos cambiar
las armas así. Y sería genial si tenemos una animación cuando
cambiamos el arma. Si has jugado
Counter Strike antes, cuando cambias de arma, se vuelve a cargar el arma
antes de poder usarla Hagamos algo así y para esta lección, muy sencillo. Sólo vamos a crear algunos montajes de animación o
animación Vamos a hacer clic en los activos. Recuerda, no es la animación,
no son las viejas. Son los activos.
Es nuestro personaje. Solo asegúrate de que sea
nuestro personaje. En lugar de aquí, solo
voy a
buscar reload porque tenemos algunas animaciones de recarga que
estaremos usando Ahora, no tengo animaciones
específicas para sacar tu arma. Probablemente lo tengas si tienes un proyecto serio y quieres hacer
algo como esto. Sin embargo, para esta,
solo usemos la animación de recarga cuando
arrastremos nuestra arma Y esto también es por buenas
prácticas. Vamos a hacer clic derecho en
la pistola primero. Por ejemplo, ve a Crear y crear un montaje de animación Con el montaje de animación, podemos agregar realmente algo
como recargar animaciones,
disparar las animaciones de armas
y cosas así
sin interrumpir nuestra
animación sin interrumpir nuestra Y haga clic en el
montaje de animación y llamémoslo anión para montaje de animación
y llamémoslo pistola de recarga Hagamos lo mismo con
el rifle, haga clic derecho, vaya a crear montaje de animación Y llamarlo rifle de recarga. Y si lo abres ahora, puedes ver que tenemos
un montaje de animación Y tenemos algunas
cosas que podemos hacer aquí. Y en realidad vamos
a usar esta parte de aquí abajo para crear como un movimiento de la
parte superior del cuerpo. Entonces cuando estamos corriendo, podemos tener esta
otra animación,
esta animación de recarga, sin
detener nuestra animación en ejecución Así que podemos tener dos
animaciones a la vez y es por eso que creamos
este montaje de animación
121. 9.06 Ajusta el plan de animación: Bien, antes de que los montajes de animación puedan trabajar en tu animación, tienes que hacer algo dentro del plano de animación Vamos al jugador y abramos el plano de
animación Y recuerden que esto es lo que
hemos hecho aquí hasta ahora. Lo que necesitas hacer
es jugar
un movimiento de la parte superior del cuerpo,
como puedes ver aquí. Si vuelvo a mis
animaciones y busco mi animación y echo un
vistazo a mis montajes de animación Ahora si hago clic en uno de ellos, puedo ver aquí que está usando un slot llamado slot default. Y en realidad necesitamos usar la parte superior
del cuerpo en su lugar. Aquí en la animación
Slot manager. Vamos a hacer clic en una ranura, solo
llamémoslo parte superior del cuerpo, porque solo quiero
mover la parte superior del cuerpo cuando recargue y todavía quiero que mi
personaje corra por ahí Puedes correr y recargar parte superior del cuerpo y dejarnos guardarlo. Y ahora ya ves si vas
a la pistola también. Aquí en el gestor de slot, tienes esta parte superior del cuerpo. Tienes esta ranura cada vez que
creaste en una de ellas, el rifle la tiene y la
pistola también la tiene. Bien, Necesitas hacer clic en la ranura aquí en lugar
de ranura predeterminada. Ahora vamos a hacer clic aquí para el nombre de la ranura y
cambiarlo a la parte superior del cuerpo. Lo mismo para la pistola, así que ambos dan clic aquí, nombre de ranura y
cambiarlo a parte superior del cuerpo. Ahora se puede ver que la
animación no se está reproduciendo porque en realidad somos solo nosotros que sabemos que esta es
la parte superior del cuerpo. Realmente no le hemos
dicho al motor neural cuál es la parte superior del cuerpo en
estos momentos. Tenemos que hacer eso. Vayamos al
plano de animación dentro de aquí. Necesitamos usar una función
llamada mezcla en capas su hueso. Esta mezcla en capas su hueso por defecto.
Tomemos primero la pistola. Vamos a copiar esto.
Movimiento de pistola en caché, y vamos a colocarlo aquí Lo que hay que mezclarlo es
intentar copiar y pegar esto de nuevo. Y tenemos que arrastrar aquí y
buscar la ranura por defecto. Puedes ver aquí
tenemos esta ranura por defecto. Sin embargo, esto no es lo que
queremos usar en estos momentos. Queremos usar, si
haces clic aquí arriba, quieres
cambiarlo a parte superior del cuerpo. Ahora estamos usando
éste en su lugar. Y puedes salir
y conectarlo aquí. Siempre que toquemos nuestro montaje de
animación, va a mezclarse
entre los dos Aquí tenemos esta mezcla. Vamos a darle click aquí. Y vamos a hacer clic en
la capa establecida. Haga clic aquí y
haga clic en el más. Haga clic en la flecha aquí. Ahora
estamos dentro de aquí. Lo que estamos tratando de hacer
ahora es que queremos decirle a Unreal Engine cuál
es la parte superior del cuerpo, porque ahora mismo
Unreal Engine no conoce
realmente la parte superior del Hay que darle un nombre de hueso. Si abres el esqueleto
o el personaje y haces clic en
los huesos del personaje y toda la jerarquía, puedes ver el hueso
del personaje que queremos decirle a la parte superior del cuerpo. ¿Por dónde empieza? Por lo general
para la mayoría de los casos , comienza aquí en la columna 01. A veces se ve mejor
cuando parte de la columna vertebral 02. En este caso, intentemos
usar el Spine 01. Tienes que volver atrás y
tienes que escribirlo exactamente como
se llama aquí, nosotros lo llamaremos Spine 01. Y la profundidad de mezcla es una. Y también la rotación del espacio de malla, se dice que la
mezcla es verdadera. Vamos a compilar y
eliminémoslo de aquí arriba. Y conectemos esto en su lugar. Así como así,
voy a copiar pegar todo esto y
borrar la pistola. Y en cambio, toma el fusil y
enchufa aquí también. Sigamos adelante y
conectemos
también el rifle y borremos este viejo. Voy a bajar esto y organizar las cosas un poco más. Entonces algo como esto aquí. Entonces puedo moverlo
aquí arriba igual que antes. Y ahora
en realidad hemos terminado esto. Si hago clic en puedo
compilar, puedes ver mi personaje se
está moviendo ahora. Ahora bien, si tocamos nuestros montajes de
animación, todo debería
funcionar a la perfección Recuerda cambiarlo. Aquí en tu montaje de animación, recuerda
cambiarlo a la parte superior del cuerpo Y recuerda aquí
para la parte superior del cuerpo, para la mezcla en capas por hueso, recuerda decirle, de
qué hueso quieres mezclarte. Muy, muy importante.
Guarde todo y sigamos adelante.
122. 9.07 Equip Animation Multicast: Sigamos adelante y hagamos que funcione. Volvamos
al jugador y
abramos aquí la base de jugadores. Juguemos nuestro montaje de
animación. Lo que tienes que hacer es tomar
esta malla que tenemos y puedes arrastrar desde aquí y buscar montaje de animación Y entonces se puede ver aquí. Reproducir montaje de animación. Bien, ahora tenemos que seleccionar qué montaje
estamos hablando Voy a hacerlo
dinámico igual que éste. Lo que podemos hacer es recordar que este es un efecto temporal. En lugar de usar un representante, notifique, recuerde que una notificación de representante será vista por un jugador que aún no se haya
conectado a su servidor. Y si se conectan,
por ejemplo, 10 minutos después, podrán
ver tu arma equipada. Sin embargo, para la animación, como la
animación de recarga cuando coges un arma y ellos
pueden ver una recarga, realmente
no necesita mostrarse
para jugadores desconectados porque es solo una animación que desaparece después La gente realmente no va a
sentir pena si no
pueden ver esa animación
cuando se conectan, porque de todos modos solo va a desaparecer después de 1 segundo. Entonces voy a agregar a
una multidifusión en su lugar. Una multidifusión. Recuerda que son solo los jugadores conectados los
que pueden ver esto. Y jugadores desconectados, si se conectan al mismo tiempo
que estás recargando, no
podrán verlo
hasta que vuelvas a cargar,
déjanos hacer un nuevo déjanos hacer un nuevo Llámalo multidifusión. Llamémoslo Equipar Arma, porque normalmente solo lo
llamo con el
mismo nombre que el del servidor. Ejecutemos esto en
multidifusión y confiable, y conectémoslo
aquí para la multidifusión Dependiendo de si estamos
sosteniendo una pistola o un rifle, queremos reproducir esa animación
respectiva. Justo como lo que hicimos aquí arriba. Voy a hacer
una nueva variable y es el tipo de tipo de arma
igual que ahí arriba. Seleccionado. Vamos a lo
mismo aquí. Yo sólo voy a equipar. Sólo voy a
llamarlo para equipar. De hecho voy a
llamarlo lo mismo aquí arriba. En lugar de encontrar,
equipar como este tipo de
arma para equipar. Bien, todo se ve bien. Ahora podemos arrastrar
desde aquí y decir seleccionar y usar este nodo de selección. Entonces podemos conectar
este de aquí abajo. Ahora va a
seleccionar la animación dependiendo de cuál sea este valor de
enumeración Si es la pistola, voy
a seleccionar y tocar la pistola. Montaje de Animación.
Si es el rifle, voy a tocar el
rifle Animation Montage Ahora lo va a jugar
dependiendo de lo que hayamos seleccionado aquí arriba para el rifle o
aquí abajo para la pistola. Déjame en realidad solo
moverlo por debajo de ambos. De hecho voy a
organizar esto un poco más. Moviendo esto, moviendo esto arriba. Entonces estos están juntos y
este está por debajo de ellos. Y también podemos mover este hacia arriba, así
como así. Bien, entonces ahora lo tenemos y ahora necesitamos agregarlo al código. Entonces sólo voy
a agregarlo aquí. Justo después cuando cambiemos
nuestro estado de movimiento, quiero reproducir mi animación de
recarga Y lo llamamos
MC equipar arma. Y recuerde, las multidifusión
solo pueden ejecutarse en eventos de servidor. Este es un evento de servidor. Recuerda muy importante, la
multidifusión no se puede ejecutar aquí. Entonces no se puede llamar a una
multidifusión aquí arriba. Esto está mal. Hay que
ejecutarlo a través del servidor. Vamos a romper esos y
digamos arma MC Equip. Vamos a conectarlo aquí.
Y conectemos este tipo de arma a él para que
sea correcto cuando juega. Y vamos a compilar ahora. Ahora podemos seguir adelante y
hacer clic en Reproducir para ver si todo funciona o
si tenemos alguna caja. Si hago clic en play y
selecciono terroristas y
los selecciono aquí, ahora hago clic en uno, puedes ver que juego
la animación de recarga Si hago clic en dos,
vuelvo a cargar también. Ahora veamos si se
mezcla con nuestro running. Si corro y hago clic aquí, se
puede ver que en realidad estoy
corriendo y estoy recargando Si hago clic en control
y vuelvo a cargar, veo yo en realidad, si solo
hago clic en el brazo de resorte y lo
hago 500 para que podamos ver
realmente cómo se
ve, hago clic en play Y si los cogimos ahora, hagámoslo ahora. Si cambio, puedes ver que en
realidad también me estoy agachando y
recargando. Está funcionando ahora. Todo
está funcionando correctamente. Impresionante. Entonces ahora estoy
dando clic en el brazo de resorte, vuelvo a
hacer que la
longitud del brazo objetivo sea cero, y todo está funcionando. Ahora también necesitamos
agregarlo en otro lugar. Porque cuando saqueamos el
arma desde el suelo, ahora mismo no está jugando Siempre que saquees los artículos
o aquí en el lote armas, siempre que saquees el artículo Cuando establecemos el tipo de arma
equipada con arma de lote, también
tenemos que
reproducir la animación. Entonces es correcto. Déjame
alejar esto un poco aquí. Y llamémoslo de
nuevo MC Equip arma. Y agreguemos cualquiera que sea
el tipo de arma. Es éste. Adelante
y haz un nodo de ruta trasera, y ahora lo tenemos correcto aquí. Así que vamos a organizar las cosas un
poco más así. Bien, entonces ahora está dentro de aquí también en el arma de botín Y ahora vamos a dar click en play. Ahora cada vez que saquee mi arma, en realidad
va a reproducir esta animación antes de
que pueda disparar mi arma Entonces así es como agregas animaciones a tus
armas también. Puedes agregarlos a través montajes de
animación
y también puedes hacer un movimiento de la parte superior del cuerpo
para los montajes de animación, que no interrumpas
tu animación de carrera mientras haces todo esto Bien, así que eso fue todo por ahora. Guardemos todo y
pasemos al siguiente.
123. 9.08 Configura el widget de visualización de armas: Ahora es el momento de crear el widget de visualización de armas.
Entonces, sigamos adelante. En la interfaz de usuario de aquí, igual que antes de que creáramos
la selección de equipo I, ahora
hagamos clic derecho y vayamos a Interfaz de
usuario y creemos
otro widget, blueprint Ahora para éste, de
nuevo, el widget de usuario es el que
vamos a seleccionar. Y llamémoslo B.
Voy a llamarlo principal. Esta será la
interfaz de usuario principal que tengamos. No hemos creado un NuWi
principal para el juego. En el Nei principal también puedes
ver tus armas. Vamos a abrir esta. Recuerda, cada vez que comienzas en un blueprint de widget, primero
tienes que usar canvas, agregándole
un lienzo Y ahora mismo estamos
listos para diseñarlo aquí. No obstante, todavía
no hemos importado los iconos. Así que déjame guardarlo todo.
Vamos a cerrar esto. Y quiero que entres en los materiales del curso
que te he dado, yendo a los iconos de la interfaz de usuario, y te he dado
estos íconos. Así que adelante y selecciona
de nuevo todos los íconos de armas. Es posible que veas diferentes
elementos dentro de los materiales de este curso
dependiendo de cuándo lo descargues. Porque ahora mismo solo
estoy agregando más cosas a medida que voy
con este curso. Podría haber
más íconos de los que puedes
ver aquí ahora mismo. Tener estos tres iconos. Por ahora, vamos a la carpeta de iconos. Déjame simplemente hacer clic y
arrastrarlos hasta aquí. Nuevamente, al igual que lo que
hicimos con los otros, recuerde que cambiamos el grupo de
texturas a UI y la configuración de compresión a interfaz de
usuario dos D. Hagámoslo con
estos tres también. Ahora puedes hacer click sobre ellos
y configurarlos individualmente. Sin embargo, puede simplemente hacer clic en uno o mantener el control
seleccionar los tres. Haga clic derecho, vaya a Activo. Acción, Edición masiva a
través de Matriz de Propiedades. Recuerda que así es como los
editas todos a la vez. Esto es algo
que ya hemos hecho antes. Seguimos adelante y damos click en él. En la compresión, lo
creo ya que de
aquí la configuración de compresión
aquí, va a dos interfaces de usuario, dos D, y el nivel de detalle, puedes configurarlo de mundo a UI. Así que ahora podemos cerrarlo
y podemos guardarlo todo. Bien, así que ahora cuando
entramos en UI y dentro
de la IU principal, y si nosotros, por ejemplo,
agregamos una imagen a la pantalla, haces click en ella aquí arriba para que
la imagen encuentre la imagen, busquemos los íconos que
hemos agregado. Y aquí puedes ver
los íconos que tenemos. Bien, así que pasemos a la siguiente lección donde
diseñamos este plano de widget Por ahora, solo
eliminemos esta. Mantengamos este lienzo
porque lo necesitamos. Y compilar, guardar todo,
y sigamos adelante.
124. 9.09 Diseña la interfaz de usuario de visualización de armas: Bien, entonces lo que
queremos hacer ahora mismo con la exhibición de armas es
igual que en Counterstrike, donde puedes ver aquí al costado tienes el
arma y luego
tienes la tecla en el
teclado que necesitas presionar
para ver esa arma Así que así, así
vamos a hacer lo mismo,
y la interfaz de usuario será más visible cada vez que tengas seleccionada
esta arma comparación con
las otras y así sucesivamente, así que solo un pequeño efecto. Bien, por ahora, déjame
cerrar esto y
vamos a crear esta interfaz de usuario de visualización de armas muy
simple. Ahora cuando diseñas
algo como esto, tienes que pensar en qué
cajas quieres agregar. Entonces tenemos la caja horizontal y tenemos la caja vertical. Primero, necesitamos una caja
vertical porque las armas están una
encima de la otra. Escojamos una caja vertical. Colócala aquí. Vamos a cambiar el tamaño de esto de alguna manera para que
pueda arrastrarlo por ahí Y voy a
arrastrarlo aquí abajo en alguna parte. Nuevamente, recuerda
cambiar el punto de anclaje, lo
contrario va a estar mal
en la pantalla aquí. Al hacer clic en el punto de anclaje, colocándolo abajo
en la parte inferior derecha. Y también para el
puesto voy a escribir 00 para ver dónde
está en la pantalla. Y se puede ver que está
fuera de la pantalla. Recuerda, puedes ajustar
esto en la alineación. Si escribo 0.5 aquí, puede ver que ahora se ajusta
a la mitad de la misma. Y si escribo uno,
brota al otro lado, así
como para Y, Si t 0.5 se encaja a
la mitad de la Y si escribo uno, se
ajusta a la otra esquina. Ahora incluso en la posición 00, está dentro de nuestro lienzo, y esto es lo que queremos
para la posición x e
y . Puedo darle algo
como -30 aquí y -30 aquí, sólo para
alejarlo de los bordes No está en la parte superior de la pantalla. Aquí está el borde de la pantalla. Bien, vamos a compilar. Ahora
lo que tenemos que hacer es tener un arma y
tenemos la tecla del teclado. Al lado, en realidad
necesitamos una caja horizontal. Ahora una caja horizontal dentro
de la caja vertical. Y ahora podemos agregar la imagen
del arma así como el
texto para la tecla del teclado. Agrégalos aquí. Déjame simplemente hacer clic en el texto, y escribamos uno por ahora. Esta es la tecla del teclado. Y luego puedes dar
click en la imagen. Déjame seleccionar la imagen. Si busco el icono
AK 47 por ejemplo, y quería estar
en un tamaño más grande, lugar de 32 por 32, tal vez podamos escribir
algo como 130 por 130. Recuerda, antes de
diseñar completamente esto correctamente, recuerda hacer clic
en el tamaño de la pantalla. Vaya a laptops, por ejemplo, y seleccione el portátil genérico
14 a 15. Esto es como
lo que te mostré antes con el widget de
selección de equipos. Esto es para escalar esta interfaz de usuario
correctamente en todos los dispositivos. Siempre que estoy en el
zoom uno por uno, así es como
va a verse en la computadora portátil, así es
como se ve. Ahora puedes ver si haces
clic en este botón aquí, elimino las líneas de guiones. Normalmente hago eso para ver cómo se ve sin
todas estas líneas. Creo que esto es
lo suficientemente grande para una computadora portátil. Vamos a compilar. Recuerda,
lo escalamos a mi pantalla Por ejemplo, tengo
un monitor de cuatro K, y lo escalamos haciendo clic
en este pequeño icono Y luego seleccionamos aquí
cuánto queríamos escalar. Creo que antes eran ocho. Por lo que se escala muy rápidamente. Lo puse a 2.5 Si. Ahora vamos a hacer clic en este número. Voy a alinearlo
al medio verticalmente. Creo que esto ahora está dando clic
en esta caja horizontal. En realidad lo que voy a hacer es clic en el cuadro vertical. Y haciendo clic en Size To Content, la caja vertical simplemente
va a
dimensionar en comparación con cualquier
contenido que tenga en ella. Lo que podemos hacer es, por ejemplo, para la
caja horizontal, yo puedo controlar D, y esto lo copiará
más allá de esto aquí arriba. Si solo controlas D para
copiarlo o duplicarlo, puedes ver que pega las armas aquí arriba y
eso se ve correcto Sólo necesito dos de ellos.
No necesito tantos. Voy a hacer click
en el número primero. En realidad, voy
a borrar esta. Sólo voy a estilizar uno de ellos y
puedo copiar y pegar Voy a dar click
sobre este número. Voy a cambiar
el fondo por algo. Hemos importado rubí. Creo que Simy Bold
estará bien para este. Siempre podemos
probarlo para el tamaño. Creo que 22 podría
ser un poco mejor. 22, necesitamos un espacio
entre estos dos. Sube aquí, busca espaciador y colócalos entre
la imagen y el texto. Y luego puedes poner
algo de espacio entre ellos. Por ejemplo, si lo hago
20, algo así. O puedes hacerlo aún
más si es muy poco. Creo que está bien por ahora. Ahora lo que puedes hacer es dar click sobre esta caja horizontal de
control D para duplicar. Y ahora
lo tienes, por ejemplo, para este puedes
cambiarlo en una pistola. Ahora, realmente no
importa ahora mismo porque vamos a cambiarlo
dinámicamente en el juego. Este AK será un arma. Si voy al
plano de armas, si lo encuentro aquí, el arma aquí, 44 Este será el
icono, o éste. Si has recogido
44 en lugar de un AK, estas imágenes cambiarán
dinámicamente en el juego. Realmente no importa,
pero para estos números, este es uno, este son dos. Y esto es lo que presiono
en el teclado para que estas armas estén
equipadas para mí. Bien, así que eso fue
todo por estilizarlo. Se puede ver que es
muy, muy sencillo. Es una interfaz de usuario muy simple, pero va a quedar
bien en el juego. Entonces eso fue todo por ahora. Adelante, compile
y guarde todo, y pasemos
al siguiente.
125. 9.10 Muestra la interfaz de usuario de visualización de armas: Ahora vamos a mostrar
esta interfaz de usuario a la pantalla. Ahora puedes hacerlo tú mismo
si quieres algún entrenamiento, porque ya
lo hemos hecho antes. Intenta averiguar cómo puedes
mostrar esto en la pantalla. Después del widget de selección del equipo. Siempre que seleccionemos el equipo, quiero mostrar esta interfaz de usuario principal. Intenta averiguarlo tú mismo. Es un buen entrenamiento si no
te acuerdas
o si quieres ayuda. Hagámoslo juntos.
Déjame cerrar esto. Primero, lo que tengo que
hacer es que tengo que ir
a los planos. Ir
al control del jugador. Recuerda que en el control del jugador tenemos toda la interfaz de usuario donde hicimos este evento show
hide widget. Aquí, quiero
mostrar mi widgit principal. Ahora usamos esta enumeración, necesito agregarla a
la enumeración Si voy a Enums, hago clic en los widgets del juego Dentro de aquí estoy agregando
un nuevo enumerador y estoy escribiendo nombre o no nombre Voy a moverlo aquí
arriba a la cima solo para estar más limpio.
Realmente no importa. Entonces voy a ir al controlador
del Reproductor
aquí, igual que antes. Haga clic derecho, cree widgets. Entonces podemos crear
el widgit principal. Podemos buscarlo aquí. Voy a hacer clic derecho
y promover esto a una variable y llamarlo WB main. Ahora vamos a
arrastrar desde aquí y agregar a Viewport, así como esto Ahora igual que antes,
voy a arrastrar este main out,
derecho, convertir en
un get validado. Entonces cuando no sea válido, quiero crear el widget. No obstante, si lo hemos
creado antes, voy a seguir adelante
y solo agregarlo a la viewport directamente,
igual que antes Intenta organizar esto. Cuando termines
así así, entonces puedes
seguir adelante y compilar. Y recuerda también ir
al widget hide dentro de aquí. Al igual que antes,
tomemos W en un get validado y arrastre desde
aquí y digamos eliminar de. Recuerda también hacer
esto cuando quieras , quizá algunos ahora. Realmente no pasa
demasiado con el MenUI. No se lo quita demasiado. No obstante, si un
caso, por ejemplo, si tienes una cinemática
o algo así, no
quieres
mostrar el MenUI Así también es como lo eliminas. Volvamos ahora al gráfico de
eventos. Después de la selección del equipo, recuerda aquí en el
controlador de jugador en la parte inferior, hicimos este jugador de generación CL Nosotros engendramos al jugador,
ocultamos la selección del equipo. Ahora aquí es un buen
lugar para mostrar el Maui. Recuerde que la interfaz de usuario es del lado del cliente. Siempre que trabajes con UI, tienes que ejecutarlos
en el cliente aquí. Lo que suelo hacer
es que estoy buscando un evento de cliente que ya
hemos realizado y
que podamos usar. Este jugador de spawn CL se está
ejecutando en el cliente, por lo que este es un muy buen
lugar para mostrar al Maui Voy a conducir
aquí y decir Mostrar Ocultar widget, como lo llamamos. Y voy a
seleccionar el MenUI. Voy a dar click en
Mostrar y conectarlo. Ahora solo un recordatorio,
si
lo olvidaste, va a seleccionar el
Maui y va a seleccionar Mostrar aquí en el programa Ocultar widget. Sabe que
es el MenUI Sabe que este
boletín es cierto. Entonces va a ir aquí. Sabe que es verdad. Entonces
va a mostrar el widget. Ahora sabe qué widget es, porque hemos seleccionado
el widget principal, va a ir dentro de aquí. Y va a ejecutar este
código desde el widget principal. Y va a hacer
caso omiso de éste. Sólo está manejando
este de aquí arriba. Y vamos a agregar el widget
principal a la ventana gráfica. Entonces no creo que
nos falte nada. Entonces, sigamos adelante
y jugemos y seleccionemos, por ejemplo, contra el terrorismo. Y entonces se puede ver
que tengo mi interfaz de usuario principal. Si maximizo mi pantalla, tengo la interfaz de usuario principal aquí y la
puedo ver en mi pantalla.
126. 9.11 Codifica la funcionalidad de visualización de armas: Ahora vamos a codificar la funcionalidad
para la interfaz de usuario de pantalla. Vamos a la interfaz de usuario
y vamos a abrirla. Esencialmente, antes de
comenzar a codificar UI, solo
tienes que pensar, ¿qué es lo que intentas hacer? Lo que estoy tratando de
hacer es que quiero cambiar esta imagen a
lo que sea que tenga. Quiero exhibirlo y quitarlo, dependiendo de si he
saqueado el arma o no Entonces comencemos con
el primero. El primero,
sólo voy a cambiar el nombre de la imagen para que no
sea confuso. Voy a llamarlo rifle IMG. Al siguiente voy
a llamar pistola IMG. Ahora para usarlos
aquí en la gráfica, se
puede ver que no
tenemos ninguna variable. Tenemos que dar click en
ambos. Seleccione ambos. Dos es variable, así que hay que
tomar eso y compilar. Y ahora podemos ver que podemos
usarlas como variables
dentro de aquí. Voy a eliminar
todos estos y vamos a crear un evento personalizado. Vamos a llamarlo
actualizar inventario. Actualizo inventario I dentro de aquí. Básicamente lo que estamos tratando de
hacer es que estamos tratando tomar esta pistola de imagen por
ejemplo y rifle de imagen y estamos tratando de decir
set brush from texture. Este conjunto de pinceles de textura, esto es simplemente justo cuando
estás cambiando esta imagen. Queremos cambiar esta imagen dependiendo de si
estamos sosteniendo la K, la información o algo más. Establecer pincel de textura y aquí está la
imagen que podemos cambiar. La otra cosa es que estamos
tratando de mostrar
u ocultar este icono
dependiendo de si hemos saqueado
el arma o no Nuevamente, dragón de este conjunto de visibilidad
y seleccione éste. Voy a copiar y pegar
este de aquí abajo, Coppa esto y conectar también
el rifle de imagen Esto es lo que
intentas hacer. Estoy copiando pegando esto también
así así. Estas son las funciones
que simplemente vamos a usar. Esto siempre es agradable de hacer cada vez que vas
a empezar con algo. Intenta pensar qué es
lo principal que intentas hacer. Estás intentando
cambiar la imagen dependiendo de qué
arma hayas saqueado y estás tratando de establecer la visibilidad en
oculta o no oculta, dependiendo de si has
saqueado esa arma o Bien, con esa. Ahora, depende de qué
arma estemos saqueando. ¿Es una pistola o es un rifle? Recuerda, ya
tenemos una variable para eso y este es el tipo de
arma E. Estamos
usando mucho eso y llamémosle a ésta
un tipo de arma. Bien, entonces tenemos éste y
podemos arrastrar desde aquí y decir que switch tiene autoridad. En realidad encienda
la enumeración este. Ahora, dependiendo de
si es una pistola, vamos a ejecutar este código. Dependiendo de si es un rifle, vamos a ejecutar este código. Y sólo voy a conectar todo esto aquí,
así como esto. Bien, ahora por las imágenes,
por las texturas. En lugar de
ponerlos por aquí, solo
voy a hacer clic y
arrastrarlos a este evento. Y voy a
llamarlo clavo tonto. Podemos
arrastrar esto aquí también. Bien, vamos a compilar ahora.
Vamos a guardar todo. Bien, así que
lo único que nos falta
ahora mismo es la miniatura del arma Porque recuerden, no
hemos agregado una miniatura de arma a la infraestructura de
armas Entonces tenemos que hacerlo
en la siguiente lección. No obstante, antes de terminar esto, también
necesitamos establecer
esto visible o no. Entonces ahora la visibilidad del arma va a ser visible cada vez que hayas
cargado el arma. No obstante, si aún
no lo has cargado, quedará oculto. Entonces para hacer esto, lo que podemos
hacer es simplemente verificar si esta miniatura de imagen o miniatura de arma
es válida o no Porque igual que antes, si vuelvo a la base de
jugadores y jugadores, recuerda así como
cómo podríamos eliminar variables como esta
al no ponerlas en nada y no
serán válidas. Podemos hacer lo mismo aquí
para la miniatura de la imagen. Podemos ponerla a nada
y no va a ser válida, y eso significa que se nos ha
caído el arma. Lo que podemos hacer es que podemos
arrastrar de aquí y decir que es válido y podemos
elegir, éste es válido. Al igual que antes tenemos,
o hemos trabajado con las notas selectas
podemos arrastrar de esta y decir seleccionar y elegir esta. Ahora puedo conectar este
lingote a este de aquí. ¿Bien? Si la
miniatura del arma no es válida, es válida es falsa, eso significa que queremos que
esto se oculte Ahora para este otro, si es cierto, es válido. Queremos que
no sea comprobable por golpes. Recuerda, no golpear
comprobable significa que el cursor de
tu mouse no puede
interactuar con esta imagen Realmente no necesitamos hacer eso. Lo que tenemos que hacer
es hacer clic en él aquí y mantener el control. Haga clic en el
segundo y también establezca la visibilidad en
no hit comprobable. Visible significa que tu mouse realmente
puede hacer clic en él y bloqueará
cualquier cosa detrás de esto. Pero realmente no
necesitamos hacer clic en esos. Necesito configurarlos
en no hit comprobable. Y haz lo mismo
aquí para el texto. Establecerlos en no golpear comprobable. Aquí abajo en la visibilidad también por defecto voy
a seleccionar estos dos y la visibilidad a ocultos, Realmente no
necesitamos
verlos cuando iniciemos el juego, no
tenemos armas. Vamos a configurarlo para no golpear comprobable cada vez que realmente
saqueemos el arma aquí Haz lo mismo aquí. Estamos
preguntando si esto es válido. De hecho podemos simplemente
copiar y pegar éste. Copia pégalo, conéctalo, y también conéctalo aquí arriba. Bien, entonces aquí he creado algunas notas de ruta y
organizado un poco el código. Aquí tenemos el
código, y este es el código principal para
nuestro inventario, UI. Ahora pasemos a
la siguiente lección y creemos esta miniatura de arma
dentro de nuestra estructura
127. 9.12 Añade una miniatura de arma a la estructura: Ahora agreguemos la
miniatura del arma a la estructura. Volvamos a nuestras estructuras y abramos la información del arma. Y agreguemos una nueva
variable y
llamémosla miniatura aquí Para la miniatura, el tipo
que es es solo una imagen, entonces es una textura dos D. Así es
como se llaman. Salga y ahorre. Ahora vamos a cerrar
esta estructura. Agreguémoslo también
a la tabla de datos. Si abres la tabla
de datos de las hojas de Google que
creamos anteriormente y abres la tabla de datos dentro de aquí, agreguemos la variable dentro de la estructura.
Voy a simplemente empujarlo hasta aquí
después del tipo, Tal vez por aquí solo
para que sea más limpio. Realmente no importa a
dónde lo muevas, pero ahora necesito agregarlo aquí. Después del tipo, necesito
agregar la miniatura. Si busco aquí el tipo, necesito agregar la
miniatura aquí Voy a hacer click derecho y
agregar una columna a la derecha. Entonces voy a llamar a
esta miniatura. Recuerda
llamarlo con el
mismo nombre que lo llamaste aquí. Ahora necesitamos las
referencias a ellos. Si cierro esto,
voy a la UI. Abro los íconos, ahora puedo escribir, dar clic en
este AK y copiar la referencia. Puedo volver a mi tabla de datos y pegarla aquí para el AK. Haz lo mismo
aquí para la info, click
derecho copiar referencia. Pégalo aquí, clic derecho
copiar referencia para la pistola. Y pegarlo aquí también. Ahora tienes que seguir
adelante y
descargarlo como un archivo CSV por aquí
en la carpeta de descargas. Voy a renombrar Weapon Info. Voy a copiar
esto, el viejo. Voy a borrarlo. Voy a pegar el
nombre aquí, DT Weapon info. Recuerda que este es
el mismo nombre que lo llamamos aquí
dentro de nuestras tablas de datos. Y ahora podemos pinchar
y arrastrarlo hasta aquí, y dice
reimportarlo con éxito Si lo abres,
puedes ver que en realidad tiene íconos adjuntos ahora. Bien, ahora podemos cerrarlo. Y ahora pasemos
al jugador y
abramos la base de jugadores. Dentro de la base de jugadores, queremos actualizar la interfaz de usuario cuando
saqueemos el arma aquí
en el arma del lote Bajemos aquí en
el arma del Servalote. Necesitamos llamar a este
evento de actualización de interfaz de usuario dentro de un cliente. Recuerde, la interfaz de usuario está ubicada en el
cliente y en realidad
no tenemos ningún evento de
cliente en este momento Lo que voy a hacer es hacer clic derecho por aquí y hacer un
nuevo evento personalizado. Llámalo CL para cliente, déjame llamarlo Actualizar
inventario, UI por ejemplo. Y ejecutarlo en el
cliente propietario y es confiable. Lo que queremos
hacer aquí es que queremos llamar a nuestro B principal. Recuerda que está dentro
del controlador del reproductor, tenemos este WB principal. Y dentro de la principal B, podemos encontrar nuestro evento
que creamos antes. Necesitamos acceder a este WB main, que está dentro del controlador del
reproductor. Intenta ver si puedes hacerlo tú mismo y llama a
este evento aquí. Esta es una buena práctica
para comunicarse entre planos.
Hagámoslo juntos. Ahora déjame hacer clic
derecho y decir obtener controlador para obtener el
controlador para este específico. Entonces puedo arrastrar
desde aquí y decir obtener referencia del controlador del reproductor, lo hicimos desde nuestra interfaz de
blueprint Y entonces puedo llamar a
mi variable principal WB. Entonces puedo arrastrar y
actualizar el inventario. I inventario de actualización de eventos. Adelante
lo conecto para el tipo de arma. Sólo voy a
arrastrarlo hasta aquí, así
como la miniatura del arma Sólo lo estoy
arrastrando al evento. Crea una variable automáticamente y voy
a crear algunos nodos de ruta. Ahora cuando eso esté hecho,
sigamos adelante y
compilemos y guardemos
todo por aquí. Siempre que saqueemos un arma, voy a llamarla, después equipar esto, después de cambiar
el tipo de equipo aquí, voy a alejar esto. Voy a alejar
esto también. Voy a alejar esto. Entonces voy a llamar al CL, actualizar arma o UI de Inventario. Ahora, en lugar de establecer
el tipo de arma, solo
arrastrémosla de
esta arma saqueada Voy a hacer click y
arrastrarlo hasta aquí. Hacer una nota de redireccionar también. También para la miniatura del arma. Ahora ahora lo tenemos dentro
de nuestra tabla de datos. Cuando obtienes la información del arma, también
obtienes la información para la miniatura,
que puedes ver aquí Si no lo ves,
recuerda marcar esto aquí. Recuerda que hacemos clic en Ocultar pines
desconectados, y solo
vemos esto Ahora también puedes hacer clic
en el Girar para mostrar la miniatura y
podemos conectarla aquí Bien, así que ahora lo
tenemos aquí. Ya lo tenemos enchufado. Debería funcionar siempre que
saqueemos un arma. Vamos a probarlo.
Antes de continuar, hagamos clic en play. Y cuando hacemos clic en Jugar
como el terrorista. Hago alusión a esta
pistola por ejemplo. Y se puede ver que la pistola
ahora se muestra
aquí abajo en la Mi UI. Cuando aludido a la para, no está mostrando la P.
Tenemos que arreglar esta No está mostrando el por ahora. Es raro porque aquí debería
ser el mismo código. Siempre que sea, el infor, no
estamos desarmados Entonces aquí en el arma botín
ahora mismo o mucho arma, así no estamos desarmados Así que en realidad está
pasando por esta parte
del código aquí arriba y se está
saltando todo esto Necesitamos realmente reconectar
esto a uno correcto. Voy a mantener el control
y Alt para desconectar esto. Alt. Haga clic, lo siento. Alt y haga clic para
desconectar esto. Entonces voy a mover
esto aquí de lo falso. Creo que es mejor si lo
conectamos a aquí. En cambio, vamos a
conectarlo a aquí, Esto es más correcto y vamos a compilar ahora
y tratar de jugarlo. Entonces si juego a terroristas selectos, ahora cojo un formulario
y luego cojo la pistola y se puede ver que
ambos ya están funcionando. Tenemos que arreglar la cosa donde ahora
soltamos un arma y ahora debería
quitarla de nuestra interfaz de usuario. Copiemos esto aquí, y encontremos el arma de lanzamiento. Ahora por aquí por el código de armas gotas
y el arma de caída, voy a entrar de aquí. Y ahora estamos poniendo
el arma caída y la estamos retirando
del inventario. Puedes hacerlo aquí o
aquí. Realmente no importa. Yo sólo voy a
hacerlo dentro de aquí. Voy a pegarlo. Y necesitamos tener
la miniatura del arma. Entonces esta es el arma para soltar. Lo que puedo hacer,
solo puedo tomarlo de aquí, arma para soltar, y
puedo conectar esto aquí, para que se vea más limpio. Yo también puedo tomar esto. Puedo decir de nuevo,
en realidad lo estamos haciendo todo aquí. En lugar de copiarlo pegándolo, solo
usemos éste.
Déjame moverlo de nuevo. Y luego puedo usar
el tipo de arma y puedo usar la miniatura Y vamos a
estructurarlo mejor para éste. Volvamos
a conectarlo. Vamos a moverlo hacia atrás. Al igual que antes,
siempre podemos crear una parte trasera. En realidad, no necesitamos
crear un nodo trasero. Podemos simplemente colocarlo así aquí para la miniatura del arma En realidad,
antes de hacer clic en play, en realidad no es así. Recuerda, cuando
sueltas un arma, no
quieres
poner una miniatura, nosotros queremos configurarla en nada Aquí en la interfaz de usuario, dice
que no es válida, y cuando no es válida
va a ocultar este icono. Hacemos click adelante en play y seguimos adelante
y saqueamos la pistola Saquea el rifle. Y si soltamos el rifle, por ejemplo, se puede ver
que se retira de la interfaz de usuario. Si se me cae la pistola,
ahora se retira. Si recojo el AK, se puede ver que ahora está mostrando el icono de AK. Si cojo la pistola, si dejo caer el AK y
recojo la información, puedes ver que ahora está
mostrando el ícono de info. Entonces todo está funcionando
como se supone que debe hacerlo. Y eso fue todo por ahora. Entonces en la siguiente
podemos intentar. Entonces siempre que tengas
un arma seleccionada. Entonces ahora mismo si tengo
la pistola seleccionada, la pistola debería
ser completamente visible. Sin embargo, el icono de información
debería ser apenas visible. Para que sepas lo que has
seleccionado de tu inventario.
128. 9.13 Opacidad de interfaz de usuario de armas sin equipos: Bien, así que
continuemos con el código aquí. Lo que tenemos que hacer
ahora mismo es que necesitamos
cambiar la opacidad de las
imágenes en el diseñador Si haces clic en uno de ellos, por ejemplo el AK, si
haces clic en el tinte, si haces clic en la
flecha y ves puedes cambiar el alfa para que sea visible y no visible. Entonces esto es lo que queremos mostrar cada vez que hayamos
seleccionado la pistola. Por ejemplo, voy
a volverlo a hacer uno. Y vamos a la gráfica. Podemos tomar la pistola de imagen
y podemos decir opacidad. Si no sabes
cómo se llama, solo busca
la palabra y luego podrás ver
cuál es la mejor para usar. Esto a veces es
algo que uso. Si estoy creando una nueva mecánica, solo
puedo escribir la palabra y luego tratar de seleccionar
lo que tenga sentido. Queremos establecer la opacidad
para este conjunto de imágenes opacidad. Ahora depende de cuál sea
nuestra arma equipada. El arma equipada está
dentro de nuestro jugador, este tipo de arma equipada. Porque este
ahora mismo, no podemos usar. Esta es sólo el arma que
hemos recogido
del suelo. Esta no es necesariamente el arma que estamos
equipando en estos momentos Necesitamos obtener esta variable. Y la forma en que hacemos esto, nuevamente necesitamos comunicarnos
con el jugador. Dentro de la interfaz de usuario, tenemos
algo llamado get owning, get owning player. Si
quieres una referencia al controlador
del jugador,
obtén jugador propietario. Si quieres una referencia
al jugador pan para el I, queremos una referencia
al jugador Paw. Voy a decir conseguir
ser dueño de jugador peón. Entonces podemos arrastrar desde aquí
y decir obtener referencia del jugador. Porque ya lo
hemos hecho dentro de una interfaz de blueprint Vamos a
conectarlo después de los que están aquí. No importa
cuál de ellos
sea, ejecuta el código y luego
sigue corriendo de aquí. Queremos conseguir el equipado, éste se equipara tipo de
arma. Otra vez, igual que antes. Voy a mover esto y decir switch on enumeration connect Ahora tomemos esto. Si se trata de una pistola, queremos establecer la opacidad
a una totalmente visible Si es un rifle, copiemos esto realmente
sin éste. Digamos establecer opacidad
si es un rifle. De la pistola. Ahora mismo
hemos equipado la pistola, el rifle estaría
a 0.25 de visibilidad. Por ejemplo, la opacidad. Ahora podemos copiar y pegar esto aquí y podemos
conectarlo al rifle. La pistola ahora es 0.25
y el rifle es uno. Ahora que tenemos esto terminado, podemos seguir adelante y
compilar y guardar todo. Ahora debería funcionar. Tenemos que llamar a éste. ¿Recuerdas esta actualización de interfaz
de usuario de inventario? En realidad no lo estamos llamando dentro de nuestro evento donde en realidad
seleccionamos
armas aquí abajo. Cuando seleccionamos el arma primaria y secundaria por aquí. No estamos llamando al evento donde actualizamos
la interfaz de usuario de inventario, tenemos que llamar a
este también. Siempre que equipamos armas, esta de aquí se actualiza. Tenemos que hacer eso.
Vamos a la base de jugadores. Y déjeme simplemente alejar esto. Recuerda que estamos en el arma de equipamiento
Serva. Siempre que cambiemos
a la primaria y secundaria dentro de aquí. Después de esta otra vez
voy a llamar a CL, actualizar arma
I, voy a comprobar aquí
el tipo de arma que estamos equipando es esta una arma tipo dos
equipar que estamos usando Solo puedo conectar esto aquí y hacer un
nodo de re ruta para el siguiente. La miniatura del arma
es que en realidad podemos obtenerla de esta variable de
arma, podemos arrastrarla aquí, obtener el nombre,
buscar la variable de nombre, recopilarla igual que antes, obtener información de arma, y luego podemos arrastrar
desde aquí y romperla Entonces podemos obtener la
información aquí. Tenemos el tipo de arma
y tenemos la miniatura. Técnicamente, puedes simplemente
enchufar esto aquí también. Realmente no importa.
Sólo voy a enchufar la miniatura.
Eso está bien. Y voy a dar
click en éste y esconder pines desconectados Y ahora tenemos esto terminado. Voy a llevar esto más cerca y
todo se ve bien. Vamos a compilar, guardar todo
y vamos a probarlo. Flic se quejan ahora
selectos terroristas y
puedo recoger la pistola y
puedo recoger a los cuatro Se puede ver que la M cuatro no es tan visible como la
pistola en estos momentos. Si selecciono la M cuatro, se vuelve más visible. Entonces ahora puedo ver que puedo
cambiar de arma así. Si lo dejo caer y selecciono
el AK o cojo el AK, puedo soltar la pistola. Y ahora el AK no es visible porque no lo
he equipado. Pero si lo equipo,
se va a mostrar. Ahora puedes ver cómo funciona esto. Es mucho mejor que antes. Ahora en realidad podemos ver
lo que hemos equipado. Es solo un bonito diseño de juego, así que en realidad podemos,
tenemos algunos cambios visuales. Bien, ahora esto está terminado. Hagamos algunos efectos de sonido. Los efectos de sonido para cuando
realmente cambiamos el
arma y
los recargamos así y cada vez que estamos soltando el
arma al suelo
129. 9.14 Añade efectos de sonido de Equip: Ahora sigamos adelante y agreguemos
los efectos de sonido equipados. Primero, sigamos adelante e
importemos los efectos de sonido. Si vamos a la carpeta de audio y efectos de
sonido dentro de aquí, te
he dado en los materiales de
costo aquí dentro. Si vas al audio y si
bajas aquí y encuentras
la recarga del rifle y el clip del
rifle, la recarga de
pistola y el clip de pistola, estos cinco efectos de sonido, adelante y haz clic
y arrástralos
al navegador de contenido
dentro de Bien, así que cuando los
hayas arrastrado, seleccionémoslos todos manteniendo presionado, haciendo clic en uno de
ellos, manteniendo presionado el turno y haciendo clic en el
último clic derecho, y creamos múltiples señales Va a crear todas
estas señales sonoras para ti. Ahora, me gustaría
cambiarles el nombre a lo que hicimos antes aquí con
la S, el prefijo. Sigamos adelante y hagamos
clic en el primero. Voy a borrar
desde el final. Voy a añadir sonido
Q en lugar de efectos. Voy a hacer eso
con el resto de ellos. Y yo sólo saltaré un poco y simplemente les
renombraré aquí. Ahora los he renombrado a todos. Antes de continuar,
sólo voy a reducir el volumen para cada uno
porque son muy ruidosos. Y para este curso, no
quiero que
sean muy ruidosos porque
va a ser molesto para ti. Este es el sonido aquí, y
si hago clic en el siguiente, tal vez reducirlo a algo
así como 0.30 0.3 Por cierto, puedes tener volúmenes de Luda Sonará mucho
mejor en el juego, pero solo estoy haciendo
esto para mi núcleo, que no tengas que
escuchar estos ruidos fuertes Entonces estas son las recargas y
así es como suena. Bien, increíble. Ahora déjame
cerrarlo, guardar todo. Ahora vayamos a los activos y animaciones
y encontremos estas animaciones. Recuerda, no
son estas viejas animaciones, nuestras propias animaciones aquí. Si busco
algún montaje ahora, podemos seguir adelante y
abrir ambos. El montaje de animación de rifle y el
montaje de animación de pistola que
creamos antes . Bien, genial. Dentro del
montaje de animación aquí, lo que puedes hacer, puedes agregar efectos
de sonido para que no tengas
que hacerlo dentro del código Aquí en el nodo a F,
tenemos esta barra aquí, esta. Puedes seguir adelante y
renombrarlo si quieres
haciendo clic en él. Haga clic en dos en el teclado. O simplemente pincha sobre
él y tal vez
llamarlo efectos de sonido o
algo así. Realmente no
importa. Y aquí dentro, hagamos clic derecho y agreguemos una
notificación y luego reproduzca Sonido. Ahora vamos a darle un click y ya
podemos elegir qué
sonido queremos reproducir. Lo que queremos tocar
para el primero se llama clip de pistola. Queremos elegir
este
clip de pistola porque puedes ver aquí, queremos colocar el sonido
cada vez que vuelva a cargar aquí, cada vez que saque el
clip de la pistola Ahora lo que he
descubierto es que es
mucho mejor agregar el sonido antes de que haga la cosa
porque suena retrasado. Si en realidad pones el
sonido aquí donde saca el clip y
puedes intentar escucharlo, suena un poco retrasado. Lo que me gusta hacer
es que me gustaría
agregarlo antes de que realmente lo haga. A lo mejor algo así como
por aquí. Bien. Suena bien. Ahora,
el siguiente es que no tengo que hacer sonar efectos
para el clip de pistola, en realidad
tenemos que
agregar el mismo. Puedes hacer clic aquí, controlar C y luego
controlar V por aquí. A ver cuándo
queremos jugarlo. A lo mejor algo como aquí. Entonces la última es
la recarga de pistola. Y creo que voy a agregarlo
a algún lugar por aquí. Haga clic con el botón derecho, Agregar, notificar el juego. Sonido Haga clic en él y
encuentre la recarga de la pistola. Creo que si buscas así recarga encontrarás
el que te di Recarga de pistola. Y por cierto, puedes ver muchos efectos de
sonido aquí. Y esto se debe a que ya
importaste efectos
de sonido del mercado. Cuando importaste todas
estas armas, en realidad
hay efectos de sonido dentro de estas carpetas de armas. Puedes intentar usar algunos
de esos si así lo deseas. No tienes que usar
el que te di. Puede buscar recarga de
pistola. Ese es el que te di. Ese es el sonido. hacer clic en el espacio para escucharlo. Bien. Para que suene
un poco más interesante, puedes escuchar la entrada
y salida del clip. O clip hacia fuera y clip adentro.
Suenan igual. ¿Bien? No es
realmente interesante. Sigamos adelante y
cambiarlo y hacerlo más interesante. Si vas a los efectos de audio
y sonido y haces clic, da clic en él. Pero vamos a hacer clic en
el clip de la pistola y vamos a duplicarlo. Si puedo encontrar el
botón aquí, duplique. Llamémoslo Pistol Clip In. Cambiemos el nombre de éste
a Pistol Clip Out. Vamos a hacer clic en el clip de
pistola aquí para que suene diferente. Creo que la hemos usado
antes dentro
del curso antes. Pero puedes usar este
llamado modulador. Y con un modulador
se puede cambiar el
tono del sonido. Y de esta manera puedes
hacer que suene diferente. Vamos a conectarlo aquí.
Vamos a juntarlos. Ahora da clic en el modulador. Voy a cambiar este
a 1.3 en el terreno de juego. Va a sonar
más alto que el otro. Si intentas seguir adelante y
tocarlo , así es como suena. Si abres el otro, el clip sale ahora puedes
escuchar la diferencia. Bien, podemos hacer click en el espacio
aquí para escucharlo. En realidad, creo, sí, tenemos que cambiarlos
aquí en lugar de recortarlos. Voy a cambiarlo a
clip in y vamos a intentarlo de nuevo. Bien, suena mucho
mejor que antes, así que sigamos adelante y lo guardemos. Y tenemos que hacer
lo mismo por el otro. Si abro el otro montaje de
animación, y puedes hacerlo, por cierto aquí desde
el navegador de assets, puedes ver el otro montaje de
animación Adelante y
ábrelo igual que antes. Cambiemos el nombre de éste
a efectos de sonido. Hagamos clic derecho en algún lugar
aleatorio aquí y agreguemos una notificación. Juega. Sonido Haga clic en el sonido. Adelante y
busca rifle Lip, creo que se llama
Rifle Clip out. El primero es clip out de nuevo. Voy a ponerlo retrasado, mejor lo estoy poniendo aquí. Entonces el clip en, voy a agregar en
algún lugar por aquí, Tal vez el clic derecho
y haga clic sobre él, cambia a rifle En la recarga, tal vez juegue la
recarga en algún lugar Haga clic con el botón derecho, Reproducir. Sonido Haga clic en él y
busque la recarga de rifle. Adelante,
selecciónela e intentemos ver
cómo suena. Haga clic aquí. A lo mejor este debería llegar
temprano porque suena retrasado. Suena bien. Ahora me gusta. Y
vamos a guardar todo. Y eso fue todo por éste. Entonces ya debería funcionar. Porque estos ahora
se aplican a las animaciones, así que no necesitamos agregar
nada al código. Entonces, si vamos por aquí
y seleccionamos terroristas. Y si solo cojo una
pistola por ahora. Suena bien. Si recojo el informe
y selecciono suena bien. Bien. Impresionante. Ahora
suenan bien. Por supuesto que vamos a hacer que se vea mucho mejor con la recarga y con
el clip y así sucesivamente, pero por ahora
solo fueron los efectos de sonido y todo está sonando
genial, por cierto De nuevo, puedes usar otros efectos de
sonido que vienen con las otras armas que hayas descargado
del mercado. Y eso fue todo por ahora. Así que vamos a guardar todo y pasemos al siguiente.
130. 10.01 Crea la interfaz de usuario de mira: Bien, así que sigamos adelante
y sumemos la cruz. Vamos a la carpeta UI. Y abramos
la carpeta de iconos en lugar
de aquí, igual que antes, ve a tus materiales de costo
y he incluido para ti, en lugar de iconos, he
incluido esta cruz para ti. Haga clic y arrástrelo
al navegador de contenido. Antes de que nos olvidemos,
abramos y vayamos aquí en
el grupo de texturas. Cámbielo a UI, igual que antes para la configuración de
compresión, vamos a cambiarlo a una interfaz de
usuario dos D, vamos a guardarlo, vamos a
cerrarlo. Ahora lo que queremos hacer,
vamos a la interfaz de usuario. Hagamos clic derecho aquí
y vayamos a la interfaz de usuario, Seleccionar Wigid, Blueprint.
Y elige al usuario. Widgid. Todo esto
ya lo hemos hecho antes. Vamos a llamarlo WB. Rosa. Vamos a abrirlo
en vez de aquí. ¿Qué es
lo primero que tenemos que añadir? Recuerda que es el lienzo. Busquemos
lienzo. Vamos a agregarlo. Y dentro de aquí, muy sencillo. Para el Crossa,
solo necesitamos una imagen. Sólo necesitamos el Crossa. Sigamos adelante y cambiemos
la imagen a la cruz. Selecciona el Crossa, queremos
que esté en el medio. Intenta hacerlo tú mismo. Esto ya lo hemos hecho antes. Intenta hacer esta crossia en
el medio en la posición 00. Intenta hacer eso. Sigamos juntos lo que
quiere hacer aquí. Primero, quieres cambiar el punto de anclaje
al medio. Entonces si escribes
00 la posición, puedes ver que se ancla aquí. Esto se debe a
que
para la alineación, hay que establecerla en
0.5 para la Y también. 0.5 igual que esto para que el tamaño sea correcto. En lugar de cambiar el tamaño aquí o el tamaño aquí, quiero decir, puedes tener este
tamaño al contenido, va a dimensionar a
cualquier tamaño de imagen que
tengas en lugar de
cambiarlo aquí arriba. Vamos a compilar ahora. Ahora bien, así es como se ve. Recuerda, también quieres hacer
click en pantalla aquí y para los portátiles y cambiarlo a genérico, este cuaderno aquí. Como esto es solo un cruzador, realmente no
necesitamos todo
este lienzo aquí Esto es simplemente algo que está en medio de la pantalla. Debido a esto, en realidad
podemos hacer clic en Pantalla de
Relleno y seleccionar Deseado. Esto solo va
a llegar a esta pequeña cosa de aquí porque solo queremos
colocarla en la pantalla. No queremos todo
el espacio a su alrededor. Seleccionar lo deseado aquí
sería correcto. Ahora bien, si haces zoom uno por uno, puedes ver lo pequeño que es esto. Necesitamos aumentar la
imagen y tal vez algo así como 80 por 80,
solo mucho más grande. Podemos probarlo en juego más tarde para ver si eso es grande o pequeño. Así que ahora podemos guardar
todo para éste. Voy a darle click de nuevo. Ve a Visibilidad,
cámbialo a no hit Comprobable. Y esto es porque no
queremos que el ratón
interactúe con él. Eso fue todo para todo. Vamos a guardar esto.
Vamos a cerrarlo, y pasemos
al siguiente.
131. 10.02 Muestra la mira: Ahora agreguemos la
cruz a la pantalla. Y también puedes
intentar hacerlo tú mismo. Esto ya lo hemos hecho antes. Si no lo recuerdas, volvamos a
hacer esto juntos. Vamos a los planos. Ahora vamos al controlador del
reproductor. Aquí es donde tenemos toda
nuestra interfaz de usuario en el gráfico de eventos. Puedes ir a tus
widgets dentro de aquí. Hay que crear el valor de
enumeración para ello. Si solo abres
la carpeta de planos,
en folder, y los widgets del juego dentro de aquí, al
igual que antes Agreguemos un nuevo enumerador. Llamemos a esto una cruz. Adelante y ahorra.
Volvamos al mando
de reproducción aquí. Hagamos clic derecho en
Crear Widgets aquí, seleccione Crear Widgets
y seleccione Cruz. Haga clic derecho sobre él,
promoverlo a una variable, y llamarlo cruz B. Adelante y agrégalo
a la ventana gráfica. Agrega dos viewports, así
como así. Bien, igual que antes, saquemos esta variable cruzada
B. Vamos a hacer clic derecho y
convertirlo en un get validado. Vamos a conectarlo aquí. Si es válido, podemos simplemente seguir
adelante y agregarlo directamente a la ventana gráfica.
Si no es válido. Sigamos adelante y
creémoslo primero antes de agregarlo
a la ventana gráfica Recuerda también agregarlo a, veamos aquí, el Hyde Widget. Si haces clic en Hyde Widgets y también lo puedes encontrar aquí. Si no lo tienes
abierto, puedes tomar esta cruz y
convertirlo correctamente en un get validado. Si está en la pantalla
y queremos eliminarlo, podemos arrastrar y decir
eliminar de los padres. Adelante y solo
organízalo un
poco más así así. Bien, vamos a guardar todo y ahora vamos a
agregarlo a la pantalla. Vamos a la gráfica de la camioneta. Y creo que el
mejor lugar para agregar esto es tal
vez después de engendrar al jugador, escondes la selección del equipo y también mostrar
el widget principal Sigamos adelante y mostremos
la cruz también. Vamos a golpear desde
aquí y decir mostrar ocultar widget y llamar a
este evento que hicimos. Adelante, selecciona la
cruz y selecciona Mostrar. Esto debería funcionar ahora
compilar, vamos a jugar. Ahora vamos a jugar como el
cliente por ejemplo, y seguir adelante y
seleccionar Terrorista. Ya puedes ver que tengo el Crossa a la mitad
de mi pantalla ahora Puedes elegir ajustar el
tamaño de la misma si así lo deseas. Si solo vas a
la UI y vas
al Crosier y puedes dar click sobre él y tal vez cambiar el
tamaño a algo así como 60, 60 si crees que
esto es demasiado grande Y puedes intentar
volver a jugarlo y ver cómo
se ve. A lo mejor algo así es
mucho mejor que antes. Bien, así es como agregas
un crosier a la pantalla, y pasemos
al siguiente
132. Añade propiedades de armas a la estructura: Antes de continuar,
necesitamos agregar algunas propiedades
a la estructura. Vamos ahora a la
estructura aquí, y vamos a abrirla. Lo primero que
queremos agregar a la información del arma es
la velocidad de disparo. Eso nos hace falta. Lo
siguiente que tenemos que añadir es el destello del hocico Este es el efecto visual que queremos jugar cada vez que
disparemos el arma. El último es
el efecto de sonido, bien para la velocidad de disparo. Cambiémoslo a una carroza. Esto es solo un
valor numérico para el flash del hocico. Este es un
sistema de partículas. Sistema de partículas, El efecto visual. Y sigue
adelante y elige la referencia del objeto para
el efecto de disparo. Solo usemos la señal de sonido. Estamos usando señales de sonido aquí
para la velocidad de disparo, la mosca del
hocico, el efecto de sonido Todo se ve bien.
Sigamos adelante y lo guardemos. Estas variables que
hemos creado aquí, las
vamos a agregar
más tarde a la tabla de datos, pero por ahora ya estamos terminados. Nosotros las hemos añadido. Ahora
vamos a cerrarlo, guardar todo, y
pasemos al siguiente.
133. 10.04 Dispara acción, estructura y entrada de arma: Ahora sigamos adelante y creamos una acción de entrada
llamada Arma de Disparo. Y puedes
volver a hacerlo tú mismo. Intenta hacer eso como práctica. Vamos al reproductor y
abramos la carpeta de entrada. Hagamos clic derecho, vamos a entradas
y agreguemos una acción de entrada. Vamos a llamarlo un arma de tiro. Realmente no necesitamos hacer
nada dentro de aquí. Vamos a abrir el contexto
de mapeo de entrada. Agreguemos otro mapeo. Debería estar aquí en la parte inferior. Y vamos a seleccionarlo y
buscar arma de tiro. Adelante y
selecciónelo. Y para la llave, sólo
vamos a usar
el botón izquierdo del ratón. En realidad no necesitamos
nada aquí abajo. Ahora vamos a cerrarlo. Vamos a abrir la
base de jugadores y dentro de aquí. Entonces aquí puedo
mirar ahora mismo y
buscar un arma de tiro. Y sigue adelante y selecciónala. Ahora también antes de que termine, veo aquí para el arma de equipar.
De hecho, arreglemos esto. Ahora que me doy cuenta aquí para el arma equipar tenemos
esta animación de recarga En realidad, solo agreguemos eso
dentro de nuestra estructura. Si solo vas a la estructura
y la abres y
buscas o simplemente para hacer una nueva variable y la
llamas equipar, algo así
o equipar animación. También puedes escribir todo el
asunto, algo así. Equipar animación Para esta, vamos a abrirla y
busquemos cualquier montaje Vamos a utilizar una referencia de objeto de
montaje de animación para la animación equip Sólo voy a dejar que esté
aquí abajo . Vamos a guardar todo. Ahora vamos por aquí
dentro del código. En lugar de hacerlo así, lo que podemos hacer ahora es
que podemos eliminar esto, en realidad
podemos eliminar este. Y podemos tomar este montaje
para tocar directamente aquí. Y podemos eliminar
esta también. Este podemos cambiar para equipar algo como
esto o equipar animación. Y vamos a arrastrarlo más cerca. Ahora lo que podemos hacer es por aquí, donde quiera que lo hayamos usado, si no
sabes dónde lo has usado, por cierto, aquí lo
hemos usado, pero
si quieres todas las referencias, puedes escribir click
aquí y puedes
buscar encontrar referencias y realmente
puedes ver
dónde las usamos. Vamos a hacer clic en el primero. Es sólo éste. Vamos a
hacer clic en el siguiente. Está por aquí. Podemos seguir adelante y dar click en Alt y dar click
aquí para desconectarlo. También voy a
eliminar este nodo vial. En lugar de usar
el tipo de arma, es
ésta,
el arma de equipo. Y ya tenemos la
estructura descompuesta, así que en realidad podemos
simplemente hacer clic en ella. Esconde todo aquí.
Ocultar pines no conectados. Y sólo puedo dar click en
esta animación de equipar. Y puedo tomar y
arrastrar esto hasta aquí. Entonces ahora puedes ver que tenemos una animación personalizada para
todas las armas. Entonces, dependiendo de lo que hayamos
enchufado para cada arma, va a tomar esa
animación y reproducirla Así que vamos a compilar y
guardar todo. Tenemos que
cambiarlo aquí también. Entonces si solo desconecto esto, borro este nodo vial. Y con esta estructura, nuevo, esconden pines desconectados Voy a mostrar
la animación de equipar. Y voy a
agregarlo por aquí también. Bien, así que ahora
tenemos esto arreglado y reorganizado ahora para
la animación equipar Lo que podemos hacer, podemos simplemente agregar esa información dentro
de nuestra tabla de datos. Sigamos adelante y
abramos la tabla de datos aquí. Voy a
abrir la tabla de datos. También voy a
abrir la estructura para poder ver qué variables
he agregado aquí. Para las variables, déjame
hacerlo un poco más grande e ir a este lugar
después de la clase. Aquí agregamos la velocidad de
disparo, también
agregamos el flash de boca, y también agregamos un efecto de sonido de
disparo Y agregamos la animación
equipar. Nuevamente, recuerda escribirlos exactamente como el nombre
que has escrito aquí. Ahora para la animación de quip,
vamos a guardar todo. Vamos al navegador aquí
y abramos los activos. Animación. Busca el montaje de animación
aquí para la pistola. Hagamos clic derecho y
copiemos tu referencia. Adelante dentro de la tabla de
datos para la pistola, que es la última de aquí. Vayamos a un lado
para la animación de quip. Sólo voy a
pegar esta referencia. Voy a hacer click derecho
para la referencia del rifle. Voy a pegarlo
tanto para el AK como para los cuatro. Por cierto, puedes hacer
lo mismo aquí. Y hagamos eso solo por el AK por la velocidad de disparo. Ahora tenemos que probar esto en
el juego, no tengo idea. Solo escribamos 0.1
para el siguiente 10.1, para el tercero 10.1, no lo
sé, tenemos que
probar esto en el juego. No tenemos idea en estos momentos. En cuanto al
destello del hocico, qué puedes hacer. Creo que tenemos algunos destellos de
hocico dentro de esta carpeta donde
importamos todas las armas
del mercado Si solo buscas hocico, puedes ver estos destellos de
hocico Voy a usar uno de ellos, por ejemplo. Se puede utilizar el. Destello de hocico de rifle de asalto. Voy a darle click derecho hacia arriba. Su referencia para
el fusil para el AK. Puedo pegar uno para el M cuatro. Puedo pegar el mismo. Ahora puedes ver por
cada arma, realidad
puedes tener un
destello de hocico para cada una de ellas. En realidad pueden ser únicos. Todos pueden tener efectos de sonido
únicos, Todos
pueden tener animaciones
únicas, velocidades de disparo
únicas, y así sucesivamente. Para que veas lo
bonito que es este método. Es realmente dinámico y
es muy fácil de cambiar. Si algún día deseas
tener otro efecto de sonido, solo
puedes entrar aquí
y agregar otra referencia. Bien, para el de pistola, tenemos el flash del hocico de la pistola aquí
tenemos el flash del hocico de la pistola y podemos
hacer clic derecho en este Podemos volver a copiar la referencia. Y podemos pegarlo aquí. Ahora para los efectos de
sonido de disparo, aún no lo
hemos importado, así que hagamos eso
mientras lo estamos haciendo aquí. Vamos a abrir la carpeta de
materiales de costo. Volvamos al material de
costo aquí. Lo que quiero que
importes es el disparo AK 47. También quiero que
importes los 41 disparos y también el disparo de pistola Esta una pistola de bala. Vayamos a la
carpeta de audio como efectos. Déjame quitar la palabra
de búsqueda y puedes pincharla y
arrastrarla aquí. Y al igual que antes,
puedes hacer click en todas ellas. Haga clic derecho, cree
múltiples señales. Voy a abrirlos
todos aquí arriba. Reducir el sonido aquí a
0.3 Creo que quiero reducirlos aún más
porque son muy ruidosos y no quiero que se
les permita dentro
de este curso. 0.1 para todos ellos. Y vamos a tratar de
jugarlo. Bien. Impresionante. Todo suena bien.
Vamos a cerrarlos todos. Ahora, antes de copiar
las referencias,
sigamos adelante y renombrémoslas. Voy a renombrarle este a SC y quitar la
Q aquí al final. También voy a cambiar
eso por la pistola. Eliminemos la Q y
escribamos C al principio. El último para el AK. Nuevamente, retire Q y A. C al principio. Ahora para las referencias, copiemos primero el AK 47. Voy a copiar la referencia. Y luego aquí en
la tabla de datos para el AK 47 que
es el primero, puedo pegarlo aquí
para el M cuatro. Si lo podemos encontrar aquí. Este es el cuatro de
aquí. Vamos a hacer clic derecho en copiar, hacer referencia, pegarlo. Y el último es
el disparo de pistola. Copia la referencia y
pegarla aquí también. Ahora sigamos adelante y en realidad
es ahorro automático, así que sigamos adelante y
descarguémoslo aquí y el CSV. Ahora por aquí
voy a cambiarle el nombre. Copiando el mismo nombre aquí para la información del arma,
eliminando el anterior. Voy renombrando la nueva y
luego voy a volver a mis tablas de datos de blueprints y ahora solo coge esta nueva
tabla de datos y la enchufaré aquí ¿Bien? Ahora toda esta
información está dentro de aquí. Puedes seguir adelante y
verificar para asegurarte todo se vea correcto
y que todo esté bien. Podemos seguir adelante y
salvarla todo. Ahora debería
jugarlo automáticamente, porque aquí en la base de jugadores. Ahora aquí en la
base de jugadores para el arma equipar, ahora
tenemos esta animación de
equipamiento. Y ahora lo está reproduciendo
automáticamente. Porque lo hemos definido en la estructura qué es si
solo lo jugamos ahora y
vemos qué pasa si seleccionamos terrorista y
salgo a recogerlo, deberías ver que en realidad lo
está jugando. Y para la pistola también. Ahora en lugar de tomarlo
del tipo de arma, toda la información
que podamos hacer única, podemos agregar a esta estructura de
arma.
134. Crea el temporizador de disparo de arma: Bien, entonces ahora sigamos adelante
y abramos la base de jugadores. Y dentro de aquí bajemos al evento hicimos
el arma de chute Para comenzar con eso,
creemos el servidor un clic derecho y
hagamos un evento personalizado. Y vamos a crear el arma de
disparo servidor dentro de aquí. Vamos a crear
un temporizador primero, ponerlo en réplicas en el servidor
y confiable para disparar Vamos a crear un temporizador igual que el otro
temporizador que creamos aquí para los pasos donde
creamos el temporizador establecido por evento Es el mismo método que
vamos a utilizar para disparar. Si bajamos aquí y
arrastramos de aquí y decimos temporizador por evento y seguimos
adelante y lo seleccionamos. Entonces desde aquí podemos arrastrar
y hacer un nuevo evento personalizado. Podemos llamarlo Bucle de arma de tiro. Bien, la
lógica del arma de tiro estará aquí abajo. Acuérdate de configurar el temporizador para que sea looping y luego
tenemos que establecer una hora Ahora el tiempo que pongas aquí depende de qué tan rápido esté disparando tu
arma. Para AK 47, por ejemplo, digamos que es
0.1 para una pistola. Va a ser para pistolas, si no quieres
hacerlas disparar automáticamente, realmente no
necesitamos este temporizador Pero para las armas automáticas, AK 47 y la información que necesitan para estar disparando
a través de un temporizador. Porque va
a hacer loop el código a esta velocidad ya que esta
es la velocidad del arma. Recuerda en la estructura, si vuelvo y abro
la estructura, hemos agregado esta variable de velocidad de
disparo. De hecho, podemos usar
eso para conectarnos aquí. Dependiendo de qué tan rápido esté disparando
tu arma, este temporizador cambiará la hora. Dependiendo de eso necesitamos una referencia al
arma, así que hagámoslo. Hagamos clic aquí y
hagamos una nueva variable. Y elige la base de armas aquí, de los tipos variables. Adelante y selecciona eso.
Llamemos a esto un arma. Tenemos que llamar a
éste aquí arriba. Llámalo servidor disparar arma. Puedo deletrear eso así. Arma de chote de servidor. Ahora tenemos que
definir el arma. Ahora si compilas,
puedes ver que obtendrás una era. Y dice nuevo parámetro. A pesar de que dice
arma aquí arriba, a veces esto sucede y solo hay que
borrarlo y volverlo a hacer. O puede hacer clic en archivo
y actualizar todas las notas. Y eso en realidad
arreglará eso también. Bien, necesitamos una definición
del arma ahora mismo. Nosotros en realidad, no
tenemos una variable ni el arma porque lo
único que tenemos es que tenemos el arma equipada, pero también eliminamos
eso más adelante tenemos arma
no equipada y
tenemos mucho arma también Aquí arriba tenemos
el arma saqueada. Sin embargo, también estamos liderando esta
variable de arma saqueada por aquí Realmente no
tenemos ninguna variable para el arma que
se mantenga consistente. En realidad, solo vamos a crear uno. Vamos al arma
equipada aquí. Cuando equipemos esta arma, voy a hacer clic con
el botón derecho en la misma variable y
promover esta a una variable. Llamemos a esta arma
equipada. Esta es arma equipada. Estamos equipando el arma. Y ésta es el arma
equipada. Y podemos usar esta variable. No eliminamos esto. Esto cambiará cada
vez que se establezca esto. Recuerda dar click
sobre esta variable y establecerla en replicada. Realmente no necesitamos
notificar nada replicar. Simplemente significa que
estamos enviando esta información al cliente. El cliente también sabe
lo que es esta variable. Voy a seleccionarlo todo
aquí y alejarlo. Y moviendo esta
variable hacia aquí. Ahora tenemos esa variable desde la que
podemos trabajar. Bien, ya podemos bajar aquí. Y podemos tomar esta arma
equipada y enchufarla aquí.
Ahora tenemos eso. Vamos a compilar ahora a partir de esta. Podemos arrastrar y decir que podemos obtener la variable de nombre
y luego podemos obtener información de arma, obtenerla aquí. Y entonces alejemos
esto y rompamos. Y ahora podemos usar la velocidad de disparo desde
aquí y conectarla a aquí. ¿Bien? Así que haz clic en él y
oculta todos los pines no conectados Bien, así que cada vez que presionemos
nuestro ratón un botón, va a disparar
y disparar este temporizador. Ahora también tenemos que parar este temporizador también
en algún momento. Así que vamos a hacer clic derecho en
este mango promovido a una variable y llamarlo
mango de arma Disparo. Y podemos usar este
asa para detener el temporizador, así que tenemos que saber cuándo
estamos filmando y cuándo no
estamos filmando. Cuando soltamos el
ratón un botón, entonces se
jugará este
gatillo completo y ya no estamos
disparando el arma. De hecho, agreguemos una bala
aquí. Vamos a agregar uno. Y llamémoslo arma de tiro. Y sólo voy a agregar una B
delante de ella para mantenerme consistente
ya que es un lingote Y cambiarlo en un
lingote como este. Bien. Ahora puedes arrastrar
desde aquí y decir rama y
conectarla si es verdad, Si arma disparada es verdad, queremos seguir adelante
y disparar el arma. obstante, si ya no queremos
disparar el arma, tomemos esta empuñadura
y digamos que es válida. Si este asa es válida, solo asegúrate de que no
estamos recibiendo ninguna caja, asegurándote de que sea válida. Y hagamos otra rama. Si es válido, siga adelante
y tome este temporizador y diga claro e
invalidar temporizador por asa. Vamos a detener este
temporizador aquí arriba en este código. Ya podemos copiar y pegar esto. Y para el completo, cuando soltamos el
ratón un botón, va a poner arma de
disparo en falso. Cuando disparamos el arma, tiene
que ser verdad
cuando es falsa, cuando dejamos de disparar, va a preguntar, ¿
es válido este temporizador? Si es así, continúe
y detenga el temporizador. Yo sólo voy a reorganizar
las cosas un poco aquí. Ahora mismo lo tenemos hecho, sigamos adelante y probemos y veamos si todo
está funcionando. Y sigamos adelante y pulsemos en jugar aquí para el
cliente por ejemplo, voy a seleccionar terroristas. Sigamos adelante y
recojamos algo. Vamos a recoger la
información ahora mismo. Vamos a tratar de disparar. Ahora mismo, estoy
tratando de disparar con mi ratón uno y
no está pasando nada. Nada está imprimiendo a
la pantalla aquí arriba. Déjame solo cancelarlo
aquí tenemos una era. Esta era está diciendo acceso. Acceder a ninguno solo significa
que está tratando de leer algo
de esta variable de arma, esta variable de arma aquí. Sin embargo, access non significa
que esta variable está vacía, no tiene
nada de qué leer. Esto es realmente cierto
porque solo hemos colocado el
arma equipada dentro del evento
equipar arma. Y éste sólo se establece
cada vez que cambiamos de arma. Si voy a terroristas
y recojo algo, tengo que cambiarme a
otra arma y luego volver a cambiar antes de que esta
variable se establezca ahora mismo, permítanme disparar
ahora y ver qué pasa y no
pasa nada. Esto en realidad se debe a que
estamos ejecutando esto
varias veces. Si desconecto este falso, puedes ver aquí si
no paro el temporizador, puedes verlo con más claridad si solo recojo otra
cosa otra vez. Ahora bien, si disparo el arma, ahora mismo
estoy disparando. Y si solto
mi mouse onene, cada vez que dejo ir
mi mouse uno, en realidad
es imprimiendo. Esto es lo que queremos. Queremos que se imprima cada vez que
presionamos el mouse uno, no cuando lo dejamos ir. Esto se debe a que el temporizador aquí está funcionando muy
rápido en el código. Cada vez que estoy sosteniendo mi
mouse un botón y nunca tiene la oportunidad de reproducir
realmente este código. Esta parte de aquí, en realidad
necesitamos hacer solo una vez. Permítanme reconectar
esto aquí de la verdad. Voy a hacer un nodo uno. Siempre que mantenga
pulsado el mouse un botón, va a hacer este código una vez y luego podemos restablecer
este código cuando queramos. Sólo voy a alejar
todo esto. Y éste voy a
hacer un nuevo evento personalizado. Y llamemos a
éste y volvamos a disparar. ¿Cuándo podremos volver a disparar?
Podemos volver a disparar. Siempre que dejemos de
disparar aquí arriba, voy a llamar a
esto, podemos disparar de nuevo. Y así,
eso es
lo único que teníamos que hacer. Ahora vamos a darle una oportunidad de nuevo. Vamos a compilar y
vamos a probarlo. Déjame seleccionar terroristas. Déjame recoger las armas. Ahora vamos
a solucionar este problema. Esto es de nuevo, un problema con
las armas saqueadas aquí arriba. Así que en realidad voy a
hacer una solución difícil en un rato. Sólo quiero ver si esto de
aquí abajo funciona y podemos seguir
adelante y arreglar esto. Entonces si cojo el arma y si mantengo
pulsado el ratón un botón, ahora
puedes ver que imprime
en la pantalla correctamente. Y si dejo ir el ratón
, deja de imprimir. Y en realidad hagamos eso
también con el rifle. Entonces si solo como terrorista
coge el rifle, cojo la pistola y si cambio de un lado a otro para que
se establezca la variable, ahora mismo puedo sostener el mouse un botón
y está disparando, y si lo dejo ir, ya
no está disparando. Bien, entonces este código de aquí abajo en realidad
está funcionando completamente. Ahora ya terminamos
con esta, y también voy a
eliminar esta cadena de impresión. Subamos aquí y arreglemos esto. Antes de que terminemos,
déjame sacarlo de aquí. Sólo vamos a hacer una
muy buena solución para esta. Nunca vuelve a boxear aquí abajo
en las armas superpuestas, esto es lo que
intentas conseguir. Tomemos
éste y digamos, ¿es esto igual a la variable arma
saqueada Estamos tratando de verificar si el,
el que estamos
saqueando actualmente está configurado la misma variable que
la que dijimos anteriormente Si es así, si es cierto, queremos eliminar
la variable antigua. Déjame mover esto por aquí. Queremos eliminar la
antigua variable saqueada. Entonces después de eso
queremos ejecutar la nueva variable. Con esto encerrado, básicamente
estamos
comprobando si lo que estamos saqueando ahora mismo es lo mismo que
lo que dijimos antes Si es así, vamos a eliminar esta variable antes
de establecer la nueva. Esto, asegúrate de que no
pongamos el mismo dos veces. Si no es lo mismo, si no es el mismo
artículo, estamos saqueando Sólo tienes que seguir adelante y ejecutar el
código sin eliminar esto. Bien, voy a
organizar esto más adelante, pero veamos si funciona. Antes de probarlo, conectemos esto de
nuevo. Aquí estamos. Retirar el artículo
del inventario. Sólo voy a pinchar
y arrastrarlo de nuevo hasta aquí. Adelante y compile
ahora intentemos dar click en Reproducir y seleccionar Terrorista
y ver si funciona. Si entro aquí, puedes ver que realmente funciona. Bien, así es como creo que en realidad es un
mejor método para hacerlo. Como ves, ya no se está
molestando. Lo siguiente es, en
realidad estoy notando que
los íconos están equivocados. Vamos a depurar esto. Volvamos al widgit principal, vamos a abrirlo y
vayamos a la gráfica Sólo estoy viendo lo que hay
aquí arriba, por qué está haciendo esto. Para el rifle, tenemos el rifle de
imagen, rifle de imagen. Eso es correcto aquí. Para el arma equipada. Para la pistola, estamos mostrando la pistola
y ocultando el rifle. Y para el rifle, estamos mostrando el rifle y estamos escondiendo
la pistola, la opacidad Esto parece correcto. Hay algo mal establecer el tipo de
arma equipada. Volvamos al jugador. Debe haber algo que salga mal con el arma
equipada. Para el
arma equipada. Veamos aquí, esta es la interfaz de usuario de inventario de actualización. Estamos estableciendo el tipo de arma
al tipo de arma para equipar
el tipo de arma a equipar. Lo definimos aquí cuando
presionamos el botón. Cuando presionamos en Primaria, estamos configurando el rifle, lo cual es correcto.
Ese es nuestro rifle secundario, lo estamos
poniendo a pistola. Eso también es correcto. Aquí no hay nada malo en realidad. Entonces algo debe estar mal cuando aludimos
al arma, cuando aludimos al arma de
aquí, saqueando arma, estamos estableciendo esto también, estamos estableciendo el tipo de
arma que acabamos de aludir, que también es correcto En realidad no hay un
error en ninguna parte de aquí. Sospecho que tal vez haya un
error en la tabla de datos. Si abres la tabla de datos, echemos un vistazo, la tabla de
datos escribe aquí. Entonces tenemos que buscar
el tipo de armas. Si hemos escrito
algo mal, Rifle, rifle y pistola. En realidad están todos correctos. Están establecidos a la correcta. Bien. Nada está realmente mal. No veo ningún error. Quizás ahora mismo, el tema es que estamos configurando correctamente el tipo de arma
equipada. Sin embargo, también estamos
ejecutando este código. Y esta parte del código, aún no
se da cuenta que se ha
establecido a este valor. Si solo hacemos un retraso y le damos la
oportunidad de establecer esto, solo para echar un vistazo
y ver si esto funciona, porque realmente no me
gusta tener un retraso aquí. Pero vamos a echar
un vistazo y ver si eso realmente
soluciona el problema. Si saqueo las armas,
hago clic en una. Si hago clic en dos, ahora eso
funciona también. Entonces puedes ver que realmente funciona.
Ahora si hago clic en 1.2 ahora los iconos están funcionando. El problema aquí que tenemos es que esto se está configurando
correctamente, el tipo de arma. Sin embargo, también estás ejecutando
este código muy rápido. Entonces estás ejecutando
este código antes de que esto haya tenido la
oportunidad de cambiar realmente. Bien, para solucionar este problema, podemos intentar agregar un retraso. Sin embargo, en este código, hagamos eso
dentro de nuestro principal de WB. Dentro de la función aquí
que creamos anteriormente. Aquí es cuando fijamos la
opacidad para el rifle. Antes de establecer la opacidad, puedes intentar agregar un delay
y el delay , por favor empieza
por hacerlo muy pequeño, 0.01 y compilar. Y
vamos a hacer clic en play. Y si eso
funciona entonces en realidad es realmente bueno. Ahora puedo recoger todo y ver que la pistola ya está recogida. Y sólo voy a
maximizar mi punto de vista. Ahora se recoge la pistola. Puedo dar click en 14. Da click en dos para la pistola, ves a veces obtenemos un dólar. Me cambio a mi rifle, pongámoslo
en 0.03 En su lugar, compilar. Haga clic en jugar. Vamos a intentarlo de nuevo. Vamos a recoger todo.
Haga clic en rifle, pistola. Rifle, pistola. Ahora todo
parece estar funcionando también. Bien, entonces eso funciona. Entonces 0.03 soluciona el
problema como de costumbre. Y esa sería una solución muy, muy agradable y fácil. Bien, así que sé que ha sido
muy confuso aquí, pero en verdad tuvimos que hacer esto porque esto estaba
saliendo todo el tiempo Entonces, si el arma equipada
alguna vez da pavos aquí abajo, realidad no se está
desconectando en este momento Así que sólo voy a dejar que sea. No obstante, si alguna vez
se da un puñetazo, como aquí arriba, puedes hacer el mismo método
comprobando si el arma
equipada aquí. Siempre se puede
comprobar si es la misma que la
anterior que hemos establecido. Entonces puedes eliminar la variable y luego puedes
establecer la nueva. Entonces, en vez de hacerlo en
el viejo método, sin embargo, no
creo que esto vaya a fallar porque aquí arriba
estamos comprobando si ya
llevamos un rifle, pero en el futuro
podríamos tener un bicho. No tengo idea ahora mismo. Tenemos que desarrollarnos y ver. Pero así es como es
en el desarrollo de juegos. Obtienes errores durante la programación y
tienes que arreglarlos. Lo bueno para
un programador es solo saber cómo
solucionar esos problemas. Y aquí ven
acabamos de agregar un matón y solo comprobando si esto
era lo mismo o no, y solucionamos ese
problema de esta manera Siempre verás
cuando desarrolles juegos, incluso en estudios grandes. Pero solo hay que saber cómo solucionarlos y cómo
superar el problema. Vamos a probarlo ahora. Vamos a hacer clic en play
justo antes terminar esto para ver si
todo está funcionando. Y si selecciono al terrorista, recojo todo aquí y
puedo cambiar entre ellos. Si dejo caer los cuatro, solo
estoy intentando el
drop ahora mismo, el drop, puedes ver
que también se está disparando Entonces tenemos que añadir aquí
un pequeño retraso porque no se está dando cuenta de
que hemos eliminado esto. Si dijera el retraso a
0.05 Y hago click en play. Y da clic en jugar aquí. Y vamos a recoger un arma. Vamos a dejarlo caer. Vamos a recogerlo, dejarlo caer, dejarlo caer. Mira, ahora está funcionando perfectamente y puedo
cambiar entre esos. Solo estoy tratando de probar el juego para ver si falla. Ahora parece que funciona bien. Teníamos que tener este
pequeño retraso imperceptible porque de lo contrario el programa no
sabía lo que
estábamos haciendo aquí Eso es bueno saber
tener eso aquí también. Eso soluciona todos
los problemas que tuvimos con esta variable siendo
eliminada sin
que queramos que la borre
antes de que ejecutara el código. Entonces todo está funcionando ahora. Voy a reorganizar esto. Voy a
ponerlo dentro de aquí y pasemos
al siguiente.
135. 10.06 seguimiento de línea por canal: En esta lección,
vamos a crear una función línea por canal. De esta manera vamos a disparar la bala
desde el arma. adelante y hagamos
clic en el jugador y abramos la
base de jugadores dentro de aquí. Bajemos al
código que escribimos antes. En arma, aquí es donde queremos agregar el trazo
de línea por canal. Pero antes de eso
tenemos un pequeño dólar con el arma equipada cuando
cada vez que saqueo un arma, si hago clic terrorista, mucho algo. Si
disparo ahora mismo, no me da un dólar
porque cambio el arma. Sin embargo, si no
cambio el arma, así que si directamente solo cojo esta y
empiezo a disparar, me
va a dar un error aquí, porque solo estamos configurando
el arma equipada cuando sea, en realidad
estamos cambiando
con las teclas de nuestro teclado. Copiemos esta arma equipada. Y subamos donde sea que carguemos el arma por aquí
en el arma saqueada Y vamos a poner
el arma equipada cada vez que pasemos por
este código aquí, cada vez que estemos desarmados, vamos a colocar el arma
equipada aquí Después de este retraso aquí. Sigamos adelante y péguelo. Y vamos a conectarlo. Y también voy a alejar todo esto
para que pueda ver aquí. Y voy a
conectarlo aquí. Y luego arrastra del arma
saqueada a ésta. Nuevamente, puedes
sacar notas aquí, hacer algunas y
organizarlas. Entonces eso debería estar
funcionando bien ahora. Ahora también estamos poniendo el arma equipada cada vez que
estamos saqueando aquí Bien. Así que voy a
alejar esto también. Incrementa el tamaño del
comentario, algo así. Bien, entonces eso ahora está arreglado. Lo siguiente que quiero
hacer es aquí en las armas. Entonces vayamos a las armas
y abramos la base de armas. Ahora vamos a esconder estas esferas. En realidad ya no los
necesitamos. Voy a hacer clic en
la esfera de colisión y seleccionarla de nuevo.
Aquí, escondido en el juego. Y eso lo voy a hacer
en la base de armas. Entonces hace eso para todos ellos. Si guardo ahora, y luego trato de jugar el juego solo para comprobar
si eso está arreglado. Y se puede ver aquí
que ya está arreglado. ¿Bien? Así que ya no necesitamos
estas esferas, ¿de acuerdo? Así que sigamos adelante y hagamos que
la línea trace por canal. Así que bajemos al código
que escribimos antes aquí abajo. Empecemos a hacerlo desde aquí. Siempre que hagamos un bucle en el código, arrastremos desde aquí y
escribamos trazas de líneas por canal. Seleccionemos esta función. Ahora bien, parece complejo, pero en realidad es muy, muy fácil de entender el trazado de línea por canal. Necesita una ubicación de inicio y
necesita una ubicación final. La ubicación de inicio está
donde quiera que estés en este momento, y la ubicación final es
donde esté apuntando en este momento. Con micros, esto es
lo que tenemos que decirle. La forma en que obtenemos esta
información es si escribes click y primero tenemos que
acceder al controlador del reproductor. Ahora intenta hacerlo tú mismo. Si recuerdas cómo acceder
al controlador del reproductor,
podemos hacerlo juntos. Ahora puedes escribir
get controller, puedes obtener el
controlador de esta jugada al igual que antes, tenemos este get player
controller reference de la cara. Ahora puedes
arrastrar de esto, si solo escribes cámara, queremos conseguir algo
llamado administrador de cámara. Si solo te desplazas
por todo esto, trata de leer lo que tenemos. Éste, consigue al jugador encargado de
la cámara. Con esta, podemos
llegar
precisamente a donde
apuntamos con nuestra venta cruzada. Conseguir este administrador de cámara, vamos a
arrastrar de esto y decir obtener la ubicación de la cámara. Esta es nuestra posición de inicio. La posición de inicio ahora mismo
es donde quiera que esté ahora mismo, aquí, de pie
aquí como el jugador en medio de mi pantalla. Ahora tenemos que decirle
que la ubicación final es donde quiera que esté
apuntando con microsa La forma de hacer esto primero
es arrastremos de esto y digamos get
at forward vector. Así que estamos consiguiendo la dirección de
avance para este administrador de cámara. Entonces estamos tomando esto
y multiplicándolo. La razón por la que nos
estamos multiplicando, vamos justo primero aquí
y cambiemos este pin No necesitamos que sea un vector. Vamos a cambiarlo en una carroza. Multipliquémoslo con
algo realmente grande. Por ejemplo, 20 mil
algo así. La razón por la que hacemos esto es que estamos obteniendo el vector
hacia adelante, así la dirección hacia adelante
de esta cámara. Y entonces estamos
multiplicando esto por mucho porque queremos que
llegue a la distancia
allá en la pared Lo estamos multiplicando. Entonces tenemos que decir más. Aquí estamos agregando
la ubicación de inicio. Estamos agregando la ubicación de inicio junto con esta línea
para la ubicación final. De esa manera conseguimos
la ubicación final. Te imaginas aquí
estoy de pie como jugador y estamos consiguiendo
la ubicación de inicio. Aquí es donde estoy
parado ahora mismo. Y básicamente estamos creando una línea y la estamos
agregando con el inicio. Y eso hará que esté ahí al final donde estoy
apuntando ahora mismo. Ahora es muy confuso
entender como principiante o la primera vez
que haces esto. Pero trata de pensar en
cómo tiene sentido esto. Ahora, cuando sumemos esto juntos, agreguémoslo aquí hasta el final. Y eso debería
hacerlo. Así que recuerda también conectar
este pin de ejecución. Y seguir adelante y
hacer notas de reencaminamiento. Bien, ahora esto debería
funcionar por aquí. Ahora tenemos algo
llamado hits,
y se puede ver que es un alfiler azul. Y si te has dado cuenta antes, hemos usado
alfileres azules antes porque información de
nuestra arma es en realidad también
un pin azul. Un alfiler azul significa que esta es una estructura con
estructuras como antes, podemos arrastrar y decir romper, podemos romper estructuras, tienes toda esta
información que puedes usar. Puedes tomar esta línea
trazada por canal. Así que puedes tomar la línea
que has hecho aquí y
puedes obtener la ubicación en donde realmente
llegaste a esta línea. Puedes conseguir al actor que
golpeaste con esta línea
traza por canal. Se puede obtener el
tiempo, la distancia, y un montón de cosas aquí, realidad no
necesitamos
mucho en este momento. Lo único antes de
hacer esto es que queremos arrastrar de este lingote
y hacer una rama Porque no
queremos continuar con nuestro código si esto no es válido. Siempre que realmente
golpeamos algo, queremos seguir adelante
y continuar con el código. Siempre es bueno tener esto más
a veces obtendrás una era. Lo siguiente que tenemos
este golpe de bloqueo. Siempre que realmente golpeamos
algo con esta línea, queremos continuar con
el código también, hacer una rama aquí también. Además, queremos
asegurarnos de que es el jugador al que estamos pegando
para hacer algún daño. Porque no queremos golpear
a ningún actor al azar con hit act igual que antes.
Esto ya lo hemos hecho antes. Decir actor tiene etiqueta entonces se
puede escribir jugador. Recuerda que agregamos
el tag player. Si no te acuerdas,
puedes hacer click en, creo que son los valores predeterminados de
clase Y si buscas etiqueta, recuerda que agregamos el
tag player al actor. El actor tiene tag player. Tenemos eso para todos
los jugadores porque lo hemos
agregado a la base de jugadores. Ahora podemos arrastrar
de esto y decir pull si estamos
pegando algo. Entonces tenemos un golpe de bloqueo, el actor que golpeamos es un jugador. Entonces queremos seguir adelante y aplicar algunos daños.
Bien, con esta. Primero podemos simplemente escribir
una cadena de impresión para ver si realmente está
funcionando por aquí. Para la depuración,
en realidad puedes cambiar
esto a persistente, porque entonces puedes ver
la línea que estás filmando. Y se puede ver
si en realidad está haciendo algo mal
o algo correcto. También para que los actores ignoren. No quieres
dispararte aquí. Ignorar yo ya está encendido, pero tengo algunos como a veces cuando me
desarrollo en mi propio tiempo, me gusta arrastrar de
esto y decir make. Ahora puedes hacer una matriz y luego puedes arrastrar
desde aquí y decir yo mismo. Ahora en realidad va a
ignorar a este jugador de aquí, actores para ignorarse a sí mismos. Y ya está
haciendo eso aquí. A lo mejor esto es innecesario, pero sólo me gusta tenerlo aquí. Seguridad. Si quieres
bloquear a otros actores. Para que no ignores a
otros actores. Así que no puedes pegarles.
Siempre puedes hacer clic en el más y agregar
otro actor aquí. Pero por ahora, permítanme hacer clic
derecho aquí y eliminar este elemento de matriz. Bien, eso fue todo para el
rastreo de la línea. Y vamos a compilar. Y permítanme simplemente dar click en
play y ver qué pasa si juego como servidor
y selecciono terroristas. Y selecciono, por ejemplo, un arma aquí y disparo. Y nada está
pasando ahora mismo. Déjame dejarlo aquí y déjame echar un
vistazo a por qué
esto no está jugando. En realidad está jugando,
pero está jugando. Un poco retrasado. Si solo lo intento de nuevo y solo
sostengo mi mouse, en
realidad está jugando. Se puede ver que ahora está
creando las líneas. Dondequiera que dispare, en realidad está disparando a esa
distancia por allá. Lo que sea que esté apuntando, pero está disparando
a una respuesta tardía. Y la razón por la que hace esto es que necesitamos una toma inicial aquí. Porque cada vez que
estamos filmando, recuerda el tiempo que
fijaste aquí para un temporizador, en realidad
va a tomar
ese tiempo antes de que lo reproduzca. Por ejemplo, si, digamos que
escribí tres aquí para mi temporizador y compilo
y hago clic en reproducir, ahí van 3 segundos
antes de que realmente se dispara. Ahora estoy sosteniendo mi
ratón y se puede ver después de 3 segundos que va
a disparar el tiro aquí, el tiempo que se le ha
fijado aquí. En realidad va a esperar ese tiempo antes de
que comience a circular. Para arreglar esto, necesitamos un evento inicial, como shooting,
que ejecutará este código una vez antes de que
ejecutemos el código aquí. Y así es como
solucionamos este problema. Hagamos algo llamado disparo
de arma inicial. Permítanme arrastrar de esto
y hacer un evento personalizado. Probablemente necesito alejar todo esto así que tenemos
algo
de espacio para trabajar
con este evento aquí. Sólo voy a
llamarlo disparos iniciales de armas. Este solo se está ejecutando una vez para asegurarse de
que esto se está ejecutando antes de que este temporizador por evento se ejecute aquí después de la vez. Esto sólo se va
a ejecutar una vez. Entonces podemos decir disparo de arma
inicial. Entonces va a
filmar solo una vez antes de que realmente
empecemos a filmar. Por lo que no tenemos ningún
retraso en el tiroteo. Vamos a hacer clic en jugar ahora. Y si recojo algo
y disparo, se
puede ver que dispara. Dispara de inmediato. Ya no tenemos que
esperar nada. Está funcionando. Y
vamos a cerrar esto. Creo que ahora mismo tenemos un
error. Si no tengo nada
y trato de disparar, ya ves que puedo filmar algo y
también me sale un error. Si hago clic en él, dice que
hay una flecha con esta. Para ello, aquí podemos
hacer algo. Siempre que disparemos el arma, podemos asegurarnos de que
en realidad tenemos un arma. La forma en que hacemos esto, podemos hacer clic derecho
aquí y convertirlo un get validado y seguir adelante y hacer
algo como esto. También podemos hacer otra cosa. Mantengamos esto y tomemos este
tipo de arma equipada y justo de esto y digamos si esto no es
igual al estado desarmado, podemos seguir adelante
y disparar
porque realmente no tiene sentido disparar cada vez que estemos desarmados porque
no tenemos Vamos a conectar esto. Más adelante probablemente lo haremos
si no tenemos MO. Cuando agregamos MO, si
no tenemos MO, tampoco queremos filmar. Vamos a agregar eso más adelante cada vez que agreguemos el
MO al juego. Bien, ahora mismo
estamos disparando el arma. No obstante, no estamos
pegando al jugador. Si ves aquí, si
hago clic en jugar, me llevo aquí al terrorista, me llevo a mi otro cliente y selecciono terroristas como
tomar un arma aquí, déjame
tomarla como servidor. Si disparo como
servidor en el jugador, está golpeando al jugador. Sin embargo, no está pasando nada. Se ve lo que sea que le
pegué a algo, la línea detrás de
él se vuelve verde. Y eso quiere decir que sabe
que le pega a algo. No obstante, le dijimos que solo queremos reaccionar siempre que sea
el jugador al que estamos pegando. Siempre que no es
el jugador, en realidad
no va a hacer nada, pero sabe que
le pega a algo. No obstante, para el jugador, en realidad
no es golpear nada. Sigamos adelante y ajustemos los ajustes de colisión para el
jugador en la siguiente lección.
136. 10.07 Ajusta la configuración de colisión de jugadores: Bien, bienvenido de nuevo.
Sigamos adelante y ajustemos la configuración del jugador
aquí. Configuración de colisión. Así que déjame hacer clic en la Malla. Y déjame bajar por
los ajustes de colisión. Siempre que estamos
pegando algo, necesitamos generar un evento hit. Voy a habilitar el evento
genera hit porque
necesitamos que también cuando hacemos daño y salud
y cosas así, necesitamos generar un evento hit. Y para la colisión aquí, si echas un
vistazo al trazado de la línea, estamos usando el canal de
visibilidad. Ahora para las trazas de línea, puedes cambiar esto. Si vas a la
configuración del proyecto ahora mismo, no
vamos a cambiarlo porque realmente no tenemos
ningún problema con esto. Pero en el futuro si tenemos un problema y
necesitamos cambiarlo, vamos a cambiarlo. Pero por ahora,
mantengámoslo como visibilidad. Pero solo voy a
mostrarte dónde puedes
cambiarlo por si acaso en
la configuración del proyecto. Si encuentras una colisión, si solo me
desplazo y tenemos
algo llamado colisión, tenemos algo
llamado canales de rastreo. Este es un trazo de línea. De hecho, puede agregar un
nuevo canal al rastreo de línea y luego puede seleccionar ese
canal que haya realizado. En realidad también puedes usar un
canal personalizado para esto, Pero por ahora usemos
el canal de visibilidad. Y si haces clic en la malla aquí para los presets de colisión, voy a
cambiarlo a custom Entonces vamos a,
para la visibilidad, vamos a
decir bloque porque estamos usando el canal de
visibilidad. Ahora vamos a mantenerlo así. Si tenemos algún problema más
adelante podemos cambiarlo. Vamos a compilar todo. momento,
en realidad estamos usando como una colisión precisa porque no
estamos usando este cápsula de componente de
colisión, en realidad
estamos usando esta
malla para hacer los eventos de impacto. Ahora hagamos click
en play y veamos si dice hola cuando
le disparo al jugador. Si tomo esta arma
aquí como la otra, voy a seleccionar terroristas. Voy a recoger esta.
Ahora este es el cliente. Voy a dispararle
al jugador. Ahora mismo, no está pasando nada. Déjame tratar de hacerlo
en el, en el servidor. Si golpeo en el servidor, puedes ver que dice hola. No obstante, en el
cliente ahora mismo, no está diciendo
nada para arreglar esto. Dado que esto es multijugador, el cliente no sabe realmente cuál es la ubicación de inicio
y la ubicación final. Porque puedes ver aquí,
el servidor sabe lo que es. No obstante, para el
cliente de aquí, si solo intento
volver a jugar y mostrarte
antes de arreglarlo, si recojo algo y para el cliente terrorista
como cliente, si solo, así que digamos que
disparo aquí en esta pared. La carrera de línea es por automático. Realmente no se va a mostrar en el cliente porque recuerda que la carrera de línea que estás haciendo
es jugar en el servidor. La línea persistente aquí, la línea de depuración nunca se
mostrará en el cliente. Lo cual es normal porque estás ejecutando esto
en el servidor. Cuando echamos un
vistazo al servidor también aquí se puede ver que le
disparé a esta pared. No obstante, para el cliente, en realidad
parece
que disparaste por ahí. Realmente no tiene ningún
sentido, sin embargo, desde el servidor. Y yo tiro por aquí,
debería correctamente. Se puede ver aquí, le pegué aquí. No obstante, para el cliente, ni
siquiera está por ahí.
La manera de arreglar esto. Ahora bien esto es multijugador, así que en realidad no lo sabe. De hecho, tenemos que arrastrar
esto más al evento. Vamos a golpear este inicio. Tengamos el
final aquí también. Tenemos que mover este código. Voy a desconectar
este código aquí. Y alejemos esto. Tenemos que trasladar esto de nuevo
al principio aquí. La razón por la
que hacemos esto es cuando también
ejecutamos este código en
el cliente. Porque en realidad no estamos
estableciendo nada. Eso está bien. Si no estamos configurando nada, está bien
jugarlo en el cliente. Lo estamos ejecutando en el
cliente también sabe cuál la ubicación de inicio y fin y así
es como
arreglas este código. Sigamos adelante y
enchufemos esos de aquí. Ahora, déjame alejarme de esto. Déjeme organizar esto. Permítanme
acercar todo esto a éste. Ahora es sólo este código de aquí. Permítanme crear algunos
nodos de reenrutamiento para estos vectores. ¿Bien? Algo como esto. Ahora que se está
ocupando, déjame
alejarme , déjame tomar este
código y moverlo hacia abajo. Tenemos algo de espacio ahí arriba. Ahora para este código, después de que esto sea válido, hemos averiguado que esta arma
equipada es válida. Entonces podemos seguir adelante
y enchufar este código. Sigamos adelante y enchufarlo. Y vamos a alejar esto otra vez. Vamos a tapar el inicio a esto
y el final a éste. También puedes simplemente mover esto hacia abajo para que veas
lo que está pasando. Y puedes seguir adelante y
conectar esto si quieres. Simplemente puedes llevarte todo esto. Puede hacer clic derecho y
contraer esto a una función. Y puedes llamar a esta función, o simplemente puedes
hacerla más descriptiva. Obtener una línea de bala localizaciones de
rastreo,
algo como esto. Ya que estás obteniendo información y no configurando nada, puedes seguir adelante
y hacer clic en Pure porque realmente no
necesitas ejecutarlo a través de esto. Y puedes hacer doble clic en él. Adelante y solo organice
esta función también. Asegúrate de que todo
esté conectado. Y eso debería ser bueno para
ir algo así. Ya tienes esto hecho. Ahora volvamos a la gráfica y déjame acercar
todo un poco más. Se puede ver que es mucho más limpio simplemente
convertirlo en una función. Y cambiemos el nombre de esas
dos balas a la
ubicación de inicio y a esta ubicación de fin de
bala. Ahora que tenemos esto hecho, podemos compilar para éste. Realmente no necesitamos
hacer nada porque estamos deteniendo este tiroteo.
Realmente no necesitamos esto. Esto es
lo importante aquí. Bien, tenemos esto enchufado, y creo que esto va a funcionar Ahora déjame
subir esto aquí. Y vamos a hacer clic en Reproducir. Vamos a probarlo. Ahora vamos a
probarlo como el cliente. Y déjame recoger algo. Déjame probarlo como
servidor también. Recogiendo el, como el servidor. Ahora puedo dispararle a este jugador. Y dice hola
así como el cliente. Debería decir hola si
le disparo al jugador y si le disparo al jugador,
en realidad es decir hola. También se puede ver en el servidor, la línea en realidad está
dibujando correctamente. De hecho, también me cerró. Digamos en el servidor, estoy filmando aquí como
cliente también. Estoy disparando aquí. Ya ves que en realidad está
disparando con precisión. Ahora esto está arreglado. sabe dónde estoy disparando
en realidad. Ahora si le pego al jugador, se
puede ver que dice hola. Como puedes ver lo
preciso que es, si le pego al jugador aquí, dice nada porque
no estoy golpeando la malla del jugador. Si le pego al jugador, el ejemplo,
déjame dispararle al jugador. Se puede ver que dice hola. Déjame dispararle al
jugador. Por ejemplo, por aquí dice hola. Si le disparo al jugador
aquí, dice hola. Yo le disparo al jugador aquí arriba. No dice nada. También es muy bueno. Éste le está pegando al
jugador de aquí arriba porque la malla en sí no es
realmente buena. Se inclina, pero
se puede ver por ejemplo, si juego como el
antiterrorista, así es como están las
mallas ahora mismo Si solo juego como el antiterrorista
y maximizo
esto, debería decir hola
como servidor. Si tiro aquí,
puedes ver hola. El trazo de línea no se muestra porque
estamos en el cliente. Recuerden, si acabo de
disparar aquí, por ejemplo, se puede
ver saludando. Si tiro por
aquí, dice hola. Se puede ver que esta
es más precisa, esta malla aquí, en
comparación con la otra. También es cómo haces la malla y qué tan precisa
es y así sucesivamente. Para que veas la diferencia. Puedo disparar aquí y dice hola, porque le
estoy disparando. No obstante, si me tiro aquí, no
es decir hola. También es muy preciso con
esta colisión.
137. 10.08 Crea los sockets de flash de bozal: Antes de que podamos agregar
el efecto visual y los efectos de sonido
para el disparo, necesitamos agregar un socket para el efecto visual del hocico.
Sigamos adelante y hagamos eso. Vamos al
arma que estamos usando. Necesito encontrar el
esqueleto para el arma. La forma más fácil de encontrarlo, en lugar de solo mirar
las carpetas del mercado. Se pueden abrir las armas, abrir la K para el AK. Da click en el arma y da
click en este pequeño icono. Esto
te llevará automáticamente en el
navegador de contenido a esa arma. Ahora adelante y abre el
esqueleto para el arma. Y dentro de aquí,
igual que antes, necesitamos agregar un socket. Ya veo que aquí
hay un socket. Déjame cambiarle el nombre. Voy a renombrarlo
y llamarlo como prefijo. Y hocico, podemos simplemente
llamarlo hocico. Eso está bien. O podemos llamarlo, simplemente llamarlo hocico Y vayamos a
los otros y hagamos eso también. Déjame ir
otra vez al arma, abre los cuatro, abre la pistola, da clic
en el clic sobre el arma, da clic en este pequeño icono,
te llevará ahí. Y luego abre el esqueleto. Y para el esqueleto aquí, para el flash de hocico, ahora
podemos hacer clic derecho y decir agregarle calcetín para éste
otra vez, llamarlo hocico Simplemente llámalo
igual en todos ellos. Hocico para éste también. No estoy seguro de si
necesitamos rotarlo. Éste se puede ver X es el eje
delantero para éste. Creo que hay que
rotarlo de esta manera. Sólo intentemos hacer eso. Déjame darle click de nuevo. Y voy a chasquear
aquí para la rotación. Y voy a
rotar 90 grados. De esta manera la X en realidad está
apuntando hacia adelante. Bien, vamos a guardar esto y
pasemos a la pistola. Ahora abramos el editor
completo de planos. Ve a arma y da click en este
pequeño icono para la pistola. Ahora para la pistola, abre el esqueleto aquí para el destello
del hocico En realidad tiene
uno aquí también. Mo expulsa, tiene
el flash del hocico. Este pack aquí es más
avanzado que antes, pero para este, permítanme
simplemente cambiarle el nombre de nuevo. Déjame llamarlo hocico. Ahora tenemos un socket
para todos ellos, y lo vamos a
usar dentro de nuestro personaje para adjuntar efectos
visuales al arma.
138. 10.09 Dispara VFX y SFX: Bien,
volvamos al jugador
y volvamos a abrir la
base de jugadores. Y ahora estamos listos para agregar los efectos visuales y los efectos de
sonido dentro de aquí. Dentro de aquí,
lo que tenemos que hacer, tenemos que correr a
través de una multidifusión Nuevamente, debido a que necesitamos mostrar los efectos visuales a todos así
como los efectos de sonido, necesitamos correr a
través de una multidifusión Primero, vamos a
crear la multidifusión. Hagamos clic derecho y
digamos Evento personalizado. Para este evento personalizado,
llamémoslo arma de multidifusión. Ahora para esta,
vamos a ponérsela. No se ejecuta en servidor, sino
multicast y confiable. Para ello,
lo sencillo que queremos hacer es engendrar emisor en ubicación O en realidad vamos a
hacer engendrar emisor conectado porque vamos
a conectarlo al socket Adelante y vio el emisor
adjunto y después
tenemos que seleccionar de qué emisor
estamos hablando? Ese. Si vamos a la estructura y abrimos la estructura del
arma, tenemos este sistema de partículas
flash de hocico que agregamos anteriormente
a nuestra tabla de datos Podemos seguir adelante y tan solo enchufar esto.
Vamos a usar eso. Voy a cambiar el nombre de esto a Shooting Visual
Effects o simplemente VFX Sólo voy a llamarlo VFX. Y el adjuntar al componente, en realidad
voy a
enchufarlo aquí también. Voy a mover este
hasta arriba. Y tenemos que
adjuntarlo al arma. Voy a llamarlo arma ahora, este es el hueso al
que necesitamos sujetarlo. El hueso que llamamos hocico. Solo escribe el
nombre aquí, Hocico. El nombre del
socket que creaste. Entonces la ubicación de este efecto que necesitamos
jugar ahora para este emisor Si usamos el
emisor de engendro en la ubicación, entonces realmente necesitábamos
la ubicación para esto Sin embargo, esta es solo la
ubicación dentro del zócalo, y eso solo debería ser 000. Eso está bien. Ahora también
necesitamos reproducir un efecto de sonido, Arrastrar desde aquí y decir
reproducir sonido en el lugar. Ahora para este efecto de sonido, recuerda también en la estructura que hicimos este efecto de
sonido de disparo. Solo tenemos que enchufarlo aquí y lo agregaremos más adelante. Llamemos a este
único efecto de sonido, la ubicación del
efecto de sonido, ese que necesitamos. Vamos a arrastrar esto hasta aquí. Sólo podemos decir
ubicación. Eso está bien. Vamos a compilar y
guardemos todo. Tratemos de jugar esto aquí arriba. Antes de hacer la carrera de línea, intentemos jugar el efecto. Si arrastro esto lejos, yo llamo a esta
canaleta de multidifusión arma por aquí Arma de chute mc. Esto necesita ser
enchufado a él así como a éste. Entonces ambos de esos eventos. Ahora necesitamos enchufar
toda esta información. El arma que estamos usando
es esta arma de aquí. Si arrastro de esto
y realmente necesito
obtener la variable de arma, si solo busco la variable de
arma y obtengo esa malla estática
o malla esquelética en lugar de que estamos usando aquí, podemos hacer clic y
arrastrar esto hacia aquí Y ahora eso está enchufado. Ahora el efecto visual
depende de lo que tengamos dentro
de esta estructura. Simplemente puedes usarlo aquí
ya llamamos a la estructura. Puede hacer clic en él y hacer clic en el pin para
el flash del hocico Y puedes enchufarlo
y también hacer clic en el pin para el efecto de sonido de
disparo. Y puedes enchufar
eso también. Ahora para la ubicación, solo
necesitamos obtener la ubicación del socket para
el flash del hocico, ahí es donde queremos
reproducir el efecto de sonido También puedes simplemente obtener la ubicación del personaje
o actuar como una ubicación. Nadie se dará cuenta como se
puede decir simplemente obtener ubicación del
actor y
simplemente usar eso. Y tocará donde quiera que esté
tu actor o personaje y nadie se dará
cuenta realmente de que no
viene del arma. No obstante, si quieres que
venga precisamente de la pistola, puedes simplemente tomar esto y
decir obtener ubicación de socket. Puedes hacer eso
y puedes escribir el bozal del zócalo y puedes tomar eso y
enchufarlo aquí Eso también es más
preciso para éste. Bien, así que creé nodos
Smyroute, así que esto es un poco
más organizado Si compila y guardo todo, eso
debería hacer que funcione. Ahora este inicio y fin, también
podemos cambiar el nombre por ello. Entonces, en lugar de hacer eso de la lección anterior, ubicación de
bala, solo
voy a llamarlo
Bullet start location. Y bala la ubicación, es más como que se ve mejor y podemos
entenderlo más fácilmente. Ahora hagamos click
en play y veamos si esto va a funcionar. Recuerda que si aún no has establecido información de
tu tabla de datos, eso lo
hicimos en las lecciones
anteriores. Si no
lo has configurado, tienes que
poner el hocico aquí adentro, fuera de la tabla de datos Sabe qué
efecto de sonido tocar y también qué F tocar también. Bien, vamos a guardar todo
y vamos a cerrarlo. Y sigamos adelante y pulsemos
en jugar aquí como el servidor, voy a seleccionar Terrorista. Selecciona el arma. Ahora
puedes seguir adelante y disparar. Deberías escuchar
el efecto de sonido. También se puede ver que el
flash del hocico se está reproduciendo también. Bien. Impresionante como el cliente. Intentemos eso también. Déjame seguir adelante
y recoger algo. Vamos a recoger la K. Si
sigo adelante y disparo, eso también está funcionando. Ambos están funcionando. Tanto
el cliente como el servidor. Si sólo voy delante
de él, tú la juegas. Puedo ver el
destello del hocico en ambos. Si hago eso como cliente, solo para asegurarme de
que está funcionando también, voy delante de
aquí y le disparo, y eso también está funcionando. Bien, increíble. Entonces
tanto de eso funciona, y ahora estamos acabados
con el código. Entonces, si vuelves
a la base de jugadores, simplemente
creamos esta multidifusión y la agregamos al servidor Recuerde, una multidifusión
solo puede ejecutarse a través de un evento de servidor Lo ejecutamos a través
del evento del servidor. Conectamos toda esta información y
ahora la tenemos funcionando Así que adelante y guarda
todo, y sigamos adelante.
139. 10.10 Previene el rodaje durante Equip Anim: El problema
ahora mismo que tenemos es que el jugador puede disparar mientras
equipa el arma Si equipo esta arma, pueden
ver que puedo disparar mientras
estoy equipando el arma Por cierto, para este
curso, sólo voy a desactivar el sonido
del arma para que me escuchen cuando esté
disparando y
no me distraiga Sólo voy a
desactivarlo de mi parte. Cuando equipas el arma, queremos desactivar el disparo. Sigamos adelante y hagamos eso. Primero agreguemos un lingote. Llamemos a esto que
está equipando arma. Compilemos ahora. Tenemos que establecer esto a
través de un evento. Vamos a hacer un nuevo evento
personalizado. Evento personalizado. Y llamemos a esto un
conjunto está equipando arma. Sigamos adelante y
copiemos ese nombre porque voy a crear
otro evento personalizado. Tenemos que ejecutar esto
a través del servidor. Voy a llamarlo
servidor al principio. Y ejecuta este en el servidor y siendo
confiable también. Bien, puedes ejecutar
el servidor uno en el conjunto de servidores de eventos normales. Este conjunto está
equipando arma, igual que esto por aquí Lo que simplemente queremos
establecer esta variable para que sea, que sea verdadera o falsa
dependiendo de a qué nos fijemos esta. Vamos a arrastrar esto hasta aquí. Y vamos a arrastrar esto a aquí
también. Bien, éste. Recuerda configurarlo
para replicarlo para que el cliente también sepa
qué es esta variable Para este, tenemos que
llamarlo a través del código en alguna parte para que
sea verdadero o falso. Empecemos por aquí. Tenemos este montaje de juego
cada vez que equipamos el arma. Déjame arrastrar
este aquí abajo. Siempre que pongamos el arma, siempre que esto sea cierto, estoy haciendo una rama
siempre que esto sea cierto. Llamemos a esto equipar
arma MC equipar. Y entonces podremos seguir adelante y establecer esta
animación equiparable también. Entonces lo que hicimos aquí,
pasamos por la multidifusión y en realidad
llamamos a éste en el servidor Entonces lo que podemos hacer es que
podemos copiar y pegar esto. Solo estoy pensando si
deberíamos arrastrar esto aquí y luego
arrastrar esto hacia aquí, así podemos llamarlo aquí arriba. Y creo que en
realidad no necesitamos hacer eso, vamos a copiar esto aquí arriba. Y déjame mover esto hacia abajo. Vamos a pegar este de aquí abajo. Y peguemos en la
animación equipar igual que antes. Y vamos a esconder los pines
desconectados. Entonces ahora cada vez que
equipemos el arma, vamos a jugar
esta multidifusión Bien, entonces ahora tenemos esto, vamos a compilar Ahora lo que podemos hacer es usar esta arma equipada con set
en lugar de esta. Siempre que equipemos un arma, va a poner esto en verdad. Permítanme borrar esto por ahora
y ocultar pines desconectados. Déjame llamar al set está equipando arma y
vamos a conectarlo. Y va a correr por
el servidor y luego llamar la multidifusión siempre que
ésta sea cierta Aquí queremos
equipar el arma. Tienes que ponerla en
falso en algún momento, lo
contrario será verdad todo el tiempo y no podrás
disparar tu arma. Siempre que terminemos de tocar
este montaje de animación, llamemos al set es arma de
azotes para que sea falso Lo quitamos aquí. ¿Bien? Y luego cuando disparemos el
arma aquí, dispara arma. Queremos filmar siempre que no
estemos equipando. Tomemos esto aquí.
Es equipar arma. Y correcto, no lingotes, luego arrastra desde aquí
y escribe lingotes Vamos a conectarlo por aquí. Bien, entonces no podemos disparar
siempre que estemos desarmados y no
podemos disparar siempre que
todavía estemos equipando el arma aquí Bien, vamos a compilar. Y yo también voy a
subir aquí. Cuando saqueamos el arma, también
somos el arma de equipar Eliminemos la
multidifusión de aquí. Yo voy a hacer lo mismo. Sólo puedes bajar aquí.
Si deseas copiar esto, pegarlo aquí arriba,
justo así. Y eso también debería reproducir
la animación. Eso debería solucionar el problema. Y puedo borrar esto aquí. Puedo ocultar los
pines desconectados en lugar de usar el arma equipada de
este equipo Porque esta
arma de equipo sólo está siendo llamada aquí abajo en
el arma de equipar. Sin embargo, en realidad no tenemos el arma equipada aquí arriba
cuando le damos mucho al arma. A lo mejor es usar
esta arma equipada. Es mejor usar este. Entonces déjame ver aquí.
Armas equipadas. Sí, ya lo
definimos antes. esto lo llamamos, tal vez solo
puedas eliminar esto, y déjame ver arma equipada, usando esta en su lugar. Eso debería funcionar mucho mejor. Vamos a compilar y guardar. De hecho intentemos jugar y veamos si
tenemos alguna caja aquí. Déjame jugar aquí, el Terrista. Y tratar de disparar cada vez que
saqueo el arma, no puedo. Y se puede ver que
sólo puedo disparar cada vez que termine de equipar el arma Si lo vuelvo a caer y trato de
saquearlo y disparar, no puedo. Ahora puedo, siempre que
se detenga aquí. Bien, intentemos
jugarlo como el cliente. Porque también es muy importante ver si
funciona como cliente. Sólo voy a escribir un
jugador y jugar como cliente. Voy a jugar
aquí y probarlo. Tomando esto, y eso
es lo mismo. Realmente no puedo disparar cada vez que
estoy equipando mi arma. Así es como funciona y solo
va a reproducir la animación siempre que el arma de
equipamiento esté puesta en true. Y va a ponerla a la culpa cada vez que el
montaje de animación esté completo
140. 10.11 Crea la interfaz de usuario de Ammo: Ahora es el momento de diseñar la interfaz de usuario de MO para que podamos agregar
algo de MO al juego. Y para hacer eso,
pasemos a la interfaz de usuario. Y diseñémoslo
dentro de nuestra interfaz de usuario principal. Porque es parte de la interfaz de usuario
principal dentro de aquí. Quiero diseñarlo justo
debajo del arma aquí. Por ejemplo, tomemos
esta caja vertical, vamos a empujarla hacia arriba en la Y. Así que tengo algo de espacio aquí
abajo para hacer esto. Quiero diseñar
algo como esto. Me gusta mostrarte lo
que quiero diseñar y
tienes que descomponerlo. Tienes que echarle un
vistazo a esto y luego
tratar de desglosarlo y ver lo que
necesitas agregar como la interfaz de usuario. Por ejemplo, ¿necesitas
agregar una caja horizontal? Una caja vertical? Y
¿qué necesitas agregar aquí? Primero, necesitamos una superposición, porque puedo ver que
tenemos algún texto encima de una imagen
en el fondo. Y por lo tanto,
necesitamos algo que
se llame superposición. Empecemos por aquí. Busquemos una superposición, y peguémosla aquí en el panel del lienzo, en
el cuadro vertical. Ya terminamos con éste. Aquí es una superposición por sí misma. Y voy a colocar el
ancla al botón, ¿no? Y entonces si escribimos
00 como la posición, podemos ver que se alinea
aquí para la alineación Tenemos que escribir 11. Ahora en la posición 00, está dentro de la lona. Bien, primero necesitamos una imagen. Busquemos una imagen y la
peguemos en la superposición. Haga clic en la imagen,
y vamos a llenar toda
la superposición para rellenar la alineación
horizontal. Y
relleno de alineación vertical también. Bien, al hacer clic en la imagen, vamos a seleccionar la imagen. Creo que lo
llamé panel. Sí. Si buscas panel y
tomas este miembro del panel de imagen, si se estira así, puedes hacerlo sin estirar Si escuchas en las puertas, lo cambias a una caja y
cambias el margen a 0.5, Bien, También recuerda
alejar a uno por uno. En realidad se puede ver el tamaño
real de esta caja. Simplemente puedes cambiarlo de tamaño. Ahora mismo, en realidad no
demasiado importante. Lo que quiero hacer es hacer clic en la superposición y en realidad
hacer clic en Tamaño al contenido. En realidad va a dimensionarse a cualquier contenido que esté
dentro de esta superposición. Cuando hago clic en la imagen
y aumento el tamaño, ahora se puede ver que puedo
aumentar el tamaño en ambos sentidos. Solo puedes
aumentarlo por ahora. Necesitamos diseñar el interior primero antes de
saber realmente el tamaño del mismo. Primero necesitamos una caja horizontal
porque tenemos algo de texto, y al lado tenemos una imagen. Busquemos
una caja horizontal, y vamos a colocarla
en la superposición. Tomemos el
cuadro horizontal y alinéelo en el medio de la imagen
aquí de la superposición. Ahora busquemos un texto. Tome el texto, colóquelo
dentro de la caja horizontal. Y también tomar una imagen y colocarla dentro de
la caja horizontal. Bien, ahora podemos dar click en el texto. Vamos a escribir algo. Por ejemplo, 30 por 90. Tienes 30 balas
ahora mismo en la revista, y luego tienes
90 balas adicionales. Ahora bien esto va a cambiar
dinámicamente en el juego, así que en realidad no
importa en estos momentos. De hecho voy a
escribir algo como 100, 200, así que sé que es un texto falso, y podemos configurarlo
correctamente después. Bien, para esta, esta es la imagen bullet y aún no la
hemos importado. Vamos a los
Activos en Activos. Vamos a la interfaz de usuario y a los
iconos dentro de aquí. Te he dado
dentro de la carpeta de
materiales del caso en los iconos de la interfaz de usuario, esta bala aquí, haz clic
y arrástrala aquí. Y recuerda abrirla primero y cambiar el grupo de
texturas a UI. Y cambie la configuración
de compresión al deber de la interfaz de usuario. Sigamos adelante y ahorremos.
Volvamos a nuestro Nui Busquemos la bala
y sigamos adelante y la seleccionemos. Bien. Ahora puedo dar
click sobre mi texto. Y déjame simplemente
acercarme para que pueda ver lo que estoy haciendo. Voy a cambiar este
a rubic, semi audaz. En cuanto al texto ahora voy
a alejar a uno a uno para poder ver
el tamaño de este texto. Y sólo voy a dejar que
sea a las 24 aquí como el tamaño. Bien, voy a hacer click
en el icono de aquí arriba, así que elimino
las líneas de trazos para esta bala. Voy a
alinearlo en el medio, y voy a
hacerlo más pequeño, tal vez 30 por 30. En cambio, así es
como se ve. Bien, necesito algo de espacio
entre estos dos. Y esto se puede hacer
buscando un espaciador y colocándolo entre
el texto y la imagen. Hagamos el texto, o el espacio aquí, diez píxeles en la x Bien, aquí lo tenemos. Ya puedes compilar. Y lo que puedes hacer ahora es
que puedes hacer click en la imagen e intentar
redimensionarla mejor Ahora, ahora tienes el
contenido dentro de él y tratas de redimensionarlo
como como te gusta Bien, cuando estés satisfecho, voy a empujar este overlay un poco lejos de la pantalla, desde los bordes aquí
de la pantalla. Quizás -30 por -30 y
ahora es perfecto. Así que vamos a compilar
y guardar todo. Y también voy
a seleccionar el texto, la imagen y la imagen
en el fondo. Y establecer la
visibilidad a un no hit comprobable para que el
cursor de millas tampoco pueda interactuar
con ellos. Bien, vamos a compilar
y guardar todo. Y ahora que esto está terminado, vamos a dar clic en el cuadro
vertical de aquí arriba. Y ahora podemos moverlo hacia abajo. Puedes mover esto hacia abajo, tal vez algo así. Y estoy satisfecho con esto. Tenemos la munición y
también tenemos las armas aquí arriba. Bien, puedes seguir
adelante y compilar, guardar todo, y
pasemos al siguiente.
141. 10.12 Establece la cantidad inicial de munición para armas: Sigamos ahora adelante y definamos cantidad de MO que tienes
en cada arma. Nuevamente, tenemos que
volver a la estructura. Vamos en la estructura, información de
armas que hemos hecho. Hagamos dos nuevas variables. El primero que necesitamos saber cuánto MO
tienes en una mag, esa arma max MO en. Necesitamos saber cuánto MO
tienes como balas extra. Entonces puedes ver aquí en
la interfaz de usuario si la abro. ¿Cuánto MO
tienes aquí en la mag? Y ¿cuánto MO tienes? Sobras que puedes
recargar de esta. Solo llamaré a Max extra MO. ¿Cuál es el máximo que puedes
tener dentro de esa arma? Ya que es solo un número, es un número entero, no
es un número decimal. Necesitamos seleccionar entero, solo un número ordinario. Sin decimales, tenemos
maximo en ma y max extra MO. Voy a moverlos
aquí arriba y creo que los
moveré por encima de la
velocidad de disparo, algo así. Ahora bien, en realidad no
importa a dónde los muevas. Sólo me gustaría estar
limpia así. Al tener los terminados, ya
podemos cerrarlo y tenemos que recordar
actualizarlo dentro
de la tabla de datos. Si abro la tabla de datos y dentro de mi tabla de
datos aquí, tenemos que escribirla
igual que hicimos aquí en la estructura. Si vuelvo a la estructura, abro la estructura aquí
dentro de la estructura. Ahora si solo
lo comparo con mi tabla de datos, necesito ahora este MO en mí y Max extra MO después de la
variable de clase. Después de ésta. Después de la clase
voy a escribir click y decir Insertar
columna a la derecha. Y voy a hacer
eso una vez más. Permítanme maximizar esto para poder ver realmente lo que estoy haciendo. Simplemente podemos hacer
esto más pequeño como y podemos escribir Max MO en Mag. Incluso puedes copiar
esto, pegarlo aquí. Y copia esto. Y
pegarlo aquí. Bien, entonces tenemos eso ahora. Y entonces hay que definir la
cantidad de MO que tiene. Entonces para el AK 47 por ejemplo, puedo tener 30 en mi Meg y puedo tener un
máximo de 90 balas extra. Mi info podría tener
por ejemplo como 2060 y mi pistola por ejemplo, 12 balas y máximo de 24 balas como MO extra,
algo así Adelante otra vez y
haz clic en el archivo para descargarlo y descargarlo
como archivo CS para que podamos
subirlo al motor. Y otra vez, igual que
antes, voy a borrar el viejo que hicimos. Y voy a pegarlo aquí, renombrarlo de nuevo como
DT Weapon Info. Y luego dentro del motor, vayamos a las tablas de datos. Y permítanme simplemente hacer clic y arrastrar esto aquí
para que se actualice. Y si
lo abres una vez más, puedes ver que
todos los valores aquí están actualizados. Bien, increíble. Entonces ahora hemos definido
el monto MO. Sin embargo, ahora cuando
jugamos el juego, el motor no conoce la cantidad inicial porque realmente no
hemos
usado esos números. Está bien. Los hemos escrito dentro de la estructura
y tabla de datos. No obstante, en realidad no los hemos puesto a nada en estos momentos. Vamos a las armas y hagamos eso dentro
de la base de armas. La razón por la que lo hago
ahora mismo en la base de armas y no en el jugador, es porque cada vez que
el arma genere, va a establecer
la cantidad de MO que tiene en la
mag y el MO extra, lo va a hacer
automáticamente Dentro de aquí, dentro de aquí. Hagamos clic derecho y
hagamos un nuevo evento personalizado. Llamemos a este servidor. Entonces vamos a
ejecutarlo a través del servidor. Y llamémoslo Arma
inicializada. Es solo un evento para principiantes que va a correr
aquí en la jugada de inicio. Si solo llamas a servidor
inicializado arma y ejecutas esto en el servidor, confiable, así,
compilar Ahora dentro de aquí
lo que compilar Ahora dentro de aquí queremos hacer
es querer establecer el MO extra actual y también MO en la
mag para el arma Vamos a crear dos nuevas
variables y las vamos a necesitar más tarde también.
Llamémosle a éste. Necesito cambiar el
nombre aquí, MO en mag. Llamemos al otro
M extra aquí en la estructura. Si vuelvo atrás y abro la estructura, dentro
de la estructura, esta es la M máxima en, esta es la máxima
que podemos tener. Este es el actual. Podríamos haber cerrado
nuestra arma y usar nuestro MO cuando tiramos el
arma al suelo. No va a
tener el
MO máximo como el MO en la mag. Va a tener
este MO actual porque el jugador ha
usado parte del MO. Cambiemos esto en
un interior también. Déjame arrastrarlos hasta
aquí para que podamos ponerlos. Y recuerda que
puedes sostener Alts en tu teclado para
configurarlos así directamente Vamos a conectarlos
aquí, conectar este. Y tenemos que
fijarlos ahora primero. Tenemos que obtener la variable
aquí, la estructura. probablemente ya sepas
ahora lo que tenemos que hacer, porque
lo hemos hecho mil veces. Entonces obtienes el nombre del arma, obtienes información de arma, y luego
rompes esta estructura. Y ahora tienes el Max MO
y Meg y el Max Extra MO. El Max M y Mag, voy
a establecer a la M actual y Meg y la M extra, configurándola al MO extra
actual. Y voy a dar click
en Ocultar pines no seleccionados. Y así lo que sucede
es que cada vez que esta arma genera esto
comienza, el juego va a jugar Siempre que engendremos
esto en el mundo, cada vez que hayamos colocado
esto en el mundo, vamos a hacer clic en play Y esta jugada de inicio se
va a jugar enseguida. Y siempre que este lugar, va a
configurar automáticamente el MO actual y Mac un Mo extra de lo que hemos
definido de hecho tabla de datos. Bien, así que eso fue todo. Esto fue muy, muy sencillo. Y con estas variables hay
que dar click sobre ellas y dar click en replicadas. Y también para éste, da
clic en replicado. Porque recuerda que estamos
corriendo en el servidor. Y si no los replicamos, el cliente no tiene idea
de cuánto MO tienes El cliente verá 00 MO si no los ha
replicado. Así que recuerda
replicarlos también. Ambos. Y
pasemos al siguiente.
142. 10.13 Crea la lógica de la interfaz de usuario de Ammo: Ahora sigamos adelante en la interfaz de usuario y hagamos la
lógica dentro de aquí. Dentro de nuestro principal B, creamos esta interfaz de usuario
para las balas. Ahora vamos a dar click sobre este texto. Y voy a
renombrarlo a balas T o MO. Vamos a llamarlo MO.
Y vamos a compilar. Vamos a establecerlo también en una variable. Porque necesitamos
establecer este texto, dependiendo de la
cantidad de MO que
tengamos, necesitamos
convertirlo en una variable. Así podemos modificarlo con
código dentro de la gráfica. Dentro de aquí. Hagamos un nuevo evento personalizado.
Hagamos clic derecho en Eventos
personalizados. Llamemos a este
MOI de actualización con esto Inicialmente lo que solo
queremos con esto es establecer este texto a la
cantidad de MO que tenemos. Golpeemos aquí
y digamos texto fijo. Siempre es agradable pensar, ¿qué es lo que realmente quieres? ¿Qué intentas hacer? Esto es lo que suelo
preguntarme cuando trato
de codificar algo. Por ejemplo, este de aquí, ¿qué intentas hacer? Estás tratando de
establecer este texto a la cantidad de MO que tienes
ahora mismo en el Meg, vas a la gráfica y
tomas esto por ejemplo. Puedes escribir Establecer
texto porque
queremos establecer el texto en última instancia. ¿Cómo configuramos el texto? Necesitamos dos variables diferentes. Esto es algo
que ya hicimos. Necesitamos el MO actual en Mac. Necesitamos saber eso,
porque necesitamos configurarlo aquí y también
necesitamos el
MO extra actual. Vamos a llamarlo. Da click aquí y
llámalo MO extra actual. Cambiemos
ambos a un entero. Estas son las dos
variables que necesitamos
conocer y necesitamos
establecer este texto con. Ahora puedes ver que tenemos
dos cosas que necesitamos establecer. No tenemos solo un
número, tenemos dos cosas. Siempre que tengas múltiples
cosas dentro de
una, una línea de texto que
necesites cambiar por separado, vas a usar algo
llamado formato texto. Si arrastras desde aquí
y dices formato texto, esto es algo en
lo que debes
pensar de inmediato cuando tienes dos cosas
Quieres modificar dentro de una línea de texto,
dos cosas separadas. Queremos modificar este número y queremos
modificar este número. Siempre que recarguemos el arma, necesitamos formatear el texto Porque ahora necesitamos enchufar estas dos variables
con formato de texto. Si escribes un corchete para empezar, llamemos a este. Puedes llamarlo como
quieras. Sólo voy a llamarlo el mismo nombre que
aquí. MO actual en mag. Y luego hay que
cerrar los corchetes. Recuerda que es un corchete. Hay que
formatearlo igual que aquí. Porque quiero el espacio
aquí y el y el espacio. Voy a dar click aquí
y escribir espacio espacio. Porque solo
quería quedar así. Puedes elegir como
quieras
hacer que parezca que yo
quiero quedar así. Entonces hay que volver a abrir
los corchetes, porque ahora tengo que definir
mi segunda variable aquí. Este es, por ejemplo, MO extra
actual,
así como éste. ¿Bien? Ahora tenemos
estas dos y ahora registramos estas dos variables en. Automáticamente
los conectará aquí y aquí, lo
que significa que actualizará esto y esto
separados entre sí. Así es como se usa un
formato de texto de formato. Si solo lo vuelvo a hacer, por ejemplo, otro ejemplo, puedes usarlo por ejemplo, en un juego RPG, podrías decir, por
ejemplo, hola. Y entonces se puede
decir el nombre del jugador. Porque a lo mejor dice hola
John, o algo así. No lo sé. Sea cual sea
tu nombre
de jugador , dice hola. Y tu
nombre de jugador, cómo te va a esta hora del día, por ejemplo, del
día, por ejemplo, Hola, por ejemplo, John, ¿cómo estás haciendo esto
para esta noche? A lo mejor tienes como un sistema
diurno y nocturno. Y en el juego
automáticamente sabes si es tarde o mañana
o algo así, y puedes enchufar
eso en variables. Así es como se
usa un formato de texto. Se pueden hacer múltiples variables, y en realidad no
tiene que ser enteros. Puede ser una línea de texto, puede
ser otra cosa, una enumeración, y así sucesivamente Es muy, muy útil
usar este formato. Bien, ahora tenemos esto terminado, y de hecho podemos usar esto
para enchufar esas variables. Compilemos y
guardemos todo, y pasemos
al siguiente.
143. Actualiza la interfaz de usuario de munición 10.14: Ahora es el momento de
actualizar la interfaz de usuario a la cantidad real que
tenemos dentro de las armas. Vamos a la base de jugadores. Ahora, dentro de aquí, vamos a crear un nuevo evento. Y echemos un vistazo aquí
y hagamos un nuevo evento personalizado. Llámalo CL porque estamos trabajando con UI y
UI, nuestro lado del cliente. Llamemos a esta actualización, MOU. Lo que tenemos que hacer, al
igual que éste, necesitamos obtener el
controlador y así sucesivamente. Entonces ahora puedes ver que
estamos tratando de obtener este controlador una y otra vez. De hecho, es agradable
crearlo en una variable en su lugar, en lugar de copiar y pegar
esto todo el tiempo Vamos aquí arriba a la
jugada del Jugador aquí, donde en realidad
conseguimos el mando. Hagamos clic derecho y
promocionemos este controlador a una variable y
lo llamemos controlador de jugador. Voy a
alejar esto un poco aquí y luego
voy a colocarlo aquí. Siempre que este
controlador de reproductor sea válido, lo
vamos a establecer como una variable. Sí, esto está bien. E incluso puedes hacer
doble clic aquí
para hacer notas de redireccionamiento así como Bien, adelante y compile. Ahora lo que podemos hacer aquí abajo, en realidad
podemos eliminar esto, obtener controller, play controller, porque ya
lo tenemos como variable ahora. Ahora se vuelve mucho más fácil de hacer. Incluso podemos
acercar esto, algo así. Ahora en realidad puedes
hacer lo mismo por aquí. Podemos tomar el controlador. Ejecutemos esto en el cliente antes de que nos olvidemos de
ejecutar el cliente propietario, tomar controlador de pantalla,
obtener WB principal Entonces puedes llamar al
que llamamos update MO Ui. Bien, aquí necesitamos dos
variables. Podemos simplemente enchufarlos dentro de este cliente. En cliente uno. Déjame mover esto
un poco hacia abajo, así como así. Bien, y ahora
tenemos este de aquí. Así que vamos a compilar y
guardar todo. Y a éste hay que llamar
cada vez que saqueamos el arma. Así que déjame subir aquí. Siempre que saqueemos el arma que está por aquí, saqueemos Y si vamos a un lado, necesitamos actualizar las balas
sólo si estamos desarmados Porque si tengo un AK, va a pasar por
este código aquí arriba. Solo quiero actualizar
cada vez que realmente saquee el arma la primera vez Porque no necesitamos cambiar la cantidad de MO para
la otra arma. Eso me va a ir en la
espalda porque
no lo he equipado
cuando estoy desarmado Quiero actualizar
mi MO por aquí. Tenemos que volver a extender
el código. En realidad, voy a
alejar esto bastante porque seguimos
extendiendo este código. Tengo algo de espacio para trabajar. Puedo mover todo esto
aquí conmigo. Así como así. Podemos llamar a update MY este
cliente uno que acabamos de hacer. Entonces tienes que definir aquí cuál es tu MO actual y extra. Ya fabricamos esta arma equipada
variable. Este solo
voy a hacer click en él y esconder pines desconectados Haga clic en esto. Entonces tienes
esta arma equipada, podemos usar eso. El arma
equipada. Recuerda que no es
arma equipada, es la equipada. A lo mejor puedas cambiar el nombre
de esos para que no te confundas
demasiado arma equipada. Y podemos obtener el MO
actual en mag. También podemos obtener el MO adicional
actual. Y los podemos enchufar aquí. De hecho, puedo copiar todo
esto porque podemos copiar y pegar esto por todas partes. Podemos copiar y pegar esto. Vamos a compilar, vamos a pegarlo. Siempre que cambiemos las armas. Siempre que cambio las armas aquí en la lógica de equipar armas, nuevamente, estamos actualizando la interfaz de usuario. Entonces voy a
alejar esto, y sólo voy
a pegarlo aquí. Pégalo después de esta lógica. Y sigamos adelante y lo
conectemos. Así como así. Bien, vamos a compilar
todo ahora. Intentemos ver qué pasa
si hacemos clic en jugar ahora. Y ahora juega el cliente. Selecciono Terrorista y me
dejo recoger algo. Entonces puedes ver mi MO
en realidad se está actualizando ahora dice 20.60 Si cojo la pistola, no
dice nada a menos
que cambie a la pistola Después actualiza también el MO. Si dejo caer esto
ahora, ahora necesitamos ocultar
la sección MO porque no
tengo armas. Pero vamos a hacer
eso en las próximas lecciones. Ahora podemos ver aquí
cuando recoja el AK, se va a actualizar correctamente. Cuando cambie de arma, se va a actualizar
correctamente. Bien, así que todo se está
actualizando correctamente. Y eso fue todo por esta lección. Muy sencillo. Y guardemos todo
y sigamos adelante.
144. 10.15 Oculta la interfaz de usuario de munición: Bien, bienvenido de nuevo.
Entonces ahora necesitamos ocultar la interfaz de usuario M siempre que
no la necesitemos. Déjame abrir
de nuevo la interfaz de usuario. Abre la principal del WB
y entra dentro de la gráfica debajo aquí,
el MOU de actualización Voy a hacer
otro evento personalizado, y voy a llamar a este
display así como así. Para este, lo que
estamos tratando de hacer, nuevo, pregúntate,
¿qué intentas hacer? Estoy tratando de ocultar toda
esta sección. Siempre que no tengo un arma, hago clic en esta superposición. Esto superpone
todo el asunto aquí. Este es el padre
de todos ellos aquí. Voy a renombrarle este
a V M o overlay. Déjame configurarlo como una variable para que pueda editar esta codificación. Déjame ir a la gráfica, tomar esto y luego
decir establecer visibilidad. Quiero controlar la
visibilidad de esta interfaz de usuario. Podemos arrastrar desde esto y decir seleccionar dependiendo de si
queremos mostrar u ocultar la interfaz de usuario. Necesito un toro aquí. Necesito un lingote llamado display. Si queremos mostrar
u ocultar la interfaz de usuario, podemos seguir adelante y
conectar esto a aquí. Este acoso es falso, lo que significa que no queremos mostrar la interfaz de usuario. Quiero ocultarlo. Siempre que esto sea cierto aquí, quiero mostrar la interfaz de usuario. Voy a configurarlo
para que no golpee comprobable. Nuevamente, esto significa que tu
significa que es visible, pero el cursor del mouse no puede
interactuar con esta interfaz de usuario aquí. Y realmente no
necesitamos interactuar con él de todos modos. Vamos a compilar. Y ahora esto de aquí está terminado. Ahora lo que podemos hacer es
volver al jugador. Y en lugar de la base de
jugadores
como antes aquí,
hagamos un clic derecho, hagamos un nuevo respiradero personalizado, todo
esto se muestre de nuevo. Tomemos este copy
paste y
busquemos el MI display.
Vamos a conectarlo. Recuerde ejecutar esto en el cliente propietario y
confiable también Déjame hacer clic y
arrastrar esta variable aquí. Bien, eso fue todo. Vamos a compilar ahora. Vamos a elegir cuándo queremos
mostrar y ocultar la interfaz de usuario. Quiero mostrar mi UI cada vez que equipe el arma
o la saquee aquí MdE de pantalla. Si voy
a mi arma de lote y solo voy por aquí y quiero
mostrarla justo
después de actualizar mi MO. No quiero mostrar antes actualizar
mi MO porque de
lo contrario va a parecer buggy. Quiero actualizar el MO
antes de mostrar la interfaz de usuario. De nuevo, permítanme arrastrar
todo esto. Nuevamente, así,
seguimos arrastrando esto lejos. Tenemos muchas cosas que
hacer dentro de aquí aquí, podemos escribir CL display
aquí y conectarlo. De nuevo, voy a alejar
esto un poco así. Algo como esto. Siempre
es agradable decirlo, organizado. Bien, así que vamos a
mostrar la interfaz de usuario aquí. Esta otra vez, siempre que
estemos desarmados, porque ahora tenemos un arma Quiero mostrar mi interfaz de usuario. Recuerda marcar esto aquí. Vamos a compilar de nuevo. También necesitamos esto siempre que
equipemos el arma. Si voy a mi arma de equipo, si puedo encontrarla aquí,
equipar arma aquí. Nuevamente, cada vez que actualizo mi MO, quiero mostrar mi UI
o mi MO así. Bien, recuerda también
tenerlo marcado aquí también. Ahora necesitamos ocultar la
interfaz de usuario cada vez que dejamos caer el arma por aquí en
mi arma lógica de caída. Recordemos que hicimos esta función
anteriormente, soltar arma. Vamos a entrar aquí. Ocultemos la interfaz de usuario
justo antes de esta. Si arrastro esto,
puedo pegarlo. La pantalla MO UI
va a ser, cae aquí, cae
para la pantalla. Y podemos ocultar la interfaz de usuario
cada vez que soltemos el arma. Bien, vamos a compilar
y guardar todo. Vamos a probarlo y ver
si realmente funciona. Seleccionemos terroristas. En realidad, necesitamos
ocultarlo por defecto. Ya ves que es ahora mismo
y no queremos eso. Entonces ese es el primer error. Pasemos a la principal aquí. Vamos a hacer clic en la superposición
aquí en la visibilidad. Vamos a configurarlo en oculto
por defecto y compilar. Y vamos a hacer clic en reproducir de nuevo aquí en el cliente
seleccione Terraza. este momento no lo podemos ver,
pero cuando recogemos un arma, se va a exhibir con la cantidad
correcta de balas. Si lo dejo caer ahora ya no
va a exhibir más. Recojo la pistola,
va a exhibir, cojo el AK. No va a
actualizar las balas menos que cambiemos al AK. Si me cae el AK, no
va a exhibir nada. Ya puedes ver,
está funcionando correctamente. Siempre que estemos
sosteniendo un arma, vamos a ver
cada vez que cambiemos el arma. Cada vez que dejamos caer el arma, ocultamos la interfaz de usuario y así sucesivamente. Y en realidad
probemos esto también en el servidor, así que no sé si estoy jugando
como servidor también. Entonces haciendo clic aquí arriba,
jugando como servidor, y voy a jugar
como dos números o dos jugadores y
seleccionemos terroristas. También vamos a probarlo
aquí en el servidor. Recuerda, tienes que
probarlo en el cliente y en el servidor para saber
que realmente funciona
en ambos. Aquí
también tengo al cliente y puedes seguir adelante
y seleccionar terroristas. Y ya
lo probamos en el cliente. Todo está funcionando a la perfección. Sí. Todo está funcionando, Todo es bonito,
increíble. Todo funciona. No tenemos pavos, ni errores, y así es como lo hacemos. Pasemos al siguiente.
145. 10.16 Cálculo de munición: Entonces ahora sigamos adelante
y calculemos el MO, porque ahora mismo cada vez que
estamos disparando el arma, así que si recojo esto
y trato de disparar, realidad no
estamos
calculando el MO. Todavía son 20. Entonces, sigamos
adelante y hagamos eso. Vayamos una
vez más a la base de jugadores para calcular las balas. Recuerda, hemos hecho
este temporizador aquí abajo. Si podemos encontrarlo
aquí abajo con el
trazado de línea por canal y reproduciendo el efecto visual
y el efecto de sonido por aquí, queremos restar una bala
cada vez que dispares Déjame simplemente alejar esta
línea trazada porque vamos a usar más tarde cuando apliquemos el daño del jugador. Pero por ahora, trabajemos aquí. Lo que simplemente quiero
hacer es
tomar mi arma equipada
que tengo
ahora mismo y quiero obtener mi MO
actual en mi mag. Entonces solo quiero restarle
uno, menos uno. Y luego puedes seguir adelante y
establecer este MO actual en mag. MO Actual en mag. Y tenemos que configurarlo. Establecer
el MO actual en mag. Y nosotros solo menos uno de él, estamos restando una bala
cada vez que disparamos Ahora bien, en lugar de solo
tenerlo así, necesitamos arrastrar de
esto y decir clamp. Lo que hace la pinza es
que evita que nuestro valor vaya por debajo de cero porque no queremos
tener menos una bala, menos dos bala, menos
tres bala, y así sucesivamente. Estamos estableciendo nuestro valor
mínimo en cero cuando restamos aquí Estamos impidiendo
llegar a menos uno, menos dos balas y así sucesivamente. Eso no tendría ningún sentido. Ahora, el máximo para éste, solo
podemos tomar esto
y decir que podemos obtener las balas actuales y
luego podemos ponerla aquí. Ahora bien, este no importa. Incluso podemos establecerlo en 999. Realmente no importa en este momento. Pero sólo voy a la buena
práctica, a la buena práctica de codificación. Toma las balas adicionales actuales
y ponlas como el máximo. Bien, ya tenemos ese set. Permítanme crear
notas reescritas alrededor de ésta también. Sigamos adelante y conectemos
este pin de ejecución aquí. Y conectemos aquí también el pin de
ejecución. Lo que puedes hacer este, incluso
puedes hacer clic derecho
y promoverlo a una función o
colapsarla a una función. Llamemos así a esta función
tract MO de mag. ¿Bien? Ahora estamos restando y solo podemos dejar que esté aquí Ahora en lugar de solo
tener una bala, incluso
puedes hacerla
dinámica en el futuro. Si quieres disparar
una bala y
en realidad quieres restar
dos en lugar de una bala Incluso puedes simplemente
enchufarlo aquí y puedes escribir MO para restar así Permítanme simplemente alejar
todo esto, esto, y seguir adelante
y compilar ahora. Si volvemos ahora,
puedes ver que puedes escribir cuántas balas quieres
restar para mi juego ahora mismo, solo
quiero restarle
una bala. Eso está bien. Entonces sigamos adelante y hagamos una nota de secuencia porque
vamos a recargar más tarde De hecho voy a desconectar este rastro de línea y
voy a
alejar esto un poco aquí. Rastreemos desde aquí
y hagamos secuencia. Y elige el nodo de secuencia. Ahora con la nota de secuencia, conectemos los dos aquí, desde el pin aquí,
desde el cero. Vamos a conectar esto aquí. Lo que es una nota de secuencia, solo se usa para
organizar tu código. No es hacer
otra cosa que eso, es solo organizar tu código. Primero vamos a hacer el efecto aquí y
vamos a restar la bala Entonces vamos a
poner esta línea de trazo. Puedo mover este
rastro de línea aquí abajo. Yo sólo voy a mover todo
esto aquí abajo también, porque ahora mismo se ve un
poco desordenado Incluso puedes eliminarlos y simplemente conectarlos directamente aquí. Y voy a mover
esto así hacia arriba. ¿Bien? Ahora se ve mucho mejor. Y ahora podemos conectar
esto a esto aquí. Un nodo de secuencia es solo
para organizar tu código. Va a hacer el
efecto de sonido y todo eso, restar la bala, entonces
vamos a crear el trazo de línea Entonces después de eso, vamos a hacer la recarga
porque tenemos que revisar, ¿nos quedamos sin balas Si lo estamos, tenemos que seguir
adelante y recargar. Sigamos adelante y hagamos
eso en la siguiente lección. Esto va a ser un no muy difícil pero hay que
estar despierto para eso. Por ahora hemos terminado, estamos calculando las balas. Incluso podemos hacer clic en el plato
solo para probarlo por
buenas razones aquí y
ver si es box out. Ahora mismo necesitamos actualizar realmente
la interfaz de usuario y
hagamos eso dentro de la función restar
amo de mag Vamos dentro de aquí
y dentro de aquí. Golpeemos desde aquí y
llamemos a la actualización de CL MO I. Esto es lo que creamos antes. Y entonces podemos tomar
este MO en mag, este es solo este aquí y el
otro, el MO extra. De hecho, podemos simplemente
tomar este y crear un nodo de re ruta o simplemente hacerlo más bajo aquí y
podemos llevarlo hasta aquí. Bien, ahora esto está hecho. Vamos a compilar. Vamos a
hacer clic en play. Probemos como el
cliente. Juguemos ahora. Voy a dispararle a mi arma. Está funcionando ahora. Yo también voy a jugar como
servidor, tomando el arma y disparando
también. Y eso funciona. Tanto el cliente como el servidor, ambos
están funcionando perfectamente. Bien. Ahora es calculador. Y sigamos adelante
en las próximas lecciones. Y ya pueden ver,
podemos disparar el arma. Puedes ver si sigo
disparando el arma, puedo seguir disparando siempre que
esté a cero balas. Y la razón de
esto es porque en realidad no le
hemos dicho al motor deje de disparar cada vez que
estamos a cero balas. Y eso lo haremos
en las próximas lecciones. Pero primero tenemos que calcular el MO y hacer la recarga. Y después de eso podemos sumar
todas estas condiciones. Pero por ahora,
vamos a guardarlo todo. Todo está funcionando. Y
pasemos al siguiente.
146. 10.17 Recarga la animación de armas: Hola y bienvenidos de nuevo. Ahora estamos listos para hacer la funcionalidad de
recarga. Ahora hay que
estar muy despierto para esta lección
porque va a ser quizá una larga también. Tenemos muchas matemáticas que hacer, así que realmente necesitas
prestar atención aquí. Bien, primero hagamos la
recarga. Sigamos adelante y
creamos un evento personalizado. Así que permítanme hacer clic
aquí y hacer un
nuevo evento personalizado. Llamémoslo set de
recarga de arma. Así que vamos a establecer
un toro para que se recargue o no ejecute esto realmente
para ejecutarse en el servidor. haz eso. No ejecutar en servidor, eso fue un error, solo
set es recargar arma Evento normal,
hagamos un servidor uno
aquí abajo llamado set es
recargar arma Ejecutemos este en
el servidor, confiable. Vamos a hacer un nuevo bulling aquí llamado recargar y seguir
adelante y hacer clic en Tomemos esto y pongamos el toro de
recarga aquí. Recuerda configurarlo para
replicarlo ya que nos estamos ejecutando en el servidor y el cliente necesita saber si estamos
recargando o Por aquí tenemos que ejecutar el conjunto de eventos
del servidor está
recargando arma Sigamos adelante y conectemos
esto aquí también. Bien, así que cada vez que estamos
recargando queremos realmente tocar el montaje
para la Déjame romper de
aquí y hacer una rama. Y hagamos una sucursal aquí. Y digamos que si estamos recargando queremos
tocar un montaje Y recuerda el N montaje
que necesitamos para jugar a través una multidifusión porque
todos los clientes necesitan ver este cambio visual El conjunto de multidifusión es el arma de
recarga. Ahora me gustaría simplemente llamarlo el mismo nombre que
las funciones principales. Puedes nombrarlo como
quieras y ejecutarlo a través una multidifusión confiable por aquí Tenemos que tomar
la malla, así que esto no los dos sino
solo esta malla de aquí. Y puedes escribir
montaje y
puedes tocar este montaje
igual que antes Este montaje para jugar, solo
puedes conectarlo aquí Llamémoslo recargar M. Juguemos esta
multidifusión aquí arriba. Set es recargar arma.
Esa es la correcta. Entonces tenemos que decirle qué
montaje necesitamos tocar. Ahora bien, no creo que
tengamos ninguna animación. Porque si solo subimos aquí, tomemos uno de ellos.
Esta estructura aquí. Sólo
lo estoy pegando para no tener que volver
a escribirlo todo. Puedo tomar mi arma equipada
y enchufarla aquí. Bien, entonces aquí en la estructura solo
tenemos la animación
equipar. No tenemos una animación de recarga
para cada arma porque
cada arma de manera realista tiene
su propia animación de recarga Entonces, sigamos adelante y agreguemos
eso a la estructura. En la estructura,
ábrala y sigue adelante y agrega la animación de recarga Hagamos setage, sigamos adelante y busquemos
eso y selecciónelo, igual que el anterior Sigamos adelante y
guardemos todo. Quiero que sigas adelante y
abras tu tabla de datos. Porque aquí en la
tabla de datos ahora puedes escribir animación de
recarga Puedo copiar todas mis
animaciones de equipamiento aquí. Porque como dije antes, no
tengo una animación de
equipamiento separada. Pero como puedes ver para
tu propio juego ahora, puedes tener una animación de equipamiento, separar una, y puedes tener una animación de recarga separada Todo esto se puede
personalizar muy bien. Ahora puedes salir y
hacer clic en Archivo y descargar,
Descargar como CSV, y luego
puedes minimizar esto aquí, ve a la carpeta de tablas de datos. Y aquí, igual que antes, voy a borrar mi
anterior y renombrarle el nombre a este nuevo, y luego arrastrarlo hasta
aquí para actualizar esto. Ahora puedo volver
a mi base de jugadores dentro de aquí montaje para jugar Ahora dice cero sin motivo alguno. Solo tienes que dar
click en Archivo y refrescar todos los nodos
así como así. Ahora en realidad puedo tener mi animación de recarga aquí
y puedes conectarla Bien, ahora tenemos esto
resuelto y
también necesitamos establecer esto se está recargando para que sea
falso en algún momento Pongamos que esto se está
recargando para que sea falso. Y la forma en que hacemos
esto podemos simplemente llamarlo de nuevo en el servidor. Recuerda cuando
estás en una multidifusión, puedes volver
al servidor aquí Cuando completemos la recarga, podemos decir que el conjunto del servidor
es el arma de recarga. Volvemos
al servidor y estamos configurando la recarga
para que sea falsa En realidad podemos seguir adelante y probarlo y
salgamos a compilar. Y eso fue todo
para este ahora, realmente no
podemos probarlo
ahora mismo porque no
tenemos ninguna
funcionalidad de recarga Pero vamos a hacer
eso y vamos a calcular la recarga
y así sucesivamente por aquí Pero por ahora tenemos
terminada la animación de
recarga y sigamos
adelante y compilemos, guardemos todo, y
pasemos a la siguiente
147. 10.18 Recarga la funcionalidad de armas: Bien, así que ahora
estamos listos para calcular las balas
cuando estemos recargando. Y antes de hacer
eso, vamos a añadir este conjunto se está recargando aquí
arriba en el código Antes de continuar, recuerda
que hicimos esta secuencia. Entonces como pueden ver aquí, y estamos disparando las balas, estamos restando una bala
cada vez que disparamos No obstante, al final,
tenemos que revisar, ¿tenemos más balas? Si no lo hacemos, tenemos que seguir
adelante y recargar. Lo que tenemos que hacer es
tomar esta arma equipada, y recordar que tenemos
este MO actual en mí. Podemos preguntar si esto
es igual a cero. Si esto es igual a cero, permítame simplemente hacer una sucursal aquí. Si esto es igual a cero, tomemos esto
y conectémoslo aquí. Si esto es igual a cero, sigamos adelante y
digamos set es recarga Set se está recargando para que sea verdad, queremos recargar siempre que
no tengamos más balas Vamos a compilar. Vamos a
hacer clic en play. Y veamos si
realmente funciona. Voy adelante aquí y voy a disparar a
todas mis armas. Tengo que tener cuidado porque no
quiero disparar bajo porque no he
hecho condiciones para eso. Si tiro a cero, se
puede ver que va adelante y recarga y eso es correcto Bien, entonces ahora está reproduciendo
la animación. Tenemos que calcular las balas cada vez que estamos recargando. Entonces sigamos adelante y hagamos
eso. Déjame simplemente alejar
esta multidifusión porque
necesitamos el código aquí Ahora hay que estar
realmente despierto porque hay muchas matemáticas
pasando cuando calculamos
las balas. Bien, primero lo que tenemos que hacer, tenemos que tomar el arma
equipada, tenemos que averiguar las balas
extra que tenemos. Porque si no
tenemos balas extra, realmente
no tiene
sentido recargar Ahora lo primero que
quiero preguntar es, es este MO extra que
tenemos en esta arma, es mayor o
igual a? Ahora déjame pegar esto aquí abajo.
¿Es mayor o igual al MO máximo en la mag? Ahora por qué preguntamos sobre esto es porque
digamos que este es el AK, y el AK tiene 30
aquí en el max M en la mag si tenemos
más que eso como el MO extra. Ahora sigamos adelante
y hagamos una sucursal. Y déjame conectar
esto aquí abajo. Si eso es cierto, simplemente podemos seguir
adelante y tomar
esta arma equipada y obtener el MO y mag actuales. Y establecer ese MO actual, y podemos simplemente configurarlo a lo que sea que esté aquí
como la M en el, si eso tiene sentido. aquí descubrimos
que nuestro MO extra es mayor o igual a lo que
podemos tener dentro de la mag. Eso significa que la mag puede estar llena. Sólo estamos llenando todo el
mag aquí, así como así. Pero antes de hacer esto, también
necesito calcular
lo que nos quede en nuestro MO actual porque
tenemos que restar de aquí Tomemos este MO extra
y digamos menos. ¿Qué necesitamos para
restar de aquí? Tenemos que restar lo mucho que tenemos
ahora mismo en nuestra mag Si solo busco
MO actual en mag este año, necesitamos restar el MO máximo en mag
del M max actual Vamos a darnos un ejemplo para que
no sea demasiado confuso. Puede sonar muy confuso. Por ejemplo, digamos que mi max MO ahora mismo
en el AK es 30. Ahora mismo me resta. Digamos que me quedan 27 MO. En mi mag actual sólo
disparé tres balas. Ahora tengo 27 aquí. 30 que es el
máximo -27 que es 33. Voy a
restar tres de mi MO extra si tuviera
90 como mi MO extra, ahora tengo 87 porque
solo disparé tres balas Ahora la matemática tiene sentido
aquí para ésta. Ahora bien, este valor, necesito
establecer mi M extra actual aquí. En lugar de copiar pegar esto. En realidad sólo voy
a dibujar de aquí y decir M.
extra Podemos establecer
eso a este valor. Sigamos adelante y hagamos eso. Y sigamos adelante y
conectemos esto también. Voy a hacer algunas notas
redireccionadas y re,
explicarte esto solo para asegurarme de que
estamos en la misma página Todo bien. Entonces ahora he creado notas
traseras y he
organizado esto. En realidad este
necesitamos extenderlo un poco porque puedo
ver que estamos recibiendo un dólar más adelante
porque estamos preguntando si el MO adicional actual es
mayor o igual que el MO. Y si ese es el
caso, lo estamos configurando, estamos configurando el MO actual al MO máximo porque
podemos pagarlo, tenemos suficientes balas. No obstante, cuando tenemos como, digamos que nos quedan
cinco balas. Entonces, si solo abro la interfaz de usuario para que podamos
entender mucho mejor. Digamos que me quedan cinco
balas aquí. Tengo algo como
digamos que quedan diez balas. No lo va a poner en 15, en
realidad va
a estar mal aquí. Lo que tenemos que hacer
es que tenemos que preguntar es el
MO adicional actual que
tenemos, necesitamos agregar
esto aquí más el actual. Tenemos que sumar ambos. Obtenemos la M actual
más las juntas. Si esos son mayores o
iguales el max M en max, ahora es correcto y no
conseguimos un dólar con este. Sé que podrías necesitar
entender esto como
podrías necesitar simplemente
publicar este video y tratar entender la
lógica detrás de esto. Es pura matemática. Incluso
puedes escribirlo en papel. Es mucho mejor.
A veces cuando creo lógica así, escribo en papel, está frente a mí, es
mucho más fácil de entender. Básicamente solo estamos preguntando, es el MO extra actual que
tienes más el MO actual en mag, son mayores o
iguales al MO máximo? Si es así,
eso sería falso porque
el total apenas sería 15 y el máximo en Mac
sería de 30. Entonces sería falso. Y aquí haríamos
algo así. Bien, entonces ahora
eso es correcto. Y también
recordemos aquí cuando
restemos aquí y volvamos a poner el MO extra
actual, tomemos una pinza y asegurémonos de que
no vaya por debajo de cero Y vamos a
conectarlo aquí. El máximo es solo
este MO extra. De hecho podemos
simplemente tomar este o simplemente puedes copiarlo y
pegarlo solo para que vea para que se vea
mucho mejor y más
legible así aquí. Ahora cuando es falso, y sólo me voy a alejar
este poco, así que se ve mucho mejor. Ahora cuando es falso,
lo que tenemos que hacer, tenemos que tomar esta arma y necesitamos obtener el MO
actual en Meg, y tenemos que establecer ese valor. A lo que tenemos que fijarlo es digamos que fue el
caso como este año. Aquí nos quedan cinco balas, aquí
tenemos diez balas. Tenemos que decir cinco
más diez, es decir 15. Y tenemos que fijar eso a la cantidad
actual de balas. De hecho, tenemos
que tomar esto aquí arriba. Tenemos que decir MO
extra actual que tenemos, que son diez por ejemplo, más los cinco que son 15. Y tenemos que ponerla aquí abajo. Y eso se hace siempre que
no nos queden
más balas. El M extra más el MO
actual en mag, no
son ni siquiera
mayores que el MO máximo en el mag. Entonces solo necesitamos
tomar todas las balas, juntarlas
y colocarlas dentro de nuestra actual mag. Algo así aquí. Bien, ahora esto está atendido. También tenemos que asegurarnos de que la cantidad extra
de balas aquí, tenemos que ponerla a cero. Ahora, porque hemos metido
todas las balas en la mag, tenemos que llevarnos esto,
tenemos que decir extra. Tenemos que decir establecer el MO extra
actual para que sea cero. Ahora también tenemos que
recordar actualizar la interfaz de usuario. Déjame guardarlo todo
y digamos actualización de CL I. Conectemos este de aquí, y conectemos este de aquí. Necesitamos actualizar la
interfaz de usuario después de estos eventos. Déjame
hacer doble clic en éste. Haz que se vea mucho
mejor así aquí. Ya podemos tomar, no, sólo
voy a copiar
esto pasado aquí. Ahora podemos enchufarlos, vamos a conectarlos de manera
diferente aquí. Primero, el MO actual,
en mag y MO extra. Solo presta atención a lo
que estás enchufando aquí. Compilemos ahora y guardemos, y ahora probémoslo. La razón por la que escribí la lógica aquí en las cataratas
es porque estoy
esperando que
termine esta animación antes de que
vamos a permitir que el jugador establezca la cantidad de
balas correctamente. Porque en realidad, no
quiero darle balas
al jugador
durante la animación. Quiero esperar a que termine la
animación. Cuando, se cae, va a reproducir
este código aquí abajo. Bien, para que veas que tienes que estar un poco despierto para
este código de aquí. Nuevamente, siéntete libre de hacer una
pausa, echarle un vistazo, obtener un papel y un bolígrafo y
simplemente escribir los valores. Intenta hacer las matemáticas y ver
si tiene sentido para ti. Sigamos adelante y hagamos
clic en Reproducir. Juega como terrorista. Y déjenme tomar la
M cuatro por ejemplo. Permítanme maximizar
la ventana gráfica. Ahora si sigo adelante y
disparo todas mis balas, cuando golpeo todavía puedo disparar. Se puede ver que sigue fastidiando. Puedo disparar cada vez que
sigo sosteniendo mi ratón. Aún no hemos hecho esta condición . Lo vamos a hacer más tarde. Pero si suelto mi mouse ahora, voy a recargar y
en realidad va a calcular las balas correctamente si solo
sigo haciendo eso Y se va a volver a cargar. Voy a hacer
el último aquí. Voy a volver a cargar, y así es como se ve Se puede ver que
bichos aquí al final. Eso es porque en
realidad no hemos hecho ninguna condición aquí. Si vuelvo aquí y me dejo tomar el código que escribimos
con la secuencia. Si acabo de encontrar la
secuencia aquí arriba, esta es la secuencia
que estamos filmando. Y entonces estamos preguntando aquí si el Mo actual en mag
es igual a cero. Esta es la única condición que
estamos pidiendo. Necesitamos agregar algunas condiciones para que no se
baje así. Pero por ahora, guarda todo, ahora esto es correcto, es como se ve el
código. De nuevo, siéntete libre de
echarle un vistazo de nuevo, sé que es confuso. Esta es la matemática más dura hasta
ahora que hemos
hecho para el juego, pero en realidad no es tan difícil
una vez
que la pones abajo en papel. Así que vamos a guardar todo y pasemos al siguiente.
148. Condiciones de rodaje en 10.19: Bien, bienvenido de nuevo. Ahora hagamos las condiciones de disparo para que no disparemos al azar cuando estamos recargando
y cosas así Así que empecemos
aquí con el arma de disparo. No quiero disparar mi
arma cada vez que estoy recargando. Ahora mismo, no podemos disparar
el arma cuando estamos desarmados o cuando
todavía estamos equipando el Además, no quiero disparar mi arma cada vez que
estoy recargando. Siempre que la recarga
aquí sea falsa. Entonces no recargaremos, podemos seguir adelante y agregar un pin
y agregarlo a aquí Adelante y compilar, bien, para que se cuide de eso. Ahora, bajemos a esta parte aquí sobre
la secuencia aquí. No quiero disparar
siempre que tenga cero balas. Tengo que escribirlo aquí antes de tocar el efecto y así sucesivamente. Necesito decir si
tengo cero balas, no
me interesa
jugar todo esto. En realidad es
lo mismo que éste. De hecho voy
a convertir esto en una función ya que
estamos reutilizando esto, colapsar esto a una
función y voy a
llamar a esto está fuera de MO, hazlo puro porque
solo estamos obteniendo información No estamos fijando nada cuando el M Mac actual es cero, eso significa que nos quedamos sin balas. Si esto para recargar, si estás fuera de MO, entonces puedes
seguir adelante y recargar Eso tiene sentido. Ahora para este de aquí arriba,
vamos a pegarlo. Escribamos n lingotes
y seleccionémoslo. Cuando no estamos fuera de MO, queremos seguir adelante y disparar. Si estamos fuera de MO no
queremos disparar también para la recarga. Tomemos la recarga y digamos si
no estamos recargando queremos
seguir adelante y disparar Si estamos recargando no
queremos seguir adelante y disparar. Eso es lo que está
diciendo ahora mismo. Déjame seguir adelante y
alejar todo esto. Yo creo que muy pronto limpiamos todo
el proyecto
porque se vuelve a
ensuciar porque estamos escribiendo mucho código ahora mismo Pero como pueden ver
aquí, si
no estamos fuera de MO y si no
estamos recargando, entonces podemos seguir adelante y
disparar las armas aquí abajo Cuando estamos recargando
el arma, no
quiero recargar
dos veces ésta en realidad, ya que es una secuencia, solo toma esto en cuenta Y cuando llega hasta aquí abajo, no toma
esto en cuenta. De hecho hay que agregar
esto aquí abajo también. Cuando no estás recargando, tienes que recargar aquí No queremos
recargar una y otra
vez cuando
ya estamos Y también hay
otra condición ahora cuando disparo mi arma. También quiero
asegurarme de que en realidad
tengo MO extra cuando recargo Porque te puedes imaginar
aquí, por ejemplo, digamos que tengo 15 balas y tengo cero
como balas extra. En realidad va
demasiado si recargo, si disparo las armas o disparo al MO y
llega a cero, en realidad
va a recargar Tengo que preguntar aquí
si tengo MO extra. La forma en que hacemos esto de nuevo, tomemos el arma rápida y digamos obtener el MO extra
actual extra. Si eso no es igual a cero, igual que no es igual a cero, entonces queremos seguir adelante
y hacer todo esto. Déjame conectar esto
aquí y conectarlo. Solo nos estamos asegurando de que en realidad
tengamos MO adicional. Antes de recargar,
permítanme simplemente llevar este colapso a una
función nuevamente y llamar este como MO extra
nuevamente, hazlo puro Adelante, pongámoslo aquí. Y llévate esto aquí abajo también. Bien, sigamos
adelante y compilemos. Creo que eso fue todo. Vamos a hacer clic en play. Y tal vez nos
falta algo. Tenemos que probar el
juego haciendo clic en jugar. Ahora voy a saquear mis cuatro y voy
a disparar mi arma Como puedes ver aquí, si solo
sostengo mi ratón, en realidad ya no va
a disparar, va a dejar de disparar. Entonces sostengo mi ratón. Va a dejar de
disparar automáticamente. Yo sólo sigo disparando
aquí, cero balas. También está haciendo eso ahora mismo. Por alguna razón en realidad
no está calculando correctamente. Cuando disparo mi arma
bajo 20 balas, en
realidad está molestando. Creo que también lo hizo en la lección
anterior. Déjame echarle un vistazo a
lo que está pasando mal aquí. Debe ser algo aquí
arriba cuando en realidad
restamos la bala Porque cada vez que
disparamos, es hacer eso. No está aquí porque
estamos atravesando y disparando el arma. Creo que es algo
dentro de aquí. Estamos tomando el MO
en el menos uno, porque
aquí hemos escrito uno que se está estableciendo aquí. Y establecer el
MO actual en su configuración a la
variable correcta por aquí. Este es el equivocado. Estamos estableciendo el máximo
al MO adicional actual. Si tu MO adicional actual es uno, este en realidad se va a establecer en uno automáticamente. Aquí hay un error. Lo que tenemos que hacer, vamos a esto, sí, tomemos esto aquí, digamos variable de nombre. Vamos a conseguirlo aquí.
Vamos a obtener información sobre armas. Obtén la información del arma
igual que antes. Descomponerlo y este
es el MO actual. Y tomemos el Max MO y
mag y coloquemos aquí en su lugar. No usemos este, solo usemos este de
allá en su lugar. Déjame hacer clic aquí y
ocultar pines desconectados. Y eso debería funcionar perfectamente. Ahora, el error debería ser arreglado. Creo que también sucedió en la lección
anterior. Entonces haciendo clic en Play,
hagámoslo ahora. Sólo voy a disparar
todas las balas. Y mostrarte ahora estoy disparando las balas finales
recargas y disparo Se puede ver que ahora es correcto. Ya no puedo disparar cuando estoy a cero balas y todo
está funcionando a la perfección. Ahora tengo que verificar esto
para el cliente también. Recuerda, tienes que revisar
al cliente, aunque funcione en el
servidor, podría estar equivocado. Cuando suelte esta arma
ahora y la recojo, puedes ver que en realidad tiene la
cantidad correcta de balas. Cuando me quedan diez balas, nueve, puedo soltarlas. Puedo recogerlo. Tiene la cantidad
correcta de balas. Si alguien más lo
va a saquear ahora tengo que probarlo
con el servidor también Si solo traigo
el servidor aquí, y minimizo a
los dos aquí como el servidor, puedo soltar el arma a
medida que el cliente se vaya. Aquí como servidor,
voy a recogerlo. Y si solo maximizo esto, en realidad
es la
cantidad correcta de balas. Si disparo como servidor, ahora quedan cuatro balas. Aquí como cliente, puedo salir a recogerlo y quedan cuatro balas.
Bien. Eso es correcto. Todo
parece funcionar perfectamente. Y lo hace
también para el AK. Tratemos de disparar algunas de
las balas aquí también. Todo está funcionando bien. Bien, arreglamos toda la caja. Ahora mismo, todo
está funcionando correctamente. Hagamos la recarga con tecla
del teclado en
la siguiente lección
149. Recarga un arma de 10.20 con una tecla de teclado: Bien, así que sigamos adelante y recarguemos con el teclado Entonces sigamos adelante
igual que antes, vamos al
jugador e Input. Y haga clic derecho
aquí, vaya a entrada, haga una nueva acción de entrada. Llamemos a esta arma
de recarga. Y vamos a abrir éste, en realidad solo el contexto de
mapeo. Agreguemos un nuevo mapeo. Ve al fondo, selecciona el arma de recarga uno y
sigue adelante y presiona la tecla R. Voy a recargar
con mi tecla R en el teclado y
luego presionada aquí, solo
jugamos esta vez y estará
mucho más optimizada Bien, por aquí con el
set se está recargando arma. Yo sólo voy a
hacerlo arriba de aquí. Recargo arma y
voy a tener esta mi acción de entrada simplemente
cuando presionamos la tecla R, solo
queremos decir set
está recargando para ser verdad Solo queremos recargar
cada vez que pulsamos el botón. Sin embargo, recuerda que
necesitas algunas condiciones porque no
quieres simplemente recargar Porque ahora mismo
si sólo juego, sólo
puedo presionar sobre
la R. Ahora mismo, por ejemplo, tomemos esto. Sólo puedo presionar R, a
pesar de que tengo balas completas. Puedo presionar una R.
No tiene ningún sentido. De hecho puedo presionar un Re. Siempre que no tengamos
ningún arma equipada, también
puedo presionar R
y eso nos dará a Bucky. Nosotros no queremos hacer eso. En primer lugar, tenemos que tomar
este tipo de arma equipada y queremos asegurarnos de que no
sea igual a armar. Arrastremos de aquí
y digamos que no es igual a M y nos estamos asegurando de que no
sea igual a D. Bien, entonces eso es lo primero. Solo arrastremos
de aquí y digamos lingotes porque necesitamos
agregar un par de ellos. Lo siguiente es que si ya
estamos recargando, no
queremos presionar recargar, así que encontremos nuestro lingote de recarga
y digamos N matón Si no estamos recargando
podemos seguir adelante y recargar aquí. Bien, así que vamos a agregar
un nuevo pin de nuevo. Lo último que quiero
pedir es si tengo balas completas. Si por ejemplo, digamos
si tengo 30 de 90, por
ejemplo aquí, como el AK, no
quiero recargar porque tengo balas completas en mi Mac Sólo digamos, tomemos esta arma equipada y
consigamos la
M. actual Vamos a
copiar y pegar la estructura. No quiero volver a escribirlo. Vamos a pegar esta estructura aquí
abajo para el arma. Déjame conectarle el arma
equipada. Ahora vamos a preguntar, es
este MO actual en mag, ¿es esto igual al MO en Ma? Porque si son
iguales, significa que tenemos MO
completo en nuestra Ma y realmente
no necesitamos recargar Yo digo que es igual. Si el MO actual no
es igual al MO
máximo y a mí, entonces
podemos seguir adelante y recargar De lo contrario no volveremos a cargar. Bien, déjeme
colocarlo detrás de
todo esto así y
conectemos esto a una sucursal y
conectemos estos juntos. Ahora estamos preguntando, estamos
diciendo si no lo estamos,
si no estamos recargando y si no
tenemos la cantidad total de balas ya en
el MO actual y yo entonces podemos
seguir adelante y recargar Vamos a tratar de hacer
eso. Vamos a compilar, vamos a guardar todo,
y vamos a hacer clic en Placa. Si hago clic en R en mi teclado, podemos ver en realidad
que estoy recibiendo un error. Permítanme que le eche un
vistazo a lo que está pasando aquí ahora mismo. Es sólo decir
que la época es ésta. Si acabo de escribir spam
R aquí y
lo dejo, en realidad me va a
mostrar la época en que el arma equipada no
es válida. En realidad, necesito tener
esto para que sea válido primero, déjame arrastrar todo esto. Déjame tomar el arma equipada, clic
derecho, convertir
a un get validado. Déjame conectar esto. Nos aseguramos de que el arma
sea válida antes de hacer todo esto porque cuando no
hayamos saqueado nada antes, si presionamos R, no
será válida Ahora ya no estamos recibiendo
este bicho. Vayamos a una de
las armas ahora. Si presiono R ahora voy a recargar porque
tengo MO completo Pero si disparo uno y recargo, entonces puedo seguir adelante y
recargar así así Y va a calcular
el MO correctamente. Ahora se puede ver que debería
decir 39, eso es correcto. Y si disparo a cuatro
de ellos y me vuelvo a cargar, debería decir 35 como el MO
extra correcto Ahora cada vez que disparo
todas mis balas, digamos si
calcula correctamente. Ahora déjame disparar a
tres de ellos y recargar. Debería decir 12,
eso es correcto. Ahora digamos que vuelvo a cargar aquí cada vez que tengo
cinco, Solo di 170 Eso también es correcto.
Ahora si les disparo a todos, no
se va a recargar Y si hago clic en R, ahora se va a recargar Hay esta última condición
que tenemos que verificar. Tenemos que verificar
si tenemos mes extra. Esto también tiene mo extra
antes de que podamos recargar. Ahora toda la caja está arreglada. Ahora bien, no podemos
recargar siempre que
tengamos cero balas en
las magas adicionales Voy a mover este pedacito hacia abajo. Voy a reorganizar esto un poco más tarde cuando
terminemos con la sección Así que vamos a guardar todo y pasemos
al siguiente.
150. 10.21 recarga armas en el cambio de armas: Bien, entonces la cosa es que ahora mismo queremos recargar también, siempre que estemos en
el cambio de arma Entonces ahora puedes ver
aquí si tengo cero balas y
cambio mi arma, déjame
coger rápidamente una pistola y cambiarla. Ahora puedes ver
si vuelvo a cambiar, esta es la animación pick up. No es la recarga ahora mismo. Estoy tratando de disparar
y no puedo disparar. Estoy tratando de recargar
y no puedo recargar. Esto se debe a que aquí cuando
recargamos el arma, realidad
estamos
configurando la recarga para que sea cierta cada vez que recarguemos No obstante, si cancelamos
la animación, tocamos el montaje de animación Sin embargo, en realidad
no lo estamos completando. Esto nunca se establecerá en falso. Es por eso que en realidad está
molestando de alguna manera. Cuando cambiamos el arma, necesitamos configurarla en false
y recargarla automáticamente De hecho podemos hacer eso
en el arma equipada. Siempre que saqueamos un arma, estamos configurando que este conjunto es un arma de
equipo para que sea verdad También lo estamos haciendo siempre que lo
equipamos manualmente. No sólo
recogerlo, también estamos configurando este conjunto está
equipado arma. Recuerden que hicimos
este aquí abajo. Déjame hacer clic aquí, Ocultar pines
desconectados.
Lo estamos haciendo aquí. Siempre que pongamos el arma
equipada y terminamos de
equipar el arma Sigamos adelante y
hagamos eso
Recarga automática cada vez que se nos acabe más automáticamente Digamos que la recarga
es falsa porque necesitamos establecerla en false siempre que el jugador esté
cambiando realmente el, el arma durante
la animación de
recarga Siempre que terminemos de
equipar el arma, automáticamente
vamos a
establecer la recarga También vamos a
recargar el arma. El conjunto se está recargando. Siempre que no
tengamos más MO, lo que tenemos que verificar
es que tenemos que decir es que
el jugador está fuera de MO y ¿
el jugador tiene MO extra? Porque si no
tienes MO extra, no tiene sentido recargar Necesitamos a esos dos y necesitamos
hacer una sucursal también. Después de eso podemos
seguir adelante y recargar. Antes de eso no podemos recargar, necesitamos establecer la
recarga para que sea cierta Si no tenemos eso, no
vamos a
recargar ni hacer ninguna, solo asegúrate de que la
recarga esté establecida Porque cuando lo interrumpes
aquí a través de la recarga, cuando interrumpes el montaje, nunca
vas
a poner esto a caídas y tu código
se va a reventar. Ahora esto está arreglado,
probémoslo. Tratemos de jugar aquí
como el terrorista. Voy a recoger los cuatro
y voy a seguir adelante y disparar si ahora cambio
el arma. Ahora recuerda que la
primera animación
que va a reproducir es
la animación equipar. No la recarga entonces necesita
recargar así como así. Ahora
se recarga automáticamente cada vez que no
me
quedan balas cuando lo cambio. Bien, como pueden
ver, ahora recargo. Yo cambio el arma
y la vuelvo a cambiar. Ahora puedo presionar R y en realidad
es recargas. No se desinfla,
igual que antes. Vamos a probarlo.
Vamos a intentarlo de nuevo. Si tenemos, tenemos cero
balas y cambio de arma, no
debería recargarse
y no se recarga Ahora todo está
funcionando perfectamente.
151. 10.22 agrega disparo de pistola: Hasta el momento hemos estado trabajando
con el rifle y ahora vamos a seguir adelante y hacer
el disparo con pistola ahora. Esto es muy fácil porque ya
tenemos la configuración hecha. Vamos a la
base de jugadores dentro de aquí. Lo que estamos haciendo ahora mismo
aquí en el arma de disparo, cuando estamos disparando el arma, simplemente
vamos adelante
aquí y jugando el,
el temporizador está haciendo un bucle del código
y estamos disparando el rifle Ahora cuando tenemos una pistola
que queremos disparar, no
queremos este temporizador porque no queremos
hacer bucle a todo esto. Sólo queremos disparar un
disparo porque es una pistola. Por supuesto, si tienes
una pistola automática, puedes simplemente
volver a usar este sistema porque es
una pistola automática. No obstante, es sólo una pistola y solo
quiero disparar una bala. No quiero ejecutar este temporizador. Lo que podemos hacer aquí
es que en realidad podemos, a partir de esta, puedes
tomar el tipo de arma aquí. Ya tenemos el tipo de arma. Lo que puedes hacer es arrastrar desde aquí y decir encender enumeración. Podemos ver con qué tipo de arma estamos disparando actualmente. Puedes salir y
conectarte. Cuando estamos disparando con un rifle, queremos tocar este temporizador. Cuando estamos disparando
con una pistola, no
queremos hacer
nada porque recuerden que ya estamos
disparando una bala. Ya estamos ejecutando
todo este código aquí. Ya estamos
manejando todo esto aquí con este disparo
inicial de arma, porque lo hemos llamado aquí. En realidad, estás acabado,
creo . Vamos a hacer clic en play. Entonces eso fue muy fácil si
solo hacemos clic, probémoslo para
el cliente aquí. Ahora puedo ver aquí, ya no
puedo disparar. Sólo estoy disparando una
bala. Yo creo que es. Porque aquí estamos configurando
esto, podemos volver a disparar. Estamos cerrando éste. Estamos haciendo este código una vez y cada vez que
disparamos una bala, en realidad no estamos haciendo más. Esto se debe a que aquí
cuando es falso, recuerden que ya pusimos
el arma de disparo en falso. ¿Por qué vuelve a hacer esta toma? Intenta responderla
tú mismo si puedes. Sin mi ayuda. Ahora, te
puedo dar la respuesta. El problema es que ahora mismo es
que nunca entramos en este temporizador. Este nunca será válido. Aquí. Estamos preguntando,
¿esto es válido? Eso va a ser falso porque nunca
hemos ejecutado este temporizador. Ahora, corriendo la pistola para
realmente aquí desde las cataratas, necesario conectarla
para poder disparar de nuevo. Y voy a hacer algunas notas de Mirarte y
ahora debería funcionar Si
compilo ahora y hago clic en play y selecciono terrorista de nuevo
y cojo mi pistola Ahora puedes ver que en realidad puedo
disparar mi pistola sin ningún problema y todo está funcionando como se supone que debe hacerlo.
152. 10.23 Detén tu VFX en el cambio de armas: Pero ahora tenemos un problema. Si juego como servidor, por ejemplo, en realidad
vamos a jugar como cliente. Si juego como el cliente, puedes ver, intenta echarme
un vistazo aquí
en el servidor uno. Se puede ver aquí,
se puede ver cuando disparo
y me cambio de arma. Si solo disparo
y cambio de arma, en realidad
puedo disparar el
arma todavía en el suelo. Y el destello del hocico
está al lado de mi pierna. Y mira que se ve muy raro. Gato dispara mi arma y cambia y se ve
así y todo está
como desconectado. En realidad, tenemos que
dejar de disparar cada vez que cambiamos el arma porque no queremos hacer eso. Sigamos adelante y
cerrémoslo. Lo primero que
quiero hacer aquí en el arma caliente ahora mismo, estamos cancelando el arma caliente cada vez que soltamos el botón
del mouse No obstante, también quiero
cancelarlo siempre que esto no sea cierto. Siempre que estemos recargando
o equipando una nueva arma, o vamos al estado desarmado, en realidad
quiero dejar de
disparar Vamos a copiar esta. Pégalo. Vamos a conectarlo con éste. Aquí, déjame alejar esto
un poco. Y aquí está. Estamos cancelando el arma de disparo siempre que uno de
esos no sea cierto, realidad
podemos seguir adelante y hacer clic en reproducir y ver
cómo se ve De nuevo, voy a
jugar como cliente, y voy a
echar un vistazo aquí en mi pantalla grande para ver
cómo se ve. Entonces, si solo disparo y cambio, ahora sí se detiene. Sin embargo se puede ver que
todavía hay un flash de hocico jugando Cuando me cambio, se puede
ver en el suelo. No se registra demasiado rápido. Si disparo y cambio,
puedes ver que sigue jugando, ese hocico
parpadea en el suelo que todavía parece
buggy en el juego Así que tenemos que arreglarlo. Bien, hagámoslo aquí. Si encontramos el flash del hocico, voy a limpiar todo
esto después de esta sección Necesitamos tener esto
limpio antes continuar así que
en realidad es más fácil trabajar con el flash de hocico es aquí
abajo donde toco
el efecto de sonido también Aquí para el flash de hocico, en realidad
voy
a escribir click y promocionar este emisor
que creamos a
una variable y vamos a llamarlo emisor de bozal Vamos a conectarlo aquí De nuevo, sólo
voy a tocar
el sonido solo para ver cómo es
con el sonido también. Vamos a compilar, bien, ahora tenemos este flash de hocico Ahora tenemos que detener este destello de
hocico en algún momento. Tenemos que encontrar un
temprano aquí en el código. ¿Cuándo podemos cancelar este flash de hocico desde el principio dentro del código
para que sea un libro de nueces? A lo mejor cuando estamos
equipando el arma. Si sólo voy aquí arriba y tratamos de encontrar arma
de equipo aquí, cuando vamos a cambiar
el arma por aquí, realmente no lo hacemos. Porque aquí para el arma
equipada, estás tratando de buscar
el arma en el inventario. Si no lo tienes
en el inventario, si esto es falso, en
realidad no estás haciendo nada. Realmente no tiene
sentido detener el destello del hocico si
no tienes nada en el inventario y no
vas a cambiar el arma aquí en
el arma Quip Creo que lo haré
aquí cada vez que realmente encuentre el
arma en mi inventario porque ahora mi
personaje está cambiando a otra arma aquí. Quiero tomar mi emisor
flash bozal y
voy a hacer click derecho y decir
convertir a un get validado Entonces voy a
conectarlo aquí. Si es válido, permítanme simplemente alejar un poco todo este código
para que pueda trabajar aquí. Siempre que sea válido, voy a arrastrar y
decir destruir componentes, Destruir un componente y
luego voy a continuar. No obstante, si no es válido, sólo
quiero continuar. No quiero
destruir nada. Si no es válido,
sólo tienes que seguir adelante y continuar con lo que
hayas hecho antes. Sigamos adelante y echemos un vistazo
aquí a la carne del hocico. Lo que voy a hacer es que
voy a tomar esto aquí. Antes de hacer eso, en realidad
aquí también podemos decir que no puedes hacer esto siempre que estés
equipando el arma Siempre que lo estés
equipando aquí arriba. Cuando decimos set equipar
arma es equipar arma, tenemos que dejar de
disparar también Si solo cojo esta arma, si la encuentro aquí, esta. Y puedo tomarlo
y colocarlo aquí. Y otra vez, bien, no tire
adentro y puedo conectarlo. Si no estás
equipando
también el arma , puedes
seguir adelante y disparar Voy a copiar todo
esto y voy a
pegarlo justo antes
del lugar emisor De hecho voy a hacerlo,
antes de hacer todo esto, voy a comprobar si
todavía puedes hacer esto. Todo bien. Lo que también tenemos
que hacer aquí, creo. Vamos a subir aquí en el
arma que se encuentra en el inventario. Porque cuando encuentras un
arma en el inventario, ya
no quieres jugar el flash del
hocico aquí. También podemos verificar antes de tocar el emisor y podemos evitarlo. Podemos tomar esta arma encontrada en inventario y ponerla
aquí, consíguela aquí. También, lo configuré para replicarlo. No se replicó. Lo configuré para replicarlo porque recuerda ahora
estamos en el cliente, estamos en la multidifusión, y esto también lo
usa el Hay que replicar
la variable para que el cliente
sepa de qué estamos hablando Déjame solo escribir lingotes, siempre que no se
encuentre en el inventario, podemos seguir adelante y disparar
o jugar a este emisor, sin embargo se encuentra
en el Creo que esto es un salvavidas
para nosotros porque está jugando desde el principio cada vez que
estamos cambiando de arma Esta es la primera variable
que se está cambiando. Está cogiendo esto desde el principio y no tocará el flash
del hocico Ojalá, necesitamos probar constantemente porque
realmente no sabemos antes de probar,
juguemos como
servidor ahora mismo,
en realidad, juguemos como el cliente. Como cliente
aquí arriba, déjame jugar. Ahora voy a echar un vistazo
aquí en mi servidor otra vez. Si disparo como
cliente y cambio, traté de hacerlo un par
de veces, eso fue todo. Hay muchos cheques
que estamos haciendo. Esto es necesario para no
jugar ese efecto de error. Ahora no está
afectando realmente el juego, sin embargo, todavía lo está
afectando visualmente. No afectando el
daño ni nada porque esto
en realidad no se juega. Esto se detiene desde el principio. En realidad no estamos
dañando al jugador. Recuerda, estamos creando
el daño del jugador después de la carrera de línea. Es solo un error visual del
que nos deshicimos. Bien, sigamos adelante
y compilemos todo. Vamos a guardar todo y
pasemos al siguiente.
153. Animación de tiroteo en 10.24: Ahora necesitamos una animación de tiro porque ahora mismo el
jugador está estático. Siempre que filmemos,
agreguemos una animación. Vamos a los activos
y animaciones. Y aquí están todas las
animaciones que creamos antes. Si solo buscas tomas y creo que en realidad
se llama fuego. Si solo busca fuego, se
puede ver
pistola de fuego y rifle de fuego. Estas son las animaciones
que podemos usar para agregar siempre que el jugador
esté disparando el arma. Para estos dos, voy
a llevarlos a los dos. No creo que necesitemos la C, tal vez lo hagamos más tarde. No estoy seguro
ahora mismo. Pero vamos a usar estos por ahora. Y volvamos a
esos si los necesitamos. Vamos a hacer clic derecho aquí, ir a Crear y crear un
montaje de animación igual que antes Para estos dos aquí, ahora hemos creado dos montajes de
animación Voy a renombrarlos, Quitar montaje del final Al principio,
voy a llamarlo como prefijo solo para mantenerme consistente con nuestro código
actual en este momento. Que esto y llame a este
otro 11 también. Si solo busco para poder
ver los montajes de animación. Puedo hacer click en la pistola primero. Esto es una recarga.
Estoy pinchando en el fuego de pistola,
es este de aquí. Y lo que podamos hacer aquí de nuevo, que cambiar la
ranura a la parte superior del cuerpo, igual que lo que hicimos antes. Nombre de ranura, parte superior del cuerpo así. Y vamos a cerrarlo. Y abramos también
el rifle. Cámbialo a la parte superior
del cuerpo, así como así. Bien, y guarda todo ahora. Vamos a cerrarlo. Bien, lo que tenemos que
hacer ahora mismo, tenemos que reproducir esta animación. Siempre que disparemos el arma, necesitamos nuevamente
agregarla a nuestra estructura. Volvamos a los planos. Voy a quitar esta palabra de
búsqueda para que podamos ver. Voy a ir a estructuras y abrir la información de armas. Lo que podemos hacer aquí,
podemos agregar una variable llamada shoot animation para esta. Ahora puedes tener una animación de
disparo diferente para cada arma.
Esto es genial. Todo está personalizado en
esta animación de disparos de juegos. Y voy a tenerlo justo después de la recarga o
justo antes de la recarga Equipar, disparar, Recargar. Bien, sigamos adelante y
compilemos o simplemente guardemos aquí. Vamos a abrir nuestra tabla de datos. Una vez más, aquí dentro
de nuestra tabla de datos. Una vez más, pasemos
aquí a la animación de equipar. Permítanme agregar uno nuevo a la derecha y llamar a este
rodaje animación. Ahora podemos minimizar
esto aquí en el juego. Y volvamos a encontrar nuestro
montaje. Si busco uno y me llevo este rifle de fuego
copia la referencia. Y déjame volver
a la tabla de datos. Pégalo para el AK y M
cuatro, estos son los dos primeros. Después vuelvo y
copio la referencia
para el montaje de animación de puño Copia la referencia,
vuelvo aquí y la
pego para el disparo con pistola.
Bien, eso fue todo. Sigamos adelante y haga clic en
archivo, descargue archivo CSV. Vamos a abrirlo aquí. Voy a volver a cambiarle el nombre
igual que antes. Renombrarlo T Información de arma. Y ya tengo uno aquí, así que en realidad voy
a copiar este. Eliminarlo aquí, y
cambiar el nombre de éste. Ahora volvamos a nuestro juego. Vamos a planos, tablas de
datos dentro de aquí De nuevo, voy a
cerrar esto aquí. Puede arrastrar esta tabla de
datos aquí. Y ahora está actualizado. Bien, vayamos al código
ahora y lo codifiquemos en la base de jugadores dentro
de aquí cada vez que disparemos. En realidad también está aquí si
simplemente arrastramos todo esto lejos. Así que vamos a reproducir
la animación junto con tocar el
flash de boca y el efecto de sonido porque sigue siendo
solo una animación Y necesitamos
reproducirlo en una multidifusión porque todos los jugadores
necesitan ver esa animación Tomemos de nuevo la malla. Una vez más, digamos montaje. Y podemos tocar este montaje, y sigamos adelante y
conectemos todo Y ahora lo que podemos hacer
también aquí para que juegue el
montaje Ahora lo tenemos de
la tabla de datos. Déjame copiar todo esto. Pégalo aquí abajo,
y déjame esconder alfileres
desconectados para el arma Ahora no tenemos realmente una
referencia para el arma. Esta no es la clase de armas, en realidad es solo
la malla de armas. Se puede ver aquí.
Si recuerdas, si volvemos al arma caliente, echamos un vistazo aquí al canal
del servidor, arma Esta es la malla de armas. Esta es la malla esquelética. Recuerden, esta no es la clase de
planos en sí. Esta es la clase de planos. Esta es la malla esquelética. Y la malla esquelética es la
que estamos enchufando
al arma aquí Esta es en realidad
la malla esquelética. No es la
clase de planos en sí. Necesitamos la cláusula blueprint
porque no es realmente la malla esquelética que ponemos dentro
de aquí. Es éste. Para que veas si arrastro de todo el camino hasta aquí
y lo enchufar aquí, puedes ver que encaja entre sí. Lo que tenemos que hacer aquí
para optimizarlo mejor. De hecho voy a
cambiarlo si hacemos clic en la multidifusión y
si hacemos clic en el Plus y
buscamos la base de armas Y elegimos la base de armas, solo
vamos a
llamar a esta vieja, así que en realidad puedo cambiarle el nombre
a arma. Recordamos compilar primero
antes de que puedas hacer eso. Ahora se llama Arma, y ahora podemos seguir adelante
y conectarla aquí. Ahora podemos ver que funciona, bien. Ahora todo esto
realmente tiene que estar aquí porque ya tengo
esta referencia de arma. Ahora realmente puedes obtener
toda esta información aquí para este efecto V que
has conectado aquí. Recuerda que este es el rodaje, tienes el efecto de
sonido de disparo y tienes el flash de boca Y puedes conectar el
flash del hocico a este de aquí. Y puedes conectar el efecto de
sonido de disparo a este aquí. También puedes conectar la animación de rodaje
que acabamos de hacer aquí. Realmente no necesitas también el arma, Podemos
obtenerla de aquí. Si solo arrastras desde aquí y buscas variable arma, esta es la malla esquelética También puedes conectarlo aquí. Entonces puedo ver que todo
esto en realidad es inútil. Para que podamos eliminar éste, y éste, y éste
y salir y compilar. Tenemos muchos errores porque
ahora no los estamos usando. Sigamos adelante y
eliminemos todo esto. En realidad vamos
a eliminar esto haciendo clic en el
botón Alt en el teclado. Y dando click aquí, dando click
aquí, dando click aquí. Y voy a quitar
este nodo de reencaminamiento,
eliminar estos, dar clic aquí,
ocultar Ahora necesitamos una referencia
al arma. Es esta arma de aquí arriba. Sólo puedo hacer clic
y arrastrar por ahora. Voy a hacerlo
mucho más limpio después. Así que vamos a compilar por ahora. Ahora esta
arma de disparo es correcta. Bien, realmente no
tenemos más referencias ahora para asegurarnos si tengo más
referencias a esto o no. Solo para asegurarme de que no
estoy molestando, puedo escribir, dar clic
y encontrar referencias Y se puede ver que
ya sea aquí o aquí. No tengo más
referencias que esto. Bien, entonces ahora todo está bien. Y ahora también hemos conectado
la animación de rodaje. Y no quiero
tocarlo cuando esté completo, como lo que hicimos antes. Recuerden los otros montajes que hemos creado antes.
Por ejemplo, éste. Realizamos este evento aquí cada vez que completamos
el montaje de animación Ahora para el arma de tiro, solo
quiero tocarla y
luego continuar con mi código. No quiero esperar a
que esté completo antes de
tocar mi efecto
aquí. Esto está bien. Compilemos y
guardemos todo ahora. Debería reproducir la animación. Si hacemos clic en play, déjame jugar en
el servidor ahora mismo, y selecciono terrorista. Voy aquí y solo
disparo una bala. Se puede ver que en realidad está
reproduciendo la animación. Ahora sí tenemos un error. Ahora si miro hacia abajo, se
puede ver que está reproduciendo la animación aquí
en el centro de la pantalla. Se puede ver que va al centro de la pantalla
cada vez que disparo, lo cual es muy raro
y necesitamos
cambiar eso también la
animación es realmente lenta. Voy a ir a los bienes y buscar de nuevo a Anim uno. Voy a abrir la pistola
aquí para la animación de rodaje
para la escala de tarifas. Entonces, qué tan rápido
va a correr esta animación. Voy a cambiarlo a tres. Creo que quiero
disparar mucho más rápido. También para el rifle, voy a cambiarlo
a escala de tres tipos. Dispara mucho más rápido. Bien, ahora vamos a arreglarlo. En realidad, esto también está afectando la recarga y no sé por qué no lo noté antes Creo que estaba ocupado solo hablando y grabando
y mostrándote. Pero si solo recargas, ves que esta es la
animación de recarga que tenemos hasta ahora Sin embargo, no se está recargando correctamente porque si
miro hacia abajo y recargo, realidad
está mirando de nuevo
en el medio y recargando igual que este problema de
disparo que
tenemos ahora Bien, tenemos que arreglar esto ahora. Déjame seguir adelante y
desconectar el sonido otra vez, solo para que no sea molesto
dentro de este curso. Déjame simplemente desconectar el sonido de disparo
y compilar ahora. Sigamos adelante y abramos el plano de
animación. Porque el problema está
ahí ahora mismo. El problema es que para el plano de
animación es esta animación de la parte superior del cuerpo
y en capas por hueso De hecho, necesitamos jugar
esto antes del desplazamiento de objetivo. El desplazamiento de objetivo, recuerden, es el offset donde
aquí como jugador, miro hacia arriba y hacia abajo con mi arma y el
movimiento así. Necesitamos reproducir esta animación de la parte superior del cuerpo antes del desplazamiento de puntería para que
pueda mezclarse. Este es el problema ahora mismo, lo que puedo hacer aquí,
vamos por aquí. Empecemos con una
pistola ahora mismo aquí para esta
máquina de estado en caché Permítanme borrar este movimiento de
pistola por ahora. Déjame tomar esta capa por
hueso y pegarla aquí. Ahora recuerda usar el caché de máquina de estado de
pistola. Tenemos la
máquina de estado en caché. Si lo encuentro,
tenemos esta máquina de estado caché y también tenemos
el movimiento en sí Tenemos la
máquina de estado en caché y movimiento en caché por aquí Estamos usando la
máquina del estado ahora mismo. Déjame copiar y pegarlo aquí
abajo también. Esto es solo para la pistola y hagámoslo también por
el rifle. Permítanme simplemente borrar esto, clip esto y pegarlo aquí. Déjame tomar esta
máquina estatal para el rifle, recuerda que es la máquina estatal. Y copiar y pegarlo aquí
abajo también. Y adelante y
conéctalo aquí arriba. Bien, así que eso fue en realidad, vamos a copiar y pegar esto.
Copiemos todo esto. Voy a borrar
esto aquí abajo. Voy a pegarlo. Y voy a
conectarlo aquí también. Hagámoslo aquí arriba también. Vamos a copiar la pistola una
pistola máquina estatal. Déjame borrarlo aquí abajo. Déjame copiar o simplemente
conectar esto aquí arriba. Pegar conectado aquí también. Ahora estamos jugando la mezcla
en capas por hueso. Antes de jugar el offset de puntería, esa será la solución
correcta. Ahora estamos guardando
todo esto en
el movimiento de pistola guardado en caché y
el movimiento del rifle en caché Podemos seguir adelante aquí
igual que antes, clic
derecho y
buscar caché. Puedes conectar el
movimiento de la pistola, clic
derecho, buscar caché. Toma el movimiento del rifle caché y sigue adelante
y conéctalo ahora También es mucho más
limpio que antes y pueden ellos juntos así. Y vamos a compilar y
vamos a comprobar si esto funciona o si tenemos alguna caja
que necesitamos cuidar. Vamos a hacer clic en jugar aquí
como el terrorista. Ahora cuando muestro, si miro hacia abajo,
se puede ver que está funcionando. Yo también disparo.
Disparo en el medio. Está funcionando también
para la recarga. Ahora podemos recargar
mientras miramos hacia abajo. No tiene que ir
aquí a la mitad. Si disparo, vuelvo
a cargar, puedo hacer eso. Si solo tomo una, si
abro a este otro tipo, le echo un vistazo a ese tipo de aquí. Para que pueda ver la animación. Recojo la K como
puedes ver aquí, disparando. Puedo recargar
incluso buscando aquí arriba O si miro hacia abajo, puedo recargar
también. Puedo disparar. Y puedes ver mi animación de
rodaje. Si me acerco aquí, puedes ver mi animación de
rodaje. Y lo mismo aquí,
si juego como servidor. Echas un vistazo
aquí como cliente. Si solo maximizo esto. Para que veas
minimizo un poco esto. Aquí, estoy echando un
vistazo al servidor y el
servidor ahora está filmando. También lo es, se puede ver
la animación de rodaje. Yo también puedo recargar desde aquí
arriba. Puedo recargar mientras
miré hacia abajo también. Ahora está funcionando bien y se
están mezclando.
154. SFX sin munición de 10.25: Para esta lección, quiero
mostrarte cómo puedes tocar un efecto de sonido cada vez que
estés fuera de MO. Siempre que te quedes fuera de MO, escuchas este
sonido de clic del rifle. Puedes intentar
implementarlo tú mismo, creo que puedes, si
solo le echas un buen vistazo. No obstante, si no estás seguro,
sigamos adelante y
hagámoslo juntos. Sigamos adelante y abramos al jugador siempre
que guarde aquí. Vamos a abrir la
base de jugadores dentro de aquí. Nuevamente, necesitamos
usar esta multidifusión. Sin embargo, me voy, voy
a agregar un matón
aquí diciendo que tiene mo Siempre que tengamos MO, podemos jugar todo esto. Si solo arrastro y escribo aquí
una rama como esta, siempre que
tengamos MO, vamos a tocar todo esto como lo que
hemos hecho antes. No obstante, si no tenemos Mo, quiero tocar
otro efecto de sonido. Quiero tomar este sonido puede sólo desde
aquí y decir ubicación. ¿Qué sonido
quieres tocar ahora? Tenemos que agregarlo una vez más a la
estructura. En cuanto a la ubicación,
ya tenemos la ubicación. Podemos simplemente enchufarlo aquí y compilarlo ahora para la estructura. Sigamos adelante y
abramos la estructura, y hagamos una nueva variable. Podemos simplemente llamar a esto
de M efecto de sonido. Cambiemos esto a un sonido,
adelante y selecciónelo. Y adelante y ahorra. Creo que lo voy a mover hasta donde está bajo el efecto de sonido de
disparo. Todos los
efectos de sonido están juntos. Vamos a guardar todo
una vez más, abramos la tabla de datos. Vayamos a la derecha aquí
al final aquí después del efecto de sonido de
disparo. Voy a hacer click derecho
y agregar uno a la derecha. Entonces podemos decir fuera de
MSX y dentro de aquí, vamos a copiar la referencia En este momento no
tenemos ninguna referencia porque aún no hemos
importado nada. Vamos a la carpeta
de audio aquí. Abre los efectos de sonido. Si vas a los materiales de
causa, he incluido para
ti algo de audio. Si abres este audio y yo
he incluido esto fuera de MO, si solo hago esto
más grande con M K 47, MO para uno y
con pistola MO. Y selecciona los tres.
Haga clic y arrástralos al navegador de contenido. Dentro de aquí, seleccione
los tres
clic derecho y cree múltiples señales. Una vez más, voy a renombrarlos a todos solo
para mantenerme consistentes, les
renombramos S C como
prefijo para Sound. También voy a hacer eso
por la pistola aquí. Hagámoslo para el último. El último es el K 47. Llamémoslo Sonido al principio así
como así. Bien. Voy a
abrir el AK 4071. También voy a
abrir la pistola y voy a
abrir las cuatro. Quiero reducir el sonido
porque probablemente sea muy ruidoso para mí. Voy a ponerlo
a 0.2 también para
que no te
moleste en este curso. Así que
ahora puedo oírlo. Se trata de los efectos de sonido fuera de
MO. Ahora vamos a cerrarlo y
copiemos las referencias. Hagamos clic derecho en la referencia de copia
AK. Voy a volver a mi tabla de datos para la K,
esta es la primera. Va a pegarlo para los cuatro, haga clic
derecho en referencia
más allá de la pistola, haga clic
derecho p referencia
y péguela aquí también. Descarga de archivos, descarga,
CSV, igual que antes. Abre la carpeta de descargas. Y dentro de aquí,
una vez más voy a borrar el viejo,
pegarlo en el nuevo, cambiarle el nombre y ir a tablas de datos y arrastrarlo hasta
aquí se actualiza, y vamos a guardar todo. Bien, volvamos
al jugador y
abramos la base de jugadores. Ahora para éste, ahora
tenemos esto aquí. Lo que podemos hacer, podemos usar
esto fuera de M efectos de sonido. Sólo voy a arrastrar esto aquí de vuelta porque en realidad
no necesitamos copiar y pegar esto. Una vez más voy a hacer re escribí notas
para todo esto. De hecho, es mejor
mirar dentro de una o
dos lecciones aquí. Lo que podemos hacer es salir
del efecto de sonido MO, podemos arrastrarlo hasta aquí. Ahora va a
reproducir el efecto de sonido siempre que no tengamos MO. Ahora no estamos completamente terminados
porque en realidad también necesitamos definir
cuándo tenemos MO o no. Aquí en el arma MC disparar. Tenemos que tomar esto,
recuerda hacer esto cierto. Este es el
código normal que tenemos. Y ya tenemos MO aquí
cada vez que estamos filmando. Porque básicamente estamos echando un vistazo aquí si estamos fuera de MO o no y todas esas cosas aquí aquí. Y eso
va a ser correcto. Ahora, siempre que no tengamos MO, siempre que esto sea realmente falso, intentemos hacer algo de código aquí. Déjame solo mover
esto un poco hacia arriba. Déjame copiar y pegar esto. Déjame mover esto
un poco hacia abajo también, solo para que tengamos algo de
espacio para trabajar. Ahora para este,
vamos a conectarnos aquí. Tenemos que hacer el código
para el arma Otra vez, voy a romper la misma arma desde
aquí arriba, arrastrarla hasta aquí. Y para la ubicación,
es la misma ubicación. Y para el Mo, ahora tenemos que asegurarnos de que tenemos
a Mo, porque no queremos simplemente
tocar esto cada vez que bajemos por aquí. Básicamente lo que
quieres comprobar, queremos reproducir este sonido. Siempre que tengas cero balas, cero balas en el Mac y cero balas en
las balas adicionales, realidad
podemos usar las balas
adicionales para verificar. Aquí creo que ya tenemos
una función. Este tiene Mo extra, en realidad
podemos usar este. Podemos seguir adelante y decir
si tienes X Ramo, vas a seguir adelante
y jugarlo con normalidad. Si no tienes Ramo, puedes seguir adelante y reproducir el efecto de
sonido siempre que tenga MO
extra es falso entonces
podemos seguir adelante y reproducir este efecto de sonido de
disparo. Donde estemos fuera de esto
debería arreglarlo todo. Vamos a compilar y
vamos a hacer clic en play. Aquí quiero jugar como los terroristas simplemente siguen
disparando mis armas. Voy a seguir filmando
y saltarme el video. Bien, ahora estoy en
las balas finales. Y si sigo
disparando y alcanzo, si llego a cero balas, voy a tocar esto
fuera de efecto sonoro. Y se oye,
no tengo balas. Si solo cambio aquí y toco los otros efectos de sonido,
mira que es normal. Porque recuerden, he desconectado
el efecto de sonido ahora mismo
he desconectado
el efecto de sonido
para el rodaje. Si llego a cero balas, se
oye que
tengo cero balas. Entonces así es como podemos hacerlo. Vamos a compilar y guardar todo
como antes de continuar. Ahora, en realidad voy
a limpiar todo esto
antes de continuar porque
parece un desastre. Y también es cómo
seguir este curso. Déjame compilar
en mi tiempo libre. Yo sólo voy a
organizar todo esto, así que es mucho mejor a la vista. Sólo tienes que seguir adelante y crear, redirigir notas, crear
comentarios y todo eso Te veré en la siguiente.
155. 10.26 Bullet Impact VFX y SFX: Bien, así que todo
se ve bien hasta ahora. Creo que nos faltan
algunos efectos visuales y efectos sonido para cuando la
bala golpea algo. Ahora mismo cuando estamos
jugando y tomo, por
ejemplo, los cuatro
y trato de rodar aquí, Ahora estoy pegando esta parte aquí, pero realmente no vemos ningún efecto visual en
la parte que estamos pegando, y creo que se
verá mucho mejor. Sigamos adelante y agreguemos eso. Puedes intentar editarte
porque creo que puedes, si intentas pensar mucho más, hagámoslo juntos. Vayamos aquí en
la base de jugadores. Al igual que antes, necesitamos
crear una multidifusión. Ahora podemos integrarlo
aquí y agregar más variables, pero creo que se va a
poner un poco desordenado Entonces necesitamos crear uno nuevo. Como pueden ver, he
organizado esto aquí, como pueden ver, y
les voy a enseñar solo esto un poco. Aquí tenemos el gráfico de eventos. Tenemos el movimiento básico del
personaje que hicimos y terminamos. Y en realidad no
lo hemos tocado desde hace mucho tiempo en estos momentos. Por cierto, he agregado las funciones a
diferentes gráficas. Esto se debe a que si creas mucho código dentro de una gráfica, en realidad empieza
a
hacerlo, tal vez
ya puedas sentirlo en tu
computadora. Comienza a. Cuando miras a tu alrededor dentro
de aquí, qué puedes hacer, por ejemplo, digamos que quería esta agachada específicamente
en otra gráfica Yo solo
controlo x para darle la vuelta aquí, control x
Luego creo una nueva gráfica
llamada, por ejemplo, agacharse. Luego creo una nueva gráfica
llamada, por ejemplo, agacharse Es porque a un evento se le llama agacharse.
Entonces no puedo hacer eso. Vamos a llamarlo
gráfico de eventos agachados o algo así Entonces dentro de aquí, ahora estoy. Dentro de la
gráfica agachada, puedo controlar V, y ahí está,
tengo la Ahora bien, por algunas razones, es posible que tengas funciones
que no se están pegando Déjame simplemente dar click
en el control Z aquí, control Z, control control
Z hasta que esté aquí. A veces lo que
está pasando es si copias algo, digamos que quería copiar
esta parte, controlar X, quería hacer una nueva gráfica, llamarla algo al azar, y luego copiar y pegar. Ahora puedo ver cuando lo pegas, esto aparece y dice que algunas referencias de funciones
no se pudieron resolver en
el nuevo contexto. ¿Te gustaría arreglarlos aquí? Entonces puedes elegir algo. Sin embargo no
quieres hacer nada aquí, solo haz clic en Confirmar. Cuando haces clic en Confirmar, puedes ver que tienes
muchos errores aquí que necesitas corregir. Sin embargo, no
presione en nada. Simplemente puede hacer clic
en Archivo y luego clic en Refrescar todos los Nodos. Y eso arreglará
todo por ti. Así es como se copia y pega código de una
gráfica a otra. Voy a hacer click en
los controles solo para
volver a lo que tenía
antes así. Esto es lo que
hice. Acabo de copiar de aquí e hice una nueva gráfica. Yo hice uno llamado Lot
Equip y Drop Arma. Aquí está mi Lot y
Drop Arma Lógica. Y mi arma Equipar Lógica. También agregué algunos
comentarios para usted. Cuando te doy
el proyecto final, puedes intentar echarle un
vistazo y es mucho mejor verlo
que estar desordenado Como pueden ver aquí, esta es
el arma del lote y así sucesivamente. Sí, eso es
todo. El último gráfico que hice es el arma de disparo
y recarga Éste donde tenemos
la lógica del arma de tiro. Y trato de
organizarlo lo mejor que puedo. Aquí está el
arma de tiro multicast, entonces tengo el
arma de recarga también Y aquí está la lógica para eso. Muchas barreras para
mantenerse organizado, tener múltiples gráficas de eventos. Tenemos el
gráfico de eventos normales con solo el movimiento. No puedes renombrarle este, Este es el predeterminado, no
puedes cambiarle el nombre. No obstante, hice los otros
y los cambié de nombre a Saquear, Equipar, y caer y disparar
arma aquí . Recargar también. Es mucho mejor mantenerse
organizado y podemos encontrarlos mucho mejor más adelante. También crearé
categorías para todos aquellos como te mostré
en la lección anterior. Puedes crear categorías
y agregarlas aquí. Probablemente sea bueno
hacer eso para todas esas y todas tus
funciones también. Eso fuera del camino,
vayamos al rodaje y recarguemos. En el rodaje y recarga aquí
tenemos esta multidifusión donde tocamos el emisor aquí
con el flash Sin embargo, vamos a crear uno
nuevo para el impacto. Hagamos clic derecho, hagamos nuevos eventos personalizados
como antes. Llamemos a este
MC Bullet Impact. Vamos a ejecutarlo a través de una
multidifusión y confiable también. Ahora lo que necesitamos
saber es por supuesto que necesitamos el arma con la
que estamos disparando. También necesitamos la ubicación del golpe. ¿Dónde es que queremos
engendrar a nuestro emisor? Este es el lugar donde estamos golpeando el lugar del golpe para el arma. Es la base de armas. Adelante,
selecciónela y compila. Bien, ¿dónde
quieres tocar esto? Queremos tocar esto
cada vez que disparemos. Esta es la lógica de tiro. Estamos disparando el arma primero, estamos jugando el efecto, y luego estamos jugando
el trazo de línea. Recuerda el trazo de línea, si selecciono el tipo de depuración para que sea persistente para que
puedas ver la línea, esta es la línea cuando estamos disparando, esta es
la traza de línea. Está disparando esta línea. Ahora sabemos dónde
estamos pegando con este rastro de línea después de que en realidad
hayamos golpeado algo. Esto es lo que significa, Bloquear golpe después de que realmente
golpeamos algo. Queremos jugar este efecto. Entonces solo voy a
eliminar este hola por ahora. Juguemos este
impacto de bala MC que acabamos de crear. En este momento tenemos
un poco de problema porque es un golpe de bloqueo. Y aquí también dice que el actor hit tiene
al jugador tecnológico. Ahora mismo, en realidad
solo es jugar esto para los jugadores lo que
necesitamos para arreglarlo. En lugar de
combinarlos, voy a eliminar esto. Tomemos el
golpe de bloqueo aquí y conectémoslo. Hagamos una rama y
sigamos adelante y hagamos eso. Si es el jugador,
puedes hacer algo. Si no es el jugador,
puedes hacer otra cosa. Entonces, en lugar de solo agregar aquí, tenemos que jugar este efecto. Realmente no nos importa si es el jugador el que ha
sido golpeado o no, simplemente
jugamos este efecto de todos modos. Porque si chocas contra una pared, vas a
jugar este efecto. Si golpeas al jugador,
vas a jugar este efecto. Pero realmente no necesitamos
conectarlo después
del jugador aquí. Para que podamos conectarlo
antes que el jugador. Yo sólo le voy a dar
algo de espacio aquí. Podemos agregarlo antes que el jugador. Creo que también necesitamos saber
a quién pegamos. Porque si le pegamos al jugador, queremos jugar sangre en vez de solo alguna calcomanía o alguna
piedra que le pegamos aquí. Para este, voy
a agregar uno nuevo. Vamos a llamarlo hit Actor. Para el exitoso actor, lo
puedes ver aquí. Ahora bien, si estás confundido de qué tipo de variable necesitas agregar,
puedes simplemente subir aquí. Y este actor de éxito. Si
mantienes el mouse sobre él, dice Actor Object Reference. Bajemos aquí, haga clic
en él y cambiemos esto a una referencia de objeto actor aquí. Éste, podemos simplemente ponerlo
por encima de esto aquí y compilar. Bien, ahora tenemos esa
información también. Ahora para el arma,
hay que conectarla. El arma está
aquí arriba, así que solo puedes hacer clic y arrastrarla hasta aquí. Y permítanme crear
algunas
notas de ruta traseras para mantenerme organizado.
Bien, aquí vamos. Ahora lo hemos creado.
Eso está fuera del camino. Lo siguiente es el golpe. El actor hit es solo
esta ubicación de hit si haces clic en la flecha, para que puedas ver todos
los valores, esta es la ubicación que
hemos acertado. Después de que tengamos un golpe de bloqueo, estamos tomando esta ubicación de hit, estamos aplicando
a esta multidifusión Volvamos a minimizar
esto un poco, y aquí lo tenemos. Voy a conectar
esto una vez más. Y después de que golpeemos al jugador, podemos aplicar algún daño. Ahora lo que podemos hacer, sí,
podemos bajar aquí. Ahora. Realmente no tenemos
nada que hacer ahí fuera. Vamos a engendrar emisor
en la ubicación. Vamos a generar
emisor en una ubicación. También vamos a reproducir
sonido en el lugar también. Ahora si quieres tener calcomanías, si has jugado a
Counter Strike antes, sabes que las calcomanías aparecen en la pared. Si
le disparas a la pared. Realmente no tengo
calcomanías en este curso. Sin embargo, si
quieres, puedes de nuevo, simplemente arrastra desde aquí y di calcomanía de
desove en el lugar Esto va a generar calcomanías. Las calcomanías son básicamente
solo imágenes. Los puedes desovar en la pared. Por ejemplo, una imagen de impactos de
bala, puede generar eso a través de
una calcomanía de desove en Ya tenemos la ubicación
aquí para la ubicación, el tamaño de
la calcomanía, puedes hacer 111 por ejemplo, o lo que sea. Aquí podrás volver a
seleccionar la calcomanía dependiendo de lo que
se encuentre en la estructura. Puedes agregar las calcomanías
a la estructura para el arma específica y así sucesivamente, pero realmente no tengo calcomanía, así que vamos a borrarlo Esto será fácil
para ti después de que hayamos hecho en todo esto 100
veces. Vamos a borrarlo. Ahora aquí para este emisor de spawn, ahora necesitamos el emisor, también
necesitamos el Sigamos adelante y hagamos eso. Vamos a guardar todo,
vamos a minimizar esto. Pasemos ahora a la estructura. Ábrelo y aquí
vamos a sumar dos variables. Agreguemos uno llamado VFX de impacto de
bala. Voy a hacer
algo de espacio aquí, realmente no
necesitamos
juntarlos ,
Bullet impact VFX Y también voy a añadir
otro, Bullet impact. X, uno para el efecto de sonido y otro para el efecto visual. Para el efecto visual,
es un sistema de partículas. Y sigue adelante y selecciona eso. Para el siguiente, el
efecto de sonido es una señal de sonido. Y Dios, y selecciona eso
también para el efecto de sonido. Sólo voy a sí, justo después del efecto de sonido de
disparo. Así que solo para mantenerme organizado
y por el efecto visual, solo
voy a moverlo
justo después del destello del hocico Adelante y guarda todo. Y recuerda ahora
necesitamos agregarlo
a la lo que se
llama la tabla de datos. Adelante,
abre tu tabla de datos. Bien, así que aquí estoy,
dentro de mi tabla de datos. Y ahora para estos efectos de impacto de
bala, es después del destello de
hocico aquí Voy a agregar una
columna a la derecha. Voy a llamarlo con
el mismo nombre aquí. Yo sólo puedo copiar y pegar esto. Vamos a un lado
y péguela aquí. El siguiente también los efectos de impacto de
bala después de los efectos de disparo aquí. Agrega una columna a la
derecha y agrégalo aquí. Ahora necesitamos referencias a. Ahora para esos, solo estoy usando los
del mercado. En lugar de
buscarlo en la carpeta, porque no tengo
idea de dónde está, simplemente haga clic en la carpeta
Marketplace y solo busque Impact. Y entonces puedes verlas aquí. Lo que voy a usar es
quizás este llamado
Stone Medium para el efecto de partículas de
impacto. Haga clic derecho y
copie la referencia. Si lo encuentro aquí,
copia la referencia y
puedo pegarla para los efectos bullet. Sólo voy a
pegarlo para todos ellos. Yo solo quiero tener el mismo efecto visual de
impacto de bala para el efecto de sonido. Ahora creo que aquí tenemos
algo llamado el impacto del rifle. Sólo voy a
hacer doble clic en él y reducir el volumen a 0.2 porque
creo que es demasiado alto. Este es en realidad el cuerpo uno, Esto es cuando golpeamos al jugador. De hecho, agreguemos también
eso mientras estamos agregados. Vamos a agregar uno para el jugador. Simplemente
abramos de
nuevo la estructura y agreguemos una nueva variable. Llamémoslo impacto de
bala, impacto de bala,
efectos de jugador para el otro. Agreguemos éste
para el efecto de sonido. Agreguemos uno nuevo. Llámalo efecto de
sonido del jugador de impacto de
bala. Creo que va a ser mucho más interesante
tener a los dos. Busquemos de nuevo el sistema de
partículas. Adelante y
selecciónala para la otra. Sonido Y solo muévalos de
nuevo para el impacto de bala, efecto
visual y
para el efecto de sonido. Bien, ahora están en ello. Sigamos adelante y agréguelos
nuevamente a la tabla de datos. Ábrela y haz
columna aquí a la derecha. Haga una columna aquí a
la derecha también. Este copia pega el nombre, el otro también, copaame Aquí estamos. Ahora podemos agregar un nuevo efecto visual
y un efecto de sonido. Volvamos
otra vez a la carpeta
Marketplace , busquemos calor. Copiemos este Body one, solo
reducimos el
ruido del click derecho. Copia la referencia y
podemos pegarla para el efecto de sonido bullet impact
player aquí. Ahora necesitamos aquella en la
que no le pegamos al jugador. Creo que esta superficie de impacto de
rifle. Adelante y reduce el ruido a 0.2 Juguémoslo y veamos qué
es. Bien, suena bien. Hagamos clic derecho y copiemos la
referencia y péguela aquí. Ahora necesitamos un
jugador de impacto de bala efecto visual en realidad necesitamos algo de sangre. Donde le pegamos al jugador, no
estoy seguro si
tienen uno aquí. A lo mejor puedas buscar sangre. Realmente no tenemos uno aquí. Se puede ver que solo tenemos
esos metálicos. Solo tenemos el impacto en
la piedra y la madera. No obstante, vamos a copiar por ahora
el metálico. Se necesita un poco de
tiempo para entrar aquí en el sistema de partículas y en realidad no es
parte del curso. Esto va a ser un poco demasiado avanzado, toma algún tiempo para hacer. Vamos a copiar la chispa
aquí. Chispa mediana. Hagamos clic derecho y
copiemos la referencia. Y también puedes pegarlos aquí en el
efecto visual para éste. Ahora bien, si realmente
quieres entrar aquí y cambiar algo,
puedes abrirlo. Tal vez puedas hacer clic en
el Color sobre Vivo. Puedes dar click aquí, aquí, esta flecha
y esta constante. Y puedes intentar
jugar con los colores. Siempre se puede tratar de
jugar con él. Hazlo más rojo,
para que el color aquí, sobre la vida, puedas
jugar con el color. Y con las flechas
aquí hazlo más rojo, así que parece sangre. Siempre puedes hacer
eso, o
siempre puedes ir al mercado de Epic
Games también, y descargar algunos sistemas de artículos de
sangre. Hay muchos de ellos
dentro del mercado. Bien, ahora las
hemos sumado. Y volvamos
a la tabla de datos. Y ahora podemos dar click en Archivo y descargar y descargar
el archivo CSV, una vez más aquí en
mi carpeta de descargas. Permítame simplemente cambiar el nombre de esta tabla de
datos una vez más. Y déjame ir a la carpeta de tablas de
datos. Déjame cerrar esto por ahora. Déjame arrastrar la tabla de datos hasta aquí y actualizar todo. Bien, entonces ahora tenemos
eso encerrado. Vamos al
jugador, base de jugadores. Y ahora vamos a
copiar todo esto. Pégalo para que no
tenga que volver a escribirlo. Esto es justo lo que
hemos hecho antes. Arrastremos el arma,
consigamos el nombre del arma, información del
arma desde aquí. Sólo voy a ocultar
los pines desconectados. Lo que necesito de este
es el impacto de bala,
el impacto de bala de efecto, el jugador de efectos y impacto de
bala
y jugador de efectos. Los necesito aquí Y
luego puedo seguir adelante y hacer el efecto partícula
en vez de solo rey, por
ejemplo, el
impacto de bala, los efectos aquí. Siempre podemos preguntar si es el
jugador que hemos golpeado o no. Porque si es el
jugador al que le
hemos pegado, queremos jugar a éste. Lo que podemos hacer es que podemos
tomar de este exitoso actor y decir o no conseguir pero solo
actor tiene etiqueta justo antes. Al igual que lo que hicimos
aquí arriba cuando golpeamos
al jugador aquí. Estamos preguntando si el actor
tiene el tag player, así sabemos que es el jugador. Podemos hacer
lo mismo por aquí, dependiendo de si el actor
tiene el tag player o no, entonces sabemos que es el
jugador al que le hemos pegado o no. Entonces lo que podemos hacer es que podamos
tomar esto y decir seleccionar. Y podemos tomar el nodo select y podemos enchufar esto aquí. Falso, no es el jugador
entonces solo queremos tocar este efecto si
es el jugador, si es cierto, el actor
tiene el tag player. Queremos jugar
este efecto jugador. Ahora va a
jugar un efecto visual dependiendo de si golpeamos
al jugador o no. Bien, genial. Por la ubicación, es la ubicación de golpe, Para la escala de rotación,
todo es igual. Realmente no hay
que cambiar nada. Ahora para el efecto de sonido, estoy
haciendo lo mismo desde aquí. Y decir seleccionar dependiendo de
si es el jugador o no. Aquí, éste. Adelante
y vuelve a conectarlo. Si no es el jugador efecto de sonido
normal, Si es el reproductor, el reproductor de
efectos de sonido igual que para la ubicación
es la ubicación del golpe. Sólo voy a agregar
algunas notas de reencaminamiento y organizar este He añadido algunas notas de
reencaminamiento y voy a guardar Déjame subir aquí y
volver a comprobar que no me he
olvidado de nada Ahora, hemos agregado
esto, hemos agregado el efecto visual y
el efecto de sonido
también aquí arriba en el código cada vez que disparamos y de
hecho
golpeamos algo, vamos a reproducir
el efecto de sonido y también
vamos a
tocar el efecto visual. Y el actor de éxito está bloqueado. El arma también está
bloqueada, y la ubicación del impacto también
está bloqueada. Solo guardemos todo
aquí y pruébalo. Vamos a seleccionar terroristas. Voy a seleccionar los cuatro. Adelante y dispara. escuchar el sonido, si
puedes escuchar el sonido. Impresionante. Bien, permítanme desconectar esta
parte del código aquí para el arma disparada. Sólo voy a desconectar el arma chote
parte del código Sólo puedo escuchar los impactos de bala solo para que pueda ver si
funciona correctamente. Yo sólo voy a tomar
el rodaje de AK aquí. Ahora se puede ver que
en realidad estoy disparando. Puedo ver el impacto. Yo también puedo
escuchar el sonido. Si está lejos, no
puedo escuchar el sonido. Si está cerca, puedes
ver que se está acercando. Se ve mucho mejor. Si quieres hacer que
el impacto sea más grande, siempre
puedes entrar aquí
y aumentar la escala. Algo así como una locura. En realidad se puede
ver la diferencia. La escala ahora es de diez. Puedo
jugar, puedo disparar algo. Y ahora puedes ver lo
loco que en realidad se pone. Ahora puedes ver que esto es, el efecto se ve mal
porque está tan escalado. No obstante, creo que
uno a uno está bien. Si lo deseas, siempre
puedes hacerlo 1.5 así que es un poco
más grande si así lo deseas. Pero creo que está bien por ahora. Así es como se ve. Ahora solo eliminemos esta línea. Realmente no necesitamos ver esta línea de depuración para que
pueda presionar ninguna. También quiero probarlo en el cliente solo
para asegurarme de que está trabajando en el cliente
también para seguir adelante y
probarlo en el cliente. Bien, bien. Nuevamente, si deseas cambiar el
color del impacto, siempre
puedes entrar en
el sistema de partículas y hacer clic en el color. Y puedes seguir adelante y cambiar el color para eso también. Pero ahora puedes ver que
está funcionando de maravilla, y también está
funcionando por ahí. Sin embargo, realmente no podemos
verlo por allá
porque es muy pequeño. Aquí está. Puedes probar, puedes ver aquí está aquí. Impresionante. Suena muy bien. Bonito. Bien, esto se ha terminado y sólo
voy a seguir adelante y conectar esta parte nuevo y compilar
y guardar todo. Ahora tenemos el efecto de disparo, efecto
visual y el efecto de
sonido también. Nuevamente, si quieres agregar una
calcomanía como contraataque, también
puedes golpear
desde aquí y decir Cal Y puedes generar calcomanías en el
lugar como antes. Siempre puedes seleccionar aquí, hacer un nodo de selección y
conectar el reproductor. Si es el jugador al que
golpeas, no quieres
engendrar nada, puedes hacerlo si es el jugador o si no es
el jugador al que golpeas Siempre se puede generar una
bala cal en la pared. Siempre se puede hacer
eso. Compilemos y guardemos todo y
pasemos al siguiente.
156. 10.27 propagación de bala: Ahora, en lugar de tener
todas las balas
golpeadas en medio del cursor, ahora puedes ver si disparo
algo, siempre
golpea en
ese mismo lugar. En lugar de hacer eso,
en realidad puedes agregar una propagación de bala. Podemos hacerlo igual que
en Quincena por ejemplo. Si golpeas el cursor, realidad no
es golpear
el mismo punto, 2047 Si sigues disparando. Para hacer eso, es muy,
muy simple en la ubicación del extremo de
bala. Puedes ver aquí estamos
creando ese trazo de línea. Antes de hacer esto, vamos
a tomar todo esto, copiar esto, y
pegarlo aquí abajo. Creo que lo probaré más tarde, porque aquí no
quiero filmar un rastro de línea si estoy
fuera de MO y así sucesivamente. A lo mejor quiero mejorar esto
eliminando realmente la secuencia, porque entonces no necesitamos
copiar y pegar este código. Podemos simplemente agregar esta
parte justo después de esto. Pero dejémoslo por ahora, así y veamos a
dónde vamos con él. La ubicación final, lo que
quiero hacer con ella, quiero aleatorizarlo un poco Ubicación inicial y final. La ubicación de inicio está
bien para el trazo de la línea. Sin embargo, la ubicación final,
vamos a aleatorizarlo. La carrera de línea no dispara
en el mismo lugar cada vez. La forma de hacerlo,
muy, muy sencilla. Podemos tomar esta ubicación
final
ahora mismo y podemos tomarla
y decir break vector. Ahora de éste,
qué podemos hacer, vamos a
desconectarlo de aquí. Por ahora, borre esta, que sólo tenemos esta aquí. Y solo puedes hacer clic y
arrastrar y pegarlo aquí. En realidad, esta ubicación final,
estamos rompiendo el vector. Así puedo ver la x, y, y la z, y puedo
aleatorizar el valor aquí Lo que quiero hacer
es usar este llamado random float in range. Ahora no tenemos realmente
un vector aleatorio en el rango, lo
contrario lo habría usado. Pero tenemos una función llamada
random float in range. Entonces va a elegir un float aleatorio
dependiendo de un número aleatorio, dependiendo de lo que le des
como valor mínimo y
como valor máximo. Por cierto, así también es
como tiras un dado. Se tira un dado escribiendo aquí, el valor mínimo de
los dados debe ser uno, El valor máximo de
los dados debe ser seis. Y luego tira un
valor aleatorio 1-6 para tirar los dados. Y se obtiene como un número aquí. Vamos a hacer esto aquí
por el valor mínimo. Solo queremos tomar
esta x y decir, escribamos menos
primero, digamos 200. Probemos 200. Entonces el
máximo flotador aquí, digamos más 200. Va a tomar
la ubicación x, va a encontrar
un número aleatorio. Damos este x -200
Toma este x más 200. Entre este rango,
vas a encontrar un número aleatorio con este número aleatorio
que queremos hacer vector. Tomemos este fin aquí y digamos vector para que podamos volver a
armarlo y
seleccionar este vector make. Entonces podemos volver a
enchufarlo a la x aquí mismo. Básicamente estamos modificando el valor x y lo estamos conectando de nuevo
al vector así Hagamos lo mismo
por el otro. Voy a copiar y pegar esto. A lo mejor también puedes
crear realmente una función a partir de esta, pero creo que
será innecesaria. Vamos a agregarlo aquí. Y agrega la x o la
y y la Z también. Vamos a enchufar la Y. Vamos a enchufar la
Z así como esto. Bien, ahora tenemos
esto terminado y ahora va a encontrar una carga y rango
aleatorios. Y va a aleatorizar
nuestro vector
dependiendo de qué valor encuentre
aquí como el Y permítanme seguir adelante y agregar algunas notas de reencaminamiento para
que se vea mejor. Bien, entonces aquí está. Eso fue en realidad. Entonces ya terminamos. Eso fue muy, muy fácil. Solo hagamos depuración nuevo y juguemos solo
para ver cómo se ve. Ahora aquí como terrorista, puedo disparar mi
bala y se puede ver cuando disparé varias veces. No va a disparar en medio
del cursor, va a encontrar
una ubicación aleatoria, a veces en el medio,
a veces fuera del cursor. Lo que se puede ver, no es disparar una y otra vez en el mismo
lugar, así es como se puede
aleatorizar la propagación de la bala No estás disparando
en el mismo lugar. Lo que puedes hacer si
quieres un spread mayor, siempre
puedes volver a aumentar
esos números, si quieres mejorarlo, siempre
puedes acertar
puedes promover esto a una variable y conectar esa
variable a todos ellos. Y solo puedes
editar una variable y ésta editará todas
ellas al mismo tiempo. Eso te ahorrará
mucho tiempo, pero creo que
lo voy a mantener a 200 si quieres. Se puede aumentar la propagación de la
bala y
será para golpear en el medio. Pero como pueden ver,
si golpeo cerca, va a ser
mucho más fácil de golpear. No obstante, si golpeo muy lejos, va a ser más difícil
dar en el blanco. No siempre estoy pegando
en el medio aquí. Método muy fácil para hacer esto. Y solo guardemos todo, pasemos al siguiente.
157. 10.28 Coloca las armas correctamente: Ahora mismo, creo que estamos en el momento donde podemos simplemente
colocar alrededor de las armas, esas armas
que tenemos por aquí. Sólo voy a
eliminarlos a todos. Puedes hacerlo rápidamente. Puedes dar click en
aquí, turno antiguo, click en el último, eliminar, y también voy
a eliminar este. Lo que puedes hacer ahora es que podamos
ir a planos de armas. Ahora solo puedes
arrastrarlos y colocarlos alrededor del
nivel, por ejemplo. Puedes colocar un AK
aquí si quieres. Puedes encender
el chasquido aquí. Creo que va a ser
mucho tener puede colocar el AK y simplemente
arrastrarlo un poco para que no esté en
el suelo así. Lo que puedes hacer es que solo
quería tenerlo en la parte de atrás. Sólo estoy echando un
vistazo a lo lejos que
estamos de este muro. A
lo mejor podemos agregarlo aquí. En realidad, déjame
arrastrarlo hasta aquí detrás cubierta y mantener presionado alt
y arrastrar para copiarlo. Creo que voy a aumentar
este a 500 en su lugar para sostener Alt
y arrastrar así. Creo que lo voy a copiar
así un par de veces. Aquí, aquí y aquí. Simplemente hazlo como
quieras para tu nivel. Realmente no
tienes que seguirte aquí. Sólo lo estoy haciendo al
azar. Ahora lo tenemos. Tal vez podamos agregar uno aquí
también. Ahora lo tenemos. Y lo que puedes
hacer es agregar un cuatro en el medio aquí. A lo mejor solo necesito
disminuir mi chasquido a 100 una vez más aquí, creo que
lo voy a agregar en el medio Necesito disminuir esto
a 50 en su lugar aquí. Y luego aumentemos,
solo llevémoslo aquí arriba, aumentémoslo a 100 nuevamente, aumentemos esto al otro. Ponlo a 500 otra vez,
igual que antes. Sigue arrastrándolo así. Ahora es entre la K
aquí, aquí y aquí. Y nada más que seguir adelante y
seguir así. Bien, entonces ahora tenemos esto y si le das un vistazo se ve
bien lo que puedes hacer. También puedes colocar la pistola para que la puedas
arrastrar al nivel. Déjame solo disminuir
esto a 100 otra vez. Y coloca la pistola, empújala como antes, así si quieres, puedes agregar la pistola para que
me guste todo el espacio aquí. Si solo la aumento a 50, puedes agregar la pistola
así a todos los espacios. Déjame
seguir adelante y hacer eso. Bien. Ahora, he
colocado las pistolas Ahora puedes ver pistolas
todo el camino aquí, la K y cuatro hasta aquí, si lo deseas En realidad, no quiero
colocar armas delante de aquí
porque aquí es donde está desove
el jugador Incluso puedo moverlos un
poco más al frente. Por lo que no están desove
encima de las armas. Sólo estoy moviendo
algo para acá. Tenemos que recordar también los
puntos de desove para éste Sólo tienes que seguir adelante y
seleccionarlos todos. Muévalos un paso
al frente así. También para esas armas, quiero seleccionarlas todas. Haga clic en el primero, desplácese hacia arriba Mantenga Mayús y
haga clic en el último. También, tengo que seleccionar
el caso Control de Retención. Y sólo voy a
seleccionarlos todos aquí. Y hagamos clic en
para la herramienta de movimiento, mantengamos pulsados Alt y arrastremos para
copiarlos todos. Haga clic en para rotar 180 grados. Permítanme sujetarlos
hasta aquí y solo tratar de hacerlos
al mismo nivel. Entonces es justo que ambas partes echen un vistazo a si están
al mismo nivel y ahora están, lo que quiero hacer ahora
es simplemente arrastrarlos
al otro lado y
colocarlos en algún lugar como aquí. Creo que aquí es donde está
del otro lado también. Están muy cerca de la pared. También están muy
cerca de la pared. A lo mejor uno más así, necesitamos arrastrarlos
realmente al otro lado. Aquí es algo.
Es uno más, creo que detrás de la cubierta así. Ahora, ambos lados son iguales. Si haces clic en jugar ahora y
podemos vender antiterrorista. Ahora por ejemplo, se puede
ver que están en el suelo. Podemos recoger una
pistola y
también podemos elegir una de
las otras armas. Y sí, ahora
todo está funcionando. Lo que puedes hacer
en lugar de
coger primero una pistola
porque es molesto, a lo mejor cambiar al rifle, puedes cambiarlos alrededor. Entonces tienes primero el rifle y luego las pistolas detrás de ellos. Bien, entonces ahora cuando
hayas colocado las armas, también
puedes colocarlas aquí
arriba si así lo deseas. Puedes colocar, si
haces otra arma, como un arma especial,
puedes colocarla aquí arriba. Entonces hay que subir esta
rampa para tomar esta arma. Eso también será genial. Bien, así que siempre
que hayas colocado tus armas, pasemos a
la siguiente lección.
158. 11.01 Diseña la interfaz de usuario de salud y armadura: Bien, así que ahora estamos en
la armadura de salud y daño, y estamos listos para crear
la IU de salud y armadura. Así que sigamos adelante
y vayamos a la interfaz de usuario. Y ya tenemos nuestra interfaz de usuario principal, así que vamos a abrirla
aquí a la izquierda, quiero crear
armadura y UI de salud. Bien, entonces lo que quiero diseñar, quiero mostrártelo primero para realmente
lo veas. Quiero diseñar una interfaz de usuario como esta. A mí me gusta
mostrártelo. Así que en realidad puedes, estamos en la misma página aquí y
ya sabes lo que estás haciendo. Estamos haciendo éste. Y así es como
quería lucir. Otra vez, lo que te dije antes, trata de echarle un vistazo, intenta descomponerlo. Entonces, ya sabes, si
quieres crear cajas
horizontales, cajas
verticales, superposiciones, igual que lo que
hemos hecho antes, esto es lo que
vamos a crear Bien, primero necesitamos
una superposición porque tenemos un fondo y
tenemos algo encima. Arrastremos esto al panel
del lienzo aquí.
Y ahora se agrega. Ahora da click en él. Y
para el punto de anclaje, voy a cambiarlo a la
parte inferior izquierda y escribir 00 en la posición para
sacarlo aquí arriba en el lienzo para la
alineación para la y, escribir uno, ahora está
aquí arriba en la posición de 00. Bien, para esta
queremos tener una imagen, queremos tener un
lugar de fondo, la imagen aquí. Quiero que sea lo
mismo que aquí. En lugar de simplemente hacer
lo mismo. Lo que puedo hacer aquí
es simplemente mantener el turno y hacer clic derecho para copiar esto. O simplemente puedes
hacer clic derecho y copiar. Puedes ir a esta
imagen y puedes mantener presionada la opción shift y
click izquierdo para pegarla. Así como esto para
la alineación, Solo llena
todo para la superposición. Ahora quiero tenerlo tamaño
a contenido como este. Cualquiera que sea el tamaño de imagen que
tengamos aquí en realidad va a
dimensionar automáticamente con esta. Para el espacio en la pantalla. Quiero alejarlo un poco, 30 en la X y -30 en la Y. Tenemos un poco de espacio aquí No está aquí arriba en el borde. Bien, vamos a compilar ahora. Así es como se ve.
Ahora agreguemos la barra de salud. Agreguemos un
cuadro horizontal porque queremos un icono y una
barra de progreso junto a él. Así que agreguemos una
caja horizontal a esta superposición. Para esta caja horizontal. Vamos, primero agreguemos una
imagen porque queremos un icono. Y luego agreguemos
la barra de Progreso. No obstante, recuerda que la
Barra de Progreso tiene texto encima de ella. En realidad necesitamos una superposición. Primero, busquemos una superposición y colóquelo
aquí para esta superposición. Encontremos la barra Progreso. Para la barra de salud, estamos
usando una barra de progreso y luego tenemos algo de texto
encima para mostrar cuánta
salud tiene el jugador. Bien, ahora parece un poco
confuso para esta superposición. Veamos aquí tenemos
este cuadro horizontal para esta barra de progreso. Básicamente quiero llenar
todo en esta superposición. Coloquemos
esto en el medio. Al hacer clic en el cuadro horizontal, voy a alinearlo
al centro para la imagen. Seleccionemos el icono. Ahora no tenemos un icono en
estos momentos. Vamos a los íconos. Quiero que vayas a los materiales
del curso. Si solo vas a los materiales del
curso aquí, voy a la interfaz de usuario a los iconos e
importo la salud en el
icono del corazón y el icono del escudo. Haga clic y arrástralos
aquí. Ahora son importados. Recuerda hacer clic en él, cambiar el grupo de texturas a
UI igual que antes. Y ajustes de compresión a la interfaz de
usuario tot lo
mismo o el corazón Cámbielo a UI y cámbielo. Veamos aquí, la interfaz de
usuario a T. Ahora podemos entrar en la interfaz de usuario. Podemos dar click en la imagen, buscar CO o icono. Solo busquemos
el corazón uno sobre corazón. Selecciónelo. Ahora se
pueden ver exhibiciones. Y esto es por
la alineación. Yo sólo quería tenerla
en el centro así. Y voy a cambiar el
tamaño de la misma a 45, 45 tal vez. En realidad vamos a
cambiarlo a 40 por 40. Ahora para esta
barra de progreso, hagamos clic en ella. Para la barra de progreso,
puedes ver aquí, puedo aumentar y
disminuir el porcentaje. Y aumentará y
disminuirá la barra de progreso. Ahora para el estilo de la misma, necesitamos una imagen de fondo y necesitamos
una
imagen de relleno y una imagen de marquesina Ahora para el fondo, solo
quiero dar click aquí. Y creo que podemos
buscar caja de entrada. Tengo como cajas de entrada aquí las
podemos usar como fondo. Y solo podemos usar esta
imagen, barra de entrada oscura. Adelante y selecciónelo.
¿Recuerdas lo que dije antes? Cámbielo a una caja y también
seleccione 0.5 como margen. Por lo que se estira correctamente
para la imagen de Phil. Si solo buscas a Phil, tengo la
barra de progreso, Phil, para ti. Déjame importar el otro porque aún no lo he
importado. Probablemente ya lo hayas
importado aquí. Déjame simplemente ir a mis materiales de
costo más antiguos, yo imágenes. Y déjame importar este
rojo, rojo, Phil. Déjame importarlo aquí.
Da click en él, cambia I y cambia esta interfaz de
usuario para guardarla. Y déjame volver aquí. Seleccionemos el relleno rojo. Adelante y selecciona esta, también para la imagen de marca. Simplemente puedes copiar esto. Pégalo aquí. Recuerden por el margen lo que dije antes, 0.5 para el margen. Este vuelve a cambiar a
caja y 0.5 para el margen. Ahora esto es fijo y se
puede ver que el color no
es correcto. Está mostrando este extraño color
azulado, color verde azulado. Esto no es lo que queremos. Esto se debe a que la opacidad de
relleno y color es de este color azul claro Tienes cambios a blanco.
Puedes ver el correcto sobre lo que hayas
seleccionado aquí. Compilemos ahora. Hagámoslo un poco más grande para verlo mejor para
la imagen de la marquesina Aquí es donde
controlas el tamaño. Si intentas cambiar el tamaño de la imagen en estas, no
va a funcionar. Déjame ir aquí al tamaño de
la imagen de la marquesina
y puedes cambiarla Vamos a hacerlo más amplio. Por ejemplo, 350
Lee por ejemplo, 60 aquí en la altura. Así es como se ve ahora, 350.60 Puedes volver a copiar el tamaño de la imagen y pegarlo
encima de los demás Puede hacer clic en el
texto aquí y alinearlo en medio de
esta barra de progreso. Cambiemos el texto
a rubic semi bold, lo que hemos estado usando hasta ahora Además, cambiemos
este tamaño a 20. Yo lo hago más pequeño, solo escribamos un
número aleatorio por ahora. Escribamos 76. Yo sólo quiero escribir un número para que podamos ver lo que estamos haciendo. Estamos cambiando esto más tarde
dinámicamente dentro del juego, Pero así es como
se ve ahora mismo. Vamos a agregar un esquema. Voy a agregar dos al tamaño
del contorno y luego cambiar el color
para el contorno. Por ejemplo, eliges
este seleccionador de color. Puedes elegir un color de aquí. Creo que sólo voy a elegir el color de
fondo de esta barra de
progreso. Bien.
Vuelve a darle click, y voy a añadir
algo de sombra también si escribes 66 aquí para
la sombra por ejemplo. Para que la veas con claridad
y puedas hacer click en este color de sombra y
puedes cambiar el alfa a uno. Esta es la sombra para el texto. Ahora para la sombra, iré con el desplazamiento
de tres por tres. Y voy a cambiar la
opacidad a 0.5
No es demasiado visible cuando lo
miras desde aquí, se ve mucho mejor Bien, eso se ve bien. Ahora podemos desactivar
el contorno discontinuo para que podamos ver cómo se
ve ahora mismo Creo que lo que podemos hacer ahora, podemos pinchar en, veamos aquí, el cuadro
horizontal. Y le podemos dar algo de espacio. Lo que podemos hacer aquí
para el relleno para la izquierda y la derecha, le
voy a dar, por ejemplo, 30.30. Así es como
se ve. Ahora lo estamos
alejando de los costados. De hecho quiero darle más. Volviendo a hacer clic en la
horizontal, 35 por 35, y arriba y abajo. Creo que lo voy a dar
por 30 por 30. Ahora bien, así es como se ve. Bien, vamos a darle algo de
espacio entre el icono. Y esto se hace si
buscamos un espaciador y
lo colocamos entre el icono y
la caja horizontal. En realidad, aquí no. Vamos a arrastrarlo hasta aquí. Entre la imagen para el corazón y la
barra de progreso. El espaciador está aquí. Vamos en la x, dale un espacio de 15 quizá. De hecho, vamos a
darle más espacio. Creo que podemos
darle más espacio para el espaciador, tal vez 20 en su lugar. También creo que le voy a dar más espacio aquí para la caja
horizontal de aquí arriba. En vez de 35, se lo voy a
dar a 40. Izquierda y derecha serán 40, y la parte superior y abajo serán 30. Así es como se ve ahora, se ve bien, ya podemos compilar. Vamos a copiar, pegar esto y editar como una armadura para la caja
horizontal. Simplemente haga clic aquí
y haga clic en Control. puede ver ahora que están uno
encima del otro porque
en realidad necesitamos una caja vertical para tenerlos uno
encima del otro. Nos olvidamos de hacer eso.
Busquemos una caja vertical. Vamos a solo, veamos aquí
abajo la imagen de fondo. Recuerda que esta es la superposición, esta es la imagen de fondo. Y entonces podemos tener
la caja vertical donde tenemos la
salud y la armadura. Vamos a meterlos en
esta caja vertical. Ahora para la caja horizontal, en vez de tener el
relleno dentro de aquí, puedes ver que se agrega
doble porque está agregando un relleno para
ambos. Vamos a copiar esto. Voy a dar click en esta
flecha para eliminarla. Haga clic en el
cuadro horizontal aquí también. Remover, Agrégalo para la caja
vertical en su lugar, el padre de estos dos. Al dar click aquí, pega el relleno que tenías antes, y
ahora lo tienes aquí. Solo agreguemos un espaciador
nuevamente entre estos dos porque aquí están demasiado
juntos para el espaciado. Esta es la Y. Voy a
añadir 15 para el icono. Vamos a cambiarlo a escudo de iconos. Cambiémoslo a esa
por el color del relleno. Cambiémoslo
por el morado. Déjame copiar y
pegarlo aquí abajo también. Yo creo, sí, todo
debería estar bien por ahora. Ahora si lo deseas, también
puedes hacer click sobre ellos. Por ejemplo, esta imagen de
imagen. Esta imagen. Cambiémoslo a la
visibilidad de Hit Comprobable. No podemos interactuar con
él, con el ratón, creo éste y éste. Y también podemos cambiar la
visibilidad para golpear a Testable. Sí, eso debería ser todo, solo para que el ratón no
interactúe con ellos. Si necesitas interactuar
en el futuro, vamos a cambiar los nombres de ellos más tarde cuando los
necesitemos como variables. Entonces podemos cambiar
los nombres aquí arriba, pero por ahora esto está terminado. Así es como se ve nuestra
parte de salud. Si haces clic en Placa para echar un vistazo a cómo
se ve, agrandar la pantalla. Así es como se
ve. Se ve bien. Entonces ahora tenemos la salud y la armadura y podemos agregarle
funcionalidad.
159. 11.02 Aplicando daño: Ahora que tenemos lo sano,
sigamos adelante y
apliquemos algunos daños. Si vamos a la base de jugadores
ahora tenemos este proyectil, esta línea traza que
estamos disparando aquí Lo que estamos diciendo es que si el
actor tiene al jugador tecnológico, queremos aplicarles daño. Para aplicar daño, básicamente solo
arrastras desde aquí y
dices aplicar daño. Tienes esta función
y muy fácil de usar, va a alejar esto. Tenemos algo más de espacio para trabajar. Aquí estamos aplicando
algunos daños. Ahora hay que especificar ¿cuánto daño
desea aplicar? Ahora digamos por
ejemplo, tenemos un número estático. Digamos 20. Ahora también hay
que especificar quién es el actor dañado.
Es el jugador. Aquí le estamos pegando al actor de
éxito. Desde el actor de éxito, puedes hacer clic y arrastrar y enchufarlo. Bien, ahora tenemos
al actor dañado. Vamos a probarlo
y ver si funciona para probar y ver si esto realmente
está funcionando. Sigamos adelante y abajo aquí, hagamos cualquier evento de daño. Ahora, antes de hacer
el evento de daño, en realidad
quiero
hacer una nueva gráfica, así que no ponemos demasiadas cosas dentro de aquí. Todo
esto está bien. Pero cuando aplicamos daños, quiero ir a otro
evento aquí u otra gráfica. Llamemos a éste Salud
y Salud Armadura y Daño. Vamos a llamarlo así. Dentro de aquí si haces clic derecho
y dices Cualquier daño. Ahora este evento se juega cada vez que un jugador
recibe daño. Solo podemos intentar imprimir una cadena en la pantalla
para ver si funciona. Y
arrastra este daño a esta cuerda, imprime cuánto daño
le estamos haciendo al jugador. Ahora si hacemos clic en Reproducir
y seleccionamos Terrorista aquí, y seleccionamos Terris aquí Si solo cojo un arma
y trato de dispararle al jugador, se
puede ver que imprime
20 en la pantalla, porque ahora le estoy aplicando
20 de daño a este jugador. Bien, este código funciona. Ahora si vuelvo atrás, en lugar de aplicar como 20
daños como un número estático, sigamos adelante dentro de
una estructura una vez más, abramos la
estructura dentro de aquí. Agreguemos dos variables. Ambos son un
flotador y un flotador. Ahora para el primero, como queremos
llamarlo,
llamémosle daño en la cabeza. Ahora lo que puedes hacer,
puedes hacerlo muy específico, como ¿cuánto daño
debes hacer cuando golpeas las piernas? ¿Cuánto daño debes hacer cuando golpeas los brazos y así sucesivamente? Pero para simplemente mantener
este curso más corto, complejo, o más corto
y simple, más bien se está volviendo muy
largo para este curso, solo mantenlo un poco más simple. Voy a hacer un daño para la cabeza y otro
daño para el cuerpo. Daño corporal, dos
tipos de daño. No obstante, voy
a mostrarte cómo
puedes hacer el resto de esto. Lleva un poco más de
tiempo, pero mismo proceso. Bien, ahora lo tenemos
dentro de nuestra estructura. Ahora lo que tenemos que hacer es
agregarlo también a la tabla de datos. Así que adelante y abre la tabla
de datos dentro de aquí. Ahora, antes de hacer esto,
en realidad voy a mover el daño aquí arriba solo para
mantenerme un poco más organizado. Después del MO, voy a hacer el daño en la cabeza y el daño
corporal aquí. Vamos a maximizarlo después del MO máximo. Permítanme agregar
dos columnas a la derecha. Al primero se
le llama daño en la cabeza, al siguiente se
le llama daño corporal. Entonces hay que especificar
cuánto daño haces. Ahora déjenme decir solo por
ejemplo, por el daño en la cabeza, estoy haciendo 20 daños, estoy restando 20 Por el daño corporal,
solo estoy haciendo diez daños. Yo voy a hacer lo mismo. En realidad, vamos a
cambiarlo para ver si hay una diferencia
para los cuatro. Digamos que estamos haciendo 15
daños y cinco daños, tal vez eso sea a ocho daños Para la pistola,
eso es mucho menos. Diez daños por ejemplo. Y digamos cinco daños aquí. Bien, Así que solo puedes ajustar esto cuanto más te guste. Ahora lo descarguemos como
archivo CSV y déjeme ir a mi
carpeta de descargas dentro de aquí. Voy a cambiarle el nombre de
nuevo a T Weapon Info. Ahora dentro de aquí, de nuevo, vayamos a las tablas de datos. Y permítanme cerrar esto e importar aquí la tabla de datos. Bien, entonces ahora tenemos
esta información, solo
guardemos todo. Ahora sí se bloquea a veces
cada vez que intentas guardar y editas algo
dentro de una estructura. Esto es normal, como lo hace muchas veces. Cuando
editas esta estructura y agregas nuevos valores
y cosas así, generalmente simplemente se bloquea. Solo recuerda guardar tu trabajo. Asegúrate aquí, déjame abrir la tabla de datos
para asegurarme
de que todos mis valores estén enchufados, igual que antes y no lo es puede ver que está
aquí abajo. A veces se choca y
hay que rehacerlo aquí Pero por suerte no
tenemos mucho que hacer, solo
tenemos que arrastrar esto
hasta aquí y luego puedo
volver a arrastrar la
tabla de datos hacia aquí. Bien, ahora vamos a
guardar todo y ojalá no se estrelle.
Ahora funcionó. Ahora abramos
la base de jugadores. En el jugador,
abre la base de jugadores. Ahora intentemos hacerle el
daño en la cabeza y el daño corporal. Ahora lo que normalmente
estás buscando es si vas a los activos
que has importado al jugador. Aquí tenemos el esqueleto del
jugador, la malla esquelética de los jugadores Pero también tenemos algo
llamado activo de la física. Aquí es en realidad
donde estás pegando. Este activo de física es donde
estás golpeando al jugador. Puedes intentar ajustar
este activo de la física. Puedes hacer esas formas
más y más pequeñas. Esta es en realidad tu caja de éxito. Puedes construir al jugador
como puedes crear formas, básicamente simplemente matarlos,
habilitarlos, y así sucesivamente. Pero ahora mismo por el daño en la cabeza, estamos
golpeando a éste. Déjame minimizar
la velocidad de la cámara. Estás golpeando esta forma aquí y esta
se llama golpe. Básicamente se les llama
cuerpos forma del cuerpo. Si vuelvo aquí
a la base de jugadores. Ahora por aquí para
los resultados de aciertos, si vuelves a hacer clic en la flecha. Vayamos por aquí después
del daño aplicado. Solo quiero imprimir
esto para que lo veas. Quiero imprimir
el nombre de hit bone, Hit bone name, y
arrastrarlo aquí. Y sólo voy a
minimizar esto una vez más. Ahora estamos imprimiendo
el nombre del hueso Hit. Podemos ver qué pasa
si pulsamos en Play Terrorist y yo en como
terrorista para el cielo también. Vamos a disparar a dis player. Si disparo en la
cabeza, lo dice. Si disparo en la
pierna, dice muslo. Esto es, este es el pie, ¿
verdad? Este es el muslo. Y esta es la mano, mano, la derecha,
la mano izquierda, y así sucesivamente. Se puede ver que estamos disparando
diferentes partes del cuerpo. Ahora, sólo para que sea un poco
más interesante para nosotros, tomemos
este nombre de hueso de éxito. Lo que podemos hacer es
igual que enumeraciones, donde puedes hacer
encender enumeración, puedes hacer encender
el nombre aquí,
encender nombre, porque recuerda que
esta es una variable de nombre Encender el nombre y
simplemente puede enchufarlo antes aplicar el daño y hacer clic
en el más para el giro. Ahora hay que especificar
cuál es el nombre. Mi nombre es Head. Si solo regresas aquí, puedes ver que se llama Head. Puedes seguir adelante
y escribir Head y luego conectarlo a
aquí por defecto, voy a aplicar
daño corporal por defecto, pero si es cabeza, vamos
a aplicar el daño de cabeza. Yo sólo voy a
copiar y pegar esto. Y por defecto voy
a aplicar el daño corporal. Ahora consigamos la
información aquí. Si solo copio todo esto,
nuestra información de armas aquí abajo
y nuestra variable de arma, creo que está en
esta larga aquí. En realidad, este es el
actor de éxito. Esta es el arma. Yo sólo lo enchufé aquí. Ocultar pines no conectados. Yo solo quiero ver el
daño corporal, el daño en la cabeza aquí, y conectar el daño de cabeza, conectar el daño corporal, y también para el actor dañado. Recuerda conectar esto de
nuevo así, ¿de acuerdo? Siempre que estamos
golpeando la cabeza, estamos haciendo el daño en la cabeza. Siempre que estamos
golpeando el cuerpo, estamos haciendo el daño corporal. Simplemente hagamos clic en play
y veamos qué pasa. Ahora bien, si vuelvo a jugar como terrorista y
le disparo a la cabeza, se
puede ver que hace 20 daños. Si le disparo al cuerpo,
hace diez daños. Bien, entonces ahora tenemos
como un daño de disparo en la cabeza. Bien, increíble. Entonces
eso está funcionando. Sólo voy a minimizar esto. Y también voy
a quitar el debug aquí para la bandeja de líneas así no
veo las líneas rojas. Y eso fue todo por esto. Nuevamente, se puede hacer un sistema
más complejo, pero sólo para que este curso no demasiado complejo, así es
como podemos hacerlo. Estamos haciendo algunos daños en la cabeza y algunos daños corporales también. Recuerde establecer los valores
fuera de la tabla de datos. Puedes ajustar esos números. Sí, sigamos
adelante y pasemos al siguiente.
160. Estructura de información para jugadores de 11.03: Bien, entonces ahora
vamos a sumar la salud para el jugador y la armadura
y la cantidad y así sucesivamente. Pero antes de hacer eso,
en realidad vamos a crear una estructura de
jugador. Ahora vamos a los planos
y vayamos a Estructuras. Y ahora en lugar de
la información del arma, hagamos clic derecho ahora vamos a Blueprint y luego
agreguemos una nueva estructura Y déjenme llamar a esto información de
una capa. Vamos a abrirla. Ahora
para la información del jugador, lo que quiero agregar es ¿cuál es la salud máxima que puede tener
el jugador? Eso es un float, no un entero, porque a veces se
calcula como un decimal. Y luego corres hasta la salud. Entonces tienes la Armadura Max. Recuerda que también tenemos
la armadura en el juego. Puedo añadir más a esto. Recuerda que si vas a la base de
jugadores y jugadores, también
tenemos algunas propiedades
para correr. Tenemos la velocidad de caminar, la velocidad de
carrera, la velocidad de agacharse. También puedes
tenerlo dentro de aquí. No necesitamos tener variables
separadas por aquí. Solo agrega la velocidad de carrera. Agrego la velocidad de caminata, también
puedo agregar la velocidad de agacharse Así. Bien,
ahora tenemos esto. Lo que podamos hacer, podemos
eliminarlos más tarde. Así que solo tenemos que terminar esto primero antes de eliminarlo. Lo que sea que tengas como un valor
estático que no
va a cambiar. Por ejemplo, cuál
es la velocidad de carrera,
caminata, velocidad, velocidad de agacharse Y no van a cambiar
durante el juego. Si tienes números estáticos, es muy agradable
agregarlos dentro de una estructura. Creo que eso fue
todo dentro de aquí. Lo que podamos hacer, sólo tiene que
seguir adelante y guardarlo. Guarde todo. Pasemos a
la siguiente y
creemos la tabla de datos.
161. Tabla de datos de información del jugador: Bien, así que aquí estoy de
vuelta en las tablas de datos. Ahora para este, el
viejo voy a llamar aquí abajo DT información de armas. De hecho, vamos a crear uno nuevo. En realidad solo voy
a duplicar esto para no tener que reorganizar
todas estas cosas. Y sólo voy a
llamarlo DT player info. Simplemente hagamos clic en el control A y luego simplemente eliminemos todo. Bien, cosa aquí. Solo volvamos a, volvamos a la estructura
y veamos qué tenemos. No la información del arma,
la información del jugador dentro de aquí.
Lo que tenemos primero. Ahora, antes de agregar nada, es necesario tener una columna de ID. Eso lo tenemos en la información de armas. Recuerda, tenemos
este llamado ID. Necesitamos un ID uno para este, realmente no
necesitamos el ID. Simplemente puedes llamar al nombre, por ejemplo,
puedes llamarlo uno. Vamos a llamarlo uno
porque solo tendremos una fila para el jugador con
toda la información. Aquí no necesitamos
varias filas. Bien, para el primero,
tenemos la salud máxima. Entonces tenemos la armadura, y luego tenemos la velocidad de carrera. Entonces tenemos la velocidad de caminar, y luego tenemos
la velocidad de agacharse Bien, tenemos esos valores. Y déjame hacer
esto un poco más pequeño. Lo que puedes hacer ahora
es ahora para el ID, lo
hemos establecido en uno
para la salud máxima. Voy a ponerla en 100 para la armadura máxima 100
también para la velocidad de carrera. Ahora ya hemos establecido
esos dos en el valor por defecto. Si voy al jugador, hago clic en la velocidad de carrera, se establece en 750. En este momento voy
a fijarlo en 750. Para la velocidad de caminata, la
he establecido en 400, y para la velocidad de agacharse, he establecido en 200 Así que escribamos eso.
Ahora ya estamos listos. Vamos a hacer clic en el archivo de descarga
TSV igual que antes. Abrámoslo
aquí y llamemos a esto información de un jugador. Vamos a cerrar esto. Ahora en las tablas de datos. Ahora antes de importarlo, voy a crear uno nuevo. Vaya a Miscelánea
y seleccione Tabla de Datos. Ahora vamos a seleccionar
la Información del jugador. Haga clic. Bien. Vamos
a llamarlo T Layer Info. Es aquí. Ahora podemos importarlo si haces clic en un arrastre
ahora mismo dentro de esto. Ahora ha subido
todos los valores. También ahora está funcionando y
podemos guardar todo. Ahora recuerda, cuando necesitamos
usar esta tabla de datos, tenemos que crear una función dentro de la biblioteca
igual que antes. Vamos a crear una nueva
función en la biblioteca. Nueva función,
llamemos a esta, obtener información del jugador, porque
tenemos que hacer eso. Vamos a copiar y pegar
la cosa aquí. Vamos a copiar y pegar todo esto. Pégalo dentro de aquí. Conecta esto como aquí. Y vamos a conectarlo aquí. En lugar de la información del arma DT, necesitamos la
información del jugador DT y regresamos. Arrástralo aquí
y llámalo info. Compilemos y
guardemos todo. Además, recuerda cambiarlo en una función pura
igual que esta. Debido a que solo estamos
obteniendo información, no
estamos configurando información. Intentemos usarlo sólo para
ver si algo anda mal. Vamos a, por ejemplo, el jugador, su base. Digamos que quería usarlo. Aquí puedo decir con razón obtener información del
jugador, y aquí está. Ahora puedes obtener la
información del jugador de este. Bien, ahora mismo no tenemos
realmente como identificación. Al igual que cuando usábamos
con las armas. Como si tuviéramos un nombre de arma. A partir del nombre del arma,
estamos extrayendo valores para la base de jugadores. En realidad solo
tenemos una línea de código o una línea
en la tabla de datos, solo
tenemos esta línea aquí. Realmente no tiene sentido
escribir uno cada vez para extraer de
esta línea de esta identificación, porque va a permanecer
igual todo el tiempo. Para hacerlo mejor,
lo que podemos hacer, realidad
podemos simplemente volver aquí en la información del jugador aquí, entonces en realidad podemos
simplemente desconectar esto. De hecho, también podemos
simplemente eliminar todo esto aquí y eliminar esta
variable de aquí. Ahora lo que puedes hacer es solo el nombre de la fila, siempre
es uno. Simplemente establezca el nombre de la fila en uno. Eso es, si compilo
ahora en la base de jugadores, cuando digo info del jugador, ahora siempre obtiene
esa información del jugador. Así que realmente no necesitamos
escribir nada aquí y realmente no tiene sentido cuando tenemos una línea De todos modos, solo
estamos obteniendo la información de la tabla de
datos de esa primera fila. ¿Bien? Ahora tenemos esta
información y podemos utilizarla. Solo guardemos todo
y pasemos al siguiente.
162. 11.05 Establece la salud y la armadura básicas: Bien, ahora estamos listos
para establecer la salud base. Ahora mismo, cuando
engendramos en el nivel, nuestra salud básicamente está diciendo 76 porque esto es lo que
hemos establecido dentro de la interfaz de Esto es solo un número estático que establecemos aquí a través de
este porcentaje. Realmente no tiene ningún
sentido. Sigamos adelante y
fijemos la salud base y la armadura cada vez que engendremos Para eso, vayamos a abrir la
base de jugadores, está fuera de aquí. Déjame ir a la gráfica de
Armadura de Salud y Daño. Quiero hacer dos eventos. Quiero hacer el primero
llamado Set Layer Health. Quiero hacer el
otro llamado Set Layer Armor. Tenemos estos dos. También queremos ejecutarlo a través
del servidor. Vamos a ejecutarlo a través del servidor. Establecer capa también ejecutar este
en el servidor. Establecer armadura de capa. Vamos a ejecutarlos tanto en
el servidor como confiables. Vamos a ejecutar el
servidor uno aquí arriba, arrastrando y diciendo set
layer para la armadura uno Vamos a golpear desde aquí
y decir capa de servidor, establecer la armadura del jugador así como esto. Bien, ahora solo voy a mover esto hacia abajo así que tenemos un
poco más de espacio para trabajar. Lo que queremos hacer es
simplemente establecer la variable de salud. Ahora necesitamos dos variables aquí. Necesitamos uno llamado salud
actual, porque en la estructura
hicimos uno llamado salud máxima. Esta es la salud máxima que puede tener
el jugador. Pero también necesitamos uno
para la salud actual. Ahora mismo tenemos la
salud actual y la armadura actual, tanto para la salud aquí.
Vamos a llevarla aquí arriba. Vamos a establecer el estado
en el servidor uno. Arrastre este pin al
evento que crea uno. Y también arrastra este pin más
a este evento. Éste. Recuerda, estás configurando
la variable en el servidor. Necesitas tener
esto replicado. El cliente también puede ver cuál es
la salud de los otros jugadores. También hay que hacerlo por aquí. Golpeemos por la armadura. Enchúfelo y conéctelo
aquí. Enchufa aquí. Vamos a configurar este para
replicarlo también. Ahora tenemos esto. Lo que podemos hacer con esto ahora es dejarme
simplemente moverlos juntos. Ahora puedo volver
a la jugada de inicio. Aquí es donde quiero establecer
la salud base de los jugadores. Siempre que el
jugador genere instantáneamente, vas a establecer
la salud por aquí Quiero dirigir desde
aquí y decir Set Health. Nuestro Set Player health es como lo llamamos, Set Player Health. También queremos
usar el otro llamado Set Player Armor. Entonces tenemos que especificar cuál es la salud actual
y la armadura actual. Está lleno cuando engenzas. Cuando engendras, quiero decir
obtener información del jugador. Podemos romperlo aquí. Entonces podemos establecer aquí la
salud máxima para la armadura. Podemos hacerlo así.
Pero en realidad creo que voy a hacer dos funciones
distintas. Pero esta voy
a hacer click derecho y decir promover una función o
colapsar a una función. Llamemos a éste, consigamos la salud máxima del jugador y
conviértelo en una función pura. En lugar de este nombre
demente, demente, sólo
voy a decir Max Health. Vamos dentro de aquí.
Vamos a organizarlo un poco. Hagámoslo por el
otro también. Déjame copiar y pegar esto. Excelente. Copiar y pegar esto. Déjame duplicar
este de aquí. Duplicar. Llamemos a este
Obtener armadura en lugar de la. Voy a quitar esta. Llámalo armadura Max. Para la salud máxima,
vamos a desconectarlo, cambiarlo a armadura máxima
y enchufarlo aquí. Entonces ahora podemos tomar esto, conseguir al jugador Max Armor y
enchufarlo aquí también. Bien, solo tenemos esto
se ve un poco más limpio. Y ahora estamos
fijando a los jugadores la salud
máxima y la Armadura
Máxima. Ahora si hacemos clic en play, ahora mismo nada
va a aparecer. Y tal vez
ya lo adivinaste, Esto es porque realmente
no estamos actualizando la interfaz de usuario en este momento Sólo estamos configurando
estas variables y ahora son correctas. Sin embargo, nunca vamos
a ir a la interfaz de usuario en
este momento y realmente actualizaremos
esos valores aquí. Esto es lo que vamos
a hacer en la siguiente.
163. 11.06 Funcionalidad de interfaz de usuario de salud y armadura: Entonces aquí estoy dentro
del plano principal de Uji. Y ahora sigamos adelante y actualicemos la salud y la armadura. Entonces lo primero
que tenemos que hacer, necesitamos usarlos dentro
del gráfico de eventos. Para ello, recuerden que los
necesitamos como variables. Haga clic en el primero. Esta es la parte de progreso
para la salud. Voy a llamarlo salud
solo para barra de progreso. Al siguiente lo voy
a llamar Armadura. También recuerda tomar
esto es variable. Así podemos verlas como variables
aquí dentro de la gráfica. Y puedo usarlas y
podemos modificarlas. Vamos a hacer clic en el texto también. El texto que tenemos
que modificar también. El primero se llama
Text Health, también variable. El siguiente se llama armadura con
brazo fijo y
también es variable. Ahora realmente no necesitamos
nada más para ser una variable, Esto es lo único
que necesitamos editar. Vamos a compilar y
repasar a la gráfica. Voy a hacer
dos nuevas funciones, la primera llamada
actualización, actualización, salud I. También voy a hacer la otra
llamada actualización, o están casi, o en realidad van
a hacer la misma lógica. Pero éste es para la salud,
éste es para el Ama. Bien. ¿Qué es lo que
realmente tenemos que hacer? Esto es siempre lo que tienes que preguntarte sobre tu codificación. ¿Qué estamos tratando
de hacer ahora mismo? Aquí estamos establecidos este porcentaje para la barra de progreso. Bien, vamos a la gráfica. Tomemos este progreso,
vamos a conseguirlo aquí. Ahora golpeemos y digamos
por ciento porque esto es lo que nos
interesa editar aquí. Se fija por ciento, hagámoslo. Eso es fácil. Vamos a conectarlo.
Hay algo que debes saber sobre el
porcentaje para una barra de progreso. puede ver aquí,
va 0-1 No va
0-100% va 0-11 es Lo que tenemos que hacer ahora, necesitamos obtener la salud
actual
usando una salud de corriente flotante. Hagamos esa variable,
esta salud actual. Digamos por ejemplo, tengo 100 de salud y me
dañé como diez, y ahora tengo 90 de salud. Si enchufa esto ahora mismo, el valor será 90. Eso no tiene sentido porque
el valor máximo es uno. A pesar de que te queda como
una salud de 100, todavía
te mostrará la barra completa porque en realidad una es
la barra completa aquí. Tenemos que dividirlo de alguna manera. En realidad
también necesitamos
la salud máxima , la salud actual, la salud. Cuando los dividimos, si arrastras de la salud
actual y divides la salud máxima, por ejemplo, digamos
que tienes 90 en salud. Podemos decir 90/100 porque
esta es tu salud máxima. Esto será 0.9 Entonces el
0.9 nos enchufamos aquí, eso va a ser correcto porque
ahora la barra porcentual
será algo así
cada vez que pierdas diez, ¿bien? Por ejemplo, digamos que
me quedan 40 de salud, 40/100 es 0.4 y eso
va a enchufar aquí Y la barra de progreso
estará en 0.4 Así, será correcto ahora. Bien, esto está fuera del camino. Hagamos
lo mismo por aquí. Tenemos la armadura actual
y tenemos la armadura máxima. Entonces estamos dividiendo
esos dos juntos aquí. Tomemos la barra de progreso para la armadura y
digamos por ciento establecido. Adelante y
conéctelos juntos. Ahora conectemos esto aquí. Ahora también estamos configurando correctamente
la armadura. Lo siguiente que tenemos que hacer
es también establecer el texto aquí. Vamos a hacer clic en el texto. Este es este texto Salud. Tomémoslo aquí
y digamos Set Text. Veamos aquí. Set
Text, Es éste. Y vamos a
conectarlo ahora. Establecer texto. Hagamos lo mismo
por el conjunto de armaduras. Tenemos que actualizarlos a ambos. ¿Qué tiene que haber en el texto? ¿Qué necesitas mostrar
aquí? Esto es muy sencillo. Apenas esta variable,
la salud actual. Si mi salud actual es 40, quiero mostrar el
número 40 aquí. Muy fácil. Vamos a golpear desde
la salud actual, inicia sesión aquí. Y como Unreal Engine
convertirá automáticamente la variable float en una variable de texto y
solo la conectará aquí Bien, muy agradable, Muy fácil. Hagamos
lo mismo por aquí. Rompamos esta
armadura actual. Enchúfelo. Y así,
eso ya está terminado. Bien, así que eso fue todo. Esto está actualizando ahora la armadura y esta
está actualizando la salud. Sigamos en la siguiente.
164. 11.07 Actualiza la interfaz de usuario de salud y armadura: Bien, ahora lo
que tenemos que hacer es actualizar la salud del
jugador. Ahora nos pusimos a la
salud ahora mismo. Recuerda en la base de jugadores
en la gráfica de furgoneta que establecemos a la salud y armadura del jugador cuando engendran,
eso debería actualizarse Ahora podemos actualizarlo
en otro evento. Pero creo que es mejor simplemente
hacerlo como continuar
el código aquí. Y la salud, cuando
establecemos la salud, establecemos la variable
y la replicamos. Vamos a continuar con
el código aquí. Déjame arrastrar éste hacia abajo. Tengo más espacio.
Déjame crear un nuevo evento. Recuerde, cuando actualiza la interfaz de usuario, se está ejecutando
a través del cliente. Ui está corriendo
a través del cliente. Tú lo catales, hazlo aquí arriba. Tenemos que crear un evento de cliente llamado Set Player Health. Entonces tienes que ejecutar esto
en ser dueño de cliente confiable. Ahora lo que tienes
que hacer con éste es, déjame llevarme todo
esto aquí. Ya tenemos la referencia principal de
WB. Recuerda que aquí tenemos el controlador del
reproductor. Y podemos decir así. Entonces podemos arrastrar de
aquí y decir actualización, creo que lo llamamos
actualizar salud, esta. Ahora podemos conectarlo
al evento así. Ahora podemos enchufar la
salud ahora aquí, llamemos al
evento del cliente CL update o CL set player health. Este para la salud actual. Sólo vamos a
enchufar este de aquí para la máxima salud. Ya tenemos una
función que creamos, establecer la salud máxima del jugador. Así de aquí. Bien,
esto es completamente funcional. Ahora hagamos lo
mismo por la armadura. Tenemos el set de armadura de jugador. Déjame mover esto un poco
hacia abajo así. Y hagamos un nuevo
evento llamado L, Establecer armadura. Ejecutarlo a través del
cliente, confiable. Entonces ejecuta el cliente uno
aquí arriba, Establecer armadura de jugador. Este para este, justo antes de que necesites la referencia
del controlador del reproductor, necesitas B principal. Entonces necesitamos llamar a la
actualización armadura y connect, conectar las variables
al evento igual que antes. Conectemos aquí la armadura
actual. Para la armadura máxima, voy a enchufar
la función, obtener player max armor. Recuerda que la función es
básicamente obtener la información del jugador y tomar
esa información de aquí. Bien, volvamos
al gráfico de eventos, Salud y Armadura aquí. Y ahora debería estar funcionando. Estamos llamando al evento,
va a actualizar la interfaz de usuario, llamemos
Set Player Armor o Set Player Health.
Vamos a hacer clic en Reproducir. Ahora si selecciono Terris, puedes ver que está
correctamente configurado 100.100 Lo que está pasando
es en el Comenzar Juego, estamos fijando la salud de los
jugadores Recuerda la
salud del jugador que has definido en tu tabla de datos,
esta salud máxima. Es establecer la salud del jugador. Va a ir aquí a este evento
pasando por el servidor. El servidor va a establecer esta variable en lo que sea que
haya enchufado aquí Entonces va
a actualizar la interfaz de usuario, estos valores,
porque está pasando por el cliente actualizando la interfaz de usuario. Está pasando por
aquí actualizar la IU de salud. Es tomar esos números en los
que has iniciado sesión. Te está dando el porcentaje porque los has dividido. Y luego también estás mostrando el texto correctamente a la
pantalla a través de esta. Esto fue por actualizar
la salud y la UI, en realidad, nuestra salud y armadura. Y ahora podemos usar
este set de salud de jugador y establecer armadura de
jugador también cuando le estamos infligiendo daño
al jugador.
165. 11.08 Inflige daño a la salud: Ahora que hemos terminado con el set de salud y el set de armadura, sigamos adelante e infligiremos
el daño al jugador. Aquí tenemos el evento de
daño que usamos antes y solo lo usamos para ver si realmente infligimos
daño al jugador. Comprobamos que en
las lecciones anteriores donde golpeas la cabeza,
haces algún daño. Si golpeas el cuerpo,
haces otro daño. Y podemos ver que está imprimiendo,
así que en realidad está funcionando. Cualquier daño está funcionando
aquí. Bien, bien. Entonces ahora queremos infligir el daño real aquí
cada vez que infliges daño, y esto viene
del daño aplicado. Entonces, si vuelves a
la lógica de tiro aquí para la línea de
rastreo, traza, cuando golpeas al jugador, estás infligiendo este daño. Si aplicas daño a un actor, automáticamente seguirá
adelante y disparará este, cualquier evento de daño si
recibes el daño. Ahora cualquiera que sea el daño que recibas, este es el daño que has aplicado aquí dentro
del daño aplicado. Y dijimos que dentro
de nuestra tabla de datos, estamos aplicando daño
al jugador aquí en
el cualquier daño. Lo que podemos hacer ahora,
podemos tomar la
salud actual para el jugador. Podemos decir, por ejemplo,
ahora mismo mi salud es de 100. Entonces podemos decir 100 menos. Estamos restando 100 de menos, digamos que el daño fue
diez, eso serán 90 Tenemos que volver a establecer la salud. Antes de hacer eso, me gusta
tener este nodo de abrazadera. Sólo estoy asegurándome de que
no vamos por debajo de cero. No queremos tener una salud
de menos diez por ejemplo. Estamos sujetando este valor para que sea, el mínimo es cero por lo que ya no
puede ir por debajo de cero. Y el máximo,
solo voy a arrastrar este, obtener player max health
y enchufarlo aquí. Ahora está sujetada. Y entonces
podremos volver a establecer la salud. Vamos a poner la salud a
este valor que tenemos. ¿Bien? Lo que está pasando es básicamente que estás
infligiendo diez daños. Por ejemplo, va a decir la salud actual que es
100 menos diez, es decir 90. Vamos a
pasar por aquí para
asegurarnos de que no vamos por debajo de cero. Y el valor de 90
será enchufado aquí. Ahora la nueva salud que
tenemos es en realidad 90. Ahora bien, en lugar de establecer
este estado así, esto funcionaría porque
si tienes este ícono, esto significa que este
se ejecuta en el servidor. Si sostienes el ratón sobre él, y en la parte inferior
dice solo autoridad. Este evento solo se
dispara en el servidor. Nuevamente, está bien establecer
variables o es correcto establecer variables en el servidor
y luego replicarlas. Eso va a funcionar perfectamente. Sin embargo, recuerde que ya hicimos este evento de
salud del jugador establecido, y esto también actualiza
la interfaz de usuario para nosotros, en lugar de simplemente volver
a llamar a esta interfaz de usuario, y tenemos que actualizar la interfaz de usuario. Si tuviéramos que hacerlo de esta manera, teníamos que copiar esto, pegarlo aquí, y
hacerlo así. En lugar de hacer
esto, ya
hicimos una función o un evento aquí. Digamos establecer la salud del jugador. Y podemos simplemente llamar a
eso que acabamos de hacer. Y podemos enchufarlo aquí. Automáticamente
solo pasará por
esto y actualizará también la interfaz de usuario, porque la llamamos aquí, bien. Muy bien, increíble. Ahora
también aquí por la muerte, si la salud actual es igual a cero y
podemos hacer una rama, si eso es cierto, queremos
llamar un evento de muerte. Esto es cuando muere el jugador, cuando la salud actual es cero. Eso lo haremos
más tarde. Pero por ahora, tenemos esto conectado. Bien, hagamos clic
en Reproducir y veamos si realmente funciona aquí. Si solo cojo un arma
y le disparo al jugador, ahora ves que el jugador
tiene 90 increíbles. Si le disparo a la cabeza,
le disparó -20 Ahora tengo 70 de salud que está funcionando correctamente. Vamos a
probarlo en el servidor. Si el servidor dispara al cliente, permítanme minimizar esto aquí. Si el servidor dispara al cliente, eso
también está funcionando, increíble. Si saqueo como
otra arma aquí, eso también está funcionando Bien, esa
lógica está funcionando. Ahora sigamos adelante y hagamos la
armadura en la siguiente lección.
166. 11.09 Inflige daño a la armadura: Bien, para repartir la armadura, básicamente
vamos
a hacer el mismo método. No obstante, para la armadura, en realidad
quiero
hacerle menos salud al jugador si
ya tienes armadura. Entonces no voy a
hacer la misma cantidad de daño a la salud, solo alejando todo
esto, así. Y yo quiero hacer
primero la armadura, solo alejarla. Bien, entonces tomemos la armadura
actual ahora
mismo, son 100 como comienzo. Lo que quiero decir es, tomemos esta armadura y restémosla
del daño. No quiero
restarlo solo uno por uno. De hecho quiero restarlo, este valor, el daño, si solo lo multiplico por, digamos 1.5 y después quiero aplicar el
daño a la armadura La armadura se va a dañar mucho más rápido que
la salud actual. No va a dañarse
como la salud actual. Se va a dañar mucho más rápido porque lo
hemos multiplicado por 1.5 también puedo simplemente
arrastrar de este,
Se mantiene organizado
así aquí. Impresionante. Ahora bien, con
esta resta, lo que podemos hacer es, de nuevo, igual que antes,
sujetemos el flotador Nos aseguramos de que
no vaya por debajo de cero. El máximo es vamos a conseguir este jugador max armadura
y enchufarlo. Y ahora pongamos
la armadura actual. Nuevamente, tenemos la función
llamada set, set player armor. Y vamos a poner
la armadura así como así. Y ahora se implementa, bien. Si solo juegas aquí y solo
podemos probarlo. Se puede ver aquí, yo soy el
cliente disparando al servidor. Estamos perdiendo la armadura. Ahora bien, no tiene sentido
tener una armadura si
vas a perder esa salud por la
que de todos modos te estás
dañando. Entonces en este momento esto realmente
no
tiene sentido porque sigues
perdiendo la salud y muriendo. Lo que quiero decir es que
si tienes armadura, vas a
perder una salud más lenta, una menor cantidad de salud. Lo que puedo hacer aquí, en vez de restarle el daño
a la salud, éste de aquí, en vez de
restarle el daño
quiero arrastrar de aquí y
decir seleccionar flotar aquí Ahora queremos preguntar, ¿
la armadura es igual a cero? Tomemos la armadura y digamos, ¿es igual a cero? Cuando dice pick a, si este bullying es cierto,
adelante y elige a Si la armadura es cero, eso significa que en realidad
solo queremos aplicar este daño que teníamos
antes así. No obstante, la armadura en estos
momentos no es cero. Esto significará que aquí es
el valor B. Entonces yo en realidad, esto
significa que tenemos armadura y quiero infligir un
daño más lento al jugador. Si solo arrastro esto aquí, quiero dirigir desde aquí y luego decir dividir este daño por, digamos por ejemplo, 2.2 0.5 Hagamos entonces el daño. De hecho, estamos
reduciendo el daño antes de que se lo hagamos al jugador. Bien, ahora tiene sentido
que tengamos armadura, porque cuando tengamos armadura, en realidad
vamos
a recibir menos daños. Y hagamos clic en play. Y probemos aquí a
este mecánico. Si me acerco al servidor, si acabo de disparar al jugador aquí, se
puede ver que estamos
recibiendo daños ahora. El valor aquí, necesitamos
eliminar los decimales. Eso está bien por ahora. Pero se puede ver que la armadura está funcionando. Siempre que
perdamos la armadura, vamos a
recibir mucho daño. Vamos a recibir el daño que hay ahí sin la armadura. Bien, esta funcionalidad funciona. Siempre puedes
controlar estos valores, cuánta armadura pierdes aquí, también cuánto estás perdiendo él. Pero ahora está
funcionando para la interfaz de usuario. En realidad necesitamos eliminar
las cifras decimales. Volvamos aquí
en la B principal aquí. Lo que quiero hacer es básicamente
quiero redondear el valor. Si tomo este flotador, puedo usar este llamado round y estamos
redondeando el valor Si el daño
ahora mismo no estamos realmente
en el menos, pero digamos en el plus. Si tenemos 1.6 de salud, se
convierte en dos. Podemos usar esa y
podemos redondear el valor. Y ahora podemos arrastrar esto
al texto y enchufarlo. Simplemente borremos
el viejo de aquí. Hagamos esto en su lugar, y hagamos lo mismo aquí. Usemos round y
eliminemos este viejo. Enchufarlo aquí.
Organicemos esto. Ahora probemos esto
y veamos si funciona. Simplemente creando algunos
nodos de ruta para que se vea mejor. Ahora vamos a compilar,
haga clic en Reproducir, y veamos si realmente
funciona. Si le muestro al jugador,
se puede ver que está redondeando el valor ahora todo está
funcionando como se supone que debe hacerlo
167. 11.10 Previene el saqueo de múltiples rifles: El problema que estamos
enfrentando en este momento es si
simplemente hago clic en reproducir aquí
y maximizar mi ventana. Se puede ver aquí
he saqueado un cuatro. Sin embargo, si hago clic
aquí para saquear un arma, en realidad
puedo saquear este AK E incluso puedo saquear estos cuatro. Incluso puedo saquear este, y están todos en mi espalda. Esto no se supone que suceda. Y hay un puck dentro
del código aquí en
la base de jugadores Creo que es una solución sencilla. Pasemos al lote. Equipa y suelta lógica aquí. Por aquí en el arma del lote, algo va mal
porque le dijimos que no saqueara el arma si
es la misma arma que la
que hemos equipado Es éste pedir arma de
botín porque aquí estamos tratando de encontrar
el arma en el inventario Estamos tratando de comparar el
arma con el inventario, con la que
estamos saqueando
ahora mismo . Estamos pasando por esto. Estamos tomando el arma
del inventario. Estamos tratando de verificar si
ya tenemos esta arma. Si ya la tenemos,
dejaremos caer el arma Son falsos. Si no la tenemos,
cargamos el arma. Por alguna razón
creo que está
pasando por aquí en vez de por aquí arriba. No es dejar caer el arma. Es como si no pudiera
encontrar el arma. Si solo imprimo una cadena
aquí y digo dos aquí arriba, imprimo otra
cadena y escribo una. Por cierto, así
es como depuras. Ahora voy a ver donde se ejecuta
el código. ¿Está corriendo por
aquí o por aquí abajo? Vamos a compilar y hacer clic en play. Ahora solo
carguemos esta arma. Ahora bien, si hago clic en, dice, si aludio a
éste, dice dos, el código en realidad
va por aquí abajo Va
aquí abajo en lo falso. Es como si estuviera diciendo, no, no
tengo ese artículo en mi
inventario y eso es falso. En realidad tengo este
artículo en mi inventario. Veamos el código aquí.
Vayamos por aquí. Está tratando de encontrar, está tratando de
comparar el artículo en el inventario con el
que estamos tratando de hacer lote. Lo que está pasando aquí
es que primero busca aquí
en el índice cero. Busca en el primer
índice del arma. Si solo vuelvo aquí,
solo cierra esto. Si vuelvo aquí
a la lógica aquí, cuando no encuentra la
primera arma, por ejemplo, si la primera arma es una pistola, entonces ésta
será falsa en realidad, porque estás
comparando la pistola la que queremos
saquear ahora mismo Y no es un rifle, es
decir, que en realidad
solo va a falso. Y luego agrega esta
arma por aquí. Tenemos que ajustar
el código aquí abajo. Lo que tenemos que hacer
es
asegurarnos de que ha recorrido todo
el inventario antes de
que continúe con el código Si solo obtiene el
primer artículo del inventario, que es la pistola, entonces realmente no tiene ningún
sentido
porque nos va a dar
un dólar igual que ahora. Lo que quiero hacer es asegurarme de
que este índice aquí, este índice se puede ver aquí. Si solo hago clic derecho e
imprimo una cadena y
solo puedo mostrarte. Y puedes enchufar el índice para que veas
lo que imprime. Y puedo compilar com
play cuando saqueo éste. Ahora dice cero. Sigue diciendo cero
porque sólo mira
al primer índice. Ahora el rifle es, si solo hago clic más aquí, el primero podría
ser la pistola, el índice podría
ser el rifle. Y sigue comprobando
el índice cero solamente. Ahora permítanme simplemente borrar todo
esto y eliminar esto. Déjame tapar el
índice de rayos por aquí. Déjame moverlo hacia arriba. Vamos a moverlo por
aquí y llamarlo índice de rayos. Vamos a compilar, volvamos. Ahora, quiero comprobar si este es el último índice
antes de continuar. Si solo tomo el
inventario y
vamos a encontrar la variable
aquí, inventario de armas. Vamos a por eso. Digamos último índice para este inventario de armas
que tenemos ahora mismo, este número
es igual
a este índice de área? Hagámoslo más bonito aquí. Ahora hagamos una rama. Y estamos preguntando, ¿estamos en el último índice del inventario? Simplemente eliminemos esto. Déjame enchufar esto.
Si eso es cierto, queremos continuar con el código. No obstante, si no estamos
en el último índice, si aún necesitamos revisar
algunas cosas en el inventario, tenemos que retroceder. Y en realidad no tenemos que hacer nada porque si no
es el último índice, simplemente
vamos
a recorrer esto. En realidad, no estamos
rompiendo el bucle, sólo
estamos rompiendo
el bucle aquí. Cuando encontramos un artículo, en realidad no necesito
hacer nada. Déjame organizar esto un poco, déjame alejar esto, y eso debería arreglar nuestro problema. Bien, aquí he creado algunos nodos de ruta y
se ve más bonita Ahora hagamos clic en Reproducir
y veamos si funciona. Si acabo de saquear esta
arma por ejemplo, y hago clic en, puedes ver que en realidad deja
caer esta en cuatro Y si hago clic aquí, también deja caer esta. Puedes ver aquí está funcionando. No puedo saquear dos rifles
a la vez y
también está trabajando con una pistola
probablemente así Ahora puedo ver que no puedo saquear
dos armas al mismo tiempo.
168. 12.01 muerte: Bien, entonces ahora vamos a
crear la muerte del jugador. Recuerda aquí que hicimos el evento de
cualquier daño y calculamos la salud y armadura y cuánto
daño sufriste. Ahora dijimos este
aquí al final, si la salud actual
es igual a cero, queremos jugar el evento de la muerte. Bien, muy sencillo. Vamos a overere hacer un nuevo
evento rápido llamado muerte otra vez, vamos a ejecutarlo en el servidor porque estamos en multijugador Vamos a ejecutarlo a través de este
servidor, evento de muerte confiable. Y vamos a ejecutar la muerte del servidor aquí
arriba en el evento normal. Entonces corre así. Por la muerte te puedes imaginar que en realidad vamos a
hacer como una muñeca de trapo la muerte, donde el jugador simplemente
cae al suelo Ahora podemos decir tocar montaje de
animación. Sin embargo, solo quiero
hacerlo un poco más divertido y hecho crear una
muerte de muñeca de trapo en lugar de una animación Porque ya
lo hemos hecho antes. Sabemos cómo hacer esto
en lugar de una multidifusión. Quiero mostrarte cómo se hace
la muerte de muñeca de trapo. Para ello, ahora
necesitamos que un representante notifique porque vas a cambiar
las imágenes del juego Recuerda, si quieres cambiar alguna imagen por un
representante, notifícalo aquí Hagamos un nuevo evento
o una nueva variable. Y éste se va a
llamar es Bullion muerto. Vamos a poner esto está
muerto para que sea algo. Vamos a arrastrarlo
al evento. Y éste lo
arrastra también al evento. De hecho podemos llamar a éste. Ahora vamos por aquí. Si la salud actual
es igual a cero, llamemos a este evento de muerte. Pongamos al
jugador para que esté muerto. Acuérdate de hacer esto cierto. Ahora necesitamos representante, notificar esto. Rep notifique que
crea una función. Entonces vamos a hacer doble clic en él. Dentro de aquí, lo que
queremos hacer es simplemente, primero solo preguntar, ¿el
jugador está muerto o no? ¿Este lingote es verdadero o falso? Bien, ¿qué
queremos hacer para que la muerte
reg dole sea verdad cuando la variable
muerte sea cierta? Queremos simular la
física con esta malla. Porque si solo voy
al mercado y
abro la era, solo uno de ellos
no importa realmente. Y solo abres
el activo de la física. Abres el
activo de física como puedes ver aquí. Si haces clic en Simular, podrás ver al jugador
muriendo así. Esto es en realidad reg death
si solo lo simulas. Y lo puedes ver, esto
es lo que quiero hacer. Para ello, necesitamos
simular la física. Tomemos esta malla
y digamos simulaciones. Establecer simular la física para que sea verdadera. También quiero desactivar el
movimiento para el jugador. Así que no puedes presionar
tu teclado y moverte. El jugador toma el movimiento del
personaje y dice desactivar el movimiento. Ahora el jugador no puede
presionar el teclado para moverse. Vamos a compilar y ver qué pasa si simplemente hago clic en play. Ahora también engendro al otro
jugador. Déjame dispararle a este
jugador y ver qué pasa. Voy a dispararle a este jugador. El jugador muere pero cae
por el suelo. De hecho, arreglemos eso también. Tenemos que
fastidiar algunas colisiones. Y esto se debe a que la malla ahora
está simulando la física. Si echamos un
vistazo a la malla aquí, si bajamos a la configuración de
colisión, podemos ver que en realidad no
tiene colisión física, lo que
significa que va a
caer por el suelo. Sólo tiene solapamiento. La física se superpone cuando golpeo con mis
bandejas de líneas para hacer daño, pero no tiene colisión
física, necesitamos habilitarlo Tomemos ahora esta malla. Permítanme arrastrar de aquí
y decir set collision. Vamos a bajar por aquí. Configura la colisión habilitada. Voy a habilitar colisión. Voy a colisionar
aquí. Colisión habilitada. Tengo tanto una consulta como física. Adelante
y selecciona eso. De hecho voy a
hacerlo antes de que la física lo contrario el jugador
caerá por el suelo. Voy a habilitar primero
la física. Intentemos eso. Ahora
tenemos física. Bien, ese error está arreglado. Hay que tratar de ver
qué otra caja tenemos. Ahora otra vez, voy a ir
a matar a este jugador de aquí. Bien, Ahora el jugador está
muerto. El jugador está aquí. Impresionante. Un problema con este jugador en este
momento es en realidad, tiene la animación inactiva encendida. Porque puedo ver al
jugador respirando ahora mismo. Se puede ver que los hombros se mueven y tenemos una
animación jugando. Tenemos que detener esta animación
porque se ve tonta. Hagámoslo.
Vamos a quedarnos aquí. En realidad se puede
decir play animation. Puedes seleccionar esta animación de
reproducción. Simplemente no estableces nada dentro de aquí que
realmente elimine todas las animaciones
y el jugador no
tendrá ninguna
animación aplicada. Ahora otra vez, solo
haz doble clic aquí para hacer una nota de reencaminamiento para que puedas ver
lo que estoy haciendo Entonces no es difícil
así así. Bien, ahora vamos a compilar. Creo que también noté un bicho
con la sombra. Si acabo de engendrar al jugador otra vez. Y le mostré al jugador. Bien. Impresionante. Ahora hay
un bicho aquí con la sombra, porque aquí como este jugador, se
puede ver que puedo moverme por ahí. Esto se debe a que, recuerden que
tenemos una
malla de tercera persona . Malla de tercera persona. Lo que hicimos antes es
si buscas sombra, hicimos que esta
muestre sombra oculta. Hicimos esto lo recordamos, hace
mucho tiempo en este curso porque queríamos mostrar
la cabeza del jugador. Estamos usando esta
malla en tercera persona para mostrar la sombra correcta. Hagamos malla en tercera persona, hagámoslo por aquí. Por ejemplo, digamos set hidden, creo que se llama set
set hidden in game set
cast hidden shadow. Éste,
no digamos nada porque ya no quiero
mostrar mi sombra. También hay una
última cosa que olvidé. Y este es el componente de la
cápsula. Este componente cápsula, no
quiero que
choque con armas
y cosas así De hecho voy a desactivar colisión para esta también. Voy a hacer eso antes habilitar la colisión
para la malla, porque a lo mejor a veces esta cápsula choca con esta
malla y crea un desastre. Vamos a alejarlo y
digamos que se habilitó la colisión establecida. Digamos que no hay
colisión así como esta. Y es de esperar que así sea. Vamos a alejar esto. O en realidad simplemente
muévelo aquí abajo. Y no necesitamos
alejarlo todo el camino por allá. Ahora debería funcionar. Vamos a compilar ahora.
Haga clic en Reproducir. Si solo voy por aquí, déjame engendrar a este jugador Ahora puedo dispararle al jugador. Ahora hemos destrozado
toda la muerte, increíble. Yo no choco con el jugador. El jugador aún no se mueve. Y si solo me mudo aquí
con el otro cliente, se ve
que puedo mover
mi cámara como quiera que lo haga, como la sombra se
ha ido, aquí estoy muerto. Por supuesto, puedes
hacerlo más complejo. Al igual que puedes crear
una cámara de espectador. En lugar de hacer esto, incluso
puedes desactivar la cámara. No puedes, eres
así y no puedes
mover la cámara. Pero creo que está bien
por ahora. A mí me encanta esto. Sí, todo está
funcionando correctamente. El problema
ahora mismo que tenemos es que el jugador no está soltando las armas una vez que
tienes el arma. Aquí puedes ver, una vez que
tienes armas y yo te disparo, sigues sosteniendo
esa arma. Quiero que el jugador
deje caer el arma, porque imagínese si
todos los jugadores están sujetando las
armas cuando mueren, todas estas armas se
irán como
a los 2 minutos del partido. Quiero que el jugador
deje caer el arma, y nosotros también podemos hacer eso. Sigamos adelante y pasemos
a la siguiente lección.
169. 12.02 Deja caer un arma cuando estés muerto: Bien, así que sigamos adelante
y hagamos que el jugador deje caer todas las armas cuando
el jugador muera por aquí. Siempre que establecemos esto en verdad. Así que permítanme arrastrar
de esto y hacer una rama y preguntar si está
muerto está puesto en verdad. Porque más adelante
vamos a establecerlo falso cuando el jugador
esté respondiendo. Pero por ahora, el jugador está muerto y queremos dejar
caer el arma. Bien, volvamos como recordatorio y veamos qué
hicimos por el arma de caída. Si vuelvo al evento de arma
lutqudrop,
o a una gráfica, y por dejar caer el arma, en realidad
está Y pulsamos el botón y
luego se nos cayó el arma. En realidad solo necesitamos
llamar a este evento aquí. realidad no estamos
presionando un botón, solo
estamos forzando al jugador
a soltar todas las armas. Así que en realidad
vamos a hacer esto. Este evento buscó el tipo de arma
equipada. Y creo que tenemos que
modificar esto
porque no es sólo el
arma equipada que necesitamos soltar, también
necesitamos dejar caer
la otra arma que está en nuestra espalda
o en nuestro muslo. Necesitamos realmente modificar
este código ligeramente. Volvamos solo para
anotarlo y ver qué
pasa por aquí. Llamemos al servidor. Creo que se llama arma de lanzamiento de
solicitud de solicitud. Arma de caída. Éste. Y adelante y
llámalo ahora mismo. Cuando volvamos a llamar a
éste, va a dejar caer
el arma equipada, pero en realidad
queremos dejar caer todas
las armas en el inventario. Permítanme simplemente modificar
esto para este evento. Voy a añadir una nueva variable. Agreguemos la base del arma. Porque vamos a
darle la entrada queremos aquí, base de armas. Y llamémoslo nosotros en cambio. Aquí tenemos que especificar
qué arma queremos soltar cuando hacemos clic en el
botón para soltar el arma, cuando hacemos clic en la K,
quiero soltar mi arma. Este de aquí, arma equipada. Ahora bien, esto es correcto
para éste. Ahora golpeemos desde
aquí y digamos nombre. Obtener la variable name
igual que antes. Obtener información de armas y romper esto y luego
podemos obtener el tipo. En lugar de hacer esto, podemos eliminarlo y
podemos enchufar esto en un, déjame simplemente alejar todo
este código. Esto, y podemos ver
lo que estamos haciendo ahora. Nosotros lo hemos organizado todo. Todo se ve bien. Simplemente expandiendo esto aquí. Ampliando esto aquí también. Impresionante, Tenemos esta puesta a punto. Ahora si vas a la gráfica de
salud y armadura, ahora podemos especificar de qué
arma estás hablando. Simplemente queremos dejar caer todas
las armas en el inventario. En lugar de hacer un bucle de cuatro, podría hacer un cuatro cada bucle, nuevo con el inventario aquí. Y podríamos enchufar el
inventario para cada uno de ellos, podríamos dejar caer el arma. Sin embargo, recuerda con
un cuatro cada bucle, no espera a que se reproduzca
este código. Va a jugar dos veces
de este código de arma de caída. En realidad va a
fastidiar tu código aquí porque
va a cambiar el arma aquí. Va a cambiar este
valor aquí antes de que tengas la oportunidad de terminar
este ciclo de código. En lugar de hacer esto,
lo que voy a hacer es que voy a
hacer un bucle manual. Lo que podemos hacer aquí es que
podemos tomar el inventario. Solo asegúrate de
que esta no esté vacía, porque no queremos
dejar caer armas. Si esto no tiene nada, tomemos la longitud de este inventario y asegurémonos de
que sea mayor que cero porque no queremos hacer nada si es
mayor que cero. Así como así. Si es
mayor que cero, también sigue adelante y
suelta el arma. Si es mayor que cero, esto significa que tenemos
algo en el inventario. Déjame obtener el primer artículo
que tenemos en el inventario. Esto será en el índice cero. Quiero seguir adelante
y dejar esto. Golpeemos desde aquí. Así como esto, creo. No necesitamos hacer más aquí. Porque si vuelves
al arma de lanzamiento, recuerda dentro de esta función de arma de
caída, ya
eliminas este
artículo del inventario. Porque es muy importante sacarlo del inventario. Ahora de lo contrario vas a conseguir
como un bucle infinito aquí. Retrasemos este código. Vamos a retrasar por algo como 0.1 Entonces podemos volver atrás
y volver a reproducir este código. Entonces vamos a decir de nuevo, solo
voy a
hacer algunas notas
espejadas para que podamos ver
realmente lo que estoy haciendo por este de aquí, como esto y así como esto y
solo hacerlo del
otro lado también. Lo que estamos viendo
aquí básicamente es soltar esta arma y luego retrasar el código y luego
intentar ejecutar esto de nuevo. Intenta verificar si esta
longitud aún está por encima de cero. Recuerda, la quitamos
aquí en el arma de caída. Técnicamente debería ser cero
si solo tuviéramos un arma. No obstante, si tenemos dos armas, la longitud de ésta
seguirá siendo una. Porque la longitud de la
misma era de dos antes. Porque teníamos dos armas. Ahora es una sola arma.
Voy a revisar de nuevo. Es la longitud por encima de
cero Si es. Y tómalo de nuevo. Toma
esta arma. Déjalo caer. Así que sigue cayendo
hasta que ya no tengas nada
que puedas arrastrar desde aquí y no decir más
o nada de armas que soltar. Imprimirá la cuerda si tienes cero armas para
empezar o si has dejado caer todas tus armas
del inventario, ahora puedes hacer las más pequeñas, creo 0.05 tal vez incluso. Pero déjame ir con 0.1 Realmente no importa que
el jugador no se dé cuenta. De todas formas, permítanme simplemente
hacer clic en Reproducir. Y probémoslo
y veamos si nos equivocamos. Si tengo esta arma aquí, este jugador saquea
todas estas armas En realidad, déjame mover a
este jugador por aquí. Para que podamos ver que las
armas están siendo arrojadas. Déjame dispararle a este jugador. Ahora podemos ver al jugador
realmente soltar las armas aquí. Esta pistola y la K. Si me acaba de soltar esto y me
acerco a la pistola, en realidad
tengo una pistola
yo mismo, así que déjeme caer esto. Puedo saquear esta pistola. Incluso puedo saquear la K que
este jugador dejó caer. Puedo montarlo igual que antes. No hay nada realmente
malo en ello. Impresionante. Vamos a probarlo en el
cliente también. Este era el servidor. minimizar esto e
ir al cliente. La jugada para el servidor. Voy a querer que el servidor
vaya a muchas armas. Ahora como los iones van a disparar a los jugadores, aquí están. Voy a dejar esto en cuatro. Quiero la K, puedo tomarla. Impresionante. Todo
está funcionando ahora mismo. Ahora mismo tenemos un problema con no poder saquear
dos armas en estos momentos A veces tenemos
un problema donde se nos ha caído el arma y realmente no
podemos saquearla porque trata de
compararla con el arma caída De hecho, sigamos adelante
y arreglemos eso también. Esto es como lo que hicimos
con el arreglo de armas. Si solo volvemos, si
vuelvo aquí en mi gráfica, laúd y equipar y este es
el código de arma que hicimos Recuerda que comparamos la
variable de arma de lote con la que queremos mucho
ahora mismo si es lo mismo, borramos la notificación,
entonces la ejecutamos aquí. Porque recuerda si tienes
el mismo valor correr dos veces, no
se ejecutará. Tan simple como eso. Volvamos. Déjame
abrir la gota aquí. Pasemos aquí al arma de
lanzamiento. La forma en que quiero hacer esto
es porque dentro de unas funciones
en realidad no se puede hacer un retraso como
lo hicimos antes aquí en el arma de lote donde hicimos un retraso aquí antes
de ejecutar el código. En funciones no
se puede hacer un retraso. Esto es otra cosa. Esta no es la demora normal
que solemos hacer. Tenemos que hacerlo realmente
fuera de la función. Tenemos que hacerlo aquí
afuera en vez, por aquí, cuando queremos
dejar caer el arma. Hagamos el código aquí. Quiero hacer que el arma caiga aquí y
ponerla en nada como esto. Entonces quiero arrastrar de aquí y decir retraso igual que antes. Ponlo 20.05 y luego quiero seguir adelante
y soltar el arma Antes de hacer esto, no
quiero hacerlo todo el tiempo. Quiero comprobar si esto
es lo mismo que antes. Voy a tomar esta
arma para que deje caer y decir, ¿es esto igual
al arma aquí en el
inventario que acabo de encontrar? Déjame hacer una rama.
Si eso es cierto, quiero hacer esto aquí,
déjeme retroceder. Si eso es cierto,
quiero hacer esto aquí. Si es falso, solo quiero
ejecutar el código como antes. Déjame reorganizar esto para que realmente
puedas ver
lo que está pasando Bien, así, estamos tratando de comparar el arma para que caiga con la que estamos
tratando de soltar aquí. Y si es lo mismo, vamos a
aclarar esto y hacer todo esto. Bien, genial por aquí,
en realidad no necesitamos esto. Podemos simplemente eliminar
esta de aquí. También la otra cosa,
a veces de nuevo, el arma se vuelve invisible porque este actor no puede
reconocer a este actor, pesar de que son los mismos. En lugar de hacer esto, solo
eliminemos esto. Borra esto, y
vamos a sacarlo aquí abajo. En cambio, constantemente eliminamos esta arma para que caiga
antes de ponerla de nuevo. Y eso está bien. En realidad no hay ningún problema con esto. En realidad hagamos eso
también para el saqueo. En lugar de verificar si es
lo mismo,
eliminemos esto. Hagamos eso
porque
realmente no duele demasiado o realmente no
duele. En realidad, en
realidad no importa. Sólo tienes que seguir adelante y
conectarlo así. Adelante y compilar. Voy a dar click en jugar
ahora, vuelve a comprobarlo. Es principalmente para el
cliente porque
aquí es donde ocurrirán los
problemas de replicación. Aquí. Como el cliente,
como el servidor. Voy a saquear algunas
armas y
destacarme aquí y
matemos a este jugador Ahora el jugador está muerto. Ahora voy dejar caer mi arma
para saquear esta Ahora estoy soltando pistola,
cargando la pistola. Funciona para que podamos
saquear ambas pistolas. Carguemos esta arma. Simplemente sigue saqueando el arma
y mira si te equivocas, si tienes algún problema
o si todo está bien Podemos ver que nada se
vuelve invisible, todo se ve bien. Sólo estoy tratando de ver si
hay algún error en este momento. Creo que vi un bicho donde
en realidad se me cayeron los cuatro. Ya se puede ver que se me cayó la entrada
para cuando presione en su lugar. este momento el error
es si elegimos un jugador aquí y
equipamos dos armas, y si hago clic en G
para soltar el arma, se
puede ver que el arma en
mi espalda se está cayendo. Y esto es después de las nuevas
ediciones que acabamos de hacer. Comprobemos lo que está pasando. El problema es quizá
con el eludir el arma o dejar caer
el arma aquí Para el lanzamiento del arma, estamos soltando el arma
equipada. Vamos a comprobar primero
si esto es cierto. ¿Cuál es el arma equipada? De hecho, hagámoslo aquí abajo. Hagámoslo aquí abajo para que podamos imprimir el nombre del arma. Sólo tienes que enchufarlo aquí
y compilar y guardar. Ahora debería decir pistola. Cuando trato de soltar mi arma
y sí dice pistola, el arma equipada es correcta. No hay nada malo
cuando saqueamos el arma. Ahora conocemos el
arma de botín. La lógica es correcta. Estamos tratando de dejar caer la pistola, pero por alguna razón se está soltando el
rifle. Ahora vamos a imprimir esto. Permítame también tratar de ver
si estoy desarmado o no. En realidad, no tiene sentido porque estamos
soltando el arma. Entonces sabemos que no estamos desarmados, estamos soltando la pistola Algo va mal aquí. Y creo que este bucle, nuevo, ya te lo dije antes, los bucles no esperen a
lo que intentas hacer. Este es un problema con los bucles. A veces
simplemente ejecutan el código. Si solo vuelvo aquí, creo que está tratando de soltar la segunda
arma que saqueas Porque no va
a esperar tu retraso. En realidad va a
recorrer y soltar el último índice. Creo que esto es
lo que está pasando. En cambio,
desconectemos esto. Permítanme borrar esto. Aquí,
déjame alejar esto. Ahora, cuando encontremos un arma, hagamos una nueva variable. Hagamos uno nuevo llamado arma
encontrada para soltar. Es éste, encontró
arma para caer. Vamos a poner esta
arma encontrada para que caiga para ser verdad. Entonces rompamos el bucle. Ahora hemos encontrado un arma y solo tomamos notas
igual que antes. Lo que podemos hacer con
esto ahora es dejarme simplemente desconectar esto
y alejar esto. Ahora tomemos esto y
hagamos una rama y preguntemos, ¿tenemos un arma? Encontró arma para caer. Si eso es cierto,
primero queremos establecer esto en falso. Porque la próxima
vez que hagamos esto, queremos asegurarnos de
que no esté molestando. Lo siguiente es que queremos
dejar caer esa arma. Solo mudando esto aquí, y esto está bien. Vamos a soltar el
arma igual que antes. Pero vamos a hacerlo aquí
abajo cuando el bucle esté realmente completado aquí. Y el arma para soltar puede
ser simplemente el arma que
tienes ahora mismo. Porque recuerda que
has roto el lazo, así que sigue estando en el
arma que has encontrado. No necesitamos hacer
nada dentro de aquí. Entonces vamos a demorar. Y entonces vamos
a configurar esto para que sea para interactuar de nuevo.
Bien, vamos a compilar. Lo siguiente que queremos hacer
es que todo esto es correcto. Aquí no hay nada malo. Lo siguiente que quiero hacer, quiero volver a mi armadura de salud y
dañar la lógica de aquí. Solo asegúrate de que
tengas este retraso tal vez a 0.2 creo que tuve que
0.1 Si falla, a veces esto es porque estás soltando las
armas demasiado rápido. Creo que voy a llegar al 0.2 y vamos a compilar
y guardar todo. Esta es la lógica
que tenemos hasta ahora. Si te has perdido algo, solo asegúrate de que
se vea así, así
como la lógica para
dejar caer el arma. Si solo vuelvo
a mi gráfica aquí, saqueando, asegúrate de que el
saqueo sea así Eliminamos la comparación. También puedo eliminar este nodo
de reencaminar. Esto es lo que tenemos hasta el momento. Simplemente borramos esta variable, al instante yacemos un poco, y luego saqueamos el arma Bien, esto se ve bien. Así como para el arma de lanzamiento, hicimos esta arma equipada para que se adjuntara a este servidor. Y luego usamos el tipo de
arma aquí y nos
aseguramos de romper el bucle
así para que no se baje. Bien, esta es nuestra lógica hasta el momento. Si es necesario, podemos
intentar arreglar las cosas de nuevo, pero creo que esto debería arreglarlo. Vamos a probar
y asegurarnos de que
nada está molestando. Voy a
minimizar el servidor. Voy a jugar con
el cliente porque es mayormente donde la
replicación va mal. Tomemos un arma
aquí como servidor. Ahora bien, si voy con el cliente. Aquí con el cliente y le disparo al servidor aquí está se
me cae el arma. Trato de saquear. Puedo saquearla. Trato de saquear la pistola. No puedo porque tengo uno. Si la dejo caer, voy y trato de saquear
la pistola aquí Ahora mismo tengo un
problema de replicación con la pistola. Si solo lo cierro y vuelvo a echar un vistazo aquí
por los retrasos, tengo 0.05 después la caída del arma y luego
retrasamos 0.1 para
asegurarnos de que nos puede gustar esta interacción después
de ejecutar esta función. Además, si
vuelves a la salud, este es 0.3 Ahora podemos
intentar que vuelva a hacerlo 0.2, pero solo mantengámoslo en 0.34 Ahora también antes de que probemos cosas, vayamos a la
muerte que hicimos aquí En lugar de establecer la
malla en colisión habilitada. Porque para la malla, si bajas
a la colisión, puedes ver que también está interactuando con las
armas. Está interactuando con la
estática del mundo y la dinámica mundial. Intentemos habilitar solo la física de
colisión, no la consulta, no nos estamos superponiendo con las armas
y causando problemas. En lugar de la colisión habilitada, voy a establecer la física solo porque solo nos
interesa la física. Para que podamos hacer ese efecto de muñeca de trapo
y caer al suelo La física solo debería
ser buena aquí. Ahora probémoslo
y veamos si funciona. Creo que tengo un error antes
con el jugador que interactúa. Quiero recordar esta
caja para poder
arreglarla aquí como el jugador o el cliente. Vamos a
disparar al servidor. Ahora puedo dejar esto, tratar mucho puede saquear la K la pistola Ahora también puedo saquear la
pistola. No tengo ningún
problema si salgo. Se puede ver aquí
tengo un error diciendo eje no tratando de leer la
propiedad interactuando jugador. Si solo haces clic en el error, aquí vas a él. Aquí sólo está recibiendo un error. Creo que es el
jugador el que se está muriendo. En realidad, está configurando a
ese jugador a esto cuando dice axis non. Simplemente puede arreglar esto
asegurándose de que sea válido. Si solo me muevo esto, puedo tomar esto y hacer clic derecho y convertirlo en
un get validado. Y asegurémonos de que sea
válido antes de continuar. Entonces lo siguiente
también es el bicho aquí, porque me da que
la era también está aquí. Ahora hice esto es válido porque también
viene de aquí arriba. Se puede ver que viene
directamente a este bucle. Aunque arreglemos esto, esto va a
doler por esta. Asegúrate de que esto sea válido. Nos dio una época
por esta. Estamos tratando de revisar las cosas
cuando esto no es válido. Asegurémonos aquí
después del jugador, y creo que estamos interactuando con el jugador
que está soltando el arma. Copiemos esto
aquí arriba, aquí abajo. Asegúrate de que este jugador no
sea el que también dejó caer
el arma. Porque no queremos
saquear el arma, simplemente
nos dejamos caer. Eso no tiene ningún sentido. Alegremos todo esto. Así como esto, en realidad, creo que podemos eliminar éste, porque ya estamos
pidiendo esto. Hagamos una sucursal y
vamos a conectarla juntos,
Conectados con aquí. Si esto es cierto,
vamos a establecer
al jugador que interactúa,
vamos a moverlo hacia adelante. Creo que podemos eliminar esto, porque solo verificamos esto. Vamos a eliminar. Suprímase esto. Eso debería funcionar bien. Este
lo estamos configurando y luego estamos comprobando si es válido.
Eso también está bien. Bien, Ahora
tomemos algunas notas. El motivo por el que no estoy borrando esto y solo
conectándolo aquí así, porque quiero asegurarme de que esto sea válido
antes de continuar. Porque también estamos
viniendo de
aquí arriba y en realidad
conectándonos directamente con esto. A pesar de que estamos aquí arriba, en realidad
necesitamos
asegurarnos de que esto sea válido antes de
continuar por aquí. También voy a asegurarme de
que el jugador sea válido. Arrastrar aquí y
decir es válido, adelante y también,
así que asegurándose de que el
jugador sea válido y también asegurándose de que
el jugador no sea el que ha
dejado caer esta arma Ahora volvamos a disparar
al servidor. Ahora dejemos caer el
arma, carguemos el arma. Déjame hacerlo
más grande para que podamos
ver realmente lo que está pasando ahora. Todo está funcionando. Puedo dejar caer la pistola. Si cargo dos cosas y me
caigo soltamos la pistola, ya no tenemos ese bicho. Bien. Puedo cargar todo y no me sale
ninguna caja cuando dejo esto. Bien, ya todo está funcionando. Sé que ha sido
confuso porque
teníamos mucha caja
que necesitamos cuidar. Asegúrate de que cuando
el jugador esté muerto, estés soltando el arma. Estamos obteniendo esta primera
arma en el inventario. Si la longitud del
inventario es superior a cero, lo que significa que tenemos un
arma en el inventario, estamos soltando el
arma y también
retrasando una cantidad que no
haría que el arma cayera
buck 0.3 en este punto Ahora mismo, tal vez
podamos reducirlo a 0.2 Pero estoy satisfecho
con esto ahora mismo, nadie va a
saber esto de todos modos. Entonces dentro de la caída del arma, hicimos este bucle aquí. Hicimos entrar a este toro,
así que no nos molestamos. Y no necesitamos
replicar esta variable porque solo estamos comprobando
cosas dentro del servidor Estamos usando esta variable
fuera del servidor, así que nunca la estamos usando
en el cliente. Realmente no necesitamos
replicarlo. Estamos corriendo
por esto, estamos limpiando esta variable primero. Antes de que dejemos caer el arma. Dejamos caer el arma, la
retrasamos para asegurarnos de que ésta se ejecute y luego los jugadores
puedan interactuar con ella. Una vez más, el retraso
es 0.1 para éste. Por último, para el arma de
lote, nuevamente, simplemente
eliminamos directamente
la variable de arma de lote. Notificar lo despejó y
luego lo ejecutamos aquí abajo. Bien, así que eso fue todo
lo que sé, es un poco confuso pero tuvimos
que deshacernos de todos esos temas. Ahora otra vez, si
tienes algún problema, eres más que bienvenido
a visitar mi sitio web, Pixel Helmet.com o
siempre puedes hablar conmigo
en Discord también Puedes ver mi discordia en mi perfil y es solo
el casco Pixel también Bien, gracias por ver y pasemos
a la siguiente lección.
170. 12.03 Respawn: Ahora que hemos terminado
con la muerte, asegurémonos que el
jugador responda también. Dentro de la
base de jugadores. Nuevamente, dentro de la salud y armadura y daños. Déjame golpearlo por aquí a la derecha y clic derecho. Y luego cierra
las pestañas a la derecha. Bien, dentro de aquí, hagamos clic derecho ahora y hagamos un nuevo evento personalizado.
Llama a éste. Volvamos a hacer clic
derecho y convertirlo eventos personalizados y llamarlo Re. Entonces éste se va a ejecutar en el servidor igual que antes. Vamos a ejecutar esto, el
servidor confiable. Este de aquí arriba,
llamemos al servidor repawn. Ahora estamos listos para
dar la respuesta. Ahora para la reaparición, lo que simplemente queremos hacer es cambiar la ubicación del
jugador. Porque imagina que el jugador
ha muerto aquí en el suelo. Básicamente vamos a mover a este jugador de nuevo al punto
de desove Esto es lo que estamos
tratando de hacer ahora. Ya tenemos los
puntos de spawn over en el modo de juego. Si recuerdas, si
vuelves a los planos, abres el modo de juego y
dentro del modo de juego, tenemos esta única
solicitud, spawn player Ahora no queremos
engendrar al jugador, recuerda que solo hicimos muerto al
jugador al no movernos Técnicamente,
ya estás engendrado. Nunca
te sacamos del juego. No queremos volver a
llamar a esto. Lo que queremos hacer es que solo queremos volver a hacer esta
lógica. Lo que podemos hacer es que
necesitamos el modo de juego para tomar los puntos de generación antiterrorista
y terrorista Volvamos a la
base de jugadores y digamos get game mode. Esta es solo la referencia, digamos modo de juego
como este. Luego conectado a este obtener referencia
del modo de juego desde
nuestra interfaz de blueprint Ahora consigamos los puntos de engendro
darorista, consigamos los puntos terroristas,
éste obtiene puntos éste obtiene Ahora lo que queremos
hacer, igual que antes, volvamos al modo de juego. De hecho, podemos simplemente tomar un punto de spa aleatorio y luego copiar esta transformación
como antes. También podemos copiar esto aquí, control C. Volvamos
al jugador control base
V. Conectemos al terrorista de condominios
y al terrorista con estos y
hagamos ahora una notificación de representante también, recuerde conectar este. Necesitamos el equipo que
hayas seleccionado. Necesitamos saber si el jugador es un antiterrorista
o un terrorista. Recuerda, eso lo hicimos en la UI. Volvemos a la UI donde
seleccionas al equipo. Vas a la gráfica aquí, seleccionaste en qué
equipo estás. Esto te lleva al modo de juego. El modo de juego aquí, seleccione equipo. En realidad vamos a crearlo como
una variable para que podamos usarlo, porque ahora mismo no
hay forma de que podamos usarlo. Hagamos un nuevo equipo variable. Si solo sostengo el
mouse sobre él, puedes ver que es una referencia de clase de
actor, si eres actor y es esta. Y puedes seleccionar la referencia
de clase. Vamos a compilar ahora recuerda, solo
necesitamos establecer
cosas como esta dentro del servidor,
no en el cliente. Aquí en el servidor,
voy a configurarlo equipo y luego conectar este de aquí abajo para
que sea más limpio. Ahora bien, no necesitamos
replicar esto porque nunca lo vamos a
usar en el cliente Solo necesitamos usar esto en el servidor para que podamos encontrar
el punto de generación correcto Esta variable en sí no
es necesaria, realmente no
necesitamos
replicarla. Ahora establecemos esta
variable por aquí. Tenemos que conseguir el control
del jugador. Vamos a hacer clic derecho y decir obtener controlador y encontrar
la función aquí. Y luego golpeemos y digamos referencia
del controlador del jugador. Vamos a conectarlo ahora como
el controlador del reproductor. Consigamos la variable de equipo
que acabamos de hacer. Y ahora vamos a
conectarlo aquí abajo. Bien, ahora estamos preguntando, el jugador
es un terrorista
o un antiterrorista? Si el jugador es un
antiterrorista, lo que significa que esto
es cuando es cierto, vamos a encontrar los puntos
antiterroristas. No obstante, cuando el
jugador sea terrorista, esto será falso,
por lo que elegirá B, que son los puntos terroristas. Bien, hagamos clic derecho
y promocionemos esto a nuestro jugador variable
responder puntos. O en realidad déjame
llamarlo responder transformar.
Eso es más correcto. Nuevamente, tenemos que
convertirlo en una rep, notificar porque estamos cambiando
la ubicación del jugador. Este es un
cambio visual para hacer clic en él. Compilemos,
entremos dentro de aquí. Simplemente lo que tenemos
que hacer dentro de aquí es cambiar el
acto transformar. Vamos a hacer clic derecho y
decir conjunto y seleccionado. Es solo uno mismo. el jugador que acaba de
morir. Eso está bien. Ahora para la nueva transformación, tomemos esta
que acabamos de decir. Ahora el problema con
este, ¿no? Ahora el jugador, si haces
clic en la malla, recuerda que hicimos antes dije que la escala era
1.6 en la escala. Si solo conecto esto
directamente a aquí, esto se restablecerá a 11.1 Esto se debe a que este punto de España
aquí es en realidad 111 Lo que puedes hacer es que en realidad
estamos tomando esta transformación desde
los puntos de España. Si haces este punto
punto a 1.6 mira, déjame simplemente volver
aquí a capa base. Enchufa esto directamente y
tienes esto a 1.61 0.61 0.6 entonces en realidad será 1.6 aunque
tengas este conjunto En realidad está tomando la
transformación de este punto de engendro. No obstante, para mi ejemplo
aquí ahora para tu juego, si tienes
que 111, realmente no necesitas
hacer esto aquí, pero para mí, sólo
voy a romper esto aquí. Voy a transformar, romper transformar aquí,
hacer transformar aquí. Para la ubicación está bien,
la rotación está bien. No obstante, para la báscula,
quiero mantenerla a 1.6 Vamos a
conectarla así. Ahora vamos a compilar
y volvamos. Y también queremos
asegurarnos de que está muerto se pone en falso porque
ahora ya no estamos muertos. Nosotros solo respondemos, arrastramos
de aquí y decimos la muerte y pusimos a
éste para que sea falso. Ahora tenemos que trabajar en esto
en la siguiente lección porque todavía
tenemos física simulada y todavía no tenemos
colisión y todo eso. Y vamos a trabajar en
eso aquí en la siguiente lección. Pero por ahora,
hagamos clic en play. En realidad, antes de hacer clic en play, necesitamos responder aquí. Nunca hemos convocado a este evento. No va a pasar nada. Vamos, llamémoslo aquí cuando el jugador ya no
esté muerto. Siempre que establecemos esto en falso. Y en realidad vamos a hacerlo aquí. Siempre que hayas terminado de
dejar caer todas tus armas, déjame retrasar el
código 3 segundos. Vamos a mejorar
esto después, pero por ahora, solo
respondamos y veamos si funciona. Vamos a demorar 3 segundos y luego
vamos a responder. Déjame simplemente hacer clic en Reproducir. Elige a Terrorista aquí, Selecciona
Terrorista por ejemplo. Ahora solo voy a meter
algunas armas en este jugador. Salga por aquí con el cliente. Ahora déjame
abrirlas dos sobre el cliente. Yo soy el jugador aquí. El jugador debe
responder en uno de los puntos de generación después de 3
segundos, como puedes ver aquí Ahora mismo, no está pasando nada. Esto se debe a que
todavía hemos simulado la física. Y ese es el tema. Si solo tratamos de hacer clic
en la malla de la cápsula. Déjame decir aquí, escondido en el juego, voy a
apagarlo para poder ver las cápsulas y en realidad
ver qué está pasando. Y si solo vuelvo
a hacer sonar
el arma, sal aquí como terrorista. Voy a salir aquí. Ahora. Vamos a intentarlo de nuevo.
Disparemos al jugador y veamos. Porque si la cápsula se mueve, no
es un bicho que tenemos. Si echas un vistazo
ahora, después de 3 segundos, podrás ver que la cápsula
desapareció del jugador. Y esto se debe a que la
cápsula ya está aquí. Ahora el jugador en realidad está aquí. No obstante, el jugador
sigue por ahí de nuevo. Esto se debe a que hemos
simulado la física. Y todo eso
necesitamos para trabajar en la siguiente lección aquí de
esta parte y hacer que funcione.
171. 12.04 RepNotify Not Dead: Bien, entonces ahora estamos de vuelta y vamos
a trabajar en esto. Es que cuando es falso. Para que este representante, notifique y así podamos responder correctamente al
jugador. Lo que quieres hacer primero,
vamos a eliminar la física. Este es el primer
paso. Tomemos la malla y voy a
decir simular la física fuera. Lo siguiente que queremos
hacer es que queremos volver a ensombrecer desde
esta malla de tercera persona. Así que adelante y haz eso. Lo que voy a hacer
es volver a poner la malla. Voy a arrastrarlo hacia abajo. Configura la colisión habilitada. Si acaba de hacer clic en la malla, se establece para consulta solamente. Voy a dar click aquí
y configurarlo para consulta solamente. Puedo restablecerlo a
como era antes. Vamos a hacer un
nodo de reencaminamiento aquí y moverlo hacia abajo. Lo siguiente que
queremos hacer es simplemente mirar hacia arriba aquí y ver
qué tenemos que hacer. Ahora. Tenemos que tomar
este componente cápsula y tenemos que hacer clic en él. Y tenemos que configurarlo colisión habilitado,
arrastre desde aquí. Y digamos establecer colisión
habilitada y seleccionarla. A continuación, configure la colisión habilitada aquí. Sin embargo, para esta, ahora esta es correcta. Además, recuerda que
deshabilitamos la animación, necesitamos ejecutarla de nuevo. La animación para el jugador
es este plano de animación. Este de aquí arriba, el modo de animación está configurado para el plano de animación De hecho, tenemos que
volver a hacerlo desde aquí. De la malla. Y recuerda que esta es
la malla aquí de ella. Y digamos establecer el modo de animación. Y sigue adelante y selecciona
este conjunto de modo de animación. Y es necesario configurarlo de nuevo
para usar el blueprint de animación. Ahora mismo cuando lo
configuramos en blueprint de animación, en realidad
necesitamos definir también
qué blueprint de animación Debido a que restablecemos la
configuración aquí arriba, lo que podemos hacer es que podamos arrastrar de nuevo desde esta
malla y decir clase es este
conjunto de instancia de animación revestido y conectarlo Es el que llamamos
jugador MBP aquí, el plano de animación
que creamos antes Ahora lo que tenemos que hacer, todavía
vamos a reservar porque solo te voy a mostrar y ya puedes ver
lo que está pasando. Si solo volvemos a abrir esto, juega aquí al terrorista. Ahora vamos a disparar a este jugador. Ahora a este jugador le disparan. Y puedes ver aquí el
jugador sigue portando, pero aquí no hay nada. Y también estoy tirado en el
suelo en esta pantalla, todavía
hay un bicho. Esto se debe a que, recuerden
con simular la física, tuvimos este problema
antes en el curso. Si sostienes el mouse sobre
él, dice si este componente está actualmente unido
a algo, es la malla está unida
al componente de la cápsula, Entonces iniciando la simulación lo
desprenderá En realidad está separado del componente de
la cápsula. Tenemos que volver a colocarlo de nuevo. Tomemos la malla aquí. Vaya, no los dos. Tomemos la malla y
digamos adjuntar componente
a componente. Si no recuerdas
lo que hicimos, siempre
puedes dar click
sobre el arma saqueada Notifica si encuentras
el arma saqueada desenvuelta.
Esto es lo que hicimos. Deshabilitamos la física y volvimos a unir el arma
a la escena raíz Aquí está lo mismo
que estamos haciendo. Volvamos a aquí. Ahora vamos a
conectar de nuevo o unir la malla al componente de la
cápsula. Recuerda que está conectado
a, en realidad no vamos a nada. El zócalo no es ninguno.
Para la regla de ubicación. Digamos chasquido a blanco. Ajustar al objetivo. Ajustar al objetivo. Bien, veamos qué pasa si simplemente haces
clic en Reproducir de nuevo. Y pruébalo
aquí como el jugador. Voy a dispararle de nuevo
al jugador. Ahora echemos un
vistazo a lo que sucede. El jugador es engendrado por aquí. No obstante,
todavía hay un problema. El jugador está aquí abajo, también en mi pantalla, el
jugador como una cámara extraña. El motivo de esto es porque si vuelves a hacer
clic en el Mesh, cuando simulas física, restableces todos tus ajustes. Para mí, la ubicación es esta
y la rotación es esta. Para el jugador, inicialmente
esto también se restablece. De hecho, necesito volver a
ponerlo de nuevo. Si tomo la malla y digo set set ubicación relativa y rotación,
necesito enchufar eso. Sólo voy a
hacer clic en mi malla y copiar mi ubicación. Péguelo en. Este es el valor z
y la rotación es -90 Vamos a compilar ahora,
guardar todo A ver si
todo está funcionando. Vamos a hacer clic en Reproducir. Como
Terrorista otra vez, como este tipo. Déjame dispararle ahora al jugador
y ver qué está pasando. Ahora el jugador está
desove en el suelo. Por alguna razón, la
encuesta reconsideró. Ahora estamos buscando normales. El único problema
que tenemos ahora mismo es que el jugador está
desove en el suelo Para solucionar el problema donde el
jugador está debajo del suelo. Lo que podemos hacer ahora mismo cuando hacemos clic en play y el jugador realidad
está desove correctamente, no
hay nada malo con
los puntos St. Realmente no necesitamos
hacer nada con esos. El problema ahora mismo
está dentro de aquí, cada vez que adjuntamos a este jugador, en realidad
hagámoslo mantener relativo. Mantengamos al jugador relativo. Escalado. Relativo significa justo lo
que hayamos escrito aquí. Ya que en realidad
va a mantener nuestra báscula. Volvamos aquí al representante
del jugador para la transformación que hicimos. En lugar de hacer 1.6
en realidad voy a
borrarlo y ponerlo aquí. Porque de nuevo, si
lo configuro para que se mantenga relativo, va a mantener mi báscula. Compilo y hagamos
clic en play y veamos qué pasa si
selecciono terrorista aquí. Vamos a disparar al jugador. Voy a disparar más. Veamos
dónde responde el jugador. Ahora el jugador
responde por ahí. Si solo maximizo mi punto de vista aquí se
ve que el jugador tiene peón No obstante, el jugador está flotando. Esto se debe a que me
olvidé de habilitar el caminar. Si sólo vuelvo
a en su lugar aquí. Recuerda que por aquí configuramos la animación a esto y
desactivamos el movimiento. Cuando deshabilitas el movimiento, tienes que habilitarlo de nuevo. La forma en que haces esto es
dejarnos hacerlo justo antes
del plano de animación Vamos a pasar esto. Tomemos el componente de
movimiento del personaje y digamos establecer el
modo de movimiento como este. Establecer el modo de movimiento conectado. Ahora puedes configurar este para
que esté caminando, el caminar en el estándar
que tienes por defecto, déjame simplemente mover esto hacia abajo. Y ahora debería funcionar. Si
compilas y guardas todo, a lo mejor quiero mover esos puntos de
generación más abajo. Así que en realidad están
llegando al suelo. El jugador no está
cayendo al suelo. Si solo los muevo hacia abajo, o en realidad están
aquí en el suelo, esto debería funcionar si
solo los muevo también. Éste. Éste.
Éste, y éste. Y los muevo hacia abajo
para estar en el suelo. Bien, vamos a jugar ahora
selecta terrista, aquí estoy. Vamos a engendrar como
el otro jugador. Ahora voy a
dispararle al jugador. Veamos qué son los jugadores, el jugador está
desove por allá Y puedo andar por ahí
normalmente como antes, si disparo como cliente. Si solo lo maximizo para
ver si está funcionando, ahora el servidor está muerto. El jugador responde allá, eso es trabajar en ambos sentidos. Si solo lo intento de nuevo, ahora el jugador muere
rápido porque no
hemos establecido la salud máxima. Y eso lo podemos hacer
en la siguiente lección. Pero se puede ver que el
jugador se está muriendo correctamente y nada
se está cortando. Impresionante, Pasemos
a la siguiente lección.
172. Restablece la salud en Respawn: Ahora reiniciemos
la salud del jugador cuando el jugador responda. Y esto es muy fácil porque ya
hicimos todo el trabajo si solo
vuelves a la salud aquí. Y lo que podemos hacer es por aquí, siempre que el jugador responda, cada vez que pongamos al jugador
para que ya no esté muerto, esto de aquí se disparará desde aquí. Lo que podemos hacer es que podemos
arrastrar y decir set player él, creo que lo llamamos este
Set salud del jugador. Básicamente este es el
que hicimos antes. Así que establece la salud del jugador. Y también tenemos uno
llamado set Player Armor. Llamen a esos que ya
hicimos funciones. El que vamos a ver aquí. Consigue la salud máxima del jugador. Y también tenemos que conseguir
player max armor. Vamos a recargar al
jugador con salud y armadura. Ahora podemos jugar y
debería funcionar. Eso era todo lo que teníamos que hacer. Bien, déjame disparar aquí y asegurarme de
que sea correcto. Si solo minimizo esto para
poder ver tanto la salud, esta, como también el
cliente. Solo disparemos como el
Klein para ver si funciona, el jugador debería repo Aquí. Se puede ver que el
jugador vuelve a tener salud. Podemos ver que el jugador se está reiniciando en 100 de
salud y armadura Y tengo que dispararle de
nuevo al jugador antes de que el jugador muera. Impresionante, lo probaré aquí en el servidor
y veré si funciona. Y el cliente
debe responder con la
máxima salud
que es correcta también y todo está
funcionando como se supone que debe hacerlo.
173. 12.06 Previene el daño al equipo: Ahora somos capaces de
disparar al compañero de equipo. Si eres terrorista, no
deberías
poder disparar a tu
compañero terrorista Algunos modos de juego que
puedes tener eso también, pero si deseas
no tener daño de equipo, pasemos a
la base de jugadores. El daño se hace
aquí en el lote. Equipa aquí el rodaje y recarga. Aquí es donde disparamos. Este es el trazo de línea que estamos creando. Simplemente lo que queremos hacer es no querer aplicar daños. Si es a tu compañero de equipo a quien
le estás disparando. Lo que queremos comprobar es si el actor de éxito está en
el mismo equipo que tú, puedes llevarte a este actor de éxito
y decir obtener referencia. Vamos a conectarlo después de aquí. Si sólo me muevo esto un
poco fuera de aquí, vamos a ampliar esto para que
tengamos espacio para trabajar. Y también voy
a hacer espacio aquí. Vamos a agregar el código en el medio. Consigamos la referencia del jugador. Digamos get
controller porque
tenemos esta variable de equipo
dentro del controlador. Obtener
referencia del controlador del jugador dentro de aquí podemos acceder a la variable de
equipo que acabamos de hacer. Eso lo hicimos en las lecciones
anteriores. Podemos usar eso para
ver si el equipo de aquí es el mismo que el
que tenemos sobre nosotros. Si solo tomamos el controlador
del jugador y tomamos esta variable de equipo, los
comparamos, estamos tomando esta variable
de equipo del jugador que acabamos de golpear. Estamos tomando nuestra
propia variable de equipo. Si esto no es igual a esto, entonces podemos aplicar daño
si solo haces una rama. Y podemos aplicar el daño Si no estamos en el mismo equipo, quiero aplicar daño. No obstante, si estamos
en el mismo equipo, realidad no vamos
a hacer nada. Déjame reorganizar
esto un poco aquí. Bien, entonces ahora que
se reorganiza, si no estamos en el mismo
equipo que el otro tipo, vamos a aplicar daños. Y eso era en realidad
lo único que teníamos que
hacer si selecciono ahora a terroristas. Y si aquí selecciono terrorista, no
debería poder
dañar a este compañero de equipo Si le disparo a este compañero de equipo, se
puede ver que no
pasa nada No estamos perdiendo la salud. Intento con éste. Si intentamos aquí como servidor
además de disparar al cliente, no va a pasar nada. Bien, entonces así es como
evitas los daños en el equipo.
174. 13.01 Diseña la interfaz de usuario de puntuación: Ahora que ya tenemos hecho
el juego base,
sigamos adelante y
sumemos algunas anotaciones de equipo. Puntuación para
antiterroristas y terroristas. Para que puedas ver cuánto
has ganado en rondas. Sigamos adelante y
bajemos a la interfaz de usuario. Ir a la interfaz de usuario en la interfaz de usuario principal, vamos a hacer
las rondas aquí arriba. Lo que quiero hacer es básicamente
quiero mostrarte lo que
estamos tratando de hacer para que sea más fácil entender esto es lo que estamos tratando de hacer. Tener una puntuación para
antiterrorista y tener una puntuación
para terrorista. Nuevamente, desglose esto. Mira qué elementos necesitas
usar e intenta hacerlo
tú mismo si quieres, sin mi ayuda, porque
deberías poder comprar. Ahora bien, si aún necesitas algo de ayuda, si no estás seguro,
si no estás seguro, sigamos adelante y
hazlo juntos. Primero, necesitamos una caja horizontal porque hay dos
elementos uno al lado del otro. Sigamos adelante y
busquemos cuadro horizontal. Déjame asegurarme de que no los
ponga dentro de aquí. Simplemente golpee la
caja horizontal en el panel del lienzo. Está dentro de aquí. Asegúrese de que el punto de anclaje esté en
el centro de la pantalla. Si escribes cero
en la exposición, ésta debería estar en el
medio. Tenemos que ajustar la alineación x a 0.5 en la posición de la
x. sólo voy a decir 30, en realidad, el xy 30, así que no está en el
borde de la pantalla. Nuevamente, tamaño al contenido. Bien, ahora se va a dimensionar a cualquier contenido que
tenga dentro de aquí. Primero, permítame agregar una superposición. Dentro de esta superposición, necesitamos una imagen porque
necesitamos un fondo. Agrego esta imagen a la
superposición para esta imagen. Solo busquemos panel, el mismo panel que hemos
estado usando hasta ahora. Entonces este un panel doc otra vez, cambia el sorteo en cuanto a margen de
caja a 0.50 0.5 y ahora podemos estirarlo Entonces ahora a las 11 en el zoom, puedo ver lo grande que es. No creo que vaya a
hacer la talla aquí. Creo que en realidad voy a
controlar esto más tarde. Entonces déjame escribir
32 por 32. Una vez más, voy a controlarlo aquí abajo. Primero, vamos a tener
una caja vertical. Porque necesitamos dos textos uno
encima del otro, necesitamos el primero. Solo busquemos texto. Ponlo dentro de
la caja vertical. Duplica este. Voy a dar
click en ambos. En realidad, vamos a copiar
el estilo de éste. Déjame hacer click sobre él, mantén el
turno y clic derecho. Da clic en ambos.
Mantenga pulsada la Mayús y click izquierdo, Pegamos el estilo. Yo también voy a,
veamos aquí. Para la sombra,
no tenemos ninguna sombra aplicada y eso debería estar bien. Tampoco tenemos esquema. Bien, esta está bien. Ahora seleccionemos los dos que tenemos que hacer. En realidad,
editemos el primero. Digamos antiterrorista. Vamos a escribir uno aquí. Déjame a lo mejor escribir un
aquí para éste. Voy a ponerlo
aquí en el medio. En realidad, éste también.
Pon esto en el medio. Pon esto en el medio también. También aquí en la justificación, voy a
ponerla a la mitad. Ahora da click en las líneas
para eliminar los guiones. Ahora necesitamos algo de
espacio entre ellos. Antes de hacer eso, también
voy a cambiar el tamaño frontal. Creo que es un poco demasiado grande. Voy a fijarlo a 20. Al dar click sobre esta superposición, tenemos la imagen, luego
tenemos la caja vertical. De hecho voy a poner algo de margen en
esta caja vertical. Déjame escribir, o relleno. Entonces déjame escribir 30 y así es como
se ve ahora. Creo que esto está bien. 30 está
bien para esta caja vertical. Empujamos la caja vertical lejos de los bordes
de esta imagen. Voy a cambiar
el color de éste. Solo trata de encontrar el
color que te guste aquí. Para el
antiterrorista voy a reducir un poco la saturación. A lo mejor algo
así está bien. Bien, tengo al
antiterrorista, permítanme agregar un
espacio entre estos dos. Basta con buscar espacio, agregarlos entre
estos dos textos. Para la Y, escribamos diez. A lo mejor eso es un poco demasiado. Escribamos cinco, y volvamos a
echar un vistazo, creo que necesitamos más. Digamos 88 para el espaciado. Simplemente dupliquemos esto. Voy a
duplicar la superposición porque estamos en
la caja horizontal. Se va a añadir
otro al lado. Déjame cambiar
éste a terrorista. Déjame cambiar el color aquí, el matiz a algo rojo. Sólo cero aquí. Es rojo. Voy a reducir
ligeramente
la saturación porque
creo que es demasiado. La saturación es 0.8 Y voy a hacer eso
para el otro también, cambiándolo a 0.8
se queda igual. Agreguemos un espaciador
entre estos dos. Si vuelvo a tomar el espaciador, agréguelos entre es a superposiciones Entonces para el tamaño y la x, escribamos algo como 50, tal vez algo menos, tal vez
no 50. Escribamos 30. Creo que esto está bien. Bien, si compilas ahora, solo
cambiemos esas
variables porque las
vamos a usar
más tarde. Este el número, llama a este T marcador terrorista. Voy a copiar
esto y asegurarme de que esto sea variable porque
necesitamos modificarlo posteriormente. Da click en el otro,
llámalo texto partitura terrorista. Hacer esta variable también. Voy a hacer clic en todos
ellos y asegurarme de que la visibilidad aquí
se dice que no golpea comprobable porque no quiero que el mouse interactúe con ellos. Bien, si solo haces clic
en Reproducir para echar un
vistazo a cómo se ve, así
es como se ve. Creo que todo
se ve bien. Entonces pasemos
al siguiente.
175. 13.02 Diseña la interfaz de usuario de Team Win: Antes de continuar, diseñemos el equipo que gane yo dentro de la interfaz de usuario. Volvamos a
la principal por aquí. Quiero tener para
que diga contar una victoria terrorista o una victoria terrorista cada vez que
gane un equipo. De hecho,
agreguémoslo debajo de esto. Lo que necesitamos es esto
dentro de una caja vertical. Porque tenemos esto y
el texto debajo de él, busquemos un cuadro vertical. Permítanme minimizar
todo esto para que pueda ver dónde puedo dejarlo caer. Necesita entrar dentro
de esta caja vertical. Sólo voy a
dejarla caer entre aquí. Y luego arrastrando
esta caja horizontal
dentro de la caja vertical. Y ahora da clic en
el cuadro vertical. Coloque el ancla en el centro. Establezca esta posición a cero. Voy a establecer la alineación. En realidad primero haga clic en
tamaño al contenido y establezca la alineación en 0.5 Y
para la posición en la Y, voy a establecerla en
30, igual que antes. Ahora lo tenemos dentro
de una caja vertical. Y lo que podemos hacer
es buscar un texto y agregar este texto
al cuadro vertical. Este texto puede estar en el medio, y la justificación también puede
estar en el medio. Vamos a darle algo de espacio, buscar espaciador,
Agrégalo en el medio, Haga clic en él, Digamos, por
ejemplo, 15 o
20, o 25 tal vez. Digamos 25, y así es como se ve. Ahora vamos a dar click sobre este texto. Vamos a desplazar el clic derecho para copiar este estilo frontal haga clic en este clic izquierdo para pegarlo. Para el offset de sombra, sólo
voy a darle
una sombra de dos en dos. este momento no puedes ver nada porque dentro del color de la sombra, necesitas aumentar el alfa a cero, es transparente. Pero si escribes 0.3
por ejemplo, veamos, hay un ligero efecto
sombrío, 0.4 tal vez se vuelve más claro
y esto es lo que tenemos Por ejemplo, podemos
escribir victoria terrorista. Así es como se verá. Bien, para el tamaño divertido, vamos a hacerlo un poco
más grande porque es importante. Ahora se ve bien. Compilemos todo y pasemos
al siguiente.
176. Funcionalidad de interfaz de usuario de 13.03 puntaje y victoria en equipo: Ahora sigamos adelante y codifiquemos
la funcionalidad para la interfaz de usuario. Vamos a abrirlo de nuevo y
haciendo clic en Counter Terrorist. Voy a configurarlo para que esté oculto para empezar,
configurarlo en oculto. No queremos
verlo por defecto. Además, si acabas de subir
aquí, cámbiate el nombre. Cambiémoslo a texto Anuncio de victoria por
equipo
por ejemplo. Puedes llamarlo como
quieras y configurarlo variable
para que podamos
cambiarlo en blueprint Y este el puntaje
antiterrorista que ya tenemos así como el marcador
terrorista. Y ambos son variables.
Bien, así que ya está hecho. Pasemos a la
gráfica que hay dentro de aquí. Lo que hemos hecho
hasta ahora es la armadura como
podemos ver aquí y el MO
ahora bajemos aquí, hagamos un nuevo evento personalizado. Llamemos a esto una actualización de puntaje
terrorista UI. Voy a copiar
este nombre porque lo
escribiré de
nuevo aquí abajo. Digamos ahora
codterrorista score. Lo que tenemos que hacer es para el
terrorista tenemos que tomar la partitura terrorista puntuación y establecer el texto y dejarnos conectarlo. Y vamos a
hacer lo mismo aquí
abajo para el marcador
antiterrorista. Establecer texto y
vamos a establecer el texto. Para el texto básicamente
necesitamos la partitura. Vamos a hacer clic en este evento
y hacer una nueva variable, y valor entero y numérico. Llamemos a esto una puntuación. Lo mismo para este. Hagamos una nueva variable
entera. Llámalo puntuación. Ahora podemos simplemente enchufar este número de
puntaje aquí. El motor neuronal cambiará
automáticamente tu variable entera en una variable de texto para que pueda
imprimirla en la pantalla. Hagamos lo mismo aquí. Alejemos esto
solo para organizar esto. Ahora ya terminamos con esos. En realidad, compilemos
y guardemos todo. Lo último es éste, y éste es un poco más grande. Hagamos clic derecho y
hagamos un nuevo evento personalizado. Llamemos a esto una actualización
equipo ganar anuncio I. Bien, para este, lo que tenemos que hacer
es simplemente establecer este texto también.
Tomemos esta. Recuerda que este está
oculto por defecto. A pesar de que cambiemos el texto, necesitamos mostrar la visibilidad
antes de hacer algo, vamos a golpear aquí y digamos establecer visibilidad para la visibilidad. Vamos a configurarlo
para que no golpee comprobable, así que no podemos interactuar
con él con el ratón Entonces queremos establecer este texto. Déjame mover esto hacia abajo
y arrastrar desde aquí y decir un texto fijo así. Establecer texto, seguir adelante
y conectarlo. Ahora vamos a fijar el texto, dependiendo de si
es el terrorista
o el
antiterrorista el que gane. En realidad necesitamos
saber cuál es el equipo. Recuerda, dentro
del control del jugador, si vuelvo al control de
jugadores planos, definimos este equipo variable Y en realidad podemos
usar esto para saber si estamos hablando del terrorista o del
antiterrorista. Permítanme añadir aquí una
nueva variable. Recuerde que esta variable de equipo
es un tipo de clase de actor. Si acabo de cambiar esto a actor actor aquí y
es referencia de clase, llamemos a este
equipo, solo deletrearlo. Ahora mismo, tenemos a
este equipo aquí. Puedo arrastrar de aquí y decir igual a este equipo igual
a antiterrorista. Si es así, entonces podemos arrastrar
desde aquí y decir seleccionar. Podemos seleccionar qué texto
queremos elegir. Podemos enchufarlo aquí. Estamos preguntando es este equipo
ahora mismo y más adelante vamos a
enchufar información aquí, pero ahora mismo
no tenemos nada. Pero si este valor es
antiterrorista, si eso es falso, entonces queremos mostrar, por
ejemplo, la victoria
terrorista terrorista. Si es cierto, si
es antiterrorista, entonces queremos
deletrear victoria terrorista. Se va a seleccionar el
texto dependiendo de qué equipo haya ganado y le daremos
esa información más adelante. Ahora vamos a hacer doble clic aquí, hacer un nodo re ruta. Bien, ahora mismo estamos mostrando
esto a la pantalla, pero después de un par de segundos
quiero volver a ocultarlo. Si vuelvo y la cantidad de segundos es en realidad el tiempo que tarda la gente en responder. Imagínese si todos mueren, esto viene al servicio de
contador de pantalla ganar después, digamos por
ejemplo, 5 segundos. Se aleja porque inicia una nueva ronda y todos
van a responder. Lo que voy a hacer
es simplemente llamar a esto, por ejemplo, tiempo de visualización. Y podemos enchufar
el temporizador de respuesta más adelante en el tiempo de visualización. Voy a retrasar esto con la cantidad
de este tiempo de retardo, que es el
temporizador de respuesta en el futuro. Y podemos hacer doble clic aquí
y hacer esto organizado. Vamos a retrasar esto. Después de este retraso,
queremos ocultar esto una vez más, solo copiar, pegar esto,
agregar conectado, moverlo aquí, y voy a configurarlo en oculto una vez más. Bien, entonces esto está terminado. Entonces esa fue la UI de puntaje
y esta fue la UI de puntaje. Y esta es la
interfaz de usuario de anuncio que vamos a actualizar. Entonces ahora podemos usar
estos eventos más adelante. Adelante, guarda todo
y pasa al siguiente.
177. 13.04 Haz un seguimiento de los jugadores vivos: Ahora lo que tenemos
que hacer es hacer
un seguimiento de quién está vivo en
el mapa y quién está muerto. Porque realmente no podemos mostrar
aquí en la interfaz de usuario quién ganó. Si no
sabemos realmente quién está en el mapa y en qué
equipo están, también
necesitamos saber en
qué equipo están. Por ejemplo, podría haber cinco personas vivas y todas
están en el mismo equipo. Por ejemplo, antiterrorista y todo el terrorista está muerto. Entonces necesitamos mostrar victoria
antiterrorista a pesar de que tenemos cinco vivos porque podrían ser
del mismo equipo. Eso
es lo que necesitamos saber. Hagámoslo dentro
del modo de juego porque dentro
del modo
de juego
en realidad decidimos todas esas reglas. Lo que podemos hacer aquí
es agregar dos variables. Primero, agreguemos uno
llamado Players Alive. Antes de agregarlo,
cambiemos realmente el tipo de variable
para la variable. Quiero cambiar
esto a base de jugadores. Adelante y selecciona al jugador ahora creo que creo que
esto está mal. Nuevamente
busquemos base de armas, pero base de jugadores, es esta. Éste. Éste de
aquí. Base de jugadores. Ahora, en lugar de sólo una variable
original aquí, vamos a llegar a un mapa. Qué es un mapa, como puedes ver aquí,
puede contener dos valores. Si solo lo seleccionas
aquí, nosotros solo compilamos. Ya puedes ver que
tenemos esta base de jugadores, pero también tenemos la
segunda variable a su lado. De hecho, puedes asignar
diferentes cosas a este jugador. Ahora si hago clic en el
más, por ejemplo, si agrego un jugador aquí, también
puedo agregar un número aquí. Esta variable de mapa, en realidad
se
puede utilizar como en diferentes escenarios. Se pueden tener dos variables. Por ejemplo, puedes tener cada jugador y también
cuántas muertes tienen. Cada jugador está
dentro de esta lista y también tiene cuántas
muertes tiene, por ejemplo. Pero lo que queremos hacer es que
queremos tener a este jugador y también
queremos saber en
qué equipo están. Porque esto es algo
que necesitamos aquí para ver si todos en el mismo equipo están vivos o si están
muertos y todo eso. Cambiemos esta otra
vez a actor, última referencia, porque
este es nuestro equipo. Y sólo voy a
cambiar este tipo de variable. Aquí lo tenemos. Ahora tenemos esta variable,
tenemos al jugador. Si solo compilo, esto
desaparecerá si compilo. Ahora podemos tener al jugador, podemos aquí, en qué
equipo están. Ahora podemos tener a cada jugador
y en qué equipo están. Bien, entonces tenemos vivos
a los jugadores. Voy a hacer
uno nuevo llamado jugadores. Dt es un último más adelante, y trabajaremos con eso
más adelante. Pero hagámoslo ahora. Los jugadores engendran. Vamos a usar eso más tarde. Y éste sólo va
a ser un array normal. Simplemente sabemos cuántos jugadores ha engendrado dentro del mapa Empecemos por aquí.
Hagamos un nuevo evento personalizado. Y esta la vamos a
agregar al mapa de jugadores vivos. Y a éste se le llama
mapa, por cierto. Esta es una sola variable, una matriz, un conjunto. Y ahora estamos
trabajando con un mapa. Agregar mapa vivo de dos jugadores. Lo que vamos a hacer
es que vamos a tomar esto y decir añadir aquí. Podemos agregar el jugador, en realidad necesitamos tener esta referencia de
jugador. Podemos simplemente arrastrarlo y
enchufarlo aquí. Y esta es la base de jugadores. Sólo voy a
cambiarle el nombre a Player. Antes de hacer esto, el
jugador podría estar muerto. El jugador podría
ser agregado a esto. Jugadores muertos, porque cuando respondan, se les
sumarán a esto. Aquí, lo que tenemos que hacer primero en realidad es tomar
esto y decir encontrar. Podemos usar esto. Por
cierto, para los mapas, puedes simplemente arrastrar aquí, ir
a servicios públicos, ir al mapa. Aquí están las funciones
que puedes usar con él. Se puede ver que en realidad no hay
mucho que pueda hacer con él. Puedes agregar, encontrar algo, preguntar si está vacío y así sucesivamente. En realidad no hay mucho que ver con eso. Lo que queremos hacer,
intentaremos encontrar a este jugador y ver si este
jugador está dentro de este mapa. Vamos a
conectarlo aquí, Encuentra aquí. Hagamos esta rama para preguntar si ha encontrado al
jugador dentro de aquí. Déjame mover esto cuatro
abajo un poco. Si encontramos al jugador
queremos tomar esto y decir remove y seleccionar
la función remove. Adelante y quita a este
jugador del muerto del jugador. Permítanme simplemente hacer doble clic aquí y hacer una
nota de ruta trasera para que esté organizada. Ahora voy a arrastrar
de este jugador, adelante y conectarlo de nuevo. Click, voy a mover todo esto hacia abajo así que tengo más
espacio para trabajar. Y podemos mover esto hacia abajo
así. Y ahora lo es. Aquí vamos a encontrar a este jugador dentro
del mapa de jugadores muertos. Y vamos a
quitar al jugador si el jugador ha sido encontrado. No obstante, si no se
ha encontrado al jugador, simplemente
continuamos con el código. Lo que queremos hacer aquí
es éste donde sumamos vivo
al jugador a los jugadores. Ahora eliminamos al jugador
del muerto del jugador, y ahora vamos a agregar este jugador al mapa.
Este es el jugador otra vez. Podemos simplemente desconectar
esto porque ahora tenemos este nodo de reencaminamiento Voy a hacer doble clic
aquí y conectarlo a aquí. De nuevo, haz doble clic aquí, y solo agrégalo a aquí abajo. Ahora lo que tenemos que
hacer es que en realidad también necesitamos esto aquí. Necesitamos saber en qué
equipo está para hacer esto, necesitamos obtener una referencia
al controlador del jugador. Porque recuerda dentro
del controlador del reproductor
tenemos esta variable
y la necesitamos. Bajemos aquí,
déjeme alejar esto. Lo que podemos hacer es hacer doble clic aquí para hacer
un nodo de reencaminamiento Podemos arrastrar aquí y decir obtener
controlador y seleccionado. Recuerda que este es el jugador. Estamos tratando de conseguir
este controlador de juego. Luego desde la interfaz del
blueprint
hicimos la referencia del
controlador get player Ahora tenemos el controlador
del reproductor. Ahora podemos acceder a todo lo que hay dentro de este controlador de
reproductor. Y queremos esta variable de equipo. Vamos a golpear aquí. Equipo
consigue esta variable de equipo. Y ahora podemos hacer clic y arrastrar
y enchufar esto aquí. Vamos a enchufarlo aquí. Y voy a
mover todo esto hacia abajo así tengo más
espacio así como este. Y vamos a
acercarlo y conectarlo. Ahora en realidad estamos agregando a
este jugador al mapa, y estamos eliminando al jugador
de este lugar de jugadores. Bien, ahora esto está terminado. Compilemos todo y pasemos
al siguiente.
178. 13.05 Haz un seguimiento de los jugadores muertos: Lo que tenemos que hacer
es ahora que tenemos que hacer un
seguimiento de los jugadores aquí. Lo que tenemos que hacer
igual que antes, hacer clic derecho, hacer un nuevo evento personalizado
y llamar a este
agregar al mapa de jugadores. Al igual que antes, necesitamos
la referencia del jugador. Entonces, si
buscas una base de jugadores, sigue
adelante y selecciónala aquí
y llama a este jugador. Tomemos el mapa muerto de este
jugador. En realidad, tomemos
primero el que está vivo. Tenemos que eliminar al jugador si el jugador está dentro
de aquí antes agregarlo al mapa muerto
aquí, al igual que antes. Tomemos esto,
veamos si podemos encontrar al
jugador dentro de aquí. Hagamos una rama.
Conectemos esto aquí. Por cierto, para este, me olvidé de
conectar realmente esto como puedo ver aquí aquí para el remove, si es falso, si no
podemos encontrar al jugador
dentro de aquí, adelante y continuar con el código. No quites nada. Vamos a hacer doble clic aquí y hacer doble clic aquí. Bien, eso se corrige. Tenemos que hacer lo
mismo aquí. Si podemos encontrar al jugador, adelante y tomar
esto y decir eliminar. Y vamos a conectarlo. Adelante y quita al
jugador, igual que antes. Yo sólo voy a
reorganizar esto. Bien entonces ahora cuando
hayamos eliminado al jugador, agreguemos ahora al jugador
al muerto del jugador. Tomemos esto, digamos sumar, seguir
adelante y sumar al
jugador igual que antes. Haga doble clic aquí para el
jugador, haga un nodo de ruta trasera. Metamos esto aquí y hagamos de nuevo un nodo de
ruta trasera. Aquí vamos. Ahora hemos
agregado el jugador aquí. Y solo voy
a alejar esto un poco así tengo más
espacio para trabajar. Necesitamos que el
controlador sepa qué equipo está este jugador. Arrastremos esto. Vamos a hacer doble clic aquí. Digamos que obtenga el control, obtenga el controlador en realidad
obtenga el controlador del reproductor. Adelante y conéctalo.
Ahora necesitamos tomar esta variable de
equipo igual que antes
y conectarla aquí abajo. Vamos a moverlo aquí abajo. Y déjame mover esto
un poco así. Voy a mover este un
poco hacia arriba, así como esto. Y adelante y acérquelo. Bien, ahora estamos agregando
el jugador aquí. Y al igual que antes, si no
podemos encontrar al jugador, solo tiene que seguir adelante y
encontrar el controlador y podemos agregar el
jugador a este mapa. Bien, este era el código. Ahora estamos haciendo un seguimiento
de los jugadores que están vivos y también estamos haciendo
un seguimiento de los jugadores
que están muertos. Lo que tenemos que hacer ahora es hacer
un seguimiento de los jugadores
que están vivos, todos los jugadores vivos. Sigamos adelante y hagamos
eso en la siguiente lección.
179. 13.06 Haz un seguimiento de todos los jugadores generados: Para hacer un seguimiento de todos los jugadores que realmente se
generan en el nivel Esto es muy fácil en
comparación con los demás. Vamos a hacer un
evento personalizado llamado add to players spawn array
dentro de aquí Nuevamente, necesitamos al jugador, cambiemos esto
y lo llamemos jugador. Y el tipo es base de jugadores. Simplemente solo queremos tomar esta matriz de engendros de jugadores
y decir elementos de conjunto de matriz y queremos agregar los
jugadores dentro de aquí Ahora tenemos que
elegir el índice. Y el índice es simplemente tomar
esto y decir longitud. Y vamos a
enchufarlo aquí. Automáticamente va
a encontrar la longitud de esta matriz y
va a agregar los
jugadores dentro de ella. El ítem que queremos agregar
es simplemente este jugador. Recuerda también tomar
esta talla para que quepa, ya que si no la
tomas inicialmente, lo que necesitábamos hacer es realmente tomar esta
y decir re size. Entonces vamos a
darle como
cuánto puede contener esta matriz en tamaño. Pero en lugar de
hacer esto,
en realidad solo podemos decir tamaño para que quepa. Tamañarlo automáticamente. Eso está bien. Y podemos doble clic en esto para
hacer un nodo de ruta posterior, y podemos acercarlo más. Esto en realidad está hecho. Esto
es todo lo que tenemos que hacer. Ahora podemos usar todos
estos eventos. Ahora es mucho más fácil para
nosotros porque ahora hemos hecho todos estos y
podemos usarlos en el futuro. Guardemos todo y pasemos a
la siguiente lección.
180. 13.07 Comprueba la cantidad de jugadores vivos: Bien, entonces ahora
en realidad necesitamos verificar si los jugadores están todos muertos
o si están todos vivos. Porque tenemos que ir a
este Nui y exhibir esto. Tenemos que verificar la cantidad de jugadores que están vivos. Aún así, la mejor manera de hacerlo es aquí. Cuando agregamos al jugador
al mapa muerto, entonces sabemos que este
jugador acaba de morir. Y desde aquí podemos comprobar
cuántos jugadores están vivos. Cada vez que muere un jugador, vamos a
comprobar si necesitamos
jugar a esta pantalla
antiterrorista, por ejemplo. Hagamos esto,
permítanme hacer una macro aquí. Vamos a hacer clic en este plus. Para la macro, déjame llamar a este cheque Cantidad
de capas vivas. La razón por la que lo
convierto en una macro en lugar de una función es porque estoy haciendo
un bucle for aquí. O para cada bucle en realidad, para cada bucle
voy a usar este. Lo bueno de una
macro es este retorno. Si solo agrego dos
variables aquí, ambos pines de ejecución, esta se llama ejecutar,
esta se llama. Entonces la razón por la que se
les llama, que el texto desaparece si realmente escribes
ejecutar aquí arriba. Y si escribes, entonces
también desaparece aquí abajo. La salida, en lugar de
hacerlo aquí arriba como una función, cuando comienzas
con la
pluma de ejecución y la terminas aquí, podemos, con una macro, agregar la salida al completo. De hecho, esperamos a que
ocurra el bucle antes de
continuar con el código aquí. Si agrego esta macro a aquí, solo
va a continuar siempre que mi loop haya terminado. Es por eso que en realidad estoy
creando una macro. En este caso lo que quiero hacer, agreguemos ahora dos variables. Al primero podemos llamar vivos a los
terroristas und terroristas. Hagamos esto en una variable normal
entera. Hagamos uno nuevo llamado
vivo y recopilemos, Bien para este, primero
pongamos a cero a los
contrterroristas, los que están vivos y
este a cero también. Porque vamos a bucle
esto y vamos a incrementar la cantidad
dependiendo de cuántos estén vivos. Bien, tomemos vivos a
estos jugadores. Aquí es donde podemos
comprobar cuántos están vivos. Todavía uno. Permítanme simplemente borrar
esto para éste. Para la carrera,
solo puedes tomar esto y decir para cada bucle que realmente
puedes usar esto. Sin embargo, para un mapa no
se puede decir para cada bucle, no
es una matriz, esto es solo para rayos. Lo que puedes hacer es arrastrar, si solo vas al mapa de utilidades y puedes ver esta función. Tienes algo llamado llaves. También tienes algo
llamado valores. Si haces clic en las claves, puedes obtener
todas las claves aquí. Como toda esta parte, puedes conseguir a todos los jugadores. Si arrastras y dices valores, sin embargo, puedes obtener
todos los valores, puedes obtener toda esta sección, esta sección por aquí, tenemos claves y tenemos valores. Y puedes verlas aquí. Si solo arrastras desde
aquí y dices agregar, puedes ver que estás
agregando a esta, cuales son las claves, y estas agregando a esta,
cuales son los valores. Esto es lo que hicimos antes. Tomemos todos los valores. Permítanme borrar esto aquí. Déjame tomar todos los
valores y decir para cada bucle ahora podemos bucle
porque esto es una matriz. Ahora para cada bucle, permítanme simplemente borrar este
y mover este hacia abajo. Vamos a
comprobar qué equipo está vivo puedo arrastrar
de esto y decir, en realidad tenemos que tomar
esto primero y decir igual
y preguntar si esto es igual para
deshacer terrorista por ejemplo. Y seleccione este BP
antiterrorista hacer una rama aquí. Ahora estamos tomando los valores
aquí y estamos preguntando, es esto un valor
antiterrorista en este momento? Significa que un
antiterrorista está vivo. Si eso es cierto, podemos tomar
vivo a este antiterrorista y decir más más. ¿Qué significa plus, plus? Es lo
mismo que decir más uno Y luego establecer
esta variable así,
así, hacer esto
es mucho más corto. En realidad es
lo mismo que agregar uno. Puede mantener el mouse
sobre él y dice agregar uno al
valor especificado, luego configurarlo. En lugar de hacer todo
esto, podemos simplemente hacerlo. Estamos tomando
vivo al
antiterrorista y agregándole uno
porque acabamos de enterarnos de que este valor específico es
un antiterrorista. Bien, si es falso
significa que es un terrorista. Podemos tomar vivo a este
terrorista y decir más y agregarlo
aquí a lo falso. Si es falso, es un
terrorista que está vivo. Cuando termine el bucle, lo que tenemos que hacer ahora
aquí en el regreso, tenemos que decir cuántos terroristas están vivos y cuántos
antiterroristas están vivos. Necesitamos agregar dos variables y ambas son números enteros aquí Salidas, llamar a éste
contar terroristas vivos, y llamar a éste
terroristas terroristas vivos y sin espacio. Ahora podemos agregar ambas variables aquí y emitirlas
al reproductor en el. Cuando completemos el
bucle vamos a continuar el código y así si
vuelvo a ventilar gráfico y acabo de compilar aquí es vamos a continuar
después del bucle y ahora
sabemos cuántos
contra-terroristas están vivos y también
sabemos cuántos
terroristas están vivos.
181. Anuncio de victoria en equipo de 13.08: Ahora que sabemos
cuántos jugadores están vivos, ahora
tomemos
vivos a estos terroristas y preguntemos si esto
es igual a cero. Podemos hacer lo mismo
por el terrorista. Pregunta si esto es igual a cero, justo desde aquí Y di y
usa éste o lingotes Si el terrorista o los antiterroristas son cero. Esto significa que necesitamos este texto aquí porque
no hay más
antiterroristas ni terroristas en el mapa y tenemos que decir o decir quién ha ganado el juego o la
ronda por aquí, nos estamos preguntando, ¿es esto igual a cero o es esto igual a cero? Si uno de ellos es cierto, hagamos una rama y sigamos
adelante y la conectemos. Si uno de ellos es cierto, necesitamos jugar
el anuncio. Entonces volvamos aquí como recordatorio y veamos cómo
llamamos el anuncio. Entonces aquí lo llamamos actualización
equipo ganar anuncio. Yo ahora para jugar esto, no
podemos hacerlo directamente
en el modo de juego porque
recuerda que el modo de juego
siempre se ejecuta en el servidor. Y es por eso que aquí nunca estamos replicando al servidor
porque no tiene sentido Ya se está ejecutando
en el servidor. El cliente no puede acceder al código dentro
del modo de juego. Además, recuerde que la interfaz de usuario se está
ejecutando en el cliente. cliente y el servidor no pueden comunicarse
así, como tú no puedes. El cliente no puede simplemente
saltar al modo de juego porque el
modo de juego solo existe en el servidor y no puede comunicarse con el
cliente Stuff aquí la interfaz de usuario, en realidad
necesitamos como un
medio para ejecutarlo. O necesitamos ejecutarlo a través la base de jugadores o tenemos que ejecutarlo a través
del control del jugador. Como estamos controlando la interfaz de usuario dentro del
control del jugador, estamos creando una interfaz de usuario dentro
del controlador del reproductor. Dentro del mando de juego. Tiene más sentido hacer cosas dentro de aquí con
la interfaz de usuario. Hagámoslo. Vamos a hacer clic derecho. Lo que realmente
tenemos que hacer es
simplemente tomar el WB principal. Tenemos que llamar a este anuncio de victoria de equipo de
actualización. Volvamos al anuncio de victoria
del equipo de
actualización del controlador de juego . Esto es lo que estamos tratando de hacer. Vamos a crear una función
o un evento para eso. Hagamos un evento personalizado llamado anuncio de ganancia de
actualización. Déjame copiar
esto para no tener que a escribirlo
porque ahora tenemos que
hacer un nuevo
evento para clientes corriendo a través de los clientes
porque necesitamos ejecutar
algunas cosas de la interfaz de usuario y hacer clic en
Propietar cliente confiable Vamos a ejecutar el
cliente uno aquí arriba. Bien, vamos a bajar esto. Vamos a conectarlo aquí. En realidad no la M,
esta es la equivocada. Actualizar anuncio del equipo I. Eliminemos esto y
conectemos esto en su lugar. Ahora tenemos que pasar esto por aquí y también necesitamos
ejecutar el tiempo de visualización. Haz lo mismo aquí arriba, solo continuando con el flujo. Y ahora tenemos que llamarlo
aquí a través del modo de juego. Ahora funciona. Podemos simplemente llamar a éste porque se ejecuta
a través del servidor. Recuerda, solo puedes llamar a eventos de
clientes si
actualmente estamos en el servidor. Estamos en el servidor
porque si este evento aquí, si vuelvo, si llamas este evento aquí
a través del modo juego, seguimos en el servidor. Esto es decir que
solo puedes ejecutar este servidor, solo
puedes ejecutar eventos de cliente
si estás en el servidor. Nosotros estamos haciendo eso.
Volvamos al modo de juego. Ahora aquí, después de
que comprobamos que uno de ellos es cero, ahora tenemos que jugar esto. Necesitamos obtener el controlador
o todos los jugadores, porque necesitamos mostrar
para todos los jugadores, necesitamos mostrar este texto aquí
arriba para todos los jugadores. Lo que tenemos que hacer es
que necesitamos un bucle for. Es por ello que hicimos que
estos jugadores engendraran. Tomemos esto
y digamos por cada uno, porque realmente no nos importa quién está
vivo y quién no, en realidad solo queremos jugarlo
para todos
los jugadores engendrados. aquí para cada uno de
los jugadores spawn, vamos a conseguir el controlador
It controller Entonces podemos volver a decir
get player controller reference lo mismo que
lo que hemos estado haciendo hasta ahora. Y ahora podemos llamar a este
llamado anuncio de victoria de equipo de actualización. Llamémoslo actualizar
anuncio del equipo. Éste de aquí. Ahora necesitamos saber
cuál es el equipo. También necesitamos saber cuál es
el tiempo de visualización. El tiempo de visualización, de nuevo, ya te lo dije antes, esto
en realidad es solo el temporizador de respuesta. Mientras estamos respondiendo, queremos mostrar
esto en la pantalla. Déjame hacer una nueva variable aquí en el modo de juego y decir. Temporizador de respuesta. Y
podemos simplemente convertir esto en un flotador y
conectarlo a aquí. Ahora también necesitamos conocer
el equipo para este equipo. Tenemos que mostrar
quién ganó el juego. Para eso, solo necesitamos
tomar con vida a estos jugadores, porque quien esté vivo
es el equipo que ha ganado. Podemos tomar esto y decir valores. Adelante y selecciona esto. Simplemente golpee desde
aquí y diga que se pone. Porque ahora es como una matriz. Podemos obtener este valor. Sólo lo vamos a conseguir
del primer jugador que
encontremos dentro de aquí. No es realmente
importante saber quién es
el jugador porque
están todos vivos, el mismo equipo que ha ganado. Así que sólo vamos a conseguir el primer jugador
que podamos encontrar. Y entonces podemos enchufar
esto aquí. El jugador vivo es
el que ha ganado. Adelante y conecta todo. Y yo sólo voy a hacer apuntes de ruta
trasera aquí.
Y aquí lo tienes. Entonces ahora estamos realmente terminados. Así que estamos llevando al juego a
todos los jugadores que han sido
engendrados Estamos tomando todas
sus leyes de control de juego. Y estamos mostrando
para todos ellos,
este equipo de actualización
lo anunciamos. Y lo que estamos mostrando
es quien esté vivo, este es el equipo que ha ganado. Por lo que ahora hacemos clic en
el temporizador de respuesta. Y voy a configurar
este temporizador de respuesta a tal vez algo así como 3 segundos
por ahora va a compilar. Y ahora vamos a hacer clic en
Reproducir y probarlo. Y vamos a jugar el juego aquí. Voy a seleccionar terroristas aquí, o antiterroristas. Y voy a
seleccionar terroristas, voy a moverme frente
al antiterrorista. Ahora soy el antiterrorista, voy a disparar
al terrorista. Ahora debería decir uno
antiterrorista, Pero ahora mismo no
se muestra nada. Entonces déjame cerrar esto
y ver qué está pasando. Bien, antes de continuar, solo recuerda configurar
este temporizador de respuesta a algo que no sea cero, tal vez algo así como 3 segundos. Además, tenemos que configurar a los jugadores para que estén
vivos cuando engendren, porque ahora mismo
no está pasando nada Nunca hemos llamado a
estos eventos Aquí, compilemos todo,
guardemos todo, y vayamos a la base de jugadores cada vez que este jugador genere. Y esto está dentro
de esta gráfica de eventos. Comienza a jugar cada vez que este
jugador genere y establecemos la
salud de este jugador También quiero ponerlos
a este mapa vivo. Recuerda ahora mismo
en el cliente, este juego de inicio se ejecuta tanto en
el cliente como en el servidor. Nos va a dar un dólar si
llamamos a esto directamente. Debido a que
solo se puede acceder al modo de juego a través del servidor, no
podemos acceder a él
a través del cliente. En realidad necesitamos
hacer un evento de servidor. Hagamos un nuevo
evento personalizado a través del servidor. El primero necesito agregar dos capas vivo mapa y ejecutar
esto a través del servidor. Confiable. Necesitamos hacer
el otro también, llamado server two
layers spon array porque tenemos
ese también Y tenemos que ejecutar esto también
en el servidor. Bien, aquí necesitamos obtener
la referencia del modo de juego. No creo que hayamos hecho
una variable para esto, como hicimos para la ley de control de
jugadores. Hagamos eso también para
el modo de juego. Voy a alejar esto. Digamos obtener modo de juego. Esta es en realidad la referencia. Consigamos el
modo de juego aquí abajo. Esta función, ejecutarlo a través de esta referencia
del modo de juego get. Vamos a mover esto hacia abajo. Sigamos
adelante y conectémoslo. Promocionemos esto a nuestra
variable y llamémoslo modo de juego. Bien, vamos a conectarlo. No necesitamos replicar esto porque esto solo
se ejecuta en el servidor de todos modos Vamos ahora por aquí, tomemos esta variable de modo de juego. Llamemos al agregar a
los jugadores un mapa en vivo. Conectemos esto para éste. Digamos
modo de juego. Nuevamente, tomemos esta
variable de modo de juego que tenemos. Digamos agregar a
los jugadores engendrar matriz. Vamos a ir a y
conectados como antes. Ahora lo que podemos hacer
con esto es que
podemos llamarlo aquí
en la obra Begin. Podemos llamar servidor agregar
capas a un mapa en vivo. Y también podemos llamar al
adypawnarray. Tenemos que definir al jugador. Recuerda, ya estamos
dentro de la base de jugadores, así que solo podemos decir auto y arrastrar desde la
distancia misma otra vez. Ahora los hemos agregado
cada vez que engendran. Estamos agregando al jugador
al mapa en vivo, pero también agregamos el jugador a los jugadores que han generado Así que hacemos un seguimiento de cuántos jugadores hay
realmente dentro del mapa. Siempre que muere el jugador, tenemos que agregarlos
a la muerte también. Si sólo voy aquí arriba, vaya a la
armadura de salud y daño. Si solo bajamos
a esta muerte, recuerden que hicimos la reaparecer aquí después de esto donde
dice que no hay armas que dejar Y nosotros respondemos, el jugador. Ahora desconectemos esto
y solo alejemos esto. El jugador, cada vez que el jugador muere y deja caer todas
las armas. Agreguemos al jugador a
ese evento del modo de juego. Esto ya se está
ejecutando en el servidor, por lo que no necesitamos
hacer un evento de servidor. Esta
referencia del modo de juego la hicimos, digamos Agregar jugador, o déjame ver cómo lo llamo. Si voy al modo de juego,
agrego dos jugadores mapa muerto. Golpeemos desde
aquí y digamos sumar dos jugadores muertos y conectados. Ahora tenemos que decir
¿quién es el jugador? Es yo,
seguimos en el jugador. Ahora vamos a
agregar a este jugador
al mapa muerto cada vez que muera
el jugador. La razón por la que no me está imprimiendo es que en realidad agregué este código aquí arriba en
el mapa a jugadores vivos. Y necesito llamarlo
aquí abajo porque necesito
revisar cada vez que muere un jugador. Déjame simplemente desconectar
este código aquí. Déjame copiar todo
esto que he escrito y voy a moverlo hacia abajo a éste en su lugar y conectarlo. Un pequeño error, solo asegúrate de que no te
suceda a ti también. Agrégalo al deadmp del jugador, porque necesitamos verificar
cada vez que muere un jugador Vamos a compilar y
dar clic en jugar ahora. Y sólo voy
a maximizar esto. Seleccione Contraterrorista
aquí, terrorista aquí. Y luego me voy
a quedar aquí a
la intemperie como el
antiterrorista. Ahora voy a
disparar al terrorista. Sólo voy a
acercarme un poco más. Si le disparo al terrorista, ahora dice
victoria antiterrorista en ambas pantallas. Ahora va a
desaparecer después de 3 segundos porque esto es lo que
he puesto en mi temporizador. Y tratemos de
probarlo con más jugadores. Si elijo cuatro jugadores y juego el juego, aquí están. Voy a seleccionar terrorista, terrorista, y
éste antiterrorista. En mi otro monitor, creo o detrás de éste. Hay uno más. Aquí está. Y voy a seleccionar
antiterrorista para éste también. Ahora tenemos dos
antiterroristas y también
tenemos dos terroristas. Permítanme pararme aquí
a la intemperie para todos ellos y como los
antiterroristas se paran por aquí. Ahora como terrorista
para éste, en realidad
voy
a ir al engendro, intentemos matar aquí
y veamos qué dice Ahora bien, si mato a este
antiterrorista, nada se va
a exhibir porque aquí
no todos los jugadores están muertos. Como antiterrorista
que están vivos, voy a disparar a
este terrorista. Ahora este terrorista está
muerto y todavía somos dos jugadores que quedan vivos aquí
como el antiterrorista. Si ahora voy
al terrorista y
le disparo a este terrorista, ahora dice victoria
antiterrorista. En todas las pantallas, todo está funcionando perfectamente. Ahora podemos seguir adelante y sumar los puntajes del equipo antes
de responder a los jugadores.
182. 13.09 Añade la puntuación de equipo: Lo que tenemos que hacer ahora
es sumar la puntuación del equipo. Si volvemos a la Ui principal, recuerda que hicimos el marcador del
equipo aquí. Hicimos que estos dos eventos
actualicen la puntuación terrorista UI. E hicimos esta actualización
antiterrorista score UI. Vamos a agregarlos también a la
ley de control negro porque de nuevo no
podemos acceder al
modo de juego como cliente aquí. Vamos al controlador del
reproductor cuando éste se muestre,
Siempre que se juegue. Siempre que estemos mostrando
el anuncio de victoria del equipo, por lo general queremos
incrementar uno de esos Déjame en realidad solo
editar aquí después
del anuncio de la
victoria del equipo de actualización. Qué podemos hacer aquí, podemos
preguntar qué equipo tiene uno. Podemos arrastrar esto
y decir igual esto. Si esto es igual a
antiterrorista, hagamos una rama
aquí, conectémosla. Tomemos esta principal de WB una
vez más y sigamos adelante y peguémosla. Siempre que sea el
antiterrorista, queremos actualizar la IU de puntuación antiterrorista siempre que sea el terrorista, Siempre que esto sea falso, queremos actualizar la IU de puntuación
terrorista. Adelante y conecta
esto a lo falso. Ahora también necesitamos
conectar el score score. Sigamos adelante y hagamos un alfiler
aquí. Porque lo necesitamos. Vamos a convertirlo en un
entero, llámalo puntuación. Yo sólo voy a
moverlo por debajo del equipo de aquí. Mueve esto hacia abajo. Entonces voy a arrastrar
esto a la partitura. Sólo vamos a
alejar esto para que se vea mejor. Y voy a dar click aquí para hacer un nodo de re ruta y
hacerlo así. Y adelante y
conecta esto también. Bien, ahora también tenemos
el marcador. Y vamos a compilar. Y también aquí arriba, recuerden
arrastrar la partitura hasta aquí. Voy a moverlo arriba
uno aquí debajo del equipo. Lo último está
dentro del modo de juego. Dentro del modo de juego ahora
tenemos este pin de puntuación. Y tenemos que sumar el
puntaje para el puntaje. Es o el
antiterrorista o el marcador terrorista lo que
necesitamos tapar dentro de aquí. Nuevamente, tenemos que tomar
de esto y decir, ¿es esto igual al terrorista? Y
alejemos todo esto para que tengamos más
espacio para trabajar. Estamos preguntando ¿esto es
igual a terrorista o es igual a antiterrorista?
Dependiendo de eso. Vamos a seleccionar
arrastrar de esto y decir seleccionar Entero y
enchufar este toro. Esto lo hemos hecho antes,
vamos a seleccionar A. Si esto es cierto, hagamos nuevas variables. Hagamos dos variables, una llamada Da, terrorista, marcador
terrorista. Hagamos esto en un entero. Hagamos uno nuevo. Voy a
llamarlo marcador terrorista. Y esto es un entero
también para estos dos puntajes, Siempre que sea el
antiterrorista. Entonces va a
elegir una, vamos
a poner el puntaje
antiterrorista aquí arriba. Siempre que sea el terrorista, vamos a
tomar el
marcador terrorista y enchufarlo aquí. Y luego lo va a seleccionar
dependiendo de lo que sea
este sondeo, y enchufar aquí este
número de puntaje Bien. Ahora solo
movamos esto juntos. Lo que tenemos que hacer ahora es
fijarlos porque ahora mismo el puntaje terrorista y
antiterrorista es apenas cero. En realidad no estamos haciendo
nada ahora mismo. Hagamos una nueva función, y yo sólo voy a hacer
una nueva función aquí arriba. Llamemos a este
un marcador de equipo. De hecho, podemos usar esto vivo si los antiterroristas
están vivos aquí. Podemos tomar este y
decir si esto es igual a cero y hacer una rama y
seguir adelante y conectarlo. Si la cantidad de
antiterrorista vivo es igual a cero, esto significa que necesitamos otorgar un punto a la puntuación
antiterrorista. Podemos tomar esto de nuevo, digamos más, más a
incrementado en uno No obstante, si éste
es verdadero o falso, significa que el
antiterrorista está realmente vivo y no
es igual a cero. Eso significa que podemos tomar este
puntaje antiterrorista y decir más, además porque
probablemente sea el conteo de terroristas los que están vivos
y no el terrorista. Como nos gusta
llegamos a este punto
del código,
solo vamos a conectarlo. Ahora volvamos a la gráfica de la camioneta y la vamos
a agregar después de esta,
porque después de que hayas comprobado que una de ellas es
en realidad igual a cero, entonces
podemos premiar a una
de ellas con un punto. Podemos tomar esta función,
enchufarla aquí. Ahora tiene sentido
porque ahora nos estamos preguntando ¿quién es el que es cero? ¿Es el antiterrorista
vivo es igual a cero, entonces tenemos que darle un punto
al terrorista? No obstante, si esto es falso, esto significa que el terrorista en realidad
es igual a cero. Entonces tenemos que otorgar un punto a los
antiterroristas y ahora
otorgamos un punto y
va a quedar encerrado por aquí. Bien, eso debería
funcionar perfectamente. Ahora guardemos todo
y hagamos clic en Reproducir. Y comprueba si esto está funcionando. De hecho voy a reducir la cantidad de jugadores a
tal vez algo así como tres. Va a seleccionar terroristas en éste, terrorista en éste, y antiterrorista
en este de aquí. Ahora como antiterrorista, voy a ir a
los terroristas de base. De hecho voy
a minimizar esto. Para que pueda ver aquí arriba
y descomponerlo. No sé por qué sigue
desove encima de mi pantalla, así que déjame matar ahora a
uno de ellos. Bien, no pasó nada
porque uno
sigue vivo y voy a matar
a este tipo de aquí. Se puede ver al terrorista
ahora se le otorga un punto. Esto no es cierto, porque
ahora mismo soy en realidad un
antiterrorista. Si echas un vistazo aquí abajo, el puntaje antiterrorista
está enchufado incorrectamente El marcador terrorista está
enchufado incorrectamente. Si vuelvo a este
puntaje de premio y le echo un vistazo, este es el antiterrorista, y si es igual a cero, vamos a otorgar un punto
a la puntuación terrorista. Todo parece correcto. La otra cosa es
porque esto se ha desconectado porque aquí
escribimos este jalón. Volvamos a conectar
esto porque
en realidad es el
antiterrorista el que tiene uno, pero es seleccionar
terrorista por defecto Déjame
arrastrar esto de nuevo aquí, igual que antes y
puedes hacer un nodo de ruta. Ahora está conectado. Comprobemos para estar seguros. Aquí en el controlador de Apple,
esto también está conectado. Este de aquí está desconectado porque de nuevo,
lo hicimos aquí abajo. Vamos a conectarlo. Ahora debería funcionar. Asegúrate de que
todo esté conectado. Y
volvamos a hacer clic en reproducir y seleccionar Terrorista,
Terrorista ,
Contraterrorista una vez más. Y sólo voy a
volver a ir al spawn. Bien, aquí maté a los primeros terroristas
y voy a ir al segundo terrorista
y matar a este jugador. Y si solo maximizo
la pantalla para que puedan ver ahora dice
contraterrorista ganar. Y agrega un punto para
todos los jugadores. También agrega el punto para
el terrorista también. Agrega un punto al
antiterrorista. Esto está funcionando correctamente ahora.
183. 13.10 Reaparece a los jugadores: ¿Correcto? Entonces lo que nos falta ahora es responder a los jugadores, hagámoslo aquí abajo. Lo que podemos hacer
aquí abajo es que podemos hacer un retraso porque no queremos
responder de inmediato a los jugadores. En realidad queremos responder
después de este temporizador de respuesta. Este temporizador de respuesta en este
momento está configurado en 3 segundos, por
lo que va a retrasar
el código 3 segundos. Después de eso,
vamos a responder una vez más a
todos los jugadores. Tomemos a este jugadores
el camino para cada bucle con este que vamos a llamar a
este repawn que hicimos en el jugador en esta armadura de
salud y daño Recuerden, hicimos esta
reaparición, llamemos a eso. Vayamos al
jugador y reapareceremos. Ahora en realidad estamos
respondiendo a todos
los jugadores y podemos
comunicarnos con él. Porque éste se está ejecutando
a través del servidor. Va a correr por aquí. Corriendo por el servidor
y haciendo todo esto que
hicimos antes, respondiendo
a los jugadores. Recuerda, también
tenemos estas variables, los datos
de los jugadores
y los jugadores vivos. Y tenemos que
actualizarlos también. Antes de que me demore, sólo
voy a hacer avanzar esto. Voy a llevar
vivos a estos jugadores y a los jugadores muertos, y los voy a
limpiar aquí. Voy a despejar con vida a
los jugadores, y voy a alejar esto. Voy a despejar el mapa
para los jugadores muertos también. Ambos se restablecen. Entonces vamos
a retrasar el código. Así de aquí. Voy a mover esto
hacia abajo conectado aquí. Ahora vamos
a retrasar el código. Siempre que lo hayamos retrasado, necesitamos sumar de
nuevo a los jugadores vivos a los jugadores, lo contrario nadie estará vivo aquí. Y reservará aquí
para la respuesta. Antes de que respondamos a los jugadores, quiero agregarlos. Recuerda, dentro del jugador, acabamos de hacer esta gráfica de eventos. Acabamos de hacer este recientemente, el agregar a los jugadores un mapa en vivo, necesitamos llamar a este en
el servidor, el rastrillo de lista, y decir servidor agregar a
los jugadores un mapa en vivo Tenemos
que especificar quién es el jugador, es solo este de aquí. Entonces podemos
seguir adelante y responder. Sólo voy a arrastrarlo hacia abajo. Y nuevamente,
haz doble clic aquí para hacer una nota de ruta para que
veas la diferencia
entre esos dos. Aquí vamos. Ahora
vamos a limpiar esos mapas, asegurarnos de que no tenga errores. Entonces podemos demorar por
el temporizador de respuesta. Entonces vamos a esperar un
poco y luego vamos a
responder a los jugadores y
agregarlos a este mapa vivo. Una vez más, seguir adelante y compilar ahora dentro
del reproductor lo que
hicimos antes aquí en el responder este código
aquí, solo podemos eliminar. En realidad, en realidad no lo estamos
usando, éste, solo
voy a
borrarlo porque ya
no me sirve
esta cadena de impresión. Esto es lo que tenemos. Compilemos, guardemos todo y volvamos a hacer clic en play. Seleccione Terrorista.
Seleccione Terrorista, Contraterrorista, por ejemplo. Ahora sólo voy
a ir a la base. Déjame tomar este AK y ya voy a disparar a
este jugador. Ahora dice victoria terrorista y
voy a tener un punto. Entonces estamos todos respondemos. Aquí estoy como el terrorista engendrar con el otro
terrorista de aquí Este también es el terrorista. Aquí está el antiterrorista. Responde aquí como el terrorista. Ahora bien, si voy
al antiterrorista y
le disparo al antiterrorista, entonces debería decir victoria
terrorista. Vamos a conseguir
el segundo punto y todos vamos
a responder de nuevo. Bien, entonces esto está
funcionando perfectamente y este es el
antiterrorista y ahora voy a
matar a este tipo de aquí. Ahora ves victoria
antiterrorista. Bien, así que todo está funcionando correctamente
y también estamos respondiendo aquí en
el engendro terrorista y
en el aterroristpaon,
estamos otorgando la cantidad
correcta de puntos
o los puntos de ronda aquí ronda cada el engendro terrorista y
en el aterroristpaon, estamos otorgando la cantidad
correcta de puntos
o los puntos de vez que ganemos la ronda
184. 14.01 Añade impulso en la caída de armas: Bien, entonces en este momento
ya casi hemos terminado. Y lo que quiero hacer en
esta sección es mejorar el juego con algunos
pequeños elementos que necesitan algunos ajustes. Por ejemplo, ahora mismo
cuando dejamos caer el arma, cayendo justo debajo de nosotros. También para esta arma está
cayendo justo debajo de nosotros. En lugar de hacer eso,
quiero dejar caer el arma
frente a nosotros como si la estuviéramos
lanzando frente a nosotros. Para ello, volvamos a la base de jugadores
y echemos un vistazo a la lógica de lanzamiento de armas de aquí. Creamos el arma de caída, si solo extiendo esto e
incluyo esto también, esta es la
lógica del arma de caída que creamos. Esta es el arma para
avisar si pincha sobre
ella, nos lleva a esa función. Agreguemos el código aquí. Cada vez que
lanzamos el arma, estamos de adjuntar el
arma del jugador. Establecer la colisión para que sea
física solo para el arma, y luego estamos
simulando la física Después de simular la física, entonces
podemos agregar un impulso porque si no
tienes física, no
puedes agregar un impulso. No podemos agregarlo
antes de este paso. Ls, obtendrás un error. Bueno, solo agrégalo después de esto. Básicamente tomando esta arma
para dibujar y luego tomar esa variable de arma
que hemos estado usando. Es la misma que ésta. Básicamente, golpeemos
a partir de esto y digamos impulso. Entonces agrega este impulso
que es la física. Puedes ver aquí
si lo conectas, haz
doble clic aquí para
hacer un nodo de reencaminamiento Lo que podemos hacer ahora
es agregar física. Si solo escribes algo, digamos uno o 5,000
algo muy extremo, podemos tomar este cambio de
velocidad. Lo que esto hace es que le quita
la masa al actor. No estamos echando un
vistazo a la masa, estamos ignorando la masa,
estableciendo este
cambio de velocidad en verdadero Si lanzas
algo ahora mismo, puedes ver que
voló por allí e
incluso me volvió. Ya ves que puedo
lanzar esto. E incluso me volvió, ese es un mecánico bastante genial. Este es el cambio de velocidad
que hemos creado aquí para hacerlo así que
en realidad estamos ahora mismo,
estamos lanzando de lado Miramos aquí y
en realidad estamos lanzando
allá para que se lance delante de nosotros
donde estamos buscando. Podemos hacer clic derecho y decir
obtener actor adelante vector. Recuerda que hemos
estado usando esto. Si vuelves a
la gráfica de la camioneta y
al movimiento, aquí la
hemos usado. Obtener actor forward vector para obtener el vector forward para el
jugador para que podamos avanzar. Volvamos a la caída repoify y llevemos a este vector hacia adelante
el actor Y ahora vamos a romperla. Para que pueda volver a usar la X, Y y Z. Puede simplemente
hacer clic derecho si lo
desea y decir pin de estructura dividida Eso es lo mismo,
solo lo estoy haciendo de esta manera. Entonces voy a hacer directo desde aquí
y decir make vector. Y hacer este vector, también
tienes el XY y Z porque lo único que
quiero modificar es la x. Andy, voy a dejar que z
sea lo que sea ahora mismo. No quiero tirar hacia arriba. Modifiquemos el xy x
ahora mismo. Tomemos esto. Ahora necesitamos impulsar. este momento es cero.
Tomemos esto. Y es cero. Es uno. Multipliquemos éste por 600. Multipliquemos éste por, digamos 600
también, así. Y entonces podemos
conectarlos de nuevo a la x. Lo que hicimos aquí es
simplemente tomar la x, multiplicarla por 600, y volver a poner el valor
dentro de aquí. Ahora hemos agregado algún impulso, pero por el valor Z
nos estamos quedando igual. Bien, solo
organicémoslo aquí y alejemos esto. Bien, vamos a compilar. Vamos a hacer clic en jugar Ahora, veamos qué pasa si solo
tomo algo y lo
tiro frente a mí. Verás, ahora en realidad estamos lanzando el arma
frente a nosotros. Sea cual sea la dirección que
estemos mirando, estamos lanzando el arma
frente a nosotros. Bien, genial. Es mucho mejor
que simplemente tirarlo
aquí debajo de nosotros. Eso es un mecánico genial para tener. Bien, eso fue todo.
Vamos a guardar todo. Muy sencillo, arreglo o mejora. Pero hace mucho por el juego. Pasemos al siguiente.
185. Mejora el peso del arma: Así que aquí estoy de nuevo en
el juego ahora mismo. Se puede ver cuando
tiro algo, si tiro esta arma, cuando aterriza en el
suelo, rebota por ahí. Y éste también. Se siente como si el
arma no fuera realista. Es como demasiado ligero. Esto no debería rebotar
tanto en el suelo. Simplemente debería, tal vez
se detiene mucho más rápido. Al igual que el peso de
esta arma es demasiado bajo y es demasiado ligero. También es un poco poco realista. Lo segundo es que
puedo ver la cápsula. Creo que aquí un juego oculto. Quiero llevar eso también en el juego oculto
cápsula base de armas. Entonces no lo veo porque el
arma sea liviana. Lo que puedes hacer es algo nuevo con lo que no
hemos trabajado antes. Si abres el arma
aquí, base de armas. En la base del arma,
puedes hacer clic en el arma y puedes desplazarte hacia
abajo hasta la colisión. Tienes algo que se llama
material de física. Con el material físico, puedes ajustar los ajustes de
fricción y los ajustes de rebote también. Lo que queremos hacer es en realidad, vamos a crearlo dentro de esta carpeta porque no
tenemos ninguna carpeta para esto. Podríamos hacer una nueva carpeta, pero vamos a hacerlo
dentro de la base de armas. Podemos escribir, dar clic en Ir a
Física y luego agregar este llamado
Material Físico y Creado. Adelante y selecciona éste. Sólo voy a llamarlo
PM por material físico, podemos llamarlo base de armas o algo así.
Sólo dale un nombre. Ábrela ahora puedes ver aquí podemos ajustar la fricción y podemos ajustar
la fricción estática. También podemos ajustar
la restitución. Y se puede ver que
la restitución
también se llama la bounciness
de Si solo pongo esto
a cero y guardo, y voy a la base de armas
en lugar de a la base de armas. Si haces clic en el arma y en la colisión seleccionas este nuevo material físico.
Lo llamamos Pm. Esta base de un arma. Adelante, compilas
y haces clic en jugar. Ahora puedes ver si se me cayó
esta arma al suelo, está rebotando mucho
menos que antes La otra cosa que quiero
hacer es en lugar de
tener esto a cero, en realidad
voy a
ponerlo a tal vez algo así como 0.15 Inicialmente era
0.3 tal vez la mitad de él. Entonces por la fricción, sólo
voy a ponerla a
25.25 Así que cuanto más alta sea, mayor será
la
fricción y además
no va a rebotar y
moverse por el suelo Bien, sigamos adelante y hagamos clic en play y
veamos qué pasa. Fi deja caer este AK ahora esto
es lo que pasa, bien. Se siente como que tiene mucho más peso
al arma así. Se siente mucho
mejor que antes. Si quieres, incluso puedes
aumentar esta fricción, fricción
estática, puedes
jugar con ella. Y creo que esto
está bien por ahora. Cerrémoslo y
pasemos al siguiente.
186. 14.03 Elimina Recarga SFX en Arma Drop: Muy bien, entonces una
cosa aquí ahora mismo, un dólar es si intentamos disparar algo y
recargamos y soltamos el
arma, por ejemplo Ya ves puedo
escuchar la recarga Sonido Incluso cuando lo equipo y me caigo, puedo escuchar la recarga
Sonido así como Puedo oírlo cuando incluso dejo caer el arma al suelo.
Tenemos que arreglar esto. Si vamos a la base de jugadores, y echemos un vistazo a lo que
sucede cuando equipo un arma. Es tocar un sonido.
Si vas al botín, equipas y sueltas arma, y vas a tu lógica de equipamiento Aquí estamos tocando este montaje de
animación. Recuerda que los efectos de sonido están en realidad dentro de los montajes de
animación Si voy a las
animaciones de activos dentro de aquí, si buscamos, podemos tomar el
rifle de recarga por ejemplo Recuerda que los efectos de sonido
están dentro de aquí. Realmente no podemos detener
el efecto de sonido aquí porque está dentro
del montaje de animación
cuando dejamos caer un arma De hecho, quiero evitar que este montaje de animación reproduzca
este montaje de animación porque no quiero
reproducir todos estos efectos de sonido Si voy a la base de jugadores. Ahora vamos a la lógica del arma de
caída. Aquí vamos a soltar
el arma y estamos buscando un
arma en el inventario. Siempre que encontremos un
arma en el inventario, vamos a dejar caer aquí. De hecho quiero agregar el código aquí que tendrá
sentido cada vez que
realmente encontramos un arma en el inventario y estamos
listos para soltar el arma. Déjame alejar todo
esto un poco y déjame
organizar esto aquí. Ahora lo que queremos hacer es hacer una multidifusión para
esta arma de caída Ya no tenemos uno, así que en realidad puedo
crear uno solo si solo muevo esta parte hacia abajo y puedo hacer
clic derecho y hacer una multidifusión de
eventos personalizados Porque quiero detenerlo
para todos ellos y decir soltar arma para esta multidifusión Lo que quiero hacer es primero simplemente configurarlo en multidifusión
y confiable Entonces tomemos esta malla para encontrar el montaje de animación
que se está reproduciendo actualmente Tenemos que encontrar primero la clase de
animación. Si buscas, creo instancia de
animación,
consigue una instancia. Entonces hay que obtener primero la instancia de
animación. Entonces se puede decir montaje. Entonces puedes ver que tienes muchas funciones que puedes
usar con el montaje Pero lo que queremos hacer
es detener el montaje. Montage, stop and
go y conectado. Para este necesitamos
conectarlo de nuevo aquí arriba. Entonces no podemos hacer esto ahora mismo. Para el target,
es la instancia, podemos simplemente llamarlo
instancia para el montaje Podemos simplemente enchufarlo y
voy a llamarlo
equipar, Equipar montaje, por ejemplo Equipa el montaje de armas. Incluso podemos llamarlo arma
aquí, así que tiene sentido. Bien, ahora tenemos este, podemos llamarlo aquí arriba. Llamemos a MC drop weapon. Y vamos a
moverlo por aquí. Ahora podemos conectarnos
desde el servidor. Podemos conectar la instancia de
animación. También podemos conseguir el montaje. Si rompemos de aquí y
decimos montaje, veamos aquí. Podemos decir obtener montaje
activo actual. Y vamos a tomar este
montaje que se está
reproduciendo actualmente y podemos
enchufar esto aquí Permítanme solo tomar
notas de ruta para esta. Bien, ahora que está
enchufado, guardemos todo. Ahora mismo. Te da una
época diciendo algo aquí. Simplemente hagamos clic en Archivo y actualicemos todas las notas.
Creo que algo anda mal. Solo necesitamos refrescar todas las notas y desconectar
esto y enchufarlo aquí, compilarlo hace caja a veces
así no tiene sentido, no
tengo idea de por qué,
pero solo asegúrate refrescar todas las notas
y ya podemos hacer esto. Bien, vamos a jugar ahora. Porque ahora debería suceder. Si juego, cojo un arma, tome esto por ejemplo. Ahora cambiemos de
arma y dejemos caer. Ahora puedes ver que la animación de recarga o equipamiento se está deteniendo Eso está bien. ¿Qué pasa si recargo
ahora si recargo y caigo Eso ya está arreglado. Bien,
eso ya está arreglado. No tiene ningún
sentido reproducir el sonido. Si vamos a dejar caer
el arma ahora, vamos a
agregar más adelante algunas cosas que
podrían molestarlo. Lo que quiero que hagas es
antes de que hagamos esta lógica, quiero que tomes de este
conjunto montaje activo actual, asegúrate de que sea válido Antes de que realmente hagamos esto
preguntando, ¿es válido esto? Solo alejemos
todo esto. Déjame en realidad solo
mover esto hacia atrás
también y preguntar primero ¿
es esto válido? Si es válido,
adelante y detente theta, o detente aquí este montaje Y si no es válido, sólo tienes que seguir adelante y hacer
lo que hayas hecho antes. Permítanme crear
algunas notas redireccionadas para ésta y
acercarlas, así como esto Y ahora esto está terminado. Vamos a hacer caso omiso de
esta arma de caída MC. Si esto no es válido, aquí
no tenemos nada. Vamos a compilar, vamos a
guardar todo. Y ahora esto está terminado. Podemos pasar a la siguiente.
187. 14.04 Añade anuncios de equipo Gana SFX: Entonces ahora mismo lo que quiero
hacer es cada vez que
jugamos aquí y cuando matamos a
alguien y ganamos la ronda, cuando dice
victoria antiterrorista o victoria terrorista, quiero tocar un efecto sonoro. Sería
más genial que ahora mismo donde
no tenemos nada. Lo que quiero que hagas es ir
al mercado e ir
al contenido gratuito de Epic Games dentro de aquí. Creo que estaba en la página siete, hay algo que se
llama Peagon mail on Solo puedes buscarlo
si quieres también. Este Perregon Ono, puedes tomar esto y
agregarlo al proyecto Voy a decir mostrar todos los proyectos porque
ahora mismo no es compatible con el motor N 5.2 voy a mostrar
todos los proyectos. Selecciona el proyecto Cada strike y selecciona la
última versión aquí. Adelante y da clic
en un proyecto de dos. Déjame solo minimizar esto o simplemente esperarlo
hasta que termine. Una vez que haya terminado,
minimicemos esto. Vamos a entrar en nuestro propio proyecto. Yo sólo voy a bajar aquí. Y aquí está, los anones del correo
Paragon. Vamos a agregar esto a
la carpeta Marketplace. Nos mantenemos organizados
igual que antes. Ahora podemos abrir la carpeta
Marketplace e ir dentro de
este correo de Paragon Sonidos Vamos al Sonido. Ahora tenemos el
sonido para esto ons, solo
podemos hacer
algo genial primero. Antes de hacer esto, en realidad
puedo seleccionar todo lo que hay
dentro de aquí. Haga clic con el botón derecho en Activos y edite masivamente a través de
la matriz de propiedades. Porque quiero reducir
el volumen del sonido para todos ellos para que no sea demasiado
ruidoso dentro de este curso, solo
voy a
reducirlo a un
multiplicador de volumen 20.1 Ciérrelo, y sigue adelante y guarda
todo dentro de aquí Sólo hay dos sonidos
que necesitamos ahora mismo. Necesitamos el de la derrota. Tenemos este llamado derrota. Estás derrotado. Esto es cuando pierdes. Y también tenemos
algo llamado victoria. Creo que es éste,
eres victorioso. Quiero jugar a estos dos. Hagamos eso.
Vamos a los planos. Y lo mejor está
por aquí en el modo, porque dentro del modo de
juego jugamos a esto. Recuerda que acabamos de hacer esto. Y va a actualizar
el anuncio del triunfo del equipo. Hagamos doble clic en eso y vayamos al controlador del reproductor. Ahora dentro del controlador
del reproductor, estamos ejecutando este
cliente vidente. Queremos reproducir el cliente de sonido ubicado porque cada vez que pierdes, va a reproducir un sonido Siempre que ganes va
a reproducir otro sonido. No queremos tocar el
mismo sonido para todos. Esto es lo que hiciste
con una multidifusión. Tocaste el mismo sonido para todos a través de
una multidifusión Pero para esto, queremos jugar
un efecto de sonido ganador cuando
ganemos y queremos perder Efecto de sonido para
el jugador que ha perdido. Es del lado del cliente. Para ello, en realidad podemos hacerlo aquí porque
sabemos quién ha ganado. Aquí conocemos al
equipo ganador del equipo. Lo que queremos hacer
simplemente es tocar sonido. En lugar de reproducir un
sonido en una ubicación, toquemos un sonido dos D, solo para el jugador que está escuchando este
sonido en este momento. ¿Qué sonido estamos tocando? Arrastremos de esto
y digamos Seleccionar, entonces hagámoslo así cuando
pierdes, escuches un sonido. Cuando ganas,
escuchas algo más. Ahora podemos usar esto
en realidad podemos arrastrar de esto y decir
igual así. Recuerda volver a conectar esto. Siempre que la savia en vende. Esto va a fallar. Vuelva a conectarlo. Ahora queremos comparar a
este equipo ganador. ¿Este equipo ganador es igual
al equipo en el que estoy actualmente? Ahora estamos comparando
este equipo ganador con cualquier equipo en el que
estoy ahora mismo. Si es lo mismo, siga
adelante y solo conecte esto
ahora mismo al selecto. Estamos comparando al equipo ganador con el equipo en el que estoy ahora mismo. Si estos son iguales, si tengo, seguimos adelante y jugamos esto. Sonido. El
equipo ganador es mi equipo. Quiero jugar la victoria. Sonido. Y creo que es
este congreso. Éste. A lo mejor eres Victoria. Sí. Entonces esta quiero
jugar la victoria. Sonido. Porque el equipo
ganador es en realidad el equipo en el
que estoy ahora mismo. No obstante, si no es así, quiero jugar la
derrota de equipo de la derrota. Sonido Y es éste. Bien, entonces ahora estamos tocando
el Sonido correcto. Adelante y compilar.
Y eso debería ser. Sigamos adelante y juguemos. Y en realidad voy
a ponerle dos jugadores. Ahora voy a jugar, y voy a
minimizar este por delante. En realidad
sólo puedo hacer esto aquí. A lo mejor así y esto. Y sigamos adelante y seleccionemos terrorista, antiterrorista. Ahora como antiterrorista, voy a ir allá, disparemos al terrorista. Estás victorioso. Dice que eres victorioso. Siempre que ganes, ahora
voy a disparar al terrorista. Y cada vez que le disparo
al terrorista y muera, voy a cambiar rápidamente
a la ventana terrorista. Entonces puedo escuchar si el terrorista
está diciendo derrotado. Para que se oiga que dice derrotado aquí en el bando terrorista. Siempre que me cambio a él
rápidamente, ahora está funcionando. Es decir derrotado
cada vez que pierdes y decir victoria para
el jugador ganador. Pasemos al siguiente.
188. Añade un indicador de golpe enemigo: estos momentos, es un poco
difícil saber si has golpeado al jugador
desde lejos. Si le disparo a este jugador, puedo ver el pequeño efecto. Pero si hay muchos jugadores y estás
disparando por ahí, es un poco difícil saber
si has golpeado al jugador. Necesitamos un indicador para
saber si realmente hemos golpeado al jugador o si hemos
golpeado detrás del jugador. Sigamos adelante y agreguemos
eso. Vamos a cerrar esto. Y lo que quiero
que hagas es abrir los materiales de causa
dentro de aquí. Quiero que entres a la carpeta
UI en iconos, y he incluido este
para ti, el icono chispa. Vamos a la carpeta de la interfaz de usuario
y dentro de tus íconos, y pongamos esto
en la carpeta. Ábrelo, ve
al grupo de texturas,
cámbialo a UI y cambia la configuración de compresión
a la interfaz de usuario. Vamos a cerrarlo. Ahora
vamos a abrir la cruz, ésta, el widget, plano que
hicimos dentro de aquí Vamos a agregar esta imagen. Sólo voy a
buscar la imagen agregada
al panel del lienzo y
voy a darle click ahora. Ponlo al centro,
igual que la crossa. Poner el punto de anclaje
al centro. Y la alineación debe ser 0.50 0.5 así que está en el medio Y establece la posición 0.0 Y luego haz clic en
Tamaño Dos contenido también. Y ahora es totalmente correcto. Puedes dar click en
la otra imagen, la cruz aquí, para
ver la diferencia. Si quieres
hacerlo más organizado, puedes llamar a esta imagenes, puedes dar click sobre la otra. Voy a
llamarlo imagen Spark. Adelante y compilar
sobre la chispa de la imagen. Voy a cambiar la imagen a este icono de chispa
que acabamos de importar. Y voy a hacer
el tamaño de la misma a algo así como 70
por 70, creo. El Crosier. 60 por 60. Así que sólo voy a
hacerla un poco más grande y la voy a poner
detrás del crosier No voy a ponerla
frente a la cruz. Así es
como se ve cada vez que filmamos. Vamos a conseguir que aparezcan
los marcadores. Vamos a hacer clic en el Spark.
Por defecto está oculto. Hazlo oculto por defecto. Vamos aquí, Establecer
es variable, Asegúrate de que podamos editarlo. Ahora vamos a la gráfica. Voy a borrar todo esto. Esto es muy, muy sencillo. Vamos a hacer un
evento personalizado y llamarlo Show. Es que me gusta esto. Ahora tomemos esta chispa de imagen. Vamos a establecer visibilidad. Establezca la visibilidad del mismo
para que no sea comprobable, modo que sea visible y el mouse
no pueda interactuar con él Ahora después de un
retraso muy pequeño después de 0.1 segundos, quiero que desaparezca. Va a aparecer
en la pantalla por 0.1 segundos y luego
va a desaparecer. Sólo nos va
a indicar que hemos
golpeado al enemigo. Esto es
lo único que queremos hacer. Vamos a cerrar esto. Ahora abramos al
jugador y pasemos a donde sea que golpeemos a otros
jugadores del enemigo. Pero vayamos al rodaje
y recarguemos el arma por aquí. Siempre que disparamos el rastro de línea y de hecho golpeamos
al jugador aquí. Recordamos que comprobamos si
no es el compañero
que estamos disparando Si no es el compañero, entonces estamos disparando a alguien En este punto, queremos jugar a este sitio cliente
porque solo quiero mostrarlo para el jugador
que en realidad está disparando. Esta se llama Arma Disparar. De hecho voy a
hacer que un cliente se siente. Solo quiero agregarlo aquí
abajo, clic derecho. Haz un nuevo arma de
disparo CL de evento personalizado, de lado ciego. Ejecutarlo en ser dueño del
cliente confiable. Simplemente voy a bajar aquí y tomar la referencia del
controlador del reproductor que hicimos. A ver si puedo encontrarla. Este controlador de un jugador. Vamos a conseguir el controlador del reproductor, vamos a obtener el
cruce B una referencia que hicimos antes para que
podamos obtener el plano del widget Ahora desde el plano widgit
llama al que acabas de hacer llamado show enemigo yo
adelante y Y eso es
lo único que va a hacer. También quiero reproducir un efecto de sonido porque
podemos mostrar la interfaz de usuario, pero también quiero
indicarlo con un efecto de sonido. Jugar. Recuerda, dentro
de esto tenemos este llamado Bullet Impact Player. De hecho voy a tocar
este único efecto de sonido. Lo que queremos hacer es que primero
necesitamos el arma. El arma de referencia.
Sólo voy a escribir Arma base seleccione la referencia de clase
basada en armas. Voy a llamarlo
arma igual que antes, solo
quiero el efecto de sonido. Voy a copiar y pegar todo esto. Adelante y conéctelo. Ocultemos los pines desconectados. Y sólo voy a mostrar el efecto de sonido
del jugador bullet impact. Quiero tocar un efecto de
sonido sólo para el jugador que
está disparando de nuevo. Reproduce Sonido Dos D, sólo para el jugador
que está disparando. Y sigue adelante y toca
este efecto de sonido. Ahora bien, esto debería estar
funcionando si solo muevo esto hacia adentro y necesitamos
tocar el sonido aquí arriba Si solo arrastras de aquí
y dices CL, dispara arma. Para que podamos llamar a este
evento cada vez que filmaremos. Se puede ver que esta entrada se llama algo
diferente a esta. Nuevamente, tengo que dar click en Archivo y refrescar todos los nodos,
se muestra correctamente. Voy a alejar
esto un poco, así puedo alejar esto también
así. Y tengo más espacio
inicia sesión esto aquí. Bien, todo
se ve bien. Bajando esto,
enchufándolo. Y también tenemos que enchufar
el arma. Tenemos la
referencia del arma, creo. Sí, es ésta. Va todo el camino hasta aquí. Todo el camino hasta aquí. Y
puedo hacer doble clic aquí. Ahora puedo enchufar en realidad uno, creo que es este. Haga doble clic en él y conéctelo. Vamos a compilar, y
ahora debería funcionar. Ahora antes de jugarlo, en realidad
voy a aumentar
el volumen también,
así puedo escucharlo claramente
para encontrarlo rápidamente, ir a la tabla de datos,
abrir la información del arma, y es esta. El impacto de bala, efecto de sonido
claro. Haga clic en el pequeño icono aquí. Me lleva ahí automáticamente. Así es
como suena ahora mismo. De hecho voy a
aumentar el sonido tal vez como 0.5 tal vez eso es demasiado alto. 0.4 Ahora puedo oírlo con claridad,
así que vamos a guardar todo. Juguemos ahora el juego y
veamos cómo suena. Como servidor, solo
voy a engendrar un
antiterrorista Y ahora como terrorista, oigamos como el
antiterrorista. Déjame simplemente moverme frente todo para que
pueda ver al jugador. Ahora cuando le disparé al jugador, se
puede ver este efecto de sonido. Y también se puede ver este
marcador que aparece en mi pantalla cada vez
que le disparo al jugador, le da un marcador cada vez que
hay una bala extendida, como si estuviera golpeando
justo detrás de él. Recuerden que agregamos un
disparo de bala antes, así que no va a
golpear al 100% cada vez. Siempre que le pega al
jugador ¿quiénes son Victoria? Cada vez que golpea el jugador
en realidad va a
mostrar este marcador. Si simplemente voy
delante del jugador, una vez más así
y le disparo al jugador, va a mostrar me
va a mostrar el indicador cada vez que
golpee al jugador, cada vez que no le pego, no me
va a mostrar nada. También puedo escucharlo
en el efecto de sonido. Aquí también se puede escuchar la
diferencia. Un vencedor, eso es mucho mejor
agregar que no tener nada, porque entonces el
jugador en realidad sabe si le ha pegado
al jugador o no. Eso fue. Vamos a
guardar todo y pasemos
al siguiente.
189. 14.06 Añade SFX de ambiente: Ahora mismo, es un poco demasiado silencioso dentro
del entorno. Se puede oír. Está bien. Tenemos los efectos de
sonido para caminar, tenemos el rodaje
y todo, y sonará muy bien. Imagínate si tienes cinco contra cinco aquí,
como cinco jugadores, y todos están disparando y
cargando y cosas así, sonará bien. Sin embargo, no hay
efectos de sonido para el medio ambiente. Necesitamos como un efecto de sonido
ambiental si vuelves a abrir la
configuración de tu proyecto. Aquí volvamos al audio. Yo he incluido esto para
ti. El ambiente de las aves Puedes agregar cualquier
ambiente que quieras, pero para este,
usemos esto Volvamos al audio
aquí, efectos de sonido. Si solo arrastras
esto a aquí y voy a hacer
click derecho, conviértelo en un. así que solo voy a llamarlo, así que ambiente, adelante
y ábrelo Permítanme simplemente reducir el volumen. Algo muy bajo, como
0.01 lo probé y
creo que 0.03 es bueno.
Déjame solo guardarlo. Y sólo voy a hacer click y arrastrar este ambiente
al nivel Simplemente juega instantáneamente para
todos los que se conectan. Ahora bien, si hago clic en Reproducir, se
puede escuchar el efecto de sonido de los
pájaros. Si solo
selecciono terris ahora es realmente agradable porque tengo
algo de ruido de fondo Incluso puedes reducirlo
aún más si así lo deseas. Ahora, todo está
sonando genial. Puedo andar por ahí, puedo
disparar, y podemos jugar. Pero también tengo algún efecto de
sonido aquí para el medio ambiente.
No es silencio. Se siente bien. Se siente bien. No es un
silencio incómodo el que tengas en el nivel. Esto es lindo. Bien. Entonces es una gran adición. Adición muy rápida, pero
hace que todo el entorno
se sienta más vivo. Bien, así que eso fue todo. Vamos a guardar todo de nuevo. Puedes agregar cualquier ambiente
que desees para tu nivel, y pasemos
al siguiente
190. 14.07 elimina Mag cuando recargas: Bien, entonces
lo último que nos falta en este momento es si seleccionas
Terraza por ejemplo, y tomamos un arma. Ahora cada vez que disparo y recargo, se
puede ver que la mag no
se está quitando Se ve un poco
raro porque estamos recargando y no
se está quitando la mag Entonces tenemos que hacer
algo al respecto. Lo que podemos hacer es
abrir el montaje de animación. Si vuelves a
tus animaciones para el jugador y
buscas tus montajes de animación
que creaste anteriormente Vayamos al rifle. Empecemos con éste. Ahora lo que puedes
hacer dentro de aquí, puedes agregar notificar.
Empecemos a hacer esto. Quiero agregar notificar
cada vez que esté recargando, cada vez que saque
esta mag aquí. Intentemos agregar esta
mag que eliminamos. No puedo hacer
clic derecho encima de esto, así que solo voy a hacer click
derecho aquí. Lo que puedes hacer, también puedes
agregar otra pista de notificación, para que no la agregues
encima de los efectos de sonido, puedes agregar otra pista. Y sólo voy a
llamarlo recarga tal vez,
algo así Lo que prefieras por aquí. Voy a escribir
Click y luego Agregar. Notificar y agregar un montaje. Notificar a éste. Podemos usar código para hacer lo que
queramos para éste. Sólo voy a
llamarlo de labios. Agreguemos uno para clip
out, o esto es clip out. En realidad esto no es clip in. Vamos a llamarlo Lip out. Vamos a agregar uno para clip in. Tal vez aquí, vamos a dar
clic derecho a Montage Notify, y dar clic en él y
llamarlo Lip in Bien, ahora tenemos esos
montajes o notifica. Minimiquemos esto. Vamos a los planos.
Eliminar esta búsqueda. Vamos a abrir la base de la capa
del jugador. Y vamos al código donde en realidad
estamos recargando. Adelante y da click
en este de aquí. Este es el código de recarga. Recuerden que
lo comentamos, Recargar arma. Estas son todas las cosas que
hemos hecho calculando balas. Aquí en la multidifusión, estamos jugando el montaje,
el montaje de recarga Ahora lo que podemos hacer es
en realidad podemos usar esta llamada unnotifiedgin Este unnotifiedgin
comenzará a reproducirse cada vez que llegue a un notifiedgin
dentro de un montaje de animación Siempre que llegue a
esta notificación aquí, entonces se activará este código. Ahora puedes tener
múltiples notificaciones
para diferentes cosas
en la misma zona, y es por eso que esto está aquí Podemos tomar esto y decir, es esto igual a, por ejemplo, lo llamaste clip in o clip out para empezar. Y hagamos una rama, golpeemos desde aquí. Si esto es igual a clip out, entonces podemos hacer
algo con él. Lo que queremos hacer es,
permítame que me lleve esto aquí arriba. Lo que queremos hacer es que queremos esconder el hueso para el meg. Si vuelvo y encuentro el
arma en el mercado, abro el arma FPS,
abro las armas,
las mallas y
vuelvo a mi AK 47 Déjame simplemente abrir
el esqueleto aquí ahora, igual que antes donde
escondemos la cabeza del jugador. Ahora idealmente como si
tienes un proyecto serio, podría ser mejor simplemente
hacer una animación como una animación de recarga donde la
Mac entra y sale. En realidad se puede ver
esto en el otro paquete. Hemos descargado el arma
militar doc. Si vuelvo a una
de las armas aquí, en realidad
tienen
animaciones aquí. Ms por ejemplo,
tienen una animación para
recargar este rifle Y se puede ver aquí
tienen esta animación baja, así que sólo voy
a cerrarla rápido. Pero tienen esta animación de
recarga que puedes usar y
será más ideal, pero en este caso no
tenemos ninguna animación y realidad todavía
podemos
hacerlo realidad Queremos esconder el hueso, igual que el jugador
donde golpeamos la cabeza. Para este, vamos
a esconder la pistola mag. Bien, se llama pistola mag. Lo que vamos a hacer es que primero
necesitamos la referencia de arma. Esta es el arma equipada. Tomemos el arma equipada
que tenemos ahora mismo. Vamos a arrastrar desde aquí.
Necesitamos las variables del arma. Necesitamos la
malla esquelética dentro de aquí. De nuevo, solo escribe hueso. Si no sabes
cómo se llama, escribe hueso y luego podrás
ver a través de él y tienes este hueso de ocultar por
nombre, igual que antes. Si esto es cierto, adelante
y esconde este hueso. Ahora bien, como se llame este
hueso, mag, si quieres, puedes escribirlo
estáticamente aquí Pero lo mejor otra vez, es solo agregarlo
a tu estructura. Si solo vuelvo a dos
estructuras, información de armas. Sólo tienes que seguir adelante y
agregar una nueva variable y yo solo le llamo nombre. Digamos nombre aquí, nombre, variable, guardar y
guardar todo. Adelante,
abre tu tabla de datos. Sólo voy a hacer espacio entre esto de aquí y
abrir mi tabla de datos. Vayamos a la derecha aquí. Voy a llamarlo Mag Name. Entonces le podemos dar
el nombre de mi AK. Se llama Mag. Lo mismo para mi info. Creo que esta es mi pistola. Para mi pistola. No estoy seguro si necesitamos hacer algo
porque para la pistola, no
creo que puedas ver a Mac. Si sólo voy a armas, armas
oscuras y
abro mi pistola, está aquí pero
no estoy seguro como si
se puede ver la mag completamente. Así que sólo voy a dejar
esto fuera para éste. Simplemente puedes escribir
ninguno por ejemplo, y no necesitas
nada dentro de aquí. Nuevamente, es mejor simplemente hacer animaciones como lo han
hecho aquí para estas armas. Y es mucho más limpio. Se ve mucho mejor.
Vamos a guardar todo ahora. Volvamos aquí y
descarguemos esto como un archivo CSV. Déjame seguir adelante y
subir a las tablas de datos. Y déjeme importar esto. Ahora he importado el
archivo CSV y se actualiza. Y déjame guardarlo todo Ahora puedo volver
a mi base de jugadores. Y lo que podemos hacer aquí ahora
es simplemente usar esa referencia. Podemos simplemente agregar una variable
aquí llamada name. Y podemos
cambiarlo por un nombre aquí. Podemos volver a donde sea que
reproduzca la multidifusión. Sólo voy a hacer clic
en esos y esconder pines
desconectados para que no
tengamos que ver todo esto Déjame ver dónde
jugamos la multidifusión. Déjeme esconder éste también. La multidifusión se reproduce
aquí en el evento del servidor. Lo que podemos hacer es
simplemente hacer clic aquí, clic en el Nombre del Mag, y conectemos el nombre Mag. Bien, ahora bajemos por aquí. Lo que podemos hacer ahora es simplemente tomar este nombre mag y
conectarlo a Bone Name. Vamos a hacer doble clic aquí, hacer algunas notas traseras
para que también se mantenga limpio. Aquí vamos. Siempre que
sea clip out, vamos a ocultar el
nombre de la mag cada vez que sea clip in. Entonces podemos tomar esto aquí. Ahora para este caso, sólo
tenemos dos notificaciones. Sólo tenemos esto y esto. Técnicamente, podemos simplemente hacer
el código ins fuera de aquí. No obstante, si tienes
múltiples notifica, recuerda que puedes
volver a arrastrar, decir igual, y decir como se llame, luego hacer una nueva rama, y luego puedes conectarla y decir si es verdad,
puedes hacer esto No obstante, en nuestro caso, sólo
tenemos dos notificaciones. En fin, en realidad
sólo voy a arrastrarlo de aquí.
Simplemente alejando esto. Si es falso, vamos
a tomar de nuevo esta arma. Y si solo arrastras
y derechas el hueso y ves que
hay algo que se llama
unhide bone por su nombre, usemos éste Volvamos a conectar este
nombre óseo. Vamos a conectarnos. Esto cae hasta aquí y haga
doble clic para hacer
un nodo trasero hacia afuera. Ahora debería estar funcionando si compilo y guardo todo. Ahora
probémoslo y veamos cómo se ve si
hago clic en play. Ahora recuerda que solo
funciona en la recarga. Esta es la animación de equipar. Esta no es la animación de
recarga. Ahora bien, si recargamos,
se puede ver que se está
quitando mag . Bien, increíble. Vamos a probarlo
con como una M cuatro aquí si debo Y recargar Impresionante, eso también funciona. Se ve mucho
mejor. Y nuevamente, es mucho mejor solo
tener animaciones para esto, pero también puedes ocultar nombres de
huesos cuando estés
recargando el arma
191. 14.08 Arregla un error de recarga en el cambio de arma: Paso una hora probando mi
juego para ver si hay algún error o algo que necesitamos arreglar antes de
terminar esto. solo había un pequeño
problema Ya ves si hago clic en jugar ahora
y saqueo algo Ahora bien, si estoy disparando con
esta arma, por ejemplo, si cambio y luego recargo
al mismo tiempo ves que
cambio y luego recargo, en realidad
está molestando Ahora estoy tratando de disparar, pero no es disparar, la recarga está molestando Sigamos adelante y arreglemos eso. Antes de que terminemos, vayamos a la base de jugadores dentro de aquí. Vayamos a nuestra recarga la lógica aquí y esta es el arma de recarga
dentro de Lo que va mal es que podemos recargar aunque estemos
equipando el arma Esta es una
solución muy rápida por aquí. Cuando intentas presionar
el botón de recarga, las cosas que estamos comprobando También tenemos que verificar si
estamos equipando el arma. Recuerda si hago
clic derecho y digo equipar, hicimos este lingote antes Cuando equipamos el arma, get es equipar arma Y luego lingotes cuando
no estamos equipando el arma, podemos seguir adelante y No obstante, si seguimos
equipando el arma, realmente no tiene
sentido recargar Sólo voy a
copiar esto que hemos hecho antes solo para
que se vea mejor Estoy copiando pegando este código
donde escondemos la revista. En realidad voy a la animación
lutequip aquí. El arma MC Equip. Voy a pegarlo aquí. Creo que va a ser mucho mejor. Tal vez no
necesites hacer eso si tienes como otra animación
equipar. Pero mi animación de equipamiento es
la misma que la recarga. En realidad sólo voy a enchufar esos de aquí para
que se vea mejor. Y también voy a enchufar
esto aquí y
llamarlo nombre mag, igual que antes. Entonces voy a, veamos aquí, es éste, así que sólo voy
a conectarlo aquí. Y eso también
debería arreglarse. Bien,
lo último está bien aquí, dentro del arma de lanzamiento. Cuando sueltes el arma
y detienes el montaje, recuerda no hacer que el sonido de
recarga Aquí paramos el montaje, obtuvimos la
instancia de animación y así sucesivamente No obstante, a veces se confunde de la instancia de
animación, vamos a golpear
desde aquí
porque dice acceso N.
A veces podemos simplemente golpear desde aquí y decir que es válido y seguir adelante y
agregar este nodo es válido, nos estamos asegurando que sea
válido antes de continuar. Si no lo es, no hagas nada. Y nuevamente, solo haz algunas notas
traseras aquí para sea más limpio y eso
debería arreglar todos nuestros problemas. Probé el juego
como una hora, hora y media, y
naturalmente había más
problemas con los que jugar. Confío en decir que
hemos quitado toda la
caja del juego. No tenemos ninguna caja cuando
jugamos el juego también. Voy a limpiar
este proyecto para ti, crear comentarios y
cosas así. Y entonces te proporcionaré
este proyecto. A lo mejor ya la
has descargado. Esto es en el futuro.
Vamos a guardar todo. Y Leah, pasemos
al siguiente.
192. 14.09 ¿Qué pasa ahora: Entonces enhorabuena
por llegar hasta el momento. Ha sido un
curso muy largo a lo que estoy acostumbrado, pero ha sido muy divertido crear esto para ti y crear todos
estos elementos para ti. Entonces ahora tenemos como un buen
comienzo para un tirador de FBS. Y tenemos las
armas cayendo. Tenemos el inventario,
podemos recargar,
podemos cambiar de arma, fusil de
pistola, tenemos las balas,
tenemos la salud y la armadura,
y tenemos los efectos de sonido de
partitura Por lo que hemos sumado muchas
cosas a este entorno. Ahora ya terminamos
con esto actualmente, pero en el futuro
quiero agregar más artículos. Por ejemplo,
podemos agregar un menú Bi. Podemos agregar más armas
como un lanzacohetes. Podemos agregar un lanzagranadas. Podemos agregar granadas. agregar un marcador para el jugador. Podemos agregar un menú principal
y cosas así. Y con lo que puedes
continuar
ahora mismo es si vas a
mi canal de Youtube, Y dentro de ahí, en realidad puedes lanzar
este juego a Steam. Entonces te enseñaré de forma gratuita cómo puedes convertir este juego
ahora mismo que tienes. Puedes guardarlo, puedes convertir cualquier juego que tengas
ahora mismo a Steam. Para que puedas agregar un
menú principal, un navegador de servidor. Puedes agregar una barra de búsqueda
y cosas así. Y en realidad puedes
hacer como anfitrión un juego en Steam para que otros
jugadores se unan. Entonces te voy a enseñar eso dentro de mi canal de Youtube. Así que asegúrate de seguir adelante
y visitar eso también. Y siempre puedes visitar mi sitio web también y
mi servidor de Discord Yo les ayudaré a todos 2047. Así que asegúrate de seguir
adelante y hacer eso. También es muy
agradable hablar con la comunidad. Y si, solo nos estamos
divirtiendo con el desarrollo de juegos, tan agradable tenerte aquí. Gracias por ver. Y asegúrate de estar
atento para más actualizaciones. Y también asegúrate de ver mis otros tutoriales y otros cursos sobre
motor real y multijugador. Adelante y guarda tu progreso y espero verte pronto.