Transcripciones
1. Video promocional del curso (sobre el curso): Bienvenida. En este curso de desarrollo de
juegos para principiantes, aprenderás a escribir
tu propio juego
funcional usando planos en
Unreal Engine five. Sin recubrimiento o Unreal Engine
experimentado, necesario. Hola, mi nombre es Greg wanderer, un veterano de la industria de 12 años
que ha estado enseñando desarrollo de
juegos usando
Unreal Engine desde 2016. Al final de este curso, tendrás una comprensión
profunda de todos los conceptos básicos que impulsan este enfoque de
programación basado en nodo que cubrirá
las clases Blueprint y los componentes, eventos, funciones, macros,
variables y mucho más. Este curso es para todos, desde el diseñador de
juegos Byron más joven hasta el
profesional de la industria de la temporada. Empezamos desde el principio asumiendo que no sabes nada. Pero para el final de
este curso
servirá como un recurso valioso. Puedes hacer referencia
una y otra vez. Así que vamos, únete a
los miles de estudiantes
satisfechos que comenzaron su
viaje de desarrollo de juegos conmigo. No puedo esperar a ver
lo que creas.
2. Primer del curso: Bienvenido, solo una
cartilla rápida aquí antes de
llegar a las cosas buenas, solo para que sepas cómo
navegar por este curso y extraer el valor máximo de él. Ante todo, gracias
por elegir este curso. Sé que tienes
muchas opciones. Me tomo muy en serio hacer estos
cursos. He pasado más de
un año haciéndola. Este es el curso de mis sueños para armar porque
creo que este es el concepto más
importante fundamental para obtener cuando se trabaja
con Unreal Engine, vas a estar aprendiendo
algunos scripts de planos. Lo que es Blueprint
scripting world es esencialmente una forma visual, basada en nodos de codificar el
juego sin
mirar un muro de texto y
sintaxis y todo ese jazz. Entonces, si nunca has visto cómo se ve el scripting
de Blueprints, tengo un ejemplo rápido
para mostrarte aquí. Esto es Unreal Engine
cinco, por cierto. Para crear una jugabilidad
funcional en Unreal con scripts de
planos, solo
puedes conectar
algunos nodos así. Y lo que he sacado
aquí es solo una rápida recogida. También tengo este muro
procesal donde
podemos extender cuántas
piezas tenemos. Todo esto se hace con Unreal Engine es
Blueprint scripting. Entonces, ¿para quién es este curso? Me sale
mucho esa pregunta. ¿Es para mí? Bueno, he diseñado
este curso para todos. He tenido alumnos de tan
solo seis grados, 65 años que toman este curso. Algunos no saben nada de codificación
o scripting en alguna parte, novatos
completos y otros
son el triple de desarrolladores. He tenido alumnos de
Naughty Dog e insomniac. Aunque lo hago en Teach, como si fuera tu primera vez. Así que no hay amenaza en un Hey, no
entiendo
nada programación, nada de eso. Empiezo desde el
mismo nivel del suelo. Entonces, ¿cómo se estructura este
curso? Bueno, no
vamos a estar construyendo ninguna
cosa en particular en este curso. Más bien, este curso es un curso basado en
conceptos, mostrando muchos ejemplos muy
útiles y prácticos. Ahora, traté de hacer este curso lo más
abierto posible, lo que
significa que está destinado a servir
como un recurso para ti, un repositorio de
conocimientos de scripting que puedes
volver a tiempo y tiempo de nuevo como una
ventanilla única de todos estos conceptos
de scripting centrales que podrías desear y necesitar. Quiero decir, estas fueron
todas las preguntas que me hice en mi viaje de aprendizaje a lo largo de
los últimos diez años. Ahora, debido a cómo está estructurado este
curso, puedes saltar
de lección en lección. No tienes que ir de
manera lineal. Aunque sí recomiendo
ir en orden. Ahora puede haber algunas
lecciones aquí y allá que hagan referencia a lecciones anteriores, pero voy a tratar de
llamarlas cuando
ocurran y mantener
eso al mínimo. Ahora bien, sí quiero señalar,
es sumamente difícil
impartir un curso basado en conceptos
como este, citar entre comillas, fin de que para entender
completamente los
conceptos aquí presentados, sin duda nos
encontraremos algunas dependencias de lo que eso significa es que
para entender esto, vas
a necesitar saber de eso. Y para poder saber de eso, hay
que saber de esto. Hay un concepto
o habilidad que se presenta y al principio parece
completamente ajeno. Sepa que a, voy a
llamarlo y ser voy a cubrir ese tema adecuadamente
más adelante en el camino. hay mucho, Aquíhay mucho,
mucho que cubrir. Y sólo para
darte una rápida cartilla sobre lo preparado que estoy
para impartir este curso. Tengo mi esquema
justo por aquí. Este es el esquema que
utilizo para construir este curso. Cada uno de estos enlaces azules, enlaces a una lección. Así que he, he pasado literalmente, en realidad
estoy más cerca de dos años armando este curso. Nuevamente, te recomiendo
ir en orden, aunque puedes saltar por ahí. Por último, si encuentras que este
curso es valioso, por favor deja una reseña y lo
recomiendas a otros, no
hay otra cosa mejor puedas hacer que
recomendarlo a otros. Me encanta enseñar
a los estudiantes a ver o pueden construir. Nada es más emocionante para
mí que ver a los alumnos llevar lo que he enseñado y lo
llevan al siguiente nivel. Cosas bastante emocionantes de hecho. Bien chicos, ya basta de esto. Vamos a meternos en las cosas buenas. Nos vemos a todos en el siguiente video.
3. Descargar e instalar: Muy bien, primero las cosas primero, antes de seguir con
alguna de las cosas buenas, tenemos que
asegurarnos de que tenga Unreal Engine descargado
e instalado. Si ya lo haces, siéntete libre de saltar
por encima de este video. Éste es para los novatos
completos que no
tengo ni idea a dónde ir, cómo empezar, etcétera. Entonces usando un
navegador de Internet de tu elección, simplemente escribe
Unreal Engine.com. Ahora sí tienen una página con algunas
instrucciones de descarga en ella. Te mostrará algunos requisitos
del sistema si te estás preguntando sobre esos, esto es bueno para Windows o Mac, no
importa lo que tengas. Y lo primero
que debes hacer para conseguir Unreal Engine es realmente descargar el lanzador de
Epic Games. Sí, es un poco
de un proceso difuso. Tenemos que descargar el lanzador
Epic Games, a través del cual luego obtenemos
acceso al Unreal Engine. Raro, lo sé. Pero adelante y da clic
en esta descarga y lanza tu opción. Te va a pedir que
guardes este paquete
instalador un destino
de archivo de tu elección. Ya he hecho esto antes,
pero una vez hecho esto, puedes hacer doble clic
en esto para comenzar el proceso de
instalación del lanzador de Epic Games, es bastante sencillo. Todo lo que necesitas hacer
es hacer click a través las casillas que se presentan. De nuevo, ya lo he hecho,
así que realmente no puedo
replicar eso aquí. Proceso bastante sencillo. Ahora, una vez que hayas hecho eso, deberías poder encontrar el lanzador de
Epic Games ya sea apareciendo después de que haya terminado o puedes
buscarlo aquí. Si hago clic en mi
lupa pequeña aquí y solo escribo épica, puedes ver que ahí está mi Epic
Games lanza tu app. Nuevamente, ya he
preinstalado esto desde aquí. Puedo hacer clic derecho en esto y anclar a mi barra de tareas, cosa
que ya he hecho. Así que una vez que el lanzador de Epic Games
haya terminado de instalar, tienes acceso al lanzador de
Epic Games, que tienes
fichas de tienda, biblioteca y Unreal Engine a lo largo del lado izquierdo. Porque obviamente estamos
trabajando con Unreal Engine. Vas a querer
asegurarte de que esta pestaña esté seleccionada y en la parte superior, vas a querer
seleccionar la pestaña de tu biblioteca. Ahora aquí es donde
vas a instalar diferentes versiones de irreal. Ahora, cada par
de meses más o menos, Epic Games viene con una versión actualizada
del motor. Pero para agregar cualquier nueva versión de
motor, simplemente
puede hacer clic en este
botón amarillo plus aquí mismo. Se va a añadir
esta pequeña tarjeta y luego este desplegable, puedes hacer click para elegir
específicamente una versión del motor
que te gustaría instalar. Ahora, a partir de la fecha de hoy
que estoy grabando este Unreal Engine
cinco sigue siendo muy nuevo y esta es la última
versión del motor. ¿ Qué versión del motor
debe instalar? Yo recomendaría la última
versión, sea cual sea eso. Ahora, si vuelvo a hacer clic en esto, cuando estés escogiendo una
versión diferente del motor, te va a pedir que lo instales. Ya he hecho esto
fuera de la cámara con anticipación, así que estoy listo para lanzarlo, pero al hacer clic en Instalar aquí, instalarás esa
versión del motor. Y este puede ser un proceso
bastante largo. Así que una vez que haga clic en Instalar, verá este épico o este ícono de Unreal Engine un poco
llenarse como una barra de metros. Y además si hace clic en esta opción de
Descargar por aquí, se
puede ver
el avance
de la instalación de Unreal. Entonces adelante y hazlo ahora. Adelante y luego toma
un trago, ve a cenar, etcétera porque va
a tomar un rato.
4. Crear proyecto: Muy bien, con Unreal
Engine install, ya era hora de
que creamos un proyecto. Y para hacer eso, necesitamos lanzar el motor. Ahora en realidad hay múltiples
formas de lanzar el motor. Así que te voy a mostrar
esos métodos ahora aquí en el lanzador de Epic Games con Unreal Engine
seleccionado a lo largo de la izquierda, la pestaña de biblioteca seleccionada
en la parte superior. Podríamos lanzar la versión
del motor que acabamos terminar de instalar haciendo
clic aquí mismo. En la parte superior derecha, hay
un botón de Lanzamiento que me
permitirá lanzar esa
misma versión del motor. Ahora si tuviera varias versiones del motor instaladas aquí, puedo hacer click en este desplegable. Todos se
presentarían aquí. Podría elegir uno. Cualquiera que sea la
versión del motor que hubiera seleccionado. Ese número aparecería
a la derecha aquí. Y de nuevo, al hacer clic en este botón de
lanzamiento
amarillo lanzaría esa
versión específica del motor. Ahora si todo esto
es inconveniente, puedes crear un atajo haciendo clic en este
pequeño desplegable. Y puedes crear aquí un atajo de
escritorio, que ya he hecho
antes de este video. Ahí está mi atajo de escritorio. Voy a hacer clic en
Launch aquí mismo. De acuerdo, eventualmente
vas a llegar a un pop-up que se ve así. Estamos creando unos proyectos de
juego, así que asegúrate de que tienes esa
caja seleccionada a lo largo de la izquierda. También vamos a
estar usando la plantilla de tercera persona para
ayudarnos por aquí. Así que asegúrate de
tener eso seleccionado. encima del lado derecho, tenemos algunas opciones. Este va a ser
un proyecto de blueprint que se
selecciona por defecto. Eso está todo bien y bueno. Nuestra plataforma objetivo aquí
va a ser
Calidad de escritorio preestablecida, máxima, lo siento ,
contenido, seguro, trazando rayos tu elección si
quieres o no tener eso seleccionado, voy a decir Sure. Ubicación del proyecto, sigue
adelante y elige una ubicación de archivo
en su computadora. No obstante, el nombre del proyecto
por el amor de Dios, por favor no dejes
eso por defecto
como veo a
demasiados estudiantes haciendo. Cambie esto a
Blueprint scripting. Después sigue adelante y haz clic en Crear. Muy bien, y después de
qué escenas en la eternidad después de
crear ese proyecto, estamos obteniendo nuestra primera
mirada a Unreal Engine cinco, el editor de niveles aquí. Ahora si viste
algo en la ventana inferior derecha que dicho proyecto archiva desactualizado. Basta con seguir adelante y haga clic en fix. Ahora para arreglar eso. En la parte superior derecha, podemos ver el nombre
de nuestro proyecto. Y quiero
señalar que después cerrar este proyecto, puedes
volver a entrar en esto
pasando por el lanzador de
Epic Games,
la pestaña Unreal Engine Library
tiene es mi sección de proyectos. En cualquier proyecto que
hayas creado
se enumerará aquí abajo. Por lo que hacer doble
clic en
esto nos abrirá este proyecto específico, que es bastante práctico. Misión cumplida aquí, chicos, hemos ido adelante y
creamos nuestro primer proyecto. Aprendamos sobre el scripting de
Blueprint en la siguiente sección.
Nos vemos ahí.
5. Ejemplo de Blueprint: Bienvenidos de vuelta a todos. Bueno, con nuestro
proyecto ahora creado, vamos a saltar justo adentro. Vayamos a las cosas buenas. En este video, nuestro objetivo
va a ser definir
qué planos hay en Unreal y luego mostrar un ejemplo de uno en un juego. Y hacerlo demostrará conceptualmente qué es un blueprint y cómo podemos utilizarlos
en la creación de proyectos de juego. Entonces antes de rodar este video, seguí adelante y
creé un plano. Creé un plan de recogida
solo para que te
entusiasmes con lo que vamos a
estar haciendo aquí en la primera parte de este curso. Esto es algo que se
ve todo el tiempo en el juego. Entonces pensé que este sería
un ejemplo muy relevante. Voy a hacer clic en
este botón verde play en la parte superior aquí. Y al hacerlo,
en la parte superior izquierda, va a decir clic
para el control del ratón. Si fui suprimida
FUE y ASD justo desde el principio
y no pasa nada. Tengo que hacer click en esta ventana primero para obtener el control
de mi personaje. Ahora todo lo que ves
aquí fue preconstruido. Lo único que
construí antes de este video fue esa cruz
giratoria. Si me meto a mi personaje, recogí, toco
un poco de sonido. Ves ese tipo de cosas
en los juegos todo el tiempo. Voy a golpear a Escape
para saltar de aquí. Ahora si entro en
mi cajón de contenido y si miro la punta de la herramienta, su control y la barra espaciadora, ahí también es donde puedo
traer en el cajón de contenido. Aquí es donde puedo acceder a
las carpetas y carpetas
sobre carpetas dentro de
mi Unreal Engine, creé esta clase
blueprint es BP ejemplo Clase Blueprint. Previo a este video, vamos a crear uno de los
nuestros por videos anteriores. Pero quería señalar
aquí con el cajón de contenido, esta es una nueva característica
y Unreal Engine cinco, se
puede hacer click en esto para
levantarlo o bajarlo, o hacer ese control
más barra espaciadora. No obstante, para aquellos de ustedes que son un
poco más de experiencia o veteranos de Unreal, pueden
agregar algo ni tampoco el navegador de contenidos que sea una visión persistente de eso cajón abajo en la
parte inferior de la pantalla. Así que voy a venir bajo Navegador de contenido de
ventana y elegir el
navegador de contenido quiere solo tener una copia
del navegador de contenido persistentemente disponible aquí abajo
en el editor. No tienes que hacer eso. Esa es mi propia preferencia
personal. Esto es exactamente lo
mismo que el cajón de contenido tiene exactamente las mismas carpetas,
contenido, etcétera. Muy bien, La razón por la
que estoy haciendo esto es porque quiero crear una nueva carpeta aquí dentro
de mi carpeta de contenido. Así que voy a hacer clic derecho en mi carpeta de contenido aquí mismo. Voy a crear una nueva
carpeta y voy a
llamar a ésta scripting. Entonces voy a hacer clic derecho en esta nueva carpeta de scripting. Y le voy a dar
un color de inmediato. Y sólo voy a
hacer clic izquierdo, mover esto alrededor. Voy a ponerlo
en azul porque hey, este es un curso de
scripting blueprint. Muy bien, la razón por la que estoy
creando esta carpeta es porque muchos de los activos que vamos a estar creando a lo largo de este curso. Quiero que sean cuán
específicamente en esta carpeta para facilitar el acceso para mí así que sé
exactamente dónde viven. Ahora a lo largo del
lado derecho aquí, puedo crear diferentes
tipos de activos. Y puedo hacer eso haciendo clic derecho
y algún espacio vacío. En el menú contextual del MI, puedo crear una nueva clase de
blueprint. Ahora este sería un buen
momento para que hable de
cuáles son nuestros planos en Unreal. Entonces este término, planos, significa aquí dos cosas. Blueprints es el sistema
visual de scripting dentro de irreal, a
veces referido como
blueprints scripting. Pero los blueprints
también son activos como activos Clase
Blueprint que pueden contener componentes específicos, datos o secuencias de comandos que ayudaron a tu juego de alguna
manera, forma o forma. Hay muchos tipos de
planos diferentes en irreal. Ahora bien, todo este sistema de
impresión azul, es una forma para que no
codificadores como yo puedan crear un
juego funcional dentro de Unreal, que es bastante dulce. Entonces de alguna manera
vas a estar recubriendo, pero de una manera muy artística. Entonces, ¿qué significa eso? Vamos a estar cableando algunos nodos y va a
ser mucho más visualmente atractivo que unos y ceros
y corchetes rizados y
todo ese tipo de cosas. Entonces aquí voy a
elegir una clase de plano. Cuando haga click en esto,
vamos a tener que
escoger una clase de padres. Nuevamente, muchos
tipos diferentes de planos, pero en general el más común es el plano de
clase actor. Este es un objeto entonces que se
puede colocar para
responder en el mundo. Entonces sigamos adelante
y seleccionemos esto. Va a crear ese
activo aquí abajo en nuestra carpeta de secuencias de comandos de contenido. Vamos a darle un nombre. Voy a llamar a mi ejemplo de
guión bajo BP. Creo que ese es el nombre que
quiero que le dé. Ejemplo, recoger
ningún ejemplo de recogida. Ese es el nombre
que quería darle. Ejemplo de recogida. Por eso guardo notas. Golpea Enter. Por cierto, si quieres
cambiar el nombre de esto, puedes hacer clic derecho
y cambiarle el nombre F2 mientras que tenerlo seleccionado también te
pedirá que cambies el nombre. Si tuviera que colocar esto
en mi nivel en este momento, puedes simplemente arrastrarlo y soltarlo
desde tu navegador de contenido. Se puede ver que aquí
hay un ícono. Pero si fuera a
saltar a mi juego, realidad no
vería esa cosa. Ese icono solo está disponible en visualizable
aquí en el editor. No lo veo cuando estoy
jugando el juego en sí. Ahora actualmente tengo modo
rotacional en este golpea algunas cosas
básicas de navegación. El modo de rotación está activado. Puedes volver al
modo movimiento para mover esto alrededor. Alternativamente,
tu barra espaciadora
alternará entre movimientos, girando o escalando
tus objetos. Todos ellos tienen teclas de acceso rápido
asociadas a ellos también. Muy bien, así que eso está
todo bien y bueno. El asterisco de aquí abajo muestra
que aún no se ha salvado. Entonces Control plus S dirá eso, o puedes hacer clic derecho sobre
él y hacer clic en Guardar también. Una cosa más que
quiero hacer antes cerrar este video es que quiero crear un nivel de pruebas
completamente nuevo. En realidad no vamos a estar trabajando dentro de este nivel. Esto es todo con fines de
demostración. Por lo que voy a entrar bajo
expediente en la parte superior izquierda. Voy a crear
un nivel completamente nuevo. Cuando hagas eso, te
va a pedir que selecciones una de estas plantillas
diferentes. Voy a ir con el nivel
básico aquí. Haga clic en Crear. Eso me va a
sacar de este nivel y a un nuevo nivel sin título. Ahora pocas cosas que
tenemos que hacer aquí. Una es que necesito
salvar este nivel. Entonces si hago clic en este pequeño icono de disco de
guardar aquí arriba, me
va a avisar, hey, ¿
dónde
quieres guardar este nivel? Voy a poner esto
en mi nivel de scripting. Voy a darnos un nuevo nombre y voy a llamar a este mapa de pruebas de subrayado de
LV. Todo este mapa sólo
va a ser una prueba gigante. Ahora para todos estos
conceptos de planos
diferentes vamos a estar explorando
a lo largo del curso. Vamos a hacer click Guardar aquí. El nombre de esta pestaña
ahora se cambiará a mapa de prueba. Se puede ver que el activo ahora vive dentro de mi carpeta de
contenido. Creará automáticamente
esta prueba Mab datos de compilación. No tienes que hacer
nada dentro de éste, pero automáticamente lo creará también en tu carpeta. Hay una
cosa más que quiero hacer aquí dentro de la configuración de nuestro proyecto. Puedes encontrar que en la configuración de la parte superior
derecha, configuración
del proyecto. Va a traer
en una nueva pestaña. encima del lado izquierdo,
tenemos mapas y modos. Adelante y elige esto. Queremos cambiar
nuestro editor predeterminado, inicio mapa de mapa de tercera persona
al mapa que acabamos de crear, un mapa de prueba de nivel. Simplemente podemos salir de aquí. Y lo que esto hará es que
sea para que una vez que
cierremos del editor aquí
y lo abramos de nuevo, automáticamente vengan
dentro de este nivel. No tenemos que encontrar este nivel aquí en nuestro navegador de contenidos. Entonces eso está todo bien y bueno. Voy a
terminar este nivel muy rápidamente saltando a ese ejemplo de blueprint que había creado en
mi carpeta de contenido, simplemente
puedo
colocar uno de estos en mi nivel y saltar a
mi ejemplo de plano. Aquí mismo, tengo
esta pestaña de viewport que muestra los diferentes componentes
que conforman mi blueprint. Y luego tengo
este gráfico de eventos que muestra el scripting, los nodos y cables que crearon la funcionalidad para este blueprints
en particular. Me superpongo y toca un sonido
y destruye al actor. Así que eso es esencialmente lo que
vamos a estar construyendo lo largo de estos
próximos videos aquí. Pero chicos, eso nos
va a llegar hasta donde quería
llegar en este video. Entonces nos vemos
en la siguiente.
6. Panel de componentes: Bienvenidos de nuevo a todos. En este video, nuestro
objetivo es agregar algunos componentes a nuestro blueprint
recién creado para darle una comprensión de lo que es
el panel Componentes dentro de un blueprint y cómo aprovechar al máximo
de trabajar con ello, porque hay
muchos matices, muchas cosas buenas que
saber que te
ahorrarán un montón de tiempo. Bien, Antes de llegar a eso, quiero acabar con
este ejemplo de BP que me leen previo al
inicio del último video. Así que vamos a decir
adiós a eso haciendo clic Eliminar ahí mismo en
el Navegador de contenido. Alternativamente, tu cajón de
contenido. Voy a
entrar en mi
carpeta de scripting y voy a colocar mi pickup de ejemplo BP
en mi nivel. Nuevamente, todavía no hay nada
dentro de este plano, así que veo este ícono, pero si tuviera
que jugar, no vería nada. Ahora hay un par
de formas en las que podemos ir modificando este plano. Una es que podemos
hacer doble clic en su
propio activo hacia abajo en el cajón de barra
del Navegador de contenido. O con este objeto
colocado en el nivel, puedes hacer clic sobre en tu
outliner donde tienes seleccionada la recolección de ejemplo
BP y justo ahí está editar pastillas de ejemplo BP. Así que voy a hacer clic en eso. Y si ves que
esto es un dato
solo Los blueprints
a veces ocurren cuando abres un blueprint, simplemente
puedes hacer clic
aquí para abrir el editor de planos completo. Bien. Este es nuestro editor de planos. Voy a hacer clic en la pestaña de la
ventana gráfica justo aquí arriba. Vamos a estar desglosando cada aspecto de esto
en detalle aquí. Pero primero voy a la pestaña de la
ventana gráfica, porque vamos a estar agregando algunos componentes en
la pestaña Componentes que luego podremos
ver en la pestaña de la ventana gráfica. Debo señalar aquí, hicimos
planos de clase de actor en el último video. Y he aquí, la esquina superior derecha, dice
que la clase de padres
es la clase de actor. Bien, así que sigamos adelante y hablemos de qué son los componentes. Los componentes son esencialmente
los bloques
de construcción de un plano. Si piensas en un auto, la construcción de un auto, un plano de auto
tendría un cuerpo de malla. Tendrías algunas ruedas, tendría algunos faros,
bocina, tal vez algo de humo de escape. Todos esos componentes
podrían agregarse aquí en el panel Componentes. Ahora por defecto, el panel
Componentes se encuentra en la parte superior izquierda
del editor de planos. Ahora, puede cambiar el tamaño esta ventana haciendo
clic izquierdo y arrastrando aquí. Podrías arrancar
esta pestaña
aquí mismo y colocarla en algún lugar
completamente diferente. Di ahí abajo. Yo elijo tenerlo de
vuelta donde estaba. Puede ocultar y mostrar
la pestaña de componentes. Si tuviera que simplemente hacer
clic derecho sobre esto, podría ocultar esa pestaña. Si hago clic en esa
banderita azul de ahí, puedo mostrar la pestaña. Puedo hacer clic derecho
sobre esto y acoplar a la barra lateral y moverlo
por aquí si quisiera. Y simplemente estoy
haciendo clic en él como para poder hacer clic derecho sobre él de nuevo en desacoplado
de la barra lateral. Muchas opciones aquí. También puedo deshacerme de
este panel de componentes todos juntos haciendo
clic en esa X. Los estudiantes hacen esto
de vez en cuando, luego se enloquece y se preguntan, ¿cómo puedo recuperar esa ventana? Bueno, si te encuentras bajo tu opción de
Windows aquí arriba
, he aquí, tienes
una opción de componentes. Ahí vas. Bien, agreguemos algunos
componentes a nuestros planos. Así que tenemos un
bonito vistazo aquí. Tenemos este
botón Agregar aquí mismo. Pero fiel a la
naturaleza de lo irreal, si hay múltiples
formas de hacer las cosas. Entonces voy a
tratar de demostrar múltiples formas de agregar componentes. hagamos clic en este botón Agregar aquí Primerohagamos clic en este botón Agregar aquíy agreguemos un nuevo. Lo que queremos es una
colisión de esfera y componentes. Como puedes ver, muchos componentes
diferentes aquí en Unreal, no te
dejes intimidar. Hay algunos de
estos que se utilizan manera más común que otros. Uno de los que se usa
muy comúnmente es el componente de
colisión de esfera. Esto esencialmente te
proporciona
una esfera invisible que
podemos comprobar para ver si tu personaje
se superpone para hacer cosas. Entonces voy a llamar a esta
esfera subrayada colisión. Se le puede dar un nombre ahí arriba. Y con esos componentes seleccionados en
el panel Detalles, voy a cambiar
algo al respecto. Voy a cambiar los detalles, el radio
de la esfera a ser 50. Trataremos más con el
panel Detalles en un futuro video. También voy a añadir un cubo. Y voy a llamar a este
cubo subrayado horizontal. Puedo usar la rueda del mouse
para acercar y alejar. Sólo voy a
darnos una báscula aproximada. Puedo ajustar esto en algún momento, pero con esto desbloqueado, voy a cambiar esto
para que sea 0.25 en la x, 0.25 y la y un poco delgada hacia arriba. Y voy a
cambiar la escala Z para que sea 0.8, algo así. Ahora puedo hacer clic derecho sobre esto. Puedo duplicar esta
porque voy a crear esa forma de cruz que
tuve en el último video. Y me está incitando
a que nos dé un nombre. Voy a llamar a este
cubo vertical. Y éste voy a mantener verdaderamente vertical
porque el último, aunque
lo llame horizontal, está de pie verticalmente con el cubo
horizontal seleccionado. Voy a elegir el modo de
rotación aquí arriba. También puedes presionar la
barra espaciadora. Y
simplemente voy a rotar esto hacia abajo para que sea 90 grados, así. Bien, agreguemos otro
componente. ¿Deberíamos? ¿ Qué tal si le agregamos
algo de fuego a esto? Claro, vamos a agregar un efecto
de partícula. Voy a desacoplar
esta ficha aquí mismo. Y lo voy a desacoplar, colocarlo en algún lugar por aquí. Y la razón por la que estoy haciendo eso está abajo en mi navegador de contenido, voy a entrar en
mi contenido de inicio. Voy a entrar en mi carpeta de
partículas. Aquí veo una partícula P fuego. Ahora bien, este es un sistema de
partículas más antiguo. En algunos años futuros
probablemente se van a
deshacer de estos. El sistema de partículas más nuevo
se conoce como Niagara up. Para que no tengas que usar
estos efectos de partículas más antiguos. Puedes usar un efecto de
partículas Niágara más nuevo cuando ellos, estoy seguro de que los tendremos disponibles en una carpeta de
contenido de inicio. Pero lo que quería
demostrar aquí es que puedo hacer clic con el botón izquierdo aquí mismo
en el Navegador de contenido, arrastrar esto hasta mi panel de
componentes así. Y ves esa caja que
rodea mi taco horizontal, sólo
voy a
arrastrarla justo encima de ella. Y puedo ver
que lo he agregado a mi plano. Ahora algo más que quería señalar ahí es que
a medida que
agregamos esto a nuestro blueprint dentro de nuestro panel de componentes, agregó
esto a la instancia de este blueprint
que está en nuestro nivel. Entonces como puedes ver mientras modificamos las cosas aquí dentro
de nuestro blueprint, va a modificar y
actualizar cualquier instancia, cualquier copia de este
blueprint que
hayamos colocado en nuestro nivel, que es lo que hace que los
planos sean tan increíbles. Algo más que
quería señalar aquí es,
es una especie de
relación que está sucediendo. Se puede ver que
las cosas están sangradas
arrastrando mi P fuego encima
de mi cubo horizontal. En realidad
lo hizo para que quede unido a este cubo
horizontal. Entonces, si tuviera que seleccionar mi cubo
horizontal aquí mismo, permítanme volver
al tamaño completo de esto. Tengo mis
componentes de cubo horizontal seleccionados aquí. Si muevo esto, viene
el fuego para el paseo. Sólo voy a hacer Control
Z para respaldar eso. No obstante, si tuviera que seleccionar
el fuego en sí y moverlo, nada más está
unido al fuego. El fuego se adjuntó
al cubo horizontal. Entonces voy a hacer Control
Z para deshacer eso. Si no me gustó que
estuviera adherida a ella, simplemente
puedo arrastrar y
soltar esta bolsa encima. Y ahora se está mostrando
como no estar apegado esencialmente cuando algo
se sangra así, demuestra
que una cosa
está apegada a otra. Entonces en este momento mis dos componentes de malla de
cubo, están unidos a mi componente de colisión de
esfera. Ahora solo porque quiero
presumir más de
este tipo de cosas que
están apegadas. Voy a arrastrar
esto justo de nuevo
encima de mi cubo horizontal. No hay razón para que yo haga
eso aparte de solo porque voy a
desacoplar esto otra vez, lugares así como así. ¿ Qué más quiero agregar aquí? Quiero agregar algunos, agreguemos algo de humo, vistosos. Así que voy a tomar un
humo justo aquí arriba. En realidad déjeme hacer esto. Voy a poner
esta parte superior de respaldo, voy a volver a mi nivel de prueba. Aquí hay otra forma en que
puedes agregar este componente, agarrando mi humo, dando click
izquierdo, arrastrándolo hasta mi pestaña. Ahora esa pestaña se abre
automáticamente, y ahora voy a
arrastrar y soltar esto encima del fuego. Entonces ahí, acabo de agregar
otro efecto de partícula. Ahora de nuevo, el humo se
une al fuego, que a su vez se une
al cubo horizontal. Entonces, si iba a mover el
cubo componente horizontal, el fuego y el
humo viene con él. Control Z para respaldar esto. Y como puedes ver atrás
en mi editor de niveles aquí, está fumando con esta
instancia del plano. Bastante genial. Bien, quiero agregar,
agreguemos algo más aquí. Quiero agregar volviendo al interior de mi
ejemplo de blueprint pickup, agreguemos algo de
movimiento rotacional para mostrarle. Entonces hago clic debajo del agregar componentes en un área de componentes de
búsqueda, puedo buscar uno
llamado movimientos giratorios. Entonces sí, puedes
buscar componentes. Sabía que éste existía, así que supe al buscarlo, lo reduciría. Ahora al seleccionar esto, lo va a acoplar
un poco aquí abajo. Esto es una especie de componente
especial en el que no está
apegado a nada. No se puede conectar un componente de movimiento
giratorio a ningún otro componente. Esto afecta esencialmente a
todos los demás componentes aquí en nuestro plano. Ahora con esto seleccionado
en el panel Detalles, puede ajustar su velocidad de
rotación. Ahora actualmente va a
rotar a lo largo del eje z. Tienes los ejes x, y y z es que puedes
girarlo a una velocidad determinada. Ahora no vemos nada
girando ahora mismo. Sin embargo, si estuviera suprimido como botón de
Simulación en
la parte superior del editor, lo
verías girar. Ahora está simulando encendido, voy a darle clic
de nuevo para detenerlo. Podría cambiar esto a, digamos 2 mil. Y luego haz clic en Simular para
verlo girando mucho más rápido. Va a establecer eso de nuevo
a su valor predeterminado haciendo clic en este
pequeño botón de retroceso. Bien, genial. Entonces, si tuviera que entrar a mi
nivel aquí y fuera a jugar, bueno, si tuviera que jugar, no
estaría corriendo por ahí. No vería esto
realmente girando porque no tengo un lugar actor o
un actor colocado en mi
nivel en el que engendrar. Entonces, entrando bajo mi botón Agregar justo aquí arriba en la
parte superior del editor, voy a venir
bajo actores básicos. Y quiero agregar un actor de
inicio de jugador a mi nivel. Simplemente puedo hacer clic izquierdo
y arrastrar y soltar. Y con este actor
hace, es que define un lugar en mi mundo
donde voy a desovar en esta flecha azul apuntando a la dirección que mi
personaje va a estar enfrentando. Entonces ahora si tuviera que hacer clic en play, estaría jugando. Y puedo ver que todo dando vueltas. Sí, todo gira,
incluyendo el fuego y el humo
porque está todo apegado. Sé que no se ve genial, solo presumiendo
diferentes conceptos. Bien, agreguemos un
componente más a nuestro plano. Y éste también se va a
hacer de una manera única. Quiero encontrar una pieza de
audio dada demasiado adjunta
a este plano. Entonces lo que voy a hacer aquí es seleccionar nuestro plano aquí
en el propio editor de niveles. Y mira por encima en
el panel Detalles. Voy a pelar
esto aquí mismo. Puedo ver todos los
diferentes componentes que se han agregado
a este plano. Y a partir de aquí, puedo
añadir un componente. Entonces intentemos agregarlo
desde aquí en contraposición a en nuestro propio
editor de planos. Entonces voy a hacer clic en Agregar, y quiero agregar
un componente de audio. Y al hacerlo,
lo agrega aquí. Sin embargo, si tuviera que saltar a mi pastilla de ejemplo BP que había creado aquí
en mi carpeta de scripting. Vamos a saltar ahí ahora mismo. Aún no veo ese componente en
ninguna parte de aquí. Entonces, ¿cómo me aseguro de
que ese cambio aquí a esta instancia del plano se propague a mi plano base? Bueno, si hago clic aquí mismo en este
botón, edita el plano para este actor, déjame dar click ahí mismo. Lo que puedo hacer es elegir
esta opción aquí mismo, aplicar cambios de instancia
al Blueprint. Entonces, al hacer esto,
recibo una pequeña notificación
ahí mismo. Y luego si vuelvo a mi pickup de ejemplo de
blueprint, ahora
puedo ver que
ese componente de audio también se
ha agregado. Ahora una vez más,
hay muchos tipos de componentes que se pueden
agregar a un blueprints. Hay muchos de estos
que nunca he usado, pero hay algunos que
se usan muy comúnmente. Y una cosa
que quiero cruzar temprano aquí es
trabajar con irreal. Hay tanto que saber, pero no es necesario que
lo sepas todo conociendo algunos de los conceptos clave que
puedes llegar muy, muy lejos. Así que no se deje intimidar
temprano aquí. Los tipos comunes de componentes
incluyen mallas estáticas. Tienes algunas luces
que se pueden agregar. Donde mis luces,
Ahí están mis luces. Tienes tus formas de
colisión. Y entonces tienes
algunos de esos movimientos. Una vez que resuelves el movimiento
giratorio, hay uno llamado movimientos
interpretativos. Eso también se
usa bastante comúnmente. Bien, un par de
cosas más que quería
señalar en este video
antes de terminar esto, una tiene que ver con esta
relación apego que tenemos entrando dentro
del panel Componentes. Una cosa a tener en cuenta es que
con unos componentes determinados seleccionados que se adjuntan
a otra cosa, la ubicación listada en el panel Detalles es relativa a lo
que está unido. Entonces ahora mismo tengo mis
componentes horizontales de cubo seleccionados. Y eso está unido a mi componente de colisión de
esfera. Si tuviera que establecer la
ubicación z en 100, eso la va a mover hacia
arriba 100 unidades irreales. Cada unidad irreal
representa un centímetro, 100 unidades irreales por encima del punto central de mi componente de
colisión. Entonces solo debes saber que todos estos ajustes de
ubicación son relativos a lo que sea a
lo que esté unido. Voy a poner esto atrás. También quería señalar que se
puede cambiar la raíz. Observe que cuando creamos
este blueprint por defecto, tenía esta
ruta predeterminada vista en este editor aquí. Ese era ese ícono que
existía ahí antes. Todo lo demás está apegado y su ubicación es
relativa a esa ruta. Se puede cambiar el
componente raíz simplemente seleccionando, en este caso,
voy a seleccionar colisión de esfera
severa,
no colisión severa. Voy a arrastrarlo y
soltarlo encima aquí. Y es dejarme saber
si dejo caer esto aquí, voy a hacer de
esto las nuevas raíces y que se eliminará la
ruta por defecto. Dulces, esa es
ahora la nueva raíz. Todo lo demás se posiciona relativo a mi colisión de esfera. Lo último que
quería señalar aquí, y lo que hace que los
planos sean tan increíbles es que al tener un actor de
planos creado aquí, si hago un cambio dentro
de este plano, cambiará cada copia
esaes cada instancia de esto colocada en el mundo y solo
demuéstralo muy rápidamente aquí. ¿ Puedes volver a
mi nivel de prueba aquí dentro de mi carpeta de scripting? Sólo voy a colocar
algunos de estos a
lo largo del nivel. Por cierto, no tienes que
seguir arrastrando y soltando. Puede mantener presionada la tecla Alt y hacer clic con el botón izquierdo para seguir
arrastrando copias de estas. Bien, así que
tengo cinco de ellos. Ahora solo digamos,
creo, ya sabes qué,
eso está girando, el fuego y el
humo se ven un poco tontos. Puedo volver a mi pickup de
ejemplo aquí. Puedo seleccionar mi humo. Puedo decir borrar. Yo solo voy a hacer
Control Z ahí y decir, ¿
sabes qué?
Quiero deshacerme
del fuego y del humo. Entonces voy a seleccionar
mi fuego y presionar Eliminar. Eso va a eliminar. Entonces voy a
eliminar el humo. Y ahora si
vuelvo a saltar a mi nivel, eso se ha ido por
cada copia de estos, quiero deshacerme
de esos, sí, de hecho. Entonces voy a volver a mi pickup de ejemplo de
plano. Vamos a guardar esto. Y eso va a ser todo lo que queríamos lograr
en esta. El tipo del panel Componentes es una parte muy importante para
conocer sobre planos. Lo va a hacer
todo por este video, te
veremos en el siguiente.
7. Pestaña de Viewport: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es entender cuál es
la pestaña viewport
dentro de un blueprint. Ahora esta es nuestra ventana hacia cómo va a verse
nuestro plano
de clase de actor. A través de esta pestaña, podemos
afinar la colocación de dichos componentes en
relación unos con otros. Ahora la pestaña de la ventana gráfica
se puede encontrar justo aquí arriba. Tenemos tres
pestañas diferentes, una pestaña de ventana gráfica,
la ficha Escritura de construcción, y luego pestaña Gráfico de eventos. Cada uno de estos va a
avalar su propio video. Así que no te preocupes, vamos a
llegar a esos otros. Empecemos
hablando de las diferentes opciones de
viewport. Es decir, lo que se
encuentra debajo este pequeño ícono de hamburguesa
en la muy alta izquierda. Entonces si hago click en esto, me presentan
cuatro opciones diferentes
de las cuales tengo dos de ellas puestas. Por defecto, esta opción
en tiempo real y esta opción Mostrar cuadrícula. Llegaremos a todos
esos en un poquito. Así que restablezcamos la cámara uno. Si tuviera que hacer click
en esto en este momento, realmente
no parece
hacer tanto. Sólo un poco salta
mi cámara de nuevo para mostrar todo en mi plano. Aquí mismo, de frente y
centro en mi mirador. Ahora, donde esto realmente
es útil es a veces tienes muchos componentes
diferentes aquí
dentro de tus puertos de vista. O a veces por la
razón que sea que haya volado
lejos, muy lejos, como lo
estoy haciendo en este momento. Y tú eres como, ¿
Dónde están todas mis cosas? ¿ Dónde están mis componentes? Si simplemente vienes bajo
este ícono de hamburguesa, haz clic en Restablecer cámara. Te saltará de
vuelta a donde
quieras estar y suspirarás. Suspío de alivio. A continuación vamos a
hablar de la opción en tiempo real. Se comprueba por defecto, pero no tenemos
nada animando aquí, así que es difícil
ver realmente qué hace esto. Voy a saltar a
otro plano para presumir lo que hace aquí. Por lo que voy a saltar de nuevo
a mi mapa de pruebas de nivel dentro de mi
navegador de contenido o cajón de contenido. Voy a venir a mi carpeta Blueprints en
tercera persona. Ahí está mi B P
ThirdPersonCharacter que es un personaje al que estamos jugando actualmente como cuando pulsamos este botón Play, voy a
hacer doble clic aquí para abrir este blueprint. Y de nuevo, si hago
clic en la pestaña viewport, puedo ver todos los
diferentes componentes que conforman nuestro
ThirdPersonCharacter, incluyendo una cámara, y
esa es la cámara que estamos mirando cuando
están jugando nuestro juego. Ahora si acercas ligeramente a este
personaje y yo
sólo estoy haciendo rueda de ratón aquí puedes ver a nuestro personaje
animando un poco. Están tocando una animación
ociosa. Bueno, si por alguna razón
quiero que el personaje simplemente
se mantenga quieto, puedo hacer clic en esta opción. Apaga en tiempo real. Tiene una tecla de conexión
rápida asociada a ella también. Entonces si hago Control y nuestro eso va a encender y apagar
eso. Bastante genial. Muy bien, saltar de
nuevo a mi ejemplo de BP, camioneta, venir bajo mi ícono de
hamburguesa quiere más. Tengo la opción de show floor. Ahora esto está apagado por defecto, pero no está mostrando piso aquí, lo cual es bastante extraño. Voy a apagar esto. Déjame volver a mi
tercer personaje personaje y show floor. Ahí vamos. Ahí está nuestro show para la opción. No uso esto con demasiada frecuencia, pero de vez en cuando, sí
tienes un montón de
componentes y dices que estamos construyendo un auto o
algo así. Esto puede darte un mejor
sentido de escala y justo cómo se presentan
las cosas en
relación entre sí,
a diferencia de solo
un personaje o
un plano de clase de actor que
está flotando en el espacio. Saltando de nuevo a mi
ejemplo de recogida de BP una vez más, debajo de las
diferentes opciones, tenemos la rejilla del show. Ahora está encendido por defecto y se
puede ver que está aquí abajo. Puedo apagar eso. Y por qué eso es útil
para mostrar o no mostrar. Voy a manifestarme
aquí en un poco. Voy a mostrar mi grilla y
ahora voy a conducir a la discusión de
nuestros diferentes puntos de vista aquí, saltando uno por encima. Actualmente esta es la ventana gráfica de
perspectiva. Esta es una especie de tu
hermosa vista. No obstante, si tuviera
que hacer click en esto, tengo diferentes vistas
ortográficas que puedo saltar
nuestra ventana gráfica, como una vista superior. Esta es una especie de vista de
pájaro de las cosas. Tengo una vista izquierda mirándola desde un ángulo izquierdo y puedes entrar y salir de la
rueda del ratón. Una vista frontal. Estamos viendo la cruz, no en el lado transversal, sino más el lado, lateral. Y cada uno de estos tiene una
tecla de conexión rápida asociada a ella. Ahora donde
realmente entra en juego la grilla aquí está se pueden ver estas
diferentes marcas de rejilla. Entonces tal vez te estés preguntando, bueno, ¿qué tamaño representa cada una de estas
cuadrículas? Bueno, ahí es donde nos
dirigimos a
la discusión de nuestros diferentes
tamaños de grilla aquí arriba. Entonces si tuviera que hacer click
aquí donde está este número cinco, puedo mostrar diferentes
tamaños de snaps, 1510, etcétera. Actualmente está establecido en cinco, lo que significa que cada una de estas
pequeñas plazas representa un área de unidad irreal de cinco por cinco. Ahora esto es súper práctico
y solo voy a
saltar para ir a la vista superior. Si quieres mover
componentes alrededor y
quieres que salten
ciertos incrementos. Así que tengo este movimiento de
chasquido Snapping actualmente puesto en. Eso es lo que este azul lo
representa por aquí voy a establecer mi configuración de
snap a 100. Ahora nota que una vez que hago esto, el tamaño de la cuadrícula se
cambia para que coincida. Entonces esto es ahora 100 por 100 como un tamaño de cuadrícula en contraposición
a lo que era antes, que era de cinco por cinco. Entonces voy a cambiar
esto de nuevo a 100. Ahora solo digamos que
quiero que mueva mi cubo de
malla horizontal por aquí, más de 100 unidades por
clic izquierdo y arrastrándolo, simplemente salto por encima de 100 unidades. Ahora se puede ver si muevo
esto por ahí en la vista superior, lo está saltando por
incrementos de 100. Y se puede ver eso reflejado aquí en los entornos locacionales. Nuevamente, estos ajustes de localización son relativos a la raíz. Ahora, si quisiera moverlo de una
manera más suave, podría apagar los ajustes de snap cuando no
es azul así. Eso significa que puedo
moverlo con bastante suavidad. Pero a veces sí quieres moverlo en incrementos muy
discretos. Y ahí es donde eso
realmente viene muy bien. Voy a establecer mi
ubicación aquí de vuelta a 0. Y volveré a encender mi configuración
de snap y la volveré a cinco mientras estamos aquí y
hablando de todo esto. Este es probablemente un buen
momento para hablar nuestros diferentes ajustes
aquí en nuestra ventana gráfica. Actualmente, estoy en el modo de
traducción de objetos. Puedo hacer clic aquí para
cambiar esto en modo de rotación. Al igual que así. Ya puedes ver ahora mismo, déjame saltar aquí de
nuevo a la vista en perspectiva. Se puede ver como estoy
girando esto, lo está moviendo en
incrementos de diez. Y se está moviendo en incrementos
de diez porque tengo mis ajustes de chasquido rotacional encendido, lo que
significa que va a
moverlo en incrementos de diez. Y si tuviera que hacer
clic aquí mismo, podría cambiar qué incrementos. Se va a rotar por. Me gustan los diez grados, pero hay casos
para estos otros. También tengo modo de escala en el
que puedo convertir esto. Para que pueda ir a mi opción de escala. Y ahora si simplemente fuera a
agarrar uno de estos mangos, agarraré ese
mango azul justo ahí, que representa el eje z,
el relativo eje z. En este caso,
se puede ver cómo estoy ajustando la escala de esto. Voy a volver a poner esto
a lo que lo tenía antes, que fue 0 puntos. Creo que lo tuve en los puntos 8.8 de hecho es en lo que lo tenía. Entonces W, E, y R, como se puede ver en
esas herramientas, esos pueden saltar a los diferentes modos allí, que es el modo de movimiento, el modo rotación y el modo de escala. hacer clic en estos botones también lo
hará, pero w ENR puede saltar a
esos diferentes modos de movimiento, rotación y escala. No obstante, la barra espaciadora también
cambiará entre los tres. A continuación, hablemos de nuestros
diferentes modos de iluminación. Actualmente por defecto,
esto está en modo Lit, pero si hago clic en esto, puedo cambiar esto
a modo desiluminado. Nuevamente, todos estos tienen
teclas de acceso rápido asociadas a ellas. O modo wireframe. No demasiadas veces uso
wireframe o modo desiluminado, pero están ahí en
caso de que sí los necesite. ¿ Qué pasa si accidentalmente
cierras esta pestaña? Sucede con bastante frecuencia, más a menudo de lo que
piensas en realidad. Y luego los estudiantes se preguntan, ¿A
dónde fue, cómo lo recupero? Entonces voy a hacer eso
ahora mismo cerrándolo. Bueno, la forma de
recuperarlo es simplemente
venir debajo de esta opción de ventana. Y luego abajo
puedes hacer clic a su vez tu ventana gráfica de nuevo. Aquí hay otras
opciones de view-port a las que
puedes acceder haciendo
clic derecho sobre él. Puedes acoplarlo a una barra lateral. Lo que eso hace es que lo
va a saltar por aquí. Y así si tuviera que hacer click sobre él, ampliaría esta abierta. Si lo engancho, eso significa que no
puedo bajarme de él. Entonces si lo desanclo, puedo hacer clic con el botón derecho y lo moverá de nuevo
a la barra lateral. Si vuelvo a hacer clic con el botón derecho, puedo desacoplarlo. Por lo que también puedo
cerrarlo desde aquí, que hice antes de
cerrarlo es lo mismo que
hacer clic en esta x. puedo cerrar la pestaña
a la derecha de este significado de ese guión de
construcción o el gráfico de eventos. Si me deshago de esos
tipos, oh, se han ido. Ésos no se encuentran debajo de
la opción de ventana aquí. Entonces para que esos chicos
regresen al panel My Blueprint, puedes hacer doble clic en el Gráfico de eventos para
traer de vuelta a ese tipo. También puedes hacer doble clic en
el guión
de construcción para traer
esa pestaña en particular. A continuación, hablemos de
moverse por la ventana gráfica. Si tuviera que mantener presionado el botón izquierdo del ratón y
simplemente mover mi ratón alrededor. Esto. Conducir en la ventana gráfica. Por cierto, estos
son el mismo control de nuevo en tu editor de niveles. Si estuvieras en la ventana
del editor de niveles, botón
izquierdo del ratón y moviendo el
ratón alrededor de las unidades. botón derecho del ratón simplemente mira por aquí en
tu editor de niveles, así
como en el interior de tu ventana gráfica para tu botón central del mouse
plano. Y mover el ratón
alrededor simplemente lo mantendrá en el mismo plano 2D
y lo moverá alrededor. Botón central del ratón más, o debería decir un botón
central del ratón o ratón izquierdo y derecho, botones
derecho del ratón juntos. Volveremos a hacer lo mismo de
nuevo en el editor de niveles, botón
central del ratón,
moviéndolo alrededor, botones
izquierdo y derecho del ratón juntos. Moverlo alrededor,
hace lo mismo. Y luego por último pero no menos importante, es mi forma favorita de
navegar por la ventana gráfica, manteniendo pulsado el botón
derecho del ratón, y luego usando W, a, S y D para volar alrededor. Ahora la velocidad a la
que vuelas alrededor, déjame saltar de nuevo a
mi pestaña de viewport de mi blueprint que está determinado por este
tipo de aquí arriba. Sus cámaras deslizadores de velocidad. Si hace clic en esto,
puede configurar esto hacia arriba o hacia abajo. Así que ahora voy a
volar súper rápido. O si lo envío más bajo, estoy volando por ahí súper lento. Ahora una cosa a tener en cuenta aquí, el valor predeterminado es que
si vas a volar alrededor y estás usando la rueda
del ratón dentro y hacia fuera, desplazándote hacia arriba o hacia abajo, realmente
puedes modificar qué
tan rápido estás volando alrededor. Entonces ese es un buen
truco práctico para conocer también. Quieres que las cosas tengan en cuenta
antes de cerrar este video, los componentes raíz. En este caso, tengo
la esfera podría tener colisiones establecidas como mi
raíz dos componentes. No puedo mover los componentes
raíz. Ya puedes ver que realmente no puedo ir
seleccionándolo aquí en mi editor fuera de simplemente seleccionarlo en
el panel Componentes, puedes seleccionarlo,
pero como puedes ver, no
puedo cambiarlo por modo de traducción o
modo de rotación o modo de escala. Me mantiene solo en el modo
select object, que es la tecla de acceso rápido Q. Y se puede ver más en
el panel Detalles a, sólo
puedo escalar esto. No tengo la opción de
moverlo o rotarlo. Además, quería recordarles a todos el aspecto relacional
del panel Componentes y cómo eso afecta mover
las cosas alrededor de su ventana gráfica. Si recuerdas el último video, añadí este
componente de audio el cual está enterrado dentro
de mi cruz aquí. Déjame mover un
poco a este tipo porque
realmente no importa dónde lo coloque, solo ese ícono de aquí mismo. Voy a añadir esto a mi componente vertical
cubo. Así que de nuevo, si tuviera que mover mi componente
de audio por sí solo,
se moverá de forma independiente. Pero en este momento está
unido a mi Q vertical. Se supone que debe mover a
ese tipo por ahí. El componente de audio va
a venir para el paseo. Entonces esta relación
es bastante poderosa. Usa eso y recuerda
estos ajustes locacionales, estos son relativos a
lo que está unido. Si no te gusta esta relación
adjunta, solo
puedes ir así, arrastra por la parte superior otra vez
y no sangrará mostrando que ya no está
apegada a ella. El último pero no menos importante, no te olvides de
tus ajustes de snap
aquí arriba en la ventana gráfica cuando estás moviendo
algo alrededor, rotando algo alrededor
o escalando algo. Y por favor, por
favor, por favor, no olvide que puede modificar su configuración de ajuste de
escala, sus ajustes de ajuste de rotación, y sus ajustes de
ajuste de movimientos que pueden ahorrarle mucho tiempo también. Muy bien chicos, esa
es la pestaña viewport. En pocas palabras, ojalá, muchos de esos consejos
y trucos te ahorren mucho tiempo. Eso va a hacer para ofrecer este. Te veremos en
el siguiente video.
8. Panel de detalles: Bienvenido de vuelta a todos en este
video o metas para aprender todo sobre el panel de detalles
dentro de un blueprint. Ahora, los planos están compuestos
de todo tipo de cosas. Tenemos componentes. Tenemos variables de las que aún no
hemos
hablado, sino que lo haremos, e incluso información sobre el propio plano. Ahora todos estos datos, toda esta
información es establecida por usted dentro del panel de detalles. Ahora, por defecto, el panel
Detalles se encuentra a la derecha aquí dentro de
su editor de Blueprint. Al igual que cualquier otra ventana gráfica, simplemente
puede arrancarla,
hacer clic con el botón izquierdo, arrástrela a alguna otra parte de la ventana de su
editor aquí. algunas personas les gusta
ponerlo justo debajo su
panel de componentes porque hay seleccionando varios componentes
y luego les gusta cambiar los detalles
justo abajo. Sin embargo pierna llego
justo donde está. Entonces voy a
atracar ahí atrás. Walla. Por qué no cambiamos algunos detalles diferentes sobre
algunos de nuestros componentes. Y en este momento estoy mirando son
dos componentes diferentes de
malla estática o cubo un horizontal
y cubo vertical. Ahora mismo tenemos este tipo de cruz
blanca para una recolección de salud. Creo que sería más agradable si lo
cambiáramos a verde. Entonces voy a elegir mi
cubo, horizontal aquí, y más en el panel Detalles, puedo cambiar el material
que se le aplica. momento tengo este material
básico de forma. Puedo hacer clic izquierdo sobre
esto y puedo elegir uno de estos diferentes
tipos de materiales. Me gustó este activo básico, O3, eso es bastante genial. Ahora, si no estás viendo esto, o tal vez quieras acceder
a más materiales. Si hace clic en este ícono de
engranaje pequeño aquí mismo, puede encender y
mostrar el contenido del motor. Y así es como estoy
viendo
más materiales de los que eres a
primera vista aquí. Entonces si también tienes
algún contenido plug-in, así es como puedes
encender eso también. Por lo que mostrar contenido del motor
revisará más materiales para usted. Voy a usar este
activo básico O3 para cambiar su verde. Y voy a hacer lo
mismo por mi cubo vertical con el seleccionado, cambiando el material
aquí haciendo clic en este desplegable y lo
cambiamos a verde. Eso está todo bien y bueno. Ahora también, tal vez quiero que
mi colisión de esfera aquí rodeando mi cruz verde aquí sea un poco más grande, un poco más de una
generosa zona de recogida, si se quiere, justo
aquí con una esfera porque los componentes de colisión seleccionados en el panel Detalles, puedo cambiar mi
radio de esfera haciendo clic en él y perforando un nuevo número
como 100 y haciendo clic en Entrar. O en estos campos numéricos, simplemente
puede
hacer clic izquierdo y arrastrar. Veamos, haciendo clic con
y haciendo clic de nuevo en él. Y luego puedes
moverlo a izquierda y derecha para ajustarlo de esa manera también. Voy a ir con el
número 100 por ahora. Eso parece bastante generoso. Ahora una vez más,
si por error cierras este panel Detalles
haciendo clic en que hay x, puedes venir debajo de la
opción de ventana y volver a encenderla. Ahora hay diferentes opciones de
visualización que debes tener en cuenta. Por encima en el panel Detalles, tienes este ícono de engranaje. Si hago clic en esto, hay un montón de
opciones diferentes disponibles para ti. Sólo voy a estar
hablando de algunos de los más utilizados. Uno de ellos siendo derrumbado
y expandiendo todas las categorías. Por lo que en este momento voy a
derrumbarme todas las categorías. Entonces sí, ahora si
quieres meterte en ellos, tienes que hacer click
en ellos uno por uno. Eso puede ser útil si
solo hay unas cuantas categorías diferentes con las que
quieres jugar. Voy a seguir
en esto de nuevo, y voy a
ampliar todas las categorías. Otra que me gusta mucho es
mostrar
solo propiedades modificadas o mostrar solo propiedades
modificadas. Así que al hacer clic en esto, es una manera realmente fácil de ver de
un vistazo cuáles son las
cosas que
realmente has cambiado sobre
este componente en particular? Voy a dar vuelta a
ese retroceso. Entonces mostrar todas las propiedades
avanzadas. Ahora, ¿qué son las Propiedades
Avanzadas bajo cada una de estas categorías
dadas? No debería decir cada uno sino
muchos de ellos hay propiedades
avanzadas que por
defecto no se expanden. Entonces por ejemplo,
tengo mi forma y puedo cambiar el
color de mi forma si quieres. Déjame simplemente hacer clic fuera de esto. Por defecto, es rojo. Pero si tuviera que hacer clic de nuevo en mi colisión de esfera bajo
la categoría avanzada, podría cambiar esto a
rosa caliente si realmente quisiera. Claro, por qué. Nueces. Ahora también hay esta pequeña, no
sé cómo se llama eso. Un poco de un
bloc de notas tipo de icono. Esto abrirá una selección
en matriz de propiedades. Qué es esto ahora
esta es una opción que no uso con demasiada frecuencia. No obstante, si iba
a hacer click en
esto, va a traer
abrir aquí una nueva pestaña. Esta es otra forma de ir sobre el cambio de
diferentes propiedades. Nuevamente, aquí todo
se derrumba, pero si hay
algo que quisieras cambiar al respecto, simplemente
podrías anclarlo. Voy a anclar esta
opción ahora mismo. Genera eventos de superposición. Se puede ver que esto
se comprueba si iba a desmarcarlo aquí y luego volver
a mi b p ejemplo pickup
bajo colisión de esfera. Bajo las
propiedades de colisión genera eventos de superposición ya no
se comprueba. Voy a cambiar eso de vuelta a donde lo tenía y
voy a cerrar fuera de aquí. Sólo quería
mostrar lo que es eso. No uso eso con demasiada frecuencia. Es posible que encuentres algún
buen uso para ello. Y entonces se puede ver aquí con
vacío I colisión esfera, puedo ver que generar evento de
superposición
se ha revisado de nuevo en. Ahora a lo largo de
la parte superior de nuestra barra de herramientas, tenemos esta opción
predeterminada de clase que quería
hacerte consciente. Voy a hacer click en
esto y cuando lo haga, voy a traer
todo un conjunto de detalles diferentes sobre este
plan de clase de actor que son específicos de este plan de
clase de actor. Ahora no hay mucho que
necesites cambiar aquí, aunque te
haré consciente de uno que es un poco divertido
para jugar. Y eso es con la clase predeterminada seleccionada vida inicial se establece actualmente en 0,
lo que significa infinito. Pero si tuviera que poner esto
a algo así como tres, eso significa que este
tipo se va a
ir después de tres segundos. Y puedo probar esto simplemente haciendo clic aquí en el botón de reproducción. Y eso va a
saltar a mi editor de niveles aquí jugando en
después de tres segundos. Pasan todos, por una especie de
diversión si yo mismo lo digo. Así que voy a cambiar
esta clase por defecto mi vida útil inicial de nuevo a 0. Así que de nuevo, estos impactan
ciertas cosas sobre esta clase particular de
anteproyecto, la clase impagos. A continuación, solo
quería hacerte consciente del botón de aquí, esta opción de configuración de clase. Más tarde en el curso, vamos a estar lidiando
con algo llamado Interfaz de Blueprint. Y eso se va a poner
todo en esta área. Nada más quiero
cambiar aquí. De hecho, no se ocupa demasiado de la configuración de
clase fuera de implementar cosas llamadas Interfaz de Blueprint. Pero solo quería
sacar eso ahora. Entonces más tarde por el
curso, serás como, sé exactamente a dónde
ir y qué es eso. Muy bien chicos, ese es
el panel Detalles. Conózalo, me encanta,
hazlo bien. Eso lo hará todo
por este video. Nos vemos en la siguiente.
9. Mi panel de diseño: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es
conocer cuál
es el propósito
del panel Mi Blueprint dentro de un blueprint Unreal
Engine. Ahora se trata de un área de
un blueprint donde se pueden crear cosas
como variables, como funciones o macros para ayudar a dar forma a lo que un
blueprint dado puede hacer. Ahora si no estás familiarizado
con términos como variables, funciones o
macros, no te preocupes. Vamos a estar rompiendo
los abajo mucho más adelante en el curso. Por ahora, es bueno
archivar el conocimiento de que el panel de mis planos aquí es
donde se pueden crear tales cosas. Entonces como ves aquí
en mi ejemplo de BP, recoge el panel de blueprints, por defecto se encuentra en la
esquina inferior izquierda de la interfaz, igual que cualquier otra pestaña aquí, puedes hacer clic izquierdo en
esto y puedes arrastrarlo a donde quieras. Me gusta donde
está por defecto. Entonces voy a
dejarlo ahí mismo. Al igual que otras pestañas aquí, puedes hacer clic derecho sobre él. Puedes cerrarlo. Puedes traerlo de vuelta
a través de la opción de ventana aquí, marca de verificación muestra que
está en nuestro blueprint aquí. Ninguna marca de verificación significa
que no está presente. Entonces voy a
traer eso de vuelta. Haga clic derecho en opciones aquí. Podría esconder la pestaña. Eso sólo un poco de barrera
que pestaña te da un poco más de bienes raíces de
pantalla que extrañamente viene en práctica
de vez en cuando. Al hacer clic izquierdo sobre él
traerá esa pestaña de vuelta. Haga clic derecho. Puedo atracar a la barra lateral como pude antes. Haga clic derecho en la oscuridad también. Me has visto hacer
eso varias veces. Muy bien, otra opción que
quiero señalar aquí en los
paneles Mi Blueprint, este ícono de engranaje. Ahora si hago click en
esto, me muestra diversas opciones mostrando secciones vacías que
tengo aquí. Lo que esto hace es que mostrará cualquier sección vacía,
cualquier categoría vacía. Ahora mismo, no tengo macros
en mi plano aquí. Si no sabes qué es eso, nuevo, no te preocupes por ello, pero solo sé que si
fuera a apagar esto, ni siquiera
vería esa categoría. Entonces al mostrar esto y me gusta que
se muestre por defecto, veré todas las diferentes secciones
vacías que podamos tener bajo la categoría
blueprints. Otro importante
para señalar aquí bajo este ícono de engranaje es este
show variables heredadas. Ahora esto va a mostrar variables
heredadas
de las clases de padres. Ahora, en nuestro caso, nuestra clase de padres aquí es
un plano de clase de actor. Entonces voy a
mostrar esto rápidamente. Y cuando lo haga,
vas a ver que algunas categorías aparecen
justo aquí abajo. Entonces aquí vamos. Vamos
a mostrar variables heredadas. Y voy a profundizar aquí
en mi categoría de actor. ¿ Y qué sabes? Veo una variable llamada vida útil
inicial. Bueno, eso parece
bastante familiar. Entonces, ¿cuáles son todas estas variables en estas
diversas categorías? Bueno, si recuerdas
del último video, cuando hicimos clic en el botón de valores predeterminados de nuestra
clase, tenemos muchos parámetros
diferentes, muchas
propiedades diferentes que son
específicas de esta
clase de actor blueprint. Y uno de estos ubicados bajo la
categoría de blueprint de clase actor fue la vida útil inicial. Lo y he aquí, a eso
se puede acceder aquí, el panel de mis planos también. Mostramos variables heredadas. Entonces esta es otra
forma de que todas estas
variables predeterminadas
de clase aparezcan, no solo cuando haces clic
en los valores predeterminados de clase, sino por aquí en el panel
Mi Blueprint. Y solo quiero
señalar aquí que si iba a hacer click en la variable de vida útil inicial y pasar al panel
Detalles. Puedo cambiar mi
vida útil inicial a S3. Ahora si iba a entrar en los impagos de clase y encontrar la vida
inicial de la categoría actor. También lo ha puesto a
tres aquí. Entonces estás cambiando
la misma propiedad, solo dos formas
diferentes de hacerlo. Voy a restablecer esto de
nuevo a donde lo tenía. Y tenga en cuenta ahora que mientras lo
cambié aquí en la sección predeterminada de
clase, si tuviera que hacer clic en mi propiedad de vida útil
inicial, también la cambia de nuevo aquí. Muy bien, vamos
a esconderlos de nuevo para que
podamos limpiar un poco nuestro
panel Mi Blueprint aquí. Así mostrar
variables heredadas. No. Hablemos de cómo crear nuevas variables,
funciones o macros. También podemos crear nuevos gráficos
y despachadores de eventos, pero esos tendrán
sus propias secciones más adelante en el curso. Si hacemos clic en este botón Agregar, dice
que desea
crear una variable, una función, una macro, un gráfico y Despachador de eventos. Puedes hacerlo de esa
manera o con cada una de estas diferentes categorías
aquí tienes este pequeño botón más
para crear un nuevo gráfico, una nueva función, una nueva macro, o una nueva variable, o un Despachador de Eventos. Vamos a seguir adelante y
crear una variable aquí. A pesar de que no se trata de eso
este video, las variables tendrán sus propias
un par de secciones aquí. Vamos a
crear uno solo para darte una idea de lo que hace toda mi área de
blueprint, voy a crear
una nueva variable haciendo clic en este botón plus. Voy a darle un
nombre a esto y lo llamaré hipo. Suena así. Ahora a continuación necesito
decidir qué tipo de azul o qué tipo de
variable quiero que sea esta. Por defecto,
generalmente muestra booleano cuando estás creando una variable
por primera vez. O establecerá el tipo de variable
predeterminado para que sea lo que haya creado por última vez. Ahora antes de crear este video, hice una carrera en seco y por
lo que actualmente está configurado
al tipo de variable que estoy buscando. Entonces,
¿cómo cambias esto? Podemos dar click
aquí para cambiarlo. O con su variable seleccionada
en el panel Detalles, puedes cambiarla
aquí también. Entonces bajo tipo de variable, haga clic en este menú desplegable y haga
una búsqueda de base de sonido. En el pequeño
menú fly-out aquí
quieres elegir la referencia del
objeto. Ahora al hacer
esto, te pedirá que
compile tu anteproyecto. Nuevamente, está mostrando mi valor
predeterminado aquí porque
ya hice una carrera en seco
antes del video. Pero si compila aquí, entonces te permitirá ranurar en un sonido de tu elección, haciendo clic en este desplegable. Me gusta el sonido de interacción. Entonces si haces una
búsqueda de enter, play, y el ratón sobre ese archivo de onda de sonido en
particular, se muestra en ese pequeño
pop up que aparece que esto proviene de
la trayectoria del motor. Y una vez más, si
no ves este sonido, si haces clic
sobre este ícono de engranaje, puedes mostrar contenido del motor y deberías tener
acceso a ese sonido. Ahora realmente se podría
ranura en cualquier sonido aquí. Esta es
solo la que elegí. Así que siéntete libre de tragar
el sonido que quieras. Ahora aún no vamos a hacer uso de esta variable. Eso va a venir en el siguiente video cuando
hablemos de nuestro Gráfico de Eventos. Pero sólo para resumir aquí, el panel Mi Blueprint, es donde se alojan, donde se crean
cosas como funciones, cosas como macros,
cosas como variables, y dónde acceder
esas cosas. Última cosa antes de que
terminemos este video, posible que ya
hayas
notado que todos nuestros diferentes componentes
aquí arriba en el panel Componentes, también
se muestran
aquí abajo en la sección de variables. Y esta es una forma rápida y fácil que podemos añadir una referencia a cada uno de estos diferentes
componentes en nuestro gráfico de eventos. Pero de nuevo, vamos a
estar haciendo uso de eso en futuros videos. Por ahora, solo quería
señalar la relación
entre los componentes agregados
a tu blueprint, también apareciendo bajo la sección de variables
del panel Mi Blueprint. Eso lo hará todo
por este video, chicos, veremos en el siguiente.
10. Gráfico de eventos: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es
conocer y demostrar lo que es el Gráfico de Eventos dentro
de un plano irreal. Ahora bien, esta es una zona
de un blueprint donde toda nuestra
magia de scripting ocurre en cualquier momento que queremos
agregar algún tipo de comportamiento, funcionalidad
o jugabilidad. El lugar para hacer que esas
interacciones cobren vida está dentro del gráfico de eventos. lo que aquí dentro de mi ejemplo de recolección de
BP, ya
hemos explorado
la pestaña viewport, pestaña Construction Script de la que
hablaremos pronto. La pestaña Gráfico de eventos es la que
vamos a hacer la estrella
del espectáculo en éste. Entonces déjame hacer clic izquierdo sobre esto. Y lo que ves es un gráfico
que tiene algunos nodos aquí. Por defecto, estos son nodos de
eventos de los cuales podemos
construir algún script fuera de. Hablaremos de
nodos de eventos en su propia sección. Pero por ahora lo que
quiero hacer es solo quiero hacer clic izquierdo y voy a arrastrar
esta caja conocida como selección de marquesina. Y voy a golpear
la tecla delete una vez que todos esos estén resaltados
y Newcomb salga. Adiós. Vamos a
crear nuestro propio guión aquí. Muy bien, entonces
lo primero que queremos hacer es agregar algunos nodos a nuestro gráfico. Entonces, ¿cómo hacemos esto? Bueno, en realidad hay
varios métodos diferentes y cómo hacer esto. El primero es haciendo
clic derecho en un gráfico. Si haces clic con el botón derecho, tienes un montón de categorías
diferentes. Y en cada una de estas
diferentes categorías, existen diferentes
funciones que puedes agregar. Hay diferentes eventos
que se pueden sumar, etcétera. Sólo voy a elegir
Evento Comienzo Juega aquí. Esa es la que
viste aquí antes. Y voila, te
tienes un nodo. Voy a arrancar eso. En realidad voy a
añadir uno ahora que queremos en nuestro gráfico, voy a elegir nuestro componente de colisión de
esfera aquí
arriba en el panel Componentes. Ahora sólo voy a saltar
a la pestaña de la ventana gráfica rápidamente. El choque de esfera es esta esfera invisible
que rodea aquí nuestra cruz. Entonces quiero hacer algo
con nuestra colisión de esfera. Quiero tener algún nodo
asociado a eso. Así que volviendo a mi Gráfico de Eventos con esta colisión de
esfera seleccionada, voy a hacer clic derecho en mi gráfico y anotar esta
casilla de verificación aquí arriba. Es sensible al contexto. Entonces
me va a mostrar algunos nodos que son específicos de mi colisión de esfera y que están listados
en la parte superior aquí. Uno de ellos que voy
a estar agregando ahora está bajo esta categoría Add event for sphere
collision. Por lo que voy a hacer clic en
este cuadro desplegable y bajo la sección de colisión, quiero agregar en
componentes comienzan a solaparse. Ahora este nodo
va a disparar una señal cuando algo
comienza a superponerla. Y puede generar algunos
datos aquí
dependiendo de lo que se superpuso a este componente
en particular. Ahora una pieza de información que quiero encontrar cuando algo se superpone son colisión de esfera fue ¿quién era el otro actor? Entonces voy a arrastrar
un cable fuera de aquí, y voy a escribir en elenco
a personaje de tercera persona. Ahora, aún no hemos
aprendido de casting, pero larga historia corta, lo haremos, este nodo nos va a
permitir comprobar, oye, fue el otro actor que se
superpone esta colisión de esfera, fue que el
¿ThirdpersonCharacter? Si es así,
vamos a continuar nuestro flujo de ejecución aquí. Fuera de estos eventos
a través de este nodo, continúe por aquí. Este es un montón de
cables y nodos que estamos vinculando juntos
para hacer que las cosas sucedan. Si no fuera el
ThirdPersonCharacter que se superpone
a esta colisión de miedo, este elenco
fallaría y el flujo de ejecución
continuaría fuera de aquí. Entonces esa es otra forma en la que
puedes agregar un nodo es simplemente sacar un cable de uno
de estos pines de colores aquí. Y hablaremos de estos pines de
diferentes colores en futuros videos y luego
buscaremos un nodo dado. La tercera forma en que
podemos agregar un nodo a nuestro gráfico aquí es
arrastrar y soltar. Podemos arrastrar y
soltar unos componentes. Y podría hacerlo aquí desde el
panel Componentes o desde la sección de variables
del panel, Mi Blueprint. Ahora, voy a hacer las dos cosas solo porque es divertido
demostrar en ambos sentidos. Pero lo primero que voy a hacer es arrastrar y soltar, clic izquierdo y arrastrar este sonido
pick-up a nuestro gráfico. Me va a preguntar,
¿quiero conseguir esto o quiero poner esto? Bueno, quiero conseguir el
contenido de esta variable. El contenido de esta variable
o esta comienzan a tocar ahí, lo siento, este sonido de interacción
que está asociado a ella. Voy a conseguirlo. Y luego me voy a arrastrar
fuera de este nodo y
voy a escribir en el sonido de reproducción. Ya ves, sabía que esta variable contenía
un sonido dentro. Contiene este sonido de
interacción. Entonces todo lo que estoy haciendo
aquí es que estoy diciendo, Hey variable, quiero tocar qué sonido
tienes dentro de ti. Eso es lo que hace este
nodo de función aquí mismo. Ahora esto no sucederá
a menos que vincule este cable de ejecución a este nodo de función de sonido de
reproducción. De acuerdo, así que esa es
una forma de arrastrar y soltar es directamente desde
el panel, Mi Blueprint. Ahora otra cosa que quiero hacer, y esto va a ser sólo
para fines de demostración, es que voy a sacar un
componente de aquí. Permítanme arrastrar en
algo visual como el cubo horizontal,
clic izquierdo y arrastrar. Y entonces voy a
arrastrar fuera de mi cubo horizontal y simplemente
escribiendo destruir. Voy a destruir
estos componentes cuando nuestras
superposiciones de ThirdPersoncharacter sean esfera. Entonces así es como leer este guión
en particular en este
momento, al solapar nuestra esfera, vamos a averiguar
quién era el otro actor. Vamos a emitir a
nuestro ThirdPersonCharacter, básicamente averiguarlo, hey, ¿ fue el personaje tercero
que nos superpuso? Si lo fuera, vamos
a seguir con nuestro flujo de ejecución aquí
tocando el sonido. Y luego vamos
a destruir
sólo el componente
horizontal del cubo. Vamos a seguir adelante y
jugar a prueba esto. Voy a hacer clic en este botón
Reproducir justo aquí arriba. Y voy a
mover esto a lado aquí porque
quiero que seas
capaz de no sólo
verme jugar el juego, sino también ver la ejecución
de este guión. Ahora actualmente tengo
acceso a mi ventana aquí, pero quiero hacer es presionar Shift in F1 para
volver a subir mi cursor del mouse a mi editor. Ahora justo aquí
tengo mi recogida de ejemplo de BP. Puedo hacer click en esto
y se puede ver que
tengo lo que asciende a 12345 instancias diferentes
de esta pickup en mi gráfica. Por lo que esto sólo va
a mostrar esto para cualquier instancia particular que
he seleccionado aquí. Así que voy a ir con la recogida de
ejemplo de BP, la primera. Y ahora si vuelvo a
encender esta ventana, verás este flujo de pulso de ejecución fuera de
este nodo de eventos
a través del resto de estos nodos cada vez que me superponga esta instancia específica
de esta camioneta. Entonces veamos este
primero aquí. Entonces ese fue uno para mostrar el flujo de ejecución
justo arriba. Y como se puede ver,
simplemente destruyó que un componente no
destruyó todo. Muy bien. Yo me superpongo a esa. Nuevamente, destruyó
el componente, pero no estás viendo el
flujo de ejecución de arriba. Dulce, por lo que
actualmente está funcionando. Ahora, quiero llevar esto un
poco más allá aquí, y podemos ignorar este
error aquí porque lo que acabamos de construir aquí
fue sólo temporal. Por lo que voy a
hacer click en este botón X. Así que quería llevar esto un poco
más allá aquí destruyendo este componente de destrucción y el calor y el
cubo horizontal. Porque eso no es realmente
lo que quería hacer aquí. En cambio, lo que quiero hacer
es que quería destruir a todo
el actor cuando
recogemos esto. Así que voy a arrastrar fuera
de mi sonido de reproducción 2D, y simplemente voy a
escribir en Destroy Actor. Ahora el objetivo de este nodo
en particular es en sí mismo, lo que significa todo este plano. Entonces al solapar
esta colisión de esfera, vamos a averiguar si
fue un
personaje de tercera persona el que fue el otro actor que se
superpone a esta colisión de esfera. Vamos a tocar este sonido y luego vamos a destruir
a nuestro actor. Fun factor de este lugar abajo
a D. Puedes hacer click sobre esto para modificar algunas
propiedades al respecto, como el multiplicador de volumen
puede establecer eso en dos. Por ejemplo, vamos a seguir adelante
y jugar esto una vez más. Ahora esto debería destruir
a todo el actor cuando lo superpongamos. Y hagamos esto un
poco más grande aquí, así. Y aquí vamos. Dulce. De acuerdo, con un
poco de guión construido aquí, hablemos de navegar por
el gráfico de eventos. Aquí, la rueda de desplazamiento en el Gráfico de eventos se
acercará y alejará. botón izquierdo del ratón más el botón
derecho del ratón
también se acercará y alejará. Así que tengo a
los dos abajo y
solo estoy moviendo mi
ratón hacia arriba y hacia abajo. Se puede ver el
nivel de zoom en la parte superior derecha. Por cierto. Si botón derecho del ratón y
arrastre eso se desplazará alrededor. Me da un poco este ícono de la mano para moverlo así, botón
izquierdo del ratón y arrastrar, clic izquierdo y arrastrar como. Entonces. Eso traerá a esta selección de
carpa para fiestas, lo cual es genial para resaltar toda
una selección
de nodos como esa. Dato divertido aquí, algo que puedes hacer con
todo el script como este agregado es tocar la tecla C para agregar un cuadro de
comentarios alrededor de esto. Y llamaré a
esto mi guión de recogida. Eso ayuda a mantener las cosas
agradables y organizadas. Entonces, si estás acercando la
manera de salir así, puedes ver todos
tus diferentes guiones que has escrito aquí. Botón izquierdo del ratón en un No, eso te permitirá seleccionarlo
para que luego
puedas moverlo así. botón derecho del ratón
en un nodo
mostrará un menú sensible al contenido. Algunas opciones aquí que
realmente me gustó explorar. Estas opciones de alineación,
estas son geniales y funcionan como cualquier cosa que puedas encontrar en PowerPoint o Google
Slides para alinear nodos,
hacerlos livianos, a la izquierda
justificada, a la derecha justificada. Me encantan estos, especialmente estas conexiones
enderezadas. Uno es uno de mis favoritos. ¿ Qué más tenemos aquí? Tenemos alt plus botón
izquierdo del ratón es cómo se pueden cortar cables. Para que como pueden ver, tenemos este
flujo continuo de ejecución. Cuando ocurre este evento, un pulso fluye a través de estos pines de
ejecución justo aquí arriba, manteniendo presionada la tecla Alt y haciendo clic izquierdo sobre
un cable lo romperá. Entonces en este momento si fuera
a jugar el juego, en realidad
tocaría el sonido pero no destruir
al actor porque
el flujo de ejecución a través de estas cacerolas de ejecución no
ha llegado aquí. Muy bien, Control más el botón izquierdo
del ratón moverá los cables. Así que digamos que tenía, solo voy a
hacer clic derecho y duplicar mi nodo Destroy Actor. Digamos
que esta era alguna otra función aquí abajo. Y quería mover este cable. No tienes que romperlo
así y luego volver a
conectarlo así. Si mantiene presionada Control, puede hacer clic con el botón izquierdo y recoger ese cable y
moverlo a otro nodo. Ese es un
truco muy práctico también. Usa eso mucho. Es algo para señalar
aquí al romper cables, no
tienes que simplemente, ya
sabes, Alt y
clic izquierdo en el medio. También puede Alt
y hacer clic izquierdo en cualquiera de estos pines de
ejecución también. Entonces ahí lo tienes. Eso es algunas cosas de
navegación rápida para tu gráfico de eventos. Una cosa más que
quiero señalar aquí con los gráficos de eventos porque
siempre les pasa a los estudiantes. Eventualmente, si cierras tu pestaña Gráfico de Eventos,
boom, se ha ido. No se puede encontrar en la opción de
ventana justo aquí arriba. ¿ Cómo obtienes esto entonces? Bueno, eso está contenido en el panel My Blueprint aquí
tenemos este gráfico de eventos. Y si tuviera que hacer doble clic en este gráfico de eventos bajo
nuestra sección gráfica, eso lo traerá de nuevo. Además, esto es bueno
tener en cuenta también. Enumerará cualquier evento que
esté dentro de su gráfico de eventos. Así que déjame simplemente hacer clic derecho y
añadir y eventos Begin Play. Se puede ver como agrego
esto a mi gráfico, lo muestra aquí abajo bajo
mi Gráfico de Eventos también. Entonces si fuera verano allá fuera
y hacía doble clic
en evento empezar a jugar, me saltaría a ella. También tengo la capacidad de
crear un nuevo gráfico. Ahora déjame hacer esto rápidamente
haciendo clic en el nuevo gráfico, y llamaré a este nuevo gráfico. Ahora tengo dos gráficas
diferentes. Ambos son gráficos de eventos. Uno se llama gráfico de eventos, el otro se llama nuevo gráfico. ¿ Por qué alguna vez harías esto? Bueno, hago esto a veces simplemente para organizar mejor mis guiones. Dependiendo de la cantidad script que quieras
agregar a un blueprint, puede tener sentido tener un gráfico que sea muy
específico para decir, eventos de
entrada versus solo cosas
muy pasivas que puedan sucedan a
ese plano. Entonces algunas
cosas organizativas a tener en cuenta mientras estás construyendo
tus diversos planos. Muy bien chicos, eso es un
resumen rápido en el Gráfico de eventos. Cualquier plano.
11. Script de construcción: Bienvenidos a todos. En este video, nuestro objetivo es
conseguir una comprensión de alto nivel de lo que
es el Guión de Construcción dentro de un blueprint. Es decir, esta pestaña aquí arriba intercalada entre nuestras pestañas
viewport y Event Graph. Ahora a primera vista, va a parecer casi
idéntico al Gráfico de Eventos. Así que en este momento estoy en
la pestaña Gráfico de eventos de nuestra pickup de ejemplo de bp. Se puede ver que
hay nodos cableados juntos. Más en nuestro Guión de Construcción. Actualmente tenemos un nodo, pero al igual que un gráfico de eventos, podemos cablear otros
nodos hasta él. Ahora, mientras que el Gráfico de Eventos es el lugar destinado a
crear script que se ejecutará mientras tu
juego se está ejecutando. El
guión de construcción es un lugar para crear script
que quieres ejecutar antes de que el juego comience mientras construyes
tu blueprint. Ahora mira,
guión de construcción es genial para construir
variedad de construcción en tus guiones, además de crear actores
procedimentales para que trabajes con ellos. Lo que ves antes de
ti es un adelanto de lo que está por venir a lo largo
del resto de este video. Este muro de aquí mismo es un plano de clase actor
que sólo está utilizando,
aprovechando el guión de
construcción. Ahora, lo que hace
tan cool a una
construcción scripts es que
puedes exponer algunos parámetros
en tu panel de detalles. Y con solo cambiar algunos de esos parámetros
que has expuesto, puedes modificar el aspecto de esta instancia particular
del blueprint. Ahora, como pueden ver, como
altero algunas propiedades aquí, el guión de
abajo está disparando. Una vez más, lo que
lo hace Construction Script diferente al Gráfico de
Eventos es el script de construcción se
dispara cada vez que hago algún cambio en absoluto
a este blueprint, incluso podría ser simplemente
moviéndolo relojes me muevo esto. Vas a ver
un pulso a lo largo del guión de construcción
abajo aquí abajo. Ahora también lo hace genial, es si creo una copia
de este blueprint, voy a Alt,
clic izquierdo y arrastre. Puedo cambiar los parámetros
para esta instancia en particular. Así que permítanme cambiar el número de secciones aquí a
algo así como diez. Y puedo cambiar
el material a ser, vamos a escribir
la palabra ladrillo. Y así esto puede tener un material
único todo propio. Entonces el
guión de construcción es donde puede hacer que algo así suceda. Ahora piense en las
posibilidades con justo cómo tengo configurado este
guión de construcción. Esto es sólo una pared simple. Esto podría ser una fila de sillas, podría ser una barda. Podría ser un montón
de postes eléctricos con cables encadenados entre ellos, ese tipo de cosas. De acuerdo, vamos a
empezar aquí dentro de nuestro navegador de contenidos, específicamente dentro de
la carpeta
de scripting de nuestro navegador de contenidos. Voy a hacer clic derecho en
algún espacio vacío por aquí. ¿ Estoy haciendo clic derecho en el menú? Quiero crear
un nuevo plano. Queremos que esto sea de la variedad de clase
actor porque este va a ser
un plano que colocamos dentro del mundo. Me va a pedir que le dé un nombre. Llamaré a este ejemplo de
subrayado BP. ¿ Qué tal sólo huevos? Construir guión, ese es
un nombre muy abreviado, pero quería un poco que
quepa todo en una línea aquí, no envolver alrededor de x
build script. Impresionante. Ir a hacer doble clic en esto
para abrirlo de inmediato. Entonces docket por la parte superior, como me gusta hacer. Ahora, vamos a estar agregando un componente a
estos planos. Voy a venir bajo el botón
agregar y voy a escribir en malla estática. Sólo estática lo
blanqueará. Ahora, a diferencia de antes donde agregamos un componente
de malla estática, en este caso queremos
agregar una instancia componente
de malla estática. Y la razón de eso es
porque vamos a estar construyendo cualquier número
de secciones murales. Y para hacer
eso de manera eficiente para el tipo de script que
estamos a punto de estar construyendo, queremos que una instancia de malla
estática como un consejo de herramienta te diga que así es como renderizarla eficientemente. Así que agreguemos una
instancia Static Mesh. Voy a golpear Entrar aquí con ese componente está seleccionado encima en el panel Detalles
podemos ranurar en una malla estática. Voy a hacer clic en
este desplegable aquí. Escriba en el número 400 porque esta sección de muro
que quiero asociar con este componente
es muro 400 por 400. Adelante y elige eso. Ahora como se puede ver, todavía no vemos nada en nuestra viewport. Vamos a hacer uso de esto de una
manera diferente aquí dentro de nuestros guiones de
construcción. Así que vamos a subirnos por ahí. Ahora. La comida principal que
quiero que entiendas, al
menos para esto, es lo que puede hacer
el guión de construcción. Por construir unos planos muy
dinámicos. Puedes personalizar
tus planos de
una manera impresionante mientras estás
construyendo tu nivel. Ahora el guión que
vamos a estar armando en este momento, está bien si no
entiendes en absoluto
lo que está pasando, vamos a estar rompiendo estos conceptos de scripting como
vamos a lo largo del curso. Mi objetivo en este
video es simplemente
construir la cosa para que puedas hacerte una idea de lo que puede hacer el guión de
construcción. Así que ten cuidado conmigo en esto. Vamos a empezar
creando una variable aquí. Haga clic en este botón más. Vamos a llamar a
esta variable num de. Secciones, vamos a utilizar esta variable de la cual
vamos a cambiar esto a un tipo entero para sostener cuántas secciones
de muro nos
gustaría para este
blueprint degeneradas. Podemos darle a esto un valor predeterminado más en el panel Detalles, pero nos está pidiendo que
compile primero el Blueprint. Voy a seguir adelante y hacer eso. Empecemos con
un valor predeterminado de una sección de muro. Eso es lindo. Ahora quiero señalar
algo más aquí. Podemos exponer estas variables a nuestro editor si marcamos
esta casilla de
verificación editable de esta instancia aquí. Pero antes de que hagamos eso, necesito realmente colocar este plano
dentro de nuestro nivel. Así que déjame volver a mi pestaña de mapa de prueba de nivel que me trae de vuelta
al editor principal. Permítanme arrastrar y soltar este
guion de construcción de ejemplo a nuestro nivel. Todo lo que vemos es ese icono de componente
raíz. Ahora más en el panel Detalles, si hago una búsqueda de solo entumecido, recuerda que nuestra variable dada aquí se llamaba
número de secciones. No veo nada. Voy a dejar esta búsqueda
aquí arriba por el momento. Voy a saltar de nuevo a mi
guión de construcción de ejemplo aquí. Vamos a seguir adelante y comprobar esta casilla
editable de instancia justo aquí. Tenga en cuenta que cuando hago eso, esto es lo
mismo que hacer clic aquí mismo. Cerrar este globo ocular significa que
no es instancia editable. Al hacer clic para abrirlo
, marca esa casilla. Para que puedas marcar esta
casilla ya sea haciendo clic aquí o haciendo clic ahí mismo. Ahora si compilar,
guardo este blueprint, y vuelvo a mi editor de
niveles con mi ejemplo Construction Script seleccionado aquí en el nivel
por encima en el panel Detalles. Ahora he expuesto esta variable
al editor de niveles. Esto va a ser impresionante
porque vamos
a ser capaces de golpear
en un número aquí. Y entonces se Construction
Script va a determinar cuántas secciones de
muro queremos que aparezcan. Bastante dulce. Muy bien, sigamos adelante y construyamos ese guión. De vuelta aquí. En el guión
de construcción. Voy a arrastrar un cable. Voy a hacer una búsqueda
de un bucle para. Y de nuevo, voy a
estar pasando por esto un poco rápido. Entonces si no entiendes
lo que está pasando, eso está bastante bien y
solo querer
presumir el poder del guión de
construcción aquí. Ahora con esto,
voy a alimentar esto son una serie de secciones arrastrando y soltando
eso en el gráfico. Quiero conseguirlo. Entonces voy a
arrastrar fuera de esto y voy a
escribir la clave menos. Quiero restar nodo, y voy a
restar el número uno. Y te explicaré por qué una vez terminemos
con todo esto. Y voy a enchufar esto nuestro último índice del for-loop. Entonces sí, por favor permítanme
construir esto primero y luego volver a través y describir
exactamente lo que está sucediendo. Ahora fuera de esto, el cuerpo de bucle que voy a arrastrar fuera de esto. Bueno en realidad primero
necesito traer a nuestra instancia referencia
de malla estática. Vamos a seguir adelante y arrastrar
y soltar esto desde nuestro panel de componentes a la
derecha en nuestro gráfico. Alternativamente, podría
conseguirlo aquí abajo también. Voy a arrastrar fuera de
esto y voy a escribir en instancia de AD. Entonces este va a ser el
saber que realmente va a sumar aquí una sección de muro. Está contenido
dentro de esta instancia malla
estática a nuestro mundo. Vamos a tomar nuestro
cuerpo de bucle y conectarlo aquí. A continuación, voy a sacar de nuestro índice de nuestro for-loop. Voy a traer un botón multiplicar o
multiplicar nodo más bien, quiero multiplicar esto por 400. Hay una razón muy
específica por la que estoy eligiendo aquí el
número 400. Esa es la casualidad de ser la longitud exacta de
nuestra malla estática aquí. De hecho, si hago clic en
este ratón sobre él, ahí se puede ver en la punta de la
herramienta el tamaño de esto, alrededor de la mitad
de esa caja ahí, el tamaño aproximado
es de 400 por 20 por 400. Por lo que son 400 unidades irreales de ancho, 20 unidades de espesor, 400 unidades de alto. Entonces esa es una
razón muy específica por la que estoy eligiendo
este número aquí, porque voy a estar
sumando un número dado de secciones cada
400 unidades irreales. A continuación voy a
tirar hacia atrás fuera de este pin de transformación de instancia. Y una vez que suelte
y voy a escribir la palabra make transform, nos
da un
poco más de espacio aquí. Mueve esto a
una posición así. Y luego fuera del pin de
ubicación justo aquí, voy a hacer clic izquierdo
y arrastrar y escribir, hacer Vector justo
aquí abajo, hacer vector. Y voy a enchufar
esto a nuestra x Y va a traer un nodo
de conversión, convirtiendo un
entero de tipo de datos a un float. Entonces eso va a estar bien. Así que ahora hablemos de
lo que tenemos pasando aquí. Lo que va a pasar
es que nos vamos a alimentar en un
número dado de secciones. Y recuerda que esta variable
está expuesta en el editor, por lo que podremos determinar
cuántas secciones queremos. Entonces
supongamos que queremos diez secciones. Vamos a recorrer sin embargo muchas de las secciones
que tengamos aquí, comenzando con nuestro primer índice. Se inicia con
el número de 0. Si tengo diez y yo menos uno, eso va a igualar nueve. Entonces nuestro primer índice
va a ser 0. Nuestro último es nueve. Entonces esencialmente eso nos
va a dar diez iteraciones de este bucle. Nuevamente, comenzando con
0, terminando con nueve. Por eso estamos haciendo
esta resta justo aquí poniendo en diez, restando uno
que equivale a nueve. Pero estamos empezando a
contar al 0. Entonces se va a
correr esto diez veces. Se va a ejecutar fuera de
este cuerpo de bucle diez veces. Se va a sumar diez
instancias de esta Malla Estática. Ahora todo esto
aquí abajo es determinar dónde colocar las mallas
estáticas. Esencialmente lo que estamos
haciendo es por cada índice, vamos a moverlo en más de 400 unidades irreales
en la dirección x. Eso es esencialmente
lo que este bit de guión está haciendo aquí mismo. Ahora en cualquier momento
que construyas algún script, ya sea en el
guión de construcción o en el Gráfico de eventos, desea compilar. Al hacer esto,
revisaremos su guión para asegurarnos de que
no haya comprobado ningún error. No va a
atrapar todos los errores, pero va a
captar muchos errores. Y entonces
quieres salvar esto. Ahora vamos a saltar de nuevo
a nuestro nivel aquí. Y lo que vemos en este momento es que
tenemos una sección de muro. Eso está todo bien y bueno. Déjame plantear esto. Golpea la tecla End, y eso
la golpeará hasta el suelo. Y eso es bastante guay. ¿ Qué pasa ahora si cambio el número de secciones a dos? ¿ Qué sabes lo que
añade otra sección? 3410. Ahora tenemos diez
secciones de muro ahora eso es un poco
soso mirar mientras, pero se puede ver lo que el Guión de Construcción nos
ha permitido hacer. Es mucho que hagamos un
blueprint que sea muy personalizable con solo
cambiar un valor aquí, estamos cambiando lo que sucede
con este blueprint, un lugar dentro de tu nivel. Ahora vamos a dar un paso
adelante porque este es un muro de aspecto bastante soso, si lo digo yo mismo. Así que vamos a extender nuestro guión
un poco más. Así que entra dentro de nuestro guión
de construcción. Y sólo voy a
alejar un poco. Y voy a arrastrar otra copia de nuestra
instancia de malla estática aquí. Arrastra una copia. Voy a
colocarlo aquí mismo. Y luego voy a
arrastrar un aquí y escribir un material de conjunto. Establecer material. Nuestra instancia de malla estática
será el objetivo. Y mantengamos nuestra
ejecución yendo aquí. Y fuera de nuestro material aquí, puedo hacer clic derecho y puedo
promover esto a una variable. Cuando haga esa variable va a aparecer en
nuestra sección de variables. Esto va a ser un material
y voy a alimentar a esto el nombre nuevo material. Y voy a hacer
clic en este cuadro para que esta instancia sea editable. También voy a necesitar hacer esto editable para que podamos cambiar
esto en el editor. Vamos a darnos un nuevo
material aquí mismo. Podemos darle de comer un nuevo
material que elegiré. Vamos a intentarlo. Sólo
voy a escribir en ladrillo. Puedes cambiar esto
a lo que quieras. Escogeré arcilla de ladrillo. Seguro. Compile, guarde que
sea nuestro guión actual. Y ahora si salto de nuevo a
nuestro editor de niveles aquí, se
puede ver que el material de arcilla se coloca en cada
sección de pared. No obstante, no lo
veo en el editor porque actualmente estoy
filtrando por la palabra entumecida. Así que permítanme deshacer ese filtro
justo ahí en la parte superior, puedo ver las dos variables que ahora
he expuesto al editor. Permítanme cambiar mi nuevo
material a otra cosa. Vamos a Chrome y wallah. Nos tenemos
una pared de Chrome. Es así como se hacen planos
que son muy extensibles, si se quiere, durante el tiempo de diseño. Por lo que una vez más, el guión de
construcción está ahí para dar a tus diseñadores, tus diseñadores de nivel,
si quieres, gran potencia y
flexibilidad sobre los planos que
colocaron en tus niveles y cómo
pueden personalizarlos. Imagina si lo harás, si tuvieras un plano
que fuera simplemente una luz, una lámpara, si quieres, en una habitación. Y tal vez usted
expone el color de la luz como lo hicimos
aquí en nuestro ejemplo, aquí
mismo en el editor. Podemos hacerlo para que por cada plano de lámpara que
colocamos en el nivel, pudiéramos cambiar el color de eso a través del guión de
construcción. Entonces ahí lo tienen, chicos, ese es el poder del guión de
construcción. Dentro de un plano. Harán para ofrecer éste. Nos vemos en la siguiente.
12. Planes de clase: Bienvenidos de vuelta a todos. En este video, nuestro objetivo
es conocer algunos de los diferentes
tipos de planos en Unreal, comenzando con algo
conocido como Plano de Clase. Ahora la razón por la
que queremos aprender sobre diferentes tipos de planos es porque diferentes tipos
sirven para diferentes propósitos. Adicionalmente, la
interfaz y la forma en que
vayas a trabajar
con ese blueprint pueden diferir ligeramente
dependiendo de lo que sea en lo que estés trabajando. Ahora, vamos a usar nuestro
ejemplo de pb pickup aquí. Echa un vistazo a esto
realmente rápido. En la parte superior derecha. Una vez más,
muestra que se trata un plano de clase actor que se conoce como la clase padre. Está bajo el paraguas Clase
Blueprint. Nuevamente, hay muchos
tipos de planos de clase. Entonces, ¿qué hace que un
Plano de Clase sea un Plano de Clase? Bueno, puedes pensar en un Plano
de Clase o un blueprint para abreviar, como un tipo de plantilla de activos. Como plantilla que
puedes agregar fácilmente funcionalidad o componentes
para hacerla tuya propia. Ahora, justo al lado de
esta pestaña aquí
tengo mi BPA ThirdPersonCharacter. Y dentro de esta clase de
personajes Blueprint, tengo algunos componentes
diferentes que provenían automáticamente la creación
de este blueprint de clase de
personaje,
a saber, el Componente Capsule, la flecha, la malla, y el componente de
movimiento de personajes. No obstante, si
quisiera, podría personalizar esto
y hacerlo mío. Puedo añadir más componentes. Podría intercambiar, digamos, el aspecto de esta malla
en el Gráfico de Eventos. Podría cambiar todo este guión en la buena gente
de Epic Games proporcionado. Y podría crear algo
completamente diferente para que mi personaje se mueva de
la manera que
quería que se mueva. Eso es lo que hace que los
planos de clase sean tan poderosos. Te proporcionan la
plantilla y a partir de ahí, puedes hacerlo lo
que quieras hacerla. Ahora, ¿cómo vamos a crear
estos planos de clase? Bueno, hay un
par de métodos. Uno que ya me has visto hacer. En el Navegador de contenido,
puede hacer clic con el botón derecho y algún espacio vacío venir
bajo Clase de blueprint. Y ahí te permite
escoger una clase de padres. Estos son todos los
tipos diferentes de planos de clase. Los más
comunes enumerados arriba arriba, los menos comunes abajo. Hay muchos. Vamos a
explorar varios de
los tipos más comunes a
lo largo de este curso. Pero sepan que hay
muchos, muchos, muchos tipos. Entonces esta es una forma en que puedes conseguir en este selector de planos de clase. El otro camino está justo
a lo largo de la parte superior aquí con este pequeño Node Icon, el icono del blueprint, si lo quieres, puedes elegir esto, ven bajo nueva Clase de
Blueprint vacía. Y al hacer clic en esto
se abrirá esa misma eligiendo la opción de clase de tus
padres. Ahora, una vez más, el padre nos
proporciona las plantillas de
inicio. Así que voy a seguir adelante y
crear un personaje aquí. Y voy a llamar a esto
mi carácter temporal, así. Y voy a hacer doble
clic en esto para abrirlo. Vamos a comparar
y contrastar esto con nuestro BP
ThirdPersonCharacter existente. Como se puede ver a través de la
parte superior en la parte superior derecha, dice
que la
clase padre es personaje. Y algunas de las características comunes que verás entre este y el
personaje de tercera persona es que tengo un componente cápsula
en componente de error,
una malla, cualquier componente de
movimiento de personajes. Estos cuatro también se pueden encontrar en nuestro
componente ThirdPersonCharacter, cápsula, flecha, malla
y movimiento de personajes. Ahora una de las diferencias clave entre el
ThirdPersonCharacter y nuestro personaje temporal es la malla aquí se llena
con una Malla Esqueletica. No obstante, en mi carácter temporal, podría definir esto y
hacerlo lo que quiera. Podría elegir cualquier Malla
Esqueletica que quisiera. Está en blanco por defecto. También notarás
que aquí con nuestra
plantilla de personaje en blanco aquí, he conseguido nada en
el Gráfico de Eventos que defina el movimiento de mi
personaje temporal. No obstante, en el
ThirdPersonCharacter, las buenas personas de
Epic Games
ya han dado esto para trabajar con. Entonces, una vez más, nuestro pooper de clase de
personajes, proporcionan el
plano de
cómo crear un personaje al
proporcionarnos estos componentes, sin embargo, el resto depende
de nosotros. Podemos personalizarlo
agregando nuevos componentes, personalizando el script para
que se mueva de cierta manera, se obtiene el punto. A continuación, quise dar algunas formas
para que te identifiques fácilmente. ¿ Estás trabajando dentro
de un blueprint de clase o un plano de nivel de
planos de nivel
se van a hablar en
el siguiente video. Número uno, en la parte superior
derecha de un Blueprint de Clase, enumerará una clase
padre Nivel. Los planos no lo harán. Número dos. Los blueprints de clase tienen un panel Componentes Los
planos de nivel no lo hacen. número tres en los planos de clase de la pestaña
Gráfico de eventos en parte inferior derecha era simplemente
decir blueprint lugar de planos de nivel,
diciendo Nivel Blueprint. Por lo que hay algunos consejos rápidos ahí. Tengo un montón de estudiantes
iniciadores que a veces se confunden
donde están trabajando. Por qué no ven
el panel Componentes, ese tipo de cosas. Entonces esas cosas
ojalá ayuden a algunos de ustedes por ahí. Por último, quiero
hablar de algunos de los
planos de clase comunes aquí. Así que clic derecho y algún espacio
vacío Clase Blueprint. Después de plano de clase. Este es el que quieres elegir cuando es
algo que
vas a colocar o
desovar en tu nivel. Por eso, debo decir, algo que no es un
personaje o un peón. Un plano de personaje es un peón. Se extiende desde la Clase de Peones, en realidad, se puede
mover por ahí. Y una de las
grandes cosas un blueprint de clase de personaje
es que viene preconstruido con un
Componente de Movimiento de Personajes que te da control sobre cosas como lo
rápido que se mueve tu personaje, cómo alto saltan, ese
tipo de cosas que puedes poseer y controlar una clase de
personaje, blueprint, Modo de
Juego, planos Base de
Modo de Juego, si quieres. Este es un lugar principal para almacenar reglas
con guión de tu juego. Puede determinar
cosas como anotar, los límites de
tiempo de ese
tipo de cosas
funcionarán en una de esas
más adelante en el curso. Muy bien chicos,
eso va a hacerlo. Ese es el blueprint de clase viene a continuación, el
Nivel Blueprint. Nos vemos ahí.
13. Planes de nivel: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es
aprender qué es un Planeta de Nivel, cómo acceder a él, cosas para las que se utiliza, y cómo difiere de
un Blueprint de Clase. Entonces, ¿qué es un Plano de Nivel? Bueno, es el
plano asociado
específicamente a un nivel dado. En nuestro caso,
sería el blueprint asociado a nuestro nivel de mapa de
prueba. Ahora, ¿cómo accedemos a
ella? Bueno, justo a lo largo la parte superior aquí con este pequeño icono de
blueprint E-type, clic en este desplegable
y a
la derecha smack dab en el medio aquí tenemos esta opción
abierta Nivel Blueprint. Simplemente haciendo
clic en esto se
abrirá nuestra pestaña Nivel Blueprint. No obstante, antes de hacer esto, quiero mostrarles aquí
un consejo rápido porque si tuviera que hacer
click en esto ahora mismo, lo abriría en
esta ventana separada. Me gusta tener mis ventanas abiertas
justo a lo largo de la parte superior aquí
a lo largo de la ventana principal. Entonces te voy a mostrar
rápidamente cómo hacer eso. Ahora mismo.
Voy a venir bajo Editar preferencias del editor en nuestra ventana de preferencias
del editor. Aquí mismo tenemos la opción bajo
categoría de apariciones generales aquí mismo. Editor de activos, la ubicación abierta
está configurada actualmente como predeterminada. Voy a configurar esto
para que sea ventana principal, y luego voy
a cerrar esto. Así que ahora cuando intenté acceder a mi blueprint de nivel aquí mismo, abre Level Blueprint, bam, lo pone justo al
otro lado de la parte superior aquí, en lugar de tener que arrastrar y soltar
esta pestaña justo
a lo largo del top, como, me gusta. Ahora también voy a
arrastrar y mover esto justo al lado de mi ficha de mapa de nivel en sí. Así que nota algo
aquí rápidamente, el ícono naranja de la montaña que representa
el nivel en sí, el nivel de
ti mismo en el que estás trabajando. Esto tiene exactamente el
mismo nombre,
pero tiene este icono de
montaña azul que es el plano
asociado a él. Es el Plano de Nivel. Tan rápido antes
de hablar de para qué se utiliza
este Nivel Blueprint, ¿cómo podemos decir que esto es diferente de un Blueprint de
Clase? Bueno, para empezar aquí,
abajo en el fondo, obviamente
dice,
Hey, Nivel Blueprint. Otra forma que podemos decir
que esto es diferente de una Clase
Blueprint es que
no hay panel Componentes son ejemplo de
BP pickup aquí
tenía un panel Componentes. Nuestro Plano de Nivel no lo hace. También ten en cuenta que nuestro
Nivel Blueprint
no tiene una pestaña de Guión de
Construcción o ventana gráfica son otros
planos aquí arriba
al ThirdPersonCharacter
y nuestro ejemplo de recolección de BP. Ambos lo tienen también. También en nuestro Nivel Blueprint, si miramos a lo largo de
la parte superior derecha, no
hay ninguna clase de padres enumerada. Y así debido a que no
hereda de una clase padre, no
hay
componentes ni variables heredadas. Entonces en este plano de nivel, ¿para qué se utiliza? Bueno, el Nivel Blueprint es
donde pondrías guión para cosas específicas de nivel
como la música de nivel. A lo mejor este nivel solo quieres que una selección de música reproduzca justo
en este
nivel, en ningún otro lugar. Aquí es donde
podrías guionar para
que la música de ese nivel reproduzca. Tal vez tengas un evento puntual
específico específico para este nivel, como el jugador que pasa
por un corredor. En este nivel, se superponen
un volumen de gatillo y
hace que zombi rompa por una ventana y asuste al jugador. Eso es
cosas muy específicas de nivel que el script debe ir dentro de
un blueprint de nivel. Contrasta esto con decir
nuestro ejemplo de pb pickup. Ahora, saltando de nuevo
a nuestro editor de niveles aquí están la recolección de ejemplo de BP. Este es un plano
de clase de actor. Puedes arrastrar y soltar esto a
lo largo de este nivel. Y si fuera a jugar mi juego, puedo seguir adelante y atropellar estas pastillas de salud de imitación
y recogerlas. Ahora, no
importa si arrastro y
suelto estos dentro de
mi nivel de mapa de prueba, o puedo crear un segundo nivel, un tercer nivel de cuarto
nivel, etcétera. Esta camioneta se va a
comportar de la misma manera. De esta manera, creé este
guión dentro de nuestra pastilla de ejemplo bp que comprueba para ver si nuestro ThirdPersonCharacter se
superpone a la esfera, toca un sonido y
destruye como actor, este guión es específico
a este actor, y este actor puede
colocarse en cualquier nivel. Entonces el Nivel Blueprint
es donde pones varios niveles de script
específico. Ahora, uno de los
beneficios de trabajar en el Nivel Blueprint
es realmente fácil
conseguir una referencia o
agregar un evento para un actor que ya
existe en tu nivel. Esto es algo que
no es tan fácil de hacer dentro de otro plano de clase como
un plano de clase actor. Y sólo para
demostrarlo rápidamente, voy a saltar de nuevo
a mi editor de niveles aquí. Y voy a venir debajo de
mi pestaña Contenido del anuncio aquí. Y voy a añadir una forma. Sólo vamos a añadir un cubo. Así que voy a
hacer clic izquierdo y arrastrar un cubo a mi nivel, solo voy
a elevarlo un poco al aire. Observe que lo tengo seleccionado. Este contorno amarillo muestra
que no he seleccionado. Y si miro a mi outliner, esto se conoce actualmente como el actor de cubo,
ese es el nombre. Ahora voy a saltar de nuevo a mi Nivel Blueprint
con este seleccionado. Y con eso seleccionado, todo lo que necesito hacer es mantener pulsada
la tecla R y hacer clic con el botón izquierdo. O alternativamente,
puedo hacer clic
derecho y aquí mismo puedo crear una
referencia a ese cubo. Entonces este es el método de
clic derecho. Si mantengo pulsado Alt
y hago clic con el botón izquierdo. Eso es lo mismo, conseguir
una referencia a ese cubo. Ahora nota si iba a
probar algo así dentro de mi
ejemplo de recogida de BP aquí, vamos a saltar dentro de
este gráfico de eventos. Si mantengo pulsada la
tecla Alt y hago clic con el botón izquierdo, no tiene ni idea de lo que
intentas hacer referencia aquí. De hecho, si hago clic derecho, es como si no tengo ni idea a
lo que estás tratando de referenciar ahora, esto no es para decir que no
podemos conseguir una referencia a ese cubo específico dentro
de nuestro ejemplo de pb pickup, pero hay otros métodos
para hacer eso y podemos explorar esas cosas
más adelante en el curso. Pero esto es solo un ejemplo
rápido de uno de los beneficios de trabajar
en el Nivel Blueprint
es realmente fácil dentro de un Nivel Blueprint
obtener una referencia a cualquier cosa que ya existe
dentro de tu nivel. Muy bien, vamos a crear
un script rápido aquí dentro de nuestro blueprint de
nivel. Tenemos nuestro cubo ya
seleccionado en el nivel. Entonces voy a hacer clic derecho
y algún espacio vacío aquí. Y en lugar de crear
una referencia a nuestra cola porque ya
tenemos una, vamos a agregar un evento. Ahora, dice que estás en evento para actor de malla
estática a en lugar de cubos actualmente y
Static Mesh actor a bien, para dejar esto claro de nuevo en
nuestro nivel, en nuestro outliner, el piso, el piso predeterminado, que es un tipo
de actor de malla estática. Este fue un segundo actor
Static Mesh que sumamos a nuestro nivel. Por lo tanto, lo está considerando
el actor de Malla Estática también. Así que sólo quería
dejar eso claro. Muy bien, con ese
cubo seleccionado, haga clic derecho en evento para el actor de malla
estática dos, vamos a agregar un evento
para cuando golpeemos a este actor. Entonces adelante y agrega esto. Este será un verdadero guión
simple. No vamos a
comprobar quién lo golpeó. Vamos a tener esta
cosa flotando en el aire. Así que me voy a arrastrar fuera
de esto y solo teclear en reproduce sonido a D. Puedes muesca en cualquier
sonido que te guste. No obstante como escuchar
las cosas explotan. Por lo que voy
a comprobar para ver si hay una explosión aquí. Ahí está explosión. Siéntete libre
de ponerlo cuando quieras. Y luego después de esto, me voy a arrastrar fuera de mi cubo porque quiero hablar
específicamente con este cubo. Y quiero decir Destruye Actor. Entonces este es un script específico dentro de
este blueprint de nivel. Si tuviera que colocar solo este
cubo en otro nivel, no
lo destruiría
como estamos a punto de ver, porque ese script existe solo dentro de este
Nivel Blueprint. Así que vamos a seguir adelante y jugar aquí. Y bam, poca
explosión retrasada ahí. Pero una manera, una manera que va
que efectivamente funciona. Vamos a pasar por
otro ejemplo aquí mostrando para qué podría usarse el
Blueprint de Nivel. Se puede utilizar para
algo como arrancar la reproducción de música. Así que saltar de nuevo a
este Nivel Blueprint, Vamos a seguir adelante y construir de este evento
comenzó a jugar aquí. Simplemente voy a arrastrar
fuera tipo en play sound 2D. Un sonido 2D es aquel que no
se localiza a ningún punto en un espacio 3D. Simplemente es genial para música de
menú, música de fondo, ese tipo de cosas en nuestro
desplegable de sonidos aquí voy
a escribir la palabra música, y voy a hacer
nuestra música de inicio aquí que está en el
Paquete de Contenido Starter. Siéntete libre
de entregarlo donde quieras. Y si sigo adelante y toco
wallah, tienes algo de música. Así que una vez más, estos
guiones funcionan en este nivel y este nivel sólo si creo un segundo nivel, tengo
que decidir cuál en este caso, música de
menú quiero tocar, y qué
otro- fuera de las interacciones me puede querer guionar también. Entonces hasta este
punto en este video, te
he mostrado un blueprint de un nivel
asociado a un solo nivel. Entonces puede venir la pregunta, ¿puedo tener múltiples planos
bajos? La respuesta a eso es sí, esencialmente
puedes ver qué tan bien, si vengo bajo
mi opción de Windows en el editor de nivel principal aquí, puedo encontrar esta
opción cuatro niveles. Y cuando abro esto, voy a abrir una pestaña de niveles. Ahora, me gusta atracar esto
justo al lado de mi outliner. Y lo que puedo hacer aquí es que
podría agregar un nivel completamente nuevo, esencialmente un
sub-nivel, una capa, si se quiere, a este nivel
existente. Actualmente, muestra que tengo un nivel aquí conocido como
mi nivel persistente. Y este color azul
muestra que este es el nivel que estoy
trabajando con él. Ven bajo esta pestaña de niveles y sus niveles
cayeron aquí mismo, puedo crear un nuevo nivel. Así que voy a seguir adelante
y hacer eso ahora. Me va a incitar a elegir un nuevo nivel
y darle un nombre. Voy a elegir
un nivel vacío aquí. Vamos a crear esto. Y va a decir, dónde quieres guardarlo. Así que le voy a dar a
esto el nombre de nivel de subguión
bajo, guión bajo 01. Voy a cómo está en
esta carpeta ahora mismo, pero voy a empezar a
albergar estas cosas en subcarpetas
separadas en
solo un poquito aquí, déjame deshacerme de
esa U mayúscula ahí. Subnivel uno,
vamos a salvar esto. Ahora ves que esto ha agregado un nivel a mi pestaña de niveles aquí. Piensa en un sub-nivel como
una capa en Photoshop. Es solo una
capa adicional de cosas, actores, objetos, ¿qué tienes que añadir a tu nivel? Los equipos de desarrollo a menudo dedicarán un subnivel completo a la
iluminación, por ejemplo. Para que unos
especialistas en iluminación puedan
enfocarse solo en el
aspecto de iluminación del nivel. Y es realmente fácil
para esa persona tener acceso
exclusivo a ese
es subnivel y hacer ediciones a ella sin
interrumpir al resto del equipo
de dev
trabajando en ese nivel. Entonces si estamos haciendo un Mundo Abierto
Masivo, podemos tener múltiples
subniveles aquí. A lo mejor alguien es responsable esculpir ese mundo abierto
masivo. Quizás haya un subnivel
para todo el follaje y otro subnivel para iluminación y otro subnivel para efectos, ese tipo de cosas. Como se puede ver aquí, cuando creamos
esto como sub-nivel, hizo
que nuestro subnivel azul emitiera el nivel actual en el
que estamos trabajando. ¿ Qué significa eso
para que sea actual? Bueno, eso significa cualquier actor que
íbamos a sumar a este nivel ahora lo
que en realidad lo agrega a
nuestro sub-nivel, nuestro sub-nivel justo aquí
abajo y creó un nuevo activo para este nivel abajo y
nuestro contenido navegador, a diferencia de nuestro principal nivel
persistente o mapa de prueba de LV. Vamos a seguir adelante y darle
una oportunidad a esto en tan solo un momento. Pero sin embargo, quería
señalar que cada subnivel tiene su propio plano de nivel. Y eso se puede acceder
haciendo clic
aquí donde hay ese
pequeño ícono de blueprint. Entonces si abro esto, podemos ver que tiene el nombre de mi subnivel y otra vez ese ícono de blueprint de
nivel. Ahora volvamos aquí a nuestro editor de nivel
principal, y voy a
añadir una luz puntual. Así que voy a entrar
debajo de mi pestaña Agregar aquí. Vamos a encontrar nuestras luces. Agreguemos una luz puntual. Muy bien, ahora, sí lo
agregamos a nuestro subnivel. Y si hago clic en este pequeño
toggle visibilidad aquí, se
puede ver que se
muestra y lo esconde. Y está en nuestro subnivel. Si yo fuera a ocultar nuestras cosas de nivel
persistente, todavía
veríamos nuestra luz porque eso pertenece
a nuestro sub-nivel. También para ayudar a conducir
este punto a casa, voy a seleccionar
nuestra luz aquí. Si iba a entrar en mi sub nivel
Nivel Blueprint y
iba a hacer clic derecho
y algún espacio vacío, puedo crear una referencia
a mi punto de luz. Tengo esas
luces puntuales seleccionadas en mi nivel aquí, mi
subnivel específicamente. No obstante, si iba a intentar agregar una referencia
a eso dentro de mi
blueprint de nivel principal aquí, haga clic con el botón derecho. No hay referencia que
pueda crear a ese punto luz. Entonces lo que tengas, cualesquiera que sean los objetos,
efectos, etcétera, que tengas existente
en tu subnivel dado. Puedes referirlos directamente dentro de tu Nivel Blueprint. Pero tiene que ser
cualquier nivel o subnivel en el que realmente hayas
colocado esa cosa dentro. Si eres nuevo en Unreal, toda
la idea detrás de
los subniveles probablemente esté mucho más
allá de lo
que realmente necesitas saber ahora mismo. Pero dado que estamos en el
tema de Planos de Nivel, pensé que era el momento
inapropiado al menos sacarlo a la luz. Un par de cosas más que quiero hacer antes de cerrar este video. Vamos a seguir adelante y salvar
nuestro nivel y subnivel. Ambos tienen sobre ellos los
asteriscos. Se pueden guardar haciendo
clic derecho sobre estos activos y nuestro navegador de contenido o en nuestra pestaña de
niveles justo por aquí, puedo hacer clic en cada
disco para guardarlo. Adicionalmente, quiero crear carpetas
separadas aquí
para algunos de nuestros activos. De lo contrario, vamos a
tener demasiados un lugar dentro de nuestra carpeta de scripting. Voy a hacer clic derecho. Voy a agregar una nueva carpeta. Voy a sumar 14 niveles. Y también voy
a hacer clic derecho en nuestra carpeta de scripting. Una vez más, voy a
agregar otra carpeta nueva, y voy a añadir una porque lo
llamaremos resumen para algunos de nuestros primeros
planos que creamos. Y luego voy a volver
a mi carpeta de scripting. Y voy a arrastrar
y soltar algunos de estos activos dentro de
la carpeta correspondiente. Así que voy a
hacer clic izquierdo y arrastrar y resaltar como lo siento no
clic izquierdo y arrastrar. Control. Haga clic en mi ejemplo de recogida en
mi guión de construcción. Y voy a arrastrar y
soltar estos en el interior de nuestra carpeta de resumen. Y el otro 3123, sólo
soy el control de clics. Voy a arrastrar
y soltar dentro de nuestra carpeta de niveles,
moverlos aquí. Los ácidos caídos son
referenciados por uno o más, dirá que sí. Y por último pero no menos importante, vamos a presentar y guardar todo
buen lugar para guardar todos como. Muy bien chicos, eso lo va a
hacer todo por éste. Te veremos en la siguiente.
14. Tipos de nodo: Muy bien, bienvenidos de vuelta a todos. En el transcurso de
los próximos videos aquí vamos a estar
rompiendo planos, nodos de
scripting con
mucho más detalle. En particular, vamos a estar hablando de
diferentes tipos de nodos. Vamos a estar
hablando de diferentes tipos de pin. Es decir estos pasadores de forma
circular de colores frente a estos alfileres
de forma triangular. Vamos a estar
hablando de la diferencia
entre los pines de entrada en el lado izquierdo de un nodo frente a pines de
salida en el lado
derecho de un nodo. Vamos a estar
hablando de cablear nodos y también de cómo
organizar mejor los nodos. Ahora, en este video, nuestro objetivo es discutir
algunos de los tipos de nodos de
scripting de blueprint que
se encuentran en irreal. Ahora, vamos a
hablar de cada uno de estos diferentes tipos de nodos mayor detalle más adelante
en el curso. Pero por ahora, solo
quería que te familiarices con estos diferentes tipos de nodos
para que puedas
identificarlos mejor y
entender su uso. Muy bien, vamos a
empezar
aquí nuestra discusión sobre
diferentes tipos de nodos con los nodos de color rojo. Los nodos de color rojo en Unreal
se conocen como nodos de eventos. Y son críticos
porque son necesarios para iniciar algún poco de guión ahí. La chispa que envía un pulso por este cable aquí para hacer cualquier otro nodo
enganchado a él, se
dispara también. Ahora algún ejemplo, eventos
o evento comienzan a jugar, lo cual es súper común. Esto se dispara cada vez que
iniciamos nuestro juego. También tienes eventos de entrada como cuando presionas uno en tu teclado o el botón de la
cara inferior en un gamepad. Moviendo a lo largo, tenemos estos nodos de color azul y
estos son conocidos como funciones. En particular, se les
conoce como funciones impuras. En funciones puras hacen que
algo suceda pero son libres de tener
las cosas modificadas. Algunos ejemplos de
diferentes nodos de función incluyen desove un actor, desove y emisor. Ese es el
sistema VFX más antiguo en irreal, también
tenemos engendrado
el sistema que es el sistema VFX más nuevo en irreal, tenemos esta función create
widget. Esto se usa para mostrar tipos de menús o HUD que
has creado. También tenemos funciones
para tocar un sonido o escenario y actores
ubicación o ajuste, el material, ese
tipo de cosas. Yo quería
sumar este aquí también. Tienes algunas funciones
que pueden tener este desarrollo
sólo raya en él. Y eso se debe a que
esta nota de función en
realidad solo está destinada a fines de
desarrollo. Entonces si alguna vez ves
algo así, por
eso moviéndonos, tenemos estos nodos de color más
verde. Y también se les conoce como
funciones. Pero se les conoce como funciones
puras que
simplemente se utilizan para obtener algunos datos. Y un
diferenciador clave entre estas funciones verdes y
estos nodos de función azul. Ambos tienen
esta elegante F en ella es estos
nodos de función impura azul tienen algo conocido como pines exactos en ellos. ejecución,
pines exactos para abreviar. En tanto que el verde sabe
que las funciones puras no lo hacen. Estos
pines exactos o de ejecución se
utilizan simplemente para mantener el flujo
de ejecución en marcha. En. Cable de ejecución puede
entrar y salir. No obstante, estos no tienen eso. Entonces, ¿cuál
es exactamente su propósito? Su propósito se utiliza
para simplemente obtener algunos datos. En este caso, este
nodo va a conseguir lo que es nuestro
personaje jugador. En este nodo, estamos obteniendo en
qué nivel está ese actor. Y esta función pura simplemente obtiene el nombre para mostrar
del objeto enchufado en él. En este caso, nuestro nivel. Estos dos nodos aquí no
son funciones puras. A continuación tenemos una categoría de
nodos conocidos como nodos de control de flujo. Puedes identificarlos por este
banner de color grisáceo a lo largo de la parte superior. La excepción solitaria a eso es la familia de conmutadores
de los cuales hay muchos. Y tenían este tipo de
pancarta de color dorado
a lo largo de la parte superior. También se consideran nodos
de control de flujo. Entonces, qué hacen
los nodos de control de flujo con su uso para determinar a dónde
ir a continuación en un script. Así que imagina si lo harás, tuvimos un evento, comenzamos a
jugarlo justo antes de
este nodo de sucursal. Y estaba
enchufado aquí mismo. Entonces dependiendo de la
condición, verdadera o falsa, podríamos o bien un incendio
fuera de esta manera o de esta manera. Y puedo tener todo tipo de diferentes scripts adjuntos
a mi rama verdadera o mi rama falsa hola los nodos de
control son súper comunes en Unreal
y blueprints scripting. Y sabrás que realmente
estás
nivelando tu juego de
scripting blueprint cuando
empieces a dominar estos, ¿cómo encuentras estos nodos? Si simplemente hace clic con
el botón derecho en algún espacio vacío, puede escribir en control de flujo. Y hay toda una
categoría que en realidad aparece como control de flujo. Y puedes ver
donde hay toneladas de nodos de switch, control de flujo, déjame colapsar la categoría de
switch y hay un montón de tus nodos de control de
flujo. Y a continuación tenemos variables. Ahora he creado un montón
de variables diferentes a lo largo de la izquierda en
preparación para este video. Las variables conservan datos
de un tipo específico. Estos son contenedores,
si se quiere. Pueden tener sus
valores alterados o establecidos como nos gusta decir, algo que no sea
lo que originalmente era, siempre y cuando sea del mismo tipo. Ahora estos contenedores
se utilizan para contener cosas como los valores de salud. O es el estado de poseer
algo o engendrar ubicación. Si se trataba de un
valor de salud, podría ser un int o un tipo de flotador. Eso es algún tipo de número. Si fuera estado
de poseer una clave, podría ser un tipo booleano
que sea verdadero o falso. Y si fuera la ubicación
de un engendro de enemigos, eso sería un tipo de vector, eso sería una ubicación X,
Y, y Z. Por último, quería
hacer mención de un nodo muy especial y único se encuentra dentro de los scripts de
blueprint, que es un nodo de línea de tiempo. Los nodos de línea de tiempo se utilizan
para alterar el valor de una variable o
variables a lo largo del tiempo. Y se utilizan para cosas
como cambiar un valor de flotador para cambiar un temporizador de juego
para disminuir con el tiempo, como fundó un juego deportivo, ya
sabes, un reloj cuenta atrás. O tal vez cambiar
una variable vectorial con el tiempo para mover un objeto. En el caso de una plataforma
móvil, este es un nodo tan fresco y
único que tengo todo
un video dedicado a
esto más adelante en el curso. Entonces en resumen,
tenemos nodos rojos. Estos son conocidos como nodos de eventos
que son necesarios para iniciar cualquier bit de scripts. Son azules. Los nodos se conocen como funciones
impuras. Simplemente hacen que
algo suceda. Pueden engendrar a un actor, pueden desovar un
efecto de partícula, tocar un sonido. Pueden mostrar una pantalla de
menú o HUD. Lo que hace que las funciones
impuras sean
diferentes a nuestras funciones puras es que sí tienen pines de ejecución entran y salen de ellas. Hablando de funciones puras, aquí te presentamos algunos ejemplos
de nuestras funciones puras. Estos son de color verde. No tienen pines de
ejecución en ellos, y simplemente están
acostumbrados a obtener algunos datos. Los nodos de control de flujo
son de color gris, con la excepción
de los nodos del switch. Y estos son súper
útiles para controlar el flujo de ejecución
dentro de tu gráfico. A continuación tenemos variables. Hay muchos tipos diferentes de
variables. Las variables sostienen un
pedazo de información. El contenido de una
variable se puede establecer, cambiar si lo desea, en algún lugar a lo largo de su guión. Y por último pero no menos importante,
tenemos un nodo de línea de tiempo. Este es un nodo muy especial
dentro de irreal que puede cambiar el valor de una
variable con el tiempo. Muy bien chicos, eso lo va a
hacer todo por éste. Nos vemos en la siguiente.
15. Pinos de ejecución y datos: Bienvenidos de vuelta a todos. En este video, nuestro
objetivo es aprender más sobre y entender las diferencias
entre
la ejecución
y las cacerolas de datos son varias no mareas dentro de los blueprints de
Unreal Engine. Ahora hasta este
punto del curso, me
has visto trabajar con algunos de
estos diferentes tipos de pin
en los diversos nodos, pero no hemos tenido una discusión
oficial sobre los tipos de pin. Entonces de eso se trata este
video, usando algunas de nuestras
impuras funciones. Aquí hay un ejemplo rápido. Echa un vistazo a esto. Tengo algunos de estos alfileres
triangulares en un nodo, y también tengo estos alfileres
de
forma circular codificados por colores en una nariz. A estas cosas se les
conoce como alfileres. ¿ Cuáles son las diferencias
entre ellos? Bueno, estos pasadores
de forma triangular se conocen como pasadores de ejecución. Estos pines son donde se envían
señales dentro y fuera de un conocimiento dado. Ordenan al nodo que se
ejecute para hacer algo. En este caso, este nodo
generaría un efecto visual. Ahora, todos los nodos de eventos tienen al
menos un pin de ejecución. Y es bastante crítico
que los nodos de eventos lo hagan porque son los que empiezan a suceder
todo el script. Entonces empezamos a jugar. Se va a iniciar un flujo de ejecución fuera de este
pin y bajar este cable. Ahora es importante
señalar aquí que no todos los nodos tienen pines de
ejecución. Si recuerdas
del último video, estos nodos de función puros
no tienen pines de ejecución. Estos simplemente están
destinados a generar algunos datos. Eso lleva muy bien
a la discusión de lo que es un pin de datos. Bueno, volviendo aquí a nuestras
impuras funciones, porque este nodo
tiene muchas de ellas. Los pines de datos
son pines donde los datos pueden
fluir dentro o fuera de un nodo dado. Ejemplos de datos que se pueden enchufar a un nodo
podrían ser números, coordenadas, objetos,
ese tipo de cosas. Ahora observa que estos pines de datos, estos pines de datos de forma circular
vienen en diferentes colores. Y eso es para ayudar a identificar
los diferentes tipos de datos. Si me pasa el ratón sobre cualquiera de estos diferentes pines codificados por en la punta de la herramienta que aparece. Enumera los
diferentes tipos de datos que se pueden introducir en él. Entonces la ubicación está
buscando un tipo de datos vectorial, como es la escala. No obstante, este auto destroy está buscando un tipo de datos booleano. Ahora es posible que hayas recordado
del último video que hablamos brevemente sobre variables
aquí arriba, y que las variables pueden venir
en diferentes tipos de datos. Las variables se pueden enchufar estos diversos pines de datos para instruir al nodo sobre qué hacer. Por ejemplo, si quisiéramos desovar un emisor en
una ubicación determinada, podría enchufar una variable
vectorial este pin de datos para instruir a este
emisor dónde se desova. Como se puede ver como estoy arrastrando y soltando esto sobre el pin, está diciendo, Yep, Esa
es una variable vectorial. Está bien enchufar eso
a nuestra ubicación aquí. Ahora, si elimino esto
y traté enchufar esa misma cosa en
este pin auto destroy. Dirá, Nope, no puede
hacerlo porque eso no
es un
tipo de datos compatible, no puede hacerlo. No obstante, esta variable booleana
podría ser enchufada a este auto destruido porque
ese es un tipo de datos coincidente. Ahora es importante
entender que los nodos pueden tomar en los datos
así como la salida de ellos. Por lo que este
emisor de desove en la ubicación como nuestro sistema de desove en la ubicación, pueden tomar en todo tipo de datos y sí
devuelve datos también. Pero echemos un vistazo a
otro ejemplo de un nodo que genera
una gran cantidad de datos. Voy a saltar a mi ejemplo de
BP, recogiendo rápidamente aquí. Y podemos ver en nuestro
propio componente comenzar evento de
superposición nota aquí
que puede generar una gran cantidad de datos, incluido el otro
actor que es lo otro que se superpuso a
este colisionador de esfera. Ahora quiero ayudar a solidificar
todos estos conceptos aquí
tenemos pines de ejecución versus
pines de datos. Tenemos pines de entrada
en el lado izquierdo de un nodo versus pines de salida. Por lo que agregué un script temporal aquí dentro de mi pastilla de ejemplo de
BP. Ese es este agarre aquí mismo. Voy a eliminar esto al
final de este video sólo para ayudar a demostrar
este concepto. También en mi nivel
tengo una instancia,
una copia de mi
ejemplo de recogida de BP. Actualmente en mi
nivel se conoce como ejemplo de BP pickup a. El motivo por el que estoy sacando
esto es porque dentro de ese blueprint
justo aquí arriba, he seleccionado esto, mi ejemplo de préstamo BP, instancia de
recogida como
la opción de debug. Lo que quiero ver el guión para ello en realidad
disparando en el trabajo. Ahora este script temporal
que sumé aquí, esto va a
disparar cada fotograma. Eso es lo que hace la garrapata del evento. Se va a instruir a nuestro nodo de
función de cadena de impresión aquí para imprimir algo a nuestra
pantalla en textos rosados. Y va a
imprimir el nombre de nuestro personaje jugador. Eso es lo que estos, estos
nodos también hacen aquí. Entonces esta cadena de impresión, si desenganché este
cable aquí mismo, simplemente
imprimiría el texto Hola. No obstante, con esto
enchufado a ella, le
estoy diciendo a esta función de cadena de
impresión qué imprimir en la pantalla. Estamos proporcionando datos de TI
de qué imprimir. Entonces aquí vamos. Voy a hacer clic en
jugar aquí rápidamente. Y si muevo esto un
poco abajo, ahí vamos. Se puede ver este evento tick
disparando continuamente, un flujo continuo que le dice a
nuestra cadena de impresión que imprima
continuamente este nombre para mostrar a
nuestra pantalla aquí está spammed a lo largo de la izquierda
lado en textos rosados. Y ahí lo tienes. Tenemos un nodo de ejecución disparando hacia este nodo de entrada de
ejecución, diciéndole esto que
se imprima en la pantalla. Tenemos algunos datos que fluyen hacia este nodo
diciéndole qué imprimir. Eso lo va a hacer todo
por este video chicos, tenemos pasadores de ejecución,
estos alfileres triangulares. Tenemos pasadores de datos,
estos pasadores de forma
circular codificados por colores. Tenemos pines de entrada en
el lado izquierdo de un nodo. Tenemos pines de salida en
el lado derecho del nodo. Eso hará todo por
este video, chicos, veremos en el siguiente.
16. cableado de nodo: Bienvenidos de vuelta a todos. En este video, nuestro
objetivo es aprender los métodos de cableado de
notas juntas en irreal. Ahora, en la superficie, puede
parecer que no hay mucho para esto, pero
aquí hay algunos consejos y trucos
sutiles que valen
mucho su tiempo aprendiendo porque
pueden ahorrarte una carga de bote del tiempo a lo largo de
muchos días de desarrollo. Entonces, en primer lugar, hablemos de
diferentes tipos de cables. Alambres blancos. Estos son
cables de ejecución y
fluyen entre pines de ejecución. Mantienen el flujo de ejecución yendo de un nodo a otro. Y consejo divertido aquí, si pasas el ratón sobre
cualquiera de estos cables, puedes algo resaltar
así para ayudar a que se destaque. Se puede ver como yo hago esto, poco doliza todos los
otros cables abajo. Bastante fresco,
hace que ayude a destacar. A continuación, tenemos cables de datos. Estos están codificados por colores
según su tipo de datos, que de nuevo, vamos a estar
aprendiendo mucho más sobre tipos de datos más adelante
en el curso. Pasan a lo largo de datos de
un nodo a otro. Entonces este cable rosa representa
un tipo de datos de cadena. Y de nuevo, dice que en la punta de la herramienta mientras lo pasé por encima, si salto a nuestro bp
ThirdPersonCharacter, podemos encontrar algunos otros cables
codificados por colores. Estos cables verdes representan un tipo de datos flotador que es un
número con un punto decimal. También hay un
cable amarillo aquí abajo. Este es un tipo de datos vectorial. Por lo que una vez más, los cables de datos están codificados por colores
según su tipo de datos. A continuación, hablemos de diferentes formas de
conectar nodos juntos. Probablemente la forma más
común es
simplemente hacer clic izquierdo y arrastrar de un tipo de pin a otro tipo de pin
similar, así. obstante, no tienes que
trabajar en este delantero, esta moda de izquierda a derecha, podrías trabajar hacia atrás. Si fuera a desconectar este pin, podría hacer algo como esto. Esa es una
forma completamente válida de hacerlo también. También puede arrastrar y soltar
algunos nodos en otros nodos. Mira abajo aquí en
mi lugar sonido nodo 2D, he desconectado temporalmente
mi sonido pick-up de mi entrada de sonido aquí. Podría hacer algo como esto, donde hago clic izquierdo y
arrastro esto al injerto, lo
consigo, y luego
lo enhela así. No obstante, ese es un proceso
de dos pasos. Hagamos nuestras vidas más fáciles. Entonces debido a que esto es
del mismo tipo de datos que
esto está buscando, simplemente
puedo
arrastrarlo y soltarlo justo encima de ahí, y lo
conectará automáticamente. Ese es un truco realmente práctico. Ahora esto funciona no sólo
para introducir datos, sino también para la salida de datos. Entonces antes de este video, he creado una variable
aquí llamada Delta segundos
del tipo de datos float porque este tick de
evento puede generar
algunos datos de flotación. Si hago clic con el botón izquierdo y
arrastro esto encima de aquí, puede automáticamente. ¿ Por qué están
juntos estos dos nodos también? Ahora no hemos
hablado de obtener algunos datos versus
establecer los datos. Hablaremos más de eso
en nuestra sección de variables. Otra forma de donde
los nodos juntos es conseguir algo
sensible al contexto. ¿ A qué me refiero con eso?
Bueno, déjame mostrarte. Voy a seleccionar
nuestra
malla de cubo horizontal aquí arriba en nuestro panel de
componentes. Y con eso seleccionado, voy a hacer clic derecho
en nuestro gráfico aquí. Y voy a hacer una búsqueda de
nodo llamado Sets material. Para que pueda poner material para
mi cubo horizontal aquí. Si seleccioné este nodo de
función, va a conectar
automáticamente nuestro componente de cubo horizontal
aquí a este nodo de función. Esto funciona no sólo en un plano de clase actor u otros planos
para ese asunto. Pero aquí en nuestro
Plan de Nivel puedo
demostrar esto también. Así que déjame saltar de nuevo
a mi mapa de pruebas aquí. Tengo mi cubo seleccionado, salta de nuevo a mi
Nivel Blueprint. Eso es un recordatorio
de cómo hacer eso. Con ese nodo seleccionado o
con esa actriz seleccionada. Debería decir que el cubo seleccionado. Puedo hacer clic derecho y
algún espacio vacío. Puedo llamar a alguna función
en ese actor de malla estática. Déjame entrar en la sección de
renderizado y puedo poner al actor
escondido en los juegos. Entonces estoy
conectando automáticamente una referencia a mi cubo, a este actor set oculto
en la función de juego. Ahora como lo demostré brevemente
en el último video, si intentas enganchar un pin a otro y
no son compatibles, irreal
te va a hacer saber al respecto. Entonces si iba a romper a
mi chico de la señal aquí mismo, y traté de
conectarlo aquí. Va a decir,
OK, no puedo hacerlo. Evento comenzó a jugar
en pin de ejecución tratando de
conectarlo a una cadena int, tipo de datos de cadena, No se puede hacerlo. Larga historia, corta,
Unreal te hará saber si puedes conectar
esos pines o no. Ahora, hablemos de algunas
formas en que se pueden cortar cables. El método más fácil
es mantener presionada
la tecla Alt y hacer clic izquierdo
en el cable mismo. obstante, si no tienes que
hacer eso en el cable mismo, podrías encontrar cualquiera de los
pines que el cable esté conectando y simplemente mantén presionado Alt y haz clic izquierdo
en el propio pin. No importa si
es este lado o el otro lado
del cable de conexión. Otra forma en la que
puedes hacer esto es simplemente haciendo clic derecho sobre el nodo. Así que vamos a hacer clic derecho en nuestro nodo de cadena de
impresión aquí. ¿ Y estoy haciendo clic derecho en el menú? Tengo la opción de
romper enlaces de nodos. Eso lo hará. Otra forma en la que
podrías hacer esto es haciendo clic derecho en
el propio pin. Entonces vamos a usar este
ejemplo por aquí. Tengo esta referencia de cubo dentro de mi Nivel Blueprint. Y tengo esto
enganchado a dos funciones. Así que puedo hacer clic derecho en este pin sí mismo y podría
romper todos los enlaces Pin. Así que ten en cuenta que lo
tengo enganchado a dos nodos de
función diferentes aquí. Si quisiera traer ambos
cables al mismo tiempo, simplemente haga clic derecho en ese pin, rompa todos los enlaces Pin y
boom, todos desconectados. Por último, mover cables de un pin a otro es uno
de mis trucos favoritos. En lugar de hacer
algo como esto, donde tenemos nuestra referencia de
cubo y
queremos engancharlo a esto. Oh, ahora queremos
engancharlo a esto. Entonces tenemos que romper el
alfiler e ir así. Sí, eso está perfectamente bien. Puedes hacer eso. No obstante, si mantienes presionada la tecla Control y haces
clic con el botón izquierdo en el propio pin, tienes ese ícono de
manecita. Puedes arrastrar y soltar eso
de un pin de datos a otro, así así, amar ese truco. Eso es un enorme
ahorro de tiempo, chicos correctos, que son algunos métodos diferentes
para cablear nodos juntos. Eso lo hará todo por éste. Nos vemos en la siguiente.
17. Organización de nodos: Bienvenidos de vuelta a todos. En este video, nuestro
objetivo es aprender algunos consejos y
trucos de organización de notas que
nos ayuden a ser más eficientes, así
como a escribir scripts más
limpios que se
puedan leer más fácilmente. Ahora hasta este
punto del curso, hemos escrito algunos guiones
bastante básicos. No contienen una
gran cantidad de nodos o cables. Y así la organización de nuestros nodos no es tan grande de un trato,
pero a medida
que te hagas más avanzado, tus scripts
tenderán a incluir más nodos, incluir más alambres, y así estos organizativos
opciones se vuelven o, tan importantes por el bien de
legibilidad. Entonces en un plano
de su elección, voy a estar dentro de
mi recogida de ejemplo de BP. Vamos a explorar algunos de
estos y ahora he estropeado
intencionalmente alguna de la organización nodo que
tenía pasando aquí antes de tiempo. Si hace clic con el botón izquierdo y arrastra, puede resaltar una
selección de nodos. Alternativamente, puede mantener presionado el control y hacer clic con el botón izquierdo para
seleccionar varios nodos. Una vez que haya hecho clic con el botón derecho en
cualquiera de sus selecciones, puede traer en un menú contextual en una de las categorías es organización. Vamos a estar
hablando específicamente de estas opciones de alineación. Y en el pequeño
menú fly-out aquí se puede ver
podemos alinear nuestros nodos a lo largo de
la parte superior del nodo. El fondo, el medio
es menos los centros, los derechos, etcétera. Todos estos tienen teclas de acceso rápido
asociadas a ellas. Como se puede ver aquí. Si miras con cuidado, es Shift más W, a, S y D. Ese es el movimiento
de tu personaje en el teclado que fácilmente
corresponde a la parte superior, inferior, izquierda y
derecha. Bastante práctico. Así que voy a alinear a
lo largo de la parte superior aquí, pero hay un poco de matiz con alinear que
debes saber. Entonces déjame
seguir adelante y hacer esto. Se puede ver cómo alinea todos estos nodos
a lo largo de la parte superior. Pero entonces la pregunta
se convierte, bueno, ¿cuál de estos nodos
que decide alinear dos? Hagamos esto otra vez. Moviendo esto un
poco fuera de kilter. Vas a hacer la
selección de control de estos nodos. Así que tengo 1234. Así que ten en cuenta que Destroy
Actor aquí fue el último nodo que
he seleccionado. Ahora si hago clic derecho, voy a alinear otra vez
por la parte superior. Y ten en cuenta que
lo alinea todo de
acuerdo con el último nodo que
hayas seleccionado. Ahora acabamos de hacer alineando
por la parte superior allí, pero se puede imaginar
lo que hace alinear a derecha, izquierda o inferior. A continuación, quiero hablar de
enderezar conexiones. Muchas veces, a medida que tus scripts se
vuelven cada vez más complejos, puedes tener nodos un poco
acurrucarse en un área, tal vez curling de nuevo así. No, es un poco así. Cableado de todo tipo de formas raras. Enderezar las conexiones es una forma de hacerlas
lucir muy limpias. Si resalto estos
dos nodos ¿verdad? Así y con el botón derecho del ratón, se
puede ver que la
tecla de acceso rápido para enderezar conexiones es la tecla Q. Y si hago eso, se puede ver cómo endereza
esa conexión cableada. Ahora aquí también, hay
un poco de matiz. La primera selección
que hicimos, y permítanme simplemente
sacarlos de kilter. Una vez más. La primera selección
que hicimos es el nodo que quieres enderezar. La segunda selección
que realizamos. En este caso, va a
ser nuestro nodo de cadena de impresión. Ese va a ser el pin
del nodo que queremos
enderezar dos. Por lo que nota esto haciendo clic derecho. Hacer alinear Q. nos hemos enderezado
a ese pin, este nodo, nos
enderezamos a ese pin. A continuación, he saltado a mi Plan de Nivel donde
he estropeado
intencionalmente la organización de
algunos de mis nodos variables poder demostrar
distribuirlo verticalmente. Lo primero que voy a
hacer es hacer clic izquierdo y resaltar todos
estos nodos variables. Y quiero que se
alineen a lo largo de la izquierda primero. Entonces manteniendo presionada Shift, voy a presionar la
tecla a porque Shift plus a es la tecla de acceso rápido para
alinear a lo largo de la izquierda. Como se puede ver verticalmente, no
se ven muy
uniformemente espaciados. Entonces hay una opción
para eso también. Voy a
hacer clic derecho en cualquiera de mis notas
resaltadas que quedan aquí. Todos son alineaciones
resaltadas y podemos distribuir
verticalmente. Y lo que eso va a
hacer es que los va a espaciar
uniformemente entre el nodo más alto
que he seleccionado y el nodo inferior más
que he seleccionado. Así que compruébalo. Los
espació uniformemente entre mi nodo más seleccionado superior y
mi nodo más seleccionado inferior. Organizar notas horizontalmente no
es lo que es diferente. Entonces aquí tenemos algunos nodos de control de
flujo que están un poco fuera de kilter. Voy a hacer clic izquierdo y
arrastrar para resaltar estos cuatro. Lo primero que
voy a hacer es mantener presionada Shift y presionar la tecla W para alinearlas a
lo largo de la parte superior aquí. Y luego con todos
estos resaltados, puedo hacer clic derecho en
cualquiera de esos cuatro
que se resalten. Podemos ir a la alineación. Podemos distribuir horizontalmente
a uniformemente, espaciarlos. Ahora, con estos nodos seleccionados, hay un par de formas
diferentes en que
podemos ir sobre moverlos. Se puede ver que tengo a los
cuatro seleccionados. Puedo seleccionar cualquiera de ellos y mover las cuatro vueltas así. No obstante, también puedo
usar las teclas de flecha. Así que ahora mismo estoy presionando
hacia abajo en las teclas de flecha, izquierda, derecha, y arriba, eso moverá los nodos también. Algo más se
puede notar que
tengo en un par de los nodos. Aquí hay un comentario, un comentario sobre algunas de
las teclas de acceso rápido asociadas con traer algunos de estos
nodos a tu gráfico. ¿ Cómo se obtiene un comentario de nodo? Bueno, es sólo cuestión de hacer clic con el botón derecho en
la nota misma. Y ahí puedes
dejar un comentario de nodo. Me gustaría hacer esto a
veces con teclas de acceso rápido, particularmente cuando estoy
creando videos como este. En cualquier momento que quieras
dejar un recordatorio para ti mismo sobre lo que hace un nodo, o tal vez algún caso especial con el
que se trata el nodo. Hacer clic derecho sobre él y agregar un cometa nodo es bastante útil. Hablando de comentarios, tal vez
veas, nota si quieres,
que tengo este cuadro de comentarios alrededor de toda esta
selección de nodos. Bueno, ¿cómo conseguí eso? Bueno, eso es
simplemente cuestión de, déjame simplemente mover estos
nodos todos fuera de aquí. Voy a eliminar eso. Puedes hacer clic con el botón izquierdo y arrastrar para crear esta selección de marquesina
alrededor de todos tus nodos. Con todos ellos seleccionados, puede tocar la tecla C
para crear un cuadro común. En el momento en que hagas esto, puedes ver más en el panel Detalles, puedes darle un nombre
a tu cuadro de comentarios. También puedes
nombrarlo aquí arriba también. Déjame simplemente mover
estos nodos hacia abajo porque se está superponiendo
un poco. También puedes hacer doble clic en ese nombre justo ahí mismo para
renombrarlo y también tener acceso
a tu comentario. Detalles aquí, voy a
llamar a este control de flujo. También le das un color
a la caja de aquí mismo. Algo verde. Tal vez. También puedes cambiar
el tamaño de la fuente. Esto es realmente útil para cuando te alejas con
zoom así. Tal vez quieras
algo así. Ahora otra opción realmente
útil con esta burbuja de nodo de comentarios es que tienes este
movimiento en modo. Actualmente, si tuviera que
seleccionar mi cuadro de comentarios, puedo mover todos los nodos porque mi modo de movimiento está
configurado en movimiento de grupo. No obstante, también puedo
cambiar esto solo el cuadro de comentarios en sí. Y puedo mover sólo el cuadro de
comentarios personalmente, me gusta el movimiento grupal. Por lo que otra forma de
crear un cuadro de comentarios sería resaltar
algunos nodos así. Y como te imaginas, el
menú contextual te dará una opción para crear
un cuadro común también. Voy a seguir adelante y
hacer eso y llamaré a estos mis nodos de bucle. Y esto también demuestra
que se puede tener un cuadro de comentarios en lado
de otro cuadro de comentarios. Para que pudiera moverme por
estos nodos
así, así como mover todos
estos nodos alrededor. Permítanme cambiar esto de
nuevo a movimientos GRU, incluyendo la
selección de comentarios dentro de él. Y por último, ningún
video de organización de nodos puede estar completo sin
hablar de nodos redireccionados y su importancia
dentro de los planos. Para demostrar el nodo rerutado, estoy en mi
muro de blueprint, de Scott, que puedes encontrar a partir de la fecha
de hoy de todos modos, en la carpeta de contenido de inicio
Blueprints, de nuevo, puedes demostrar esto en cualquier plano, pero dentro aquí, se ve esto muchas veces
en guiones donde
consiguió algunos cables
cruzando otros cables,
alambres pasando por nodos,
este tipo de cosas. ¿ Hay alguna manera de que
puedas redirigir que el cable? Sí, puedes. Y eso es a través de
algo llamado nodo
redireccionado. ¿
Qué hace el nodo de redireccionamiento? Es esencialmente
un punto definido, una banda, si se quiere, que se crea en un cable. Para llevarlos, simplemente
puedes hacer doble clic en
cualquier cable como tal. Haga doble clic en esto
aquí mismo hay un nodo redireccionado. Simplemente continúa
el flujo de datos. En este caso,
también puede agregar nodos de redireccionamiento
para los cables de ejecución, así. Es genial para hacer este
tipo de cosas en las que estás doblando esto para que quede más claro hacia dónde
va esto en lugar de
cruzar las cosas. También puedes traer un nodo redireccionado
arrastrando fuera de algo y escribiendo en re rutas, puedes agregar un
nodo redireccionado así. Y se puede ver que este
punto se ilumina aquí mismo, este componente, si se quiere, está enchufado a
múltiplos de estos. Siempre y cuando se esté alimentando
en una nota de
redireccionamiento, podría hacer algo
como esto también. Esta es una forma completamente
válida de hacer eso. No importa
en este caso si estoy arrastrando la luz
puntual desde aquí o desde el punto
donde se está redirigiendo. Ambos son formas
válidas de hacerlo. Por lo que el nodo redireccionado súper
práctico amaba tanto. Y la forma más sencilla de
conseguirlos es
simplemente hacer doble clic en un cable. Chicos que lo van a hacer por este video sobre organización de nodos, por favor dominen estos
consejos y trucos. Te lo agradecerás más tarde.
18. Level BP - Referencias de objetos de tiempo del diseño: Bienvenidos de vuelta a todos. En el transcurso de los
próximos videos aquí, vamos a estar
hablando de uno de los conceptos más clave y
esenciales en todos un blueprint scripting. Y así es como crear
una referencia de objeto. Ahora, este es un concepto tan
importante y lo estamos llegando antes hablar incluso de eventos,
funciones o variables. Porque tanto de blueprints scripting se centra en
la manipulación de objetos de alguna manera. Por ejemplo, si fueras a caminar sobre una nueva recolección de armas, Bueno, no puedes
recoger esa arma sin tener una
referencia a ese objeto. Tal vez dispares un tanque
con un lanzacohetes. Bueno, no se puede destruir
ese tanque sin una referencia a ese
objeto a ese tanque. O tal vez quieras recoger
algún artículo cosechable para elaborar alguna
Espada Maestra, por así decirlo. Bueno, no se puede
recoger ese artículo sin tener una
referencia a ese objeto. Ahora vamos a estar
hablando de cómo crear estas referencias de objetos no
solo en planos de nivel,
sino en planos de clase, y no sólo durante el tiempo de diseño, es
decir antes de que el
juego se ejecute, también durante tiempo de ejecución, es decir, mientras el juego se está ejecutando. Muy bien, por lo que crear referencias en lado de nuestro Plan de Nivel. En primer lugar, solo quiero
señalar que más en mi pestaña de
niveles aquí, estoy trabajando en mi Nivel
Persistente. Y tengo tres objetos que se han agregado a
este nivel persistente, un cubo, mi pickup BP, y mi blueprint Construction
Script también. Y sólo para martillar a casa
el punto de que estos se sumaron a mi nivel persistido, mi mapa de pruebas de nivel, si se quiere. Solo voy a hacer click
en este globo ocular para activar y apagar eso para que
puedas ver que sí, efectivamente,
sí existen dentro de
este mapa de prueba de nivel, que de otra manera se conoce
como mi Nivel Persistente. Voy a volver a
mi outliner aquí y
voy a seleccionar
los tres objetos. Ahora, puedes seleccionar los tres aquí en tu puerto
de
visualización manteniendo presionada la
tecla de control
y pulsando la izquierda 123. Alternativamente, si hago clic
fuera de ella por un momento, puedo seleccionar los
tres aquí en mi outliner también, 123. Y se pueden ver los
tres de esos objetos se esbozan aquí
en el Viewport. De acuerdo, ahora vamos a saltar
a nuestro Plan de Nivel entrando bajo nuestro botón de
blueprint aquí. Vamos a abrir
nuestro Plan de Nivel, pesar de que ya
lo tengo abierto a través de la parte superior. Y algo que quiero señalar aquí que actualmente
mi bajo Blueprint, tengo dos gráficos de eventos. Uno llamado Event Graph, que uno estaba allí por defecto, y otro
llamado tipos de nodos. Creé éste cuando hablaba de los
diferentes tipos de nodos. Ahora la razón por la que estoy
mencionando eso es porque dentro de mi nodo
tipos gráfico de eventos, tengo este evento comience a jugar. Solo puedes tener un evento comience a jugar por Nivel Blueprint. Entonces si iba a trabajar en esta pestaña Gráfico de eventos y hacer clic derecho
y hacer una búsqueda de Begin Play. Y haga clic en esto. Me va a saltar de
esta pestaña Gráfico de eventos de vuelta
a mi pestaña de tipo de nodos. Ahí está. Ahora también tengo que
funcionar nodos por aquí. Tengo un nodo de retardo
que va a retrasar por tres segundos y luego
un nodo Destroy Actor. Así que esencialmente lo que
estoy mirando, buscando hacer aquí es
al comenzar el juego, vamos a retrasar
tres segundos y luego vamos a destruir a
un actor objetivo. Bueno, ¿qué actores
queremos destruir? Bueno, tengo estos tres seleccionados aquí atrás
en mis puertos de vista. Entonces vamos a crear una referencia a eso dentro de nuestro Plan de
Nivel. Ahora, si hago clic derecho y
algún espacio vacío aquí, parece que no
los veo aquí mismo, sin embargo, hay un
atajo para esto. Puedo mantener presionada la
tecla R o como en Robert, clic izquierdo y
boom, las tres de esas referencias se agregan a
pesar de que se
superponen entre sí. Para que puedas separarlos. Al igual que así. Ahora, esa es mi forma preferida de agregar una referencia a algo que existe
dentro de tu nivel, dentro del Plan de Nivel. No obstante, si vuelvo aquí
y selecciono solo un objeto, esto voy a seleccionar
mi ejemplo de recogida. Voy a volver a
mi Plan de Nivel. Puedo hacer clic derecho aquí. Y cuando
solo tienes uno de ellos seleccionado en tu menú
contextual, tu tercera opción hacia abajo, puedes crear una referencia
a eso también. Cualquiera de los dos métodos va a
hacer personalmente, me gustó el atajo
de mantener presionada la R, R como en la tecla Robert
y clic izquierdo. Ahora tengo dos referencias
aquí a mi recogida de ejemplo de BP. ¿ Está bien tener más de una referencia
al mismo actor, el mismo objeto? Sí, eso está perfectamente bien. Ahí simplemente duplicados con los
que estás hablando. Lo mismo. Sólo voy a
eliminar uno de ellos por
aquí por el momento. Para que como se puede ver, todos estos actores son
del nivel persistente, mi mapa de prueba de LV. Y puedo conectar los tres
a mi Destroy Actor. Y se puede ver que puedo
conectarlos hacia adelante y atrás. Así que de nuevo, obtener
una referencia de objeto es súper importante
porque tanto un blueprint scripting implica manipular a los actores de alguna manera. En este caso, sólo vamos el método de fuerza bruta
de destruir al actor. Entonces si juego mi juego ahora, déjame solo en primer lugar
compilar mi blueprint aquí para ver si hay algún
error con mi guión. Guarda eso de inmediato. Adelante
y haz clic en Jugar aquí mismo. Y se puede ver
después de tres segundos, los tres
actores son destruidos. Ahora, crear
referencias de objetos es genial, no sólo porque se puede
afectar al objeto en sí, sino que también puede afectar las cosas ese objeto en un nivel
más granular. Déjame mostrarte lo que quiero decir. Voy a deshacerme
de esta función Destroy Actor aquí mismo. Y con mi recogida de ejemplo de BP, si vuelvo a donde
está esto en mis carpetas aquí, tengo algunos
componentes aquí con los que puedo hablar directamente. Estos existen dentro de
mi pastilla de ejemplo de BP. Y quiero afectar
esta colisión de esfera. Este es actualmente
mi componente raíz. Entonces voy a cambiar la
escala de este componente raíz. Todos estos otros componentes
están unidos a la raíz. Entonces si escalo esto, estos también
se van a escalar. Entonces como este audio uno, pero
ese está actualmente vacío y francamente ya
no lo necesito. Entonces déjame seguir adelante y
eliminar eso de ahí, compilar y guardar eso. Muy bien, déjame saltar de nuevo
a mi Plan de Nivel. Y voy a arrastrar fuera de
mi ejemplo recoger aquí. Y voy a hacer una
búsqueda de colisión de esfera. Y quiero ir
al fondo. A menudo, cuando estás
buscando algo que existe dentro de
ese blueprint, está en el fondo. Y quiero conseguir mi colisión de esfera porque
quiero hacerle algo. Y luego fuera de esto, voy a arrastrar fuera
de aquí y escribir en conjunto escala mundial 3D. Entonces esta función hace lo
que crees que hace va a
escalar este componente de escena,
ese es el objetivo. Voy a establecer la escala para que sea tres veces más grande en las coordenadas x, y, y z. Entonces haremos esto
después de tres segundos. Y de nuevo, todos los demás
componentes de la cruz verde, si se quiere, lo que está unido a este componente de
colisión raíz esfera. Entonces al escalar esto, todo debería escalar
tres veces más grande también, incluyendo esa cruz verde. Así que déjame compilar esto para
asegurarme de que mi guión esté bien. Vamos a seguir adelante y hacer clic en Jugar. Entonces después de tres segundos, deberíamos ver este cambio. Whoops, y accidentalmente
hice clic fuera de la ventana. Déjame intentarlo una vez más. Centrándose en esa cruz verde, boom, tres veces más grande. Vamos a probar algo más aquí. Nuevamente usando nuestra pastilla de
ejemplo de bp, déjame simplemente eliminar algunos de estos nodos innecesarios aquí. Voy a eliminar a estos tipos. Dentro de nuestro ejemplo de pb pickup. Tenemos esta variable de
sonido pick-up, y actualmente está configurada para
este tipo de interplay de sonido. Ahora voy a cambiar esto
a un sonido tipo explosión. Y puedo hacer eso dentro de mi Plan de
Nivel siempre y cuando tenga una referencia a este actor
que existe en el nivel. Así que una vez que tenga una
referencia a esto, voy a arrastrar un
cable fuera de esto y escribir en sonido pick-up. Puedo conseguir ese sonido o
puedo poner ese sonido. Déjame seguir adelante y ponerlo. Y ahora puedo cambiar el contenido de esa
variable a otra cosa. Vamos a seguir adelante y
cambiarlo a explosión. Y lo haré para que
fuera de Event Begin Play. Simplemente estoy cambiando el
valor de esta variable, esta variable de sonido pick-up, de este sonido de interacción
a un sonido de explosión. Muy bien, así que una vez que juegue, vas a
escuchar una explosión. Ahora, cuando recojo
esa recogida de salud, un par de otros
interesantes tidbits de información
pensé que mencionaría mientras estaba aquí con este ejemplo referencia de
recogida en
nuestro Nivel Blueprint, si tuviera que hacer clic derecho en esto, puedo encontrar a este
actor en un nivel. Así que si alguna vez te estás
preguntando, Oye, ¿
dónde
existe esta cosa en mi nivel, puedes seguir adelante
y hacer
clic derecho, haz click en esto y salta de
nuevo a tu pestaña de nivel, y te saltará directamente a ella. Algo más dentro de tu Nivel Blueprint que
podrías hacer es
dejarme un poco fuera de
donde está esta referencia. Di que me voy en tierra de nadie. Puedo venir bajo Ventana. Puedo entrar debajo,
encontrar resultados en, en esta ventana de resultados finos, solo
puedo escribir, vamos a escribir en pickup. Y puedo encontrar mi
ejemplo de recogida de BP justo ahí. No me di cuenta de que
iba a encontrar mi sonido de pick-up también, pero en efecto eso tiene
la palabra pickup en él. Simplemente hacer doble clic en
esto me saltará derecho a donde está esa
referencia objeto. Bastante dulce. Muy bien chicos, así que ahí
está cómo puedes agregar algunas referencias de objetos dentro
de tu Nivel Blueprint, asegúrate de que tienes los objetos seleccionados aquí y tu nivel. Y luego puedes hacer clic derecho y
algo de espacio vacío y
crear una referencia a él,
o
bien algo de espacio vacío y
crear una referencia a él, mantener presionada la
tecla Alt y hacer clic con el botón izquierdo, que te llevará allí también. Eso lo hará todo por
este video, chicos. Nos vemos en la siguiente.
19. Level BP - Ejecutar referencias de objetos de tiempo: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es
aprender a crear
referencias a objetos dentro de tu Plan de
Nivel en tiempo de ejecución. Esto difiere de las referencias de objetos de
tiempo de diseño en que será capturar y contener
referencias a diversos objetos mientras
jugamos el juego. Recuerde que el tiempo de diseño es
antes de que el juego se esté ejecutando. El tiempo de ejecución es mientras el
juego se está ejecutando. Ahora un caso de uso común
para esto son objetos o
enemigos que se engendran en
el juego mientras jugamos. Quizás después de que un objeto o
enemigos engendran en tu nivel, quieras
afectarlo de alguna manera. Para ello, se debe crear una
referencia para ese objeto. Debe contener esa referencia
dentro de una variable. Muy bien, vamos a
empezar aquí dentro de nuestro mapa de pruebas de nivel. Y sólo para hacer
las cosas súper claras, sobre n Mi pestaña de niveles abiertos, tengo mi
nivel persistente como el nivel azul, el nivel actualmente activo. Voy a estar agregando
objetos de aquí en a mi Nivel Persistente, no voy a estar
haciendo más trabajo dentro de mi subnivel. Entonces sólo quería
dejar eso claro. Si desea que
esto sea el nivel activo,
puede hacer doble clic en él o alternativamente hacer
clic derecho sobre él y hacer actual esa fuente azul muestra que ese es
su nivel actual. Vamos a estar agregando
un actor a este nivel. Y para ello, voy a venir bajo
mi rápidamente agregando
al botón Proyecto en el menú
desplegable todas las clases. Y estoy
buscando un actor de notas. Así que voy a hacer clic izquierdo
y arrastrar esto a mi nivel y
colocarlo justo por aquí. Ahora, en conocido actor, si
estás jugando el juego, en realidad no
ves
este ícono por aquí. Simplemente estoy usando a este
actor como una forma de definir un punto en el espacio donde
quiero engendrar algo. Ahora nota, actualmente tengo seleccionado
mi nota actor, y puedo ver que la tengo seleccionada aquí en mi outliner. Por favor, asegúrate de que sí
tienes esto seleccionado porque
vamos a estar creando una referencia de objeto de tiempo de diseño para esto aquí en tan solo un segundo. Entonces subiendo debajo de mi botón
Blueprints aquí, voy a saltar
al Plano de Nivel, pesar de
que
lo tengo abierto aquí, así es como puedes volver a
saltar a tu Nivel Blueprint. Y lo que voy a hacer es
que voy a saltar a mi pestaña E Event Graph
justo por aquí. En algún espacio vacío, voy a crear una referencia de tiempo de diseño
a ese actor de nota. Voy a mantener presionada
la tecla R y clic izquierdo. Entonces me viste hacer esto
en el último video. Esa es una referencia del tiempo de diseño. Ahora, voy a volver
a esto en un momento, pero necesito una clave de evento. Voy a hacer clic derecho y
algún espacio vacío y escribir en el botón uno. Voy a agregar un evento de
teclado para cuando presione la tecla unica
en mi teclado. Y muchas veces esto, una vez
que presiono este botón, voy a arrastrar fuera
de este y tipo en el actor de
desova de clase. Esta es una función súper
práctica, no, que va a
desovar en algo que le decimos desde
este desplegable. ¿ Qué
queremos desovar aquí? Voy a desovar en
algo visual. Vamos a desovar en este efecto
blueprint fuego. Esto viene del
Starter Content Pack. Nuevamente, si no
tienes este paquete constante cuando estás poniendo
este curso juntos, cualquier cosa hará
algo visual. Entonces realmente no
importa lo que pongas. Aunque voy a elegir
el fuego. No obstante, sí necesito
decirle esto donde
quiero que esto engendra
y ahí es donde entra
esta transformación de desova. Y tengo que conectar
algo a
esta entrada de transformación para que sepa qué desovar
y luego dónde. Entonces para eso
se va a utilizar esta nota actores. Voy a arrastrar
fuera de esto y tipo en conseguir transformarse actor. El transformado es la locacional, la rotacional, y en realidad la información de escala
para este actor nodo. Pero realmente sólo nos importa
la información locacional. Por lo que está bien que utilicemos toda
la transformación aquí. Conecta esto a mi transformación de
desova. Y es aquí donde
vamos a crear una referencia de
objeto en tiempo de ejecución. Vamos a estar almacenando
algo dentro de una variable mientras el
juego se está ejecutando. Entonces fuera de este valor de
retorno aquí, puntero sobre el pin, dice
que devolverá una instancia de este
blueprint, el objeto fuego. Ahora quiero almacenar esto en una variable para que pueda
afectarlo de alguna manera mientras
el juego está jugando. Por lo que voy a
hacer clic derecho en este pin y escribir en Promover a variable. Entonces al hacer esto, más
en mi sección de variables, he creado un nuevo efecto de
blueprint fire. Pero necesito darle un nombre a esto. Voy a llamar a este
promovido fuego promovido. Ese es un buen nombre. Entonces a pesar de que esta
es una variable, puedo compilar esto también. Actualmente, cuando compilo esto, miro el
valor predeterminado en y dice, Ok, esto va a ser de este sitio de blueprint es Blueprint
fire effect, tipo fire. Pero ahora mismo
no tenemos nada dentro de aquí. No obstante, una vez que
presiono la tecla única, esto generará a ese actor en esta ubicación y luego
lo colocará dentro de esta variable. Esencialmente
contendrá dentro de este contenedor mientras
estamos jugando el juego. Ahora simplemente
vamos a hacer esto en tiempo de ejecución para que luego
podamos destruirlo. Por lo que abajo aquí abajo, voy a hacer clic derecho tipo
en las dos teclas, dos entradas. Se bajarán hasta
el evento teclado a tecla. Y fuera de esto, voy a arrastrar hacia fuera
tipo in, Destruye Actor. Es una función muy visual. Por eso me
gusta tanto cuando estoy poniendo estos
cursos juntos. Y entonces va a decir, ¿qué objeto te gustaría destruir
a qué actor? Bueno, puedo simplemente arrastrar
y soltar esto a
la derecha en el objetivo para
instruirlo para destruirlo. Ahora nota que si iba a saltar y jugar y
presionar las dos teclas, de hecho, lo haré ahora sólo para
demostrar algo. Jugando el juego. Déjame ver si puedo poner esto en una ventana
lateral aquí. Pueden ver mis guiones. Voy a presionar
sólo las dos teclas para, to, to, to, to, whoops, tengo que seleccionar
una opción de debug aquí arriba. Vamos a elegir mis mapas de
prueba para que podamos ver el flujo de ejecución aquí. Y así estoy presionando esas
dos teclas y se puede ver ese pulso hacia la izquierda
ahí mientras presiono las dos teclas. Pero mira esto. Cuando golpee a Escape, voy a ser lapso
con algunos errores. Y la razón por la que estoy recibiendo un error es porque está diciendo, Hey, no podemos encontrar nada
dentro de esta variable. Estamos tratando de
destruir esta cosa, pero no hay
nada ahí dentro. Entonces la razón de eso es porque
actualmente no hay nada almacenado aquí. No obstante, cuando
presionemos el wonky, engendraremos a un actor que
blueprint efecto fuego, y luego lo almacenaremos
dentro de esta variable. Hemos creado una referencia de
objeto almacenada dentro de esta variable. Así que intentemos esto de nuevo. Haciendo clic en jugar. Entonces mi actor de notas fue una ronda por encima del lugar donde la cabeza de mi
personaje está aquí. Entonces voy a presionar una tecla. Ahí está ese efecto de fuego
que acaba de aparecer en. Y voy a presionar
las dos teclas desaparecidas. Y puedo volver a presionar
la tecla unica. Otra instancia
de ese firewall, poblar esa variable,
presione la tecla F2, se ha ido. Ahora algo más que
vale la pena señalar aquí, voy a saltar de nuevo
a mi mapa de pruebas de nivel. Y voy a cambiar
mi opción de juego aquí, haciendo clic en estos tres puntos. Cambia para estar reproduciendo
no en una nueva ventana del editor, sino en esta ventana gráfica seleccionada. Estoy haciendo esto porque si
miras en el outliner, sobre el lado derecho, cuando presiono la tecla única, realmente
vas a
ver que el actor se
engendra en mi lista de
objetos más en el outliner. Así que compruébalo. Puedes oprimir la tecla única. Ves el
efecto de blueprint fuego aparece justo encima de
mi ejemplo de BP. recogida dos va a
destruirla uno a uno. Y sólo para
señalarlo ahí fuera está en el Outliner justo ahí. Vamos a probar un segundo ejemplo aquí. Justo aquí arriba voy
a colocar debajo de volúmenes, volumen
disparador, un volumen de
gatillo justo enfrente de donde
va a desovar mi personaje. Y sólo voy a
dimensionarlo un poco para
asegurarme de que mi personaje tenga un tiempo fácil
solapando esto. Voy a recogerlo
ligeramente del suelo. Después con eso seleccionado, voy a saltar a
mi Planeta de Nivel aquí, y voy a hacer clic derecho
añadir un evento para cuando solaparemos este
comienzo, superponerlo. Y de nuevo se dispara evento de
volumen como este está en actor
comenzar solapamiento nos puede decir quién es el otro actor que se superpone hace lo que voy a hacer los que voy a hacer
clic derecho en este pin y voy a promover
esto a una variable. Y al hacer eso, nos
puede dar un nombre. Está incumpliendo el nombre
aquí para mí a otro actor. Porque antes de grabar este
video, había ingresado eso como nombre. Aunque puedes presionar F2 en eso
para cambiarle el nombre. Entonces una vez que solaparemos esto, puede
almacenar una referencia a
este actor que
lo superpuso durante el tiempo de ejecución en cuanto a
quién era el otro actor. Sólo para asegurar que
sabemos que de hecho se está
superponiendo se lleva a cabo. Sólo voy a tocar un sonido, escuchar cualquier sonido va a hacer. Yo también voy a sacar
el sonido aquí. Vamos a jugar seguro. Un obturador de cámara,
esto son sólo dos. Notifíquenos, es algo
de hecho ha sucedido. Entonces eso es genial. Pero supongamos que cuando nuestro personaje tiene superposición
ese volumen disparador
eso, es decir, oh, eso es
negativo de alguna manera. Tal vez esa sea
una especie de nube de gas venenosa
que nos va a encoger. Entonces, una vez que tenemos una
referencia a nuestro actor aquí, podemos afectarlos de alguna manera. Entonces voy a arrastrarme
de aquí y traer una referencia a mi otro actor. Y fuera de esto voy
a escribir en la palabra escala. Vamos a establecer la escala de actor 3D. Y presionaré
valores 0.5.5.5 en cada uno de estos. Así que vamos a saltar, en juego aquí. Una vez compilar, compila, voy a revisar para asegurarme de que
mi guión esté todo bien. Vamos a jugar. Tengo
mi mapa de prueba establecido como mi objeto predeterminado que
estoy depurando aquí. Para que podamos ver estos
guiones disparando. Aquí está mi ventana de jugador. Entonces justo delante de mí, ese volumen de disparador invisible. Me oyó solapar eso. En ahora. El otro actor ha sido
poblado durante el tiempo de ejecución aquí. Por lo que en cuanto presiono la
tecla, el otro actor, también conocido como yo en este punto, actúan o escalan se va a fijar a tamaño medio. Aquí vamos. Estoy presionando la tecla
unica ahora mismo. Boom, abajo. Yo voy. Un ejemplo más aquí. Antes de cerrar esto, vamos a
mostrar cómo crear
múltiples referencias a los actores durante el tiempo de ejecución. Actualmente he duplicado
mi ejemplo de recogida aquí. Puedes hacerlo simplemente
arrastrando y soltando instancias
individuales o por alt, haciendo clic
izquierdo y
arrastrando sobre una de ellas para crear otra instancia. Así que de vuelta en mi plano de nivel
fuera de mi evento 16k, lo que voy a hacer es
que voy a arrastrar en un cable y escribir, consigue a todos los actores de clase. Y en la clase de actores, puedo muesca en mi pick up
mi recogida de ejemplo de BP. Y esto puede dar salida a todas
las instancias de ese actor. Por lo que voy a hacer clic derecho
en este pin de actores fuera. Voy a promocionar esto a
una variable y llamar a esto mis actores de
recogida. Es una matriz. Nuevamente, sé que no hemos
hablado de tipos de matrices, pero una matriz es esencialmente una
lista de un tipo de variable,
en este caso, son la recolección de ejemplo de
BP. Se va a almacenar a todos los que están dentro de aquí para que
podamos afectarlos de alguna manera. Y lo que les vamos
a hacer es arrastrar fuera de este pin y escribir
para cada bucle. Y de nuevo, tengo un video dedicado al
bucle para cada que viene. Entonces si no sabes
lo que es eso en este momento, no es un gran problema. Entonces por cada artículo de esta
lista que
guardamos aquí, vamos a hacerle
algo. Y lo que queremos hacer es por
cada elemento de esta lista, el elemento array, vamos
a obtener el nombre para mostrar. Y luego vamos a imprimir
esto en la ventana de nuestro jugador, engancharlo así.
Haga clic en este menú desplegable. Voy a cambiar esto
a unos textos de color rosa porque hace que
destaque un poco más. Entonces esencialmente lo que está
pasando aquí es en cuanto
presione la tecla única, vamos a hacer una
búsqueda de todos los actores de una clase dada que
existe en mi nivel. Y
los vamos a estar almacenando mientras estamos
jugando el juego en Runtime dentro de
esta variable array, todos
van a ser
de este tipo de variable,
mi tipo de recogida de ejemplo BP. Y luego para cada
elemento de esta lista, vamos a imprimir su nombre
para mostrar a la pantalla. Vamos a seguir adelante y
darnos una obra de teatro. Y una vez más, tengo mi mapa de pruebas de
nivel enumerado aquí. Se acres, incrementa ese número cada vez
que juego el juego. Entonces eso es lo que es ese número. No tienes que preocuparte por
lo que significa ese número. Justo aquí vamos. Haga clic y juega. Ahora nota en la parte superior izquierda aquí, al presionar la tecla unica, vas a ver que el flujo de ejecución pasa por aquí. Y enumera las cinco
instancias de mi ejemplo de recogida. Puedo hacerlo una
y otra vez y otra vez. Sólo te estoy haciendo spam
ahora mismo. Ahora si ya sabes aquí atrás
en mi Nivel Blueprint, si hago clic en mi lista de
actores de recogida aquí en el editor. Bueno, aquí
no hay nada. Una vez más, estamos poblando el contenido de esta
variable durante el tiempo de ejecución, lo
estamos capturando
dentro de esa variable. Así que hagamos algo fuera
de los dos eventos aquí. Vamos a fijar la vida útil
del centro comercial Shelley. Entonces, una vez que tengamos una referencia
a esa lista de actores, entonces
puedo agarrar esa lista de
actores, arrastrarla y soltarla. Saquémoslo de esto. Voy a escribir
para cada bucle, vamos a hacer algo
por cada elemento de esa lista. Y lo que vamos a hacer es fuera
de los elementos de la matriz. Entonces esto es por cada
elemento de esa lista, voy a establecer su vida útil. Nuevamente. Cada uno de estos tiene
una propiedad de vida dentro de ellos que podría afectar. Voy a cambiar esa
vida para que sea de dos segundos. Muy bien, y déjame
encoger esto un poco. Tengo mis mapas de prueba establecidos como mi opción de depuración.
Voy a hacer clic en Play. Permítanme simplemente mover esta
ventana de juego y
aquí abajo un poco, presionando la tecla única para poblar
esa lista de variables. Ahora se ha poblado. Así que cuando presiono las
dos teclas, uno a ido. Entonces ahí todos lo tienen. Algunas de las muchas maneras en que
podrías ir sobre la creación referencias de objetos en
tiempo de ejecución
dentro de tu plan de nivel. Hablamos de cómo
hacer eso fuera de un actor de desove del nodo de función de
clase. También al solapar
un volumen de disparador, también
podríamos golpear otro objeto así
que lo haría. Además, hablamos de
cómo hacer esto fuera de un, conseguir todos los actores de la función de
clase. Así es como se puede
conseguir múltiples actores. Hay otras formas de estar seguro, pero ojalá esto
les dé una grilla, lo siento, chicos, que
lo hagan todo por este video. Nos vemos en la siguiente.
20. Clase BP: referencias de objetos de tiempo del diseño: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender
a
crear referencias a objetos de nivel dentro
de un Plan de Clase. Ahora al hacerlo,
podremos escribir guión dentro un blueprint
de clase que
puede afectar a objetos de nivel, las cosas se colocan aquí en nuestro nivel. Este es un truco realmente práctico
para conocer e irreal para crear un sistema de ajuste simple por
nivel. Así que vamos a estar
haciendo eso, aunque sólo un poco de
un descargo de responsabilidad aquí, este va a ser un sistema de ajuste súper
simplificado y estoy usando cotizaciones aéreas aquí. De acuerdo, vamos
a empezar en nuestra carpeta de
resumen de scripts de contenido. Y encima en algún espacio vacío, voy a hacer clic derecho
y voy a crear una nueva clase de blueprint. Esto se va a basar en una clase de actores porque
vamos a estar colocando esto dentro
de nuestro nivel. Por lo que voy a estar nombrando a
este subrayado BP L V, que va a representar ajustes de subrayado de
nivel. Entonces voy a hacer doble
clic en esto para abrirlo. Y voy a añadir
un componente aquí, y voy a añadir un
cartelera componentes. En este cartelera componentes
por defecto nos da este tipo de cabeza de dragón
tipo de icono de Sprite. Esta es la con la que
voy a rodar. Podrías cambiar esto
para ser otra cosa, pero esto va a designar
en mi nivel que hey, este es tu actor de
ajustes de nivel BP. También voy a
hacer de esto la raíz de esto porque quiero
deshacerme de ese icono de raíz de
escena predeterminado. Así que déjame arrastrar y soltar
esto justo encima de ahí. Eso
lo va a convertir en la raíz y por lo tanto el único icono IC. Por lo que ahora si coloco
esto a mi nivel, puedo ver este pequeño icono de cabeza de
dragón. Sí, las
cabezas de dragón van a representar mi configuración
de nivel con el
fin de que el panel Detalles. Si haces una búsqueda de tablero de
facturas y otra vez, tienes
que tener esos
planos de configuración de nivel seleccionados. Puedes bajarlo a la escala de cartelera
del editor. Voy a cambiar esto
para que sea algo así como diez veces el tamaño habitual. Sólo para que esto
realmente se destaque. Este actor no se verá
cuando juegues el juego, pero por algo así como
un actor de ajustes de nivel, me gusta hacer esto
muy prominente, muy fácil de ver. Y de nuevo, no se
ve eso en el juego, así que ahí no se preocupe. Muy bien,
lo siguiente que vamos a estar haciendo es crear una variable dentro de nuestro blueprint de
ajustes de nivel aquí. Entonces bajo la sección de variables que se encuentra dentro del panel Mi
Blueprint, variables. Además, vamos a agregar
una variable llamada Música. Y vamos a cambiar
el tipo de variable aquí de un booleano a ambiente. Sonido, sonido ambiental
en referencia de objetos. Ahora más en el
panel Detalles, dice hey, compilar esto para establecer
un valor predeterminado. Entonces voy a hacer eso. No obstante, voy
a dejar esto en blanco. Vamos a configurar esto
dentro de nuestro editor de niveles con el
fin de poder establecer esta variable particular
desde el editor de niveles, ya sea
tengo que hacer click en este pequeño ícono de globo ocular cercano o revisar esta casilla donde
dice instancia editable. ves en este momento si
iba a volver a mi editor de nivel con
este actor seleccionado, déjame simplemente salir. No veo Esta variable musical, exponerlo todo dentro de mi editor. No obstante, si o bien hago
clic en este ícono del globo ocular, que hace lo
mismo que marcar esta casilla editable de
instancia. Y yo compilo eso
y lo guardo. Ahora aquí de vuelta en mi
editor de niveles que ha sido expuesto aquí en el
panel Detalles dentro de mi editor de niveles. Entonces lo que esto
me está permitiendo hacer es establecer el valor de esta variable aquí en el editor
a algún actor. En el editor, podría
hacer clic en este cuadro desplegable. Y puedo ver que
no hay nada aquí, sin embargo. Pero hay este actor de pick de cuentagotas de
escena
que
me permitiría escoger un archivo de sonido
que existe en mi nivel. Así que sigamos adelante y
busquemos un sonido para tocar. Voy a seleccionar aquí mi carpeta de
contenido. Y voy a usar
la opción de filtros. Y voy a
buscar bajo sonido. Y haremos una búsqueda archivos de onda de
sonido
que buscarán cualquier archivo de onda de sonido en
cualquier lugar dentro mi carpeta de contenido o
cualquiera de sus subcarpetas. Quiero encontrar esta música de
iniciación. Así que simplemente voy
a arrastrar y soltar esto a mi nivel, así. Ahora si iba a saltar y jugar nuestro juego,
en realidad escucharlos
música se escapó. Y la razón de
eso es porque nuestra música de arranque, déjame simplemente, con esa seleccionada, activar aquí
mi viewport y presionar
la tecla F para enfocarme en ella. Mi música estrella en
el panel Detalles tiene una propiedad para auto
activate comprobada. Voy a comprobar eso
por el momento. Y ahora si toco, no
escucho esa música de nivel reproduciendo, presionando de nuevo Escape. Entonces lo que quiero hacer ahora está en el lado de mi configuración de
nivel BP aquí, quiero establecer el valor de mi variable musical a
esa pieza musical. Entonces aquí vamos. Voy a escoger
actor de escena. Voy a seleccionar a este actor de sonido
ambiental. Y ahora va a
tragar esa música estrella dentro de mi ajuste de nivel BP. Entonces eso está todo bien y bueno. No obstante, dentro de
mi configuración de nivel BP, no
tengo ninguna escritura que realmente diga eso para jugarlo. Puedo cambiar eso
yendo al Gráfico
de Eventos y haciendo
algo fuera de evento. Empieza a jugar aquí. Permítanme simplemente eliminar a
estos dos actores más. Por lo que ahora puedo arrastrar
en una referencia a mi variable musical aquí,
clic izquierdo, arrastrar. Vamos a conseguirlo. Y si arrastro fuera de aquí
y escribo la palabra play, puedo reproducir los componentes de audio. Tan larga historia, corta, si arrastras fuera de la música, esa variable, la variable de
sonido ambiental ahí mismo, traerá este
componente de audio automáticamente. Podemos fijar un retraso. Voy a hacer clic derecho
y algún
espacio vacío y escribir en retraso. Por lo que no escuchamos
esto de inmediato si también lo
conectamos por aquí. Entonces digamos después de dos segundos, comenzaremos en el inicio mismo de
esta pista musical. Vamos a compilar y guardar para
asegurarnos de que nuestro
guión sea todo bueno. Y si juego después de dos
segundos, no juegas eso. Vamos a probar otro
ejemplo aquí rápidamente. Por aquí en nuestra sección de
variables, voy a hacer click en
este botón Plus. Y voy a teclear la luz
direccional como nombre. Me va a dar sonido
ambiental como el tipo variable porque eso fue
lo último que creé. Quiero cambiar eso. Y voy a cambiar esto
a una luz direccional, objeto de luz
direccional,
no la referencia de objeto de
luz direccional componente. Ahora, una vez más, si
compilo aquí, esta es una variable vacía. No hay nada dentro de aquí. Pero también una vez más, si reviso esta casilla editable de
instancia, eso hará que este
ícono del globo ocular vuelva a cobrar vida, estos hacen lo mismo. Y compilo esto y
vuelvo a mi editor de niveles. Ahora he expuesto esta variable al editor
de niveles una vez que tengo mi configuración de nivel BP
aquí seleccionada. Ahora la razón por la que
puse esto para que quede expuesto es porque cuando
creamos nuestro nivel de mapa de prueba, sé que por defecto tenía un actor de luz direccional
ya en este nivel. Es decir, este tipo ícono de la luz solar con esta flecha blanca
colgando de ese tipo. Entonces lo que puedo hacer es con mis
planos de configuración de nivel seleccionados. Puedo poner mi
luz direccional dentro de
mis ajustes de nivel BP para estar hablando con este actor
en particular. Así que déjame hacer clic en el cuentagotas
justo aquí y mira. Sabe que estos
objetos no son válidos. No obstante, eso es válido. Ninguno de estos otros son no, pero eso es un actor de luz
direccional. Para que podamos establecer ese. Boom, ahora está configurado también. Volvamos a
nuestra configuración de nivel BP. Y si arrastro y suelto esto
en nuestros gráficos de eventos, saquen eso de esto, voy a arrastrar
y escribir en sets. intensidad establecerá aquí la intensidad de nuestro componente de luz, porque la luz direccional
consiste en un componente de pierna. Y vamos a establecer nuestra
intensidad aquí para, probemos un valor de decir, 500. Simplemente continuando el flujo
de ejecución justo después nuestro inicio de juego y luego el retardo
de dos segundos. Entonces después de dos segundos, vamos a escuchar
nuestra música kickin. Ahí está presionando esa tecla Q
donde eso es útil. Entonces también vamos
a establecer la intensidad de
nuestro actor de luz direccional o guión
compilado se ve bien. Vamos a seguir adelante y jugar. Se puede ver que no
sólo escuchamos la música. Entonces estos son algunos ejemplos bastante
extremos aquí, pero hemos creado un actor de ajuste de nivel muy
básico. Y observa el poder aquí. Podría arrastrar y soltar este actor de
ajuste de nivel en otros niveles también y establecer una pieza de
música
única y unas luces
direccionales únicas. Siempre y cuando apunte
a una luz direccional para esta variable y un
sonido ambiental para esta variable musical. Entonces tienes que tener
estos en tus niveles. Bueno, whoops, actor
principal direccional en actor de música. Pero así es como estamos estableciendo objetos de
nivel de actores de nivel dentro de nuestra configuración de nivel BP. A Class Blueprint, chicos que
lo van a hacer todo por este video, veremos en el siguiente.
21. Clase BP: Ejecutar referencias de objetos de tiempo: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es
aprender a crear
referencias a objetos de
nivel dentro de un Plan de
Clase en tiempo de ejecución, es
decir, mientras
jugamos el juego. Ahora esto es realmente útil cuando, por
ejemplo, quieres que tu personaje interactúe
con algo en tu mundo. Y luego quiso hacer algo
a esa cosa con la que has
interactuado. Muy bien, para presumir este ejemplo que tengo
para ti aquí hoy, voy a estar poniendo
algunas cosas dentro de nuestro blueprint
ThirdPersonCharacter, esto funcionará dentro de una primera persona
carácter también. Pero una vez más, este
es el personaje que estamos usando para este proyecto. Entonces adelante y haz doble
clic en esto para abrirlo. Pasemos a la pestaña
viewport porque vamos a ver un componente
aquí en un poquito. Vamos a añadir un componente nuevo en
nuestra lista de componentes. Vamos a agregar componentes de
una flecha. Adelante y da clic en eso. Y voy a llamar a esto
mi punto final de trazado de línea. Y con esos
componentes seleccionados, la ubicación x para esto, voy a establecer para ser 300. Unidades irreales golpean Enter. Y si un poco barrido sobre, manteniendo pulsado el
botón derecho del ratón aquí, mi ventana gráfica, he configurado mi
componente de flecha para que esté fuera delante de mi personaje
aquí por 300 unidades irreales. Ahora lo que pretendemos hacer aquí es que vamos a estar enviando una línea invisible al espacio usando este componente
para ayudarnos aquí, vamos a comprobar para ver si esta línea invisible
choca con cualquier cosa. Y si lo hace, vamos
a averiguar qué fue esa cosa que nos golpeó para que podamos
afectarla de alguna manera. Al hacer esto, podemos crear una referencia de objeto en tiempo de ejecución
mientras el juego se está ejecutando. Así que saltemos
a nuestro Gráfico de Eventos. Voy a
entrar a algún espacio vacío. Y por defecto, planos de clase de
caracteres
sí reconocen los eventos de entrada. Así que voy a mantener presionado, o mejor dicho Haga clic con el botón derecho
y escriba la tecla 0. Por cierto, no todos los blueprints de
clase reconocen
eventos de entrada por defecto, pero la clase de caracteres sí. Fuera de presionar la tecla 0. Vamos a traer
un nodo de función llamado line trace por canal. Hay muchos nodos de función
traza diferentes. El que buscamos
es trazado de línea por canal. Ahora camino más tarde en el curso, hablaremos
de algunas de estas huellas. Y esto va a ser mucho
más avanzado que en donde estás si estás
empezando con planos. Pero la naturaleza circular de
aprender los planos de Unreal
Engine es que para saber sobre esto, hay
que saber sobre eso. Y para saber de eso, necesitas saber sobre esto. Entonces si no entiendes esta parte aquí mismo,
eso está completamente bien. Vamos a llegar a
algunos de estos conceptos. Sólo aguanta conmigo. Esto es solo
presumir de una técnica para obtener una referencia de
objeto en tiempo de ejecución. Muy bien, entonces este nodo
va a enviar un rastro de línea invisible
a nuestro mundo aquí. Entonces, ¿dónde queremos
iniciar este rastro? Bueno, ¿qué tal si empezamos
en nuestra ubicación de actores? Así que voy a
hacer clic derecho y algún espacio vacío Escribir obtener ubicación de actor. Y esto
devolverá la ubicación de nosotros mismos o de nuestros planos de
ThirdPersonCharacter. Ahí es donde
vamos a empezar esto. ¿ Dónde vamos a terminar con esto? Bueno, por eso
incluí este componente de
punto final de trazado de línea. Voy a arrastrar y soltar una referencia a esto
en nuestro gráfico. Y luego me voy a arrastrar
fuera de esto y quiero conseguir la localización mundial
de estos componentes. Así que esencialmente
voy a estar empezando por
este rastro de línea invisible en nuestro mundo en la ubicación de
nuestro ThirdPersonCharacter. Y se va a
extender hasta
nuestra línea en los puntos finales de traza. Así que de aquí a aquí, acuerdo, moviéndonos por aquí, lo que vamos a
hacer es este atuendo. Esencialmente nos va
a dar muchos resultados
diferentes sobre
lo que esto sí golpeó. Y puedo romper los resultados de
éxito aquí
escribiendo un resultado de golpe de breakout. Haciendo click aquí en esta flecha hacia abajo. Por lo que este rastro invisible, esta línea invisible
siendo gritar al mundo puede darnos todo tipo
de información, incluyendo lo que fue
el actor que un hit. Puede dar salida a toda
esta información. El que buscamos tener
salida es el hit actor. Ahora, lo que podemos hacer fuera de
esto es hacer clic derecho en esto. Podemos promover esto
a una variable. Hagamos eso. Y mantengamos el nombre de
Hit Actor por aquí. Y se puede ver que
el tipo de variable es sólo un actor genérico. Ahora arriba de aquí, voy a arrastrar un cable fuera
de esto y escribir en rama. Y voy a enchufar nuestro valor de retorno aquí
a la condición. Esencialmente lo que vamos
a estar diciendo aquí es que sólo queremos seguir
más allá de esta rama. Si en efecto fuera cierto
que golpeamos algo, sólo
vamos a ejecutar lo que está más allá de esta rama aquí. Si es cierto que
nuestro trazado de línea sí golpeó algo,
esa es nuestra condición. Así que vamos a arrastrar un cable fuera de
este tipo en el sonido de reproducción a D. Vamos a tener un
poco de retroalimentación de sonido para si lo hicimos de
hecho golpea algo. Vamos a configurar nuestro sonido
aquí para que sea cualquier cosa, pero voy a configurar esto
para que se haga clic en un botón. Seguro. Iremos con
eso. Eso suena bien. Fuera de esto, voy
a enchufar este flujo de ejecución para poner a
nuestro exitoso actor. Entonces, de hecho, si lo
hicimos algo, si y solo si
le hicimos golpear algo, vamos a establecer el contenido de esta
variable si compilo, nota justo aquí
el valor predeterminado es ninguno sólo si nuestro
trazado de línea golpea algo. Bueno, establecemos el contenido de esta variable y lo
vamos a estar haciendo mientras jugamos el juego. Fuera de esto, vamos a
extender un cable hacia fuera y escribir en print, string. Y fuera de nuestro Hit Actor. Simplemente arrastremos fuera de aquí
y tecleemos get display name. Entonces vamos a imprimir el nombre
de la cosa que escondimos. Así que permítanme enmarcar
este guión aquí. Entonces si quieres
pausar el video aquí y conseguir un buen
gander en eso, puedes ver lo que hemos construido. No se puede mantener, no puedo obtener
el nivel de zoom correcto aquí. Ahí vamos. Un ajuste más que
sería útil aquí para establecer nuestro Tipo de Depuración de Dibujar aquí
para que sea de duración. Al hacer esto, cuando
presionemos la tecla 0, vamos a ver un
poco de una línea ahí, una línea de debug, si se quiere, siendo disparada al mundo. Por lo que podemos ver que
este canal traza lo
deja a la visibilidad. Por ahora ese es nuestro canal de seguimiento
predeterminado. Este es esencialmente un
canal de nombre que vamos
a estar filmando esta
línea desde el más allá. Muy bien, y con esto, en realidad
podemos
compilar esto, guardarlo. Vamos a saltar y jugar para ver si podemos ver una
línea siendo cerrada. Nuevamente una vez presionamos una tecla 0. Ahí, ves que esa
línea roja está siendo disparada. Esa línea roja que está siendo disparada. Ahora la razón por la que estás
viendo la línea roja siendo disparada al mundo, pero no estás
viendo ese flujo de ejecución en mi guión arriba
en la parte superior es una vez más, porque no he configurado
mi opción de debug. Entonces necesito jugar primero. Y una vez que esté tocando, eso va a despertar a mi
personaje al mundo, entonces puedo configurar mi BP
ThirdPersonCharacter. Permítanme traer en esa ventana de
juego una vez más. Entonces cuando presiono esa tecla 0, puedo ver ese flujo de
ejecución yendo en este momento. No estoy golpeando nada. Por lo que se ve que el flujo de ejecución se detiene
en la sucursal. No obstante, si voy a
una silla objeto, escuchaste el sonido en la
parte superior izquierda y mi ventana de juego, imprime el nombre de silla
S M, cubo, ejemplo pickup. Y no está pasando por esto. Es eso de golpear a
esta bancada en absoluto. Y la razón por la que no está
golpeando a este banquillo es porque esta bancada Static Mesh
no tiene ninguna colisión en ella. Entonces es por eso que se
está saltando eso. Entonces algo que hay que
tener en cuenta ahí. Mi muro de
Guión de Construcción también. De acuerdo, Así que
todo esto está bien y bueno. Estamos estableciendo esta
referencia de objeto en tiempo de ejecución, pero vamos a afectar esta referencia de
objeto alguna otra manera una vez que hayamos
capturado una referencia al mismo. Así que vamos a poner un poco de guión adicional
abajo aquí. Voy a hacer clic derecho
y algún espacio vacío. Vamos a traer el botón de entrada
nueve. Ahí vamos. Y fuera de esto, voy a traer
a nuestro Hit Actor. Vamos a conseguir eso. Y luego vamos a arrastrar un cable
fuera de este tipo en es válido, esta versión de signo de interrogación. Y si se trata de un objeto válido, ¿
significa que existe? Si es válido, vamos a arrastrar
fuera de este por dentro sido Destroy Actor. El objetivo. Queremos
ser nuestro Hit Actor. Eso es lo que
queremos destruir. Haga doble clic en eso para
crear un nodo redirigido. Poca limpieza ahí. Así que intentemos enmarcar
este script justo por aquí, ambos scripts, para que puedas verlos trabajando. Déjame seguir adelante y jugar. Trata de encogerse un poco por esta
ventana de juego aquí. De acuerdo, si fuera a seguir
adelante y presionar la tecla nueve en este momento,
lo que notarán, puede ver que está pulsando
fuera de la llave nueve sobre el
lado izquierdo como spam en eso. Pero No está avanzando más allá del nodo
es válido porque no
hay un actor de acto de hit válido
que sea una variable vacía. No obstante, presionemos
la tecla de flecha. Ahora he comprobado
para ver si eso es una silla estableciendo
esa variable. Ahora cuando presiono el Nike, el hit actor ha
sido poblado. Y boom, se va adiós. Caminando hasta este cubo, presionando la tecla 0 que ahora se ha configurado
como mi nuevo Hit Actor. Presionando el Nike, boom,
eso va adiós. Ahora es importante
señalar aquí que son Hit Actor es sólo un actor genérico. No estamos seguros de qué objeto
golpeamos y así que no podemos modificar las variables se denominan funciones específicas de esta referencia de
objeto. Si quisiéramos hacer eso, podríamos arrojarlo este objeto para asegurar que fuera
de un tipo dado. Ahora, una vez más, esto
va a ser un poco más avanzado para donde
estás en este momento, estaremos hablando de casting más adelante en el curso. Pero sólo para mostrar brevemente cómo podrías hacer
algo como esto, solo
voy a
modificar este guión aquí un poco más. Vamos a probar algo como
esto fuera de mi Hit Actor. Yo también voy a lanzar. Haremos ejemplo de recogida. Vamos a echar
y revisar para ver si eso fue un ejemplo de recogida. Y si es así, vamos a escalar
este tipo a escala mundial. Estableceremos la escala mundial
de nuestra colisión de esfera, a la
que están unidos todos
los demás componentes. Y vamos a establecer aquí nuestra
escala mundial para que sea, bueno digamos, tres veces más
grande y la x, y, y
zAsí que una vez más, nuestro trazado de
líneas es lo que
va a estar poblando, creando una referencia a
nuestro Hit Actor variable. Si eso es válido,
vamos a revisar para ver si fue un ejemplo de plano de
recogida. Y si lo fuera, lo
vamos a
escalar tres veces más grande. Así que permítanme simplemente minimizar
así por aquí. Saltando y jugando, luchando la tecla 0. No quiero acercarme
demasiado a esto. Presionando la tecla 0 ahora mismo. Mi actor de éxito ya ha sido establecido. Aún así. Ya se ha establecido. Déjame simplemente retroceder para que no lo superponga
accidentalmente
cuando escalo esto. Ahora voy a presionar tecla F9. Y wallah, se establece la escala mundial de eso
para ser mucho más grande. Muy bien, ahí lo
tienen, chicos. Existe un caso de uso muy
práctico de una referencia de objeto en tiempo de ejecución. Nuevamente, hay otras
formas de hacer esto, pero un trazado de línea es
una forma súper útil, especialmente dentro de un plano de
personaje. Eso hará para
ofrecer a éste chicos, nos vemos en el siguiente.
22. Referencias de objetos fundidos: Bienvenidos de vuelta a todos. En este video, nuestro objetivo es aprender
a lanzar a un objeto con el fin de crear
una referencia a algo. Entonces, antes que nada,
¿qué es el casting? El casting es una forma de
verificar si un determinado tipo de objeto es de una clase
especificada. Ahora me viste hacer esto en
mi recogida de ejemplo de BP aquí. Estábamos comprobando para ver qué se está superponiendo aquí nuestra esfera de
colisión, esa es esta esfera aquí mismo. En este caso, estábamos comprobando para ver si
ese otro actor, si la cosa se solapa era un ThirdPersonCharacter que estábamos echando para ver si ese era
el ThirdPersonCharacter. Ahora, si es de un tipo de clase
especificado, en este caso, el
ThirdPersonCharacter. Podemos entonces capturar de inmediato ese objeto como referencia. Y lo que es más importante, hacer cosas
específicas a ese objeto. Puede haber
funciones, variables o componentes dentro de nuestra clase específica
que sean únicos a ella. Entonces con eso, quiero decir, si capturamos aquí una referencia a nuestro
ThirdPersonCharacter, si esto es cierto, podemos capturar referencia a
nuestro ThirdPersonCharacter. Eso significa ThirdPersonCharacter. Podemos hablar con los
componentes aquí. Tenemos alguna variable
dentro de aquí. Podemos modificarlas de alguna manera. Podemos modificar algunas de
las variables predeterminadas de clase dentro de aquí. Cosas como
saltar max count, que es una divertida con
la que jugar. Sugerencia, pista, puedes duplicar, triplicar saltar con ese parámetro, todo tipo de cosas. Por lo que nota, este tema de casting es un tema del que
vamos a hablar mucho más en la sección de
comunicación Blueprint más adelante en este curso. Pero para este video, simplemente
vamos a
hablar de cómo crear referencias de
objetos
echando a una cosa dada. Muy bien, vamos a
presumir algunos ejemplos aquí de vuelta en mi mapa de pruebas de nivel. En primer lugar, quiero
comprobar que tienes un actor de inicio de jugador
aquí en tu nivel. Y si no lo haces,
puedes venir debajo tu pequeño botón aquí para agregarte
rápidamente a tu proyecto. Y en la
categoría de todas las clases aquí, puedes encontrar un actor de inicio de
jugador, ese tipo justo ahí, arrastrar y soltar uno de esos. Asegúrate de tener uno
de esos en tu nivel. Y luego si
vienes justo aquí, tienes estos
tres pequeños puntos para cambiar tu modo de juego
en la configuración del lugar. Aquí es donde se puede
cambiar para reproducirlo puerto de vista
seleccionado o
una nueva ventana del editor. Por cierto, sin embargo, quiero llamar su atención este jugador de desova en la actualidad, tenemos este ticked, eso significa comprobado para engendrar a
un personaje jugador en nuestro inicio predeterminado de jugador que está en esta
ubicación de actor justo aquí. Podría cambiar esto, cambiar esto a la ubicación
actual de la cámara. Entonces dondequiera que esté en el
nivel, si hago clic en Jugar, podría desovar desde esta ubicación que estoy
mirando en este momento. No obstante, queremos que este
conjunto para fines de este video se inicie
por defecto del reproductor. De acuerdo, con eso,
vamos a crear algún
guión para capturar una referencia de personaje dentro
de nuestro Nivel Blueprint. Por lo que una vez más, puedes acceder a
tu Nivel Blueprint viniendo aquí y abriendo tus Planos de
Nivel. Boom. Ahora quiero hacer algo
fuera de Event Begin Play. Ahora, antes en este curso, creé un segundo gráfico de eventos
y lo nombré tipos de nodos. Y mencioné que sólo podemos tener un evento comience a jugar por
nuestros Planos de Nivel. Así que sólo voy a
eliminarlo de aquí y hacer todo este trabajo dentro de
nuestro gráfico de eventos base aquí, nuestro gráfico de eventos predeterminado, que actualmente está vacío. Entonces aquí voy a luego hacer
clic derecho y mecanografiar comenzar, jugar. Evento B en plaquetas. Adelante y agrega eso. Y luego voy a
hacer clic derecho. Y en algún espacio vacío, voy a escribir en el personaje
git player. Esta es una función realmente útil aquí
mismo que va a simplemente devolver el
personaje que tú, un solo jugador está jugando, como en este caso, el índice de
jugador es 0. Sólo tenemos un solo jugador, así que eso va a ser nosotros. Fuera de esto. Podemos arrastrar y escribir en
Cast to ThirdPersonCharacter. Si estás jugando con una
plantilla de personaje en primera persona aquí, puedes lanzar a un personaje en
primera persona. Vamos a echar a nuestro
bp un tercer personaje. Entonces lo que estamos haciendo aquí
es que vamos a conseguir a nuestro personaje jugador y
vamos a luego revisar, oye, es este un ThirdPersonCharacter que estás
controlando o es este algún otro personaje
que que habías asignado en la configuración de tu
proyecto? Y de nuevo, se
puede acceder a nuestra configuración de proyecto por aquí, configuración
del proyecto y
sobre mapas y modos. Bajo nuestro modo de juego seleccionado, podemos ver nuestra Clase de Pawn
Default. Actualmente, estamos incumpliendo una clase de personajes en tercera persona cuando estamos jugando a este juego. Pero esto es una especie de forma
de solo comprobar, oye, ¿ estamos realmente jugando como
un personaje de tercera persona? Ahora, aquí es donde realmente entra la
cosa, donde estamos usando
un elenco para crear una referencia de objeto aquí
mismo fuera de como personaje de tercera persona. Vamos a hacer
clic derecho en esto. Vamos a promover
esto a una variable. En cuanto hagamos esto, va a enganchar dos cables a esta
variable central aquí mismo. Entonces en nuestra sección de variables, se ha creado una nueva variable de carácter de tercera
persona que es un tipo que se le
ha dado. El nombre. Podemos cambiar esto. Sólo voy a cambiar
esto para ser Caracter Rough. Y luego voy a hacer clic derecho
en este nodo y dejando nodo un comentario y solo
llamaré a esto promovido. Así es como creamos
esta variable. Lo promovimos fuera de nuestro
comienzo de juego aquí. Vamos a capturar
una referencia a nuestro
ThirdPersonCharacter. Gran dulce. Eso significa que entonces podemos
hacer algo con él. Y es genial hacer
este tipo de cosas. A menudo fuera de un
evento comienza a jugar, porque una vez que lo
tienes referencia a un actor dado tipo
un objeto dado, entonces estás listo para ir. Puedes afectar de cualquier manera
que quieras. Así que voy a crear
algún guión aquí abajo para
luego afectar a nuestra referencia de
personajes. Vamos a hacer clic derecho en
algún espacio vacío. Y sólo voy a
escribir un número de clave. Vamos a escribir el
uno de los eventos Shelley. Y fuera de esto, voy a arrastrar en nuestra referencia de
personajes. Va a decir, ¿
quieres conseguirlo o configurarlo? Quiero conseguir una referencia a nuestro personaje jugador
y ofrecer esto. Voy a escribir en mi
viejo mundo de sets, escala 3D. Ahora, ¿qué queremos
poner aquí en 3D? Vamos a establecer nuestra malla. Y si entramos en nuestro
ThirdPersonCharacter Blueprint, estábamos hablando con este tipo de
aquí mismo con esos
componentes seleccionados. Nuestro personaje malla o persona, nuestro maniquí, si se quiere. Maniquí mujer, si quieres. Muy bien. Entonces cuando presionemos el wonky, vamos a establecer
nuestra escala mundial y no la dejemos en 0 porque entonces vas a desaparecer. Vamos 0.5.5.5. Y compile esto para asegurarnos de que nuestros
guiones se vean bien. Vamos a guardarlo. Entonces establecemos nuestra opción de
debug aquí a nuestros mapas de prueba para
que, esos son los scripts que
veremos disparando. Vamos a seguir adelante y jugar. En realidad déjame asegurarme de
que tengo este conjunto a la nueva ventana del editor. Regresa a mi Nivel Blueprint. Ahora, ya hemos creado esta referencia de personaje que
empezamos a tocar esto sí disparó. Pero si presiono la tecla
unica ahora mismo, verá que ese
guión efectivamente se ha disparado. He capturado esa referencia de
personaje fuera de Event Begin Play, y presiono la única tecla que
establece mi escala en 0.5. Ahora ya puedes ver que estoy
martillando la única llave. Ahora no va a seguir
configurándolo a la mitad del tamaño, la mitad del tamaño, la mitad del tamaño. Lo acabo de decir, ponlo a la mitad de su tamaño habitual justo ahí mismo. Entonces ese es un ejemplo de casting a nuestro
ThirdPersonCharacter, creando una referencia de objeto. Muy bien, probemos
otro ejemplo aquí. Esta vez no se utiliza
un personaje de jugador, un
personaje de tercera o primera persona. Voy a venir debajo mi botón aquí para
conseguir algo de contenido. Voy a añadir una esfera. Vamos a seguir adelante y añadir
una esfera a nuestro nivel. Voy a
levantarlo al aire. Y luego voy a establecer
un par de parámetros, uno en mi esfera aquí y
luego uno en esta malla de piso. En primer lugar, voy
a cambiar el nombre de mi esfera aquí simplemente haciendo clic
sobre ella y presionando F2. Y voy a llamar a
esto mi pelota de física. Eso ayudará a
compensarlo un poco. Se trata de un actor de malla estática. Y luego abajo en
el panel Detalles, quiero marcar una casilla
llamada simular física. Y bajo esta sección de física aquí está, simular la física. Ahora lo que esto va a hacer en
cuanto juegue el juego, esta pelota va a
caer al suelo. Vamos a seguir adelante y
haga clic en jugar aquí. Y se puede ver, whoops, quiero ir a, de hecho, no necesito
jugar el juego. Voy a
establecer brevemente esto para simular. Y en el momento
que lo haga, van a
ver que el bulto se cae al piso. Entonces la simulación está
ejecutando el juego, no jugar el juego, pero ahí viste los resultados. ¿ Qué pasa cuando se ejecuta
el juego sin jugar? Ese fue el modo de simulación. Ahora está atascado en el
modo de simulación ahora mismo voy a volver a la nueva ventana del editor. Cerca de ti vio
caer esa bola una vez más, turno y F1
me devolverá el cursor de mi ratón. Déjame salir de ahí. Vale, así que tenemos nuestro juego de pelota para simular física
que es importante. A continuación, adelante y selecciona aquí
tu malla de piso. Y lo que quiero hacer
aquí es que quiero
buscar algo llamado simular genera eventos de éxito. Y si vengo bajo mi sección de
colisiones aquí mismo, aquí hay una casilla de verificación
que estoy buscando simulación, genera,
golpeó eventos. Esta va a ser
una pelota simulada, lo que
significa que va a
tener física en ella. Simulación generar eventos de golpe para este piso significa que generará un evento hit
para un objeto simulado, también conocido como esta pelota de física. Por lo que es importante
que esta
casilla se compruebe lo que
vamos a estar haciendo. A continuación, vamos a estar
accediendo a nuestro Plan de Nivel. No obstante, quiero
asegurarme de que
tenemos nuestro piso seleccionado
aquí en primer lugar. Así que asegúrate de que tienes
tu piso seleccionado y en tu Nivel Blueprint. Pasemos a la
derecha aquí voy
a hacer clic derecho y
algún espacio vacío. Vamos a sumar un evento
por colisión de piso y vamos a hacer
en eventos de hit de actores. Después fuera de esto,
vamos a revisar para ver qué era el otro
actor. Me pegaron. Entonces si nos arrastramos fuera de esto, podemos lanzar también. Echemos a un actor de malla
estática. ¿ Por qué estamos echando a
un actor de malla estática? Bueno, estamos lanzando ante
un actor de malla estática porque nuestro balón de física aquí, si selecciono eso, el tipo de actores que esto es, es un actor de malla estática. Vale, vamos a saltar de nuevo a
nuestro Plan de Nivel aquí. Y una vez más,
promovamos esto a una variable haciendo clic derecho sobre ese
pin, promueve una variable. Y voy a cambiar el nombre de esto es pelota de
física así. El tipo es un actor de malla estática. Y simplemente imprimimos algunos
textos después de esto también. Voy a arrastrarme de esto. Podemos imprimir textos de cadena
o imprimir. Simplemente iré con
textos impresos en el campo de texto. Cambiaré esto
para golpear el suelo. Voy a hacer clic derecho
sobre esto y también dejar un comentario de nodo y
llamar a esto promovido. Muy bien, hagamos
algo aquí con una llave también.
Voy a hacer clic derecho. Vamos a traer una llave de dos a clave. Whoops, eso fue F2. Quiero decir, realmente podríamos
hacer esto fuera de cualquier cosa. Simplemente haré las dos llaves
porque eso es obvio. Y luego fuera de esto, queremos conseguir una referencia
a nuestro balón de física aquí. Así que vamos a arrastrar y soltar
esto en el gráfico. Vamos a conseguirlo.
Y luego fuera de este tipo
menos simplemente
en el material establecido. Queremos establecer un material en los
componentes de malla estática, así. Y diremos
que una vez presionemos el tubo y vamos
a cambiar nuestro material a, voy a escribir en oro. Puedes cambiar esto
a lo que quieras. Así que una vez más,
voy a asegurarme de que mi opción de debug aquí esté
configurada para mapa de prueba de nivel. Ir a seguir adelante y
pincha aquí en la obra de teatro. Resuelves ese fuego
justo arriba ya que
tengo la ventana agarrada aquí, puedes ver que lo agarré
perfectamente para que puedas ver ese pulso fluyendo por
el actor golpeó piso. Estamos lanzando a nuestro actor
estático Mitch. Estamos capturando nuestra pelota de
física ahí, cualquier variable estamos
creando una referencia a ella
y lo estamos imprimiendo a
la pantalla, golpear el piso. Y está imprimiendo
varias veces ahí. Una vez presiono las dos teclas, esto debe volverse oro macizo. Y ahí vas. Tienes una pelota de física
que se ha convertido en oro sólido. Se puede ver que está registrando
esos eventos de golpe de
nuevo, de nuevo mientras lo rodo
por el piso. Porque por supuesto,
¿por qué no lo haría? Muy bien, así que ahí lo tienes. Tienes un par de
instancias ahí de nosotros casting para crear una referencia de
objeto. Un montón de cosas más que
podríamos haber arrojado en figura. Podrías encontrar algo de
uso de esos. Eso lo hará todo
por este chicos, veremos en el siguiente.
23. Referencias BP: Bienvenidos de vuelta a todos. Estamos comenzando esta
lección aquí en Internet mostrando
un par de ejemplos de,
en este caso, en
pantalla de inventario de una Leyenda de Zelda, amplitud de lo salvaje. Y también quiero
presumir este ejemplo del HUD en
el juego de
Legend of Zelda, amplitud de lo salvaje. Entonces en irreal, si quieres
crear algo como medidores de
salud o mini-mapas
o mensajes dentro del juego, o en la pantalla de inventario, cualquiera de este tipo de cosas, necesitas crear un
widget blueprints. Entonces nuestro objetivo en este
video es
aprender a crear una referencia
a un Widget Blueprint. Entonces no vamos
a estar realmente afinando en cómo crear blueprints de
widgets. Si bien vamos a estar haciendo eso, eso es todo otro
rumbo hacia sí mismo. Pero una vez que hayas creado un activo
Widget Blueprint, ¿cómo se crea
una referencia al mismo? Estamos, vamos a estar
haciendo en este video es crear uno de estos activos. Sólo vamos a
poner un simple medidor de salud. No va a ser funcional.
Sólo vamos a aguantar a simple
me ayudó a ganarse su capucha. Ahora vamos a
crear una referencia a ella para que podamos
activarla y apagarla
bacterias en Unreal, vamos a empezar
creando una carpeta completamente nueva dentro
de nuestra carpeta de scripting, Voy a
hacer clic derecho en Nueva Carpeta. Voy a llamar a esto Widgets. Entonces dentro de aquí, voy a hacer clic derecho
sobre la derecha. Vamos a venir
bajo interfaz de usuario. Y queremos crear un activo Widget Blueprint en
el cuadro emergente que aparece, nos
va a pedir que
escojamos un widget de ruta. Todo lo que queremos hacer es seleccionar
este más común, el widget de usuario uno. Nuevamente, esto no va
a ser una lección sobre cómo crear cada aspecto de
un Blueprint Widget. Simplemente nombraré a este HUD de subrayado
WPP. Y luego haremos
doble clic en esto para abrir este activo Widget
Blueprint. Tan larga historia corta, lo que puedes hacer aquí es que puedes arrastrar y soltar
diferentes elementos, estos diferentes widgets desde
este panel de paleta justo aquí en esta ventana gráfica para
poner una pantalla de clases, un capó, una pantalla de menú, una notificación de texto,
todo este tipo de cosas. Vamos a crear
un HUD muy básico, teniendo una barra de salud. Y vamos a
empezar agregando un widget de panel de lienzo. Entonces bajo el panel del paladar, voy a hacer una
búsqueda de un panel de lienzo. Panel de lona es esencialmente
un tablero de tachuelas va a ser el widget en el que podemos
pegar otros widgets. Así que voy a arrastrar y
soltar esto justo aquí. Boom, vemos este
contorno verde más en la jerarquía. Muestra un listado de
todos los widgets que
has agregado a tu
Widget Blueprint aquí. Por lo que actualmente tenemos este panel de
lienzo y
dándonos un tablero tecnológico gigante, si se quiere, para
pegarle las cosas. Genial. A continuación vamos a añadir una caja
horizontal componentes. Horizontal Box es simplemente una caja vacía que puede
contener otros widgets. Voy a arrastrar y soltar esto en la parte superior izquierda aquí
porque quiero que mi HUD tenga un metro de clases en la
esquina superior izquierda de mi pantalla. Ahora, actualmente es este
tamaño, este tamaño predeterminado. No obstante, voy a ajustar
esto en tan solo un segundo aquí, pero sólo por el bien de
extender esto, voy a cambiar mi talla x aquí con esta seleccionada
para ser algo sobre, no
sé, 400, Vamos 500, probablemente un poco largo,
algo así. Nuevamente, esto es sólo una caja vacía que puede albergar otros widgets. A continuación voy a encontrar un widget de texto justo aquí arriba
bajo la sección común. Y podría arrastrar y
soltar esto encima de mi caja horizontal para tener esto contenido dentro de ella de esa manera. O simplemente puedo arrastrarlo
y soltarlo
aquí dentro de mi caja
horizontal como esta, puedes ver esta
pequeña sangría aquí mostrando esa relación. Por lo que actualmente este
widget de texto está contenido dentro de nuestro cuadro horizontal. Voy a cambiar el texto aquí. Entonces con esto seleccionado más
en el panel Detalles, voy a cambiar
este texto que dice textblock a simplemente salud. Voy a darle un par de espacios ahí porque voy a añadir un medidor de salud, si se quiere, derecho a
la derecha de esto. Por lo que golpear Enter, Boom va
a cambiar eso a Salud. A continuación, quiero que un metro vaya
justo a la derecha aquí. Puedes agregar esto agregando
un widget de barra de progreso. Entonces voy a
volver a arrastrar y soltar esto dentro de mi caja horizontal. Ahora en el momento que haga
esto, va a aparecer como
esta pequeña losa grisácea, si se quiere, que no se
ve en absoluto como un metro. Entonces la forma en que podemos cambiar
esto es con este seleccionado, este widget de barra de progreso seleccionado sobre en
el panel Detalles, podemos cambiar el
tamaño para ser un relleno. Boom, ahí vas. Ahora para realmente llenar esto, tenemos este color de relleno y opacidad que
actualmente se establece en azul. Podrías hacer click sobre esto
para cambiar el color. Me voy a ir verde, algún tono de verde.
Claro, eso es bueno. Pero este por ciento
aquí mismo va a determinar cómo está Rellenar
esto actualmente. Está 0% lleno. Por lo que voy a hacer clic izquierdo
y arrastrar y
se puede ver cómo
puede ir esto entre 01. Entonces esencialmente esto va
de una escala 0 a 1, 0 a un 100%. Y puedes elegir
tu tipo de relleno de barra, izquierda a derecha, arriba y
abajo, de derecha a izquierda. No obstante lo que quieras hacerlo, voy a dejar ahí
el defecto. Esto va a funcionar muy
bien para mí. Entonces lo que esto creó,
simplemente
voy a compilar esto.
Vamos a salvarla. Impresionante. Tenemos este Widget
Blueprint todo creado. Lo siguiente que vamos a
hacer aquí es crear algún script que va
a crear este widget. Y luego vamos a
crear una referencia a ella. Lo vamos a añadir
a nuestra viewport, lo que
significa que va a
aparecer dentro de nuestro juego. Y luego vamos a añadir
un poco de guión para
que una vez que tengamos esta
referencia a nuestro HUD, podamos activar y desactivar la visibilidad
de este HUD. Voy a estar usando el ThirdPersonCharacter
Blueprint para esto. Ahora, si estás creando
algo como HUD, típicamente no usarías el blueprint de personajes
para mostrar u ocultar el HUD. Pero como ese es un blueprint que hemos
usado hasta este punto, lo
voy a utilizar sólo
con el propósito de mostrar cómo crear una referencia
a un Widget Blueprint. Así que abre tu
ThirdPersonCharacter Blueprint. Si olvidaste dónde está eso
dentro de tu navegador de contenidos, puedes encontrarlo aquí bajo planos de
tercera persona. Dentro de aquí, salta a la Gráfica de Eventos. Y queremos hacer algo
fuera de evento empezar a jugar. Por lo que voy a
hacer clic derecho Escribir, comenzar a jugar, incluso comenzar a planear. Boom. Y muchas veces esto,
vamos a arrastrar un cable y escribir en create widget. Esto va a
decir actualmente construido ninguno porque no
tenemos ningún widget establecido
aquí en el que crear. No obstante, si
seleccionas esta clase, poco desplegable ahí, podemos encontrar nuestro Widget Blueprint
que acabamos de crear. Ahora una vez que seleccionamos
esto, lo configuramos. Va a decir, está bien, ese es el Widget Blueprint
que quieres crear. Genial. Pero aún no hemos salvado
esto a una referencia. Así que vamos a hacer clic derecho en
este valor de retorno aquí. Promover esto a una variable. Hacemos esto. Se va a crear
esta variable más en mi sección de planos. Va a ser
del tipo WB P HUD. Y voy a nombrar
esto apropiadamente. Nosotros BP HUD. Como he hecho antes,
voy a hacer clic derecho sobre esto. Y en el área de comentarios nodo, sólo
voy a dejar
esto como promovido. Así es como creamos esa
referencia a nuestro widget HUD. Y entonces lo que vamos
a hacer es arrastrar fuera de aquí y escribir
Agregar a Viewport. Entonces esencialmente lo que
estamos haciendo aquí es al comenzar el juego, una vez que nuestro personaje es
engendrado en el juego este evento comienza el juego se dispara. Vamos a crear
este Widget Blueprint. Vamos a crear
una referencia a este Widget Blueprint
dentro de esta variable. Entonces lo va a capturar
dentro de aquí. Entonces
lo vamos a sumar a la viewport, lo que
significa que debe
aparecer en nuestro juego. Vamos a seguir adelante y
compilar esto para asegurarnos que nuestro guión sea
todo bueno y lo sea. Y entonces voy a
jugar solo para verificar que veamos este HUD en el juego. Y ahí vas. En la
esquina superior izquierda de la pantalla, se
puede ver que tenemos nuestra barra de salud que no funciona. Muy bien, ahora desde que
tenemos una referencia a esto, vamos a crear un pequeño guión
para mostrar u ocultar esto. Dentro de aquí. Voy a hacer clic derecho
y algún espacio vacío. Voy a traer, vamos a hacer las cinco llaves y-nada. Y vamos a traer una referencia
a nuestro Widget Blueprint, arrastre y suelte esto. Vamos a
sacarlo de esto. Voy a
arrastrarme y voy a buscar una función llamada
establecer visibilidad. Y voy a
golpear Control C y
Control V para crear un duplicado, una copia de eso, y
luego una pasta de la misma. Este será nuestro objetivo. Cuando presionamos esto, queremos que esto se oculte. Así que establece
aquí la visibilidad para que se oculte. Y luego cuando lo
sueltemos, vamos a decirle a este widget
que vuelva a ser visible. Ahora, ¿cómo sabía siquiera que esta función
estaba disponible para mí? Bueno, muchas veces, de vuelta aquí
en nuestro Widget Blueprint, si miras los diversos widgets que
has agregado a tu jerarquía, puedes ver todas
tus propiedades en la mano derecha panel por
aquí, el panel Detalles. Y uno de ellos para
este widget en particular es la capacidad de
mostrarlo u ocultarlo. Como se puede ver en este momento,
tengo esta barra de progreso, visible o no visible. Todo esto
se puede mostrar o no mostrar. La visibilidad de esto puede
ser visible o no visible. Por aquí, estoy diciendo, Hey WPP, cuando estoy presionando la tecla cinco,
quiero esconderte. Cuando lo suelte, quiero que se muestre una vez más y
podemos hacer esto porque capturamos una referencia a nuestra compilación de Widget Blueprint. Esto comprobará para asegurarse de
que su guión se vea bien. Digamos esto. Voy a seguir adelante y jugar. Ahí. Ya lo puedes ver. Voy a presionar la tecla
cinco y sostenerla. Ahora está oculto. Y cuando lo suelto, se muestra una vez más. Entonces ahí los chicos lo tienen. Este no fue un video sobre cómo crear un Widget
Blueprint que de nuevo, eso es todo otro curso. Pero cómo crear una referencia a un Widget Blueprint notas. Puede crear referencias
a blueprints de widgets a partir de blueprints de clase o un blueprint de nivel
o subnivel. Las referencias a los
planos de widgets crean
típicamente en tiempo de ejecución, tal vez fuera de una jugada de
juego o tal vez fuera de un volumen de gatillo
cuando se superponen cosas como un arma para
algún tipo de recogida notificación o notificación de
recogida AML, ese tipo de cosas. Eso lo hará todo por
este video, chicos. Nos vemos en la siguiente.
24. Referencias de la etiqueta: Bienvenidos de vuelta a todos.
En este video vamos a aprender cómo etiquetas agregadas a los actores
se pueden usar para encontrar objetos, crear referencias a objetos, y luego afectar a esos objetos
referenciados. Entonces una etiqueta, ¿de qué estamos
hablando aquí? Bueno, una etiqueta es esencialmente
una etiqueta o una palabra clave que asignamos a un
asociado a un actor dado. Y entonces si un actor
tiene una etiqueta dada, podemos afectarla de
tal manera que podamos crear una
referencia a ese objeto. Podemos llamar a una función en ella, hacer todo tipo de cosas geniales. Entonces vamos a
demostrar eso aquí. Antes de hacerlo si quieres
jugar en casa, tengo tres
actores diferentes configurados en mi nivel. El plafón planos
se encuentra en esta ubicación. Si tienes el contenido
inicial, tengo uno de esos aquí afuera. Este emisor de incendios se encuentra en esta ubicación en la carpeta de contenido de
arranque. Y luego este cilindro que acabo de
agarrar de aquí arriba. Boom, un cilindro si
quieres jugar en casa. De acuerdo, entonces vamos a
añadir una etiqueta común que sea una palabra clave de clase a los
tres actores. Y voy a
encontrar esa etiqueta en el panel Detalles
con mi cilindro seleccionado buscando etiqueta. Y lo voy a
blanquear a componentes o etiquetas de actor. Queremos agregar una etiqueta de actor, una asociada a todo
este actor. Nuevamente, diferentes actores pueden tener diferentes componentes
configurados con ellos. Solo queremos
tener uno asociado con el actor en general. Entonces bajo las etiquetas avanzadas de actor, haz clic en este pequeño
botón más y llegamos a nombrar la etiqueta y voy
a llamar a mi cosita. Y sólo para asegurarme de que no tengo ningún error ortográfico aquí,
voy a resaltar, golpear el control C para copiarlo, porque voy a añadir
esta misma etiqueta exacta también. Aquí mi emisor de fuego. Así que tengo esa
etiqueta blanca
aquí abajo para encontrar mi etiqueta de actor. Agreguemos eso. Vamos a añadir eso aquí. Y luego también para mi luz de techo
plano, estamos filtrando por la palabra etiqueta. Vamos a añadir eso a
nuestra etiqueta avanzada actor. Y pongamos ese
nombre aquí también. Genial, a continuación, mientras
estamos aquí, por qué no incluimos esto en
nuestro BPS de aquí también, nuestro ejemplo Construction Script, así
como nuestras pastillas. Por lo que voy a navegar
a donde están estos
en mis carpetas aquí. Pp ejemplo de recogida. Vamos adentro aquí. Si quieres agregar una
etiqueta a este blueprint, quieres ir por debajo de
tus valores predeterminados de clase haz una búsqueda de una etiqueta. Ahí está, etiquetas de actor. Vamos a añadir cosas
aquí también. Adelante y compilar, salvo eso. Podemos cerrar eso y luego nos deshacemos de eso
del último video. También consigamos nuestro muro de guión de
construcción aquí
mismo en valores predeterminados de
subclase, asegúrate de
que tienes esa etiqueta seleccionada. Agreguemos una etiqueta para este tipo. Y ahí vamos. Por lo que sólo quería mostrar
dónde agregarías eso dentro de un
plano en sí mismo. Es importante señalar que aquí lo estoy agregando
al propio blueprint. Para este plano de
techo particular, lo
estoy agregando solo a esta instancia del
objeto dentro del nivel. En realidad no
añadí esto dentro
del plano de techo aquí dentro de mi techo
Blueprint Class default. Si busco etiqueta, no la
veré aquí
porque no la agregué
al propio blueprint. Apenas esta instancia particular del anteproyecto en mi nivel. Así que empecemos creando
una referencia a todos estos actores etiquetados
que voy a hacer esto dentro
del Planeta de Nivel. Así que viniendo justo debajo de aquí,
abrir Level Blueprints, tenemos un montón de guiones para los
que actualmente he deshabilitado todos los eventos. Probablemente limpiaré
esto entre videos y me deshago de algunas
de estas cosas viejas aquí. Vamos a pasar por debajo de algún
espacio vacío en nuestro gráfico de eventos. Y voy a hacer
clic derecho hacer una búsqueda la tecla T, entradas T, entradas. Vamos bajo un teclado. Eventos de teclado. Realmente, cualquier
evento de teclado servirá. Sólo quiero ir con T
porque T significa etiqueta. Hay un tiki. Y muchas veces esto vamos
a arrastrar hacia fuera un cuadrado y vamos a
traer en un consigue todos los actores con tag node. Entonces, como era de esperar,
esta función
hará exactamente lo que
dice que va a hacer. Conseguirá a todos los actores
con una etiqueta dada. Aquí está el nombre de la
etiqueta que queremos encontrar. Cualquier cosa con la etiqueta pensando y con este pin de actores
fuera, tiene este tipo de icono
tipo waffle que nos va a dar una serie de actores
que tienen esta etiqueta. Eso significa una lista de
actores que tienen esa etiqueta. Vamos a hacer clic derecho en esto,
Promover a variable. Y simplemente llamemos a
esto nuestra matriz de cosas. puede ver que creó
esta variable por aquí. Entonces cuando presiono la tecla T. Vamos a almacenar
todas las referencias a actores que tienen esta cosa que
etiquetas dentro de esta matriz. Y esta matriz
va a ser una lista de todos los actores que
tienen esta etiqueta. Muy bien, para que eso suceda
cuando presionemos la tecla T. Hagamos algo a todos
estos actores entonces. Ahora que tenemos una referencia
a todos estos actores, ¿qué queremos hacer con ella? Bueno, voy a hacer clic derecho
y algún espacio vacío. Una vez más,
voy a traer en el
evento de teclado de tecla up para arriba. Y pensé que
eso era apropiado porque vamos a estar moviendo
a estos actores en
la coordenada z. Voy a arrastrar en mi matriz de cosas,
vamos a conseguir eso. Y luego fuera de esto, voy a arrastrar
un cable y traer un para cada bucle. Nuevamente, vamos a estar
hablando de estos para cada bucles, estos nodos de control de flujo
más adelante en el curso. Lo que todos necesitan
saber por ahora es que por cada elemento de esta lista, cada elemento de esta matriz, vamos a hacerle
algo. Y lo que queremos hacer es por cada ítem de aquí, cada elemento, queremos sumar compensaciones
locales de actor. Y terminamos,
vamos a moverlo en una dirección dada
en un desplazamiento hacia ella. Y vamos a cambiar
la ubicación del delta. Es decir, cuánto
queremos cambiarlo de su ubicación inicial versus dónde está la próxima vez que
presionemos la tecla
up, subiendo 50 unidades irreales
en la dirección z. Entonces Tiki va a conseguir una referencia a todos los
actores con esta etiqueta. La clave up va a
mirar todos los elementos dentro de esta matriz, todos los elementos de esta
lista almacenados aquí. Y para cada ítem aquí, vamos a añadir
aquí un desplazamiento que es para moverlo hacia
arriba en la ubicación z. Ahora, voy a
compilar este guión. Todo va
a quedar bien. No obstante lo sé,
déjame guardar esto también. Cuando toco esto por
error va a ocurrir. Voy a dejar que esto suceda, pero vamos a seguir adelante
y darle a esto una obra de teatro. Muy bien, así que añadí
esa etiqueta a eso. Son cilindro, las llamas, las luces de techo que se cruzan y la pared al fondo. Déjame hacer turno en F1. Para que pueda minimizar esto. Quiero que veas este guión
disparando aquí también. Así que voy a reducir
esto un poco. Y voy a
presionar la tecla T. Así que
ahora tengo una referencia a todos esos actores
que llevan esa cosa que etiquetas. Ahora voy a
presionar la tecla arriba, esa es la tecla de flecha arriba. Y bueno, algunas cosas se mueven hacia arriba. Pero ese cilindro no. Y esa es la época de la
que hablaba. Déjame seguir adelante y escapar. Y el aire va
a demostrar lo que
está pasando aquí. Va a haber mencionado que este
Componente de Malla Estática tiene que
configurarse en movible si
quisiéramos poder moverlo. Por lo que las mallas estáticas no se
van a mover simplemente sin que cambiemos uno de
sus ajustes a movibles. Para que eso se
arregle fácilmente volviendo
a nuestro nivel de pruebas aquí,
seleccionando nuestro cilindro. Aquí mismo. Se trata de la
configuración de movilidad del cilindro, cambiando esto a móvil. Así que una vez más, si fuéramos
a seguir adelante y tocar esto, permítanme encoger un poco este guión aquí
abajo. Así que aquí arriba,
presionando la tecla t, tenemos una serie de todos los actores con
una etiqueta de pensamiento. Y ahora, una vez que presione
la tecla de flecha hacia arriba, todas ellas se moverán
hasta 50 unidades irreales. Vamos a sumar
50 como un offset cada vez que presionemos la tecla up. Así que pensemos solo en
todos los posibles casos
de uso de crear referencias de esta
manera usando una etiqueta. Bueno, tal vez estés desova algunos enemigos diferentes y tu nivel a medida que pasa
el tiempo durante un partido, digamos cada 20 segundos. Y así nunca puedes estar seguro cuántos enemigos existen
a la vez en tu mapa. Ahora di que quieres destruir a todos los enemigos en tal vez algunos objetos
ambientales. Siempre que el jugador recoja super-duper, destruye todo el artículo. Podríamos conseguir que todos los actores
tengan una etiqueta dada, decir al solapar
ese super-duper, destruir todo el artículo y luego
destruir, ajustar esos artículos. Entonces todo tipo de casos de uso buenos, útiles para eso. Una nota adicional más que quería
dar aquí antes de
terminar este video, podemos hacer un cheque para ver si un actor individual tiene una
etiqueta. ¿Cómo haríamos eso? Bueno, tengo mi cilindro
seleccionado aquí en mi nivel, vuelta en mi Nivel Blueprint, voy a hacer clic derecho. Voy a crear una
referencia a ese cilindro. Y fuera de cualquier referencia aquí, simplemente
puedo hacer una
búsqueda de actor tiene función tag. Entonces podría enchufar esto a un nodo de sucursal para poder
hacer una búsqueda aquí para ver, hey, ¿ese cilindro
tiene la etiqueta de cosa? Y si es verdad,
podemos hacer una cosa. Si es falso,
podríamos hacer otro. Sólo quería señalar
eso aquí también. Muy bien chicos, así es
como se puede ir sobre creación de referencias usando etiquetas. Eso va a hacer para ofrecer este. Nos vemos en la siguiente.
25. Evento para comenzar el juego: Bienvenidos de nuevo a todos. En esta sección del curso, vamos a estar explorando
eventos con mayor detalle. Estaremos explorando algunos de los
eventos más utilizados en Unreal, comenzando con
Event, Begin Play. Ahora nuestro objetivo específicamente
en este video es
obtener una comprensión de lo que es
el evento start at play, dónde se puede encontrar y cómo
podemos hacer uso de él de manera irreal. Ahora, saltando a
nuestro mapa de pruebas de nivel, nuestro Plano de Nivel aquí. Puedes encontrar eso yendo
aquí, abre Level Blueprint. Se puede ver que he configurado algún guión previo a
filmar este video. Voy a correr todo esto
fuera de Evento. Empieza a jugar. Ahora parece un
poco intimidante, pero te voy a
caminar por las diferentes cosas que estoy
haciendo y por qué lo estoy haciendo. Ahora. En primer lugar,
¿cómo se obtiene un evento? Empezar a jugar aquí? Bueno, un par de métodos. Uno se puede hacer clic derecho
y sólo escribir en empezar a jugar como celular, Así es como se puede encontrar. Alternativamente, me gusta
usar el atajo de tecla de acceso rápido, que es simplemente mantener presionada
la tecla P y hacer clic izquierdo. Ahora, lo divertido de tener en cuenta aquí antes de que enganchemos
esto es que
solo puedes tener un evento que comience a
jugar por plano. Y no importa
cuántas gráficas tengas. Si recuerdas antes
en este curso, creé una segunda gráfica
llamada tipos de nodos. Ahora si
salto sobre mi gráfico de tipos de nodos, actualmente
estoy en mi Gráfico de
Eventos, Gráfica. Y mantengo pulsada la
tecla P y hago clic izquierdo. No lo encuentro. Alternativamente, si escribo en una barra de búsqueda
haciendo clic derecho y escribiendo,
Begin Play y hago clic en ella, va a saltar a
mi pestaña Event Graph. Entonces eso es una cosa a tener en cuenta. Solo puedes tener un evento que
comience a jugar por blueprint. Entonces eso plantea
la pregunta, bueno, ¿y si quiero hacer múltiples
cosas fuera del evento? Empezar a jugar? ¿ Solo necesito un largo hilo de guión para hacer que sucedan
múltiples cosas? Bueno, no, tú no. Ahí es donde este
nodo de secuencia viene muy bien. Hablaremos más sobre el nodo de secuencia más
adelante en el curso. Pero solo debes saber que el
nodo de secuencia es algo que puedes usar para esencialmente
dividir tu señal. Por lo tanto, al enchufar evento comenzar a
jugar en un nodo de secuencia. Puedes agregar más pines de salida y luego hacer que una cosa suceda, luego otra, luego otra, y otra, todo en orden
secuencial. Entonces vamos a explorar lo que
voy a estar haciendo aquí. Fuera del evento B en juego dentro
de mi Plano de Nivel. Bueno, lo primero que voy a
hacer es tocar un evento sonoro. Begin play es un gran
evento para usar si quieres que algo de música simplemente
se ponga en marcha al principio
de tu nivel. La segunda cosa que
voy a estar haciendo
aquí abajo es conseguir que mi
personaje de jugador casting a mi ThirdPersonCharacter y luego almacenar mi personaje en
tercera persona dentro de esta variable para
que podamos hacer uso de ella. Así que lanzando a nuestro
ThirdPersonCharacter y luego encapsulándolo dentro
de esta variable. Justo abajo es donde en realidad
vamos a estar usando esta variable que
acabamos de almacenar aquí. Vamos a obtener nuestra
referencia de personaje que almacenamos aquí. Vamos a conseguir la
ubicación de nuestros actores y luego vamos a poner eso dentro de
esta variable vectorial. Entonces algo que a menudo se
hace fuera del evento empieza a jugar también es algo llamado
inicializar variables, es
decir darle
un valor inicial. Ahora antes en este curso, y hablando general de los diferentes tipos de nodos
variables, creo una variable de una variable vectorial que
tenía valores por defecto de 000 y serían 000 si no
les di algún otro valor. En este caso, lo estoy
inicializando. Eso le está dando algún valor
inicial que se basa en la ubicación de mis
personajes. Así que va a alimentar la ubicación de nuestros
personajes en esto y almacenarlo dentro de
esta variable vectorial. Inicializar variables
es algo que comúnmente
se hace
fuera de start play. Y también voy a
imprimir los resultados de esto fuera a la
pantalla para que podamos ver la ubicación de
nuestra referencia de personaje
cuando esto esté configurado. Entonces tres cosas
que estamos haciendo aquí, fuera del evento empiezan a jugar. Vamos a tocar algo de música. Vamos a crear una
referencia a nuestro personaje. Y luego vamos a usar nuestra referencia de caracteres para ayudar a inicializar esta variable vectorial. Aquí vamos. Por lo que se puede ver alguna
inicialización de nuestra variable vectorial
aquí mismo como siendo
impreso en la pantalla. Se puede escuchar la música. Y por supuesto que este personaje lo
hace referencia como se dice. Eso no
es algo que sea muy visual en absoluto, pero eso se está haciendo fuera
del evento comenzar a jugar. A continuación, hablemos de
dónde puedes y
no puedes encontrar Event Begin Play. Como pueden ver es aquí
en mi Plano de Nivel. ¿ Qué pasa con mi blueprint de sub
nivel no está disponible allí
también? Sí, lo es. Y voy a dar clic aquí
mismo para abrir el subnivel Level Blueprint. Y creé algunos
guiones previos a este video en el que
voy a retrasar tres segundos y luego reproducir un sonido de explosión
y voy a
depurar para que podamos ver
esto disparándose. Pero notarán que una vez que juego a la espera de tres segundos y parece que
no pasa nada. El motivo de eso
es porque no estoy cargando este blueprint a
nivel de subred. Y lo que quiero decir con eso. Si vuelvo a mi pestaña de niveles, necesito hacer clic derecho
en el subnivel, cambiar el método de streaming de blueprints a siempre cargados. Y ahora si vuelvo
a mi subnivel, puedo hacer clic en Reproducir. Ves ese evento
disparando la cuenta regresiva de retardo, y eso hará que
Event Begin juegue, reproduzca las cosas que
vienen después de él. Por lo que está disponible en un plano bajo, así
como un plano de sub-nivel. Además, el evento comienza el
juego se puede encontrar en planos de clase de
actor
como nuestro ejemplo de recogida aquí. Nuevamente, agregué esto previo
a filmar este video. También lo puedes encontrar en planos de
personajes en tercera persona. Puedes ver que
lo estamos usando aquí para crear nuestro HUD y
mostrarlo en pantalla. Sin embargo, no encontrarás
esto en nuestros planos de widgets. Aquí está nuestro medidor de salud,
el Widget Blueprint. Y si voy
a la pestaña gráfica, y hago clic derecho y algo de espacio
vacío y escribo y empiezo a jugar. No lo encontrarás. Event Construct es esencialmente el evento comienza a
jugar si lo deseas, dentro de un Widget Blueprint, tampoco lo encontrarás dentro de un blueprint de
instancia de juego, pero casi todos los
otra clase de Blueprint podrás encontrar Event Begin Play. Y por último, una cosa más muy
importante que mencionar sobre Event Begin jugó
antes de concluir este video. Si bien es cierto que
este evento sí se dispara cuando comenzamos a jugar, ¿qué hacemos para los
diferentes actores que desovan en algunos otros
puntos durante el juego? ¿ Cuándo comienza el evento comienza
el juego para ellos? Bueno, el evento comenzó
comienza el juego para esos planos. El momento en que esas cosas son divertidas. Y sólo para mostrar esto, me voy a desplazar aquí un poco más en mi mapa de prueba de nivel, y he configurado un
poco más guión fuera de evento empezar a jugar, donde voy a estar
desove un plano, luz de
techo que fue encontrado contenido estrella
MI
después de tres segundos. Ahora, déjame bajar un poco esto
aquí. Para que veas que es
un poco mejor. Después de tres segundos
en nuestro plano bajo, vamos a estar desove esta luz de techo
plano en una transformada dada no tengo que
alimentar esto un transformador. Esto va a fallar. Déjame entrar aquí
y voy a agregar un todas las clases que hice
clic aquí mismo. Todas las clases encontrarán una nota. Busquemos un actor de notas sólo para darnos un lugar
en el espacio para hacer referencia. Voy a levantar,
levantarla en el aire así. Con eso seleccionado, voy a saltar de nuevo a mi Plano de Nivel, mantener pulsada la tecla R, clic izquierdo, Ahí está
mi actor de notas. Voy a conseguir que
los actores se transformen. Vamos a desovar
este plafón. Ahora bien, lo que hice antes de
este video en mi plano, luz de
techo, y una vez más, eso se podía encontrar en mis planos de contenido
estelar. Este plafón de aquí mismo es Creé este pedacito de guión
donde estoy empezando a jugar. Vamos a retrasar
otros tres segundos. Voy a establecer mi radio de atenuación de
luces puntuales. Eso es esencialmente lo lejos de una
luz de área o punto puede afectar. También vamos a
establecer su color claro a este color rosado. Este evento de inicio de juego
se va a disparar el momento en que se desove
en nuestro nivel. Y de nuevo, estoy desovando
en nuestro nivel aquí en mi mapa de prueba de nivel fuera
del evento comenzar a jugar. Así que vamos a depurar este
ajuste que lago. Entonces tratamos de enmarcar
esto así. De acuerdo, compile eso,
asegúrense de que nuestro script esté todo bien. Y aquí dentro nos vamos
a la derecha allá. Después de tres segundos. Esa luz sí gira. Por lo que una vez más, aquí en mis
planos, luz de techo, este evento comenzó a jugar
disparó tan pronto como este actor engendró
en el nivel. Por lo que para revisar el evento comience a jugar, es genial para ejecutar
guión al inicio de la obra. En este caso, tocar algo de música es genial para crear referencias de
objetos. En este caso, crear nuestra
referencia ThirdPersonCharacter es ideal para inicializar
variables. En este caso, lo estoy usando para inicializar nuestra
variable vectorial aquí. También es bueno para los
actores de desove después de una
cantidad de tiempo determinada. Un montón de cosas que puedes hacer
fuera del evento. Empezar a jugar. Bueno chicos, eso lo
va a hacer a menudo. Este video
te veremos en el siguiente.
26. Marque del evento: Bienvenidos de nuevo a todos. En este video, nuestro objetivo es
entender qué es el tick de evento, dónde podemos encontrarlo
y cómo se puede usar. Ahora bien, como se trata de un evento
que dispara en cada cuadro, debes usar este evento con cuidado o te arriesgas destruir
totalmente el rendimiento de tu
juego. Es decir, tu velocidad de fotogramas puede
sufrir de una manera grande, a lo grande. Por lo tanto, use este evento con precaución. Por lo tanto, los eventos se pueden encontrar
en casi cualquier blueprint dentro de Unreal que
incluye planos de nivel, blueprints subnivel y la
mayoría de los blueprints de clase. Una excepción a eso, pero sé con certeza es el blueprint de la instancia del
juego. Hablaremos más sobre ese importante
tipo de plano más adelante en el curso. Yo sólo voy a hacer clic derecho en
él algún espacio vacío aquí. Voy a crear
una nueva
Clase Blueprint del tipo actor. Podría elegir cualquiera de estos.
Voya elegir actor. Voy a dejarlo
como ese nombre predeterminado, y simplemente voy a
hacer doble clic sobre él para abrirlo. Y puedes ver cuando
saltamos al Event Graph, ese tick de evento es uno de los eventos predeterminados que está
inmediatamente disponible para ti. Ahora bien, si fuera a
borrar esto, déjame seguir adelante y hacer eso. Podría hacer clic derecho
y escribir Tick, y puedo volver a agregarlo ahí. Ahora sólo se puede tener
uno de estos párrafos. Así que si yo fuera a hacer clic derecho
y escribir en Tick de nuevo, en simplemente va a ser
como yep, ahí está. Te va a saltar directo a ella. Ahora voy a eliminar este plano aquí mismo y
voy a saltar sobre mi Plano de Nivel
para hacer
algunas cosas con ticks de eventos. Así que abre Level Blueprint. Ahí está mi evento tick. También vale la pena señalar
que solo se puede tener un tick de evento por un
blueprint, no por gráfico. Este es mi Plano de Nivel. En, en mi Level Blueprint, actualmente
tengo dos gráficas, mi Event Graph Graph y mi gráfica de tipos conocidos
que creé. Estaba creando mi
video hablando los diferentes
tipos de nodos en Unreal. Entonces si estaba en mi Gráfico de Eventos, Haga clic derecho y escriba la
palabra tick y haga clic en él. Me va a saltar
a mi tipo de nodo grafica comida. Sí, ahí está tu garrapata de evento. Ahí está. Ahora evento tick, como
dijimos antes, se dispara de cada fotograma. Ahora, vale la pena señalar
que puedes mostrar tu velocidad de fotogramas en
los editores de nivel. Entonces vamos a hacer
eso ahora antes de que
sigamos hablando de eventos aquí, salta de nuevo a tu editor de nivel. Y aquí tienes este ícono de hamburguesa de
tres líneas, si quieres, adelante
y da click izquierdo sobre eso. Aquí mismo, muestra cuadros por
segundo Control Shift y h, haciendo eso emitirá
tu velocidad de fotogramas a la pantalla que es de 120 fotogramas por segundo que
actualmente lo estoy ejecutando. Eso son 8.33 milisegundos. De acuerdo, así
que algo más que vale la pena señalar aquí es que puedes establecer una velocidad de fotogramas
fija. Esto es un
poco de tangente aquí, pero vale la pena señalar también. Si entras en tus
ajustes, ajustes de proyecto, y escribes velocidades de fotogramas, me gusta llenar estos videos
con todo tipo de conocimientos. Me vendría bien una velocidad de fotogramas fija. En este momento está ajustado a 30. Aquí no hay botón Guardar ni nada. Y ahora si iba a saltar de
nuevo a mi editor de nivel, están mostrando que
actualmente estoy corriendo a 30 frames por 2.33rd, 33 milisegundos, va
a deshacer lo que acabo de hacer. Por lo que la garrapata
del evento dispara cada fotograma. Hagamos algo con nuestros eventos dentro de
nuestro Level Blueprint. Entonces déjame simplemente
moverlo aquí arriba. Y voy a sumar,
agregaremos un enemigo a nuestro nivel. No es un enemigo de fantasía por supuesto, pero aquí en mi navegador de contenido, voy a venir debajo de
mi carpeta maniquíes,
mi carpeta de mallas. Aquí puedes colocar cualquier cosa
en tu nivel. Va a representar a un enemigo
simple, estúpido,
que no funciona. Voy a arrastrar y soltar este Quinn simple en mi nivel. Y con eso
seleccionado, voy a saltar de nuevo a mi Plano de
Nivel. Voy a mantener pulsada la
tecla R en clic izquierdo para crear una referencia a nuestro simple enemigo Quinn
ahí, si se quiere. Y fuera de evento tick, me voy a arrastrar fuera de
esto y voy a teclear es válido. Quiero esta versión de signo de
interrogación. Voy a estar comprobando si
mis objetos ingresados aquí, mi enemigo es válido. Es decir, ¿existe? Y si no existe, es
decir, se ha destruido. Lo vamos a hacer una vez. ¿ Qué vamos a hacer una vez? Bueno, vamos
a tocar un sonido indicando que se
ha ido, adios. Vamos a reproducir un sonido 2D, y tocaremos un
sonido de confirmación VR confirmado q Ahora si vamos a
ir con esta comprobación para ver si es válido o no. Necesitamos tener algún medio
para destruir a este actor. Tenemos que destruirlo para que luego compruebe que no es válido. Recuerda, esta garrapata de evento se va a disparar cada segundo. Entonces voy a hacer clic derecho
y algo de espacio vacío
aquí abajo y vamos a hacer la tecla cuatro. En fuera de la tecla cuatro, voy a tirar hacia abajo nuestro clic izquierdo para traer en otra referencia
a nuestro Quinn simple. Y me voy a
arrastrar fuera de esto y teclear Destruye Actor. ¿ Verdad? Entonces la idea aquí es que cada cuadro que
vamos a estar revisando para ver si nuestro símbolo enemigo Quinn
aquí es válido o no. Si es válido, es
decir, existe, vamos a hacer nada. Si no es válido, es
decir, está destruido. Una vez vamos a
tocar este sonido y así es como vamos a
destruir a ese actor. Por lo que esto evalúa no es válido. De acuerdo, sigamos
adelante y juguemos. Y se puede ver evento tick
se está disparando de cada fotograma, pero no está yendo
más allá de esto es válido porque está continuamente
comprobando es válido, sí, existe en nuestro nivel. No obstante, una vez que presiono
la tecla F4, aquí vamos. Se ha destruido. Y se puede ver cómo alguna
vez tocamos ese sonido. Entonces ese es un
ejemplo perfectamente de fiar de usar tick de evento. Ahora, una cosa que quiero
señalar aquí es que se puede modificar la tasa de tick. Ahora si nuestro juego
lo está ejecutando a 120 fotogramas por segundo, tick del
evento se va a
disparar 120 veces por segundo. Ahora, si hago clic en mi
botón de valores predeterminados de clase justo aquí arriba, puedo modificar el intervalo de tick. Y de nuevo, dice en segundos, la frecuencia en segundos a la
que se
ejecutará la función tick. Para que no tenga que
disparar a todos los cuadros. Puedo apagar esto
cada dos segundos, cada tres segundos,
iré cada cinco segundos. Ahora este va a ser un ejemplo un
poco extremo. Pero ahora en cuanto
destruya a mi actor, no
va a tocar
este sonido de inmediato. Vamos a seguir adelante y
darle una oportunidad a esto. Voy a hacer clic en Reproducir. Voy a presionar la tecla F4
para destruir a nuestro actor aquí. Y luego finalmente tocó el sonido un poco
rezagado después de eso. Y eso es
porque solo está marcando, solo
está disparando este tick de
evento cada cinco segundos. Así que esa es una forma en la que
puedes modificar tu tick de evento. Ahora aquí hay otro caso práctico de
uso para el evento tick. Tener algo gira para enfrentar
otra cosa a lo largo de un juego, como esta silla, porque obviamente tendrías una silla girando la cara
de jugador todo el tiempo. Ahora imagina si eso fuera una cámara de
seguridad o
una torreta mira hacia abajo a
balazos en el
jugador y
quisieras atraer al jugador. Podrías hacer eso
cada fotograma está cambiando su rotación
de re-frame. Ahora, si quieres jugar
en casa y ver cómo lo
hice, simplemente coloqué una silla de
malla estática en mi nivel. Puedes encontrar cuando están
en ese directorio, cambié la movilidad para esta silla seleccionada a una
movible en el panel Detalles. Y luego en mi Level Blueprint, este es mi guión por
haber puesto eso junto. Obtienes una referencia
a tu silla seleccionando tu silla, manteniendo pulsada la
tecla Alt y haciendo clic izquierdo. Y lo que esencialmente estoy haciendo aquí es que estoy diciendo odio compartir. Quiero que miren
a este jugador y actualicen la rotación
de ese cada cuadro. Ahora, ni siquiera hemos
hablado de deltas segundos aquí. Así que déjame, voy a poner esto
a la pantalla en primer lugar, vamos a arrastrar por aquí,
ir cadena de impresión. Segundos delta es la cantidad
de tiempo entre fotogramas. Entonces saltando de nuevo a mi editor de nivel
aquí estamos corriendo a 120 fotogramas por segundo, que son 8.33 milisegundos. Entonces si toco esto, debería mostrar que el
tiempo entre fotogramas es 0.0083 segundos porque estamos corriendo a 120
fotogramas por segundo. A 120 veces ese número
va a igualar un segundo completo. Entonces ahí lo tienes. También podrías notar
que en la parte superior derecha, no está mostrando mis frames por segundo mientras estoy jugando, aunque lo esté haciendo
en el editor de niveles, la forma en que podemos conseguir nuestros frames
por segundo a aparecer en nuestra ventana de juego aquí es simplemente
tocar la tecla Tilda. Esa es la que está a la izquierda de la tecla única en la mayoría de los
teclados en la parte superior izquierda. Eso va a traer en
una pequeña barra de consola, si quieres, en la parte inferior, si escribo stat
FPS y presiono Enter. Ahora muestra tu velocidad de fotogramas
en la parte superior derecha. Es bueno saber. Ahora puedes usar la salida de segundos
Delta en
cálculos que determinan cuánto debe
mover
un actor dado como una plataforma cada fotograma. De esta manera, puede usar esas salidas
Delta seconds para mover una plataforma la misma cantidad
sin importar la velocidad de fotogramas. Eso es un
poco más avanzado. No voy a
entrar en eso, pero solo dándote una rápida
imprimación sobre qué segundos
Delta podrían usarse para mayoría de las veces no lo
vas a necesitar sin embargo. Y por último, al
principio mismo de este video, mencioné acerca de
cómo hay que
tener cuidado usando auténtico. Porque si no
lo usas de buena manera, podrías destruir las velocidades de fotogramas de tu
juego. Entonces voy a
demostrar qué no hacer dentro de mi BP
ThirdPersonCharacter. Puedes encontrar ese
plano de personaje aquí en este directorio dentro de
tu navegador de contenido. Dentro de aquí he
preparado previamente un guión. Estamos fuera de la garrapata del evento. Simplemente estoy haciendo que
mis actores se transformen. Ahí es donde este
TercerPersonaje se va a ubicar y
girar dentro del mundo. Entonces voy a estar desovando un fuego de efecto de plano
que he puesto aquí mismo. Este es un actor de spawn
del nodo de clase. Y fuera de esto, lo que simplemente hice es drogar fuera de esto y estoy sacando el componente de
audio
de fuego de este plano. Solo estoy dibujando ese componente en
cuanto lo engendré en cada tick de aquí, en cada fotograma. Porque de lo contrario
el audio para esto se pone realmente molesto,
muy rápido. Así que ten en cuenta
que una vez que haga clic en play aquí, mi velocidad de fotogramas se va
a destruir. Va a pasar de
120 fotogramas por segundo a 20 bastante rápido
aquí. Entonces aquí vamos. Mira en la parte superior derecha aquí. Note que está desovando un efecto de fuego donde quiera que esté mi
personaje, cada fotograma. Y se puede ver lo perjudicial que es
para la velocidad de fotogramas. Y una vez más, si entro en
mi defecto de clase aquí y
pongo mi tasa de tick para
que sea algo así como, oh, vamos, vamos a configurarlo
a cada tres segundos. Esto podría ser algo
que podría ser aceptable. Entonces ahora, en lugar de esto
disparando cada fotograma en
mi clase por defecto, estoy diciendo, oye, auténtico sólo dispara cada tres segundos. Y haciendo esto, se puede
ver que mi velocidad de fotogramas se va a quedar bastante
estable al menos por un tiempo, porque solo estoy desovando ese efecto de partículas
cada tres segundos. Entonces si vas a usar eventos tick y realmente
no necesitas
engendrar algo o rotar
algo o hacer algo. Cada fotograma viene bajo los valores predeterminados de clase y establece su intervalo de tick
a algún número. Bueno chicos, eso va a hacer todo por este para el evento tick. Te veremos en la siguiente.
27. Entrada de eventos: En este video, nuestro objetivo es
mostrar cómo podemos
utilizar los eventos de entrada. Uno de los eventos más
comunes utilizando los juegos para disparar
un poco de guión. Ahora cuando estamos
hablando de eventos de entrada, estamos hablando de cosas como las pulsaciones de
teclas en el teclado. Podría ser
pulsaciones de botones como el botón a o B en un controlador
tradicional. O podría ser algo
así como tocar un dispositivo, un teléfono móvil, o un iPad, ese tipo de cosas. Uh, típicamente estos
eventos de entrada simplemente se están registrando. ¿ Lo
presionaste o lo soltaron? Los eventos de entrada no deben
confundirse con los eventos de acceso, que pueden leer en un rango de valores como los thumbsticks izquierdo
o derecho en un
panel de control tradicional pueden decir si su personaje se está moviendo solo un poco o si estás
tratando de correr con ellos. Por lo que los eventos de acceso son
diferentes de los eventos de entrada. Ahora en el ejemplo que estoy a
punto de mostrarles, vamos a estar haciendo para
que al presionar un botón se haga sprint a nuestro personaje
jugador. Y luego soltar ese
botón hace que
volvamos a nuestra velocidad normal de
locomoción. Voy a estar usando nuestro ThirdPersonCharacter
para este video. Entonces, si quieres
jugar en casa, está en la carpeta Blueprints en
tercera persona de contenido. Ahí es donde puedes
encontrar ese plano. Haz doble clic sobre
él para abrirlo. Y dentro de aquí se puede
ver que ya hemos hecho uso de algunos eventos de entrada. Específicamente, estoy
usando la tecla de flecha de mi teclado para enviar un trazo de
línea al mundo. Y arriba aquí estoy
usando la tecla cinco para ocultar o mostrar mi HUD Widget Blueprint que estoy creando
al comenzar a jugar. Si me muevo un poco a la
izquierda aquí, hay algunos
otros eventos de entrada que estaban aquí por defecto. Tenemos un salto de
acción de entrada que esto se establece en la configuración de tu proyecto y te mostraré cómo hacer
eso y solo un poquito. Y también tenemos
una entrada táctil. Por lo que ambos están haciendo que nuestro personaje salte
o deje de saltar. De acuerdo, voy a agregar este script sprint justo a la derecha de nuestros guiones saltados. Así que haciendo clic derecho en
algún espacio vacío, voy a escribir
la palabra teclado para encontrar todos nuestros diferentes eventos de
teclado. Y puedes enlazar esto
a cualquier llave, como si
lo hiciera con la tecla L. Y también voy a traer
en otro evento también. Voy a hacer clic derecho
y algo de espacio vacío. Y voy a hacer una búsqueda
de una plataforma de juego, botón de cara, de abajo. Ahora, como ustedes saben, los mandos de PlayStation y
Xbox son bastante idénticos. Entonces el botón de la cara del gamepad corresponde al
botón x del mando de PlayStation, o creo que es
el botón a del mando de Xbox. Conoces esa
configuración de diamante encima en el lado derecho. Entonces los nombraron
bastante agnósticos, para no llamar a un
controlador en particular u otro. De acuerdo, ¿qué
queremos que suceda cuando presionamos la tecla L en un teclado o conectamos
gamepad a tu computadora. Bueno, aquí vamos a agarrar nuestro
componente de movimiento de personajes, porque si seleccionamos nuestro componente de movimiento de
personajes, se
puede ver que
tenemos muchas propiedades
diferentes que
podemos modificar sobre que, incluyendo nuestra velocidad máxima de caminata, ese es este
parámetro aquí mismo. Esto es determinar qué tan rápido se está moviendo
nuestro personaje
en todo el mundo. Entonces voy a arrastrar en nuestro controlador de movimiento de
personajes o
Componente de Movimiento de Caracteres, no controlador. Para esto, me voy a arrastrar
y voy a decir que se establece la velocidad máxima de caminata. Una vez más, eso nos
va a permitir modificar nuestra velocidad máxima de caminata. Y voy a golpear
Control C y copiar ese Control V para pegar eso. Así. Y así cuando presiono la tecla L y suelte la tecla L todos
querrían que nuestra velocidad máxima de caminata fuera. Bueno, se puede ver
que actualmente tengo mi velocidad máxima de caminata establecida en 500. Voy a decir
cuando lo suelte, quiero que lo vuelva a poner en 500. Pero cuando quiera correr, voy a establecer que
esto sea algo así como 3 mil
algo un poco loco. Ahora actualmente no tengo mi botón de cara del gamepad
conectado a esto también. Pero puedo, puedo
hacerlo para que ya sea presionando la tecla L o el
botón de la cara inferior en un gamepad, pueda establecer nuestra
velocidad máxima de caminata a 3 mil. O si libero el alqueno o libero ese botón de la cara inferior, puedo establecer nuestra
velocidad máxima de caminata de nuevo a lo que era. Ir a clic izquierdo,
arrastrar, puntear la tecla C. Este es mi guión de Sprint. Compile esto para asegurarse que el script se vea bien. Y luego sigamos adelante
y configuramos click Play. Y voy a configurar nuestra opción de depuración justo aquí para que sea nuestro
ThirdPersonCharacter. Permítanme simplemente traer esa ventana de
juego una vez más. De acuerdo, para que puedan ver que golpeamos turno en F1 para un poco mover
esto hacia abajo un poco. Ahora vas
a poder ver mientras presiono la tecla L, ese guión disparándose. Y luego cuando
lo suelte, va a volver a establecer mi velocidad máxima de caminata. Por lo que WFISD para moverse, manteniendo pulsada la tecla L, moviéndose mucho más rápido,
soltándola. Yendo mucho más lento. De acuerdo, ahora esto no es lo ideal. Tengo dos eventos de
entrada separados esencialmente haciendo
lo mismo. Y tampoco son
muy descriptivas. He conseguido L, una llave y un botón de cara de
gamepad en
la parte inferior, esencialmente haciendo lo mismo. ¿ Hay alguna manera de
que pueda simplificar esto? Y la respuesta es sí, se puede. Lo que vamos a hacer es saltar nuevo a nuestro editor de nivel principal. Y encima en los ajustes, ajustes
del proyecto, vamos a pasar por debajo del lado izquierdo y
seleccionar la categoría de entrada. Y aquí podemos crear nuestro propio
mapeo de acción, eventos de entrada. Tenemos mapeos de acceso
o mapeos de acción. Es muy importante
que hagas esto bajo los mapeos de acción. Ahora bien, si amplío este
triángulo aquí mismo, podemos ver que
ya existe un evento de entrada de
mapeo de acción llamado salto. Y esto es interesante
porque si volvemos a nuestro personaje en tercera persona, volvemos a nuestro grip de saltos, tenemos un nodo de evento
llamado input action jump. La razón por la que esto existe es porque en la
configuración de nuestro proyecto creamos un mapeo de acción de salto que
es un nodo de evento llamado jump. Y actualmente si
amplío esto, puedo ver que dos entradas
llamarán para que esta
acción de entrada suceda. Una barra espaciadora en el teclado o en la parte inferior del
botón de la cara del gamepad. Entonces vamos a estar agregando un
nuevo mapeo de acción aquí. Haga clic en este botón más para
agregar un nuevo mapeo de acciones. Y vamos a ponerle el nombre
que queramos. Voy a llamar a mis sprints. Y voy a decir, esto
va a estar ligado a la tecla L. O haciendo clic. Puedo agregar tantas
de estas que quiera. Voy a
hacerlo así el gamepad, Vamos a hacer botón de cara, ¿no? Seguro.
Botónde cara de gamepad, ¿verdad? Cualquiera de estos
presionando la tecla L o los derechos del botón de cara del gamepad lo
harían para que nuestro
personaje pueda sprint. Ahora no hay botón Guardar
ni nada aquí. Con esto creado,
puedo saltar de nuevo a nuestro ThirdPersonCharacter
Blueprint. Ahora puedo hacer clic derecho en algún espacio vacío y
escribir la palabra sprint. Y encontrará nuestro nuevo evento de acción que
acabamos de crear llamado Sprint. Yendo a nombrar el nodo de acción de
entrada sprint, ahora
puedo eliminar
estos dos nodos, engancharlos de esta manera. Y si fuera a saltar
y jugar una vez más, W, a, S, y D para moverme
manteniendo pulsada la tecla L. Y se puede ver que
estoy esprintando,
soltando poco a poco, poco a
poco retrocederá. Ahora, lo siguiente muy
importante a tener en cuenta acerca de los eventos de entrada es que si bien puedes agregarlos a toda
una serie de tipos de Blueprint, no todos
los dispararán por defecto. No obstante, algunos lo harán. Si fuera a agregar eventos de entrada
a su Blueprint de nivel, esto se ejecutará como se esperaba. Presionas la tecla Z,
se va a
imprimir este
nivel de cadena a la pantalla. También lo hará por planos de
personajes y peones. Así que si presiono la tecla X dentro de mi
plano de ThirdPersonCharacter, también
se va a imprimir
esto. También lo hará para los planos del
controlador del jugador. Y ahora eso va a
ser algo de lo que hablamos más
adelante en el curso. Pero dentro de la
configuración de mi proyecto aquí mismo, bajo mapas y modos
player controller, ese es el tipo de blueprint del
que estoy hablando. Puede usar
eventos de entrada dentro
del blueprint del controlador del reproductor sin ningún tipo de configuración especial. No obstante, en algo así como un modelo de clase de actor como el ejemplo de
BP, recogida aquí. Si tuviera que presionar la tecla C, una de estas en mi nivel, no
va a imprimir
esto a la pantalla. Así que sólo para demostrar esto, déjame seguir adelante y hacer clic en Reproducir, haciendo clic en mi ventana
aquí para activar eso, voy a presionar la tecla Z. Se ve ese nivel de textos que
aparecen en la parte superior izquierda. Si presiono la
tecla X varias veces, se ve que los textos impresos. No obstante, si presiono esa tecla C, esos textos que se supone que dicen recogida aquí en
la parte superior izquierda, eso no se va a imprimir. Y eso se debe a blueprints de clase
actor no están configurados para registrar eventos de entrada. Por defecto, sin embargo,
puede cambiar esto dentro de la clase
predeterminada de este blueprint. Así que si selecciono mis valores predeterminados de clase aquí en el
lado derecho, tengo una categoría
llamada input. Y como la entrada de recepción automática
aquí está actualmente desactivada. No obstante, si cambio
esto al jugador 0 porque actualmente
tengo un juego de un solo jugador. Eso hará que ahora
cuando presione la tecla C, imprima esto
en la pantalla. Sigamos adelante y probemos esto. Ahora cuando presiono la tecla C, se
puede ver la recogida de textos ahora se imprime
en la pantalla. Ahora bien, vale la pena señalar
aquí que aquí en mi clase por defecto
tuve que cambiar esto dentro de mi blueprint de clase de
actor. Para que la
entrada de autorecepción sea el jugador 0. Si miras en
algo así como di tu ThirdPersonCharacter
Class por defecto y vas a la sección de entrada. Actualmente también dice que la entrada de
recepción automática también está
desactivada. Sin embargo, una vez más, el
personaje y sobre clase blueprints
nivel blueprints y un jugador
controlador blueprints. Registrarán
estos por defecto, pesar de que esto es un
poco engañoso aquí diciendo que la
entrada de recepción automática está desactivada. A continuación, necesitamos hablar de
cómo irreal prioriza el mismo evento de entrada cuando se
usa en múltiples blueprints. Y para demostrar esto
en mi Plano de Nivel, estoy usando la tecla X
para imprimir una cadena. También estoy usando la entrada x dentro de mi
personaje en tercera persona ahora. Y también lo estoy usando dentro
de mi pastilla de ejemplo BP. Bueno, está
enganchado en tres áreas. Entonces si hago clic en Reproducir
y presiono la tecla X, ¿
cuál
va a priorizar? Y se puede ver está priorizando mi actor en el
blueprint de clase aquí mismo, porque he habilitado en mi clase los valores por defecto que recibiré entrada
del jugador 0, yo, el jugador prestador. Por lo que la priorización
va de la siguiente manera. Si tiene una configuración
como esta usando la misma entrada después de la clase, primero se priorizará
BP, seguido de los planos de control o
controlador de jugador que los planos controlador de
nivel y y luego los planos
del controlador de caracteres. Ahora bien, ¿qué pasa si dos planos del
mismo tipo reciben entradas? Bueno, en ese caso, tomaríamos en esta prioridad de entrada
más alta. Ahora para demostrar esto, voy a desenganchar Solo para
que quede perfectamente claro, la tecla X dentro de mi ThirdPersonCharacter
y dentro de mi mapa de prueba. Y ahora tengo mi camioneta de ejemplo
enganchada a la tecla x. Y también estoy usando mi
script de construcción de ejemplo de BP dentro de aquí. También voy a estar enganchando mi llave X para
imprimir esta cadena. También tenga en cuenta aquí dentro
de mis valores predeterminados de clase. He configurado debajo del área de
entrada para el jugador 0, ese soy yo para
recibir entrada aquí. Actualmente ambos se
establecen a la prioridad de entrada 0. Prioridad de entrada 0, ahí está. Entonces, ¿cuál
va a mostrar? ¿ Va a mostrar esta
camioneta o va
a mostrar el guión de construcción? Bueno, si la toco en prensa X, va a priorizar la que le agregué
esa entrada x. Más recientemente. ¿Cómo alguna vez? Si fuera a entrar en
mi camioneta de ejemplo y cambiar la prioridad
a un número mayor, algo superior a lo que está
en el guión de construcción. Podría ser uno,
podría ser 100, podría ser 5 mil. Claro, sólo vamos 5 mil. Ahora debería imprimir pickup tan
pronto como presione la tecla X. Ahí vamos. Y por último, una cosa más que
quería agregar sobre los eventos de
entrada dentro de tus gráficas es que si tienes
ese nodo seleccionado, hay algunas opciones encima en el panel Detalles con las que
puedes juguetear. Esta es una forma rápida para que cambies la clave de entrada aquí mismo. También puede agregar un modificador. Entonces en lugar de en este
caso presionar la tecla X, podría verse obligado
a presionar las teclas Alt y x al mismo tiempo para hacer que
algo suceda. Pero del que realmente quería
hablar que
aprendí a través ensayo y error fue esta
ejecución cuando las opciones de Pausa. Muchos juegos, lo tienes
configurado para que si presionas
un determinado botón, puedas pausar el juego. Y luego si
quieres ponerla en pausa, presionas ese mismo botón. Echaremos un vistazo a esta configuración. Yo me tengo que ir aquí. Actualmente
lo tengo configurado para que cuando presione la tecla X, voy a pausar el juego. Y luego cuando
solté la tecla X, se supone que debo estar
inpausándola y el juego, pero mira lo que pasa aquí. Voy a seguir adelante
y hacer clic en Reproducir. Se puede ver esta camioneta de salud
girando por aquí que realmente va a presumir que el juego
está pausado o no. Estoy presionando la tecla X
y todo se pausa. Solté la tecla X y
todo queda en pausa. Y la razón de eso
es que no estoy permitiendo este evento
se siga ejecutando cuando
el juego está en pausa, eso está actualmente configurado en falso. Entonces si quiero hacer que
esto
siga ejecutándose
aunque el juego esté en pausa, voy a marcar esta casilla. Y así cuando presiono
la tecla X ahora, se detendrá el juego. No obstante, cuando
solté la tecla X, se desparalizará el
juego porque esto
también se va a
ejecutar cuando se haga una pausa. Aquí vamos, manteniendo pulsada x, lo está pausando y ahora
voy a liberar ECS. Y también
disparó esa pulsación, o en este caso, la
liberación de la tecla X. Entonces ahí lo tienen
chicos que lo van a hacer todo por este
sobre eventos de entrada, veremos en el siguiente.
28. Eje de evento: Bienvenidos de nuevo a todos. En este video, nuestro
objetivo es conocer qué
son los eventos de acceso en irreales, cómo podemos crearlos, en cómo podemos usarlos. Ahora en la actualidad, nuestro blueprint de
personajes ya tiene algunos eventos de acceso
dentro de él y funcionando. Vamos a seguir adelante y
comprobar esos hacia fuera. En primer lugar, al entrar en carpeta
Blueprints en tercera persona de
tu contenido, encontrarás tu
personaje BP ThirdPersonCharacter. Haz doble clic en
eso para abrirlo. Y aquí es donde dejamos crear nuestro evento de entrada sprint,
esos eventos de entrada de acción. Y esto ya había
saltado evento de acción de entrada que la buena gente Epic Games ya había
incluido con esto. Ahora arriba encontrarás algunos eventos del eje
e incluso lo dice en el nombre. Tenemos un evento de eje de entrada para avanzar y retroceder, uno para mover a izquierda y derecha. Esto controla el movimiento de nuestro
personaje. Y luego aquí arriba tenemos algunos eventos del eje de entrada de
cámara, uno para el gamepad, y luego uno aquí en PC
para ti, un folk de ratones. Y esto está determinando el movimiento de nuestra
cámara a izquierda y derecha y arriba y abajo a medida que
estamos moviendo eso por todas partes. Ahora bien, ¿de dónde salieron incluso estos
eventos del eje? Bueno, si recuerdas de
nuestro último video dentro de la configuración de nuestro proyecto
es donde podemos crear no solo eventos de acción de entrada, sino también estos eventos del eje de
entrada. Entonces voy a pasar por
debajo de mi botón de edición en el extremo superior
izquierdo del editor. Esta es otra forma de
acceder a la configuración del proyecto. Dentro de la
configuración de su proyecto vienen bajo la opción de entradas a lo largo
del lado izquierdo. Y como pueden ver, tenemos mapeos de
acción que tratamos
en el último video. Y aquí tenemos mapeos
de
acceso aquí todos los nombres para
los diversos eventos de ejes que actualmente existen
dentro de nuestro editor. Ahora si amplío uno
de nuestros eventos de eje aquí, puedo ver que puedo enlazar no sólo los botones del teclado a
un evento de acceso con nombre dado. También puedo comprar algunas entradas de controlador
así que es similar a los
mapeos de acción de entrada que tuvimos
en el último video, como nuestro salto y nuestro sprint. Ahora, hablaremos de lo que significan
estos valores de escala un
poco más adelante aquí. Pero antes de llegar a eso,
definamos en qué eventos un
eje incluso es cómo
difiere esto de un evento de entrada, uno de estos eventos de
entrada de acción, bueno, la principal diferencia es acceso eventos son eventos que
se disparan continuamente, es
decir, una vez por cuadro para
realmente conducir a casa este punto, saltemos a nuestro plano de personaje en tercera
persona. Y si me alejo un
poco aquí y hago clic en Reproducir, se
puede ver que mis diversos eventos de acceso
se están disparando sin parar. Y tiene que hacerlo porque
si va a estar manejando el
movimiento de nuestro personaje per
se, tiene que estar
actualizando nuestro movimiento cada fotograma
hacia adelante y hacia atrás, izquierda y derecha, así como
la cámara movimiento a la derecha. Ahora otro rasgo definitorio de los eventos de
acceso es que
pueden salir en el
valor del eje y esto se vincula en. Si salto de nuevo a la configuración de nuestro
proyecto, estos valores de escala que se ven a lo largo del lado derecho
de las diversas entradas. Para w, tenemos una escala de uno, y para S tenemos una
escala de uno negativo. Ahora, para ver estos en juego, déjame saltar de nuevo en mi tercer personaje
BP. Y voy a
modificar este script aquí apenas siempre tan ligeramente. Voy a hacer clic derecho
y algo de espacio vacío y escribir cadena de impresión. Y voy a
tomar nuestro eje de entrada, avanzar y retroceder, canalizarlo justo por aquí. Y voy a estar
sacando el valor del eje. Se va a convertir
este flotador en una cadena, y va a
imprimirlo en la pantalla. Sigamos adelante y hagamos esto ahora. Y puedes ver una vez más, esto se está disparando cada fotograma
a lo largo del lado izquierdo, estás viendo un valor
de 0 porque no estoy presionando hacia abajo ni W ni S. Ahora, cuando presiono la tecla
W para avanzar, mira a lo largo del
lado izquierdo de mi ventana de juego. Se ve que todos esos
valores cambian a uno. valor de mi eje es uno. Cuando presiono la tecla Esc, todo cambia a uno negativo. Ahora, en un teclado está
todo o ninguno, ¿verdad? No hay gradiente
como se puede obtener con un stick analógico
donde
sólo
se puede empujar un poco. En un teclado. Es sólo uno. Dame todo esto en
adelante, o lo contrario de uno, que es negativo. Estamos utilizando los valores
de uno y negativo uno para significar una
cosa en adelante, o lo contrario de esa
cosa en este caso, que es ir hacia atrás. Ahora bien, si todo esto es
poco confuso, puedes pasar el ratón sobre
este valor de escala en este nodo de función para
agregar entrada de movimiento. Y
te pueden decir que se puede usar también para entrada analógica. No tiene que ser
solo uno o negativo. Estos ajustes de escala
solo están determinando el rango. Y puedes tener un rango
con un stick analógico, mientras que no puedes tener
eso con eventos de teclado. Ahora, actualmente sí tengo un controlador conectado a mi computadora para demostrar esto. Déjame saltar de nuevo aquí. Haga clic en Reproducir. Y ahora voy a estar usando mi mando Xbox y presionando hacia adelante con el
pulgar izquierdo siempre tan ligeramente. Y se puede ver que
el valor es 0.08. Y a medida que lo empujo
hacia adelante cada vez más, me está dando bueno como
acercarme a uno. En tanto que si tiro hacia abajo del pulgar siempre tan ligeramente, y luego cada vez más
y más y más, me
está acercando
a mis otros límites, que es negativo. Entonces el stick analógico me
está permitiendo ir a algún lugar entre negativo 11. Ahora para conducir más lejos a
casa este punto
tengo una gráfica aquí para ustedes. Mirando a vista de pájaro, vista arriba hacia abajo de nuestro personaje. Este es nuestro pulgar izquierdo. En la Configuración del proyecto
bajo nuestros mapeos de acceso, establecemos nuestra w para tener un valor de escala de uno Eso es
lo más lejos que podamos ir, que es igual a que vas
hacia adelante lo más rápido que puedas. En el extremo opuesto. Nuestra clave S tiene un valor, un valor de escala de negativo, es
decir, lo contrario de uno, en este caso va en
sentido inverso. Ahora otra vez, en un teclado, si presionas W,
No hay, no hay entremedio aquí. O vas de 0. No me muevo todo
el camino a uno, voy adelante
y a toda velocidad. Si toco la tecla S, eso significa que voy
hacia atrás a toda velocidad. No hay entremedio, sin embargo, con el pulgar
izquierdo, puede hacerlo para
que pueda simplemente empujar hacia adelante un
poco y llegar a la
mitad de sus límites
de uno o negativo 0.5 a tus límites de uno
negativo yendo en
la dirección inversa. Ahora bien, vale la pena
señalar aquí que sus valores de escala no tienen que correr de uno a uno negativo. Podrías establecer
otros valores de escala, pero a menudo ese
es el rango establecido. De acuerdo, Siguiente, sigamos
adelante y creamos un par de eventos de acceso que
podamos hacer uso. Así que voy a hacer clic en este
botón más bajo Mapeos de acceso, asegúrate de no hacer
esto en Mapeos de acción. Además déjame derrumbarme mi
movimiento hacia adelante y hacia atrás. Voy a nombrar a este
primer compañero. Muévete horizontal. Y voy a poner
esto a mi llave L. Vamos a hacer algunos
eventos de teclado haremos L, la tecla L. Y la escala para esto
va a ser 11 veces más. Voy a poner lo contrario
de esto para que sea la tecla J. Y eso va a tener
una escala de negativa. Entonces voy a añadir otro
eje de mapeo aquí. Esto se va a llamar
compañero, muévete vertical. Y vamos a
establecer esto para tener
al repulsado con la
escala puesta en uno. Y lo contrario a eso de
eso va a ser la
tecla K y poner la escala para
que sea negativa. Ahora lo que vamos a estar
apuntando a hacer aquí es agregar un componente a nuestro
Third PersonCharacter. Y usando estos Mappings de Acceso, vamos a poder
mover ese objeto alrededor. Va a ser una esfera sencilla. Por lo tanto, compañero, mover horizontal ,
compañero, y mover vertical. Lo hemos configurado en la configuración de
nuestro proyecto en la categoría de entrada, Vamos a saltar de nuevo a
nuestro Third PersonCharacter. Y lo primero que
vamos a hacer antes de siquiera tratar con esos eventos de acceso
que acabamos de crear. Vamos a agregar unos componentes. Entonces da click debajo de componentes, vamos a agregar un componente. Vamos a agregar una esfera
simple componentes. Ahora encima en el panel Detalles, realidad vayamos
primero
al puerto de vista para poder ver esa esfera, esa es una esfera gigante,
enorme. En primer lugar
voy a bajar la escala. Yo quiero fijar un uniforme hacia abajo. Así que vamos a seguir adelante y
dar clic en este botón de candado para que si
cambio uno de estos valores, 2.5, cambie
los tres. Eso es lo que hace ese icono de candado. También voy a establecer
la ubicación para que sea a 20 en el eje x. Simplemente también, póngalo un
poco
frente a nuestro personaje. Ahora también voy a
crear dos variables para ayudarnos con nuestro guión que vamos a
estar escribiendo aquí. El primero va a venir bajo variables además de que se va a llamar tarifas
horizontales acompañantes. Y esto va a
ser una variable flotante porque va a ser
un valor decimal. Voy a hacer
clic derecho en esto. Voy a duplicar
esto y esto se va a llamar compañero. Tasas verticales, mips
mal deletreados ahí un poco. Y si compilo, puedo establecer algunos valores
por defecto aquí. Entonces voy a fijar mis tarifas
horizontales en diez. Y también voy a marcar
esta casilla, por ejemplo, editable que entrará en
juego aquí un poco más tarde. Y haré lo mismo para mi
acompañante Tarifa vertical. Pondré eso a diez también. También marque esta casilla,
por ejemplo, editable. Y sigamos adelante
y guardemos eso. A continuación, vamos a seguir adelante y
crear algún script over en nuestro gráfico de eventos utilizando esos eventos de eje
que acabamos de crear. Así que moviéndome un poco a la
izquierda aquí, yendo a hacer clic derecho
y algo de espacio vacío, voy a escribir
y moverme horizontal. Y ahí está mi evento de eje para
compañero, muévete horizontal. Ahora bien, no se confundan entre los valores de los ejes y
los eventos del eje. Queremos que compañero se mueva horizontal con un pequeño icono de
flecha justo ahí. Boom. Ahora voy a hacer clic derecho
y vamos a escribir en movimiento vertical, vertical. Ese pequeño icono de flecha derecha también lo
indica en eventos. De acuerdo, y lo
que queremos hacer es mover nuestra esfera aquí un
poco cada cuadro. Así que sigue adelante y arrastra y
suelta esto en nuestro gráfico. Aquí y aquí abajo. Y voy a arrastrar
fuera de nuestra esfera y escribiendo añadir ubicación relativa. Por lo que queremos actualizar
la ubicación de esta esfera, cada fotograma. Voy a enchufar
esto de inmediato. La ubicación delta
es lo mucho que queremos cambiar nuestra ubicación relativa. Entonces para hacer esto,
voy a arrastrar fuera de nuestros ejes valor y hacer una
búsqueda de un nodo multiplicar. Quiero multiplicar esto por
nuestras diferentes tarifas aquí. Realmente podría haber hecho
solo una variable aquí y llamar a esa tarifa solo acompañante. Pero sólo para jugar bien aquí, voy a enchufar
nuestro compañero y tarifa
horizontal
directamente ahí. Y luego voy a
tirar hacia atrás de esta ubicación delta y
escribir en make vector. Estamos buscando un nodo vector
make. Ahora de nuevo, este valor vectorial está buscando una x, y, y z solo
queremos cambiar la
ubicación de los eventos de este eje. En el eje y, lo vamos a
estar moviendo horizontalmente. Entonces el eje y, el
eje y, esa flecha verde. Entonces esos van a ser esos guiones. Y lo vamos a hacer de
manera similar aquí abajo. Voy a copiar y pegar
estos tres nodos aquí mismo, 123 resaltando
los tres, control C, control V. Ordena
esto un poco. La esfera es lo que
hacemos al movernos. Y llegamos a asegurarnos de que
conseguimos el valor de nuestros ejes aquí, en nuestro compañero, en este caso, Tarifa
vertical aquí mismo. Una vez más, podríamos
haber creado una variable llamada tasa
acompañante, ya que son del mismo valor. Pero sí quiero que
luzca esta característica
editable instancia aquí
en sólo un poco. De acuerdo,
vamos a compilar esto. Vamos a guardar esto en. Ahora bien, si miramos hacia atrás en la configuración de
nuestro proyecto, se
puede ver que si
movemos la tecla L y J, vamos a mover
este compañero, si se quiere, horizontalmente. Y si presionamos
el I o el KCI, lo
vamos a mover verticalmente. Entonces saltando de nuevo a
nuestro editor de nivel aquí, voy a seguir adelante
y hacer clic en plaquetas. En realidad, vamos a
disparar esto de nuestro
Third Personacter. Yo quiero ver el
guión disparándose. Así que haz clic en jugar aquí.
Sepuede ver una vez más, estos se están disparando sin parar. Realmente debería desenganchar
esa cadena de impresión. De hecho, déjame hacer eso ahora. Voy a desenganchar
esta cadena de impresión de antes porque eso
solo va a ser confuso. De acuerdo, estoy pinchando jugando. Esos eventos se están disparando. Se ve esa pequeña
esfera ahí frente a mí. Voy a hacer el
eje de entrada, moverme horizontal. Entonces J, K, L clave, así. Icky y KCI también
lo está moviendo horizontalmente también. Y la razón de eso es porque cometí este error de simplemente tener a ambos
cambiando la ubicación y. Voy a mantener pulsado Control, clic izquierdo y enchufar esto a la ubicación z y eso
debería solucionar ese problema. Ahora. J y L y yo y k Sí, lo pueden poner
por el piso. Ahora una característica divertida aquí es
que porque estamos haciendo alguna multiplicación aquí
para determinar en última instancia la velocidad a la que estamos cambiando la ubicación
de nuestra esfera. Puedo volver a
mi editor de nivel. Voy a cambiar
mi configuración de lugar, haciendo clic en estos
tres puntos
aquí mismo a la ventana gráfica seleccionada. Una vez que haga eso,
voy a jugar el juego y mi
seleccionar la ventanilla. Mi Third PersonCharacter,
que ha engendrado en el nivel aquí ahora está
apareciendo en mi outliner. Eso es lo que ese color amarillento indica que se
engendró en existencia. Y seleccionando esto, puedo
buscar un acompañante. Y puedo ver estas dos
variables que he expuesto al editor aquí desde mi BP ThirdPersonCharacter
marcando esa casilla editable de instancia
en cada una de estas variables. Ahora lo que esto
me permite hacer es como presiono la tecla R o la tecla J y L, o las
teclas I y K, Eso es genial. Pero cambiando el control de ganancia de F12, puedo modificar estos valores
hacia abajo en el editor ahora, así que cambiaré la velocidad
horizontal para que sea bastante lenta y la vertical
sea bastante rápida. Entonces haciendo clic derecho aquí atrás, mi viewport, J y L, se está actualizando lentamente, pero arriba y abajo
va bastante rápido. Entonces esa es solo una característica divertida
que pensé que tiraría
por ahí también. Una vez que escapo de aquí, vale la pena señalar que esos valores variables
vuelven a sus valores predeterminados. Eso es sólo para jugar con diferentes valores en el juego. Algunos elementos más buenos para conocer antes de cerrar este video,
ya que con los
mapeos de acción de entrada que se encuentran en
el último video, puedes seleccionar estos eventos. Y encima en el
lado derecho en el panel Detalles, puede modificar algunas
cosas sobre ellos, incluyendo ejecutar cuando pausa, me caí a hablar de esto, consumir entrada uno que también es disponible en los mapeos de
acción de entrada con esto, si se establece en true, entonces esa entrada solo
funcionará para el blueprint que tenga la
prioridad predeterminada más alta que la implemente. ¿ De acuerdo? Eso se puede encontrar de
nuevo en los valores predeterminados de su clase. Recuerda, debajo de tu entrada,
esta prioridad de entrada, que consuma
entrada solo funcione para el que tenga la prioridad predeterminada
más alta. Ahora, otra cosa a
anotar aquí con esto, esto se dispara de
cada cuadro, ¿verdad? Entonces tal vez te preguntes, bueno, si modifico en mi
clase los valores por defecto, la tasa de tick, ¿eso
afectará esto también? No, no lo hará. Afectar la tasa de tick
solo afectará ese evento. Evento tick, no
afectará la velocidad a la
que este tictac off. Esto va a
salir de cada cuadro, cambies esto o no. Muy bien chicos, eso lo va a
hacer todo por este video, veremos en el siguiente.
29. Cómo comenzar el evento: Alguna vez has jugado a un juego y has preguntado cómo cuando
tu personaje camina por ese pasillo oscuro
en un juego de temática de terror, un zombi salta en
el momento justo para asustarte. O tal vez estás jugando
un juego como Uncharted. Y a medida que Nathan Drake está
fluyendo a lo largo del borde de un acantilado rocoso, el acantilado
rocoso pasa a colapsar al pasar por una zona de aspecto
precario. Ahora la forma en que se hace
en los juegos es a través algo llamado volúmenes
gatillo. Y más específicamente, cuando
comienzas a superponer un volumen de
gatillo van. Este video es para mostrar cómo
podemos usar volúmenes de activación para iniciar un evento de superposición de
inicio de actor. Ahora bien, este es uno de los eventos más comunes
desencadenados en todos los juegos, y por lo tanto este es un
evento esencial de conocer. De acuerdo, vamos a
empezar aquí en la parte superior izquierda de nuestro editor, justo aquí debajo del, uh, agregar
rápidamente al
botón Proyecto, si se quiere. Podemos encontrar volúmenes, volumen
disparador. Puedes colocar uno de esta
manera en tu nivel. Alternativamente,
podrías venir bajo el panel de actores de lugar, que agregará un
panel de actores de lugar a tu editor de nivel. En aquí podrás encontrar diferentes
pestañas de diferentes actores, incluyendo una pestaña Volúmenes. Y aquí, todos estos están
listados alfabéticamente. Se puede encontrar un volumen de disparo. Déjame seguir adelante y
colocar uno de estos. Y alternativamente debajo de
la pestaña Básicos aquí mismo, puedes encontrar diferentes formas de volúmenes para agregar una
caja de gatillo o una esfera de gatillo. Hay algunas
diferencias sutiles entre ambos, aunque lo que pretendemos
hacer con estos
va a ser similar. En realidad no
importa cuál añada. Voy a agregar
esta caja de Trigger solo para mostrar un par de diferencias entre este
y mi volumen de gatillo. Ahora si el cuadro Trigger
seleccionado en el panel Detalles, me
va a dar acceso a una opción de grosor de línea
bajo la categoría Forma. Entonces voy a poner
eso en diez de inmediato. Y luego para la extensión de la caja voy a poner eso para que
sea algo así como, bueno, vamos 300 por 300 por 300, algo bonito y grande. Quiero que esto se coloque en
algún lugar frente
a mis jugadores. Empieza actor, pero no demasiado cerca, así que no
lo estoy superponiendo enseguida. Iremos algo así. Está bien si está penetrando un poco por el
piso. Ahora, también puedes establecer
un color de forma aquí. Por lo que si lo deseleccionas, mostrará ese color de
forma de verde. De lo contrario, cuando lo
seleccionas, tiene ese resaltado amarillo. Ahora, esto es sólo un espectáculo, un poco de
diferencia entre
nuestra caja de gatillo y
nuestro volumen de disparo. Si tengo mi disparador
Volumen seleccionado, en realidad
puedes cambiar
la forma de este. Esto no tiene que
ser de forma cúbica. Y para hacer eso, vendrías
debajo de la configuración de tu pincel. Y bajo la forma de tu pincel, podrías cambiar
eso por ser un cono. Podrías cambiar eso por ser una escalera si
quisieras, un cilindro. Y luego hay
diferentes propiedades para cambiar dependiendo de
la forma del pincel. Pero para los propósitos
de este video, me voy a deshacer
de esto y simplemente rodar con esta caja de Trigger. Funcionalidad será la
misma entre los que sin embargo. De acuerdo, entonces tenemos a esta
actriz seleccionada en nuestro nivel. Voy a hacer
algunos scripting aquí dentro de nuestros planos de nivel. Sigamos adelante y abramos eso. Y voy a poner esto en
mi Event Graph, Graph. Y en algún espacio vacío, simplemente
voy a hacer clic derecho. Y cuando haces clic con el botón derecho con un objeto seleccionado
en tu nivel, puedes agregar un evento
para ese objeto. En este caso, es Trigger box five es lo que se está llamando. Y bajo la sección de colisión, haría un quiero hacer un add
on actor, comenzar solapamiento. Cuando algo se superpone a
esta caja de Trigger. Podemos hacer algo y
podemos averiguar quién fue el
otro actor. Esto saldrá, nos hará
saber quién fue el otro actor. Sólo para ayudar a visualizar esto, voy a arrastrar fuera de
mi pin de ejecución aquí y traer una función de
cadena de impresión. Y voy a enchufar a este
otro actor directamente en esto para obtener el nombre para mostrar de lo que sea que se superponga esto, si yo fuera a compilar
esto y jugar, ejecutar mi personaje
a través de esto y mirar en la parte superior izquierda de
mi ventana de reproducción aquí, cuando superponga este volumen de
disparo, me mostrará que es un Third PersonCharacter
superponiendo esto. Ahora no puedes ver
este volumen de disparador actualmente en el nivel. Sigamos adelante y arreglemos eso antes de ir más allá aquí. Entonces voy a volver a mi editor de niveles aquí con
mi caja de gatillo seleccionada. Tengo a este actor escondido
en la casilla de verificación Juego marcada, lo que significa que esto
se ocultará en el juego. Si desmarco esto, entonces
adelante y juega. Ahora puedo ver ese
volumen de gatillo en toda su fea gloria. De acuerdo, hagamos que
algo suceda cuando solapemos estos volúmenes
disparadores. Entonces volviendo a mi
plano de nivel. Ya me puedo deshacer de esto, haga clic con el botón izquierdo y arrastre ahí para que le ponga
al otro actor. Bueno, vamos a arrastrar fuera
de esto y vamos a hacer este casting a nuestro personaje en
tercera persona sólo para asegurarnos de que sólo
queremos que algo suceda cuando nuestro Third PersonCharacter
se está superponiendo también, estamos va a estar impactando directamente a nuestro Third PersonCharacter
aquí también. Entonces es una especie de doble
propósito por qué estamos haciendo esto. Entonces, cuando el otro actor es
el tercer personaje, ¿qué queremos hacer? Bueno, podemos llegar a nuestro Third PersonCharacter aquí en modificar algo al respecto. Incluyendo si traigo abierto mi Third PersonCharacter
Blueprint. Incluyendo podemos
modificar algunas propiedades en los componentes de este
movimiento de caracteres. Entonces hagámoslo. Y recordamos que el Componente de
Movimiento de Personajes puede controlar cosas como qué
tan rápido o un personaje se mueve. Esa es esa
propiedad de velocidad máxima de caminata justo por aquí. Así que de vuelta aquí en mi
Level Blueprint, voy a arrastrar fuera de mi como BP Third PersonCharacter y mecanografiar caracteres, gritos, movimientos de
carácter. Podemos encontrar que en
la parte inferior aquí, obtener el Componente de
Movimiento de Carácter. ¿ Y qué queremos
modificar dentro de este Componente de Movimiento de
Caracteres? Bueno, quería modificar
esta velocidad máxima de caminata. Entonces voy a volver a
mi Plano de Nivel aquí. Vamos a arrastrar fuera
de esto y teclear en set max, caminar, velocidad. Ahora ves este tipo de cosas hechas en juegos todo el tiempo. De hecho, hace poco terminé tocar el remake de Final Fantasy
seven. Hay áreas en ese
juego donde la lucha de Nube está caminando y su velocidad de
movimiento se ralentiza. Entonces lo que está sucediendo
allí es la nube se está superponiendo a una caja de Trigger y la velocidad máxima del personaje se
está ajustando a un ritmo de caminata para evitar que
corra por un área. A lo mejor estoy
pasando por un espacio apretado o algo así. Voy a establecer la velocidad
máxima de caminata abajo a 200 aquí cuando estoy superponiendo
esta caja de Trigger, Vamos a compilar, asegúrese de que nuestro script se vea
todo bien aquí. Y luego juguemos. Ahora déjame configurar mi
opción de depuración aquí arriba a mi mapa de prueba de nivel para que puedas
ver este evento disparándose. Mueva esto hacia arriba. ¿ De acuerdo? Y se puede ver que estoy
corriendo a un ritmo decente. Pero cuando voy un solapamiento
este volumen de gatillo, me desacelero. Ahora puedes ver que cuando salí
de este volumen de gatillo, no
vuelvo a acelerar. Y eso se debe a que este es un evento de inicio de superposición en actor on. Está afectando a mis
personajes establecer mi velocidad máxima de caminata cuando la
estoy superponiendo,
pero no le estoy diciendo
que vuelva a cualquier velocidad máxima de caminata habitual
cuando termine esa superposición. Ahora ese es un ejemplo muy básico, pero vamos a llevar esto
unos pasos ridículos más allá solo para mostrarte la gama de cosas que
podrías hacer en un actor que comience a solaparse. Bueno, una cosa que podrías hacer es arrastrarte
fuera de esto y
podrías reproducir sonido en locación. ¿ En qué ubicación? Bueno, podríamos decir la ubicación de nuestra caja de
gatillo. Hagamos clic derecho y
algo de espacio vacío. Todavía tengo mi
caja de gatillo seleccionada en el nivel. Entonces vamos a crear una referencia
a un cuadro de Trigger. Arrastra fuera de esto y di Get Location, get actor, location. Realmente no hace falta hacer
esto en un lugar dado, pero voy a tocar algo de
música en un lugar determinado. Seguro. Correcto. Eso es algo que podríamos hacer. Algo más que podríamos hacer es que podríamos secarnos de
esto y podríamos engendrar actor de clase. ¿ Qué queremos desovar? Bueno, primero que nada, tenemos que decirnos
dónde desovar. Así que usando nuestra
caja Trigger una vez más, puedo arrastrarme fuera de esto y
decir sin embargo actor transform. Entonces, ¿qué queremos desovar
en esa rotación de ubicación? Vamos a desovar en seguro,
algo de humo mostrando. Entonces también podemos hacer algo
como arrastrar fuera de esto y escribir sistema de spawn en la ubicación. Ahora el sistema va a desovar
cualquier sistema de partículas del Niágara. Tan irreal tenía esta cosa
donde acostumbraban a cada sistema de partículas llamado cascada y ese era
el sistema más antiguo. Algunas de las explosiones y efectos de
fuego que me has
visto usar hasta ahora. Ese es el sistema de
partículas más antiguo, pero el balanceo con el sistema de partículas
Niágara de Huron. Por lo que si quisieras agregar un sistema de partículas de
Niagara, puedes ir a la tienda de
Epic Games y en el mercado
bajo Unreal Engine cinco, podrías venir bajo efectos
visuales. Se podría establecer el precio
máximo a libre. Y puedes buscar agregar algunos de
estos
efectos de partículas del Niágara a tu proyecto. Eso es bastante sencillo. No voy a hacer
eso ahora
porque va a llevar un
poco de tiempo. Pero si tuvieras que
seleccionar uno de estos, podrías agregar al proyecto. Selecciona a qué proyectos
queríamos agregarlo. ¿ Qué diablos? Voy a añadir esto probablemente después de este video en el proyecto. Y así es como
harías eso. Tan pronto como hagas clic
en este botón, vuelta aquí en tu editor de niveles, verías aparecer las carpetas
apropiadas que tendrían esos efectos de
partículas en su interior. Y eso te permitiría entonces
ranurar en un sistema apropiado. Por supuesto,
tendrías que decir esto donde quieres engendrarlo. De acuerdo, así que solo para
demostrar esto, sigamos adelante y pinchamos en
play una vez más. Y cuando solapamos esto, ralentizando,
tocando algo de música, y nuestro efecto de planos está
emitiendo algo de humo ¿verdad? Smack dab en el centro. Tiro con arco. Por último, es importante
darse cuenta de que estos
eventos de superposición comienzan no
solo están restringidos a
estos volúmenes disparadores que se encuentran aquí en el panel de actores de
su lugar. Por el contrario, me
atrevería a decir que la mayoría de los eventos de inicio de superposición
que utilizo en scripting se encuentran dentro de
las propias clases de blueprint. Ahora, para demostrar esto, volvamos al interior de
nuestra pastilla de ejemplo bp. Haz doble clic en
eso para abrirlo. Y si recuerdas desde el
inicio del curso, estábamos usando un colisionador de esferas, un volumen de disparo
para comprobar si nuestro personaje en tercera persona se
superponía a eso para
poder recogerlo. Ahora
bien, si me encuentro debajo de
este panel de componentes aquí mismo y hago clic en Agregar, si me desplácese hacia abajo, hay diferentes tipos de volúmenes de disparo están bajo
la categoría de colisión, pero hay caja colisión, colisión forma de
cápsula
y colisión de esfera. Ahora con cualquiera de estos
agregados a un blueprint, si lo seleccionas encima
en el lado derecho, puedes ver que tienes un evento de inicio de superposición
asociado a él. Esto está en el fondo. Alternativamente, si
tuviera que hacer
clic derecho en esto y venir
bajo Agregar eventos, ese mismo evento está
disponible aquí también. Así como un recordatorio
aquí, mi gráfica de eventos. Aquí es donde estoy usando un
componente impar, comenzar solapamiento. Este es un
volumen disparador de tipo. Es sólo un componente extraño. Es un volumen de disparo componente actualmente en forma esférica. Y siempre enumera el nombre del componente
aquí entre paréntesis, igual que en el
plano de nivel, enumera
el nombre del también
enumera
el nombre delvolumen disparador
entre paréntesis. Esto es sólo un actor comenzar
solapamiento en mi ejemplo de BP, es en componente comenzar solapamiento. Ambos son eventos superpuestos en los que se puede
disparar algún guión. Bueno chicos, eso lo va a
hacer todo por esta. En el siguiente video,
hablaremos de los eventos finales de superposición. Te veré ahí.
30. Superposición del final del evento: Bienvenidos de nuevo a todos.
Eneste video, nuestro objetivo es mostrar cómo los volúmenes de
disparo también se pueden usar para disparar
y superponer eventos. Ahora a veces
quieres que algo suceda cuando
comienzas a entrar a una zona y a veces
quieres que
sucedan cosas al salir de una zona. El evento de superposición final
es para esos momentos en los
que quieres que algo suceda
al salir de un área. Ahora dejamos el último video donde cuando entré a este volumen, este volumen disparador de aquí mismo, ralentizaría mi personaje hacia abajo. Ahora hice algunas cosas más
ridículas como tocar algo de música y engendrar un efecto de partícula,
ese tipo de cosas. Pero en realidad no estoy acelerando mi carácter volver a subir una vez que
salí de ese volumen. Entonces aquí adentro, vamos a
explorar cómo hacer precisamente eso. Ahora antes de que lleguemos a eso, voy a saltar de nuevo mi Level Blueprint aquí mismo. Y sí rematé agregando un sistema de partículas Niagara
al final aquí. Y solo quería
señalar en el último video, te
dirigí a
la Epic Game Store. Y mientras estamos aquí, fui al
mercado y
buscábamos algunos efectos visuales. Tú E5, pasé por debajo un UE cinco efectos visuales
y creo que estaba señalando debajo de
los paquetes gratis. Este de aquí, este
es el viejo sistema en cascada. Si quieres algunos efectos del
Niágara, ve con uno que diga
Niágara aquí mismo. Ahora sí incluí
esto entre videos. Y así cuando lo
toque ahora, verán
que tengo una reina en ducha que va a estar
desovando ahí también. Sólo quería señalarlo
para completar ese último bit. De acuerdo, sigamos adelante
con el solapamiento final. Por lo que se puede ver en
el inicio solapamiento donde ralentizar nuestro
personaje hacia abajo. Bueno, vamos a acelerarlos de nuevo. Ahora, al igual que
lo mostramos en el último video, si queremos agregar este evento
a nuestro Level Blueprint, debes
asegurarte de que tienes a ese actor seleccionado
en tu nivel. Así que sigamos adelante y
asegurémonos de que
tenemos los volúmenes de activación seleccionados. Puedes seleccionarlo aquí o
encima en tu Outliner. De cualquier manera lo haremos. Y de vuelta en tu Plano de
Nivel. Es así como puedes volver
al plano del amor. Adelante y haz clic derecho
y algo de espacio vacío, podemos agregar un evento para esto que se conoce como
Trigger box five para mí, no te alarmes si dice
algo más para ti. Caja de gatillo 27 o lo que sea. Realmente depende de
cuántas cajas de gatillo hayas agregado hasta el momento. Aquí queremos
hacer en un solapamiento. ¿ De acuerdo? También vamos a hacer un casting a nuestro
Third PersonCharacter. Queremos averiguar
si lo que
terminó con el solapamiento Cast to Third PersonCharacter fue
el personaje de tercera persona. Ahora, si fue el
Third PersonCharacter el que terminó superponiéndose,
ese volumen de disparo, queremos agarrar, sacar nuestro Componente
de
Movimiento de Carácter de ese
Third PersonCharacter. Y luego podemos arrastrar
fuera de esto y escribir en set max, caminar, velocidad. Y de nuevo, sé que
esta propiedad existe porque dentro del componente de movimiento del
personaje, dentro de mi personaje en
tercera persona, hay un parámetro de
velocidad máxima de caminata. Entonces eran 500 antes. Permítanme saltar de nuevo en
mi plano de tercera persona solo para mostrar esto conduciendo a casa Componente de
Movimiento de Personajes, la velocidad máxima de caminata está
actualmente establecida en 500. Entonces por aquí en mi Plano de
Nivel, voy a establecer esa velocidad máxima de
caminata de nuevo a 500. Entonces, cuando terminemos de superponer ese volumen de gatillo,
deberíamos, deberíamos volver
a subir a nuestra velocidad normal. Y sólo quiero mostrar que estos eventos se van
a disparar aquí. Así que déjame establecer mi
opción de depuración ahí mismo. Devuélveme a mi personaje. Muy bien. Se puede ver que
corría a 500. Dentro del volumen del gatillo. Cuando salgo y me
superpongo de nuevo hasta 500, se podía ver justo aquí
abajo estos eventos
encendiéndose. Muy bien. Por lo tanto, considere los otros
usos posibles para un solapamiento final. Podríamos hacerlo para que
cuando nosotros y superpuestos
pudiéramos dejar de tocar alguna
música que engendramos, que no podamos detener esta música porque esto es un
fuego y olvidamos. Pero si te hilaste en música, podríamos ahorrar eso
en una variable y luego dejar de tocar su música. Quizás te
vendría bien un solapamiento final para dejar de lastimar al jugador. A lo mejor jugador estaba en una zona de gas venenoso que estaba afectando su salud en
cuanto la superpusieron. Pero cuando terminaron
superponiéndose que ya no están
perdiendo salud. O tal vez podría
ser algo como lo
ves en Uncharted o
Final Fantasy seven, que cuando comienzas a
solapar volumen, no
puedes dibujar un arma, pero cuando terminas
superponiendo ese volumen, puedes sacar esa arma. Eso se puede hacer a través de variables
booleanas establecidas dentro de su
ThirdPersonCharacter. Bueno chicos, eso lo va a
hacer todo por este video, veremos en el siguiente.
31. Cómo comenzar el cursor: Bienvenidos de nuevo a todos. En este video
vamos a crear un par de planos
y también cambiar configuración de
un proyecto solo
para poder mostrar
lo geniales que son los eventos mouseover. Ahora bien, estos son grandes eventos para saber si
quieres hacer que algo suceda al pasar
el mouse sobre un objeto, como un elemento de
cambio de color, como algún tipo de efecto
resaltado, o haciendo que aparezca una
descripción del artículo tal vez
el nombre del objeto sobre el que eres
un colgado somero. O tal vez algunos textos
que dice presionar X para interactuar o recoger este
objeto, ese tipo de cosas. Ahora este va a ser
predominantemente un tipo de evento de PC, pero es bueno
saberlo sin importar en
qué plataforma
estés desarrollando. Sólo por ver todo lo que
se puede hacer aquí en Unreal. De acuerdo, para presumir de esto,
vamos a crear un plano de clase preciso. Y puedes poner esto en
cualquier carpeta que quieras. Pero voy a venir bajo
mi carpeta de descripción general de scripting, y voy a hacer clic derecho
en algún espacio vacío, venir bajo clase Blueprint. Después de clase es el que estamos buscando y
voy a nombrar este BP subrayar eventos del ratón. Entonces vamos a hacer doble
clic en este tipo para abrirlo. Vemos nuestra raíz de
escena predeterminada aquí mismo. Vamos a agregar
un solo componente. Así que ven debajo del
panel Componentes, haga clic en Agregar. Vamos a agregar una
esfera componentes. Genial, y sigamos adelante y bajemos esto justo a nuestro nivel. Probablemente buena idea
colocarlo justo frente a donde va a estar
desovando
tu personaje en que
los jugadores comiencen actor. Para que podamos ver esto de
inmediato y luego saltar de
nuevo en sus eventos del mouse
p.sit y dirigirse
al Event Graph. Ahora, queremos hacer que
algo suceda
cuando pasemos el ratón sobre
nuestra esfera aquí. Entonces, ¿qué eventos
tenemos disponibles para esto? Bueno, con nuestros
componentes de esfera seleccionados en el panel Detalles
en la parte inferior, usted puede encontrar todos los
eventos asociados y disponibles para usted para este componente en
particular, incluyendo On begin cursor sobre. Entonces si hago clic en este botón más, puedo agregar este evento a nuestra gráfica y me
saltará directo a él. Ahora, también puede agregar estos
eventos si fuera a, haga clic derecho en ese componente. Y luego el pequeño menú
fly-out agregar evento, lo
encontrarías en esta lista. El motivo por el que no es esta lista es porque ya está
agregada a nuestra gráfica. Pero si no se
agregó a nuestra gráfica, aquí también lo
podemos encontrar. De acuerdo, entonces lo
que queremos que suceda es cuando movemos
el cursor del ratón sobre la esfera, vamos a
cambiar nuestro material. Entonces vamos a agarrar una
referencia a nuestra esfera. Haz clic con el botón izquierdo del ratón y arrastra
esto al gráfico. Y vamos a arrastrar fuera de nuestra esfera
para poder hablar con ella, para cambiar algo al respecto. Voy a teclear material
de set. Y una vez más, sabía que
esta es una propiedad que podría cambiar sobre este componente porque si selecciono mi esfera, uno de los
detalles disponibles es el material. Entonces esa es una buena pista si alguna vez
te estás preguntando, oye, ¿qué puedo cambiar un componente dado mientras
simplemente selecciono ese componente. Y en los detalles,
mira todas
las diferentes cosas que
posiblemente podrían cambiarse al respecto. Ahora voy a poner
mi material aquí para que sea algo bastante odioso. ir a escribir en vertex verde, Eso es lo que
busco. Y la razón por la que no lo estoy
encontrando es porque si hago clic en este pequeño icono de engranaje, quiero buscar no
sólo mi contenido normal sino también el contenido de mi motor. ¿ Y no está verde vértice aquí? Déjame solo teclear
verde ahí está. Modo de vista de color de vértice , solo
verde, ese es el
que estoy buscando. Entonces si compilo esto, puedo ver que mis scripts
aquí es bueno para ir. Yo también lo guardaré. Se podría pensar, vale, si
salto al juego y
pongo el cursor del ratón sobre este
miedo de que esto funcione. Bueno. En realidad no
va a funcionar todavía. Necesitamos hacer algo de
trabajo dentro de los
planos de un controlador de jugador para habilitar
realmente estos eventos
del mouse sobre. Ahora, los planos
del controlador del jugador es algo de lo que
vamos a hablar mucho más cuando
hablamos de blueprints de framework. Pero para hacer justicia a este video en
particular, tengo que vadear
en estas aguas. Para los propósitos de este video, todo lo que necesitas saber sobre el blueprint del controlador del jugador es que el
controlador del jugador trabaja en tándem con un personaje o
Blueprint de Clase de Peón para afectar tu experiencia de
juego. El controlador del reproductor son
esencialmente las cuerdas de títeres. El personaje es el Títere. Tú eres la marioneta. Analogía excesivamente simplificada, lo sé, pero el blueprint del
controlador del jugador tiene algunas configuraciones de mouse
dentro de él que necesitamos
establecer para establecer para este comience cursor sobre el
evento realmente suceda. Sigamos adelante y creemos planos de
este controlador de jugador. Así que de vuelta aquí en
nuestro editor de niveles, voy a crear
una carpeta completamente nueva para albergar los planos de este
controlador de jugador. Entonces voy a hacer clic derecho
en mi carpeta de scripting. Vamos a
crear una nueva carpeta. Y voy a
llamar a este framework porque vamos a estar agregando algunos frame work tipo Blueprints más adelante en el framework del
curso. Los planos son algunos planos de alto
nivel para determinar las cosas sobre todo
su proyecto. Y dentro de aquí voy
a hacer clic derecho en clase Blueprint. Y uno de los más comunes es un blueprint de
controlador de jugador. Controla un peón utilizado por el jugador. Esa es
la descripción ahí. Y sigamos adelante
y creamos esto. Voy a llamar a este BP
underscore player controller. Vamos a hacer doble
clic en este tipo para abrirlo. No mucho aquí,
sin embargo, en la clase, el botón de valores predeterminados de clase
con el seleccionado encima en el panel Detalles vienen debajo esta sección de interfaz del ratón. Esta es la parte realmente
importante. Una cosa que quieres
asegurarte de que haces es mostrar un cursor de ratón
marcando esta casilla, nos vamos a asegurar
que nuestro cursor del ratón que estoy
agitando en este momento
va a estar presente
en la pantalla. Y el otro biggie que
necesitas configurar aquí es habilitar el mouse sobre eventos. Eso es crítico para que este
cursor sobre los eventos suceda. Asegúrate de
compilarnos y salvarnos. Podemos seguir adelante y
cerrar fuera de aquí, pero aún no hemos terminado. Hemos creado este blueprint de
controlador de jugador, pero no le hemos dicho
a nuestro proyecto que use este blueprint de
controlador de reproductor. Entonces saliendo de aquí, vuelve a tu editor de nivel
principal. Puedes venir en
Configuración, configuración del proyecto, y en la sección de mapas
y modos, tenemos esta clase de
controlador de jugador. Queremos configurar esto a nuestro cliente bp player
controller que acabamos de crear. Al hacerlo, le estamos diciendo a
nuestro proyecto aquí que hemos creado para usar esta clase de controlador de
jugador. Y esa clase de
controlador de jugador. Recuerden, ¿tienen activados esos eventos
mouseover? Genial. Ahora podemos saltar de nuevo a nuestro nivel. Sigamos
adelante y juguemos. Y se puede ver mi
cursor está presente en la pantalla y se puso verde
casi inmediatamente aquí. Déjame seguir adelante y jugar. De acuerdo, no es verde. Debo haber pesado mi
mouse sobre ella de inmediato. Así que déjame solo hacer clic derecho
y algo de espacio aquí. Esa esfera es de ese color
blanquecino y en
cuanto le pase el
ratón, boom, se vuelve verde. Ahora, saltando de nuevo en nuestro blueprint de eventos de mouse
bp, se
puede ver cómo podría extender esta funcionalidad
para reproducir un sonido 2D, un sonido de confirmación de tipo cuando empiezo a pasar el mouse
sobre la esfera. Pero no estoy haciendo nada cuando terminé con esa superposición
de la esfera. Nos ocuparemos de esos
eventos en el siguiente video. De acuerdo, quiero
mostrar un ejemplo más aquí antes de
terminar este video, vamos a hacer este
siguiente ejemplo dentro de nuestro bp, un ThirdPersonCharacter
Blueprint. Entonces me subiré por allá otra vez. Eso lo puedes encontrar en planos en
tercera persona. Dentro de nuestro
ThirdPersonCharacter. Vamos a establecer el material para nuestro personaje cuando
empecemos a pasar el ratón sobre él. Ahora la razón por la que voy a
estar mostrando esto es mostrar un parámetro
que vas a necesitar tener establecido
aquí
para que estos
cursor sobre eventos funcionen. Entonces lo que quiero hacer es cuando soy un mousing sobre
este componente de la cápsula, esa es esta cápsula invisible encapsula nuestro personaje. Quiere que pase algo. Vamos a cambiar la malla, ese es el material,
si se quiere, el color, la malla del color de nuestro, de nuestro maniquí aquí. Pasemos al
Event Graph. Y con este Componente Cápsula seleccionado, voy
a hacer clic derecho. Vamos a agregar eventos encendido, comenzar con el cursor sobre. Se va a agregar este
evento a mi Gráfico de Eventos. Entonces voy a
arrastrar en mi malla que es todo este maniquí, si se quiere, arrastre esto adentro. Y luego me voy a
arrastrar fuera de esto y teclear un material de sets. Y lo voy a hacer para
que nuestro material cambie a, lo
voy a cambiar a verde
también , ese color odioso. Muy agradable. Ahora, voy a seguir adelante y compilar esto, guardar y jugar. Y así ahora se puede ver cuando
paso el ratón sobre mi esfera, sí, eso cambia de verde. Esperarías lo
mismo cuando me pasa el ratón sobre mi maniquí aquí también, pero no parece estar
funcionando lo que está pasando aquí? Bueno, si estás buscando
hacer algo como esto, lo que tenemos que hacer es
volver a nuestros componentes de la
cápsula. Y en los ajustes de colisión, queremos ampliar nuestros Presets de
Colisión aquí. Presets de colisión justo
ahí, actualmente está configurado para peón. Vamos a cambiar
esto a la costumbre. Y vamos a permitir que nuestro canal de
Visibilidad
aquí sea bloqueado. Esencialmente estos mouse
sobre eventos verifican para ver si la visibilidad está siendo bloqueada y
si está siendo bloqueada, esto se va a disparar en este
momento estamos ignorando esto. Es así como estamos
detectando si este evento del mouse sobre incluso está
sucediendo, sucediendo. Es hacer una visibilidad
trazada en el mundo. Ahora mismo. Es solo ignorar que
si configuramos esto para bloquear, reconocerá que sí, ese rastro ha golpeado algo, en este caso el Componente
Cápsula. Sigamos adelante y
cambiemos ese material. De acuerdo, compilemos
esto y guardemos una vez más, hacer clic en jugar aquí en esfera se vuelve verde
y ahora miren eso. Mi malla se vuelve verde también. ¿ Por qué no todo el asunto? Bueno, la razón por la que
todo el asunto no se está
poniendo verde es
porque si seleccionamos nuestra malla aquí en el panel Componentes y
venimos bajo Materiales, solo
estoy cambiando
este elemento es 0. No voy a cambiar
el elemento uno, que es determinar el color de otras partes de nuestro maniquí. Entonces, si tuviera que cambiar esto
al índice de elemento uno, estaría cambiando esas partes contraposición a esas partes. Es bueno saber. ¿ Cuáles son algunos usos posibles
para este tipo de eventos? Bueno, una vez más,
se puede mostrar botón prompt, interactuar, destruir,
recoger interactuar. Puedes tener algún tipo de efecto de resaltado de
elemento. Podría ser un sonido, podría ser una partícula
que podría ser un cambio material
como lo hemos hecho aquí. Bueno chicos, eso lo va a
hacer todo por esta. Te veremos en la siguiente.
32. Cursor de final del evento: Nuestro objetivo en este video es
continuar nuestra exploración de los eventos del cursor
del ratón
disparando apagado y evento cuando terminamos de pasar el
ratón sobre un objeto. Esto es extremadamente útil para
hacer que un objeto vuelva a su estado normal cada vez que
terminamos de revisarlo, igual que hicimos en el último video donde pasamos el ratón
sobre esta esfera, se volvió verde, pero cuando
yano lo pases con el ratón, acabamos con eso mouseover. No vuelve a su estado normal, lo mismo
con nuestro carácter. Así que vamos a agregar algún cursor
final sobre los eventos para
volver a poner esas cosas a su estado normal. Señor, en mi
Plano de Caracteres TercerosPersonales.- Y desde el último video aquí, todo lo que estamos haciendo es
cuando estamos pasando el ratón sobre nuestro
componente de la cápsula justo aquí, lo
estamos haciendo para que el material en nuestra
malla se vuelva verde, al
menos elemento 0
NO elemento uno. Sigamos adelante y
retrocedamos eso. Ahora la forma en
que podemos retroceder es simplemente haciendo clic
derecho en nuestro componente de
cápsula aquí. En evento tenemos este
extremo cursor sobre. Agreguemos esto a nuestra gráfica. Y simplemente puedo copiar este
nodo aquí mismo, control C, control V. Podemos usar la misma referencia de malla aquí
para establecer eso como nuestro objetivo. Y estamos afectando
elemento es 0 aquí mismo. Vamos a afectar al
elemento 0 aquí abajo. No obstante, necesitamos cambiar el material de nuevo
a lo que era. Y cuál fue ese material
una vez más, bueno, fue como MI Quinn. Y podemos saltar a
esto haciendo clic aquí
mismo navegando a eso
en el Navegador de Contenido. Dice MI Queen. Se encuentra en esta serie
de carpetas con esos activos de instancia
material seleccionados aquí
en nuestro
ThirdPersonCharacter. Y asegúrate de tener
esto seleccionado. Simplemente podemos hacer clic en
esta flecha justo aquí para encajarla debajo
del material. Vamos a compilar. Ese guión se ve todo bien. Guárdalo también. Haga clic en Reproducir. Y ahora al pasar el ratón sobre, nuestro personaje, se vuelve verde, al
menos en esas
zonas eran elementos 0 está afectando nuestra malla aquí. Y cuando me apago el mouse
de esto, lo retrocede. Fresco. Hagámoslo con nuestra esfera de eventos de
mouse bp también. Saltando a nuestra gráfica de eventos aquí, estamos haciendo algo
cuando comenzamos somero sobre esta esfera. Entonces vamos a seleccionar nuestra esfera. Hagamos clic derecho aquí
y algo de espacio vacío en los eventos para terminar el cursor sobre. Y yo haré lo mismo aquí. Control C para copiar, control V para pegar. Podemos usar esa misma referencia de
esfera, o podrías agregar una
nueva referencia de esfera, solo mostrando múltiples
formas en las que podrías hacer algo. Ambos están apuntando al
mismo índice de elemento. Este solo tiene un índice de elemento para
los elementos materiales 0. Y está utilizando este material
básico de formas. Puedo buscarlo aquí, o podría hacer como lo
hacía antes de esta hora, simplemente
busquémoslo haciendo clic en esta flecha
desplegable. Tipo en formas básicas, material de forma
básica. Y probemos esto,
compilemos, guardemos y juguemos. Y también estoy por encima de la
esfera se vuelve verde. De hecho, vamos a presumir este
guión disparando por aquí. Se vuelve verde, se vuelve blanco, se vuelve verde se vuelve blanco, y se pueden ver esos
eventos disparándose también. Cosas bastante directas. Utilízalo en tándem con que
comience el cursor sobre el evento. Y una vez más,
con el fin de hacer que cualquiera de estos cursor sobre
eventos incluso suceda, o esos extremos cursor sobre eventos. Tienes que configurar
esos ajustes en planos de
tu
controlador de jugador para aceptar esos eventos
mouseover, chicos, lo haré
todo por este. Te veremos en la siguiente.
33. Evento en el clic en: Bienvenidos de nuevo a todos. Bueno, en los dos últimos videos, mostramos cómo configurar un blueprint de controlador de reproductor para detectar cuando estamos pasando el
mouse sobre algo. Y luego lo contrario de eso,
que está terminando con el ratón
por encima de algo. Vamos a estar dando
eso un paso más allá en los siguientes dos videos aquí para detectar cuándo hemos
hecho clic en algo, así
como cuando tenemos
un release que haga clic. Comencemos aquí dentro
de nuestros eventos bp mouse. Y lo que queremos hacer
es que queremos detectar cuando hemos hecho clic
en esta esfera. Entonces para hacer eso, podemos hacer clic derecho en nuestro componente de
esfera aquí. Y en nuestro menú desplegable Add Event
little aquí, puedo agregar un evento con clic. Esa es una forma de hacerlo. O alternativamente con
esos componentes seleccionados. En la parte inferior
del panel Detalles está nuestra lista de
eventos disponibles para ese componente. Voy a hacer clic aquí este botón más para
el evento OnClick. Eso nos va a
saltar al Event Graph y agregar ese evento a nuestra gráfica. Entonces vamos a configurar
un guión muy básico aquí. Lo que quiero hacer es hablar con nuestros componentes de
esfera para poder arrastrar esto o
arrastrar esto aquí abajo. O bien va a hacer, yo lo
voy a conseguir. Y quiero establecer la escala mundial de este
objeto cuando haga clic en él. obstante, no
quiero
establecer esto en un número duro y rápido. Quiero hacer un poco
de una matemática muy básica. Entonces lo que voy a hacer
es arrastrarme fuera de esto. Voy a obtener su escala mundial
actual aquí escribiendo y simplemente
obtener escala mundial. Eso me dará su escala mundial
actual, que si selecciono
mi esfera aquí, La escala mundial de
esta es actualmente 111. Y quiero hacerlo para que
cada vez que haga clic en esto, simplemente le
voy a añadir
un poquito. Así que arrastrando fuera del valor de
retorno aquí, usa ese botón más
para agregar un nodo de adición. Y simplemente vamos
a agregar 0.1 en las dimensiones x, y, y z, haciendo esto un poco más grande cada
vez que hagas clic en él. Entonces, la primera vez
que hagas clic en él, vamos a estar
apuntando a nuestra esfera. Vamos a estar fijando
nuestra escala mundial. Va a pasar de uno
a 1.1 en todos los ámbitos, luego haciendo clic en
él de nuevo, lo configurará en 1.2,
etcétera, etcétera. Vamos a compilar el
script y guardarlo. Y esto todo se ve
bien en bien sin embargo, verás que una vez que
haga clic en Reproducir aquí y
estoy depurando este objeto de
eventos de mouse aquí. Puedo seguir adelante y
resaltarlo y se pone verde. No obstante, cuando estoy
pinchando sobre él, parece que
no pasa nada. Ahora la razón por la que no está
pasando nada aquí es porque
necesito cavar de nuevo en mi controlador de jugador y marcar una casilla que
habilite los eventos de clic. Entonces, si olvidaste cuál era
tu
blueprint de controlador de jugador, lo
teníamos en nuestra carpeta
framework. Haz doble clic en
eso para abrirlo. Y dentro de aquí con
un botón de clase por defecto seleccionado vienen bajo la sección de interfaz
del ratón. Y al igual que antes donde
habilitábamos un mouseover eventos, necesitamos habilitar eventos de clic. Ahora una vez que hagamos esto, ten en cuenta esto aquí abajo, las teclas de eventos de clic. Entonces estamos comprobando esto. Sí, podemos reconocer eventos de
clic. Y abajo, podemos establecer lo que se registra como un evento de clic. Por defecto, se va a
establecer el botón izquierdo del ratón, pero se podría hacer clic aquí. Podrías hacer clic allí varias veces para agregar diferentes claves. Entonces voy a
borrar esto porque
solo quiero el botón izquierdo del ratón. Por lo que eso funcionará. Habilitará el botón
izquierdo del ratón. Se registrará, eso
es un evento de clic. Esto también vale la pena señalar aquí
que abajo tenemos un
canal de seguimiento de clic predeterminado y está configurado a lo largo del canal
Visibilidad. Volvamos a nuestros eventos
bp mouse. Y si selecciono aquí mi esfera y miro hacia arriba en
el panel Detalles, entra bajo la sección de
colisión. Se puede ver que si vengo
bajo Presets de colisión, que está configurado para bloquear todas las dinámicas para este componente
en particular. Abajo, mi canal de traza, para el canal Visibilidad nombrado o el canal de traza llamado visibilidad
está configurado para bloquear. Esto es importante
porque mientras esto esté configurado para bloquear, puede reconocer un evento de clic. También volviendo a mi controlador de jugador
bp, muestra
que la
distancia de traza para esto es de 100 mil unidades irreales. Entonces la forma en que funciona es si hago clic aquí en mi mundo, así, ese objeto está a menos de
100 mil unidades irreales del lugar que estoy
haciendo clic en la pantalla. Por lo
que registrará eso como un evento de clic. Si es más allá de eso, no
lo registrará. Entonces vamos a darle a esto una obra de teatro aquí. Voy a volver
a eventos de ratón de BP para que podamos ver esto disparándose, haciendo clic en play y
metiendo esto aquí abajo. Por lo que es
reconocerlos mouseover. En cuanto hago clic en,
se hace un poco más grande. Pinchando de nuevo, un
poco más grande, un poco más grande, un
poco más grande, un poco más grande. Entonces ahí lo tienes. Para permitir que este evento onclick
funcione dentro de tu controlador de player
bp, debes tener
activados los eventos click. Y luego también dijo
al menos una clave de evento de clic. Chicos, eso lo hará
todo por esta. Nos vemos en la siguiente.
34. Evento en lanzamiento: Bienvenidos de nuevo a todos. Bueno, este es el acompañante
del video anterior. Lo hicimos en el último
video que una vez que hicimos clic en nuestro
blueprint de eventos del mouse bp aquí, la esfera, la estamos haciendo
incrementalmente más grande. Vamos a
cambiar
un poco nuestro guión y
vamos a hacer que algo suceda cuando
soltemos nuestro clic del ratón. Por lo que hacemos que algo
suceda cuando hacemos clic con el botón izquierdo
del ratón hacia abajo. Pero cuando levantamos sobre eso, queremos que pase
algo más. Volvamos a
nuestros eventos bp mouse. Actualmente lo tengo para que cuanto haga clic
en la esfera, se haga un poco más grande. Voy a eliminar estos dos nodos y
voy a simplificar un poco
este script aquí. Voy a golpear Control C y Control V para duplicar esto. Y lo que quiero hacer es
también apuntar a la esfera. No obstante, quiero agregar
un eventos inéditos, así que voy a hacer clic derecho
en mi esfera en el evento. Y al soltarse, esto se
disparará una vez más. Una vez que levante mi botón izquierdo
del mouse haga clic aquí. Lo vamos a hacer para que
cuando pinchemos en nuestra esfera, vamos a establecer
el tamaño para que sea dos en todos los ámbitos, el
doble del tamaño. Y cuando lo soltemos, se va a configurar para ser
uno en todos los ámbitos. Y voy a mover esto a
la parte superior izquierda aquí, y vamos a compilar eso. Asegúrate de que el guión se vea bien. Sigamos adelante y juguemos esto. Y se puede ver que una vez que
hago clic en, se pone grande. Una vez que lo suelte,
vuelve a su tamaño normal. Grande, pequeño, haga clic, Suelte. Cosas bastante sencillas. La otra cosa que
tiraré aquí es en tu controlador de jugador bp. Siempre y cuando bajo los valores predeterminados de clase
tengas activados los eventos de clic, siempre y cuando eso esté
activado y tengas una clave de evento de
clic de algún tipo que permita que funcione
el evento onclick, así como el
evento de lanzamiento para trabajar. Entonces una especie de dos-por-uno ahí. Muy bien chicos, eso lo va
a hacer todo por este. Nos vemos en la siguiente.
35. Golpear al evento: Bienvenidos de nuevo a todos. Event hit es el
tema de este video y este es un
evento súper importante de saber porque la colisión
entre actores está sucediendo en todo tipo
de juegos todo el tiempo. Imagínate en un juego de disparos, disparas una bala, golpea una pared. Se ve un poco de
polvo volar hacia arriba y se ve una bala D cal que queda en
ese punto de impacto. O imagina que estás
planeando un juego de carreras. Te golpeas contra otro auto y
ves volar unas chispas. Esa es una pista de evento que se va detrás de las escenas y que
hacen volar esas chispas. Esas calcomanías de bala aparecieron
ese punto en la pared. De acuerdo, vamos a explorar cómo se puede utilizar
este evento. Ahora, voy a estar usando este
lugar de actor cubo en mi nivel, se llama cubo. Es un actor de malla estática. Puedes colocar cualquier actor de malla
estática en tu nivel para comprobar lo que
estamos a punto de revisar. Pero si quieres seguir jugando
en casa, fui justo aquí, bajo formas y ahí mismo
conseguí mi cubo. Con eso seleccionado,
voy a
saltar a mi Plano de Nivel. Y en algún espacio vacío, voy a
hacer clic derecho y
vamos a agregar un evento
para ese actor. Tenemos seleccionados vienen
bajo la sección de colisión. Y aquí tenemos
add on actor hit. Al igual que nuestros eventos superpuestos. Nos puede decir quién fue el otro actor que
en este caso nos golpeó. Vamos a revisar para
ver, en este caso, si es el
personaje jugador el que nos golpeó. Así que vamos a hacer clic derecho
y algún
tipo de espacio vacío en, obtener personaje jugador. Vamos a ver
si el otro actor es igual al personaje
jugador. Es decir, ¿son
lo mismo? ¿ Es el
personaje jugador que nos golpeó? Esta es una forma de
hacer esta comprobación para ver es el personaje jugador, el otro actor que nos golpeó. Si son iguales, entonces
vamos a arrastrar fuera de aquí, traer un nodo de rama. Y si efectivamente es cierto que el personaje jugador fue el otro actor que nos golpeó. Si eso es cierto, nos vamos a arrastrar fuera de aquí
y teclear toca sonido a D. Ese es un sonido
no localizado, y voy a hacer mi
vieja explosión buena. Q, porque eso
es muy distinto. Eso es algo que pasó. Además, lo que
haré es destruir esa malla. Entonces voy a hacer clic derecho
y algo de espacio aquí. Vamos a crear una
referencia a nuestra cola aquí. Arrastra fuera de ella y
escribe Destruye Actor. De acuerdo, sigamos
adelante y compilemos esto para asegurarnos de que nuestro
script se vea bien. Marca de verificación verde dice que sí lo es. Y luego voy a
seguir adelante y hacer clic en jugar aquí. Y así se puede ver el
guión disparando arriba. Ejecutemos a nuestro jugador
hacia ese cubo. Aquí vamos. Bam. Ahora en este punto, vale la pena frenar sólo un poco para explicar cómo incluso se detectó esta
colisión. ¿ Cómo funcionó esto? ¿ Por qué mi personaje no pasó
justo
a través de ese cubo? Bueno, para empezar,
revisemos nuestro plano de
personaje en tercera persona. Tengo eso abierto aquí. Y tengo el
componente de la cápsula seleccionado. Todos los demás componentes
están unidos a eso. Ese es el componente invisible rodea a mi personaje aquí. Y si miro por encima en el panel Detalles debajo de
la sección de colisión, actualmente
tengo mis
Presets de Colisión configurados en Personalizado. Y se puede ver
cómo la colisión aquí está configurada para
bloquear todo, todos los diferentes tipos de objetos. Ahora bien, ¿qué tipo de
objetos hay? Bueno, este personaje en
tercera persona en particular es un tipo de objeto peón que se
enumera bajo el tipo de objeto. Y este estanque está configurado para
bloquear objetos estáticos del
mundo, objetos dinámicos del mundo, otros estanques y todas estas
otras cosas aquí mismo. Ahora comparemos esto con
lo que vemos en nuestro cubo. Ahora tengo mi cubo
seleccionado aquí en el propio nivel que
es una instancia de cubo. Esta instancia de cubo está compuesta por componentes
de malla estática, y ese es Componente
de malla estática. Si selecciona
eso, ahí es donde se ranurará
la
malla de tubo real. Desplázate hacia abajo aquí y
mira los ajustes de colisión. preset de colisión aquí está
actualmente configurado como predeterminado, por lo que realmente no puedo profundizar y ver todas esas otras configuraciones. Sin embargo, si tuviera que cambiar esto a costumbre solo momentáneamente, expondrá la configuración actual de la colisión para este cubo. Se puede ver que el tipo de
objeto enumerado para este cubo es un tipo de objeto
estático mundial. Ahora bien, esto está configurado
para bloquear un peón, igual que nuestro
Third PersonCharacter son peón está configurado para bloquear un objeto
estático mundial también. En pocas palabras, están destinados a
chocar entre sí. Una cosa no va
a pasar por otra. Ahora, si tuviera que
cambiar mi cubo aquí. Para ignorar colisiones
con un peón. Recuerda que mi
ThirdPersonCharacter está configurado como un tipo de objeto peón. Vamos a establecer momentáneamente
esto para ignorar estanques. Mira lo que pasa ahora. Intenta correr mi peón, mi personaje por eso
y no pasa nada. Sí se pone una
cosa poco torcida con la cámara. Pero larga historia corta, que en el actor hit
evento nunca ocurre. Déjenme seguir adelante y cambiar
eso aquí atrás para bloquear. Y cambiará la colisión, la presentará de nuevo al default. De acuerdo, ahora vamos a bucear un poco más profundo aquí porque
hay algún matiz que debes saber sobre la madera trabajando
con este evento. Vamos a hacer clic derecho
en algún espacio vacío aquí estoy en mi carpeta de resumen de
scripting de contenidos. Y quiero crear un actor
preciso de planos de clase, BP subrayan eventos. Hit es lo que llamaré a esto. Y voy a hacer doble
clic en esto para abrirlo. Y voy a agregar
tres componentes aquí. Agregaré un cubo. Voy a hacer zoom aquí atrás. Voy a agregar una esfera, voy a mover eso
hacia la derecha un poco aquí también. Y agregaré
el desplazamiento hacia abajo. Agregaremos Sure, un cilindro. De acuerdo, ahora en realidad no
importa qué actores tengas. Te has apegado a otras. Si están apegados o no. Eso realmente no importa para los propósitos de este video, lo que sí quiero llegar sin embargo, es el Event Graph
va a eliminar estos eventos y luego
algún espacio vacío va a mostrar cómo
puedesagregar hit de evento. La primera forma, haga clic con el
botón derecho en el evento hit. Eso te dará éxito al evento. Alternativamente. Otra forma de
comprobar qué eventos están disponibles dentro de un plano
determinado es más en el panel Mi Blueprint bajo la sección de funciones. Si te encuentras debajo de la anulación, se cayó justo por
aquí, selecciona esto. Tiene toda una lista
de eventos disponibles para
usted para esto un
actor de blueprint, incluido el éxito del evento. Ahora todo eso es un
poco engañoso, al
menos me pareció
confuso cuando me metí por
primera vez en
blueprints scripting, porque bajo el área de
funciones, se pueden
encontrar diferentes eventos, al
menos me pareció
confuso cuando memetí por
primera vez en
blueprints scripting,
porque bajo el área de
funciones,se pueden
encontrar diferentes eventos,
adivina con su significado
aquí hay cualquier cosa que añadas más allá de estos diversos eventos. Esa es la funcionalidad
esencialmente que estás agregando para cuando golpeas
algo en este blueprint. ¿ De acuerdo? Entonces lo que quiero
presumir aquí es drag off type in print string. Y queremos encontrar la
otra cosa que nos golpeó. Así que voy a arrastrar
fuera de aquí y escribiendo obtener nombre para mostrar. El motivo por el que estoy haciendo algo
de esto es para demostrar que este
evento en particular golpea se
disparará si golpeamos algún
componente que agreguemos, no importa cuál. Entonces sigamos adelante y juguemos aquí. Estableceré mis objetos de depuración también. Bueno, en primer lugar,
tengo que añadir esto a mi nivel donante. Eso
sería de ayuda. Voy a añadir esto a mi nivel, arrástralo y suéltalo aquí
y gírelo un poco. Ahí vamos. Adelante y juega. Nuestro objeto de depuración es sets. Y ahora cuando le pegue a alguno de estos componentes
que dispararán, eso se apagará. Y luego dispararé. No importaba a qué
componente le pegué ese evento hit sí se disparó y
se puede ver en los incendios se apagó varias veces. Lo cual es algo
de lo que hay que tener en cuenta porque en muchos casos no
quieres que se apague
varias veces así. Para remediar que podrías agregar un nodo due once in-between aquí para que
la primera vez que lo golpees, solo
lo haga una vez. Pero para llegar a nuestro siguiente
punto aquí es que puedes agregar un hit de evento cuando
golpeas un componente específico. Voy a seleccionar
mi cubo aquí. Y si hago clic derecho, puedo agregar un evento, agregar cabezales
de componentes. Entonces esto en hit es específico de golpear solo
a este cubo. Déjame arrastrarme fuera de aquí y
solo teclea la cadena de impresión. Y simplemente lo
voy a poner en la cola de palabras cuando
golpeemos esa Q. Así que enmarcando mi
guión así, haré clic en play una vez más. Ahora se puede ver que
cuando golpeo este cubo, ambos eventos
se están disparando. No obstante, si golpeo
ajustar la esfera, sólo ese
golpe de evento superior se disparará. No es que
los componentes impar
golpean porque eso en el golpe de componente es
específico de ese cubo. Ahora, un poco de
matiz muy importante para entender sobre el
golpe de evento es lo que sucede si
tienes objetos de física
en tu nivel. Y por eso, estoy hablando un objeto que se puede patear alrededor o respeto a la gravedad
desplegable, etcétera. Déjame seguir adelante y hacer clic en play aquí y
mostrarte lo que quiero decir. Ves esa silla cayendo
al suelo, eso es un objeto de física. Ahora estos son realmente
sencillos de configurar. Si tienes una silla, alguna otra
malla estática en tu nivel, cualquier malla estática servirá. Aquí es donde encontré
esa silla en mi
contenido de inicio encima en
el panel Detalles. Si selecciono mi instancia de silla, entra debajo del componente
de malla estática, pero entra en la sección de
física. He configurado esto para
simular física. Ahora hay un montón de
propiedades que puedes
configurar Si un objeto
simula física. Pero en cuanto
marque esta casilla, esto se considera
un objeto de física. Si entro en mi golpe de evento BP, viste esa silla golpear este plano de la clase de
actores. Tenga en cuenta que cuando hago clic en Reproducir, ninguno de estos eventos
se está disparando. Los eventos de kit siempre se dispararán si es el movimiento del personaje el
que está desencadenando el golpe, estos eventos de golpe no se
dispararán si un
objeto de física lo golpea. A menos que el actor o
querer detectar un hit tenga marcada una
casilla de verificación particular. Entonces sigamos adelante y hagamos eso. Voy a venir
debajo de mis componentes, mi componente de cubo dentro
del evento BP hip and over en el panel Detalles
debajo de la sección de colisión, lo que estoy buscando es
Simulación genera eventos de hit. Si marco esta casilla
y luego hago clic en Reproducir. Se puede ver ahora que ambos
de esos eventos se desencadenaron. Ahora qué pasa si
arrasto esta silla arriba, digamos el cilindro y
luego se ve por encima del cilindro. Y
luego haz clic en play. Esos eventos no se disparan. Y eso es porque
tendría que seleccionar mi cilindro y hacer lo
mismo aquí. Necesitaría
marcar esta casilla para simulación, genera eventos de
hit. Por lo que muy importante poco de
matiz para entender su, su nariz chicos evento golpeó. Uno de los eventos más populares en todos nuestros
blueprint scripting. Eso servirá para ofrecer este. Nos vemos en la siguiente.
36. Evento cualquier daño: Hola, hola. Nuestro objetivo en este video
es comenzar a explorar algunos de los eventos de daño
disponibles de manera irreal. Ahora, el daño es obviamente
una gran parte de muchos juegos, y es bueno
saber que irreal ya tiene
funciones y
eventos existentes dentro de
blueprints scripting para ayudar a implementar
estos conceptos. vamos a explorar cualquier
evento dañado Primerovamos a explorar cualquier
evento dañadoy luego ramificarnos desde
ahí. De acuerdo, el
Third PersonCharacter
va a ser la
estrella de este video. Así que encuentra su camino a
este directorio en el
Navegador de contenido o cajón de contenido. Haz doble clic sobre
él para abrirlo. Vamos a empezar
añadiendo una variable. Vamos a agregar
una variable de salud. Por lo que vienen bajo variables plus. Y vamos a
añadir una nueva variable simplemente llamada salud. Lo dejaremos
del tipo flotador. Podría ser un entero porque
la salud a veces se puede representar en números
enteros en lugar de números decimales. Pero ahí iremos con un tipo de
flotador. Lo compilaremos y luego
le daremos un valor predeterminado de 100. Ese es un bonito valor redondo. Ahora, si bien irreal sí
tiene algunos
conceptos relacionados con el daño y eventos
relacionados con el daño incrustado en él. No tiene ningún
concepto de salud. Al menos a partir de la
grabación de hoy incrustada en irreal. Tienes que crear una variable de salud dentro del plano de
tu personaje, y luego puedes
enfrentarla a partir de ahí usando los diversos eventos de daño. De acuerdo, con eso
creado,
Agreguemos un evento, cualquier daño. Un par de maneras de hacer esto. Puede hacer clic con el
botón derecho del ratón en cualquier daño. Ahí lo puedes encontrar. Alternativamente, puedes encontrarlo en la sección de
funciones
del panel Mi Blueprint en el
desplegable de anulación hay
eventos, cualquier daño. De acuerdo, con estos eventos añadidos, queremos modificar nuestra
variable de salud de alguna manera. Entonces así es como funciona esto. Sigamos adelante y arrastremos nuestra variable de
salud a la gráfica. Lo vamos a conseguir. Cuando este evento se dispara, puede generar
cuánto daño se hizo. Ahora que queremos hacer aquí es
tomar nuestra variable de salud. Vamos a arrastrar hacia fuera un aquí, teclea el símbolo menos que
queremos restar. Entonces vamos a tomar salud de
nuestro personaje
y vamos a restar nuestra salud
por la cantidad de daño que se hizo. Entonces una vez hecho ese
cálculo, vamos a actualizar
nuestra variable de salud. La forma en que podemos hacer esto es
arrastrar y soltar esto
a la derecha en el
pin de salida y establecer eso. Entonces estamos tomando nuestra salud, restando la
cantidad de daño de ella, y luego estableciendo ese es
nuestro nuevo valor para la salud. Bastante simple y
directo. Entonces lo que vamos a hacer es
arrastrarnos fuera de esto y traer un signo menor o igual a. Vamos a decir si esto
es menor o igual a 0, entonces vamos a ramificar. Si es cierto que fueron
menores o iguales a 0, nuestra salud se baja
a 0 o menos, entonces vamos a
destruir al actor. En este caso, el
blanco somos nosotros mismos. Vamos a destruir todo
esto. Ahora antes de vincular esto, simplemente
me voy a colar en
un nodo de cadena de impresión aquí. Para que podamos ver nuestro
valor para la salud arrastrado de aquí. Escribiremos cadena de impresión. Y vamos a ir así. Y si conectamos nuestra salud
a esto en cadena, va a convertir este valor
float en una cadena. Entonces eso es lo que esto
está haciendo aquí mismo. Es convertir un
flotador en una cuerda. Y vamos a compilar
esto, asegurémonos de que este script es bueno para ir
y parece que sí. Ahora, ten en cuenta que este evento no hará nada todavía
porque no
le hemos dicho a este actor que se vea impactado por el concepto de
dañado de ninguna manera. Eso lo vamos a hacer el año que viene vuelta aquí en nuestro editor de nivel. Y sigamos adelante y
agreguemos un volumen de gatillo. Eso lo voy a hacer
al venir
aquí abajo , colocar panel de actores. Voy a agregar
una caja de gatillo y colocarla en algún lugar
frente a mis jugadores. Empezar actor. Con eso seleccionado. Voy a configurar el
grosor de la línea para que sea un poco más grueso para poder
verlo en el nivel. También voy a hacer que
la extensión de la caja sea 200 por 200 por 200. Y también voy a desplazarme hacia abajo y desmarcar
juego oculto actor para que podamos verlo. De acuerdo, con eso todo hecho, saltemos a nuestro Nivel. Plano. Voy a hacer clic derecho
y algo de espacio vacío. Vamos a agregar un evento On collision on begin overlap. Vamos a comprobar si el otro actor que
nos solapó fue el personaje en tercera
persona, no el modo de juego. El personaje. Si lo es, lo que
vamos a hacer aquí, es arrastrado fuera de
aquí y teclea aplicar daño, a-ha, daño
aplicado. Ahora
bien, este daño base de aquí mismo nos va
a permitir ingresar cuánto daño nos
gustaría haber
hecho a nuestro
Third PersonCharacter. Entonces funciona así. Tú decides cuánto daño
te gustaría llamarlo. Vamos a ponchar un número de digamos, 25.5, algo
ridículo así. Se establece aquí y luego
aquí cuando este evento, cualquier daño llamado,
saldrá eso aquí. Entonces estás pasando
ese daño. De acuerdo, con todo esto hecho, sigamos adelante y
haga clic en jugar aquí. Y quiero ser mi
Third PersonCharacter Blueprint. Para que podamos ver este
guión dispararse o no si lo
jodimos todo , Sigamos adelante
y pulsamos Play. Y deberíamos ver que están
dañados valor actualizado justo aquí arriba en la
parte superior izquierda porque estamos imprimiendo esto
en la pantalla. Vamos a solapar esto. Y no lo estoy viendo. Y la razón por la que no
lo estoy viendo es porque olvidé un paso atrás aquí en
mi Level Blueprint, olvidé que este actor de daños se establezca como
el personaje en tercera persona. Entonces si hacemos esto,
estamos diciendo, Hey,
Third PersonCharacter,
toda esta función de daño aplicado, dispara esto y
asegúrate de que al hacerlo,
estás haciendo que este evento se
dispare cualquier daño. Entonces estoy llamando a esta
función si configuras el actor de daños en este caso
para que sea Third PersonCharacter, causará
que este evento
cualquier daño se dispare. Probemos esto una vez más. Por lo que debe ver que el valor de
daño se actualiza aquí tan pronto como se superponen
este volumen de disparo. Y ahí vas,
vio apagar el fuego. Si lo vuelvo a hacer, volverás a
actualizar la salud hasta que finalmente vaya más allá ese umbral y
boom, estoy muerto. Ahora, solo un par de notas aquí atrás en mi Plano de Nivel. Esta clase de tipo de daño. Existe la capacidad de
agregar daño por fuego, daño rayos, daños por agua,
todo ese tipo de cosas. En Unreal. No necesita ser configurado
y está más allá del alcance de este video cómo
configurar ese tipo de cosas. Este icono del servidor, ese nodo indica que esta función sólo se ejecuta en el servidor
para juegos de un solo jugador, el cliente local es considerado el servidor pensó que
tiraría en esas notas. Algo más que
vale la pena señalar aquí es que si vuelvo a mi Third PersonCharacter
Blueprint y en lugar de restar
aquí, lo hice. Arrastrado fuera de esto
y teclea el anuncio. En realidad no tienes que
tratar esto como algo negativo. En realidad podrías usar todo
este concepto de daño como un medio de curación. Entonces en lugar de restar, podrías hacer algo como
esto y sumar esa cantidad. Entonces si quisieras tener
una especie de estanque curativo, podrías hacer eso también. Una nota final sobre el
evento cualquier daño
es que está destinado a ser utilizado para daños de propósito
general, como daños incurridos
por su entorno, a
salvo de fuego o veneno,
ese tipo de cosas. Muy bien chicos,
eso va a servir para ofrecer este. Nos vemos en la siguiente.
37. Daño en el punto de evento: Bienvenidos de nuevo a todos. Bueno, estamos al segundo
de nuestros tres eventos de daños. En el último
hablamos de evento cualquier daño. Eso ¿Cuál es tu evento de daño de
propósito general para usar para cosas como daños
ambientales. Y este
vamos a estar
hablando de daño de punto de evento. Ahora el daño puntual está
dañado destinado a ser infligido por armas de proyectil, golpear Armas de escaneo,
incluso armamento cuerpo a cuerpo. E incluso agregaré
una cuarta aquí. Vamos a estar
dejando caer una caja de física en las cabezas de
nuestros jugadores para
que pueda ser utilizada para algo como esto también. Ahora bien, si bien funciona similar
para evitar cualquier daño, sí tiene alguna información agregada
que se puede pasar a lo largo, lo que lo hace ideal para aplicaciones de
daños de estilo proyectil. Ahora, en interés del tiempo, he montado un montón de cosas antes de filmar este video, pero te mostraré exactamente lo que hice para que puedas jugar en casa si quieres
seguir junto con este ejemplo. En primer lugar, colocas
un actor de malla estática en tu nivel y lo
colocas justo encima de
donde tus
jugadores aparecen en ese actor de
Player Start. Simplemente estoy usando un actor de
Static Mesh en cubos, pero cualquier cosa va a hacer
y puedes agarrar un cubo viniendo
aquí abajo, forma cubo. Y luego con este cubo
seleccionado en el panel Detalles, seleccioné mi Componente
de Malla Estática. Y hay dos casillas de verificación
que estaba seguro de revisar. Una es simular
física para asegurar que esta caja va a caer
encima de la cabeza de mi personaje. Y también abajo en la sección de
colisiones, me aseguré de simular
generar eventos de golpe. Fijando eso a verdadero también, porque yo sí quiero
que esto genere un evento hit. Ahora con esto seleccionado encima
en mi plano de nivel, usted puede encontrar que
al venir
aquí abajo , abra Level Blueprints. Luego hago clic derecho con ese cubo seleccionado
en el nivel, clic derecho y agrego
un evento para eso. Y agregué un
hit de actor y demuestra
que ese es el
nombre de mi cubo. Ahora lo que estoy queriendo hacer
es una vez que golpeo algo, quiero llamar a esta función
aplicar punto dañado. Ahora me viste aplicar cualquier
daño en el último video. Entonces algo parecido aquí. Este fue el aplicar cualquier daño
del video anterior. Estamos haciendo algo
similar aquí. Vamos a aplicar
un daño puntual. Y al igual
que antes necesitamos darle de comer a esto un actor dañado, antes de que fuera un personaje en
tercera persona. Aquí vamos a ir un
poco de una ruta diferente. Vamos a arrastrar
fuera de nuestro resultado de golpe de nuestros hits cuando nuestro
cubo golpeó algo. Y todo lo que necesitas hacer es
arrastrar hasta aquí y escribir break y luego romper
ese resultado del hit, puedes extraer todo tipo
de información sobre el hit que ocurrió
entre ese cubo
y lo que sea que golpeó. Una de esas cosas que puedes extraer son los actores hit. Entonces, si conectas a tu
actor de cabeza al actor de daños, podemos llamar a este evento de daño
puntual en el plano de Hit Actor. Llegaremos a eso
en un momento. Además, podemos pasar por
donde salió este hit. Lo que estoy haciendo aquí
está fuera de su cabeza, estamos rompiendo el
resultado del golpe y estoy diciendo, Hey, donde ocurrió esto, la ubicación x, y, y z. Y estamos
pasando eso al golpe desde la dirección esencialmente
proporcionando unas coordenadas x,
y, y z donde se está produciendo ese
golpe. Algo más que
debes hacer aquí antes de compilar
es que necesitas pasar a lo largo de esta información de golpe
de estos eventos de golpe a la información de golpe de tu función de daño de puntos de
aplicación. Con todo eso hecho,
puedes compilar y guardar eso. Y esto está todo bien y bien. Pero lo siguiente que
debes hacer es saltar
a nuestro
plano de personajes de tercera persona. Una vez más, en
el Navegador de Contenido, puedes encontrar tu
ThirdPersonCharacter justo en esta ubicación. Aquí configuro este evento punto daño y todas las cosas que
quería que ocurrieran. Entonces, en primer lugar, ¿de dónde sacas los puntos de
este evento dañados? Bueno, dos formas en las que
puedes hacer clic derecho y escribir daño puntual. Lo puedes encontrar en
tu menú del botón derecho. Alternativamente, si no tiene esto agregado ya a
su gráfica, podría
venir bajo funciones y luego la sección de anulación, podría
encontrar la función
de punto dañado aquí como bien. No está listado
aquí porque
ya está agregado a mi gráfica. Ahora una vez que es hit ocurre nuevo en nuestro Level
Blueprint, una vez más, estamos pasando por
el Hit Actor y
sabemos que nos va a golpear a
un ThirdPersonCharacter. Se va a llamar a esta función de
punto dañado, que luego va a resultar
en que este evento sea despedido. Y lo que estamos diciendo
aquí es que queremos hacer esto solo una vez
porque este es un evento que a medida que golpea
las cosas en nuestro nivel, este cubo puede atarse alrededor. Podría golpear a nuestro
personaje varias veces. Nosotros sólo queríamos
registrar uno hits, así que sólo vamos a
ir más allá de esta 0.1 vez. Lo que estoy haciendo aquí
es que estoy pasando a lo largo de la cantidad de
daño que he especificado aquí atrás en mi función de daño de punto de
aplicación. Aquí, solo digo
50.5 solo porque este número de aquí mismo se pase a lo largo de nuestro daño de punto de
evento. Así que estoy restando esto de nuestra variable de salud por aquí y configurando eso
como nuestra nueva Salud. Sólo estoy imprimiendo esto
a la pantalla. Entonces, entonces lo último
que estoy haciendo aquí es que
voy a desovar en
emisor en locación. Este es el viejo sistema de
partículas aquí, el sistema de partículas en cascada. Yo sólo estoy usando una
explosión aquí. Y lo que estoy haciendo
fuera del
daño de punto de evento está justo por aquí. Este impactó desde la dirección. Te estoy pasando esta
información, salgo de aquí en
locación de golpe para proporcionar la ubicación donde quiero que ocurra
esta explosión. ¿ Qué resultados es esto? Ahora viste que el flujo de
ejecución justo arriba. Y aquí estoy en mi
terceraPersonaPersonaje. Hagamos esto otra vez. De mi Plano de Nivel. Aleja un poco. Por lo que una vez más, mantén
el ojo en este guión disparando. Bam. Se puede ver que está disparando varias veces
ahí porque está golpeando el piso además de golpear
a mi personaje. Ahora, si quisieras usar el
sistema de partículas más nuevo en lugar de este emisor de desove en la ubicación, podrías eliminarlo. Y si tienes alguna
partícula de Niágara en tu proyecto, simplemente
puedes especificar
una de esas aquí. Tengo una ducha de monedas que no se ve tan
cool como esa explosión, pero compruébalo aquí mismo. Ahora una cosa que aún no
he mencionado, pero necesito es si
vas a estar usando este punto de daño en una
instancia como yo lo estoy usando, quieres estar seguro de
que solo estás usando este punto de evento dañado? Mira lo que hice arriba. Desconecté mi
evento cualquier daño. Ahora si enganche esto también
y noto que estoy haciendo esta modificación de salud
aquí para, bueno, va a resultar es
que
ambos eventos se disparen. Y se puede ver que mi
salud en realidad se
sumerge por debajo de una negativa allí. Cuando estás llamando. Si aplico daño puntual, también
vas a estar llamando no sólo daño de punto de evento, sino evento cualquier daño
también porque el daño de punto es
técnicamente cualquier daño. Entonces solo ten en cuenta
esa instancia también. Ahora tenga en cuenta, si bien estos
eventos son similares, la ventaja del daño del punto de
evento es que la ubicación
se puede pasar a lo largo. Tienes algunas otras
cosas que puedes pasar por aquí también, pero esa ubicación es la
principal entre ellas. Muy bien chicos, eso lo va a
hacer todo por esta. Nos vemos en la siguiente.
38. Daño radial: Entonces ahí te estás ocupando de
tus propios asuntos y luego pisas una mina terrestre, sufres grandes daños. Vuela a mitad de
la pantalla y te sumerjas hasta la muerte. Evento. daño radial es la causa de tales instancias y juegos de
Unreal Engine. Y lo que hace que este
evento sea único frente a los dos
eventos de daño anteriores es que es perfecto para el daño
de área de efecto. Con el daño radial por evento, puede especificar un punto de origen donde se aplica el daño máximo, y también un radio sobre
el cual se puede aplicar la caída. Entonces, cuanto más lejos
estés del origen, menos daño
se le ocurre a tu personaje. Bien, así que le he puesto
un ejemplo antes de filmar este video y voy
a guiarte a través exactamente de lo que está pasando aquí. Sigue adelante si
quieres jugar en casa. Entonces lo que hice aquí es colocar una simple
esfera de disparo en mi nivel. Eso lo puedes encontrar entrando
bajo el panel de actores del lugar. Y en mi ficha básica, simplemente
coloco un
dedo de Trier en mi nivel. Aquí, simplemente configuré mi radio de
esfera en 1,000. Y también estoy haciendo que
esto aparezca simplemente entrando bajo el ¿dónde está? Una vez más, la sección de
renderizado, renderizado,
renderizado. Ahí está. Estoy eligiendo no tener
esto oculto y juego. También estoy configurando la escala de cartelera del
editor. Ese es este icono hasta cinco, solo para que esto sea muy obvio, para ver a continuación, lo que hice es
ancho esta actriz seleccionada, salté sobre
mi Plano de Nivel. Y dentro de aquí, creé una referencia a
esto desencadena el miedo al
mantener pulsado el RT
y hacer clic izquierdo, siempre y cuando tengas eso
seleccionado en el nivel. Y luego me arrastré fuera de esto y obtuve la ubicación de los actores. Ahora lo que estoy haciendo aquí es
al presionar la tecla E, puede tener cualquier
encuadernación de teclas de su elección. Una vez más, Level Blueprints
reconocerá eventos de entrada. Entonces estoy desove y
emisor en esta ubicación, el punto central de mi esfera, solo
estoy escalando la
explosión para que sea extra grande. Una vez más, si
no quieres hacer los emisores de cascada de la vieja escuela,
bueno, puedes hacer
un sistema de desove en lugar para los efectos de
partículas del Niágara. Y entonces este es el nodo clave del que estamos
hablando aquí, aplicando
daño radial con caída. Ahora, tenga en cuenta, si hago
clic con el botón derecho y algo de
espacio vacío y tecleo aplicar radial, puede hacer aplicar un daño radial
y también aplicar
daño radial con caída. Ambos de estos dos llamaremos el evento de daño radial del que vamos a estar haciendo
uso en solo un poquito. Sin embargo, este me gusta un
poco mejor
porque sí tiene la capacidad de
especificar un radio interior y un radio exterior así como daño
base y luego daño
mínimo. Lo que esto le permite hacer
es especificar un rango de decaimiento. Entonces, esencialmente lo que
estoy diciendo por aquí, déjame deshacerme de
este es mi radio interior. Una vez más, mi esfera es de
mil unidades irreales de tamaño. Eso es esto de aquí. El radio de la esfera es 1,000. De vuelta aquí estoy diciendo que
el radio interior es de 200 unidades irreales, el radio exterior es de 1,000 unidades. El daño en el epicentro
del origen y dentro este radio interior
va a ser de 100. Entonces cualquier cosa dentro de este
radio interior va
a sufrir al máximo daño
que en el radio exterior, en el límite extremo, voy a hacer
al menos un daño. Ahora sí puse en valor de caída
dañada. Esto determina qué tan rápido caerá el
daño
desde el punto central, el origen apunta a los bordes por los que puedes
jugar con ese número para tener más o menos de
una caída extrema. Y entonces el resto de estas
entradas son todas opcionales. Pero para que el sistema funcione, esto es suficiente. Ahora, entrando en mi Blueprint de
personaje de tercera persona, configuré las cosas. Por lo tanto, conseguí mi
evento radial dañado, que una vez más puedes
obtener haciendo clic derecho, escribiendo en radial dañado, ahí está ese evento daño
radial. Otra forma de obtener
este evento ha terminado en la sección de
anulaciones de funciones. Puedes encontrar esto
aquí si aún
no lo
agregaste a tu gráfica. Y aquí estoy de paso
este dañado recibido. Estoy restando eso de
mi variable de salud y
configurándolo como mi
nuevo valor para la salud. Ahora bien, qué
cantidad de daño se pasa a lo largo de la pared que
realmente
depende de cuánto
estaba mi personaje en el centro de este
daño cuando esto ocurrió. Ahora allá atrás
también estoy imprimiendo este valor de salud a
la pantalla para poder ver cuánta salud se
restó realmente de mi nivel
base 100 ahí. Entonces lo que también estoy haciendo aquí es un poco de cosas extra. Esto no es realmente necesario para
ver que esto incluso sucedió. Pero lo que hice aquí es que estoy
agarrando mi Componente Cápsula. Acabo de arrastrar una
referencia a esto. E hice un set simular
la función física aquí. Marque esa casilla. Esto es lo que va
a hacer que mi personaje vuele por el,
por el aire. Y esto es lo que le va
a mandar volando por el aire un impulso
radial, impulso en el punto de impacto. Todo lo que estoy haciendo aquí es que estoy
pasando por el origen, el punto central de mi daño
radial aquí mismo, estoy pasando por ese
disparador, gatillo la ubicación de la esfera
como origen. Y aquí es donde estoy diciendo que
estoy enviando un impulso, imagínese como una onda de pulso
invisible. Entonces el radio de este impulso
va a ser 1,000. Y puse la fuerza con la
que puedes jugar con estos valores para que sea
medio millón de dólares. Ahora de vuelta en nuestro nivel aquí se
puede ver a mi jugador inicio actor va a estar comenzando
justo fuera de este radio. Entonces, si tuviera que hacer clic en
Reproducir y ya tengo mi ThiredPersonCharacter
Blueprint abierto y presiono esa tecla E. Se puede ver que no estoy
haciendo ningún daño radial porque mi personaje
no se encuentra dentro de este radio. Sin embargo, una vez que me
pongo dentro del alcance, ahora tenga en cuenta que
apenas estoy pisando pie dentro de este radio. Mira aquí en la parte superior izquierda. Se va a mostrar
cuánta salud de mi valor inicial de
100 se resta. Entonces voy a, voy a adivinar voy a
terminar con un valor de como 89 o algo así porque
apenas estoy aquí,
así
que voy a presionar la tecla E, terminé con 87. Por lo que casi 13 de salud se restaron por apenas dar un pie. Y
probemos esto. Una vez más. Esto, voy a dar un paso
directo hacia el medio. Por lo que esto debería hacer
el máximo daño. Y si volvemos
a nuestro mapa de prueba, se
puede ver que el daño
radial aplicado se cae. Está demostrando que dentro de
este radio interior de 200, debería estar haciendo los 100
completos dañados. Entonces veamos si ese
es en realidad el caso. Déjame abrir mi plano de
personaje de tercera persona. Una vez más, toca
eso como y en la parte superior
izquierda debería mostrar 0.0. Y lo hace. Entonces se puede ver, como se dijo, simular la física
y el pulso radial de la cabeza. Todo es por diversión y juegos. Ahora, un último bit de
información para pasar por aquí, igual que el daño puntual. Si tienes algún daño
enganchado también. Hacer daño radial causará el evento cualquier daño para disparar dos. Entonces ahora debería estar haciendo
algún daño a mi personaje, además de ver
este texto Hola
aquí arriba en cuanto presione
la tecla E dentro de aquí. Para que puedas ver Hola
sí apareció así
como que se restó algo de salud. Bien chicos, hay un
evento de daño radial. Recapitulemos rápidamente los
diferentes eventos de daño. Por lo que cualquier daño es bueno para daños
ambientales. Cuando no recibiste daño
en ningún punto específico. Eso es genial para
atravesar fuego o gas venenoso,
ese tipo de cosas. El daño puntual es
bueno para especificar una ubicación determinada donde ocurrió el
daño. Genial para proyectiles que
golpean al jugador. El daño radial es bueno para
explosiones y especificando un punto en origen donde ocurrió el daño
máximo. Y este tipo de daños pueden
caerse cuanto más
lejos del origen que se encuentre. Eso va a terminar esto. Te veremos en
el siguiente video.
39. Evento Destruido: Bienvenidos de nuevo a todos. Eventos destruidos es el tema de este video y nuestro objetivo
es conocer qué causa evento destruido al
fuego para un actor y cómo podemos usarlo
dentro de un guión. Para este video, voy a estar usando nuestro Blueprint de Nivel aquí. Lo puedes encontrar aquí,
abrir Nivel Blueprint. Y también voy a estar usando nuestros planos de
personajes en tercera persona. Lo puedes encontrar aquí
en este directorio. También he hecho algunos
trabajos de configuración antes de tiempo. Si lo sigues junto con
los videos anteriores para varios nodos de aplicar tipo daño, todo
esto te parecerá
muy familiar. No obstante, si acabas de
adelantarte a este video, déjame mostrarte lo que
hice antes de tiempo en preparación para
presumir evento destruido. Ahora para empezar aquí, coloqué una caja Trigger en mi
nivel y todo lo que hice aquí es simplemente dimensionar la caja se extiende para ser
200 por 200 por 200, establecer mi grosor de línea en diez. Y también lo hice para que en la sección de renderizado donde
está esa sección de renderizado,
una vez más, Ahí está. Dije actor
juego oculto para ser desmarcado. Después con este
cuadro de Disparador seleccionado en mi nivel, encima en el
Plano de Nivel, hice clic derecho. Creé un anuncio sobre actor comenzar a superponerse para ese cuadro de activación arrastrado fuera del otro actor estamos lanzando a nuestro
personaje de tercera persona para asegurarnos que es el personaje de la tercera persona que se
superpone a nosotros. Y entonces si es así, vamos a aplicar daño
a nuestro terceraPersonaPersonaje, aquí
estoy haciendo 25 puntos
de daño. Entonces, en el Blueprint de
personaje de tercera persona, esto
también debería resultarte
familiar si lo sigues junto
con los videos anteriores. En caso de que se llame
cualquier daño. Y una vez más, esto
se llama cuando esta función dañada
aplicada aquí en nuestro
Plano de Nivel se dispara. Esto, luego se apaga. Todo lo que estoy haciendo aquí es que estoy tomando nuestra salud actual
que comienza en 100. Vamos a restar la
cantidad de daño que se suministra aquí mismo en nuestra función dañada aplicada
en el Plano de Nivel 25. Vamos a
restar eso de nuestro conjunto de salud eso como una nueva salud. Y si nuestra salud pasa a ser menor o igual a cero, vamos a destruir actor. Ahora bien, esta es la
función importante aquí mismo. Porque cuando se llama a esta función Destruir
Actor, evento destruyó
incendios también. Entonces, si yo fuera a seguir
adelante y jugar ahora mismo, esto es lo que tendría. Hago clic en el juego aquí. Déjame poner mi personaje
como mis objetos de depuración, sacar mi
ventana de juego una vez
más, por aquí en la parte superior
izquierda vas a ver que el
valor de salud disminuye. Recordatorio, mi sistema de salud
no está conectado a mi
medidor aquí en absoluto. Podríamos cambiar eso más tarde. A lo mejor vamos a 75, 50. Estás viendo que ese evento
se dispara arriba y luego boom, nuestro personaje está destruido, pero los eventos destruidos
podemos usar aún más para hacer que
algo más suceda. Entonces agreguemos evento destruido, y hay un par de formas en las
que podríamos agregar esta. Podríamos hacer clic derecho
y algún espacio vacío, Escribir eventos destruidos. Esa es una manera. La segunda forma,
por supuesto, se acabó en el panel Mi Plano
debajo del área de funciones, puedes anular eventos, destruir el objetivo aquí
va a ser un actor. Y como pueden ver,
nuestro Destruir Actor, el objetivo está inactivo. Entonces en este caso, nuestro personaje de tercera persona,
estamos diciendo,
Hey, destruirnos a nosotros mismos. Entonces aquí no hay salidas. Nos estamos destruyendo a nosotros mismos. Una vez que se llame a esto, vamos a estar
haciendo una llamada a este evento para disparar. Bien, entonces vamos a hacer que
algo pase aquí. Vamos a arrastrar fuera de
aquí y escribir el emisor de
desove en la ubicación. Una vez más, se podría
hacer el sistema de desove en la ubicación que es el sistema de partículas del
Niágara. Sólo voy a estar usando
la explosión de la vieja escuela. Ahí vamos. Y por supuesto tenemos que
proveer una ubicación para esto. Así que vamos a simplemente hacer clic derecho
y algo de espacio vacío y escribir en obtener la ubicación del actor. El objetivo es nuestra
terceraPersonaEl personaje es la ubicación. Y hagamos otra cosa
es secarse de esto. Y vamos a engendrar
actor de clase. Vamos a engendrar en algún fuego, nuestro fuego de efecto plano. Tenemos que abastecer
una transformación de desove. Entonces voy a hacer clic derecho. Vamos a conseguir que el
actor se transforme. Una vez más. El objetivo es nuestro yo. Eres un personaje de tercera persona. Y luego, por último,
vamos a arrastrar fuera de aquí e imprimir cadena. Y en vez de lo de la
cadena, hola, digamos algo
así como el esteroide D destruido, si puedo deletrear eso bien. Bien, así como superpongamos
ese volumen de activación, vamos a estar aplicando daño a nuestro
personaje de tercera persona. Ese daño se va a aplicar a nuestro
valor para la salud aquí mismo, una vez que nuestra salud sea menor o igual a cero, y eso es cierto. Vamos a
destruir a este actor. Esto va a provocar que el evento
destruido se desprenda. Y luego va a hacer todas
estas cosas aquí mismo. Siempre es una buena
idea compilar. Asegúrate de que tu guión
esté listo para funcionar. Guardemos eso, y
sigamos adelante y juguemos. Y déjame realmente mover esto hacia arriba para que veas este disparo. Aquí vamos. 12, que la salud está disminuyendo. Tres ahora, mira justo
arriba de la jugada Windows. Bueno, por evento
destruido para disparar. Boom. Ahí vas. Nosotros sí engendramos esa explosión, y también generamos ese fuego de efecto
plano. Ahora me gustaría seguir
adelante y mostrar un ejemplo más antes de
que terminemos este video. Y solo para mostrarles
lo que he hecho aquí está de vuelta aquí en mi nivel, agregué un cono justo por aquí un poco más allá de los límites de
mi volumen de disparo. Puedes encontrar eso en tu lugar
panel de actores justo por aquí. Pero cualquier malla estática
servirá si quieres jugar junto con ese tipo seleccionado. Lo que he hecho en mi Plano de
Nivel es si me desplazo hacia la
derecha donde antes no
podías ver esto
a la derecha. Sólo voy a estar
extendiendo la funcionalidad. Estamos dañando a nuestro jugador. Lo que quiero hacer aquí
es traer esto. Entonces además de aplicar
algún daño a nuestro personaje, voy a esperar 3 s
la primera vez que superponga esta caja Trigger y
voy a destruir nuestro cono. tengo una referencia a mi cono Aquí tengo una referencia a mi cono porque con ese seleccionado, si mantengo pulsada la tecla Alt, puedo hacer click izquierdo y trayendo
una referencia a mi cono. Entonces digo, oye cono, tú eres el actor objetivo
que quiero destruir. Ahora abajo. Con ese cono también seleccionado, puedes hacer clic derecho y
algún espacio vacío y decir, Oye, cuando estés destruido. Una vez más, te mostraré
cómo conseguí esto enDestroy. Aquí está tengo
ese cono seleccionado. Puedo agregar eventos y debajo la sección de juegos
puedes agregar en destruido. Y si lo selecciono
ahora mismo, solo me va a saltar y decir,
oye, te tengo. Entonces lo que estoy haciendo es que puedo extraer alguna información
de mi actor destruido. Estoy suministrando a ese
actor aquí mismo. Digo, oye, quiero
conseguir tu transformación. Vamos a engendrar son BP
ejemplo pick-up, y luego vamos a tocar un sonido. Entonces esto va a
suceder la primera vez que superpongamos
esta caja Trigger. Entonces, ignorando todo este daño
al personaje de la tercera personaAhora
mismo en 3 s, algunos van a
destruir nuestro cono, y luego este evento
destruido va a jugar y vamos a
tener este spawn. Sigamos adelante y
demos una jugada a esto. Vamos a compilar eso primero. Asegúrate de que se vea bien. Adelante y planeo aquí, permítanme establecer mi objeto de depuración para que sea mi mapa de prueba y sacar
mi ventana de reproducción una vez más. Ahora la primera vez que
superponga esto en 3 s, ese cono se va a
convertir en la camioneta. Ahí vas. Por lo que un par de usos
para el evento destruyeron. Me viste solo demostrar
un par de ahora mismo. El número uno sería
generar una partícula o un sonido en un lugar
de destrucción. El número dos sería
engendrar y otros actores
como una gota de baño al
matar a un enemigo. Bien chicos, eso va a
hacerlo todo por este. Te veremos en la siguiente.
40. Eventos personalizados: Eventos personalizados es el
tema de este video, y este es un
tema súper importante porque los eventos personalizados son algunos de los eventos más utilizados en todo un script de blueprint. Entonces, nuestro objetivo en este video
es conocer qué son, cómo se agregan y
por qué son útiles. Ahora un evento personalizado es un
evento que puedes nombrar y llamar para que se active
cuando quieras. Bien, entonces ver es creer, voy a estar usando principalmente el Blueprint de
personaje de tercera en este video, pero estaré incursionando un
poco en el Plano de Nivel. Así que adelante y que los abran. Voy a empezar en el
Plano de PersonaTercera PersonaPersonaje. Y en primer lugar, necesitamos agregar
uno de estos eventos personalizados. Bueno, ¿cómo lo hacemos? Haga clic con el botón derecho y escriba algún
espacio vacío en la palabra personalizada. Y bajo la categoría add
event, hemos agregado evento personalizado. Ahora en el momento en
que haga esto, va a agregar
eventos a mi gráfica, pero
me va a incitar a darle un nombre. Voy a llamar a
esto agregar salud. Ahora, si en cualquier momento
quieres cambiar el nombre de tu evento personalizado, puedes hacerlo de dos
maneras. Simplemente puedes
hacer doble clic sobre esto y te dará la
posibilidad de cambiarlo aquí. O con este nodo de eventos agregó este proveedor cliente y agrégalo en el panel
Detalles. puedes cambiarle
el nombre por aquí. Bien, entonces agregando salud, sigamos adelante y
hagamos que
este evento realmente agregue algo de salud
cada vez que se le llame. Ahora no ahora mismo. hemos conseguido nada que
en realidad llamar a este evento. Nosotros nos encargaremos de
eso en un poquito. Pero para hacer que
esto haga algo, vamos a arrastrar en nuestra variable de
salud. Voy a conseguir esto. Quiero arrastrar fuera de este
tipo en el botón más. Vamos a agregarle
alguna cantidad. Agreguemos 010. Suena bien. Entonces voy a arrastrar y
soltar mi salud encima de esta salida para que
podamos establecer nuestra salud. Entonces estamos consiguiendo nuestra salud, le vamos a sumar
diez y luego
vamos a fijarlo. Suena bien hasta ahora. Sigamos adelante e
imprima esto en la pantalla también. Así que imprime cadena. Si tomo esta salida de mi sit health
y la enchufo a la cadena, voy a obtener un pequeño nodo de
conversión para convertir un
tipo de datos a otro, un float a una cadena que lo
imprimirá en mi pantalla. Y luego también
arrastremos fuera de aquí y
escribamos emisor de desove en la ubicación. Una vez más, puedes engendrar un sistema, el sistema de
partículas del Niágara. Sólo voy a usar
la explosión de la vieja escuela porque me gusta usar eso
para prácticamente todo. Es muy visual, ¿verdad? Así que vamos a engendrar
y estallar, ¿dónde? Bueno, vamos a conseguir la ubicación de nuestros
actores aquí. Sin embargo, factorizar la ubicación. El objetivo es nosotros mismos, el personaje en
tercera persona. Vamos a enchufar eso aquí. Y luego solo
toquemos un sonido también. Arrastre algunos sonidos de reproducción. 2d. El sonido 2d es uno que no
está en un lugar determinado. Es simplemente un gran
para los sonidos del menú. Por cierto, voy a hacer
compilar, compilar, éxito. Cualquiera de estos hará,
bien, compilará y guardará eso. Eso parece un buen guión. Bien, entonces necesitamos algo que realmente llame para que
este evento suceda. Entonces este va a ser un ejemplo
bastante académico, pero solo para facilitar
las cosas aquí, lo
voy a hacer es hacer clic derecho
en algún espacio vacío. Se puede poner en la única llave. Y voy a decir que fuera de
presionar una tecla, vamos a arrastrar fuera de esto. Y ahora si escribo Add
Health, Echa un vistazo a esto. Tengo un nodo que puedo agregar, un nodo de función de llamada
llamado AddHealth. Entonces, lo que esencialmente
voy a hacer aquí es cuando presione la tecla una, estoy llamando a desprenda
este evento personalizado llamado
AddHealth. Esta es una conexión inalámbrica y ese es uno de los beneficios de usar eventos personalizados y secretar estas conexiones
inalámbricas. Ahora muy
fácilmente podría decir, Oye, fuera de la única llave, haz todo esto. Sin embargo, a veces
tienes guiones muy complicados y quieres mantener las cosas
bonitas, limpias y sencillas. Esta es una buena manera de
crear un disparo inalámbrico, inalámbrico, una
llamada inalámbrica de ese evento. Entonces esto llama a esto, lo que va a hacer que
todo este guión suceda. Sigamos adelante y
compilemos y guardemos. Adelante, juega aquí. Y voy a tratar de
enmarcar todo esto. Así que mira. Una vez que presione la tecla una, va a hacer que todo
esto suceda. Vas a ver
que ese emisor se produce. Vas a escuchar
un sonido, etcétera. Aquí vamos. Y puedo seguir haciendo esto una y otra y otra
y otra vez. Entonces estas conexiones inalámbricas
son geniales y todo, pero eso no es realmente todos
los beneficios que
obtienes de los eventos personalizados. Con eventos personalizados, también
puedes llamar para que
este evento suceda
desde otros planos. Así que sigamos adelante y llamemos a este evento desde dentro
de nuestro Plano de Nivel. Entonces, si olvidaste cómo
entrar en tu
Plano de Nivel a partir de ahora, ahí vas por centésima vez. Y voy a hacer clic derecho
y algún espacio vacío y sólo voy
a traer en el, vamos a hacer las siete teclas o
cualquier otro evento de teclado. Entonces voy a hacer clic derecho
y algo de espacio vacío. Vamos a conseguir personaje de
jugador. Vamos a arrastrar fuera de esto. Necesitamos esto para poder emitir
a terceraPersonaPersonaje. Porque necesitamos
abastecer nuestro casting de la terceraPersonaPersonaje
con un objeto y eso es suficiente conseguir personaje
jugador. Entonces, al hacer esto,
estamos comprobando, oye, ¿ nuestro personaje jugador
es
el personaje de la tercera persona? Y si es así, podemos hablar con nuestro terceraPersonaPersonaje de
alguna manera, forma, o forma. Eso incluye llamar
a eventos personalizados. Entonces, para que esto funcione, debes
asegurarte de haber compilado tu Blueprint de
terceraPersonaPersonaje. Muy importante aquí. Una vez que hayas compilado esto, ahora podrás encontrar este AddHealth over en
nuestro Plano de Nivel. Volvamos aquí, arrastremos fuera de tu
terceraPersonaPersonaje y
tecleemos , Add Health. Y mira una vez más, tenemos ese llamado de la
función en la salud. Ese es el mismo tipo de nodo que teníamos en nuestro
terceraPersonaPersonaje. El objetivo de Addhealth es
ThirdPersonCharacter. En nuestro Blueprint de nivel, objetivo de
AddHealth es
ThirdPersonCharacter. Bien, compile esto, guarde
y juegue y sacuda. Puedo presionar una tecla. Y la única clave otra vez es sumar. Algunos están llamando a
ese evento personalizado desde dentro del
terceraPersonCharacter. Pero ahora voy a
presionar la tecla siete. Y tengo mi nivel establecido
como mi opción de depuración aquí. Entonces van a
ver apagarse este fuego. Aquí vamos siete. Eso puede llamarlo también. Entonces ese es uno de
los principales beneficios de un evento personalizado es
una vez que tienes una referencia a ese blueprint
dado, en este caso, nuestro
terceraPersonCharacter. Luego puedes sacar eso
y encontrar ese evento personalizado. Puedes hacer una llamada a
ese evento de cliente. Bien, con eso,
fuera del camino,
entremos en algunos
de los matices, algunas de las otras
cosas que puedes hacer con estos eventos personalizados. Voy a saltar de nuevo a mi
Plano de PersonaTerceraPersonaAquí. Y lo que voy a hacer es
que me voy a arrastrar de esta cajita roja de
aquí. ¿Qué es esto? Se trata de un delegado de salida. Entonces, ¿para qué puedo usar esto? Bueno, pongamos un ejemplo. Voy a hacer clic derecho
y algo de espacio vacío aquí y escribir eventos. Empezar a jugar. Tenía esto conectado a mi creación del
widget, mis widgets de HUD. Olivia desconecta esto
manteniendo pulsada la tecla Alt. Clic izquierdo,
voy a robar evento comenzar a jugar rápidamente. Voy a traer eso
hasta aquí abajo por mi sumando evento
personalizado de Salud. Entonces voy a arrastrar
fuera de esto y escribir set timer by event. Al comenzar a jugar. Ese es nuestro personaje de tercera persona que se genera en el juego. Podemos tener algún evento incendiando cualquier
evento que conectemos a él. Ahora bien, esto funciona no
solo para un evento personalizado, sino que lo estoy mostrando aquí
con un evento personalizado. Esto también podría funcionar para
otros eventos. Se puede ver el evento B en
juego y otros eventos tienen este tipo de
delegado también. Entonces voy a tomar esto, enchufarlo aquí, y voy a
fijar mi tiempo para que sea 5 s. Y también voy a
poner esto para que sea un lazo. Entonces ahora vamos a
entender lo que
tengo pasando aquí con
estos eventos personalizados. Voy a decir que un
estanque empieza a jugar. Vamos a llamar a
esta función, este temporizador establecido por
evento para que suceda. Lo que va a pasar
aquí es cada 5 s, este evento que está
enchufado a este temporizador establecido por función de evento se
va a disparar. Y va a estar
sucediendo cada 5 s porque tenemos marcada esta casilla de verificación de
looping. Entonces mira esto. Así que vamos a compilar esto y jugar. Por lo que ningún empleado del evento B
ya pasó. Cada 5 s. Puede esperar otros 5 s. Así que este evento comienza la
jugada disparada desde el mismo inicio. Una vez que inicié mi juego, mi personaje responde en. A partir de ahí. Ya no vas a ver
este fuego apagado, pero seguirá funcionando
esto cada 5 s,
bam, bam, bam, bam, bam. Bien, así que ahora
sabes que con el evento del cliente creado
y agregado a tu gráfica, depende de ti
asegurarte de que
llamas a ese respiradero del cliente para que se desprenda. A veces eso puede
ser un poco molesto cuando estás
probando cosas porque tal vez las condiciones que
tienes configurado para
llamar a ese evento personalizado
son un poco complejas. Hay algo
que puedas hacer con fines de prueba
para sea más fácil tener ese incendio de
eventos de clientes? Bueno, hay con
este evento personalizado seleccionado en
el panel Detalles, tienes una casilla de verificación del
editor de llamadas. Adelante y comprueba eso. Este es un
paso muy importante aquí con eso comprobado, siga
adelante y haga clic en
esta opción de compilar. Una vez que hagas eso,
observa que este ícono
aquí mismo en tu evento personalizado
va a cambiar de ese ícono de flecha a esta pequeña f especie de
cosa que se ve en el diamante. Lo que esto va a hacer ahora es si saltamos de nuevo a
nuestro editor de niveles, una vez que juegue, vamos a ver nuestro personaje de tercera persona
se genera en. Va a estar presente
en nuestro outliner. Entonces podré
seleccionar eso. Y otra vez en el panel Detalles. Habrá en el
botón AddHealth que puedo seguir adelante y hacer clic para hacer que se active manualmente
un evento personalizado. Hago que esto suceda. Necesito una especie de
ventana lateral esto un poco. Voy a hacer clic en Reproducir. Bien, ahí está mi ventana de
juego por aquí. Ahora, en, mi editor principal. Voy a tener que pelar
esto un poco, perdón por esta falta de espacio. Ahí está en amarillo mi
terceraPersonaCarácter, voy a seguir adelante y seleccionar
ese engendrado en eso para que la
coloración amarilla indique. Y aquí abajo en
el panel Detalles. Si hago una búsqueda de AddHealth, ahora
puedo encontrar en los botones de
AddHealth, así que lo acabo de hacer,
acabo de configurarlo. Entonces aquí en el editor, puedo llamar manualmente a
este evento personalizado. Así que tenga en cuenta
que una vez que haga clic en esto, va a hacer que todos los
siguientes scripts sucedan, lo que va a crear
la explosión en OneNote. Entonces si estás mirando
por aquí mientras hago clic en esto Agregar Salud, es llamar a ese evento personalizado, bam, bam, bam. También estás viendo que
la salud se pone de pie. Pero claro que eso no
es todo checkout. Qué más podemos hacer
con evento personalizado con este seleccionado
en el panel Detalles, tengo esta sección de entrada. ¿Para qué podemos usar esto? Bueno, déjame hacer clic aquí mismo en este botón
Plus y mostrar un ejemplo rápido. Llegamos a crear una entrada. Observe cómo esto acaba de aparecer
en una nueva entrada de parámetro, y ahí está el nombre de la misma. Así que vamos a seguir adelante y nombrarlo. Llamemos a esta salud para agregar. Y puedes cambiar el tipo. Aviso Actualicé el nombre
y un actualizado aquí. No quiero que esto
sea booleano, así que voy a cambiar
esto para que sea un flotador. Y sólo voy a modificar
mi guión de la siguiente manera. Déjame seguir adelante y
hacerlo para que nuestra salud agregue, No crucemos
los cables, ¿verdad? Vamos a llamar a AddHealth. Cuando llamamos AddHealth, vamos a averiguar
cuánta salud queremos agregar,
agregarla a nuestra salud
existente y establecerla como nuestra nueva salud. Ahora bien, tenga en cuenta que
todo esto es un poco confuso, al
menos en esta etapa porque input es
lo que esto se llama. Y esto está en el lado
derecho de un nodo. Y como mencioné antes, las salidas están en el lado
derecho de un nodo. Las entradas están en el lado
izquierdo de un nodo. Todo esto es un
poco engañoso aquí, pero tiene sentido si te
desplazas hacia abajo aquí y notas que esta llamada de AddHealth de este evento personalizado agregó una entrada aquí mismo,
salud para agregar. Entonces, al agregar esta entrada
a nuestro evento personalizado, lo ha agregado como una entrada sobre la llamada de esos eventos
personalizados. Entonces cambiemos esto
a, vamos 25. Y ahora si sigo adelante,
compilar, guardar, jugar. Tenga en cuenta
que cada vez que presione una tecla, va a requerir que se active este evento
personalizado. Cada vez que
lo haga, va a decir, oye, agregar 25 de salud a nuestra salud existente y establecer
eso como nuestra nueva salud. Entonces aquí vamos. puede ver que está incrementando
25 cada vez. Entonces solo para recapitular aquí rápidamente, ¿por qué usar eventos personalizados? Bueno, número uno, si
vas a llamar a un evento personalizado dentro del
Blueprint que has creado, ese evento personalizado,
puedes crear estas conexiones inalámbricas que mantienen las cosas bonitas,
limpias y limpio. Pero el principal beneficio de un evento personalizado es con uno
creado en un plano. Siempre y cuando tengas una referencia a eso,
dado un plano, como lo hacemos aquí en nuestro Blueprint de
Nivel, puedes hacer una llamada
a ese evento personalizado, que es
lo más poderoso de ellos. O chicos que van a
hacer todo por este video, veremos en el siguiente.
41. Resumen de variables: Bien, entonces con eventos en
el espejo retrovisor, vamos a estar
desplazando nuestra atención hacia el tema de las variables y nuestro objetivo en estos videos
específicos para aprender y las variables son a la hora de programar, o en nuestro caso,
blueprints scripting. Bien, entonces, ¿qué es
incluso una variable? Bueno, se puede pensar en
las variables como contenedores que contienen un tipo
específico de información. Y me encanta el hecho de
que en irreal, estos contenedores,
estas variables tienen una especie de forma de cápsula. Si imaginas que una
cápsula puede contener algún tipo de cosas, se tiene la idea de qué se tratan
las variables. Tienen algo,
en este caso, contienen algunos datos y en realidad tipos específicos de
datos dependiendo de sus tipos. Ahora bien, estos contenedores,
estas variables existen dentro de un plano
específico. Entonces ahora mismo estoy en
mi Plano de Nivel. Estas variables que
se crean sobre en mi, Mi panel Blueprint
solo existe en este blueprint específico. Si salto a
mi camioneta de ejemplo BP ese era un plano de
clase de actor. Tengo algunas variables aquí, este sonido pick-up
es una de ellas. También tengo una
variable Delta segundos. Estos solo existen dentro
de mi pastilla de ejemplo BP. Echemos un vistazo a nuestro
personaje de tercera persona. Hay variables
que existen justo dentro de mi
terceraPersonaPersonaje. Ahora estos contenedores, estas
variables se pueden crear. Estos contenedores, estas
variables pueden tener un valor por defecto asignado a
ellos o podrían estar vacías. Y solo echando un vistazo a nuestro personaje de tercera persona aquí, tengo esta
variable de salud y actualmente tiene un valor predeterminado de 100. Y estos contenedores pueden tener su contenido cambiado con el tiempo. Su contenido puede ser variado. Como podemos ver aquí, un personaje en tercera persona
comienza con un valor de salud de 100. Pero ya has visto en videos
anteriores modificar esta
variable de salud para cambiar. No tiene que quedarse a los 100. Si tomo algún daño, podría bajar a 75, 60, etc. o puedo curarme de nuevo y encontrar mi camino de regreso en
plena salud y 100. Entonces, ¿dónde puedes crear
estas variables? Bueno, hay un par
de formas diferentes de
hacerlo dentro del panel Mi
Plano. La forma número uno es que simplemente haga clic en este
botón Agregar justo aquí. Allí se puede crear una variable. Otra forma es dentro
del panel Mi Blueprint, encuentra la sección de variables y haz clic en este
botón más justo aquí. Por lo que vale la pena señalar que algunos planos pueden haber
heredado variables. Es decir, variables
que vinieron junto con la clase padre de la que hereda
tu blueprint actual. Sin embargo, no aparecen por
defecto por aquí en
mi panel de planos. Puedes exponerlos. Entonces la forma en que podríamos hacer
esto es haciendo clic en este ícono de engranaje y obtienes este pequeño menú fly out, mostrar variables
heredadas. Siga adelante y haga clic
en esta marca de verificación significa que se muestra esa
categoría. Y ahora ves que un montón
de categorías diferentes pueblan bajo tu sección de
variables. Y puedes expandirlos
simplemente haciendo clic en cualquiera
de estos triángulos. Permítanme ampliar aquí
esta categoría de peones. Y ahora puedes ver todas tus diferentes variables en el panel My Blueprint hover. Es un poco molesto,
hacer clic en todos ellos individualmente así para ver cuál es su valor predeterminado. ¿Hay una manera más fácil? Bueno, claro que la hay. Si hago clic sobre el botón de valores predeterminados de clase en la parte superior aquí
de mi blueprint, puedo ver todas las
diferentes variables que existen para esta
clase padre es carácter, esta específica de BP ,
terceraPersonaCarácter. Nota Tengo una
categoría upon de variables. Y sobre el
lado derecho está mostrando todas estas mismas variables y está mostrando todos
sus valores predeterminados. Eso es un poco práctico. Esta clase se establece por defecto botón. Tenga en cuenta también,
que las variables que creamos
anteriormente en el curso, tenemos la
variable de salud y demás. Pertenecen a una categoría
llamada impagos. Y WPP HUD estaba bajo
la categoría de default. Entonces, si llegamos a nuestros valores por defecto de
clase, una vez más, podemos ver que tenemos
una categoría por defecto y esos existen
actualmente debajo de ahí. Ahora tenga en cuenta que las diferentes clases de
padres tienen diferentes cantidades
de variables heredadas. Pero si haces clic en
esa clase por defecto, puedes ver todas las
variables que puedes cambiar sobre un blueprint dado, incluyendo las que
has creado y llegas a ver todas sus valores predeterminados
también, bastante práctico. Ahora algo más que vale la pena
señalar aquí que si bien una clase dada puede tener un montón de variables
asociadas a ella. Entonces para hacer componentes, así que si iba a
repasar y seleccionar mi componente
de movimiento de personaje en el panel Componentes. Se puede ver que este componente de
movimiento, este componente móvil de carácter, tiene un montón de variables
asociadas a él. Todas estas son variables porque se puede cambiar
su contenido. Ahora tenga en cuenta alguna lingo común que usted o escuche mucho
cuando se trata variables es que puede obtener la variable o
puede establecer la variable. Ahora permítanme simplemente saltar sobre
mi Gráfico de Eventos rápidamente. Y simplemente voy
a usar mi más saludable. Si hago clic con el botón izquierdo y arrastro
esto a la gráfica, simplemente
estoy
haciendo clic izquierdo y arrastrando. Y solté. Se va a decir,
¿quieres obtener
tu valor para la salud o quieres establecer
tu valor para la salud? Entonces vamos a explorar estos. En conseguirlo. Podemos decir, Oye. ¿Cuánto hay aquí? Y pongamos eso
en algún otro nodo. En este caso, estamos diciendo
cuánta salud existe dentro de esta cápsula, ¿verdad? Por el contrario, puedo hacer clic con el botón izquierdo y arrastrar y decir, vamos a establecer la salud. Ahora, con este tipo
de nodo, un setter, puedes determinar a
cuánta salud se va a cambiar
este. Nuevamente, se
puede cambiar una variable. Aquí estamos obteniendo
los contenidos actuales. Aquí, estamos configurando los contenidos el valor de esta variable. Entonces si quisiera cambiar
el valor de nuestra salud, podría
decir,
ya sabes qué salud, quiero que tengas 50 años. Ahora solo codificé esto
escribiendo un número. Pero podría tener otra
variable que pudiera
enchufar a esto que determinaría que es nueva cantidad de salud. Sin embargo, tenga en cuenta que
con un getter, simplemente está extrayendo
esos datos de esa variable. Con un setter. Es necesario enganchar en
un cable de ejecución. Y el cable de ejecución
necesita establecer esto. Entonces algún evento o algún otro nodo que conduzca a esto
necesita fluir hacia él. Y podrías tener
algo que salga de él
también si quieres continuar
con tu guión, pero debes tener
algo que fluya en este pin de ejecución
aquí mismo para poder establecer, es
decir, cambiar el
valor de esa variable. Ahora un par de atajos
que puedes usar al intentar obtener
o establecer un nodo. Me viste, pulsó con el botón izquierdo
y arrastra y obtienes ese pequeño menú ahí
para conseguirlo o configurarlo. Un atajo aquí es
si mantienes presionada la tecla Control y haces clic izquierdo
y lo sueltas así, obtienes esa variable. Por el contrario, si mantienes presionada
la tecla Alt, haces clic izquierdo, arrastras y sueltas, obtienes un
setter para esa variable. Así que una lingo muy importante
para entender ahí, estás obteniendo el
valor de una variable o tu configuración de esa variable
a algún nuevo valor. Y finalmente, una cosa
muy importante para recordar aquí es que debes compilar un blueprint
para establecer un valor predeterminado. Entonces voy a saltar por encima a mi ejemplo de BP recoger
aquí, ese es este tipo. Y digamos que
quería agregar
una variable que
va a contener
cuánta salud para sanar a nuestro
personaje una vez que lo superponemos. Así podría crear una variable haciendo clic
en este botón más. esto le llamaremos cantidades para sanar. Sin embargo, sobre en el panel
Detalles dice que no
puedo darle a esto un
valor predeterminado a menos que lo compile. Entonces, si hago clic sobre en la parte superior izquierda por ese signo de
interrogación amarillo, compilar significa bueno para ir. Ahora puedo darle a esto
un valor por defecto. Diré 25. Genial. Eso también es importante
porque si estás intentando
acceder a esta variable desde
dentro de otro blueprint, ese es un paso necesario. Y solo para demostrarlo, déjame mostrarte que tengo una instancia de este plano, mi
recogida de ejemplo BP en mi nivel, voy a saltar sobre mi Plano de Nivel,
abrir Nivel Plano. Voy a mantener presionada la tecla
R y hacer clic con el botón izquierdo para crear una referencia
a esa recolección de ejemplo. Y ahora si fuera a arrastrar fuera de esto y teclear lo que
llamé eso equivale a sanar. Ahora podría obtener la cantidad
para sanar si necesitaba encontrar eso e
imprimirlo la pantalla o
algo así. O podría arrastrar fuera de esto
y escribir en cantidad para sanar. Y gritos, todavía no. Cantidades a sanar. Podríamos fijar esa cantidad. Entonces, si quería cambiar el valor predeterminado aquí
a algún otro valioso, nuevamente, eso es lo que las variables te
permiten hacer para cambiar el contenido
de ese contenedor. Puedo decir, ¿sabes qué? No
quiero que sanes 25. Quiero que sanes
solo a cinco en su lugar. Yo también podría hacerlo. Bien chicos,
va a terminarlo para esta rápida descripción general de
las variables. Te veremos en el siguiente video.
42. Booleano: Bienvenidos de nuevo a todos. En este video, nuestro objetivo es
aprender qué es una
variable booleana, cómo crear una
en cómo se puede utilizar al realizar scripts de
blueprint. Entonces, en primer lugar, ¿qué es
una variable booleana? Bueno, una variable booleana
es una variable que contiene información verdadera o
falsa. Y platicamos
en el último video, las variables son
esencialmente contenedores que contienen algún tipo de datos. Una variable booleana
es un contenedor que simplemente contiene información verdadera o
falsa. Así que imagina una cápsula y
en el interior hay un trozo de papel. Y en ese trozo de papel
dice ya sea verdadero o falso. Eso es todo lo que puede ser,
ya sea verdadero o falso. Y dependiendo del
contenido de eso, puedes emparejarlo con
algo así como un nodo
de rama para crear una
ruta de ejecución de ramificación. Si es cierto, hazlo. Si es falso, hazlo. Entonces aquí estoy dentro de mi plano de
personaje en tercera persona, y aquí vamos a
mostrar un ejemplo. Comencemos creando
una variable booleana
entrando bajo las variables del panel My
Blueprint, este pequeño botón más aquí. Y vamos a crear una
variable llamada can jump. Y por lo general me gusta poner
un signo de interrogación después de él. Voy a golpear Entra aquí. Yo personalmente, y esta es
mi propia preferencia personal. Me gusta nombrar mis
variables booleanas con un signo de interrogación. Esencialmente, ¿esto es
cierto o es falso? Ahora puedo cambiar el tipo de variable ya sea haciendo
clic aquí mismo, y puedes ver que es
booleana por defecto para mí, puedo hacer clic
ahí mismo y cambiarla, o sería esa variable seleccionados en
el panel Detalles? Puedo cambiar el
tipo de variable por aquí también. Solo un dato divertido para ti aquí. Cuando vayas a crear
una nueva variable, establecerá el tipo
de la variable para
que sea lo que fue el último tipo de
variable que creaste. Entonces, ¿qué vamos a
hacer con esto puede saltar? Bueno, antes que nada, tenemos que
darle un valor por defecto. Para ello, necesitamos
compilar el plano. Entonces vamos a seguir adelante
y compilarlo. Y con eso hecho,
podemos establecer un valor por defecto. Voy a decir que sí, podemos saltar por defecto, marcar esa casilla. Comprobado significa verdadero,
sin marcar significa falso. Sigamos adelante y marquemos esa
casilla. Ahora vamos a seguir adelante y poner en uso
esta variable booleana. Para hacer esto, voy
a crear un poco de
espacio aquí entre nuestra acción de entrada Jump, que se disparará cuando
presionemos la barra espaciadora, y nuestra
función de salto aquí mismo. Así que con nuestra variable can jump down en la sección
My Blueprint, hagamos clic izquierdo y
arrástrela a nuestro Gráfico de Eventos. ¿Queremos conseguirlo o configurarlo? En este caso, queremos
obtener el contenido de eso. Queremos saber
si podemos saltar. Lo que voy a hacer a
continuación es arrastrar fuera de esto y traer un nodo de rama, uno de los nodos más comunes en todos los scripts de Blueprint. Se puede ver que este
nodo de rama puede tomar en un tipo de variable roja que es
un tipo de variable booleana. Esa es la condición
aquí que nos permite enchufar algo a
esto para evaluar, Oye, ¿cuáles son los contenidos
de esta variable? Ahora solo son datos curiosos aquí. Si hago clic con el botón izquierdo y
rompo este cable, podríamos establecer esta
condición para que sea verdadera o falsa, verdadera, falsa. Pero quiero leer en el
contenido de esta variable. Entonces estoy configurando esto como mi
entrada del nodo de sucursal. Ahora vamos a
escabullirse esto entre aquí. Aquí voy a cortar
este cable manteniendo pulsada la
tecla Alt
y dando click izquierdo. Y voy a configurar
mi guión para que sea
así una vez que presione la barra espaciadora, que va a
disparar este evento, vamos a evaluar, esta variable
es verdadera o falsa? Si es cierto, saltaremos. Si es falso, no
haremos nada. Ahora actualmente se establece en true. Entonces se esperaría que
efectivamente, saltaremos. Sigamos adelante y compilemos. Y juguemos. Y si configuro mi objeto de depuración aquí para que sea mi
terceraPersonCharacter. Déjame seguir adelante
y traer esto. Ahora verás que ese guión se
dispara justo por aquí. Cuando presiono la barra espaciadora. Verás que de
hecho puedo saltar una vez que lo libere. Por cierto, esta parada de
saltar se va a disparar. Pero debido a que esto
se evalúa como verdad, puedo seguir adelante y saltar. Ahora bien, si iba a cambiar esto, voy a mantener
presionada la tecla Control, clic izquierdo y cambia a false. Ahora vamos a ver, oye,
¿Ken salta puesto a falso? Pues no lo es. Entonces, si tuviera que seguir
adelante y jugar, ya
verán
presiono esa barra espaciadora. Pero en realidad nunca va más allá de este nodo de rama se está muriendo aquí
mismo porque el contenido de esta variable puede saltar. Las variables booleanas establecidas en
true no se establecen en false, así que lo está haciendo así que nuestro
personaje, no pueda saltar. Bien, es cierto que ese fue
un ejemplo bastante académico, pero vamos con
algo un
poco más fiel a la vida. Vamos con este
escenario en el que tus personajes acaban de
entrar a un edificio abarrotado. Y muchas veces en los juegos, encontrarás que cuando estás dentro de un edificio abarrotado, deshabilitan a tu
personaje para que no corra. Deshabilitan a tu personaje
de un dibujo de un arma. Y en nuestro caso,
vamos a decir que nuestro personaje no puede saltar. Ahora mi computadora choca
entre pequeños cortes aquí. Así que asegúrate de haber configurado tu
script saltado de acción de entrada para que sea el siguiente. Queremos decir puede saltar, que se establece en true por defecto. Vamos a ramificarlo
y asegurarnos de que en verdad, vamos a decir que
sí, se puede saltar. Lo que vamos a hacer aquí es dentro de nuestro Plan de
Nivel, cambiar el contenido
de esta variable. Entonces, cuando estamos dentro
de un volumen de disparo, deshabilitamos a nuestro
personaje para que no salte. Y cuando estamos fuera de él, lo volteamos hacia atrás para que pueda saltar. Sigamos adelante y hagamos eso. Ahora tenemos que
volver a nuestro nivel. Dentro de aquí. Vamos
a colocar una caja Trigger. Y una vez más, se puede
hacer eso bajando. Aquí. Trae en tus placas
panel de actores con esta pestaña básica, podrás encontrar tu caja de gatillo. Coloca eso frente
a tus jugadores. Actor de inicio. Voy a
dimensionarlo rápidamente hasta 100, 200, 200. Déjame establecer el grosor de la línea
para que sea algo así como diez. Algo bonito y grueso. No me voy a preocupar demasiado
por el policía de la misma. Y abajo,
voy a cambiar el renderizado para que el actor
hidden end game quede desmarcado. Eso va a hacer que
podamos ver esto. Ahora, esta casilla Trigger seleccionada. Vamos a nuestro Blueprint de Nivel. Puedes traer tu Plano de
Nivel yendo aquí y aquí, haz clic con el botón derecho. Y tenemos ese
cuadro disparador seleccionado en nuestros niveles. Podemos agregar un evento para ello. Agreguemos uno para comenzar a superponerse. Y también vamos a
agregar uno para la superposición final. En lo que queremos hacer es comprobar para ver quién era el
otro actor. Queremos comprobar si
era el personaje en tercera persona. Así que voy a
arrastrar fuera de aquí,
teclear en tercera persona podemos lanzar a nuestro
terceraPersonpersonaje. Así. Si fue el
personaje de la tercera persona que nos superpuso, ¿adivina qué? Podemos llegar dentro de nuestro
Blueprint de terceraPersonaPersonaje. Y podemos acceder a esas variables
que viven dentro de ella, incluyendo que puede saltar una variable booleana
que acabamos de crear. Así que realmente viendo,
voy a poner mi salto de diez, voy a
teclear puede saltar así. Y ahí está mi variable. Puedo conseguirlo o configurarlo. En este caso, quiero configurarlo. Entonces voy a decir que
cuando nuestro personaje se superpone a esa
caja de gatillo, no podemos saltar. Vamos a dejar
eso como falso. Haga clic izquierdo en arrastrar, va a
resaltar estos dos nodos, controlar C para copiar, controlar V para pegar. Voy a enganchar esto
así y así. Y vamos a
decir que cuando terminemos superponiendo esa caja de gatillo, vamos a decir que sí,
puedes saltar una vez más. Entonces dentro de la
caja Trigger, vamos a decir, No, no se puede
saltar fuera de ella. Vamos a decir, sí, puedes recordar aquí atrás en nuestro Blueprint
Third PersonCharacter, estamos comprobando cuando
presionamos la barra espaciadora, estamos comprobando el contenido de esa variable por defecto true. Pero en nuestro plano de nivel, cuando estamos superponiendo
esa caja de activación, estamos cambiando a false. Cuando lo estamos terminando, lo estamos volviendo a
cambiar a verdad. Adelante y compile
esto rápidamente. Asegúrate de que nuestro guión se vea bien. Guárdalo. Sigamos adelante y jugemos
y una frase esto arriba. Déjame mover esto
solo un poco aquí. En realidad no puedo, no puedo mover
esto mientras estamos jugando. Así que permítanme
señalar eso aquí arriba. Juega una vez más.
Bien, aquí vamos. Estoy fuera de esa barra espaciadora de caja de
gatillo. Sí, puedo saltar. Vamos a mover mi
personaje dentro de él. Verás, está
cambiando esa variable ahora para que sea falsa, pasando el
ratón sobre ella. Eso también lo puedo ver. Déjame seguir adelante y
presionar la barra espaciadora. No puedo saltar. Sin embargo, una vez que dejo esto, esa variable vuelve a
voltear a true y puedo saltar. Bien, hablemos de
algunos posibles casos de uso booleanos que ves comunes en los juegos. Uno podría ser, ¿es cierto o falso el lote de la
puerta? ¿Tienes la tarjeta clave, por ejemplo, ¿qué tal si puedes disparar un arma? ¿Te
queda algún animal, verdadero o falso? ¿Qué tal si puedes
recoger un artículo? ¿Estás lo suficientemente
cerca, cierto o falso? ¿Qué tal puedes
equipar un artículo? ¿Eres un
nivel lo suficientemente alto, Verdadero o falso? ¿Qué tal puedes comprar un artículo? ¿Tienes suficiente
dinero, verdadero o falso? Esos son todos posibles. Ejemplos de casos de uso de
una variable booleana. Bien chicos, eso va a
hacer para ofrecer este. Nos vemos en la siguiente.
43. Integer: En este video, nuestro objetivo es
conocer qué es una variable
entera y cómo se puede utilizar
en tus propios proyectos de juego. Vamos a comenzar en nuestro
Blueprint de personaje de tercera persona. Entonces ahí es donde
lo puedes encontrar en tu navegador de contenido
o cajón de contenido. Haz doble clic sobre
eso para abrirlo. Y antes incluso de crear una variable
entera aquí abajo, hablemos de lo que es
un entero par. Bueno, esto es un contenedor. Este tipo de variable
es un contenedor que contiene información de números enteros. Es decir, números sin
punto decimal. Estos pueden ser números positivos
o negativos. Ahora, se puede pensar en algunos casos
de
uso de ejemplo para donde se usan números
enteros. Cosas como los valores de puntuación a
menudo se imprimen en números enteros. Valores monetarios,
cuánto oro o plata, ese tipo de cosas que tienes. ¿O qué pasa con el nivel de un
personaje? Nivel uno al 100? Esos suelen ser números enteros. Ahora, los enteros también se usan
a menudo para impulsar la lógica, por ejemplo, puede verificar si el valor
dado de un entero guardar puntos de experiencia ganados ha alcanzado un cierto umbral. Y si lo ha hecho, el
jugador sube de nivel, bien, vamos a crear
una variable entera. Por aquí están mi panel de
planos. Esta vez voy a crear
uno haciendo clic aquí
mismo debajo del botón de agregar. Vamos a crear una variable. Y por defecto
va a hacer que
el tipo sea el mismo
que sea lo que fuera tu última
variable creada. Entonces está comenzando Booleano. Voy a llamar a
este XP total ganado. Y puedes cambiar el tipo de
variable ya sea aquí, lo cual voy a hacer. Queremos establecer esto para que sea
entero no entero 64, pero hablaremos de
esas diferencias un poco más adelante
en este video. Entonces puedes cambiarlo aquí
en el tipo de variable o en el panel Detalles, también
puedes cambiar el
tipo de variable aquí mismo. Hablaremos de
estas diferencias más adelante en el curso. Pero por ahora, solo conoce el tipo de
variable que quieres cambiar está en este menú
desplegable. Un poco más de matiz para
explicar mientras estamos aquí, podemos establecer un rango de control deslizante para esta variable así
como un rango de valores. Bueno, ¿qué significa eso? Bueno, para llevar realmente a
casa este punto, vamos a compilar nuestro blueprint para que podamos establecer
un valor predeterminado. Y ahora si establecemos un
rango de deslizador e intentemos de cero a, vamos 50,000. Así. Y nuestro rango de valor es, diremos 0-100 mil. Básicamente, hemos
establecido algunos límites sobre hasta
dónde podemos llevar este valor. Ahora el rango del deslizador produce cuando haces
clic izquierdo sobre esto, mira como el icono de flecha pasó del cursor de mi mouse a la flecha izquierda y derecha, puedo hacer click izquierdo. Y si me muevo esto a la izquierda, no
puedo ir por debajo de cero. No obstante, si
lo muevo hacia la derecha, puedo subir hasta un tope de 50,000, ese es el rango de deslizadores. No obstante, si tuviera
que hacer clic en esto y poner un número
e intentaré 200.000. Esto es difícil
ingresarlo y presionar Enter. Lo va a tapar
a mi rango de valores aquí está diciendo que mi
rango de valores es de 0-100 mil. Eso es lo más alto
que puedo establecer esto. El valor del deslizador determina cuánto si haces
clic izquierdo aquí, cuánto va a ir si
simplemente haces clic izquierdo y lo arrastras. El rango de valores es
si haces clic en él, ¿Cuál es el número máximo y
mínimo? Se puede entrada dura. Voy a poner esto de nuevo a
cero por el momento. A continuación, vamos a saltar a
nuestro gráfico de eventos y crear un script simple para hacer uso
de esta variable entera. Voy a hacer clic derecho
y algo de espacio vacío. Voy a escribir el teclado y voy a
buscar el evento del teclado. cualquiera de estos le irá bien. Pero voy a buscar
x porque vamos a estar haciendo algo que valga la pena nuestros puntos de
experiencia aquí. Entonces, cuando presionamos la tecla X, ¿
qué queremos hacer? Bueno, vamos a tomar
nuestra XP total ganada. Voy a mantener pulsada la
tecla Control, clic izquierdo y arrastrar
para obtener esa variable, cuyo contenido
es actualmente cero. Y entonces me voy
a arrastrar fuera de esto. Traer el
botón add operator plus te llevará allí. esto le vamos a sumar 100. Sólo voy a poner duro esto. Entonces voy a establecer
un nuevo valor de XP ganado. Así que voy a mantener
presionada, en realidad, solo
voy a
hacer clic izquierdo y arrastrar y soltar esto justo aquí. Sólo voy a mantener pulsada la
tecla Alt, hacer clic izquierdo y arrastrar. Pero si solo dejo caer
esta variable
aquí mismo en esta salida, me
van a dar un setter. ¿Bien? Bueno,
vamos a estar haciendo a partir de aquí es arrastrarnos fuera de esto. Vamos a imprimir esta cadena. Imprimamos la cantidad
de esto en nuestra pantalla. Trae una pequeña conversión, convirtiendo un tipo de datos entero en
un tipo de datos de cadena. Entonces me largaré de aquí. Y vamos a
hacer una búsqueda de un nodo
mayor que o igual a. Vamos a decir
si nuestra XP total ganada es mayor o igual
a, diremos 500. Y yo sólo voy a establecer. Estos, en el propio nodo, yo podría contener estas
invariables ellos mismos, pero vamos a ir con
el valor duro de 500. Arrastre fuera de esto, traiga
un nodo de sucursal. Vamos a enganchar
esto así. Y vamos a decir
que si es cierto, si nuestro XP total ganado es
mayor o igual a 500, lo que vamos a hacer entonces
es arrastrar fuera de aquí. Haga otra impresión, pantalla, pantalla impresión, cadena de impresión. Y nuestra cadena aquí
simplemente va a leer en Gratz tu nivel dos. Y vamos a cambiar el color del
texto aquí para que sea un color algo nocivo
como la orilla rosa fuerte. Y haz que eso aparezca
en la pantalla durante 5 s. Así que esos son nuestros
guiones aquí mismo. Podemos hacer clic izquierdo y
arrastrar para poner un cuadro de comentarios alrededor de este clic izquierdo y arrastrar resaltar todos los toque CQI. Y llamaremos a esto R usando un entero para subir de nivel script. Voy a cambiar el cuadro de
comentarios aquí en el panel Detalles a negro. Bien, compile
esto para asegurarse de que su guión esté listo para funcionar. Eso es lo que
estamos pasando aquí. Sigamos adelante y
juguemos y veamos que estamos haciendo uso de
esta variable entera. Bien, así que cada vez
que presiono la tecla X, déjame establecer mis objetos de depuración aquí en mi terceraPersonCharacter. Cada vez que presione la tecla X, van a
ver apagarse este fuego. En la parte superior izquierda. Tengo 100 XB. Empezamos con
cero, sumado 100. Nuestro nuevo total es de 100. Una vez más,
200300400500 felicidades, eres el nivel dos. Entonces ese es un ejemplo de
caso de uso de una variable entera. Bien, intentemos un
ejemplo más esta vez accediendo a esta variable desde otro blueprint,
nuestro Blueprint de Nivel. Voy a volver
a nuestro nivel aquí. Asegurémonos de tener una caja Trigger colocada
en nuestro nivel. Me has visto hacer
esto varias veces. Voy a colocar una caja
Trigger en mi nivel. Sólo voy a
dimensionarlo un poco. Vamos 200 por 200 por 200, cambiamos el
grosor de la línea a diez. Ya te estás volviendo bueno
en esto.
Voy a bajar a la sección
Renderizado. Asegúrese de que no se verifique el
juego oculto preciso. Con esta seleccionada. Voy a saltar por encima
de nuestro plano de nivel. En cualquier espacio vacío, en cualquier gráfica que elijas. Voy a hacer clic derecho. Vamos a agregar un evento
para esa caja de activación. Cuando empecemos a superponerlo, vamos a arrastrar fuera
del otro actor, ver si ese es el personaje de la
tercera personaPersonaje. Y si es así, ahora
podemos extraer alguna información de nuestro
terceraPersonpersonaje. Es decir, podemos acceder a
cualquier variable que viva dentro de nuestro Blueprint de
terceraPersonaPersonaje. Una vez más, una vez
que se tiene una referencia de algún tipo a un objeto dado, en este caso, nuestro carácter de
tercera persona. Se puede acceder a las variables llamadas funciones dentro de ella. Es cetera. Entonces voy a escribir
en XP total ganada. Consigamos esa cantidad. Y vamos a arrastrar fuera de aquí. Haz lo mismo. Le
vamos a sumar 100. Y luego sigamos adelante y fijemos esa variable drag off
de aquí, total XB. Podemos fijarlo. Por supuesto, con los centros hay que
canalizar y ejecutar alambre. Y vamos a establecer eso como
la nueva cantidad de XP. Así que vamos a compilar este Guardar. Y ahora lo
que estamos pasando aquí es que cada vez que
superpongamos esto, vamos a incrementar nuestra XP
total de esa manera. Aquí vamos. Entonces, mirando
en la parte superior izquierda, lo
superpuse una vez, y no lo
imprimí en la pantalla. Entonces eso probablemente
sería útil de hacer. Arrastre fuera de este tipo
en cadena de impresión. No voy a estar subiendo de
nivel y solo con la esperanza de
demostrar que esto en realidad está
incrementando esa variable. Bien, ahí están nuestros guiones,
compilar, guardar, jugar. Cuando superponemos esa caja de
gatillo, 100, volvemos a
superponer, 200, 300, etc. así que imagina que podrías
darle a tu personaje puntos
experimentados si llegan a la cima de la montaña,
ese tipo de cosas. Por último, antes en este video, dije que describiría un poco cuál es la
diferencia entre un entero o un entero
64 variables. Así que déjame saltar de nuevo a mi
plano de personaje de tercera persona. Voy a
crear temporalmente una variable entera 64. Sigamos adelante y hagamos eso. Además, voy a llamar a esto int 64. Cambiaremos esto
a un entero 64, tipo
variable compile save. La diferencia es el
rango de valores posibles. Entonces con un entero 64, puedes tener un
rango más amplio de valores. Nuevamente, eso está en lo
positivo y en lo negativo, va a hacer clic izquierdo y
arrastrar esto hasta el final. Incluso podría salir de la
pantalla ahí. No lo hace. Puedes buscar en línea
el rango de esto,
pero esencialmente, con el número entero 64, obtienes un rango mucho más amplio
de números posibles. No es del todo infinito. En 64 es hacer tomar un
poco más de memoria, pero no es
tanto en la mayoría de los casos. Y casi todos los casos en
entero deberían estar bien. Déjame volver a
mi entero regular y mostrarte el rango. Vaya, tengo que
quitarme la gorra aquí, borra mi gorra, borra. Déjame poner esto
a ninguno y así. Boom, ese es el límite para un
número variable entero que va en el positivo y el negativo
en 64, infinito nueve. Y ese es el rango
para el int 64. Nuevamente, eso va en la dirección positiva y negativa. Chicos, eso va a hacer
todo por nuestra discusión de la variable entera. Muy útil, muy útil para saber que va
a hacer para ofrecer este. Nos vemos en la siguiente.
44. Flotar: Bien, bienvenidos de
nuevo a todos. En este video, nuestro objetivo es
aprender qué es una variable flotante, cómo crearla
y cómo se puede utilizar al crear scripts de
blueprint. Entonces, en primer lugar, antes de
empezar aquí, ¿qué es un flotador? Un flotador es una variable que
contiene un valor de punto decimal. Nuevamente, puede ser
positivo o negativo. Ahora, en Unreal, esta variable se utiliza muchas veces para
mantener un valor de tiempo o para determinar un porcentaje
como de cero a 100%. Y eso suele
representarse con 0.0, decir 0%, y
1.0 igual al 100%. Vamos a mostrar un par de casos de uso
diferentes aquí. Voy a estar dentro de
mi BP ThirdPersonCharacter. Y voy a estar a cuestas del
guión que usé en el video anterior cuando
estábamos mostrando un entero. Sigamos adelante y
creamos una variable. Lo voy a hacer haciendo
click aquí mismo. Y llamemos a esto retraso. Vamos a establecer
un retraso de tiempo antes hacer que nuestra cadena
se imprima en la pantalla aquí. Nuevamente, queremos hacer de esta una variable
flotante para que
puedas cambiarla aquí. Cambiándolo allí,
o a la inversa, puede cambiar el tipo de
variable con esa variable seleccionada
en el panel Detalles. Ahora, una vez que tengamos eso creado, podemos compilar para establecer un valor. Una vez más, los flotadores tienen
un valor de punto decimal, así que intentemos 1.5. Ese será nuestro tiempo
que vamos a retrasar esta impresión
de nuestra cuerda. Vamos a traer nuestra
variable de flujo manteniendo presionada Control, haciendo clic
izquierdo y arrastrando
traerá un getter
de esa variable. Y se puede ver que los flotadores son de
este color verde lima. Y luego solo vamos a traer
un nodo de retardo para que pueda hacer clic derecho en él. Algún espacio vacío. Escriba retraso. Ahí está nuestro nodo de retardo. Y déjame escabullirme
esto justo por aquí. Así. Entonces, una vez más, este
nodo de función de retardo, podríamos difícilmente establecer podríamos difícilmente establecer
un retraso que
actualmente es por defecto en 0.2 s. o podemos enchufar
algún valor a flote nuevamente, en el lado izquierdo está
pidiendo una entrada. Y la entrada
que se busca es un flotador. Entonces podrías codificarlo, o podrías
almacenarlo en una variable. Así que lo estamos almacenando aquí. Nuestro retraso actual
se establece en 1.5 s. Así que al presionar la tecla X, vamos a averiguar nuestro total de puntos de experiencia obtenidos. Vamos a agregarle uno. Y vamos a establecer
eso como nuestra nueva variable para el total de XB
ganado ese entero. Una vez que esto haya igualado
o superado 500. Una vez que eso sea cierto, vamos a
demorar en esta cantidad 1.5 s, y luego imprimir
ese mensaje que Felicidades eres nivel dos. Vamos a compilar nuestro script. Asegúrate de que sea bueno
ir a guardarlo. Aquí vamos. Jugar. Déjame meter esto por aquí para que veas que todo esto funciona. Bien, así que al presionar esa tecla X, aún no
hemos superado
este umbral también. Puedes ver esa
cantidad justo aquí arriba. Y estamos sacando algún valor
extraño para x p ganado porque olvidé establecer XP ganados nuevo a cero desde
el último video. Entonces necesito arreglarlo. Volvamos a poner eso a cero.
Eso va a fastidiar las cosas. Compilar guardar, jugar
una vez más. X Conseguí 100, 200,300,400.500 XP retrasando y luego felicita a tu nivel dos. Ahora se puede ver que una vez que
hemos superado eso, ese tipo de retraso de
cuenta regresiva
cuenta atrás aquí en el guión, lo cual es bastante práctico. puede ver como lo presiono de nuevo porque estamos superando
ese umbral, que cuenta
regresiva bastante útil. A continuación, ¿por qué no saltas a
esto un poco de guión en
tu
Blueprint BP ThirdPersonCharacter donde
estábamos creando nuestro HUD y
agregándolo a la ventana gráfica? esto un poco de guión en tu
Blueprint BP ThirdPersonCharacter donde
estábamos Destruí esto
algunos videos atrás. Entonces lo que voy a estar
haciendo aquí es dejarme traer mi respiradero, comenzar a jugar. Me va a saltar hasta aquí abajo. Permítanme simplemente mover este evento
B en juego a su posición. Y si lo hiciste destruir esto
un poco de guión, es como puedes recuperarlo. Evento Comenzar Jugar. Vamos a crear widget. Este es un nodo Crear Widget. Puedes volver
a configurar tu WB P HUD aquí para crear
ese Widget Blueprint. Entonces en este pin hice clic derecho
sobre esto y lo
promoví a una variable para
encapsular eso
con cualquier variable. Y luego agregamos
esto a la ventana gráfica. Con todo esto hecho,
hacemos clic en Reproducir. Podemos ver que ese medidor de
salud se agrega de nuevo a nuestra pantalla aquí. Ahora todo eso es relevante
porque vamos a estar usando una variable flotante para
impulsar la cantidad de salud que se muestra en este medidor de
salud. Entonces. Dentro de tu mente Panel de
planos de tu
tercera personaPersonaje. Hace algún tiempo
creamos una variable de salud. Si no lo hiciste, puedes
seguir adelante y hacer eso. Ahora. Actualmente se establece en
un valor predeterminado de 100. Ahora mencioné que los valores
flotantes a
menudo se utilizan para
tener un valor entre 0.0 y 1.0 para determinar un porcentaje 0% hasta
el 100%. Así que vamos a establecer
este valor flotante 1.0, es decir, salud completa. Y luego abajo
tenía algún guión para establecer la visibilidad de ese HUD. Enciéndalo y apágalo. Yo solo voy a destruir
este en su lugar, lo
voy a hacer es cuando
presione la tecla cinco, voy
a
disminuir un poco nuestra salud para que
podamos ver una disminución. Así que voy a mantener pulsado Control, clic izquierdo y arrastrar esto hacia adentro. Y luego voy a arrastrar fuera de aquí y
voy a traer la tecla menos,
la clave restar. Y sólo voy
a decir
disminuirlo en 0.1, es decir 10%. Y luego vamos a
arrastrar y soltar esto en
la salida con el
fin de establecer la salud. Bien, entonces actualmente
tenemos este bit de script pasando dentro de nuestro
terceraPersonCharacter. Podemos compilar esto y ahorrar. Ahora bien, si aprieta su tecla
cinco ahora mismo, van a ver
que
no le pasó nada
al propio medidor real. Y solo para
probarlo, estoy presionando F5
y parece que,
bien, los
medidores de salud no bajan. Eso es porque necesitamos vincular esta variable a este medidor. Entonces eso va a
implicar que vayamos
al activo WPP HUD, haciendo algún trabajo dentro de ahí. que podamos localizar este activo viniendo a
este nodo aquí mismo, dando clic aquí mismo para
navegar por este activo dentro del navegador de contenido. Ahí está. Y
adelante y abre esto. Bien, dentro de aquí queremos dar click en
nuestra barra de progreso. Podemos
hacerlo aquí mismo en el diseño visual o
sobre la jerarquía. Puede seleccionar ese widget de barra de
progreso. Y luego sobre en
el panel Detalles, debajo de la sección de progreso, se
puede ver que tenemos
este valor actual y actualmente es de 1.0%. Nuevamente, este medidor
va de 0.0 a 1.0. Entonces, si hago clic con el botón izquierdo
y arrastro y muevo esto hacia la izquierda, mira el medidor por encima
en el lado izquierdo, esa barra verde está
cayendo a medida que decremento esto de 1.0 a 0.0. Entonces eso está todo bien y bien. Pero, ¿cómo asociamos nuestro valor de salud sobre en nuestro
bp terceraPersonaPersonaje, este derecho, eso,
cómo asociamos eso con este widget
en particular? Bueno, tenemos que
crear una unión aquí. Y la forma en que podemos hacerlo es con esta barra de progreso seleccionada, justo donde está este valor
presente aquí. Tienes esta
pequeña opción de atarse. Adelante y da click sobre esto. Queremos crear una encuadernación. Nos va a saltar escuchar de nuestra pestaña Diseñador
a nuestra pestaña gráfica. Una vez que hagamos eso, hagámoslo. Crear una encuadernación. Y ahora lo que hemos hecho es que
hemos creado una función, se crea una tabulación gráfica
aquí arriba llamada Obtener porcentaje. Podemos cambiarle el nombre a esto. Voy a hacer eso ahora. Y nos ha dado
estos dos nodos. En primer lugar, cambiemos el nombre de esto. Voy a dar click
en esto, presionar F2, y voy a llamar a esto
Get Player health, así. Y luego sosteniendo
Control, rueda del ratón. Y vamos a acercarle un poco a
esto. Lo que queremos hacer es
hacer clic derecho en
algún tipo de espacio vacío en obtener el personaje del jugador. Podemos arrastrar fuera de esto y
Cast to ThirdPersonCharacter. Me has visto hacer
esto varias veces. Vamos a donde esta entrada así que
¿por qué la escena es así? Y una vez que hacemos esto, tenemos acceso a todas las
variables o funciones, o podemos llamar eventos personalizados dentro de nuestro
ThirdPersonCharacter. Bueno, queremos extraer
esa variable de salud. Así que vamos a arrastrar fuera de aquí, escribir, obtener salud. Ahí está esa variable de
salud flotante. Y mira, esto es
buscar un flotador entradas. Podemos enchufar nuestra salud tal como se extrae de nuestro
personaje de tercera persona y devolverlo. Para que podamos compilar y guardar esto. Todo lo que estamos haciendo ahora es asociar son
terceraPersonCharacter es variable de salud
con este medidor. Y va a
impulsar este porcentaje. A lo mejor debería cambiar el
color de esto de verde lima. Hace algo un
poco más oscuro. Vamos azul oscuro,
algo así. Hazlo un poco más
visual aquí y compilar guardar. Podemos hacer clic en Reproducir desde aquí. En realidad, hagámoslo desde
nuestra terceraPersonaPersonaje. Podemos ver este script funcionando. Haz clic en Reproducir desde aquí. ¿Bien? Y hemos creado nuestro widget de salud
al comenzar el juego. Y ahora cuando presione la
tecla cinco o la salud
va a disminuir
un 10% cada vez que
deberíamos ver eso reflejado en nuestro
medidor de salud aquí arriba también. Entonces aquí vamos. 555-55-5555 por cinco,
todo el camino hacia abajo. Y ahora mira esto. Ahora que tenemos una variable flotante de
salud asociada con nuestro
terceraPersonCharacter. Y ahora que tenemos
esa variable ligada a ese medidor dentro
de nuestro HUD WPP. Podemos volver a la
parte inicial del curso donde creamos esta
pastilla de ejemplo BP y hacerla para que cuando nuestro personaje
realmente recoja esto, que parte de la
salud de nuestro personaje se restaura. Entonces, si olvidaste dónde estaba
ese blueprint, teníamos un en este
directorio
aquí mismo , descripción general de
scripting de contenido. Voy a hacer doble clic
sobre esto para abrirlo. Dentro de aquí, vamos
a crear un poco de espacio entre nuestro nodo
ThirdPersonCharacter aquí
mismo y esta
reproducción del sonido, que
puedas
empujarlo hacia la derecha. Bueno, vamos a hacer aquí. Intentemos enmarcar
todo esto para que lo veas. Vamos a arrastrar fuera de
nuestro terceraPersonaPersonaje. Vamos a conseguir su salud. Esa variable flotante. Bueno, vamos a hacer entonces es agregar en cantidad de salud
que queremos
sanar cada vez que superponemos
este plano. Entonces vamos a agregar
otra variable aquí. Llamémoslo salud para agregar. Esta también será
una variable flotante. Necesitamos compilar
esto para darle un valor por defecto. Así que vamos a talar el 20% de la salud de
nuestro personaje que
sería punto para recordar, nuestra salud va corriendo desde
una escala asociada nuestro medidor
de salud de 0.0 a 1.0. Entonces 0.2 sería 20% salud. Vamos a
arrastrar y soltar esto en nuestra gráfica.
Vamos a conseguir eso. Vamos a sumar
estos dos números juntos, arrastrados fuera de aquí, teclee el botón más para traer
un nodo de anuncio, así. Y luego vamos a arrastrar fuera de nuestro terceraPersonaPersonaje y vamos a establecer esa salud. Entonces aquí estamos
consiguiendo la salud. Estamos agregando esta cantidad de Salud Cada vez que
superpusimos su camioneta. Y vamos a establecer eso
como la nueva variable de salud. De nuevo variables, se pueden
actualizar sus valores. Bien, entonces ese va a
ser nuestro guión, ¿verdad? Hay script actualizado. Vamos a compilar esto
un poco de bono aquí quiero
agregar a nuestra salud para agregar, seguir
adelante y seleccionar
esa variable. Si marca esta casilla
llamada instancia editable, lo que esto hará
es hacerla para que vuelta en nuestro editor de niveles, podamos realmente modificar cuánta salud puede dar este blueprint en
particular. Y podemos cambiarlo por
cada instancia de la misma. Así que vamos a compilar y
decir eso una vez más. Y voy a
alargar esto y tengo una instancia de
ello actualmente en mi nivel. Déjame seguir adelante y mantener pulsada la
Alt, hacer clic izquierdo y arrastrar. Entonces tengo dos de ellos. Y con el segundo seleccionado en el panel Detalles, tengo este estado para agregar
que ya ha sido expuesto una vez marcamos esa casilla llamada
instancia editable, voy a cambiar el estado
para agregar éste a uno. Vamos a decir que
esa es la salud plena. Yo también puedo cambiar la
escala aquí. Cambiémoslo hasta que sea 22.2, solo para hacer eso
muy evidente que ese va a ser el sanador completo. Bien, así que con eso, este de aquí
va a ser el pequeño sanador. Se va a sumar un 20% de salud. Este, agregaremos 100% salud. Sigamos adelante y juguemos esto. Y si recuerdas, si presiono la tecla cinco, puedo disminuir mi salud. O voy a superponer
el primero de aquí. Vamos a recuperar
20% de salud. Cinco claves, un poco más todo el camino hacia abajo y se superponen
y el tipo grande, y estamos todo el camino de
regreso a la salud plena. Y así ahí lo tienes. flotadores contienen valores
decimales que pueden ser positivos
o negativos. Y muchas veces se utilizan
para mantener valores de tiempo o para mantener un porcentaje
que va de 0.0 a 1.0. Chicos, eso servirá para
ofrecer este video, veremos en el siguiente.
45. Nombre: Bienvenidos de nuevo a todos. Nuestro objetivo en este es
aprender qué es una variable con nombre, cómo crear una
y cómo se puede
utilizar cuando se realiza un script de
blueprint. Entonces, a menudo hay
mucha confusión en Unreal si se debe usar o no
un nombre, una cadena o una
variable de texto. Entonces, en el transcurso de
los próximos tres videos aquí vamos a estar
hablando de algunas de las sutiles diferencias
entre esos tres. Entonces, comenzando con
la variable name, name es una pieza de textos utilizados para identificar algo
dentro de un juego. Ahora vamos a estar
usando un par de variables de nombre dentro
de este video. Identificar un nivel al que transferir. Vamos a estar transitando de este nivel a otro. También vamos a estar
usando un nombre para identificar un socket
al que queremos adjuntar un prop. Esto podría ser
algo así como una espada a mano, ese tipo de cosas. Ahora, un nombre, un
nombre es una variable que es insensible a mayúsculas
y minúsculas, y eso significa que
mayúsculas o minúsculas no importa. En una variable con nombre se utiliza
para caracteres alfanuméricos, es
decir, todas las letras y números. Bien, vamos a
empezar aquí dentro de nuestro Plano de Nivel. Entonces, si aún no lo
tienes abierto, puedes venir aquí y abrir
tu Plano de Nivel. Y vamos a crear un par
de variables de nombre. Entonces bajo el panel Mi Blueprint, vamos a agregar una variable. Voy a llamar al primer subrayado de
un nivel 01. Actualmente sí lo tengo
como variable de nombre. No obstante, si
quisieras cambiarlo, ahí mismo es donde
puedes hacerlo. Ahí está el nombre. Alternativamente,
con eso seleccionado en el panel Detalles, también
puedes cambiar el tipo
aquí mismo. Ahora quiero crear un duplicado de esta variable y
llamarla nivel dos. Así que de un par de maneras
podría hacer esto. En primer lugar, podría hacer clic derecho sobre él y duplicarlo de esa manera. No obstante, también podría hacer control más D con
eso resaltado. Para crear
un nivel duplicado, O2 es lo que quiero nombrar a esto. Sigamos adelante y
compilemos para que podamos darles a estos algunos valores predeterminados. Comenzando por el nivel uno, voy a ingresar mi
nivel uno como mapa de inicio. Y fíjate como deletreé todo
esto en minúscula. A continuación pasa al nivel dos. Y con esto, establece
el valor por defecto Mínimo, subrayado predeterminado. Y estoy haciendo esto en mayúsculas. Tienes que asegurarte de
que lo escribes correctamente. Ahora bien, si te estás preguntando por qué los
ingreso como valores predeterminados, es porque aquí atrás
en nuestro editor de niveles, dentro de mi carpeta de mapas de
contenido de historias, tengo dos mapas que existen dentro de esta estrella
carpeta de mapas de contenido. Uno llamado mínimo predeterminado. Observe cómo se escribe
solo la M y la D están mayúscula y luego
un nivel de mapa inicial. Y fíjense que la S y la M en el veterinario nuestro capitalizan. Entonces intencionalmente no estoy usando exactamente
la misma carcasa
con variables de nombre. No es necesario tener exactamente
la misma carcasa. Son insensibles a mayúsculas y minúsculas. Bien, volviendo a
tu mapa de prueba de niveles, sigue
adelante y compila
y guarda eso. Y luego en una gráfica
de tu elección, podría ser la gráfica de eventos
predeterminada u otra gráfica
que hayas creado. Sigamos adelante y
creamos un guión sencillo. Voy a hacer clic derecho
y algún tipo de espacio vacío en el teclado para que
tenga eventos de teclado. Voy a usar la tecla L
porque eso tendría
sentido para hacer la transición
a otro nivel. Estoy muy alejada
aquí manteniendo pulsado
Control, el ratón rueda hacia arriba. Déjame acercarme a
ese evento clave L. Lo que voy a hacer es
arrastrar fuera de aquí, traer un nodo de sucursal. Y si esto es cierto, queremos abrir un nivel por nombre. Y voy a duplicar
este Control C, Control V. Y si es falso,
queremos abrir un nombre de nivel diferente.
¿Qué nivel nombrado? Bueno, mira esto. Se busca una entrada de nombre. Ahora podría haber codificado
esto con solo ingresar esto. Sin embargo, estoy almacenando
estos nombres de nivel dentro de estas variables. Así que voy a arrastrar
y soltar el nivel uno sobre aquí y el nivel dos sobre aquí. Entonces, si nuestra condición aquí
resulta ser cierta, vamos a hacer la transición
a nuestro nivel de mapa inicial. Y si nuestra condición
resulta ser falsa al
presionar la tecla L, vamos a hacer la
transición al nivel dos. Ese es el mínimo por defecto. Ahora actualmente nuestra condición
es difícil de cumplir. Sin embargo, si tuviera
que hacer clic derecho y algún espacio vacío y
escribir bool aleatorio. Este práctico nodo simplemente
emitirá una bola aleatoria eligiendo
aleatoriamente
verdadero o falso cada vez que presionemos la
tecla L, bastante útil. Aquí vamos. Vamos a compilar esto y
guardar y darle una jugada a esto. Bien, entonces presionando
la tecla L aquí, deberíamos estar transitando a uno de estos dos
niveles. Aquí vamos. Y me sale un fracaso de viaje. Y esto debe ser
porque
no debo haber copiado correctamente uno de
los nombres. Entonces nivel dos aquí, Comprobemos por defecto mínimo. Y si vuelvo a ingresar a mi Mínimo los valores predeterminados son altos. Tenemos que
deletrearlo correctamente. Sí lo deletreé incorrectamente. Entonces déjame seguir adelante
y arreglarlo. Es bueno aprender
de nuestros errores. Valores mínimos por defecto. Pierna. Entonces Compila y di, intentemos esto una vez más. Nuevamente, es insensible a mayúsculas y minúsculas. No importa
si estas letras,
estos caracteres están en
mayúscula o no. No obstante, sí hay que
tenerlo deletreado ¿verdad? Entonces presionando la tecla L, elegimos nivel a ese momento. Entonces tenemos este nivel raro aquí, vamos a salir de aquí. Así que eso fue nivelado
a los elegidos en. Asegurémonos de que el Nivel
uno funcione correctamente. Detenerlo reproduciendo una vez más, presionando la tecla L, se eligió
una, y ahí vas. A continuación vamos a usar
una variable con nombre para adjuntar un prompt a nuestro
ThirdPersonCharacter. Entonces, si aún no tienes abierto
tu
activo de ThirdPersonCharacter, entra bajo los planos de contenido en
tercera persona haz doble clic en
ellos para abrirlo. Y dentro de aquí, encuentra tu componente de malla. Necesitamos hacer un poco
de trabajo de configuración
incluso antes de hacer uso de
cualquier variable de nombre. Vamos a agregar unos zócalos
a nuestra malla esquelética. Así que selecciona tu malla y otra vez en el panel Detalles vienen
bajo Malla Esquelética. Haga clic aquí para navegar hasta ese activo en el Navegador de
contenido. Entonces vas a
querer hacer doble clic en este SK M Quinn, sencillo. Y luego en la parte superior derecha
tienes diferentes pestañas. Da click en esta pestaña esqueleto
y lo que queremos hacer es agregar un socket a la mano de nuestro
personaje. Entonces este es nuestro Árbol Esqueleto, todos los diferentes huesos dentro de
nuestro esqueleto de personajes. Entonces voy a buscar una mano en
esto. Y agreguemos un socket a
nuestros personajes de la mano derecha. Voy a hacer clic derecho
en esta mano. Y con hacer clic con
el botón derecho sobre ese hueso de la mano, podemos agregar un zócalo. Y acabamos de agregar un socket. Ese es el pequeño icono es, voy a hacer click
sobre esto y
voy a renombrarlo aquí. Entonces el nombre del socket
voy a establecer para que sea toma de mano así. Ahora, dato curioso aquí
es que puedes agregar un prop de vista previa para que puedas
ver cómo se ve esto. Cuando algo está unido
al zócalo de aquí, voy a hacer clic derecho
en este zócalo de mano. Vamos a agregar
una malla de vista previa. Y agreguemos una lámpara, malla de
vista previa como
una lámpara de techo. Obviamente algo
así como una espada o una daga estaría mejor aquí, pero no vamos a ser
muy particulares con esto. Sólo voy a
hacer clic derecho aquí, presionar la barra espaciadora. Se puede ver cómo se
podría posicionar esto tal manera se podría
mover aquí así. No me voy a
preocupar por ser súper cuidadoso con esto. Puedes rotarlo,
algo así. Y nuevamente, podrías
pasar mucho tiempo jugando donde existe este
socket. Estamos compensando esto
relativo a nuestra mano aquí. Entonces puedes ingresar algunos
números aquí arriba para la ubicación y la
rotación, etcétera. O también puedes jugar con él aquí en la ventana de vista previa. Nuevamente, no voy a ser
súper específico para esto. Por el momento. Sigamos adelante y guardemos esto. Y a continuación, volvamos a nuestro terceraPersonCharacter y creemos un par
de variables. Así que saltando de nuevo a nuestro
terceraPersonCharacter, vamos a crear una variable haciendo clic en este botón más. A éste se le va a
llamar nombre de sockets. Voy a cambiar esto
para que sea una variable de nombre. Y aquí voy a cambiar
el valor por defecto. Si compilo, como
llamamos a eso tomas de mano, solo
voy a hacer todas tus tomas de mano en
minúsculas. Y
fíjense que esa
no va a ser exactamente la misma
carcasa que como la hicimos aquí en nuestro esqueleto. Lo llamamos socket de mano
con la mayúscula H y S. De vuelta en nuestro
terceraPersonCharacter, solo
vamos todos en minúsculas. Ahora voy a agregar un componente
más aquí como un prop para adjuntar a nuestro socket. Así que vamos a fingir que
tenemos una especie de fuente. Voy a agregar unos componentes de malla
estática. Y a esto le llamaremos nuestra espada, pesar de que va a
parecer una lámpara. Y con esos
componentes de espada seleccionados, ese Componente de Malla Estática
sobre en el panel Detalles. Vamos a encajar como una
malla estática o lámpara, lámpara de techo. Voy a
posicionarlo muy, muy calumniosamente. Déjame apagar el movimiento, chasqueando justo aquí arriba. Y no voy a pasar
mucho tiempo en esto para nada. Sólo vamos a ir a
algo loco así. Claro. Así. el buster ordenado
de Final Fantasy. Claro. Y luego
vamos a ir a nuestro gráfico de eventos y vamos a hacer clic derecho
y algún espacio vacío, necesito una clave de evento. Hagamos las entradas R, o en realidad hagamos el teclado. Veamos qué tenemos para los eventos de teclado
disponibles. Vamos a la tecla cero. Claro, eso va a funcionar. Vamos a arrastrar fuera
de esto y adjuntar. Y lo que estamos
buscando es unir un componente a otro. Tengo varias opciones aquí. Vamos a unir Componente,
dos componentes, espada. La espada. ¡Vaya! Eso es algo que
queremos adjuntar. El padre es a lo que
queremos adjuntarlo. En este caso, es nuestra malla. Y recuerda, la malla es lo que tiene asociado un
socket. Así que vamos a arrastrar y soltar nuestro nombre de
socket ahí mismo. Entonces, un par de cosas que necesitamos arreglar aquí son nuestra ubicación
y reglas de rotación. Queremos establecer esto para que se
ajuste al objetivo, así. Entonces este debería ser nuestro guión. Queremos unir nuestra
espada, Ese es el objetivo. Queremos adjuntar eso
a nuestra malla padre. Y donde específicamente,
bien en se llaman socket y establecemos nuestro nombre de
socket como socket de mano. Así que compila. Digamos, juguemos. Ahora, mira esa
espada fina en la bolsa de mis personajes. Si bien se ve
terrible, permítanme presionar una tecla cero y boom, ahora la
está unida
a nuestra toma de mano. Todo gracias a ese nombre,
variable, nombre saccad. Ahora vamos a resumir. Una variable de nombre es una
pieza de texto utilizada para identificar algo
dentro de un juego. Las variables de nombre consisten en
caracteres alfanuméricos, es
decir, todas las letras y números. Y son insensibles a mayúsculas, lo que significa que la carcasa, la capitalización o la minúscula no importa. Chicos, eso lo hará
todo por este video, veremos en el siguiente.
46. Cadena: Bien, bienvenidos de
nuevo a todos. En este video, nuestro objetivo es
aprender qué es una variable de cadena, cómo crear una
y cómo se puede utilizar al
programar blueprint. Para este video, vamos a estar trabajando dentro de nuestro bp, un terceraPersonCharacter, ese es el directorio
donde puedes encontrar eso. Así que sigamos adelante y
abramos esto enseguida. Entonces, como es de esperar, puede crear esta
variable String aquí en el panel
Mi Blueprint haciendo clic Agregar variable o debajo de
la sección de variables, haciendo clic en este botón más. Y voy a crear nuestras
dos primeras variables
de cadena desde el principio aquí. A este primero voy a
estar llamando First Name. Y una vez más,
se puede cambiar el tipo de la variable ya sea desde esta cadena desplegable es lo que
estamos buscando hacer aquí, o sería esa variable seleccionada sobre en el panel Detalles
bajo tipo de variable? Y voy a duplicar
esto enseguida. Puedo hacer clic derecho
y duplicarlo. O con eso seleccionado, puedo usar esa tecla de acceso rápido ahí, que es control más
D. Y voy a cambiar esta a LastName. Entonces voy a seguir adelante
y compilar esto para que podamos darle a esto
algunos valores predeterminados. Entonces para el nombre de pila,
voy a entrar bajo la sección Detalles
y escribir mr. Con un periodo. Y luego voy a agregar un
espacio en blanco justo después de él. Apellido, voy
a añadir una gota. ¿Bien? Ahora hablemos de ¿qué
es una variable de cadena? Bueno, una variable de cadena
es una variable que puede contener cualquier letra,
número o símbolo. O las cadenas son útiles para manipular
dinámicamente texto en tiempo de ejecución usando algunas funciones
listas y exploraremos algunas de
ellas más adelante en este video. Las cadenas se pueden buscar, se pueden modificar y se pueden
comparar con otras cadenas. Tenga en cuenta que debido a esto, cadenas son preferibles a
nombrar variables si quieres manipular el texto de alguna manera
mientras el juego se está ejecutando. Entonces las cadenas son un poco más caras que las variables de nombre. Pero quiero decir, si estás ejecutando un juego más pequeño o
incluso un juego más grande, quiero decir, el costo no
es tanto mayor. Bien, así que vamos a crear nuestro primer
script que va a estar utilizando algunas de estas variables de
cadena. Entonces aquí hay algo de
espacio vacío en un gráfico de eventos. Voy a hacer clic derecho. Voy a traer, probemos la llave siete. Cualquier evento de teclado servirá. Déjame acercarme a esto. Y me has visto usar
esta función muchas
veces arrastrando fuera de
aquí, imprimir cadena. Entonces este nodo puede tomar
en una variable de cadena. Ahora hay muchas
cosas que se pueden convertir en una cadena, pero ese alfiler rosa de ahí mismo, si pasas el cursor sobre
él, dice que está buscando una variable de cadena. Si tuviera que enchufar
nuestro nombre de socket,
lo convertirá en una
cadena, en realidad lo hará, si voy así y
arrastro aquí y digo toString, puedo convertir eso en
una variable de cadena. Muchas otras variables también se pueden convertir en cadenas. Pero vamos a mostrar nuestras dos variables de cadena y cómo podemos agregarlas juntas. Eso es para unir
uno al otro. Así que voy a mantener pulsado Control, clic izquierdo y arrastrar
en mi nombre y mantener presionado Control clic izquierdo. Y también voy a conseguir
mi apellido también. Como muchos nombres se presentan. Es FirstName
seguido de apellido. Entonces, una forma en que podemos manipular estas dos cadenas separadas
es añadiéndolas. Entonces, si hago clic derecho en algún espacio
vacío y vengo bajo la sección de utilidades camino hacia abajo
porque todo está en orden alfabético. Utilidades. Podemos venir bajo cadena
Utilidades. Y en la parte superior hay una función llamada append que es concatenar dos cadenas
juntas para combinarlas. Así podemos tomar nuestro FirstName y agregar
el lastName en él. Y eso nos va a dar
el resultado final. Así. Si compilo esto, asegúrate de que mi guión se vea bien aquí. Ahorre, sigamos adelante y jueguemos. Ahora cuando presione la tecla siete, debería
ver mi nombre y
apellido combinados aquí arriba. Aquí vamos. Siete, ya ve señor
vagar todo combinado. Ahora en esa sección de
cadenas de utilidades, hay muchas funciones que se pueden usar para
manipular cadenas. Déjame encontrar
otro aquí. Voy a arrastrar mi
apellido, así. Y voy a
escribir dos superiores,
otra vez, lo va a encontrar en la sección de cadena de utilidades. Voy a ir así, enganchando esto también a la sección
B. Ahora bien, si tuviera que compilar,
guardar y jugar, lo que notarás en
la parte superior izquierda cuando presione esa
tecla siete es notar cómo cambió toda la cadena de
apellido en mayúsculas. Así que eso también es un poco útil. Muchas formas de
manipular cuerdas. Ese es uno de los principales
beneficios de hacer de algo una cadena son todas esas diferentes funciones
para manipularlas. Voy a presumir
algunas de las otras funciones
manipuladoras en el Blueprint de Nivel porque he preparado algunas antes
de este video. Entonces voy a saltar de mi terceraPersonaPersonaje e ir
a mi
Blueprint de Nivel una vez más, así es como puedes hacerlo haciendo clic ahí mismo,
abre Planos de Nivel. Aquí tengo varias funciones
diferentes. Hay muchos más que
vamos a estar explorando aquí. Nuevamente, puede encontrarlo haciendo clic con
el botón derecho y algún espacio vacío pasando por debajo la sección de cadena de utilidades. Aquí, todas las
funciones del manipulador de cuerdas que viste anexar. Entonces, si tuviera que hacerlo, voy a arrastrar y
soltar cada uno de estos en mi
función lista para usar aquí, mi script de función de cadena de impresión que puede disparar
con la tecla S aquí. Entonces, si tuviera que probar esto, puede ver como
presionando la tecla S, puedo anexar esa cantidad en dólares
después de los textos del dinero. Bastante práctico. Bien, déjame deshacerme
de ese tipo y vamos a
mover el tiempo segundos a la cadena. Este es
otro que me gusta mucho. Lo que esto va a hacer, y
preparo ésta con anticipación, es que cambié esta variable float
para tener un valor de 500. Entonces, si iba a cambiar
eso en segundos, ¿cuántos segundos es eso? Bueno, esto hará
el trabajo por ti. Entonces, si presiono la tecla S ahora, puedes ver cómo eso
lo imprime en una bonita forma de tiempo. Eliminemos esa. Intentemos dividir una cadena. Entonces si esta es mi cadena fuente el 4 de
julio con una coma 17, 76, y quiero
dividirla en esto en STR, esta poco bien. Aquí, a la izquierda de eso
voy a conseguir el 4 de julio. A la derecha de eso,
obtendría 17 76. Entonces, sigamos adelante
y probemos esto rápidamente. Dividir una cadena. Sólo estoy llegando a la
izquierda de esa coma, presionando la tecla S. 4 de Julio. Y si tuviera que mantener presionado control y llegar
a la derecha de eso, ahora obtendría que en
realidad sería un espacio en blanco en 17 76, pero no puedes ver
el espacio en blanco, solo
va a mostrar un 17 76. Ahora algo genial que
podrías hacer aquí es que
podríamos convertirlas en variables que
podríamos cambiar. Entonces podrías
hacer clic derecho sobre esto, promover eso a una
variable y llamar esta fecha de independencia estado
independiente para Estados Unidos de todos modos, los internacionalmente,
eso sería alguna otra fecha ojalá
para tu independencia, ¿
deberías disfrutar de ese lujo? Y así al hacer esa compilación, se
puede ver cómo
creamos la variable de
esa manera haciendo clic derecho y la promocionamos a variable. Tenga en cuenta que automáticamente toma esa información
que tenía codificada en esa función
en ese lugar y rellenó
automáticamente
esa variable de cadena. Así que solo pensé
que tiraría eso por ahí también. Veamos otra
aquí, esta función de reemplazo. También puede encontrar esto en la sección de cadenas de utilidades
y haga clic derecho en el menú. Súper práctico porque se podía
ver un escenario como este. Y otra vez donde
tienes una cadena fuente que
dice que la puerta está cerrada con llave. Puedes cambiar algunos
textos que especifiques, en este caso bloqueados
al texto abierto. Entonces esa es otra ventaja
de estas funciones de cadena. Tienes todas estas formas
diferentes de manipular los textos. Entonces aquí vamos. Esto debería decir es que la puerta está cerrada, estoy diciendo cambiado con
llave para abrir. Entonces, al presionar la tecla S, la puerta está abierta. Y así ahí lo tienes. Una variable de cadena es
una variable que puede contener letras,
números o símbolos. Son útiles
porque se pueden manipular
dinámicamente
en tiempo de ejecución. Y una vez más, para encontrar
todas esas funciones haz clic derecho y
quieres entrar en Utilidades. Camino en la parte inferior aquí, cadena de
utilidades y tienes toda
una serie de funciones para
manipular esas cadenas. Bueno, eso lo va a hacer
todo por este chicos, los veremos en el siguiente.
47. TEXTO: Bienvenidos de nuevo a todos. En este video vamos a estar aprendiendo qué es una variable de
texto, cómo crear una
en cómo se puede utilizar cuando
blueprints scripting. Entonces esta es la tercera de
esta categoría de variable,
es decir, la variable name, la variable string
y la variable text. ¿Cuál es la variable de texto
y cuándo se debe usar? Bueno, las variables de texto
deben usarse para cualquier texto que un usuario pueda
ver durante un juego. Textos que puedes ver
en un HUD dentro del juego, o tal vez algunos textos que
veas en los menús o tal vez en una
pantalla de puntuación alta, ese tipo de cosas. Usa este tipo de textos que
quieras localizar. Entonces, si buscas
traducir tu juego y todo el texto que acompaña a
eso al alemán, francés, español, todo
ese tipo de cosas. Vas a querer
asegurarte de que ese texto esté en el tipo de variable de texto. Ahora bien, las variables de texto
son sensibles a mayúsculas y minúsculas, mientras que
las variables con nombre no Fueron insensibles a mayúsculas y minúsculas. Las variables fiscales diferencian
mayúsculas de minúsculas Bien, vamos a estar
haciendo un poco de trabajo dentro de nuestro WB P HUD. Entonces ahí es donde
puedes encontrar que creamos eso hace algunos videos. También vamos a estar
haciendo un poco de trabajo
dentro de nuestro Blueprint
de personaje de tercera persona. Así que lo puedes encontrar en la carpeta
Blueprints en tercera persona también. Así que abre a esos dos tipos. Voy a
empezar en mi W BP HUD. Ahora, tal vez recuerdes cuando
hicimos esto hace algún tiempo. Todo lo que hicimos fue crear
una caja horizontal. Y dentro de esta caja
horizontal, agregamos un widget de texto
así como una barra de progreso. Ahora, tengo esta cosa de
salud por el momento, pero voy a cambiar esto
en el panel Detalles. ¿Simplemente dices el nombre del
personaje? Nombre del personaje. Esta es del tipo de
variable de textos. De hecho, si pongo el cursor sobre
esta bandera aquí mismo, se
puede ver que
se trata de algunos textos que pueden ser localizados en la que está activada la
casilla de verificación. También voy a cambiar el nombre de estos widgets
en particular a nombre de personaje o
textos de caracteres. ¿Qué tal eso? Estamos hablando de
variables de textos aquí. Sólo para que eso sea un
poco más claro. Entonces lo que vamos a
estar haciendo ahora es E dentro de nuestro
terceraPersonCharacter, estoy dispuesto a estar
creando una variable de texto. Y le voy a dar
el nombre que deseo nombrar
a nuestra
terceraPersonaPersonaje. Así que voy a subirme por allá. Vamos a crear una asociación aquí
en sólo un poquito. Pero súbete a tu
terceraPersonaPersonaje. Y vamos a
crear una nueva variable. Y vamos a llamar a esto nuestros textos de personajes solo
para que quede más claro. Y vamos a cambiar
esto a un tipo de variable de texto. vamos a compilar. Y voy a llamar a esto mi superhéroe. Eso suena como un buen nombre. Ahora con esta
variable de texto creada, voy a compilar
aquí y guardar. Y ahora vamos a asociar
esta variable a nuestro HUD W, B P para que podamos
leer realmente en estos textos de superhéroes. Así que salta a tu HUD WPP. Selecciona donde dice el nombre del
personaje. Y encima en el panel Detalles donde dice el nombre del
carácter de texto, necesitamos crear un enlace. Voy a hacer eso haciendo
clic en la encuadernación. Crear encuadernación. Y esto nos va
a saltar de la pestaña Diseñador
a la pestaña gráfica. Eso es justo lo que pasó ahí. La pestaña Designer te lleva de nuevo
a este diseño visual. Graph tab es donde
se puede crear algún script. Y más específicamente,
nos saltó
a crear una función completamente
nueva. Entonces en este momento nuestra función se
llama get character texts. Textos es cero, que
es un nombre horrible. Lo que se hace es
abrir una nueva pestaña aquí. Y aquí está el nombre de la función que estamos
armando. Voy a cambiar el nombre de esto
al pasar el rato sobre esto. Y le cambiaremos el nombre. F2 también mentirá para renombrarlo, y voy a llamar a esto
obtiene textos de caracteres. Entonces ahora lo que queremos
hacer fuera de aquí es muy parecido a lo que hicimos con
nuestra salud Get Player. Sólo voy a
saltar a esa función muy rápido haciendo
doble clic sobre ella. Estábamos obteniendo nuestro
personaje de jugador y estábamos lanzando a nuestro terceraPersonCharacter
para que pudiéramos obtener esa información variable. Voy a destacar
estos dos nodos, haciendo click
izquierdo y arrastrando. Voy a hacer Control C.
Y luego voy a doble clic en la
función de la que acabo de venir. Obtengo textos de personajes. Y entonces aquí dentro voy a
hacer Control V para pegarlo. Voy a cablear esto
así. Y una vez más, una vez que tengas una referencia a tu
terceraPersonpersonaje, puedes extraer alguna
información de él, incluyendo cualquier variable
que viva dentro de él. Así que creé esa variable
dentro de mi
personaje en tercera persona aquí llamada textos de
caracteres. Así que de vuelta aquí a mi WB P
HUD, dentro de esa función, voy a arrastrar aquí
y puedo hacer una
búsqueda de textos de un personaje. Quiero conseguirlo y mirar el valor de retorno que esta
función está buscando. Mencioné que en la pestaña Designer que este widget de texto en
particular, estamos vinculando esto a
algunos textos reales. Esa es la salida
que estamos buscando aquí en nuestra pestaña gráfica. Eso es buscar el
valor de retorno de una variable de texto. Entonces vamos a
enchufar estos textos justo aquí. Así. Y si compila y
guardo y ahora juego, notarás que
en la parte superior izquierda, ahora
dice superhéroe, el nombre de nuestro personaje como
especificamos dentro de esa variable de textos de
caracteres. Bien, algo más
que quería presumir con una variable de texto
aquí es la forma en que
puedes formatear algunos textos
porque creo que a muchos de ustedes les resultará
esto útil también. Ahora para hacer lo que
quiero presumir,
vamos a saltar de nuevo a
nuestro terceraPersonaPersonaje. Y luego volveremos a saltar
aquí a nuestro WPP Hudson. No solo cierres
esto todavía. Volvamos a nuestro
terceraPersonaPersonaje. Así. Vamos a crear un
nuevo texto variables. Voy a venir bajo
Variables click plus. Y voy a llamar a esta pierna
de estado de salud. Entonces voy a cambiar el valor predeterminado del estado de salud para que sea algo tipo
de interesante. Entonces vamos a compilar aquí y ver lo que
voy a escribir aquí. Déjame ampliar
esto un poco. voy a poner tienes, y esto va a ser
un hermano rizado, lo siento, corchete
rizado, no corchete
recto manteniendo presionado el turno, corchete
izquierdo, salud. Soporte rizado derecho manteniendo
presionado Shift y presionando el botón del soporte,
HP restante. Ahora mientras. Ahora bien, por qué he hecho esto es porque con nuestra variable de
texto aquí, sí
tenemos la capacidad
de formatear nuestros textos y cambiar estos contenidos aquí
mismo para que se lea esto, le quedan 100 HP, te quedan 50 HP, ese tipo de cosas. Ahora la forma en que
podemos hacerlo es a través un nodo de formato textos. Entonces quiero formatear esto. Voy a hacer algunos guiones
aquí y luego
unirá esto de nuevo a nuestro HUD WPP. Entonces aquí están
ThirdPersonCharacter Event Graph. Voy a hacer clic derecho
y vamos a probar la tecla nueve. Cualquier tecla de entrada servirá. Nike funcionará
bien por ahora. Y me voy a
arrastrar fuera de aquí. En realidad, no nos
alejemos de aquí todavía. Quiero traer
nuestro estado de salud, arrastrar eso y
vamos a conseguir eso. Y luego voy a
arrastrar fuera de aquí y escribir en formato texto. Bien, entonces las hojas actuales
solo tienen un pin, pero aquí vamos a
agregar un pin. Y actualmente está
etiquetada como cero. Sin embargo, si selecciono
este nodo de textos de formato, puedo cambiar
aquí arriba el argumento que va a ser este pin de entrada. Para ser a menudo esto se debe deletrear exactamente como tenemos un escrito en nuestro estado de salud. Entonces tengo mayúscula H E, H E a L T H, salud. Así como así. Con tu formato, los nodos de
texto seleccionados cambian el argumento ahí
para que sea exactamente el mismo, y eso aparecerá
como un pin de entrada en este nodo de texto de formato. A continuación, lo que voy a hacer
es que voy a tomar nuestra variable de salud
aquí, así. Este es actualmente un flotador
y enchufarlo aquí abajo. Ahora esto es actualmente gris, lo que significa que puede tomar cualquier cosa. Entonces voy a enchufar una variable flotante,
y así dirá:
Bien, quieres
enchufar a flote, esta ahora será una entrada flotante. Lo cambiará a cualquier tipo de entradas que le
pongas así. Y el resultado aquí, voy a promover
esto a una variable. Haga clic derecho en promover. Y creó esta nueva
variable de texto aquí abajo
llamada resultados. Voy a cambiar esto
para ayudar a resultado. Creo que eso va a ser un
poco más descriptivo. Entonces ahora lo que estamos haciendo aquí es cuando
vamos a presionar la tecla nueve, vamos a tomar nuestro estado de salud
actual aquí, esta frase, si se quiere, vamos a intercambiar lo que
especificamos aquí mismo esta salud y
la razón por la que tenemos esta salud
exacta entre
llaves es exactamente la misma aquí en los argumentos
es para que se lea que es la textura que
estamos tratando de intercambiar. Y entonces el resultado aquí
será el resultado de esta línea con la salud siendo intercambiada por lo que sea
este valor flotante. Ahora se dio cuenta de que esto está
en forma de punto decimal. Entonces vamos a conseguir
un valor aquí, 0-1. Y normalmente
querrías leer en 100 salud, ese
tipo de cosas. Pero eso va a estar bien
para fines de demostración. Voy a compilar este último bit que necesito
hacer aquí es que necesito
atar este resultados de salud de la
noche a la mañana, WB sea HUD. Entonces para hacer esto, voy a
volver a subir por aquí. Déjame volver a
mi pestaña Diseñador. Voy a
arrastrar y soltar rápidamente un widget de texto
en algún lugar por ahí. Esto no se pide que
sea súper preciso. Esto va a
estar pasando el rato aquí. No voy a mostrarlo ni
esconderlo ni nada por el estilo. Sólo voy a llamar a
esto mi estado de salud. Y actualmente si iba a
jugar esto solo nos va a mostrar el estado de salud
en la pantalla. Así, estado de salud. Sin embargo, quiero vincular
esto a nuestra variable,
nuestra variable de estado de salud dentro de nuestro
terceraPersonaCarácter. Entonces necesitamos crear
este enlace yendo aquí, bind, create binding. Y como nos saltó
a la pestaña gráfica, vamos a cambiar el
nombre de esta función, golpeando F2 por aquí para
obtener el estado de salud así. Vamos a hacer como hicimos con nuestras
otras funciones aquí, voy a hacer doble clic
sobre esta otra función. Vamos a agarrar
estos dos nodos, control C. Saltar de nuevo a nuestra
función de estado de salud en la que estamos trabajando, control v .
Así. Y ahora que podemos hacer es encontrar dentro de nuestro
terceraPersonpersonaje, asegúrate de que has compilado esto. Queremos agarrar esta variable de resultado de
salud. No debería cambiar
esto a Help Desk, voy a llamar a esta
salud buenos resultados de salud. Seamos un
poco más precisos. Están arrastrando fuera de
nuestro
tipo de personaje en tercera persona en resultados de salud. Queremos obtener el resultado de
salud, no el estado
de salud de los resultados de salud. Hay dos de nombre similar. Y ahora, si tuviera que compilar, guardar, notar que nuestro
terceraPersonpersonaje, una vez que presionamos la tecla nueve, eso es lo que vamos a
actualizar nuestro resultado de salud aquí. Entonces voy a presionar
el botón de reproducción. Y una vez que presione la tecla nueve, le queda un HP. Ahora bien, en algún lugar de
esta tercera personaPersonaje, yo estaba decrementando nuestra salud. Bueno, eso fue con los enfermos, los cinco claves, ¿no? Entonces saltando de nuevo aquí. Y estoy presionando la
tecla cinco para bajar mi salud. Ahora bien, si presiono la tecla nueve, debería actualizar esto. Ahora tengo 50% de salud, las cinco claves bajando,
bajando, bajando. No debería tener 20
por ciento de salud. Entonces voy a presionar la tecla F9. Una vez más, también tienes
20% de salud. Y podría formatear esto
para que sea más sensata, pero ya entiende el punto. Y por último, sí hice mencionó que cualquier texto
orientado al usuario, ya
sea en el HUD
o en los menús, ese tipo de cosas que
quieres tener localizadas. Debe estar dentro de una
variable de texto, ese tipo de textos. Debe estar dentro de una
variable de texto si un usuario
va a leerla en
diferentes idiomas. Ahora bien, ¿cómo vas
con todo ese proceso que está mucho más allá del
alcance de este video? No obstante, le
señalaré este
pedacito particular de documentación. En la documentación
oficial de Unreal Engine five, puedes venir bajo docs
dot Unreal engine.com. Puedes ver la
dirección justo aquí arriba. Mucha información
sobre cómo conseguir textos localizados con esos chicos. Eso lo hará todo por éste. Te veremos en la siguiente.
48. Vector: Bienvenidos de nuevo a todos. La variable vector es
el tema de este video. Entonces aprendamos a
crear uno y a utilizar uno dentro de algunos scripts de
blueprints. Entonces, en primer lugar, ¿qué es
una variable vectorial? Bueno, una
variable vectorial es aquella que contiene tres valores flotantes, es
decir números con
un punto decimal. Por lo general,
se utilizan para especificar datos de coordenadas 3D x , y y z. Sin embargo, se pueden
usar para contener R, G y B, es decir, datos de color rojo ,
verde y azul. Bien, para mostrar
algunos ejemplos aquí, quiero hacer uso de
nuestro Plano de Nivel, pero incluso antes de que
saltes ahí, asegurémonos de que tienes un lugar de caja Trigger dentro de
tu nivel porque estamos va a estar haciendo uso de eso para
mostrar algún uso de variables
vectoriales. Entonces, si
aún no lo has hecho, entra aquí mismo debajo
del panel de actores de lugar, con la pestaña básica seleccionada, puedes encontrar una caja Trigger. Adelante y coloca uno
de esos en tu nivel. Y entonces todo lo que hice aquí fue poner mi caja se extiende hasta ser 200, 200, 200, grosor de línea de diez. Y debajo de la sección de renderizado, acabo de apagar actor oculto
y juegos para que pueda ver este volumen disparador
cuando estoy jugando. Bien, con esta caja de
activación seleccionada, luego salta a tu Plano de
Nivel. Enseguida. Lo que
vamos a hacer es hacer clic derecho. Me has visto hacer
esto 1 millón de veces. Ahora. Vamos a agregar en
actor comenzar evento de superposición. Queremos que algo suceda cuando superpongamos esta caja Trigger, y queremos que
suceda solo cuando el personaje de la tercera persona
es el otro actor. Eso nos superpone para
arrastrar fuera de ahí escribiendo Cast to
ThirdPersonCharacter. Lo primero que quiero
hacer aquí es simplemente deformar a otra ubicación. Ahora bien, para
determinar en qué ubicación
queremos trabajar también, podríamos sostenerla en
una variable vectorial. Así que vamos a entrar en
nuestra sección de variables. Haga clic en el botón más
y llamemos a esto nuestro warp, también locale. Y para cambiar esto a una variable
vectorial, una vez más, puedes dar click aquí y
configurarla como una variable vectorial. O con eso seleccionado
sobre el panel Detalles, también
puede cambiar el
tipo de variable a un vector. Voy a compilar aquí. Y podemos ver que una vez que lo hacemos, el valor por defecto se establece 00.0 y estos son valores
decimales. Estos son tres valores de flotación. Y se puede ver como estoy
resaltando sobre estos, estas son las coordenadas x,
y, y z típicamente. También puedes hacer clic en esta
pequeña flecha hacia abajo para expandirla y mostrar las x, y y z.
Lo que voy a hacer
aquí es establecer esto para que sea un valor que esté por encima,
arriba en el aire, por encima de
mi caja de activación. Entonces, lo que esencialmente voy por aquí es que quiero
superponer esto. Voy a
engendrar aquí mismo. Voy a superponer
esto y luego quiero deformar
a un lugar
que esté justo encima de él con la idea de
que voy a caer en algún lugar cercano a él. Y entonces puedo
repetirlo una y otra vez. Entonces voy a copiar
la ubicación de este cuadro Trigger con este seleccionado sobre en
el panel Detalles, voy a
hacer clic derecho derecho por aquí y copiar estas coordenadas. Entonces voy a saltar de nuevo
a mi mapa de pruebas de nivel, Plano de
nivel, pasar
bajo mi urdimbre a locale. Y aquí mismo
voy a hacer clic derecho y pegarlo para pegarlo
en esos mismos valores. Sin embargo, quiero
establecer mi valor z para que sea mayor para que no me vuelva a deformar
en la misma caja. Entonces voy a establecer mi
valor z aquí para que sea 2000. Sepa que dependiendo de
dónde coloque su caja de activación, sus valores aquí
serán diferentes. Solo necesitas
saber que tu x e
y pueden decir lo
mismo que tu caja de gatillo. La Z que vas a querer establecer sea un
número mayor para que
termines deformándote por encima de
los límites de esa caja. Ahora lo que queremos hacer
aquí es cuando superponemos esta caja con un personaje en
tercera persona, queremos arrastrar fuera de nuestro
personaje de tercera persona y escribir la ubicación del actor de inserción. Este es un nodo de función
que puede mover tu objetivo. En este caso, nuestro personaje en
tercera persona a una nueva ubicación. Y qué
sabes que estamos almacenando esa ubicación dentro de
esta variable vectorial. Así puedo hacer clic izquierdo
y arrastrar y soltar esto justo encima de
nuestra nueva ubicación. Y voy a compilar
esto para asegurarme de que nuestro guión se vea
bien aquí y lo está, vamos a guardarlo, y
sigamos a jugar. Entonces, una vez que superponga esto, debería deformar a una ubicación que esté por encima de ella
en alguna parte. Aquí vamos. Ahí vamos. Se ve que simplemente sigo
cayendo a través de él una
y otra y otra vez. Déjame tratar de
alejarme de ahí. Bucle infinito. Pero entiendes la idea. Ahora puedes ver cómo podrías expandir este script
aquí mismo en un efecto de sonido,
tal vez un efecto de partículas
más pequeñas en la ubicación de donde solaparemos
ese cuadro de activación y en el warp a locale. Pero la ubicación de
la caja Trigger, que es un ejemplo
de uso de una variable vectorial. Ahora hagamos un uso más de una variable vectorial y
utilicémosla para especificar un color. Para ello, voy
a hacer click izquierdo sobre este warp para configurar el
Control D para duplicarlo. Duplicará esa variable
y sólo voy a
llamar a este nuevo color. Simplemente voy a
agregar una clave de entrada aquí. Vamos a probar el, no sé la llave nueve y ver
si eso está disponible. El nueve clave, Claro, Cualquier evento de entrada servirá. Y voy a arrastrar esto
y escribir cadena de impresión. Y va a
imprimir el texto Hola. No obstante, si explico esto hacia abajo, puedo especificar un color de texto. Ahora bien, si coloco el cursor sobre
este pin de entrada, dice
que este tipo de variable es una estructura de color lineal. Ese es el tipo de
variable que busca. Y podemos crear
uno de esos haciendo clic derecho sobre él y
promocionando a una variable. Pero la idea aquí
es que quiero
mostrar cómo se
podría usar una variable vectorial para
especificar un color. Ahora bien, si selecciono mi nueva variable de
color aquí y la compilo para
poder agregar un valor aquí. Es copiar los datos que vinieron de mi
warp a locale. Así que permítanme poner
esto de nuevo a 00.0. Ahora bien, si estás usando
una variable vectorial para especificar un color RGB, necesitas saber que
estos valores se ejecutarían esencialmente de 0.0 a 1.0. Básicamente estás especificando
qué porcentaje de rojo o porcentaje quieres de verde y qué porcentaje
quieres un azul. Voy a establecer mi
nuevo color aquí para que sea 1.0 para el valor r, el b y el g,
voy a dejar como cero. Así que esencialmente estoy
diciendo que me den 100% rojo, no verde, y no azul. Ahora si trato de arrastrar
y soltar esto encima de mi texto el color es porque
ellos no, no pueden hacerlo. Sin embargo, si lo arrastro y lo
suelto, lo entiendo. Y luego arrastro esto a
la entrada de color del texto. Va a
convertir mi vector a un tipo de estructura de color lineal. Ahora al hacer esto,
puedo compilar,
guardar, asegurarme de que
mi guión sea bueno para comenzar. Sigamos adelante y jugemos. Ahora cuando presione la tecla nueve, verá que el texto Hola aparece en
rojo y eso está siendo impulsado por mi variable vectorial donde estoy usando eso
para especificar un valor de color R, G y B. Y ahí lo tienes. usos comunes de
las variables vectoriales incluyen su
uso para los puntos de generación
o respuesta, o tal vez para los puntos de inicio y finalización de una plataforma
móvil. Y lo exploraremos
más adelante cuando hagamos una lección sobre cómo
hacer uso de nodos de línea de tiempo
dentro de los scripts de blueprints. Chicos, eso lo hará
todo por éste. Nos vemos en la siguiente.
49. Rotador: Bienvenidos de nuevo a todos. La variable rotador es
la estrella de este video. Entonces aprendamos cómo crear
uno y cómo se puede utilizar dentro de un script de
blueprint. En primer lugar, ¿qué es un rotador? Bueno, rotador es una variable que contiene información
rotacional. Ahora, los objetos se pueden rotar
alrededor de tres ejes diferentes, el x, el y y el z.
Y esto puede informar
cuánto queremos que se rote
un objeto dado, almacenándolo dentro de estas variables
rotadoras. Ahora antes de llegar a
alguna de esas cosas, solo
quiero
señalar aquí con cualquier objeto seleccionado
en tu nivel sobre cómo gira la rotación
alrededor de un eje dado. Entonces ahora mismo
puedes ver que tengo mi disparador Volumen seleccionado aquí, mi cuadro de activación, y
actualmente estoy dentro de
mi modo de movimiento, indicado por eso
para widget con flecha. Ahora bien, si tuviera que cambiar
esto al modo de rotación, podemos ver como si giramos alrededor del eje x
son flecha roja aquí. Eso implica moverse así. Se mueve alrededor de ese eje. De igual manera, observe nuestro eje aquí apuntado
en esta dirección. Si tuviéramos que cambiar
esto a rotación, lo
estaremos moviendo
alrededor de ese eje. De igual manera, si tenemos nuestro eje z aquí
apuntando hacia arriba y hacia abajo, si estamos rotando
alrededor de ese eje, esencialmente lo
estamos
moviendo así. Girándolo así. Necesito ser
gramaticalmente correcto. Muy bien, con eso,
también hice un
cambio más entre videos en que creé
una carpeta completamente nueva
aquí y nuestra carpeta de scripting
simplemente hice clic derecho, creé una nueva carpeta
y la llamé actor. Bp's. Lo que hice aquí
es que moví todos mis planos que estaban
en mi carpeta de resumen. Simplemente los arrastro y suelto, hago clic con el botón izquierdo y
los arrastro dentro de la carpeta de mi nuevo actor BP. Porque eso simplemente parecía
un nombre más descriptivo. Carpeta de visión general. Es como que sobrevivió
su vida útil. Entonces voy a crear
un nuevo plano aquí dentro de las carpetas de mis nuevos
actores BP. Al hacer clic con el botón derecho, vamos a crear
una nueva clase de blueprint. Este será un plano
de clase actor. Así que elige actor. Y voy a nombrar a este
BP subrayado puerta giratoria. Vamos a estar creando
algunas variables rotadoras dentro de este plano. En primer lugar, sigamos adelante y doble clic sobre
esto para abrirlo. Y no quiero agregar
un par de componentes. Entonces el primer componente
que voy a agregar entrando bajo mi sección de
componentes, va a ser una
caja, caja, caja caja. Déjame solo hacer una
búsqueda de caja. Ahí está. Colisión de Caja. Y con eso seleccionado, sí
tengo algunos detalles que
quiero establecer para esto en el panel Detalles. Quiero establecer la ubicación
para que sea negativa 45 y la ubicación z para que sea 110. Verás por qué aquí
en un poquito. Vamos un poco en
el aire así. Además, voy a
cambiar la extensión de la caja para que sea 170 en la x, 60, en la y, en 110, en la z. Así que es un poco alta,
algo así. Bien, con eso hecho, vamos a agregar un componente de malla
estática. Voy a añadir esto. Estamos buscando una malla estática. Y actualmente esta
Malla Estática está unida a nuestra caja. Lo arreglaremos en
un poquito. Voy a llamar a
esto mi malla de puerta. Bien, con esto seleccionado
en el panel Detalles, quiero establecer nuestra malla
estática para que sea, haga clic en este pequeño desplegable, puerta de subrayado
S M. Ahora bien, este es un activo que vive en la carpeta de
indicaciones de contenido de inicio. Honestamente, puedes usar cualquier
tipo de puerta como malla, pero esta funciona bien. Entonces sigamos adelante y usémoslo. Nota al margen aquí, esta malla no tiene ninguna
colisión en ella. Sé que puedes simplemente
atravesarlo, pero va a
estar bien por
mostrar la rotación de una malla de puerta. Sigamos adelante y coloquemos eso. Ahora, mencioné que esto está actualmente
adjunto a nuestra caja. Solo voy a arrastrar
y soltar esto encima de nuestra caja para que
sea así que no esté adjunto. No debería ser
un gran problema, sino solo para jugar
conmigo en casa. ¿Bien? El siguiente que vamos a hacer
es vamos a crear un par de variables. Entonces en la sección Mi Blueprint, debajo de la sección de variables
y haga clic en el botón más. Vamos a llamar a este
primero, el inicio ubicado, iniciar rotación, no rotación de
ubicación. Vamos a cambiar el
tipo aquí para que sea rotador. Entonces voy a
seleccionar esto una
vez más y hacer Control
y D para duplicarlo. Esto va a ser
arte y rotación. Entonces con eso,
vamos a compilar para que
podamos establecer
algunos valores aquí, están comenzando la rotación,
asegúrate de seleccionar eso. Queremos que sea 00.0. Después sigue adelante y selecciona
tu rotación final. Solo queremos que nuestro y la rotación
a lo largo del eje z sea 90. Entonces, ya sabes, si abres
una puerta a 90 grados, esencialmente
vas
a empezar con ella, como si esto fuera a vista de pájaro. Y entonces el final va a
ser un poco así, ¿verdad? Sólo lo va a abrir
. Balanza esto de aquí hacia arriba así con mi ratón. Eso es lindo, señor Waldroup. Bien, a continuación,
sigamos adelante y hagamos un poco de scripting
en nuestro gráfico de eventos. Entonces tenemos algunos
nodos de eventos aquí por defecto, podemos hacer clic izquierdo en arrastrar,
deshacernos de estos. Y ahora queremos que
algo suceda cuando empecemos a superponer esa caja. Y luego cuando terminemos
superponiendo esa caja, y esa es esta caja de
aquí, salté a
mi pestaña de ventana gráfica. Entonces volvamos
a mi gráfico de eventos. Voy a hacer clic derecho
en mi componente de caja. Vamos a agregar
un evento para cuando empecemos a superponerlo. Y luego volvamos a
hacer clic derecho sobre él en el evento para la superposición final. Ahora queremos
especificar que es el personaje jugador el
que nos está superponiendo. Ahora, podría lanzar a mi
terceraPersonaPersonaje. Sin embargo, hay otra manera en la
que puedo hacer esto. Entonces me gustaría presumir
diferentes técnicas. Voy a teclear con el botón derecho
en obtener el personaje del jugador. Y lo que voy a hacer
aquí es comprobar para ver si el otro actor es igual a. Sólo voy a escribir
el símbolo igual. Si eso es igual a
mi personaje de jugador. Si son iguales, voy a mantener presionada
la tecla B y traer así
un nodo de rama. Otro actor es igual a
mi personaje de jugador. Lo que quiero hacer es
girar la puerta abierta. Ahora para hacer
esto, vamos a estar haciendo uso de un nodo de línea de tiempo. Ahora tengo un video
completo más adelante en el curso que
va a estar dedicado a esto. Así que vamos a estar saltando un poco
el arma aquí. Este video no se trata de
crear una línea de tiempo. Entonces, si ni siquiera
entiendes completamente lo que está
pasando aquí, solo tengan paciencia conmigo. A pesar de que
voy a hacer todo lo posible para explicarlo lo más
rápido posible, haga clic con el botón derecho y algo de
espacio vacío y haga una búsqueda un nodo de línea de tiempo. Una vez que escribas
la palabra línea de tiempo, se pesará el fondo aquí para agregar una línea de tiempo. Y este es un nodo muy especial. Y una de las cosas que te
va a permitir hacer es darle un nombre. Voy a llamar a esto
mi rotación de puertas. Se puede ver que
tiene muchos pines de entrada,
muchos pines de entrada
de ejecución donde podemos jugarlo. Podemos detenernos en este nodo, se
puede hacer doble
clic para especificar una animación
de esta es una línea de tiempo. Vamos a estar animando nuestra
puerta a través de una línea de tiempo determinada. Si hacemos doble clic sobre esto, podemos agregar una línea de tiempo
a nuestra ventana aquí, así que simplemente hice doble clic en ella. Tenemos nuestro
nodo de línea de tiempo de
rotación de puertas justo arriba en la parte superior aquí. Queremos agregar una pista. Queremos agregar específicamente
unas pistas de flotación. Si voy a la pista justo
aquí, haga clic en el botón Más. Queremos agregar una pista de flotación. Una pista flotante nos permite
cambiar una
variable flotante a lo largo del tiempo. Así que vamos a agregar una pista de flotación. Podemos renombrar esta pista y
voy a llamar a esta rotación. Ahora lo que quiero
hacer es que quería especificar algunos puntos en el tiempo. Entonces, la forma en que puedo agregar un punto a esta gráfica es haciendo clic derecho
y agregando una clave. Esa es una forma de agregarlo. Y con este primer punto, agregó este primer fotograma clave, como se le llama, voy
a especificar un tiempo de cero. Un valor de cero. Golpea Enter. Y eso va a
colocarlo aquí mismo en mi pista. A continuación, voy a hacer clic de
nuevo con el botón derecho en otra tecla. Esa es una forma en que podría
hacerlo, o puedo mantener presionada la
tecla Mayús
y hacer clic con el botón izquierdo. Esa es otra forma de agregar una clave. Voy a seleccionar esta clave. Y voy a establecer
el tiempo en uno, es
decir, 1 s, y
el valor en uno. Ahora lo va a saltar de
la parte superior de la pantalla aquí. Pero si haces clic en estas flechas, puedes enmarcarlo así. Ahora también quiero cambiar
la longitud de mi pista aquí para que actualmente sea de 1 s lugar de 5 s.
Eso es esencialmente especificar cuánto tiempo
quiero que sea esta pista. Quiero que esto sea tan largo
como mi último fotograma clave aquí, quiero que esto sea 1 s. Entonces, lo que esencialmente
voy a hacer aquí es que
voy a cambiar
el valor de una variable flotante llamada
rotación de cero, un valor de cero
a 0 s a un valor de uno 1 s después
va a ser lentamente, cambiando
gradualmente ese
0-1 en el transcurso de 1 s. Ahora bien, esta rotación
flotante variable, si salto de nuevo a mi
evento grafica aquí, fíjate que esto se llama rotación. Ahora puedes ver que mi línea de
tiempo de rotación de puerta tiene una salida, y esta salida
es un valor flotante. Va a dar salida a
este valor flotante. Y nuevamente, si vuelvo a entrar en esta línea de tiempo haciendo doble clic sobre ella, haciendo doble clic sobre ella. Voy a estar cambiando
el valor de ese 0-1 gradualmente a lo largo de 1 s. Ahora bien, esto es útil
porque podemos usar esto para impulsar algo
llamado loop. Entonces, si hago clic derecho
y algún espacio vacío, puedo hacer una búsqueda de
un nodo llamado rotador. Ahora esto va a
ser confuso al principio, pero voy a
describir cómo funciona esto. El nodo de alerta nos
permite pasar de un valor a otro en un periodo de tiempo
determinado. Y de hecho, si giramos o si pasamos
el mouse sobre la parte superior de este nodo, dice
que vamos a interpolar
linealmente entre a y b en base al
valor Alfa que le proporcionamos. Entonces va a funcionar así. Una rotación va a ir 0-1. Ese es el valor.
Va a ir entre 0-1 en el transcurso de 1 s. Cuando Alfa es cero, va a leer
en el valor de este nodo están comenzando la rotación. Tenga en cuenta que nuestra
rotación inicial es básicamente 00.0. Ahora, como nuestro
valor de rotación aquí va 0-1, poco a poco
vamos a
estar moviéndonos de nuestro valor a, nuestro valor b. Entonces como nuestra rotación
aquí va así, 0-1 sobre 1 s, va a estar continuamente
alejándose a
a B sobre 1 s de 01
va a movernos de a a b Así que nuestra rotación final va a especificar nuestra rotación final. Estamos empezando en esta rotación. Estamos terminando en esta rotación. Ahora bien, todo esto está bien, pero el valor de retorno
aquí necesita ser
enchufado a la función de
rotación relativa establecida. O vamos a estar haciendo aquí
es decir, oye malla de puerta, ese es el componente
que queremos rotar, arrastrar y soltar eso en nuestra gráfica. Entonces arrastra fuera de esto. Queremos establecer su rotación
relativa. Eso es cambiar tu rotación con respecto a donde desde
donde empezaste. Entonces nuestra configuración final
va a verse así. Pasemos por esto para entender esto un
poco más a fondo. Ahora al superponer
ese volumen disparador, vamos a averiguar si es el personaje jugador el que
fue el factor general, el otro actor
que nos solapó. Si eso es cierto, vamos
a jugar, jugar esta línea de tiempo. Va a ir 0-1,
un valor de rotación
si valor flotante por encima de 1 s. Y como está haciendo esto, cambiando el valor de
esta variable 0-1, vamos a ir de nuestra rotación inicial a nuestra rotación final en
el transcurso de 1 s. Eso es lo que está haciendo esto. Y el regreso de esto pasando
de la a a la B va a estar diciéndole a nuestra malla de puerta que
rote sobre ese segundo. Sigamos adelante y
danos una tribu. Ni siquiera nos preocuparemos por
nuestro solapamiento final por ahora. Pero para hacer
esto, necesitamos
arrastrar y soltar esto
a nuestro nivel. Vamos a arrastrar y soltar
esto en nuestro nivel. Lo colocaré justo por aquí. Vamos a seguir adelante
y hacer clic en Reproducir. ¿Y sabes qué? Para hacer esto, debo asegurarme de que estamos haciendo esto en una nueva ventana
del editor así. Y además, voy a hacer
esto desde dentro de nuestro, nuestro plano aquí para que
puedan ver el guión en el trabajo. Así que déjame
meter un poco de esta manera hasta aquí. Vamos a hacer clic en play aquí. Tenemos nuestra configuración de depuración
para una puerta giratoria. Tráelo en nuestra ventana de
reproducción aquí. Y a medida que me superpongo esto, se
puede ver que
lo giró 90 grados. Ahora, como pueden ver, una vez me alejo de ese volumen
disparador, no
lo hace retroceder
ni nada por el estilo. Y ya se fijó la
rotación de esto para que sea abierta. Entonces está abierto. Ahora quiero hacer esto cerca. Solo necesitamos
aprovechar una configuración similar como la que
tenemos aquí. Entonces lo que voy a hacer es que
voy a arrastrar un aquí. Escriba el signo igual. Una vez más,
vamos a averiguar si otro actor es igual
a nuestro personaje jugador. Una vez más, vamos a copiar nuestro
control de sucursal C, control V. Y si esto es cierto que el otro
actor terminó nuestro solapamiento, si eso es cierto, vamos
a revertir esta línea de tiempo. Vamos a revertir la rotación de
esa puerta. Entonces vamos a compilar esto. Guardar en juego. Voy a llevarte esto
por aquí para
que veas el guión disparándose. Bien, Así se juega la línea de tiempo. Entonces terminemos con nuestro solapamiento. Esté atento a que se dispare el
guión. Sésamo Abierto. Bajo,
así como así. Y así ahí lo tienes. En este video, utilizamos
la variable rotador para especificar una
ubicación inicial para nuestra malla de puerta, así
como una
rotación final para nuestra malla de puerta. Es tan sencillo como esos chicos
que
lo harán todo por este video. Nos vemos en la siguiente.
50. Transformar: Bienvenidos de nuevo a todos. La variable transform es la que estamos tratando
en este video, vamos a mostrar cómo
crear una y cómo
se puede utilizar cuando
blueprint scripting. Ahora un excelente uso de la variable transform
es cuando estás especificando un punto dentro un nivel al que tal vez
quieras responder. Ahora, la variable de transformación es una variable que
contiene datos de ubicación, rotación y escala. De hecho, si miras por encima
en el panel derecho, en el panel Detalles
para cualquier actor que hayas seleccionado
dentro de tu nivel, puedes ver alguna
información de transformación al respecto. De hecho, si selecciono a mi
jugador inicio actor aquí, se
puede ver la
ubicación especificada, la rotación de la
misma, y la escala. Entonces esta esencialmente
es una variable que consta de nueve valores flotantes, tres cada uno en la ubicación, rotación y escala nueve totales. Ahora, en aras del tiempo, configuré un montón de cosas
antes de filmar este video. Entonces déjame mostrarte lo que
he hecho y te
guiaré a través de
esto paso a paso. Para empezar aquí
tengo a mi jugador comienzo actor ubicado justo ahí. Al igual que con muchos otros videos, tengo un cuadro disparador
agregado a mi nivel. Y siempre y cuando
tengas a tu jugador, tu
panel de actores de lugar disponible, que puedes traer
ahí mismo. Puedes agarrar una
caja Trigger ahí mismo. Y luego también tengo tres actores de punto
objetivo, 12.3. Y puedes encontrar a estos
chicos si buscas en el panel de actores de lugar y
solo buscas target, encontrarás un actor de
target point. Estos son esencialmente excelentes para especificar un punto en el espacio. Estos iconos no se
mostrarán mientras estés jugando. Sin embargo, cuando los
seleccionas, puedes ver su ubicación. Utilice su ubicación o sus datos de
rotación también. Y me gusta utilizarlos
para esos fines. Ahora, saltando a
nuestro plano de nivel, déjame mostrarte el guión
que he elaborado aquí. Así que vamos a verificar bajo
nuestro Plan de Nivel, comenzando con nuestro establecimiento
de puntos de generación aleatorios. Entonces todo este video, vamos a estar haciendo uso
de una variable transformada. Entonces, lo que quieres
hacer aquí se acabó en el panel Mi Blueprint debajo de
la sección de variables, haz clic en el botón más y
crea una variable completamente nueva. Debería ser de la
variedad transformadora ahí mismo, y yo lo llamo responder punto. Ahora bien, si lo
compilas, vas a encontrar
que tus valores predeterminados son ceros, ceros, ceros, y la escala es 111, esencialmente los valores
predeterminados verdaderos. Ahora lo que vamos a hacer aquí es al comenzar a jugar, al comenzar nuestra jugada, puedes encontrar esto haciendo
clic derecho y haciendo una búsqueda de
Event Begin Play. Queremos establecer nuestro punto de
respuesta, es
decir, poblarlo con algunos datos porque no queremos mantener la ubicación y la rotación, todo esto un poco de cosas
en ceros, ceros, cero. Entonces, ¿qué vamos a poner
este valor a eso otra vez, las variables, el contenido del mismo se puede cambiar, se pueden establecer. Entonces, lo que hice aquí, agarré una referencia a
los tres puntos objetivo. Ahora nombro estos puntos objetivo, objetivo 0.0, objetivo 0.1
y punto objetivo a. Y entonces lo que puedes
traer en referencias a estos está de vuelta en tu nivel. Puedes seleccionarlo y luego
uno por uno con él seleccionado, puedes mantener presionada la tecla R
y hacer clic izquierdo, así. Divertido más complicado. Si yo fuera a seleccionar los tres puntos
objetivo allí, están todos seleccionados y luego
golpear el RT y hacer clic con el botón izquierdo, puedo traer referencias a los tres de inmediato. Buen truco. A mí me gusta
mucho esa. Entonces lo que hice es que arrastré
en cada uno de estos. Y dije, dame
que los actores se transformen. Estoy diciendo, dame,
dame estos datos justo
por aquí para cada uno de estos puntos objetivo dados. Entonces lo que
hice fue que me fui de aquí y escribí make array. Entonces, esencialmente, estoy creando una lista de diferentes transformaciones, diferentes
datos de transformación desde el objetivo 0.0, punto
objetivo y el objetivo 0.2. Entonces tengo una lista de tres
posibles transformaciones. Lo que hice entonces es que me
drogué de aquí y
escribí se pone y quería
conseguir una referencia, ese tipo de ahí mismo. Y luego me arrastro fuera
de esto hacia atrás y escribí
entero aleatorio en rango, estoy diciendo dame una de estas transformaciones de esta
lista y hazla 0-2. Es posible que deba ajustar
estos números dependiendo cuántos puntos de destino diferentes haya conectado
a esta matriz. Entonces estoy diciendo que
me den 01 o dos, Ese es mi rango, cero a dos. Y la salida de esto, voy a establecer como
mi punto de respuesta. Entonces va a estar cambiando
al comenzar la jugada. Vamos a actualizar
nuestros puntos de respuesta a una ubicación determinada. Uno de estos tres, va a escoger al azar. Ahora eso es solo establecer estos puntos de respuesta,
esta variable de transformación, pero en realidad no hemos
conseguido y hecho uso de esta Transformación de punto de respuesta. Entonces abajo, tengo
un guión adicional. Y debería ser de la siguiente manera. Lo que hice aquí es al comenzar superponer ese
cuadro de activación y una vez más, con ese cuadro de activación seleccionado nuevo en su plano de nivel, puede hacer clic derecho
en un evento para eso y hacer en un
actor comienzan solapamiento. Podemos arrastrar aquí y luego hacer un casting a nuestro
terceraPersonaPersonaje. Queremos hacer algo cuando nuestro terceraPersonCharacter se
superpone a ese cuadro de activación. Y lo que estamos haciendo aquí es
que estamos haciendo un
par de cosas y ahí es donde
entra un nodo de secuencia , donde
secuenciaron al otro. Podemos decir hacer esto,
luego hacer esto. Y en realidad podemos
agregar cosas adicionales si hacemos clic en este
botón más aquí abajo. Pero es esencialmente una forma agradable y ordenada de decir hacer esto,
luego esto, luego cualquier cosa
que venga después de eso. Entonces, lo primero que
queremos hacer después nuestro tercer personaje
se superponga es Trigger box es que
queremos destruir a nuestro personaje jugador actual, nuestro
personaje de tercera persona actual. Queríamos destruirlo. Entonces lo que vamos
a hacer inmediatamente después es engendrar a
un actor de clase. Ahora bien, tenga en cuenta que este es un actor
spawn del nodo de clase. Sin embargo, una vez que pobles la clase a nuestro
terceraPersonCharacter, va a actualizar
el nombre aquí, pero este es un
actor spawn del nodo class. Ahora lo que necesitas
hacer aquí es que necesitas
especificar una transformación de spawn. Y aquí es donde
estamos haciendo uso de nuestra variable de transformación que
creamos y estamos poblando, estamos de vuelta aquí
cuando comenzamos a jugar. Sin esto. Si compilas,
arrojará un error y me
dejaré hacer esto en realidad. Voy a romper esto, manteniendo pulsada la
tecla Alt y dando click izquierdo. Entonces, si tuviera que compilar,
va a decir, Oye, necesitas tener
una transformación de spawn enchufada para que podamos seguir
adelante y enchufar eso. Y entonces lo que estamos
haciendo fuera de aquí es clic derecho en algún tipo de espacio
vacío en get player controller. Y fuera de esto, y debe estar fuera de esto. Si arrastras fuera de esto porque el objetivo
es un controlador, puedes buscar
este nodo de posesión. Al poseer, arrastrando fuera de allí y
agarrando un nodo poseedor, puedes elegir un
peón para poseer. Aquí estamos generando un nuevo
ThirdPersonCharacter. Aquí estamos diciendo, Oye, queremos engendrar o
queremos poseer ese personaje de tercera persona
con nuestro controlador de jugador. Hablaremos más sobre el controlador del
jugador más adelante en el curso. Sigamos adelante y compilemos aquí. Y este es nuestro
guión para destruir al jugador y luego responder a otro, terminar poseerlo. Entonces eso está todo enmarcado aquí. Si quieres pausar
el video aquí y echar un buen vistazo a
eso, ahí tienes. Bien, sigamos adelante
y volvamos a jugar. Y veamos esto en acción. Esto va a ser un
poco pequeño aquí. Pero ojalá pueda ver algunos
de estos cables disparándose. Sigamos adelante y juguemos. Y ya hemos
establecido un punto de respuesta. Déjame seguir adelante y establecer mi objeto de
depuración ahí a mi nivel. Ahora, una vez
que superponga esa caja de gatillo, vas a vernos
destruyendo al actor. Y luego inmediatamente
después de engendrar un nuevo personaje de tercera persona y
poseerlo. Aquí vamos. Y muestra ese punto
más allá de detrás del nivel. Y actualmente está eligiendo
esa misma otra vez, otra vez, porque solo al comenzar el
juego estamos estableciendo nuestra variable de transformación a uno de estos tres puntos
objetivo. No obstante, si tuvieras que
hacer algo como esto, arrastra fuera de aquí, arrastra de nuevo hasta aquí. Cada vez que superpongo ese cuadro de
activación y estoy reiniciando, estoy eligiendo al azar uno de estos tres
puntos objetivo en los que quiero
establecer mi variable de respuesta para que sea. Entonces probemos eso. Así que se superponen. Yo engendro detrás de él. Volvamos a encontrarnos con él. Fuera a la izquierda,
esa vez atrás. Nuevamente, esto es
elegirlo al azar. Hay algo más con lo
que quiero presumir aquí. La variable de transformación
es que realmente puede extraer esos datos únicos de ubicación, rotación y escala. Ahora bien, esta variable de transformación
contiene todos estos datos. Pero si quisieras extraer solo una parte de
esos datos, podrías. Y la forma en que podrías
hacerlo es arrastrando fuera de este pin aquí mismo
y escribiendo divisiones. Déjame romper
este cable de aquí. Más bien haciendo clic derecho sobre él y las cosas dividieron el Pin Struct. Perdón por eso. Aquí podemos dividir nuestros
puntos de respuesta transformados en la ubicación, la rotación y
los datos de escala. Y como puede ver, una
variable transformada
consiste esencialmente en datos vectoriales, datos rotadores y datos vectoriales. Del mismo modo, de
esta transformación de spawn aquí en nuestro
actor spawn de nodo de clase, podría hacer clic derecho
sobre esto y dividir este pin está bien
en los datos de ubicación, rotación y escala. Si no te gusta este
nivel de granularidad, puedes hacer clic derecho sobre
estos pines y
recombinarlo nuevo en una sola transformación
singular. pin recombinado y golpeado
es lo que se llama. Así que solo pensé
que tiraría eso por ahí también. Entonces ahí lo tienes. Una transformación, una calificación
variable para algo así como especificar
un punto de respuesta. Eso va a hacer para ofrecer
este chicos, vemos en el siguiente.
51. Actor (Object): Bienvenida. En este video, nuestro objetivo es
aprender qué es
un actor, una variable, cómo crear una
y cómo se puede utilizar al
programar blueprint. Ahora divulgación completa aquí, este video
va a ser en gran medida una revisión de nuestra clase BP runtime object references video que
hicimos anteriormente en el curso. Ahora bien, si entro y juego aquí, esto va a servir como
un pequeño recordatorio. Cuando presionamos la tecla de flecha, esto es lo que
escribimos en ese video. Cuando presionamos una tecla cero, estábamos enviando una línea trazada al mundo así. Y cuando un objeto oculto
en la parte superior izquierda, se muestra el nombre de esa
cosa que estamos golpeando. Y una vez que establecemos una variable a ese
actor, entonces
podremos presionar la
tecla nueve para que desaparezca. Ahora al hacerlo, mientras
estábamos haciendo es establecer una variable de actor cada vez que nuestro rastreo de
línea detectó un acierto. Ahora volvamos a nuestro bp thirdPersonCharacter
ubicado en nuestra carpeta
Blueprints en tercera persona y veamos los scripts que
armamos allí. Entonces lo que estamos haciendo aquí es
al presionar alguna tecla de entrada, estaba usando la tecla de flecha. Estábamos enviando un rastreo de
línea comenzando en ubicación de
nuestros actores y terminando en nuestro punto final de
rastreo de línea, que era una variable que
habíamos creado en nuestra sección de
componentes aquí. Está en nuestra ventana gráfica
justo por aquí. Este es un componente de error
que también aparece como una variable bajo el punto final de seguimiento de línea de
componentes. Eso es lo que denominamos a
ese componente de flecha. Entonces estás iniciando un
rastreo de línea en la ubicación de nuestros actores. Lo estamos terminando con esa flecha. Y estamos enviando eso,
esa línea traza hacia el mundo a lo largo del canal de
Visibilidad. También tenemos este
tipo Draw Debug establecido en cuatro duraciones. Para que podamos ver ese trazo de línea. Y si detectamos
que le pegamos a algo, si esto efectivamente le
pegó a algo, ese valor de retorno
resulta ser cierto. Vamos a tocar un sonido. Y entonces también vamos
a romper los golpes aquí. Eso es lo que está haciendo todo esto. Nos arrastramos fuera de aquí y
estamos rompiendo los golpes. Y estábamos
averiguando qué es lo que pegamos. Y estamos configurando eso dentro
de un tipo de variable actor. Ahora, podríamos crear esto ya sea
haciendo clic con el botón derecho sobre aquí y eligiendo promueve dos variables en ese menú
contextual. O la forma en que puedes crear una variable actor ha terminado
en la sección de variables, podrías hacer clic en el botón más y simplemente escribir actor var. Y entonces aquí lo está poniendo a actor enseguida porque esa es
la última variable que dije. Pero podrías hacer una
búsqueda de actor. Y en los
tipos de objeto querrías
elegir la referencia de objeto actor. Ahora hablemos de lo que
son las referencias de objeto válidas. Bueno, los objetos de ejemplo
podrían incluir luces, podría incluir
mallas estáticas, cámaras, señales de
sonido u otros actores de
planos. Aquí solo estamos detectando lo que golpeamos y configurando
eso como nuestro actor. Realmente no
importa si se trata una silla de malla estática versus
lo que sea que sea esta cosa. Sea lo que sea esa malla, realmente no
importa. Cualquiera que sea nuestro rastro de línea
está chocando con. Va a establecer eso
como nuestra variable de actor. Entonces sólo estamos
imprimiendo el nombre de eso en la pantalla. Ahora bien, la razón por la que estábamos
almacenando esto dentro de las variables de
un actor porque una vez que
nuestro rastro de línea golpea
algo y nos pone, queremos que
pueda destruirlo. Y eso es lo que
hacía este guión aquí abajo. Al presionar la tecla nueve, entonces
nos estábamos enterando, oye, ¿cuál es el contenido de esta variable Hit Actor,
esta variable de actor? Si eso es válido, es decir,
hay algo en él. Si eso es válido,
queremos destruirlo. Por lo que el contenido de este
Hit Actor podría cambiar. Déjame ir y demostrar que estoy haciendo clic en jugar aquí. Y de nuevo voy
a presionar el, déjame simplemente establecer mi objeto de depuración. Aquí está mi b, mi
terceraPersonaPersonaje. Trae de
nuevo a mi personaje. Entonces voy a enviar
esa línea trazada al mundo
presionando
la tecla V cero. Y luego en la parte superior izquierda
aquí vas a ver el nombre de la cosa que
estoy pegando. Clave cero. No estoy lo suficientemente cerca. Hay que acercarme un poco más. Ahí vamos. Stat, vista previa, malla,
sea lo que sea. Entonces, si le pego a la Nike, eso obviamente va a desaparecer. Pero si me dijera que
repita ese escenario y un poco
haga lo mismo, voy a empezar golpeando la tecla cero aquí
está configurando eso. No obstante, puedo
restablecer el contenido ahí viniendo a esta
silla presionando la tecla cero. Entonces ahora si eso es lo que se
establece como mi hit actor aquí. Entonces ahora si presiono el Nike, no
va a destruir esto. Va a destruir
mi silla porque ese fue el más
reciente set Hit Actor. Aquí está la Nike, boom By Chair. Ahora, sólo para presumir que esta variable actor no
tiene que ser una malla estática. Podría ser algo así
como una luz. Voy a establecer esto a
partir de otro plano. Y también solo para
presumir que
puedes establecer esto desde
otro Blueprint. Así que voy a volver
a mi nivel aquí, y voy a colocar
una luz en mi nivel. Podrías colocar cuando estés en
tu lugar, panel de actores. Aquí es donde puedes
encontrar las luces. O alternativamente
puedes venir debajo aquí y luego las luces florecen. Se puede agregar una luz por este
medio punto de luz va a hacer. Vamos a arrastrar y soltar
uno de estos en nuestro nivel. Yo sólo voy a
hacer esta suma de colores
nocivos como el rosa. Y entonces lo que voy a hacer
es saltar a mi Plano de Nivel,
abrir Plano de Nivel. Y vamos a
decir eso cuando presione alguna tecla dentro de aquí, y veamos qué tipo de teclas
tienen disponibles aquí. Solo he usado la llave cerca, así que usemos las dos claves, ¿verdad? Estoy en mi
gráfico de eventos aquí mismo, vamos a
teclear con el botón derecho en la tecla dos. Vamos a hacer una
búsqueda de teclado. Así es como puedes encontrar estos eventos de teclado
muy fácilmente. Golpea las dos teclas. Y
al hacer eso, vamos a hacer clic derecho
obtiene personaje jugador. Entonces si arrastramos fuera de esto, podemos pasar a nuestro
terceraPersonaPersonaje. Otra vez. Una vez que tengas acceso a
tu terceraPersonaPersonaje. Y si, me doy cuenta que tengo una referencia de personaje almacenada
por aquí a la izquierda. mí también me vendría bien eso. Pero una vez que tengo eso, puedo arrastrar fuera de aquí y puedo encontrar este Hit Actor variables
siempre y cuando eso haya sido creado y
haya compilado. Entonces nuevamente, estamos tratando de
extraer este actor o una variable y establecerlo desde
nuestro Plano de Nivel. Vamos a arrastrar fuera de aquí,
escribir éxitos actor. Vamos a configurar
el Hit Actor. ¿Y a qué queremos
configurar al Hit Actor? Bueno, si mantengo presionada la tecla
R y hago clic con el botón izquierdo, puedo configurarla para que sea
mi punto de luz. Vamos a entender lo que
tengo pasando aquí. Déjame compilar esto rápidamente, asegúrate de que los
scripts sean buenos para llevar. Entonces, desde el Plano de Nivel, me estoy acercando a mi Plano de Personaje cada vez que
estoy presionando la tecla dos, y voy a establecer
la variable actor dentro de mi terceraPersonaPersonaje
para que sea el punto luz. Y luego dentro de mi Blueprint de
personaje de tercera persona, voy a presionar entonces
la tecla nueve para destruir el contenido de
esa variable Hit Actor, que en este caso estaría poblada con ese punto de luz. Entonces sigamos adelante
y danos una jugada. Realmente no tengo un buen
medio para presumir ambos, en realidad, puedo
presumir ambos de estos. No importa. Voy a jugar aquí. Así que estamos empezando en nuestro mapa de pruebas de
nivel aquí mismo. Voy a configurar mi
opción de depuración para que sea el mapa de prueba. Bien, entonces averiguaremos la luz. No puedes ver el icono de la luz, pero puedes ver esa luz en el piso para que
sepas que está ahí. Voy a presionar la tecla dos. Entonces eso va a poblar esta variable actor
con la luz puntual. Bien, eso ya se ha establecido. Ahora déjame saltar a mi
terceraPersonaPersonaje. Y una vez más, tengo que volver a
poner esta ventana. Vaya, mira, ahí vamos. Entonces ahora cuando presiono
la tecla nueve, Mira desaparecer esta luz,
y ahí va. Entonces en este video, has aprendido a
crear una variable de actor y cómo se podría configurar y
manipular de alguna manera. E incluso hicimos alguna comunicación cruzada de
Blueprint también. ¿Para qué te vendría bien
algo así? Bueno, imagina como
un sistema de elaboración en un juego donde tal vez
necesites interactuar con algunos objetos
cosechables en tu mundo. Y tu objeto, tu objeto cosechable
podría ser lo que tu personaje esté
más cerca de una flor, un trozo de madera, ese tipo de cosas siempre se
pueden establecer como tus actores cosechables con los que intentas interactuar. Bien chicos, eso va a
hacerlo todo por este video, veremos en el siguiente.
52. Cosas variables que debes saber (parte #1): Bien, bienvenido de nuevo. En este video, nuestro
objetivo es aprender algunas
cosas importantes que hay que saber a la hora trabajar con
variables en irreal. Ahora bien, estos no son realmente
Consejos y Trucos per se. Son más una explicación de algunos conceptos clave en las opciones de
variables, debes conocer cosas como cómo inicializar
una variable, cómo establecer una variable
a pública o privada, e incluso qué eso significa. Y cómo exponer
la variable a las cinemáticas o cuando se genera. En primer lugar, vamos a estar hablando de
inicialización de variables. Y para demostrarlo, voy a estar trabajando dentro de mis
planos de personajes de tercera persona. Si olvidaste dónde está ese tipo, yo accedo a él en nuestra carpeta de
Planos en tercera persona, ahí está tu BP, personaje en
tercera persona. Entonces, ¿qué significa
inicializar una variable? Bueno, eso significa darle
un valor inicial de alguna manera. Ahora a menudo
le damos a una variable un valor por defecto cuando
creamos la variable,
pero no siempre, podemos inicializar y de otra manera vaciar la variable cuando ocurre
un evento, esto podría ser un evento de superposición, podría ser un evento de entrada, algo de esa naturaleza. Considera este ejemplo
que he configurado antes de este video en
mi terceraPersonpersonaje. Entonces, antes que nada, creé en el panel My Blueprint una
variable llamada warp to locale. Y es del tipo de variable
vectorial. Ahora lo que estoy haciendo aquí es
que tomé evento comenzar a jugar. Recuerda que
solo puedes tener un evento comience a jugar en una gráfica aquí. Yo agregué eso. Y lo que estoy haciendo es en
cuanto estamos empezando a jugar, ahí es cuando este personaje
se genera en mi nivel mi jugador iniciar
locale ahí mismo. Cuando se genera en, simplemente
estamos obteniendo la ubicación de
nuestros actores. En este caso, nuestro
terceraPersonaPersonaje. Y estamos estableciendo
esta ubicación como las coordenadas dentro
de esta variable vectorial. Entonces, por defecto aquí, mis valores para esta variable warp a
locale son 00.0. No obstante, una vez que empiezo a jugar, se inicializan los contenidos de éste. Se intercambian a la ubicación de
mis actores donde está desove
mi personaje en tercera persona. Entonces por aquí, simplemente estoy
agregando un poco de script para hacer uso de esta variable ahora inicializada,
esta variable poblada. Una vez que presione la
tecla número en mi teclado, voy a establecer la ubicación de
mi actor. Ese es este plano, ese es el yo actor objetivo
a esta ubicación dada, la ubicación warp a locale. Así que mira esto de
nuevo en mi mapa aquí. Coloqué esta silla justo
cerca de donde estoy desove. Porque recuerden,
somos un personaje engendrado justo
en esta ubicación. Al comenzar la obra donde
nuestro personaje responda, vamos a establecer la ubicación de nuestros
actores como el lugar donde queremos deformar a
nuestra nueva ubicación de actores o,
bueno, nuestro
personaje en tercera persona es la ubicación exacta. Entonces, esencialmente,
lo que está en juego aquí. Ahora bien, esta variable
ya se inicializó incluso antes de que configurara mi objeto de
depuración aquí, así que eso ya ocurrió. Y ahora una vez que vuelva a poner
esto en su lugar, van a ver, me
voy a alejar de este punto. Pero este warp a locale se ha establecido en el lugar en el que
he engendrado. Y así cada vez que
presiono la tecla número, la tecla a más número de
mi teclado, el símbolo más. Va a volver
a ese lugar porque
esa es la ubicación de inicialización. Botón Plus, no
importa. Botón Plus. Muy hábito que es inicializar una variable para
asignarle un valor inicial. A continuación,
hablemos de variables públicas versus privadas y
lo que eso significa incluso. Y para este ejemplo, voy a estar usando mi pickup de ejemplo
BP. Tengo uno de estos colocando
mi nivel y luego he hecho doble clic en él para
abrirlo, aquí arriba. Entonces, si recuerdas
de un video anterior, creamos una salud para
agregar variable flotante. Y sobre el
lado derecho por aquí donde tenemos este globo ocular cercano para algunas de estas otras variables
para que la salud agregue, simplemente
hacemos clic en esto para
mostrar ese ícono del globo ocular. Y al hacer eso, eso hizo que este
campo editable de instancia tuviera esa casilla de verificación. Entonces esta casilla de verificación equivale a globo ocular
no expuesto por aquí. Entonces no importa si
hago clic en esto para cerrar. Se va a establecer esta
casilla de verificación editable de
instancia para que sea falsa. Y si hago clic en esto, va a
configurarlo para que esté encendido. No importa a cuál
de estos alternes, estás alternando
la misma propiedad. Ahora con esto puesto. Y se puede ver en
la punta de la herramienta aquí, es decir que se trata de una variable
públicamente editable. ¿Qué significa esto? Entonces, una vez que has establecido eso, compilas esto,
vuelves a tu editor de niveles. Por cualquier instancia, eso
es para cualquier copia de esto, este plano se sumó
a tu nivel. Esa variable que has configurado para sea editable públicamente ahora es accesible una vez que hayas
seleccionado ese objeto en tu panel de
detalles, échale un vistazo. Esta variable add saludable ahora se
puede modificar para cada instancia
de este blueprint. Si tuviera que mantener presionada la tecla Alt, hacer clic con el botón izquierdo y arrastrar, ahora tengo una segunda instancia de este
plano, nivel MI. Entonces para esta instancia
del plano, podría cambiar mi salud
para agregar a ser 0.5. Mientras que en esta instancia
del plano, podría fijarlo para que sea
punto a que sea 20%, esta curación 50%. Así es como tuvimos esa configuración. Entonces esa es una variable pública. Es igual a este campo
editable de instancia aquí mismo. Ahora, abajo un poco de esta instancia, el campo editable
es esta opción privada. Si marcamos esta casilla
en una variable dada, lo que hemos hecho es que la hemos hecho para
que esta variable no se pueda modificar a partir de blueprints
externos. Entonces lo que voy a hacer aquí es
que voy a compilar esto. Voy a ahorrar,
entonces voy a
entrar en mi Plano de Nivel aquí. Observe que tengo mi pastilla de ejemplo
BP, una de estas seleccionada, está bien. Cualquiera
de estos servirá. Tengo el número
dos seleccionado aquí, pero cualquiera de estos servirá. Voy a saltar a
mi plano de nivel. Voy a mantener pulsada la
tecla R y hacer clic con el botón izquierdo para traer una referencia a ese
ejemplo, recogerlo. Y ahora voy a
hacer una búsqueda esa variable llamada
Salud para agregar. Y aquí vamos. Voy a arrastrar fuera de esto
y escribir en salud para agregar. Y ya pueden ver,
ni siquiera la encuentro aquí. No aparece porque está configurado como privado,
lo que significa que no puedo
modificar ni acceder a esa variable en absoluto desde un plano externo
como el Plano de Nivel. No obstante, si tuviera que volver
a mi recogida de ejemplo BP aquí, voy a desmarcar esto. Voy a compilar, guardar y volver a
mi Plano de Nivel. Voy a arrastrar fuera
de aquí y escribir en salud para agregar y ahí
puedo conseguirlo o configurarlo. Entonces lo raro
es que aquí es que puedes tener una variable que
se establece para ser pública. Es decir, se puede acceder y
editar desde el editor. También puedes configurarlo
para que sea privado. Esos no son uno ni lo otro. Puedes tenerlo configurado en ambos. Eso confunde a mucha gente, pero podría estar
configurado para que sea público, es
decir, puedes
editarlo desde el editor. Y también se puede
establecer en privado, es
decir, que una vez que se establece
en privado y se
intentó arrastrar fuera de él guardado
de otros planos. No se puede encontrar ni
acceder a esa variable. ¿Por qué querrías hacer eso? Bueno, solo podría ser una
prueba de fallas para asegurar que no modifiques algo
que no querías hacer. A continuación, exploremos
esta opción expuesta en spawn que encuentras en variables. ¿Qué hace eso? Para esto? Voy a estar usando
nuestra puerta giratoria bp. Creamos este plano de
clase de actor cuando estábamos explorando el tipo de variable
rotador. Y si olvidaste dónde está eso, esto es dentro de nuestros
actores una carpeta BPS. Lo movimos todo.
Trasladamos todos estos planos posteriores a la
clase de
nuestra carpeta de descripción general a la carpeta de nuestro actor BP. Dentro de aquí,
continúe y seleccione su variable
rotador de rotación final. Y en el panel Detalles, queremos establecer esto para que
quede expuesto en spawn. Ahora, cuando vayas
a compilar
esto, te va a gritar. Y cuando lo haga, va a
decir, oye, eso es genial. Lo marcaste como
expuesto en el engendro. Pero para ello, también necesitamos
marcar esto como instancia editable. Así que adelante y hazlo también. Ambos deben
ser marcados para
presumir están expuestos en la función de
desove aquí. Entonces, una vez que se
comprueben ambos, vuelve a compilarlo. Y entonces lo que
vamos a hacer es que vamos a saltar a nuestro Plano de
Nivel. Entonces si aún no
tienes eso abierto, Ven aquí, abre Plano de Nivel. Y vamos a
montar un guión sencillo. Voy a hacer clic derecho
en algún espacio vacío. Cualquier evento de entrada servirá. Yo sólo voy a traer F h porque eso parece
una entrada fina de m. Vamos a arrastrar
fuera de aquí y hacer engendrar actor de clase. Ahora recuerda con
estos nodos
necesitas alimentarlo con una transformación de
spawn. Así que sólo voy a
agarrar la transformación. Vamos a agarrar la transformación de nuestros jugadores inicio actor aquí
tengo ese seleccionado en mi nivel. Entonces con eso seleccionado, volviendo a mi
Plano de Nivel manteniendo presionado el click izquierdo para obtener
una referencia a eso. Arrastrado fuera de esta transformación
todavía actor. Vamos a enchufar eso. ¿Y qué queremos
engendrar en ese lugar? Bueno, vamos a engendrar
una de nuestras bp rotando Doris. Voy a desplazarme
por aquí abajo. Donde hace esa puerta
giratoria ahí
está BP puerta giratoria. Ahora, en el momento en que hice eso, puse como la clase en la
que quería engendrar. Echa un vistazo a esto. Mi
variable de rotación final ha sido expuesta en esta función
de generación. Así que aquí podemos establecer la rotación para que sea algo
distinto al valor predeterminado. Ahora me había puesto para que la
puerta se abriera 90 grados. Lo que significa que se abriría. Normalmente se abre una puerta, pero puedo abrirla
aún más aquí. Entonces sigamos adelante y probemos eso. Y voy a poner eso en 135. Ahora bien, si iba a seguir
adelante y jugar esto, voy a dar clic en Reproducir aquí arriba. Y ni siquiera voy a establecer mi opción de depuración aquí para mostrar
este guión disparando, solo confía en que
bien, me voy a mover fuera de este jugador
estrella de aquí mismo. Entonces quitando esto, voy a presionar F8. Boom, esa unión de Doris, aunque un poco
más alta que estar colocada perfectamente en el
suelo con eso está perfectamente bien que está
flotando en el aire medio. Voy a superponer
ese volumen disparador. Recuerda que hay un
volumen disparador que va a detectar cuando mis personajes se superponen
y cuando lo
superpo, se abre más de 90 grados, abre 135 grados.
Entonces ahí lo tienes. Exponer en spawn, tienes que
tener eso marcado así
como la instancia editable verificada
para que eso aparezca. Cuando engendras actor de clase.
53. Cosas variables que debes saber (parte #2): Y por último, quería
presumir esta casilla de verificación expuesta a cinematográfica que encuentras en algunas variables,
no en todas ellas. Y voy a explicar
cuáles puedes y no encontrarla más adelante
en este video. Entonces para este ejemplo, estoy una vez más dentro de
mi pickup de ejemplo BP. En el panel Mi Blueprint, he creado una nueva variable
vectorial. Lo he llamado escala. Y después de compilar, he establecido mi escala en 11.1. Sigamos adelante y
verifiquemos esta casilla de verificación expuesta a las cinemáticas también. Entonces adelante y compila. Ahora para presumir lo que
queremos mostrar tu exponiendo esta variable
a una cinemática. Necesitamos agregar una
cinemática a nuestro nivel. no hacer eso,
vamos a saltar de nuevo a
nuestro nivel justo aquí arriba a lo largo de la barra de herramientas, tienes este pequeño icono del
portapapeles. Adelante y da click en esto, y queremos agregar una secuencia de niveles que sea una cinemática. Sigamos
adelante y hagamos esto. Y una vez que hagamos clic en
esto, va a decir, ¿dónde nos
gustaría guardar este activo? Pongámoslo dentro
de una nueva carpeta. Tengo secuencias de comandos
seleccionadas aquí. Voy a hacer clic derecho. Voy a crear una nueva
carpeta, llámela secuencia. En realidad, lo llamaré
cinemáticas, así. Y lo voy a dejar en
nueva secuencia de nivel, ese será mi nombre orilla. Y una vez que hago esto,
estoy dando clic en Guardar. Ahora he agregado un nuevo
actor a mi nivel. Se llama nueva secuencia de niveles. Es del tipo de actor de secuencia de
nivel. Y también junto a mi navegador de
contenido aquí he expuesto una nueva ventana
llamada secuenciador. Ahora bien, lo que toda esta ventana te
permite hacer para modificar algo a lo largo del tiempo para
crear una especie de cinemática. Entonces para hacer eso, necesitamos agregar una pista. Entonces, si hago clic en este botón de
pista aquí abajo, quiero agregar un actor
a mi secuenciador aquí en, en el menú de la pequeña flor, puedo elegir un
actor en mi nivel. Observe que todos los
actores aquí también existe en mi outliner y el
extremo superior derecho aquí, quiero agregar mi pickup de ejemplo
BP. Lo he reducido a solo
uno en mi nivel actualmente. Entonces voy a añadir eso. Y ahora puedo hacer clic en este
botón Plus aquí mismo para
profundizar más dentro de mi pastilla de ejemplo BP
y mirar la parte inferior. Tengo una propiedad a escala que ahora
ha sido expuesta
a una cinemática. Este secuenciador es una cinemática. Ahora en esta pequeña mosca, veo que es un vector
y puedo modificarlo. Puedo elegir x, y o z. No importa
cuál de estos elijas. Voy a elegir x aquí. Ahora va a exponer esa variable a esta
línea de tiempo, a esta cinemática. Y si hago clic en este
pequeño desplegable, puedes ver que
ahora puedo modificar la x, y, o z de esa
variable vectorial a lo largo del tiempo. Ahora esta escala actualmente se
muestra en cuadros por segundo. Eso es lo que significa este 30 FPS. Podemos modificar esto ya sea frames o lo que me gusta
hacer es dar click sobre esto. Y me gusta cambiar
esto como un tiempo en cambio. Así Showtime como segundos, así. Y ahora para mí esto es un
poco más sensata. Puedo cambiar las cosas desde 0 s actualmente hasta 5 s.
Puedo expandir esto también, pero no vamos
a crear una. Eso es bastante largo. Bien, entonces, ¿qué
quiero hacer aquí? Quiero modificar una de estas propiedades de
escala a lo largo de 5 s. así que voy a modificar
solo la escala z. Podría modificarlos todos, pero voy a
agregar un fotograma clave a 0.0 s aquí haciendo clic en
este botón más. Entonces estamos diciendo que quiero que
el valor de escala para esa variable vectorial sea
uno en la z a 0 s. Entonces voy a mover mi
deslizador de línea de tiempo hasta 5 s. Y luego voy a
hacer clic nuevamente en el botón más. Sólo que esta vez voy a decir en este punto
de la línea de tiempo, agregué otro fotograma clave. Eso es lo que significa ese punto rojo. Voy a decir en este punto, quiero que la escala Z sea
cinco, así que vamos 1-5. Y si muevo este deslizador, observe que el valor de la escala
Z cambia con el tiempo. Todo esto está bien,
excepto porque en realidad no estamos haciendo uso de esta variable
todo dentro de nuestra pastilla de ejemplo
bp, hemos expuesto, hemos expuesto variable vectorial de
escala
a nuestra cinemática aquí. Y aquí vamos
a estar ajustándolo sobre esta cinemática. Pero aún no tenemos ningún guión que en realidad va a
aprovechar esto. Entonces hagámoslo a continuación. Y así para esto, vamos a agregar una caja de gatillo a nuestro nivel. Y voy a hacer esto
relativamente rápido aquí. Voy a
escalarlo en tamaño va a cambiar la extensión de la caja
a 200 nuevamente por 200, 200 encima en el panel Detalles. Va a cambiar el grosor
de la línea a diez una vez más, así. Este secuenciador de nivel,
actor, actor ahí mismo, no
importa donde coloques eso en el
nivel, por cierto. Y entonces voy a hacer
esto para que podamos verlo. El actor renderizado juego
oculto a falso. Y luego con este
actor seleccionado, voy a saltar sobre mi Plano de Nivel,
voy a hacer clic derecho. Voy a hacer algo
cuando empecemos a superponerlo. Lo primero que vamos a hacer es
que vamos a arrastrar fuera de aquí el elenco a una tercera persona. Vamos a hacer algo con nuestras
superposiciones de personajes de tercera persona en. Lo que queremos hacer es entonces tomar una referencia a nuestra secuencia de
niveles aquí. Así que adelante y haz clic en eso de nuevo en tu Plano de
Nivel. Si va a mantener presionada la tecla R, haga clic con el botón izquierdo para traer
cualquier referencia a eso. Y entonces voy
a arrastrar fuera de esto y escribir en el juego de palabras. Queremos jugar a nuestro jugador
de secuencia. Esa es la opción que
estamos buscando. Esencialmente estamos diciendo, oye, toca esta cinemática, así que
debería estar enganchada así. Eso va a tocar la cinemática. Por lo que en realidad va a
modificar esa propiedad. Pero va a modificar esta propiedad de
escala a lo largo de 5 s. Pero en realidad no estamos creando ningún script todavía para
mostrar que el crecimiento está sucediendo. Entonces para que eso ocurra, este es un conjunto muy
enrevesado aquí. Voy a hacer clic derecho,
traer en un evento tick. Cada cuadro. Nosotros queremos. Selecciona tu ejemplo,
recoge ahí en el nivel. En la parte posterior a nuestro plano de nivel, vamos a mantener
pulsado el archae click izquierdo para traer
una referencia a eso. Vamos a arrastrar fuera de aquí. Vamos a establecer una escala mundial tres D para la colisión de la
esfera. Porque nuestra colisión de esfera, todo está apegado a eso. Y muévelo así. Y luego
también vamos a arrastrar fuera de nuestra pastilla de ejemplo y encontrar esa variable de escala. Tengo que desplazarme hacia abajo hasta
el fondo para obtener nuestra báscula. Así. Así que fíjate que nuestra
escala es por defecto 11.1. Entonces cada fotograma,
va a leer eso en. Va a establecer nuestra colisión de
esfera aquí, que es el componente más
arraigado en todo lo que está
unido a ese 2111. Sin embargo, una vez
que superponga ese cuadro disparador, vamos a
decir esa secuencia o a jugar que
va a actuar como una línea de tiempo para modificar el
valor de esta variable, 1-5 sobre 5 s. que es nuestra cinemática. Entonces puedes pausar el video aquí, mira esto si quieres
seguir adelante en casa, voy a compilar esto. Sigamos adelante y
demos una jugada a esto. Mueve esto a un lado
aquí solo un poquito. Para que puedas ver nuestro ejemplo de
recogida ahí en la parte de atrás. La escala se mantiene constante. Déjame establecer mi
objeto de depuración ahí mismo
para que puedas ver garrapata
del evento
disparando cada fotograma. Tráelo en mi
ventana de juego una vez más. Entonces una vez que me solapé
es superior a 5 s, deberías ver esto aumentando
de tamaño. Aquí vamos. Bastante dulce. Y efectivamente eso sí sucedió. Entonces esa es una
forma muy larga de mostrar qué es
exactamente lo que hace esta opción cinematográfica expuesta
exactamente. Entonces solo para traer
esto de vuelta alrededor casilla de verificación expuesta a las
cinemáticas, puedes encontrar eso en variables
booleanas, enteras, flotantes, cadenas, transformadas vectoriales,
un actor. No lo encontrarás por nombre, textos o variables rotadoras. Bien chicos, eso va a
hacer para ofrecer este video, veremos en el siguiente.
54. Consejos y trucos variables: Bienvenida. En este video vamos a estar revisando
consejos y trucos esenciales que absolutamente debes
conocer para poder trabajar con variables de la manera más
eficiente posible. Vamos a
hablar de las diferentes formas de obtener y
establecer variables. Vamos a revisar cómo
promover una variable. Vamos a hablar sobre cómo
categorizar las variables
y darles información sobre herramientas. Y por último, vamos
a hablar de cómo cambiar los tipos de variables. Empecemos en nuestro bp
ThirdPersonCharacter Blueprint para ayudar en esta discusión. Entonces, si no tienes eso abierto, lo puedes encontrar en planos de
tercera persona. Ahí es donde puedes encontrar a
la terceraPersonaPersonaje. Y una vez dentro de aquí, vamos a
explorar cómo obtener y establecer variables de tres formas diferentes que
vamos a hablar aquí. En primer lugar, exploremos
las tres formas diferentes obtener una variable
que es averiguar qué contenidos
existen dentro de esa variable. Y para eso,
vamos a deshacernos de esta matriz GET de salud aquí porque vamos a
estar explorando eso. Entonces la primera forma es que
podemos hacer clic izquierdo y arrastrar. Y luego en nuestro pequeño
cuadro de diálogo aquí, cuando soltemos nuestro clic izquierdo, podríamos obtener la salud. Esa es la vía número uno. Camino número dos, puedo mantener
presionada la
tecla Control, clic izquierdo, arrastrar, soltar, clic izquierdo, eso también
puede obtener un getter
de eso. Y la tercera forma, menos común, pero
súper efectiva, es simplemente hacer clic izquierdo y arrastrar esto en un pin de entrada
para un nodo dado. Así que una vez que
lo arrastramos y soltamos encima de ahí, va a conseguir que
el contenido de esa
variable sea bastante práctico de hecho. Bien, hablemos de
establecer una variable. Así que aquí arriba
tenemos un centro en su lugar. Lo dejaré ahí
por el momento. Pero lo que vamos a hacer
aquí es arrastrar con el botón izquierdo cuando el número uno
aquí es simplemente elegir Establecer salud en ese
menú. Si hace clic izquierdo, arrastre, suelte,
haga clic con el botón izquierdo. La segunda forma es
mantener pulsada la tecla Alt. Clic izquierdo, arrastre,
suelte, clic izquierdo. Esa es la segunda forma de
conseguir un centro de eso. Y la tercera forma de establecer
los contenidos de una variable. Así que sólo voy a eliminar a este tipo por el momento, es simplemente arrastrar y soltar
en el pin de salida de un, de un nodo dado, y eso va a
traer en un centro también. Por lo que establecer una vez más, permite alterar el
contenido de esa variable. A continuación,
hablemos de promover a una variable que
ya sabe que puede crear variables
haciendo clic aquí, agregando variable,
o entrando debajo aquí variable y
haciendo clic en el botón más. Sin embargo, promover
la variable es la tercera forma de
crear una variable y es bastante útil por
un par de razones aquí. Una, te puede dar el tipo de variable que
necesitas desde el principio. Entonces usando este nodo
como ejemplo aquí. Entonces digamos que tenemos nuestra variable de
salud y queremos agregarle
alguna cantidad. Bueno, simplemente podemos
hacer clic derecho sobre este pin y eso nos
va a dar el tipo de variable
que ya necesitamos, en este caso un flotador
para que pueda hacer clic derecho, promover y hago clic, puedo llamar a esta salud para agregar. El segundo beneficio
de promover a una variable es que si
compilamos esto, podemos ver que automáticamente agarra el valor que estaba
dentro de ese nodo. Si ya habías
colocado un valor dentro de ahí y lo has promovido
a una variable, y luego lo compilas, va a
poblar automáticamente esa variable con el valor que
estaba dentro de ella . Así que eso es súper práctico. Vale la pena
señalar aquí que puedes promover una variable en cualquier nodo, no solo desde el lado de entrada, sino también desde el lado de
salida también. Entonces el lado de salida de
este centro de salud, podría hacer clic derecho sobre esto, promover esto a variable, y volver a llamar a esto mi
salud variable. No sé por qué
querrías establecer tu, establecer una nueva variable después de esto, pero tal vez quieras
hacer algo así. Así que promocionando una variable
súper práctica manera obtener el tipo de variable que de
hecho estás buscando, así
como configurarlo a los contenidos que
ya estaban duros establecidos ahí. Ahora bien, lo que realmente me gusta de
promocionar a una variable, permítanme simplemente saltar a
mi pastilla de ejemplo de BP es, hemos hablado de algunos tipos de variables muy
comunes aquí, pero también hay algunas más
oscuras. Por ejemplo, tengo este nodo de
reproducción de sonido 2D aquí estoy IBP ejemplo pickup. Y tengo algo
llamado configuración de concurrencia. Quizás te estés preguntando,
no tengo idea de lo que es eso, pero quiero jugar con esto y ver qué puedo cambiar. Bueno, podrías
hacer clic derecho en este pin. Se podría promover eso a
una variable, compilarlo. Y luego en el
panel Detalles puedes ver qué cosas de esta
variable puedes establecer. Y tal vez no seas
capaz de ver nada, quizá no tenga sentido para ti. Pero esa es una excelente
manera de aprender cuáles son todos
estos diferentes tipos de
pines,
cuáles son todas estas diferentes
variables en el lado de entrada de un nodo o
el lado de salida del pin. Gran manera de aprender esas cosas. Bien, Siguiente,
hablemos sobre la creación categorías para que tus
variables vivan en. Ahora, a medida que te
complicas con tus scripts, es posible que tengas
más y más variables en el lado izquierdo
y quieras tener alguna forma de categorizarlas. Bueno, puedes crear categorías
para que vivan en ellas. Permítanme seleccionar por salud
para agregar justo por aquí. Y en el panel Detalles, tenemos una categoría y
actualmente todos estos están en mi categoría predeterminada desde el sonido de captación hasta la configuración de
concurrencia. Podría crear uno
simplemente seleccionando este campo de
categoría aquí mismo. Anulándolo, voy a
llamar a esto mi categoría de salud. Bien, entonces ahora que ves
en el panel Mi Blueprint, he creado una categoría de
salud y mi salud para agregar
existe dentro de eso. Ahora puedo agregar otras
variables a esta categoría. Yo podría decir, Oye, escala, quiero que
también vivas
en esa categoría simplemente seleccionándola. Y ahora si hago clic en este
desplegable, voy a, voy a poder encontrar salud dentro de ese desplegable. Así que puedes crear una
nueva categoría simplemente anulando esto y escribiendo
un nuevo nombre de categoría. Sin embargo, una vez que hayas
creado una categoría, puedes elegir establecer una variable dentro de esa categoría
eligiendo esto aquí. O simplemente puedo arrastrar una variable
hacia arriba a esta categoría. Entonces cinco es tratar de
arrastrar este
sonido pick-up y colocarlo
aquí mismo encima de la escala. Mira que va a pasar aquí. Se va a reordenar
que automáticamente lo coloque dentro de
esta categoría de salud. Ahora bien, esto también es útil para
crear estas categorías. Porque vamos a ver
esto aquí mismo. Mi salud para agregar. Tiene este pequeño
globo ocular revisado, lo que hace que esta instancia sea editable. Cualquier conjunto de variables para
ser editable por instancia. Una vez más, compilando esto aquí solo para
asegurarme de que lo tengo, salta de nuevo a mi mapa de prueba. Tengo una de estas pastillas de
ejemplo de BP aquí en mi nivel sobre en el
panel Detalles con esa seleccionada, puedo ver mis
diferentes categorías que puedo cambiar sobre esto. Ahora, una de las categorías
que puedo cambiar es mi salud para agregar
y ver esto. Ya no aparece en una categoría
llamada default. Ahora está listado en una categoría
llamada Salud para agregar. Sigamos adelante e intentemos
crear una categoría más aquí dentro de nuestro
bp example pickup. Déjame cambiar mi escala. Es decir, en realidad no tiene
sentido tener eso en una categoría de salud per se. Dos, cambiémoslo a
una categoría llamada escala. Y voy a configurar esto para que
sea instancia editable. Debemos compilar después de establecer esto para que sea
editable por instancia para que luego encontremos esta variable
expuesta en nuestro editor. Entonces con esta seleccionada, ahora
tengo una categoría de salud con salud para agregar dentro de ella. Y categoría de escala con una variable de
escala dentro de ella. Ahora bien, ¿para qué te gustaría
crear estas categorías? Bueno, en algo así como tu
BP ThirdPersonCharacter, podrías tener algunas
variables que están todas relacionadas con el nombre
de tu personaje, nombre,
apellido, segundo nombre. Podrían ser algunos
atributos de carácter que todos
queráis categorizar. Eso sería algo común. Podrían ser cosas
relacionadas con la salud o daños. Podrías crear una categoría de salud
y daños, ese tipo de cosas. A continuación, vamos a explorar la adición de
información sobre herramientas, dos variables. Entonces voy a saltar de nuevo
a mi pastilla de ejemplo BP. Entonces, para cualquiera de mis variables, puedo agregar una
descripción, una descripción emergente. Observe que cuando paso el mouse
sobre mis variables actualmente, dice
que mi salud
para agregar es simplemente un sonido de flotación por captación que es la escala de descripción base simplemente dice que es
una variable vectorial, pero puedes cambiar
el contenido de eso, los textos de información sobre herramientas si quieres. Con mi salud para
agregar seleccionado en el panel Detalles,
mi campo de descripción. Puedo cambiar esto para que sea esta es la cantidad de salud
a agregar Enter. Y ahora si paso el mouse sobre esta
salud para agregar variable en
ya no dice flotar de
doble precisión o lo que sea que se diga antes, solía decir flotar de
doble precisión. Ahora dice que esta es la
cantidad de salud para agregar los textos que pongo
ahí mismo. Y por último, solo
quería señalar que si realmente
quieres
cambiar los tipos de variables,
puedes, y ya sabes, puedes cambiar el tipo de variable ya sea aquí mismo haciendo
clic en esto, eligiendo uno nuevo en
el cuadro emergente aquí, o en el panel Detalles, también
puedes cambiarlo
aquí mismo. No obstante, si lo haces, hay algunas cosas
que debes conocer. Entonces con mi salud para agregar variable
flotante
seleccionada en el panel
Mi Blueprint,
voy a cambiar el tipo de variable
para que sea un entero. Ahora bien, una vez
que hagas esto, vas a tener una cajita
emergente que diga:
Oye, podrías romper
algunas conexiones aquí. ¿De verdad
estás seguro de que quieres hacerlo? Entonces, sigamos adelante y
cambiemos ese tipo de variable. Pero te darás cuenta de
que cuando lo
hagas, vas a conseguir este dicho, bien, hemos encontrado esto aquí
mismo en la gráfica. Tu recogida de ejemplo de BP
agrega tu salud para agregar. Ahí estaba. Ahora voy a
salir de aquí. Y vas a ver
esto aquí mismo siendo como, Bueno era un flotador, ahora
es un entero. Entonces, ¿qué haces aquí? Bueno, puedes arreglarlo
haciendo clic con el botón derecho en este
nodo, refrescándolo. Ahora reconoce que, oye, cambias eso a un entero. Pero ahora tienes
algo de trabajo que hacer aquí. Rompimos este enlace y
podría enchufar esto
también aquí. Y en este caso
va a traer en un, sólo
va a convertir
eso en real amablemente. Pero otros casos que no
van a jugar tan bien. Así que realmente debes
tener cuidado de romper tus conexiones cada vez
que cambies tus variables. Ahora, solo teníamos esta instancia de esta
variable agregada aquí mismo. Sin embargo, si quisieras encontrar todos los lugares donde
esto pudiera existir para arreglar todas estas referencias
de esa variable. Puedes hacer clic derecho sobre
esto, encontrar referencias. Y al hacerlo, puedes
encontrar dónde
existe esta variable en cualquier parte de esta gráfica. Y puedes encontrar incluso
más allá de esta gráfica, si estuvieras usando esta variable, estás llamando a esta variable
desde otro Blueprint. Puedes hacer clic en
este pequeño botón aquí para encontrar dónde se estaba obteniendo o
estableciendo esa variable en cualquier otro Blueprint. Así que es muy útil saber sobre hacer clic con el botón derecho,
encontrar referencias. Traerás a colación
este pequeño pop-up. Puedes hacer doble clic sobre
esto para saltar directamente a él. Y luego también si
quieres encontrar donde esta variable está haciendo referencia a
otros planos, puedes dar click aquí
mismo para poder hacerlo. Bien chicos. Eso
lo va a terminar para este video. Eso va a hacerlo
todo por las variables. Te veremos en la siguiente.
55. Resumen de las funciones: Bien, bienvenidos de
nuevo a todos. En esta sección del curso, vamos a estar cambiando
oficialmente nuestro enfoque al
tema de funciones. Y aunque me has visto
usar un montón de funciones en nuestras discusiones de otras cosas relacionadas con el scripting de Blueprint. Aquí es donde
los desglosamos en su totalidad, hablando de todos los
matices de las funciones. Entonces nuestro objetivo en este video es cubrir rápidamente
qué son las funciones. Da algunos ejemplos de cómo
se utilizan en Unreal. Y por último, habla de
dónde puedes encontrarlos. Entonces, antes que nada,
¿qué es una función? Bueno, para ayudar a facilitar
esta discusión, estoy dentro de mi Plano de
Nivel y he colocado
algunos nodos de función. Una función es un nodo de blueprint que simplemente hace algo, realiza una operación
específica. Entonces, qué tipo de cosas
he colocado antes de que oigas, bueno, podrías engendrar y actor. Eso es generar algún objeto en tu juego que te pueda
ser útil. Puedes generar un efecto de partícula. Este es el antiguo sistema VFX,
el sistema de
efectos visuales en cascada
o un sistema de partículas
más nuevo conocido como Niagara. Se podría crear un widget que sea para mostrar un Blueprint
Widget, que a menudo se usa
en Endgame HUD, o menús. Se puede reproducir un sonido. Podrías cambiar la ubicación de un
actor, todo tipo de cosas que se
pueden hacer con funciones. Ahora las funciones pueden tomar
entradas y devolver las de Albert. Solo como recordatorio, las entradas se encuentran en el lado
izquierdo de un nodo. Las salidas se encuentran en el lado
derecho del nodo. Irreal viene con toda una
serie de funciones ya, si tuviera que hacer clic derecho y algún espacio vacío y desglosar en alguna de
estas categorías, ves todas estas S de aspecto
elegante Aquí. Están
en azul o verde. Estos son todo tipo de nodos de función
listos para usar a los
que tiene acceso. Ahora puedes crear
tus propias funciones en un blueprint y
llamarlas cuando lo desees. Hablaremos de eso en
unos videos tiempo aquí. Ahora algunas cosas que vale la pena señalar en esta
visión general generalizada de funciones es que a medida que estás trabajando
con funciones en Unreal, notarás que vienen
en dos sabores diferentes. Tienes azul, que se
conocen como funciones impuras, y tienen este encabezado
azul para ellos. Y si voy
a la derecha aquí, tienes funciones verdes y estas se conocen como funciones
puras. Ahora bien, la diferencia clave entre estas es que estas funciones
verde y pura no tienen pines de ejecución
en el lado de entrada o salida, mientras que las funciones
impuras azules sí. Ahora tenemos un
video completo dedicado a las funciones impuras versus puras. Entonces hablaremos de
esos más adelante, pero solo quería
señalarlo mientras estamos aquí. Otra diferencia que
quería señalar entre diferentes nodos de
función es que a veces el encabezado para ellos es un poco más
descriptivo que otros. Y bueno, ¿qué
quiero decir con eso? Si miramos algunos de
nuestros nodos de función
aquí abajo ya que son
sistema de desove esa ubicación, eso todo
lo que dice este nodo de
función es sistema de desove en la ubicación. Ahora contrasta eso con este nodo aquí arriba, establece la ubicación del
actor. Y luego justo debajo
dice que el objetivo es actor. Este está
pidiendo un objetivo del que
queremos cambiar la ubicación. Este no tiene ningún
subdescriptor de subtítulos debajo de él. Ahora observe que éste
también establece que el objetivo material
es un componente primitivo. Puedo suministrar una malla de la que queramos cambiar
el material. Si salto a mi blueprint de
terceraPersonCharacter, también
coloco algunos
nodos de función aquí abajo. Todos ellos dicen que el objetivo
es el carácter, el
objetivo es el carácter,
el objetivo es el carácter, etcétera. Entonces diferentes funciones
tienen diferentes objetivos. En este caso, todos
estos nodos de función son específicos de una clase de caracteres. Mientras que en nuestro mapa de prueba de nivel, algunos de estos
nodos de función no son específicos ninguna clase dada o
ningún componente dado. Las funciones pueden tener
diferentes objetivos. Podría tener un objetivo
componente, podría tener un objetivo actor,
un objetivo de personaje,
cosas de esa naturaleza. Y llegaremos a eso
más en un poquito. Y por último, quería
hablar de dónde se pueden
encontrar funciones dentro de una gráfica. Bueno, un par de
formas diferentes podrías hacer esto. La forma más común es hacer clic derecho en algún espacio vacío. Aquí dentro. Si hago clic en mi lista desplegable de
actores
aquí, Aquí es donde puedes encontrar
muchas funciones diferentes. Nuevamente, vienen en las funciones impuras de
sabor azul, o el sabor verde, es
decir funciones puras. Y estos están disponibles
dentro de cualquier categoría dada. Vas a
encontrar un montón de estos que ya están
preconstruidos para ti. Ahora también puedes buscar una función
dada. Nuevamente, el actor engendrado de
clase es común. Entonces, si
sabes lo que buscas, puedes simplemente teclearlo ahí, engendrar actor de clase. Algo más que
quiero señalar aquí es que las funciones pueden ser contextuales o
no contextuales. Y esa es esta
casilla de verificación de aquí arriba. Se comprueba por defecto. Y déjame mostrarte cómo esto puede cambiar
los resultados aquí. Así que tengo a este
actor engendrado de Class Blueprint, y ya he colocado una pastilla de
ejemplo BP en
la clase aquí. Si tuviera que arrastrar fuera de esto, ahora mira mi casilla de verificación
sensible al contexto está marcada y en el
actor superior es mi categoría superior. Eso es con
sensible al contexto comprobado. Un actor es la
categoría más alta. Ahora permítanme venir
a esta
función Crear Widget justo por aquí. Déjame arrastrar fuera de aquí. Aviso sensible al contexto
está marcado. obstante, ni siquiera
veo esa categoría de actor en la parte superior aquí
porque estos van a devolver dos
tipos diferentes de cosas. Este va a
devolver un objeto widget. Este va a devolver mi pickup de ejemplo BP porque esa es la clase
que he ranurado aquí. Ahora, si estás en este menú
contextual, cursor sobre esta casilla de verificación
sensible al contexto aquí. Y das click en este
pequeño menú fly out. Puedes decidir en
qué contextos
va a encontrar dadas las funciones
disponibles. Este plano como
punta de herramienta dice que va a incluir funciones y variables que pertenecen a este blueprint. Si se comprueba componentes, va a incluir
funciones que pertenecen a componentes de este
blueprint y, u otras clases de destino. Y luego bibliotecas
que es para incluir cualquier otra función
que sea accesible globalmente. Y una vez más, tenemos un video
completo dedicado a las bibliotecas de
funciones en
poco tiempo en el futuro. Ahora, si tienes alguna funcionalidad
específica que quieres tener construida, puedes crear tus
propias funciones en el panel Mi Blueprint bajo
la categoría de funciones, puedes crear tus propias
funciones aquí mismo. Puedes llamarlos como quieras. Se puede crear la
funcionalidad que vive dentro de
ese nodo de función. Y entonces es tan simple
como arrastrar y soltar ese nodo de función desde tu pestaña my blueprints de
aquí en tu gráfica. Pero también hablaremos más de
eso en el futuro. Bien chicos,
hay una visión general de las funciones dentro de los planos de
Unreal Engine. Te veremos en
el siguiente video.
56. Funciones del actor: Bienvenida. En este video, nuestro objetivo es
conocer qué son las funciones del actor, explorar cómo encontrarlas y demostrar algunas. Ahora lo dejamos en el
último video simplemente tomando una visión general de las funciones dentro de
nuestro Blueprint de Nivel. Y yo estaba hablando de
cómo algunas funciones tenían este subtítulo
debajo de ellas, incluido este para ubicación del actor
establecido que
dice que el objetivo es actor. Entonces de eso es de lo que estamos
hablando en este video. Estamos hablando de la función de
actor. Entonces, ¿qué es una función de actor? Bueno, es simplemente una
función que apunta, es afectar a un
actor específico que le suministres. Ahora el objetivo podría ser él mismo, pero en el caso de
un Blueprint de Nivel, yo no es muy útil. En realidad tenemos que decir, Oye, ¿qué es lo que
estamos tratando de efectuar? Y en este caso,
¿qué nueva ubicación vamos a estar tratando de darle? Ahora, voy a volver
a mi nivel aquí, y he agregado una malla
estática a mi nivel. Si quieres seguir el juego
en casa. Esto está en mi carpeta de indicaciones de
contenido iniciado de contenido. Coloco a uno de estos
tipos en mi nivel. Y con eso hecho, también
cambié la movilidad
aquí para que sea móvil. Y eso va a ser importante
para la función que
vamos a estar
tratando de establecer sobre esto. Entonces con eso hecho, asegúrate de tener estos actores de malla estática
seleccionados en tu nivel. Y voy a saltar dentro de mi Plano de Nivel ya lo
tengo abierto aquí. Pero una vez más, así es como
puedes acceder a tu Plano de Nivel. Ahora no importa en
qué gráfica estés. Aquí tengo dos gráficas, mi gráfica de tipos de nodos
y mi gráfica de eventos. Mi Gráfico de Eventos es un
poco más limpio, así que voy a entrar de ahí. Ya tengo una referencia
a esto en mi gráfica. Ahora, la forma en que puede obtener una referencia a eso es
simplemente mantener presionada
la tecla R y hacer clic con el botón izquierdo o
en su menú contextual. Si lo tienes seleccionado, deberías poder encontrar
y crear una referencia al mismo haciendo clic derecho
y eligiendo ahí mismo. Cualquiera de las dos opciones servirá por ti. Entonces este es el actor al
que queremos apuntar. Entonces, si arrastramos fuera de
aquí y
soltamos, tenemos aquí
comprobados sensibles al contexto, lo que significa que si
perforamos en alguna de estas categorías, podemos encontrar funciones que son específicas que trabajará
para este actor dado, incluyendo algo
como Destruye Actor. Tenga en cuenta que dice que el objetivo es actor. Podría traer un evento de entrada y al presionar
ese evento de entrada, podríamos destruir al
actor que es nuestro objetivo. Estamos hablando de funciones de actor. Así que probemos algunos por aquí. Hemos visto que Destruye
Actor una vez suficiente. Entonces, vamos a traer algunos más. Entonces voy a
arrastrar fuera de aquí. Y voy a escribir la ubicación
del actor del set. Y puedo ver que esto está en la categoría de transformación. Entonces así es como
se puede ver dónde está. Ahora bien, esta es la
razón por la que tuvimos que poner nuestra malla
aquí para que fuera movible. Porque si en realidad no
configuramos esto para que sea movible, vamos a conseguir
algunas quejas. Cuando compilamos. Voy a establecer mi nueva ubicación. En lugar de enchufar
una variable, solo
voy a
ponerla duro aquí para, digamos 1,000. Y simplemente lo moverá a
algún lugar arriba en el aire. Vamos a arrastrarnos hasta aquí de nuevo, podemos hacer múltiples cosas. Voy a hacer rotación de
actores set, eso también está en la categoría de
transformación. ¿Bien? Así que vamos a ir
así y señalar que estamos usando la misma referencia el objetivo para múltiples funciones de
actor que es totalmente
aceptable de hacer. Voy a arrastrar fuera
de esto y vamos a hacer un conjunto actores escala 3D. Esto también se encuentra en la categoría de
transformación. Y luego, por último,
voy a arrastrar fuera de esto una vez más y
vamos a establecer la vida útil. Esto está en la categoría actor, por lo que diferentes funciones pueden
vivir en diferentes categorías, pero si conoces el nombre de la misma, simplemente
puedes escribir
arriba arriba. Ahora, actualmente no
tengo ninguna entrada por aquí, así que hagamos clic derecho,
zoom, espacio vacío adentro. Vamos, hagamos qué llave no
he usado todavía la llave siete. Hagamos la llave siete. Claro, eso va a funcionar bien. Entonces, cuando presionamos la tecla siete, vamos
a querer establecer la
ubicación de nuestros actores para que esté en algún lugar
en el aire. La ubicación 001000
en el mundo. Entonces vamos a mantener
el flujo de ejecución y establecer la rotación de nuestros
actores. Aquí no establecí una rotación, así que pongamos eso para que sea 45.45 solo para angularlo un
poco para que podamos ver algo
diferente a lo que es actualmente. Entonces vamos a mantener el flujo de ejecución
entrar aquí. Queremos establecer una
nueva escala para ello. Hagamos 44.4,
algo un poco grande. Y luego vamos a dibujar aquí
la vida útil. Entonces, este es el tiempo que
esto va a vivir
antes de que se destruya
menos de lo que nuestra vida útil sea. Vamos 5 s. Bien, así que fíjense que todas
estas funciones toman en cuenta, en un objetivo actor. Podemos usar la misma
referencia y conectarla a la
nota de entrada objetivo de todos estos. Entonces voy a compilar aquí, voy a mover esto
fuera a la izquierda. Vamos a jugar, déjame configurar mi objeto de depuración para que
sea mi mapa de prueba. Y ahí está mi actor. En cuanto presione
la tecla siete, vas a ver
bang, bang, bang, bang. Aquí vamos. Siete. En algún lugar en el aire. Se gira, es grande. Y después de 5 s boom, sí se va adiós. Entonces se puede ver que sí llamó a esa función en
este actor dado. E hizo todas estas
cosas, cambia la ubicación, cambia la rotación,
establece la escala y establece la vida útil. Entonces ahí
lo tienes. Funciones de actor. Puedes encontrarlos
arrastrándolos fuera de un actor determinado, haciendo
una búsqueda de él, o simplemente buscando aquí para ver qué tipo de
funciones están disponibles para ti. Bien, eso va a
hacerlo todo por este chicos, los veremos en el siguiente.
57. Funciones de la clase: Bien, bienvenido de nuevo. En este video, nuestro objetivo es
aprender qué son las funciones de clase, explorar cómo encontrarlas y luego demostrar algunas. Entonces, en primer lugar, ¿qué es
una función de clase? Bueno, es simplemente una función
que sólo puede ser utilizada por un tipo específico que
es una clase específica. Ahora bien, ¿de qué estamos
hablando aquí? Bueno, si saltamos de nuevo
a nuestro Navegador de Contenido, y me vio
hacer clic derecho antes en el curso en algún
espacio vacío en mi navegador de contenido, si vengo bajo la clase Blueprint, estas son las diferentes clases
de las que estamos hablando, las diferentes clases de planos. Ahora, tenemos funciones que
son específicas de cada clase. Y esto va a
ser más obvio demostrar cuando se
habla de nuestra clase de personajes, porque casi todos los
juegos que vas a crear van a tener un personaje o tal vez
incluso sobre clase, pero vamos a demostrar
un personaje. Así que adelante y abre tu
BP ThirdPersonCharacter. Ahí es donde empecé
este video con él. Y fíjate en mi gráfica aquí tengo varios nodos de función. Y observe que justo
debajo del encabezado aquí, el subencabezado aquí dice que
target es character, la función jump
target es character, la función de lanzamiento character, target es character, the agachate
in y funciones agacharse. El objetivo es el carácter. Estas funciones son específicas de esta clase, esta clase de
caracteres. Y puedo encontrarlos haciendo
clic con el botón derecho en
algún espacio vacío. Y entonces si busco
ese nombre de clase de padres, estamos buscando el
personaje justo aquí arriba. Vamos a desplazarnos hacia abajo. Y si encontramos carácter C H ahí está, aquí abajo. Puedes encontrar estos eventos. Tenemos agachados,
tenemos personaje de
lanzamiento saltado en
agacharse, etcétera. Por lo que estos son muy específicos esta clase dada de Blueprint. Ahora, vamos a demostrar estos. Y quiero señalar aquí antes de que lo hagamos si quieres encontrar y hacer uso de estas funciones agacharse
y agacharse, necesitas seleccionar tu
componente de movimiento de personaje y otra vez en el Panel de detalles bajo
la categoría de movimiento de navegación, se
asegura de que
verifiques puede agacharse. No se comprueba por defecto. Bien, así que sigamos
adelante y probemos estos. Voy a hacer clic en reproducir aquí, voy a establecer mi objeto de depuración para que sea por personaje en tercera persona. Y voy a minimizar estos
un poco así. Se puede ver obviamente si
presiono mi barra espaciadora, eso va a hacer que mi
personaje salte soltando, hace que dejen de saltar. Si presiono la tecla L, tengo esta función de
personaje de lanzamiento que han establecido
duro la
velocidad de lanzamiento para que sea 2000s y z, que es un poco como un
súper salto, si se quiere. Sin embargo, todavía puedes hacer
esto mientras estás en el aire. Así que eso es un poco divertido. Y luego tengo
la entrada C establecida para agacharse y agacharse
cuando solté el CQI. Ahora cuando haga esto,
vas a notar algo. Presiono la tecla C y
whoops, déjame hacer eso. Una vez más. Presiono la tecla C y la cámara baja
y vuelve a subir. Cuando me agaché, mi personaje no entra en una animación
agachada. Tendría que hacer un poco más de
trabajo para engancharme eso. Pero no vamos a
entrar en declaraciones, queso y cambiar
nuestras animaciones, todo ese tipo de cosas. Pero notarás que esto en realidad
está bajo el capó, agachando a mi personaje, es decir, que está bajando mi cámara, está ralentizando la velocidad de movimiento de mis
jugadores. Y luego cuando me agaché, volví a altura
normal de la cámara, a la velocidad de movimiento
normal. Ahora bien, un par de cosas que vale la pena señalar aquí para
todas estas funciones, el objetivo es el carácter, y no tenemos nada
enchufado a este objetivo. El objetivo
simplemente se fija a uno mismo, lo cual es válido en esta
situación porque Esto es, nuestro yo es una clase de carácter por lo que no tenemos que
enchufar nada en él. El yo es una
cosa perfectamente válida para haber dicho aquí. El objetivo es nosotros mismos, que es un terceraPersonaPersonaje. Ahora también vale la pena
señalar que puedes encontrar acceso, hacer uso de estas funciones
dentro de otro Blueprint. Así que permítanme demostrarlo
rápidamente subiendo a mi plano de nivel. Notarás que aquí hay
algún espacio vacío. Si simplemente hago clic derecho y
hago una búsqueda de lanzamiento, teníamos esa
función de lanzamiento dentro de nuestro
ThirdPersonCharacter. No lo encuentro. Puedo encontrar algunas otras funciones
con la palabra lanzarlo, pero no mi personaje de lanzamiento. Se comprueba el contexto sensible aquí. Este no es un plano de
clase de caracteres. No lo vas a encontrar.
Ahora bien, si desmarca esto, ahora
puedo ver que no estamos buscando a través de la sensibilidad al
contexto. Y ahora bajo nuestro personaje, podemos encontrar nuestra función de
personaje de lanzamiento. Esto pertenece bajo la clase de funciones de
carácter. Sigamos adelante y agreguemos
esto a nuestra gráfica. Y es decir,
bien, quieres
llamar a esta función Eso es genial. El objetivo es celular, así que dame un objetivo. Ahora bien, si tuviera que simplemente tener un cubo existente en mi nivel como lo he colocado
antes de tiempo aquí. Tenga en cuenta que eso está seleccionado. Permítanme traer una
referencia a eso
manteniendo pulsado el clic izquierdo
arcaico. Si trato de enchufar
esto como objetivo, va a decir, No,
ese no es un objetivo válido. No puedes hacerlo.
El objetivo que buscamos es un personaje. Así podríamos obtener una referencia a nuestro
terceraPersonCharacter y conectarlo a él. Y entonces esto funcionaría. Ahora, para ello, necesitamos obtener una referencia
a nuestro personaje. Tengo esta
variable de referencia de
personaje que creé
anteriormente en el curso. Pero si hago clic derecho sobre
esto y encuentro referencias, debo haber destruido el
contenido de esta variable, por lo que actualmente esta se
establece en nada. ¿Bien? Todavía podemos obtener una referencia a nuestro personaje
de tercera persona por otro medio. Y ya me has visto
hacer esto antes. Haga clic derecho en el personaje
jugador de deuda Tenemos esta
función pura que
devolverá un personaje jugador. Pero no sabe
qué personaje queremos estar
buscando aquí. Así que hagamos un
ThirdPersonCharacter Cast to ThirdPersonCharacter. Va a decir, bien,
tu personaje jugador, es ese un
personaje en tercera persona? Y si es así, podemos llamar a algunas funciones que estén
relacionadas con ese personaje. Y el ThirdPersonCharacter
puede hacer uso de esta función de
personaje de lanzamiento porque el
personaje en tercera persona es una clase de personaje que
es un objetivo válido. Solo necesito simplemente
suministrar en entrada aquí, Hagamos clic derecho para
buscar la tecla ocho. No creo que estemos haciendo uso de la llave ocho y cualquiera de nuestra hierba aquí solo
en nuestro gráfico de eventos aquí. Bien, sigamos adelante
y enchufemos esto. Compila, vamos a guardarlo. Y ahora si tuviera que jugar, pongamos nuestro objeto de depuración para que
sea eso para que podamos
ver este ardiente apagado. Y entonces ahora si presiono la tecla, woops, en realidad está
tratando de llamarlo, pero no me senté a
una velocidad de lanzamiento, así que eso sería un problema. Eso es o
velocidad de lanzamiento para ser 2000. Sí, ese es un detalle
importante ahí mismo. Y presionando la tecla Alt, ahora
podemos llamar a esa función de
lanzamiento. Entonces una vez más,
siempre y cuando tengas una referencia a esa clase dada, puedes llamar a funciones
específicas de esa clase. Bien chicos, eso va a
hacerlo todo por este video, veremos en el siguiente.
58. Funciones de los componentes: Bien, entonces en el
último par de videos, hemos explorado actor de
funciones y funciones de clase. En este video, vamos a estar explorando las funciones de los
componentes. Vamos a explorar
cómo encontrarlos y demostrar algunos. Ahora bien, esto plantea la
pregunta, bueno, ¿qué carajo es una función
componente? Bueno, es simplemente una función
que apunta que es
afectar a un componente específico
dentro de un plano. Ahora para presumir de esto,
vamos a estar usando nuestro
blueprint bp thirdPersonCharacter. Ahí es donde lo puedes encontrar. Entonces haz doble clic en
eso para abrirlo. Antes de filmar este video, seguí adelante y creé
algunos guiones solo para hacer esto un poco
más breve en cuanto al tiempo. Y sobre el gráfico de eventos, lo que tengo en su lugar
es que he colocado los tres
componentes diferentes en mi gráfica. Ahora bien, estos son respectivamente mi componente de
espada entre comillas, es
decir, un componente de malla estática. El siguiente componente con el que
vamos a trabajar aquí es
nuestro Componente de Malla. Y eso es saltar de nuevo
a la ventana gráfica aquí. Esta Malla Esquelética que
representa a nuestro personaje, esta
mujer maniquí, si se quiere. Y entonces el último componente
que tenemos es nuestra cámara de seguimiento. Y simplemente saltando de nuevo a la ventana gráfica o seguir a la cámara es este componente
ahí mismo, esa cámara. Entonces, ¿cómo agregamos
estos a nuestra gráfica? Bueno, como sabes por
las variables, simplemente
puedes arrastrar y soltar para agregarlas a tu gráfica. Entonces obtienes una referencia
a ese componente dado. Y si arrastras fuera de estos, puedes encontrar
funciones específicas ese componente que son
sensibles al contexto y funcionan
con ese componente. Entonces lo que tengo aquí
está fuera de mi espada, simplemente
me drogo e hice una
búsqueda de set static mesh. Pero si te estás preguntando
dónde existe esto, si vas a establecer una malla estática, puedes ver que está en la categoría de
imagen estática de componentes. Y lo enumero justo arriba su malla estática de componentes. Entonces, si simplemente
saliéramos de esto y
entráramos bajo componentes y
entráramos bajo una malla estática. Puedes ver que tenemos esa
función que podemos agregar o podemos agregar la
función pure get local bounds. Pero ésta es
mucho más visual. Ahora abajo aquí, para
estos componentes de malla, simplemente
hice una búsqueda
bajo la categoría de componentes, componentes, componentes de malla
pelada. Puedes ver que tenemos muchas funciones
diferentes aquí para esto. Pero para este solo
quería simplemente cambiar la Malla Esquelética
asociada con eso. Y por eso, de lo que estoy
hablando aquí es con nuestros
componentes de malla seleccionados, vamos a estar intercambiando la Malla Esquelética
asociada con eso. Es muy visual. Entonces
puedes ver el objetivo aquí es el componente de malla desollada que está hablando de
esto aquí mismo. Por último, tenemos
la cámara de seguimiento. Entonces tenemos algunas
funciones que son específicas de un componente de cámara. Y los puedes encontrar en el menú contextual bajo
la categoría de cámara. Así que hay muchas funciones aquí para
jugar también. Este es muy visual, el entorno, el campo de visión. Entonces, una vez más, el
subtítulo bajo esta muestra a qué
componente específico se puede apuntar. Bien, así que jugando a
este súper visual aquí, vamos a configurar nuestra opción de depuración para que veas esto disparando. Entonces cuando presione la tecla F, vamos a cambiar nuestra,
nuestra espada ahí por esa bola. Esa es la nueva malla
que metí ahí cuando presioné la tecla G, nuestra malla aquí, esa
mujer maniquí en lugar de Aaron
va a ser intercambiada también. Así es, sólo un cubo. Y este
cubo esquelético de aquí mismo está en el contenido del motor
que es cubo esquelético. Por último,
fíjese el, el campo de visión aquí
cuando presiono la edad, se
va a
desplazar un poco. Bien, así que aquí
vamos, Press y la tecla H como que la hace
zoom un poco así. Y así ahí lo tienes. Puede agregar todo tipo de componentes aquí en
el panel Componentes. Hay toneladas de ellas. Y así solo tenga en cuenta que para cualquier
componente que pueda agregar, puede
haber
funciones
asociadas a ese componente en particular, específicas de ese componente. Exploralos, juega
con él, aprende haciendo, bien, eso va a
hacerlo todo por este video, te
veremos en el siguiente.
59. Crear funciones: Bien, bienvenidos de nuevo a todos. A lo largo de los últimos
videos mostramos cómo encontrar diversas funciones que
ya existen en Unreal. En este video, nuestro objetivo
es mostrar cómo podemos ir creando
nuestras propias funciones. Ahora bien, este es un concepto extremadamente
poderoso dentro del scripting de blueprint. En ella esencialmente te permite crear cualquier funcionalidad
que quieras. Ahora para la mayor parte de este video, vamos a estar haciendo
algún trabajo dentro de nuestro personaje bp en tercera persona. Entonces te sugiero que
abras a ese tipo. También tengo mi
Plano de Nivel abierto a lo largo de
la parte superior también. En primer lugar, es importante tener
en cuenta que las funciones se pueden crear dentro de un
plano de clase o un plano de nivel. Entonces solo para presumir, comenzando con mi plano de nivel o en el panel Mi Blueprint. Tienes una sección para funciones. Así que las funciones se pueden crear aquí dentro
de un Blueprint de Nivel. Adicionalmente dentro de un Blueprint de Clase como
nuestro ThirdPersonCharacter, encontrarás esa misma
sección de funciones para que puedas crear
una aquí también. Bien, ahora
hablemos de diferentes formas crear funciones. Bueno, tenemos este
botón Agregar justo aquí arriba. Puedes hacer click en eso, crear una función de esa manera. Otra forma es con el encabezado de la
función aquí mismo, puedes hacer clic en este botón
que creará una función. Y la tercera y
menos obvia forma es en cualquiera de estos encabezados, gráficos, funciones,
macros, variables, etc Simplemente
puedes hacer clic derecho,
y déjame simplemente hacer clic derecho
en este encabezado de gráfico aquí. Y sacará a
colación este mismo menú que obtuviste al dar
clic aquí mismo. Entonces puedes agregar una función aquí. Y si creo cuando así
lo voy a agregar a
mi categoría de funciones. Voy a darle un
nombre a esto de inmediato y llamar esto modificar salud porque
voy a crear una función que modifique la salud de nuestro jugador. Y tenga en cuenta que cuando hicimos clic para agregar una función, ya sea
aquí, aquí o aquí función, lo que hemos hecho es
que también hemos abierto una nueva pestaña justo arriba
en la parte superior. Entonces lo que tienes ante ti
es simplemente un nodo de entrada, en nodo de entrada a tu función. Y aquí en el
resto de la gráfica, llega a crear qué
funcionalidad quieres que esta función tenga
una al final, necesitas agregar unas
notas de retorno voy a
hacer clic derecho y algunas vacíe el espacio y agregue un nodo de
retorno de inmediato, simplemente haga clic con el botón derecho
y escribiendo a
cambio en la parte inferior, puede agregar un nodo de retorno. Ahora, de nuevo, aquí es donde
vamos a estar construyendo lo
que realmente hace este
nodo de función. Pero mientras estoy construyendo esto, creo que sería útil
si en el gráfico de eventos, simplemente arrastrara y soltara este
nodo de función en mi gráfica. Entonces aquí vamos, arrastrándolo
y soltándolo. Ahora es azul. Al ver al objetivo es un personaje en
tercera persona porque lo
estamos construyendo aquí dentro de nuestro
personaje de tercera persona. Entonces ese va a ser
el objetivo predeterminado. Y tenga en cuenta que todo lo que tenemos
aquí es una ejecución en pluma y ejecución fuera
pin y un objetivo. Pero podemos agregar más pines,
más pines de datos en el lado de entrada
o en el lado de salida. Y vamos a
presumir de eso un poco aquí en este video. Entonces así es como se ve actualmente el
nodo de función. Y a lo largo de este
video vamos a estar modificándolo un poco. Volvamos a nuestra función de modificación de salud y construyamos alguna
funcionalidad. Entonces lo primero
que quiero
agregar a esta función
es una entrada. Quiero poder tener
la capacidad de ingresar cuánta salud o daño va a estar recibiendo nuestro personaje. Entonces para hacer esto, necesito seleccionar mi
nodo de entrada aquí, mi Modificar salud, y otra vez en el
panel Detalles donde dice entradas, Hagamos clic en este
botón más para agregar una entrada. Ahora
nos va a permitir nombrarlo enseguida. Por defecto, debería
mostrarse como un booleano. Sin embargo, se puede
cambiar el tipo. Se muestra como un flotador
para mí porque estaba haciendo algunos trabajos de preparación
antes de este video. Entonces cámbialo a un flotador. Y nuevamente, puedes
hacerlo dando click aquí. Y cambiemos el
nombre de esta entrada para que sea sanación o cantidad de daño. Ahora, tenga en cuenta que si salto de
nuevo a mi gráfico de eventos aquí, donde colocamos nuestra función de
modificar salud, ahora
veo en el lado de entrada de nuestra función la capacidad de
ingresar una variable flotante, una sanación de salud o cantidad de daño. Entonces es un poco
engañoso cuando estás construyendo tus
funciones aquí. Aquí selecciona este nodo de entrada y luego agrega una entrada. Y la razón por la que es un poco
engañosa es que piensas que las entradas están en el lado
izquierdo de un no-no. Pero aquí en esta nota de entrada, la
está mostrando en el lado
derecho del nodo. Así que la primera vez que estaba
aprendiendo todo esto, lo
he sentido bastante confuso. Sin embargo, en la función
resultante final que podemos ver en
nuestro gráfico de eventos, cuando arrastras y sueltas esta función en
el gráfico mismo,
sí aparece como entrada
en el lado izquierdo de un nodo. Por lo que se puede ingresar un valor flotante de salud o daño que
se va a recibir. Bien, sigamos adelante. Lo que quiero hacer es sacar de nuestra salud o cantidad dañada en la que
vamos a estar incurriendo. Voy a traer una señal
mayor que. Queremos hacer algo si nuestra salud o cantidad de daño
es mayor que cero, o lo vamos a hacer es
arrastrar fuera de aquí, traer un nodo de sucursal. Tenemos que mantener este flujo de
ejecución pasando por aquí. Entonces vamos a evaluar, es la
montaña sanadora o dañada mayor que cero. Y si es así, vamos
a arrastrar fuera de aquí y vamos a
tocar sonido a D. De hecho, voy
a darle a Control C y
Control V para copiar esto porque
queremos tocar un sonido, ya sea que esto sea verdadero o falso. Ahora bien, si es cierto, el
sonido que quiero tocar se va a llamar
el laser push. Si es falso, el
sonido que quiero
tocar se llama sondeo láser. Ahora, al simplemente pasar el cursor
sobre este polo láser, se
puede ver que el
camino para esto está en las carpetas de contenido del motor. Entonces, si estás jugando
en casa, no
ves el láser empujando el pool
láser. Justo aquí. Tienes este ícono de engranaje. Asegúrate de que tienes marcado el contenido
del motor de espectáculos, entonces tendrás
acceso a estos dos. Bien, entonces sondeo láser para esto. Entonces dependiendo de si la cantidad entrante
es mayor a cero, vamos a reproducir un sonido. Si no es mayor que cero, vamos a tocar
otro sonido. Esos son como efectos de
tipo más positivos o negativos. Bien, entonces lo que también
queremos hacer aquí es
arrastrarse fuera de esta cantidad que
vamos a estar ingresando. Y voy a golpear
el símbolo Plus. Vamos a agregarle
algo. esto queremos sumar va a ser nuestra salud aquí mismo. Así que vamos a arrastrar y soltar nuestra salud justo encima de esto. Eso nos dará un
getter enseguida. Entonces vamos a
agregar eso, la cantidad viene a nuestra salud. Y luego vamos a establecer
eso para que podamos simplemente arrastrar y soltar nuestra salud en la
salida para traer en un centro. Ahora lo que quiero hacer es traer de esta manera por aquí para poder ponerme
esto así así. Y así cuando
esencialmente estoy diciendo aquí, es que pase lo que pase, si la cantidad que entra
es mayor a cero o no, quiero agregar eso a
mi salud actual. Voy a tocar un
sonido independientemente de si es mayor que cero o no, un sonido positivo o negativo, entonces vamos a establecer eso
como nuestro nuevo valor para la salud. Entonces voy a enchufar
esto a nuestro regreso. Pero por último pero no menos importante, puedo arrastrar y soltar esto en el nodo devuelto para agregar
un pin a nuestro regreso. Para tener en cuenta que una vez que haga esto, simplemente arrástrelo y suéltelo ahí. Se va a sumar una
salida justo aquí arriba. Pero probablemente queremos darnos un nombre mejor del que
solo se obtiene la salida. Entonces voy a nombrar a
esta salud actual. Así. Ahora algo más que
quiero hacer aquí es que quiero poder
sujetar esta salud porque
digamos que ya estamos en plena salud y la cantidad
entrante va a sumar a nuestra salud que
nosotros técnicamente podría tener más de 1.0 de salud. Podemos tener
más del 100% de salud. Entonces, la forma en que puede asegurarse de
que esto se sujeta a unos valores dados para
traer en un nodo de abrazadera. Así podría arrastrarme fuera de aquí. Mecanografiar en pinza. Queremos sujetar nuestro flotador y queremos
asegurarnos de que sea 0-1. Eso es un poco agradable. Entonces solo voy a
cablear esto así para asegurar que aunque estemos recibiendo una
cantidad saludable eso va a sumar a nuestra salud
y hacerla superior a 1.0. Que no importa
lo que se vaya a quedar en 1.0 no puede ir por encima de eso, así que
asegúrate de hacer eso también. Ahora, échale un vistazo. Esta es nuestra, esta es nuestra función aquí mismo. Esta es una funcionalidad
que estamos agregando en nuestro gráfico de ventilación con su función de modificar salud
agregada a nuestra gráfica, tenemos esta cantidad de daño del
sanador de entrada, y en el lado de salida, nuestro gráfico de ventilación con su función de modificar
salud
agregada a nuestra gráfica,
tenemos esta cantidad de daño del
sanador de entrada,
y en el lado de salida,
puede dar salida a nuestra salud
actual. Ahora algunos detalles importantes
antes de terminar este video en el panel Detalles
con sus funciones seleccionadas, eche un vistazo a nuestras entradas aquí. Tenemos este talón
o los dañamos. Y tenemos esta
pequeña flecha desplegable. Si haces clic en esto, puedes establecer un
valor predeterminado para esto. Por lo que actualmente es 0.0, que se puede ver reflejado
en el propio nodo de función. Si tuviera que cambiar esto a 0.5, puede ver que
una vez que golpee Enter, va a ser muy duro. Pon eso ahí dentro. Bien. En realidad no
quiero eso por ahora, pero solo pensé en
señalarlo que puedes establecer un valor predeterminado ahí. Déjame volver a poner eso a cero. Y además tienes esta opción de
pase por referencia. ¿Qué significa eso? Bueno, pasó por una opción ref o
pasada por referencia permite decirle a la
función que sea cual sea variable que esté
enchufando a esta, esa es la variable que
desea cambiar. Esencialmente
te permite obtener y establecer una variable al mismo tiempo. Ahora vamos a entrar en esto un poco más
en el siguiente video. Pero solo quiero señalar aquí que si tuviera
que marcar esta casilla, tenga en cuenta que este pin va a
cambiar a partir de este tipo
de forma circular, también. Un poco más de
esta forma de diamante. Bien, voy a
desmarcarlo por ahora. Y una vez más, lo
mostraremos un
poco más en el siguiente video. Algunas cosas más que
necesitas saber aquí es que si
tuviera que hacer doble clic en esta nota de función estoy
en mi Gráfico de Eventos. Vigila lo que sucede. Haga doble clic. He saltado de mi gráfico de eventos a
mi gráfico de funciones. Entonces aquí, Esa es una manera
rápida y fácil de ver qué está haciendo esta
función. Y eso te saltará directamente
a tu gráfica de funciones. Punta muy práctica. Un par de notas más sobre
las funciones que creas. No puedes tener nodos
latentes como un nodo de retardo o una línea de tiempo
dentro de tu función. Esa es una limitación
de funciones. Y algo más a
tener en cuenta sobre las funciones. Con las funciones solo obtienes un pin de ejecución y
un pin de ejecución, es
decir, una ejecución
adentro, una ejecución out. Si necesitas
más, macros, son el camino a seguir ahora, en el futuro, agregaremos algunos videos
hablando de macros. Pero chicos, eso sí va a
ofrecer este seguimiento en el siguiente video
donde vamos a hablar de llamar a funciones. Nos vemos ahí.
60. Funciones de llamadas: Bien, en el último video, terminamos de crear una función dentro de nuestro bp
thirdPersonCharacter. Y así lo convertimos en el
target donde sea que
crees tu función
que será el target. En este video,
vamos a aprender cómo podemos hacer llamar a esta función tanto
desde un Blueprint de clase aquí
mismo dentro de nuestro
personaje de tercera persona, como desde un Blueprint de nivel. Así que vuelve a entrar en tu
plano de personaje de tercera persona. Y si olvidaste
dónde estaba eso, has estado viviendo
bajo una roca en alguna parte. Aquí está el camino para que ese doble clic sobre
ese tipo lo abra. Ahora, he agregado esto a mi
gráfica en el último video. Déjame simplemente
borrar esto y hacer una actualización aquí cómo podemos agregar eso
a nuestra gráfica aquí, voy a hacer clic derecho
y algo de espacio vacío. Entonces, en busca de un nodo de eventos, porque queremos
comenzar con un evento F3. F3, no lo sé porque me
imaginé que no estaba en uso. Ahora un par de formas en las
que podemos ir agregando esta función
a nuestra gráfica. Una forma es que podemos
hacer clic derecho y algún espacio
vacío aquí y
hacer una búsqueda para ello. Modificar la salud, esa es
una forma en la que podríamos agregarla. De otra manera, permítanme
borrar eso es
simplemente arrastrarlo y soltarlo desde nuestra sección de funciones por aquí. Arrastre. Y si lo dejas caer en el panel de
ejecución aquí mismo, lo va a enganchar
enseguida. Entonces simplemente vamos a
arrastrar fuera de esto y traer un nodo de cadena de impresión. ¿Correcto? Y vamos a enganchar esto en nuestra salud
actual a la cadena solo como un repaso si haces doble clic en tu nodo de
función aquí. Bueno, lo estamos haciendo
es que estamos tomando una cantidad de salud o daño. Vamos a estar agregando eso
a nuestra salud actual. Vamos a estar
sujetándolo entre estos dos números
y vamos a estar fijando eso como
nuestro nuevo valor para la salud. Y entonces vamos a
estar pasando eso por el otro lado de
nuestra función aquí. En este caso, vamos a estar pasándolo fuera de este nodo. Observe la salud actual, ese es el pin de salida de
nuestra función aquí. Y simplemente vamos a
imprimirlo en la pantalla. Además, necesitamos codificar en cantidades de curación o daño. Entonces, ¿vamos a empezar
con cuánta salud? Bueno, dentro de
nuestra modificamos salud, aquí
mismo, nuestra variable de salud. Esto es lo que vamos
a empezar con 1.0 salud. Eso es
lo mismo que vemos en el panel Mi Blueprint con esa variable de salud
seleccionada 1.0. Entonces, ¿con qué
queremos modificar esto? De nuevo, podemos sanar o dañar. Entonces lo que voy a hacer es establecer
esto en cantidades dañinas. Así que vamos 0.5. Y porque queremos que
esto haga daño, hagamos 0.5 negativo. Entonces los números negativos
van a dañar. En este caso,
los números positivos van a sanar. Bien, vamos a compilar,
asegurarnos de que nuestro script se vea bien. Jugar. Déjame establecer mi depuración a mi
terceraPersonCharacter aquí. Si presiono F3 aquí, pueden
ver que reduce
nuestra salud a la mitad. Y también viste 0.5 en la esquina
superior izquierda aquí. Recuerde, nuestra variable de salud también está ligada a nuestro
medidor de salud aquí. Entonces, si presiono esto
una vez más, van a ver 0.0 y
ahora nuestros medidores de salud se han ido. Ahora bien, si vuelvo a presionar F3, va
a seguir mostrando 0.0 de salud. Y eso es porque en o
modificamos la función de salud, estamos sujetando esta
modificación de nuestra salud entre estos valores. Bien, ahora solo
para presumir que esta función puede sanar así
como infligir daño, modifiquemos nuestro
original más sano. Modifiquemos el valor original de
Salud para que sea, diremos puntos a. Así que vamos a
empezar con sólo el 20% de salud. Y luego en nuestro
gráfico de eventos vamos a cambiar nuestra curación o daño MT. Digamos que cada
vez que llamamos a esto, vamos a sanar en un 10%, 0.1. Muy bien, así que esto
puede funcionar en ambos sentidos. La forma en que tenemos esta configuración,
estás haciendo clic en Reproducir. Así podemos ver que estamos empezando
con un 20% de salud. Presiono F 3.3, 40%,
50%, 6070809100. Y claro, si
traté de repasar eso, no
puedo porque haciendo doble clic en nuestra
función de modificar salud aquí, me
va a saltar a esa gráfica. Estamos agarrando nuestro valor
para la salud 0-1. Bien, así que hemos probado
que se puede llamar a esta función desde dentro del plano en el que
se creó. Pero, ¿puedes llamarlo
desde otro plano? Y claro que la respuesta
a eso es sí, se puede. Siempre y cuando tengas
una referencia a tu terceraPersonCharacter
en otro blueprint, puedes llamar a esta función. Y para demostrarlo,
vamos a utilizar nuestro Plano de Nivel. Saltó de nuevo a tu nivel aquí. Y tengo un poco de configuración que puedes
intentar replicar. Una vez más, tengo una
caja de gatillo colocada dentro de mi nivel. Y como has visto
en otros videos,
puse la extensión de la caja en 200, 200, 200, el
grosor de la línea a diez. Y simplemente volví al
actor oculto y se le apagó el juego. Dentro de la
sección de renderizado para que pueda ver este volumen disparador. Y entonces simplemente
coloco una partícula de fuego. Esto se encuentra en mis
contenidos iniciados, contexto iniciado. Dónde está la
carpeta de partículas, ahí mismo. Un lugar que en el
medio solo para hacer que toda esa zona parezca peligrosa? Y luego simplemente lo
escalé diez veces. Entonces esta va a
ser mi zona de peligro. Y la idea aquí es
que cuando mi personaje se superpone a esto, se dañan. Así que sigamos adelante, selecciona tu caja de activación y
salta a tu Plano de Nivel. Entonces lo primero que
queremos hacer es que
algo haya pasado cuando
superpusimos esto. Así que hagamos clic con el botón derecho en Agregar
evento cuando superpongamos esto. Y claro que sí necesitamos obtener una referencia a nuestro personaje de
tercera persona. Si haces clic con el botón derecho y haces
un personaje de jugador get, y tratas de arrastrar
fuera de aquí e intentar encontrar esa función de
salud modificar. Vas a estar como,
¿por qué no puedo encontrarlo? Si
desmarcas sensible al contexto, estarás como, oh, ahí está. Bajo la clase BP,
ThirdPersonCharacter. Oh, ahí está. Pero el problema es que
no puedes simplemente conectarte, meter al personaje del jugador aquí. Entonces eso es un problema. La forma en que puedes obtener
esta función de modificar salud, déjame eliminar de
aquí es a través de casting. O si nuestra
variable de referencia de caracteres aquí mismo. Si esto estuviera realmente poblado, si hubiéramos inicializado con nuestro
personaje de tercera persona dentro, podríamos encontrar la función
Modificar salud arrastrando fuera
de allí también. Sin embargo, aquí vamos a utilizar
el concepto de casting. Esa es una forma de
verificar si en este caso el otro actor era lo que
se
superponía a esta caja Trigger. Así que vamos a arrastrar un personaje de aquí, elenco de dos terceras personas. Y si hacemos esto, si comprobamos para ver
si el otro actor era el objeto que se
superponía a la caja Trigger, entonces podemos sacar
de aquí y encontrar esa función de modificar salud. Y si revisas sensible al contexto
como lo hice ahí, y de repente desaparece, simplemente
despeja la búsqueda arrastrada de nuevo, escribe Modificar salud, y la encontrarás. Una vez más. Una vez que tengas una referencia a
tu ThirdPersonCharacter, puedes llamar a cualquier función
que viva dentro de ahí. Puedes hacer referencia a cualquier variable que viva dentro de ahí,
obtenerlas o establecerlas. Incluso puedes modificar cualquiera de
los componentes en cualquiera de sus propiedades que vivan dentro de ese
terceraPersonpersonaje. Así que conseguir una referencia
a algo es enorme. Bien, este caso,
¿queremos
sanar o dañar a nuestro personaje? Yo diría que los dañó. Así que vamos a la negativa 0.1. Y eso debería ser lo suficientemente
bueno porque
vamos a ver disminuir
nuestro medidor de salud. Vamos a compilar esto. Déjame volver en mi
terceraPersonaPersonaje. Asegúrate de volver a poner
mi salud un valor de 11.0, 100%. Y vamos a jugar. Voy a configurar mi
objeto de depuración aquí para que sea el mapa. Volviendo a sonar mi personaje. Así que estamos empezando con
el 100% de salud. Yo me superpongo que están
disparando volumen aquí, un poco de audio allá también. Cada vez. Una cosa más antes de
que terminemos este video. En el último video,
hablamos de una opción de pase por referencia
dentro de nuestra función. Y tengo que volver a eso. Entonces para
volver a saltar a nuestra función, aquí estoy en mi Plano de Nivel. Puedo saltar de nuevo a esta función haciendo
doble clic sobre esto. Y fíjate que una vez que lo haga, voy a hacer la transición
de nuestro Plano de Nivel. Haga doble clic en nuestro Blueprint de
terceraPersonCharacter donde reside esta
función de modificación de salud. Y nos ha abierto la pestaña Modificar
función de salud. Siga adelante y seleccione su función
de modificar salud en el lado izquierdo, o también puede hacer clic en el nodo Modificar entrada de
salud. Y encima en el
panel Detalles se puede ver que
agregamos una entrada MT de talón o daño. Y eso equivale a esta entrada que ves en
el propio nodo de función, eres am y mi Gráfico de
Eventos saltando nuevo a la pestaña de función misma. Ahora bien, este pase por
referencia del que
empezamos a hablar
en el último video, ¿qué rayos hace esto? Bueno, visualmente hablando,
lo que van a ver pasar aquí es
que una vez que marqué esta casilla, este
pin de forma circular ahora va a ser reemplazado por unos pines en forma de
diamante. Así que aquí vamos. Ahora es
un alfiler con forma de diamante. Además, el
valor predeterminado fue adiós. Ahora bien, si compilo este Blueprint, también notarás
algo más compilar, nos sale un error y
va a decir que
esto no es válido, que deberíamos tener una
entrada cableada en él. Entonces, ¿de qué se trata aquí? Déjame saltar de nuevo
a mi Gráfico de Eventos está hablando de esta
área aquí mismo diciendo, oye, necesitas algo
conectado a esto. Ahora bien si estaba en mi modificar, como funcion soy como Por qué no
tengo idea de lo que
esta hablando esto. Este es un enlace.
Simplemente puede hacer clic en él. Y te va a saltar directo a ella. Entonces está diciendo, oye, conecta
una variable a esto. Entonces, para presumir esto, qué carajo hace
pasar por referencia. Sí, necesito modificar nuestra función de modificar la salud
sólo un poco. Y haciendo esto, voy a cambiar nuestro valor. En lugar de ir a escala 0-1, voy a romper temporalmente nuestro medidor de salud, si se quiere. Voy a decir que
vamos a empezar con una salud de diez. Vamos a pretender que
tenemos una escala de salud va de 0.02, 100.0. Bien, entonces lo que voy a hacer es que voy a
agregar algo de salud. Y de nuevo, voy a
ir con una escala de cero a 100 en lugar de 01. Digamos que nuestra
salud para agregar, vamos a cambiar para ser, agreguemos una salud. Bien, déjame seguir adelante
y enchufar esto aquí. Ahora voy a volar. Estoy siguiendo junto con nuestra función de ayuda modificada. Déjame hacer doble clic sobre esto. Una vez más,
esencialmente estamos diciendo, Oye, estamos enchufando
uno a aquí. Entonces vamos a agregar eso
a nuestra salud existente, que es diez y aplaudiendo esto entre cero
y vamos a sujetarlo a 100. Entonces podríamos tener 11. Y si presionamos de nuevo F3, esperaríamos que
fuera a 12, etcétera. Pero
aquí vamos a
modificar una cosa más dentro de nuestra función
modificar salud. Lo que vamos a hacer es que
vamos a agregar en
incrementos nodo a esto, arrastrar fuera de aquí y
escribir en incrementos. Vamos a
incrementar esta carroza. Y voy a
volver a cablear las cosas un
poco aquí,
manteniendo pulsado Control, clic izquierdo y arrastre
donde las cosas así como así. Vamos a tomar
el resultado de esto y enchufarlo ahí. Y enchufa esto ahí. Vaya, me perdí
ahí, como celular. Y así ahora nuestra función
se ve así. Entonces, si compilo aquí, ¿
qué tenemos pasando? Bueno, en esencia, lo
que estamos pasando es algo por lo que vamos
a agregar una salud. Esto se está
enchufando a nuestra función. Al sumar una salud, estamos incrementando
ese número aquí mismo. Y si pasamos el cursor sobre
esto, dice que va a agregar
uno a ese valor especificado, y luego lo va a establecer. Entonces, en vez de la próxima AS
incrementando nuestra salud, siendo una,
entonces va a ser dos. Y entonces la próxima
vez van a ser tres, y así sucesivamente y así sucesivamente. Volviendo a nuestro gráfico de eventos, deberíamos ver esto reflejado
en nuestra cadena de impresión. Una vez más, ese medidor
va a ser de ningún valor. Entonces sigamos adelante y jugador en él diciendo que tenemos este aire también en nuestro Plano de
Nivel. Adelante y da clic en
este mapa de prueba de nivel. lo que está hablando
si haces clic en eso es porque no hemos enchufado
nada aquí, voy a romper
temporalmente eso. Sí. En cualquier lugar que tengas que te va
a gritar y decir, Oye, necesitas algo
enchufado a esa entrada. Muy bien, vamos a jugar a esto. Entonces presionando la tecla F3, ahora
tenemos 12 salud, 15, salud, 19, salud, 24, salud. Y puedes ver que sigue sumando uno a la cantidad
que agrega cada vez. Ahora la razón por la que esto
empezó a las 12, déjame ir a jugar
una vez más. Otra vez. Estamos empezando a las diez de
salud que a sumar una o
creemos que estamos agregando una
excepto que vamos 10-12. Y la razón de eso
es porque aquí mismo, estamos tomando este valor uno y
lo estamos incrementando enseguida. Y al hacerlo, porque esto es un
pase por referencia, también
estamos incrementando
esa variable. Recuerda en el
último video que dije hacer esto pasado
por referencia, donde quiera que hayas
enchufado a este pase por referencia. Y no solo estás
obteniendo este valor, también lo
estás estableciendo de
inmediato. Entonces, aunque
empiece como uno, cada vez que
pases por aquí, va a incrementar uno. Entonces 234, etcétera, etcétera. Un poco de
matiz en el que pasé demasiado tiempo. Muy bien, ahí lo
tienen, chicos. Eso es llamar a funciones. Puedes llamarlos desde dentro del plano en el que los
creaste, o puedes llamarlos
desde otros planos. Siempre y cuando se tenga una referencia al plano en el
que fueron creados. Chicos, sí voy a ofrecer este. Nos vemos en la siguiente.
61. Collapse a la función: Bien, bienvenidos de nuevo a todos. En este video vamos a aprender
a convertir una red existente de nodos dentro de cualquier blueprint
en una función. Esto se llama colapsar
a una función. Ahora bien este es un truco súper práctico. Cada vez que te encuentres duplicando una selección de nodos en diferentes
partes de tu gráfica. Entonces, en lugar de hacer
eso, podríamos simplemente convertir esas notas en una
función y luego llamar a esa función cuando
y donde quieras. Entonces actualmente estoy dentro
de mi camioneta de ejemplo BP. Y digamos por ejemplo voy a hacer clic izquierdo
y arrastrar eso. Estamos duplicando este
bit de guión una
y otra vez en varias partes de nuestra gráfica por cualquier razón. En lugar de copiar y
pegar estos nodos, podemos resaltarlos todos
tal como lo hice aquí. Y luego puedes hacer clic derecho en cualquiera de tus nodos resaltados, y luego hacer clic derecho en el menú, podrías colapsar para funcionar. De eso se trata este
video. Esto lo voy a demostrar brevemente aquí, aunque no es aquí a donde me propongo ir
con este video. Entonces voy a colapsar
esto a una función. Tenga en cuenta que cuando lo
hago, he reducido todos estos nodos en
una sola función. En encima del
lado derecho dice, ¿cómo quieres
nombrar a esta función? Sólo voy a dejarlo
como ese nombre temporalmente. Entonces voy a golpear entrar aquí. Y si me sumerjo dentro
de esta función, están todos los nodos que crearon una función
de todos esos nodos. Y el beneficio de
esto es que
entonces podríamos simplemente arrastrar
y soltar esto en otras partes de nuestra
gráfica y usarlo tal como lo haríamos si copiáramos y
pegáramos todos estos nodos. Entonces esa es la ventaja de eso. Ahora, una vez más,
aquí no es exactamente donde pretendía hacer esto. Así que déjame hacer el control
Z aquí un montón de veces y que vuelva
a su estado original. Voy a compilar y
decir eso una vez más. Y vamos a crear una nueva
Clase Blueprint aquí. Para demostrarlo,
voy a hacer clic derecho y algo de espacio vacío aquí dentro
de una carpeta Blueprints. Cambio el nombre de esta carpeta
entre videos del actor BP a planos porque este no
va a ser
un plano de actor. Hagamos clic derecho en Clase
Blueprint. Y la clase Blueprint que
vamos a crear aquí es una búsqueda de sacudidas de cámara debajo de la
sección de todas las clases bajo shake de cámara. Y estamos buscando base de batido de
cámara. Y luego vamos
a hacer click en seleccionar
aquí abajo para poder crear esto,
vamos a darle un nombre a esto. Voy a llamar a esto BP
guión bajo, batido de cámara. Bien, entonces hagamos doble clic
sobre esto para abrirlo. pocas palabras, lo que esta clase
padre base de sacudidas de cámara nos permite
hacer es que nos permite especificar algunos parámetros de
vibración de cámara. Me doy cuenta de que hay un gráfico de mi
plano por aquí. Hay un gráfico de eventos
y todo este tipo de jazz es consistente con
otros planos. Pero el corazón de una clase de padres de sacudidas de
cámara es que puedes especificar algunos parámetros de vibración de
cámaras, y luego podemos reproducir esos parámetros de vibración de
cámara. Entonces, lo que vamos
a hacer aquí en el panel Detalles está
bajo root, shake, param,
haga clic en este pequeño desplegable, haga clic en este pequeño desplegable, y queremos establecer esto en el patrón de sacudidas de la cámara
del oscilador de onda . Una vez que lo hagamos, podemos hacer clic en
este como desplegable. Y sí tengo algunos parámetros establecidos antes de tiempo para
los intereses del tiempo. Ven por debajo de esta configuración de
campo de visión F0 v. Ábrelo un par de veces. Queremos establecer nuestra amplitud cinco y nuestra frecuencia de cinco. Y el tipo de desplazamiento inicial
se va a establecer en aleatorio. Más adelante, puedes jugar
con estos parámetros, pero te sugiero que
solo juegues o simplemente sigas en casa. Para que veas
cuanto hace esto. Y luego más tarde
puedes volver atrás y jugar con él y ver cuánto diferentes
valores sacuden las cosas. Bajo la categoría de cronometraje, vamos a establecer una duración
de 0.5 medio segundo. Aaron son tiempo
de mezcla y tiempo de espera de mezcla. Vamos a establecer que
sea 0.2, 5.0, 0.25. Genial. Adelante, guarda esto, y vamos a
saltar a nuestro personaje en tercera persona. Así que volvamos
a nuestro Navegador de Contenido. Planos de personajes de tercera persona. Haz doble clic en tu
ThirdPersonCharacter para abrirlo. Ahora vamos a
saltar a nuestro gráfico de eventos. Entonces ya no necesitamos esta función de modificar la
salud. Y en nuestro evento los grafitos
encuentran algún espacio vacío. Necesitamos una entrada de evento aquí. Entonces un evento de entrada, Hagamos F. Bueno, claro, F2 parece un
buen evento de entrada aleatorio. Y ofrecer esto, vamos
a arrastrar y escribir
un nodo de función llamado
play world camera shake. Aquí con este
nodo de función, mira eso. Es un azul señaló que
es un nodo de función. Podemos especificar una clase. Y aquí es donde entra
nuestro batido de cámara B P porque si hacemos clic en este desplegable. Podemos ranurar en los parámetros de
vibración de la cámara que
acabamos de configurar en nuestro plano de
sacudidas de cámara, bastante práctico. Ahora sí necesitamos
especificar un epicentro. Es decir, ¿dónde queremos
basar esta cámara
sacudida de como, cuál es el epicentro? ¿Sabes cómo los sismos
tienen epicentro? Bueno, los batidos de cámara necesitan un epicentro definido
para ellos también. Para esto, vamos a
decir, Oye,
basemos en los componentes de la cápsula. Es decir, esta cápsula componentes que rodean
nuestro carácter. Vamos a basarlo alrededor del
centro de eso, ¿verdad? Entonces tenemos componentes de una
cápsula. Vamos a arrastrar y soltar esto en la gráfica, obtendrá
una referencia a ellos. Vamos a arrastrarnos fuera de esto al
escribir aún ubicación mundial. Esto devolverá el valor de
las coordenadas x , y y z. Entonces diremos que
es nuestro epicentro esencialmente justo en medio
de nuestro componente de capital. Ahora bien, necesitamos especificar
un radio exterior aquí, esencialmente desde el epicentro, ¿hasta qué punto llega su
cámara en juego? Vamos a sentarnos. 500 es nuestro radio exterior. Apenas mientras nuestra cámara vaya a estar dentro
de ese radio,
que si dejaste la configuración de
tu cámara, por defecto, ese debería ser todo. Pero puedes jugar
con esto, puedes expandirlo si
quieres un poco más allá. Entonces lo que vamos a
hacer es arrastrar fuera de esto. Y voy a traer un nodo llamado spawn sound attach. Ahora podríamos simplemente
generar un sonido aquí, pero solo para mostrar alguna funcionalidad
diferente, vamos a generar un
sonido y luego adjuntarlo. Adjuntarlo dónde? Bueno, aquí lo vamos
a unir a nuestro componente cápsula. Una vez más,
sé que no tenemos que hacer esto. Podríamos simplemente tocar un sonido, pero vamos a seguir adelante y
engendrar y adjuntar ese sonido. ¿Qué sonido queremos aquí? Vamos con una explosión, tipo en explosión
a a la explosión P. Aunque cualquiera de estos realmente
va a funcionar bien. Y alejando
un poco aquí. Vamos a arrastrar fuera de esto y hacer un emisor de
desove en la ubicación. Este es el viejo sistema de partículas. Si quieres usar un sistema de partículas
del Niágara, podrías hacer un
sistema de desove en el lugar. La razón por la que estoy
haciendo emisor de desove es porque sé que tengo el
efecto de partículas de explosión aquí mismo. Pero una vez más, también se puede utilizar en el sistema de partículas del
Niágara. Y en realidad no
quería hacer el
emisor de desove en la ubicación de mi mal, hagamos un
emisor de desove adjunto. Una vez más, solo para
mostrar spawning mid o attach que podemos usar
diferentes nodos de función aquí. Ranura en esa explosión. Ahí está. ¿Dónde queremos
adjuntar esta explosión? Bueno, puedo extender esto desde mi componente de cápsula así. Haga doble clic en ese cable
para introducir un nodo de reencaminar. Y eso debería
casi hacerlo. Ahora bien, estos tres
nodos de función son algo que convertiría en
su propia función. Yo colapsaría estos
en una función. Sí, puedes tener funciones
que conforman otra función. Y la razón por la que
diría que estos tres son válidos para
hundirse en su propia función. Porque ahí hay un
montón de efectos. Esencialmente algo así como los efectos de daño de
un jugador. Vas a tocar
un batido de cámara. Vas a tener
un sonido de explosión y vas a tocar efectos de partículas de
explosión. Entonces van todos juntos. Tiene sentido convertirlos en
un solo nodo. Ahora cuando
colapsemos en una función, voy a estar dejando fuera estos dos y verás por qué
en solo un poquito aquí. Así que voy a hacer clic izquierdo arrastrar resaltar solo
estos tres nodos. Entonces voy a hacer clic derecho
en cualquiera de ellos y voy a colapsar
para funcionar. Entonces eso va a traer un nodo de función como
este como nueva función. Y vamos a darle un nuevo nombre a esto. Entonces sobre en el área de funciones donde creó eso para nosotros, Vamos a golpear F2 en esto, y voy a llamar a esto
simplemente daño de jugador. Jugador dañado f x Eso parece bastante bueno. Ahora puedes ver por encima en
el lado derecho
ya está creado nuestras entradas
para este nodo de función, pero
aquí tenemos un par que son redundantes. Así que en realidad puedo simplificar
esto un poco. Así que permítanme ampliar un poco
mi panel de detalles
aquí. Tengo adjunto al componente y adjunto un componente también. Pero están pegando
a los mismos componentes. Así que en realidad puedo
eliminar uno de estos. Eso va a funcionar bien. Ahora, vas a conseguir este
cable rojo y eso va
a parecer espantoso. Entonces simplemente haga clic derecho sobre esto, actualice el nodo,
se deshará de eso. Podemos deshacernos de
este tipo de aquí mismo. Si quisieras,
podrías renombrar tus entradas pero epicentro y apegadas
a componente o simplemente bien, podría
eliminar esto, ya sabes, simplificar esto un poco más, hacer que esto se vea un
poco limpiador. Algo como esto. Si me sumerjo en esto
un nodo de función, observe lo que tenemos pasando. Tengo los componentes de mi cápsula. La ubicación mundial del componente
católico y enchufarlo al lado de
entrada de mi función. Dentro de mi función. Estos se están pasando
como el epicentro y los dos componentes adjuntos para ese sonido y el emisor. Ahora realmente se
deshizo porque
eliminé esa entrada inferior, los dos componentes adjuntos en realidad necesitan
cablear esta copia de seguridad. Pero nuevamente, lo mismo apegado a los componentes funciona
para ambos de estos. Así que puedes traer algunos nodos
redireccionados aquí para
limpiar un poco esto, así. Y en realidad, voy
a ir así, mantén pulsada la Alt, clic izquierdo. Esta es una configuración válida como esa. Bien, compilar y guardar esto. Volviendo a mi gráfico de eventos, eso se ve bonito y limpio, Vamos a saltar y jugar
y ver cómo se ve esto. Así puedo estar
corriendo por aquí mismo. En realidad déjame establecer
mi opción de depuración a mi personaje ahí para que veas que
esto se dispara. Bien, así que presionando F2, boom, viste que la cámara temblaba
solo un poco, una
especie de
efecto de zoom ahí. Para que pueda moverme
y presionar F2. Y ahora lo que podrías
hacer es si quisieras,
puedes volver
a saltar a tu función que acabas de crear aquí. Podrías cambiar tu sonido, podrías cambiar
tu explosión. Vamos a ir con llama
por el momento, ¿verdad? Llama, lanzallamas. En realidad no lanzallamas. Quiero ir incendios de fuego. Al que quiero ir
con algo así como un incendio en lugar de explosión
haciendo clic en jugar aquí. Cuando presiona F2. La razón por la que elegí fuegos, porque recuerden lo que
estábamos haciendo con ese nodo de
función en particular es que
respondíamos a ese emisor
y lo estábamos adjuntando. Entonces esa es la
diferencia entre solo desovar un sonido y desovar
un sonido y adjuntarlo. Yo quería presumir
eso solo para mostrar algo extra. Bien, de vuelta en nuestro gráfico de
eventos aquí, qué podrías hacer si
no quisieras y
no quisieras mantener todos estos
colapsados a una función. Puedes hacer clic derecho sobre esto y podrías expandir
el nodo así. Y luego te llevará de vuelta
a donde tenías cosas. Querías ver qué
es lo que hay dentro de ahí. Sólo voy a darle a
Control Z para deshacerlo porque me gusta que todo se
derrumbó a una función. Ahora, solo un par de
cosas que quería
mencionar antes de
concluir este video, permítanme volver a sumergirme en mi función dañada de reproductor aquí. Voy a seleccionar estos nodos, controlar C y controlar V. No se
puede, no se puede tener un nodo latente en un
colapso de la función. Lo que va a pasar es
irreal, te gritará. Entonces, si así lo traigo
un nodo de retardo, manteniendo pulsado el clic izquierdo. Entonces, digamos que
quería colapsar los cuatro
en una función. Voy a
resaltarlos clic-derecho, Contraer para funcionar. Me va a gritar
y decir: No podemos hacerlo. Mostrar el registro de mensajes. Vamos a mostrar el mensaje
largo y dice: Oye, retraso no se puede colocar
en el gráfico de funciones. De igual manera, si me
deshago del retraso, vamos a traer un nodo de eventos. Hagamos F ocho. Claro. Intenta traer un
evento de entrada o cualquier evento a tu función de
esta manera , haz clic derecho,
Contraer para funcionar. También vas a recibir
otro mensaje diciendo:
Oye, tampoco puedes tener un nodo de
eventos ahí dentro. Entonces solo para tu información, cuando estás
tratando de colapsar para funcionar. Entonces chicos, ahí lo tienen. Colapsar para funcionar, muy recomendable si
se trata de una colección de nodos que va de la mano y es solo algún
script que repites una y otra vez en varias partes de tu gráfica porque eso
servirá para ofrecer este, te
veremos en la siguiente.
62. Funciones puras e imperfectas: Hola y bienvenidos de nuevo. En este video, nuestro objetivo
es detectar y entender las diferencias entre funciones puras
e impuras. También te mostraremos cómo
puedes designar que es
hacer una función ya sea
pura o impura. Ahora para facilitar
esta discusión, voy a estar trabajando dentro
de mi personaje de tercera persona. Entonces, si quieres seguir el
juego en casa, aquí
es donde te sugiero que tuviste. Y una vez más,
puedes meterte dentro de tu personaje de tercera persona
viniendo debajo de este directorio y haciendo doble clic en tu personaje de
tercera persona. Bien, hablemos de
algunas diferencias entre nuestras funciones puras e
impuras. Bueno, para empezar,
hablemos de las funciones puras. Estas son las funciones
de color verde y aquí hay algunos
ejemplos por aquí. Estos generalmente se usan como funciones
getter que
solo generan algunos datos. Entonces esa es una de las claves
con funciones puras. No tienen ningún pin de entrada o salida de
ejecución. Entonces, si nota nuestros tiempos de
deuda segundos, solo
generaremos
nuestro tiempo en segundos obtenemos la ubicación real, solo
generaremos la suma de las coordenadas x, y y z. No se necesitan
pines de entrada o salida de ejecución para obtener el valor de, en este caso, nuestra
ubicación real o tiempo en segundos. Ahora bien, ¿cuándo corren estos? Ya que no tenemos
pines de ejecución que fluyan a través estos en el lado de entrada
o el lado de salida. ¿Cuándo corren? Bueno, corren cuando se usa el valor de
retorno. Entonces solo para demostrar esto, he conseguido
tick de evento que va
a despegar cada fotograma. Tenemos esto enganchado en un nodo de
función impura de cadena de impresión. Vamos a enchufar esto aquí. Un valor flotante en una cadena. Va a convertir
ese flotador en una cadena. Y lo que va a pasar
aquí es cada fotograma, se va a disparar hasta esta cadena de impresión para imprimir
algo en la pantalla. Cuando lo haga,
va a llegar nuevo por aquí para obtener
nuestro tiempo en segundos. Esto se ejecuta, se ejecuta cuando se invoca su valor de retorno. Entonces déjame
seguir adelante y jugar aquí. Se puede ver como esto está
regresando nuestro tiempo de juego en segundos y está contando
hacia arriba desde cuando empezamos a jugar. Ahora algo más a tener en cuenta sobre las funciones
puras es
que prometen no
modificar el estado o los miembros de una clase objetivo de ninguna manera. En nuestro ejemplo aquí va a ser nuestra ubicación de actor get. El objetivo aquí es un actor. Y debido a que estamos dentro de nuestro plano de
personaje en tercera persona, el objetivo aquí siendo yo mismo, sería nuestro
personaje de tercera persona. Lo que notarías con este nodo de función pura es que no va a cambiar en absoluto el
estado de este actor. Simplemente va a devolver la ubicación de nuestro
personaje de tercera persona. Contraste esto con nuestra función
impura de ubicación de actor set. No, esta azul. Este puede cambiar el
estado de nuestro objetivo, nuestro actor o
personaje en tercera persona aquí. Y puede cambiar el estado
cambiando la ubicación del mismo. Entonces esa es una de las
diferencias clave también. Entonces con una función pura, haces una pregunta, cuál es la ubicación de un actor, por ejemplo, y obtienes una respuesta y una ubicación
XYZ en este caso. Ahora, sólo para presumir algunas de estas funciones puras dando salida a algunos datos que se solicitan. Ya has visto que los
usuarios obtienen tiempo en segundos. Permítanme simplemente enchufar
esto, obtener la ubicación real. Nuevamente, esto va a estar
disparando de cada fotograma. Y porque voy
a estar moviéndome, vas a
ver esta actualización. Conseguir la ubicación de mis actores,
la terceraPersonaPersonaje. Estas son las coordenadas donde el tercer personaPersonaje actualmente se encuentra
el tercer personaPersonaje
dentro del mundo. Entonces podría simplemente dar salida al nombre para mostrar
de nuestro controlador de reproductor. Así. Una vez más, nuestro
controlador de reproductor es como las cuerdas de títeres que controlan
nuestro maniquí aquí mismo. El controlador del reproductor, al
igual que un repaso aquí, está configurado en la configuración de tu
proyecto. Esto es un poco
tangente bajo mapas y modos. Entonces el controlador del reproductor que
hemos configurado en nuestros mapas y
modos y la configuración del
proyecto es ese controlador de jugador bp. Entonces solo estaba
dando salida a ese nombre. Una vez más con una función pura, haces una pregunta. Lo que es un actor
es la ubicación, por ejemplo, y obtienes una respuesta. Y ahora volvemos nuestra atención
a las funciones impuras, es
decir, las funciones de
color azul. Una cosa que notarás
de ellos es que sí tienen ejecución en pines y pines. Y eso significa que porque
tienen una ejecución en pin, debes ejecutarlo explícitamente conectando algún cable en él. Ya sea que tengas o no
algo saliendo del otro lado, eso es
completamente opcional. Pero para que esto
alguna vez haga algo, hay
que tener algún
cable fluyendo hacia él. Otra diferencia entre
una función impura versus la función pura. Y me acabo de dar con
esto hace un momento, es que una
función impura puede pero
no tiene que modificar
el estado de una clase. Entonces, en el caso de nuestra ubicación de actor
set aquí, esto podría modificar el estado. De nuestro objetivo, nuestro yo aquí
son terceraPersonaPersonaje, y modificaría nuestro estado
dándole una nueva ubicación. Nuevamente, esta función
es impura porque cambia el estado que es
la ubicación de la clase. En este caso, nuestro personaje en
tercera persona dentro del mundo. Entonces ahora la pregunta se convierte
con son funciones creadas, ¿cómo las haces
puras o impuras? ¿Cómo lo designa? Bueno, con la función, selecciónala por aquí y
voy a seleccionar nuestra función player damage fx. Si lo seleccionas
en el panel Detalles, tienes una casilla de verificación
especificando si esta va a ser una función impura o
una función pura por defecto, si arrastro y suelto esto, puedes verlo como de color azul. Es una función impura. No obstante, si tuviera
que marcar esta casilla, podría convertirla en
una función pura. Entonces esta es la versión impura. Déjame duplicar esto rápidamente así voy a hacer clic derecho
sobre este reproductor. El daño afecta la función. Voy a duplicarlo. Control D es la
tecla de acceso rápido para eso. Y voy a llamar a
este jugador FX dañado. Y voy a
poner un espacio aquí y simplemente llamar a esto puro. Bien, y puedes ver que
abrió una pestaña completamente nueva aquí. Lo que voy a hacer es con
esta función seleccionada, voy a seleccionar la
opción pura aquí mismo. ¿Bien? Entonces ahora aparece nada ha pasado aquí en nuestra gráfica de
funciones en sí. Podría cerrar esto, pero voy a volver
a nuestro gráfico de eventos aquí y arrastrar y soltar a este tipo
en la gráfica. Una vez más, las funciones puras son verdes versus nuestras
funciones impuras son azules. Tenga en cuenta que este no tiene pines de
ejecución en ninguno de los lados, mientras que la
función impura sí. Ahora bien, esta función
aquí arriba no nos sirve de la manera en que la hemos
diseñado porque no
tenemos forma de llamarlo a esto. Y no da salida a
ningún tipo de datos. Entonces esta no es una gran función para convertirse en una función pura. Uno no sirve para nada
en este foro. Así que voy a eliminar esto. De hecho, voy a eliminar esta función, no la necesito. Y voy a
tratar de traer un ejemplo donde esto
pueda tener sentido. Para que esto se
demuestre, se demuestre, voy a duplicar nuestra
función modificar la salud aquí mismo. La razón por la que vamos a
modificar nuestra función de salud aquí es porque
recuerdas dentro de aquí, déjame
hacer doble clic sobre esto. Estábamos devolviendo un valor. Entonces este podría ser un
candidato donde quizás
quisiéramos convertir esto en una función pura. Pero no voy a
destruir esta. Simplemente voy a hacer
clic derecho sobre esto. Y vamos a duplicar
esto y voy a llamar a esto mi Modificar salud menos. Y lo que entonces voy a hacer aquí se acabó en
el panel Detalles, marca esa casilla para que sea pura. También voy a modificar algunas
cosas sobre esto también. Ahora, tengo esta configuración para pasar esto por referencia
en el video anterior. Voy a desmarcar eso
y sólo voy a simplificar un poco esta gráfica de
aquí. Así que me voy a deshacer de este nodo
de incremento así. Voy a enchufar
esto a nuestra sucursal. Vamos a tomar nuestro
talón o montaña dañada, enchufar eso aquí. Todo eso se ve bien. Justo aquí. Vamos a enchufar esto
aquí y nos estamos poniendo
un poco atrás de la
forma en que lo teníamos originalmente. Entonces esa va a ser
nuestra función pura. ve bien compilado en eso. Volvamos a
nuestro gráfico de eventos. Y vamos, vamos a traer, tengo mi llave F2 aquí mismo. Yo sólo voy a robar
este nodo de eventos de aquí mismo. Lo que voy a hacer es
que voy a traer en nuestra salud modificar pura, pura función así. Y observe que
no hay pines de entrada,
pines de entrada o
ejecución de salida. Y voy a imprimir una cuerda. Así que voy a robar
este nodo de cadena de impresión. Ya está aquí. Cuando presione F2, voy a imprimir algo en la pantalla. Voy a enchufar esto, va a convertir mi salud
actual en una cadena. Y va a
modificar algo de salud. Necesito alimentar esto alguna cantidad de
salud o daño por la que
queremos modificarlo. Entonces vamos a ayudar a agregar. Este actualmente está configurado en uno. ¿En qué se encuentra nuestra salud actualmente? Es a las diez. Entonces eso está bien. Déjenme
llevar mi salud para agregar. Voy a enchufarlo
a su compilación. Vaya, si no
quería hacer eso. Sigamos adelante y juguemos aquí. Y no estoy
cargando el medidor en absoluto ahora mismo, eso no me
importa para nada. Así que estoy
cargando es la impresión que vamos
a ver en la pantalla. Entonces presionando F2, mira bien sobre dónde está
el cursor de mi mouse, 11121314. Nuevamente, esto está configurado para
simplemente dar salida a nuestra salud
actual. No tenemos que cablear en
ejecución dentro o fuera de ella. Por lo que simplifica un poco
nuestra gráfica. Y de hecho, esa es
una de las razones por las que querrías
usar una función pura. Simplemente hace que un gráfico sea
más fácil y limpio de leer. Tienes menos
cables de ejecución para conectar. Además, siempre devuelven los mismos resultados predecibles
siempre y cuando cualquier
insumo, en este caso, nuestra salud para agregar, mismo, vas a obtener el mismo resultado predecible. Pero la mayor razón para usar una función pura sobre una impura. La razón principal por la
que querría
convertir una en una función
pura son los beneficios del
compilador que garantizan código
más optimizado
detrás de escena. No te aburriré
con los detalles, pero puedes
buscarlo en línea si quieres los detalles jugosos y aburridos. Bien chicos, eso va a
hacer para ofrecer esta, la diferencia es entre funciones
puras e impuras. Nos vemos en el siguiente video.
63. Biblioteca de funciones: Hola y bienvenidos de nuevo a todos. Bueno, hasta este punto en
nuestra discusión de funciones, hemos aprendido a crear algunas funciones dentro
de un plano. Y eso está todo bien
si tienes una referencia a ese plano en
el que se creó la función. Sin embargo, qué haces
si quieres crear una función y tenerla accesible en todos
tus planos. ¿Qué puedes hacer entonces? No quieres tener una referencia
específica
a un plano. Solo quieres que
sea una
función de uso general que esté
disponible en cualquier lugar. Bueno, en ese caso,
se quiere crear algo conocido como biblioteca
de funciones. Nuestro objetivo en este es aprender
a hacer eso
en lo que es incluso una
biblioteca de funciones. La biblioteca de funciones es un
lugar para almacenar funciones que pueden ser accesibles
desde cualquier otro plano. Bien, de vuelta aquí en
nuestro navegador de contenido, Sigamos adelante y creamos
nuestra biblioteca de funciones. Y creo que una carpeta
Blueprints bajo la categoría de scripting
tendría sentido para nosotros. Así que vamos a hacer clic derecho en
él algún espacio vacío. En la categoría de planos, tenemos este fly-out
in, en el menú desplegable. Dice biblioteca de
funciones de blueprint. Ese es el que queremos seguir
adelante y hacer clic en eso. Vamos a darle un nombre a esto. Voy a llamar a esto mis funciones de
subrayado y voy a
todos los topes solo para que
sea muy odioso. Y luego voy a hacer doble clic
sobre esto para abrirlo. Ahora, una vez que hagamos
eso, nos va a incitar a
crear una función de inmediato. Y tiene una pestaña de ese nombre
coincidente de inmediato. Para nosotros, voy a llamar a
esta función estamos a punto de
crear material de malla de cambio. Y esta función va a hacer exactamente como sugiere el nombre. Ahora, voy a agregar un par de entradas a nuestro nodo de entrada aquí que
podamos seleccionarlo o seleccionar la función en sí te
permitirá hacerlas. Entonces el primer insumo que
voy a agregar se va a llamar actor. Y aquí vamos a cambiar
el tipo de entrada para ser simplemente un actor. Entonces, bajo tipos de objeto, simplemente
hice una
búsqueda de actor. Bajo tipos de objeto, actor, queremos una referencia de
objeto actor. Y entonces nuestro segundo
insumo que queremos aquí, crear otro se
va a llamar material. Y vamos a
cambiar este tipo para que sea simplemente tipo de material. Y bajo el
material de tipos de objeto en el menú desplegable, vamos a cambiarlo
a una referencia de objeto. Bien, entonces esas
van a ser nuestras dos entradas. Aquí vamos a tener
una salida. Entonces voy a hacer clic en
este botón más. Al hacerlo, agregamos un nodo de
retorno de inmediato. Llamemos a esta salida un signo de interrogación de cambio
exitoso. Y entonces vamos a darle a
esto un tipo de booleano. Así que vamos a dar salida en el otro extremo de este nodo de
función ya sea que
cambiemos o no con éxito
el material de nuestra malla. Así que crea un
poco de espacio aquí vamos a estar agregando
algunos nodos intermedios. Lo primero que
vamos a hacer es poder seguir adelante y
romper este cable aquí. Voy a mantener pulsada la tecla
Alt y hacer clic izquierdo. Vamos a alargar de nuestro aporte de actor
y vamos a averiguar si nuestro actor es
un actor de malla estática. Entonces vamos a emitir
al actor de Static Mesh. Entonces esencialmente
haciendo la pregunta, oye actor que estamos
enchufando a este nodo de función, ¿
eres un actor de malla estática? Y si es así, queremos hacer
algo y si no, queremos hacer otra cosa. Ahora lo que
queremos hacer en primer lugar, es que queremos alternar una variable si
va a ser verdadera o
falsa o no en función de si este elenco falla o es cierto que
es un actor de malla estática. Entonces necesitamos crear
una variable aquí. Tenemos una sección
llamada variables locales. Ahora, vamos a
estar hablando de qué es
más
una variable local en el siguiente video, mucho más en el siguiente video. Así que solo juega
ahora mismo y luego llegaremos a las diferencias entre
las variables
locales y de clase. En el siguiente video, vamos a estar
creando una variable aquí, una variable local. A éste
se le va a llamar éxito. Ful, cambiar signo de interrogación. Y ahí le di la llave equivocada. Así que déjame intentarlo de nuevo. Éxito. Yo solo lo llamaré signo de
interrogación de cambio de éxito ,
ya es bastante bueno. Y voy a arrastrar y
soltar esto encima de eso, voy a poner pin de ejecución, arrastrar y soltar en
el elenco falló. Lo queremos dos veces. Entonces, si de hecho es un actor de malla estática, se disparará fuera de este cable de ejecución de
exhibición. Y vamos a
decir, sí, el éxito, lo
hicimos con éxito lo cambiamos. Y si falló,
vamos a decir que no, no lo
cambiamos con éxito. Así que eso va a ser falso. A continuación vamos a simplemente
arrastrar fuera de aquí y escribir play sound 2D. Vamos a reproducir un efecto de sonido de
confirmación de sonido
o un efecto de sonido fallido. Para aquí arriba, si tiene
éxito en cambiar, vamos a llamar a la compilación de
sonido éxito. Esa es la que estamos buscando. Ese está en las carpetas
del motor. Entonces, si no ves que
estás jugando,
puedes hacer clic en ese
pequeño engranaje ahí, encender el contenido de tu motor. Entonces vamos a tocar ese sonido
vamos a golpear Control C, Control V para pegarlo
aquí abajo. Si este casting falla, vamos a hacer
fallido, compilar falló. Cualquiera de estos
va a funcionar bien. Entonces tenemos que hacer un
poco de trabajo aquí abajo. Entonces, lo que queremos hacer
aquí es sacar a
nuestro actor de malla estática
y estamos buscando los componentes de malla estática. Por lo tanto, los actores de malla estática consisten en un componente
de malla estática. Eso es lo que
le convierte en una malla estática. Y fuera de esto,
vamos a arrastrar y escribir el material del set. Hay un nodo
que estamos buscando. Y el material al que queremos
cambiarlo va a ser lo que
introduzcamos en esta función. Así que vamos a
arrastrar aquí mismo, voy a enchufarlo aquí, pero voy a hacer doble clic
en este cable para traer un re, nodo de ruta. Bien, ya casi terminamos
aquí, ya casi terminamos. Entonces lo que vamos a hacer aquí continuación es que vamos
a tomar esta salida. Vamos a enchufar esto nuestro material de set porque si
hemos determinado que
es un actor de malla estática, queremos jugar esto y de
hecho cambiar el material. Vamos a tapar esta
copia de seguridad aquí en el reparto falla. No es un actor de malla estática. Vamos a pasar por
aquí y sólo vamos a regresar
al nodo devuelto. No queremos cambiar
el material en este caso. Ahora para este
cambio exitoso variable booleana, bueno, solo podemos enchufar
el resultado de esto. Lo estamos poniendo aquí
o aquí. El resultado de esto,
podemos obtenerlo y simplemente enchufarlo ahí. Entonces esa va a
ser nuestra función, nuestra función de préstamo que
va a existir y son mis funciones biblioteca. Déjame seguir adelante y compilar
esto y ahorrar enseguida. A continuación, pasemos a nuestro
Blueprint de terceraPersonCharacter porque tenemos algo de trabajo que hacer
dentro de ahí para mostrar esta función. Entonces, si olvidaste dónde está eso, planos de
contenido en tercera persona hacen
doble clic en eso para abrirlo dentro de nuestro
personaje de tercera persona. Una vez que llegues
al Gráfico de Eventos, haz clic con el botón derecho en algún espacio
vacío en simplemente escribe mis funciones. Y se puede ver a medida que
empezamos a
teclearlo, muestra nuestra biblioteca de funciones
debajo de la sección de clase. Entonces bajo la clase, mis funciones, biblioteca de funciones, ahora
tenemos acceso a esa
función que creamos. Está disponible dentro
de este plano y cualquier otro plano. Fossa, da click sobre esto, podemos ver cómo es nuestra función
actualmente. Toma un cable de ejecución en el lado de entrada,
puede emitir uno. Puede tomar un actor, puede tomar un material, y puede emitir si cambiamos con éxito o
no el material en un actor de entrada volverá a esto
en solo un poco. Pero por ahora, borra eso. Vamos a dirigirnos
a nuestra pestaña de ventana gráfica, y vamos a agregar un
nuevo componente aquí. Así que sigamos adelante y seleccionemos
nuestro Componente Cápsula. Y bajo esto
vamos a agregar un componente. Y vamos a agregar
un colisionador de esfera, colisión de
esfera. Ahora bien, esto va
a actuar como una especie de mano invisible, si se quiere. Entonces voy a darle un nombre a esto
y llamarlo mano simulada. Y voy a
colocarlo un poco delante de nuestro personaje aquí. Entonces voy a
cambiar la ubicación x para que sea, diremos 60. Y voy a cambiar la
escala universalmente en X,
Y, y Z 2.5, algo un poco más pequeño porque está apegada a
nuestro componente católico. Cuando giramos nuestro
personaje alrededor, este va a estar
rotando también alrededor. Lo que vamos a hacer
es que vamos a estar comprobando para ver si
esto se está superponiendo algo y luego
vamos a cambiar lo que sea que se superponga
eso va a ser, si se superpone, un silla, vamos a cambiar esa malla
estática en una cuota de oro. Vamos a cambiar el
material de esa Malla Estática. Una propiedad más que sí
quiero configurar aquí está debajo de la sección de
renderizado, quiero desmarcar oculta
en los juegos para que podamos ver dónde está
esto en el mundo. Bien, para que con
eso todo configurado, podamos salvar esto, saltar de nuevo a tu nivel aquí. Vamos a colocar algunas mallas
estáticas en nuestro nivel. Ahora tengo en
mente algunos
específicos ahí en la carpeta de contenido del
agitador. Realmente cualquier
medida estática va a hacer. Pero debajo de la carpeta Props, voy a colocar una silla
está por ahí un poco. Voy a poner a uno de estos tipos rueda que alrededor
un poco y voy a colocar, ¿qué tal un cilindro básico C. Podemos encontrar uno de
esos debajo de aquí, o la ficha de actores de lugar, pero estoy va a venir
justo debajo de aquí formas. Hagamos un cilindro. Y sólo voy a
escalarlo un poco así. Con
los tres seleccionados, voy a mantener presionada la
tecla Control y hacer clic con el botón izquierdo. Por lo que
los tres son seleccionados. Quiero establecer
algo en cada uno de ellos y es para asegurar que generen eventos de solapamiento para que podamos
detectar que los estamos superponiendo con nuestra
cita, unquote simulada mano. Entonces con todos los seleccionados, simplemente
puedo escribir en
la barra de búsqueda aquí. Arpillera. Lo que busco es
generar eventos de solapamiento. Así que adelante y vuelve a
comprobarlo, asegúrate de que tienes
los tres seleccionados. Y entonces lo que
vamos a hacer es saltar dentro de nuestro Blueprint de
personaje en tercera persona. Así que dirígete ahí atrás. Personaje de tercera persona,
dirígete al Gráfico de eventos. Y queremos hacer algo, pero nuestra
mano simulada se superpone, así que encuentra algún espacio vacío. Y con tu mano simulada seleccionada aquí puedes
hacer clic derecho sobre esto. Vamos a agregar
un evento para cuando
empecemos a superponer
ese componente. Ir a la cabeza a nuestra gráfica aquí
abajo porque
quiere, está bien. Entonces lo que vamos a hacer es
salir de nuestro otro actor, vamos a
alargar y vamos a cambiar el material de malla. Y simplemente puedo escribir cambio o comenzar a
escribir cambio. Y es lo suficientemente inteligente como
para saber que, oye, ¿ estás tratando de
encontrar esa función de
material de malla de cambio que vive dentro de tu biblioteca de funciones? Sí, lo hace. Ahora tenga en cuenta que esto puede dar salida, esta
mano simulada era algo se superpone a lo que puede
dar salida y otro actor. Y en este caso
va a dar salida a una referencia de objeto actor. Esta entrada de actor sobre el material de malla de
cambio busca tomar en una referencia de objeto
actor. No es eso conveniente. Entonces vamos a
detectar si se está superponiendo a algún otro actor. Y luego vamos a
cambiar el material. Voy a cambiar el
material para que simplemente sea oro. El oro vive en el contenido R star. Y lo que vamos a hacer aquí es
traer un nodo de sucursal. Voy a teclear sucursal. Alternativamente, si elimina eso y arrastra fuera de aquí, esta es una salida booleana. Si tecleo en rama aquí, conectará ambos cables en uno. Es bastante práctico. Entonces simplemente vamos a imprimir cadena. Traeré un par de
estos Control C, Control V. Y estos van
a ser nuestros guiones. Entonces aquí arriba, si
esto tiene éxito, vamos a
imprimir en frío. Aquí. Vamos a
teclear sin cambios. Bien, adelante y
compile y guarde eso. Vamos a regalar esto a un
dramaturgo. Entonces, al hacer clic en el botón R más, estableceré
nuestro objeto de
depuración para
que sea nuestro terceraPersonCharacter que se ha generado y expandiendo
esto ligeramente. Bien, si miro
frente a mi personaje, ahí está esa esfera roja, esa es mi mano simulada. Se puede ver que gira alrededor, gira junto con mi personaje. Entonces cuando me superpongo la silla, ves que sí cambió
el material bastante dulce. Cambió el material allí, y nuestro cilindro
lo cambia allí también. Esa es una buena
función global, si se quiere. Podemos usarlo dentro de nuestro
terceraPersonaPersonaje aquí. Pero también mostremos
cómo podrías usar esto dentro de tu Plano de Nivel. Porque después de todo, ¿cuál es
el punto de crear una biblioteca de funciones
si no puedes acceder a las funciones dentro
de ella desde cualquier lugar? Volviendo a nuestra pestaña de mapa de
pruebas de nivel justo aquí. Vamos a abrir el plano de
nivel y sólo voy a
traer y la clave de entrada. Cualquier tecla de entrada lo hará. Estoy haciendo clic con
el botón derecho en algún espacio vacío. Vamos a probar la llave siete. Y pensará que estoy
usando la llave siete para cualquier otra cosa aquí ¿lo sé? Por cierto, si haces clic debajo tu pasto aquí y
expandes el pasto,
te mostrará qué diferentes
eventos tienes ahí dentro . Entonces para la clave siete, voy a arrastrar fuera de aquí, hacer una búsqueda de material de malla de
cambio. Y una vez más, porque
esta función existe en nuestra creada una biblioteca de
funciones y la
podemos encontrar en el Blueprint de
Nivel. Claro. Y necesito abastecer a
un actor aquí. Entonces, escojamos a
uno de nuestros actores. Voy a
asegurarme de que tengo mi cilindro aquí seleccionado. Saltando de nuevo a
mi Plano de Nivel, manteniendo pulsado el clic izquierdo. Vamos a enchufar eso ahí. Y voy a cambiar
el material aquí. Vamos a adoquines. Algo adoquinado. Bien, compilar, guardar. Juguemos. Establezca nuestro objeto de depuración
a nuestro nivel. Trae de vuelta nuestro mapa. Y claro, puedo
tocar a estos dos. Todavía van
a cambiar el oro. Ahora bien, si toco el
cilindro aquí, eso se convertiría en oro
porque eso es todo lo que está configurado en mi Blueprint de
personaje. Pero si presiono la tecla
siete aquí, podemos ver que la
convertiremos en adoquines. Entonces una gran función global
que hemos creado ahí. Bien, terminemos este video
hablando de los pros y los
contras de las funciones en
una biblioteca de funciones. Bueno, los pros
incluirían que puedes acceder a esa función desde
dentro de cualquier plano. Es un gran ahorro de tiempo. Si es una función que puedes
usar en muchos lugares, ya sabes, no
tienes que
escribir el mismo script en múltiples lugares, varias veces,
ese tipo de cosas. Ahora los contras, los contras
incluirían tener más difícil hacer referencia a datos específicos del
plano, por ejemplo, mi tercera persona
Carácter Blueprint. Si agrego alguna función como digamos tal vez una
función de modificar la salud que era muy dependiente de algunas variables y vivía dentro de aquí. Bueno, ese tipo de
función estará
mejor dentro de ese plano
específico. O si tuviera alguna
función que fuera muy dependiente
de algunos de los componentes dentro de un plano dado. Esa función
estaría mejor en una clase Blueprint
misma en lugar de una biblioteca de
funciones. Bien chicos, eso
va a hacerlo todo por esta en esta discusión
de una función bibliotecas. Nos vemos a todos en el siguiente video.
64. Variables locales: Bienvenida. En este video, nuestro
objetivo es
familiarizarte con el concepto
de variables locales. Ahora, en este video, desglosaremos qué son las variables
locales, diferencian de las variables de
clase, cómo podemos crearlas y usarlas, y qué tipo de cosas
necesitas saber
con respecto a su accesibilidad
dentro de los planos. Ahora el último video
usamos una variable local, una llamada Cambio de éxito, una variable local booleana. Y mencioné que
volveríamos a ello en un video futuro, ese es este video futuro. Ahora bien, anote algo
sobre las variables locales. Solo podemos crear variables
locales aquí
dentro de funciones, dentro de la biblioteca de funciones,
la biblioteca de funciones blueprint. No podemos crear variables
de clase. Solo tenemos una sección
variable local. Entonces, ¿de qué carajo
estamos hablando aquí? Variables de clase versus variables
locales? Bueno, para ayudar a facilitar
esta discusión, tengo abierto mi
Plano de PersonaTerceraPersonaCarácter. Salta hasta aquí. Y si revisamos en nuestro panel ThirdPersonCharacter
Blueprint, tenemos una sección de variables. Estas son variables que
pertenecen a nuestra clase de caracteres, por lo que podemos llamar a estas variables de
clase. Pero notarás algo aquí en el panel Mi plano. No vemos variables
locales aquí en
la biblioteca de funciones, vemos una categoría
llamada variables locales. Dónde está en un Plano de
Clase, solo
vemos una sección variable. Bueno, para poder
ver las variables locales, hay
que tener
seleccionada una función o también su script de
construcción. Entonces, si selecciono mi función Modificar
salud aquí mismo, hagamos doble clic sobre
eso para abrirla. Habrás notado que en
cuanto hice esto, ahora
tengo acceso a una sección de variables locales
aquí abajo. Si
salgo de aquí, vuelve a mi Gráfico de Eventos. Tenga en cuenta que las
variables locales desaparecerán. Ya no está ahí. Bien, así que volvamos a sumergirnos en nuestra función de modificar la salud. Bien, ahora hablemos de
algunas de las diferencias entre variables de clase
y variables locales. Bueno, para empezar,
cuando estás creando una variable aquí mismo en
el panel Mi Blueprint, estás creando
una variable de clase, una que pertenece a
esta clase padre. Ahora, cualquier variable que
desee obtener o establecer de otro blueprint debería
ser una variable de clase. Ahora, solo para dar
un ejemplo de eso, digamos en tu Blueprint de
Nivel, tenías una referencia a tu personaje de tercera persona
y querías
modificar la variable de salud de tu
personaje en tercera persona. mejor hay una zona
dentro del nivel que hace daño o tal vez cura a la
tercera personaPersonaje. Bueno en ese caso,
para poder acceder a nuestra
terceraPersonaPersonaje es variable de salud desde dentro
del Plano de Nivel. Querría asegurarse de
que esta variable de salud existiera como una variable de clase. Ahora en cuanto a las variables locales, se
pueden crear dentro
de una gráfica de funciones. Las variables locales solo son visibles para la función
en la
que fueron creadas y no otras
funciones o el gráfico de eventos. Ahora vamos a seguir adelante
y crear uno aquí dentro de nuestra modificar
una función de salud. Ahora podría crear uno haciendo
clic en este botón
más justo aquí bajo la categoría de
variables locales. No obstante, voy a crear uno haciendo clic derecho sobre un pin. Siempre y cuando
intentes promover
a una variable dentro
de una función, tienes la opción de
promover a una variable local. Entonces voy a hacer clic
derecho aquí mismo debajo mi pinza flotante Tmax. Y haciendo clic derecho,
vamos a promover a una variable local que
va a crear esta
variable aquí mismo. Entonces llamemos a esto
mi salud máxima. Y lo que
notarás ahora es que esta variable local no existe en ninguna otra gráfica de
funciones aquí, si entro en mi player
dañó la función fx, haciendo doble clic sobre esto, ese local
no se puede encontrar. De igual manera, si iba a hacer clic derecho
dentro de este reproductor dañó la función y
busco salud máxima. No está disponible aquí. Si voy a mi
gráfica de eventos y la busqué, no
veo ninguna variable local aquí
abajo y
o haga clic derecho, max, la salud no está aquí también. De hecho, si desmarca
sensible al contexto, no aparece. Esta
variable de salud máxima dentro de Maya modificar la función de salud es
local solo para esta función. Y si ya no la ves
aquí, puedes hacer clic en esta
pequeña flecha desplegable y
te mostrará dónde está. Una vez más. Ahora en este punto
tal vez te estés preguntando, cuál es el punto de las variables
locales. ¿Por qué siquiera los necesito? ¿Por qué puedo crear todas las variables de
clase y usar esas variables locales
ayudan a reducir el desorden
para cosas que
solo son relevantes dentro del
contexto de una función? ayudan a reducir el desorden
para cosas que
solo son No desea
llenar una enorme lista de variables de clase aquí cuando algunas de hecho solo pueden ser necesarias
dentro de una función dada. Entonces por esa razón, razones
organizacionales, es una buena idea simplemente
crear una variable local que ayude a mantener
las cosas limpias y limpias. En segundo lugar, también ayuda a
protegerte de tus propios errores. Aquí tengo dos variables. Tengo salud y
salud máxima que son muy similares. Ahora a lo mejor quiero
asegurar que, oye, nunca
podré modificar
mi salud máxima. Sólo va a ser accesible desde
dentro de esta función. Bueno, ese es un buen
candidato para
convertir eso en una variable local
para asegurar que no
modifique accidentalmente esta variable desde dentro de otro blueprint. Bien, vamos a mostrar esto un poco más allá creando una nueva función
para empezar aquí dentro de nuestro
ThirdPersonCharacter. Entonces, bajo la categoría de funciones, vamos a agregar
una nueva función. Voy a llamar a esto turbo run, que va a hacer exactamente lo
que crees que va a hacer. Ahora dentro de aquí, lo que
vamos a hacer es traer cualquier referencia a nuestro Componente de Movimiento de
Carácter. Dentro de nuestro componente de
movimiento de personajes, tenemos acceso a un parámetro
llamado velocidad máxima de caminata. Queremos hacer algo
con nuestra velocidad máxima de caminata. Entonces se está
secando aquí y trae una referencia a nuestra velocidad
máxima de caminata. Vamos a obtener ese valor, que por defecto
aquí comienza en 500. Entonces lo que vamos a hacer es que
vamos a arrastrar un aquí, presionar el botón más, vamos a agregarle
algo. Entonces vamos a establecer
nuestra velocidad máxima de caminata. Así que arrastrando de nuevo el movimiento de nuestro
personaje, establece la velocidad máxima de caminata. Vamos a ir
así y así. Entonces ahora queremos agregar una variable
local con el
fin de determinar cuánto
de un impulso de velocidad
queremos darle a nuestro personaje
cuando corremos terribles. Entonces esto es lo que voy a hacer. Voy a agregar el valor
aquí mismo, 2000. Y luego voy a hacer
clic derecho sobre este pin. Vamos a
convertir esto en una variable local, así que vamos a promover eso. Y vamos a ver
eso poblado aquí abajo. Vamos a darle un nombre
llamado turbo speed boost. Y ahora se puede ver porque lo
promovimos con ese valor
ya establecido ahí, va a establecer ese valor
justo ahí también. Entonces ese es un pequeño
truco práctico que me gusta mucho. Bien, vamos a compilar eso. Asegúrate de que eso se
vea todo Skippy. Entonces saltemos a
nuestro gráfico de eventos. Y voy a encontrar
algo de espacio vacío aquí. Y vamos a traer
en un evento de entrada. Veamos qué
tenemos disponible aquí. Ahora hemos tenido acceso
a muchas cosas diferentes. Voy a hacer clic con el botón derecho.
Nosotros haremos las dos claves. Claro. Vamos a hacer entrada
o en realidad escribir en el teclado a la derecha allí mismo. Trayendo una llave de dos. Fuera de esto, vamos a arrastrar y soltar nuestra ejecución de terminal. Y si soltamos la clave, lo que queremos hacer es
que queremos traer así nuestro
Componente de Movimiento de Carácter. Y entonces vamos
a arrastrar fuera de aquí, hacer otro set, máximo, velocidad de caminata. Recuerda que el
valor predeterminado era 500, así que volvamos a establecerlo 500 tan pronto como
liberemos las dos claves. Entonces este va a ser
nuestro script de Turbo run. Así que aviso son terribles
ejecutar la función aquí mismo. Tiene esa
variable local dentro de ella. Podemos hacer doble clic
sobre eso, eso
saltará a esa función. Tenemos esta velocidad turbo,
impulso, variable local. Bien, ahora vamos a seguir adelante
y darle una jugada a esto. Voy a compilar aquí,
guardar y jugar, establecer nuestra depuración. Objetarse a nuestra
terceraPersonaPersonaje. Podemos correr por ahí
muy bien luciendo bien. Sin embargo, cuando
presiono las dos teclas, hacemos zoom muy bien. Estamos terribles corriendo
y lo libero y me despacio hacia atrás. Para resumir aquí, puedes buscar y encontrar
variables locales desde dentro de la gráfica que fueron
creadas son terribles correr aquí podríamos buscar y
encontrar esta variable local. No se puede buscar y
encontrar variables locales dentro
del gráfico de eventos
del plano en el que
se crearon dentro. Entonces, en el
gráfico de eventos de aquí mismo, no
podemos encontrar esa variable
local. Tampoco puede
buscar y encontrar esta variable local son variables locales turbo
run aquí. No puedes encontrar que si lo
buscas dentro de
otro bucle, otro blueprint, incluso si
tienes una referencia a nuestro terceraPersonCharacter
aquí
no puedes encontrar una referencia a esto. Ahora, una última nota
sobre las variables de clase. Esto vale la pena señalar que
si hace clic en este botón de clase por defecto dentro
de cualquier Blueprint. Cualquier clase de Blueprint,
tienes acceso, lo siento, no
Configuración de clase, clase predeterminada. Tienes acceso a todas
tus diversas variables de clase. Aquí están justo encima
en el panel Mi Blueprint. La salud puede saltar, etcétera. En nuestro panel de Detalles, podemos encontrarlos todos
aquí también. Tenga en cuenta que si
tuviera que cambiarlo aquí, diga que íbamos a cambiar
nuestra salud de diez a decir 100, Enter. Y ahora iba a seleccionar
mi variable de salud aquí. Se va a actualizar
ese valor predeterminado. Entonces no importa
donde lo cambies. Puedes cambiar tus
valores variables desde aquí o la sección de valores predeterminados de clase pensé
que también lo señalaría, ¿verdad? Eso lo hará todo
por este video. Nos vemos en la siguiente.
65. Funciones cosas que debe saber: Bienvenido de nuevo. En este video, nuestro objetivo es cubrir
algunas cosas realmente buenas que hay que saber sobre el trabajo
con funciones. Ahora bien, estas son
cosas que no necesariamente justificaban
un video completo, pero que sin duda deberían
tocarse
al discutir el
tema de las funciones. Para este video,
voy a estar
abriendo una variedad de planos, a nivel de tercera
personaPlano a nivel de personaje los gustos. Así que voy a comenzar mi contenido de
Blueprint de personaje de tercera persona, planos de
tercera persona. Lo primero que
vamos a tocar aquí es cómo depurar una función. Ahora bien, esto va a ser algo a lo que más adelante
en el curso voy a estar dedicando todo
un módulo, pero vale la pena
mencionar aquí también. Entonces aquí tengo un guión
muy sencillo. Cuando presione la tecla dos, voy a hacer correr a mi
personaje terrible. Y cuando
lo libere, voy a
volver a mi velocidad de movimiento
normal. Ahora puedes ver que he agregado
un comentario sobre este nodo haciendo clic derecho y
agregando un comentario de nodo que si presiono F9, F9 actúa como un toggle aquí y
puedes ver cómo cambia
esa punta de herramienta. Puedo agregar lo que se conoce como un
punto de interrupción que va a permitir que el código se detenga aquí
mismo en este punto, tan pronto
como llegamos a este
punto en la cadena de ejecución. Entonces te puedes imaginar si tuvieras un montón de
nodos conectados juntos, congelaría el juego
tan pronto como llegaras a este punto. Ahora, ¿por qué querrías hacer eso
alguna vez? Bueno, a veces puedes tener algunas consecuencias
inesperadas en tus guiones. Algo está pasando
que no tenías intención de
pasar, lo que sea. Y necesitas congelar el juego, pasar por el código, recorrer tu guión para
averiguar qué está pasando. Ese es el uso de un punto de interrupción. Y sólo voy
a
presumir brevemente como esto puede
congelar tu juego. Entonces voy a presionar
el botón de reproducción aquí. Observe que sí tengo mis
puntos de interrupción que aquí. También puede hacer clic con el botón derecho
y eliminar un punto de interrupción, deshabilitar el punto o alternar ese punto de interrupción,
activarlo o desactivarlo. Aquí vamos. Planeta. Voy a configurar mi objeto de
depuración para que sea mi terceraPersonCharacter
y volver a
traerlos a mi ventana de reproducción. Así que en cuanto
presione la tecla dos, va a saltar inmediatamente a ese guión y congelar
el juego aquí mismo. Ahora desde aquí, con este nodo seleccionado y se puede ver esa flecha roja
gigante siendo como, sí, ese es el tipo que
estamos tratando de seleccionar. Tienes una serie de
botones aquí arriba que te
permiten decidir
qué te gustaría hacer. Desde aquí, se puede localizar el nodo actualmente activo,
que es actualmente. Podemos entrar en este nodo
y lo que eso va a hacer es que me va a saltar dentro
de la función misma. Déjame volver
a mi gráfica de eventos. Podría dar un paso por encima, decir, si tuviera algunos nodos
más
por aquí, podría detenerme al siguiente. Y entonces este de
aquí es salir de este nodo para ser ejecutado
en la gráfica padre. Entonces nuevamente, tengo una sección
entera de videos próximos de los que
hablaremos de esto, pero puntos de interrupción, puedes
agregarlos a cualquier nodo. Voy a parar este
año simplemente haciendo clic en el nodo y activando
y apagando con la tecla F9. Bien, a continuación para
cualquiera de tus funciones que hayas creado
en el panel Detalles, tienes la capacidad de
agregar algunas palabras clave. Y lo que esto
te permite hacer es cuando haces clic derecho en
algún espacio vacío aquí, si buscas alguna
de tus palabras clave aquí, encontrarás
esa función que estás buscando. Entonces podríamos hacer
algo chiflado aquí. Voy a agregar palabras clave
aquí como morado. Y los voy a
separar con un lavavajillas coma mono coma. Y si consigues ese chiste
y de donde vino, me quito el sombrero para ti. Compilar guardar. Y ahora si haces una búsqueda
para hacer clic derecho en morado
, encuentra función terrible ejecutar. Mono, encuentra esa función así
como lavaplatos. Y solo escribo platillo
y ya lo encuentra. Ahora tenga en cuenta que esto
funciona no solo dentro del blueprint
que esa función fue creada, sino que si voy a mi nivel
test map level blueprint, siempre y cuando tenga una referencia a ese blueprint aquí, Puedo hablar con mi
tercera personaBlueprint de personaje. Puedo arrastrar fuera de aquí. Escriba en morado, encuentra esa
función mono o lavavajillas. Entonces ahí tienes. Palabras clave.
Así es como puedes encontrar una función usando cualquier palabra clave
o palabras de tu elección. Y a continuación, exploremos este campo de título de nodo
compacto que tienes
disponible para cualquiera de las funciones
que hayas creado. Lo que esto te permite hacer es
simplificar un poco tu Nodo. No uso mucho esto, pero tal vez a algunos de ustedes les
guste trabajar de esta manera. Entonces voy a cambiar
mi título de nodo aquí para sea algo más que los efectos dañados
del jugador. Voy a simplificarlo y
simplemente poner en player FX. Y en cuanto golpee enter, este título se va
a ir adiós, así
como todos
estos etiqueta pin. Entonces aquí vamos, presionando Enter. Ya puedes ver que he convertido este nodo en una versión
simplificada. Efectos de jugador es ahora el
título de nodo compacto de este nodo. Y todas esas
etiquetas de alfiler se han ido. Ahora todavía puedes ver
qué tipo de tipos de datos están buscando
estos pines simplemente pasando el mouse sobre ellos. Eso va a estar
buscando un objeto, un vector, así como unos
componentes de sumidero respectivamente. A lo mejor algunos de ustedes
preferirán trabajar de esta manera. Yo sin embargo, no, pero pensé que de todos modos lo
tiraría por ahí. A continuación, quiero hablar sobre lo que este campo especificador de acceso hace
este campo especificador de acceso para una función
que hemos creado. Sin embargo, para hacer esto, necesito crear
una clase infantil de nuestro terceraPersonaPersonaje aquí
con el fin de hacer realmente esta justicia. Ahora bien, la herencia de clases
es un tema del que
hablaré más adelante en el curso. No obstante, de nuevo, para poder
presumir de este especificador de acceso, necesito hacerlo ahora mismo. Así que de vuelta aquí en mi navegador de
contenido, voy a hacer clic derecho en mi terceraPersonCharacter y
voy a crear una clase de
Child Blueprint. Y voy a dejar este nombre
va a simplemente darle a Enter. Y lo que voy
a hacer entonces es volver a mi terceraPersonaPersonaje y
hablar de este especificador de acceso. Así que tenemos tres escenarios
diferentes aquí, público, protegido y privado. Entonces esto determina
qué planos pueden acceder a una función. En este caso, nuestra función de salud
modificada, public es una configuración predeterminada. Cualquier otro objeto puede llamar a esta función siempre y cuando
tengamos una referencia a ella, lo que significa que puedo usar esta función de
modificar salud aquí dentro de este plano
que hemos creado con él. También podría acceder a él desde
nuestro Plano de Nivel nuevamente, siempre y cuando tengas una referencia a tu personaje de tercera persona, puedo encontrar a mi Dios, si phi salud ahí está. Saltando de nuevo a mi
tercera personaPersonaje. Ahora cambiemos r, modificar la salud de un
público, demasiado protegido. Ahora bien, esto significa que la función
solo puede ser llamada por el blueprint
actual,
es decir, nuestro Blueprint
ThiredPersonCharacter, así
como cualquier blueprint que se derive del blueprint
actual. Entonces, ¿la puedo encontrar aquí? Sí, puedo arrastrar y soltar. Ahí puedo acceder a él. Hacer uso de ella ahí. Si salto a mi
hijoTercera PersonaPersonaje, y salto
al Gráfico de Eventos, y hago clic derecho y hago
una búsqueda para modificar la salud. Ahí está esa función. Yo también la puedo encontrar aquí. Esto demuestra que nuestra clase
padre aquí es nuestro bp terceraPersonCharacter. Entonces sí, puedes usarlo dentro del plano original
que hayas creado. creaste en
o en la clase infantil. Por último, volvamos a
nuestro bp ThirdPersonCharacter. Seleccione nuestro modificar salud. Y cambiemos esto de
protegido a privado. Ahora bien, esto significa que la
función solo se puede llamar desde dentro del plano
actual. Entonces sí, podría arrastrar
y soltar esto aquí. Podría llamar a esta función. No obstante, si tuviera que ir a mi mapa de prueba de nivel,
arrastrado fuera de aquí, hacer una búsqueda de
MOD si salud phi, sólo
puedo encontrar
esa función pura. Porque si miro hacia atrás en
mi terceraPersonaPersonaje, recuerda que actualmente tengo dos versiones de la función
Modificar salud. El Modify health
pure está
configurado actualmente para acceder al especificador público, es
decir, lo puedo encontrar
dentro del Plano de Nivel. No obstante, modificar la salud
actualmente está etiquetada como privada, es
decir, que
no puedo encontrarla aquí. Modificar la salud? No. Ahora bien, si voy al plano de mi
hijo, puede ver que esto todavía está por aquí y eso es
porque todavía estaba aquí antes de que yo
cambiara este
especificador de acceso a privado. No obstante, si tuviera que volver a
entrar en mi hijo,
elimine esto, haga clic con el botón derecho,
haga una búsqueda para modificar la salud. Ya no lo encuentro. Así que solo un poquito de
mesa ahí también. Entonces el especificador de acceso, tienes público,
protegido y privado. Ahora siguiente
voy a mostrar lo que hace esta llamada en la casilla de verificación del
editor. Pero para hacer esto,
voy a crear una nueva función por aquí. Voy a hacer clic en
este botón Plus. Y voy a llamar a
esto mi Super salto. Dentro de esta función
que estoy creando. Yo sólo voy a arrastrar el
tipo En carácter de lanzamiento. Y lo único que
voy a hacer aquí es cambiar nuestra velocidad z para que sea 2000. Ahora notarás que nuestra
función aquí es idéntica a solo esta función de
carácter de lanzamiento en sí. Pero para poder presumir esta
llamada en la casilla de verificación del editor, quería hacer
algo súper simple. Entonces con esta función creada, continúe y seleccione
eso y haga clic en esta llamada en la casilla de verificación del editor, lo que esto nos permite hacer, Compilar y Guardar aquí también. Volvamos a
nuestro editor de niveles. Voy a asegurarme con
mis tres puntos seleccionados aquí. Voy a jugar en una vista
seleccionada. Voy a hacer clic en Reproducir. Ahora conmigo jugando en
mi viewport seleccionado. Voy a seleccionar mi
terceraPersonaPersonaje. Y podría hacer una
búsqueda de Super salto. Y podemos ver bajo
la categoría por defecto, tengo este súper botón de salto. Si hago clic en esto,
simplemente llamará a esa función. Ahora notarás que en el
propio BP ThirdPersonCharacter, solo
creé esa función. No tengo ninguna tecla de entrada para llamar
realmente a esa función, pero esta es una excelente
manera de simplemente probar la funcionalidad
sin ninguna tecla de entrada ni nada de ese tipo. Simplemente puedes probar para ver
qué hace de inmediato. Ahora hay un
pequeño problema aquí que debes
conocer y eso es. Tenga en cuenta que mi Super salto, déjame dejar de jugar aquí. Tenga en cuenta que mi función
aquí no tiene ninguna entrada o salida. Si tuviera que seleccionar algo
como efectos dañados del jugador, puedes ver que aquí
tengo algunas entradas. No tengo ninguna
salida en esta, pero podría devolver algo. Vamos a hacer clic en esto
y hacer la devolución. Y podríamos devolver el emisor de
spawn adjunto. Vamos a arrastrar y
soltar eso ahí así. Ahora bien, si iba a tomar mi jugador el
daño afecta a la función, voy a dar click
en esta llamada en, editor checkbox compilar, guardar. Volvamos a
saltar aquí y jugar. Al seleccionar mi
terceraPersonpersonaje, desplázate hacia abajo. Voy a encontrar esos botones
una vez más, ahí vamos. Bajo la categoría predeterminada, puedo encontrar mi botón Super jump
call Editor. Sin embargo, no encuentro
ese mismo botón para los efectos de daño del jugador pesar de
que tengo marcada esa casilla. Ahora, ¿por qué es esto? Bueno, no
sé la
respuesta exacta a eso, pero supongo que
porque sería bastante difícil llamar manualmente
a una función que dependa de
algunos datos que necesitan ser
ingresados en la función a
fin de que funcione correctamente. Ahora a continuación quiero
señalar que para cualquiera de sus funciones creadas dentro
del panel Mi Blueprint, si hace clic derecho sobre ellas, tiene la opción de
convertir función en evento. ¿Qué es lo
que significa eso? Bueno, vamos a sumergirnos dentro de nuestra terrible carrera,
una función aquí. Y lo puedo hacer simplemente haciendo
doble clic sobre él. Abrirá esa gráfica de
funciones. Y fíjate que esta
función es simplemente tomar a mis personajes la velocidad
máxima de caminata, Así de rápido se están moviendo. Va a agregar un poco
de refuerzo allí y
agregarlo para crear
nuestra nueva Velocidad de Paseo, nuestra nueva velocidad de movimiento. Así que observe esta configuración aquí mismo. Voy a saltar de nuevo
a mi gráfico de eventos. Y lo que voy a
hacer es que voy a clic derecho en mi
terminal, ejecutar una función. Vamos a convertir
esto en un evento. Y cuando lo haga, básicamente
va a romper todo
ese código que estaba
dentro de esa función que
modificó mis caracteres,
max, walk, speed, y en todos los lugares en el propio gráfico de
eventos. Ahora note que nuestra terrible función de
ejecución ya no existe aquí en nuestra área de
funciones. En cambio, vemos un evento personalizado llamado turbo run,
ese mismo nombre. Ahora bien, esto necesita ser llamado para que este script se ejecute. Entonces algo que señalar aquí, no se
puede hacer esto si la
función tiene salidas. Y con eso quiero decir
hagamos doble clic en nuestra
función modificar salud aquí mismo. Esta función
tiene una salida. Entonces, si intento
hacer clic derecho sobre esto, al convertir esta
función
en un evento, vas a recibir una advertencia
diciendo que no puedes hacer eso. Entonces pensé que
lo señalaría mientras estemos aquí también. Ahora bien, ¿por qué harías alguna vez
algo así? ¿Por qué convertirías alguna vez una de tus funciones
en un evento? Bueno, quizá sea
más fácil para ti leer tu guión de este tipo
de manera fragmentada. O tal vez decidiste que esto es mejor como un guión único en lugar de una función que
podrías verte queriendo usar múltiples lugares. Ahora un par de
cosas más aquí. Antes de que terminemos este video. Recuerda, debes compilar eso es para presionar este
botón justo aquí arriba. Debe compilar para acceder a nuevas funciones
desde otros blueprints. Si agregaste una nueva
función aquí, creaste una nueva
y querías
acceder a ella desde digamos,
tu Plano de Nivel. Necesitas compilar primero
antes de poder hacer eso. Otra cosa que
vale la pena mencionar aquí es que puedes tener funciones dentro de otras
funciones que crees. Entonces lo mostré aquí al tener una función
que creé llamada Super jump y teniendo esa función dentro
de esa función. Y por último pero no
menos importante, para las funciones, no
se pueden tener
nodos latentes dentro de aquí. Y con eso, quiero decir, estoy
hablando de nodos de retardo
haciendo clic con el botón derecho. Y yo sólo voy a hacer
una búsqueda de retraso aquí. Parece que ni siquiera se agregó aquí. Sin embargo, en el Gráfico de eventos, haga
clic con el botón derecho del ratón Puede encontrar retraso o retraso
recuperable. Tampoco se puede agregar un nodo
conocido como nodo de línea de tiempo. Cosas tan importantes para
recordar ahí para las funciones, bien chicos, eso va a
hacerlo todo por este video. Cosas buenas para saber. Te
veremos en la siguiente.
66. Descripción de las Macros: Bien, en los próximos
videos aquí vamos a estar desplazando nuestra atención
hacia el tema de las macros. Y específicamente en este video, nuestros objetivos son conocer
qué son las macros, discutir cómo son similares
o diferentes a las funciones. También vamos a
explorar un par de macros preexistentes
comunes
y cómo se construyen. Y por último, vamos a
hablar de dónde podemos encontrar macros dentro de los planos. Entonces, antes que nada,
¿qué es una macro? Bueno, una macro es
esencialmente una colección de nodos que hace algo que es similar a una función
en este sentido. Y tengo un par de macros
justo aquí frente a mí, dentro de mi Blueprint de Nivel. Ahora, irreal sí viene
con una gran cantidad de macros listas para usar
que puedes usar. Es a partir de las macros estándar
en el contenido del motor, que te mostraré en
solo un poquito aquí, puedes crear tus propias macros dentro de una Clase Blueprint, un blueprint de nivel o una macro de
blueprint biblioteca. Y nuevamente, en los
próximos videos, mostraremos cómo hacer todo eso. Entonces, antes que nada,
exploremos algunas macros comunes. Y como ves antes,
tienes un par de macro nodos. Una es la macro comparar flotante, la otra está
en, es macro válida. Hace apenas un momento hice, mencioné que una macro es
esencialmente una colección de nodos que hace algo
similar a una función. Y podemos ver esto
haciendo doble clic en cualquiera de nuestras macros aquí. Y voy a hacer doble clic
en comparar flotar aquí. Al hacerlo,
voy a estar
abriendo una nueva pestaña llamada Macros
estándar. Esta es una biblioteca de macros
que consiste en un montón de macros que ya
existe aquí en Unreal. Y tenga en cuenta que también abrimos una pestaña Comparar Float dentro de
esta biblioteca de macros. Y esto muestra todos los
nodos conectados entre sí para crear esta macro flotante de comparación. encima del lado derecho, podemos ver que si
seleccionamos nuestra entrada aquí, podemos ver que este particular
macro compare float pertenece a la categoría
float matemática. Entonces, si tuviera que profundizar aquí en nuestra colección de macros, float
matemática, podemos ver ahí
está nuestra macro de comparar float. Ahora puedes expandir todos
estos para ver todas
las diferentes macros que existen
dentro de las diferentes macros que existen esta biblioteca de macros. Ahora la razón por la que estoy señalando esto es porque
si iba a saltar nuevo a mi plano de nivel
o a cualquier otro plano aquí. Y simplemente haga clic derecho y algo de espacio vacío
y voy a hacer una búsqueda ahora para comparar flotador. Podemos ver que es la categoría donde se encuentra esta macro
en particular, la categoría float matemática
como se especifica aquí mismo. Flotador matemático. Ahora vamos a acercarnos rápidamente a algunas similitudes y diferencias de macro
y
funciones aquí. Entonces, comenzando con
las similitudes, ambas macros en funciones
ahorran tiempo ya que pueden almacenar
secuencias de
nodos de uso común completas con
entradas y salidas tanto
para la ejecución
como para la transferencia de datos. Entonces, en lugar de decir, colocando esta secuencia de nodos en múltiples lugares
a lo largo de tu gráfica, puedes simplemente crear
una sola macro o una función puede hacer de manera similar. Y eso
te ahorrará tiempo porque estás condensando estos nodos en
similitudes entre sí. Se puede editar la
funcionalidad de una macro o función en un lugar
central, una gráfica. Aquí mismo tenemos nuestro
propio gráfico de flotación de comparación. Puedes editar la funcionalidad
aquí y propagará ese cambio a cualquier
otra macro que hayas colocado en cualquier
otro blueprint. Otra similitud es
que son reutilizables. Puedes reutilizar esta macro en
muchos otros planos. Se puede tener en
múltiples planos. Se puede usar la misma macro
dentro del mismo blueprint. Además, tanto las macros como
las funciones permiten variables
locales y tenemos un video completo
hablando de variables locales. Pero esencialmente una
variable local es una variable a la que
solo se hace referencia y es utilizada por
esa función individual, o en este caso una macro. Ahora la diferencia
es que las macros pueden tener múltiples pines de ejecución
de entrada y salida. Y podemos ver eso aquí en
nuestro compare float macro. Si selecciono este nodo de entrada aquí
mismo, Echa un vistazo a esto. Tenemos una entrada de ejecución, pero tenemos tres pines de salida de
ejecución. Y si eso no es lo suficientemente claro aquí a partir de nuestras entradas y salidas, echemos un vistazo al
nodo final, vuelta en nuestro
Blueprint de Nivel, échale un vistazo. Tenemos una
entrada de ejecución y tres salidas. Ahora se llega a nombrar
estos por cierto. Entonces si vuelvo a nuestras macros
estándar aquí, llega a ingresar cuál
es ese nombre no tiene por qué ser exacto. Puedes ponerlo como símbolo, símbolos y letras, lo que
quieras poner ahí. Otra diferencia,
y esto es clave, esto es mucho
qi Las macros pueden tener nodos
latentes en ellas
mientras que las funciones no pueden. Entonces, cuando estoy
hablando de aquí, una vez más, saltando de nuevo a mi plano de
nivel, permítame simplemente
desplazarme hacia la derecha aquí. Solo estoy en mi Gráfico de Eventos, así que no estoy dentro de ninguna macro
o gráfica de funciones en sí. Este tipo de nodos aquí mismo, nodos
latentes, unos con
este pequeño icono de reloj. Si paso el mouse sobre este nodo, esta función de retardo, incluso
dice en la punta de la herramienta en la
parte superior que es un nodo latente. Eso es lo que significa este icono de
reloj. Ese es un nodo sensible al tiempo. Cualquier nodo tardío como ese, o un nodo de línea de tiempo. Cualquier cosa con lidiar con el tiempo, no
puedes
colocarlos en funciones. Sin embargo, macros, está bien. Por último, las macros no se pueden
llamar desde otros blueprints. Como una función puede. Sólo para
demostrar esto rápidamente. Si tuviera que entrar aquí en mi personaje en
tercera persona, solo
voy a crear
una macro temporal rápida. Voy a llamar a esto mi temp. Yo lo llamaré macro temp. ¿Qué tal esa macro temp? Voy a compilar esto. Y luego en mi Blueprint de Nivel, si encuentro, tengo mis cuatro claves, si fuera a arrastrar fuera
de esto y hago una búsqueda ahora de macro, no
puedo encontrarla. No puedo encontrar eso, mientras que
podría encontrar algo así como mi función de súper salto. Súper salto. Ahí está. Entonces no se puede llamar
macros que vivan en otro blueprints
de otro blueprint. Bien, entonces, ¿dónde pueden
encontrar macros dentro de irreal? Bueno, aquí hay una
macro biblioteca existente. Tenemos nuestras macros estándar. Bueno, ¿dónde existe esto
en nuestro navegador de contenido? Si vuelvo a
nuestra pestaña de nivel aquí, tienes que
asegurarte de que tienes contenido de
tu show engine verificado aquí. Y acabo de pasar por debajo de
Configuración mostrar contenido del motor. Y aquí está el camino en la carpeta de
recursos de planos All Engine Content
Editor justo ahí mismo. Y aquí están sus macros
estándar. Y se puede ver desde
la punta de la herramienta ahí el tipo de blueprint
es una biblioteca de macros. Al hacer doble clic sobre
esto, solo va a saltar de
nuevo a esa pestaña. Aquí hay un montón de macros
diferentes que están
disponibles en cualquier plano. ¿Dónde más puedes
encontrar algunas macros? Bueno, tengo algunos disponibles
aquí en mi plano de nivel. Si salto
a mi
gráfico de tipos de nodos en ojos, acercar mis nodos de control de
flujo aquí. Todos estos son nodos de
control de flujo. Vamos a tener toda
una sección del curso dedicada
a
los préstamos de control de flujo, pero estas son todas macros. Entonces vas a notar que
las macros tienen este encabezado gris. Esa es una manera fácil
de identificar una macro. Tiene esta cabecera gris. Y sólo para demostrar que
estas son macros, si hago doble clic
en alguna de estas, permítanme simplemente hacer doble clic
en mi puerta aquí. ¿Qué sabes? Me salta de nuevo a
mis macros estándar. Eso sí es una macro. ¿Qué más podemos encontrar macros? Bueno, puedes crear
tus propias macros, y yo puedo presumir eso aquí en nuestro
terceraPersonaPersonaje. Creamos una macro temporal. Por supuesto esto está
vacío en estos momentos, pero tiene una sección para
macros son Nivel Blueprint. Tiene una sección para macros para que puedas crearlas aquí. Cualquier otro blueprint,
puedes crear macros dentro de las cuales vamos a
hacer en realidad el siguiente video. Entonces chicos, eso lo va
a hacer todo por este en nuestro
resumen de macros, veremos en el siguiente video.
67. Creación de macros: Bienvenida. Nuestro objetivo en este video
es aprender dónde y cómo crear una macro y ayudar
a conducir mejor a casa esas diferencias entre
funciones y macros. Vamos a
crear nuestra macro de
tal manera que
sería imposible
que una función se
duplicara porque
vamos a incluir algunos
nodos tardíos dentro de nuestra macro, además de tener un múltiplo
pines de salida de ejecución, que de nuevo, una
función no puede hacer. Vamos a estar haciendo un
poco de trabajo aquí dentro de nuestro bp terceraPersonCharacter. Entonces está el
camino para encontrarlo, así como nuestro Blueprint de Nivel. Así que ten esos dos a mano. Vamos a empezar dentro
de nuestro terceraPersonaPersonaje. Ahora, dentro de aquí,
simplemente baja
al panel Mi Blueprint y en la sección macro,
haz clic en el botón Más. Y vamos a crear
una macro llamada en llamas. Qué gran nombre
te va a entusiasmar por lo que está por venir. Bien, ahora selecciona
tu nodo de entrada aquí. Crea un poco de espacio
entre los dos aquí. Y con cualquiera de ellos ser seleccionados, voy a agregar algunas
entradas a esto viniendo debajo del panel Detalles
haciendo clic en el botón más. Ahora voy a agregar
una serie de pines. El primero, simplemente
voy a llamar y presionar Enter. Ahora podemos establecer el tipo de pin
que queremos para una entrada. Si hacemos clic aquí mismo, tenemos un montón de variables entre las
que podemos elegir, así
como una pluma de ejecución. No tuviste esta opción
dentro de una función. Vamos a agregar
algunos más aquí. Así que haz clic de nuevo en este botón más. Vamos a llamar a esto
un efecto, un retraso. Y esto va a ser un flotador. Y haciendo clic de nuevo en este botón
más, esto va a ser
efecto para retrasar. Y luego botón más otra vez, y vamos a llamar a
este efecto tres delay. Esas van a ser carrozas. Entonces vamos a
agregar algunas salidas aquí. Vamos a sumar
tres de ellos. El primero va a
ser llamado spawn effect one, y esto va a
ser una salida de ejecución de pin de ejecución de ejecución de
pin en eso. Finalmente tomó que
vamos a sumar dos más. Ambos van a ser
ejecución ahora pines también. Y van a
llamarse Control C, Control V, efecto de desove también. Y engendrar efecto tres. ¿Correcto? Ahora con
eso cuidado, pongamos en los nodos que
van a ir entre aquí, realmente no necesitamos
tanto espacio. Así que fuera de nuestro pin aquí mismo, vamos a arrastrar y
traer un nodo de secuencia. Este nodo va a disparar
de estos pines secuencialmente. Podemos agregar múltiples
pines aquí mismo. Sólo necesito agregar una tercera. Entonces, en cuanto entremos en esto, vamos a disparar
primero, segundo y tercero en
una sucesión tan rápida que va a
parecer instantánea. También vamos a
agregar tres nodos de retardo. Entonces, si mantienes presionada la tecla
D y haces clic con el botón izquierdo, puedes traer retraso en los nodos manteniendo presionada la tecla d
y haciendo clic izquierdo. Y
los vamos a enganchar así, 12.3. Y la cantidad de
retraso tan buena para venir de fuera de nuestra macro aquí. Lo que sea que va a ser
enchufado a nuestro retraso o
podemos fijarlo duro dentro del
propio nodo . Así que
vamos a ir así. Y luego de
estas terminaciones, las vamos a enchufar a nuestras salidas así. Entonces una macro muy simple, solo
estamos tomarla
en unos pocos retrasos. Entonces vamos a ir
secuencialmente 12.3 de estos retrasos y
luego vamos a la salida. Entonces solo para mostrar cómo esta macro en particular va a verse
esta macro en particular de nuevo
en el Gráfico de Eventos. Coloquemos uno de
estos aquí afuera, arrastremos y soltemos nuestra macro. Ese es el look final. Entonces esto de aquí mismo se
traduce en un macro nodo, a, un nodo de cabeza gris
que se ve así. Tenemos nuestros tres pines de salida. Son para pines de entrada tres flotadores
en una ejecución en pluma. Ahora bien, vale la pena
señalar aquí que debido a que nuestra macro tiene algunos
nodos de latencia dentro de ella, esos son nuestros nodos de retardo. Vemos ese pequeño icono del reloj, ese icono latente
aquí mismo en la macro misma. Pensé en señalarlo. Bien,
construyamos nuestro script aquí, haciendo uso de nuestra macro. Entonces voy a
comenzar con un evento personalizado. Así que haga clic derecho.
Vamos a traer eventos personalizados para
buscar personalizados,
agregar un evento personalizado Voy a nombrar a este jugador, incendia los puntos de exclamación. Y voy a
enchufar esto
directamente a nuestra macro en llamas. Y ahora podría enchufar algunas variables
flotantes a esto. A mí me gustó la flexibilidad de
esta macro de esa manera. No obstante, en
interés del tiempo, sólo
voy a
introducir algunos números. Voy a codificar
eso si se quiere. Entonces 0.2 va a ser
nuestro efecto retraso uno. Nuestro siguiente efecto
va a ser 4 s. En nuestro siguiente va
a ser 6 s. Así que solo estaba haciendo clic en la pestaña simplemente
te saltará al siguiente campo ahí. A continuación lo que vamos a
hacer es fuera de cada uno de estos que vamos a
engendrar y efectos. Así que arrastra esto y escribe
actor engendrado de clase. Ahora en realidad vamos a
usar tres de estos nodos. Así que déjame traer
todo esto aquí abajo un poquito. Entonces engendra actor desde el nodo de
clase
Control C, Control V y Control V. Para enmarcar esto
para todos ustedes aquí. Y el primer actor en el que
vamos a engendrar
va a ser algo de humo. Eso es humo de efecto plano. Eso lo podemos encontrar en el pack de contenido de
inicio. De nuevo, puedes usar
lo que quieras aquí, pero yo solo voy a fumar primero. El segundo,
voy a agregar chispas, que también está en ese
Starter Content Pack. Y el último
va a ser fuego. Entonces sí, humo, chispas
y luego fuego. Ahora sí necesitamos introducir
una transformación de spawn. Así que voy a agarrar
nuestro componente cápsula y simplemente saltando a
nuestra ventana gráfica aquí, nuestro componente cápsula es una cosa que rodea a
nuestro personaje, así que va a engendrarlo
justo en el medio aquí. Así que volvamos
a nuestro gráfico de eventos. Voy a traer
una referencia al arte Capsule Component
drag out of this. Queremos que el
mundo se transforme. Y podemos enchufar esto en los tres actores engendrados
a partir de notas de clase. Bien, vamos a
tener un poco de algunos entrecruzando el cable, pero espero no
hacerlo demasiado malo para ti. Ahora bien, esto no es suficiente
porque estamos engendrando estos, pero queremos
adjuntarlos a algo. Así que voy a arrastrar de clase a
nuestro actor spawn. Anote aquí el
valor de retorno y voy a decir adjuntar A actor, perdón, adjunto dos componentes. El que estoy buscando aquí,
unido a componentes. Bien. Ahora el padre aquí va
a ser nuestro componente cápsula. Entonces voy a tratar de ir
con una puesta a punto como esta. Voy a arrastrar
por aquí, pero voy a hacer doble clic en este cable para ir así. Ahora están las reglas aquí. Yo sí quiero establecer estos para que
se conecten a objetivos
así, así, y así. Bien, y voy a
Control C y Control V, estos tres nodos así. Entonces, ¿por qué están este
tipo y este tipo así, gritos? Esto en el blanco, los padres dentro de ahí. Esto va para allá, esto va para allá. Y podemos tomar esto, el componente de la cápsula y
escabullirlo ahí mismo. Entonces, esencialmente, lo que
todo este guión está destinado a hacer es sobre estos dados al disparar este evento
personalizado. Vamos a entrar
aquí y vamos a retrasar por estas cantidades una vez más, haciendo doble clic en esta macro. Vamos a hacer cada una de
estas cuando sean llamadas de retraso para que luego engendremos
el efecto dado. Entonces vamos a engendrar en el humo que en las
chispas, que en el fuego, y vamos a unirlo
en última instancia a nuestro personaje. Vamos a compilar esto y ahorrar. Bien, esa es la
mayor parte del trabajo, pero tenemos un
poco más de trabajo que hacer. Así que volvamos
a nuestro nivel aquí. Y vamos a colocar
un par de cosas abajo para que
parezca una zona peligrosa. Entonces voy a colocar
una esfera disparadores. Entonces tengo mi panel de actores de
lugar. Puedes encontrar esto
viniendo justo debajo de aquí, coloca panel de actores que para que
puedas colocar este panel. Y nuestra idea aquí bajo
la categoría básica. Voy a colocar una
esfera disparadora en mi nivel. Así. Voy a poner el radio de la
esfera sobre en mi panel de detalles para que
sea 200 así, algo un poco grande. Y luego en la
carpeta de contenido de inicio aquí voy a
venir bajo partículas. Y solo voy
a arrastrar y soltar mi P fuego justo encima de los disparadores miedo aquí en mi outliner para que
esté unido a, bueno, en realidad no
va a adjuntarlo ahí, pero Puedo arrastrarlo y soltarlo aquí. Y luego puedo arrastrarlo
y soltarlo encima de mis disparadores temen
ahí sujetarlo. Y la razón por la que esto es bueno para adjuntarlo. Esto es solo un FYI. Si muevo la esfera, el fuego viene junto con ella, pero puedo mover el fuego independientemente para que
quede justo por encima de la parte superior. Sólo estoy
buscando algo que se vea un poco peligroso aquí. Vamos a poner la escala de nuestro
fuego aquí para que sea no sé, tres veces más grande algo. Cinco veces esta bahía. Sí. Algo un poco
peligroso que se ve. Todo bien. Regresa y selecciona
tu esfera de activación porque vamos a hacer uso de esto dentro de
nuestro Blueprint de Nivel. Tengo mi ficha
Plano de Nivel aquí mismo. Voy a hacer clic derecho con esa esfera en el disparador seleccionado. Vamos a hacer algo cuando empecemos a superponer eso. Me has visto hacer
esto varias veces. Entonces lo que vamos a hacer es que
vamos a arrastrar fuera
del otro actor. Vamos a
averiguar quién es ese. Entonces vamos a arrastrar
fuera de esta escena, hacer Cast to ThirdPersonCharacter. Básicamente estamos haciendo
la pregunta aquí. Cuando algo se superpone a
esta esfera desencadena, vamos a decir: Oye, vamos a
averiguar qué es el
otro actor. Si se trata de un personaje de tercera persona, entonces hagamos algo. Bueno, lo que queremos
hacer aquí es llamar. Queremos llamar a este
evento personalizado jugador se incendia. Ahora bien, la razón por la que
tenemos esta configuración, la forma en que lo hacemos
es porque no podemos llamar a esta macro desde
nuestro Blueprint de nivel, pesar de que esto está
compilado y tenemos nuestra macro viviendo aquí dentro
de nuestra terceraPersonaCarácter. No puedo simplemente llamar al fuego. Hace una búsqueda de
jugador se incendia. Estos son nuestros eventos personalizados, pero no podemos llamar a esa macro directamente
desde otro Blueprint. Entonces esa es una de las
diferencias entre macros y funciones. Así que aquí está nuestro llamado
a esos eventos personalizados. Voy a compilar esto. Se ve bien. Entonces esto va a contar en
nuestra terceraPersonaPersonaje, esto para disparar. Bien, vamos a darle
una jugada a esto, momento de verdad. Al hacer clic en reproducir. Sólo voy a
tratar de minimizar esto un poco para que veas que estos guiones se disparan aquí. Haremos que nuestro terceraPersonCharacter
simplemente se genere, y ese va a ser nuestro objeto de
depuración allí. Una vez que superponemos esto corta el humo, está apegado a nosotros. Ahora estamos chispeando la zona de entrepierna y
ahora estamos en llamas. Entonces en efecto, que hizo
trabajo está diseñado. Entonces vale la pena señalar
aquí que creamos una macro. No podríamos llamar a esta macro o directamente desde nuestro
plano de nivel. Dentro de esta macro, sin embargo, pudimos hacer
uso del nodo de retardo, algunos nodos latentes, esos están disponibles para que los
uses dentro de una macro. Además, lo que hizo que esta macro diferente y especial
de una función es que podríamos tener múltiples pines de salida de
ejecución. También podrías tener
ejecución múltiple en bolígrafos. En este caso, acabamos de tener
múltiples pines de salida de ejecución, pero puedes tenerlos en
cualquiera de los extremos de la macro. Bien chicos, eso
es todo por crear una macro
los verá a todos en el siguiente video.
68. Colapso para Macro: Bienvenido de nuevo. En este video, nuestro objetivo es
aprender a mejorar
nuestras vidas
colapsando una colección
de nodos en un solo macro nodo. Ahora bien, esta es una de esas acciones de
tipo de calidad de vida que puedes tomar para hacer que un
cierto poco de script sucediera usando un nodo. No muchos. Ahora vamos a presumir esto. Tenemos antes de que crearas algún guión destinado a
simular un giro de moneda, lo que significa que tendremos dos posibles
resultados, cabezas o colas. Y entonces vamos a
colapsar esa funcionalidad en una macro que se
puede usar en cualquier lugar dentro
de nuestro terceraPersonCharacter? Sí, una vez más, estoy dentro de mi Blueprint
de personaje de tercera persona. He preparado algún
guión antes de tiempo, y esta es mi cita, unquote coin flips script. Esencialmente lo que estoy
haciendo es que estoy lanzando mi personaje para
simular un volteo de monedas. Vamos a lanzar a
nuestro personaje
al aire como si
volteáramos una moneda al aire. Sólo los estamos lanzando
850 en la dirección z. Entonces vamos a
tocar un sonido sólo para coincidir con ese
lanzamiento de nuestro personaje. Este efecto de sonido se puede
encontrar en el contenido de tu motor. Por cierto, si no
sabes cómo
activar el contenido de tu motor, haz que esas carpetas
estén disponibles para ti. De vuelta aquí en el Navegador de contenido la
sección Configuración, solo
puede asegurarse de que el contenido
del motor de espectáculos esté activado. Deberías poder
encontrar ese efecto de sonido. Entonces vamos a demorar 2 s. Esa va a ser la duración
de nuestro lanzamiento de monedas aquí. Entonces
trajimos un nodo de sucursal. Y lo que estamos haciendo aquí
es establecer una condición, o condición es que vamos
a tener un entero aleatorio, ya sea uno o dos,
ese es nuestro rango. Y si es igual a uno, entonces va a igualar verdad. Y vamos a
tocar el sonido del éxito si termina siendo un dos. Y nuevamente, esto
sólo puede ser uno o dos, entonces estos no son iguales porque dos no serían iguales a uno, entonces sería falso. Y tocaríamos el sonido fallido de
compilación, esa sería nuestra S fallida de x. Y ambos
efectos de sonido se pueden encontrar en
esas mismas carpetas de contenido. Muy bien, entonces queremos
convertir esto en una macro, colapsarla en una macro. Ahora una cosa que debes saber
es cuando intentas hacer esto, solo
queremos obtener estos nodos aquí mismo para que
puedas hacer clic izquierdo y arrastrar si accidentalmente intentas traer tus eventos de entrada como
tengo derecho aquí, déjame
mostrarte lo que pasa. Haga clic con el botón izquierdo y arrastre. Y ahora si hago clic derecho en alguno de mis nodos seleccionados aquí, tenemos la opción de
Contraer a Macro. Entonces al tratar de hacer este ancho, esa clave de evento aquí, vamos a recibir una
advertencia que dice Colapso a Macro falla que si
mostramos el registro de mensajes, va a decir que no se puede colocar ese cinco entrada aquí, así nos desharemos
de él Esta vez. Vamos a hacer click izquierdo
y arrastrar alrededor de estos nodos, dejando fuera de ella las cinco
entradas. Haga clic derecho. Vamos a
colapsar a una macro. Y podemos ver más
en la sección macro, ahora
tenemos la capacidad de
darle un nombre a esta macro. Entonces voy a voltear mi
página y vamos a
llamar a esta moneda flip. Sí, siguiendo junto con
mis notas, coin flip. Puedes ver que
esto está enganchado, pero necesitamos hacer un
poco de trabajo
dentro de nuestra macro para que podamos hacer doble clic
sobre ella aquí mismo. Y cómo se ve
actualmente nuestra macro. Pero aquí queremos hacer un
poco más de trabajo. Así que simplificamos
un poco nuestra vida condensando estos nodos en un solo nodo
en nuestro gráfico de eventos aquí. Pero todavía quiero
modificar algunas cosas. Entonces primero, voy a
seleccionar mi nodo de entrada aquí. Y quiero establecer mi nombre de
entrada aquí en lugar de ejecutes para que
simplemente sea n. Entonces yo, mi nodo de salida, voy
a agregar un par de salidas. Además voy a
llamar a éste cabezas. Y vamos a establecer esto
para que sea un pin de ejecución fuera. Entonces vamos a hacer clic en el botón
Más una vez más. esto le vamos a llamar colas. Y eso también va
a ser en ejecución PIM. Y nuevamente, si esto
da como resultado un verdadero, eso
va a ser esencialmente nuestras cabezas. Entonces vamos a conectar
esto en nuestras cabezas. Y si esto termina siendo falso, aquí
tenemos un dos, no
es igual a uno. Esta va a ser nuestra cola. Entonces, si volvemos ahora a
nuestro gráfico de eventos, podemos ver que nuestra macro de
flip de monedas ha sido actualizada. Tenga en cuenta que tenemos una ejecución
en pin y dos fuera. También. Tenemos este icono latente aquí para indicar que
dentro de esta macro. Y una vez más,
puedes hacer doble clic sobre esto para abrir tu macro. Tenemos un nodo latente
dentro de aquí, sí, nodos de
LinkedIn como retardos, pueden existir dentro de una macro. No pueden existir
dentro de una función. Muy bien, volvamos
a nuestra pestaña Gráfico de eventos aquí. Y quiero extender nuestro guión fuera de cada uno
de estos pines aquí. Vamos a decir
si nuestro volteo de monedas aquí termina siendo cabezas, lo que vamos a hacer
es que vamos a hacer que salud de
nuestro personaje esté llena. Antes de estas tomas de video, tomé nuestra variable de salud
aquí y recuerdo que esto está enganchado a nuestro
capó o medidor de salud. Y lo puse en 0.1, es
decir, que vamos a empezar con un 10% de salud. Voy a mantener pulsada la
tecla Alt, clic izquierdo y arrastrar
para traer un setter. Y voy a
poner esto en 1.0. Vamos a ir a toda la salud
si conseguimos un resultado de cabezas. Y lo que vamos a
hacer fuera de las colas, vamos a matar a su personaje porque
eso suena divertido. Entonces vamos a
traer nuestra malla, una referencia a nuestra malla. Así que agarra tu
componente de malla aquí. Fuera de esto
vamos a arrastrar hacia fuera, tenemos una opción llamada
set simular física. El objetivo para esto va
a ser nuestro componente primitivo, es
decir, nuestra malla aquí mismo. Y todo lo que tenemos que hacer
aquí es establecer esto en verdad. Y te dejaré en suspenso en cuanto a lo que esto va a hacer. Muy bien, adelante y
compile aquí y Ahorre. Y vamos a
darle una jugada a esto. Así que jugando, déjame establecer mi objeto de depuración para que
sea nuestro personaje, trayendo a nuestro personaje de nuevo. Para que veas que empiezo
con un 10% más saludable. Si presiono la
tecla cinco, una vez más, va a toparse con nuestra
macro y determinar si obtenemos resultados de una cabeza o
una cola. Entonces aquí vamos, cinco
claves. Tengo plena salud. Me hizo saltar enseguida, luego me mandó a la salud plena. Porque el salto, si se quiere, el lanzamiento de nuestro personaje, esa es nuestra moneda voltear
el comienzo de la misma. Déjame intentarlo de nuevo. Cinco claves, saltar de inmediato a segundos después volvimos a tener
plena salud, sigamos hasta que
consigamos el resultado de colas aquí. Así que salta 2 s después, vamos a averiguar el
resultado y simular la física. Pasó por el suelo, Dejando es espada atrás. Y así ahí lo tienes. Si tiene una colección
de nodos que
desea condensar
en un solo nodo. Y tal vez tenga un
retraso no notó en él. O necesitas tener algunos pines de
entrada o salida de ejecución múltiple. Considera
convertirla en una macro, colapsándola hacia abajo en una macro. Es posible que tengas
que hacer un poco de trabajo de arreglo como
tuvimos que hacer aquí con nuestro nombre de entrada y agregar
un par de salidas aquí. Pero esa es una manera muy práctica
de simplificar tus gráficas, chicos, eso va a hacer
todo por este video. Nos vemos en la siguiente.
69. Biblioteca Macro: Hola. En este video, nuestro
objetivo es mostrar cómo podemos crear un add macros dentro de nuestra propia biblioteca de macros
creada. Entonces, ¿qué es una macro biblioteca? Bueno, es similar a una biblioteca de funciones que
creamos en la última
sección de videos, en que es un lugar
centralizado para almacenar macros creadas
que hacemos. Ahora bien, ¿cuáles son las grandes
diferencias, entre una biblioteca de funciones y
una biblioteca de macros a las
que
solo se puede acceder a las macros desde
blueprints que comparten la misma clase padre,
una biblioteca de macros? Ahora, eso parece un
poco confuso aquí. Solo quédate conmigo a medida que vamos creando nuestra macro biblioteca. Bien, así que aquí estoy dentro de mi carpeta de scripting Blueprints abajo en mi navegador de contenido. Voy a crear mi
macro biblioteca aquí mismo. Entonces sigamos adelante
y hagamos clic con el botón derecho. Y vamos a llegar
a planos en,
en el pequeño menú de volantes. Tenemos la
macro biblioteca de planos. Así que vamos a seguir
adelante y elegir esto. Y ahora vamos a ver
es que nos
va a pedir que escojamos una clase de padres. Entonces vamos a elegir una
clase padre de personaje que va a ser similar a nuestro personaje de
tercera persona. Nuestro ThirdPersonCharacter
es de la clase de carácter. Bien, así que vamos a
dar click sobre esto. Y va a pedirnos ponerle
un nombre a esto y voy a llamar a esto mi carácter de subrayado. Voy a hacer todas las gorras. ¿Por qué no macros de
subrayado de caracteres? Y luego sigamos adelante y doble clic sobre
esto para abrirlo. Y ahora algo que
notarás aquí es que dentro de nuestra
biblioteca de macros aquí nuevamente, nuestra clase padre es de carácter. Tenemos la capacidad de acceder y usar cualquier variable que sea
nativa de esta clase y
están nativa de esta clase y listadas todas
anotadas debajo de aquí. Entonces bajo el carácter,
hemos conseguido mallado, movimiento de
personajes, etcétera, muchas categorías diferentes. Ahora comparemos esto con
nuestro personaje en tercera persona, que es la clase de
personaje padre sobre en el panel
Mi plano. Si nos encontramos bajo variables, asegúrese de que si hace
clic en este
icono de engranaje haya mostrado las variables
heredadas. Echa un vistazo a esto. Bajo la
categoría de personaje tienes malla, movimiento de
personajes, etcétera. Estas son todas las mismas
variables que son nativas de esta clase,
la clase de caracteres. Así que los puedes encontrar aquí dentro de nuestro terceraPersonpersonaje y aquí en nuestra biblioteca de macros, nuestra biblioteca de macros de personajes, también
tenemos acceso a ellos. Bien, sigamos adelante y
creamos nuestra macro aquí dentro de nuestra biblioteca de
macros de personajes. Ahora, una vez que abrimos
esta macro biblioteca, tenía una macro
creada para nosotros aquí. Puedes ver la pestaña
justo por aquí. Sigamos adelante y
dale un nuevo nombre a esto. Así que solo voy a
hacer click sobre esto, presionar F2, y voy a llamar a
este cambio velocidad máxima. Y eso es exactamente lo que va a hacer
esta macro, es que vamos a alterar las velocidades máximas de
movimiento de
nuestros personajes. Así que voy a crear un
poco de espacio aquí entre nuestra entrada y nuestro nodo
de salida aquí. Así que vamos a seguir adelante y crear algunas entradas y salidas
para esta macro, voy a crear
una entrada aquí, haciendo clic en este
botón más justo aquí abajo. Y el primero simplemente
va a ser llamado. Esto va a ser
una ejecución en pluma. Y luego voy
a crear uno más. Y a esta se le va
a llamar nueva velocidad. Vamos a alimentar a
esto un nuevo valor de velocidad, y este
va a ser un flotador. Y para nuestras salidas, tengo algunas en mente aquí. Vamos a hacer clic en esto una vez, y vamos a
llamar a éste caminando. Esto va a ser
en ejecución a cabo pluma. Y entonces vamos a conseguir
crear dos más más, más. El siguiente
va a estar corriendo, y al siguiente se
le va a llamar sprinting. Y esos son todos los pines de
ejecución. Bien, entonces lo que
vamos a hacer aquí es que
vamos a arrastrar de nuevo nuestro Componente de
Movimiento de Carácter, uno de los beneficios
de crear, en este caso, una biblioteca de
macros de personajes es que tenemos acceso a todas las variables de
carácter nativo, incluido nuestro componente de
movimiento del personaje. Vamos a arrastrar
esto en nuestra gráfica. Vamos a conseguir
eso. Ahora te darás cuenta algo aquí cuando
arrastre esto aquí. Y acabo de soltar, solo
podemos obtener variables aquí dentro de nuestra biblioteca de
macros. Y esto va para cualquiera de ellos. Si yo fuera a hacer esto, estaba saltando
y tratar de arrastrar esto adentro. No podemos establecer ninguna variable aquí dentro de nuestra biblioteca de
macros. Algo importante a tener en cuenta
con una biblioteca de
macros, sólo se pueden obtener
estas variables, no
se pueden establecer. Pero eso está bien. Bueno, vamos a estar
haciendo aquí es llegar al interior de nuestro Componente de
Movimiento de Carácter. Y vamos a escribir
set max, walk, speed. Ahora, esta variable vive dentro de nuestro Componente de
Movimiento de Carácter. Y solo para conducir esto a
casa un poco, tengo mi terceraPersonpersonaje aquí
mismo. Si selecciono mi componente de
movimiento de personaje, tengo una
variable de velocidad de caminata máxima que vive dentro de ese componente de
movimiento de personaje. Bien, entonces vamos a
alimentar esto a una nueva velocidad. Al igual que así. Entonces fuera de esto
voy a arrastrar y traer un nodo de sucursal. Y luego voy
a arrastrar fuera de aquí. Y tengo varios nodos de
comparación que
quiero traer. Entonces voy a hacer un
menos que o igual a uno. Voy a
alargar un aquí otra vez, y voy a hacer una
mayor que, sólo mayor que. Entonces voy a
alargar una vez más y voy a hacer
un menor que o igual a pequeños bucles menor que o igual a o simplemente menos
igual como se le llama. Para los valores para
estos, voy a
enchufar 200 para este no plugin, solo
voy a codificarlo duro. 200 para eso. Vamos a hacer
más de 200 por esto y 1,200 por esto. Y vamos a leer, te
voy a leer todo
esto en un momento. Cómo vamos a estar
interpretando todo esto. En sólo un momento.
Voy a traer otro nodo de sucursal manteniendo
pulsada la tecla B haciendo clic izquierdo. Y voy a enchufar esta
verdad en nuestro caminar, falso voy a arrastrar
y así oyes el término, los
voy a arrastrar aquí y lo
falso voy a
arrastrar aquí. Y nuevamente, voy a interpretar todo
esto para ustedes aquí en tan solo un momento fuera de aquí. Y voy a arrastrar aquí
y traerlo adentro y nodo, va a ser un AND booleano. Y booleano ahí mismo. Conectando esto aquí. Estamos enchufando esto a
aquí y esto a aquí. Bien, señor Lavandería, pasó por eso bastante rápido. ¿En qué se
traduce todo esto? Bien, así es
como va a funcionar. Vamos a alimentar una nueva
velocidad a esta macro. Así podremos alterar, establecer a nuestros personajes la velocidad
máxima de movimiento. Si es menor
o igual a 200, si eso es cierto, vamos a salir caminando. Entonces vamos
a seguir extendiéndose fuera de nuestra macro y hacer algo cuando detectemos que
estamos caminando. Ahora bien, si detectamos que
vamos a una velocidad
mayor a 200 y
menor o igual a este
valor aquí mismo, 1,200. Si eso es cierto,
entonces nos van a considerar que estamos corriendo. No obstante, si esto
resulta ser falso, entonces vamos a ser
considerados velocistas, lo significa que vamos a alguna
velocidad superior a 1,200. Ahora sigamos adelante y
hagamos uso de esta macro dentro de nuestro Blueprint
ThiredPersonCharacter. Una nota rápida aquí,
no hay necesidad de compilar aquí. No es necesario compilar
dentro de una biblioteca de macros. De hecho, está gris, pero podemos seguir adelante y salvar esto. Y sobre en nuestro bp
terceraPersonpersonaje, podemos seguir adelante y
hacer clic derecho sobre esto. Y podemos hacer una
búsqueda de cambio de velocidad máxima. Y ahí está. Ahí está nuestra macro
que acabamos de crear dentro de nuestra biblioteca de macros. Y vamos a crear nuestros guiones
para hacer uso de esto. Entonces vamos a agregar una tecla de entrada al frente
mismo de esto. He estado usando la
tecla cinco y la he estado
borrando entre videos. Parece que no lo tengo en
ningún lado de mi gráfica en este momento, hagamos los cinco
Kishore cinco input. Entonces lo que vamos a hacer aquí es al presionar la tecla cinco, vamos a cambiar
nuestros personajes max, movimiento, velocidad. ¿A qué queremos cambiarlo? Bueno, vamos a hacer clic derecho en algún espacio vacío
y voy a hacer flotación
aleatoria en rango. Para que podamos enchufar a este tipo
a nuestra nueva velocidad. Así que cada vez que
pulsamos la tecla cinco, podemos elegir un valor, y yo voy a elegir
un valor, 1-2 mil. Así que cada vez que presionas la tecla
cinco nos va a dar algún valor dentro de ese rango. Cuando soltemos esta clave, vamos a querer establecer la velocidad de movimiento de nuestro
personaje nuevo a lo que normalmente es. Entonces, si arrastramos y soltamos nuestro Componente de
Movimiento de Carácter en nuestra gráfica y
vemos a nuestros personajes la
velocidad máxima de caminata en este momento es 500. Entonces, si arrastramos aquí, podemos hacer establecer la velocidad máxima de caminata. Entonces, cuando lanzemos esto, vamos a establecer nuestra velocidad máxima de
caminata de nuevo a 500. Entonces presionar lo
va a poner ese nuevo valor
liberándolo lo va a hacer retroceder. Y todo lo que vamos
a hacer con cada uno de estos, podríamos hacer algo más. Quiero decir, podría tocar un efecto de
partículas o lo que sea. Sólo voy a imprimir una
cadena a la pantalla. Entonces vamos a
hacer varias impresiones. Strings es ante todo,
solo va a decir caminar y golpear
Control C, Control V. Control V. Puedes adivinar lo que
voy a
enchufar en cada uno de estos campos. Esto va a decir correr. Y éste va
a decir esprint. Sprint, sprint ing. No es que importe
tanto. Vamos a compilar esto. Vamos a guardar, y sigamos
adelante y juguemos esta
configuración, nuestro objeto de depuración, personaje
enorme o en tercera persona, para que podamos ver este guión disparándose en el
lado izquierdo aquí. Bien, así que sólo estoy
caminando, caminando, caminando. Al presionar la tecla cinco, mira en la parte superior izquierda
debajo de la palabra Superhéroe. Entonces cinco, corriendo. Enviándolo de vuelta a cinco. Correr no parece
mucho más rápido. Cinco, esprint. Cinco carreras de velocidad. Ahora correr sí tiene el
mayor alcance, 200-1200. Yo quería que caminara, así que están corriendo, presionando
F5 nuevamente y corriendo. Otra vez. Correr podría estar
bastante cerca de correr. Sprinting, consigue algo de carrera ahora tiene que estar
apenas por encima de 200. Correr, correr. Vamos a dar un paseo por aquí. Voy a seguir adelante
hasta que me ponga a caminar. Ahí vamos caminando. Entonces podemos ver que esa
macro efectivamente está funcionando. Bien, ahora es
importante señalar aquí que pudimos encontrar y usar esta macro aquí dentro de nuestro personaje en tercera persona
porque ambos son tercera persona y
nuestra biblioteca de macros share la misma clase padre. Si obviamente ir a
nuestro Blueprint de Nivel. Vamos a abrir nuestro
plano de nivel aquí. E incluso si tengo alguna referencia a
nuestro personaje aquí, vamos a hacer un evento que
empiece a jugar seguro. Incluso comenzar a jugar. Y íbamos a conseguir personaje de
jugador. Y entonces, ya sabes, Cast to ThirdPersonCharacter,
algo así. Y íbamos
a tratar de encontrar ese cambio velocidad
máxima arrastrado fuera
de aquí, cambiado Max. No puedes encontrar esa macro aquí dentro de tu
plano de nivel. No puedes simplemente hacer clic derecho en algún espacio vacío y encontrar la velocidad
máxima de cambio porque esta no
tiene ninguna clase padre, porque se trata de un Blueprint de
Nivel, pero incluso dentro
de otra clase, pero un plano como
nuestro ejemplo pickup, esto tiene la
clase padre de actores. Entonces, si tuviera que hacer
clic derecho aquí y hacer cambiar la velocidad máxima, tampoco la encuentro
dentro de aquí. Entonces eso es
algo importante a tener en cuenta porque esta macro se creó dentro de una biblioteca de macros con la clase de carácter
padre. Solo podemos encontrar y usar esto en cualquier otro plano que
comparta esa misma clase padre. Entonces, dado ese matiz
detrás de una biblioteca de macros, la
necesidad de definir
una clase padre, ¿cuáles serían los beneficios
de usar una biblioteca de macros? Bueno, considera que tal vez tengas un juego de lucha y tengas una gran cantidad de
personajes a los que
puedas jugar ya que tal vez te
gustaría tener algunas macros que todos los personajes
pudieran compartir y usar. Algo como escoger
entre una tante al azar o tal vez un cambio de atuendo,
ese tipo de cosas. Quiero decir, aquí mismo,
todo lo que estoy haciendo es elegir un flotador
aleatorio en rango, y luego estoy decidiendo si estoy caminando, corriendo o corriendo. Tal vez podríamos alimentar esto
con un entero aleatorio en base al entero
que se escoge. Podríamos jugar al azar enseñamos
algo de esa naturaleza. Ahora bien, si quieres sortear esa limitación de
la biblioteca de
macros, aquí
hay un pequeño hack que puedes hacer para asegurarte de que tus
macros estén disponibles en cualquier lugar. Y eso es para asegurar que
tu clase padre para tu biblioteca de macros sea
de la clase objeto. Ahora para conducir a casa ese punto, permítanme simplemente hacer clic con
el botón derecho en algún espacio vacío aquí y voy a traer, digamos, un nodo de puerta. Y la razón por la que estoy
haciendo esto es para que pueda hacer doble clic sobre esto y llevarme
rápidamente a nuestra biblioteca de macros
estándar. Simplemente navegando hasta esto, podemos encontrar dónde está esto
en nuestro navegador de contenido. Se encuentra en la carpeta de
recursos del blueprint del editor de
contenido del motor . Una vez más, para ver esto, puedes asegurarte de
tener activado el contenido del motor de espectáculos. Y si vamos a nuestra biblioteca de macros
estándar, podemos ver que nuestra
clase padre aquí es objeto. Ahora, volviendo a nuestro navegador de
contenido aquí, si tuviera que hacer clic derecho en
él algunos espacios vacíos, si íbamos a crear
una nueva biblioteca de macros, blueprints, blueprint
macro library. Consulta esto
aquí abajo en la sección de todas las clases. Se puede ver que cada otra
clase hereda del objeto. Entonces, si tuvieras que hacer una biblioteca de macros
estándar que tenga la
clase principal de objeto, cualquier otra clase va
a poder usarla. De ahí, por qué puedes
encontrar nodos como nodo
puerta en cualquier
otro blueprint. Bien chicos, va a
hacerlo todo por éste. Te veremos en
el siguiente video.
70. Matriz: Bienvenidos de nuevo a todos. En esta sección del curso, vamos a estar
volviendo al tema de las variables porque hasta
este punto del curso, solo
hemos hablado de un
solo contenedor de variables. Y en particular, de lo que
estamos hablando aquí es con un tipo de variable seleccionado, tienes encima en el
lado derecho aquí la posibilidad de elegir
el tipo de contenedor. Solo hemos creado variables
individuales. No hemos hablado de
arreglos, Sets, o mapas. Entonces de eso se trata esta sección
del curso,
hablando de estos diferentes tipos de contenedores
variables. En particular, para este curso, vamos a estar aprendiendo
qué es una matriz. Vamos a mostrar cómo
crear unos pocos y luego dar un ejemplo de cómo se
pueden usar. Entonces, en primer lugar, ¿qué es una matriz? Una matriz es un
contenedor de variables que puede almacenar una colección de valores
de algún tipo de datos. Ahora términos más prácticos en array es una lista de cosas
similares. Podría ser una matriz
de valores flotantes, podría ser una matriz de textos, de sonidos, de objetos, etc. Ahora, cada entrada
en la lista tiene asociado
un índice entero o lo que se conoce como
clave asociados con ello. decir, podemos buscar una entrada dada en la lista
si queremos o necesitamos. Bien, aquí estoy dentro de mi
Blueprint de personaje de tercera persona. Así que vamos a crear nuestra
primera matriz. Y vamos a empezar
bajando al panel
Mi Plano. Vamos a crear
una nueva variable, haciendo clic en este botón más, voy a llamar a esto frases
de captura. Y el tipo aquí va
a ser una variable de texto. Y luego sobre en el panel Detalles podemos
establecer el tipo de contenedor, que voy a
hacer clic en este desplegable y elegir una matriz. Ahora necesito compilar
mi plano. Y cuando lo haga, me
va a permitir agregar X número de
elementos a mi lista. Recuerde, en array es
esencialmente una lista y se llega a determinar cuántos
elementos existe en esa lista. Voy a hacer clic en
este botón Plus aquí abajo, tres veces 12.3. Y mi primera frase
va a ser, oye, oye. Mi segundo va
a ser el arco alto diddley. Y mi siguiente va a ser liberado
a los sabuesos. Ahora tenga en cuenta que las variables de matriz o tipos de
contenedor más bien
son designados por estas cuadrículas de
tres por tres colores muestran que
no son variables individuales estándar. Y puedes ver eso representado
no solo por aquí sino abajo en tu panel Mi Blueprint debajo de la sección variable, ves ese icono de gofre de
tres por tres que indica que esa
variable es una matriz, una matriz de variables de texto. Ahora, algo que vale la pena
mencionar aquí es que puedes reordenar tus valores dentro esta matriz haciendo
clic derecho sobre aquí y arrastrando uno arriba, o arrastrando hacia abajo, así. También sobre el
lado derecho aquí tienes la opción si haces clic en
esta pequeña flecha desplegable, insertar, eliminar o
duplicar una entrada. Entonces voy a
insertar solo para presumir eso y luego eliminemos
rápidamente eso. Bien, ahora sigamos adelante
y hagamos uso de esta matriz. Entonces voy a traer
aquí una llave de evento. Haga clic derecho. Voy a hacer las cinco claves. Y entonces lo que voy a
hacer es que voy a traer mis frases. Entonces quiero llegar a, así que
voy a mantener pulsada
la tecla Control,
clic izquierdo y arrastrar. Eso me va a dar un captador. Y luego fuera de esto,
quiero arrastrar aquí y escribir en consigue, quiero obtener una referencia aquí. Lo siento, más bien,
quiero conseguir una copia. ¿Y qué
quiero sacar de esto? Bueno, puedo elegir qué entrada en esta
matriz, 01 o dos. Y nuevamente, esta es
una lista basada en cero. Va a empezar
contando a cero
cuál de estas entradas me
gustaría devolver. Entonces, sea cual sea el número que
escriba aquí que se
corresponderá con la entrada
que quiero devolver. Y voy a elegir
algo al azar aquí. Así que voy a arrastrar hacia atrás
fuera de esto y escribir entero
aleatorio en un rango. Y voy a decir 0-2, porque ese es mi rango, 0-2. Si tuviéramos que ir arriba
para decir lo ponemos en un rango 0-3 y
devolvemos el número tres, solo
obtendríamos un resultado nulo y no se lanzaría ninguna flecha. Simplemente obtenemos un resultado nulo. Voy a arrastrar
aquí, escribir texto impreso. Y vamos a
enchufar esto aquí. Entonces, rápidamente vamos
a darle una jugada a esto. Déjame compilar esto,
asegurarme de que se vea todo bien. Y hago clic en mis opciones de
juego aquí. No quiero simular, estoy en un avión y
nueva ventana del editor. Voy a establecer esto como mis objetos de depuración para que
podamos ver este script disparando. Y no a OBS. Aquí vamos. Cuando presiono la tecla cinco. Hola diddly. Hola. Hola diddly Hill, realmente suena. Se puede ver como soy
spam la clave cinco, estoy recibiendo una de esas
diferentes opciones al azar. Ahora mira esto. Actualmente tenemos tres
frases clave en nuestra matriz. Sin embargo, nuevamente, se
trata de una variable. No tenemos que quedarnos con estos
tres elementos aquí mismo. Podríamos intercambiarlos. Intentemos algo como esto. Voy a traer
una llave de cuatro. Para entradas. Lo hacemos por teclado, Ahí están mis cuatro teclas. Lo que voy a hacer
esto es que voy a poner mi frase. Voy a mantener pulsada la tecla
Alt, hacer clic izquierdo y arrastrar. Vamos a poner esto en
este pin para traer un setter. Y lo que voy a hacer
fuera de esto es arrastrado hacia atrás y escriba
make array. Entonces este nodo, voy
a agregar tres pines. Lo que voy a hacer es
que me voy a poner duro ¿cuáles son los tres elementos que
van a ser en esta carrera? Voy a poner en masa. Y en mi segunda entrada aquí voy a poner en Smithers. Y el tercero van a
ser los meses de Nelson. Jaja. Así que mira lo que
tenemos pasando aquí. Déjame reducir un poco esto un poco,
meterlo aquí arriba. Al hacer clic en la configuración de reproducción, es
posible que esto ya tenga
eso como mi objeto de depuración. Eso está todo bien y
bien. Entonces, si empiezo presionando la tecla cinco
y solo la enviaré spam, verás las
entradas originales en mi matriz. Ahora voy a presionar
la tecla F4 y
va a sobrescribir
esas entradas. Así que sólo voy a
presionarlo una vez. Mira cómo se apaga este fuego, auges. Eso sí se disparó. Entonces ahora cuando presiono
la tecla cinco, las entradas, los elementos de esta matriz han
sido cambiados. Entonces leerá como así las nuevas entradas que
acabo de poner aquí, cambié, cambio el
contenido de esa matriz. Bien, intentemos crear
un par de matrices más. Así que vamos a crear uno más aquí en el panel Mi Blueprint
bajo variables, haciendo clic en este botón más, voy a llamar a esto mi matriz de sonido. Ahora voy a cambiar
el tipo de variable aquí para que sean archivos de onda de
sonido, onda de sonido. Entonces, bajo
tipos de objeto onda de sonido, queremos elegir la referencia de
objeto. Ya es de los tipos de contenedor de
variables de matriz. Entonces eso está todo bien y bien. Y voy a crear
una variable más aquí, haciendo clic en el botón más. Y éste va
a ser mi matriz de actores. Y voy a cambiar
el tipo aquí mismo para ser de la variedad actor
bajo tipos de objeto, actor el objeto referencia. Bien, ahora voy a
compilar ambos de estos. Y para mi matriz de sonido, voy a entrar duro
tres de estos, así que 12.3. Y aquí puedo meter
algunos sonidos. Iré con cualquiera de tres. Tengo doble ventana cerrar cualquiera de tres
haremos esto es todo solo por ejemplo sake. Var subrayado
lo suficientemente cerca para mi tercera, simplemente
voy a
ir flotando UI cerrar. Así que te imaginas, digamos que tuve una serie de ruidos de bocina de auto. Quieres una
llave increíble en tu teclado va a
hacer que se apague la bocina de tu auto. Estas pueden ser tres
variaciones diferentes a ese sonido. A lo mejor solo quieres
elegir uno al azar. Bien, así que eso está todo bien y lo suficientemente bueno para
mi matriz real. Voy a hacer 12.3. No obstante, voy a dejar
estos como vacíos en estos momentos. Voy a compilar esto
y guardar una cosa más. Olvidé marcar esta
casilla instancia editable, así que asegúrate de
marcar esto también. Adelante, compile
y ahorre una vez más. Lo que voy a hacer es que
una vez que juegue a este juego, voy a establecer qué objetos van a ser
parte de esta matriz de actores. Así que tenga en cuenta que esta matriz
actualmente esta lista está vacía. Entonces lo que voy a hacer es
volver a mi nivel aquí. Voy a añadir tres objetos.
Realmente no importa. Yo solo haré un cubo, una esfera y un cilindro. Así. Bien, tengo esos
tres puestos aquí. Volvamos a nuestro personaje en
tercera persona. Solo voy a intercambiar
nuestras matrices aquí, solo modificamos un poco nuestros
scripts aquí un poco. Así que aquí bajo frases, nos vamos a deshacer de
estas cuatro o cinco claves. Voy a traer mi matriz de
sonido manteniendo presionada Control, clic izquierdo y arrastre. Vamos a arrastrar
un tipo aquí, consigue, queremos obtener una
copia, enchufar estos. Entonces en realidad no quiero
imprimir texto aquí. Quiero tocar un sonido. Reproducir sonido. Lo siento, más bien, vamos
a arrastrar fuera de aquí y escribir play sound 2D, así. Y cuando presione mis cuatro teclas, borre estas aquí mismo, voy a agarrar a mi actor, levantar una
tecla Control que mantiene pulsada. Clic izquierdo en traer una
referencia para ese fin, voy a arrastrar fuera
de este tipo en gets, vamos a conseguir una referencia. Copia, más bien no una referencia. Siempre los fastidio. Voy a hacer un entero aleatorio
en rango para esto. Entonces Control C, control V. Ahora lo que voy a hacer aquí es que
vamos a arrastrar
esto y
sólo vamos a destruir a un actor. Entonces cuando presione la tecla cuatro, voy a destruir
una de estas ahora otra vez, esta es actualmente
una matriz vacía. Entonces vamos a compilar esto. Ese guión va a
quedar bien aquí. Voy a seguir adelante
y saltar a mi nivel. No vamos a llegar a ver cómo se
disparan estos guiones. Pero si necesitas volver
aquí y hacer referencia a estos, eso está todo bien y bien. Bien, aquí vamos. Bien, ahora con mi
personaje en mi nivel, puedo verlo poblado
aquí en el outliner. Voy a seguir adelante y
seleccionar mi terceraPersonaPersonaje. Y ahora necesito establecer los tres elementos
de mi matriz de actores. Así que voy a hacer una
búsqueda para ello aquí con mi terceraPersonpersonaje
seleccionado. Hacer una búsqueda de matriz de actores. Y tenga en cuenta que todavía no tengo
nada establecido aquí. Entonces voy a hacer click en
estas flechas desplegables, y voy a
ponerlas para que sean el cubo, cilindro y esfera
respectivamente. Entonces cubo cilindro
para el siguiente. La esfera está en algún lugar de aquí. Hay una esfera. ¿Bien? Y déjame volver a subir mi ventana de
juego. Bien, así que al presionar
esa tecla de cinco en primer lugar, vamos a escuchar algunos sonidos. Todo bien y bien. Bien, y ahora mis
cuatro relojes clave, estos desaparecen cuando
son seleccionados. ¿Se han ido los cuadrados los cilindros? Vuelvo a presionar la tecla F4, nada desaparece también, debió haber seleccionado ese elemento nuevamente. esfera se ha ido, y
finalmente, la plaza se ha ido. Para que puedas ver esos
diversos arreglos funcionando. Ahora la razón por la
que me sale este error es porque estaba tratando de
destruir a algunos actores. Ahí está yo estaba presionando
mis cuatro teclas aquí. Estaba tratando de elegir un entero
aleatorio y un rango, solo tratando de elegir
uno de estos tres. Ahora el primero que se
destruye fue el cilindro, que creo que
también eran elementos . Podría equivocarme en eso. Una vez que eso esté destruido y vuelva a elegir ese mismo número, va a lanzar
ese error cuando dejé de jugar
diciendo como, Oye, estoy tratando de destruirte actor, pero ya has
han sido destruidos. Pero nuevamente, todo esto es
para fines académicos. Bien, sólo un
poquito más aquí para ir. Antes de concluir esto, quería señalar
eso para cualquier matriz, y vamos a traer aquí nuestras
frases clave. Cualquiera de estos tendrá las mismas opciones disponibles
para usted si
bebió de esto y se encuentra en
la sección de
utilidades, matriz de utilidades, tiene un grupo de diferentes opciones
que puede usar para modificar
para editar su matriz. Se le puede agregar. Se puede arrastrar fuera de
esto y escribir en claro. Puede borrar su matriz. Así que podríamos agregar otro
elemento a nuestra matriz aquí. Este despejaría
la matriz por completo. Puede agregar la matriz que va a tomar una
matriz de frases clave. A lo mejor tienes un segundo rayo de frases clave y
podrías combinarlas. Podrías, empecé al azar. Podrías elegir
una entrada aleatoria de tu matriz y
también devolver el índice. Entonces eso
elegiría una entrada aleatoria que devolviera el índice. Entonces, con cualquier matriz tienes un grupo de opciones con las
que puedes
jugar para modificar esa matriz alguna
manera, forma o forma. Y nuevamente, puedes encontrar los que están debajo aquí, array de utilidades. También tienes muchos más de ellos
disponibles para ti. Muy bien, gracias a saber
antes de concluir esto, los valores dentro de una
matriz, una vez más, son valores de
índice basados en cero, es
decir, que el primer
índice es cero, no uno. Las matrices son una excelente manera de almacenar una lista de este
mismo tipo de datos. ¿Dónde usarías esto? Bueno, tuve una variedad de
frutas que engendré en un juego al estilo Pac-Man que
creé en Unreal mientras hacía tiempo. Otra cosa a tener en cuenta sobre
las matrices es que puedes tomar una entrada específica de una
lista obteniendo una copia, como lo estamos haciendo aquí. O puedes conseguir
entrada aérea o aleatoria como lo estamos haciendo aquí. Entonces, si quieres
obtener una copia específica, puedes simplemente romper
este cable y decir:
Oye, quiero elemento cero. El enfoque aleatorio
haría algo así. Ahora más tarde, cuando
hablamos de control de flujo, los nodos mostrarán cómo mirar
a través cada entrada de la matriz
usando un bucle
for o un while para hacer algo
a cada entrada de la lista o para conducir alguna lógica
basada en mientras se da, mientras que se encuentra una entrada dada
en la lista. Cierto chicos, eso va
a hacerlo todo por este. Te veremos en
el siguiente video.
71. Conjunto: Bienvenida. En este video, nuestro objetivo es conocer qué es un contenedor de variables
establecidas. Mostrar cómo crear uno, y luego dar un ejemplo
de cómo se pueden usar. Entonces, antes que nada, definamos qué es un conjunto par. Bueno, un conjunto es como una matriz en que es
un contenedor de variables que puede almacenar una colección de valores del mismo tipo de datos. Por aquí en mis tipos de variables. A la derecha, tengo
diferentes tipos de contenedores, conjunto de matrices
individuales o mapa. Así que estamos hablando ambientado
en este video, por ejemplo, podríamos tener un conjunto de tesoros
ocultos que se te pide que encuentres en una
colección de tesoros escondidos a nivel. Ahora, una de las
cosas únicas de un conjunto es que todas las entradas dentro un contenedor de conjunto deben ser
únicas, sin duplicados. Llegaremos a algunas más de
las diferencias entre arrays y sets en solo
un poquito aquí, voy a estar
creando un par de variables aquí dentro de
mi Blueprint de Nivel. Pero para este ejemplo, también
podrías hacer esto en tu
terceraPersonaPersonaje. Olvidaste cómo abrir tu Plano de Nivel
ahí mismo. Blueprint de Nivel Abierto.
Y vamos a entrar bajo nuestro panel Mi Blueprint y
crear un par de variables. Al hacer clic en este botón más. Una vez, voy a crear
uno llamado tesoros escondidos, todos, voy a cambiar
el tipo aquí para que sea un nombre. Vamos a puñetear en algunos nombres por algunos tesoros
escondidos. Y luego en
el panel Detalles, voy a cambiar el tipo de
contenedor aquí de single a set. A continuación, voy
a hacer clic derecho sobre esto y voy
a duplicarlo. Se puede ver la tecla de acceso rápido
para ese control más D. Y esto se va a
llamar tesoros escondidos. Encontrado. Y luego una vez que compila, puedo agregar algunas entradas aquí, algunos elementos de conjunto diferentes. Entonces comencemos con tesoros
escondidos todos. Voy a hacer clic en
este botón más una vez. Y si intentaste hacer clic
en él por segunda vez, va a decir que no
puedes agregar otra hasta que agregues alguna,
una entrada aquí. Entonces voy a llamar a
esta estatua de oro. Al volver a hacer clic en el botón
más, llamaré a este collar. La razón por la que no puedes agregar
otra cuando dice ninguno es porque intentaría crear una entrada duplicada que también
diría ninguna. Así que recuerda, los conjuntos
no pueden tener duplicados. Volviendo a hacer clic en este botón más. esto le llamaremos alfarería antigua. Alfarería. Alfarería. Claro. Cerámica antigua. Al hacer clic de nuevo en el botón más, vamos a llamar a este
pergamino de sabiduría. Y haciendo clic de nuevo en el botón
más, vamos a llamar a
esta cresta guerrera. Bien, así que ahora voy a poner algunos tesoros escondidos
que se encuentran aquí. Y en realidad ¿sabes qué? En realidad quiero tener algunas entradas
duplicadas aquí. Así que voy a eliminar
esta. Y te diré por qué
vamos a eliminar esto para
asegurarnos de que tenemos nuestros nombres
deletreados exactamente igual. Entonces voy a hacer
clic derecho sobre esto. Vamos a duplicar
esto. Una vez más. Yo llamo a esto encontrado, y voy a
compilar esto en. Una vez que lo compile, puedo
ver todas esas mismas entradas. Solo eliminemos
algunos de los míos aquí, así que eliminaré el collar
dando clic aquí mismo. Eliminar mantendrá estatua de oro. Mantengamos también pergamino
de sabiduría. No, realmente no
importa cuáles nos quedemos, sino que solo mantengamos un par
de ellos ahí mismo. Ahora bien, tenga en cuenta que ciertos
tipos de variables no pueden usar conjuntos. Si tuviera que seleccionar mi, digamos, variable
booleana aquí y pasar a los tipos de
contenedor. No puedo establecer un set para esto. También puedo hacerlo para
una tecnología variable de texto, o un rotador o una transformación. Todos los demás se pueden
establecer como un tipo de contenedor establecido. Sólo pensé
que lo tiraría aquí también. Ahora bien, si arrastro una
referencia a uno de mis sets aquí y luego lo
sacan arrastrado fuera de él, libera algo de
espacio vacío debajo la sección del conjunto de utilidades. Ves que tengo un
montón de diferentes funciones disponibles para manipular
los datos de alguna manera, dar forma o formar muchas
funciones específicas de conjuntos. Lo que voy a hacer
aquí es adelantar el video rápidamente
después de agregar estos, y simplemente
hablar rápidamente sobre algunas de las diferentes opciones
disponibles para ti. Bien, y aquí hay un montón
de esas funciones de las que
estaba hablando
que son específicas para establecer. Se le puede agregar un elemento. Se le puede quitar un elemento. Tienes algunas comparaciones entre dos
conjuntos diferentes, ese tipo de cosas. Ahora una cosa que
vale la pena señalar aquí, si solo estuvieras
para hacer clic derecho y algún espacio vacío como
lo hice con este nodo de
aquí mismo haciendo una
búsqueda de un nodo de unión. Cuenta con estos grandes pines
de entrada y salida. Estas son
entradas y salidas comodín, lo que
significa que cualquier
tipo de
datos se conecta primero a una entrada
o salida, ese es el tipo de datos, el resto de la toma de entrada o salida. Y solo para demostrarlo, estos son grises
ahora mismo si tuviera que enchufar esto para decir este top, se puede ver que
todos se vuelven morados para representar el nombre tipo de
variable. Ahí. Para eliminar eso y poner
uno en el lado de salida, va a cambiar el
lado de entrada a ese mismo color, ese mismo tipo también. Bien, aquí a mi Plano de
Nivel, he empezado a crear
un guión mostrando un ejemplo práctico de cómo se pueden usar los
sets en un juego. Entonces, cuando presiono la tecla tres, lo que voy a estar haciendo es
averiguar la diferencia entre dos conjuntos diferentes. Mi top set va a contener todos los tesoros dicen que
necesito encontrar en un nivel dado. Mi fondo
me va a dar los tesoros que
he encontrado hasta ahora. Lo que esta
nota de diferencia va a hacer es que va a dar salida a
todas las. No he encontrado la diferencia entre un conjunto y otro. Así que no puedo simplemente arrastrar fuera de aquí y escribir cadena de impresión. Entonces no puedo, esto no va a imprimir los nombres de todos los elementos
del conjunto que
actualmente no se encuentran. Entonces lo que tengo que hacer aquí
es arrastrado fuera de aquí. Esto me dará el
tesoro resultante no se encuentra. Y voy a
escribir en dos array. Lo que esto
me permitirá hacer es generar una matriz de todos estos
diferentes elementos del conjunto. La diferencia
entre estos dos. Y con esto, puedo arrastrar
fuera de aquí y traer un para cada bucle. Ahora aún
no hemos hablado los nodos de control de flujo que se van a convertir
en la siguiente sección. Pero lo que me va a permitir este
nodo de control de flujo es mirar a través de cada
elemento de esta matriz, cada elemento de esta lista, y luego enviarlos
a la pantalla aquí. Y va a estar
sacándolos a
la pantalla de a través de
una cadena de impresión. Entonces, para cada elemento en esa matriz, vamos a tomar
eso y convertir ese nombre en una cadena para que
podamos generar. Vamos a compilar aquí,
asegurémonos de que nuestro script se vea bien. Guárdalo. Vamos a jugar. Puede establecer su objeto de depuración su mapa de prueba allí si
aún no lo ha hecho. Y ahora si presiono
esa tecla tres, se
puede ver que esos son los tres
elementos que aún tengo que encontrar. Solo estoy enviando spam
con tres claves. Esa es la diferencia entre mi set completo y mis sets encontrados. Bien, así que ahora
probemos algo más aquí. Voy a traer
el teclado VY, la tecla V, no lo sé. Y con esto,
voy a traer una referencia a mis tesoros
escondidos encontrados. Voy a arrastrar fuera de aquí y voy a escribir AD. Asegúrese de elegir
la función add en esta categoría de conjunto aquí. Y vamos a agregar collar. Vamos a decir que ya
encontramos el collar. Entonces vamos a agregar eso a nuestra lista de tesoreros encuadernados. Entonces esencialmente esto
sería oro,
estatua, pergamino de sabiduría
y luego collar. Así Compilar, Guardar. Ahora cuando toque, cuando presione la
tecla tres, va a decir, oye, te faltan esos tres, pero ahora voy
a presionar la tecla V. Vamos a
decir, sí, ya encontramos el collar, llave V. Bien, así que eso se ha sumado
a mi lista de mil. Ahora cuando presione la tecla tres, va a decir que esos
son sus dos desaparecidos. Hemos encontrado el collar. Bien, acabemos este video hablando de algunas de las similitudes y diferencias
entre arrays y sets, comenzando por algunas similitudes. Bueno, tanto arrays como sets almacenan una colección de valores
del mismo tipo. Ambos te permiten agregar
y eliminar elementos, y me has visto hacerlo en
el transcurso de los dos
últimos videos. En cuanto a las diferencias, el
orden de los elementos es diferencia en las matrices que
tiene una lista ordenada. Los conjuntos
se consideran desordenados. Ahora, en cuanto a la singularidad
de los elementos, las matrices pueden tener elementos duplicados. Los conjuntos no pueden tener duplicados, y esa es una de
las diferencias clave entre matrices y conjuntos. Los conjuntos no pueden tener duplicados. Las matrices pueden, en cuanto a las diferencias
funcionales, las matrices pueden buscar y obtener un elemento individual a través una búsqueda de índice porque
están ordenadas. Y solo para presumir
eso rápidamente, tengo una variedad de actores de
recogida aquí. Si arrastro y suelto
eso y lo consigo, puedo arrastrar fuera de aquí y obtener, puedo obtener un
elemento individual dentro de esa matriz, cualquier número aquí, nuevamente, comenzando con la lista cero, actualmente
no tienen nada en esta matriz. Pero sí, puedes obtener unos elementos dados
especificados por un índice. Ahora en cuanto a los sets, no
pueden
buscar ni obtener un elemento individual. Sin embargo, los sets son geniales para comparaciones
entre listas, como me acabas de ver hacer con
estos tesoros ocultos, todas las listas y mis tesoros
escondidos, set
ilimitado o una matriz, a
qué deberías ir con? Bueno, yo iría con un set si el orden no es para
nada importante. La singularidad de los elementos
es un requisito. Por otro lado,
ir con una matriz si el orden es importante, pero duplicar elementos, no es
gran cosa allí
posible dentro de eso. Ahora los sets también tienen el beneficio de su poco más
rendimiento que las matrices. Entonces eso puede ser algo
a tener en cuenta también. Pero nuevamente, las matrices son
excelentes para si necesita
buscar en un
elemento individual dentro de esa lista. Los sets son geniales si
necesitas comparar un conjunto frente a otro
, ese tipo de cosas. Bien chicos, eso va a
hacer, ofrezcan este video. Nos vemos en la siguiente.
72. Mapa de HiRez: Bienvenida. En este video, nuestro
objetivo es explorar qué son
los contenedores variables de mapa, cómo crearlos
y cómo podemos usar uno en un proyecto de juego. Ahora, ver va a
ser creer que este
va a ser más fácil demostrarlo que de
lo que se habla. Así que vamos a saltar
directamente a la creación de uno. Ahora, vamos a estar creando
este contenedor de variables de mapa dentro de nuestro controlador de reproductor bp. Este es un activo que
creamos durante nuestro evento. Comienza el cursor sobre el video. Si quieres volver atrás y
revisar eso cuando puedas. Si no sabes cómo
crear un controlador de reproductor, te
voy a dar
una cartilla rápida, un rápido repaso aquí. Lo haces haciendo clic derecho,
pasando por debajo de la clase Blueprint, quieres crear un controlador de
jugador. Y entonces lo
llamarías así algo así como bp
player controller. Pero luego después de hacer eso, tienes que asociarlo ya
que eres controlador de jugador
activo para el proyecto en el que
estás trabajando. Y lo puedes hacer
en tu configuración. Ajustes del proyecto
bajo mapas y modos. Justo aquí es donde puedes colocar
en esa clase de controlador de jugador. Ahora, vamos a
tener algunos videos más adelante en el curso
donde platicamos específicamente sobre
estos planos
conocidos como planos de Framework. Pero hay una
razón específica por la que quiero mostrar este contenedor de variables de mapa
usando un controlador de reproductor bp, mi
plano de controlador de reproductor aquí mismo. Y eso se debe a un blueprint de controlador de jugador
está asociado con, en nuestro caso, son
terceraPersonaPersonaje. Ahora, en un juego real, tu personaje podría morir
y cuando llegue a responder, todas las variables dentro de ese
plano de personaje del jugador se
restablecerían a sus valores
predeterminados. Ahora, algo así como en la variable de
inventario, donde contiene el
nombre de un artículo y cuántos tienes de
ese artículo estaría mejor almacenado en un plano de controlador de jugador porque si tu personaje muere, tu personaje muere en
esas variables consigue resetear en un controlador de jugador
que se mantiene vivo, por así decirlo, permanece persistente durante toda tu sesión de
juego. Así, si tu personaje muriera, esos valores no serían
borrados dentro de
tu controlador de jugador. Bien, así que con su
controlador de jugador creado y configurado dentro de la
configuración de tu proyecto en mapas y modos. Clase de controlador de jugador. Vamos a bucear dentro de aquí. Y si obtienes esta
pequeña ventana que dice, Oye, esto es solo un
dato, solo un plano. Podemos dar click aquí mismo para abrir el editor de planos completo
y ver qué queremos ver. Muy bien, lo primero que
hay que hacer aquí es crear una variable. Ahora, en realidad antes de hacer eso, quiero borrar todas
estas variables heredadas solo para simplificar esta sección
del panel Mi Blueprint, todas
estas son heredadas de nuestra clase padre del
jugador variedad de controladores. Entonces puedo Hola estos afuera haciendo
clic en este ícono de engranaje. Desmarcando mostrar las variables
heredadas y eso solo simplificará un poco
eso. Así que sigamos adelante y agreguemos aquí
nuestra variable deseada. Voy a nombrar este
inventario porque eso es algo bueno para almacenar dentro de un plano de
controlador de jugador. Una vez más, un
personaje jugador puede morir y responder y morir y las variables de
respuesta dentro de
un controlador de jugador persistirán durante toda
tu sesión de juego, el controlador del jugador
no muere. Piense en ello como como
las cuerdas de títeres controlan la
marioneta que pueden ser
golpeadas de la cuerda una
y otra vez. Muy bien, con esto seleccionado
en el panel Detalles, vamos a cambiar
nuestro tipo de variable aquí, booleana a cadena, y luego nuestro contenedor de
variables de
un solo a un mapa. Ahora eso me permite agregar
un tipo de datos secundario aquí. Entonces quiero tener una cadena para los nombres de mis artículos de inventario. Y entonces voy a
tener un entero para decir cuántos de ese ítem
dado tengo. Entonces podría tener cosas como poción de
salud, tres de esas, hombre una poción tres de
esos cascos de cuero , uno no blindaría ,
etcétera, etcétera. Ahora para agregar elementos a
este tipo de variable, voy a dar click en Compilar aquí. Y podemos ver más
en nuestro panel Detalles, podemos agregar elementos. Voy a hacer clic en
este botón más una vez. Si intento darle clic de nuevo, me
va a decir
, no, no puedes hacer eso. Ahora con una variable de mapa. Es un contenedor que
almacena una colección de pares de valores
clave donde las claves y los valores pueden ser
de diferentes tipos de datos. Una vez más, en este caso, mi clave va
a ser la cadena. El nombre de mis claves de
artículo de inventario debe ser único. Entonces para mi primera aquí, voy a llamar a
esta poción de salud. Y voy a decir. Tengo tres de
estos por defecto. Entonces la poción de salud
va a ser mi clave, y aquí va a estar mi valor representado
por un entero. Estos no tienen por qué ser únicos. Estos pueden ser los mismos, y voy a representar eso aquí agregando otro elemento aquí. Entonces las claves, en mi caso, las cuerdas, necesitan ser únicas. Voy a hacer que esto
sea hombre, una poción. Y voy a establecer tres es un valor
por defecto para eso. Y vamos a agregar un par más aquí solo por diversión. Voy a añadir seguro. Cascos de piel. Tenemos uno de esos. Y pinchando más aquí, tengo un escudo de madera
y tengo uno de esos. Bien, ahora
tengo mi colección de pares de valores
clave todos dentro de
este contenedor de mapas. Ahora, los mapas son geniales porque admiten búsquedas eficientes y recuperación de estos valores con el uso de estas claves
asociadas. Bien, ahora quiero crear
una variable más aquí, y esto va a entrar en juego
un poco más adelante. Entonces voy a hacer clic en este botón
Plus y voy a nombrar este elemento para usar. Y quiero que este sea
del tipo variable string. Antes de establecer esto
como un tipo de variable de cadena, voy a
establecer temporalmente esto en un Booleano. Ahora algo a tener en cuenta
aquí es que no se pueden tener ciertas variables como mapas. Entonces si tuviera que tratar de decir, Hey, variable tipo Boolean, quiero
tenerte dentro de un mapa. No puedes hacerlo. Por lo que ciertos
tipos de variables no pueden usar mapas. Incluyen variables booleanas, textuales, rotadoras y
transformadas. Entonces pensé que tiraría
eso ahí afuera ahora mismo. Esos no pueden ser, no pueden usar
el contenedor de variables de mapa. Bien, ahora realmente
quiero cambiar este tipo de datos aquí de
booleano a una cadena. Y vamos a compilar esto para que podamos establecer
un valor predeterminado. Y esto va
a ser maná océano. Entonces como su nombre indica, este va a
ser nuestro ítem para usar a un hombre de poción
que entrará en
juego en el futuro aquí. Justo a continuación, queremos crear nuevos planos de clase de actor. Así que vuelve a
tu navegador de contenido. Voy a poner esto debajo la carpeta de scripting Blueprints. Lo vamos a poner
dentro de ahí. Entonces voy a hacer clic derecho
en algún espacio vacío, vamos a crear
una nueva clase de blueprint. Va a ser de la
variedad actor y vamos a nombrar a esta poción de
manera de subrayado BP. Y luego vamos
a hacer doble clic sobre este tipo para abrirlo. Y en primer lugar, vamos a agregar un par de componentes y
luego establecer algunos detalles. Entonces el primer componente
que quiero agregar es una esfera componentes. No este tipo de esfera, sino más bien un
colisionador de esferas, colisión de esfera. Eso es lo que estoy buscando. Y voy a establecer que el radio de la esfera
por aquí sea 70. Y luego con su
lanza los componentes seleccionados dentro de esto se
unen a esto más bien, voy a agregar un cilindro. Y así sólo voy a teclear cilindro y encontraremos
un cilindro de formas básicas. Y sí tengo algunos ajustes
que quiero establecer para esto. Voy a cambiar la
escala para que se desbloquee, así que desbloquea eso y
vamos a establecer que sea 0.25, 0.2, 5.0, 0.5. Entonces voy a inclinar esto. Vamos a
rotarlo un poco. Entonces aquí mismo en los cables giran es que
eso a negativo 30. Y también voy a hacer que
este material sea algo así como que tengo
vértice, algo rojo. Vamos con eso. Ahora se ve una especie de hombre por igual. Claro. A continuación vamos a agregar una variable dentro de
nuestro Blueprint bp. Así que haga clic debajo de este botón más para la sección de variables. Vamos a llamar a este
ítem para usar también. Vamos a cambiar el
tipo aquí a una cadena. Vamos a
compilar para que
podamos establecer un valor predeterminado. Y esta vez voy
a escribir la poción Amana. Voy a hacer esto en minúsculas, pero solo estoy haciendo esto para
que esto sea
diferente a cómo lo
nombramos como el valor predeterminado dentro de nuestro controlador de
reproductor bp. Ahí usamos la carcasa superior
para los inicios de nuestras palabras de maná y poción
solo para demostrar que podemos, porque las carcasas no van
a importar para nuestro mapa aquí. Entonces sigamos adelante y compilemos
y guardemos esto de inmediato. Ahora, antes de ir
más allá aquí, quería presumir en nuestro
controlador de reproductor bp que para nuestra variable de mapa aquí
voy a mantener pulsada Control clic izquierdo y
arrastrar a nuestro gráfico de eventos. Si arrastramos fuera de esta versión, si vengo bajo el mapa de Utilidades, tenemos acceso a toda
una serie de funciones que pueden manipular
nuestros datos de mapa de alguna manera. En muchos sentidos
eso es similar a nuestras matrices y establecer tipos de
contenedores. Y sólo voy a
añadir algunos de ellos aquí. Entonces voy a traer en
un anuncio uno esto nos permite agregar
a nuestro mapa. Arrastrando de esto, también
hay otro
para encontrarlo dado artículo. Arrastre fuera de esto, puedo quitar un elemento de nuestro mapa dragón
fuera de esto otra vez, puedo encontrar uno que contenga, una vez más, puedo arrastrar. Puedo hacer búsqueda
solo de las claves que existen dentro de este mapa, es
decir, estos tipos, puedo arrastrar fuera de
esto y podría traer una función que encuentre solo los valores de este mapa. Así que aquí hay muchas funciones
diferentes que pueden manipular o darte
información sobre tu mapa. Muy bien, a continuación
vamos a regresar a nuestra menopausia bp para que
podamos agregar algún guión para agregar
a nuestro inventario aquí
vamos a agregar a nuestro inventario de pociones Amanda cuando recojamos una poción a un hombre. Entonces volviendo a
nuestra BPMN de movimiento, queremos hacer algo cuando
estamos superponiendo esta esfera. Así que dirígete a tu gráfico de eventos, vamos a hacer clic derecho
en nuestro colisionador de esferas. Vamos a agregar
un evento para cuando empecemos a superponer eso. Y sólo queremos que algo
suceda cuando nuestros
otros actores que superponen a esta esfera es
la terceraPersonaPersonaje. Entonces lanzando
vamos a hacer una
búsqueda de Cast to
ThirdPersonCharacter. Y si se trata de un
ThirdPersonCharacter, podemos extender nuestro script aquí. A continuación, lo que queremos hacer
es que queremos hablar con nuestra variable de inventario aquí dentro de nuestro controlador de
reproductor bp. Entonces, ¿cómo podemos hacer eso? Bueno, de vuelta aquí dentro
de nuestro bp man of motion, voy a hacer clic derecho y
algo de espacio vacío y
teclear get player controller. Y entonces un error que muchos
cometen es que piensan que, bueno ahora tengo esta función get
player controller. Sólo puedo arrastrar fuera de
aquí y hacer una búsqueda de
inventario para encontrar esa variable. Y no, no puedes, porque necesitamos averiguar qué controlador de jugador
queremos hablar contigo. Project podría tener muchos controladores de
reproductor. Entonces este es el arrancador para identificar con qué
controlador de jugador queremos hablar. Así que arrastrando fuera de aquí, podemos lanzar a nuestro controlador de
jugador, nuestro
controlador de reproductor bp para
acceder a la información
dentro de él. Ahora voy a simplificar un poco
este nodo de aquí. Tengo algunos pines de ejecución
aquí y aquí mismo. Si hago clic derecho en este nodo, puedo simplificar este nodo
hasta lo que se conoce como un elenco puro. Sé que esto
no va a fallar porque tengo un proyecto para un
jugador. Sé que he configurado mi controlador de reproductor
bp como
el controlador de reproductor que mi proyecto está usando aquí
en la configuración de mi proyecto. Entonces en esta instancia en particular, está bien que no compruebe si he tenido éxito
en esta casta o no. Sé que
va a tener éxito. Voy a hacer clic con el botón derecho
convertir a puro elenco. Va a eliminar
esos pines de ejecución, pero aún así puedo alcanzar
dentro de él. Y acceder a mi inventario, lo cual es bastante dulce. Entonces ahí está mi mapa. El siguiente que quiero hacer es
que quiero sacarme de aquí y hacer una búsqueda para encontrar. Y lo que este nodo me permite
hacer es encontrar una clave dada, valor
dado, dada una clave de entrada. Entonces la clave que quiero
buscar aquí es hombre una poción. Así que voy a arrastrar y
soltar esto en mi entrada. Esa es la clave que
voy a estar buscando dentro de este mapa. Y va a dar salida
al valor de esto. Pero quiero incrementar esto. Quiero incrementar esto cada
vez que superpusimos esto. Entonces vamos a
empezar con tres pociones de Amanda. Cuando me superponga
esto, quiero que simplemente incremente esta cantidad. Entonces me voy a
arrastrar fuera de aquí. Esto va a escupir
mi valor de tres. Arrastrando de esto, voy a escribir en incrementos. Entonces este nodo aquí mismo va a
incrementar
automáticamente este 3-4. En este caso. Voy a cablear esto
por aquí así. Pero no basta
con incrementar esto. Todavía necesito agregar
todo esto de nuevo a mi mapa aquí. Entonces lo que voy a hacer es arrastrar de mi
inventario una vez más, escribir anuncio, entrar en el mapa de
Utilidades, agregar. Entonces voy a ir así. Queremos agregar a
nuestras pociones de maná. Y a qué queremos sumar
esa cantidad se actualizan. La cantidad va a ser
enchufada aquí abajo. Entonces eso va a establecer una nueva cantidad para
nuestras pociones de maná. Y entonces lo que voy a
hacer es arrastrar fuera de aquí. Queremos
imprimir esto en la pantalla para que
podamos
ver esto funcionando. Y voy a arrastrar hacia
atrás fuera de este tipo in, append in. Vamos a imprimir algunos
textos a la pantalla. Entonces lo primero que
vamos a
imprimir es el nombre del artículo, en este caso un hombre, una poción. Entonces voy a poner en
un espacio igual al espacio. Y entonces lo tercero que
quiero incluir aquí
es que los montos son montos
actualizados. Si arrastro esto hacia abajo desde
la salida de nuestros incrementos, podemos generar esa cantidad. Por lo que esto leerá como hombre una poción equivale a la cantidad
actualizada. Y luego por último pero no menos importante, queremos destruir a este actor. Así que arrastrando fuera de aquí,
vamos a escribir Destroy Actor. Se. Vamos a compilar los guiones y sigamos adelante y ahorremos. Ahora. Todo esto está bien y es bueno, pero aún no hemos agregado a
ningún hombre
repartir a nuestro nivel. Así que sigamos adelante
y hagamos eso rápido saltando de nuevo
a nuestra pestaña de nivel. Arrastre y suelte solo algunos de
estos aquí así, y arrastra y arrastra. Y aquí vamos. Una vez más, recuerda que estamos empezando a los tres hombres una poción. Así que mira hacia arriba en la
parte superior izquierda aquí, y ahora tenemos 45.6. Yo diría que eso
está funcionando bien. Ahora, en interés del tiempo, vamos a regresar a
nuestro controlador de reproductor bp donde he configurado algún guión para decrementar
de nuestro inventario. Esta es casi la misma
configuración que tengo en mi hombre, un plano de poción. Sin embargo, la única diferencia
aquí es que estoy decrementando de nuestro inventario
en lugar de incrementarlo. Una vez más, estoy
usando mi clave aquí, mi clave de poción Amana, aunque estoy usando una M
mayúscula, una P mayúscula, sigue hablando con este hombre, una clave de poción aquí mismo. Entonces ese es el que estoy encontrando. Y entonces simplemente estoy decrementando de ello y luego agregando esa decrementada una montaña de nuevo a mis montos de inventario actualizados. Entonces estamos usando la clave
para ajustar el valor. Así que solo muestra esto. Tengo este controlador BP
configurado como mi objeto de depuración aquí. Entonces estoy empezando
con tres 456. Y debería tener alguna
fuente roja para decrementar esto, voy a presionar 7543, etcétera, etcétera. Entonces ahí lo tienes. Un contenedor de variables de mapa
para una clave, pares de valores. Búscalo por la clave, y luego puedes incrementar
o decrementar el valor. Es genial para algo como
inventario, como esto. Muy bien chicos, eso va
a hacer para ofrecer este. Te veremos en la siguiente.
73. Enum HiRez: Bienvenida. En este video, nuestro objetivo
es conocer las enumeraciones, que es la abreviatura de
una enumeración. Este es otro tipo de
listas que podemos crear y usar para ayudar a impulsar la lógica
en nuestros scripts de blueprint. En realidad es una de mis variables favoritas
para crear y usar. Entonces, ¿qué es una enumeración? La enumeración es un tipo de datos que consiste en un conjunto
de valores con nombre. Se trata de un listado de
etiquetas, por así decirlo. Ahora bien, esto es algo
que vamos a crear aquí en nuestro navegador de
contenido. Y luego vamos a
hacer uso de él dentro de nuestro
Blueprint de personaje de tercera persona. Así que entra bajo tu carpeta
Blueprints de scripting, este va a ser
un lugar sensato para crear una enumeración. Y si hacemos clic derecho
y algún espacio vacío, tenemos esta categoría de
planos. Y en nuestro pequeño menú volador, tenemos la capacidad de
crear una enumeración, dice en la
punta de herramienta, y la enumeración es una lista de valores con nombre. Sigue adelante y haz clic en esto, y vamos a darle un nombre a
esto de inmediato. Voy a llamar a esto E
subrayado estado de salud. Ahora siempre me gusta nombrar mis enumeraciones creativas
con E guión bajo. Pero nuevamente, puedes usar una convención de nomenclatura
de tu elección. Y luego voy a hacer doble clic
sobre esto para abrirlo. Ahora dentro de aquí
vamos a dar click sobre este botón
más agregar enumerador una vez, dos veces, tres veces
para permitirnos agregar algunas etiquetas dentro de aquí
que podamos hacer uso de. Entonces voy a
sobrescribir cada uno de estos. El primero
se llamará Super. Se va
a llamar al segundo, bien, puedes hacer estas etiquetas,
¿qué quieres? Y mi tercero aquí
va a ser llamado herido mal. Entonces estos
esencialmente van a ser mis tres
estados de salud distintos es que
voy a usar para impulsar algo de lógica dentro de mi plano de
personaje en tercera persona. Voy a seguir adelante
y guardar esto y luego puedo cerrar esto, ya
no lo necesito. Y voy a estar saltando a mi
Blueprint de personaje de tercera persona. Si olvidaste dónde está
eso debajo la carpeta
Blueprints en tercera persona, haz doble clic en ese
tipo para abrirla. Una vez dentro de aquí,
vamos a crear una variable. Así que voy a crear una variable
simplemente haciendo clic en
este botón más Agregar. Me gusta hacerlo de
diversas maneras para presumir diferentes formas de
crear variables. Y voy a llamar a esto
E subrayado estado de salud. Voy a nombrar esto exactamente
igual que nombré a mi enumeración. Voy a golpear Entra aquí. Ahora en el panel Detalles, voy a cambiar
el tipo de variable. Ahora bien, si bien nombré
esto exactamente igual a mi enumeración
que acabo de crear, podría haber llamado a esto
cualquier cosa que quisiera. Sin embargo, quiero mapear esto a venir bajo tipo de variable. Mi E subrayan salud, gritos, E subrayan la enumeración
del estado de salud. Ahí está, ahí mismo. Entonces le estoy diciendo a esta
variable que estoy creando, que quiero ser de este tipo. Ahora una vez que haga clic en Compilar aquí, puedo ver que puedo cambiar mi estado de salud valor
predeterminado para que sea súper, bien o mal. Y porque esta es una
variable, puedo cambiarla. Puedo cambiarlo de
súper dos, bien, o mal, y luego usar ese
estado para impulsar alguna lógica. Bien, así que
vamos a crear nuestro bit inicial de guión aquí. Voy a comenzar
creando eventos personalizados. Voy a hacer clic derecho
en algún espacio vacío, escribir personalizado, vamos a agregar
un evento personalizado que es un evento que
llegamos a nombrar y llamarlo
cuando y donde queramos. Y voy a acercarme aquí
porque estoy muy lejos. Voy a llamar a esto
actualizaciones estado de salud. Y luego voy a traer aquí
mi variable de enumeración, manteniendo pulsada Control,
haciendo click izquierdo y arrastrando. Y lo que podemos hacer con
este tipo es que
podemos sacar de esto y
traer un nodo switch. Si apenas empiezo a
escribir switch, esto trae un nodo
switch que me
va a permitir cambiar en
función del valor
de esta enumeración. Entonces aquí vamos,
encienda el estado de eSalud. Puedes ver los
pines de salida aquí mismo, digamos súper, bien, o doler mal. Esas son las
etiquetas exactas que tengo aquí dentro de esta
enumeración, súper bien. O ella mal, si enchufara una enumeración diferente aquí, diría
encender lo que sea que fuera. Y tendría
pines de salida correspondientes a las
etiquetas que estuvieran dentro
de esa enumeración. Ahora bien esto es genial
porque
dependiendo del valor de esta variable, se va a disparar
de diferentes pines aquí. Y lo que esto nos permitirá
hacer es ajustar algo, en este caso sobre
nuestro carácter. Lo que voy a hacer es
ajustar velocidad de movimiento de
nuestro personaje en función de nuestro estado de salud, ya sea súper
bien o mal herido. Entonces voy a traer mi componente de movimiento de
personaje. Arrastre y suéltelo aquí. Dentro del componente de
movimiento de mi personaje, tengo este parámetro
llamado velocidad máxima de caminata. Eso es lo que controla qué tan rápido puede moverse mi personaje sobre el nivel que voy a
arrastrar fuera de aquí y escribir la velocidad máxima de caminata. Quiero poder
establecer mi velocidad máxima de caminata. Y voy a
duplicar este Control C, Control V, control V. Y puedo enchufar este mismo Componente de Movimiento de
Carácter en los tres. No importa si
tienes uno de estos. O podría arrastrar y soltar mi personaje moviendo
componentes por separado. Podría tener tres de estos y enchufarlos por separado
en cada uno de los objetivos, no
importa cómo lo hagas. Voy a ir así,
así, y así, déjame hacer doble clic sobre eso para traer un nodo de reencaminamiento. Y ahora voy a poner duro mi velocidad máxima de caminata
en función de si mi salud está súper
bien o me duele mucho. Si es súper, voy a decir que mi salud
me va a permitir caminar a esa
velocidad máxima de 2000s? Lo es. Bien. Diré que está de vuelta en
mi default de 500. Si me duele mucho, lo voy a poner en 100. Ahora mismo. Todo esto está bien y bien. Pero no vamos a llamar a este evento
personalizado en ningún lado. Necesitamos una forma de llamar a este evento personalizado de disparo
y apagado para que podamos establecer nuestro máximo de
deseos para que se
basen en el valor de esta enumeración. Necesitamos una forma ahora de cambiar este estado
de establecer eso. Así que eso es lo que va a ser este próximo
guión. Bien, así que solo voy a
comenzar con un evento de entrada. Voy a hacer clic con el botón derecho
y un
poco de espacio vacío y voy a hacer una búsqueda placa
clave h porque
vamos a estar usando este evento de entrada
para modificar nuestra salud. Y solo unos ajustes
que tenemos que hacer aquí partir de cosas que habíamos
cambiado en videos anteriores. Selecciona tu variable de
flotación de salud aquí vamos a
cambiar esta de nuevo a 1.0, que va a igualar 100%. Y luego con nuestra función de salud
modificada, esto se creó de nuevo en
nuestra sección de funciones del curso cuando nos
proponíamos crear una función, puedes averiguar cómo lo
hicimos ahí. Voy a hacer
algunas modificaciones a esto también porque esa
sección del curso, modificamos nuestra función de
salud modificada. Voy a hacer clic izquierdo
y arrastrar esto encima de nuestra
tecla de prensa aquí mismo. Teníamos este insumo dado
como pasado por referencia. Lo establecemos como un
pase por referencia. En algún momento,
vamos a deshacer eso. Así que con ese nodo se selecciona
en la sección de entrada, se
puede comprobar que
porque queremos introducir algo que están
codificados duro, por así decirlo. Y también necesito modificar algunas
cosas sobre esta función. Entonces voy a hacer doble clic
sobre esto para abrirlo. Tenemos este incremento
actualmente ahí dentro. Voy a borrar eso. Entonces, lo que queremos
hacer aquí es que
tenemos un valor para la salud que vamos a poner duro
aquí mismo de nuevo en nuestra función. Vamos a decir cada
vez que presionemos esto, vamos a decrementar cero puntos uno,
esencialmente 10% de salud. Así que esa va a ser nuestra entrada vamos a hacer doble clic de
nuevo aquí. Cuando eso suceda,
vamos a restar eso o mejor dicho, vamos a sumar eso a
nuestro valor actual de Salud. A pesar de que ese es
un número negativo, vamos a estar sumando ese número negativo
a nuestra salud actual. Entonces vamos a estar
tomando ese 0.1 negativo. Vamos a estar
sumarlo a este valor, que va a
igualar 0.9 o 90%. Y vamos a
estar dando salida a eso. Vamos a enchufar
esto así. Aún podemos sostener que
si esto es mayor que, si eso es mayor que cero, vamos a tocar un efecto de sonido
positivo. Si es menor que cero, vamos a tocar un efecto de sonido
negativo. Entonces eso está todo bien y bien. Así que asegúrate de que estás modificando la función de salud se actualiza
para que se vea así. Voy a compilar
eso enseguida. Y de vuelta en nuestro gráfico de eventos, vamos a
seguir adelante aquí. Entonces vamos a decir si nuestra salud actual
arrastrando fuera de aquí es mayor o igual a 0.75. Esencialmente, si lo
estamos, tenemos tres cuartas partes de
salud o más, vamos a traer
cualquier sucursal. Eso es cierto. Aquí vamos a establecer nuestro estado de
salud. Así que vamos a arrastrar
y soltar esto sobre el verdadero para traer cualquier centro. Vamos a decir
si tu salud es de tres cuartas partes o más, tu salud ahora está
etiquetada como súper. Si eso es falso, vamos a traer
un nodo de otra rama. Y aquí vamos a hacer
otra evaluación. Así que arrastrando fuera de aquí,
vamos a hacer una búsqueda otro
mayor o igual a. Entonces, si va a ser
mayor o igual a 0.26. Entonces esencialmente 26%. Si está entre estos
dos rangos, 26 a 75%. Si eso es cierto, vamos a Control C y Control V en
este tipo un par de veces. Entonces eso es cierto. Está entre
este rango 26.75% salud. Vamos a decir que
tu salud está bien. Y si es falso, tienes 25% o menos de salud. Vamos a decir que estás herido. Mal. Entonces eso está
todo bien y bien. Obviamente se ve que
esto no está conectado. Y la razón que aún no está conectada es
porque quiero
colar una cadena de impresión aquí. Vamos a imprimir
cadenas para que podamos ver
realmente nuestra
salud actual escupir en la pantalla. Así que voy a
convertir este flotador en una cadena
enchufándolo así. Todo esto está bien y bien. Sin embargo, cada vez que estoy cambiando el valor de mi variable de
estado de salud aquí, estamos haciendo uso de eso parece conducir nuestra velocidad
máxima de caminata, pero aún no estamos llamando ventajas para
los clientes. Así que en realidad tenemos que
rematar esta parte como agarrada llamando a donde este evento
personalizado para disparar. Y podemos hacerlo haciendo
clic derecho en algún espacio vacío y escribiendo fechas actualizadas. Ahí está, función de llamada
actualizar estado de salud. Ese es el nombre exacto de esto. A eso lo vamos a llamar. Esto va a llamar para que se desprenda este evento
personalizado. Entonces vamos a ver bien. ¿A qué se
ha actualizado este estado de salud? Súper bien. O ella mal, Dependiendo de
lo que esto esté configurado ahora, vamos a impulsar la velocidad de movimiento de nuestro
personaje. Así que vamos a compilar
esto, nos aseguramos de que todo
esto sea hunky-dory. Olvídate de guardarlo. Voy a meter
esto aquí arriba. Vamos a jugar esto que nuestro objeto de depuración como nuestro
terceraPersonCharacter y vamos a
seleccionar realmente mi personaje
moviendo componentes. Por lo que nuestra velocidad de caminata predeterminada
va a comenzar en 500. Aunque nuestro estado de salud
por defecto está establecido en Super, no
lo estamos evaluando aún no
lo estamos evaluando para determinar nuestra velocidad
máxima de caminata. Así que sé que cuando empiece a
moverme por aquí, vamos a estar
moviéndonos a nuestra velocidad de 500 así que volviendo a ponerme eso. Bien, puedes ver
que me estoy moviendo a una velocidad
de yay que es 500. Voy a presionar
mi tecla H aquí. Ahora al 90% de salud, que sigue siendo súper así que mi velocidad máxima de caminata
ahora va a ser 2000. puedes ver
moviéndome mucho más rápido. Voy a presionar esa tecla
H otra vez bajando al 80% de salud, 70% de salud. Ahora estoy en este rango bien, así que
se va a volver a bajar a 500. Todavía no estoy bien rango. Entonces déjame seguir golpeando
la tecla H aquí para agotar mi salud ahora al 20% de salud. Entonces ahora me duele mucho. Entonces esto es lo más rápido que
puedo correr, por así decirlo. Ese es un gran uso de
una variable de enumeración, determinando tu
estado de salud y luego puedes modificar algo
sobre tu personaje. Entonces con eso, ¿cuáles son algunos
otros usos que se te ocurran? Bueno, déjame tirar algunos
de ellos por ahí. ¿Y qué tal tienes una enumeración
para diferentes armas? Y dependiendo de qué
arma tengas equipada, digamos una espada, una daga, un bot, tu velocidad de movimiento, o incluso tus
ataques disponibles podrían muy bien. ¿Qué pasa con cualquier NUM para clases de caracteres
diferentes? Warrior made, the, etc. y dependiendo de en qué se establezca tu clase de
personaje, ciertas armas pueden o
no estar disponibles para ti. ¿O qué pasa con una enumeración para diferentes estados de juego o eventos? Piensa en un juego
como Rocket League. Podrías tener una enumeración
para cosas como jugabilidad, goles marcados, medio tiempo, etc. Y dependiendo de a qué se establezca
esa enumeración, puedes hacerla para que sucedan cosas
diferentes, como mostrar un escena de un gol tras un gol para marcar. Bien chicos, eso va a
hacer para ofrecer este video, veremos en el siguiente.
74. Estructura: Bienvenida. En este video, nuestro objetivo es aprender y
demostrar el uso
del tipo de variable
struct muy útil. Ahora bien, este es un tipo
de variable que creo todo el tiempo en mis
propios proyectos de juego. Con un trazo,
puede contener muchos tipos de datos que están
relacionados con lo mismo dentro de
un solo contenedor. Así que vamos a seguir adelante y
crear una variable struct. Aquí en mi carpeta de
blueprints scripting, voy a hacer clic derecho en
algún espacio vacío en debajo la categoría blueprints en
el pequeño menú fly-out justo debajo de la enumeración tenemos la estructura también conocida un tipo de variable struct
que podemos crear. Entonces, sigamos adelante
y creemos esto. Voy a nombrar a este
STR, hechizos de subrayado. Y luego hagamos doble clic
sobre este tipo para abrirlo. Bien, definamos qué es incluso
una variable struct. Entonces, una estructura o una
variable struct es esencialmente una variable que puede contener muchas otras variables dentro de ella. Así que esencialmente estructura los datos
agrupados juntos. Se puede pensar en una estructura como
un casillero de almacenamiento gigante con todas las demás cajas dentro de ese casillero de almacenamiento como variables
individuales. Cada caja dentro del
casillero de almacenamiento tiene su propio contenido. Entonces podemos ir dentro
del casillero de almacenamiento. En este caso, nuestra estructura y sacar el contenido de una caja, en este caso una
variable según sea necesario. Ahora bien, estos trazos son
geniales para mantener variables que pertenecen juntas de
alguna manera, forma o forma. Entonces tenemos una estructura
que vamos a estar creando aquí llamada hechizos. Piense en todas las diferentes propiedades de
hechizo que podríamos contener dentro de 11
contenedores de clases. Aquí, podemos agregar el
nombre del hechizo, el tipo de efecto, el elemento con el que está
asociado. A lo mejor un hombre de costo,
tal vez un enfriamiento. Todas esas cosas están asociadas
con un hechizo dado y
sería genial si
pudiéramos contenerlas con todo en un solo activo. Bueno, un derrame cerebral es un gran
lugar para hacer precisamente eso. Bien, deja
abierto a este tipo por el momento. En realidad vamos a crear dos activos de enumeración más primero, antes de
volver a nuestra estructura. Así que vuelve a tu editor
principal aquí en, en tu carpeta
Blueprints de scripting. Y vamos a crear
estas dos enumeraciones. Puede hacer clic con el botón derecho debajo del menú de vuelo de
planos. Vamos a crear
una enumeración. A éste lo voy a llamar E
subrayado elementos hechizos. Y luego puedo hacer clic derecho sobre esto de inmediato
y duplicarlo. Control D también lo
duplicará, porque también va a ser una enumeración y voy a llamar a este tipo de
hechizos de subrayado E. Y luego podemos hacer doble clic en cada uno de estos para abrirlos. Así que los elementos hechizos están abiertos. Vamos a abrir también los
tipos de hechizos. Bien, entonces bajo tipos de hechizos, voy a agregar
tres entradas aquí. Comenzaremos con tipos de hechizos, 1234
tipos de hechizos. Voy a hacer
daño directo en pantalla llamado número dos aquí
va a ser área de efectos. El tercero va a ser, diremos sanación. Claro. Sigamos adelante y guardemos esto y luego puedes
cerrar a ese tipo. Para los elementos hechizos,
vamos a agregar tres entradas aquí, 123, y estas serán ninguna. Fuego. Y mi próximo
aquí será viento. Y en realidad agreguemos uno más. Hagamos también un agua. Agua. ¿Qué bandeja? Alfarero. Sigamos adelante y guardemos eso y luego podemos cerrarlo. Ahora, los creados,
tenemos que saltar de nuevo
a nuestra estructura
y vamos a agregar algunas nuevas variables
a través de esto. De nuevo, piense en una estructura como un contenedor que puede
contener muchas variables. Sólo voy a deslizar
esto hacia la izquierda aquí. Entonces voy a agregar, veamos, 1234567 si estoy contando bien, así que agreguemos, creo
que ahí son siete, del
0 al seis, **** es igual a siete. Entonces mi primero aquí, voy a llamar hechizo, nombre. Y esto será del tipo variable de
textos. Vamos, textos, ahí vamos. El segundo aquí se
llamará tipo deletreado. Y aquí es donde podemos slot en la habitación que acabamos de crear. Podemos pasar por debajo de la UE
y encontrarla aquí abajo. Aunque también puedes
buscarlo ahí arriba y allá, puedes ver que es
tipos deletreados aquí mismo. Al siguiente, vamos a llamar
a elementos hechizos. Y entrando dentro de
nuestra nueva categoría, vamos a configurarla
para deletrear elementos. A continuación, vamos
a llamarlo administrar costo. Y gritos, ese
no se llevó aquí arriba. Regresemos a ahí,
a nuestros elementos hechizos aquí. Bajo enumeraciones deletrea elementos. Ahí vamos, hombre de costos. Vamos a establecer
que sea un entero. Vamos a ir a enfriarnos a continuación. Vamos a poner eso para que sea un flotador. A continuación tenemos valor del efecto de
hechizo que
puede dañarse o curarse. Eso es a lo que me refiero a
usted por hechizo afectar el valor. Y va a establecer esto
para que sea un entero. Y luego por último pero no menos importante, tengo casting S f x Así que este sería
el efecto de sonido asociado con lanzar un hechizo. Entonces voy a configurar esto para
que sea una onda de sonido. Hará referencia de
objeto de onda sonora y luego otra cosa. Solo para presumir aquí,
podríamos establecer esto para que sea una matriz, para que podamos tener una serie de diferentes efectos de sonido
que queramos reproducir. Así que ahí es un poco genial. Bien, sigamos adelante
y ahorremos esto. Y estoy viendo esta
advertencia aquí arriba. Y si pasamos el mouse sobre
él, sí dice que no se puede
analizar ese valor. Tienes que tener algo
más que ninguno ahí dentro. Entonces ampliemos esto
hacia abajo y sigamos
adelante y agreguemos un par de valores
predeterminados para esto. Podemos agregar esos
valores predeterminados por no debajo de aquí. Aquí tenemos esta pestaña de valores
predeterminados casting s efectos plus, plus, y déjame
configurarlos para que sean. Vamos bola más oscura. ¿Qué tenemos
abiertas las ventanas del Dr.
Bowles y agregaremos etiquetas de datos? Cierre de ventana. Sí, realmente no importa
lo que pongas ahí solo tienes dos efectos de
sonido diferentes. Entonces ahí está nuestra estructura. Estamos viendo que
eso es bueno para ir. Podemos seguir adelante y
hacer clic en Guardar ahí. Bien, con todo esto hecho, salta a tu
personaje de tercera persona. Y si olvidaste
dónde está ese tipo una
vez más en tu carpeta de planos en tercera
persona, haz doble clic en ese
tipo para abrirlos. Entonces dentro de aquí, vamos a hacer
uso de esa estructura. Necesitamos crear una variable. Así que ven bajo tu sección de variables de mi
plano, haz clic en el botón Más, y vamos a llamar a
este mis hechizos. Vamos a cambiar
el tipo de variable
aquí abajo de un booleano a nuestros hechizos struct, STR,
subrayado. Y ahí podemos
encontrar nuestra estructura. Está bajo la categoría de
estructura. Y si entro en
el panel de detalles, puedo hacer esto en
matriz de struct. Así que voy a cambiar
el tipo de contenedor aquí de single a array. Necesito compilar aquí mismo. Y cuando lo haga, puedo agregar múltiples entradas
a mi array de hechizos aquí. Así que vamos a hacer clic una y dos veces, y ahora echa un vistazo a esto. A medida que los expando hacia abajo, tengo acceso para cambiar todas estas diferentes propiedades que configuré aquí en mi estructura. Entonces aquí en mi estructura, configuré campos para ingresar
un nombre de texto. Entré en.
Entré en campos para definir un
tipo de hechizo, elemento de hechizo, man accost, todas estas
cosas y aquí están disponibles para mí ahora en mi
BP ThirdPersonCharacter. Entonces, vamos a establecer algunos de estos. Voy a decir mi
primer nombre de hechizo aquí va a llamarse bola de fuego, tipo de
hechizo, daño directo,
seguro, elemento de hechizo. Voy a dar click en este
desplegable y mirar todas esas opciones que
definí en mi emú. Nuevamente, para nuestro tipo de hechizo
aquí y elemento de hechizo. asociamos con enumeraciones, esas listas nombradas que
creamos anteriormente. Así que el elemento deletrear, lo
pondremos en fuego. El hombre Acosta
los fijará en cinco, enfriados a 0.5 de efecto de
hechizo de orilla valor 25. En este caso, me refiero a
eso como 25 como daño directo. Para mi siguiente entrada
aquí, nombre del deletrear. Voy a poner
esto para que se cure. Este tipo de campana se
va a cambiar a elementos de hechizo de curación. Bueno, no va a ser ninguno de estos elementos van
a dejar eso como ninguno. Los costos administrados dirán diez, enfriarse 3.8,
efecto de hechizo valor 50. Y luego también podemos establecer los efectos de sonido
para cada uno de estos. Se me olvidó hacer eso
por la bola de fuego. Entonces expanda cada uno de estos hacia fuera. Sí, puedes
seguir adelante y cambiar los efectos de sonido para que puedas dejar ahí los valores predeterminados
para tu bola de fuego, pero tal vez para tu efecto de sonido
curativo, quieres algo diferente. Así que voy a probar uno llamado
nave VR shape scale up. Y yo haré lo mismo con
esta otra nave, nave escalada también. Esos están en las carpetas de
contenido del motor. Por cierto, si olvidaste cómo acceder a las carpetas de contenido de tu
motor, puedes hacer clic en el
pequeño ícono de engranaje, mostrar contenido del motor. Bien, así que todo eso está
configurado bastante dulce. Adelante y compila
eso de inmediato. Bien, entonces con toda esta configuración, ¿cómo hacemos uso de
esta variable golpeada? ¿Cómo llegamos a
esta variable strike y extraemos la información que estamos buscando extraer? Bueno, para empezar aquí
tenemos que añadir esto a nuestra gráfica. Entonces voy a hacer
click izquierdo y arrastrar. Voy a conseguirlo. Y esto es devolver una matriz porque aquí tenemos dos
elementos, una bola de fuego con todas
estas propiedades al respecto. Y nuestro índice uno aquí
es nuestra Q o hechizo. Así que tenemos el índice 0, nuestro firewall, y el índice uno en nuestra matriz,
el hechizo de curado. Para que podamos arrastrarnos sobre
esto y escribir gets, podemos obtener una copia aquí. Y dependiendo de qué
valor ingresemos aquí, está buscando un entero. Podemos ingresar 0 para
devolver nuestro índice de bola de fuego 0, o podríamos ingresar uno para devolver nuestro curioso
cinturón Ese es el índice uno. Entonces así es como funciona eso. Entonces lo que queremos hacer aquí
es hacer clic derecho sobre este pin. Si hago clic derecho sobre él, puedo dividir el Pin Struct. Ahora mira cómo
se transforma este nodo cuando hago esto. Bam. Ahora todavía tengo
este número entero entradas, así que todavía puedo definir, quiero estar buscando
el índice es 0 aquí, mi bola de fuego o índice
uno aquí para la cura. Pero ahora puedo sacar todas
las diferentes propiedades
relacionadas con ese índice dado. Entonces puedo encontrar para índice es 0, el nombre del hechizo de bola de fuego, el daño directo,
yada, yada, yada. Ahora tenga en cuenta aquí que
puede regresar y colapsa todo hacia abajo haciendo clic derecho en
cualquiera de estos pines. Y puedo recombinar
el Struct Pin. Pero en este caso
queremos hacer clic derecho sobre esto y dividir ese alfiler golpeado. Ahora bien, algo que vale la pena señalar aquí es que en realidad
hay muchos trazos por encontrar cuando se trabaja con
blueprints scripting. Y esto es un
poco a un lado, pero vale la pena
señalarlo aquí. Voy a hacer clic con el botón derecho y algún espacio vacío y solo
teclear get actor transform. Esto conseguiría la transformación para nuestra terceraPersonaPersonaje. Ahora bien, si tuviera que hacer
clic derecho en este pin de aquí arriba, puedo dividir el Struct Pin a transformado
consiste en datos de ubicación, rotación y escala. Pero incluso algo así como
la ubicación, ¿verdad? Es decir, tres valores
en uno en los vectores X,
Y y Z que determinan
nuestra ubicación final. Esos son tres valores de flotación. Entonces, si tuviera que hacer
clic derecho sobre esto, también
podría dividir este alfiler
golpeado. Entonces puedes ver cómo en realidad
hay numerosos,
numerosos nodos a lo largo de
irreal que puedes hacer toda
esta división
y recombinación de pines de struct,
algo así. Un vector es una estructura. Consta de tres variables de
flotación. Entonces puedo hacer clic derecho sobre esto. Yo puedo dividirlo y
tú puedes recombinar. E incluso nuestro rotador aquí
mismo que consta de tres valores de
flotación también,
así que podemos dividir eso. Sí, digno de mención, haga clic derecho en
recombine, haga clic derecho. Vaya, no promover. Haga clic con el botón derecho, recombine,
haga clic derecho en recombinar Bien, de vuelta al tema aquí, hagamos uso de nuestra estructura. Entonces voy a eliminar esto. Voy a traer
una llave de evento. Así que vamos a hacer clic derecho
y algo de espacio vacío. Vamos a probar algo
en la llave nueve. Seguro ¿Por qué no? No creo que esté usando
la llave nueve en ningún lado. Vamos a arrastrar fuera de
nuestro tipo de hechizo aquí abajo, llevar a estos dos tipos aquí
abajo tipo deletreada. Y voy a
buscar un interruptor. En el lado del hechizo facilidad. Vamos a hacer
algo dependiendo del tipo de hechizo
que
estemos especificando aquí. Entonces lo que voy a hacer es
que voy a arrastrar fuera de mis elementos hechizos y voy a hacer un interruptor en
los elementos deletreados así. Y vamos a decir si
estamos haciendo daño directo, entonces
vamos a averiguar
cuáles son nuestros elementos aquí. Y lo que entonces vamos
a hacer es imprimir una cadena. Vamos a sacar
de nuestro fuego aquí y voy a recapitular esto. Cuando esté todo terminado aquí. Saca de esto, entonces vamos a sacar
de nuestro valor de efecto hechizo. Eso es como cuánto daño
vamos a estar haciendo aquí. Alerta de spoiler,
voy a dejar esto como los 0 elementos aquí. Entonces vamos a estar
lanzando una bola de fuego, por así decirlo, sin ningún
efecto de ningún tipo. Pero cobrando cotizaciones aéreas, arrastra fuera de aquí. Y en realidad no vamos a enchufar
eso a ahí todavía. Voy a arrastrar atrás
de aquí y hacer un append. Vamos a estar imprimiendo
algo en la pantalla. Nuestro a va a
ser tu trato de espacio. R, B va a ser el valor del efecto de hechizo va a convertir ese
entero en una cadena. Aquí vamos a añadir
otro pin. Vamos a enchufar el nombre
del hechizo para C. Así que repartiste 25 bolas de fuego. Y la última palabra aquí, vamos a agregar otro
pin va a ser daño. Y voy a agregar
un espacio antes de eso. Y eso va a
estar todo bien y bien. Nn por último pero no menos importante, nos vamos a arrastrar fuera de aquí. Vamos a tocar, un sonido, vamos a hacer es reproducir sonido 2D. ¿Qué sonido
quieres tocarlo? Bueno, vamos a conseguir uno de nuestros diferentes efectos en cascada
aquí. Arrastre fuera de esto. Vamos a conseguir una copia. Vamos a
arrastrar eso aquí. Como llegamos a especificar, recuerda nuestro hechizo de
bola de fuego aquí, tenemos dos posibles efectos de sonido de
casting, elemento 0 o el elemento uno. Así que escojamos uno al azar. Así que voy a arrastrar hacia atrás
fuera de aquí y escribir entero aleatorio
en rango. Vamos a ir entre 01. Entonces esa va a
ser nuestra configuración final,
haciendo uso de nuestros trazos aquí. Bien, así que
enmarcando eso bastante bien.
Creo que lo conseguí. Bien, sigamos
adelante y compilemos para asegurarnos de que el
guión sea bueno para comenzar. Guardar, vamos a saltar y jugar y luego presionar que
hay nueve teclas. Oye, configurando nuestro
objeto de depuración, saltando hacia atrás. Aquí vamos. Y aquí vamos. Precedente Nike, deberías ver
algunos textos aparecer aquí arriba. U del 25, daño de bola de fuego. Sé que no hay espacio
entre la bola de fuego y los daños. Y a medida que amplíe
esto de nuevo, de nuevo, deberías escuchar uno de estos dos efectos de sonido
tocar al azar. Bien, entonces sé que esa
fue una configuración muy básica, pero voy a
desafiarte a tratar ampliar este
tipo de configuración. Ahora, quiero que pruebes
estos por tu cuenta, asegúrate de que puedes lanzar un hechizo solo si
tienes la manera suficiente. No estamos haciendo uso de
nuestras monocotiledóneas aquí mismo. Así que asegúrate de probar otra
cosa. Asegúrate de que
no puedes lanzar de nuevo a menos que te enfrías,
la duración ha expirado. Prueba esto, intenta agregar
un emisor o sistema de
partículas a un
hechizo que lances aquí. También intente esto, intente especificar
una ubicación vectorial que este hechizo dado debería generar
ese sistema de partículas dado. Entonces esas son todas
las cosas dadas algunos de los conocimientos previos
en este curso, me gustaría que siguieras adelante y
traten ahora de acabar con esto, hablemos de algún otro
posible uso golpeado también. Imagina que tienes un sistema de
búsqueda golpeado. Puedes especificar un
nombre, una ubicación, enemigos para engendrar o ser derrotados, y tal vez
tipos de recompensa y cantidades que podrían estar todos
contenidos dentro de una estructura. O tal vez todos
los atributos de base de caracteres podrían estar
contenidos dentro de una estructura. Y puedes especificar
cosas como nombre, velocidad, salud, todo
ese tipo de cosas. Bien chicos, eso
va a hacer para ofrecer este video sobre la
muy útil struct. Nos vemos en la siguiente.
75. Resumen del control del flujo: Bien,
finalmente hemos llegado a ese punto del
curso donde es hora de
hablar de nodos de control de flujo. Ahora, sé que
me has visto hasta este punto en el curso usar muchos de
estos nodos de control de flujo. Pero aún no hemos tenido una discusión oficial al respecto
porque hay muchos
temas que cubrir. Así que eso termina ahora mismo. Aquí comienza nuestra conversación de nodo
de control de flujo. Entonces, nuestro objetivo en este
video es simplemente obtener una visión general y
comprensión de qué son los nodos de control de
flujo y su propósito dentro de los
scripts, un propósito más profundo. También echaremos un vistazo rápido los nodos
comunes de control de flujo utilizados en los scripts. Empecemos definiendo
qué nodos de control de flujo, incluso nuestros nodos de control de flujo
son nodos que permiten
controlar el flujo de ejecución en
función de las condiciones. Evaluan algunas entradas de datos. Y dependiendo de las entradas, ellos determinaron
qué ejecución fuera pin dispara o cuando
una ejecución fuera pin dispara son ambos esencialmente controlar
el flujo de ejecución. Por ejemplo, tenemos
este nodo de sucursal aquí arriba. Podemos fluir hacia ella. Y luego en base a
una entrada de condición, podemos fluir fuera de
la rama verdadera si la condición es verdadera, o podemos fluir fuera de la rama falsa si la
condición es falsa. Ahora los nodos de control de flujo tienen
una coloración gris en la parte superior. Y como mencionamos anteriormente
en nuestra sección de macros, los nodos de control de
flujo
son macros y se
puede ver esto simplemente haciendo doble clic en una de ellas. Voy a hacer doble clic
en mi nodo de puerta aquí. Y eso va a abrir
mi biblioteca de macros estándar. Estas son macros, los nodos
de control de flujo son macros. Ahora bien, ¿dónde podemos encontrar un montón de estos nodos de control de
flujo? Y aquí hay un montón de
los comunes que
encontrarás a lo largo de los guiones. Tengo todo esto en mi
plano de nivel como una visión general rápida de muchos
de los comunes. Bueno, si estás
buscando algunos de estos, obviamente
puedes
buscarlos por nombre, haciendo clic con el botón derecho y buscándolos por el título aquí. También se encuentran
debajo del menú contextual, aquí
mismo en Utilidades. Y luego en la sección de servicios públicos, puede venir bajo control de flujo. Y ahí es donde residen un
montón de estos. Ahora bien, vale la pena señalar aquí
voy a estar lanzando este nodo selecto que
no tiene un banner gris. No es oficialmente
una carga de control de flujo. También lo voy a incluir
en esta sección
porque sí controla el flujo
de datos que obtiene la salida en función de las entradas de índice. Entonces, en cierto sentido, es una especie de nodo de control de
flujo. Entonces por eso voy
a incluirlo también. Nodo súper práctico para conocer, por cierto, algunas cosas más que saber sobre los nodos de
control de flujo. Muchos de ellos tienen teclas de acceso rápido y las
incluí en los comentarios del
nodo aquí. Y así podrás ver
con un nodo de rama, si mantienes pulsada la tecla B, haz clic izquierdo,
traerás una sucursal. Esos son trucos súper prácticos. Te recomendaría
que te
conozcas porque te vas a encontrar usando estos
nodos todo el tiempo. Además, los nodos de control de flujo, son útiles para
la activación o restricción cuando ocurre un área de script. También son útiles
para determinar qué bit de guión
sucede a continuación. Entonces eso es algo que debe
saber sobre los nodos de control de
flujo al descubierto
que en el fondo de tu mente. Son útiles para determinar cuándo ocurre un
área de script, qué bit de guión sucede. Siguiente. Ejemplo de qué guión sucede a
continuación sería una rama. ¿ Fluyo fuera
de lo verdadero o falso? Un ejemplo de cuándo
ocurre
un área de script sería
con nuestro nodo de puerta. Y puedes conocer más sobre eso en el propio video del
nodo puerta. Bien chicos, eso
va a hacer a los cuatro son visión general de control de flujo. Te veremos en
el siguiente video.
76. Rama: Bienvenida. En este video, nuestro
objetivo es
aprender a usar el nodo de sucursal usando un escenario de puerta
cerrada extremadamente común como demostración. Entonces, en primer lugar, definamos
qué es un nodo de rama. Me has visto usar varios
de estos hasta este momento. Las ramas son esencialmente una sentencia
if then code. Sirven como una forma
sencilla de crear flujo base de
decisión a partir de una
única condición verdadera o falsa. Ahora una vez ejecutado, el nodo de
rama mira el valor entrante
del Booleano adjunto. Puede adjuntar una variable
booleana a esto o
simplemente puede codificar duro al tener que marcar o
desmarcar las salidas. Y entonces esto generará un pulso de ejecución hacia abajo
de la salida apropiada. Entonces, si esto es cierto, y eso es lo que significa la marca de
verificación, fluirá fuera de aquí. Si esto es falso o sin marcar,
fluirá fuera de aquí. Ahora, una vez más, la
tecla de acceso rápido para colocar esto en tu gráfica es simplemente mantener presionada la
tecla B y hacer clic con el botón izquierdo. Ahora bien, vale la pena
señalar aquí que anteriormente
hemos utilizado un nodo de sucursal. Esto lo hicimos durante
la introducción de la variable booleana. Y lo hicimos dentro de
nuestra terceraPersonaPersonaje. Entonces, ¿por qué no encuentras tu
terceraPersonaPersonaje? Lo puedes encontrar en la carpeta Blueprints en
tercera persona. Haz doble clic sobre
eso para abrirlo. Y lo que hicimos durante el video
booleano es que lo hicimos. Entonces, cuando entramos acción
saltó a través de la barra espaciadora, evaluamos la condición de nuestra variable
booleana can jump. Y si fuera cierto, que actualmente lo tenemos cierto por defecto, entonces podemos saltar. Si es falso, no podemos saltar. Y podemos ver esto
simplemente tratando de
jugar cuando envío mi objeto de
depuración ahí. Y una vez más, esto
se pone en realidad. Y lo puedes ver pasando el mouse sobre esto mientras estás jugando. Y si presiono la barra espaciadora, se
puede ver que de hecho
estoy saltando. En cuanto libere.
Ahívamos. Eso sin embargo, si iba a cambiar, Ken saltó a falso, presionaremos la barra espaciadora. Esto se evaluará como falso
y no pasará nada. Entonces sigamos adelante y probemos esto. Presionando la barra espaciadora, se
puede ver el flujo
de los troqueles de ejecución aquí
mismo porque esto
se evalúa como falso, lo que podemos ver en
la pequeña punta de la herramienta. Nunca hubo ir más
allá de esta rama. Está parando el flujo de
ejecución muerto ahí mismo. Bien, intentemos
presumir otro escenario aquí. Así que voy a crear una
nueva variable en la sección My Blueprint del Blueprint de ThiredPersonCharacter
Blueprint, haciendo clic en el botón más
en la parte inferior de aquí, voy a llamar a esto
hes key signo de interrogación. Y no voy a compilar esto. Y sólo para hacérselo saber aquí, voy a dejar
esto tiene clave como falsa. No tengo la
llave enseguida. En realidad, sabes qué, voy a comprobarlo
a verdad diré que sí, nuestro personaje sí tiene la clave. Entonces vamos a compilar ese ahorro. Y entonces lo que
vamos a hacer es volver a nuestro navegador de contenido aquí, quiero entrar en nuestra sección de
planos. Tenemos nuestra
puerta giratoria que creamos este plano es el plano de
puerta giratoria cuando
hablamos de las variables de los rotores. puedas revisar ese video si no has creado esta puerta, voy a hacer click izquierdo
y arrastrarlo mi nivel de inmediato. Entonces voy a hacer doble clic
sobre esto para abrirlo. Vamos a modificar nuestro
guión aquí sólo un poquito. Así que lo que voy a
hacer es
matar a nuestro personaje get
player aquí y
aquí mismo, y aquí mismo. Esa era una forma que
acabábamos de configurar
ahí de verificar si era nuestro terceraPersonpersonaje
superponiendo esa puerta. Lo que voy a hacer
ahora es que vamos a comprobar agarrando a
este otro pin de actor. Vamos a lanzar a
nuestro terceraPersonaPersonaje. Esta es otra forma
de verificar para ver, oye, ¿quién es lo
que nos superpuso? Y nuevamente, estamos
marcando la casilla como el componente que
estamos comprobando para
solapar el
componente de caja ahí mismo. Vamos a
cablear esto. Vamos a hacer
algo solo si se trataba un personaje de tercera persona
superponiéndonos. Sin embargo, todavía no vamos a abrir esta puerta a menos que
descubramos que nuestro
personaje de tercera persona tiene la clave, si lanzas tu
personaje de tercera persona de esta manera, todavía
tenemos que
hablar oficialmente acerca de los nodos de fundición. Podemos llegar al interior de nuestro terceraPersonpersonaje
y acceder a cualquier función o variable o cosa por el estilo que
viva dentro de allí. Podríamos llamar a una función variables de
acceso, etc. específicamente, queremos
secarnos de aquí y encontrar r tiene clave. Vamos a conseguir, ¿
nuestro jugador tiene la llave? Si no ves esto, tratando de hacer lo que
acabo de hacer ahí, asegúrate de que tu personaje en
tercera persona esté compilado después de
que creaste que tiene clave booleana. Ahora una vez más, esto es cierto por defecto,
así es como lo configuramos. Entonces vamos a usar
esto como nuestra condición. Si es cierto que nuestro
jugador tiene una llave, entonces vamos
a abrir nuestra puerta. Con todo esto en su lugar.
Nome voy a preocupar por este
solapamiento final ahora mismo. Sólo me preocupa
la apertura de la misma. Sigamos adelante y compilemos esto. Salvemos, y luego
vamos a darle una jugada a esto. Bien, por lo que podemos comprobar para
R script de trabajo envolver su, aquí es donde se puede
establecer su objeto de depuración. Si tienes varias
puertas ahí mismo, puedes decir qué puerta estás registrando para ver si está
funcionando. Bien, aquí vamos. Deberíamos tener esa
clave porque dijimos que es cierto por defecto,
ese booleano. Y ahí vamos, se abrirá. Ahora, déjame saltar de nuevo a
mi personaje en tercera persona. Voy a cambiar tiene clave
para falso, compilar guardar. Volvamos a una
puerta giratoria, haga clic en reproducir aquí mismo. Y ahora nuestro personaje
no tiene la clave. Entonces sigamos adelante y ya ves que nos
acercamos a esa puerta. Se puede ver que esa
superposición sucede, pero está deteniendo el flujo de ejecución muerto
aquí mismo en nuestra sucursal. Bien, saltando de nuevo a nuestro
Blueprint de personaje de tercera personaaquí en esta sección de salto del guión. Quería señalar que su condicionamiento de una sucursal de
cuatro años no tiene que ser sólo una sola
variable como esta. Y tampoco tiene que ser solo una sola
entrada dura condicionada marcando esta casilla o
desmarcando esta casilla, en realidad
puedes hacer una
evaluación más intrincada si quieres. Y si me muevo
hacia la izquierda aquí, voy a mostrar algunos otros
nodos que a
menudo se encuentran
enchufados a una rama. Y estos son estos
tipos de aquí mismo. Tenemos un antinodo, un nodo NAND en o un NOR
y una x o si se quiere. Entonces los comentarios aquí
describen cómo funcionan estos, pero podemos probar
algunos de estos. Voy a probar este
porque esto es muy común. Puedes intentar conectar uno de estos a tu
sucursal aquí mismo. E incluso podemos usar nuestro
salto Ken es una de las condiciones. Ahora bien, esto devolverá un verdadero
si todas las entradas son verdaderas. Así que permítanme hacer clic en
este botón más. Vamos cuatro veces. Podríamos seguir agregando
más pines de entrada. Ahora voy a enchufar
mi lata saltar a esto. Ahora actualmente mi lata saltar. Eso es falso, pero voy a
revisar todo el resto de estos. Ahora bien, esto solo debería devolver
true si todas las entradas son verdaderas, estas tres son verdaderas. Puede saltar aquí, sin embargo no lo es. Entonces esto debería inhabilitar mi personaje de saltar
porque no todos son ciertos. Compile esto y juegue. Presionando esa barra espaciadora. Ya ves que puedo
saltar, déjame cambiar, puedo saltar aquí a la verdad,
saltar y jugar. Y ahora puedo saltar, los cuatro son ciertos. Siguiente Estoy presumiendo
este nodo NAND que
puedo saltar se establece en true
como lo son todos los demás. Esto evaluará a false
porque todas las entradas son verdaderas. Así es como funciona esta. Por lo que solo devuelve false
si todas las entradas son verdaderas. Entonces estoy presionando la barra
espaciadora, no puedo saltar. No obstante, si tuviera que cambiar
uno de estos dos falsos, y podría ser cualquiera
de estos los que elija, entonces se evaluará a verdad. Así que ahora puedo saltar. El nodo OR devolverá
true de cualquier entrada es true. Entonces tengo tres de
ellos que son falsos, pero mi poder saltar aquí es verdad. Entonces haciendo clic en reproducir aquí, presionando la barra espaciadora, se evaluará como verdadero porque solo uno que es todo
lo que necesito es cierto. A continuación, tenemos el NeuroNode. Esto se evalúa como verdadero solo si ambas entradas aquí son falsas. Entonces actualmente mi
variable booleana es falsa, igual que esta
ranura vacía de aquí. Entonces, si hago clic en Reproducir, puedes ver que puedo saltar. No obstante, si tuviera que establecer
incluso uno de estos en verdad, salte de nuevo y juegue. Se puede ver que va
a evaluar a falso. Por último, pero no menos importante, tenemos este nodo XOR y
esto va a evaluar a true si
las entradas no son las mismas. Por lo que actualmente mi
salto ken se establece en false. Esta casilla de verificación está establecida en true
por lo que no son lo mismo. Entonces esto debería evaluar el
verdadero saltar y jugar. Sí, en efecto, puedo saltar si
tuviera que establecer estos para
que fueran ambos iguales. Entonces ahora mismo ambos
son falsos. Salta y juega. No evalúa a verdad. Entonces ahí lo tienes. Esos son algunos nodos útiles, algunos complementarios
que a menudo se enchufan a la
entrada de condición de un nodo de rama. Entonces hablemos de algunos usos
posibles para los nodos de sucursal. Bueno, podrías
hacer la pregunta, ¿el jugador tiene suficiente
manera de lanzar un hechizo? ¿ El jugador tiene suficiente
maná para comprar un artículo? Podrías hacer alguna evaluación
de dinero que el jugador tiene un valor entero
de la cantidad de dinero versus la cantidad de
dinero requerida para comprar un artículo. Si eso es verdadero o falso. Se puede evaluar eso para determinar si la
compra se realiza. ¿ Y qué pasa, un jugador está en la ubicación correcta
para usar un objeto? O tal vez, ¿el jugador poca salud,
podrías evaluar? ¿ El jugador tiene veinticinco
por ciento de salud o menos? Si eso es cierto, podrías hacer una cosa versus si es falsa, podrías hacer otra. Bien chicos, eso
va a hacer para ofrecer esta discusión sobre los nodos de sucursal, los veremos en
el siguiente video.
77. Secuencia: Bienvenida. En este video, nuestro objetivo
es conocer cómo puede utilizar
el nodo de
control de flujo de secuencia en scripts. Ahora este nodo, puedes
disparar múltiples secciones de guiones simultáneamente y
de manera organizada. Ahora en este video
voy a estar
trabajando dentro de mi Plano de
Nivel. Entonces, si te gustaría
seguir el juego en casa y olvidaste
cómo entrar ahí. En tus mapas. Simplemente ven aquí, abre Level Blueprint y
eso te llevará allí mismo. Bien, ¿qué es
un nodo de secuencia? Es uno que permite que una sola entrada de cable de ejecución se desprenda de múltiples salidas de
ejecución. Ahora bien, esto es genial para eventos. Solo te permite tener una copia de un evento
dentro de un script, como Comenzar a jugar,
comenzar, superponer, etc. Ahora puedes agregar
múltiples pines de salida aquí si hay múltiples cosas
que quieres hacer fuera de, decir, Comenzar a jugar simplemente haciendo
clic en este botón más. Ahora bien, si quieres eliminar alguno de estos pines de ejecución de salida, simplemente
puedes hacer clic derecho sobre ellos y eliminarlos así. Esto es genial para
mantener los scripts organizados y para
agregar uno de estos, ya que este es
un nodo de uso común, simplemente
puede mantener presionada la
tecla S, luego hacer un clic con el botón izquierdo
del mouse, y eso va a traer
uno para ti. Entonces pongamos uno de
estos para usar dentro de nuestro plano de nivel
aquí, no agilizar las cosas. Tengo un poco de
guión que configuré antes de tiempo aquí en
mi Plano de Nivel. Pero eso está todo bien y dandy, te
explicaré lo que he hecho para que puedas seguir el juego en casa. Entonces quiero hacer tres cosas
al comenzar a jugar aquí. Así que permítanme traer y
comenzar a jugar nodo evento. Puedo mantener presionada la tecla P y hacer clic con el botón izquierdo para que
el evento comience a jugar. Y sólo para demostrar que sólo se
puede hacer que uno de estos eventos comience las
jugadas dentro de una gráfica. Si trato de hacer clic derecho
y algún espacio vacío, y voy a empezar a jugar así. Simplemente me va a saltar directo a ello. O si mantengo pulsado el
PT y
vuelvo a hacer clic con el botón izquierdo , no he conseguido nada. Entonces sólo uno de esos
puede ir dentro de una gráfica. Ahora, ir al
evento de conexión comienza a jugar. Esto se encenderá tan pronto
comencemos a jugar nuestro juego. Y estoy fluyendo esto
a través de un nodo de secuencia. Y la razón por la que estoy haciendo
esto es porque quería
hacer tres cosas fuera de Event. Comenzar a jugar. Quiero
tocar un sonido. Esto va a ser
algo de música de inicio. Voy a estar consiguiendo
mi personaje de jugador que lanzando a mi
tercera personaPersonaje. Y he promovido esto a una
variable aquí para que pueda guardar una referencia a mi
terceraPersonCharacter en caso de que quisiera hacerle algo a mi terceraPersonCharacter
más tarde, simplemente necesitaría arrastrar y soltar uno de
estos en mi gráfica. Entonces la otra cosa que
quería hacer aquí es algo un
poco más elegante. Coloqué un
punto objetivo dentro de mi nivel. Puedes encontrar uno de estos
en el panel de actores del lugar. Entonces fui aquí, agregué
un panel de actores de lugar, hice una búsqueda de un punto objetivo, es solo agrega un ícono a tu editor y
define un punto en el espacio para ti que puedes usar dentro de una gráfica
como lo estoy usando. Entonces con esos
puntos objetivo seleccionados, mantengo presionada la tecla R está en
referencia y clic izquierdo, y así es como consigo
una referencia a eso. Entonces simplemente
arrastré fuera de eso, obtuve la ubicación del actor
arrastrada fuera de esta
búsqueda de punto aleatorio
en cuadro delimitador, especifico un tamaño
para un cuadro delimitador, esto es esencialmente un área
dentro de mi nivel alrededor, centrado alrededor de mi punto objetivo. Entonces me drogo de esto
para hacer una transformación. Todo lo que me importaba realmente
era la ubicación. A mí no me
importaba la escala de rotación. Entonces me arrastro fuera de
esto y
busqué un actor spawn
de nodo de clase. Aquí, estoy especificando mi BPMN, una poción que creé
anteriormente en el curso. Puedes especificar cualquier clase aquí,
realmente no importa. Entonces estas son las tres cosas que
quiero hacer fuera de comenzar a jugar. Así Comenzar Evento Juega
aquí mismo usando un nodo de secuencia. Puedo ir bam, bam, bam. Y si quieres
organizar tu script
un poco mejor, puedes hacer doble clic en un cable para traer un nodo de reencaminamiento. Nuevamente,
los nodos de secuencia son una excelente
manera de organizar tus scripts. Así que voy a compilar esto para asegurarme de que mi guión
se vea bien. Entonces al comenzar a tocar,
deberíamos escuchar algo de música. Tendremos una referencia
a nuestro personaje, y vamos a
engendrar a un hombre, a una poción. Ahora, puedo jugar el
juego y ver esto, o puedo simular el juego y
deberíamos escuchar esa música. Y debemos engendrar esta poción. Ahora, todo esto va a
pasar entre bastidores. Entonces esto, solo vas a
confiar en que esto va a suceder. Pero vamos a escuchar algo y a ver algo
para que pueda jugar el juego. Y vio que la emancipación
nace aquí. Un poco de música. O si
quieres probar esto, también
puedes simular tu juego. Ahora para hacer esto, puedes venir debajo de
tus tres puntos aquí mismo y
elegir simular. Y puedes ver la
tecla de acceso rápido para esto. Ahora cuando simulas tu juego, estás haciendo que tu
juego ejecute todo el código, todo el script también se está
ejecutando. Quienquiera que no estés saltando
y jugando tu juego. Entonces, si haces clic aquí mismo, puedes ver que sí
engendró de manera poción. Y también está
sonando algo de música. Puedo detener esto. Alternativamente. Eso es un civil ahora mismo
estoy en modo simular. Solo tenga en cuenta que alternativamente, si haces Alt más S, eso también hace
el modo de simulación. Esto es genial por solo
hacer que tu juego funcione. Y solo quieres volar así y ver las cosas. Ahora, antes de que terminemos
este video, solo
quería demostrar
que no es necesario usar nodos de secuencia. Son esencialmente
un nodo
tipo calidad de vida para
organizar mejor tus scripts. Aquí está exactamente la misma configuración
sin el nodo de secuencia. Hará exactamente las mismas cosas. Sin embargo, mi cableado es un
poco entrecruzado. Y se puede imaginar si tuviera 45610 cosas como podría ponerse
muy, muy desordenado. Entonces si hago clic en reproducir aquí, pueden
ver que sí tengo
esa señora poción, tierras y música, etc. Así que a menudo estos nodos de
secuencia vienen directamente después de un
evento para hacer una cosa, una segunda cosa, una tercera
cosa, etcétera. Pero no es
ahí donde tiene que ir. Puedes colocarlos donde tengan sentido
dentro de tu guión. Algo más que quería
señalar aquí también. Una vez más, solo puedes tener una copia de un evento que comience a jugar, evento comienza se superpone a
ese tipo de cosas. Sin embargo, hay
ciertos nodos de eventos, como eventos de entrada
como nuestra clave ocho, de los
que puede tener
múltiples copias. Un caso como este. No necesitarías un
nodo de secuencia porque puedes tener uno eventos,
hacer tres cosas. Entonces, para probar esto, simplemente haciendo clic en la
prensa ese botón. Hola, ¿estás ahí? Hola, ¿estás ahí? Entonces no necesitas un nodo de secuencia
para algo como esto. Aunque eso tampoco
sería mala idea. Nodos de secuencia, tipo de
calidad de vida, nota, los uso todo el tiempo. Eso servirá para ofrecer este video. Nos vemos en la siguiente.
78. Haz una vez: Bienvenida. En este video, nuestro objetivo
es aprender cómo podemos utilizar el nodo do once
dentro de nuestros scripts. Ahora bien, este es un nodo bastante
autoexplicativo que parece que solo necesitarías
usar de vez en cuando. Resulta que este
nodo viene muy bien
en todo tipo de escenarios. Entonces, ¿qué hace el do
quiere no hacer? Bueno, dispara un
pulso de ejecución solo una vez fuera de él. Ahora a partir de ese momento, cesará toda ejecución
saliente. No
volverá a disparar fuera de aquí a ningún otro script que
tenga más allá de aquí, hasta que tenga un pulso enviado a la
entrada de reinicio aquí. Una vez que haces eso, puede
hacerlo una vez, una vez más. Ahora, para traer este
nodo a tu gráfica, puedes hacer clic derecho
y hacer una búsqueda para hacer una vez o manteniendo presionada la tecla O, puedes hacer clic con el botón izquierdo y
eso también obtendrá el tuyo. Ahora pongamos esto
a prueba
revisando un ejemplo aquí. Para esto, voy a estar
trabajando dentro de mi
Blueprint de Nivel para que puedas
acceder a eso aquí mismo. Plano de Nivel Abierto. Además, quería señalar
aquí que vamos a estar
accediendo a una variable dentro de nuestro personaje de tercera persona. Entonces, si acabas de venir
a visitar el video directamente, abre tu
terceraPersonpersonaje. Dentro de esta vía,
vamos a estar accediendo a esta variable
entera obtenida de XP total dentro de
nuestro terceraPersonCharacter. Entonces, si no tienes esto, sigue
adelante y crea
una variable entera, tengo el
valor predeterminado establecido en 0. Asegúrate de
compilarlo también porque vamos a estar
accediendo a él aquí en breve. Bien, volvamos
a nuestro Plano de Nivel. Lo primero que
vamos a necesitar es un evento. Y hagamos esto en realidad
con una superposición de eventos. Superpongamos un área dentro de
nuestro nivel y luego agreguemos algunos puntos de experiencia a
nuestro personaje por ser tan increíble y
atravesar ese lugar. Así que volvamos
a nuestro mapa de prueba aquí y agreguemos una esfera de disparo. Si no tienes este
lugar panel de actriz, lo
puedes encontrar aquí. Coloca panel de actores que
llegaremos a eso. Coloquemos una
esfera desencadenante dentro de nuestro nivel. Con eso seleccionado
en el panel Detalles, voy a aumentar el
tamaño del radio de nuestra esfera, hacerla un poco más grande. También voy a entrar bajo
la sección de renderizado, juego oculto de actor
desmarcado, para que podamos ver esta esfera. Ahora con este
seleccionado, voy a saltar de nuevo a mi Blueprint de
Nivel. Vamos a hacer clic con el botón derecho en
agregar un evento para esto. Al entrar, Agregar colisión de
eventos. Vamos a hacer algo al empezar
a superponerse. Entonces lo primero que queremos
hacer es comprobar que es nuestro personaje de tercera persona el que es el otro actor que nos está
superponiendo. Así que podemos hacer un chequeo aquí sacando de
este otro pin de actor, haciendo un Cast to
ThirdPersonCharacter. Y hablaremos de
casting oficialmente más adelante en el curso aquí
que viene pronto. Y con todo esto hecho, podemos llegar al interior de nuestro
terceraPersonaPersonaje y
vamos a conseguir esa XP
total ganada. Y vamos a arrastrar un aquí, presionar el botón más. Vamos a sumar,
diremos que vamos a sumar 100 puntos
de experiencia
para llegar a esa esfera. Buen trabajo chico. Entonces vamos a arrastrar fuera
de nuestro terceraPersonaPersonaje, hacer una búsqueda de XP total. Nosotros lo pondremos. Entonces lo estamos
consiguiendo, sumando un 100. Vamos a establecer eso
como el nuevo valor actualizado. No obstante, sólo queremos
hacer esto una vez. No queremos hacerlo para que
podamos superponer esta esfera una y otra vez y otra vez y obtener
100 puntos de experiencia. Sólo queremos decir, Oye, lo
hiciste la primera vez. Eso es genial. Nunca más fluirá por el nodo Arduino
quiere aquí. Después Otorgar los 100 puntos de
experiencia. Por último, pero no menos importante, tenemos
que esperar para comprobar esto. Así que voy a
arrastrar fuera de aquí, hacer una cadena de impresión. Y solo vamos
a imprimir esto a la pantalla arrastrando nuestro XP total ganado
a la cadena, convertirá ese
entero en una cadena. Compile eso, ahorre. Sigamos adelante y
juguemos para probar esto. Voy a establecer mi objeto de depuración
allí en mi mapa de prueba. Y superpongamos eso y veamos lo increíbles que somos ganados
unos 100 puntos de experiencia. Entonces revisa justo en esta
esquina de la pantalla. 100 puntos de experiencia. Ahora eso sólo debería
pasar una vez. Entonces voy a terminar esa superposición y luego
voy a superponer otra vez. ¿ Ves que fluyó
hacia el do quiere? No, pero no fluyó
más allá porque este nodo dice hacer una vez y nunca más. Bien, ahora intentemos restablecer esto
usando otra entrada. Así que déjame hacer clic con el botón derecho en
algún espacio vacío. Buscaré el teclado
seguro la tecla F. Entonces cuando presione la tecla F, voy a reiniciar esto. Y entonces aquí vamos. Voy a compilar esto. Voy a jugar,
voy a superponer esto. Puedes ver que obtengo mis
100 puntos de experiencia. Estoy superponiendo de nuevo actualmente, no
puedo pasar más allá de aquí. No obstante, cuando presiono la tecla F, mira aquí vamos
presionando la tecla izquierda. Va a restablecerlo. Entonces debería hacerlo una vez. Una vez más, obtengo otros
100 puntos de experiencia. Se detiene porque lo está haciendo sólo una vez voy
a presionar la tecla F. Me permitirá
hacerlo una vez más. Ahí vamos. Entonces así es como funciona la tecla
F para restablecer eso haciendo
una vez, una vez más. Ahora tenga en cuenta en este nodo do
once hay una entrada booleana donde
puede comenzar cerrado o no. Actualmente estamos
no estamos empezando cerca. Puedes enchufar una variable
booleana si
quieres comenzar al cerrar o no. Entonces déjame mostrarte eso. Si hago inicio un cierre, así que marqué esa
casilla y ahora juego. Voy a superponer
esta esfera. Pero aquí no va más allá. Sí, se llama
el dual quiere no, pero estamos empezando cerrados, es
decir, que tenemos que restablecerlo aquí primero
para que haga uno. Entonces ahora si presiono F, se restablece. Y ahora puedo ir
más allá de una sola vez. Otra vez no, presione F. Así
que solo quería señalarlo también. Esta ropa de inicio puede
asegurar que la primera vez en este caso la superpongamos. En realidad no
lo haces una vez que
tienes que restablecerlo primero. Hablemos de cuáles son
algunos usos posibles para la nota du once aquí, bueno, piensa en una
fanfarria de nivel o notificación al llegar a un umbral de puntos de
experiencia dado, ya
sabes, has llegado a 5
mil puntos de experiencia. Has subido de nivel. Solo quieres que eso
juegue la primera vez que
superes los 5 mil puntos de
experiencia totales, no 5,005, no 5,010, etcétera. ¿ O qué tal si estás interactuando
con un cofre del tesoro? Quieres abrirlo,
pero abrirlo solo una vez. Ese sería otro gran
uso de un do uno nevado. ¿ O qué tal
cosechar un mineral? Tienes algo de
mineral de hierro en tu nivel y caminas hasta él y
puedes cosecharlo solo una vez. Y entonces tal vez un temporizador
o podría establecerse para permitir que eso
sea cosechable. Una vez más, digamos después de una
hora, dos horas, etc. así que esos son todos los
usos posibles del nodo Dew wants. Muy común usarlo. A mí me encanta. Uno de mis nodos favoritos de control de
flujo, chicos que va
a hacer para ofrecer este, veremos en el siguiente.
79. Do N: Bienvenida. En este video, nuestro objetivo es
obtener ese conocimiento y demostrar el
uso práctico del nodo do n, también
conocido
como nodo amanecer. Ahora bien, esta es una gran
nota para usar para restringir la cantidad de veces
que se puede hacer algo. Entonces, ¿qué hace y no hace el hacer? Bueno, se dispara en el pulso de
ejecución n número de veces como se define por esta entrada
entera aquí mismo, puedes enchufar un valor
entero o puedes configurarlo
duro como
tengo el número 37 aquí. Entonces, después de que se
haya alcanzado este límite, cesará toda ejecución
saliente hasta que se envíe un pulso de vuelta a la
entrada de reinicio. Entonces en este caso, si tuviéramos que conectar una tecla de entrada a esto, digamos la tecla F para fuego. Nosotros dispararíamos fuera de esta salida, esta ejecución daba salida 30 veces. Y después de 30 veces, tendría que
restablecerlo para se ejecutara
otro
pulso de ejecución. Ahora bien, este contador dará salida cuántas veces
se ha hecho, y lo mostraremos
aquí en sólo un poquito. Pero así es esencialmente
como funciona el nodo do n. Es muy parecido al nodo do
once solo se llega a establecer cuántas veces
hace la cosa. No tiene que ser una sola vez. Podrías configurar esto para que sea uno, pero puedes tener este
sea 1102100, etc. así que para agregar este nodo, podrías hacer clic derecho y
simplemente hacer una búsqueda de Don. Ahí está el
nodo do n o manteniendo pulsado el botón izquierdo del ratón haciendo clic. También puedes agregar eso. Pongamos esto a un uso práctico. Estoy en mi tercera
personaPlano de personaje. Ahí es donde lo puedes encontrar. Entonces probemos
un ejemplo aquí. He montado uno antes de tiempo. Y aquí está mi ejemplo. Voy a presionar el botón izquierdo
del ratón, vamos a hacer tres veces. Voy a sacar el
contador aquí a la pantalla. Esto podría ser un texto impreso, nota, podría ser cadena de impresión. Aquí todo va a
funcionar igual. Y al hacer
eso, voy a engendrar a un actor de clase. Entonces este es un
actor spawn del nodo de clase que acabo de ranurar en el fuego de efecto
blueprint aquí. Realmente puedes colocar
lo que quieras. Tienes que darle a
esto una transformación de spawn. Podría haber hecho una transformación mundial GET.
Yoquería hacer. Podría haber hecho una transformación get
rolled, consigue transformación mundial para el actor o cualquiera de mis diferentes
componentes que elegí
hacer aquí para mi mano
simulada. Ahora bien esta es una que agregué
antes en el curso. Entonces, si te preguntas cuál es
mi mano simulada aquí, es un componente de
colisión de esfera. Y sólo para mostrarte
dónde coloco esto dentro de mi ventana gráfica, ahí está. Esa es mi mano simulada representada por alguna colisión de
esfera. Así que vamos a estar generando un fuego de efecto plano en ese lugar relativo
a nuestro personaje. Entonces esa es nuestra configuración ahí mismo. Sigamos adelante y
pruébenos aquí. Déjame compilar eso,
asegúrate de que mi guión sea bueno para comenzar. Entonces estamos diciendo que
vamos a hacer esto tres veces y luego presionar el RT restablecerá eso y me permitirá
hacerlo tres veces más. Una vez más, haciendo clic en reproducir. Déjame configurar todo esto para
establecer mi objeto de depuración el ThirdPersonCharacter
para que puedas ver este
script ejecutándose. Bien, entonces girando ahí
está mi mano simulada. Una vez que se puede ver en la parte superior izquierda está emitiendo
cuántas veces hemos hecho aquí nuestro contador una
segunda vez, 21 veces más. Tres. Ahora bien, si intento hacerlo de nuevo, no va más allá
del nodo final debido. No obstante, si presiono el receptor archae ahora,
vamos a restablecerlo. Y eso me permitirá
hacerlo tres veces más. Entonces aquí vamos. 123,
pero no una cuarta. Entonces algo así,
eso está configurado ahí mismo. Podría usarse
para encender antorchas, como en un juego al estilo Legend of
Zelda. Algunos otros usos posibles, podríamos usar una configuración
como esta para determinar cuántas veces puedes cosechar
un artículo antes de que puedas. Ese es otro buen
uso del nodo n. Quizás lo estés usando para determinar cuántas
veces puedes
disparar un arma dada
antes de que debas recargarla. O tal vez lo uses para
determinar el número de interacciones que puedes tener con un NPC antes de que ya no
puedas tener. Ya sabes cuántos juegos tienen es donde puedes
interactuar con un MPC, digamos tres veces, tiene
tres cosas únicas que decir. Y entonces eso es todo. Bien,
entonces ahí lo tienes. El nodo final, es una
especie de primo, es hermano, si se quiere, del do uno nevó un poco más de
flexibilidad con el nodo do n que harán
para ofrecer este. Nos vemos en la siguiente.
80. Flop del tirón: Bienvenida. En este video, nuestro objetivo es
conocer y demostrar el uso
del nodo flip-flop. Ahora bien, este es el nodo
a usar siempre que
quieras alternar entre
dos bits de script, siempre que ocurra un evento de
tu elección. Entonces, ¿qué es una
nota flip-flop que toma en una ejecución entradas así? Y alterna entre dos salidas de
ejecución, a y B. Así que la primera vez
que fluyas en esto, voy a poner a se llama
la segunda vez. La salida b se llama
la tercera vez. La cuarta vez b, etcétera. Se flip-flops entre
disparar fuera de un entonces B. Ahora sí tiene una
salida booleana que le permite
rastrear cuando se ha llamado a la salida
a. Eso a menudo se
usa para simplemente asegurar que sabes cuál
de estos se está llamando. A lo mejor quieres imprimir
cadenas para que
veas cuando a se llama vs, B, etc. Para mostrar un ejemplo, uso de la nota flip-flop
voy a estar haciendo esto dentro de mi Blueprint de
terceraPersonpersonaje. Entonces, si quieres seguir el
juego en casa, puedes encontrarlo bajo planos en
tercera persona, haz doble clic en ese
tipo para abrirlos. Y necesitamos un evento para que
empecemos aquí. Entonces voy a hacer
clic derecho y hacer un evento de clic con el botón izquierdo del mouse. Puedes usar cualquier
entrada que quieras. Voy a ir con el botón
izquierdo del ratón. Y así cuando presionamos esto, vamos a flip-flop entre a que B que a que B
cada vez que presionemos eso. Entonces lo que quiero hacer es arrastrar esto y
voy a traer a un actor spawn del nodo de clase. Y la clase que voy a engendrar en la primera vez que presione el botón izquierdo del ratón
va a ser mi efecto de plano fuego. Ahora puedes encontrar
esto si tienes estas carpetas de contenido de inicio
y puedes navegar hasta donde está esto haciendo clic aquí
mismo. Eso te va a
saltar para que te pongas. Esto existe dentro de
su navegador de contenido. Honestamente, puedes engendrar lo que
quieras aquí. Esencialmente voy a estar desove en algún
fuego y luego algunas chispas aquí abajo para
simularme lanzando un hechizo. Entonces voy a Control C,
control V. Así que la segunda vez que
presionamos el botón izquierdo del ratón, en vez de fuego, voy
a engendrar en sumas, ladras. Chispas con efecto plano. Ahora sí necesito darle a esto una transformación de spawn para poder arrastrar hacia atrás fuera
de cualquiera de estos. Y voy a decir hacer transformar. Ahora bien, la única razón por la que
quiero usar este make transform es solo una escala reducida de los efectos
de cada uno de estos. Solo voy a hacer que
esto sea la mitad
del tamaño de 0.5 en la x, la y y la z.
De hecho, vamos a adjuntar estos efectos generados a nuestra
malla aquí en un poco. Pero esto disminuirá el tamaño de cada una de estas
medias tallas para cada una de esas. Entonces lo que quiero hacer es que
en realidad quiero almacenar lo que engendramos aquí dentro
de una variable. Y la razón por la que
vamos a querer almacenar estos diferentes efectos es
porque cuando
engendramos uno, vamos a
matar al otro. Entonces esa es nuestra idea aquí
detrás de las chanclas. Entonces voy a hacer
clic derecho en este pin. Voy a promover
la variable. Y voy a darle a esto un
nombre de hechizo equipado 01. Así que he promovido eso a
una variable aquí abajo. Y luego sobre este tipo
voy a hacer clic derecho sobre esto, promover eso a una
variable y voy a llamar a este hechizo equipado 02. Y entré con
ese nombre
ahí abajo por si te lo perdiste. Ahora fuera de cada uno de estos, voy a arrastrar
y escribir adjuntar. Busco
actor adjunto, dos componentes. Adjuntar actor al componente. Ese es el
que estamos buscando. Ahora, el objetivo aquí va
a ser nuestro hechizo equipado. El padre al que
queremos adjuntar esto va a ser nuestra malla. Entonces, si vamos a nuestra ventana gráfica, nuestra malla es este
maniquí de aquí mismo. Entonces esa va a ser
nuestra malla, el actor. Queremos adjuntar nuestro efecto de
hechizo aquí a nuestra malla y podemos
alimentar esto con un nombre de socket. Ahora de vuelta en nuestro nombre
variable video, creamos un socket
en nuestro esqueleto, en nuestra malla aquí. Y creamos un nombre para socket. Ahora sí almacenamos
esto a una variable. Nuestro nombre de socket que
creamos en nuestro nombre video
variable se
llamaba socket de mano. Así que solo voy a
arrastrar y soltar esto, enchufar esto justo aquí. Ahora bien, si no pasaste por
este video de variable de nombre, esto no funcionará
para ti porque primero
necesitas configurar un socket. Yo te sugiero que vuelvas a ese nombre variable video
para poder hacer eso, para que esto
funcione correctamente. Ahora sí necesito cambiar
mi rol de ubicación aquí para ser ajustado al objetivo. La regla
de rotación que se debe ajustar al objetivo también
para que esto funcione, bien, entonces simplemente voy
a copiar esto. Copiar
los tres nodos control C, control V.
Los vamos a pegar aquí abajo, así. Y tenemos que asegurarnos
de enganchar esto así. Entonces esa es nuestra configuración actual. Entonces, si necesitas
pausar el video aquí para ver lo que
tenemos actualmente, pero aún no hemos
terminado del todo. Entonces lo que queremos hacer es
sacar a este tipo en Troya. Actor. Ahora, ¿a qué actor
queremos destruir? Bueno, cuando estamos
desove efecto fuego, vamos a querer destruir
nuestro efecto de chispas y
viceversa para que solo tengamos uno de estos vinculación a la vez. Ahora, para hacer esto, voy a arrastrar en hechizo
equipado O2,
enchufarlo ahí. Esta es la que
acabamos de promover a una variable aquí abajo,
y viceversa. Voy a Control
C, Control V con este Destruir
Actor aquí mismo. Así. Y queremos enchufar el
hechizo número uno equipado a esto. Ahora sé que cuando
ejecutemos esto en un juego, vamos a obtener un
error justo aquí arriba, pero voy a dejar que
este error ocurriera solo para que veas cómo lo
arreglamos en un poco. Ahora bien, este es el guión R
que tenemos en marcha. Vamos a estar haciendo uso
de nuestro nodo flip-flop. Vamos a compilar esto para
asegurarnos de que
todo esto se ve bien. Vamos a salvar esto. Así que sólo para correr a través de esto, vamos a
hacer clic izquierdo del ratón la primera vez que vamos a ejecutar fuera de la salida a. Entonces este bit de script
se va a ejecutar. Vamos a desovar
en el fuego de efecto. Vamos a guardar ese efecto fuego dentro
de una variable. Vamos a
adjuntarlo a nuestra malla en el nombre del socket
que proporcionamos. Entonces vamos a
destruir actor para. Ahora la primera vez que hagamos esto, esto va a arrojar un
error cuando nosotros aquí exóticos porque no hemos
engendrado en efecto hasta el momento. Entonces por eso
arrojará un error. La segunda vez que pulsamos
el botón izquierdo del ratón, vamos a disparar desde la salida B del nodo flip-flop. Va a engendrar en
el efecto de nuestras chispas. Vamos a guardar
eso en variable. Vamos a adjuntarlo a nuestra malla en este nombre de socket
dado. Y al
hacerlo, también va a
acabar
simultáneamente con este efecto
aquí mismo, nuestro efecto fuego. Ahora la próxima vez que presionemos
nuestro botón izquierdo del ratón, la tercera vez vamos a generar
en este efecto viral. Y vamos a estar matando chispas la segunda
vez que lleguemos a esto, no
va a arrojar un
error porque
habremos creado esta
variable aquí mismo. Bien, sigamos adelante
y danos una jugada. Intentaremos meter esto
en la esquina superior. Al hacer clic en reproducir. Déjame establecer mi depuración. Objetarse a nuestra
terceraPersonaPersonaje. Oh, aquí vamos. Voy a
correr por aquí. Entonces voy al botón
izquierdo del ratón. Observe este flujo de
ejecución mientras hago esto. Aquí vamos, botón izquierdo del ratón. Ves que afectar el
fuego es vínculo aquí. Se lo está uniendo a
mi personaje, así. Voy a presionar de nuevo el botón
izquierdo del ratón. Se apagó el fuego. Ahí están las chispas. Y vuelve a pulsar el botón izquierdo
del ratón. Hemos matado las chispas. Ahora tenemos fuego. Ahora voy a
salir de aquí. Aquí está ese error del que
estaba hablando. Se está quejando
una vez más de que no
podemos destruir a este
actor aquí arriba. Al menos la primera vez no
pudimos destruirlo cuando
engendramos en nuestro efecto fuego porque
no había nada que destruir. Esto no existía todavía porque primero
rodamos a través
de la salida a. Sin haber disparado
a través de la b, aún no
habíamos creado
esta variable. Entonces, ¿cómo se resuelve
este tipo de problemas? Bueno, en realidad es
bastante simple. Si hacemos clic derecho en nuestro hechizo
equipado, No, aquí mismo. Y lo convertimos
a un validado todavía. Convertirá el nodo
para que se vea así. Y si lo
conectamos así, podemos decir sólo
si esto es válido, es
decir, sólo si esta variable
tiene algo dentro de ella, vamos a destruir al actor. Si no es válido lo que significa que no
hay nada dentro de él, entonces no hay nada que destruir, así que no pasará nada. Entonces así es como
puedes sortear eso. Así que compilar, guardar,
jugar, clic izquierdo, fuego, clic izquierdo chispas
estaban volteando a, b, a, b ahora y escapamos. Ya no obtenemos ese error. Entonces ese es un ejemplo
del nodo flip-flop. ¿ Cuáles son algunos posibles
usos de esto? Bueno, podrías usar un nodo flip-flop para intercambiar
entre dos armas. Tal vez uses un nodo
flip-flop para activar y apagar el
interruptor de la luz. Esos son algunos ejemplos de
casos de uso. ¿Cuáles son los? ¿ Se te ocurre? Chicos que van a hacer para
ofrecer este? Nos vemos en la siguiente.
81. puerta: Bienvenida. En este video, nuestro
objetivo es adquirir conocimiento y demostrar el
uso del nodo puerta. Ahora bien, este es un nodo extremadamente
autodescriptivo en el que se puede
ingresar al nodo de puerta. Pero si
fluyes o no
del pin de salida de ejecución
y haces lo que venga después esto depende de si
la puerta está abierta o cerrada o no. Comienza cerca aquí
con tu nodo de puerta. Ahora, para traer uno de estos
nodos a tu gráfica, puedes hacer clic derecho
y buscar puerta. Además, puedes mantener pulsada la tecla
G y hacer clic con el botón izquierdo del ratón, y eso también te traerá un nodo de
ganancia. Tengo un ejemplo que
me gustaría demostrar
para todos ustedes aquí dentro
de su Blueprint de Nivel. Entonces, si quieres seguir el juego, ahí es a donde dirigirte. Lo que vamos a hacer
aquí es comenzar con un evento ticks. Sólo voy a hacer
clic derecho y hacer una búsqueda de tick de evento. Y vamos a desembocar
en nuestra puerta cada tic. Así que cada fotograma que vamos
a estar fluyendo hacia nuestro juego. Ahora no vamos a ir más allá de esto hasta que
nuestra puerta esté abierta. Recuerda que nuestra puerta está
empezando a cerrar aquí. Entonces, aunque estemos
fluyendo hacia este nodo, cada tick, cada fotograma, no
vamos
a estar fluyendo
más allá de aquí y haciendo
lo que sea para
venir a continuación hasta que
abramos nuestra puerta. Entonces, ¿cómo vamos a
abrir y cerrar nuestra puerta? Bueno, vamos a hacer esto a través un nivel interno de volumen disparador. Así que regresa a tu nivel. Y vamos a
venir justo debajo de aquí. Voy a venir bajo básico. Vamos a añadir un cuadro de activación, simplemente haga clic izquierdo y arrastre
uno de esos aquí. Sólo voy a
dimensionarlo aquí rápidamente. Vamos 150 por uno cincuenta,
cuatro cincuenta, uno cincuenta, uno cincuenta, uno cincuenta, uno cincuenta. No lo sé. Es el primer número
que vino de nuestras mentes. Algo grande, grosor de línea, vamos a cambiar
eso para tender a hacer esto un poco más fácil de ver. Sin embargo, no lo vamos a ver
a menos que nos encontremos en la sección de
renderizado. Sección de renderizado y
desmarcamos actor juego oculto. Voy a levantar
esto, presionar la
tecla Fin para golpearla
hasta el suelo. Vamos a comprobar para ver
si hemos solapado esto. Entonces con este seleccionado, vamos a volver
a nuestro Blueprint de Nivel. Si aún no lo tienes abierto, abre Nivel Blueprint. Y vamos a hacer clic derecho
en algún espacio vacío. Y vamos a agregar un
evento para ese disparador de volumen bajo la colisión
cuando comencemos a superponerlo, así
como colisión con el botón derecho cuando terminemos de superponerla. Entonces queremos hacer algo
solo cuando somos nosotros, el terceraPersonCharacter
superponiendo el volumen del disparador. Otra forma podemos verificar
para ver si somos nosotros. Podría arrastrar fuera
de aquí y echar. No obstante, sólo voy a
presumir de un método diferente. Sólo voy a escribir
get player character. Ahora bien, si arrastro fuera de
nuestro otro actor y simplemente escribo el operador de
iguales, podemos verificar para ver si es el personaje del jugador el
que nos está superponiendo. Ahora no necesitamos
agarrar dentro de nuestro terceraPersonCharacter
y ejecutar ninguna función que esté llamando a las variables
nada de eso. Solo tenemos que verificar si
es nuestro jugador genérico. Realmente no nos importa
qué personaje de jugador, cualquier personaje de jugador. En este caso, para
ThirdPersonCharacter es el que
estamos controlando. Entonces esto es lo suficientemente bueno, puede mantener pulsada la
tecla Alt clic izquierdo. Esa será nuestra
condición aquí mismo. Vamos a copiar estos
nodos aquí arriba, control C, control V. Tráelos aquí mismo. Así. Entonces, si es cierto que estamos superponiendo
esa caja de activación, si eso es cierto,
vamos a abrir las puertas. Ahora bien, si hemos terminado superponiendo la caja Trigger
con nuestro personaje jugador, ese está comprobado que
es el otro actor que se termina esa superposición. Si eso es cierto, entonces
vamos a cerrar la puerta. Ahora. Eso está muy bien, pero ¿qué vamos a
hacer al abrir las puertas? Bueno, aquí vamos a agregar otro
actor a nuestro nivel. Entonces, ¿por qué no
golpeas ahí atrás? Y vamos a agregar una
especie de puerta aquí mismo un
poco más allá de nuestra caja Trigger. Entonces para agregar una cotización, sin comillas puerta, voy
a entrar justo debajo de aquí. Vamos a
venir bajo formas. Vamos a agregar un cubo. Y sólo voy a
estirarlo un poco. Entonces golpeando la tecla R, voy a escalarla así. No voy a
ser súper preciso. Vamos a
levantarlo al aire, algo así. Tal vez adelgazarlo un
poco así. Voy a golpear la tecla Fin para golpearla hasta el suelo. Y con esta seleccionada, también
voy a
necesitar acercarme
al panel Detalles y cambiar la movilidad de
estos dos móviles. Ahora la razón por la que voy
a necesitar cambiar esto a movible es porque voy a estar moviendo lentamente esto fuera
del camino en la siguiente
parte de nuestro guión. Bien, entonces con eso hecho, tenemos nuestro cubo
aquí seleccionado. Asegúrate de tener
eso seleccionado. Regresa a tu
plano de nivel. También se puede acceder allí. Si aún no
tienes esa pestaña abierta, mantén pulsada la tecla R haz clic izquierdo para traer
una referencia. Y luego vamos a
sacar de esto y escribir componentes
de malla estáticos. Entonces nuestro actor de malla estática consiste en un componente
de malla estática. Y para ayudar a conducir a
casa ese punto, si vuelvo a mi nivel
y selecciono mi cubo, podemos ver que R cubed consiste en un componente
de malla estática, que es esencialmente
este cubo de aquí mismo. Pero tenemos que hacer eso con el
fin de arrastrar fuera de esto y traer en el nodo de
ubicación relativa al anuncio. Ahora en este nodo lo hace, puedes ver que nuestro componente de
malla estática del cubo está
conectado al objetivo. Está buscando una referencia de objeto
componente. Esto es en lo que vamos a estar fluyendo una vez que
nuestra puerta esté abierta. Ahora esta ubicación Delta nos
permite cambiar la ubicación de este componente de
escena, de este componente de malla estática. Pero sólo una vez que la puerta esté abierta. Ahora voy a cambiar
esto cambiando nuestra ubicación z para agregar una. Así que vamos a agregar uno a nuestra ubicación z en cada marco, porque vamos a
estar fluyendo hacia este cada marco una vez que
nuestra puerta esté abierta. Así que solo para revisar, cada tick, cada cuadro que vamos a
estar fluyendo hacia esta puerta. No obstante, aquí mismo, esta casilla de verificación dice
Estamos empezando cerca. No vamos a estar pasando
más allá de aquí en cambiar la ubicación relativa
de nuestro cubo. Sin embargo, una vez que
comenzamos a superponer una caja Trigger con
nuestro personaje jugador, nuestro personaje jugador
se considera igual al otro actor. Es el otro actor el
que nos está superponiendo. Eso es cierto. Entonces vamos a
abrir la puerta y luego vamos a estar moviendo
eso al aire. Sin embargo, cuando terminemos superponiendo ese volumen de disparo con nuestro personaje jugador, cuando eso sea cierto,
vamos a cerrar las puertas. Hablemos de esto
, justo aquí arriba. Voy a hacer clic en Reproducir. Si no has configurado
tu objeto de depuración, puedes hacer clic aquí
y configurarlo para que veas ese
flujo de ejecución yendo. Déjame solo, ahí vamos. Parada mostrada ahí solo brevemente. Bien, ahora voy a tratar de enmarcar eso
un poco mejor. Trae de
nuevo a mi personaje. Bien, así que veis
evento tick estaban fluyendo
hacia esta puerta cada
fotograma, sin embargo, no
vamos más allá de
aquí ahora mira lo que pasa cuando me
superpongo esto con mi personaje. Vas a ver esto
abierto, la puerta. Aquí vamos. Puedo ver que se
levanta en el aire. Y si termino mi solapamiento, va a dejar de levantarlo en el aire, comenzar a superponerse. Va a abrir la puerta
y continuar
levantándola y superponiéndola, etcétera. Ahora otro ejemplo rápido, el caso de
uso del
nodo puerta usando gran parte de la misma configuración que
ya tenemos en su lugar. Acabo de cambiar un
par de notas aquí. Aquí estamos lanzando a nuestra terceraPersonaPersonaje
tanto Ana comienza la superposición como la superposición final. Y la razón por la que
quería ir con este enfoque es para
que podamos arrastrar fuera de nuestro terceraPersonaPersonaje
y llamar a esta
función modificar salud que
creamos cuando
hablamos de funciones. Ahora lo que
vamos a hacer con esta configuración es hacer
que cuando nuestro personaje se
superponga a esta caja Trigger, vamos a estar decrementando salud de
nuestro personaje mientras
están dentro de él. Una vez que salgan
de esa caja de gatillo, vamos a detener ese
sangrado, por así decirlo. Entonces puedes imaginarte
esto siendo como una
cámara de gas venenosa o tal vez, ya
sabes, tal vez estés cruzando un pozo de fuego,
algo así. Entonces aquí vamos. Esto se puede ver en el trabajo. Te recomiendo si
vas a hacer esto, aunque cada tick, pondrías tu decremento de salud a un valor muy bajo. En realidad vas
a ver esto representado en nuestra barra de salud aquí
arriba porque tenemos nuestra salud atada a este medidor encendido o HUD también. Entonces aquí vamos, superponiendo esto. Sé que el sonido es muy spam en estos momentos, pero
entiendes el punto. Al salir de esta zona de gas
venenoso, el sangrado se detiene. Y así ahí lo tienes. El nodo puerta, toma
en rutas de ejecución. Pero si vas o no
más allá de esto y haces lo que venga más allá de esta ejecución fuera pin depende de
si o no, si la puerta está abierta o cerrada que haremos para
ofrecer este chicos. Nos vemos en la siguiente.
82. MultiGate: Bienvenida. Vamos a estar hablando del nodo multi-puerta
aquí en este video. Y creo que la mejor manera de
demostrar lo que esto
hace es simplemente seguir adelante y
armar un ejemplo lugar de hablar de ello. Entonces voy a estar
armando este ejemplo aquí en
mi Plano de Nivel. Si quieres seguir el juego, si olvidaste cómo entrar
en tu Plano de Nivel, puedes venir aquí mismo,
abrir Plano de Nivel. Y para agregar un nodo multi-grado, simplemente
puede hacer clic derecho
y buscarlo o mantener presionada la tecla M, botón
izquierdo del mouse, eso
agregará uno allí también. Ahora bien, este primer ejemplo es de naturaleza un
poco académica. Entonces seguí adelante y configuré el guión antes de tiempo
para ahorrarnos algo de tiempo, pero voy a explicar
lo que está pasando. Por lo que traje 34 claves de entrada
para ayudar a facilitar esto. Tengo una pulsación
de las tres teclas que fluyen hacia mi nodo
multi-grado. En el lado de salida de las cosas, agregué un pin extra. Y cada uno de estos
está conectado a un nodo de función de
textos impresos correspondiente. Y simplemente
va a imprimir 012 respectivamente para
corresponder con la salida 012. Ahora, cuando presiono la
tecla tres y fluimos hacia
este nodo multi-grado, la primera vez que
presiono esa tecla tres, va a dar salida a
esta salida 0. Se va a sacar el
número 0 a la pantalla. Esto está determinado
por nuestro índice de inicio. Un índice de inicio por defecto
a negativo significa
esencialmente comenzar en
la parte superior de nuestra lista aquí. Sin embargo, a diferencia de un nodo de
secuencia que
imprimiría todos estos
en rápida sucesión, sólo
va a
imprimir este número 0. No va a
imprimir uno o dos. Ahora bien, si presiono la
tecla tres por segunda vez, fluirá hacia
el nodo de múltiples puertas y luego imprimirá el número uno. Escogerá este 1 primero. Esto lo hicimos con la
primera pulsación de una tecla. La segunda vez que lo presione, fluirá aquí. La tercera vez que lo presione, fluirá aquí, etcétera. La cuarta vez que lo presione, no va a
pasar nada hasta que restablezca. Entonces aquí vamos. Eso es un
desglose rápido de cómo funciona este nodo. Voy a hacer clic en Reproducir aquí arriba, voy a configurar mi objeto de depuración
para que sea nuestros mapas de prueba de nivel. Así se puede ver todo esto
fluyendo en la gráfica también. Entonces aquí vamos. Voy
a presionar la tecla tres. Vemos el número 0
simplemente fluye ahí. Voy a presionar la tecla
tres por segunda vez. Vemos el número uno. Voy a
presionarlo por tercera vez. Vemos el número dos. Ahora bien, si lo presiono por cuarta vez, estamos fluyendo hacia esto. Sin embargo, no estamos
fluyendo y no
vamos a fluir
hasta que restablecemos. Entonces, esencialmente, cuando fluyes
hacia el nodo multi-grado, se asegurará de que todas
estas salidas se ejecuten. Una vez que todos ellos hayan
sido ejecutados, entonces debes Reiniciarlo
para que esto vuelva a funcionar. Entonces, si presiono la tecla F4, que voy a hacer
ahora mismo, solo restablecerla. Ahora puedo presionar
la tecla tres, 0. Vuelva a presionar la tecla tres. Uno, presione tres teclas nuevamente para. Y si intento volver a presionar
la tecla tres, estoy fluyendo hacia ella,
pero no puedo salir de ella hasta que la restablezca. Y qué puntos
puedo volver a hacerlo, 012. Ahora, intentemos eso de
nuevo solo esta vez. Vamos a revisar. Esta es una casilla de verificación aleatoria. Antes esto no se comprobaba con un índice
de inicio de uno negativo. Íbamos a
disparar fuera de nuestro top. Voy a poner pin, luego nuestro segundo, luego nuestro tercero en orden
secuencial, garantizado con es seleccionado
al azar. No obstante, vamos a disparar
a través los tres antes de
que tengamos que reiniciar. No obstante, va a escoger un índice aleatorio con el que
disparar desde la primera vez, la segunda vez,
que la tercera vez. Aquí vamos. Por lo que al presionar la tecla tres decidió ir con ese 1 primero, ese 1 segundo, ese 1 tercio. Si lo presiono por
cuarta vez, nada. Tengo que presionar la tecla F4 para restablecerla. Y luego ahí
empezamos aquí abajo primero, ese 1 segundo, ese 1 tercio. Entonces eso es lo que hace la casilla de verificación es aleatoria
booleana. Ahora bien, si se
comprueba loop y juego, y voy a presionar la tecla
tres aquí una, dos veces,
una tercera vez , luego
una cuarta vez, cinco veces, seis veces. Esencialmente cuando
tienes un loop check aquí, puedes seguir presionando,
en nuestro caso, las tres teclas una
y otra y otra vez. No hay necesidad de reiniciar. Por último, solo para presumir a nuestro índice de inicio por defecto
que está configurado en negativo. Sólo voy a
desmarcar cada uno de estos. Vamos a establecer eso para decir dos, no negativo 22,
y hago clic en Reproducir. Ahora cuando presiono la tecla tres, disparamos primero de los
dos pines,
luego 0, luego uno, o presionamos de nuevo la
tecla tres, nada. No obstante, si reinicio, entonces presiono la tecla tres, se va a disparar de
2 primero que 0, de uno. Entonces una vez más, es cierto, un ejemplo bastante académico. Entonces probemos algo un
poco más fiel a un juego. Y voy a
demostrar esto aquí en el Plano de Nivel también. Vayamos a
la derecha aquí, o cualquier espacio abierto
aquí en tu gráfica. Una vez más, he montado
algunas cosas antes de tiempo. Tengo un nodo de varios días. Mantenga pulsado y haga clic con el botón izquierdo, puede traer uno de esos. Y de cada uno de mis
tres pines de salida, sí
agregué uno aquí. Trají
actor de desove de nodos de clase, y simplemente ranuré en tres clases diferentes
mi efecto de plano, explosión, fuego y humo. Y ahora necesito algo para
disparar este multi-día. Déjame volver a mi nivel
aquí y voy a sumar aquí básico. Hagamos una caja Trigger. Levanta esto un poco, establece nuestras cajas de extensión
para que sean algo así como doscientos
doscientos
doscientos doscientos grosor de
línea de diez. Realmente debería dejar un
cuadro de Trigger aquí para todos
los diferentes ejemplos
como este y presumir bajo la categoría de
renderizado, desmarcar a ese actor
escondido en el juego, bien, con su
eventos seleccionados. Aquí en nuestro Nivel, Planos. Plano de nivel, mantenga pulsado o más bien un clic derecho,
no mantenga presionado, haga clic con el botón derecho en Agregar colisión de eventos para cuando
comencemos a
superponerse eso, podemos verificar para ver
que nuestro otro actor, nosotros puede decir iguales. Esta es otra forma
de mostrar para ver si lo que estamos
esperando superponer, esto es algo que
estamos esperando va a decir, es que igual a r
obtiene personaje jugador. No estamos buscando
extraer ninguna variable que esté
llamando a funciones dentro de
nuestro terceraPersonCharacter. Entonces esto va a ser lo suficientemente bueno. Mantenga pulsada la
tecla Alt y haga clic izquierdo. Diremos que si eso es cierto, fluirá hacia el nodo de rama,
un nodo de control de flujo. Y si esto es cierto,
fluiremos hacia el nodo de puertas multibit. Y si eso es cierto, vamos a generar una
de estas compilaciones. Oh sí, necesitamos especificar
una transformación de spawn. Bueno,
ya tenemos nuestra caja Trigger seleccionada
aquí en nuestro nivel. Así que vamos a engendrar. Está en algún lugar de esa caja de
gatillo, ¿verdad? mantener presionada la tecla Alt, haga clic con el botón izquierdo para traer
un cuadro de activación de
almacenamiento de referencia arrastrado fuera de aquí, se transforma. Podemos enchufar estos en 123, así que estamos recogiendo
uno de estos engendros al azar, compilar una vez más. Sigamos adelante y jugemos. Voy a meter esto aquí
abajo. Tenemos nuestros mapas de prueba seleccionados, escritos allí como
nuestro objeto de depuración. Y aquí vamos. La primera vez
que nos superpusimos estaba recogiendo una de estas explosiones aleatorias
la segunda vez fuego, y la tercera vez, también
tenemos algo de humo ahí dentro. Ahora tenga en cuenta, si vuelvo a
superponer esto, nos detuvimos
aquí mismo en la puerta. No hemos restablecido esto en absoluto. Entonces eso sería algo
que tal vez quieras hacer para permitir algún desove. Una vez más. Ahora una configuración como esta se puede usar
como una gota de botín. A lo mejor matas a un enemigo y quieres
premiar algo al azar, ese sería un buen ejemplo. Uso del multijuego. Quizás uses un multi-grado
para generar oleadas de enemigos. Entonces podrías elegir una ola
de enemigo entre nuestros ceros, fuera uno o dos. O tal vez podrías
usar un nodo multi-grado cuando hables con un NPC. Una vez más, muchos juegos
lo tienen para que puedas hablar con un MPC, y en tu MPC, lobos alimentan tres líneas de diálogo
únicas diferentes. Puedes hacerlo de manera que usando
un nodo multi-grado cuando superpongas ese volumen de disparo
relacionado con ese NPC, puedas disparar la línea
de disparo de diálogo 12 o
tres respectivamente. Chicos, eso lo va a hacer
todo para el nodo multiset. Te veremos en la siguiente.
83. Para bucles: Bienvenida. En este video, nuestro objetivo es adquirir
conocimiento y demostrar el uso de los nodos for-loop. No confundir con
los nodos para cada bucle, que estaremos
hablando en el siguiente video. Ahora estos nodos repetirán una y
otra vez una sección de script. Y aunque se pueden usar
dentro de la hierba de eventos, realmente brillan al escribir contenido
procesal usando
el script de construcción. Ahora para empezar,
¿qué es un for-loop? Bueno, un for-loop es un
nodo que cuando se llama, lo que
significa que tiene un cable de ejecución enchufado en el
lado izquierdo aquí. Se dispara un pulso
fuera del bucle, cuerpo X número de veces, siendo determinado el número de
veces por el primer y último índice. Entonces, por ejemplo, si
tuviéramos algún evento enchufado a nuestro nodo
for loop aquí, y nuestro primer índice era 0. En nuestro último índice era nueve, fluiríamos fuera de nuestro cuerpo
bucle aquí diez veces, comenzando de 0 a nueve. Ahora cada vez que
salíamos de nuestro cuerpo de bucle, estaríamos
escupiendo en qué índice entre 09 estamos. De nuevo, de 0 a nueve,
irías 0123456789. Entonces, cuando estábamos en la
quinta iteración a través, estaríamos
escupiendo índice para, nuevo, a partir del número 0. Ahora una vez que haya
pasado por los diez, este cable de
salida de ejecución terminada se dispararía. Ahora la única diferencia entre nuestro nodo for loop aquí
en nuestro bucle for con nodo
pan es simplemente esta pluma de ejecución de entrada
break. Tienes la capacidad con este
nodo de romper el flujo de ejecución antes de llegar
a tus últimos índices. Si, por ejemplo,
tu primer índice es 0 y tu último índice es 99, es
decir, 100 bucles por aquí. Podrías por cualquier razón, romperlo temprano para que
en realidad no lo completes. Y mostraremos una
demostración de eso más adelante en este video. Bien, ahora, como mencioné
al inicio de este video, puedes usar estos nodos
aquí en un gráfico de eventos, pero realmente muestran su poder dentro de un Script de
Construcción, construyendo contenido procesal. Y de hecho, al
principio de este curso, cuando estaba hablando
del script de construcción, hice uso de
un nodo for-loop. Así que déjame
traer eso de nuevo, volviendo a mi mapa de prueba aquí, realidad
tengo En ejemplo Plano de Script de
Construcción. Este es el plano
que construí
mucho antes en el curso al hablar del guión de
construcción. Tengo uno de
estos en mi nivel, pero si no lo haces,
lo puedes encontrar en tu carpeta de scripting
Blueprints. Ahí está tu ejemplo BP
Construction Script. También. Puedes navegar hasta él
aquí en tu Outliner
seleccionándolo y tu mundo
y haciendo clic aquí mismo. Ahora, no tengo nada aquí en este plano
en mi Gráfico de Eventos,
mi ventana gráfica muestra lo que ha construido
el
Script de Construcción. Así que aquí está mi pestaña
de Script de Construcción. Si no tienes esto abierto, puedes hacer doble clic
sobre este abajo en el
panel Mi Blueprint para abrirlo. Y aquí es donde estamos
haciendo uso de un nodo for loop. Ahora todo este script de
aquí mismo ha sido construido para generar contenido
procesal. Expongo estos números de la variable entera de
sección al editor. Y así ajustando el
número de secciones, podemos recorrer este nodo
for-loop X número de veces pasando de 0 a r
número de secciones menos uno. Y esto es solo hacer algunas matemáticas para determinar dónde colocar la malla estática de
instancia de
esta pieza de pared aquí mismo. Ahora tengo un poco
de scripts adicionales pasando aquí para establecer el
material para esta instancia, malla
estática, pero eso es lo que está haciendo todo
este
script de construcción. Entonces el poder de esto, nuevamente con el for-loop, es que puedes especificar
cuántas veces vas a
recorrer el resto de
este código aquí mismo. Y en este caso, vamos de un
índice de 0 a cualquier número de
secciones que especifique. Aquí en mi nivel, expongo esta variable
para que sea instancia editable, esa casilla de verificación ahí mismo. Y al hacerlo, esa variable se vuelve
disponible dentro del panel Detalles cuando tengo seleccionado
este blueprint. Para que puedan ver si ajusto
los números de secciones aquí, puedo ampliar este muro. Lo que está haciendo esto. Una vez más, está
dando vueltas por aquí. ¿ Cuántas veces? Bueno, actualmente
tengo este set para ser veintiuno. Veintiuno. Veintiuno menos uno es 20. Entonces del 0 al 20, eso es recorrer
por aquí todos esos tiempos para sumar estas
secciones de muros. Entonces ese es el
cuerpo del bucle que está
haciendo, haciendo repitiendo esta
sección de script, sin embargo muchas veces pasando
del primer índice
al último índice. Ahora bien, vale la pena
señalar aquí que las iteraciones de
bucle se llevarán a
cabo entre fotogramas, por lo que los bucles grandes pueden incurrir en
un golpe de rendimiento. Entonces, si tuviéramos que establecer aquí
nuestro último índice
para que fuera bastante alto, veremos un poco de retraso. Entonces voy a tratar de establecer
esto en un número alto aquí. En mi nivel. Actualmente lo tengo establecido
en 21, lo cual no es tan malo. Si trato de establecer esto 500 mil y presiono
Enter, mira lo que pasa. Y en efecto, eso sí
llevó bastante tiempo. Ahora, corté el video
ahí mismo para que pareciera
que me tomó mucho menos tiempo, pero eso probablemente
le tomó a mi computadora alrededor de un minuto
mostrar realmente todas esas
secciones de paredes. Así que solo debes saber que
probablemente no quieras tener demasiados bucles a través de
tu nodo for-loop. Bien, vamos a mostrar
un práctico caso de uso para el bucle for. Nota aquí en nuestro nivel, voy a agregar una caja de gatillo y voy a configurar la caja se extiende para que sea
algo un poco más grande. Vamos a ir 300 en la x, 300 en la
y, y 40 va a
estar bien para la Z. sólo
voy a recogerlo un poco
del suelo,
algo así. Déjame establecer el
grosor de la línea en diez. Y así como
me has visto hacer un montón de
veces hasta ahora, voy a desmarcar actor oculto y juegos para
que podamos verlo. Entonces voy a
duplicar esto, manteniendo pulsada la tecla Alt,
click izquierdo y arrastrando. Y voy a bajar la
extensión de la caja para esta, haremos 100 por 100 por 100, algo un poco
más pequeño así, recogiéndola en el aire,
golpeando la tecla End para
golpearla hasta el suelo. Entonces, ¿qué estoy tratando de
lograr con esta configuración? Bueno, esencialmente lo que
voy a hacer que suceda aquí. Nuestro personaje va a engendrar aquí
mismo al inicio de nuestro jugador. Vamos a hacer
que cuando nuestro personaje se superponga a
esta caja Trigger, vamos a generar algunas pociones de
manera dentro los límites de este
volumen ¿aquí mismo? Sí, puedes usar una caja Trigger que desencadena el volumen para
generar cosas dentro. Eso es lo que
vamos a usar para eso. Y también vamos
a utilizar un nodo for
loop para generar
tres pociones de Amanda. Entonces, lo primero es lo primero, vamos a seleccionar esta casilla
Trigger aquí mismo. Vuelve a tu plano de nivel. Y vamos a hacer clic derecho
y algo de espacio vacío. Vamos a agregar un evento para cuando empecemos a superponer eso. Y simplemente vamos a arrastrar fuera
de nuestro otro actor aquí, escriba el signo igual. Y este será nuestro método para
verificar para ver si es
nuestro personaje jugador. Vamos a hacer clic derecho para
obtener el personaje del jugador. Nuevamente, hay todo
tipo de métodos que podríamos usar para esta sección para verificar si
es nuestro terceraPersonCharacter. Esto va a funcionar bien. Mantener pulsada la tecla
haciendo clic izquierdo para traer una sucursal. Así. Siguiente Voy a
mantener pulsada la tecla O y clic con el botón izquierdo porque queremos
hacer algo una vez. ¿ Qué queremos que suceda? Bueno, queremos arrastrar fuera de aquí y traer un bucle for, no un para cada bucle, un for-loop. Estableceremos nuestro primer índice en 0, nuestro último índice en dos. Entonces el 012 serán nuestros
tres índices. Y vamos a arrastrar fuera de
nuestro cuerpo bucle y
vamos a engendrar actor de clase. Y aquí es donde voy
a meter en nuestro hombre una poción. De nuevo, puedes meter
cualquier cosa aquí que sea algún tipo de
objeto blueprint, yo recomendaría. Ahora bien, ¿dónde voy
a engendrar esta cosa? Necesito acelerar esto
una transformación de engendro. Entonces volvamos a nuestro nivel. Vamos a seleccionar
este volumen de activación aquí. Entonces vamos a saltar de
nuevo a nuestro Plano de Nivel, mantener pulsados los arcos
son como en referencia y hacer clic izquierdo para traer una referencia a
ese cuadro de gatillo. Vamos a arrastrar fuera de aquí. Obtener límites de actor es el nodo
que estamos buscando. Entonces vamos a arrastrar fuera
del origen aquí y escribir al azar un punto en
un cuadro delimitador. Esa es la extensión de la caja. Podemos enchufar eso
en el tamaño medio. Y por último pero no menos importante, vamos a arrastrar hacia atrás
fuera de la transformación de spawn, donde vamos a
escribir make transform. El único aspecto de la
transformación que nos va a
preocupar para esto es la ubicación. Así que toma la ubicación de
nuestro cuadro delimitador
aquí mismo y conéctalo a la ubicación
del make transform. Así que recapitulemos muy rápidamente
aquí lo que tenemos que hacer. Vamos a superponer
este volumen disparador. Vamos a
comprobar si fue el personaje jugador el que hizo la superposición si
lo fue, y eso es cierto. Una vez, vamos a
recorrer esto tres
veces, a partir de las 0012. Entonces bam, bam, bam, desove tres
pociones de maná dentro de los límites de este
volumen disparador. Vamos a compilar. Eso va a comprobar para
ver si nuestro guión es bueno. Guardar. Vamos a meter este guión justo
aquí arriba y sigamos
a jugar. Y ve ahí mis dos
volúmenes. Vamos a superponer este
primero de aquí. 123. Ahí vamos. Ahora bien, si intento
superponerme y otra vez ,
no hay dados, hay dados, se
puede ver que solo se
detiene en el nodo do once. Ahora tal vez te estés preguntando ¿por qué esta emancipación engendró
arriba aquí mismo? Bueno, estamos consiguiendo
nuestros límites de actor para este cuadro Trigger aquí mismo, pero estamos escogiendo un punto
aleatorio dentro del cuadro delimitador
especificando un origen, el centro de este. Y el punto aleatorio
que realmente estamos eligiendo es la mitad del tamaño
de nuestra extensión de caja. Así que
realmente puedes ir fuera de los límites de este cuento
tan largo, este es solo un
ejemplo rápido para mostrar el nodo for loop en el trabajo. Así que déjame salir de aquí. Para terminar, vamos
a demostrar el bucle for con nodo pan dentro de
nuestro terceraPersonpersonaje. Entonces aquí hay un directorio
para encontrar eso. Haga doble clic sobre
él para abrirlo. Y vamos a traer
en un teclado eventos. Hagamos clic derecho y escribamos algo de espacio
vacío en el teclado. Trae cualquier evento de teclado
que aún no hayas usado. Yo iré con la llave E, shore y-nada, y él va a hacer. Lo que vamos a hacer es
arrastrar fuera de esto y traer un bucle for. Un for-loop con break, no por cada loop que
va a venir después. Siguiente video. Y vamos a tener el primer
índice solo en 0, el último índice, sin embargo, voy a poner
en el número 30. Entonces voy a hacer clic derecho sobre este pin y voy a promover eso a una variable
solo para presumir, una vez más como recordatorio, que si lo pones en un número, luego promueve una variable, no
solo vas a crear una variable, sino que si compilas, verás que
ese número en el que tenías duro establecido ahora
está establecido como el valor predeterminado para esa variable promocionada. Bastante práctico. Ahora voy a
renombrar esta variable. Voy a golpear F2 en
esto y voy a llamar a este inventario artículos max. Entonces, ¿qué estamos haciendo aquí? Vamos a pasar por un escenario
hipotético en el que tu personaje de tercera persona
puede contener 30 artículos de inventario. Pero digamos que en
la interfaz de usuario de los personajes, solo
pueden mostrar 15
elementos en una sola página. Entonces en este caso, vamos a detener nuestro for-loop con break cuando
encontremos que hemos ido, hemos pasado por
esto 15 veces. Entonces esencialmente
vamos a ir de 01234567891011121314. Eso sería 15 veces en total. Y vamos a
romper nuestro For Loop. Entonces, ¿qué tenemos que hacer a continuación? Tenemos que arrastrarnos
de nuestro índice aquí. Y vamos a traer
un símbolo igual. Y vamos a ver si
nuestro índice es igual a 14. ¿ Por qué 14? Si queremos realmente romperlo
después de haber llegado a 15 ítems porque recuerda que nuestro primer índice es contar 0. Entonces con ese conjunto ahí, voy a promover
esto a una variable. Haga clic derecho promueve la variable. Podemos compilar eso. Ahora ese es nuestro nuevo
valor ahí dentro. No obstante, pongamos a esto
algo mejor que eso. Así que voy a
renombrarlo por aquí. Llamemos a esa
página uno artículos max. Y lo que vamos a hacer a continuación es arrastrarnos fuera de aquí y
traer un nodo de sucursal. Entre esto, voy a colarme en
unos nodos Print String. Así que cada vez
que estamos recorriendo, vamos a imprimir. Así que imprime cadena, en qué
índice estamos. Así que arrastra y suelta eso ahí. Traerá cualquier
entero de conversión a cadena. Enchufa esto a nuestra sucursal. Y lo que queremos hacer
aquí es si esto es cierto, nuestros ítems de la página uno son
iguales a nuestros índices de 14. Vamos a compilar eso otra vez, 14. Si esto es cierto, vamos a volver a azotar por aquí y vamos a romper. Haga doble clic en esto para
agregar un poco de reencaminamiento de la nariz para que se vea un
poco más agradable. Una vez que nos hayamos roto, ya
terminamos. Voy a arrastrar fuera de aquí, trayendo en otro nodo de cadena de
impresión. Y simplemente vamos a
imprimir en la pantalla. Cada uno de tu inventario está lleno o algo así. Y vamos a
imprimir esto en la pantalla un
poco más. Entonces hago clic en esa flecha hacia abajo
ahí para exponer algunos parámetros más aquí vamos a establecer eso a
una duración de diez. Entonces eso es lo que
estamos pasando aquí. Nuevamente,
en realidad no estamos imprimiendo nada en la pantalla. No estamos imprimiendo
ningún artículo de inventario, no es solo todo hipotético. Compilar esto. Guardar. Y vamos a seguir adelante
y colocar que son opción de
depuración para ser nuestro
terceraPersonpersonaje. Para que veas que se
desencadena este guión. Y todo esto va a
pasar muy, muy rápido. Así que busca aquí en la parte superior
izquierda mientras toco la tecla E, página, uno de tu
inventario es falso. Entonces viste todos esos índices, 012345678910 al 14 hasta que dice
que la página uno de
tu inventario está llena. Se puede ver de
este ejemplo aquí es que nunca llegamos a nuestro último índice. Se suponía que
íbamos a llegar
hasta 30 artículos de inventario. Bueno, verdaderamente 31 si
estás contando ese 0. Pero aquí rompimos nuestro bucle. No logramos atravesar
el bucle que muchas veces rompimos cuando pegamos 14. Entonces ese es un ejemplo de un
for-loop con nodo break. Una vez más, estos nodos son
geniales al usarlos con script de construcción
interno para crear algo así como
muros procedimentales como este, pero también se pueden usar
en gráficos de eventos. Ahora, una última cosa
a tener en cuenta aquí en nuestro
script de construcción que creé mucho antes en el curso cuando
creé este script
usando un nodo for-loop, menudo cuando se usa
for-loop conoce el se utiliza en algún tipo
de cálculo matemático. Entonces eso es algo a
tener en cuenta también. Entonces, por cada vez que
estamos recorriendo esto, estaba usando ese número de índice, multiplicándolo por otro
número para averiguar dónde colocar
exactamente esta instancia, Malla
Estática, esta pieza de pared. Bien chicos, eso va a
hacer para ofrecer este, veremos a todos
en el siguiente video.
84. Para cada bucle: Bienvenida. En este video, nuestro objetivo
es adquirir conocimiento y demostrar el uso de los nodos
para cada bucle, el primo cercano de los nodos
for-loop que
cubrimos en el último video. Entonces, ¿qué hace que un
nodo para cada bucle sea diferente de
los nodos de bucle for? Bueno, son
nodos de control de flujo que toman
una matriz en lugar de
cualquier número de índices. Por lo tanto, al tomar en una matriz, le
permiten
hacer algo a cada elemento de la matriz que es
el contenido de la matriz. Ahora, si vuelves a nuestro video de matriz desde
antes en el curso, recordarás que una
matriz es esencialmente una lista. Es un contenedor que consta de múltiples elementos que tiene entradas del mismo tipo de
variable. Bien, para presumir
en el ejemplo aquí
vamos a estar haciendo algún trabajo dentro
de nuestro plano de nivel. Pero primero, vamos a estar haciendo algún trabajo de lado de nuestro nivel. Ahora, voy a usar esta lámpara SM de pared dentro de mi carpeta de contenido
estrella Props. Aunque realmente
puedes usar cualquier tipo de malla
estática para crear lo que
estamos a punto de crear. Aquí tengo un muro sencillo. Entonces, si quieres
colocar una
especie de pared en tu nivel
para seguir el juego, eso también podría
ser bueno hacerlo. Porque lo que voy a
hacer es colocar esta pared de Scott a lo largo de esta pared que
tengo aquí. Y voy a
presumir algo más que puedes hacer aquí en Unreal, justo aquí arriba dentro de
tu ventana gráfica, este icono de tres flechas, puedes activar el chasquido de superficie.
Actualmentelo tengo puesto. Eso es lo que significa esa marca de
verificación. Pero si no
sabes si lo tienes encendido o apagado, puedes
hacer clic aquí mismo. Sí lo tengo puesto. La razón por la que tengo eso encendido
es para demostrar que si arrastro y suelto
esto en mi nivel, lo romperá a cualquier superficie por la que lo
esté arrastrando. Se puede ver que se desliza por el piso además de colocarse
a lo largo de la pared así. Ahora bien, si tuviera que soltarlo
y hacer click izquierdo y arrastrar, No va a
deslizarlo por el piso así. No obstante, si lo agarro por el punto de
tres arrinconados ahí, el widget de traducción
esa bola ahí mismo. Si hago clic con el botón izquierdo y lo
agarro desde ahí, entonces
lo romperá a la superficie. Ahora, voy a
arrastrarlo por mi pared aquí. Por supuesto que no está exactamente
posicionado como yo quiero. Voy a tener que
rotar esta en particular. Entonces golpeando la barra espaciadora, voy a
girarla así. Rotarlo así, y girarlo así
para llevarlo a lo largo de la pared. Va a aumentarlo de tamaño
aquí un poco también. Y voy a sacar
un par de duplicados. Entonces, manteniendo presionada la tecla Alt, voy a
hacer clic izquierdo y arrastrar, manteniendo presionada la tecla Alt
nuevamente, clic izquierdo y arrastre. Muy bien, tengo tres
de esos en mi nivel. Genial. Voy a seleccionar a
los tres aquí en mi outliner. Voy a seleccionar el
primero, mantener pulsado Control, seleccionar los otros dos también. Así que tengo
los tres seleccionados. Y luego de vuelta en
mi Blueprint de Nivel viniendo justo aquí,
abre el Blueprint de Nivel. Voy a bajar por aquí abajo y
voy a hacer clic derecho. No, no voy a
hacer clic derecho. Podría hacer clic derecho y crear una referencia a cada uno de
ellos individualmente. Sin embargo, si los tuviera
seleccionados individualmente, voy a mantener presionada la tecla
R y hacer clic con el botón izquierdo traer una referencia a los
tres de inmediato. Están apilados uno
encima del otro. Desgraciadamente. Entonces lo que voy a hacer es
que voy a arrastrar fuera de uno de ellos y
escribir make array. Así que vamos a agregar
pines a nuestra matriz aquí. Y vamos a
conectar cada uno de estos tres en nuestra nota make
array aquí. Ahora bien, esto puede generar una matriz. Lo que voy a hacer es
simplemente hacer clic derecho sobre esto y
promover esto a una variable. Aunque tenga en cuenta, sin embargo, no
tengo que hacer esto. Voy a estar usando esta
matriz de lámparas aquí, 123 para enchufar esto
en un para cada nuevo, para cada nodo de bucle, esto funcionaría bien
para los propósitos de eso. No obstante, sólo para presumir de que
puedo promover esto a
una variable, lo haré. Entonces voy a hacer clic derecho
promover dos variables, y voy a llamar a
esto mi matriz de lámparas. Ahora bien, esto inmediatamente lo
establece en el tipo de variable adecuado. Terminó de inmediato. Lo
convierte en una goma de borrar. Eso es un poco práctico. Y lo que voy a hacer aquí es después de configurarlos
en una matriz, voy a enchufar esto en un pin de ejecución de mi
para cada nodo de bucle, puedes usar la tecla
de acceso rápido de mantener presionada la F y botón izquierdo
del ratón para traer en
un nodo para cada bucle. Vamos a enchufar
esto a nuestra matriz. Ahora necesitamos un evento
para despedir todo esto. Tengo en mi nivel un
volumen disparador ya colocado abajo. Si no tienes uno de estos, puedes venir justo debajo de aquí. Entra bajo la caja básica de Trigger, coloca uno de esos
en tu nivel. Tengo las extensiones de mi caja fijadas
a cien, cien,
cien por grosor de línea establecido para tender a que
sea fácil de ver. Y tengo al actor escondido
en el juego sin marcar. Ahora con eso seleccionado
en tu nivel, vuelta en tu
plano de nivel, haz clic derecho. Vamos a agregar
un evento para cuando empecemos a superponer esto. Y sí queremos asegurarnos de que comprobamos si es nuestro personaje de
tercera persona. Así que vamos a arrastrar fuera de aquí
Cast to ThirdPersonCharacter. Y si lo es, y hemos vuelto a establecer nuestra variable de
matriz, esta porción de aquí
no es súper necesaria. Vamos a hacer algo por cada elemento de esta matriz. Ahora, ¿qué quiero hacer
con cada elemento de nuestra matriz? Los tres de estos, bueno, lo que quiero hacer es arrastrar fuera
de nuestro elemento de matriz y
voy a escribir
todavía la ubicación del actor. Vamos a usar la
ubicación de cada una de estas paredes para generar un emisor. Así que voy a hacer clic derecho en algún espacio vacío
y voy a hacer engendrar emisor en la ubicación. Conectaré ubicación precisa a
la entrada de
ubicación de nuestro engendro, una ubicación de minarete,
nuestro cuerpo de bucle, conectaremos a
este nodo de función. El emisor aquí
que voy a usar es simplemente disparar mi fuego P. Este es un sistema de
partículas más antiguo. Nuevamente, puedes poner en un
sistema de partículas más antiguo o podrías hacer sistema de
desove en la ubicación que está usando efectos de
brillo del Niágara, desove el sistema en la ubicación
es el equivalente allí. Esto funcionará como está sin embargo, solo por el bien de la integridad. Fuera de este pin
de salida terminado, voy a imprimir cadena. Y simplemente voy a
poner en la cuerda. Hecho. Así que lo
imprimiremos en la pantalla. Y lo que
creo que también voy a hacer es colarnos otra cadena de
impresión aquí arriba,
control C, control
V. Vamos a escabullirse este final antes de
nuestro cuerpo bucle. Podríamos ponerlo después de nuestro
emisor si quisiéramos. Entonces vamos a ir así. Y para cada elemento
de nuestra matriz aquí, vamos a imprimir
el índice de matriz solo para que
pueda ver ese número que se imprime en la
pantalla también. Así que vamos a recapitular lo que tenemos. Una vez que nuestro personaje se superponga a
ese volumen disparador, vamos a ver si de
hecho fue nuestro
personaje de tercera persona. Lo que
vamos a hacer entonces es usar estas tres lámparas
y hacer una matriz. Así que vamos a tener una matriz, una lista de
actores de malla estática aquí que
van a poblar esa variable. Entonces vamos a, para
cada bucle en nuestra matriz, para cada elemento de nuestra matriz, vamos a obtener
la ubicación de los actores y generar algo de fuego. Vamos a compilar esto hace que tu script R se
vea bien para ir. Vamos a saltar y jugar. Estableciendo nuestro objeto de depuración
en nuestro mapa de prueba aquí. Muy bien, así que aquí vamos. Una vez que
superpusimos esto, deberíamos ver el fuego apareciendo
aquí, aquí y aquí. Es como si encendiéramos tres antorchas. Ahora bien, esto es desovar en
la ubicación de nuestro laboratorio. No es bajo. Si miramos nuestra lámpara, el widget de traducción
está en la base de la misma. Entonces por eso esta llama se está mostrando un
poco aquí abajo. No obstante, podríamos compensar esto un poco y hacer
que aparezca arriba, pero obtienes los puntos. Ya ves, no voy a
hacer esto una vez. Entonces, si sigo superponiendo esto, van a ver que este texto se imprime en la pantalla. Y estoy guardando un desove más efectos de partículas
aquí también. Pero puedes imaginar una configuración como esta utilizada para encender la lámpara. Un ejemplo más para presumir
aquí en nuestro Blueprint de Nivel. Esta vez vamos
a estar usando el para cada bucle con nodo break. He seguido adelante y he
creado una serie de textos. Entonces, si quieres seguir el juego, haz clic en ese botón más. Convertimos esto en el tipo
variable de textos, y cambiamos el
tipo de contenedor para que sea una matriz. Y luego hice clic
aquí tres veces dos, se agregan tres elementos de matriz
hechos guerrero y ladrón. Ahora algo a tener en cuenta
con cada uno de nuestros cuatro, cada nodo de bucle es que tienes
algunos pines grises aquí. Ahora bien, estos indican comodines, lo que significa que podemos conectarle una variedad
de tipos de variables. Y reconocerá qué
tipo le conectamos
y cambiará el
tipo correspondiente para que sea el mismo. Déjame mostrarte a lo que me refiero. Tengo una serie de
textos aquí mismo. Si enchufo esto a nuestra entrada de
matriz gris aquí mismo, va a
reconocer que Hey, estás enchufando una
matriz de variables de texto. Eso significa que vamos
a estar emitiendo textos porque tu array consta
de tres textos hechos. Guerrero y ladrón,
tres elementos de matriz. Bien, ¿qué vamos a
hacer con esta configuración aquí? Bueno, vamos a ver si nuestro elemento array es igual
a algunos textos literales. Hagamos clic con el botón derecho en
algún espacio vacío. Traer un operador de
nodo igual, igual. Va a enchufar nuestros elementos de
matriz en esto. En realidad esa es la equivocada. Mi mal. Vamos a traer en
primer lugar el nodo
make literal text, make literal text node. Ese es el que estoy
buscando ahí abajo. Fuera de esto, voy a arrastrar y traer
el signo de iguales. Buscamos texto
igual exactamente a textos. Ese es el que estamos
buscando, NO operadores iguales. Ahí vamos. Voy a mantener pulsada
la tecla Control, hacer clic izquierdo y simplemente poner
esto en la parte inferior. En nuestro elemento array se va
a conectar al superior. Nuestra textura literal
que vamos a estar buscando es guerrera. Nota. Tenemos Warrior enumerado aquí así
como en nuestra matriz de textos. Entonces cuando eso es igual, vamos a arrastrar
fuera de aquí y traer el nodo rama. Y vamos a
arrastrar fuera de nuestra verdad. Me di cuenta de que aquí mismo
falta un enlace. Voy a volver a eso
en un poquito. Arrastrado fuera de aquí para
escribir texto impreso. Y sólo vamos a
imprimir guerrero encontrado. Y lo que vamos a
hacer con esto es arrastrar y soltar esto todo el camino alrededor de nuestra entrada de descanso, vamos a hacer doble clic en el
cable un par de veces aquí. Ahora bien, la razón por la que dejé un pequeño hueco aquí es
porque también quiero introducir un
nodo de texto príncipe aquí mismo. Así que voy a fluir así fuera de nuestro cuerpo de bucle en su, en su, en nuestros elementos de
matriz. Vamos a desembocar ahí. Entonces entiende lo que tenemos
pasando con esta configuración. Vamos a presionar la tecla B. Entonces vamos a
recorrer nuestra matriz. Tenemos tres elementos
en nuestra matriz. Cada uno de estos
elementos del array vamos a imprimir en la pantalla, comenzando por mayor,
luego yendo a guerrero. No obstante,
vamos a señalar que aquí mismo vamos a
detectar si estos son iguales. Si son iguales y
eso equivale a verdad. Vamos a imprimir, oye, hemos encontrado al guerrero
y luego vamos a romper nuestra ejecución aquí, es
decir, porque guerrero es
nuestro índice medio aquí mismo, nunca
deberíamos llegar demasiado profundo porque esa es
nuestra última entrada de matriz. Lo estamos rompiendo en
cuanto encontremos guerrero. Sigamos adelante y
probemos eso aquí afuera. Compile, guarde y juegue rápidamente. Presionando la tecla B. Ahí vamos. Dice guerrero mayor, guerrero
encontrado, nunca llegamos
ni a ladrón. Ahora algunos usos posibles para cada nodo de bucle
para que los consideres, tal vez puedas usar
uno de estos nodos para destruir una matriz de enemigos, o tal vez generar en una
matriz de elementos, como botín soltar objetos al
destruir a esos enemigos. Tal vez use a para cada nodo de bucle para verificar el
parámetro de todos los objetos en una matriz y luego hacer algo a aquellos con
un parámetro dado. A modo de ejemplo, para que
cualquier enemigo con menos del 50% de salud
Yulen caiga. Solo algunos ejemplos
para hacerte pensar, bien chicos, eso va a
hacer para ofrecer este. Nos vemos en la siguiente.
85. Bucle while: Bienvenida. El nodo while loop
es el foco de este video y estaremos demostrando
un caso de uso aquí momentáneamente. Primero, ¿cómo funciona? Bueno, conectarás un cable de ejecución en el lado de
entrada del nodo. Y se
ejecutará repetidamente fuera del cuerpo del bucle en
el lado de salida. Siempre y cuando la
condición booleana aquí sea cierta. Ahora tenga en cuenta que hay que tener
cuidado con este nodo, ya que es muy
fácil quedarse atascado en un bucle infinito si no
tienes cuidado. Como una buena regla general, no ingrese un nodo de bucle while a menos que la condición pueda cambiar
inmediatamente a false. Por ejemplo, si estás esperando
tener tu personaje y superponer un volumen de disparo para cambiar una condición a false, tienes la garantía de estar
atrapado en un bucle infinito. Tienes que tener de inmediato un medio para establecer tu
condición en falso. Bien, ahora, en un caso de
uso de ejemplo del nodo while loop. Ahora solo voy a
hacer un poco de pre-configuración aquí antes de
llegar a algunas secuencias de comandos, lo que he hecho es cualquier
personaje de contenido, mallas, carpeta. Simplemente arrastré y solté la
Malla Esquelética Imani en mi nivel. Realmente cualquier tipo de
malla esquelética con alguna colisión, malla
estática, haremos una forma básica siempre y
cuando tenga colisión servirá. Vamos a hacer algo
fuera de los eventos de éxito. Lo que esencialmente estamos
tratando de configurar aquí es un escenario en el que Manny va a ser un ladrón y
va a robar algunos artículos excesivos de inventario de nuestro personaje de tercera persona. Qué artero de hecho. Ahora a continuación, necesitas tener tu
Blueprint de personaje de tercera persona abierto porque dentro de aquí,
haz doble clic en eso. Vamos a agregar un
par de variables. Entonces, debajo del
panel Mi Blueprint vamos
a hacer clic en Agregar variable. Este primero se va a
llamar artículos de inventario máximo. Y entonces puedo hacer clic derecho
sobre eso, duplicarlo. Control D es como puedes
duplicarlo también. A éste se le va
a llamar inventario. Elementos actuales que
necesito compilar para
agregar algunos valores predeterminados. Entonces voy a decir
actualmente nuestro personaje tiene 75 artículos de inventario,
armas, escudos,
pociones de salud, todo ese tipo de cosas. Y en realidad solo
se les permite depositar 50, ese es el máximo que
se supone que deben tener. Entonces, debajo de este
hipotético escenario, estoy diciendo que nuestro
personaje lleva más artículos de los que
se les permite tener. Pero les estamos permitiendo que realmente lleven
estos artículos sobrantes hasta que realmente los depositen
si los atrapan, sin embargo, vagando por el mundo abierto
y llega un ladrón, pueden robar cualquier exceso de artículos que son carácter puede tener. Nuevamente, estamos viendo que
el máximo permitido para cotizar banco sin cotización es de 50. Actualmente son
codiciosos y llevan 75. Entonces a espesa el acero
hasta 25 de esos. Bien, con eso,
voy a compilar esto. Vamos a saltar de
nuevo a nuestro nivel. asegura de que hayas seleccionado a
tu actor de Manny Skeletal
Mesh. Y con ese seleccionado
dirígete a tu Plano de Nivel,
abre Plano de Nivel. He hecho un poco de
pre-configuración aquí antes de tiempo. Pero así es como
puedes seguir el juego. En primer lugar, estoy haciendo un
actor éxitos cuatro son muchos. Esqueleto ahí, Malla Esquelética. Si haces clic derecho en eventos, colisión, agrega en actor hip, así es como puedes
agregar ese nodo. Entonces fuera de aquí
puedes arrastrar y hacer un Cast to ThirdPersonCharacter
para encontrar ese nodo. Ahora bien, si es nuestro personaje de tercera persona el
que golpea a nuestro ladrón, a su Manny, al ladrón. Vamos a fluir
hacia esto y hacerlo una vez. Lo que vamos a hacer una vez es iterar a través de
este bucle while. Entonces a pesar de que
esto dice hacer una vez, vamos a permanecer
en este bucle while hasta que la condición
aquí se vuelva falsa. Ahora tenemos que enchufar
en una condición. Bueno, nuestra condición va a evaluar nuestros artículos de inventario. Así que arrastra tu personaje en
tercera persona, escribe inventario,
vamos a obtener nuestros artículos de inventario actuales. Y recuerda, tenemos 75
es nuestro inventario actual. Entonces voy a hacer click en
estos tres puntos
aquí mismo y ponerlos en 75 solo
como un recordatorio para nosotros mismos. Entonces voy a
alargar, si
vuelves a escribir inventario, vamos a conseguir nuestros artículos máximos
que se les permitió tener. Y voy a hacer click en estos
tres puntos y ponerlo en 50. Y vamos a
comparar estos dos. Así que arrastrando fuera de
mis ítems actuales, voy a traer en
un nodo mayor que. Entonces si nuestros ítems actuales son mayores que r max
items es largo, es esto es cierto, seguiremos fluyendo
fuera de nuestro cuerpo loop aquí. Ahora, cada vez que fluimos
fuera de nuestro cuerpo de bucle, quiero disminuir
la cantidad de artículos en nuestro inventario actual. Entonces voy a arrastrar fuera de
aquí y escribir decrementos. Ahora este nodo toma una entrada y se
decrementará automáticamente a partir de aquí. Entonces irá 75 decrementado. Esto en realidad lo hará
volver a la cantidad actual. Entonces 75 menos 174, automáticamente
lo establecerá como un nuevo valor. Entonces volverá a circular, 73, etcétera,
etcétera, etcétera, etcétera. Siempre y cuando esto
se evalúe como verdadero, tan pronto
como éste
se evalúe como falso, detendrá ese proceso. Así que voy a enchufar esto nuestra cadena de impresión
aquí para que podamos ver estos números impresos en la pantalla así. Y por último, de la pluma de ejecución
terminada, voy a traer
otra cadena de impresión. Y simplemente voy a
imprimir el exceso en vano de artículos tory robados, robados por ese su ladrón. Entonces ese es nuestro guión si
quieres seguir el juego en casa. Ahora bien este es un
ejemplo de caso de uso del bucle while porque
sé, sé que esto va
a evaluar a falso. Sé que mis artículos de
inventario actuales eventualmente
llegarán a estos límites. Entonces vamos a compilar esto. Guardar. Voy a meter
esto justo aquí arriba. Al hacer clic en reproducir, configurar
mi objeto
de depuración mis mapas para que pueda ver cómo se desactiva
este script. Aquí. Vamos, ahí está mi ladrón. Tengo mis 75 artículos
que estoy
rodando dentro de la vigilancia de
nivel aquí arriba. inmediato, 7473
ha terminado y dijo que se retiraron los artículos
sobrantes de inventario, y solo
lo hizo una vez. Puedes ver si vuelvo a intentar esto, se atasca en
la nieve no quiero. Entonces ese es un ejemplo. Caso de uso del bucle while. Ahora bien, en cuanto a las diferencias entre el bucle while y los bucles
for en general, deberías usar un for-loop
cuando sepas
cuántas veces debe ejecutarse el loop. Si desea que el bucle
se rompa en una condición distinta a la cantidad
de veces que debería ejecutarse. Quizás entonces considere
usar un bucle while. Bien chicos, eso
va a hacer para ofrecer este. Nos vemos en la siguiente.
86. Interruptores: Bienvenida. Vamos
a estar cubriendo un switch de nodos en este video. Y justo al salir de las puertas, puede notar que los nodos de
conmutación vienen en una variedad de sabores aquí. Y no tienen un banner gris en
la parte superior como el resto de
nuestros nodos de control de flujo. Estoy considerando estas parte de la
categoría de control de flujo porque esencialmente vamos a estar controlando el
flujo de nuestro script. ese es de cuál de estos pines de
ejecución fluimos,
dependiendo de los datos que se
ingresen en el nodo de conmutación. Ahora los nodos switch vienen
en varias variedades. De hecho, un montón
de variedades
vamos a estar cubriendo las
principales variedades aquí. Eso es un switch on int, switch on string,
switch on name. Y también haremos un enumerador de
encendido. No ve enumeraciones de encendido
aquí porque el nombre de un conmutador en la enumeración
variará
dependiendo de la enumeración
que haya creado. Esto es lo que creé
antes en el curso, y esta enumeración
consiste en las tres etiquetas, súper bien, y ella mal. Entonces, si tuviera que
arrastrar un cable fuera de esto y escribir switch, podría traer un interruptor
en ellos que sea específico
de esta enumeración. Puedes ver mis salidas,
hay súper,
bien, y me duele mucho. Ahora bien, si tuvieras que
hacer clic derecho en cualquier gráfico de eventos y simplemente
escribir el interruptor de palabras. Puede encontrar una
gran cantidad de nodos de switch, la
mayoría de los cuales nunca usarán. Pero es bueno
señalar que sí existen. Una vez más, estaremos cubriendo los sabores principales y éste
y algo que
notarás su comentario sobre todos estos nodos
de switch es que tienen un solo pin de entrada de
ejecución, pero sí tienen
diferentes entradas de datos a ellos dependiendo del
tipo de nodo de conmutación. Además, lo que es
común entre ellos es que puedes salir de diferentes salidas
dependiendo de los datos que se ingresen. Entonces así es como se ve un switch on int que es la
abreviatura de Switch on on int que es la
abreviatura de Switch on
integer node cuando lo buscas por
primera vez y lo
agregas a tu gráfica. No obstante, por encima del
lado derecho, ve cómo podría
verse este
nodo si le agrego pines. Entonces, para todos estos,
puedes hacer clic en este botón Plus y
agregarle más pines. Por defecto, comienzan
con un pin de salida predeterminado. De hecho, puedes personalizar
esto con cualquiera de estos nodos seleccionados
en el panel Detalles, puedes elegir si tiene o
no un pin predeterminado. Y también puedes, en el caso de un
interruptor encenderlo, nota, si le estás agregando
algunos pines,
como lo estoy haciendo aquí, puedes
elegir tu índice de inicio. Por lo que actualmente dice
iniciar en el índice 0. Yo podría decir elegir
comenzar en el índice diez, y luego voy a hacer el
primer número aquí diez, y luego numerará
en consecuencia. Voy a volver a poner eso por defecto. Enciende la cadena. Muy similar. Puedo agregar más pines como este. Y con eso seleccionado
sobre en el panel Detalles, puedo elegir si tiene o
no un pin predeterminado. Puedo elegir los
nombres de los pines, etcétera. Yo puedo elegirlo. Son sensibles a
mayúsculas o no. Por lo que hay algunas
opciones diferentes
dependiendo del tipo de nodo switch. Ahora bien, el pin de salida predeterminado, ¿
cuándo fluyen fuera de esto? Saldrá de esto si los datos que se están ingresando no coinciden con ninguno de sus diferentes pines de
salida que desee. Esto se ve fácilmente en
el interruptor en el entrenudo. Entonces ahora mismo tengo una
selección de ceros. Si tuviera que fluir hacia esto, dispararía fuera
del pin de salida 0. Si sin embargo, mi número
aquí se guardó 50. Y nosotros íbamos a ejecutar un
guión por aquí. No coincide con ninguna
de estas salidas, por lo que dispararíamos fuera
de la salida predeterminada. Bien, tengo algunos ejemplos
que me gustaría mostrar aquí. Entonces voy a estar iniciando en mi tercera persona
Carácter Blueprint. Ahora lo que he hecho
antes de tiempo aquí, lo
hice en un video anterior. Creé una enumeración
llamada estado de salud E. Esta enumeración, esta enumeración
consta de tres etiquetas, súper bien, y duele mucho. Sólo voy a deslizar
esta sección sobre esta parte de la
gráfica donde tengo algunos nodos esperándome. Y lo que simplemente
voy a hacer es al presionar alguna tecla de entrada, voy a alterar la velocidad máxima de caminata de mis
personajes. Ahora, puedes modificar estos
parámetros aquí mismo, este parámetro de velocidad máxima de caminata, si seleccionas tu componente de
movimiento de personaje, puedes ver en el panel
Detalles tienes un parámetro llamado
max caminar velocidad que, que controla qué tan rápido se mueve
tu personaje. Entonces todo lo que necesitas
hacer es arrastrar y soltar. Agregue esto a su
gráfica, el arrastre fuera de aquí y escriba la velocidad máxima de caminata
establecida, y encontrará ese nodo. Entonces, lo que vamos a estar buscando
hacer aquí se basa en el valor de nuestra enumeración
aquí, súper, bien, o ella mal, ya ves esas son las tres salidas
que corresponden con las tres etiquetas que
esta enum consiste en. Si es súper, vamos a aumentar nuestra velocidad máxima de caminata. Si está bien. Vamos a fijarlo para que sea. 500. Si nos duele mucho, vamos a establecer
esto en 100. Entonces voy a hacer clic derecho y voy a
traer una tecla de entrada. Vamos a probar la clave de las ayudas. No creo que esté
usando la llave de ayuda para nada todavía. Entonces ahora mismo nuestro
estado de salud es súper. Entonces una vez que presione la tecla a, deberíamos aumentar nuestra velocidad
máxima de caminata a 2 mil años. Entonces haciendo clic en reproducir,
configurando mi depuración. Objetar a mi
terceraPersonaPersonaje. Aquí vamos. Entonces estoy vagando o combate preguntándome por
voy a presionar ese dolorido. Y ahora de pronto
puedo moverme mucho más rápido. Jactó cambió mi
estado de salud aquí para simplemente estar mal herido. Ya lo he
cambiado. Entonces una vez que presione la tecla a, vamos a evaluar
este valor escuchado Valle. Vamos a salir
de aquí y va a cambiar nuestro máximo B2, 100. Haciendo clic en Reproducir. Ahí vamos, presionando las teclas de movimiento
ahora mismo, WAS y D. Aquí vamos. Ocho clave. Ahora me duele mucho y soy
olímpico de inmediato. Entonces hay un ejemplo
de un interruptor encendido enum. Para este siguiente ejemplo, voy a matar a este enemigo. Mira a ese tipo aterrador de
ahí afuera simplemente haciendo
clic en ellos. Cuando lo haga, voy a
usar un nodo switch on inch para generar algún bucle para
crear un poco un sistema de gotas de
botín aleatorio. Entonces, si quieres seguir
el juego en casa, simplemente agregué una malla. Este S k, m en Manny de mi personaje
maniquíes malla carpeta, un arrastrar y soltar
eso en mi gráfica. Y con ese seleccionado, entré aquí en mi
Plano de Nivel. Y tengo algunos nodos
configurados con anticipación aquí. Agregué un evento onclick
para ese S KM muchos, nuevamente, tienes que
tenerlo seleccionado y tu nivel y puedes agregar uno de estos haciendo click derecho. Y eventos en
eventos de entrada, una entrada de mouse. Y aquí es donde
hice un onclick eventos. Entonces, ¿qué quiero hacer
cuando haga clic en Manny aquí? Bueno, voy a arrastrar
fuera de aquí y traer un nodo de encendido. Y voy a agregar
algunos pines de salida aquí. Voy a ir 1234. Y voy a escoger un valor entero
de un rango aleatorio. Entonces voy a arrastrar hacia
atrás fuera de esto y escribir al azar. Rango entero aleatorio es
lo que voy a buscar. Entonces voy a decir
dame un número entre 03. Entonces escogerá 012 o tres. Y luego dispararé de
los pines correspondientes
en función del número que seleccione. Ahora lo que quiero hacer es
si conseguimos un 0 o uno, simplemente
voy a fluir en
una reproducción de sonido al nodo. Se va a decir fallar. Así que el 50% de las veces
sólo vamos a tocar un sonido y no
vas a conseguir nada. Entonces diremos el 50% de las
veces por matar a un hombre. Él ahí no obtienes
nada más que el otro 50% de las veces vamos a engendrar algo a nuestro nivel aquí. Voy a arrastrar a un actor
spawn desde el nodo de clase. Puedes hacer clic derecho
y hacer una búsqueda actor
engendrado de clase. Vamos a decir si
conseguimos un dos o un tres, vamos a desovar. Voy a engendrar en un hombre BP, una poción que creamos
antes en el curso. Y tengo que alimentar esto
una transformación de spawn porque si compila
ahora mismo me va
a gritar y decir, Oye, necesitas desovar
transformar para esto. Entonces voy a decir, ¿dónde deberíamos engendrar esto? Déjame deshacerme de
estos dos nodos de aquí abajo. Bueno, ya tengo seleccionado a
Manny, así que voy a hacer clic derecho
y algún espacio vacío. En realidad no
voy a hacer clic derecho. Podría hacer clic derecho y obtener una referencia a Manny así. O puedes mantener presionado
el botón izquierdo del RT y obtener una referencia
a Manny así. Vamos a arrastrar fuera de Manny y
escribir en obtener forma trans. Buscamos el
mundo que se transforme. Conseguimos actor transformar
está bien. Vamos a enchufar eso en. Ese es el final. Toquemos una especie
de sonido después de esto. Así que vamos a arrastrar fuera de
esta reproducción de sonido 2D, y vamos a tocar telepuertos. Comprometidos. Claro,
eso suena bien. Vamos a compilar nuestro script aquí. Entonces, cuando hacemos clic en Manny, vamos a elegir un
número aleatorio entre 03, dependiendo de qué número obtengamos. O fallaremos el
50% del tiempo o el 50% de las veces
generaremos una manifestación. Entonces esta es una forma en la que
puedes crear un sistema de botín aleatorio
que esté ponderado. Si quisiera esperar este setenta y cinco por ciento
del tiempo para abarcar y abarcar a
un hombre, una poción. Se puede ver cómo podría ir
con una configuración como esa. Pero voy a ir 5050 en su lugar. Compilar, guardar. Deshazte de este tipo de aquí mismo. Y trataremos con esas cadenas en los interruptores de nombre
en un momento. Oye, esto, moviendo esto
a la esquina aquí, voy a poner mi mapa
como mi objeto de depuración de prueba. Y aquí voy, voy a dar click en él. Verán dispararse este
guión. Bam, hay un hombre, una poción a sus pies, y yo no destruí a muchos. Probablemente debería haber
hecho eso también. Porque ahora podemos
seguir dando click sobre ellos. Todo está desovándolo exactamente en
el mismo lugar. Y en realidad debería hacer eso. Matemos a muchos. Si de hecho engendramos esa poción de Amanda
arrastrada sin dinero, diremos Destruye Actor. En los eventos en los que damos clic. Ambos pueden fluir
hacia allí así. Entonces ahora cuando hago
clic en ellos, bam, muerto, tenemos un hombre, una poción que
podemos recoger también. Bien, el siguiente ejemplo
que estoy presumiendo aquí se va a hacer dentro
de mi Plano de Nivel. Y como un poco de
preparación hecha antes de tiempo, tengo un Manny agregado
a mi nivel aquí. Y solo para mostrarte qué
más hice aquí es con Manny seleccionado de nuevo en mi Plano de
Nivel, enseguida tengo una referencia
a Manny aquí abajo. Para que puedas conseguirlo manteniendo
presionada
la tecla Alt y haciendo clic izquierdo. Y entonces lo que
hice es sacarlo aquí. La ubicación de los actores
escribiendo eso en. Te explicaré todo esto
en un poquito, pero déjame hacer un poco de respaldo. En primer lugar, estamos
presionando la tecla cinco. Entonces, si haces clic derecho
y escribes en el teclado, así es como puedes
obtener las cinco teclas. Bueno, entonces estamos haciendo
es que vamos a fluir hacia un switch
on string node. Ahora bien, así es como se ve
primero el nodo cuando lo traes. Sin embargo, puedes agregar algunos pines haciendo clic
en este botón más. Cuando lo haga, puede cambiar el nombre esos pines de salida
anulando estos nombres. Y ya ves
que lo hice nombrándolos Bob, Pablo, y whoo. Bien, así que voy a
eliminar esta a favor de la que
configuré antes de tiempo. Ahora estamos fluyendo una variable de
cadena en esto, he creado una variable aquí, namestring, y es
del tipo string. Y establecí el
valor por defecto para que fuera Pablo. Como notarás,
ese es el nombre de
mi pin de ejecución de salida media aquí mismo. Dejé un puerto de notas justo aquí. Entonces lo que también estoy
haciendo es no solo conseguir que esta
variable de cadena se conecte aquí, también
estoy configurando esa
misma variable de cadena exacta de nuevo a Woo Tan pronto como
libere la tecla cinco. Entonces lo estoy presionando, evaluando contenido de
esta variable de cadena, va a ser Pablo. Entonces seguiremos
fluyendo fuera de aquí. Y luego vamos a
teletransportar a nuestro personaje jugador, que somos nosotros, a la
ubicación de Manny. Ahora no podemos fluir exactamente
a la ubicación de Manny. Simplemente me drogo de aquí, traje un
nodo restar y simplemente estoy restando por 200 en la ubicación x solo para
compensarme un poco. Y lo enchufo como mi ubicación de
destino. Así que tenga en cuenta que estoy presionando
la tecla cinco. Esta variable de cadena
se leerá como sea posible, por lo que fluirá fuera de
la salida de Pablo. Vamos a teletransportarnos a
la ubicación cerca de Manny. En cuanto suelte
la tecla cinco, va a cambiar el
contenido de esa variable para cortejar para que la próxima
vez que presione la tecla cinco, vamos a hacer
nada porque
no viene nada fuera
de la salida Wu. Alfiler. Compilar guardar. Vamos a seguir adelante y jugar
aquí en prueba esto fuera. Bien, así que revisa aquí arriba. Voy a estar presionando
la tecla cinco y voy ser teletransportada cerca
de muchos ahí. Y solo para
probar esto de verdad, déjame volar lejos, huir lejos de Manny. Bien, aquí vamos. Cinco
claves. Nos hemos teleportado. Ahora voy a
soltar la tecla cinco, configurando el contenido a Wu
ahora para esa variable de cadena. Entonces la próxima vez que
presione la tecla cinco, incluso
podemos ver
que da salida whoo. Se puede ver que al pasar el ratón sobre este cable, está mostrando a Wu. Y no pasa nada porque no
tenemos nada pasando fuera
del pin de salida Wu. Entonces ahí lo tienes para
encender la cadena. Y por último pero no menos importante, un ejemplo más
del nodo switch. Este va a
ser encendido nombre. También voy a estar haciendo
esto dentro de mi Nivel. Blueprint tiene un
poco de trabajo de preparación. Tengo un par de variables de nombre en
la sección de variables. creé de esta manera
antes en el curso. Uno de ellos se llama nivel 11 de ellos se llama nivel dos. Y cuando les di
un valor predeterminado, nombré un
mapa inicial en minúsculas y el otro nivel para escuchar el default
mínimo en todas las mayúsculas, estos en realidad corresponden
al nombre de algunos activos de nivel. Si vuelvo a
mi navegador de contenido aquí dentro de la carpeta de mapas de
contenido inicial, hay un mapa predeterminado mínimo y hay un mapa de inicio. Así que voy a estar usando estas variables para conducir a
qué nivel vamos a transportar al que
vamos a ir en
base a la selección que
conectamos a este
interruptor en NameNode. Y voy a estar
haciendo esto un poco diferente. En primer lugar, voy
a hacer click izquierdo y arrastrar cada uno de estos
a mi gráfica. Así. Entonces lo que voy a
hacer solo para presumir una cosa diferente que
podemos hacer aquí es voy a hacer array. Una matriz es una lista
de cosas similares. Ambas son variables nombradas, por lo que podemos crear
una lista de esas. Voy a agregar un pin para
poder enchufar en el nivel dos aquí. Entonces voy a respaldar esto un
poco y
voy a arrastrar fuera de esto. Ahora tenemos una matriz
que consta de dos elementos. Voy a arrastrar fuera
de esto y escribir al azar, elemento de matriz aleatoria. Y voy a enchufar
esto como sales. Entonces este nodo va a
elegir un elemento de matriz aleatorio. Aquí solo tenemos dos
selecciones posibles. Elegirá uno al azar, y me permitirá hacer clic en
más y más
fluir de cada uno de estos
dependiendo del elemento que elija. Entonces voy a cambiar mi caso 0 aquí para que coincida con el nivel uno aquí. Entonces arrancador montaña
sólo va a golpear Control C, encender nombre. Voy a anular ese control V. Y luego para el nivel a
Control C y
encenderé el nombre Control V. Bien, así que si es el
mapa de inicio el que se elige, vamos a fluir al
nivel llamado mapas iniciados. De hecho voy a arrastrar
y soltar este nivel en esta función de nivel abierto
por nombre. Y si esto elige
de nuestra matriz, el
nivel mínimo predeterminado hasta aquí, voy a arrastrar
y soltar esto hacia aquí e ir así. Bien, así que sigamos adelante
y compilemos eso. Guárdalo. Y aquí vamos a darle una jugada a esto. Entonces en cuanto
presione la tecla cinco, nos vamos a congelar
porque vamos a estar transportando los niveles aquí. Y así hicimos de hecho transportamos a otro nivel
jugando una vez más, a
ver si conseguimos que el
otro
aparezca aquí presionando la tecla cinco, ahí está nuestro nivel mínimo
predeterminado, y ahí
lotienes, encienda los nombres. Por lo que estos
nodos de encendido son súper útiles. Personalmente me gusta
usar bastante el switch on nodes para
crear crónicos un sistema de gotas de
botín aleatorio. Puedes esperar esos porcentajes de caída de
botín, pero muchas
aplicaciones útiles chicos que van a hacer para ofrecer este video. Nos vemos en la siguiente.
87. Selecciona: Bienvenida. En este video, nuestro objetivo
es adquirir conocimientos y demostrar el uso
del nodo selecto. Ahora la nota de selección no se considera
oficialmente
un
nodo de control de flujo ya que no afecta
el flujo de ejecución. De hecho, no hay pines de
ejecución en esta nota. Sin embargo, la nota de selección ayuda en el flujo de
datos en su script. Entonces pensé que lo mejor sería
incluir esta lección aquí. Entonces el nodo selecto, ¿qué hace exactamente? Bueno, selecciona notas, toma cualquier índice y con
base en ese índice, devolverá una de
las opciones ingresadas. Ahora bien, esto es útil
porque a veces quieres que el valor de retorno aquí sea diferente
dependiendo del valor ingresado. Ahora solo un ejemplo muy rápido. Si cambio nuestro tipo de índice
aquí para que sea booleano, vemos que nuestros pines de entrada aquí cambian a ser verdaderos y falsos. Ahora bien, dependiendo de
si esto es cierto, podríamos tener aquí el verdadero
valor, output. O si es falso, podríamos tener lo que
sea de entrada en el falso ser de salida. Entonces puedes ver
dependiendo del valor de esto, vamos a elegir una de estas opciones para
regresar, bien, para traer uno de estos
nodos seleccionados a tu gráfica, es tan simple como
hacer clic derecho y haciendo una búsqueda para seleccionar. O alternativamente, otra forma en la
que puede traer una nota seleccionada es si tiene uno de estos tipos de
índice, booleano, byte, entero, entero 64 o cualquier enumeración que
pueda arrastrar fuera de ese tipo de variable en encontrar
la nota de selección también. Ahora solo para demostrar esto, voy a elegir, tengo una variable entera encima en mi lado izquierdo aquí. Sólo voy a arrastrar y
soltar esto en mi gráfica. Yo iba a conseguirlo y
luego arrastrarlo fuera de él y escribir seleccionar. Se puede ver que puedo encontrar
un nodo selecto de ahí. Y ese entero se
conecta inmediatamente al nodo select. Bien, vamos a explorar rápidamente algunas opciones de nodo aquí antes
de mostrar algunos ejemplos, solo
voy a
eliminar este nodo rápidamente. Puedes hacer clic derecho en un nodo, el nodo mismo, y puedes ver cómo puedes agregarle pines. Haga clic con el botón derecho en Agregar pin, o
puede eliminar pin
haciendo
clic derecho en el nodo, eliminar pin. Retire el pasador. Hacer clic derecho en una opción o valor de
retorno puede
cambiar los tipos de pin. este momento estos se
establecen como comodines, lo que significa que se pueden cambiar a algo
dinámicamente. Haz lo que sea que haya enchufado a esto. Digamos que si obviamente
enchufar un vector en la opción uno
va a cambiar todos los otros pines
aquí la opción en el valor de retorno para que
sea de ese mismo tipo. O podría establecer un
aquí haciendo clic con el botón derecho en cualquiera de los pines de opción
o valor de retorno. Y al hacerlo, podría
cambiar el tipo de pin para que sea una de las diversas opciones. Haga clic derecho en Cambiar tipo de pasador. Y podría
cambiar esto por decir, transforma. También puedo cambiar
el tipo de índice
aquí abajo ya sea haciendo clic
en este desplegable. Y no estoy seguro de por qué lo está
mostrando hasta aquí arriba. Una vez que hago clic en
ese booleano, byte ,
entero, entero 64, o
cualquiera de las diversas enumeraciones. O simplemente puedo hacer clic derecho
en el propio pin y cambiar el tipo de pin con el pequeño
desplegable allí también. Pero ya
tienes este desplegable, así que no encuentro que esa opción
sea tan útil. Y entonces por supuesto puedes ver en la propia nota aquí tienes la opción de agregar pines simplemente haciendo clic en este botón más. Entonces esa es otra forma de
agregar algunos pines de opción más. Bien, tiempo de ejemplo,
voy a estar mostrando varios ejemplos de nodos selectos
aquí en mi Plano de Nivel. Entonces, si quieres seguir
jugando en casa, seleccionando tu
pestaña de nivel aquí mismo, abre Plano de Nivel,
Así es como
puedes encontrar tu camino por aquí. Y voy a
comenzar haciendo clic derecho y escribiendo uniones seleccionar. Ahora el primer ejemplo
que quiero mostrar tuyo es usar un índice booleano. Entonces voy a dar click en este desplegable y
seleccionar un índice booleano. Ahora note que en el
momento en que haga esto y seleccione booleano
va a cambiar mis opciones aquí para que sean falsas y verdaderas porque un booleano
solo puede ser falso o verdadero. Voy a arrastrar hacia atrás
fuera de mi índice aquí y voy a
escribir bool al azar. Entonces este nodo simplemente
va a escupir aleatoriamente ya sea el
valor de false o true, dependiendo de qué
valor escupe. Digamos, por ejemplo, escupe falso. Elegirá esa entrada, la entrada falsa aquí, para volver. Si escupe true, elegirá la entrada
verdadera para regresar. Así es como funciona. Bien, vamos a traer
un nodo de eventos de inmediato. Voy a teclear con el botón derecho
en la entrada de cinco teclados. Y vamos a arrastrar
fuera de esto y escribir en nivel
abierto por nombre. Ahora esta función
abrirá un nivel por nombre. Se busca
una variable de nombre. Echa un vistazo a esto. Por encima en el lado izquierdo. Tengo el nivel uno
y el nivel dos. Se trata de dos variables con nombre. Ese es el tipo aquí que
creé antes en el curso. Y después de compilar, establecí los valores de nombre aquí para que sean
mapa de inicio para el nivel uno. Nivel dos, establecí el nombre tipo de variable aquí
para que sea mínimo predeterminado. Ahora bien, esto no es un error. nombro como
tales porque
aquí atrás en mi navegador de contenido, en la carpeta de mapas de
contenido inicial, hay
dos niveles, dos mapas que
podemos abrir llamados mínimos predeterminados y estrella mapa. Notarás que la carcasa
de todas las letras aquí, mínimo predeterminado y
mapa inicial es un poco diferente aquí de lo que
ves en los nombres de las variables. Aquí está todo en mayúscula, y aquí está todo minúscula
para las variables de nombre. No importa. ¿Bien? Así que voy a conectar el nivel
uno en la entrada falsa, nivel dos en la entrada verdadera. Y en realidad antes de
que lo deje caer ahí, tenga en cuenta esto, el momento en que enchufé un tipo de variable en cualquiera de estas
entradas aquí mismo, o déjame simplemente cortarle este cable. Voy a mantener pulsada la tecla
Alt y hacer clic con el botón izquierdo. O si enchupo algo en el valor de retorno
en esta dirección, va a cambiar
ambos lados
del nodo para que sean ese tipo de variable
correspondiente. Entonces sabe que nuestro valor de retorno deseado
aquí es del nombre. Entonces va a decir, bien, estás buscando un tipo de variable de
nombre, eso significa que tienes que
enchufar algunas variables con nombre. Entonces el nivel uno, el nivel dos aquí. Entonces una vez que presione la tecla cinco, se va a abrir en algún nivel acuerdo con la variable name, conectamos a ella ¿qué variable de
nombre va a pasar
finalmente por aquí? Bueno, eso va a ser
determinado por esta nota selecta. La nota selecta va
a tomar cualquier toro aleatorio. Está escupiendo falso. Va a escoger,
va a seleccionar el
Nivel uno aquí, el mapa de inicio, y
devolverlo para que sea el nivel
que abrimos. Si este bool aleatorio
escupe true, va a escoger, seleccionar el valor verdadero aquí, enchufado por defecto mínimo, y pasar eso como
el nivel para abrir compilando, guardando, jugando. Ya tengo mi
mapa de prueba instalado
ahí para que podamos ver a
este grupo disparando. Entonces cuando presiono la tecla
cinco, aquí vamos. Me saltó a mi nivel
mínimo predeterminado. En ese caso, muestra la opción verdadera porque al azar bool debe
haber escupido true. Sé que ese era el nivel
mínimo por defecto. Bien, siguiente ejemplo aquí
voy a empezar
colocando una caja Trigger
aquí en mi nivel. Y puedes encontrar uno de
esos viniendo justo aquí debajo de la sección básica, Trigger box, arrastra
y suelta eso aquí. Con eso, en tu nivel, puedes establecer la extensión de tu
caja para que sea un
grosor de línea de 100100100 de diez. Y también, también te recomiendo hacerlo para que puedas ver
esto en tu nivel también. Y puedes hacerlo
entrando en
la sección de renderizado y desmarcando actor oculto en juego. Bien, con eso seleccionado
aquí en nuestro plano de nivel, voy a hacer clic derecho
y vamos a hacer algo cuando superpongamos eso porque hacemos muchas
cosas en ganancias cuando superponemos
un volumen del disparador. Lo que vamos a hacer es
que vamos a arrastrar fuera de nuestro otro actor y vamos a Cast to ThirdPersonCharacter. Esos son los personajes
que estamos controlando. Y si es cierto que el
otro actor que se superpone esa caja gatillo era el personaje en
tercera persona. Vamos a engendrar algo, engendrar actor de clase. Y vamos a
enchufar esto así. Ahora lo que
engendramos va a ser impulsado por un índice entero. Entonces lo que voy a hacer es
que voy a arrastrar y soltar un entero
en mi gráfico
aquí mismo en
variable entera así, puedes crear uno
de estos haciendo clic en el botón más y agregando
un variable entera. Voy a conseguirlo. Y luego voy a arrastrar
fuera de aquí y voy a escribir select. Porque estoy arrastrando esto
fuera de la variable entera. Sabe que quiero
ingresar eso como mi índice. Ahora, quiero elegir
algo para generar en mi nivel dependiendo de la entrada
del entero i. Entonces voy a ir
así para asegurar que
tengo las clases adecuadas
para poner como mis opciones. Si solo arrastro hacia atrás fuera
del actor spawn de la clase, sabía como aunque, así, y lo enchufar en
el valor de retorno. Automáticamente
va a cambiar mis pines de entrada para que sean
del mismo tipo. Aquí vamos. Bien, entonces déjame
agregar un tercer pin aquí. Y ahora puedo seleccionar diferentes clases en las que
queremos engendrar. Voy a elegir
algunos al azar aquí. Tengo un hombre, una poción que creé antes. Podemos desovar en algún efecto de plano de
fuego. El fuego realmente no importa
lo que lo engarces aquí, y también haces chispas. Esos son algunos
comunes que me gustan. Bien, ahora mi entero
aquí, si es 0, si ese es el entero
que estamos alimentando
esto, elegirá la Opción 0
para generar en el juego. Si cambio este valor
entero a uno, elegirá esta opción para regresar y generar
en el juego. Si entero es igual a dos, elegirá estas chispas para regresar y generar
eso en el juego. Ahora sí necesito
darnos una transformación de spawn, porque si compilo aquí, me va a gritar
y decir: Hey idiota, necesito saber
donde desovar. Entonces saltaré de nuevo a mi nivel. Voy a traer, vamos a traer un objetivo de puntos. Voy a dar click
justo aquí arriba. Voy a traer en
el lugar actores panel
y mecanografiar objetivos. Puntos objetivo. Coloca uno de esos
justo ahí. Con eso seleccionado
aquí en mi Plano de Nivel, esta vez
voy a
hacer clic derecho. Crear una referencia a eso, expulsará de
esto y mecanografiando obtener forma
trans buen actor transformar. Y sé que ahora mismo son
enteros es un valor de 0. Entonces voy a
compilar aquí. Entonces deberíamos estar desove de una
manera poción. Entonces sigamos adelante y juguemos aquí. Encoge eso. Entonces tan pronto como me superponga
este volumen de disparo, debería seleccionar
entero 0 aquí ese hombre una poción para generar en el juego en la ubicación
de ese punto objetivo. Aquí vamos. Y de hecho lo hizo. Ahora bien, eso no es súper interesante porque
sabíamos que ese
iba a ser nuestro
resultado porque
tenemos duro establecer nuestro
valor entero aquí para que sea 0. Entonces lo que podría hacer
es eliminar esto, arrastrar hacia atrás fuera de
nuestro índice y escribir entero
aleatorio en rango. Y puedo decir, Oye, elige
algo entre 02, compila, guarda en juego. Aquí vamos. Conocí a una poción. Si sigo superponiéndome porque no
voy a hacer esto una vez. Eventualmente los conseguiré a todos. Ahí vamos. Y así podrás ver
cómo está eligiendo una opción diferente
aquí
dependiendo del número aleatorio
que le estemos alimentando. Bien, un último ejemplo
aquí para este, voy a estar usando mi personaje BP en
tercera persona. Entonces, si no te
importaría saltar a
su doble clic
sobre él para abrirlo, voy a estar
mostrando cómo podemos usar un nodo select junto con
un e num en la enumeración. Ahora creamos esta enumeración
antes en el curso. Entonces, si quieres saber cómo es
una enumeración, estoy entrando bajo mi carpeta de blueprints de
scripting. Y aquí tengo la
enumeración eHealth status y puedes hacer clic derecho y
algún espacio vacío entrar bajo Blueprints para crear
un activo de enumeración. En esta enumeración de
estado de salud, que es una lista de
etiquetas, si se quiere. Tengo super bien
y me duele mucho. Luego dentro de mi personaje de
tercera persona, creé una variable, y configuré el
tipo de variable para que apunte a esa enumeración que
creé, estado de eSalud. Voy a arrastrar y
soltar esto en mi gráfica. Vamos a conseguir eso y
voy a arrastrar fuera de esto y escribir en seleccionar. Entonces podemos ver de
inmediato porque nuestra enumeración aquí
mismo
consiste en esas tres
etiquetas dolientes mal, bien, en super, vemos estas como nuestras tres
entradas aquí mismo. Ahora bien, ¿qué queremos
hacer dependiendo de si este índice aquí está
mal herido, bien, o súper? Bueno, lo que quiero hacer es agarrar mi personaje moviendo componente,
arrastrar y soltar eso. Y voy a hacerlo, hagamos otra cosa aquí. Ya me has visto ajustar mi velocidad
máxima de caminata antes. Voy a establecer mi velocidad de
salto z. Ahora el salto Z Velocity es un parámetro dentro del componente de movimiento de tu
personaje. Ahí está, eso determina qué tan alto puede saltar tu personaje. Entonces voy a arrastrar hacia atrás. Oficinas saltaron z velocidad. Esta es una variable flotante
de lo que está
buscando y conéctela
al valor de retorno. Ahora en el momento en que haga
esto, va a cambiar todas
las entradas aquí para que sean también un valor flotante. Ahora podría
enchufar algunas variables para determinar estos
valores aquí mismo. Sólo voy a ponerlos
duro aquí. Entonces voy a decir si
estoy súper mis saltos, la velocidad va
a ser de 2 mil. Si lo es, bien, voy a establecerlo en 700, que es el valor predeterminado
para los saltos, la velocidad. Y si me duele mucho,
voy a decir que
sólo podemos saltar hasta un 100. Voy a necesitar algún
tipo de clave de entrada aquí. Entonces déjame hacer clic con el botón derecho. Es un espacio vacío. Traeré aquí la clave
cinco porque ya no
estoy usando eso
en mi Plano de Nivel. Lo borré de ahí. Entonces, cuando presione la tecla cinco, vamos a establecer los movimientos de nuestros
personajes. Saltar la propiedad de velocidad z, esa propiedad ahí mismo. Se va a establecer en 2000 si se le dice
nuestro estado de salud, ajustado a súper. Si está configurado en bien, vamos a saltar 700. Y si estamos mal heridos, está listo para doler mucho. Vamos a
saltar muy poco. Bien, así que ahora mismo el
valor de esto está mal herido, así que apenas debería saltar hacia arriba. Así Compila, Ahorra, juega. Permítanme establecer mi objeto de depuración el ThirdPersonCharacter aquí para que podamos ver cómo se dispara el
script. Entonces ahora mismo me duele mucho. Entonces cuando presiono la barra espaciadora, no salto demasiado. Pero en realidad esos son
mis saltos normales. Lo siento, primero tengo que presionar
la tecla cinco aquí. Ahora cuando salto, apenas
me estoy
levantando del suelo. Déjame establecer mi
estado de salud aquí para que sea súper compilar guardar, jugar, y ahora estoy
presionando la barra espaciadora, Ese es mi
salto normal, presionando cinco. Entonces estoy configurando mi velocidad de
salto ahora para ser 2000s porque el, la salida para esto es super. Entonces ahora cuando presiono la
barra espaciadora, me siento feliz. Entonces hay un ejemplo de uso
del nodo select usando una enumeración. Bien, entonces, ¿cuáles son algunos otros posibles usos
del nodo select? Considera estos,
tal vez dependiendo del estado de salud del jugador y puedes agregar al jugador
jugado diferentes animaciones. Podrían cojear, por ejemplo, tal vez dependiendo de un estado de ánimo, enumeraciones, felices, tristes,
ese tipo de cosas, podrías alterar qué pista de
música se reproduce. Aquí hay otro ejemplo. Quizás dependiendo de cualquier enumeración de armas
equipadas, podrías exhibir
diferentes armas enfundadas en el personaje. Y por último, tal vez
dependiendo de un entero clave, podrías mostrar x número de mallas
clave
colgando de la campana de los jugadores. Entonces, si tuvieras una
entrada entera que dijera tres, podrías mostrarla tres llaves colgando
del cinturón de los jugadores. Si ese índice entero en uno, podrías tener una llave colgando del
cinturón de los jugadores, ese tipo de cosas. Bien chicos, es
select node uno de los nodos más útiles
en todos los scripting. Conoce lo que me encanta que va a
hacer para ofrecer este. Nos vemos en la siguiente.
88. Casting: Bien, bienvenidos a todos. Bueno, hemos acertado a
una parte muy clave del curso donde
vamos a estar hablando de diferentes formas comunicarnos
entre planos. Y vamos a estar hablando de casting específicamente
en esta. Ahora hasta este
punto del curso, me
has visto en realidad
hacer mucho casting. Todo el concepto de casting
es esencialmente verificar alguna interacción que tiene lugar si un objeto dado es del
tipo que estás buscando, no importa si lo es o no, puedes hacer un poco
de guión fuego apagado. Ahora me has visto hacer mucho casting hasta este
punto en el curso, incluyendo nuestra recolección de ejemplo bp que creamos al
principio del curso. Y ahora, solo para saltar
dentro de este plano, lo
hicimos para que cuando
empieces a superponer la esfera de colisión para esta pastilla de ejemplo BP esa es esta
esfera de colisión aquí mismo. Estamos haciendo esta cosa llamada casting para comprobar si
fue la
tercera personaPersonaje el que fue el otro actor que
hizo la superposición. Entonces, una vez más, el casting nos
permite verificar si un objeto dado es
del tipo que estamos
buscando. Al hacerlo. En este caso, pudimos
llegar al interior de nuestro
terceraPersonaPersonaje, agarrar la variable de salud
que vivía dentro de él, agregarle algo de cantidad
y luego volver a establecer esa variable de
salud. Nos estamos comunicando desde
nuestra recolección de ejemplo bp aquí hasta nuestro
personaje de tercera persona, aumentando la salud de
nuestro personaje de tercera persona. Para que veas que la
comunicación entre planos es un
concepto muy crítico para bajar. Bien, me has visto Elenchar a terceraPersonaPersonaje
aquí un millón de veces ya en este curso. Entonces voy a estar
haciendo algo un poco diferente
para nuestro ejemplo. Volvamos a
nuestro editor de niveles aquí. Y luego mi sección de
blueprints scripting, voy a hacer clic derecho
y algún espacio vacío. Y voy a elegir
una clase de planos, y voy a elegir
la clase de actor. Y voy a llamar a
esto BP subrayado. Muévete cuando esté cerca. Y ya verás por qué lo nombró
así aquí en sólo un poquito. Voy a hacer doble clic
sobre este tipo para abrirlo. Y voy a añadir
para nuestros componentes en la parte superior izquierda aquí
vamos a añadir un simple, vamos a añadir un cono simple
debajo de las formas básicas. Y también vamos a
agregar uno más componentes. Y a éste se
le va a llamar interp para moverse. Ahora bien, este es un
componente realmente genial que nos permite mover nuestro plano aquí entre cuantos
puntos armemos. Ahora sólo voy a
dejarlo a ese nombre en Too movimiento y
golpeando a Enter en eso. Y con él seleccionado,
voy a dirigirme al panel Detalles para
configurar algunos puntos entre los que
voy a tener este cono moviéndose. Ahora puedo configurarlo en nuestra sección de control de aquí. Y si hago clic en
este botón más una y dos veces y expando
estas flechas hacia fuera, puedo elegir algunos puntos en el espacio entre los que quiero
mover este cono. Voy a dejar el
primero al 000 y el segundo. Estas posiciones son
relativas entre sí. Voy
a establecer que sea 50 en la z. Ahora abajo,
un poco aquí abajo en la sección de
comportamiento, podemos elegir un tipo de comportamiento, ya sea que se mueva solo del punto a al punto B,
eso es un disparo. Ya sea que lo tenga
hacer un reinicio de looping, voy a elegir el
ping pong aquí. Así que va a estar
haciendo de ida y vuelta, ida y vuelta entre
estos dos puntos. Mi duración aquí es de un segundo, así que va a
tomar esa cantidad de tiempo moverse entre
esos dos puntos. A continuación, voy
a compilar esto. Vamos a guardar esto y
vamos a dirigirnos
a mi
Blueprint de personaje de tercera persona. Ahora bien, si has olvidado
dónde está eso, planos en
tercera persona, haz doble clic en tu personaje en
tercera persona. Ahora, antes en el curso, agregamos esta mano simulada, que es esencialmente solo
una colisión de esfera. Si tienes esto genial, si no pasaste por
ese curso y creaste esto, puedes crearlo ahora. Ahora tengo esto unido
a mis componentes de la cápsula. Entonces, si no tienes esto, puedes seleccionar tu Componente
Cápsula, va a agregar tipo en esfera, y puedes agregar un componente de
colisión de esfera. Eso es lo que es. Ahora, he establecido mi
radio aquí para que sea 32. Creo que sólo lo voy a
poner delante de mi personaje un poco
más, algo así. Y voy a
aumentar un
poco el tamaño aquí para que sea 50. Y llamé a esta mano simulada porque voy a estar
haciendo algunas comprobaciones para ver si algo se ha solapado con
esta esfera en el espacio. Bien, con todo eso hecho, vamos a dirigirnos
a nuestro gráfico de eventos. Y con nuestro componente
mano simulada aquí, vamos a
hacer clic derecho sobre nosotros. Vamos a agregar un evento
y vamos a hacer algo. Empezamos superponiendo
que ya
tenemos algo en empezar a superponerse porque no lo
veo en nuestra lista aquí. Entonces, la forma en que podemos
encontrarla es con mano
simulada seleccionada
hacia abajo. Bajo la
sección de eventos podemos ir a sobre componente comenzar superposición. Podemos ver dónde está eso. Y se puede ver que este
es el ejemplo que
configuramos en nuestro video de
biblioteca de funciones. Sólo voy a eliminar
estos nodos por el momento para que podamos hacer uso
de nuestra mano simulada. Una vez más, también eliminaré
este cuadro de comentarios. Mueve eso a su posición. Ahí vamos. Bien, ahora el guión que
tengo en mente aquí
es que voy a arrastrar fuera de mi otro pin de
actor aquí mismo. Y ahora puedo hacer yesos para acercarme a ese plano
que acabo de crear. Entonces lo que estamos diciendo aquí es si el otro actor que se superpone a
nuestra mano simulada aquí, esa colisión de esfera
ahí mismo. Si ese otro actor
fue la mudanza a cerca de un plano que estoy a
punto de colocar en mi nivel aquí. Déjame ir adelante y volver
a mi carpeta de Planos. Muévete cuando esté cerca, sólo
voy a arrastrar eso por aquí. Bien, entonces ahí
no está mi nivel. Volviendo a mi
tercera personaPersonaje, si ese plano de aquí mismo fueron los otros actores que se superponen mi mano simulada,
puedo hacer algo. Si no era lo que se
superponía a mi mano simulada, podría hacer otra cosa, pero lo que quiero hacer es llegar dentro de mi BP, movido a cerca. Esto nos dará acceso
a diversos componentes y propiedades dentro de mi
BP movido a funciones cercanas, variables, ese tipo de cosas. En primer lugar voy a
hacer clic derecho sobre esto. Voy a promover esto
a una variable porque voy a estar usando esa
variable un poco. Entonces promovamos
esto a una variable. Podemos dejarlo con
ese nombre ahí mismo. Y luego arrastraremos
fuera de aquí y accederemos a nuestro interp, dos componentes de
movimientos. Recuerden en nuestro
bp movido a cerca, teníamos este componente llamado
interpretar al movimiento. Ahora dentro de este componente aquí mismo
al panel Detalles, voy a escribir
la palabra activa. Y se puede ver que es
auto activado reunión. Se movería entre esos dos puntos que habíamos establecido. Ahora voy a desactivar esto por el
momento para que
no se mueva entre esos dos
puntos que había configurado. No se va a
activar automáticamente. Vamos a compilar y
guardar esto una vez más, volviendo a mi
terceraPersonpersonaje, vamos a decir que una vez que nuestra mano simulada se superponga por nuestro movimiento al plano cercano, vamos a
guardarla a su propia variable. Entonces vamos a
agarrar dentro de él el componente de movimiento interp2. Y luego vamos a
arrastrar fuera de ella y teclear la palabra activa. Florero, no activo, activar. Y aquí es donde estamos contando ese
componente interpretativo del movimiento que vive dentro de ese plano para
activarse, para activarse. Ahora la razón por la que guardé esto
en su propia variable es porque ahora voy
a arrastrar y soltar esta referencia
aquí mismo en mi gráfica. Y vamos a arrastrar fuera de este tipo en interp al movimiento. Lo vamos a conseguir una vez más. Y voy a arrastrar sobre
esto y teclear D activa. Apaga esa vuelta. Sólo voy a
apagarlo con una llave. Déjame escribir. Probemos la tecla 0. Entonces, cuando nuestros componentes de
mano simulados se
superponen, BP se movió a casi el plano
en su nivel. Estamos guardando eso
a su propia variable, una referencia a ese tipo. Vamos a agarrar dentro de
él y vamos
a hablar con nuestro
componente de movimiento interp2 ahí mismo. Vamos a decirle a ese movimiento
interpretativo que se
active para que se mueva
entre estos dos puntos. Entonces de vuelta en mi
Third PersonCharacter Blueprint, cuando presione la tecla de flecha, desactivaré
esos movimientos. Bien, con eso, vamos a
compilarlo y guardar. Déjame mover esto
a la parte superior izquierda aquí arriba. Voy a entrar y jugar. Establezca nuestro objeto de depuración en nuestro personaje en
tercera persona. Y puedes ver nuestro folleto
simulado
ahí y gira con
mi personaje
porque está unido al componente cápsula de mi
personaje. Y voy a tratar de conseguir
esto desde un ángulo lateral aquí para que veas
que no se mueve en absoluto. Sin embargo, una vez que superpongo eso
con mi mano simulada aquí, hecho sí
se mueve hacia
arriba, hacia abajo, hacia arriba, hacia abajo. Ahora cuando presione el 0, déjame alejarme de él
y presionar la tecla de flecha. Se detiene, desactiva
ese componente. Ahora bien, si lo vuelvo a superponer, no
lo
vuelve a activar por alguna razón. No sé la
razón detrás de eso. No estoy seguro de si eso es un error
del motor o no. Pero se puede ver que está tratando activarlo
aquí arriba en mi guión. Una vez que lo desactivas por cualquier motivo lo
mantiene activo. Pero el punto está bien tomado aquí que al lanzar a
nuestro bp movido a cerca, nos estábamos asegurando que era ese actor el
que se simuló la
mano se había solapado. Y al hacerlo,
pudimos seguir este guión fuera de
este plan de ejecución. Ahora bien, si eso hubiera fallado, si no fuera el otro actor el que se superponía a
esa mano simulada, una vez más, podríamos haber
hecho algo que nuestro elenco fallara. Y ahí lo tienes, el
casting de chicos esencialmente
te permite verificar alguna
interacción que tiene lugar. Si un objeto dado es del
tipo que estás buscando, es un gran, gran método para almacenar de algunos dada la cosa
a su propia variable y también poder
alcanzar dentro de él una vez que haya fundido en él
para acceder a cualquier variable, las funciones llaman a cualquier evento
personalizado, ese tipo de cosas que desea
hacer para comunicarse de
un blueprint a otro. Eso lo hará todo
por este video, chicos te ven en el siguiente.
89. Comunicación directa (parte 1): Bienvenida. La comunicación de planos ha sido el foco de esta
sección del curso. Y en el último video,
nos enfocamos en el casting. Y siendo ese uno de los
métodos que puedes usar para que un plano
se comunique con otro. Ahora el casting es una maravillosa práctica técnica de
comunicación Blueprint en que si tu elenco tiene éxito, puedes capturar una referencia a lo que
te has lanzado, así
como
permite para llegar dentro de lo
que te
has lanzado y acceder a cualquier componente,
variable, función, llamar a cualquier evento de cliente,
ese tipo de cosas. Sin embargo, sí
tiene una debilidad. Esa debilidad es que
debes enchufar algo en esta entrada de objeto para que
realmente puedas obtener una referencia a lo que
estás buscando para obtener una referencia o acceder a
cualquiera de los componentes, variables, etcétera, a las
que esperas acceder si no enchufas nada a esa referencia de
objeto, déjame seguir adelante y
simplemente matar esto aquí dentro de mi
Plano de Nivel y yo compilo, me va a dar una
advertencia diciendo, no puedo hacerlo, debes tener algo
enchufado a esa referencia de objeto. Entonces, ¿hay otra manera de
comunicarse de un
plano a otro? Sí, la hay. Existe un método llamado comunicación
directa. Entonces en este video, nuestro objetivo es
demostrar cómo podemos hacer
que dos Planos hablen entre sí
a
través de una técnica conocida como Comunicación Directa de
Blueprint. Ahora con este enfoque, configura un blueprint de destino al
que se hace referencia en respuesta a cualquier script que establezca dentro de un blueprint en
funcionamiento. Ahora vamos a mostrarte lo que
quiero decir con la creación dos planos de
clase de actor diferentes. Vamos a tener
una luz de plano y un botón de plano. Y vamos a tener
una plática con otra usando este método acabo hablar de
comunicación directa. Vuelve a tu editor de niveles aquí y dentro de tu carpeta Blueprints de
scripting, vamos a crear dos nuevos planos de clase de
actor. Al hacer clic derecho en Blueprint
Class I creará una de las variedades de actor
y esto se
llamará luces de subrayado BP. Y dentro de aquí voy
a hacer doble clic sobre
esto para abrirlo. Y voy a añadir
algunos componentes. Vamos a añadir un cono. Voy a escribir cono, cono forma
básica. Eso está bien. Y luego voy
a añadir otro. Bajo la sección de luz. Yo sólo voy a escribir en luz. Quiero agregar un foco. Y voy a tener que establecer algunos parámetros
para cada uno de estos, empezando por nuestras
luces son Spotlight, vamos a establecer nuestra intensidad para que sea bastante, bastante brillante. Entonces con el foco de luz
seleccionado fijó la intensidad para que sea algo
así como un 100 mil. Puedes establecer un color de
luz diferente aquí mismo, pero voy a fijarlo para que
sea de 100 mil ahora mismo. También voy a
tenerlo boca abajo. Entonces se ha
girado esto hacia abajo así. Eso va a hacer. Y también debajo de la sección de
renderizado donde dice un visible, voy a marcar
esto o desmarcarlo más bien para que no
sea visible. Bien, entonces tienes un
cono y los focos. Eso es genial. Bien, vuelve a
tu navegador de contenido. Vamos a hacer clic de
nuevo con el botón derecho del actor Blueprint Class. Esto no se llamará subrayado
BP. Botón. Haz doble clic sobre este
tipo para abrirlo. Y dentro de aquí vamos
a agregar algunos componentes. Agregar, vamos
a agregar un cilindro para iniciar formas básicas cilindro. El siguiente que vamos
a agregar va a ser una colisión de caja. Entonces voy a seleccionar
mi raíz de escena predeterminada. No tiene que estar unido a mi cilindro aquí y
está bien si están todos unidos a mis rutas
predeterminadas vistas. Entonces voy a hacer click
ahí y escribir cuadro. Vamos a ir con
Box Collision. Box es un buen nombre. Y después voy a seleccionar de nuevo
mi ruta predeterminada vista. Y voy a añadir un componente de renderizado de
texto. Bien, con cada uno de esos, voy a establecer sus
datos uno por uno. Empecemos primero con
el cilindro. Entonces seleccionando tu cilindro
encima en el panel Detalles, voy a establecer mi rotación en la x para que sea U1 AT presionando enter negativo 90
en la y y la z, voy a establecer que sea 180. Me di cuenta de todos estos
números antes de tiempo. Y luego para la escala
voy a ponerla 0.4.4 y 0.05, algo delgado así. Entonces este va a ser nuestro botón con el que vamos a citar sin citar, interactuar
para que nuestra luz, en nuestro plano de luz
se ilumine para encenderse, para activar y desactivar. Justo a continuación vamos a seleccionar nuestro
componente de colisión de caja aquí mismo. Voy a establecer la ubicación,
la ubicación x para que sea 100. Y vamos a establecer la extensión de la
caja para que sea de ciento, cinco, cincuenta por 100. Algo que se extienda
un poco así. Bien, y luego
voy a seleccionar mi componente renderizador de textos. Lo puedes ver solo Mostrando algunos textos ahí mismo. Con eso, voy a
cambiar la ubicación. Vamos a establecer la
ubicación para que sea 20 en la x y ciento
ciento diez más bien en la z algo
justo arriba, ahí mismo. Y voy a cambiar el texto
para que lo lea aquí abajo. En lugar de textos,
vamos a tener que diga prensa I para lesionar acto signo de
exclamación. Y no está centrado por encima de mi botón
ahí, ese cilindro. Entonces donde dice alineación
horizontal, podemos cambiar eso
de izquierda justificada a centro solo para que se
vea un poco más agradable. Y luego en la sección de
renderizado, actualmente
voy a hacer esto invisible para que no podamos
verlo para empezar. Bien, A continuación
vamos a crear un par de variables aquí en
el panel Mi Blueprint. Entonces haga clic en el botón más a lo largo
del encabezado de las variables aquí. El primero que vamos
a crear va a llamarse simplemente luz. Y para el tipo, vamos a hacer una
búsqueda de luces BP. Este es el plano
que acabamos de crear. Entonces ven bajo tipos de objeto, luz
BP, elige una referencia de
objeto. Y lo que vamos a hacer se
acabó en el panel Detalles, vamos a marcar esta casilla. Dice instancia editable. Observe que cuando haga esto, esto va a tener
el mismo efecto hacer clic en este pequeño icono de
cerrar el globo ocular. Entonces, si hago clic aquí mismo, va a tener
ese ícono del globo ocular puesto. Por el contrario, si hago
clic aquí mismo y lo apago,
lo desmarca. Eso es esencialmente
dos formas diferentes de configurar esto para que sea editable
por instancias, no
importa si haces clic allí o haces
clic en este globo ocular. Ambos esencialmente
hacen lo mismo. Está encendiendo eso. Ahora eso va a ser genial
porque va a exponer esta
variable en particular en el editor. Eso lo verás en un
momento aquí. Ahora voy a compilar aquí porque
me está pidiendo que lo compile, para darle un valor por defecto. Pero fíjate en esto que estoy compilando. Voy a dejar esto
en blanco por el momento. Vamos a poblar esto de
nuevo en nuestros editores de nivel. Así que deja esto en blanco
por el momento. Bien, vamos a
crear una variable más aquí, haciendo clic en el botón más. Voy a llamar a esto puede
alternar luces, signo de interrogación. Y esto sería, esta
será una variable booleana. Si compila aquí, voy a dejar el valor
predeterminado es falso. Entonces verás a este tipo en acción aquí en
sólo un poquito. Ahora, como mencioné hacia el inicio de este video, Direct Blueprint
Communication evoluciona un blueprint target y
un blueprint de trabajo. Entonces el plano objetivo
va a ser nuestro bp light. Ese es el que
vamos a apuntar. Nuestro botón bp aquí, ese va a ser
nuestro plano de trabajo. Entonces dentro de nuestro plano de
trabajo aquí, vamos a hacer referencia, vamos a crear una referencia a nuestra luz bp
para poder platicar con ella, para
poder trabajar con ella.
90. Comunicación directa (parte 2): Bien, es hora de
hacer un poco de configuración en nuestro editor de niveles. Y probablemente
ayude si tienes algún tipo de superficie de pared, pero realmente no necesitas una. Así que voy a colocar
ambos de estos fuera. Y nuestro amor, voy a
empezar con nuestro botón bp arrastrando y soltando esto. Y no hay que ser
súper preciso con esto. No obstante, voy
a volarlo así. Quieres que la mayoría de
tus volúmenes de gatillo
sobresalgan en esta dirección. Por cierto, lo he
vuelto a colocar a lo largo de la pared, no
voy a ser
súper preciso con esta colocación por
el momento. Y luego voy a
colocar nuestra luz ahí fuera. Ahí está mi luz BP en toda
su gloria de maravilla. Se va a ver
algo así. Eso es lo suficientemente bueno. Ahora bien, si selecciono mi botón B P, echa un vistazo a esto
en el panel Detalles. Si me desplazo todo el camino hacia arriba, tengo mi variable de luz. Revisemos esto una vez más, mi botón BP ahí está mi variable de luz haciendo referencia al tipo de variable ligera B P. Actualmente está configurado en ninguno. Entonces aquí en mi editor, puedo configurar esto para hacer
referencia directa a ese plano. Digo, oye, quiero esa variable B
del tipo de luces B P. Pero necesito especificar con qué instancia de esa
luz quiero
hablar porque puedo tener múltiples instancias de
estas luces aquí afuera. Y de hecho, permítanme establecer múltiples instancias de
esta luz aquí afuera. Solo estoy manteniendo pulsada la
tecla Alt y arrastrando. Ahora con mi botón
seleccionado aquí, voy a dar click sobre
este pequeño icono de gotas encima en el panel Detalles. Podría dar click en
este desplegable para, para escoger uno de esos cuatro. Sin embargo, solo quiero
mostrar la frecuencia si elijo este ícono de cuentagotas, entonces puedo pasar
a mi ventana gráfica y seleccionar
directamente
esa luz dada. Ahora fíjate si lo estoy
resaltando, ese no es ese tipo de variable
dado, va a decir que no
puedes seleccionar eso. No obstante, son BP la luz es
de ese tipo variable, por lo que nos
permite escoger esa. Entonces me ha permitido
despilfarrar eso ahí dentro. A continuación,
volvamos a nuestro botón de bp. Dentro de aquí,
vamos a dirigirnos al
Gráfico de Eventos de inmediato. Vamos a hacer cosas cuando
superpongamos esta caja. Así que dirígete de nuevo
al gráfico de eventos. Voy a hacer clic con el botón izquierdo, arrastrar, eliminar esos de inmediato. Con mi caja seleccionada. Puedo hacer clic derecho
sobre esto para encontrar algunos eventos o con
F-box seleccionado, podría ir hacia abajo
hasta la parte inferior
del panel Detalles. Ahí están mis diversos
eventos relacionados con ello. Quiero hacer algo cuando
empiece a superponerse eso, así
como cuando yo y
superponga eso. Entonces voy a dar click aquí para agregar una referencia a
eso de inmediato. Al hacer clic de nuevo en
mi componente de caja, haré algo cuando
termine de superponer eso también. Entonces, ¿qué queremos hacer cuando
empecemos a superponer esa caja, esta caja de aquí? Bueno, queremos
comprobar antes que nada, para ver si ese es el terceroPersonCharacter que
hizo la superposición. Así que voy a arrastrar el
otro actor va a hacer algunas cancelaciones aquí a
terceraPersonaPersonaje. Y cuando hagamos eso, vamos a traer
nuestra luz de palanca Ken. Y si arrastras y
sueltas esto justo en este pin, traerás un
setter de inmediato. Ahí vamos. Truco práctico ahí, solo
dejándolo caer sobre el pin, diré Sí, podemos alternar la luz si
nuestro terceraPersonCharacter se superpone a esa caja donde esencialmente
contra el rango de orina. Y entonces lo que
vamos a hacer es traer nuestro componente
de renderizado de textos. Vamos a arrastrar y
soltar esto aquí mismo. Y vamos a hablar con
nuestro componente de renderizado de texto. Vamos a arrastrar
fuera de esto y escribir en la visibilidad del conjunto. Porque recuerda
ahora mismo que está apagada. Vamos a marcar
esta casilla y decir, sí, ya estás visible. Ahora voy a hacer mucho
de lo mismo aquí abajo. Así que voy a seleccionar
mantener pulsado Control, seleccionar mantener pulsado
control y seleccionar, voy a copiar estos tres
nodos control C, control V.
Pégalos aquí abajo para cuando
terminemos superponiendo esa caja. Y lo enchufaré todo así. No te olvides de este tipo. Y no olvides desmarcar
esta casilla de aquí abajo, además de desmarcar
esta casilla de aquí abajo. Porque cuando terminamos
superponiendo esa caja, no queremos poder
alternar la luz y también queremos
apagar nuestro renderizado de textos. No queremos ver ese mensaje de
interacción en absoluto. Bien, voy a
hacer click izquierdo, arrastrar, tocar el CQI. Llamaremos a esto en rango
para, alternar las luces. Voy a poner esta
negra como mi alma. Bien, eso está
todo bien y bien. Y a continuación voy a agregar algo de script de
interacción aquí abajo. Recuerda, nuestro mensaje
iba a decir, presiona la tecla I para interactuar. Así que hagamos clic
aquí abajo y hagamos el teclado. Vamos a agregar un evento de
teclado para cuando
presionemos la tecla I,
ahí está nuestro asqueroso. Lo primero que
vamos a hacer es que vamos a traer una rama, vamos a mantener presionada la tecla B y hacer clic izquierdo en
traer una rama. Para que cuando presionemos eso
vamos a evaluar,
Oye, ¿podemos alternar las luces? Recuerda, cuando estamos superponiendo o no superponiendo esa caja, estamos configurándola en true
o false cuando la estamos
superponiendo. Se va a evaluar como cierto. Entonces sí, se puede atar con luz. Entonces, fuera del dolor, vamos o no al achy, la verdadera clave, al pin verdadero, debería decir que vamos a
traer un nodo flip-flop. nodo flip-flop nos
permite cambiar
a luego B que a a B
cada vez que hacemos esto. Y lo que vamos
a hacer flip-flop es que nuestro cilindro arrastre y
suelte esto en nuestra gráfica. Cambiar el material, material de conjunto
bien mecanografiado. Así, yendo a Control C, Control V, eso también. Y justo aquí arriba, voy a cambiar esto a
un material de color verde. Así que déjame simplemente hacer clic
ahí mismo y solo voy a escribir la palabra verde. Nuestro material aquí será, intentemos hacer una
búsqueda de verde, vértice. verde que está en la
vía del motor es por cierto. Entonces, si no ves esto, puedes hacer clic en este ícono de engranaje, asegúrate de tener activado el contenido
del motor de espectáculos. Así que ahí vamos a ir verdes. Y luego en este nodo
voy a hacer click en estos
tres puntos y hacer una nota por
mí mismo de que este
va a ser un material rojo. El material aquí va a ser vértice de vértice rojo. Ahí está. Tengo que establecer esto para que también sea el
objetivo para eso. Y luego voy a
arrastrar y encontrar mi luz. Estamos hablando de esta luz
aquí abajo en la sección variable arrastrar y soltar. Vamos a conseguir eso. Entonces vamos a arrastrar fuera
de este tipo en foco de atención. Porque recuerda en
lado de nuestra luz aquí, esta luz BP existe
el foco. Y vamos a decirle a este
foco que se va arrastrando de aquí para alternar la visibilidad. Entonces, si está apagado, lo
va a activar. Y si está encendido,
vamos a apagarlo. Entonces ese va a ser nuestro
guión ahí mismo. Ahora vamos a estar
cambiando esencialmente el color de nuestro
cilindro aquí mismo, este
material del cilindro para
que se vea verde
está encendido, el rojo está apagado. Así que permítanme darnos una coloración roja para comenzar
con vértice Read Only. Bien, vamos a
compilar este guardado. Voy a volver a
mi gráfico de eventos aquí. botón izquierdo y arrastra,
toca como
CQI y te diré que hay que encender. Esta es una nota para mí mismo
para el siguiente paso a hacer. Y para que hagamos entradas
de auto recepción. Bueno, dos, jugador 0
en fallas clase D. Ahora vas a estar así, no tiene sentido para
lo que acabamos de hacer. Entonces, ¿por qué pones esto como el encabezado del cuadro de comentarios aquí? Y ya verás por qué. Porque si compilo esto, guardo y voy a entrar y jugar,
vas a estar como, bueno, esto va a
funcionar tan pronto como
superpongamos esta caja Trigger, vamos a decir,
Si, puedes alternar el se aligeró aquí abajo
cuando presionas la tecla I. Esto luego evaluará a
verdad y debería permitirme
cambiar ese material para el cilindro y luego
activar la luz, pero no va a funcionar por
esto aquí mismo. Permítanme
demostrarlo rápidamente. Si salto y juego, incluso
puedo establecer mi objeto de
depuración allí. Para que veas que ese guión
ha pasado por decir, sí, debería poder
platicar con luz. Entonces ahora cuando presione la tecla I, permítanme simplemente mover esto hacia arriba. Pulsa la tecla I y veo
que interactuaría ¿verdad? Voy a seguir adelante y
sentarme, presionar la tecla I. Pero nada está disparando. A pesar de que lo estoy presionando. ¿Qué está pasando? Bueno, este mensaje de aquí
mismo fue un recordatorio para mí
y para ti de que
tenemos que activar algo
llamado auto recibir entrada dos jugadores 0 dentro de nuestra
clase por defecto aquí. Ahora el botón BP debería ser
tu plano aquí, los valores predeterminados de
clase aquí abajo. Debajo de la sección de entrada, debes cambiar
tu
entrada de recepción automática aquí para que sea jugador 0. ¿Por qué? Bueno, nuestra clase de padres aquí
es un plano de clase de actor. Los planos de clase de actor
no reconocerán las entradas del teclado a menos que vaya dentro
de los valores predeterminados de clase y le diga que
reciba entradas explícitamente. El jugador 0 somos nosotros, el jugador individual,
solo nosotros, ¿verdad? Así que eso va a hacer que funcione. También. Si tienes múltiplos de estas
configuraciones alrededor de tu nivel, probablemente
sea una buena
idea aquí seleccionar tu icky y desmarcar,
consumir entrada. Al hacerlo, lo
lograrás para que este tipo de configuración
pueda funcionar, funcione para más de un
solo botón. Si dejas esto para
solo consumir este insumo, funcionaría solo en un caso, no en todos los casos. Así que pensé
que tiraría eso por ahí también. Bien, compilar, guardar, jugar. Vamos a
superponer esto aquí. Planos. Diga presione I para interactuar. Estamos dentro del alcance. Entonces ahora cuando presiono la tecla I, se vuelve verde y
ves que esa luz ahora
se está mostrando y
solo esta luz, no cada copia de la luz, solo esa porque esa
era la que teníamos dijo específicamente para poblar
esta variable ligera. Si vuelvo aquí, puedo interactuar una vez más. Y lo volví
a leer para apagarla,
encenderla, apagarla, encenderla, apagarla. Estamos alternando la visibilidad. Entonces este es un método llamado
Comunicación Directa de Planos. Con este método,
hemos configurado una variable del tipo que queremos platicar con un determinado
tipo de plano. En este caso, queremos
platicar con las luces BP. Y con esa
variable ligera BP creada, configuramos a la
instancia editable para que pudiéramos
dirigirla específicamente. Aquí en el editor de niveles
Working Class Blueprint es nuestro botón y el plano
objetivo es nuestra luz dentro del Blueprint
Working Class, tienes que crear una variable
del blueprint objetivo
y luego establece esa referencia aquí
en el editor de niveles. Método muy práctico para
comunicarse entre planos. Chicos que van a hacer
para ofrecer este video. Nos vemos en la siguiente.
91. Despachadores de eventos: Bienvenida. Hasta ahora hemos
hablado del casting y comunicación
directa como
métodos utilizados para que un plano se comunique con otro plano y esos son buenos y dandy, grandes
métodos para usar. Sin embargo, hay momentos en Blueprint scripting
en los que se necesita un plano para comunicarse
con muchos planos. Entonces, ¿hay algún
método para usar entonces? Sí, la hay. Hay algo que se llama
Despachador de Eventos. Ahora bien, si no estás familiarizado con qué despachadores de eventos
hay mucho como Twitter, esa es la mejor analogía que
he escuchado hasta la fecha. Ahora bien, si estás
familiarizado con Twitter, un usuario puede tuitear un
mensaje en cualquier persona que siga tu cuenta de Twitter que
reciba ese mensaje, entonces ellos pueden
responder en consecuencia. En Unreal, un plano
puede
despachar, es decir , enviar una señal a cualquier otro plano
que esté suscrito, que esté escuchando
esa señal, y luego puedan
responder en consecuencia. Bien, entonces el ejemplo que
vamos a pasar por aquí es que voy a crear
un plano de personaje, un personaje jefe si se quiere. Y cuando este personaje
sea destruido, vamos a hacer que sucedan
múltiples cosas. Vamos a comunicarnos de nuestro plano de jefe a otros planos, varios
otros planos. Bien, aquí hay
mucho que cubrir, así que me voy a mover
un poco rápido, pero tienes el
beneficio de pausar. Entonces vayamos directo a ello. En mi carpeta
Blueprints de scripting, voy a hacer clic derecho
en algún espacio vacío, vamos a crear
una nueva clase de blueprint. Esta vez, el personaje es nuestra clase de
padres que queremos. Y vamos a nombrar a este jefe de subrayado
BP. Va a hacer doble clic sobre
este tipo para abrirlo. Y seleccionemos nuestro componente
de malla en nuestra lista de componentes sobre en el panel Detalles
debajo de la malla esquelética, Ranuremos en Manny, Manny. Y hagamos un movimiento también. Entonces la Clase Anime, voy a hacer una P o una BP,
muchos, eso va a hacer un movimiento. Y luego tengo
para la ubicación, tenemos que dejarlos
caer aquí un poco. La ubicación z que voy
a establecer para que sea negativa 93
los va a soltar un poco. Ahora podría estar un
poco demasiado lejos. Vamos a la negativa 85 o
algo así. Negativo 85,
algo así. Y para la rotación, solo
voy a
elegir
90 negativos y eso
los hará mirar hacia adelante. Esa flecha azul
está mirando hacia adelante tampoco sería un jefe
si se quedara de ese color, llegamos a maquillarnos de miedo, así que no
tengo los materiales, solo voy a escribir en rojo. Tiene que haber algún
vértice de color rojo aquí. Cualquier rojo servirá. Iré con este material de
puntero láser. Esto es sólo por estética, que el material cubra en
esa porción de su cuerpo. Y luego también
escribiré láser. Aluden al otro material puntiforme
láser para su otra parte de su cuerpo. Mira a ese tipo aterrador. Bien, con eso,
vamos a crear un despachador de eventos
aquí abajo. Entonces creas despachadores de eventos en el panel Mi Blueprint
en la parte inferior aquí, vamos a crear uno,
haciendo clic en este botón más, llamaré a este jefe
destruido y golpearé Enter ahí, adelante y compilar y guardar. A continuación vamos a
agregar un evento para cuando superpongamos los componentes de esta
cápsula. Entonces voy a seleccionar
mi Componente Cápsula abajo en el panel Detalles. Esta es una de varias formas en las
que puedo agregar eventos para esto. Voy a encontrar
mi propio evento
hit componente justo ahí está haciendo
clic en este botón más. Me va a saltar de mi ventana gráfica al Gráfico de Eventos. Y vamos a construir a partir
de este nodo de eventos. Voy a arrastrar fuera
del pin del otro actor. Y vamos a
averiguarlo, es que nuestro personaje en tercera persona. Si fue el
personaje en tercera persona el que nos pegó, simplemente vamos a llamar
a este jefe destruido. Vamos a mandar
el tuit, si se quiere. Entonces, la forma en que podemos
llamar para esto es arrastrando esto aquí, así. Y va a decir, ¿
quieres llamar a bind, desvincular todas estas opciones? En este caso queremos llamarlo, vamos a mandar ese
tweet. Ahora la nota se va
a quedar así. También va a tener un pequeño
sobre en él. Entonces eso va a
enviar los tweets a cualquier suscriptor si se quiere. Y por último, queremos
arrastrarnos de aquí y escribir Destroy Actor para asegurarnos de
que nuestro jefe se vaya adiós. Bien, con esto, podemos compilar y guardar. El tuiteo se logra. A continuación, solo necesitamos un
suscriptor o tres. Así que salta de nuevo a nuestro nivel. Y no vas a seguir adelante
y colocar algunos de estos planos
ligeros en tu nivel. Creamos estos planos ligeros
antes en el curso. Y los puedes encontrar en tu carpeta de scripting
Blueprints. Si no tienes estos creados, podrías elegir
algún otro plano que creamos anteriormente
en el curso también. Estos son solo los
que por casualidad elijo. Además, he colocado un plano de puerta giratoria que creamos antes en el
curso aquí también. Voy a mostrar diferentes
métodos en cuanto a cómo va a funcionar
este tipo de comunicación. Pero voy a comenzar
con mi puerta giratoria BP. Entonces, dentro de mi puerta giratoria
BP, quiero cavar dentro
de ese plano. Vamos a entrar ahí. Vamos a agregar una variable
completamente nueva. Entonces, debajo de la sección de variables, vamos a hacer clic en
el botón más. Y voy a llamar a
esto el personaje jefe. Y bajo el tipo de variable, voy a dar click
aquí mismo, hacer una búsqueda de jefe. Y ahí puedo encontrar
mi objeto tipo B, P, jefe, ese plano
que acabamos de crear. Y voy a hacer de eso
una referencia de objeto. Ahora con esta variable aquí seleccionada en
el panel Detalles, quiero marcar esta casilla, por ejemplo, editable
para que
podamos slot en nuestro jefe desde
el editor de niveles. Y si compilo aquí, podemos ver que no hay nada poblando esta
variable en este momento, pero con esta instancia cheque
editable, alternativamente, podríamos haber
hecho clic en ese globo ocular. Voy a poder seleccionar nuestro lugar
jefe en el nivel. De hecho, voy a hacer eso ahora. Si coloco a mi jefe en
nuestro nivel, así. Ahora puedo seleccionar
mi plano de puerta. Y otra vez en el panel Detalles, puedo ver que me está pidiendo ranura en un personaje jefe
para poblar esa variable. Podría seleccionar esto aquí mismo
y seleccionar a mi jefe allí. Alternativamente, puedo seleccionar este pequeño cuentagotas aquí para elegir el
personaje jefe adecuado de la escena. Y ahí tienes. Ahora puedes ver que nuestro
jefe bp puebla esa variable dentro de
nuestra puerta giratoria bp. Ahora lo que necesito
hacer aquí es tener una puerta giratoria suscribirse a
ese jefe destruido evento. Y esto se puede hacer de nuevo en nuestro gráfico de eventos de puertas giratorias. Entonces, lo primero que
vamos a hacer es llegar a esta parte de
nuestro gráfico de eventos
justo aquí arriba donde estaba nuestra línea de tiempo de
rotación de puertas. Creamos todo este
crecimiento cuando
armamos nuestra puerta giratoria, voy a mantener presionada
la p. P está en juego clave. Y vamos a hacer clic
con el botón izquierdo con la tecla P presionada para que un
evento comience a jugar. A continuación, lo que
vamos a hacer es traer una referencia a nuestro personaje
jefe. Así que voy a mantener
presionada la tecla Control, hacer clic con el botón izquierdo y arrastrar, y ahora me
va a dar un
getter enseguida. Sin embargo, no quiero que esto
sea solo un típico getter. Voy a convertir esto
en un gets fechado válido. Ahora si hago clic derecho sobre esto, puedo ver esa opción
convertir para validar el get. Y lo que esto hace es que me
permite verificar aquí mismo. Si esta variable es válida. Con eso, quiero decir, ¿está
poblado de algo? Es en realidad algo
que no es nulo, no ninguno. Si está poblado
y alerta de spoiler, es porque actualmente tengo mis juegos de puertas giratorias para tener ese
valor de personaje de jefe establecido en ese jefe. Si es válido, podemos
disparar fuera de este pin. Si no es válida, es decir,
esta variable es nula, podríamos hacer otra cosa. Entonces este es un get validado,
úsalos todo el tiempo. A continuación, lo que queremos hacer es sacarnos de nuestro
personaje jefe aquí. Y voy a iniciar sesión si
escribo asignado correctamente ahí está lo
que estoy buscando. Un jefe de señal destruido. Ahora cuando traiga esto, en realidad
voy
a estar trayendo dos nodos, así que compruébalo. Jefe asignado destruido.
Cuando hagamos esto, vamos a traer
un nodo Bind así
como eventos personalizados. Voy a dejar este evento
personalizado con ese nombre. Se le puede nombrar a otra
cosa. Pero así es como funciona esto. Al comenzar a jugar. Vamos a verificar si nuestra
variable de carácter jefe aquí es válida. Si está poblado con
algo, si lo es, vamos a vincular
estos eventos personalizados a este jefe destruido,
este jefe destruyó a Despachador de
eventos. Lo que esencialmente
estamos haciendo aquí es decirle a este evento que espere
a que ese
evento se dispare. Cuando llamamos, cuando llamamos a
este jefe eventos destruidos. Justo aquí cuando
toquemos ese componente cápsula
del jefe, vamos a llamar a
ese evento aquí mismo, estaremos esperando,
escuchándolo. Esto no disparará hasta que se llame a ese
evento de jefe destruido. Nuestro jefe bp lo está
llamando
aquí mismo con este despachador de eventos. Y aquí mismo están la puerta
giratoria, está escuchando eso
con esta configuración de aquí mismo, que lo escucha. Una vez que esto suceda, podremos filmar
fuera de este evento personalizado. Esa es esencialmente
la configuración allí. Entonces lo que voy a hacer es después de que
hayamos escuchado los eventos destruidos por ese jefe, vamos a demorar o solo
un corto período de tiempo aquí, vamos a demorar
un segundo. Entonces voy a
cablear esto a la rotación de mi puerta. Entonces vamos a abrir la puerta. Eso es algo
genial para hacer, ¿verdad? Después de derrotar a un jefe, pronto esa puerta
queda abierta. Entonces voy a
compilar y guardar esto. Y sigamos adelante y
juguemos la prueba de inmediato. Así que aquí voy. Establezca este artículo. Aquí. Estoy jugando. Así se puede ver ese
fuego por ahí. Entonces ahora este evento, este jefe destruyó eventos
personalizados, está escuchando a
este jefe destruido. Este jefe destruyó
eventos para ser denunciados. Ese despachador de eventos,
ese es el tweet, el mensaje que se está enviando. Entonces aquí vamos. Vamos a ver esto
eventualmente disparar tan pronto como me encuentre con el
componente cápsula de nuestro jefe. Déjame traer aquí la ventana de nuestro
jugador. Bien, y esa puerta se
abrirá después de un segundo. Entonces aquí vamos. Jefe va, adiós. 1 s después. Ahí se abre. Ese tuit fue recibido y la puerta giratoria BP
respondió en consecuencia. Ahora tenga en cuenta que una configuración como esta
podría duplicarse dentro de nuestro plano de bp light o cualquier otro plano de esa manera que
colocamos en nuestro nivel. Y eso funcionaría bien. Todos esos podrían suscribirse al evento
destruido de
nuestro jefe de manera similar. Por cierto, muchas veces
es genial tener estos
escuchando para ese evento
justo al comenzar a jugar,
para que cada vez que ocurra
ese evento, puedan responder en consecuencia. Sin embargo, voy a ir con un método un poco diferente de escuchar ese evento, por
así decirlo, usando
nuestro Plano de Nivel. Entonces voy a saltar de nuevo
a nuestro editor de niveles aquí. Vamos a abrir
nuestro Blueprint de Nivel. Así que abre Level Blueprint, encuentra algún espacio vacío
dentro de aquí para trabajar. Ahora lo primero que
tenemos que hacer es saltar de nuevo a nuestro nivel y
seleccionemos a nuestro jefe b, a P. Ahora porque nuestro jefe bp existe en el nivel y sí los
tenemos seleccionados. Por favor, háganlos seleccionados, saltaron a su
Plano de Nivel ahora, podemos hacer clic derecho y
algún espacio vacío y hacer una búsqueda de jefe destruido. Así que compruébalo. Podemos agregar un evento de jefe
destruido. Por lo que este evento
se llamará cuando nuestro jefe bp pida que ocurra ese evento de
jefe destruido. Ahora, lo que vamos a
hacer a continuación es traer una referencia a nuestros
tres actores ligeros. Así que volviendo a nuestro nivel aquí, voy a seleccionar
la primera luz, la segunda luz manteniendo
pulsada Control clic izquierdo, y la tercera luz
también, control clic izquierdo. Los tres están
seleccionados aquí mismo, volviendo a mi Plano de
Nivel, voy a mantener presionada la R. R está en referencia y clic izquierdo
para traer una referencia a los tres. Apilarlos numéricamente
así. Y lo que queremos hacer es
arrastrar fuera de uno de ellos y escribir en la visibilidad del set. Lo sentimos, tenemos que conseguir el
foco importante para nosotros. Entonces voy a decir obtener componente de
luz puntual porque cada una de estas luces consiste en
un componente de foco, que podemos ver
con una de ellas seleccionada consiste en el componente de
foco. Y voy a arrastrar fuera del componente
de foco y escribir en la visibilidad del conjunto. Y diremos que se
hará visible. Y puedo duplicar
Control C Control V, ese foco para
cada uno de estos. Así. Y cuando esto suceda, también
puedo arrastrarme de esto
y decir Place abajo a D. Vamos a traer un poco de sonido. Claro, así. Y tendrá una
explosión Q dramaturgo. Bien, así que ahora compruébalo. Cuando tocamos a nuestro jefe con
nuestro personaje de tercera persona, vamos a llamar a esto eventos. Va a mandar
ese tuit. Ya sabemos que la puerta giratoria
va a estar escuchando
para que una palma comience a tocar. Y una vez que escuchen que el
jefe ha sido destruido, disparará esto y
girará para abrir esa puerta. Aquí en nuestro plano de nivel, podemos simplemente llamar a este
jefe eventos destruidos. Podemos agregar este
evento de inmediato. Al tener esto siendo llamado. Entonces solo vamos a establecer
la visibilidad de nuestras vidas. Entonces sigamos adelante y probemos esto. En esta ocasión nos
centraremos en nuestras luces. En una vez destruimos al jefe. Vamos a seguir. Se abre la puerta. Ahora, una vez más,
podría haber adoptado un enfoque similar dentro de nuestras luces de bp para tener
esa cotización de BP sin cotización, suscríbase al jefe
destruido Despachador de eventos. Pero solo quería hacer una
demostración aquí que
puedes hacer que estos despachadores de eventos disparen directamente dentro un nivel y en realidad planos de
subnivel. Siempre y cuando sea una referencia
a ese actor, en este caso, nuestro jefe bp, contiene un Despachador de Eventos
que existe en tu nivel. Bueno chicos, ahí tienes
un Despachador de Eventos es un gran método para usar cuando quieres
tener un plano, hablar con muchos, basarte en que ocurra
un evento. Chicos, voy a hacer para ofrecer este. Nos vemos en la siguiente.
92. Interfaces de la impresión 1:: Bienvenida. En este video, nuestro objetivo es
conocer cómo usar las Interfaces
Blueprint para
comunicarse entre planos. Ahora con una Interfaz de Blueprint, puede crear una colección
de funciones vacías. Entonces puedes asignar qué blueprints tienen
acceso a esas funciones. Entonces esas funciones de
Interfaz de Blueprint, que ahora se pueden encontrar
dentro de esos blueprints, pueden recibir una
funcionalidad única. Ahora bien, esto es genial para un tipo genérico
funciones donde
podrías interactuar con algo? Y luego
dependiendo del Blueprint con el
que hayas interactuado, podrían responder de manera diferente. Así que estamos empezando
con un gráfico aquí. Entonces vamos a
crear un plano. Dentro de nuestra interfaz
Blueprint, vamos a crear una
función llamada interact. Y luego
vamos a implementar esta Interfaz de Blueprint en tres planos diferentes
son blueprint light, nuestro jefe de blueprint en nuestro
terceraPersonCharacter. Ahora, dentro de cada uno de esos
tres planos diferentes, vamos a llegar a personalizar exactamente lo que hace Interact. Bien, aquí atrás en irreal, Hay mucho que cuidar. Así que comencemos. Estoy dentro de mi carpeta de scripting
Blueprints. Hagamos clic derecho en
algún espacio vacío. Aquí dentro, voy a
llamar bajo Blueprints in, en el pequeño menú fly-out, voy a elegir
Blueprint Interface. Vamos a nombrar a estas funciones de subrayado
BPI. Entonces vamos
a hacer doble clic sobre este tipo para abrirlo. Ahora, dentro de aquí, todo lo que ves es solo
tabulación gráfica vacía dice nueva función. Y luego la parte superior derecha
debajo de la pestaña My Blueprint, está esperando que
le demos un nombre a esta función. Así que vamos a crear nuestra
primera función y se llamará interactuar. Abajo en el
panel Detalles se puede ver que también cambió el nombre de esta
pestaña de aquí para interactuar. Y aquí vamos a cambiar
la salida para agregar una. Vamos a crear
una salida y simplemente
se va a llamar interactuado con signo de interrogación. Y vamos a dejar
que sea un booleano. Entonces esta es nuestra función vacía. Simplemente tiene una salida. Ahora bien, tenga en cuenta, desde aquí no
se puede hacer lo siguiente. No se pueden agregar
nuevas variables, solo entradas y salidas. No se puede editar
la gráfica en absoluto. No te pueden gustar las películas alrededor ni marcar esa casilla
ni nada por el estilo. No se pueden agregar componentes. Esta función no está
configurado para hacer nada. La idea aquí es que
esta función vacía se agregue dentro de otros planos y luego dentro de
esos otros planos, podamos personalizar lo que hace. Entonces, ahora agreguemos esta Interfaz de
Blueprint a otros blueprints. Compilemos esto
primero y guardemos. Después volviendo
a un editor de niveles. Vamos a abrir
nuestro terceraPersonaPersonaje. Vamos a volver
bajo nuestra sección de planos y vamos a
abrir nuestra luz bp. Y entonces
también vamos a abrir a nuestro jefe bp. Aunque esas luces BP boss
MBP fueron creadas en otros videos justo dentro
de cada uno de estos planos, necesitamos agregar esa Interfaz de
Blueprint, y esto se hace bajo el botón Configuración de
clase. Así que voy a comenzar
con mi jefe BP justo aquí arriba, Ajustes de clase. Y luego otra vez en
el panel Detalles, Aquí es donde podemos agregar la
Interfaz de Blueprint y haciendo clic aquí
mismo en este
desplegable debajo de agregar, ahí están nuestras funciones BPI. Vamos a agregar
esa luz BP. Vamos a hacer los mismos
ajustes de clase, agregar funciones bp. Y luego bajo nuestro
terceraPersonaPersonaje, lo mismo. Ajustes de clase,
agregue funciones bp. Ahora bien, si no estabas prestando mucha atención y es fácil
perderlo al agregar esta
interfaz de Blueprint en la sección My Blueprint de
cada uno de estos planos, ahora
tenemos una
interfaz debajo del panel Mi
Plano. Y si abro esto, podemos ver que ahora
tenemos acceso para interactuar. Si hago doble clic en nuestra función
Interact aquí mismo, se abrirá una pestaña de funciones. Y así ahora puedes
ver que podemos agregar una funcionalidad única para
cada función de interacción en cada uno de estos tres planos
diferentes. Así que comencemos con
nuestro plano de jefe aquí, hemos hecho doble clic en
nuestra función Interact aquí. Vamos a darle a esto alguna funcionalidad
única. Vamos a decir que si
llamamos a esta función de interacción, todo lo que vamos a
hacer por nuestro jefe es que vamos a
arrastrar fuera de aquí. Y voy a decir que
destruye al actor. Y luego solo marcaremos
esta casilla diciendo que sí, sí interactuamos con ellos, compilamos y guardamos eso. Vamos a pasar a nuestra luz bp siguiente dentro
de aquí, simplemente
vamos a tomar nuestro componente de foco,
hacer clic y arrastrar. Para arrastrar fuera de esto,
vamos a escribir en la visibilidad del conjunto. Vamos a cablear nuestro
cable de ejecución así. Y pondremos nuestra
visibilidad en verdad. Y también marcaremos esta casilla para que el interactor haya interactuado con. Vamos a compilar y guardar eso. Y luego saltaremos a
nuestro ThirdPersonCharacter y agregaremos algunas
funcionalidades únicas aquí. Todo lo que vamos a hacer es hacer clic derecho
en algún espacio vacío y decir conseguir actor, ubicación. Y vamos a
usar esta ubicación para engendrar y emitir. Así que arrastrando fuera de aquí, voy a escribir
emisor de desove en la ubicación. También podrías desovar el sistema
en el lugar. El sistema utiliza las partículas del
Niágara. Estas son las
partículas más antiguas en cascada o bien servirán. Voy a enchufar esto aquí, y voy a engendrar
en una explosión. Porque las explosiones siempre
son divertidas. Voy a poner la
báscula para que sea agradable y grande. Entonces 22. Y así, y también marcaré esta
casilla para decir que
sí, hemos interactuado. Así que ahora hemos configurado alguna funcionalidad única
bajo cada uno de estos tres planos para cuando llamamos a esta función de
interacción. Sigamos adelante y
compilemos y guardemos esto. Pasemos a
nuestro gráfico de eventos aquí. Y antes en el curso, configuramos esta funcionalidad de
rastreo de líneas. Entonces, si no tienes
esto ya creado, puedes copiar lo que ves aquí. Estamos enviando un
rastro de línea al mundo. Y actualmente cuando
golpeamos a un actor, solo
estamos imprimiendo el nombre de ese actor a la pantalla. Vamos a modificar
esto un poco. Así que voy a eliminar
estos nodos aquí mismo. nos desharemos de este nodo de
sucursal. Traeré
otro momentáneamente. Pero lo que tienes que hacer
es salir de este Hit Actor, puedes sacarte de tu atuendo y romper este exitoso resultado, expandir esto fuera
de nuestro Hit Actor. Vamos a
buscar inter acto. Y entre paréntesis
debería decir mensaje. Engancha esto así. Ahora esto va a llamar a la función Interact
dentro del Hit Actor. Si ese Hit Actor de hecho implementa la Interfaz
Blueprint. Si el actor de éxito
no implementa la Interfaz
Blueprint, entonces no le pasa nada
a ese actor. Entonces, lo que vamos a hacer a
continuación es que vamos a arrastrar fuera de nuestro interactuado
con la salida aquí. Voy a traer
un nodo de sucursal. Y simplemente vamos a
decir que si esto es cierto, hemos interactuado
con algo y
sí evaluó a verdad, simplemente
vamos a
imprimir en la pantalla. Imprimamos interactuado con número de
cosa dentro de nuestra función Interact en
nuestro terceraPersonpersonaje. Estamos poniendo eso en verdad. Aquí estamos desove y
explosión dentro de nuestras luces. Cuando interactuamos con esto,
solo vamos a encender el centro de atención y
vamos a decir Yelp, has interactuado con él. Dentro de nuestro jefe.
Interactúan con la función. Simplemente vamos a
destruir al actor. Y dijimos, sí, hemos
interactuado con él. Una cosa más aquí,
necesitamos configurarlo dentro de nuestro jefe
para tener
ese rastro de visibilidad azota
el rastro de visibilidad aquí dentro de nuestro
personaje de tercera persona. Para que esto realmente
interactúe con el jefe, entra dentro de tu jefe y selecciona tu colisión
cápsula. Solo necesitamos cambiar
un poco los ajustes de colisión. Bajo el
Componente de colisión, sección Colisión. Bajo el preset de colisión, vamos a cambiar
esto para que sea personalizado. Y tenemos que asegurarnos de que el canal de Visibilidad
esté configurado para bloquear
para que nuestro rastreo de línea aquí en el terceraPersonCharacter
realmente lo golpee. Vamos a compilar y guardar eso. Bien, así que de vuelta aquí en nuestro
Blueprint de personaje de tercera persona, vamos a estar
presionando la tecla de flecha para enviar un trazo de línea a lo largo del canal de visibilidad partir de nuestros
actores ubicación, el terceraPersonCharacter
terminando con nuestro punto final de rastreo de línea, que si voy a la ventana gráfica, ese es este punto que
configuramos aquí mismo
antes en el curso. Entonces vamos a
romper nuestro éxito para cualquier actor que hagamos hit, vamos a llamar a la función
Interact que vive dentro de nuestras funciones BPI Interfaz
Blueprint. Si lo que golpeamos ha implementado esa interfaz de
Blueprint, llamará a esa
función de interacción y de hecho realizará lo que sea
que configuremos esa función para
que
haga en nuestro jefe bp, voy a destruir al actor y decir, Sí, hemos interactuado con él. Va a marcar ese Bool
en nuestra luz bp. Vamos a
alternar el
foco y luego también marcar
ese Boole para decir, sí, hemos interactuado con él. Si sin embargo,
lo que golpeamos no ha implementado Esta Interfaz de
Blueprint, no va a pasar nada,
lo cual está bien. Ahora bien, si hemos
golpeado algo que haya implementado esta función de
interacción, esta Interfaz de Blueprint, vamos a pasar ese
booleano por aquí. Y si es cierto,
simplemente vamos a imprimirlo en la pantalla. Bien, aquí
en nuestro editor de niveles, asegúrate de tener un
jefe BP colocado en tu nivel así
como una luz BP que
es sobre la planta baja. Vamos a seguir adelante
y saltar y jugar y pulsando la tecla cero. Una vez que estemos frente
a nuestra luz ahí, deberíamos ver
aparecer algunos textos aquí mismo. Entonces cero clave. Ves esa luz, ves
que interactuó con la cosa. Genial, eso funciona bien. Y vamos a dispararlo. Y nuestro personaje jefe aquí deberías ver aparecer
algunos textos, así
como a nuestro jefe
siendo destruido. Aquí vamos.
Clave cero, jefe se ha ido. Ves nuestra línea siendo disparada al
mundo ahí también. Ahí estaba el punto de impacto
y eso sí está funcionando. Bien, un
poco de matiz para discutir aquí en lo que
respecta a llamar a un Blueprint Interface
funciona aquí en nuestra terceraPersonaPersonaje
que me viste antes, arrastra fuera de nuestro Hit Actor aquí y tecleamos la
palabra interactuar y
vemos interactuar mensaje y
tenemos esa versión sobre
de la misma aquí mismo. Esto es idéntico a eso. Ahora bien, esto señala
el objetivo suministrado aquí mismo para llamar a
esa función. Sin embargo, algo a tener en cuenta respecto, al llamar a
esa función, en realidad no es
necesario implementar la
propia Interfaz de Blueprint dentro de
este blueprint para
poder hacer esto, de lo que estoy hablando está
aquí en nuestros ajustes de clase. Se puede ver dentro de este
plano, he implementado. La interfaz es que no es necesario
tener esto implementado para llamar esto para
el suministro a Target. Y solo para ayudar a conducir a
casa ese punto, voy a saltar de nuevo
a mi editor de niveles aquí. Voy a colocar mi
botón BP en mi nivel. Con esta seleccionada. Esto lo creamos en
una lección anterior. Voy a meter mis luces
aquí para que sea esta luz. Entonces voy a elegir
este pequeño cuentagotas. Y voy a elegir
esta luz
aquí mismo para que BP Li2 ahora se asocie a esa variable
dentro de nuestro botón B P. Voy a
abrir esto ahora, botón RSVP. Y solo voy a
modificar este bit de guión justo aquí abajo
cuando presione la tecla I, cuando esté dentro del rango. Entonces voy a ir así, solo voy a no preocuparme por esta alternancia del
material en absoluto. Voy a romper
esto, manteniendo pulsada la tecla Alt y dando click izquierdo. Lo que puedo hacer
ahora mismo es hacer clic con el botón derecho. Y si busco un mensaje, no mensaje, busco interactuar. Eso es a lo que me refería. Interactuar. Ahí está mi mensaje de
interacción de funciones B PI. Entonces puedo llamarlo para este objetivo de
luz de aquí mismo. Porque recuerden, mi
luz BP hace algo, o la luz BP sí tiene implementada
esta función y alternará la visibilidad. Pero no, es, de lo que
estoy hablando aquí está en la configuración de mi clase, no
tengo implementada la
interfaz de la función BPI. Eso no me
impide llamar a esta función. Así que solo para
volver más a casa el punto, lo que voy a hacer aquí
es jugar el juego. Y voy a solapar
este botón de aquí mismo. Ahora lo he solapado. Veo eso en realidad diciendo, sí, ahora mismo estoy dentro del
alcance. Ese Texas al revés,
pero no importa. Voy a presionar la tecla I ahora va a llamar a esta función. En mis planos de luz. Aquí vamos, presionando la tecla I, y de hecho sí llama a esa función y
enciende esa luz. Ahora tenga en cuenta, cuando busco esa función de interacción aquí haciendo clic derecho y
escribo en interactuar, esa es la única
opción que obtengo. Sin embargo, de vuelta en mi BP
ThirdPersonCharacter donde lo
hago, tengo las funciones BPI Blueprint
Interface implementadas. Puedo hacer clic derecho
en algún espacio vacío y teclear inter act. Tengo otra versión que dice call function justo aquí arriba. Y ahora mira esta versión. Esta es una llamada de función local. Ahora, podría configurar
algo como esto aquí dentro de mi Blueprint
de personaje de tercera persona. Permítanme borrar esto. Esa función que
acabo de borrar
es idéntica a mí, haciendo clic
izquierdo,
arrastrando y soltando mi función de interacción justo
por aquí en mi gráfica. Entonces, de cualquier manera
traerás una copia de esa
versión local de la llamada. Entonces para esta configuración de aquí mismo, voy a presionar la tecla nueve. Esto va a llamar a interactuar
en el blanco de uno mismo. Mi tercera
personaPlano de personaje. Sólo estoy pasando por
ese booleano y luego nos vamos a destruir
a nosotros mismos. Entonces, si recuerdas aquí
en nuestra función local, simplemente
vamos a generar un emisor en la ubicación de nuestros
personajes. Compilar guardar. Déjame volver a mi
gráfico de eventos aquí y jugar. Establecer mi objeto de depuración a mí mismo. Y ahora cuando presiono el Nike, boom, de hecho sí llama a
esa función de interacción. Entonces, para llamar a una
versión local de esa función, la Interfaz Blueprint sí necesita ser agregada
a los blueprints para responder a esa versión de la llamada a la
interfaz.
93. Interfaces de la impresión Blueprint Parte 2: Bien, aún más para mostrar aquí relacionados con Interfaces Blueprint. Así que volvamos a sumergirnos en nuestras funciones de BPI y
vamos a agregar una nueva función en
el panel My Blueprint. Así que haz clic en Agregar función
y vamos a nombrar este daño. Y no vamos a sumar
ninguna entrada o salida. Simplemente vamos a
compilar esto y ahorrar. Ahora volvamos a sumergirnos en
uno de nuestros planos donde ya hemos implementado esta
Interfaz de Blueprint. Entraré en mi Blueprint
de personaje de tercera persona. Ahora, nota sobre en la sección de
interfaces, ahora
vemos aparecer nuestra
función dañada. No obstante, aparece
en este color amarillo. Ahora bien, este color significa que se ha agregado
la función, pero no se puede
llamar dentro de otros planos ya
que no tiene valor de retorno. Y con eso quiero decir,
volvamos a nuestras funciones BPI. No tiene valor de retorno, mientras que selecciono nuestra función
Interact, sí tiene un
valor de retorno, devuelve un nodo. Entonces eso está bien. No es gran cosa. Aquí en nuestra función de daño, vamos a ir sin ninguna
entrada, sin ninguna salida. Vamos a
dejarlo
así y vamos
a mostrar cómo usar Blueprint Interfaces de una manera
ligeramente diferente. Aquí en mi tercera
personaBlueprint de personaje. Recuerda que tengo
implementadas nuestras Interfaces
Blueprint y
hay una función de daño. Ahora si trato de
agregarlo a una gráfica, va a ser como
Nope, no puedo hacerlo. No obstante, si hago
clic derecho sobre esto, puedo implementar
esto como n eventos. Así que mira lo que pasa
cuando hago esto. Agregará esto como un
evento a mi gráfica. Y ahora puedo hacer que algo de funcionalidad
sucediera fuera de esto. Sin embargo, tengo que
asegurarme de que en realidad
llamo a esto eventos de
algunos otros planos. Así que hagamos esto aquí dentro de mi
Blueprint de personaje de tercera persona, voy a decir, bien, cada vez que llamemos a esto, simplemente
vamos a
destruir a nuestro personaje, Destruye Actor eso es bastante
simple. Compila y guarda eso. Ahora a partir de otro plano, tenemos que llamar realmente
para que esto suceda. Así que vamos a saltar a decir
son BP ejemplo pickup. Voy a hacer doble clic sobre eso. Y solo voy a secuestrar la funcionalidad original de esto solo por el momento, voy a poner de nuevo
después del video. Voy a decir
que cuando empecemos superponer esta
esfera aquí mismo, vamos a comprobar si encaja
el personaje de tercera persona. Y luego fuera de esto, simplemente
voy a
arrastrar fuera de él y escribir en el daño que BPI funciona. Mensaje de daños. Vamos a ir
así y así. Y voy a deshacerme de estos solo para que esto quede
un poco más claro. Entonces esto es lo que estamos haciendo. Dentro de nuestro bp ejemplo pickup. Estamos comprobando si
hemos solapado esa esfera,
esta esfera colisionó con
el terceraPersonCharacter. Y si lo estamos,
vamos a
pedir ese daño
Blueprint Interface. Ahora, eventos que ocurran aquí dentro de nuestro personaje en
tercera persona. Así que sigamos adelante y
probemos esta jugada de clic. Y se me olvidó agregar
eso a nuestro nivel. Agreguemos uno de estos. Y así en el momento en que
tocamos que deberíamos morir, BAM, y lo hacemos. Entonces esa es otra
forma en la que puedes usar un Blueprint Interfaces
en lugar de
implementarlas y luego agregar alguna funcionalidad
para cada función, como hicimos con nuestro evento
interactivo. Simplemente podemos dejarlos en nuestra Interfaz Blueprint
sin ninguna entrada o salida. Y luego haz lo que hicimos en
nuestro terceraPersonCharacter, donde hicimos clic derecho
sobre él y lo
convertimos en un evento. Entonces al hacerlo, puedes
hacer cualquier cosa fuera de él, siempre y cuando llames a ese evento desde algunos
otros planos. Ahora bien, esta es una especie
de forma de llamar a cabo un evento personalizado en cualquier otro blueprints que
implemente esta interfaz, correcto, Por último pero no menos importante,
vamos a hablar sobre cómo usar un Interfaz de Blueprint para comunicarse con un Blueprint de
Nivel. Ahora, lo mejor es agregar una Interfaz
Blueprint a un subnivel para facilitar la
comunicación con el nivel. Vayamos a una manifestación. Antes que nada,
asegurémonos de que tienes la pestaña de nivel abierta por aquí. Si aún no tienes
eso en tu editor, puedes conseguirlo entrando por debajo ventana y luego
abriendo los niveles TAM. Y antes en el curso sí
creamos un subnivel. Seguiré adelante y
crearé otro subnivel solo para que veas cómo se
hace una vez más, aquí
mismo donde dice niveles, puedes ir aquí y
puedes crear nuevos. Y te incitará a
crear un nuevo subnivel. Voy a elegir un nivel vacío. Crear. Nos va a
preguntar ¿dónde
queremos salvar esto? Pongamos esto en nuestro tenedor de niveles de
scripting, y simplemente llamaré a este
subnivel subrayado 02. Vamos a salvar esto. Bien, voy
a hacer clic derecho en nuestro subnivel hasta aquí. Voy a cambiar
el método de streaming. Para estar siempre cargado
en lugar de Blueprint, cámbielo a siempre cargado. Entonces con nuestro
subnivel aquí mismo, voy a dar click ahí
mismo para abrir R sub nivel Nivel Blueprint. Y dentro de nuestro plano de
nivel de subnivel, tengo nuestra
configuración de clase aquí arriba. Y una vez más,
aquí es donde puedo implementar nuestra Interfaz
Blueprint. Entonces voy a hacer clic en Agregar. Ahí están mis funciones de BPI. Bien, siguiente de vuelta
en nuestro editor de niveles, puedes asegurarte de que este es el nivel actual
marcando aquí mismo. Nivel subnivel dos,
ese es nuestro nivel actual. Si hacemos clic fuera de
él, ese azul también demuestra que es nuestro nivel de trabajo
actual. Aquí vamos a agregar un actor
a nuestro subnivel. Voy a añadir,
vamos por debajo de él aquí mismo. Vamos a agregar una forma. Hagamos un cilindro. Claro, algo así. Entonces tenemos un actor
en nuestro subnivel. Podemos ver esto haciendo clic
en
este ícono del globo ocular para mostrar que eso es de
hecho parte del subnivel dos. Y luego nos vamos
a asegurar de que tenemos nuestro cilindro seleccionado
y vamos a volver al plano R sub nivel
dos niveles. Vamos a entrar en nuestra función
Interact aquí. Haz doble clic sobre
eso para abrirlo. Mantenga pulsada la tecla R, haga clic izquierdo para traer allí una
referencia a nuestro cilindro. Y vamos a arrastrar
fuera de aquí y escribir en Destruir piernas de Actor. Entonces diremos entonces que sí
hemos interactuado con él. Eso es genial. Compila y guarda esto. Entonces vamos a sumergirnos de nuevo en nuestro
Blueprint de personaje de tercera persona. Y lo que vamos a hacer es
configurar unos guiones muy sencillos. Sólo vamos a hacer click derecho, no
sé la llave ocho. No creo que tengamos nada
saliendo de la
llave ocho actualmente. Y voy a hacer clic derecho entonces en algún
espacio vacío y escribir y obtener nivel de streaming. Y aquí es donde
queremos poner en el nombre exacto de
nuestro subnivel O2. Ahí está justo ahí. Sub subrayado un
nivel, subrayado 02. Entonces podemos arrastrar fuera de esto y escribir en el
mensaje inter acto así. Esto nos permitirá
comunicarnos con nuestro
subnivel dos y llamar a esa función de interacción que configuramos dentro de Sublime también. Entonces eso va a matar
ese cilindro. Ahora, en realidad
no voy a estar haciendo nada fuera de los bools. En realidad no tuve que
marcar esa casilla, pero lo hice. Entonces, sigamos adelante
y compilemos esto. Sigamos adelante y jugemos. Y ahora cuando presiono
la tecla ocho, bam, se ha ido. De hecho, también nos hemos comunicado a través de Interfaces
Blueprint
con nuestro subnivel. Bueno chicos, eso
va a hacer para
ofrecer un Blueprint Interfaces. Una vez más, con
Blueprint Interfaces, puedes configurar
funciones dentro de ellas. Luego puede agregarlos a los
planos a través de la Configuración
de clase. Y luego, una vez que lo hagas, puedes configurar una
funcionalidad dentro de ellos que sea
única para donde sea hayas agregado estas Interfaces
Blueprint bastante útiles en ustedes eso va a hacerlo
todo por éste. Nos vemos en la siguiente.
94. Clase de padres (base): Bienvenida. En este video, nuestro objetivo es
iniciar una conversación torno al concepto de
herencia en planos. Ahora para demostrar verdaderamente el poder de la herencia
con planos, vamos a crear
una clase padre, una clase base sobre la que derivarán
otros planos futuros. Ahora bien, lo
que esto significa en
última instancia es que cualquier blueprint que creamos como hijo de este padre viene preconstruido con
todos los componentes, toda la funcionalidad en variables que el
padre ya tiene. Ahora bien, si alguna vez has
creado una clase de blueprint, ya
has usado herencia y puede que ni siquiera te hayas dado cuenta que ningún blueprint
en irreal existe sin heredar
de otra cosa. Como ejemplo de lo que
acabo de mencionar ahí, echa un vistazo a nuestro Blueprint de
terceraPersonaPersonaje. Si abrimos a ese tipo
en el extremo superior derecho, nos
permite saber cuál era
la clase de padres. En este caso, nuestro bp
ThirdPersonCharacter heredado de la clase de carácter son BP ejemplo pickup que
creamos desde el
comienzo mismo de la clase. La clase de padres
para eso es actor. Esto se deja aún un poco más claro si vuelvo a nuestro navegador de contenido y hago clic derecho en elegir
Blueprint Class. Abajo, donde
nos está pidiendo que escojamos una clase padre, se
puede ver la jerarquía
de diferentes planos. Object es el
actor de clase base más hereda del objeto. Y si explico actor debajo de aquí puedo
ver algo así como nuestro bp ejemplo pickup que hereda de la clase de padres. Bien, entonces lo que
vamos a hacer en este video es crear a nuestro padre,
nuestra clase base. Y luego en el siguiente video
vamos a crear una clase infantil que se basa en
nuestra clase de padres. Y vas a
ver cómo nuestro hijo hereda todas las propiedades
del padre así como
tú eres un niño y heredó algunas propiedades
de tus padres. Entonces, ¿nuestra clase
hijo heredará también de nuestra clase de padres? Sigamos adelante y haga clic con el botón derecho
y algo de espacio vacío aquí. Voy a hacer esto dentro de mi carpeta de scripting Blueprints. Haga clic con el botón derecho en la clase Basaremos esto en el
actor o en una clase de padres. Y voy a nombrar a
esto mi subrayado BP. Recogida de padres, así. Y haré doble clic sobre
este tipo para abrirla. Y voy a añadir
algunos componentes. Entonces vamos a
comenzar agregando alguna esfera. Colisión de esfera. Se establecerán los detalles aquí. Después de esto con nuestra
colisión de esfera seleccionada, voy a agregar una fuente de malla
estática La malla estática está unida
a nuestra esfera. Y luego con nuestras mallas
estáticas seleccionadas, voy a agregar, voy a escribir en Niagara. Quiero agregarlo en componentes del
sistema de partículas del
Niágara así. Vamos a, vamos a agregar algunas partículas de Niágara
aquí en un poquito. Y también vamos a añadir
unos componentes de movimiento giratorio así
como interpretar componentes de
movimiento Too. Entonces nuestro, nuestro plano
aquí va a rotar
tanto
como a bob arriba y abajo. Así que eso va a ser genial. Bien, vamos a establecer
algunos detalles aquí. Así que seleccionando nuestra esfera, ante todo, acércate
a tu panel de detalles. Vamos a establecer nuestro radio de
esfera en 100, algo bonito y grande. Ya sabes, el desplazamiento hacia atrás
aquí son mallas estáticas. Voy a entrar bajo el panel
Detalles y
elegiré el cubo de subrayado 1M. Vamos a hacer cualquier
malla de cubo que en va a estar bien. Algo 50 por 50 por 50. Claro, eso es un poco pequeño, así que voy a escalar eso hasta
tal vez el doble del tamaño ahí. Para realmente, permítanme poner esto de
nuevo bloqueando nuestra báscula aquí. Puedo establecer que sean
dos y golpeando Enter, lo escalará
en consecuencia en la x, y y z. A continuación, voy a elegir
nuestro componente Niagara aquí. Ahora, lo hice, antes de este video, sí
me aseguré de tener algunas partículas de Niágara
agregadas a mi proyecto. Y te voy a mostrar
donde puedes agregar estos, porque esto puede llevarte
un poco de tiempo. Aquí abajo en el lanzador de
Epic Games, si vienes bajo
Unreal marketplace, simplemente
entré bajo
la sección gratuita aquí. E hice una búsqueda de Niágara. Y aquí, elegí estos set VFX
base pickup. Ahora para agregar esto a tu proyecto, puedes dar click aquí mismo. Eventualmente obtendrás esta opción
Agregar al proyecto. Puede hacer clic aquí mismo. Ahora, ya tengo
esto agregado a mi proyecto, así que no voy a volver a agregarlo, pero puedes seleccionar tu proyecto. Si tu proyecto
no aparece, puedes hacer clic en este botón para
asegurarte de que sí aparece. Entonces harías clic aquí
para agregarlo a tu proyecto. Ahora me puede tomar un poco de
tiempo para que me agreguen. Una vez que se ha agregado, solo
voy a las
menos una vez más vuelta aquí en nuestro navegador de
contenido. Se mostrará como este conjunto de
pastillas de subrayado de ensayo de carpeta, etcétera. Y aquí mismo en mi directorio, aquí
mismo como un sistema de pickups
FX nagger. Aquí es donde podemos encontrar algunos efectos de partículas
del Niágara. Este es el
sistema de partículas más nuevo en Unreal, usando Unreal Engine five. Bien, volviendo
a nuestra camioneta padre, seleccionemos aquí nuestro sistema de
partículas negra. Y donde dice sistema de
Niágara, voy a ranura en
uno llamado energía. Y voy a hacer esto NS
energía subrayado dos. A continuación, seleccionaré nuestro componente de movimiento
interp2. Ahí está entrando nuestra partícula. Y voy a establecer un par
de puntos de control aquí, haciendo clic en el
botón más una y dos veces, y voy a ampliar
cada uno de estos hacia fuera. Voy a dejar el índice
es cero en esa ubicación, index1, simplemente voy a tener
que bob up en la
dirección z por 20. Y entonces también estableceré
nuestro tipo de comportamiento aquí para sea ping-pong para que vaya y
venga entre
esos dos puntos. Ahora, nuestro
movimiento de rotación ya tiene una tasa de rotación de 180 en la z. Así que si tuviera que simular esto, se
puede ver cómo va a ser esto. Gira alrededor. Ahí están adheridas partículas
a nuestro cubo. Eso es tan encantador. Bien, Siguiente voy a agregar
tres variables aquí abajo, que eventualmente serán
heredadas por nuestro hijo. Así que voy a hacer clic debajo la sección de
variables My Blueprint, el botón Plus aquí mismo. El primero
se va a llamar pickup S FX. Y vamos a cambiar
el tipo aquí para que sea sonido bajo base de sonido para buscar esa referencia de objeto
base de sonido. Los pondremos todos
un poco más tarde. Voy a hacer clic en
el botón Más. Vamos a agregar
otro, a esto lo llamamos pickup VFX. Voy a establecer el tipo
aquí para que sea sistema de garaje de huevo,
ese sistema de Ágora referencia de
objeto. Y aquí vamos a agregar
una variable más. Y a este se le
llamará nombre del elemento. Y vamos a cambiar el
tipo aquí para que sea una cadena. Bien, compilando, entonces podemos establecer algunos
valores predeterminados para todos estos. Entonces mi ItemName va a establecer el valor predeterminado
para que sea el nombre del elemento. Para nuestros efectos pickup v, voy a hacer slot in coin Burst, eso es un sistema Niagara. Y para mi camioneta S de x, voy a elegir
una llamada objetos. Recogida de objetos. Esto está en el contenido del motor. Si no ves
eso, puedes hacer clic en este ícono de engranaje y
ahí mismo puedes encender el contenido de tu motor para que encuentres
esa recolección de objetos. Eso es con lo que
voy a ir. Puedes intercambiar cualquier sonido o un efecto de partícula que quieras. Esos serán mis incumplimientos. ¿Bien? Con eso, voy
a compilar y guardar de inmediato y luego dirigirme a mi
gráfico de eventos donde
vamos a hacer un
poco de scripting. Lo primero es lo primero
vamos a hacer clic izquierdo y arrastrar alrededor de estos tres nodos de eventos que ya están
aquí por defecto, los
vamos a eliminar. Vamos a hacer clic derecho en nuestro componente de colisión de esfera,
hacer clic derecho en Agregar evento. Vamos a hacer algo cuando
empecemos a superponer eso. Entonces vamos a agregar
eso a nuestra gráfica. Y como
habrás adivinado por ir a arrastrar fuera de nuestro otro actor y ver si fue el
personaje de la tercera persona que hizo la superposición. Si lo fuera, vamos
a reproducir sonido, 2D. ¿Qué sonido quieres tocar? Bueno, tenemos un
sonido de pick-up justo aquí. Vamos a simplemente arrastrar
y soltar eso en el pin. Avanzando hacia abajo. A continuación vamos a arrastrar
fuera de aquí y vamos a hacer sistema de
desove en la ubicación, sistema de
desove esa ubicación
bajo la sección Niagara, sistema de
desove es donde se
puede desovar Niagara VFX. Ya tenemos uno guardado
en una variable aquí mismo. Así que vamos a arrastrar y soltar esto
encima de la plantilla del sistema. Vamos a alimentar a esta una ubicación. Así que vamos a hacer clic derecho. Obtenga la ubicación de nuestros actores. ¿Cuál actor? Esta camioneta de padres BP, donde quiera que se
vaya a ubicar esta, esa será la ubicación
donde queremos engendrar esto. Entonces vamos a arrastrar fuera
de esto e imprimir cadena. ¿En qué cadena
queremos imprimir? Bueno, vamos a arrastrar
hacia atrás fuera de esto, traer un nodo append. Y cuatro son una, vamos a escribir
en el espacio de dos puntos conseguido. Para el b. vamos a colocar el nombre
de nuestro artículo. Así que arrastra y suelta eso aquí. Vamos a añadir un pin más. Y voy a hacer un espacio de
exclamación. Entonces esto debería leer obtuvo dos puntos, espacio, nombre del elemento, espacio, signo de
exclamación. Son las dos,
realmente no necesitan estos espaciadores entre el nombre y
el signo de exclamación. Entonces voy a retroceder ahí. Y luego por último pero no menos importante, vamos a arrastrar fuera
de esto y vamos a destruir al actor. Entonces ese va
a ser nuestro guión. Si quieres pausar el video ahí mismo
y conseguir una buena mirada. Mira, bien, siguiente, solo para simplificar un poco nuestro gráfico
aquí, voy a hacer click izquierdo
y arrastrar por todos estos nodos excepto
por nuestro evento. Y luego si haces
clic derecho en alguno de tus
nodos seleccionados aquí mismo, puedo hacer clic derecho sobre ellos y
puedo colapsar para funcionar. Cuando haga esto
se va a reducir a un solo nodo y justo encima en el panel Mi Blueprint
debajo del área de funciones, va a decir,
bien, nombra esta cosa. Simplemente voy a llamar a
esta función pickup. Así. Si hago doble clic
sobre esta función, puedes ver cómo se
ve por dentro aquí. Y eso es genial. Ahora tenemos un gráfico de eventos muy
simplificado. Sigamos adelante y
compilemos y guardemos. Voy a colocar uno de
estos abajo en mi nivel. Y vamos a darle a esto una prueba de juego rápida para
asegurarnos de que de
hecho podemos recopilar esto. Así que arrastrando y soltando
este rojo aquí. Sigamos adelante y juguemos. Y lejos. Vamos Ahí está. Poco estallido de partículas
de aire también. Bien, vamos a
un gran comienzo aquí. Y en el siguiente video
vamos a crear un hijo de este blueprint y
ese hijo
heredará todos los componentes. Las variables son las
funcionalidades de este padre. Ahora bien esta es una gran manera de trabajar en irreal, porque si lo piensas, hay muchas
cosas en los juegos que son similares entre sí, como camionetas, armas, tipos de
enemigos, etc. Todos comparten algunas cosas en
común sobre ellos. Entonces, ¿por qué recrear la
rueda una y otra vez? Por qué crear un plano único para cada
recolección de planos que
vas a tener. Lo mejor es trabajar
creando una clase para padres. Va a tener mucha de la funcionalidad base que
dicen que todas las camionetas
van a tener. Después en cada una de las funcionalidades de
script hijos, agregue
algunos componentes como algunas variables o
propiedades que sean específicas de
cada pickup individual. Pero la
funcionalidad compartida debería ir dentro de un plano padre. Bien chicos, eso sí
va a ofrecer este. Te veremos en la siguiente.
95. Clase infantil (Parte 1): Bienvenida. En este video, nuestro objetivo
es mostrar cómo crear Clases de
Planos Infantiles y luego cómo personalizarlas a
partir de ahí. Ahora, crear planos secundarios es increíble desde el punto
de vista de no tener que recrear la rueda haciendo que blueprints de clase hijo hereden todos los componentes
base, variables y funciones
de un padre. No tenemos que recrear
todo eso en el niño. En cambio, ahora podemos personalizar cada plano infantil
como mejor nos parezca. Adicionalmente, si hay
algún componente agregado, variable o
funcionalidad que
queremos agregar retroactivamente al padre. Todos los planos de clase infantil
lo ganarán automáticamente, lo cual es bastante dulce. Bien, así que comencemos a
mostrar algo de esto creando primero una clase infantil. Así que aquí está mi recogida de padres BP. Voy a hacer
clic derecho sobre esto. Y para crear un hijo a partir de
cualquier plano existente, simplemente haga clic derecho sobre él y la opción más alta,
ahí va. Crear clase de anteproyecto infantil. Nos va a incitar a darle un nombre. Entonces voy a cambiar
esto para que sea BP. Recogida infantil. Entonces voy a hacer doble clic
sobre este tipo para abrirlo. Ahora, echa un vistazo aquí. Entonces aquí está la camioneta de mi hijo. Tengo la recogida de mis padres abierta a lo largo de
la parte superior aquí también. Y si me alterno entre los dos, se
puede ver que
se ven idénticos. También notarás que
la camioneta principal tiene este listado de componentes. Y fíjate que en
nuestro hijo tenemos exactamente
ese mismo
listado de componentes. Ahora en la recolección de padres, tenemos estas variables
aquí abajo. En la camioneta infantil. Tenemos estas variables
aquí abajo. Y si no ves estas variables
aquí abajo que fueron heredadas, puedes hacer clic en este pequeño ícono de
engranaje y se asegura que show
las variables heredadas esté marcada. Debe tener eso marcado para que esas
variables heredadas se muestren. Porque si los marcas, se van adiós, muestran variables
heredadas. Y ahí tienes. Ahora un par de cosas
para tomar nota aquí. Si miras en la parte superior derecha, dice
que nuestra clase de padres
es la recogida de padres BP. Y también en la
lista de componentes, si quisieras editar
alguna de estas cosas, di que querías cambiar este componente de esfera
si hiciste clic aquí
mismo en editar en Blueprint, nota lo que pasa aquí. De hecho, te salta de nuevo
a la camioneta de tus padres. Entonces en el niño donde
ves todos estos
justo por aquí, si haces clic en alguno de ellos, va a saltar de nuevo
al padre, ser como, Oye, quieres editar esto
aquí en tu hijo, mientras que el lugar para
hacer eso en realidad está en los padres, porque cualquier cambio que
hagas aquí en el padre, se
propagarán
hasta el niño. Ahora, solo para conducir a casa
ese punto muy rápido, voy a agregar
una luz temporal aquí en la camioneta de mis padres. Entonces me voy a quedar por debajo, Agregar voy a escribir en luz. Vamos a agregar una orilla de luz puntual. Lo dejaré a ese nombre. Ahora bien, si voy a la camioneta
infantil
ahora mismo, no lo ves. Sin embargo, si voy a
recoger a mis padres y luego hago clic en Compilar, guárdalo y
vuelvo con mi hijo. Boom, ahí está ese componente
puntiagudo y eso estaría ahora mismo enterrado en el
interior de mi cubo ahí. Entonces ahí es donde
realmente reside. Voy a borrar eso porque realidad no lo quiero. Entonces, si yo quisiera eliminar
esto por decir el niño, podría borrarlo aquí. No. No puedo hacerlo. Derecha.
Porque estás tratando de hacerlo, pero es como, No, estoy heredando
esto de los padres. Así que tienes que ir
Edit y Blueprint, eliminado aquí, luego
Compilar y Guardar. Y ese cambio se
propagará hasta su hijo. Ahora, una vez más, lo
que hace que trabajar esta manera sea tan increíble es
con nuestra camioneta para padres, creamos la funcionalidad
base para recoger esta camioneta. Simple superposición aquí en
nuestro gráfico de eventos, ¿verdad? Y cuando lo
superponemos, simplemente hacemos esta
funcionalidad aquí mismo. No tenemos que recrear todo este niño interior y
podemos demostrarlo arrastrando y soltando
este nivel de chico. Entonces tengo a los
padres a la izquierda. Voy a hacer que el padre sea
un poco más alto, el niño de la derecha. Y si me meto y juego, puedes ver que
puedo recoger uno. Puedo recoger al otro. Esa funcionalidad de hecho
se escurrió hasta nuestro hijo. Pero lo que también nos hace grandes es que podemos hacer
algunos cambios en nuestro hijo manteniendo
esa misma funcionalidad. Entonces, permítanme hacer algunos cambios
muy superficiales aquí en nuestro hijo. Voy a cambiar algunos
de nuestros componentes aquí, no los propios componentes, sino las propiedades reales
de los componentes. Entonces por ejemplo I. Podría seleccionar mi componente de malla estática y cambiarlo para que sea algo que no
sea un cubo. Podría cambiar esto para que sea, vamos un cono, alguna forma de cono y él forma de
cono va a hacer. Simplemente voy a reducir eso para que sea uno en todos los ámbitos ahí. Grita para sincronizar
eso un poco. Podría cambiar los efectos de
partículas de mis
relámpagos aquí para que sean algo así como
Haremos algo curativo
con algunos corazones. Claro. Hagamos sanando a tres
tal vez algo así. Movimientos giratorios. Yo también puedo cambiar eso. Sí, una vez que cambies
tu sistema Niagara aquí, va a tomar un
poco de tiempo cambiarlo. En realidad, no me
gusta esa porque
eso es una especie de
fuego y olvídate de uno. Intentemos sanar quiere
algo persistente así. Movimiento intérprete. Yo también puedo cambiar esto. En este caso, vamos a
cambiar la duración de un segundo a 3 s. Así que va a tomar
más tiempo para que pase de. Posicione cero aquí
para posicionar uno. Puedo cambiar mis movimientos de
rotación. Puedo cambiar la velocidad
a la que gira. Así que voy a hacer que este
gire un poco más rápido aquí. Diremos 200,
algo así. Y puedo cambiar mis efectos de
sonido pick-up no tiene por qué
quedar este objeto pickup. Voy a cambiar eso
para que sea vista flotante. Cierro cualquier opción aquí vamos a hacer solo probar
algo diferente. Mi camioneta VFX no tiene
que quedarse igual ahí. Podría cambiar esto de
moneda Burst a coin Burst O2. Y el nombre de mi artículo no
tiene por qué permanecer igual. En lugar del nombre del elemento
como nombre de elemento, voy a cambiar
esto para que vuelva a ser saludable. Bien, así que con todos
esos cambios realizados, puedo volver atrás y ahorrar. Vamos a probar esto. Se puede ver que se
ve visiblemente diferente. Diferente efecto de partículas. Tendrá un efecto de
partícula diferente cuando lo recojamos también, parece que ese efecto de
partícula
desaparece bastante rápido
aquí, pero aquí vamos. El padre, el hijo. Diferente efecto de partícula, sonido
diferente, etc. Muy bien,
todo esto está bien que nuestro hijo ha
heredado de hecho la funcionalidad y los componentes iniciales
de nuestro padre. Simplemente intercambiamos algunos
de los elementos superficiales. Nuestro hijo aquí,
esa es la mirada en algunos de los sonidos y ese
tipo de cosas, las variables. Pero ampliemos un
poco más
nuestra funcionalidad en el niño. Hagámoslo para que
aunque no hayamos heredado todas estas cosas y
eso esté todo bien y bien. Queremos llevar a nuestro hijo
un poco más lejos. Queremos hacer algo específico
para nuestra recogida de niños aquí. Así que vamos a empezar en nuestro
Blueprint de terceraPersonaPersonaje. Ir a entrar en
planos en tercera persona que son Persona, Carácter y nuestra función de
salud. Esto lo creamos
antes en el curso. Creamos una función de modificar la
salud y se ve así. Vamos a arrastrar esto
a nuestro gráfico de eventos. Voy a hacer clic con el botón derecho
trayendo un evento personalizado. Voy a llamar a esta camioneta infantil de
salud. Voy a enchufar
esto a nuestra función modificar salud que creamos. Nuevamente en video anterior, hablamos sobre la
creación de funciones en nuestro evento personalizado de
recolección de niños de salud. Voy a agregar una entrada aquí, haciendo clic en este botón más. Voy a ponerle nombre a esta salud. Voy a cambiar el tipo
de booleano a flotante. Y voy a
enchufar esto enseguida a nuestra función
para modificar la salud para
que pasemos este
valor de salud a nuestra función. Vamos a pasar
algo a
esto en nuestras camionetas infantiles. Verás eso aquí
en un poquito. Entonces lo que voy a
hacer es que voy a traer aquí una cadena de impresión. Entonces voy a
arrastrar hacia atrás fuera mi cadena de impresión y
traer un nodo append. Y voy a tener mi
un valor aquí es simplemente decir salud colon espacio. Y nuestro valor b va
a ser la salud actual que vamos a tener
después de hacer este cálculo, arrastrando esto como así
simplemente va a traer
un nodo de conversión, convirtiendo un float a una cadena. Entonces nuestra función modificar salud
actualmente se ve así. Si hago doble clic sobre él, puedes ver lo que está haciendo ahí mismo. Estamos tocando diferentes
sonidos
dependiendo del valor de salud
que se transmita. También estamos aplaudiendo ese valor para la
salud. Pero eso es esencialmente
lo que tenemos pasando. Vamos a compilar esto muy
importante que compiles y guardes esto. Y es importante
que compiles para que podamos llamar a
esta función o
esto hasta eventos más bien personalizados que ocurran desde nuestra recolección infantil. Bien, así que todo esto hecho en tu Blueprint
de personaje de tercera persona, regresa a la camioneta de
tu hijo. Ahora, dentro de aquí, si buscas alrededor de
tu gráfico de eventos, estás como,
yo no, no veo ninguna de
esta funcionalidad aquí en nuestro padre. Estamos haciendo algunas secuencias de comandos
aquí mismo, así. Y sé que creamos
esta función, esta función de recogida aquí
dentro de mis padres. Y se ve así, pero si entro en mi hijo, no
veo nada de eso. Bueno, aquí en nuestra
sección de funciones del panel My
Blueprint, si vienes aquí abajo, puedes anular tu función de
recolección que actualmente existe dentro
de tu recolección de padres BP. Entonces, si hacemos clic en esto, ahora
veremos esa función de
recolección que
creamos dentro de nuestro padre. Y así es
como se ve dentro de nuestro padre, dentro de nuestro hijo. Parece que esto es donde simplemente
estamos haciendo una llamada sobre a nuestra
camioneta de padres diciendo como, sí, esa es la función
que queremos ejecutar. Ahora, puedo
extender esto aún más. Lo que voy a hacer aquí es hacer
clic derecho y escribir algo de
espacio vacío , obtener el personaje
del jugador. Elenco a terceraPersonaPersonaje,
así. Ahora porque creamos ese evento personalizado dentro de
nuestro ThirdPersonCharacter, y estás seguro de
Compilar y Guardar. Vamos a hacer una llamada a este evento personalizado de recolección de
salud infantil. Entonces en nuestra camioneta infantil, ahora
puedo arrastrar fuera
de aquí y escribir recolección infantil de salud. Y esto hará que
el llamado a nuestro
Blueprint de terceraPersonaPersonaEjecute esto. Ahora, aquí atrás en
nuestra camioneta infantil, sí
necesitamos pasar algo de
salud que nos gustaría pasar
a cualquiera de los talones o
podríamos lastimar a nuestro personaje. Solo voy a poner algo
duro sin embargo podrías
hacer clic derecho sobre esto. Se podría promover esto a una
variable o a una variable local. Una variable local solo sería vista por esta
función aquí mismo. Yo sólo voy a poner
puntos a cinco aquí mismo. Voy a compilar esto también. Y déjame volver a mi ThirdPersonCharacter
Blueprint y solo asegurarme de que
nuestra salud en este momento, actualmente está establecida en 100%. Entonces voy a establecer
esto para que sea del 50%. Y así como pruebas de juego rápido, quiero asegurarme de que
nuestro medidor de salud de
hecho esté mostrando 50% de salud. Bien, así que con todo esto hecho, en realidad
podemos
saltar y jugar. Podría haberlo
probado ahí
pero no estaba pensando con claridad. Así que nota que mi salud
el oído derecho está al 50%. Esto debería curarlo
hasta por ahí en el medidor de salud porque eso es lo que
le estamos instruyendo que haga. Y aquí vamos. De hecho aumentamos
nuestra salud 2.75. Y viste que esa cuerda
pasaba también. Entonces viste aquí dentro
de la camioneta de mi hijo, simplemente
extendí esa funcionalidad que ya
estábamos
heredando del padre. La camioneta de padres ya
tenía guión aquí mismo. Entonces cuando superpongamos esa esfera, vamos a llamar
a esa función, esta función de captación
dentro de los padres. Entonces nuestro hijo va a
estar heredando todo esto. Y nuestro hijo también lo va
a estar extendiendo por aquí. Estamos haciendo esta
llamada al evento personalizado dentro de
nuestro terceraPersonpersonaje. Algo más que vale la pena
señalar aquí es que cuando hicimos recoger a nuestro hijo aquí, note en la parte superior izquierda
decía paquete Got Health. Y la razón es
decir que Dios paquete de salud es porque aquí en
nuestra camioneta infantil, cambiamos el nombre del artículo
para que sea paquete de salud. Y si recuerda, dentro de la función de
recolección padre que creamos aquí
mismo es donde estamos diciendo que obtuvo el nombre del elemento
y luego el signo de exclamación. Entonces, vamos a respetar todo esto. Está llamando a esta
función de recogida dentro de nuestro padre. Pero también es respetar los nombres de las variables que hemos cambiado aquí en
nuestra camioneta infantil, es
decir, ya no es decir el nombre
del artículo en
nuestra camioneta infantil, dijimos que no, ahora
va por decir paquete de salud.
96. Clase infantil (Parte 2): Bien, en la parte número
dos aquí vamos a estar discutiendo algunos de
los detalles más
finos que puedes
encontrar cuando
trabajas con planos de clase padre e
hijo, algunas cosas que
deberías saber acerca de. Entonces, supongamos que creas una camioneta para padres como lo hemos hecho nosotros. Y digamos que hemos
agregado estos componentes giratorios, móviles como lo
hemos hecho y queremos
hacerlo para que cualquier hijo de este plano obedezca
esta tasa
de rotación de un cajero automático que no
hay posibilidad no queremos tener forma de que los planos de la clase hijo se
desvíen de este valor. Queremos
encerrarlos por así decirlo. Bueno, lo podemos hacer aquí
es que podemos desmarcar
esta casilla de verificación editable cuando se
hereda. Y vas a
encontrar esta casilla de verificación
en todos nuestros diferentes
componentes aquí mismo. Lo que pasa es cuando
desmarca esto y yo
lo haré, voy a desmarcarlo. Y luego voy a compilar
esto una vez más y ahorrar. Ahora bien, si entro en la recolección de
mi hijo, va a heredar todos
estos valores porque
acabo de compilar y decir que esos cambios se
propagarán hacia abajo hasta
el niño una vez que haga algunas
ediciones en tu padre. Entonces nuestra tasa de rotación es de 180. Nuestra camioneta infantil ahora
tendrá esa misma tasa de rotación, movimiento
giratorio de 180. Pero mira esto. No puedo cambiar ninguna de las
propiedades aquí mismo. De hecho, a lo largo de la parte superior dice que indicador de
componentes no es
editable cuando se hereda Esa es esta
casilla de verificación de aquí. Cuando se hereda se debe editar
en los planos padre. Entonces me está avisando, oye, no
puedes cambiar esto aquí. Tendrías que volver a
tus planos de par. Si haces clic aquí mismo, me
envía de vuelta a mis padres. Podría hacer clic en esta
casilla ahora mismo. Y una vez que haga clic en esa casilla, puedo regresar
a mi hijo y oh, ya no
puedo cambiarlo. No obstante, si
vuelvo con mis padres, compila, luego de cabeza atrás, entonces puedo cambiarlo una vez más. Entonces eso es algo que
definitivamente debes , definitivamente
conocer. Algo más a tener en cuenta aquí
es que solo porque tienes una propiedad establecida en tu panel de detalles para
un componente dado, eso no significa que
ese va a ser el valor real de la propiedad
obedecido en el juego. Ahora déjenme
mostrarles un ejemplo de exactamente lo que quiero decir con eso. Voy a cambiar la recogida de mi
hijo aquí para tener una
tasa de rotación de simplemente diez. ¿Bien? Tasa de rotación aquí de diez. Y los padres con
los componentes de movimiento giratorio seleccionados. Voy a
cambiarlo aquí a bien, en realidad lo voy a dejar a los 180. Entonces podrías pensar bien, el peligro de
los padres a los 180, niño lo tiene a las diez. No obstante, si en mi recogida de padres en el Gráfico de Eventos quería
hacer algo en
Event Begin Play. Voy a mantener presionada la
tecla P, clic izquierdo trayendo
Event Begin Play. Y luego traigo a
mi movimiento giratorio en componentes para que pueda
hablar de esto de alguna manera. Y digo con este movimiento giratorio
componentes seleccionados, voy a arrastrar hacia
fuera y voy a alterar esta tasa de
rotación de propiedad. Así que arrastrando fuera de
esa velocidad de rotación, voy a establecer
la velocidad de rotación. Y voy a decir que vamos
a fijarlo en mil. Así que tenga en cuenta lo que
tengo que hacer aquí. El componente de movimiento giratorio, lo
tenía ajustado a 180. Pero al comenzar a jugar, estoy cambiando ese
valor para que sea mil. Aquí en mi camioneta infantil. Tengo que ser diez, puedes decir, bien,
van a ser diez para esto. Pero recuerde, el
hijo va a heredar toda la
configuración de funcionalidad en el padre. Y el padre
ahora mismo está diciendo, oye, cuanto empezamos a jugar, vas a cambiar estás
rotando el movimiento a mil. Entonces el niño va a
respetar eso también. Entonces, si vuelvo a saltar aquí
en mi mapa de prueba de nivel, y en realidad un cono
es una malla muy pobre para ver esa tasa de rotación, voy a cambiar ese
cono muy rápido, volviendo a la malla estática
infantil. Hagamos algo que en realidad
podamos ver
girando alrededor. ¿Qué tal esta pipa? Veremos girar alrededor. Bien, así que ahora si iba a simular eso es
correr el juego, pero en realidad no
saltar y jugar. Se puede ver que ambos están
dando vueltas bastante rápido. En efecto, este
parece que está dando vueltas un poco más rápido
porque tiene esas partículas por todas partes
bailando. Pero efectivamente ambos
están dando
vueltas a un ritmo bastante rápido, el ritmo que hemos
establecido en el padre, es decir 1,000 porque nuestro hijo ciertamente no lo está dando vueltas
a razón de diez. Ahora creo que la clave para llevar
ahí es solo estar atentos, donde se está creando un guión. Solo recuerda si creas
algún guión dentro de tus padres que se
va a propagar, eso se filtra
a tu hijo en cualquier hijo que tu
hijo pueda tener también. Entonces, si quieres tener
alguna funcionalidad que sea única para el niño, solo con guión dentro del hijo, y omita scripting dentro del padre
porque esto va a aplicarse a cualquiera en
la cadena del linaje. Eso lleva a nuestro
siguiente punto aquí. Así como ves que este
padre tiene un hijo, nuestro Plano Infantil
también puede tener un descendiente. Entonces probemos esto. Voy a volver a
mi navegador de contenido aquí. Con nuestra camioneta infantil, ahora
puedo hacer clic derecho
sobre esto y crear una clase de Blueprint infantil. Y voy a llamar a esto
BP subrayado. Llamaremos a este
nieta. Recoger. Si hago doble clic sobre
esto para abrirlo. Y déjame
ponerlo justo aquí. Entonces tenemos padres,
nietos. Podemos ver que la
clase de padres es la recogida de niños, pero nuestra camioneta infantil tiene
una recogida de padres por encima de ella. Entonces mira esto. Nuestro nieta,
pensarías que nuestra tasa de rotación sería la misma nuestra recolección de padres debido a lo que acabo
de describir, nuestro padre va
a anular sobre juego son movimiento giratorio
para ser no 181000, el niño va a
respetar eso también. Y así deberían nuestros
nietos, ¿verdad? Sigamos adelante y
probemos esto. Lugares por aquí. Y deberíamos darle a los nietos una malla diferente aquí también, solo para llevar a casa el
punto de que es diferente. Entonces voy a seleccionar estas mallas
estáticas aquí y vamos a probar estas pirámides cuádruples,
algo así. Y entonces ahora si tuviera que
simular esto, alternativamente, Alt más
S lo simulará. Todos están girando exactamente
de la misma manera. Es solo un pequeño
truco visual. Este
parece que está girando más lento, pero en realidad todos están
girando exactamente al mismo ritmo. Entonces, lo que sea que
configuremos en nuestro padre para guión se va a propagar
hasta el niño, que también se propagará
hacia abajo hasta los nietos. Bien, un concepto más que
quiero demostrar aquí, y tiene que ver con anulaciones
de entrada. Ahora voy a volver a la recogida de
mis padres aquí. Una vez más, la
camioneta de mis padres desciende de la
clase de actor un plano. Los planos de clase actor
no se procesan. Es decir, no disparan eventos de entrada de
teclado
por defecto, sin embargo, podemos hacerlo para que
sí reconozcan que es disparar eventos de
entrada de teclado si los configuramos de esa manera. Así que voy a ir por debajo de
mis valores predeterminados de clase aquí. Y en la
sección de detalles donde
dice entrada, auto recibe entrada. Voy a cambiar esto de
desactivado a jugador cero. Al hacerlo, ahora puedo agregar un evento de entrada de teclado o
un evento de entrada de controlador. Y eso lo reconocerá. Ahora cambiamos esto aquí
dentro de la camioneta de mis padres. Si voy a recoger a mi hijo, valores predeterminados de la
misma clase, y
venimos bajo la sección de entrada. Ahora también lo configura
como ceros de jugador también. Lo mismo en nuestros nietos, vamos por debajo de tus incumplimientos de clase. Esos cambios
se han propagado hasta
el final de la línea. Eso es genial. Bien,
volvamos con nuestros padres. Y en algún espacio vacío aquí, voy a hacer clic derecho
y hagamos algo cuando hagamos el teclado. Vamos a hacer, vamos a hacer el, vamos a hacer la K key
apuntalar el KCI. Bien, fuera de
presionar el KCI, vamos a imprimir cadena. Y lo que vamos
a apuntar a imprimir es simplemente que van a ser padres. Y con nuestra clave K
seleccionada aquí, tenga en cuenta que sobre la derecha
tenemos
comprobada la entrada consumida así como anular el enlace
padre verificado. Ahora bien, lo que va a pasar
aquí cuando juegue, déjeme simplemente dar click sobre
estos tres puntos, irá a la nueva ventana del editor. Configuraré mi opción de depuración
aquí para que sea mi recolección de padres. Observe que puedo elegir
cualquiera de estos tres, pero voy a elegir la recogida de
mis padres. Trae esa ventana. Cuando presiono la
tecla K justo aquí arriba, veo
a los padres impresos solo una vez. Solo una vez. Ahora puede que te estés diciendo a
ti mismo, Qué carajo, pensé que cualquier tipo
de cambios de scripting que hiciste en aparente que
ese cambio de scripting se
va a propagar hacia abajo hasta
el niño y por lo tanto el
nietos también. Entonces, ¿por qué no solo vimos
esto impreso una vez? ¿Por qué no lo vimos
impreso tres veces como en los padres que el
niño y los nietos? Bueno, esto está funcionando
así porque comprueba
nuestro insumo de consumo
aquí. Ahora lo que eso significa es
que otros actores con menor prioridad no
manejarán esta función. Eso significa que simplemente se detendrá
aquí y morirá aquí. Ahora tenga en cuenta lo que sucede
cuando desmarca
esta casilla de verificación de consumo de entrada. Sigamos adelante y volvamos a jugar. Voy a presionar
ese KCI y mirar en la parte superior izquierda de
nuestra ventana de juego aquí, vemos
a padre impreso tres veces. Eso es porque al no
consumir la entrada aquí, estamos permitiendo que esa clave, tecla
K se propague hacia abajo. Eso es para funcionar dentro de nuestro hijo en la
recolección de nietos también. Entonces, cuando se marca la
entrada de consumo, funcionará justo
en el nivel más alto. Con esa desmarca,
ese cambio se
propagará hacia abajo a
cualquier descendiente. Bien, así que vamos a empujar
todo esto un poco más allá. Voy a hacer click izquierdo, Copiar estos nodos
aquí mismo, controlar C. Y voy a ir dentro
de la camioneta infantil Maya. Y dentro de mi gráfico de eventos, sólo
voy a golpear
Control V para pegarlos. Ahora con mi tecla K seleccionada
en el panel Detalles, voy a decir, vamos a
consumir la entrada aquí mismo. Y también voy a cambiar
mi cadena de impresión y
ahora para ser niño. Bien, y sigamos adelante
a jugar pruebas desde aquí. Ahora lo que verán
cuando presione la tecla K, déjenme poner a mi hijo
recoger
aquí mismo como el
que queremos ver. Cuando presiono la tecla K. Ahora, verás
niño, hijo único. Ahora, algo a tener en cuenta aquí. Esto se debe a que
tenemos que nuestro hijo está configurado para consumir insumos, es
decir, los padres
no lo registrarán. Ahora bien, esto está siendo codicioso. Se trata de decir consumirlo
aquí, ignorar a nuestros padres. Ese es para el que queremos
procesar esta clave de entrada. Ahora bien, si lo desmarcamos aquí, desmarcamos consumir entrada aquí en nuestro bp child pickup
y jugar una vez más, vamos a presionar ese
KCI y ahora
vemos parent child. ¿Qué está pasando aquí? Bueno, al no consumirlo, estamos permitiendo que también se muestre para que también se use dentro
de nuestra camioneta para padres. Nuestro padre está diciendo padre aquí en nuestro hijo, estamos
viendo niño. Y recuerden que nuestros nietos
está descendiendo de nosotros, el niño también. Entonces hijo, hijo, pero
en el propio padre, que también está desmarcando,
consumiendo entrada. Es decir padres. Entonces por eso vimos el
resultado que vimos ahí. Bien, entonces ahí lo tienes. El concepto de herencia que
se muestra en Unreal y el
poder que proporciona. Aquí hemos
demostrado que
puedes crear una camioneta para padres. A partir de eso, puede
hacer clic derecho sobre él y crear una recolección hijo que
heredará todas las
propiedades y funcionalidades del padre
dentro del hijo, puede crear una
funcionalidad personalizada. Puede personalizar
algunas de las variables y también algunas de las propiedades de los
componentes. Y luego también demostramos que se
puede mantener el linaje en marcha. Puedes hacer clic derecho sobre
tu hijo y crear un nieto también. Por lo tanto, estos poderosos
conceptos
se pueden usar
a lo largo de tu juego para simplificar varios sistemas que quizás quieras incorporar, como un sistema de recolección de armas, muchas armas para recoger . Todos ellos pueden tener sus propiedades
únicas sobre ellos, pero la funcionalidad pickup, por así decirlo,
seguiría siendo la misma. Chicos que lo harán
todo por este video. Nos vemos en la siguiente.
97. Descripción del marco: Bien, bienvenidos a todos. En este video, nuestro objetivo es
obtener una familiaridad y comprensión de
lo que se conoce como blueprints de
Framework en Unreal, este es un
tema crítico que todos trabajan en Unreal
deberían conocer. Entonces, ¿cuáles son estos planos de
marco? Bueno, son
planos de alto nivel asociados a un proyecto que determinan cosas
clave sobre tu juego, como las reglas de tu juego. Ese tipo de cosas a menudo
están contenidas dentro de un plano del modo de juego, o el jugador en tu juego, también
conocido como el
personaje o el estanque. ¿Controlaste ese
tipo de cosas? Entonces, ¿dónde se encuentran estos planos de
marco? Bueno, cada proyecto
tiene algunos por defecto, y de hecho, algunos han existido hasta este
punto en el curso. Algunos de ustedes han sabido, otros no lo han hecho, pero aquí es donde vamos a revelar todo. Así que puedes encontrar estos planos
de marco aquí arriba en la parte superior derecha de tu editor Configuración, configuración
del proyecto. Aquí, si seleccionas
mapas y modos, tenemos un modo de juego predeterminado. Y tu modo de
juego predeterminado contiene todos estos planos
dentro de él. A menudo esto se derrumba. Se puede ampliar esto. Para que puedas ver dentro de
aquí tenemos un modo de juego. Se Default Pawn Class, una clase HUD, controlador de jugador. E incluso tiraría
la clase de instancia de juego, que está aquí abajo. Todos estos planos
estamos hablando aquí mismo, y estos aquí mismo, estos se conocen como sus planos
marco. Ahora solo
te mostré que podías acceder a estos dentro de la configuración de
tu proyecto, mapas y modos haciendo clic en este botón de
aquí. Alternativamente, si te
encuentras bajo ediciones, también
puedes encontrar la
configuración de tu proyecto allí. Puede acceder a mapas
y modos y encontrar sus
planos de marco también. Alternativamente, si
haces clic aquí
y entras en la
configuración de tu proyecto aquí mismo
puedes ver tu lo que se conoce
como tu plano de modo de juego. Y luego abajo
puedes ver algunos de esos planos de marco en esta sección aquí también. Ahora, cada uno de estos diferentes planos de
marco como el modo de juego, un personaje, un controlador de
jugador. Esos son todos
tipos específicos de planos. Y veremos algunas de esas y cómo
crearlas dentro de los próximos videos en esta
sección del curso. Ahora, solo en este video de resumen de
framework, es importante
señalar que si bien tenemos algunos blueprints, algunos blueprints
framework que se encuentran dentro configuración de
nuestro proyecto
aquí, mapas y modos. Estos son nuestros planos
marco. Estos son planos
que controlan las cosas de nuestro proyecto. Es decir, cada nivel que
creamos dentro de nuestro proyecto. Es posible anular estos planos marco
sobre una base por nivel, sobre una base por masa. Podemos encontrarlo
volviendo a nuestro editor de nivel principal. Si entro por debajo de Ventana y
accedo a la configuración de mi mundo, podemos ver si entro en la sección Modo de juego y hago clic en este
desplegable aquí mismo. Aquí es donde puedo anular mis planos de framework
para un nivel específico. Se encuentran en
los escenarios del mundo. Entonces, si en la configuración de mi proyecto
tenía algún framework, blueprints está configurado para mi proyecto y determinar
cosas como, Bueno, voy a estar controlando
el terceraPersonCharacter lo largo de eso está determinado
por mi Clase de Peón Predeterminado. De hecho puedo
hacerlo para que dentro un mapa específico con
cualquier nivel específico, pueda establecer un
estanque específico que quiero
controlar justo dentro de
ese nivel
que se encuentra en
los escenarios del mundo. Por lo que puedes encontrar
eso no solo bajo la opción de
configuración del mundo de ventanas. También lo puedes encontrar
aquí mismo, dando clic ahí mismo. Y puedes ver si tu configuración
mundial está anulando tu modo de juego
ahora mismo podemos ver que no
estamos anulando nada. Eso es lo que está ahí mismo esa
alerta. Bien, así que una vez más, esa es nuestra descripción general de los
planos de trabajo de marcos, sus
planos de marco contienen estos planos aquí mismo. También lanzaría las instancias del
juego, bueno, estos son todos diferentes tipos de
planos y
contienen información clave
sobre tu juego, como las reglas que determinan
el plano de Gamow, qué personaje que
estás controlando, la Clase Peón, etcétera. Los vamos a estar
explorando más lo largo de esta
sección del curso. Te veremos en el siguiente video.
98. Modo de juego (parte #1): En este video, nuestro
objetivo es conocer la importancia del blueprint del
Modo Juego en Unreal, vamos a aprender qué
hace, cómo crear uno y cómo decirle a nuestro
proyecto que use este activo. Ahora, hemos tenido un plano de modo
juego existente en la configuración de nuestro
proyecto desde el inicio de todo
este curso. Ahora cuando creamos
este proyecto, usamos la plantilla de tercera
persona. Y dentro de nuestra carpeta
Blueprints en tercera persona estaba este modo de juego BP en
tercera persona. Si te encuentras bajo tu
configuración, Configuración del proyecto, puedes ver en la
sección de
mapas y modos que el modo de puerta de enlace
predeterminado asignó automáticamente para ser BP, modo de juego en tercera persona. Entonces ha habido uno
aquí todo el tiempo. Ahora bien, ¿cuál es el plano de
Gamow? Bueno, es una de las
dos clases principales que manejan información
sobre el juego. El otro es el plano del estado del
juego, que es otro
plano marco aquí abajo. Ahora los modos de juego están
diseñados para definir e implementar las
reglas de tu juego. Algunos ejemplos incluyen la
cantidad de jugadores permitidos, jugador genera y responde funcionalidad de transición entre niveles,
ese tipo de cosas. Ahora el modo de juego
también determina otras clases predeterminadas que
usan en tu juego. Ahora para ayudar a conducir a casa
este punto aquí mismo, voy a volver a
mi editor de niveles aquí y hacer doble clic en nuestro modo de juego en
tercera persona. Ahora bien, si ves esto, esto es lo que se conoce como
un plano solo de datos. Pero incluso aquí podemos ver dentro de este modo de juego en
tercera persona, aquí están nuestros otros planos
marco como nuestra clase de
controlador de jugador. Eso es algo que
creamos antes en el curso. Y nuestra Clase de
Peón por Defecto son BP, ThirdPersonCharacter dentro
de tu plano de Gamow. Aquí es donde realmente engañas todo el resto de tu pie,
tus planos de marco. Puedes hacerlo aquí o en la configuración de
tu proyecto. Si lo cambias en un lugar, lo cambias en el otro. Ahora, solo para tu información, puedes abrir lo que se conoce como el editor de planos completo dando clic aquí mismo
si alguna vez ves eso. Pero incluso aquí,
tu
juego o plano en tercera persona, si tienes
seleccionada la clase predeterminada aquí arriba, justo aquí están todos tus diferentes planos
de
framework. Nuevamente, estos están asociados con tu plano de modo de juego. Ahora acabo de mencionar
antes que el plano de Gamow era una de las
dos clases en handle
info sobre tu juego, siendo
la otra el estado del juego. Entonces el modo de juego
solo existe en el servidor, mientras que el juego afirma
ese tipo ahí mismo. Lo puedes encontrar en la configuración de
tu proyecto ahí mismo que existe en el servidor y se
replica a todos los clientes. Bien, vamos a crear nuestro
propio plano de Gamow y luego configurarlo aquí en la configuración de
nuestro proyecto. Entonces para hacer esto, voy a
volver a nuestro editor de niveles. Ahora, antes en el curso
bajo mi carpeta de scripting, creé una carpeta haciendo
clic con el botón derecho aquí, nueva carpeta. Lo llamé Framework. Ahora en realidad creé uno de nuestros
planos de marco antes en el curso es el blueprint del
controlador del jugador. Creé esto durante el evento. Comienza el cursor sobre el video. Si quieres revisar eso. Aunque pronto estaremos
hablando del controlador de jugador, dentro de este directorio
es donde
voy a estar creando un modo de juego
completamente nuevo. Así que haga clic derecho en algún
espacio vacío Clase Blueprint. Y aquí mismo en nuestra clase de padres
escogidos, podemos elegir un nuevo modo de juego. Se le conoce como Game Mode base. E incluso dice que define
el juego que se está jugando, sus reglas, anotación, etcétera. Vamos a hacer click en eso. Voy a llamar a esto nuestro
bp subrayado Modo de Juego. Entonces con eso creado, voy a hacer clic derecho
y guardarlo enseguida. Control plus S también puede
ahorrar eso. Y puedo meter esto en,
en la configuración de mi proyecto. De nuevo, puedes acceder a la configuración de
tu proyecto aquí y aquí. Debajo de los mapas y modos
están el modo de juego predeterminado. Voy a cambiar esto para
que sea mi modo de juego BP. Ahora tenga en cuenta que una vez que haga
esto, mira esto, va a configurar automáticamente el resto de mis blueprints de
framework. Ahora mi terceraPersonpersonaje ya no
está aquí. Ahora estaba usando eso junto con mi controlador de reproductor
que hice antes. Así que voy a querer
ponerlos de nuevo aquí. Entonces voy a cerrar mi modo de juego en tercera persona que
tengo abierto justo aquí arriba. Cierra eso. Y voy a abrir mi modo gay
BP aquí mismo. Así que tenga en cuenta que si cambio
mi clase de peón predeterminada dentro de mi modo de juego BP
que acabo de crear, si cambio eso de nuevo a
BP ThirdPersonCharacter, si lo cambio aquí de nuevo
en la configuración de mi proyecto, bajo Clase de Peón por Defecto, también la cambió aquí. De igual manera, si cambio
mi controlador de reproductor, este es el controlador de reproductor que creé anteriormente
en el curso. El controlador del reproductor bp en el evento comienza
el cursor sobre el video. Si lo cambio
aquí, mi
configuración del proyecto , bp player controller. Y voy y miro dentro
de mi modo de juego BP. Se puede ver que ese cambio
se refleja aquí también. Entonces lo cambias en un lugar, lo cambias en el otro. Voy a seguir adelante y
guardar esto aquí mismo. Ahora tenga en cuenta que este no es el único lugar en el que
podría haber editado toda esta información o incluso
establecer mi modo de juego en sí, Bacchae por editor de niveles. Si tuviera que hacer clic
aquí mismo debajo de este botón de
Planos, puedes ver la
configuración del proyecto, modo de juego. Podría crear un modo de
juego desde aquí. Puedo editar mi
modo de juego desde aquí. Y abajo también
tengo mis diferentes clases de modo de
juego. Así que podría seleccionar, por ejemplo, un controlador de reproductor de aquí. Podría crear un
controlador de reproductor a partir de aquí. Todo tipo de opciones bajo este
botón de Planos aquí arriba. Así es como puedes
acceder a tu modo de juego, editar tu juego,
crear uno nuevo, cambiar cualquiera de los planos de
framework que existe con
dentro de él también. Bien, ahora para un ejemplo, caso de
uso de planos de un
modo de juego. Voy a necesitar un
volumen de disparo y tengo uno al lado
de mi nivel aquí. Pero si quieres
obtener un volumen de disparo o una caja Trigger, lo mismo. Puedes hacer clic aquí mismo. Me gusta venir bajo la caja
básica de Trigger. Adelante y
déjalo caer a tu nivel. Y luego con él seleccionado
en el panel Detalles, puedes establecer la extensión de tu caja. Tengo 100 en todos los ámbitos. Configuré el
grosor de la línea en diez. Y luego también bajo
la sección de renderizado, apagué actor oculto
y juegos para que
realmente pueda ver este volumen
disparador. Ahora dentro de mi viejo blueprint de
juego, voy a crear una variable. Entonces viniendo bajo la sección
variable, haciendo clic en este botón más, voy a llamar a esto niveles. Y encima en el
panel Detalles de aquí arriba, voy a cambiar
mi tipo de variable, al
menos la primera mitad
de la misma para que sea entera. Y luego voy a hacer clic en
este pequeño desplegable justo al
lado de esto porque voy
a cambiar el tipo aquí,
el tipo contenedor para que sea
un tipo de contenedor de mapa. Eso me va a permitir
crear un par de valores clave. Si no viste el video sobre Contenedores variables de mapa, este es un buen momento
para revisar eso ahora, lo contrario
seguiré adelante. Entonces nuestra clave aquí
va a ser de tipo
entero R valor aquí
va a ser del tipo de nombre. Voy a compilar esto y voy a sumar dos pares de valores
clave. Entonces el primero
que vamos a agregar es hacer clic en este botón más. Y voy a establecer este
primero para que sea el nivel uno. Y voy a establecer el
valor aquí para ser mapa de inicio. Y después voy a hacer clic
una vez más en el botón Plus. Diré que el nivel dos
va a estar asociado con un mínimo defecto de subrayado. Ahora bien, si estos me parecen familiares, estos dos nombres de mapas, eso es porque de vuelta en
nuestro contenido inicial, mapas, tengo dos
mapas con ese nombre, un mapa de inicio, uno, valores predeterminados
mínimos. Notarás por carcasa para mapa de
inicio dentro de mi variable hay un
poco diferente, pero eso no importa. No para nombres, no para
quemar tipos de variables. Entonces eso va a
estar todo bien y bien. Voy a compilar y guardar esto muy importante que
lo hagas para este siguiente paso. Y lo siguiente lo que
voy a hacer es
volver a mi editor de nivel aquí. Tenemos nuestra caja Trigger. Asegúrate de tener
esto seleccionado para
nuestro siguiente paso aquí. Y entrando bajo nuestro
botón de plano aquí arriba, vamos a hacer clic en este plano de nivel
abierto. Asegúrate de tener
tu cuadro de activación seleccionado
aquí Abrir Plano de
Nivel. Y vamos a hacer clic derecho
y algún espacio vacío. Vamos a agregar un
evento para ese cuadro de activación para cuando empecemos a
superponerlo, queremos saber si el otro actor era nuestro
personaje de tercera persona. Así que Cast to ThirdPersonCharacter, lo
hemos hecho 1 millón de veces. Y si de hecho fue nuestro personaje de tercera persona el
que nos superpuso, queremos acceder a alguna información dentro
de nuestro modo de juego. Ahora, la forma en que podemos hacer esto
es hacer clic derecho y algo espacio
vacío y escribir
en get Game Mode. Ahora, podrías
pensar, Bien, genial. Ya podemos acceder con
esta nota aquí mismo. Bueno, ¿por qué no me
acaba de sacar de aquí
y ver si puedo acceder a esta variable de niveles
que vive dentro de aquí? Así que sigamos adelante
y probemos eso, ¿verdad? Salgamos de aquí
y escribamos Niveles. Y no veo esa
variable en ninguna parte de aquí. Bueno, eso es porque necesitamos lanzar
al modo de juego rbp para
poder acceder realmente a esa variable de nivel que
vive dentro de ella. Entonces probemos esta
droga fuera de aquí. Elenco al modo de juego BP. Ese es el Gamow
que acabamos de crear. Y así, si tienes
una configuración como esta, ahora puedes arrastrar fuera de tu
panel de Modo de Juego SBP aquí mismo, escribir niveles, y
aquí abajo, puedes obtener tus niveles, tu valor clave pares. Lo vamos a hacer es
arrastrar fuera de aquí. Voy a escribir en bind. Y voy a
decir que cuando
empecemos a superponerse que queremos encontrar mira número dos ahí mientras estamos
hablando de aquí por mí poniendo en el número dos es que queremos
acceder a nivel a aquí mismo, y luego queremos abrir el nombre del mapa
asociado al nivel dos. Entonces ponemos el número
dos aquí mismo. Y voy a arrastrar
fuera de aquí y escribir en nivel
abierto por nombre. Puedes ver que la salida aquí
es un tipo de variable de nombre, ese es este nombre
aquí mismo, valores predeterminados mínimos. Ahora, cuando superponemos
esa caja de activación, llegando a nuestro
viejo plano del juego y diciendo,
oye, modo Jay, tú determinas
las reglas de nuestro juego. Y esta regla
determina que cuando superponga esa caja de activación, voy a ir al nivel dos. Vamos a compilar esto. Vamos a ahorrar. Sigamos adelante y juguemos aquí. Establecer mi objeto de depuración. Claro. Para que veas que ese
guión se
desencadena tan pronto como me superponga esto. Y aquí vamos. Ahí estamos mínimos por defecto. El nuevo nivel.
99. Modo de juego (parte #2): Bien, probemos
otro ejemplo aquí. Esta vez vamos a
intentar responder al jugador. Entonces para esto,
voy a comenzar en mi tercera persona
Carácter Blueprint. Bajo planos en tercera persona,
personaje de tercera persona. Vamos a hacer un poco
de guión aquí primero. Entonces lo primero que
vamos a hacer es traer una llave. Veamos qué
tenemos todos aquí. Hacemos uso de las cuatro claves. Parece que no hemos
hecho uso de eso. Entonces voy a hacer clic derecho en
él algún espacio vacío,
teclear cuatro. Hagamos teclado para. Y vamos a decir
cuando presionemos la tecla F4, simplemente
vamos a
destruir al actor que
significa nosotros mismos. Entonces presionando para,
vamos a destruirnos a nosotros mismos. Genial. Todo eso es necesario
para este siguiente paso. Así que compila y guarda esto. Ahora en nuestro modo de juego bp, dirígete hacia allí. Vamos a entrar
en el Gráfico de Eventos de aquí. Vamos a hacer algo
fuera de la garrapata del evento. Siempre hay que
tener un poco cuidado cuando usas tick de evento. Puedes Bork tu juego
haciéndolo demasiado scrip
off de tick de evento. Pero para fines académicos, estaré usando este hecho. Si vengo bajo los valores predeterminados de clase, voy a decir que nuestro
intervalo de tick va a ser cada 1 s. No
necesitamos estar
tomando cada fotograma. Entonces diremos cada 1 s. voy a hacer clic derecho
y algo de espacio vacío, obtener personaje jugador. Entonces vamos a
arrastrar fuera de esto y hacer reparto a nuestro personaje en tercera
persona. Entonces lo que vamos
a hacer es arrastrar fuera de aquí y escribir en destruido. Ahora bien, si empiezo a escribir
en destruido, tenía esta asignación en destruido. Ese es el que
estoy buscando, un letrero en destruido. Ahora cuando haga clic en
esto, voy a traer dos nodos, un nodo Bind, así
como un eventos personalizados. Voy a describir lo que está
pasando aquí en tan solo un momento va a
enganchar esto así. Y dejaré este nombre
de evento personalizado como tal. Ahora bien, si todo esto
le resulta familiar aquí, esta vinculación, uh, a
este evento personalizado. Esto se debe a que esta es una configuración que
usamos cuando hablamos despachadores de
eventos para escuchar esto en
un
evento destruido en este caso, para nuestro personaje de tercera persona,
nos estamos suscribiendo a nuestro personaje de tercera persona está en el despachador de eventos
destruido. Eso es esencialmente
lo que estamos haciendo. Quizá te estés diciendo a
ti mismo, espera un minuto. En nuestro personaje de tercera persona, no
creamos un
despachador de eventos en absoluto. Bueno, si vuelvo a
mi personaje de tercera persona, si me desplazo hacia abajo hasta
mis despachadores de eventos, en realidad
podré encontrar juego
Event Dispatcher un
despachador para el destruido. Ahora esto se llama cuando
destruyo al actor. Ahora bien, si no ves
nada de esto aquí abajo, es porque
necesitas hacer clic en este ícono de engranaje y
mostrar heredado. Si apagas eso, no muestres heredado,
no lo verás. Este es un despachador de
eventos
heredado heredado de la clase padre. Entonces, si lo enciendes en el juego de despachadores de
eventos
ThirdPersonCharacter, esto onDestroy, esto
se está llamando. Esto está enviando
una señal cuando
destruimos a nuestro personaje
aquí en nuestro modo de juego, lo que estamos haciendo aquí
es que nos estamos suscribiendo, estamos escuchando para que esto suceda
en un evento destruido. Y entonces cuando eso suceda, esto se disparará y
dirá, dile al siguiente nodo
que haga lo que queramos que haga. Ahora lo que queremos hacer
es querer responder, queremos reiniciar
con nuestros jugadores. Entonces una forma en que podemos hacer esto
es hacer clic con el botón derecho y
algún
tipo de espacio vacío en el controlador git player. Y si alcanzamos dentro nuestro
controlador de reproductor genérico aquí nodo y hacemos una búsqueda
para reiniciar el reproductor. Hay un nodo de función relacionado con el controlador de tu reproductor. Esto reiniciará a tu jugador en la ubicación de tu
actor de inicio de jugador. Entonces esta configuración de
aquí mismo será suficiente. Así que vamos a ver esto. Voy a compilar
y guardar en juego. Entonces fueron las cuatro claves la
que nos va a destruir. Y cuando estemos destruidos, vamos a ser respondidos
enseguida en este lugar. Entonces déjame salir corriendo de ese lugar. Las cuatro claves. Yo respondo en ese spot, toco clave foránea, respondo
a ese spot, etcétera. Ahora bien, para aquellos de
ustedes que dicen, Oye, ¿por qué estamos usando
event tick aquí? Bueno, si lo hice, comenzó a jugar un
evento, Sigamos adelante y
demos Evento Begin Play. Empecemos, terminemos el evento, comencemos a jugar un try. ¿Qué pasaría aquí? Y vamos a desactivar esto. ¿Estamos escuchando ahora
para este evento OnDestroy?. En cuanto comencemos a jugar
aquí, Eso es genial. Pero esa escucha de ese evento ya ha sucedido. Entonces esto sólo
va a disparar la única vez que se adhiera a este evento. Al comenzar a tocar, lo estamos escuchando
solo esa vez. Entonces, si presiono la tecla F4 aquí, sí
nos roseta una vez. Pero si
vuelvo a presionar la tecla F4, no pasa. Eso es porque
escuchamos por primera vez al comenzar a
jugar con tick de evento. Recuerden, estábamos
escuchando esto cada segundo. Así es como
configuramos nuestro tick de evento dentro de los valores predeterminados de nuestra clase, bien, algunas
notas del modo de juego para terminar este video. El juego puede tener cualquier
número de modos de juego. Solo tenemos una, sin embargo, configuración en la
configuración de nuestro proyecto a la vez, tu modo de juego principal está configurado en la configuración de tu
proyecto. Pero recuerda, puedes anular qué modo de juego se usa
en tu configuración de mundo. Y lo puedes encontrar
en Configuración
del mundo de ventanas , ahí mismo. Siempre es posible anular el modo de juego en la configuración de tu
proyecto. El
plano del modo de juego es donde
configuras las reglas para tu juego. Cosas como responder ubicaciones, cosas como
a qué nivel viajar a continuación, cosas como el número de jugadores
permitidos, ese tipo de cosas. El Modo Juego no es un gran
plan para almacenar variables que necesitan trasladar datos
de un nivel a otro. Cosas como vidas o puntuación. Ahora bien, esto se debe a
que cuando abres un nuevo nivel, cualquier variable creada y
almacenada dentro del modo de juego, o restablece de nuevo a sus valores
originales. Y quiero
demostrarlo aquí rápidamente antes de que
terminemos este video. Bien, supongamos
que en nuestro modo de juego bp que este es un gran lugar
para almacenar cuántas vidas hay. El personaje puede tener alerta de
spoiler. No lo es, sino que solo
juega bajo nuestra sección de
variables, vas a hacer clic en
este botón más. Voy a llamar a esto vidas. Y por aquí es donde
puedes asegurarte de que
se establece en una sola
variable de tipo entero. Voy a establecer mi
vida por defecto aquí en cinco. El motivo por el que el mío
apareció como cincos porque corté el
video ahí en, recreé esto antes de tiempo. Ahora voy a
compilar esto y ahorrar muy importante para hacer eso. A continuación, lo que voy a
hacer es hacerlo para que dentro de mi personaje BP en
tercera persona, vaya a decrementos cuántas vidas tenemos dentro
de nuestro modo de juego. Así que terceraPersonaPersonaje. Voy a hacer clic derecho. No creo que esté haciendo
nada fuera de la llave seis. Entonces, lo que vamos a
hacer desde aquí es clic derecho en obtener el modo de juego. Vamos a lanzar a
nuestro modo de juego bp. Y una vez que hayamos hecho esto, entonces
podremos llegar al
interior de aquí, averiguar cuántas vidas
tenemos para sostenerlo. Consigamos nuestras vidas y nos
secaremos de esto y
tecleemos decrementos. Esto es una especie de nodo especial en el sentido de que estamos consiguiendo
nuestras vidas aquí. Tenemos cinco, esto
va a decrementar uno, restarle uno, y luego lo va
a hacer retroceder. Así que no hay necesidad de establecer
vidas aquí también. Entonces vamos a ir
54321, etcétera. Eso sería genial. Ahora cuando todo esto suceda, déjame seguir adelante
y compilar esto. Guardar. Recuerda en
mi Plano de Nivel, lo
he hecho para que cuando
superponga esa caja de gatillo, me vaya a transportar al nivel dos. Entonces después de que transporte
a nivel a, mi personaje en tercera persona
va a venir junto con, voy a presionar
la tecla seis y ver cuántas vidas tenemos. Entonces esa va a ser nuestra prueba que vidas altísimas
dentro de nuestro modo de juego. No es una gran idea porque
esas variables se
vuelven a ajustar a su valor predeterminado
cuando cambias de nivel. Aquí vamos. Así que haz clic y juega. Voy a presionar esta tecla seis. Podemos ver, bueno en realidad ya
sabes lo que tengo que hacer, necesito
imprimir esto en la pantalla. Vamos a arrastrar aquí. Imprimir cadena. Imprimamos estos resultados. Así. Compila,
guarda y juega. Establecer mi opción de depuración para que sea
mi terceraPersonCharacter. Entonces ahora cuando presiono la tecla seis, 4321, así me queda una
vida, por así decirlo. Voy a superponer esto. Vamos a ir a otro nivel. Ahora cuando presiono la tecla seis, asumirías
que tengo una vida, no debería bajar a cero, sino 4321, esa variable vidas
se vuelve a poner a cero. Entonces solo un poco
de matiz ahí para entender con el plano del Modo
Juego. Cualquier variable que
establezca dentro de aquí, se
establecerán en, volverán a
sus valores predeterminados si alguna vez cambias de nivel. Bien chicos, eso lo
va a hacer todo por esta discusión sobre los planos
del Modo Juego. Es el blueprint que establece otros blueprints de framework aquí dentro de los valores predeterminados de tu clase. Y es un gran lugar para
establecer reglas para tu juego, como responder funcionalidad. Eso lo hará todo
por este video. Nos vemos en la siguiente.
100. peón: Bienvenida y continuando nuestra discusión sobre los planos
marco. Nuestro objetivo en este
video es conocer qué es un Plano de Clase Peón. Cómo crear uno en
cómo configurar uno para
que nuestro proyecto
sepa usar se crean Pawn Class Blueprint como el avatar predeterminado que
queremos controlar. Entonces hablemos de
qué carajo es un Plano
de Clase
Peón todo un estanque, es un actor que puede ser
poseído y recibir aportes. Es la
representación física de un jugador o
entidad de IA en el mundo. Ahora los peones pueden ser humanoides, igual que nuestros personajes en tercera
persona que hemos estado controlando
hasta este momento en el curso. O puede que no sea humanoide. Entonces podría ser algo así
como un auto o una nave espacial, una bola rodante,
algo así,
que puedas controlar. Bien, sigamos adelante
y creemos una clase de peón. Y podría hacerlo de
inmediato desde aquí dentro de la
configuración de nuestro proyecto, mapas y modos, menú desplegable del modo de juego
seleccionado haciendo clic en este botón más justo aquí
junto a Clase de empeño predeterminada, podría crear el
plano adecuado utilizando este método. Yo sólo elijo una carpeta. Yo querría
guardarlo en etcétera. Sin embargo, no voy a
hacer esto solo para mostrarte cómo podemos crear esto
aquí en nuestro editor de niveles, voy a entrar bajo mi carpeta de framework de
scripting. Y si hago clic con el botón derecho aquí, también
puedo pasar bajo la clase
Blueprint. Y has visto esta
ventana 1 millón de veces, elige una clase de padres. Una de las más comunes
para crear son las clases de peón. El segundo
aquí abajo, y dice, un peón es un actor
que puede ser poseído y recibir aportes
de un controlador. Sigamos adelante y
haga clic aquí el peón. Y voy a nombrar a este
tipo BP subrayado peón. Y luego voy a
hacer doble clic en m2, abrirlo enseguida. Vamos a configurar algunas cosas en el panel Componentes. Entonces lo primero que
vamos a agregar aquí, haga clic en Agregar debajo de componentes
es que agregaremos una malla estática. Y en el panel Detalles, tengo en mente una malla
estática dada. Es HMD es lo
que quiero buscar. Estoy buscando
este HMD genérico. Ahora bien, esto es algo que se encuentra
en la vía de tu motor. Entonces, si no ves esto y quieres seguir adelante en casa,
haz clic en ese ícono de engranaje, haz clic en ese ícono de engranaje, asegúrate de que el
contenido del motor de espectáculos esté activado. Esto va a
parecer un auricular de realidad virtual. Vamos a
controlar uno de esos. Voy a mandar mi báscula aquí, 255.5 con este icono de candado
puesto, solo puedo cambiar uno de estos. Voy a elegir el medio aquí, la escala y, haga clic en F5. Entonces cuando presiono Enter, porque tengo ese icono de
candado puesto por aquí. Al presionar Enter, lo
va a establecer en
cinco en todos los ámbitos. Bien, también voy a
cambiar el material para que
este sea Chrome. Voy a hacer una bola cromada. Así que vamos a,
vamos a dirigir algo
así por ahí. Eso es emocionante. Bien, siguiente componente
quiero agregar aquí. Asegúrate de que tenemos seleccionada nuestra ruta vista
predeterminada. Entonces así es como funciona. El senior por defecto en todos
tus demás componentes que agregues se van
a adjuntar a él. Así que ahora mismo nuestra malla estática está unida a nuestra raíz de escena
predeterminada. Ese es esencialmente un punto en el espacio al que estamos
adjuntando las cosas. Entonces elegiré ruta vista
predeterminada, elija brazo de resorte, brazo de resorte. Piensa en eso como un palo selfie. Vamos a usar esto para conectar un componente de cámara también, lo que podría, con mis componentes
armados por resorte seleccionados. Voy a agregar y adjuntar
una cámara componentes, no cámara Sony, solo cámaras de cámara viejas
simples. Un buen nombre. Aceptaré eso para que podamos ver cámara está unida
a nuestro brazo de resorte. Para la cámara, voy a establecer la ubicación para que esto sea 100. Déjame alejar mis viewports. Puedo ver que la rotación vamos
a establecer sea negativa 20. Y si selecciono mi brazo de resorte, se
puede ver ahora mismo que si tuviera que girar
mi brazo rociador alrededor, presionando la barra espaciadora, la cámara va
a ir junto con ella. Ahora la razón por la que esto está
compensado, no está apegado
a esa línea roja. La cámara de brazo de resorte, que está determinada
por esta longitud de brazo. Por cierto, podrías
poner eso
más, más lejos, más cerca,
voy a poner eso en 300. Ahora bien, la razón por la
que esto no
está unido a esa línea roja justo ahí es porque tengo la altura Z establecida para ser
100 y la estamos angulando hacia abajo negativos 20 grados
en la dirección y. Por último, pero no menos importante,
vamos a agregar un componente de movimiento flotante Move are floating
pond movement. Y dice en nuestra
pequeña punta de herramienta aquí, este es un
componente de movimiento que proporciona un movimiento simple
para cualquier Clase de Peón. Yo digo que vayamos con él, sí, ya que vamos a necesitar eso para mover
este auricular gigante alrededor. Ahora, aquí voy a hacer trampa. Voy a copiar y
pegar algún script de nuestro ThirdPersonCharacter en el Event
Graph de nuestros pons. Así que tengo mi terceraPersonCharacter
abierto por aquí. Si te olvidaste o ese tipo
es planos en tercera persona. Ahí está tu
terceraPersonaPersonaje. Entonces, ¿qué
quiero robar aquí? Bueno, quiero robar. Los controles de movimientos. Entonces donde dice
movimiento, entrada, gamepad y mouse,
voy a hacer click izquierdo, arrastrar por todos estos Control C. Voy a entrar en
mi gráfico de eventos de estanques. Voy a eliminar todos
estos y hacer Control V para
pegarlos aquí. Y luego voy a volver
a mi terceraPersonaPersonaje. Y quiero
poder mirar a mi alrededor. Entonces esta va a ser nuestra mirada alrededor de los controles para el ratón. Estoy usando un ratón. Tienes gamepad. Mira a tu alrededor los controles por aquí. Voy a robar
la entrada de la cámara, las
entradas de mirada alrededor para el ratón. Clic izquierdo arrastrar, Control C, vuelta en mi estanque, Control V. Ahora, eso está todo bien y bien. Esto me permitirá
mirar a izquierda y derecha. El guiñada y el terreno de juego aquí
me permitirán mirar hacia arriba y hacia abajo. Sin embargo, necesito
cambiar algo vuelta en mi clase por defecto
de mi estanque aquí. Entonces en mi clase los valores por defecto, peón, estoy buscando un par
de casillas para marcar, y están justo aquí
arriba donde
dice usar el tono de
rotación del controlador. Quiero asegurarme de
que eso esté comprobado. Donde dice usar mandibula de rotación del
controlador. Quiero asegurarme de
que eso
también se verifique para que pueda lanzar mi cámara hacia arriba y hacia abajo
y también mirar a izquierda y derecha. Bien, con todo esto hecho, voy a compilar y guardar. Y ahora para que
realmente pueda probar esto,
necesito colocar mi peón BP
aquí para que sea mi Clase de Peón
por defecto. Ahora podría hacerlo aquí. Pero solo para presumir
diferentes técnicas, voy a volver a
mi editor de niveles aquí. Tengo este plano
de botón justo aquí arriba. Entonces voy a seleccionar que mi modo de juego actual
es mi modo de juego b p. Déjame bajar a mi carpeta de framework
de scripting. Puedes ver en el último video
que creamos el modo de juego BP, dando click justo arriba aquí. Ese es actualmente mi modo de juego. Entonces, si elijo en este
desplegable de aquí, peón actualmente, ThirdPersonCharacter,
seleccionemos una nueva Clase de Peón. Y voy a
elegir mi b p upon. Entonces voy a
ponerla ahí mismo. Puedes ver si vuelvo aquí,
vengo justo debajo de aquí, eso ahora
se ha puesto como mi nuevo estanque. Si entro en el modo de juego ácido sí mismo haciendo doble clic sobre él. Puedes ver aquí ya se
ha cambiado
mi Clase de Peón por Defecto. Y también, si vas a la configuración de
tu proyecto, puedes ver que tu Clase
de Peón ha sido cambiada aquí también. Entonces lo cambias en
cualquiera de esos tres lugares. Lo cambia en
los otros lugares. Entonces ahora, cuando vaya y haga clic en
el botón de reproducción aquí, no
voy a aparecer como el personaje de la tercera persona aquí
mismo en el jugador inicia actor, voy a engendrar como
su gigante auricular VR. Sigamos adelante y
demos una jugada a esto. Déjame volver a mi
estanque aquí también. Para que veas que este
guión se dispara. Así que voy a hacer clic en reproducir aquí mismo. Ahí están mis auriculares gigantes. Permítanme seleccionar mi objeto de depuración
como mi generado en BP pond. Para que veas que todo esto está
disparando continuamente. El eje de entrada gira a la derecha. Déjame acercarme un poco a
esto. Estos están
disparando continuamente. eje de entrada se mueve hacia
adelante y hacia atrás, se mueve a derecha e izquierda Los eventos de Axis se disparan
continuamente así. A ver si puedo moverme. Podemos ver que estoy
puedo mirar alrededor y mantener pulsado el botón
derecho del ratón. Izquierda y derecha. Eso es guiñada, cabeceo hacia arriba y hacia abajo. W a S. Andy, parece
que me estoy moviendo. Basta con encontrar que ahora tenemos un
peón con el que podemos jugar. Y así ahí lo tienes. Si tienes estos
componentes en este guión, puedes tener planos sobre
una también
puedes tener planos sobre
una clase para controlar
en tu juego. Por supuesto, debes
tenerlo configurado dentro de tu modo de juego, configuración de
tu proyecto en ese espacio
predeterminado de Pawn Class. Bastante genial. Bien,
en la segunda parte aquí vamos a crear un plano de clase de
caracteres. Una clase de personaje
deriva de una clase de peón. Los veremos a todos
en el siguiente video.
101. CARÁCTER: Bien, bienvenido de nuevo. En este video, nuestro
objetivo es crear un
plano de clase de personaje desde cero. Ahora la clase de personaje es una extensión de la Clase de Peón, y es un tipo especial de peón que tiene la
capacidad de caminar por ahí. Pensé que lo incluiría
aquí dentro de nuestro marco Discusión de
Blueprint
porque dentro de la configuración de nuestro proyecto, donde se pueden encontrar todos nuestros
planos marco, así
como dentro
de nuestro modo de juego, donde los
planos del marco se pueden encontrar en ranurado en cualquiera o. Tenemos un espacio para
Default Pawn Class, y ahí es donde un blueprint de clase de personaje se
puede ranurar en un estanque o un
personaje puede ser ranurado porque el personaje
deriva de la Clase de Peón. Ahora para ayudar a llevar a
casa este punto, vamos a volver a
nuestra carpeta de framework de scripting. Y vamos a hacer clic derecho
en algún espacio vacío donde vamos a
crear una Clase Blueprint. Y aquí mismo en nuestra ventana
pick parent class, podemos ver si
elegimos un personaje. Dice que un personaje es un tipo de estanque que incluye la
capacidad de caminar por ahí. Y si nos encontramos bajo
son todas las clases sección echa un vistazo a la jerarquía de
diferentes clases de blueprint. Debajo de la clase de actor. Podemos encontrar, acabo de expandir
ese triángulo ahí. Podemos encontrar la Clase Peón. Peón hereda del actor. Y dentro de aquí
podemos ver que la clase de personaje
hereda del peón. Voy a elegir
personaje justo aquí arriba. Voy a nombrar a este personaje de subrayado
BP, subrayado femenino. Entonces vamos a hacer doble clic
sobre esto para abrirlo. Y se puede ver que tenemos
un poco de trabajo que hacer aquí porque no vemos
nada en nuestra ventana gráfica. Así que sigamos adelante
y comencemos. Lo primero que quiero hacer
dentro de nuestro personaje, plano
femenino sobre
sus valores predeterminados de clase. Quiero entrar bajo el panel
Detalles y donde dice usar el controlador de
rotación de guiñada. Quiero desmarcar esto. Nota. Si se dejara verdadero, nuestro
personaje
automáticamente estaría orientado en la dirección que
estamos buscando. Ya sabes cómo puedes hacer
pivotar esa cámara alrededor de tu personaje. Bueno, si
dejaste eso cierto, tu personaje
automáticamente estaría mirando también en esa
dirección. Quiero desmarcar eso
porque quiero que nuestra cámara se vea
cara a cara
con el personaje. Puedes experimentar con
eso si quieres, cuando hayamos terminado con todo
este proceso. Bien, voy a
seleccionar nuestra malla a continuación. Y encima en el
panel Detalles necesito ranura en una malla esquelética. Sigamos adelante y zapatos. Tenemos SKS, Manny, que es la versión masculina que
voy a hacer S, K, M, Quinn. Va a ser la versión femenina la
que va a cargar aquí. Ahora mientras eso se está cargando,
y también voy a slot en una clase de animación también. Entonces bajo clase de anime, voy a estar
buscando a ABP Quinn. Y ya verás a Quinn
animando. Además, necesito poner un poco
mi malla de personajes
aquí abajo. Entonces voy a
establecer la ubicación,
la ubicación z para que
sea negativa 87. Voy a ser súper
preciso con esto. Eso va a ser lo suficientemente bueno. La rotación que voy a
establecer para que sea negativa 90. Esta flecha azul
indica hacia adelante. Entonces quieres tener a
tu personaje mirando hacia adelante así así. Bien, a continuación con nuestro Componente
Capsule seleccionado, voy a agregar componentes de brazo de
resorte. Un componente de brazo de resorte es esencialmente como un palo selfie, aunque hay una configuración
o dos que pueden ser muy útiles para controlar
cosas sobre tu cámara. Voy a dejar
ese nombre ahí como brazo de
resorte y otra vez
en el panel Detalles, quiero encontrar debajo de la
configuración de la cámara aquí mismo, Usar Rotación de Control de Peón. Quiero asegurarme de
que esto esté comprobado. Ahora esto va a hacer
que cuando mantengamos pulsado el botón derecho del ratón en
nuestro juego y giremos alrededor, la cámara va
a girar alrededor, que es algo
que sí queremos. Para que puedas jugar
con esa configuración tan pronto
como hayamos
terminado con este video. A continuación, quiero seleccionar, con mis
componentes de brazo de resorte seleccionados aquí. Quiere agregar una cámara. Hoy en día, la cámara de Sydney,
pero solo una cámara normal, y debería estar
sangrada así. La cámara de esta manera está
unida a tu brazo de resorte, está esencialmente
unida al extremo de tu selfie stick aquí para que
puedas ver mi brazo de resorte. Si tuviera que cambiar la longitud del brazo
objetivo, la cámara se
ajustaría con él. Establezca eso de nuevo a su
valor predeterminado de 300 por ahora. Entonces con mi cámara seleccionada, no
hay nada
que quiera cambiar aquí, aunque voy a señalar dentro de aquí que
si quisieras, podrías cambiar algo como tu campo de visión ajuste. muchos usuarios les gusta
jugar con eso. Juega con eso, encuentra un campo de visión
que sea de tu agrado. A continuación, voy a cambiar mi
componente de movimiento de personaje aquí. Tengo uno dentro de
aquí que se llama Orientar Rotación al movimiento. Ahora hay muchos parámetros diferentes dentro
del
componente de movimiento de tu personaje que
controlan las propiedades de movimiento de tus personajes
. Si busco esta audiencia. Ese es el que estoy buscando, Orient Rotation dos movimientos. Yo sí quiero comprobar esto. Al verificar esto, voy
a orientar que es rotar el personaje para moverlo en la dirección que estás
tratando de ir. Sin eso, va a ser
para que tu personaje
pueda estar pareciendo que está caminando en una
dirección mientras en
realidad se mueve en
otra dirección. Entonces esa es una buena para
asegurarte de que te han comprobado. A continuación, si
salto a nuestro gráfico de eventos, puedes ver que aquí no
tengo ningún guión que vaya a controlar
cómo se mueve mi personaje. Voy a hacer trampa en interés
del tiempo. Entonces voy a
eliminar estos nodos. Vamos a saltar a
nuestro terceraPersonpersonaje y robar algunos nodos de ahí como hicimos
en el último video. Entonces, si no tienes
ThirdPersonCharacter
abierto bajo personaje en tercera persona
, planos hacen doble clic en
tu personaje en tercera persona. Dentro de aquí,
vamos a robar nuestros controles de movimientos aquí
mismo, todas estas cosas, click izquierdo, arrastrar, controlar C, entrando en nuestro personaje, hembra, control V para pegar. Esto va a controlar nuestro personaje son los movimientos hacia adelante
y hacia atrás, así
como nuestros movimientos de izquierda
y derecha que vienen bajo nuestro
personaje de tercera persona. Una vez más, ahora voy a robar mi ratón de entrada de cámara. Si tienes un gamepad con el
que también quieres jugar
tu juego, podrías considerar
robarte eso. Sólo
lo estoy controlando con el ratón, así que voy a hacer click izquierdo
y arrastrar aquí mismo, controlar C, entrando bajo
personaje femenino, control V. Y con todo eso
hecho, sigamos adelante
y compilemos y guardar. Bien, a continuación,
vamos a ranurar en nuestro personaje bp hembra como
nuestra clase de estanque predeterminada. Así que vamos a saltar de nuevo a
nuestro editor de niveles aquí. Y quiero poner esto en la configuración del
lado de nuestro mundo. Voy a anular
nuestra configuración mundial,
nuestra configuración del proyecto en este momento. Estoy usando mi modo de juego b p. Si utilizo este modo de juego
para todo mi proyecto, esto va a determinar los planos de marco
utilizados para cada nivel,
cada mapa de mi proyecto, a menos que los anule
en mi configuración del mundo. Entonces ahora mismo la
configuración de mi proyecto está diciendo, Oye, si haces clic en el botón Reproducir, vas a estar
usando tu estanque BP. Y eso lo podemos ver
por mí jugando. Ahí están los auriculares VR de mi hijo. Ese es mi estanque BP
que creamos aquí dentro de nuestra carpeta
marco, BP pond. Quiero decir que soy
un escenario mundial. Voy a
cambiarlo por sólo este mapa. Esto anulará
la configuración del proyecto. Ahora para hacer esto, voy a elegir un modo de juego
diferente dentro de la configuración de mi proyecto. Actualmente tengo
mi modo de juego BP. Entonces voy a decir por nuestra configuración
del mundo. Y si no tienes esto abierto, puedes pasar por debajo Ventana y activar la configuración de tu
mundo ahí mismo. Eso traerá en este panel. Para nuestro modo de juego
aquí, voy a usar, diré BP, modo de juego en
tercera persona. Y aunque normalmente tenemos al
personaje
en tercera persona ranurado como el personaje para
rodar con relojes
haciendo clic en Reproducir, ahora
controlamos el
personaje de tercera persona. En lugar de nuestro peón bp, puedo decir en cambio, optemos por usar nuestro personaje
bp femenino. Sólo para mostrar otra forma
de enmarcar algo aquí, podría elegir algo
de la lista desplegable. Sin embargo, aquí podría seleccionar mi personaje
BP femenino. Y con ese seleccionado, simplemente haga clic en esta
flecha de aquí para usar el ácido
seleccionado del navegador de contenido. Y ahora con esa ranura en, podría controlar mi
personaje femenino BP, personaje femenino. Y puedes ver que me estoy moviendo en la dirección que mi
personaje está orientando, o mi personaje está orientado en la dirección
que quiero mover. Y también soy capaz de correr
hacia la cámara como así mostrar
un poco de mejora. Algunas de esas casillas de
verificación, casillas de verificación simplemente me dejaron
salir de aquí rápidamente. Si tuviera que volver
a mi personaje BP, componente de movimiento de personaje
femenino y desmarcar, Orientar Rotación a movimientos. Y luego haz clic en Reproducir. Ahora mira esto. Cuando me muevo, mi
personaje hace esto. No se orientan a la dirección que
estoy tratando de mover. Así que voy a seguir adelante y poner ese componente de
movimiento de carácter atrás. Sigamos adelante y
verifiquemos eso. Siguiente. Tenga en cuenta que en nuestro componente de brazo de
resorte, habíamos verificado esto. Necesito deshacer el filtro
de búsqueda ahí. Habíamos comprobado a este joven
al establecer la rotación. Si desmarca eso y juego, y mantengo pulsado el botón
derecho del ratón, lo que estoy
tratando de hacer ahora mismo. En realidad no estoy rotando
alrededor de mi personaje. En cambio, la cámara solo
se mueve y gira por sí sola para enfrentar
cualquier dirección en la que se mueva mi
personaje. no necesariamente me gusta,
así que voy a volver a
comprobarlo. Y finalmente, si
recuerdas de vuelta en nuestra clase los valores predeterminados lo habíamos hecho para que desmarcamos
usar la rotación del controlador. Ya si tuviéramos ese
cheque, si lo hicimos. Y luego seguimos
adelante y jugamos, voy a correr por ahí
usando WAS y D. Se puede ver cómo se obtiene este tipo de resultado
aterrador, que
se ve terrible. Puedo girarlo así. Y mi personaje
va a patinar y simplemente de cara en cualquier
dirección que esté buscando. Realmente no me gusta tanto. Y así es por eso que prefiero tener eso descontrolado también. Bien, ahí lo tienes. Hemos creado un plano de
clase de personaje desde cero. Con eso creado,
puedes seguir adelante y colocar en cualquier personaje o estanque en tu defecto en
clase y cualquier
modo de juego que hayas elegido. Puedes ver aquí en
nuestra configuración del mundo, estamos anulando el
modo de juego solo en este mapa, solo este mundo que hemos
establecido en la configuración de nuestro proyecto. Si no tuviéramos nada atrás
aquí en nuestra configuración mundial,
la configuración del proyecto
determinaría Clase de
Peón que
se usaría en este mapa. Eso va a hacer para
ofrecer este, chicos, nos vemos en la siguiente.
102. Controlador de jugador: Bienvenida. En este video, nuestro objetivo es
conocer el papel del
plano
del controlador del jugador en la configuración general de
nuestro proyecto de juegos. Y también para explorar algunos conceptos de
scripting
que a menudo se asocian con planos de
controlador de jugador. Ahora bien, si iba a
sumergirme en mi configuración, mi configuración de proyecto, en
nuestra sección de mapas y modos. Si ampliamos nuestro modo de
juego selectivo aquí mismo, podemos encontrar la clase de
controlador de jugador. Ahora, una vez más, podemos ranurar
en un controlador de jugador aquí o dentro de nuestro modo de puerta de enlace
predeterminado. Si cambiamos algo dentro de nuestro modo de
puerta de enlace predeterminado, ese es uno de estos
blueprints de framework aquí mismo. También lo cambiará dentro
de la configuración de nuestro proyecto. Entonces el modo de juego es el que determina la detención
del marco. Los planos lo cambian en
un solo lugar, como aquí. Lo cambiará en tu modo de
juego y viceversa. Si lo cambias aquí
en tu modo de juego, como un controlador de jugador,
lo cambiará en la configuración de tu proyecto. Por lo que la
clase de controlador de jugador va a ser el foco de este video. Ahora aquellos de ustedes que han
estado jugando a lo largo de todo el camino desde el
inicio de este video, tal vez recuerden que
hemos creado un plano de
controlador de reproductor. De hecho, en el video titulado los
eventos comienzan con el cursor sobre. Creamos el controlador de
reproductor bp. Y la razón por la
que creamos que hay para que pudiéramos activar y hacer clic en eventos y también
mostrar el cursor del mouse. Hay algunas
cosas específicas un
plano de controlador de jugador en las que nos
sumergimos antes en el curso
solo para mostrarlo ahí. Pero ahora, aquí está la
parte en la que explicamos qué carajo es incluso un
controlador de jugador. Lo que es de propósito general está en el marco de los planos de Unreal
Engine. Ahora, para entender mejor
qué carajo es un plano de controlador de
jugador en Unreal. Considera este escenario. Considera un juego como
Lego Star Wars, donde podrás controlar a
toda una serie de personajes, pero solo uno a la vez. Tú como jugador
tienes algunas ganas, algunas cosas que te
gustaría hacer con tu personaje y
el juego en sí. Tú, el jugador
empuñas un controlador. En este caso, diremos
que es este mando Xbox. Ahora estás jugando al juego
y estás controlando solo un personaje a la vez. Digamos que estás empezando
como Yoda aquí. Puedes presionar el
botón a para hacerlos saltar. Puedes presionar el
botón X para que haga que balancee su sable de luz, etcétera. Ahora sin embargo,
digamos que Yoda muere. Lo siento, Yoda, te has ido. Ese personaje se ha ido. Ahora, tu controlador de jugador, que está representado por
este controlador real, posee un nuevo personaje, en este caso Anakin. Ahora, de nuevo, con Anakin, puedes presionar el botón
a para saltar, el botón X para empuñar su
sable de luz, etcétera. Pero entonces, oh, y puedo morir. Entonces esa
clase de personaje se va adiós. Sin embargo, el
controlador de tu reproductor sigue vivo y sigue
apegándose a nuevos jugadores. En este caso, ahora
estás controlando cuenta Du Gu fueron una vez más, puedes presionar el
botón a para saltar, presionar el botón X para balancear
su sable de luz, etcétera. Y tal vez quieras incluso hacer algo como acceder
al menú de pausa. Ahora bien, si tuvieras que construir
parte de esta funcionalidad dentro del plano de
clase de personaje, ¿qué pasa si tu
personaje está muerto? Como por ejemplo, ¿y si estuvieras de
vuelta aquí controlando a Yoda? Y esa funcionalidad
para pausar el juego existía dentro de tu plano de clase de
personaje Yoda. Bueno, una vez que esté muerto, no
habría forma de
pausar el juego. Los planos del controlador del jugador existen a lo largo de tu sesión de juego Y puedes pensar en un controlador de
jugador como
las cuerdas de títeres utilizadas para controlar tu títere,
tu clase de personaje. Entonces, cualquier tipo de funcionalidad
compartida que puedas tener entre clases de
personajes o
cualquier funcionalidad que quieras tener para ti, el propio jugador,
como pausar el juego o interactuar
con una pantalla de menú. Ese tipo de funcionalidad
que querrías construir en
el plano de tu
controlador de reproductor. Entonces, en definitiva, cosas para recordar
con un controlador de jugador, los controladores de
planos son actores
no físicos que pueden poseer un estanque o una clase
derivada de estanque como un personaje. Por defecto, existe una relación
uno a uno entre controladores, un controlador de jugador y
un peón, también conocido como un personaje. Cada controlador controla
solo un estanque a la vez. Y los controladores de reproductor se utilizan
mejor para implementar funcionalidad centrada en el
usuario
, como abrir un menú de pausa
o una pantalla de inventario. O para funciones de
personajes compartidos, como balancear un sable de luz si todos tus personajes pueden
hacer ese tipo de cosas. O saltando, si de hecho todos los personajes posibles también
pueden saltar, cualquier tipo de funcionalidad
específica de personaje, ese tipo de funcionalidad debería existir dentro de tu estanque o personaje plano de clase en sí y no el controlador del reproductor. ¿Bien? Si aún
no tienes un controlador de jugador Blueprint construido desde antes
en el curso. Puedes crear uno ahora
haciendo clic con el botón derecho. Controlador de
reproductor de clase Blueprint. Y le nombramos a ese tipo
bp player controller. Y una vez más, quieres meter esto en tu framework. La forma en que puede hacerlo es
bajo la configuración de su proyecto, que se puede acceder
aquí Configuración, configuración del
proyecto y en mapas y modos, puede insertarlo allí mismo. Alternativamente, en tu
modo de juego, el plano en sí mismo. Y una vez más, tenemos el BP Game Mode
dominando nuestro proyecto aquí. En este activo en sí, el plano del modo juego. En el lado derecho, puedes colocar el
controlador de tu reproductor ahí mismo. Lo cambias aquí, también
lo
cambiarás en la
configuración de tu proyecto. También de vuelta en tu editor de niveles, si te encuentras bajo tu botón de
Planos aquí mismo, y te expandes
en Configuración del proyecto, Modo de
juego, controlador de jugador. Aquí puedes editar tu controlador de reproductor
actual, crear uno nuevo o seleccionar uno existente. Ahora bien, si abres tu controlador de reproductor
bp aquí, antes en el curso, teníamos clase predeterminada seleccionada dentro de nuestro controlador de reproductor bp. Y aquí es donde verificamos
la capacidad de mostrar un cursor del mouse para habilitar
eventos de clic y para habilitar eventos de
mouseover. También podemos habilitar eventos
táctiles. Entonces, hay algunas cosas muy
específicas del juego, formas de interactuar
con tu juego y tus menús que se encuentran dentro del plano de tu
controlador de jugador. Ahora, antes de que comenzara este video, seguí adelante y creé
alguna funcionalidad dentro de nuestro
controlador de reproductor bp aquí, quería mostrar
cómo podíamos escribir alguna funcionalidad de personaje dentro de nuestro controlador de reproductor. Ahora recuerda, cuando
estás jugando un juego, eres el
controlador de jugador se conecta a cualquier peón que
sea que estés controlando peón o personaje
cada vez que lo hayas
configurado dentro de tu
Default Clase Peón. Ahora mi guión aquí es que
lo estoy haciendo para que cuando
presiono el botón Arriba, esté obteniendo mi personaje de
jugador actual, el que estoy
jugando y
simplemente estoy lanzando el personaje. Ahora el objetivo aquí es un
personaje, no un estanque. Entonces esto sólo funcionará para personajes que
estoy controlando. También podría haber llamado a
esta función de salto que también existe dentro de mi blueprint de
clase de personaje también. Pero yo quería hacer
este personaje de lanzamiento a porque es genial. Y b, porque muestra
otra función específica de carácter que podríamos usar. Debes conseguir el
personaje del jugador y arrastrarte si eres
el primero para poder encontrar esto. Y todo lo que va
a pasar aquí es cualquier personaje que
esté poseyendo aquí. Si presiono la tecla arriba aquí, mi plano del controlador del reproductor, simplemente
voy a lanzar cualquier personaje
que esté controlando hacia
arriba en el eje z
usando ese valor. Esto es como
un súper saltos. Entonces, si solo tuviera que jugar
aquí, configuraré mi depuración. Objetar a mi controlador de
jugador de préstamo. Trae de
nuevo a mi personaje. Tengo algunos personajes más aquí
afuera que usaremos en breve. Entonces ahora cuando presiono la tecla
arriba en mi teclado, eso es como un súper salto. Así que esto de hecho
prueba que puedo escribir
funciones específicas de
caracteres aquí dentro del plano de mi
controlador de reproductor. Bien, ahora considera
este escenario vuelta en mi editor de niveles. He colocado a dos hembras de
personajes BP más en mi propio nivel. Simplemente les
renombro personaje femenino verde y un
personaje femenino rojo. Y simplemente cambio el
cero material para que uno de
ellos sea verde. Y lo hice seleccionando
la malla de caracteres, cambiando el elemento
cero a verde, y seleccionando el otro, seleccioné la malla de caracteres y cambié el elemento cero para leer. Y luego con cada uno
de estos seleccionados, hice esto uno a la vez. Entré en mi Plano de Nivel y creé este
guión aquí mismo. Hay una referencia a
mi personaje o femenino. Creo que esa es la correcta. Necesito actualizar esto. Voy a hacer clic derecho sobre
esto y refrescar ese nodo. Ahí está el rojo,
ahí está el verde. Tú, siempre y cuando
los tengas seleccionados en tu nivel, como tu rojo aquí mismo, puedes volver al Plano de
Nivel, mantener presionada la
tecla Alt y hacer clic con el botón izquierdo. También podrías hacer lo mismo con
el verde femenino. Y anote mi configuración aquí. Si traigo un nodo get
player controller, puedo encontrar nodos, nodos de
función para
despreposeer un objetivo y luego
poseer otro objetivo. Así que mira este
agarre que tengo pasando aquí dentro
de mi plano de nivel. Cuando presiono la tecla tres, la primera vez, vamos a disparar
fuera de esto una salida. En cuyo caso vamos a
conseguir nuestro controlador de reproductor. Ese es el controlador de
jugador estemos usando en ese momento, nuestro controlador de jugador bp, vamos a y poseeremos cualquier objetivo que
estuviera controlando. En este caso,
será poco atractivo. En mi entorno mundial, actualmente
estoy desove
en una hembra de personaje BP. Será poco preposeedor de
este personaje femenino. Entonces se le diga que posea. Este controlador jugador
transferirá la posesión sobre dos. Mi personaje BP, rojo femenino. Entonces la segunda vez que
presione la tecla tres, vamos a disparar fuera del pin de salida B porque
el
flip-flop va a, luego B que a que B.
Así que la segunda vez que presione la tecla tres lo hará
disparar fuera de la viga. Vamos a, estoy poseído cada vez que ahora estamos controlando, que en este caso
será el personaje rojo. Y luego
transferiremos la posesión al personaje femenino verde. Entonces a nuestro controlador de jugador
se le está diciendo y poseer un personaje
y poseer uno nuevo. Así que vamos a hablar de esto arriba
en la parte superior izquierda aquí. Voy a hacer clic en Reproducir. Trae nuestro
objeto de depuración de nuestro mapa de prueba. Y entonces échale un vistazo. Entonces, si también presiono el botón
Arriba ahora mismo, tengo esa funcionalidad de súper
salto construida dentro de mi personaje de
jugador. Eso es súper capacidad de
patear saltando. Eso se transferirá a
cualquier personaje que posea. Entonces estoy presionando la tecla arriba. Bien, ahora
voy a presionar la tecla
tres mientras está a mitad de vuelo. He transferido la posesión a mi personaje rojo aquí. Echa un vistazo a esto. Si presiono la tecla arriba aquí, funcionalidad de
mi controlador de reproductor transfiere y
puedes ver mis otras, vuelo de
algodón, están
presionando las tres teclas. Presiono la tecla F3. Cuando estaba en vuelo, he
transferido la posesión por el controlador del jugador ahora está controlando mi
personaje femenino verde. Y por supuesto esa
funcionalidad que construí dentro de mi controlador de
reproductor bp también
se transferirá. Entonces, si presiono la tecla arriba mientras controlo
el carácter verde, también
puedo Super saltar. Entonces esa es una demostración que
muestra que dentro de mi controlador de
reproductor bp, puedo construir
funcionalidad para cualquier funcionalidad que quiera que
todos los personajes compartan, todos los estanques para compartir. No obstante, tengo una
funcionalidad muy específica para un
personaje o peón individual. Ese tipo de guión
sería lo mejor para poner dentro del
estanque o personaje individual. Bien, ahora también
mencioné que construir algo como interacciones de
pantalla, pausar el juego, etcétera, ese tipo de cosas es
genial para construir dentro de un
plano de controlador de jugador porque peones, personajes que pueden
morir controladores de jugador existe a lo largo de
toda tu sesión de juego. Así que voy a subir un
poco de espacio vacío aquí. Voy a hacer clic derecho. Voy a hacer una búsqueda teclado y
hagamos algo cuando presionemos la tecla P, P. Y voy a hacerlo para
que cuando presione la tecla P, vaya a traer
un nodo flip-flop. Entonces, la primera vez
que lo presionemos disparará de un. la segunda vez que
lo presionemos rodará en un latido. Y todo lo que quiero hacer aquí
es establecer juego, pausado. Control C, control V. Así que la primera vez
que pulsamos la tecla P, queremos configurar el
juego para que se padezca. La segunda vez que
presiona la tecla P. Queremos configurarlo para que sea unpause. Ahora esto es muy importante. Compruébalo con tu tecla
P seleccionada aquí. Debe
asegurarse de marcar esta casilla para ejecutar cuando se pausa. Porque si dejamos
esto desmarcado, podrías presionar
la tecla P para pausar el juego. Pero debido a que el juego está en pausa, no reconocería
presionar de la tecla P para volver a ponerla en pausa. Entonces tienes que asegurarte de que eso esté marcado si quieres poder usarlo para
pausar y deshacer la pausa. Entonces mira esto. Estoy jugando el juego. Puedo correr por ahí, presionar la tecla P, el juego está congelado. Al presionar de nuevo la tecla P
, la descongelará. Presionaré las tres teclas, cambiaré a mi personaje rojo
aquí, presionaré la tecla P, una pausa, presionaré nuevamente la
tecla P en pausa, e igualmente transferiré la
posesión a mi personaje verde. Presiona la tecla P, pausa, presiona la tecla P nuevamente, despausa,
funcionalidad compartida, todo dentro del plano del
controlador del reproductor. Ahora, algo que
quizás hayas notado aquí es que nuestro blueprint de
controlador de reproductor reconoce y
procesa eventos de entrada sin ningún tipo
de configuración especial. No tuvimos que
entrar en nuestros valores por defecto de clase y hacer nada especial
para que esto funcionara o
para que esto funcionara. Ahora, el carácter y los estanques hacen lo mismo que nuestro Plano de
Nivel. Todos procesan estos eventos
de entrada por defecto. Entonces, ¿qué pasa si
uso en este caso, digamos el evento UP en
un controlador de jugador, en un plano de personaje
y un Blueprint de Nivel? ¿Qué pasa? ¿Cuál es la prioridad? Bueno, vamos a ejecutar un escenario aquí dentro de mi controlador de
reproductor. Si presiono la tecla arriba, estoy lanzando al personaje. Vamos a configurar en nuestro personaje
bp femenino, que actualmente estoy controlando aquí en mi
configuración mundial que es. Mi clase de controlador de jugador. Yo solo traeré la llave arriba. Tengo que hacer
búsqueda de teclado arriba. Y yo sólo voy
a arrastrar fuera de aquí. Y voy a imprimir cadena. Y voy a decir carácter. femenino solo lo
imprimirá en la pantalla por digamos, 20 s. solo para darnos
un poco más de tiempo aquí, lo
cambiaremos para que sea rosa para que sea agradable y notorio. Bien, compilar, guardar eso. Y luego dentro de
nuestro Plano de Nivel, también
voy a traer
el teclado hacia arriba. Y dentro de aquí
simplemente vamos a tocar un sonido y solo
haremos una explosión, ¿verdad? Bien, así que Compile, Ahorre. Ahora tengo la clave up implementada en nuestros planos de
nivel, nuestro personaje y nuestro controlador de
jugador, ¿cuál de estos
va a tener prioridad? Entonces voy a seguir adelante
y hacer clic en jugar aquí. Y estoy presionando la tecla arriba
y salté súper alto. No escuché
nada y no
vi ninguna impresión texteada
en la parte superior izquierda. Por lo que el controlador del reproductor
es la prioridad más alta. Ahora, ¿y si quisiera que
esta clave para procesar
realmente en mis
otros planos también? ¿Cómo lo configuraría? Salgamos de aquí rápidamente. Y ahora con mi tecla Up seleccionada
aquí, mis eventos de entrada, esta entrada de consumo es la
clave que está determinando que solo este
evento de entrada se está procesando dentro de mi controlador de reproductor
y no los otros planos. tanto se verifique esto, esto consumirá esta entrada, lo que significa que este es el único lugar donde se va
a registrar. Se lo va a comer y no
lo
reconocerá en ningún Blueprints de menor
prioridad. Si desmarca esto e
intentamos volver a jugar, y presiono la tecla arriba. Ahora puedes ver que hice
el Super salto y
también escuchaste ese sonido de explosión. Lo que pasó aquí es que presiono
la tecla arriba y dije: Bien, lanzado con el personaje, no
estamos consumiendo esa entrada. Y aquí mi mapa de pruebas de nivel. También procesó el mantenimiento, pero también dijo aquí mismo que
vamos a consumir este insumo,
es
decir, se detiene aquí mismo, no va a permitir que ningún otro
plano lo procese. Entonces va la orden. Nuestro controlador de jugador
tiene la primera prioridad, el Plano de Nivel
tiene la segunda prioridad, y luego tu estanque y
personajes tienen la tercera prioridad. Entonces si quería que se procesara
aquí en mi hembra también, aquí con mi mapa de prueba de nivel, tengo que asegurarme de que
me he levantado seleccionado, no consuma la entrada. Así que nuestra configuración ahora está dentro
del controlador del reproductor. No estamos consumiendo ese insumo. Estamos permitiendo que se
filtre dentro de mi Plano de
Nivel. No estamos consumiendo
ese insumo. Estamos permitiendo que se filtre por dentro de mi personaje femenino. Realmente no importa aquí.
Esta es la tercera prioridad. Podemos consumirlo aquí también. Eso
lo imprimirá en la pantalla. Entonces ahora cuando juego,
presiono la tecla arriba,
voy a súper saltar. Vas a ver esos textos para personaje femenino
justo aquí arriba. Y esa explosión también se
escuchará. Aquí vamos. Super salto explosión
personaje femenino 12.3. Bien, así que para recapitular, el
plano del controlador del jugador es uno que
se puede ranurar dentro de
tu modo de juego. Los controladores de jugador son actores
no físicos que pueden poseer un estanque. Tienen una
relación uno a
uno controlando un estanque o personaje a la vez. Y los controladores de placer se
utilizan mejor para implementar una
funcionalidad centrada en el usuario, como abrir un menú de
pausa o para cualquier funcionalidad compartida entre personajes o estanques que
pueda estar tomando control de. Chicos que van a hacer para
ofrecer este, veremos en la siguiente.
103. Instancia del juego: Bienvenida. En este video, nuestro objetivo es
conocer y demostrar uso del
plano de instancia de juego en irreal. Ese es este tipo de aquí abajo. Ahora bien, este es personalmente uno de mis
planos de framework favoritos en todos los irreales
porque actúa como un gran contenedor de almacenamiento
confiable al
que puedes acudir para acceder a variables y demás sin
importar qué nivel en el que estás. Ahora bien, no sé si esto se considera
técnicamente
un plano marco porque no es uno de estos planos el que se coloca
en nuestro modo de juego. Ahora recuerdas de antes en nuestra discusión sobre los planos de
marco, el modo de juego es lo que
determina el resto de estos planos de marco
como nuestra Clase de empeño por defecto, jugador controlador, etcétera. La instancia del juego está
separada de eso. No forma parte de tu modo de
juego en absoluto. Podemos ver que tengo mi modo de juego BP abierto
en la parte superior aquí. Y si tuviera que seleccionar nuestras clases por defecto o una
clase por defecto más bien. Podemos ver más en
la clase de sección, aquí no
hay nada para una instancia de
juego, planos. Entonces, ¿qué hace que este
plano sea tan especial? Bueno, es único
en que no se destruye al cambiar de
nivel en tu juego. Persiste siempre y cuando
tu juego esté funcionando. Bien, entonces en este punto
probablemente todavía te estés preguntando por qué el
plano de la instancia del juego es tan valioso como a quién
le importa si persiste, si existe a lo largo de toda
mi sesión de juego? Bueno, lo que hace que
la instancia del juego tan valiosa es que en realidad transporta datos variables de un nivel a otro a otro. Sin que se restablezca. Ves las variables que estableces en tu estanque o tu controlador de
jugador, o tu modo de juego, se
restablecerán a sus valores predeterminados
cuando cambies de nivel, instancia
del juego no
tiene eso problema. Almacenará y
arrastrará datos variables de nivel a nivel sin
que esas variables sean reiniciadas. No realmente ayudó a
conducir a casa este punto. He montado un escenario que
vamos a probar aquí. Observe mi modo predeterminado, empeño y clase de
controlador de jugador aquí mismo. Modo de juego Bp, peón
BP y controlador de jugador bp. Dentro de cada uno de estos,
he creado, y voy a empezar
con mi peón BP aquí, una variable Vidas. Por defecto va
a estar comenzando en cero. Y dentro de aquí, simplemente
creé este guión aquí mismo. Entonces voy a
presionar la tecla seis. Vamos a conseguir nuestras vidas. Este nodo lo va
a incrementar. Esta es una nota especial
y eso
nos va a sacar la vida y de inmediato la
va a hacer retroceder. Entonces, la primera vez
que presione seis, va a cambiar
esto para que sea uno, luego dos, luego tres,
etcétera, etcétera. Y vamos a estar imprimiendo
eso a la pantalla. Vamos a estar haciendo el
mismo tipo de configuración aquí dentro de nuestro controlador de
reproductor bp. Así que simplemente copié y pegué este bit de guión en
mi controlador de reproductor. Simplemente
cambié la tecla de entrada. También hay
variables de mi vida. Ahora dentro de mi modo de juego, el modo de juego no
reconoce los eventos de entrada. Sin embargo, dentro de mi modo de juego, sí
creé una variable Vidas. Voy a empezar esto
con cero también. Ahora bien, porque no pude
incrementar eso aquí. Déjame compilar y
guardar esto rápidamente. Eso lo estoy haciendo en
mi Plano de Nivel. Así que fui aquí, entré en abrí mi
plano de nivel, y a través del plano de nivel
puedo presionar el achy, obtener mi modo de juego, emitir, mi modo de juego, obtener acceso a esa
variable de vidas que dentro de ese plano del
modo de juego. Puedo incrementarlo e
imprimirlo en la pantalla a partir de ahí. Entonces en tres
planos diferentes, mi peón BP, mi controlador de
jugador, y mi Blueprint de Nivel, donde estoy accediendo a esa
variable dentro de mi modo de juego, voy a estar incrementando
esa variable de vidas. Entonces lo que voy a hacer más allá eso es aquí en mi Plano de
Nivel, configuré este guión. Cuando presione la tecla L, voy a abrir un nuevo nivel. El nivel que voy a
estar abriendo es este nivel mínimo predeterminado. Este es un nivel que se encuentra en mi carpeta de mapas de contenido de
inicio, ese tipo de ahí mismo. Y quiero que
sepan que dentro de mi Blueprint de
Nivel mínimo predeterminado, configuré el mismo
bit de guión para que podamos incrementar nuestros modos de juego bp se encuentra
variable una vez más. Entonces, lo que vas a ver
con estos tres, voy a incrementar
estas variables y voy a transferir
a un nuevo mapa. Y entonces voy
a intentar incrementar de
nuevo estas variables después de que me transfiriera
al nuevo mapa, van a ver que
esos recuentos están comenzando en cero una vez más. Y de ahí que eso
vaya en detrimento de almacenar algunas variables dentro de un
peón, un controlador de jugador o un modo de juego si estás
transfiriendo niveles, que juegos a menudo
transfiran desde el nivel
uno al nivel dos, esas variables dentro de estos tres planos van a volver a ser predeterminadas. Bien, así que aquí vamos. Aquí va a ser nuestra
prueba de juego, haciendo clic en play. Bien, entonces
empezaré presionando la tecla seis. Como pueden ver, estoy
incrementando mi engendro. Mis variables de vida peón
suman ahí 25, y voy a
presionar la tecla siete. La variable Vidas dentro del controlador de
mi reproductor es
hasta 25. Y ahora voy a
presionar la tecla ocho. Y la variable mentiras dentro de mi modo de juego ahora se ha
incrementado hasta 25. Ahora voy a
presionar la tecla L para pasar a un nuevo nivel. Aquí estoy. Ahora, debido a que lo
tengo configurado en la configuración de
mi proyecto, este
es mi modo de puerta de enlace predeterminado, mi clase de peón
predeterminada, controlador de jugador. Todos esos se van
a transferir para
controlar con qué Modo de Juego, Clase de
Peón y controlador de
jugador me
estoy metiendo aquí
en este nuevo nivel. Así que compruébalo. Voy a presionar la tecla seis. Se puede ver mi vida
variable dentro de mi estanque comenzó de nuevo en cero. Voy a presionar la tecla
siete en lugar de que el controlador de mi reproductor
empezara de nuevo en ceros, así que voy a tener que
contar desde cero otra vez y luego
presionar el dolorido. Mi vida variable dentro de mi modo de juego también se reinició
desde el principio. Entonces aquí es donde la
instancia del juego realmente viene muy bien. Si quieres tener
algo así como una variable Vidas
transfiera de nivel a nivel, recordando cuál
era ese valor antes de
entrar en el nuevo nivel. Bien, así que sigamos adelante y
creemos nuestro plano de
instancia de juego. Podemos hacerlo aquí dentro de la configuración de nuestro proyecto bajo
mapas y modos, instancia de juego. Tienes este botón
más
aquí mismo para crear una
nueva instancia de juego. No obstante, voy a saltar de
nuevo a mi navegador de contenido. Y dentro de mi carpeta de
framework de scripting, voy a hacer clic derecho
y algo de espacio vacío. Y bajo clase Blueprint, no
voy a
ver Game Instancia arriba en esta área
no es súper común. Pero bajo la sección de todas
las clases, podemos escribir Instancia de Juego. Y quieres elegir a
este tipo de aquí mismo, instancia de
juego, no
juego de plataformas en cambio es solo
una buena instancia de juego vieja. Selecciona esto y
voy a llamar a esta instancia de
juego de subrayado BP. Bien, Siguiente, sigamos
adelante y ubicemos
esto dentro de la configuración de nuestro
proyecto. Si olvidaste dónde
acceder a Configuración del proyecto, puedes acceder a él aquí. O en Editar configuración del proyecto. Quieres venir
bajo mapas y modos. Y está justo
aquí abajo en la parte inferior. Al hacer clic en este desplegable,
voy a tragarlo en mi instancia de juego BP. Eso es genial. No hay botón Guardar ni nada aquí, simplemente
podemos salir de la configuración de nuestro proyecto o regresar a nuestro navegador de
contenido. Voy a hacer doble clic en la instancia del juego
IBP
aquí para abrirla. Y vamos a
agregar una nueva variable, y yo la llamaré vidas. Y vamos a hacer
que sea un entero. Seguiremos adelante y
compilaremos y ahorraremos. Y vamos
a dejar esto en un valor predeterminado de
cero por ahora mismo. Ahora bien, lo que puedo hacer
aquí es que quiero imprimir cuántas vidas
tengo a la pantalla. Una forma en la que podría hacer esto, podrías pensar que es, bueno simplemente haz clic derecho y
haz una búsqueda de Begin Play, y te darás cuenta de
que eso no existe. Lo que quieres hacer es aquí dentro de un plano de
instancia de juego, quieres buscar un
evento llamado event in knit. Esto es como si
el evento comenzara a jugar. Dentro de BP Game Instancia, dentro de un plano de
instancia de juego, esto se disparará al
comienzo de nuestro juego. Entonces, si imprimo cadena, puedo arrastrar hacia atrás fuera de esto. Voy a escribir, anexar. En la a, voy a poner
en instancia de juego. Hagamos instancia de juego. Vive por el valor b. Permítanme agregar un par
de espacios después de eso. instancia de juego vive
el doble espacio. Y luego simplemente arrastraré y
soltaré esto en nuestro gráfico, lo
conseguiré y lo
conectaré a la B, también
entrará
un nodo de conversión. Entonces si compilo
y guardo y juego, puedes ver inmediatamente
en la parte superior izquierda dice Instancia de
Juego vive cero. Bien, sigamos adelante y seamos generosos y digamos
en lugar de cero vidas, en realidad empiezas
con tres vidas. Y vamos a decir
que aquí en nuestro nivel, voy a compilar
y guardar esto muy rápido aquí en nuestro plano de
instancia de juego, digamos de vuelta en nuestro nivel, vamos a hacerlo para
que cuando tu personaje llegue a esta caja Trigger que
hemos tenido fuera en nuestro nivel, vamos a premiar y
extra de vida, buen trabajo. Lo has hecho todo el camino
hasta el final del nivel. Así que de vuelta en mi
Plano de Nivel aquí, puedes acceder al
plano de nivel así. Voy a modificar un poco este
guión aquí. De hecho, voy a
acabar con esto por completo. Por tanto tiempo. Y siempre y cuando
tengas tu disparador Volumen seleccionado aquí en tu Plano de Nivel,
vamos a hacer clic derecho. Estamos llegando a
agregar eventos para cuando empecemos a superponer eso. Hagamos un reparto para que en realidad voy a
tener que echar a BP peón, elenco para ser P estanque porque
eso es actualmente. El estanque que estoy
controlando en mi juego. Así que eso va a estar haciendo
la superposición. no tengo
anulación de configuración mundial Actualmente no tengo
anulación de configuración mundial para el
modo de juego. Entonces solo quería
dejar eso claro. Cuando superponemos esa
caja de activación con nuestro peón bp, vamos a hacer clic derecho para
obtener Instancia de Juego. Entonces vamos a emitir
a BP Game Instancia. Dentro de nuestra instancia de juego bp, teníamos una variable llamada vidas. Y sigamos adelante
y arrastremos fuera de esto y simplemente incrementarlo. Bien, así que eso va a
estar bien y bien. Entonces esto es genial. Esto debería imprimirse. Voy a, en realidad,
voy a imprimir esto a la pantalla, imprimir cadena. E imprimiremos esos montos
actualizados aquí mismo. Así que cuando superpongamos
ese cuadro disparador, vamos a agregar una vida e impreso a la
pantalla compilar, guardar. Sigamos adelante y
jugar la prueba es rápida. Déjame establecer mi objeto de depuración. Y sí vi muy
rápido que cuando
empezamos a jugar decía juego
instancia vive tres. Entonces voy a
superponer esta mirada en la parte superior izquierda aquí como lo hago. Entonces ahora tenemos cuatro
solapamientos otra vez, 56, ahí está, 67, etc. ahora, aquí está el problema
con nuestra configuración actual. Si presiono la tecla L
para transferir mapas, no
tengo forma de imprimir nuestro
valor de vida actual a la pantalla. O sea, en nuestro evento en él, evento inicializado, lo estamos
imprimiendo a la pantalla. Y cuando estoy superponiendo
ese volumen disparador, lo
estamos
imprimiendo a la pantalla. Pero en mi nuevo mapa, no
tengo medios para
imprimirlo en la pantalla. Solo porque me
siento elegante aquí dentro de mi controlador de jugador, voy a hacer que nuestro valor de
vida de instancia de juego bp aparezca. Así que aquí tenemos mucha
comunicación con Blueprint . Entonces dentro de mi controlador de
reproductor bp, voy a modificar
este script aquí mismo. Cuando presiono la tecla siete, simplemente
voy a conseguir gamed instancia va
a lanzar a nuestra instancia de juego bp. Vamos a obtener la
variable vidas que vive
dentro de ahí. Y simplemente vamos a
imprimir esto en la pantalla. Al igual que así. Entonces voy a
compilar y guardar aquí. Entonces entiende lo que tenemos pasando aquí dentro de
nuestra instancia de juego bp, esto va a
existir siempre nuestro juego esté vivo sin importar
si transferimos nivel o no. Entonces, dentro de nuestra instancia de juego
bp, al inicializar nuestro juego, vamos a imprimir cuántas vidas
tenemos que filtrar. Eso va a ser tres. Cuando superponemos esto, desencadenamos un volumen aquí dentro
de nuestro plano de nivel. Vamos a llegar
a nuestro plano de
instancia de juego, agarrar nuestras vidas,
incrementarlo e
imprimirlo en la pantalla. Y entonces cuando me
transfiera a un nuevo nivel aquí hay nuevo nivel va a respetar la configuración de nuestro
proyecto aquí, incluyendo nuestra clase de
controlador de jugador. Y en nuestro nuevo nivel. Dentro de nuestro controlador de jugador, voy a estar tocando
la tecla siete para obtener nuestra instancia de juego
y nos mostrará que nuestras
vidas actualizadas y modeladas se traspasan. Así que aquí vamos. Presionando Play, la
instancia del juego vive tres. Vamos a
superponer este 456.7. Voy a presionar la
tecla L para transferir niveles. Ahora recuerda aquí arriba en
mi controlador de reproductor, el controlador del reproductor
va a continuar, a pesar de que el valor
de las variables dentro de él
van a ser restablecido. Nuestro controlador de jugador bp
va a existir aquí de
nuevo en este nivel, eso es lo que está
señoreando nuestro peón aquí. Entonces dentro de nuestro controlador de
reproductor, voy a presionar
la tecla siete. Ahora. Configuraré mis objetos
de depuración mis generados en el controlador
del reproductor. Ahora cuando presiono la tecla siete, se
puede ver que esa
variable ha seguido adelante. Tenemos siete vidas dentro
de nuestra instancia de juego bp. Ahora antes de
cerrar este video, quería mostrarles
lo poderoso que era esto, especialmente en lo que se refiere
a planos de widgets. Así que abajo en mi carpeta de
widgets de scripting, voy a abrir mi HUD WPP y sobre la pestaña gráfica MEW BP HUD. Lo que he hecho
entre cortes de cámara aquí está fuera de Event Construct. Tengo mi instancia de juego. Estoy lanzando a instancia de juego BP. Hací clic derecho en este
pin y promoví esto a una variable para capturar mi instancia de juego en una variable. Si haces esto, esto te permitirá volver a tu pestaña Diseñador
para crear vinculaciones directamente dos variables relacionadas dentro de tu instancia de
juego BP, por ejemplo, si tuviera que arrastrar
un texto widget aquí, en lugar de esto diciendo
textblock
aquí mismo en el panel Detalles, podría venir debajo
donde dice vinculante. Y ahora porque
creé una referencia a mi instancia de juego BP,
Echa un vistazo a esto. Como instancia de juego BP, puedo vincular esto a
mi variable vidas. Esto seguirá diciendo
text-block por defecto. Pero si compilo y
guardo, entonces podría entonces el controlador
del reproductor MIB P crear este bit de script, evento, comenzar a jugar,
Crear Widget, crear tu HUD a través de eso, y luego Agregar a Viewport. Y entonces lo que esto me
permitiría
hacer es jugar mi juego. Y dentro de mi B, W BP HUD, mis vidas deberían estar representadas aquí
mismo en mi HUD. Entonces sigamos adelante y juguemos esto. Y se puede ver la instancia de
juego vive tres y vemos que ahora
se refleja en el HUD. Está ligado a esa
variable de vidas dentro de
nuestra instancia de juego. Si tuviera que repasar
eso por cinco, también
estás viendo esa
actualización. Y voy a presionar la
tecla L para transferir los niveles seis. Todavía está presente aquí
en mi nuevo nivel también. Bien, entonces ahí lo tienes, los planos de la instancia del juego. Uno de los principales beneficios
de ello es que no restablece variables
entre cambios de nivel. Algo a tener en cuenta aquí, si alguna vez te estás
adelantando lo suficiente donde puedas crear e implementar un sistema de
guardado en Unreal, que obviamente está fuera
del alcance de este curso. El plano de la instancia del juego es menudo el facilitador
entre tomar datos de un archivo de juego guardado y llevarlos a
tu juego actual, así
como escribir datos de un juego actual a un juego guardado. Actúa como un intermedio. Bien chicos, eso va a
hacerlo todo por este video, veremos en el siguiente.
104. Compilar: Bienvenida. Este video va
a ser todo sobre compilar. Ese es este botón en el
extremo superior izquierdo de los planos. Por lo que nuestros objetivos serán los siguientes. Número uno, vamos a hacer demostraciones formas de compilar planos. Número dos, vamos a
aprender a localizar rápidamente un problema cuando tu
blueprint no se compila. Y número tres,
vamos a mostrar cómo combinar las acciones Compilar y Guardar dentro
de un blueprint que no tengas que
compilar obsesivamente,
guardar, compilar , guardar, compilar, guardar lata todo en realidad
se haga con un solo paso. Bien, tengo mi pestaña
ThirdPersonCharacter abierta en la parte superior porque
voy a estar trabajando dentro
de aquí dentro de poco. Pero comencemos hablando de qué demonios es incluso compilar, qué está pasando cuando estamos
presionando este botón de compilar. Bueno, cuando estás
compilando un blueprint, lo que estás haciendo es que estás iniciando el
proceso de conversión de las propiedades y
todo el script en tu grafo de un blueprint assets tales como nuestro
personaje en tercera persona aquí, en una clase, es decir, nuestra clase de personaje en
tercera persona. En
programación informática, cuando
compilas código, el compilador, que suele ser otro programa va a tomar el programa
que el humano Rhodes, en este caso, nuestro script y todas
las propiedades y
variables y demás. Y va a
convertirlo en un programa que la computadora
realmente pueda entender. Ahora puedo ayudar a llevar a casa
este punto un poco más allá haciendo esto, tengo este script de entrada de salto aquí en nuestro
ThirdPersonCharacter. Si tuviera que hacer clic con el botón izquierdo
y arrastrar por todos estos nodos,
controle C. Tengo una aplicación de bloc de notas
abierta en la parte inferior aquí. Sólo voy a hacer un
Control V dentro de aquí. Este es todo el código que está respaldando todo nuestro
script saltado aquí mismo. Entonces, esencialmente, cuando estás guiando a través de estos nodos
que estás enlazando, hay código que respalda todo
esto cuando estás compilando tu comprobación para asegurarte de que tu código en cualquier
propiedad, variables, etc, que eres, que son todos parte de esto,
son buenas para ir, que está limpio y
que no hay errores, que la máquina pueda
leerla y sepa exactamente qué hacer y puede
hacer uso de ella así. Bien. Ahora bien,
algo importante que hay que saber sobre la compilación es que
al compilar un blueprint, podemos estar conscientes de los problemas con nuestros scripts de
blueprint. No obstante, tenga en cuenta que
no atrapará todos los errores porque algunas áreas son
simplemente de naturaleza humana. Por ejemplo, por aquí,
traje un
sistema de generación en el nodo de ubicación. Ahora puedo decir, Sí, quiero engendrar este sistema,
esta partícula de Niágara de aquí mismo. Pero, ¿y si tengo mi escala
establecida en 000 y luego tengo algún evento tratando generar este sistema en,
pero no lo veo? Quizá me quede preguntándome
qué carajo está pasando. Debe haber algo
mal con mi guión. Bueno, de hecho, puede que no haya nada malo con mi guión. No obstante, no estoy
obteniendo el resultado que espero porque puse
la escala en ceros,
ceros, cero, es
decir, no la vería. Así que compilar un plano
no atrapará errores como ese. Bien, aquí en mi gráfico de eventos
ThirdPersonCharacter, he configurado un escenario donde voy a hacerlo donde creamos intencionalmente
algún script incorrecto y luego intentamos compilar. Voy a hacerlo
aquí para que cuando presione el botón B, voy a engendrar algún actor. Sigamos adelante y
digamos, Hombre una poción. Sin embargo, voy a dejar en blanco
intencionalmente esta entrada de
transformación de spawn si
intento compilar ahora mismo, vas a ver
que cuando
lo haga, va a arrojar
un error aquí. Y de hecho, esa punta de herramienta
va a decir que hubo un error durante la compilación es
ver el registro para más detalles. Entonces por registro está apuntando a esta pestaña de resultados del compilador que acaba de aparecer en la
parte inferior de mi pantalla. Y me va a hacer
saber que, oye, tienes algo
que hay que abordar. En este caso, mi
spawn un PIN de transformación no
es válido para que nosotros
engendremos a un hombre distribuyendo, tenemos que decirle
dónde desovar. Ahora bien, si no ves esta pestaña de resultados del
compilador aquí abajo, o si la
cierras accidentalmente, puedes recuperarla de la manera
en
que la recuperas o
casi cualquier otra pestaña aquí que falte
es que vienes debajo tu ventana y aquí
puedes encontrar resultados del compilador. Vuelva a encender eso. Ahora los resultados de su compilador muestran cualquier error o advertencia al
compilar un blueprint. Y lo bueno de
ello es que tiene algunos hipervínculos en los que puedes hacer clic para
saltar al lugar problemático. Así que podríamos hacer clic aquí mismo
en nuestra transformación de spawn. Y eso solo nos mostrará
dónde está ese lugar de problemas. Entonces si estás en algún lugar allá
afuera en tu gráfica camino
por aquí y estás como, ¿Dónde demonios está este error? Sigamos adelante y hagamos clic en él y te saltará directo a él. Ahora mira lo que sucede
con nuestro botón Compilar, nuestro ícono aquí arriba cuando
sigamos adelante y cumplimos con los
requisitos de spawn y transform de este
actor spawn desde el nodo de clase. Solo voy a
enchufar la
transformación mundial de nuestro punto final de rastreo de
línea. Eso es solo un
componente de error que había agregado a mi personaje en tercera persona que
acaba de salir un poco
frente a nuestro personaje. Voy a enchufar esto aquí. Tenga en cuenta que en
cuanto lo conecto, el icono sobre nuestro
botón Compilar ha cambiado. Ahora vemos un signo de
interrogación en amarillo. Entonces, cuando cambia a este ícono, eso significa que se
ha hecho algún cambio en
nuestro plano aquí. Eso va a suceder cada vez que se agregue
algo nuevo a una gráfica o en cualquier nueva
variable o función, o macro o componente
se agregue. Es dejarte saber, oye,
algo es diferente. Ahora bien, hay un par de
formas de compilar un plano. Puede hacer clic en él o hay una tecla de acceso rápido
asociada a ella. Prensado F7
compilará también. En realidad no voy a presionar un siete ahora mismo porque F7 es mi tecla de acceso rápido para iniciar y detener mi
grabación aquí abajo. Pero solo debes saber que F7 es lo
que puedes usar como tecla de acceso rápido. Entonces voy a seguir adelante
y dar clic en Compilar aquí. Esa marca de verificación verde
significa buena para ir. Y eso se puede ver en la punta de la
herramienta justo ahí también. Ahora vamos a discutir algunas opciones de
compilación. Estos tres puntos
de aquí los revelan. Podemos ahorrar al compilar
y podemos hacerlo Nunca. Podemos hacerlo en el éxito
sólo o siempre. Si nunca lo es, que es lo que la he tenido durante la
mayor parte de este curso. Tenemos que compilar. Y luego, si su
compilador tiene éxito, desea guardarlo directamente después para
asegurarse de que todos esos cambios
realizados en su blueprint o
realmente guardados solo en el éxito, solo se guardarán cuando tu
blueprint se compila correctamente. Y siempre significa que va
a guardarlo ya sea que esa compilación haya tenido éxito o no. También tenemos esta opción de salto
a Nodo de Error. Puedes marcar esto encendido o apagado. En realidad es una marca de verificación
que puedes activar o desactivar. Voy a encenderlo aquí. Y esto va a ser
bastante dulce para hacernos saber dónde
existe un error en nuestra gráfica. Saltará directo a
él si hacemos uno. Entonces voy a
desconectar esto rápidamente. Puedes mantener presionada la
tecla Alt y hacer clic con el botón izquierdo, y luego voy a
navegar a algún lugar aleatorio en mi gráfica así. Entonces ahora cuando compile, me
va a saltar directo a ello. Me gusta esa opción en
mucho muy recomendable que ha saltado al nodo de error ahí
mismo debajo de
esos tres puntos. Ahora, solo una nota rápida sobre eso saltó a errar opción nodo. Actúa como hacer clic en uno de tus hipervínculos de error aquí abajo. Eso es bastante genial. Obviamente no puede saltar a
todos los errores al mismo tiempo. Si de hecho
tienes múltiples errores, saltará al error
en la parte superior de la lista. Ese es el error
descubierto más recientemente. Además, quería devolver el golpe a esta opción de Guardar en compilar. Si voy a mi
Plano de Nivel y doy click en
estos tres puntos aquí mismo. Puedo ver que si voy por debajo de
la opción guardar en compilar, todo esto está atenuado. Vas a encontrar que
estas opciones no están disponibles en ningún nivel ni
un plano de subnivel. Esto se debe a que el
ahorro de un nivel o subnivel en sí guarda el
blueprint asociado a él. Así que pensé en
señalarlo aquí mismo. Podrías hacer presionar F7, esa es la tecla de acceso rápido dentro de un
plano de nivel o subnivel. Tenga en cuenta que también
guardará el nivel o subnivel en sí. Ahora, por último, solo
quería señalar una vez más que los resultados de
su compilador
no mostrarán todos los errores humanos. Así que de vuelta aquí, mi
tercera personaPlano de personaje. Podemos decir eso, sí, efectivamente, aquí es donde queremos engendrar
a este hombre, una poción afuera un poco frente a
nuestro personaje. Sin embargo, si tuviera que romper
este cable de aquí mismo, voy a mantener presionada la tecla
Alt y hacer clic con el botón izquierdo. Voy a seguir adelante y compilar. Y va a ser como,
Sí, bueno para ir. A pesar de que puedas pensar mientras estás jugando
el juego que Hey, estoy presionando la tecla B, pero no voy a engendrar a
ningún hombre una poción. Una vez más, irreal, no puedes
conocer tus deseos más profundos. No sabe
que en realidad pretendiste desconectar esto
o tenerlo conectado. Así que no va a coger
errores como ese. Bien chicos, eso va a hacerlo en este video y compilando. Te veremos en la siguiente.
105. Puntos de descanso: Bien, bienvenidos de nuevo a todos. En esta sección del curso, vamos a aprender a solucionar
mejor
nuestros planos. Así es como depurarlos. Vamos a empezar con esto
hablando de puntos de interrupción. El objetivo de este video
es aprender a crear y usar
puntos de interrupción dentro nuestros scripts para
ayudarnos a analizar lo que sucede cuando se está ejecutando un
script. Ahora he montado un escenario aquí. Voy a estar
controlándolos IBP estanque, voy a estar superponiendo Una de mis puertas giratorias específicas que creamos
antes en el curso. Y vas a notar que nuestro juego se va a congelar, pero intencionalmente
no involuntariamente. Así que mira voy a
superponer el volumen del disparador. Solo confía en mí, hay un
volumen de gatillo frente a
esta primera puerta. Parece que no pasa nada, pero voy a superponer este segundo volumen de gatillo
frente a esta puerta. Y he aquí, congelamos el juego. Hemos alcanzado un punto de quiebre. Entonces, ¿qué es un punto de interrupción? Es una pausa o
parada intencional que creas dentro un script como lo denota este punto rojo en este
nodo aquí mismo. Ahora el propósito de hacer
esto es averiguar si el guión está funcionando
como cabría esperar. A lo mejor un evento
que esperamos disparar no lo es. A lo mejor una función
que esperamos disparar
no esté disparando. A lo mejor aún no se
ha establecido una variable que
esperamos que
tenga un valor. Esencialmente, un
punto de ruptura nos da un tiempo de espera para inspeccionar más de cerca cómo se comportan
nuestros guiones. Bien, actualmente voy a
dejar nuestro juego y explicarte cómo configurar puntos de interrupción
dentro de tus propios planos. Entonces haciendo clic en el
botón Detener justo aquí arriba. Lo primero que debes
entender es que quieres asegurarte de que estás
evaluando el plano adecuado, la instancia adecuada
del plano. Actualmente estoy
mirando mi puerta giratoria BP ahora nota en mi nivel
tengo dos de ellas. Tengo a este tipo, BP puerta giratoria
y la segunda, BP puerta giratoria a ahora MIB puerta
giratoria plano. Y este es un plano
que configuramos durante nuestro video
variable rotador. He establecido un
punto de quiebre para cuando
comencemos a superponer
este componente de caja. Ahora arriba en la parte superior aquí, si hago clic en este desplegable, notaré que
actualmente estoy evaluando, actualmente
estoy depurando BP puerta
giratoria a y
se puede ver
entre paréntesis ahí mismo. Ese es el que
actualmente he seleccionado. Lo que esto significa es que
si estoy superponiendo ese componente de caja para la puerta
giratoria BP número uno aquí, esto no se detendrá. Esto no detendrá la ejecución
de mi juego porque
actualmente estoy evaluando BP puerta
giratoria número dos. Entonces esto es importante
de entender. Si tienes, digamos, 50 instancias de un blueprint dado por ahí, solo detendrá la ejecución para cuando
superpongas esa instancia dada, esa copia dada
del blueprint. Entonces aquí tengo BP puerta
giratoria número dos. Ahora, ¿cómo conseguí
este punto de ruptura, este punto rojo en este
nodo para empezar? Bueno, hay
algunas maneras de hacerlo. Puede hacer clic con el botón derecho en un nodo. Y puedes ver en
nuestro menú contextual, tenemos opciones de punto de interrupción. El primer año que voy a
utilizar es toggle breakpoint. Hay una tecla de acceso rápido
F9 asociada a esto. Entonces, debido a que esto está actualmente encendido, puedo apagarlo
y viceversa, puedo hacer clic derecho,
activarlo de nuevo. Una vez más, con este
nodo seleccionado F9, lo
activaremos,
desactivaremos, activaremos. Podría hacer clic derecho
sobre él una vez más y eliminar así el
punto de interrupción. Podría voy a presionar F9
para traerlo una vez más, podría hacer clic derecho sobre esto
y desactivar el punto de interrupción. Lo que eso significa es que
mantendrá el punto de ruptura aquí. No obstante, no va a
detener la ejecución de nuestro juego cuando haga solapar
BP puerta giratoria número dos, esto o conducir a casa este punto, puedo hacer clic en esto y
superponer eso y ya lo ves, es un incendio apagado, pero es
no detuvo mi juego en absoluto. Mantuvo ese
punto de quiebre ahí, pero no detuvo el juego. Ahora, tal vez se esté preguntando, ¿por qué no me deshice de
este punto de ruptura por completo? ¿Por qué lo acabo de desactivar? Bueno, a veces quieres
tener un listado de tus puntos de interrupción
que
puedas ver para no perderlos de la pista. Si me hundo,
Debug están
aquí arriba y traigo mi depurador de
blueprint. En esta ventana de
aquí mismo se puede ver que tiene mi puerta giratoria. Aquí mismo están mis
listas de puntos de interrupción. Y ya ves que tengo
este punto de ruptura
aquí mismo que corresponde con
ese tipo de ahí mismo. Entonces, si tuviera que hacer doble clic
sobre eso, lo resaltará. Ese círculo vacío ahí mismo muestra que ese es un punto de interrupción
deshabilitado. Voy a atracar
esto aquí abajo. Y si tuviera que hacer clic derecho sobre este nodo y
habilitara el punto de interrupción, echarle un vistazo ahora en nuestro depurador de
blueprint
bajo puntos de interrupción, podemos ver ahora que eso
es un punto rojo relleno, que es un punto de interrupción activo. Entonces, cualquier otro punto de interrupción
que tengamos aquí, se enumerará debajo de aquí. Y una vez más, eso fue bajo
Depurador de blueprint Debug. Ahí está mi
puerta giratoria y mi lista de
puntos de interrupción se puede
activar y desactivar ahí mismo. Bien, ahora podemos
ver que tenemos estos puntos de interrupción
configurados para cuando
comencemos a superponer
este componente de caja para esa puerta giratoria. Número dos, recorremos lo que sucede cuando se golpea un
punto de interrupción. Voy a seguir adelante y
hacer clic en Reproducir aquí. Ahora tenga en cuenta que esta es
la puerta giratoria número uno. Estoy superponiendo eso
y no pasa nada. Voy a superponer la caja para la puerta giratoria número dos. inmediato el juego se detiene. Abrimos nuestro gráfico de eventos para la puerta giratoria
número dos aquí. Y podemos ver que
hemos solapado esa caja. Sin embargo, todavía no estamos seguros de qué se superpuso
exactamente. Por lo que podemos continuar con
nuestro script para evaluar más a fondo esta flecha roja está mostrando el nodo actual en el que estamos. Actualmente estamos
superponiendo esa caja. Si hacemos clic aquí arriba, podemos pasar al siguiente nodo
en nuestra cadena de ejecución, FTN. La tecla de acceso rápido también nos
saltará por allá. Así que tenga en cuenta esa punta de herramienta. Entonces, al superponer esa casilla, vamos a verificar si fue el terceraPersonCharacter el
que nos superpuso. Ahora, yo estaba controlando
nuestros bp pons, así que este elenco debería fallar. Ahora porque falla. No tenemos nada conectado
de nuestro panel de campo CAS aquí mismo. Esto debería echarnos justo
al salir de aquí porque no
hay nada más con lo
que continuar. Nuestro guión está esencialmente
muriendo aquí mismo. Sigamos adelante e intentemos
saltar al siguiente nodo. Como pueden ver, no
saltó a nuestro siguiente nodo. De hecho, si vuelvo a traer nuestra ventana de
juego, permítanme minimizar esto. Ahí podemos ver que
volvemos a jugar nuestro juego. Bien, sigamos adelante y
salgamos de nuestro juego aquí, volvamos a nuestro motor. Y ahora hagámoslo para que
en la configuración de nuestro proyecto, ya no
estemos por defecto
en la clase de peón del estanque BP, sino que estamos trayendo
nuestro terceraPersonCharacter. Y la razón por la que
estamos haciendo esto es porque en nuestro script de puerta
giratoria, estamos comprobando
aquí mismo para ver si
fue el ThirdPersonCharacter el
que nos superpuso. Tenga en cuenta de nuevo en nuestro nivel, también
he despejado nuestra configuración
mundial. Entonces vamos a estar respetando
la configuración del proyecto,
la configuración del proyecto que
tenemos para nuestro
framework, blueprints, BP Game Mode, BP
ThirdPersonCharacter, bp player controller. Y ahora si tuviera que
seguir adelante y jugar nuestro juego, vamos a seguir adelante y superponer el volumen del gatillo para la puerta
BP número dos. Aquí va a llegar a
nuestro punto de quiebre. Ahora hablemos de
estas diversas opciones
que tenemos al otro lado de arriba para
cuando lleguemos a un punto de quiebre, este tipo de aquí mismo nos va a
saltar de nuevo
a nuestro juego. Básicamente es decir, oye, me alegro de que hayas detenido el juego. Muchas gracias,
pero nos gustaría seguir en juego. Permítanme simplemente superponer esto. Una vez más. Nos detendrá el juego
una vez más. A continuación tenemos este
avance, un solo fotograma. Así que entonces simplemente nos
saltaré al siguiente nodo. Si uno es un no
sensible al tiempo en absoluto. A continuación tenemos este botón
Stop aquí mismo, que hará
lo mismo que presionar Escape. Básicamente estás
abandonando tu juego y
regresas a tu editor. No voy a
presionar ahora mismo. A continuación por aquí, voy a saltarme a
este tipo de aquí. Tenemos esto localizar los nodos
actualmente activos. Entonces, si estuviéramos en nuestro
nodo Cast to ThirdPersonCharacter como estamos ahora mismo, ese es el que estamos evaluando. Entonces decidimos navegar
en algún lugar al azar así. Si tuviéramos que hacer clic en este botón, eso nos saltará de nuevo a
nuestro nodo actualmente activo. A continuación, tenemos este
paso hacia el nodo que tiene una tecla de acceso rápido F11
asociada a esto. Voy a
presumir esto en nuestro siguiente ejemplo. Este no es un buen
ejemplo aquí mismo. A continuación, tenemos paso por encima
al siguiente nodo, F diez. Eso también lo haremos. Voy a presionar F2 para hacer eso. Y una cosa a tener en cuenta aquí, medida que
avanza por las cosas, puede evaluar los
diversos bits de datos que se
pasan pasando pasando el mouse
sobre estos pines de datos. Entonces e.g. I. Puede ver tiene clave
aquí mismo se evalúa a falso. Entonces sé que nuestro guión esencialmente
va a terminar aquí
mismo porque solo
vamos a hacer algo
fuera de la verdadera rama. No vamos a estar haciendo
nada fuera de la falsa rama. Ahora bien, este paso fuera de botón, lo exploraremos en
nuestro siguiente ejemplo también porque esta es una buena
configuración para presumir de eso. No obstante, algo más de lo que
quiero tomar nota. Mientras estamos aquí,
puedes visualizar el pulso naranja de
ejecución hasta este punto, lo cual es súper útil cuando
estás evaluando un guión. Y una vez más,
no se trata solo de ver en
qué nodos se están deteniendo y ejecutándose, sino también de evaluar los
datos, pasarlos, mouse sobre estos diversos
pines y ver si que los datos que se están transmitiendo
es lo que esperas que sea. Bien, ahora paremos
con este ejemplo. Vamos a saltar a nuestro
terceraPersonpersonaje siguiente, vamos a hacer clic en parar aquí
para mostrar otro ejemplo. Ahora la razón por la que nos dirigimos hacia aquí
es porque tenemos algunas funciones hechas por el cliente que creamos
anteriormente en el curso. Podemos entrar y salir de eso que no pudimos hacer
en nuestro último ejemplo. Entonces, sigamos adelante y traemos nuestra función de modificar la salud. Cambiamos esto en nuestra sección de
funciones del curso y vamos a
traer en un evento de teclado. Vamos a hacer clic con el teclado. Hagamos algo cuando
presionemos la tecla de flecha. Entonces cuando presionamos el cero, salud modificadora de
Kayla, digamos por 0.1. Vamos a arrastrar una
cadena de impresión de miedo, arrastrada hacia atrás. Vamos a anexar. Y vamos a añadir
la palabra salud, colon doble espacio con
nuestra salud actual. Eso traerá un nodo
de conversión que va de float a una cadena así. Y luego déjame agregar un punto de interrupción a nuestro nodo de eventos aquí,
tienes que presionar F9. Ahora bien, si ves un punto de quiebre con un signo de
exclamación dentro de él. Eso podría significar que ese
es un punto de interrupción inválido. No estoy seguro de por qué esta se
está mostrando como tal. No obstante, si estás
cuestionando si ese es o no un punto de interrupción válido, puedes seguir adelante
y compilar aquí. Sé que uno va
a ser bueno y lo es. Así que sigamos adelante y
probemos esta jugada de clic. Puedes asegurarte de
que tienes tu terceraPersonCharacter como tu opción de depuración para
ver que este script se dispara
en tiempo real si lo deseas. Vamos a traer de nuevo nuestra
ventana de juego. Y cuando presiono la tecla de flecha, estamos deteniendo nuestra ejecución. Podemos dar un paso por encima. Y ahora esta es una
función de la que tenemos alguna funcionalidad
instalada dentro de. Entonces si hago clic en este
botón aquí mismo, tecla de acceso rápido F11, podemos
entrar en este nodo. Y ahora podemos pasar por los nodos de la propia
función. Podemos ver que tenemos la pestaña Modificar
función de salud abierta a lo largo de la parte superior ahora y ahora podemos pasar por esta de una a la vez. Podemos ver ¿eso es
cierto o falso? Pasemos por encima una vez más. Y ahora, porque
entramos en este nodo, puedo salir de estas notas. Permítanme salir
de esta función. Se puede ver ahora que
seguimos a nuestro
siguiente nodo en la cadena, que es nuestra cadena de impresión. Entonces, con el paso de entrada
y salida de los botones, puedes entrar en algo
así como una función hecha a medida, ver cada paso de esa función y luego salir
de ella si quieres. Ahora solo hay un par
de notas ahí. La opción Paso a paso, si se trata de
una función o macro hecha a medida, se profundizará en eso. Sin embargo, si no es una función o macro
a
medida, simplemente pasará
al siguiente nodo. En cuanto a salir, si entraste en un nodo, saldrá al
siguiente nodo de la cadena,
en este caso a nuestro nodo de cadena de
impresión. Sin embargo, si
no hay nada para salir dos, no
hay otros nodos
dentro de tu cadena. Simplemente reanudará el juego. Ahora, LastNode, también podemos incorporar nuestra opción de
depurador de blueprint de depuración. A partir de aquí,
traemos esta ventana. Una vez más, me gustaría atraparlo a
lo largo de la pata inferior. Entonces me doy cuenta que todavía estoy
jugando el juego aquí mismo. Aquí están mis puntos de interrupción. Se puede ver que podría hacer clic en
eso para saltar directo a él. Sin embargo, si te habías dado cuenta cuando hice clic en esta opción de
depuración aquí arriba, tenemos la capacidad aquí arriba de
deshabilitar todos los puntos de interrupción y
eliminar todos los puntos de interrupción. Si tienes muchos
puntos de interrupción configurados a
lo largo de tu gráfica, es una manera realmente práctica de
eliminarlos todos. Y nuevamente, puedes
agregar puntos de ruptura y no solo en
nodos de eventos como este, también
puedes configurarlos en
una función. En esta función también. Entonces si te configuras los
tres y estás como, Oye, solo quiero
deshacerme de todos estos. Sólo tienes que seguir adelante y
eliminar todos los puntos de interrupción, y de repente se han ido todos. Y así ahí lo tienes. Esa es la verdad
sobre los puntos de interrupción. Los puntos de interrupción son una pausa
o parada
intencional que creas dentro un script para que
puedas
evaluar más de cerca tus scripts
paso a paso. Chicos, eso lo hará
todo por este video, veremos en el siguiente.
106. Valores de ver: Bien, bienvenido de nuevo. En este video, nuestro objetivo es
aprender cómo podemos
monitorear más fácilmente los valores de los datos al
depurar un script. Ahora esto se puede hacer
mediante la designación variables para observar dentro de un plano al tener
un medio fácil de ver y evaluar los valores de datos dentro de nuestros planos, podemos ver rápidamente si
los datos que fluyen a través scripts
R son los esperados o no. Ahora para este ejemplo, voy a estar trabajando dentro
de mi puerta giratoria BP, así
como mi terceraPersonpersonaje
aquí un poco. Entonces, en primer lugar, para ver
las variables con más cuidado, vamos a traer
nuestro depurador de blueprint. Ahora te mostré cómo hacer
esto en el último video, pero si te olvidaste o te
saltaste ese video dentro de cualquier Blueprint son BP
puerta giratoria te irá bien. Podemos hacer clic en Depurar, depurador de
blueprint,
y eso abrirá nuestra ventana de
depurador de blueprint. Sí me gusta tener esto en un
segundo monitor si lo tengo, pero como no lo hago si
tienes un solo monitor, solo
me gusta hacer el
trámite aquí abajo. Ahora tenga en cuenta dentro de nuestro depurador de
blueprint, podemos especificar qué blueprint
nos gustaría depurar. Entonces, aunque estemos dentro
de nuestra puerta giratoria bp, podría configurar esto para que sea mi terceraPersonpersonaje
para depurar si quisiera. Sin embargo, si lo hiciste y
llegaste a un punto de interrupción
como nuestra tecla cero dentro de
nuestro personaje de tercera persona. Te saltaría de esta gráfica a tu gráfica de
terceraPersonaCarácter. No voy a
demostrarlo por ti aquí, sino solo para tu información. Bien, tengo
este set para mis puertas
giratorias BP y
tengo un set de punto de interrupción. Entonces ahora voy a configurar
algunas variables para vigilar. Voy a ver esto tiene variable
clave aquí mismo. Y la forma en que podemos hacer esto es haciendo clic derecho y eligiendo
ver este valor de barril. Ahora cuando haga esto, van a ver aparecer
un poco de icono de
lupa en esto. Pero también vas a
ver esta ventana aquí arriba que va
a generar true o false siempre que esta información sea solicitada por nuestro nodo de sucursal. Siempre que esto se ejecute, vamos a
averiguar si esto es verdadero o falso y va a
imprimirlo justo en esta burbuja. También voy a
configurar un valor de reloj en nuestro nodo rotador
aquí mismo, el valor de retorno, para que pueda ver dónde estamos en esa rotación yendo
0-90 grados en el Ya, voy a
hacer clic derecho sobre esto. Vamos a ver este
valor. Bastante simple. Si quiero quitar
alguno de estos relojes, simplemente
puede
hacer clic derecho sobre él. Deja de ver este valor. O si quieres dejar de ver todos tus relojes,
puedes pasar por debajo, Depurar y eliminar todos los relojes que también puedan deshacerse
de ellos. Ahora antes de mostrar este ejemplo, quería hacer
notar que dentro de mi terceraPersonpersonaje aquí, ThirdPersonCharacter, sí
configuré esto tiene clave booleana a true. Entonces, si
aún no lo has hecho y quieres seguir el juego
en casa dentro de BP. Tercera personacarácter,
B tiene clave booleana. Pongo eso a verdad,
compilé y Save. Y aquí estoy viendo
esa variable. Esta variable vive dentro
de mi terceraPersonaPersonaje, pero puedo verla desde
aquí. Bien, así que sigamos
adelante y juguemos nuestro juego. Y voy a superponer ese componente de caja para nuestra puerta
giratoria número dos, esa es esta puerta justo en nuestro nivel que es la puerta
giratoria número uno. Sin embargo, estamos evaluando la puerta
giratoria número dos. Entonces aquí vamos, haciendo clic en play,
superponiendo esta puerta. Bien, hemos llegado a
ese punto de ruptura. Ahora en el último video te
mostré que podías pasar
por las cosas dando click aquí mismo, F ten va a hacer muy bien. También puedo avanzar
un fotograma a la vez. Entonces eso también
me detendría en este caso porque este
no es un nodo sensible al tiempo. Sin embargo, tenga en cuenta que abajo en
su depurador de blueprint, tiene estos mismos controles. Así que vamos a
presumir esto porque podemos, se
puede ver abajo, hemos golpeado nuestra puerta giratoria. Número dos, el
punto de interrupción ha sido alcanzado. Esa flecha amarilla de ahí mismo
denota que voy a expandir esto
presionando este pequeño triángulo
desplegable. Enseguida. Podemos ver que tenemos
configurados relojes aquí porque tiene clave y también ese valor de retorno en ese nodo de bucle ahí mismo. Entonces eso es denotar que
sí tenemos alguna configuración de relojes. Tenga en cuenta ahora mismo, esta burbuja
aún
no dice nada porque aún no se
ha solicitado su información. Voy a avanzar
al siguiente nodo dando
clic aquí mismo. Ese flujo de ejecución. Vamos a avanzar
sobre uno más. Ahora como hemos llegado a
este nodo de sucursal, se ha solicitado
esta información para la
condición. Entonces podemos ver que estamos
viendo este valor y ahora
está mostrando de manera destacada
que está evaluando a verdad. Ahora podría simplemente pasar el cursor sobre este pin sin el reloj y descubrir que esa información
en realidad también es cierta. No obstante,
al configurar relojes como este, se vuelve muy obvio. Es una manera de
ver más fácilmente qué datos se están
transmitiendo de inmediato. Ahora bien, si quisiera
desactivar este reloj, podría, mientras esto se está ejecutando aquí, estamos
depurando esto. Podría hacer clic en este
pequeño icono
de lupa y apagarlo. Y puedo hacer clic derecho
y
volver a encenderlo una vez más, Adiós. Elegir el valor de los relojes en él aparece una vez más aquí abajo. Además, si tuviera que haber navegado en algún lugar mucho más allá así, si tuviera que hacer clic en
ese reloj de aquí abajo, eso me
saltará de nuevo a él. Entonces eso es bastante práctico. Sigamos dando un paso
directo, a través de esto porque
podemos ver que aún no hemos llegado a nuestra segunda guardia
por aquí. Así que presionando sobre. Bien, entonces ahora estamos golpeando
un nodo sensible al tiempo, esta línea de tiempo, esta es de 1 s de largo. Entonces si siempre suprimen aquí
mismo o f diez, me
va a saltar a
este siguiente nodo enseguida. No obstante, también podría adelantar
un solo fotograma a la vez. Entonces, al hacerlo,
voy a hacer click izquierdo. Se puede ver ahora que hemos ido 0.01 s porque apenas estamos avanzando
un fotograma a la vez. Podemos ver que estamos viendo
este valor de retorno aquí. Y a medida que aumentamos
este uno a la vez, se observa un fotograma a la vez. Tu valor va
aumentando poco a poco. Entonces, para que podamos ver
cómo se está
abriendo esto en el transcurso de 1 s. Ahora podemos seguir adelante
y hacer clic en reanudar
aquí mismo para ver el
resultado final jugar, que se jugó sobre el
resto de eso línea de tiempo, que 1 s línea de tiempo. Para que podamos ver ese valor. El Ya, nuestra puerta
se abrió 90 grados. A lo mejor es
lo que esperabas. Quizás no, pero estos relojes te
ayudan a identificar si eso realmente
está generando
el valor de retorno que estás esperando. Y así hay una visión general rápida y
sencilla de qué son los
relojes y cómo
se pueden configurar y utilizar al
depurar su script. Una vez más, si tuviera que parar aquí y quitarme estos relojes, deje de mirar. Deja de mirar. Aún puede ver
el valor
de salida de estos pines de datos al
golpear ese punto de ruptura. Permítanme simplemente superponer
esto una vez más. Avanza, avanza pasando el
ratón sobre él así. Sin embargo, al configurar relojes, simplemente
lo hace
un poco más prominente y fácil de ver. Permítanme adelantar
esto hasta el final. Una vez más, podemos ver que y'all rojos ahí
se está sacando 90. Pero esos relojes, de nuevo
los hacen más prominentes
y fáciles de ver. Chicos que van a hacer para
ofrecer este video, veremos en el siguiente.
107. Registro de mensajes: Bien, bienvenidos de
nuevo a todos. En este video, nuestro objetivo
es mostrar el papel
del mensaje iniciar sesión
depurando tus scripts. Si bien esta es una ventana
que puede reportar todo tipo de información
relacionada con tus proyectos, como los resultados de iluminación
al construir tu nivel. Aquí, solo vamos a
explorar su utilidad para garantizar que nuestros scripts funcionen
según lo previsto en tiempo de ejecución. Entonces tengo un ejemplo
para presumir en nuestro personaje de tercera persona. Entonces, ¿por qué no te encuentras bajo tu tercera persona en la carpeta
Blueprints Encuentra tu personaje de tercera persona. Por cierto, un
consejo divertido para ti aquí. Si mantienes presionada Control
y usas esa rueda de desplazamiento, puedes hacer que esas
imágenes en miniatura sean más grandes o más pequeñas. Vamos a hacer doble clic
en él donde ya tengo algunos guiones
establecidos antes de este video. Lo que vamos a hacer es que voy a estar presionando
la única tecla. Y entonces sólo una vez aquí, voy a engendrar
en el efecto fuego. Y entonces voy a
promover esto a una variable. Así que aún no lo he hecho, así que solo quería presumir. Podemos hacerlo una vez más haciendo
clic derecho sobre este pin. Vamos a promover
esto a una variable. cierto, este era un actor spawn del nodo de
clase. Entonces, si estás buscando
el nombre de ese nodo, es spawn actor de clase. Lo cambiará a fuego de efecto
Blueprint. Una vez que usted ranura en ese blueprint efecto
fuego blueprint desde el contenido de inicio
promueve variable. Simplemente llamaremos a esto fuego. Ahí abajo está el nombre de la
misma y podemos ver que es
del tipo Planos efecto fuego. Y lo que
vamos a hacer aquí abajo es cuando presionemos la tecla dos, vamos a destruir este fuego que hemos generado cuando
presionamos la tecla única. Para que pueda arrastrar esto
justo encima del objetivo
de nuestra función
Destruir Actor. Eso lo
conectará automáticamente así. Vamos a hacer que
nuestro registro de mensajes aparezca en otra cosa
que voy a hacer
enseguida es después de que
destruyamos a nuestro actor, voy a establecer el reinicio
de nuestro do want nevado. Y esto sólo va
a hacerlo para que
pueda presionar una vez más la
tecla una vez más para generar otro
plano, efecto fuego. Entonces eso es lo que está pasando aquí. Vamos a presionar una tecla y luego vamos a generar solo una
vez ese efecto de
fuego de plano en la ubicación,
el mundo se transforma,
debería decir, de nuestra mano simulada, eso es esto
componente aquí mismo. Eso solo va a engendrarlo
en ese punto del mundo, donde quiera que estemos en ese momento, estamos ahorrando a una variable. Y entonces cuando presionemos la
tecla dos, vamos a destruir eso. Ahora, voy a
compilar aquí y ahorrar. Y sigamos adelante y ejecutemos esto. Establezca mi objeto de depuración aquí en
mi terceraPersonCharacter. Bien, así que estas son las pruebas que vamos a
estar corriendo. Entonces primero voy a presionar uno para crear fuego aquí mismo, y verás esa tasa de
disparo del guión arriba arriba.
Así que aquí vamos. La única clave que hay es
ese efecto de fuego. Ahora voy a presionar dos. Eso va a
destruir ese fuego que creamos y pusimos dentro de
esa variable de aquí mismo. Entonces aquí vamos, Las dos
claves, ya se ha ido. También hemos restablecido
este do una vez conocido. Ahora voy a presionar de nuevo
las dos teclas. Entonces voy a tratar de
destruir este fuego. Ahora lo presioné y se
puede ver que se está ejecutando. Pero ahora cuando salga de aquí,
escape, vigile lo que pase. Se nos presenta
el registro de mensajes. De hecho, tenemos
numerosos errores. Ahora la razón por la
que tengo numerosos errores es porque me está
gritando que traté de destruir este
fuego que no existía. Ahora lo que estaba pasando aquí es la primera vez que
presionaba la tecla una, repoblamos esta variable, esta variable de
fuego de efecto blueprint. Con este efecto de
plano generado fuego. Una vez que está poblado, comprimimos las dos claves y luego la destruimos. Ahora bien, cuando presiono de nuevo
las dos teclas, aún no
habíamos restablecido el contenido de esta
variable para que fuera algo. Entonces esta era una variable vacía. Este es un mensaje muy común que te escupe
en el registro de mensajes. Ahora el registro de mensajes puede escupir todo tipo de errores diferentes que ocurren con su script. Pero esta es una muy común
donde
te está gritando que no se puede encontrar el contenido de alguna
variable. Voy a arrastrar y soltar
esto por la parte superior aquí. Echemos un vistazo más de cerca
a nuestro mensaje de error aquí. Ahora puedes ver que estos mensajes de
error aparecen en la sección play in editor
de nuestro registro de mensajes. Y se repite una vez más numerosas veces porque
estaba presionando las dos teclas numerosas
veces para tratar destruir el fuego
que no existía. Ahora lo que es útil de este registro de
mensajes es que tiene algunos hipervínculos en los que
puedes hacer clic para
llevarte a la ubicación, al aire. Ahora bien, si haces clic en Gráfico de
eventos aquí, solo
voy a hacer clic en Gráfico de eventos. Nos llevará a la gráfica de eventos
correspondiente. Si hacemos clic donde
dice ejecutar Uber BP, ThirdPersonCharacter, también nos hará clic en
el Gráfico de Eventos. Y si haces clic en BP
ThirdPersonCharacter, también te llevará
a ese Gráfico de Eventos. No obstante, si tuvieras que hacer clic donde dice Destruir
Actor aquí mismo, eso va a precisar exactamente en cuanto a dónde ocurrió
el problema. Este nodo Destruye Actor estaba tratando de encontrar un objetivo válido. Sin embargo, este
registro de mensajes dice que ese era un destino no válido. El objetivo no era válido. Y eso fue una vez más, porque la primera vez que creamos nuestro fuego,
pudimos destruirlo. Pero cuanto más presionemos dos teclas, no se
puede destruir algún
fuego que no existe, que no se haya puesto dentro
de esa variable de fuego. Entonces, ¿cómo podemos arreglar un
escenario como este? Bueno, se puede verificar para ver si el contenido de una
variable es válido. Y la forma en que podemos hacer esto es
seleccionando nuestra
variable de fuego aquí mismo, ese fuego de
efecto de plano que se está poblando aquí mismo, eso se está configurando aquí
mismo. Podemos hacer clic derecho
sobre esto y lo
convertimos en un validado todavía. Ahora tenga en cuenta que una vez que hagamos
esto, va a cambiar este nodo
de un
nodo de aspecto de forma de píldora a un nodo que nos
requiera engancharnos,
en ejecución cable a él. Entonces ahora podemos tener
un guión como este. Si pulsamos la tecla dos, primero
va a hacer un chequeo. Si esto es válido, es
decir, que hay algo establecido dentro de esta variable, continuaremos y destruiremos lo que no se haya
establecido dentro de ella. Sin embargo, si presionamos la
tecla dos y no es válida, es
decir, no hay nada
dentro de esta variable. Podemos hacer otra cosa. En este caso, solo
arrastraré e imprimiré cuerda. Y yo solo diré
despedido, no válido. Al igual que así. Entonces ahora si compila y guardo, y jugamos una vez más, antes incluso presiono la tecla una. adelante y
presionemos la tecla dos y miremos aquí arriba en la
parte superior izquierda de mi ventana. Va a decir fuego no válido y puedo
seguir enviándolo spam. Ahora aún no es válido
porque no hemos establecido el contenido de
esta variable fire. No se ha
poblado con nada. Ahora bien, si presiono la tecla una, ahora
hemos establecido el contenido
de esa variable de fuego. Entonces ahora cuando presione la tecla
Tab, será válida. Así que mira justo por aquí. Se disparó a través,
eso es válido. Destruyó al actor, y todos estamos bien. Ahora esta
ventana de registro de mensajes aparecerá automáticamente si capta
un error como
ese, la abrirá por ti. Sin embargo, si
quieres que esta pestaña de registro de mensajes esté
abierta en todo momento, déjame cerrarla para
que pueda volver a encenderla. Simplemente puedes venir
debajo de una ventana. Y luego justo aquí
bajo la categoría de registro, puedes elegir que
ese mensaje inicie sesión. Bien chicos, eso lo
va a hacer para este video en la ventana de registro de
mensajes. Te veremos en la siguiente.
108. Búsqueda: Bien, así que si has visto todos los videos hasta este
momento del curso, te estás volviendo bastante eficiente con el scripting de
blueprint. Ahora llevemos tus scripts de
planos
al siguiente nivel aprendiendo
algunos hacks de productividad. En este video, nuestro objetivo es
explorar varios métodos de búsqueda de cosas mientras se
trabaja con planos. Vamos a buscar un
plano ácidos ellos mismos averiguar dónde residen
aquí en nuestro navegador de contenido, así
como buscar
cosas que puedan existir dentro de un blueprint como
variables, funciones, etc. Ahora quieres ser
bueno en esto simplemente por razones de eficiencia laboral. Cuanto más rápido puedas localizar activos, funciones,
variables, etc. más rápido podrás
asegurarte de haber negociado planos de
calidad
libres de errores. Ahora para demostrar algunos de estos conceptos
vamos a estar explorando aquí. Voy a estar haciendo
esto dentro de mi terceraPersonaPersonaje. Puedes hacer esto desde dentro de cualquier plano, aunque
eso está perfectamente bien. Entonces, haciendo doble clic en mi personaje en
tercera persona, lo primero que vamos
a aprender a hacer es navegar hasta este activo de planos. A menudo, cuando estoy
trabajando con estudiantes, tienen un plano abierto, pero no tienen idea de dónde está
este plano dentro
del navegador de contenido. Pueden estar apagados en
alguna carpeta aleatoria. Y si les pido que localicen su
Blueprint de personaje de tercera persona, no
tienen idea de dónde está. Bueno, hay un par
de maneras de encontrarla. Camino. El número uno es que
tienes algunos filtros. Estás en tu navegador de contenido. Puede hacer clic en una
carpeta de su elección. Y puedes elegir la carpeta de
contenido porque esa carpeta contiene todas
las demás carpetas. Y da clic en Filtros, clase
Blueprint,
y ya estás deseando que las cosas bajen poderosamente. Déjame mantener presionada Control
y rueda de desplazamiento hacia abajo. Y de inmediato podemos ver nuestro terceraPersonpersonaje
está ahí mismo. Para desactivar un filtro. Simplemente puedes hacer clic en él. Eso es con él apagado,
eso es con él puesto. Bien, así que esa es una forma en la que
puedes localizar rápidamente los activos es filtrarlos dentro de
tu navegador de contenido. Pero quiero hablar ahora sobre
cómo encontrar este activo si estás dentro de esta
terceraPersonaPersonaje mismo. Bueno, tienes
un par de formas. número uno está en la parte superior de tu editor de
planos aquí, tienes este
botón Examinar aquí mismo. Si haces clic en
esto, te llevará directamente
a donde
reside este activo en tu
navegador de contenido, eso es bastante útil. Además, si estás dentro de aquí y solo
haces Control plus b, eso también te lanzará
directo a él. Entonces Control plus b, era ese hockey, Bien,
Next, dentro de un blueprint, deberías tener una pestaña
find Results abierta por defecto dentro de
tu editor de Blueprint. Ese es este tipo de
aquí abajo. Ahora esto es increíble porque
puedes encontrar bala
te dice aquí abajo. Puedes encontrar cosas
como funciones, eventos, variables, todo tipo
de cosas simplemente buscándolas
aquí abajo. Ahora bien, de nuevo, esto debería
estar activado por defecto, pero en realidad hay cuatro
formas de acceder a este panel. Nuevamente, la primera forma es que
debería estar encendido por defecto, pero supongamos que está apagado. También puede traer esto desde
la barra de herramientas haciendo clic en el botón
Buscar aquí arriba. Van a abrir esa ficha. Déjame simplemente
darle click una vez más, también
podemos acceder a
eso entrando bajo la
opción de ventana aquí mismo. Y también tienes la
capacidad de activar tu
panel de resultados finales. Además, si tienes eso apagado, puedes traer ese brazo
usando Control F, ese es el
control de teclas rápidas más F
traerá esa ventana de
resultados de búsqueda. Ahora bien, esta es nuestra herramienta de
búsqueda dentro del editor de planos
que nos permite rastrear
rápidamente una variedad de cosas como un nombre de nodo, un seudónimo, un comentario de nodo, un nombre de propiedad,
un valor de la propiedad. Entonces demostrémoslo. Shelly. Solo voy a hacer una
búsqueda para modificar la salud, modificar la salud, y presionar Enter aquí y podemos ver todos nuestros diferentes resultados
coincidentes modificar salud. Entonces solo necesito hacer
doble clic en una de estas opciones aquí
para ver qué encontramos. Hay una
función modificadora de salud que coloca ahí en la gráfica. Este es un lugar de
función de salud modificador ahí. Y esto incluso nos saltará
a la función en este caso que creamos llamada modificar salud haciendo doble clic aquí, Esa es mi función de ayuda Modificar. Y una vez más tuvimos
un modificador help pure function que podíamos localizar haciendo
clic ahí mismo también. Intentemos algunos resultados de
búsqueda más. Vamos a aclarar esto. Voy a escribir la palabra engendrar y mirar todos
estos resultados de búsqueda. Ahora vale la pena señalar, si pasas el mouse sobre
estos diferentes íconos, te va a decir a qué
están asociados. Entonces ese es un pin de ejecución. Haz doble clic en
eso, mira eso. Se trata de estos pines de
ejecución de engendrar aquí mismo.
Puedo pasar el ratón sobre esto. Esta es una transformación de engendro,
estructura, haga doble clic en
esas transformaciones de engendro. Entonces es encontrar esa palabra engendrar, y puedo ver que es un
seudónimo ahí mismo. ¿Qué más tenemos aquí? Tenemos un
sonido de spawn adjunto. Puedo hacer doble clic sobre esto, ese es un
nodo de función ahí mismo. Y nos deja saber
que es un nodo. La fantasía F es igual a una función. Ahí está. Muchas multas aquí
en nuestros resultados de búsqueda. Opción, bien, intentemos escribir algo así
como variable. Presionando Enter. Y tenga en cuenta que
tengo un comentario resultados. Entonces, si hago doble clic en
este comentario, sí, efectivamente, incluso
puedo encontrar comentarios que tengan esa palabra dentro de ella. En este caso, está encontrando esa palabra variable
ahí arriba. Intentemos la palabra
target porque muchos nodos tienen la palabra
target en ellos. Como puede ver, muchos nodos de función tienen
esa palabra objetivo en él. Ese está buscando
un objeto de personaje, que
buscaba objetos de peón. Una vez más, puedes obtener
mucha información pasando el mouse sobre los diferentes resultados de
búsqueda y haciendo doble clic en el
ítem para saltar a él. Tratemos también de encontrar
un valor de propiedad. Voy a escribir la palabra quinientos porque creo que
tengo eso por aquí
en algún lugar, ¿en dónde? 500? Sí. Dije la velocidad máxima de
caminata predeterminada o la velocidad
máxima de caminata a
un valor predeterminado de 500 antes en el curso. Por lo que incluso puede encontrar el valor de la
propiedad. Entonces déjame
hacer doble clic en eso. Eso me mostrará
exactamente dónde está eso. Así que eso también puede ser útil. Si eres como yo pongo ese
valor 500 en alguna parte. ¿Dónde estaba eso otra vez? Ahora todo esto está bien y bien. Ser capaz de
buscar cosas de manera rápida y eficiente dentro de un plano
es de hecho una habilidad clave. Sin embargo, es más potente
este encontrar una ventana de resultados aquí al poder buscar en todos
sus planos. Y si, puedes hacer eso. La forma de hacerlo
es haciendo clic en este botón con
el icono de los binoculares en él justo por aquí, encuentra en todos los planos. Ahora esto se vuelve especialmente
importante cuando se está comunicando de
un plano a otro. Tal vez tengas una variable de salud como la que hacemos dentro de nuestro personaje en
tercera persona aquí que se hace referencia en otros planos
como nuestra recolección de ejemplo, esa recolección de salud que
creamos anteriormente en el curso. Entonces, para saber dónde puede existir
esta variable de salud
a lo largo de tu proyecto, simplemente
puedes hacer una
búsqueda de salud. Entra. Ahora aquí es donde se hace referencia a
esto dentro de este plano. Pero si hago clic en este
botón justo por aquí, descubrirá dónde se
hace referencia a
la palabra salud en cualquiera
de nuestros planos. Entonces lo tenemos referenciado
aquí en nuestro HUD WPP. Ahí está nuestro ejemplo de recogida
o recogida infantil, etcétera. Solo necesitamos hacer doble clic
en cualquiera de estos para saltar directamente dentro de ese plano
en particular. Déjame
hacer doble clic sobre esto. Consigue Salud dentro
de nuestra
pastilla de ejemplo bp que la
abrirá justo en la parte superior. Podemos ver dónde se obtiene esa
variable de salud desde dentro de nuestro
terceraPersonCharacter y luego
también se establece también. Truco súper práctico. Bien chicos, eso va a
hacerlo todo por buscar aquí en planos de Unreal
Engine. Te veremos en
el siguiente video.
109. Separadores de páginas: bienvenida y
navegar por los planos rápida y eficiente es una habilidad esencial para
aprovechar
al máximo el trabajo en Unreal
y marcadores. Los marcadores de planos son
una de las cosas que
puedes utilizar para ayudarte a
ser más eficiente. En este video,
vamos a aprender
a establecer algunos marcadores de planos, cómo ubicar dichos marcadores, y luego demostrar por qué esto es incluso algo útil de hacer. Entonces, ¿qué es un marcador? Se puede pensar en un marcador de
plano como una forma de identificar
una sección de una gráfica. Podría estar dentro de
tu gráfico de eventos o el guión de construcción al que te gustaría
navegar rápidamente. Ahora bien, esto es como colocar un alfiler o un
marcador de waypoint en un mapa. Y luego simplemente seleccionando
ese marcador de una lista, puedes saltar directamente
a ese lugar en tu mapa o en este
caso, a tu gráfica. Entonces, antes del
inicio de este video, creé un marcador
llamado Overview dentro de mi BP
ThirdPersonCharacter. Y solo para mostrarte
rápidamente cómo funciona esto, si hago doble clic
en mi marcador, me
va a saltar
exactamente a donde coloqué este marcador dentro de este BP, un
Blueprint de personaje de tercera persona. Ahora déjame salir de
mi pestaña de marcadores aquí y crear un marcador desde
cero solo para que
puedas seguir junto
con este proceso. Bien, así que dentro
de cualquier plano, puedes crear un marcador de
plano
viniendo justo debajo de aquí. ¿Bien? Ahora voy a acercarme a un conjunto dado de nodos
aquí que Hey, tal vez quiero crear
un marcador ahí mismo. Bien, entonces tal vez
estoy trabajando en algún guión y me llaman lejos y estoy
como, ¿sabes qué? No quiero olvidarme de
estos nodos aquí mismo. Déjame seguir adelante y
poner un marcador. Entonces vienes justo debajo de aquí. Vamos a crear un marcador y
solo voy a llamar a esto mi marcador de salud. Haga clic en Agregar aquí. Ahora,
va a recordar este nivel de zoom así como este posicionamiento en
nuestra gráfica aquí mismo. Ahora simplemente necesito acceder a mi marcador
para poder volver a esto. Si me pasa a navegar
lejos de esto, así. Ahora cada vez que traigo
esta pestaña Marcadores que se encuentra debajo del menú de Windows
justo aquí arriba, marcadores. Y aquí mismo puedes
ver tu marcador con nombre. Entonces, si hago doble clic en salud, eso me saltará a
estos conjuntos de nodos, ese mismo nivel de zoom. Ahora te darás cuenta también en
esta ventana de marcadores, podemos ver que tenemos
algunos nodos comunes. Cada vez que creas
un nodo de comentarios. Y estoy hablando estas cajas comunes como esta adjunta Malla Estática
a toma de mano. Van a aparecer
aquí abajo en la sección de nodos de comentarios
de tu ventana de marcadores. Entonces, siempre que estés creando un cuadro de comentarios, y una vez más, puedes crear un cuadro de comentarios
resaltando una
serie de nodos como este y luego tocando la tecla C y luego creando
algún comentario aquí mismo. Puedes ver tan pronto
como toque ese CQI, agregó este comentario aquí abajo debajo de la sección del nodo de
comentarios. Voy a llamar a esto mi creación de HUD. Y así cada vez que creas
un cuadro de comentarios así, todo lo que necesitas hacer, y como puedes ver,
no lo actualizaba. Si compilas hover, lo actualizará. Entonces, si haces doble clic en ese nodo de
comentarios de ahí mismo, también te lanzará a eso. Entonces, por defecto, al crear
un nodo de comentario también, estos cuadros de comentarios, estás creando una especie de marcador. Ahora una última nota aquí, puedes crearlos dentro también
puedes crearlos dentro
de un
script de construcción. En el lado derecho, mostrará
dónde está establecido este
marcador. Tenemos todo esto establecido
dentro de nuestro gráfico de eventos. Pero si hubiéramos creado estos dentro de nuestro script de
construcción, nos haría saber
que también está dentro de nuestro script de construcción
justo aquí. Bien chicos, eso va a
hacer para ofrecer marcadores aquí, veremos a todos
en el siguiente video.
110. Paleta / panel de favoritos: Bienvenidos de nuevo a todos. En este video
vamos a mostrar dónde acceder
al
panel de paladar dentro de un plano, así
como cómo agregar nodos a la porción
de favoritos de este panel. Entonces como se puede ver por
encima del lado derecho, tengo el panel de paleta abierto. Estoy dentro de mi
tercera personaBlueprint de personaje. Sin embargo, puede agregar este
panel a cualquier Blueprint. Tengo mi modo de
juego en tercera persona abierto aquí también. Y se puede ver que la tengo
abierta ahí también. ¿Cómo acceder a este panel? Está justo debajo del menú
Ventana aquí. Así es como puedes encenderlo. Entonces, si alguna vez se apaga, así solo puedes volver a
activarlo haciendo clic en Ventana y trayendo
tu panel de paleta. Este panel muestra una lista no
sensible al contexto de todas las diversas funciones y eventos que se pueden usar
en su blueprint. Y este panel consta
de dos secciones. Empezando por la parte superior aquí
tenemos nuestra sección favorita. Ahora bien, esto es un
poco engañoso porque si pasamos
el mouse sobre la palabra favoritos, dice
que este es un listado de tus nodos favoritos y
más usados. Ahora puedes definir
nodos como tus favoritos, y te voy a mostrar cómo
hacerlo en un poquito. Sin embargo, detectará qué nodos está
utilizando más. Y eso es súper útil
porque entonces en lugar de buscar esos nodos
en tu menú contextual, puedes simplemente buscar
aquí mismo debajo de tu sección
favorita. Y si estás usando
algo como obtener todos los actores de
clase comúnmente, puedes simplemente arrastrarlo y
soltarlo en tu gráfico así. Ahora esta lista de
tus favoritos es compartida por todos los planos. Entonces, si tuviera que saltar a mi plano del modo de
juego en tercera persona de BP. Y pueden ver que tengo mi panel de
paleta abierto por aquí. Puedes ver que tengo este mismo
listado de nodos favoritos. Ahora, una cosa que es un poco
fastidiosa es que
no puedes reordenar tus favoritos arrastrándolos y soltándolos. Esa sería una buena
funcionalidad, pero ay, eso aún
no existe. Abajo tenemos nuestra sección de
encontrar un nodo que
te va a permitir filtrar por clase, encontrarás un
evento dado o nodo de función. Ahora puedes hacer clic
aquí
mismo para reducir qué clase
quieres buscar. O con este conjunto
a la clase all, puedes dar click en cualquiera de estos triángulos desplegables
para ver lo que hay disponible, como si
vengo debajo de la
sección de caracteres aquí mismo, puedes encontrar nodos como
agacharse y saltar, por ejemplo ahora cómo agregar nodos a tu sección de Favoritos
aquí arriba. Hay un par
de formas de hacer esto en tu menú contextual. Si tuvieras que hacer clic derecho
y buscar un nodo dado, y solo voy a escribir la
cadena de impresión justo ahí. Al pasar el ratón sobre
estos diferentes nodos, ve este pequeño
triángulo estrellado a la izquierda. Así es como puedes
preferir algo. Así que tenga en cuenta
que una vez que haga clic en esto, va a mostrar
una estrella llenada. Y eso ahora lo
demostrará en mi
sección favorita ahí arriba. Imprimir cadena. Hagamos imprimir texto también. Ves que también aparece. Si quieres quitártelos, simplemente
puedes dar click
aquí mismo para quitárselos. O podrías dejarme simplemente volver a
hacer clic en estos. Puedes hacer clic derecho sobre ellos aquí en tu sección favorita, y puedes elegir eliminar
eso de tus favoritos. También puede optar
por agregar notas a sus favoritos entrando
en la sección de nodo de búsqueda. Y al igual que podríamos hacer
con el menú del botón derecho al protagonizar los de aquí abajo, mientras pasas el mouse sobre una
función o eventos determinados, puedes hacerlos favoritos haciendo
clic en estas estrellas también. También puedes hacer clic derecho sobre
ellos desde ellos aquí abajo en la sección de notas y elegir eliminarlos de tus
favoritos también. Ahora bien, si hubiera toda una categoría de nodos te gustaría
agregar a tus favoritos. No tienes que empezar
cada uno de estos. Simplemente puedes hacer clic derecho en esa categoría y yo elegiré carácter aquí mismo,
haz clic derecho sobre él. Podemos decir Agregar Categoría
dos favoritos. Y entonces verías
arriba en la parte superior aquí, todos estos nodos, salto,
lanzados, personaje, etcétera, se han agregado
a nuestra sección de Favoritos. Y debido a que esto ha enumerado
todo en orden alfabético, es posible que tenga que desplazarse hacia
arriba o hacia abajo para ver todos los diversos nodos
que puede ver en agacharse, justo aquí también. En agacharse ahí mismo, dejar de saltar, dejar de
saltar, etcétera. Ahora, de igual manera,
si quisieras eliminar todos estos nodos de
tu sección favorita, no
tienes
que hacerlo uno a la vez. Simplemente puedes hacer clic
derecho aquí mismo y eliminar esa categoría
de tus favoritos, y todos ellos
no se agitarán y se eliminarán
de tu lista de favoritos. Otras opciones de nota aquí, si quisieras eliminar un
nodo dado de tus favoritos, simplemente
puedes
hacer clic derecho sobre él. Haré clic derecho en
mi nodo Les aquí y lo eliminaré
de nuestros favoritos. Otra opción que tienes
aquí es hacer clic derecho y elegir borrar
todos los favoritos. Eso va a aclarar todo. Otra opción que
tienes aquí es hacer clic derecho y podrías
elegir cargar un perfil. Y si eliges perfil
predeterminado, simplemente recupera
todos los favoritos asociados con el perfil
predeterminado. Bien, entonces ahí
lo tienes, el panel del paladar, muestra un listado
sensible sin contacto de todas las funciones y eventos que se pueden usar en planos. También tiene esta
sección de Favoritos
aquí arriba que te da fácil
acceso a tus nodos favoritos y, o más usados. Chicos que van a hacer para
ofrecer este. Nos vemos en la siguiente.
111. Nodos que colapsan: Bien, bienvenidos de nuevo a todos. En este video, nuestro
objetivo es demostrar cómo se puede hacer colapsar nodos dentro de una gráfica con el
propósito de limpieza
y legibilidad de la gráfica. Ahora después de un tiempo un plano dado
como mi ThirdPersonCharacter
Blueprint aquí mismo. Podría comenzar a tener muchos nodos y redes
de nodos, haciendo que la legibilidad de la
misma sea algo difícil. Ahora al colapsar los nodos, puedes mantener tu hierba con
un aspecto limpio y condensado. Bien, así que una forma
más temprana en el curso, creamos este guión de trazas de
líneas dentro de nuestra tercera persona
y Character Blueprint. Y estuvo bien. Sin embargo, es posible que desee limpiar secciones de su gráfica, como esta, solo para hacer que la legibilidad de la misma sea
un poco más simple. De hecho, al tener todos
estos nodos por aquí, puede tender a abrumar el
censo de vez en cuando. Entonces, ¿hay alguna manera aumentar la legibilidad
de esto de un vistazo ?
Sabemos que todo esto funciona. Crunch esta
red de nodos un poco hacia abajo. Bueno, sí que puede. Lo que voy a hacer
aquí es que voy a hacer clic izquierdo y arrastrar y resaltar todos
estos nodos aquí mismo, excepto mis entradas de clave cero aquí. Entonces con todos esos resaltados, puedo hacer clic derecho sobre él y
luego mi menú de clic derecho. Y podría haber
hecho clic con el botón derecho en cualquiera de mis nodos seleccionados aquí mismo. Tengo la opción de
colapsar nodos. Así que voy a seguir adelante
y hacer eso ahora. Y cuando lo haga,
vamos a ver que toda esta red de nodos se ha condensado
en un solo nodo. Ahora podemos nombrar y de hecho, nos
está incitando
a darle un nombre. Así que sólo voy a llamar a
esta línea de rastreo, así. Y ahora tenemos una gráfica muy
simplificada. Hemos reducido
todos esos nodos en un
solo nodo colapsado. De hecho, dice que
es una gráfica colapsada. Si hacemos zoom Obama aquí, ahora se puede ver como estoy pasando el ratón sobre este
conjunto colapsado de nodos, tenemos un poco de una
vista previa en nuestra ventana ahí. Entonces eso es útil de un vistazo. Se puede ver lo que
hay dentro de ahí, aunque sea muy pequeño. Pero si quieres
obtener la vista completa, todo lo que necesitas hacer es hacer
doble clic en él y echar
un vistazo a la parte superior
aquí ahora estás dentro de una pestaña que
dice trazo de línea. Ese es exactamente el
mismo nombre que lo que
llamamos esa gráfica colapsada. Y aquí está nuestra red de nodos. Tenemos un nodo de entrada. Aquí está todo el interior
de esta gráfica, y luego tenemos
un nodo de salida. Ahora bien, no se necesita nada para esta salida porque no
teníamos nada que fuera necesario para pasar algún dato ni
nada de ese tipo. Ahora tal vez te estés preguntando qué carajo le pasó
a nuestro Gráfico de Eventos. Así que me gustaría llamar su
atención sobre el panel
Mi Plano de
aquí. Y debajo de nuestra sección de
gráficos, haciendo clic en esta
pequeña flecha hacia abajo, haciendo clic debajo de la sección Gráfico de
eventos, no solo tenemos
acceso a cualquiera de nuestros nodos de eventos que hemos colocado dentro de un gráfico de eventos
artísticos. Pero también tenemos
acceso rápido a nuestro conjunto
colapsado de trazas de líneas de nodos
que acabamos de crear. Ahora arriba en la parte superior aquí, también
tengo esta
flecha hacia atrás y es flecha hacia adelante. Ahora mira esta flecha hacia atrás. Se trata de palabras iluminadas. La flecha hacia adelante está un
poco gris aquí afuera. Si hago clic en eso,
no pasará nada. Pero si hago clic en mi flecha
hacia atrás aquí, me
va a saltar de nuevo de
mi trazo de línea
colapsado gráfico aquí, vuelta a mi pasto de eventos. Entonces, una vez más, si hago doble
clic en mi gráfico
colapsado de trazo de línea, va a cambiar
mi pestaña Gráfico de eventos a mi conjunto de nodos de
colapso de rastreo Alinear. Si hago clic de nuevo aquí mismo, eso me pondrá de nuevo
al Gráfico de Eventos. Ahora también podría
simplemente hacer clic
aquí mismo en mi
Gráfico de Eventos para volver. Y ahora de vuelta aquí en
el panel Mi Blueprint, puedo saltar de nuevo a ese
conjunto de nodos de colapso de trazas de líneas haciendo
doble clic aquí mismo. Eso me llevará de vuelta ahí. Y también puedo volver
a mi Gráfico de Eventos haciendo doble clic en
la
opción Gráfico de Eventos aquí mismo también. Así que solo
mostrando diferentes formas navegar por tu
gráfica ahí mismo. Ahora bien, si alguna vez quisiste hacer
tu gráfico colapsado aquí, todo lo que necesitarías hacer, déjame hacer un zoom de nuevo en mi línea. Trazar el gráfico de colapso es
simplemente hacer clic derecho sobre él. Ahí tienes
nodos expandidos, así que haz clic en eso. Y eso volverá a poner todos esos
nodos en tu gráfica, como la tenías antes. Y también notarás
que ese
gráfico colapsado ahora ya no
existe debajo de la, debajo de la sección Gráfico de
eventos
de injerto del panel Mi Blueprint. Ahora, moviéndonos por aquí, vamos a hacer una demostración de nodos
colapsos que tienen otros nodos enchufados dentro y
fuera de los nodos de colapso. Así que tengo una configuración aquí mismo. Estamos, si presiono una tecla to, comprobaría esta enumeración que
configuré antes en el curso es enumeración de estado de salud, en la que tengo los posibles
valores de súper bien. Y ella mal. Y
dependiendo de en qué se establezca esto, si es súper, iba
a cambiar el personaje. Componentes de movimiento. Saltar velocidad z que está
controlando qué tan alto
puede saltar mi personaje a 1,400 si mi estado de
salud es súper, si está bien, lo
dejaré en 700. Y si tuviera este
set para doler mal, pondría mis saltos
la velocidad 2350. Ahora solo voy
a demostrar aquí de nuevo qué
pasaría si yo
fuera a colapsar nodos
que tienen otros nodos enchufados dentro y fuera
de los nodos de colapso. Ahora para demostrarlo, simplemente
voy a seleccionar estos tres nodos aquí mismo. Así que tenga en cuenta estos cables aquí
mismo, aquí mismo, y aquí mismo, e
incluso aquí mismo, necesitan tener
algo a lo que enchufar. Así que cuando colapso
estos nodos e incluso tengo algo fluyendo
hacia estos nodos de selección. Entonces voy a hacer
clic derecho sobre esto. Voy a
colapsar estos nodos. Y ahora échale un vistazo. Mi nodo de colapso
se ve así. Tengo un pin de entrada, pero también tengo
algunos pines
de salida también porque necesitamos pasar a lo largo de esta
información de movimientos de personajes a
este conjunto salta es decir, aviso de
velocidad, y
también tienen que pasar a lo largo de esos enumeradores también. Entonces voy a nombrar
esta gráfica en particular,
mi gráfica de salud colapsada. Ese es un buen nombre. Y ahora si tuviera que hacer doble clic
sobre esto y abrirlo, podemos ver que tenemos
un pin de entrada de ejecución, y podemos verificar esto
saltando de nuevo a
nuestro gráfico de eventos. Ahí está mi pin de entrada de
ejecución. Déjame hacer doble clic
sobre esto. Una vez más. Déjame
limpiar esto un poco. Pero automáticamente configuró algunos pines de salida en
este nodo de salida. Así que tenemos tres
pines de salida de
ejecución y un componente de
movimiento de caracteres, pin de
salida también. Ahora bien, esto sí te permite nombrar estos si no te
gustaste, ya sabes, nuevo enumerador seis, podría
nombrar a estos dos súper bien. Y ella mal. De hecho, eso no
sería una mala idea sólo para dejar eso claro, más claro. ¿Bien? Bien. Y
cambiaremos esto para que duela mal. Entonces ahora si
volviéramos a saltar a nuestro Gráfico de Eventos, simplemente parece tener un
poco más de sentido ahí mismo. Bien, entonces ahí lo tienes colapsando sabe ahora esto
es algo que normalmente no recomiendo hasta que
estés en las etapas finales
de tu proyecto. Y estás contento con
todos tus guiones y
solo quieres limpiar un poco
tus gráficas, solo por el bien de la legibilidad. Bonito truco práctico que
puedes llevar
contigo chicos que lo harán
todo por este video. Nos vemos en la siguiente.
112. Diseños personalizados: Bien, bienvenidos de nuevo a todos. Bueno, después de haber pasado
algún tiempo trabajando en Unreal, sin duda se
te
ocurrirá tu propia forma
de hacer las cosas, tu propio flujo de trabajo, si quieres tu
manera de diseñar todos estos diferentes
paneles informativos, no solo dentro de un editor de planos como el que
tengo abierto aquí, sino dentro de cualquiera de
los editores en Unreal, eso va para tu editor de niveles, malla
estática, editores de
materiales, todo ese tipo de cosas. Entonces entonces la pregunta se convierte en, ¿hay alguna manera de que pueda guardar un diseño personalizado que tal vez
quiera cargar más tarde? La respuesta a eso es
sí, claro que puedes. Entonces para ello, puedes encontrar esta opción bajo
el menú de windows. Si vienes bajo Ventana en
cualquiera de tus editores aquí, ventana debajo de la sección de diseño, aquí es donde puedes crear y guardar un diseño personalizado. Puedes cargar ese diseño, puedes eliminar ese
diseño, etcétera. Entonces vamos a mostrar
cómo hacerlo en este video. Ahora quiero señalar
aquí que mientras estoy en el editor de niveles, tengo esta opción debajo de la sección
Ventana aquí mismo. Si tuviera que saltar a mi personaje en
tercera persona. Entonces estoy en un plano de
clase de personajes y vengo bajo ventana. Puedo ver las
opciones de diseño y puedo crear un diseño personalizado
aquí abajo también. Y vamos a saltar a algún otro
editor aleatorio también. No lo sé,
voy a entrar bajo contenido
iniciado tal vez incita esa buena silla vieja Editor de malla
estática.
Abre eso. Claro. Y debajo de la
opción de ventana aquí mismo, tengo esas
opciones de diseño también. Entonces, lo que voy a hacer antes crear mi propio
diseño personalizado es que voy a traer varios paneles de ventana aquí y
organizarlos a mi gusto. Y voy a empezar aquí en mi malla estática y la enfermera
vendrá por debajo de la ventana. Voy a encender, decir mi registro de mensajes. Claro. Diré que quiero
acoplar eso
al lado de mis paneles justo aquí arriba. Entonces entraré en mi Blueprint
de personaje de tercera persona. Vamos a traer otra ventana. A ver,
traeré mi log de salida. Claro, voy a atracar eso aquí abajo. Voy a poner
mis marcadores de nivel al
lado de mi panel de planos. Así. Tomaré mi panel de paleta y también lo pondré
junto a mis componentes. Seguro, ¿por qué no? Tienes el beneficio
de pausar por cierto, para que puedas ver y recordar dónde estoy colocando
todos estos paneles. Y luego
entraré a mi editor de niveles. Tengo mi ventana Niveles abierta desde antes en el curso. Me lo he vuelto a poner. También tengo mi configuración
mundial encendida. ¿Qué tal si traigo en el panel de actores del
lugar también? Y vamos a ver ¿
qué más tengo aquí? Voy a traer, Vamos
a traer a particionero mundial. Esto es si estás
trabajando con paisajes. Así que voy a tener esa
apertura por aquí también. Bien, entonces con todos
estos diseños, personalice la forma en que
cito sin comillas, me gusta. Voy a pasar por debajo de
mi opción de ventana aquí. Y voy a venir
bajo diseño de guardar. Y puedo guardar mi diseño ya que aquí va a traer un
poco de diálogo. Y yo sólo voy a llamar a esto
mi diseño de vestuario. Y para mi descripción aquí, claro que es
opcional como dice, solo
voy a llamar a esto
mi diseño de ejemplo. Voy a seguir adelante
y hacer clic en Guardar. Avísame que
se ha guardado en ese directorio
justo ahí abajo. Y ahora lo que voy a hacer
es meterme debajo de una ventana. Y en mis opciones de diseño de carga, puedes ver mi diseño personalizado. Pero eso es lo que
actualmente tengo en su lugar. Así que voy a
por defecto esto de nuevo
al diseño del editor predeterminado. Ahora cuando hagas esto, va a cerrar
tu motor y por defecto, todos tus paneles de ventana vuelta a donde
estaban por defecto. Entonces este es mi editor de malla
estática, mi personaje en tercera persona. Tengo mi
panel de detalles por aquí. puede decir que el panel de
paleta se ha ido. ¿Dónde están mis ventanas aquí abajo? Se han ido todos. Y de vuelta aquí en mi editor de
niveles en sí, me falta mi
pestaña de niveles por aquí. ¿Dónde está mi navegador de contenido? Me falta mi
configuración del mundo, partición del mundo. Todo ha vuelto a los valores predeterminados del
editor. Ahora, vuelvo debajo de una ventana. Puedo cargar ese diseño. Y wallah, se puede ver que mi panel de paladar está de vuelta en
justo donde lo puse. Mi panel de marcadores está de
vuelta justo por aquí. Todo está justo de
vuelta a donde lo tenía. Editor de niveles,
actores de lugar, panel, niveles, configuración de mundo de
tabulación,
partición mundial, etcétera. Por lo que vale la pena señalar
aquí que cuando
vas a crear tu
propio diseño personalizado, una vez que vas a guardar ese diseño, estás guardando el diseño
no solo para el editor actual en el
que estás trabajando. En este caso, este
sería mi editor de niveles, pero también estás guardando
ese diseño para todos los demás
editores. Incluyendo en mi caso aquí, estos editor de puré estático y los
editores de planos también, para eliminar permitir, simplemente
entrarías bajo Diseño de eliminación de ventanas. Ahí está mi diseño personalizado. Cuando seleccione esto,
voy a tener un cuadro de diálogo emergente aquí diciendo: ¿
Estás seguro de que
quieres hacer eso? Ahora si haces clic en Bien, ahora, notarás que
no le pasó nada a mi diseño personalizado porque ese es el layout que
estoy usando actualmente. Entonces no va a eliminar el layout que
estás usando actualmente. Entonces, si realmente quisiera
eliminar el diseño de mi primo, primero tendría que
volver a otro diseño. En este caso, volveré
a mi diseño de editor predeterminado. Y ahora si iba a entrar
bajo nuestra opción de ventana, debajo de la sección de diseño y
estaba intentando
cargar ese layout. puede ver que ya no existe. Ahora bien, mientras estamos aquí,
también quería señalar que podrías importar un
diseño existente o podrías, cuando estás guardando un diseño, podrías buscar exportar
un diseño también. No voy a
demostrarlo aquí, pero quería
hacerte consciente de ello. Recomiendo encarecidamente que cree sus propios
diseños personalizados, ya que le ayudará a mejorar su flujo de trabajo. Chicos, eso lo hará
todo por este video. Nos vemos en la siguiente.
113. Consejos y trucos: Bienvenida. En este video, el
objetivo es
armarte con
consejos y trucos adicionales para ayudarte a trabajar de
manera más eficiente con
planos en Unreal, no es un alarde de estos consejos
y trucos voy a estar trabajando dentro de Maya,
BP terceraPersonaPersonaje. No obstante, tenga en cuenta que
puede estar trabajando en cualquiera de sus planos. Bien, con nuestro
personaje de tercera persona abierto, quería llamar
su atención estas dos flechas aquí arriba en la parte superior de mi Gráfico de Eventos. Son flechas
hacia atrás y hacia adelante como se ve en cualquier tipo
de navegador de internet. Lo que esto te permite hacer es
pasar de gráfica a gráfica. Ahora, ahora mismo está gris. Y si traté de hacer click sobre ellos, no pasa nada porque solo
abrimos esto. Sin embargo, a medida que hago clic en diferentes áreas de
mi Panel de planos o mi área de marcadores que
tengo abierta
aquí mismo debajo de Marcadores de ventana. A medida que empiezo a dar click en
algunas de estas cosas, como digo, salte a
donde está mi tecla de entrada cero. Entré en mi función
turbo run. O navego a una de mis interfaces de
Blueprint aquí, vamos La función de interacción, o una de mis macros en llamas, o salté a uno de
mis marcadores aquí, iré a mi marcador de salud o incluso mi marcador de visión general. Ahora me viste hacer clic en una
variedad de cosas ahí. Así que ahora he construido una historia, y ahora puedo usar estos botones de ida y
vuelta para navegar a esas cosas en las
que había hecho clic. Entonces si vuelvo aquí,
voy a saltar de
nuevo a mi
marcador de salud, de nuevo, a mi macro aquí, Maia en llamas,
macro, de nuevo a mi interfaz de
interacción otra vez. Y como puedes ver, funciona como cualquiera de los navegadores de
Internet, botones
atrás y adelante, adelante, atrás, adelante, atrás, atrás, etcétera. Ahora, mientras pasas el ratón sobre
él, va a decir que
puedes hacer clic derecho para ver una historia completa. Sé que en un
momento dado esto estaba funcionando. No obstante, si trato de hacer
clic derecho ahora mismo, no
puedo ver esa historia completa. Tengo
que imaginar que la funcionalidad va a encontrar su camino de regreso. Bien, siguiente,
quería mostrarte cómo copiar y pegar valores en irreal. Ahora bien, esto es algo que sé, ya
sabes cómo hacerlo a través tantas otras
aplicaciones informáticas. Control C para copiar, control V para pegar. Pero este es uno de
esos trucos que por cualquier motivo se escapa de la mente de mucha gente
como incluso siendo posible. Lo que voy a hacer aquí
en mi panel de componentes, y voy a saltar
a mi ventana gráfica aquí porque esto va a ser un
poco visual por naturaleza. Voy a agregar un componente
completamente nuevo. Voy a agregar un bonito sistema de partículas de
Ágora. Esto va a estar unido
a mi Componente Cápsula. Voy a dejar ese nombre de Niágara. Eso va a estar bien. Voy a establecer un activo
del sistema Niágara aquí. Al hacer clic en este desplegable, estableceré uno de estos
mágicos. Claro. Ahora actualmente está
apareciendo justo en el centro aquí
porque esta se encuentra en la ubicación 000 relativa
a nuestro Componente Cápsula. Esto se adjunta a mi componente
consejero. Pero digamos que quería que esta
partícula apareciera justo en la ubicación de mi componente de mano
simulada. Bueno, esto sería tan sencillo
como copiar esta ubicación. Esta es una ubicación relativa. Esta ubicación
relativa de los componentes en relación con nuestro componente
católico. Y para hacer esto, simplemente puedo hacer
clic derecho aquí mismo en la ubicación, hacer clic derecho en Copiar. Se puede ver turno más arroz. botón derecho del ratón es la
tecla de acceso rápido para hacer eso aquí. Entonces puedo acercarme a
mi partícula de Niágara, haga clic con el botón derecho aquí mismo,
y podría pegarla. Entonces, por cualquier razón, ese es un
truco súper práctico que se le escapa la mente de la
gente como
incluso siendo posible. Pero créeme, usé
esa propina todo el tiempo. A continuación, me gustaría llamar
su atención sobre el panel Mi Blueprint donde
tenemos este ícono de engranaje. Y si hago clic en esto, lo que quiero hablar es esta opción más alta que muestra variables
heredadas. Actualmente tengo
esta comprobada. Ahora bien, si marco esto, van a
notar que muchas categorías
variables aquí
van a desaparecer. Y la razón por la que
esos se van es porque esas eran
variables heredadas categoría
ahí se heredaron de nuestra
clase de carácter padre. Ahora bien, la razón por la que es importante saber
esto es
porque si estás creando alguna clase base y luego heredas
de esa clase, tal vez
te estés preguntando como, Oye, dónde todas las variables que
configuré en esa clase base, ¿
dónde existen siquiera? Ahora para ayudar a conducir a
casa este punto, voy a abrir
otro plano aquí. Anteriormente en el
curso, creamos este plano de personaje infantil, éste heredado de mi personaje en
tercera persona. Así que déjame abrir a este
tipo muy rápido. Esto es un niño. Si alguna vez ves esto,
puedes abrirlo el editor de planos completo
haciendo clic aquí mismo. Se puede ver que la clase de
padres aquí es mi personaje BP en tercera persona. Ahora si miramos por encima en la sección
variable del niño. Como esperar un minuto,
donde todas las variables dentro de
mi clase padre aquí, he creado todas
estas variables. Golpeé variable actor, un calcetín, y una variable. Estas son variables
que acreditamos a lo largo del curso.
¿Dónde están? Bueno, si entro en el
niño y hago clic en este ícono de engranaje en el panel Mi Blueprint y
muestro variables heredadas. Y abrimos aquí nuestra categoría de
variables. Ahora podemos ver todas esas
diversas variables que
habíamos configurado dentro de
nuestra clase padre. A continuación, me gustaría llamar su
atención sobre un icono de engranaje que se encuentra en
el extremo superior derecho de nuestro panel Detalles. Si haces clic en esto, también
vas a ver una variedad de opciones. Voy a hablar a
través de algunos de estos que me gusta mucho usar, como mostrar solo propiedades
modificadas. Si revisas esto, limitarás tu panel de
detalles para mostrar solo las propiedades
que modificaste. Eso es súper útil
para saber como, Oye, ¿qué diablos
cambié realmente de este componente? Esto me parece especialmente
útil para algo como el
componente de movimiento de personajes porque el componente Movimiento de personajes contiene todo tipo
de propiedades. Entonces, si quiero
conocer las solo las que he modificado,
puedo dar click ahí mismo y mostrar solo las propiedades modificadas
versus si marco esto, esta enorme lista de lavandería de propiedades que me
presentan de otra manera, algunas de las otras
opciones que me gusta explorar dentro de ese menú, tenemos que mostrar todos los detalles
avanzados. ¿Qué carajo es eso? Bueno, en cualquiera de estas categorías
dadas, tenemos algunas
propiedades avanzadas que son menos conocidas, menor uso, etcétera. Puedes hacer clic y
mostrarlos así manualmente. No obstante, si no
querías hacer
como lo estoy haciendo ahora mismo, y exponiéndolos a
todos uno por uno. Simplemente puedes entrar en ese ícono de engranaje y
mostrar todo avanzado. Y encenderá todas
esas
categorías avanzadas de inmediato para que no tengas que
hacer clic en todas ellas. Eso es práctico.
Déjame apagar eso. Algo más
que me gusta usar aquí es en esta categoría, puedo colapsar todas las categorías
o ampliar todas las categorías. Una vez más,
tengo mis componentes de
movimiento de personajes seleccionados por aquí. Aquí hay muchas
categorías diferentes. Movimiento de personajes, saltos,
caídas, componentes, movimiento de personajes de
tick, networking, muchas categorías diferentes. Entonces, si quiero que los
colapse a todos, simplemente podría hacer
clic en eso y ver todas las categorías individuales para que pueda abrir solo las
que me interesan. Y claro, puedo
hacer lo contrario, que es ampliar
todas las categorías. Entonces esa es una
manera fácil de abrirlos todos sin
tener que hacerlo uno por uno. Bien, Siguiente, me gustaría
hablar sobre lo que hace este botón ocultar no relacionado a lo largo la barra de herramientas dentro de
un editor de planos. Ahora que realmente
ven esto funcionando, necesitas estar dentro de
tu Event Graph o tu script
o función de construcción o una macro, algo con algunos nodos. Voy a destacar
mi componente cápsula dentro de esta red de nodos. Y voy a dar
click en este botón. Esto es como un botón de
alternar de encendido-apagado aquí mismo. Cuando es azul,
se activa. Cuando es gris,
se alterna. Déjame volver a encenderlo. Lo que esto ha hecho
es que se ha atenuado. Cualquier nodo es ghosted ellos hacia fuera. Cualesquiera nodos que no estén
relacionados con el que he seleccionado, uno o los que
he seleccionado. Entonces, ¿por qué están todos
iluminados todavía? Bueno, mi actor adjunto nodos de
dos componentes aquí mismo, dependen del componente
capital porque están enchufados a
la entrada padre. Estos engendran actor de nodos de
clase aquí mismo. Ellos dependen de la
transformación del mundo que estamos obteniendo
del componente católico. Entonces esos también están
iluminados. Ahora bien, si tuviera que hacer
zoom aquí atrás, puede ver que
todos los demás nodos también
están fantasmas
porque no están relacionados con el
que actualmente he seleccionado,
este componente católico. Ahora bien, esto es extremadamente útil si tienes una maraña de cables, es
difícil hacer cabezas o colas de lo que está haciendo tu guión. Y realmente estás tratando de
brillar una luz para enfocarte en solo un
subconjunto dado de nodos. Ahora también quería
señalar aquí que derecho a la derecha de nuestro botón ocultar no relacionado aquí
tenemos estos tres puntos. Si tuvieras que hacer clic en esto, tienes la opción de
bloquear el estado del nodo. Ahora bien, si hago clic
y enciendo esto, ya podemos ver que está
encendido con esa marca de verificación. Lo que eso va a hacer es que
va a mantener todos los nodos en su estado actual
resaltados o dosis. Entonces eso significa que si tuviera que hacer clic en otro
lugar y hacer clic en otro nodo, va a mantener todos los
demás nodos todavía van a sentarse. Y los que tenía
encerrados para ser iluminados, permanecerán iluminados
hasta que los desbloquee. Entonces eso es bueno saberlo. Bien chicos,
hay algunos consejos y trucos para trabajar dentro de planos de
Unreal Engine. Espero que los encuentres útiles. Los veremos a todos
en el siguiente video.
114. Teclas de conexión de productividad: Bien, bienvenidos de nuevo a todos. En este video, nuestro
objetivo es resumir todos los
atajos de aumento de productividad integrados en el editor
Blueprint para que pueda construir y navegar sus scripts de manera más eficiente. Ahora para empezar, te
voy a mostrar dónde se configuran las teclas de acceso rápido dentro de Unreal para que puedas personalizar tus teclas de acceso rápido para
aumentar la productividad para todas las áreas del motor, no solo dentro de
planos pero en todas partes. Entonces, ¿dónde puedes
personalizar estas teclas de acceso rápido? Bueno, eso se hace en
tus preferencias de editor. Puedes acceder a tus preferencias
de
editor entrando en el
botón Editar aquí. Preferencias del editor. Y
con esta pestaña abierta, sólo
voy a
abrirla por
la parte superior derecha, aquí arriba. A lo largo del lado izquierdo, tienes atajos de teclado. Usted da click aquí. Y aquí es donde se
configuran todas las distintas teclas
de acceso rápido para cada
área del motor, cada editor, editor de planos. Aquí es donde vemos algunas
teclas de acceso rápido como compilar F7. Tienes retroceso
para ir a un control de gráfico padre más F
va a traer a colación
ese menú de búsqueda, etc. Ahora esto obviamente es
genial porque si te
encuentras haciendo una
acción dada una y otra vez, puedes crear algunas
teclas de acceso rápido por ti mismo. Además, puedes personalizar las
teclas de acceso rápido a tu gusto. Y de hecho, eso es
valioso para mí hacerlo aquí porque la clave F7, que actualmente está destinada a compilar es también la tecla de acceso rápido que tenía vinculada a mi
software de grabación OBS para iniciar
y detener mi juego. Entonces, si quisiera
cambiar esto, simplemente podría hacer clic en esto aquí
mismo y decir que
quiero que este
sea el clic que el
espacio irá F8. Y también puedes agregar
una segunda encuadernación. Entonces puedo decir, claro, F9 va a hacer eso también. Ahora no hay
botón Guardar ni nada aquí. Entonces, si tuviera que entrar en mi blueprint de
personaje de tercera y hacer algún tipo de cambio
como si acabara de cortar este cable, luego vuelva a enganchar esta copia de seguridad. Ahora puedes ver que me está
pidiendo que compile. Entonces, si tuviera que presionar
F8, eso lo compilará. Pero déjame cortar una vez más
y volver a engancharlo. Y si tuviera que presionar F9 y obviamente no me
ves presionando esos. Sólo vas a confiar en él. Yo lo estoy haciendo. F9, Eso va a
compilarlo también. Así que una manera
realmente práctica de personalizar eres teclas de acceso rápido para varias
áreas del editor. Bien, así
que con eso fuera del camino, voy a
mostrar cómo realizar un montón de comandos de teclas de acceso rápido
dentro de los planos. Estos van a ser específicos planos que
debes conocer. Ahora, pasé por muchos de
estos a lo largo del curso. Pero esto va a
servir como un gran resumen. Así que de vuelta en mi
terceraPersonaPersonaje, solo encuentra una selección de nodos, si se quiere, para
jugar en casa. Si quieres seleccionar algún nodo, es tan sencillo como hacer click izquierdo
sobre él, eso lo seleccionará. Si desea agregar
a una selección determinada, simplemente mantenga presionada la
tecla Mayús. Voy a mantener presionada la tecla Mayús
y hacer clic con el botón izquierdo así. Si desea
alternar una selección, puede mantener presionada la tecla
Control y hacer clic con el botón izquierdo. Así. Para crear una selección de marquesina, simplemente
puede hacer clic con el botón izquierdo
y arrastrar y obtendrá este pequeño cuadro de línea
punteada. Y siempre que esto toque, eso es lo que vas
a estar seleccionando que la selección de marquesina
haga clic izquierdo y arrastre. Si quieres agregar a tu
selección de marquesina aquí mismo, puedes mantener presionada la tecla
Mayús y hacer clic con el botón izquierdo, y luego puedes agregarle algunos
nodos así. Si desea eliminar selecciones de su selección de
marco, simplemente
puede mantener presionada, Controlar, hacer clic izquierdo y arrastrar, y eso eliminará lo toque
su selección de marquesina. Entonces esos eran comandos de
selección de planos. Bien, los comandos de navegación
que debes conocer. Tienes el
botón derecho del ratón manteniendo esto pulsado. Te arrastraremos por toda
la gráfica. Tienes este ícono de mano
para arrastrar así. Si quieres
hacer zoom a la selección, simplemente
puedes presionar
la tecla home en tu teclado y
eso ampliará lo que hayas seleccionado. Enmarcarlo si quieres. Si quieres acercar
y alejar tu gráfico, eso es simplemente desplazarte
dispuesto a entrar y salir como esa
rueda de desplazamiento hacia arriba y hacia abajo. Ahora bien, si quieres
acercar Más allá de la escala 1.1. Así que aquí
está tu nivel de zoom en la parte superior derecha Zoom uno, dos puntos uno, si quieres
hacer zoom más allá de eso, mantén presionada la tecla Control, y
luego puedes acercar Passat hasta una
nivel de zoom de más siete. Bien, veamos
algunos comandos genéricos que debes conocer sobre
control más b. Eso te saltará a
usar este activo. En este caso, el
terceraPersonCharacter vive dentro del navegador de
contenido. Déjame saltar de nuevo
dentro de ahí. Tienes control más S que
te guardarán tu plano. Entonces tenemos
aquí tipo genérico
de comandos de computadora donde si tuvieras que hacer algo como Control plus y, eso rehará algo, Control más z que
deshará algo. Entonces, exploremos eso
simplemente moviendo este nodo un poco
hacia abajo. Voy a hacer Control Z para deshacer eso, Control Y para rehacer eso, para encontrar algo en este plano puedes
hacer control más F. También
tengo esta ventana de resultados
finos abierta aquí abajo.
Déjame cerrar esto. Entonces, si tuviera que hacer
control más F, eso traerá
mis resultados finales. Si tuviera que tratar de encontrar
algo así como decir Mi cualquier cosa relacionada con la salud,
podría buscarlo. Están justo dentro de
este plano. Sin embargo, si quisiera encontrar
algo en cualquier Blueprint, haría Control Shift y F, eso traerá mi hallazgo en
cualquier menú de planos aquí. Y si tuviera que escribir en
salud ahora y presionar Enter, puedo averiguar dónde se
hace referencia a
la palabra salud dentro de cualquier
tipo de plano. Personaje de tercera persona, mi WPP, ejemplo de HUD,
pickup, etcétera. Ahora, como recuerdas de
antes en el curso, F7 es la tecla de acceso rápido predeterminada para
compilar tu blueprint. Lo cambié
por mí personalmente, en mis preferencias de editor, lo
cambié a F8, F9, pero F7 es la
forma predeterminada de compilar tus, bien, algunas acciones variables
que debes conocer. Déjame ir a
algún espacio vacío. Sólo voy a
traer rápidamente un nodo de anuncios. Operadores, Agrega una forma de obtener
y establecer una variable rápidamente. Si vas a estar
enchufándolo en el lado de entrada, simplemente
puedes hacer clic izquierdo
y arrastrarlo encima de un pin como ese para obtener el
contenido de esa variable. Sin embargo, si vas
a arrastrar y soltar en el lado de salida de un nodo, haz clic con el botón izquierdo en
la parte superior de ese pin y automáticamente traerás un
centro de esa variable. También debes saber
que si mantienes presionada tecla Control y el control con el botón izquierdo más el clic izquierdo y arrastra esto a una gráfica
y la sueltas en cualquier lugar. Puedes obtener esa variable
si mantienes presionada la tecla Alt y haces
clic izquierdo y
arrastras, puedes traer un
centro de esa variable. Y si no estás seguro de lo quieres hacer con
esa variable, puedes hacer clic con el botón izquierdo del mouse y luego obtienes ese menú para
obtener o configurar. Y esa es una forma en la que puedes decidir sobre la marcha qué
quieres hacer con eso. Ahora bien, algo
de lo que mucha gente no conoce con variables en
el panel Mi Blueprint, puedes reordenarlas
simplemente arrastrándolas por ahí. Entonces, si quería colocar todas mis variables flotantes una
cerca de la otra, simplemente
puedo
hacer clic izquierdo y arrastrar. Entonces, cualquiera que sea el que vayas
a arrastrar encima, va a saltar eso
justo encima de él, así. Entonces podrías hacer
algo así para organizar tus variables, todo bien en tu sección
myvariable. A continuación, voy a presumir en diversas acciones de nodo
que puedes tomar. Y voy a
eliminar a algunos de estos getters y
setters aquí mismo. Voy a dejar este nodo
add aquí mismo. También voy a
hacer clic derecho y traer en un evento personalizado. Voy a dejar eso en
un nombre genérico ahora mismo. También voy a traer una
de mis funciones
a medida, mi
función Modificar salud también. Bien, primero tenemos el menú contextual específico del
nodo. Si tuviera que hacer clic derecho
en un nodo dado, traeré a colación un nodo contextos
específicos Menú cosas que puedo
hacer con ese nodo dado, podría agregar un punto de interrupción
o alternar un punto de interrupción. Esas son dos acciones muy
comunes. Romper enlaces de nodos es
una acción muy común. Refrescar un nodo es
una acción muy común. Obviamente, tienes
tu copia y corte, duplicado, todo ese
tipo de cosas también. Tenga en cuenta, sin embargo, este era mi menú contextual para
este nodo de función. Si tuviera que hacer clic derecho
en este nodo de adición, echa un vistazo a una de mis opciones que tengo específicas para este nodo. Tengo la capacidad de agregar un pin. Podría agregar un pin
específico a este nodo, ese no está disponible. Si hago clic en este
nodo de función aquí mismo, sin embargo, diferentes nodos pueden tener
diferentes acciones de nodo como este
nodo de adición aquí mismo. Ahora algunos nodos sí
permiten hacer doble clic sobre ellos para ir a ese nodo
asociado o a una gráfica. Esta es una función hecha a medida. Entonces, si tuviera que hacer doble
clic en esta función que
creé anteriormente en el curso eso abrirá esa pestaña de función dada para mostrarme lo que hay
dentro de esa función. Entonces es bueno
saber los nodos Timeline. También puedes hacerlo. Para abrir el Editor de Línea de Tiempo, mueve una nota, sabes que
ya puedes hacer clic izquierdo y arrastrarla así. Sin embargo, también puedes
usar las teclas de flecha tu teclado para
moverlo hacia arriba y hacia abajo, la izquierda y a la derecha, etcétera. Para eliminar un nodo, simplemente
puede seleccionarlo así y presionar la tecla Eliminar para cambiar el nombre de un
nodo como un evento personalizado. Tenga en cuenta nuevamente, esto no está
disponible en todos los nodos dados, sino evento personalizado donde
puede nombrarlo. Simplemente puedes hacer click izquierdo
sobre el título aquí mismo. Y eso te permitirá
renombrarlo mis eventos de disfraces. Pulse Intro. Alternativamente, puede presionar F2 con el seleccionado, y eso le permitirá
renombrarlo también, evento personalizado
renombrado. Otros comandos aquí, permítanme simplemente borrar estos
hacia fuera y traer en algunos nodos nuevos van a hacer clic derecho traer
en la tecla siete, dirá siete clave. Vamos a modificar algo de salud. Y déjame volver aquí, accidentalmente
hice doble clic en eso. También traeré un nodo de
retardo. Entonces ya debes saber
que si
seleccionas el nodo y
presionas la tecla F9, puedes agregar un
punto de interrupción para eso, y yo puedo hacerlo
por cada uno de estos. Entonces cada uno de estos tiene
un punto de ruptura en él. Para borrar todos los puntos de interrupción, puedo hacer Control Shift y F9, eso me deshará
de todos ellos de inmediato. Para cortar una selección, simplemente
puedo hacer Control X. Obviamente controlar una
V es pegar eso. Copiar una selección dada. Sólo puedo tener un
par de nodos seleccionados como este
control C, control V. Deberías saberlo
desde casi cualquier tipo de
aplicación informática. Veamos para duplicar
una selección. Entonces solo voy a seleccionar
estos y hacer Control más D, y eso los duplicará. Y por último, ya
debes saber que puedes agregar
un comentario alrededor una selección simplemente
seleccionando los nodos alrededor de los que
quieres crear un comentario. Al igual que todos estos tres, presiona la tecla C para agregar un cuadro de
comentarios, mi cuadro de comentarios. Y nuevamente, una vez que hayas creado un cuadro de comentarios en tu ventana de
marcadores, que accede Windows. Marcadores. Entonces deberías poder encontrar ese cuadro de comentarios en
algún lugar de ahí
está justo abajo en la parte inferior
se conoce como Comentario. No obstante, si compilo, ahora actualicé a mi cuadro de comentarios, si tuviera que navegar
lejos de él, podría hacer doble clic sobre él
para saltar a mi cuadro de comentarios. Bien, varias acciones de pin
que debes conocer. Vamos a traer aquí un par
de nodos para
ayudar a facilitar esta discusión. ¿Sabes qué?
Voy a traer a un actor spawn de nodo de clase porque es
bueno demostrarlo con eso. Si tuviera que hacer clic derecho
en un pin dado, como mi spawn
transform aquí mismo. Traeré un menú de diferentes acciones de pin
que puedo tomar, puedo promover esto a una variable que es una acción pin muy común. Se puede ver que en
casi cualquier dolor aquí promueve una variable también con una transformada de engendro o
un vector o un pin rotador. Si hace clic con el botón derecho en esto, puede dividir
el Pin de estructura porque una transformación
consiste en datos de ubicación, rotación y escala. Entonces fomente haga clic derecho sobre esto. Esencialmente puedo exponer los componentes dados
de ese pin, la ubicación, la rotación y los datos
de escala de esa transformación. Si vuelvo a traer mi Add
Node aquí, voy a hacer clic derecho,
traer ese nodo add. Si tuviera que hacer clic derecho
en estos bolígrafos grises, estos son pines comodín. Podría hacer clic derecho sobre él. Y tengo
diferentes acciones de pin que puedo tomar aquí también, aunque estas no están
listadas acciones de apuntalamiento, las considero acciones pin. Puedo convertir el lápiz
a un tipo de datos dado. Entonces si sé que quiero que esto
sea un entero más digamos, un bolígrafo flotante, puedo
cambiarlos en consecuencia. Ahora a veces cuando comienzas a
crear algún código de espagueti, tienes cables que van por
todas partes. A veces solo
quieres enfatizar un cable conectado solo para que sea más fácil de leer, por así decirlo. Entonces si tuviera que enganchar
uno de mis cables aquí, déjame simplemente tomar cualquier
flotador aquí salud, voy a arrastrarlo
encima de ahí. Si tuviera que pasar el ratón sobre este alfiler, se
puede ver cómo ilumina
ese cable ahí mismo. Y funciona en ambos sentidos. No importa de qué lado
del cable aquí estoy pasando el ratón, pero se puede ver
que poco a poco ese cable gana en fuerza e
ilumina un poco más. Entonces eso solo puede ayudar con fines de
legibilidad. Ahora digamos que quería conectar esta variable
a una pluma diferente. Podría cortar el
bolígrafo manteniendo presionada la tecla Alt y haciendo clic izquierdo en el fragmento de la herramienta
Pluma así. Sin embargo, si quisiera moverlo, podría mantener pulsado
Control clic izquierdo y arrastrarlo a otra
entrada también. Y nuevamente, eso funciona en ambos lados de nuestra
conexión aquí. Entonces, si también quisiera mover
este pin, podría mantener pulsado Control, hacer clic izquierdo y moverlo. O si quieres
cortar ese cable, mantén presionada la tecla Alt, haz clic con el botón izquierdo y eso cortará ese cable. Bien, Y finalmente, vamos a
mostrar las teclas de acceso rápido para agregar algunos de los nodos más utilizados
a tu gráfica. Tenemos manteniendo pulsada
la B y dando click izquierdo. Añadiremos un nodo de sucursal. Si mantienes presionada la tecla
D y haces clic con el botón izquierdo, traerás un nodo de retardo, úsalos todo el tiempo. Mantenga presionada la tecla S y
haga clic con el botón izquierdo que trae un nodo de secuencia, el GT y el clic izquierdo que
trae un nodo de puerta, la M, M como en Mary, y el clic izquierdo,
traerán un nodo de puerta múltiple. Si mantiene presionada la tecla
F y hace clic con el botón izquierdo, trae una para cada bucle. Si mantienes presionada la tecla
N, N como en Nancy, haces clic con el botón izquierdo y eso
traerá un nodo do n. Si mantienes presionada la tecla 0 y
haces clic con el botón izquierdo, quiero nevado. Y si mantienes presionada la tecla
P y haces clic con el botón izquierdo, traerás
Event Begin Play si aún no se ha
agregado a tu gráfica, yo uso esas
teclas de acceso rápido todo el tiempo. Bueno chicos, eso lo va a
hacer todo por este video. Nos vemos la próxima vez.