Transcripciones
1. Promoción de UE5 FC01 01: Hola, y bienvenidos
al curso completo para principiantes de Unreal Engine five Mi nombre es Alona Bazade y
seré tu instructora. Si quieres trabajar
con Unreal Engine y convertirte en desarrollador de juegos, este curso será
la elección perfecta para ti. Esto es
lo que aprenderás. Fundamentos. En esta sección, aprenderás los conceptos básicos
de Unreal Engine five Comenzaremos explorando
la interfaz, las herramientas de navegación
esenciales y teclas de acceso rápido para
mejorar su flujo de trabajo. Actores. Los actores son
los bloques de construcción de cualquier proyecto de motor Unreal En este capítulo,
te sumergirás en el concepto de actores,
mallas y objetos Entenderás cómo
interactúan y cómo administrar
sus dependencias. Materiales. Los materiales son la clave para crear un proyecto visual
atractivo. En esta sección,
aprenderás a construir y modificar materiales
en Unreal Engine Modelado. Unreal Engine ofrece
potentes herramientas de modelado, y esta sección te las
presentará Aprenderás a modelar
directamente dentro del motor, crear activos y
manipularlos para que se
ajusten a las necesidades de tu proyecto. Sistema Lightning. sistema de
iluminación Unreal Engines es una de sus características más
potentes Aprenderás a crear configuraciones de
iluminación usando
puntos direccionales y focos También exploraremos la
iluminación
dinámica y declarada y aprenderemos
a optimizar su escena. Planos. Los
planos te permiten crear complejas mecánicas de
juego sin escribir una
sola línea de código Cubriremos en detalle las secuencias de
comandos visuales, enseñándote cómo
configurar interacciones, eventos y desencadenantes
entre actores y objetos Paisaje y material maestro. Esta sección trata sobre la creación
del entorno. Aprenderás a construir vastos paisajes y
terrenos para tus proyectos Luego aplique el sistema de
materiales maestros para poblar
automáticamente
su entorno con biomas y texturas. Jugabilidad. En este capítulo, nos centraremos en la mecánica del
juego. Aprenderás a crear
interacciones entre tu personaje y el
entorno. Mini juego. En esta sección final, pondrás todo junto
para crear un minijuego Este proyecto práctico te
ayudará a entender todo
el flujo
de trabajo, desde configurar un proyecto hasta crear
entornos, programar interacciones y finalizar un nivel jugable Este curso está estructurado
para brindarte un enfoque paso a paso
para aprender Unreal Engine Con ejemplos prácticos
del mundo real, obtendrás no solo habilidades
técnicas, sino también una comprensión más profunda de cómo abordar un proceso de
desarrollo de juegos. Vamos a sumergirnos y comenzar a crear con Unreal
Engine five. Mm.
2. UE5 FC02 01: Bienvenido a Unreal Engine
cinco tiendas básicas. Durante las próximas horas, pasaremos por la configuración
del proyecto, navegación de la
interfaz, la configuración
ambiental y la creación de
objetos y actores interactuables Al final de este curso, deberías poder usar
cómodamente Unreal Engine five y tener una
comprensión básica de todas las funciones principales
de Unreal Este curso no requiere
ningún conocimiento previo sobre muerte
irreal del juego o
C plus o CSA Antes de que podamos seguir
adelante con la conferencia, necesitamos descargar
UnreleEngine Si ya tienes instalado
Unreal Engine, dudes en ignorar este video
y saltarte la siguiente conferencia Para descargar Unreal
Engine, primero, necesitamos descargar
Epicamesauncher Puedes hacerlo yendo a unrealengine.com y haciendo clic en
el botón Descargar Si no sabes cómo hacerlo
o tienes problemas para entenderlo, haz clic en WatchoWT Instalar tinta en la
pantalla a la derecha Esto te enviará a un video de
YouTube el cual
te explicará y
recorrerá el proceso. Ahora que Epic Games
está instalado, instalemos el propio motor. Haga clic en el toque Unreal
Engine en el lado izquierdo y vaya a Biblioteca Aquí, puedes elegir qué motor
Unreal necesitamos. Estaremos usando Unreal Engine cinco puntos cuatro para este curso Para fines de demostración, descargaré cinco punto tres. Pero aquí, es necesario hacer
clic en cinco Punto cuatro. Después de hacer clic y
seleccionar la versión de su motor, haga clic en el botón Instalar Y ahora necesitamos seleccionar una
carpeta para el motor Unreal. Asegúrese de seleccionar la unidad
SSD si tiene una y haga clic en Opciones. Si te desplazas hacia abajo, es posible que tengas estas cuatro opciones
seleccionadas por defecto. A menos que estés interesado en desarrollar para esa plataforma
específica,
compruébalos ya que esto reducirá el tamaño requerido para
tu motor irreal Asegúrese de mantener habilitados el contenido
inicial, paquetes de
plantillas y funciones los paquetes de
plantillas y funciones
y la fuente del motor. No necesita
símbolos de editor para depurar. Haga clic en Aplicar y haga clic en Instalar. El motor real cinco
ahora se va a instalar
en tu PC.
3. UE5 FC02 02: Ahora, comencemos por
crear un nuevo proyecto. click en el botón de inicio y dale un momento
mientras se inicializa Aquí, tenemos una selección
de plantillas que podemos usar, las
cuales son proporcionadas por Unreal Tenemos múltiples
selecciones aquí para juegos, cine, video, arquitectura,
automoción y simulación. Para los fines de este curso, utilizaremos la plantilla de juegos de
persona cert Asegúrate de nombrar tu proyecto y ten
en cuenta que no puedes usar espacio y el nombre debe tener menos de 20
letras caracteres. Ahora tenemos que seleccionar los valores predeterminados
del proyecto. Haga clic en el blueprint,
desktop, Maximum y
manténgase en el contenido inicial No
usaremos las carreras de tarifas, pero a tener en cuenta si tu proyecto
lo requiere, deberías. Todos estos pueden ser cambiados desde el proyecto después de su creación. Entonces en caso de que necesites cambiar algo que
se pueda hacer después. Haga clic en el botón Crear. Dale un momento para
crear tu proyecto. Y ahora tu
proyecto irreal está listo. Nos vemos en la próxima conferencia.
4. UE5 FC02 03: Ahora, hablemos de las ventanas que tenemos
disponibles para nosotros. En el lado izquierdo, tenemos la ventana de
Place Actors. Es una ventana que te permite
arrastrar y soltar cualquier actor, objeto o forma o luz, cualquier cosa realmente a
tu escena fácilmente. Puedes tener tu
propio SSP creado aquí también que puedes simplemente arrastrar y soltar
en la escena En el lado derecho,
tenemos outliner mundial. ¿Qué hace World Outliner? World Outliner es una
lista de todos los objetos o actores existentes en
tu escena en el nivel Puedes hacer click sobre ellos aquí, y los tendrás seleccionados
automáticamente
en el nivel. Puedes dar click aquí y
podrás ver el nombre. Es bastante útil para
organizar tu maquetación. Entonces, por ejemplo, todos los bloques
están dentro de la carpeta de bloques. Puede ocultarlos en
combinación en lugar de hacer clic en ellos
individualmente y
ocultarlos del nivel o
eliminarlos o moverlos. Puedes hacer clic o así, múltiples objetos
al mismo tiempo para
moverlos al mismo
tiempo. Es bastante útil. Puedes moverte por todas las ventanas en tu escena
irreal del motor Por ejemplo, puedes tomar
el outliner, separarlo,
hacer una ventana separada, hacer una ventana separada, o puedes colocarlo
en otro lugar, parte inferior de la pantalla tal vez o
tal vez la quieras a la izquierda Depende de ti, de verdad. Se
puede quitar. Si quieres. Y si lo quieres de vuelta, siempre
puedes ir a la
ventana, tocar en la parte superior y encontrar la ventana
que acabas de quitar. También puedes tener múltiples ventanas
de la misma cosa. Entonces outliner ya está de vuelta, y lo prefiero a la derecha. Contamos con detalle spanel también. Entonces, cuando tienes un
objeto seleccionado, obtienes
información detallada aquí. Entonces déjame mover esto aquí. Encima, como prefiero. Y ahora tenemos acceso a la información
sobre este objeto. Como pueden ver, a medida que me muevo esto, la
ubicación de transformación aquí cambia. Puedo ingresar manualmente
cualquier valor que quiera. Puedo rotarlo desde
aquí si así lo deseo, o escalarlo hacia arriba o hacia abajo. Si quiero escalarlo de manera uniforme, puedo hacer clic en este
botón de bloqueo y escalarlo de esta manera. También hay materiales
aquí y malla. Entonces aquí, si
tienes un objeto en la escena que quieres mantener toda la
ubicación transformada y el exceso de escala, pero quieres cambiar la malla, puedes hacer clic aquí y buscar o simplemente elegir la malla a la
que quieres cambiarla. Entonces ahora quiero
cambiarlo a esta silla. Entonces hice clic en la silla. Ahora tenemos una silla. Vamos a verlo de cerca. Y sí, ahora tenemos
una silla en la escena. Si quiero deshacerlo, siempre
puedo controlar Z. Ahora tengo mi cubo Si quiero cambiar material, sólo
puedo elegir un
material de aquí. Probemos esta reina 01. Y ahora nuestro cubo
se ve diferente. Vamos a tener un up amarillento
con algo metálico por ahora. Es el mismo material que
se utilizó para la silla. Ahora que hemos terminado de
mirar los detalles y outliner, hablemos de Cajón de contenido Puedes hacer clic en el Cajón de
contenido aquí, que te permitirá ver todos los activos disponibles para
ti en tu proyecto. El contenido de inicio
contiene una gran cantidad de mallas
útiles, materiales, utilería, partículas para aprender motor
irreal, y si solo quieres
prototipo de nivel para Aquí, vamos a los apoyos, y tenemos múltiples
mallas de las que podemos usar Entonces pongamos una mesa. Y solo arrástralo y
suéltelo a la escena, dale un momento para
compilar shaders Y ahora tienes una
silla en tu pantalla. Si quieres tener
tu navegador de contenido visible en todo momento y no
bajar y
esconderte, puedes hacer click en el botón Doc
in Layout aquí. Esto te permitirá tener
un navegador de contenido en tu pantalla en todo momento. Puedes ponerlo en
tu segunda pantalla o como todas las demás ventanas, simplemente
puedes
adjuntarlo en alguna parte. Entonces prefiero tenerlo
en la parte de abajo de mi pantalla. Si tienes algún problema con tu diseño o
digamos que de alguna manera
eliminaste las ventanas y no
recuerdas sus
nombres ni cómo restaurarlas, lo que puedes hacer es hacer clic
en la pestaña Ventana en la parte superior. Haga clic en Cargar diseño y haga clic
en Diseño del editor predeterminado. Esto restaurará el diseño real. Puedes hacer clic en Control Space y recuperarás tu navegador de
contenido, tu panel de Detalles
y outliners Obac Podrán notar que ya no tenemos tabulación de actores de
lugar. Eso es porque ese es
el diseño predeterminado para Unreal four classic, que realmente no necesitamos También se puede acceder a la pestaña Place Actors desde aquí. Todo lo que está en
el lugar actores, más o menos
se puede acceder aquí, y siempre puedes simplemente
hacer clic en una forma que quieras o un objeto y simplemente puedes hacer que
aparezca en tu escena. Hay muchas
otras ventanas en
la pestaña de Windows de las que
hablaremos en las próximas conferencias. Algunos detalles más sobre
la interfaz irreal. Si tienes un objeto seleccionado
y lo mueves alrededor, verás que se mueve en cierto incremento,
como si estuviera rompiendo Esto se debe a que tenemos
esta opción aquí habilitada. Si aumentas el chasquido, solo
se romperá en
los incrementos de 100. Si lo pones como uno, verás que tienes
un movimiento suave. Y si solo lo deshabilitas, tienes aún más movimiento
incremental. mí personalmente me gusta
que la guarden a una o diez con el propósito de tener una ubicación uniforme
para mis objetos en la escena. Se puede hacer lo mismo con
rotación y escalado. También tenemos
opciones de viewport aquí. Si haces clic en las opciones de
ventana gráfica aquí, tres líneas en el lado izquierdo, tendrás muchas
opciones disponibles para ti Hablaremos de ellos
en las futuras conferencias, pero la que
probablemente deberías tener en cuenta
es el porcentaje de pantalla. Si tiene activado el
porcentaje de pantalla, puede hacer clic en Anulación personalizada y hacer clic en el
porcentaje de pantalla que desee. Si miras el fondo
aquí
en las líneas de los objetos, si reduzco mi porcentaje de
pantalla, las líneas se desenfocarán en rojo. Esto se debe a que ahora
se está renderizando solo el 25% de los polígonos
disponibles en la piel Si pones 200, los
renderizará
a mayor resolución. Recomiendo mantenerlo al
100 para tener una buena calidad. Lo cual es una buena referencia de
cómo se verá tu juego. Por supuesto, si tu juego tiene menor resolución,
ajustes habilitados, también
puedes esencialmente
hacerte una buena idea respecto poniendo
en, digamos,
si tu juego va a tener
una resolución del 50%, solo
puedes ponerlo aquí,
y ahora así es como si tu juego va a tener una resolución del 50%, solo
puedes ponerlo aquí, se verá si tu juego tiene solo
50% de resolución o 25 o 200 digamos cuatro K. Discutiremos esto
en futuras conferencias También
hay modo de selección,
paisaje, follaje,
malla, modelado,
fractura, cepillado
y pestañas de animación, que también discutiremos
en la futura conferencia Aquí, si presionas
el botón de reproducción u
OP en tu teclado, esto entrará en modo de reproducción. Lo que hace el modo de juego es
esencialmente simula tu juego. Tenemos seleccionada la
plantilla de tercera persona, así que tenemos todo
preconfigurado para una tercera persona. Puedes moverte
usando WAST jump. Y si
dependiendo de la plantilla, algunas plantillas pueden
tener una pistola que pueda disparar o un vehículo con el que puedas moverte o volar
objetos con los que puedas volar. Ahora, hablemos de
interfaz irreal y navegación. Para moverte por tu cámara, mantén pulsado el botón derecho del ratón. Si quieres avanzar, haz clic en W S hacia atrás, izquierda, A, derecha, T, abajo Q E para arriba. Puedes desplazarte hacia arriba para aumentar o disminuir la velocidad de
movimiento de tu cámara. O puede hacer clic y seleccionar la velocidad de
su cámara aquí. También tenemos Gizmos para movernos alrededor de los
objetos de la escena Por defecto, si has
seleccionado Objetos Gizmo, no
verás nada Si haces clic en W o haces clic en el icono Seleccionar y traducir
Objetos en la parte superior, obtendrás estas flechas. Estas flechas se pueden utilizar
para moverse alrededor del objeto. O puedes hacer click en el círculo, moverlo en tres espacios D. También puedes hacer click en
Iki o en este icono en la parte superior, seleccionar y rotar objetos, lo que te permitirá
usar que Gizmo También hay
objetos a escala Gizmo. Haga clic en R o haga clic en
este icono en la parte superior y
podrá escalar sus
objetos como desee. Para ocultar tu Gizmo, siempre
puedes
hacer clic en el botón Cue o hacer clic en el icono Seleccionar objetos en la parte superior aquí para ocultar tu Gizmo y asegurarte de no mover tus objetos por accidente
5. UE5 FC03 01: Bienvenidos a la conferencia.
En esta conferencia, vamos a platicar
más a fondo sobre cómo manipular actores
y objetos en la escena. Ya tocamos
el tema en el
video anterior, pero en este video, vamos a
profundizar más en cómo usar las teclas de acceso rápido y los parámetros
para manipularlo. Entonces tenemos una mesa aquí, cual puede ser manipulada con nuestros artilugios como se discutió
en el Movimiento, rotación y escala
También podemos hacer clic y mantener pulsada la
tecla All Alt para duplicar el objeto. Puede desplazar el clic
a varios objetos, mover la
tecla Alt para duplicar
varios objetos también. Si mantienes pulsada la tecla Mayús
y mueves tus objetos, tu cámara se
moverá junto con ella. Si presionas Mayús y Alkey al mismo tiempo
que mueves tu objeto, crearás un duplicado
y tu cámara se
moverá con un
duplicador recién creado del Si eliges varios objetos, como lo hice ahora e
intentas girarlos, la rotación ocurrirá alrededor
del último objeto seleccionado. Puedes definir fácilmente cuál es buscando
dónde está tu artilugio Si queremos cambiar la malla
del objeto manteniendo su ubicación y los parámetros
transforman los parámetros, puede hacerlo aquí en
la malla estática. Digamos que queremos cambiar
esta mesa en una silla. Agradecidamente, se proporciona
en contenido de inicio, así que simplemente podemos hacer clic en él
aquí y tenemos una silla Ahora bien, si tratamos de encontrar la ubicación del activo para la que
usamos esta mesa o silla, y no estás seguro dónde se encontraba en
tu navegador de contenido, siempre
puedes hacer clic en
este icono de aquí, y te llevará directamente
a la ubicación del activo. Así que ahora podemos ver contenido, contenido iniciado y
props es la carpeta Y lo que podemos hacer aquí, podemos dar click sobre un objeto. la segunda
tabla y hagamos clic en el sofá en nuestro navegador de contenido y aquí en el panel de detalles. Si bien esto está seleccionado
en el navegador de contenido, da clic en este arochy Esto cambiará automáticamente la malla seleccionada en el activo que hemos seleccionado en
el navegador de contenido. Esto funciona no sólo para mallas, sino también para materiales y otros tipos de
activos que son log se pueden utilizar desde el navegador de
contenido Digamos que queremos cambiar
esto a otra cosa. Entonces vamos a repetir el proceso. Digamos, tomemos una estatua y cambiemos
este objeto por estatua. Y ahora tenemos una estatua
para colocar sobre la mesa, lo cual podemos hacer muy bien. Y digamos que
queremos una segunda silla. Manera fácil de hacer esto. Haga clic automáticamente en
obtener seleccionado. Da click en esto y sé. Ahora tenemos nuestra silla y
el sofá y la lámpara o lo que sea que
se supone que sea este cristal. Ahora, hablemos de cómo
manipular sus materiales. Entonces de manera similar. Digamos, selecciona este sofá y tenemos
carpeta de materiales aquí. Estos son
materiales estándar que vienen con contenido
de arranque del motor Unreal Y aquí tenemos opciones. Como pueden ver, tenemos
un material llamado Chair, que se está utilizando
para este sofá. Cambiemos este material
por otra cosa. Ahora, vamos a probarlo. Como pueden ver, todo
lo que necesito hacer es simplemente
dar clic en el material
y dar clic en el icono. Pero también se puede arrastrar el
material sobre el propio objeto. También puedes seleccionarlo de la
lista si así lo deseas. Puede que tengas que esperar a que se compile y siempre puedes, como dije antes, simplemente hacer clic en él y dictarlo encima
de algún material. Tengámoslo dorado. Hay opciones adicionales aquí en el
panel de detalles sobre su objeto. En primer lugar,
si notas que hay una báscula y cerca de la báscula,
hay un icono de candado. Si no lo tienes bloqueado e intentas
escalar un objeto, solo
escalará en una dirección en un
eje para ser precisos. Si lo bloqueas y te mueves
a lo largo de tu transformación, lo hará de manera uniforme. Ten en cuenta, siempre
puedes simplemente escribir la resolución que
quieras, los valores que deseas. Y si
lo estás usando con algunos números
o escalas complicados , ten en cuenta. Puedes hacer cosas así. Digamos uno más 00 punto cinco. Lo irreal hará
la misa por ti. Si quieres duplicar la escala, simplemente
puedes hacer click en multiplicar
y dos. Así que duplicarlo. Se puede dividir
así como multiplicar. Puedes hacer todas las operaciones masivas con los valores que te da lo
irreal Y no se limita
solo al panel de detalles. Se puede usar prácticamente en
todas partes en lo irreal. Tenemos otras opciones aquí
en el panel de detalles, que no van
a ser cubiertas ahora. Los cubriremos más adelante. Ahora, hagamos una tarea. Tienes acceso a
tu contenido de inicio y a todos los apoyos que contiene. Ve a la carpeta Props y selecciona las mallas que
quieras, mallas estáticas Arrástralos, sumétalos a la escena y crea un pequeño conjunto de
la manera que desees. Solo prueba tus herramientas
y acostúmbrate a ellas.
6. UE5 FC03 02: Si. Ahora, hablemos de cómo
mantener organizada nuestra escena. Como pueden ver, he montado aquí
una escena sencilla con tres sillas, una
mesa y una lámpara. Así que vamos a
recogerlos a todos y moverlos. Entonces, si quieres mover nuestros objetos como un conjunto
durante el nivel, tenemos que hacer click en
cada uno haciendo click en ellos uno por
uno o moverlos de forma independiente, lo que lleva mucho tiempo
e ineficiente Lo que te
gustaría hacer en cambio
es hacer clic en todos ellos. Y presiona Control G, agruparlos. Ahora son un grupo de actores, por lo que se mueven como uno
y son seleccionados como uno solo. Puedes cambiar G para
desagruparlos y Control
G para agruparlos. Puede hacer clic derecho,
ir a grupos y grupo o hacer clic derecho
y hacer clic en grupo. Lo mismo. También puedes hacerlo desde outliner
desde el lado derecho aquí Como pueden ver,
aquí
tenemos una ficha de actor grupal , que es esta. Ahora, antes de movernos uno, hay una propina que me
gustaría darle. Si quieres mover un solo objeto
de todos los demás objetos, pero no quieres desagruparlos todos y
agruparlos de nuevo, lo que puede
llevar mucho tiempo cuando tienes tal vez 40 mallas en
un solo grupo, lo que puedes hacer es
hacer clic en
estos ajustes en estos ajustes en Ir a Una selección de grupo. Haga clic en él, y ahora la
selección de grupos está deshabilitada. Este sigue siendo un grupo de actores, pero ahora puedes
seleccionarlos individualmente. Entonces ahora digamos
que quiero
acercarlo y éste también. Y ahora puedo hacer clic en Ir a configuración y hacer clic en
Permitir selección de grupo, y ahora puedo
seleccionarlos nuevamente como grupo. Esto es bastante eficiente
cuando tienes muchas medidas en la
escena que están
agrupadas y no
quieres desagruparlas y
agruparlas nuevamente Y ahora podemos
moverlo fácilmente a donde queramos. La escena, vamos a guardarla aquí. Ahora, otra forma en la que podemos organizar a nuestros actores
es mediante carpetas. Escena irreal de este nivel ya
tiene carpetas predeterminadas, pero los actores que agregamos
no se agregan a la carpeta Así que vamos a crear una carpeta. Puedes crear una
carpeta haciendo clic en esta carpeta con un
icono más en la parte superior derecha. Haga clic en él, y si tiene
el objeto seleccionado, se
agrega automáticamente a la carpeta. Cambiemos el nombre de esto para
digamos por mueble. Y agreguemos este
sofá aquí también. Lo que podemos hacer es hacer que esto sea más grande más fácil de ver. Tenemos
esta carpeta aquí. Simplemente puedes arrastrar
esto a la carpeta. Ahora nuestros muebles están
agrupados con otros. Pero este mobiliario no
forma parte del actor agrupado. Es un actor separado
en la misma carpeta. Así que no mezcles agrupar actores con solo tener los mismos actores en la misma carpeta.
Hay cosas diferentes. Si quieres, puedes crear
subcarpetas haciendo esto. Entonces digamos set one, y pongamos a nuestro
actor de grupo en el set uno. Otra pequeña tarea. Hagamos un poco de limpieza. Toma tus
escenas creadas anteriormente y organízalas. Crea carpetas, crea grupos, si tiene sentido
tenerlos agrupados, y solo asegúrate de
tener una escena fácil de limpiar que pueda ser fácilmente
navegada a través de outliner Una vez que hayas terminado,
pasa a la siguiente conferencia.
7. UE5 FC03 03: Bienvenida de nuevo. Como pueden ver, he creado una pieza de conjunto
simple usando los accesorios en la carpeta de contenido de
inicio E hice algo de follaje afuera, los
agrupé, agregué
algunos muebles en el interior, y obviamente
los agrupé también con sondas adicionales, fuentes de
luz, y pared de vidrio ,
algunos pilares, como puedes ver, e hice algunas limpiezas
quitando mucho
desorden de la escena Se agregó una puerta y un marco de puerta, y modeló esta sencilla caja
usando herramientas de modelado irreales Ahora hablemos brevemente sobre las herramientas de modelado
dentro de unrele Unreal tiene sus
herramientas básicas de modelado que puedes usar, pero Unreal five dot four tiene
herramientas de modelado adicionales disponibles para ti, pero necesitas
habilitarlas desde los complementos Si hace clic en Editar y
vaya a la sección de complementos. Estos son todos los complementos
disponibles dentro de unrele. Algunos están integrados, lo que significa que UnRel los proporciona por defecto Pueden estar encendidos o apagados. Y algunos se instalan
desde marketplace o plugins
personalizados que tú o
alguien más puedan haber creado. Así que aquí hay muchos
plugins, así que no vamos
a pasar por todos ellos uno
por uno , el modelado de búsqueda. Después de buscar modelado, obtendrá múltiples herramientas de
modelado. Recomiendo
herramientas de modelado Modo Editor, y modo de
modelado Editor de mallas estáticas. Ambos. Ambas son versiones beta, por lo que es muy probable que
se mejoren en el futuro por el consejo irreal de desarrollo Después de habilitarlo, te
pediré un reinicio. Como ya
lo he habilitado, no tengo que hacerlo,
sino simplemente hacer clic en el botón
Reiniciar y darle un minuto para
que se vuelva a inicializar Después de que tu irreal
se haya vuelto a inicializar, ve a la pestaña en la parte superior y
haz clic en Modo de modelado Como también puedes cambiar cinco
para cambiar instantáneamente a él. En las herramientas de modelado,
tenemos muchas cosas. No entraremos en detalles
para cada uno, pero cualquiera que esté familiarizado con modelado verá
muchas herramientas familiares. Entonces, si solo quieres crear una forma básica para
bloquear bloqueando, me refiero solo a mallas de marcador de posición que
se usarán para diseñar
tu nivel Solo puedes usar
herramientas de modelado dentro del carrete. Entonces, de la forma en que creé este, lo
recrearemos
en menor escala En primer lugar, basta con hacer
clic en una forma que desee. En nuestro caso, una caja. También podrías hacer rectángulo, pero como puedes ver, es solo un avión, no es útil. Obtenemos caja. Y necesitamos definir la
altura, anchura del libro. Por defecto,
va 1-2 mil, pero puedes escribir valores
más altos si es necesario. Entonces en nuestro caso,
hagámoslo 500. Mantenlo simple. Vamos a
moverlo hacia arriba. Muévelo por ahí. Y no lo quiero así de pequeño, así que vamos a hacerlo más grande
vertical y horizontalmente, y no quiero que
sea así de enfermo, así puedo reducir la altura. Entonces hagámoslo 20. Se puede incrementar la subdivisión para aumentar la calidad
del modelo, pero como solo lo estamos usando para prototipos,
no tenemos que hacerlo Ahora, después de que hayamos terminado con la
selección de la
forma general que queremos. Y tenemos un tipo de salida, una malla estática, que es
exactamente lo que necesitamos. Podríamos asignar un
material aquí de inmediato, pero lo dejaremos para
más tarde y haremos clic en Aceptar. A menos que haga clic en Aceptar, esta malla no se generará. Y después de hacer clic en Aceptar, ahora es una malla generada
existente en nuestro nivel. Y si das click en él y
das click aquí para encontrar esta malla, veremos que tienes una carpeta
generada y tu carpeta generada como
todas las mallas que necesites Ahora, volvamos
al modelaje. Entonces como puedes ver,
es solo una forma. Puedes pensar que la mejor
manera de hacerlo es simplemente crear otra forma para hacer una pared
en el lado derecho en el lado izquierdo. Pero si prestas atención, esta es una malla entera. Entonces, si tuviéramos que
moverlo, es una malla entera. No es sólo un avión. Entonces, la forma en que hacemos esto usando
la forma más sencilla posible, es hacer clic en la malla
e ir a modelar. Bueno, modelar formas, y
haga clic en grupo de poli Editar. Estas opciones en la parte superior, y la mayoría de las opciones, realmente, no estarán
disponibles para usted a menos que haya habilitado el plugin de modelado
de complementos desde la sección plug in. Después de haber seleccionado la malla y dar clic en la edición de
poligrupos Lo que tenemos que hacer
es hacer clic en una cara. Para información, estos
puntos se llaman vértices. Estas líneas se llaman bordes, y esta cara al
lado de las mallas, esencialmente, se llaman caras Entonces damos click en la cara aquí
y damos click en Extruir. Lo que hace Extrude es crear una nueva cara y
pongámosla así La razón por la que hicimos esto es si miramos el modelo desde abajo, si tratamos de extruirlo aquí, lo extruirá Necesitamos algo más pequeño. Entonces lo extruimos ligeramente, y ahora tenemos un ritmo de línea que podemos usar para
extruir nuestra parte Y ahora tenemos un
lado de la pared. Podemos repetir este proceso
aquí y extruir de nuevo. Y otra vez, Y
ahora tenemos una forma similar. En este caso, no he modelado la parte trasera
del Ya era un muro ahí, pero podemos hacerlo
aquí si así lo desean. Puede utilizar herramientas de extrusión para hacer cualquier tipo
de forma que desee Como puedes ver, podrías hacer formas
complejas si quieres. Aquí hay muchas herramientas que puedes usar para
modificar tus modelos. Se puede utilizar push pull,
que es similar, pero técnicamente
diferente función que en realidad puede reducir. Técnicamente, como se le llama. Tira o empuja el modelo. Hay bisel, lo cual
no es realmente útil aquí porque no he
seleccionado ningún borde, haga clic y seleccione el bisel a No hay
muchos polígonos, así que no se ve bien,
pero como pueden ver, hemos modificado la
forma del modelo No vamos a tocar esto
y solo podemos
cancelarlo y yo también lo cancelaré. Otra vez, porque
no he guardado el modelo. En el momento en que lo cancelé,
los canceló a todos. Asegúrate de hacer clic a excepción de tu modelo
para que te guardes. No necesito este modelo,
así que simplemente lo voy a quitar. Pero me gustaría ver
lo que has creado. Y no olvides
limpiar tus modelos. Como ya no
lo voy a usar ,
solo lo eliminaré. Probablemente podría cambiarle el nombre a
algo más razonable, pero como no voy a
quedarme con esto por mucho tiempo, no me
voy a molestar. Ahora, tenemos un conjunto sencillo que no se ve
realmente tan atractivo por el
color y la iluminación. Es simplemente gris con
rejilla, no el mejor look. Y vamos a cambiar todo
eso en la futura conferencia.
8. UE5 FC04 01: Bienvenido de nuevo. En esta conferencia, vamos a hablar sobre los materiales,
cómo aplicarlos, cómo crearlos y cómo
modificar los materiales existentes. Por suerte, Unreal nos
ha proporcionado materiales en
el contenido inicial, que usaremos para fines de demostración
inicial Y después de eso, te mostraré cómo crear materiales básicos. Como puedes ver en este nivel, el material de textura basado en cuadrícula vez que es útil para el desarrollo al globo ocular el tamaño y ubicación
de los activos que colocas, no
es muy guapa Entonces vamos a
cambiarlo. En primer lugar, este piso aquí
no se ve tan bien. Me gustaría
convertirlo en algo que tenga más sentido
estar sobre el terreno, y aquí tenemos algunos materiales. Me vendría bien, supongo, concreto
molido. A ver. Usemos adoquines, lisos,
como, y coloquemos aquí. Hmm. Esto se ve bastante raro. Y la razón por la que
esto
sucedió es porque el material
está estirado. Si abres el material en sí, puedes verlo aquí,
se ve bien. Y si pones una forma
básica simple de digamos, un cubo y aplicas
el mismo material. Esto también se ve bastante bien. La razón por la que esto sucede
es porque la diferencia UV. Este piso no está realmente
optimizado para este material. Entonces lo que podemos hacer aquí, podemos abrir nuestro material y este es un nodo material
para este material en particular. Esto es bastante complicado, pero no necesitamos
mucho de aquí. Lo que necesitamos encontrar es
encontrar el nodo de coordenadas de textura. Entonces todo lo que necesitas hacer es encontrar esto y
tejas tu material. Cuanto mayor sea el número, más
aplaste las texturas. Puedes hacerlo aquí o aquí. Haga clic excepto. Dale el momento para que sea seguro.
Y ahora veamos. Es mucho mejor,
pero sigue siendo demasiado grande. Así que vamos a multiplicarlo por
diez veces otra vez. Tal vez 50 y 50. Y ahora a salvo. Vamos a darle un
momento. Idealmente, no
querría editar mosaico en los materiales
individuales y usar material de instancia Pero voy a explicar qué son los materiales de
instancia más adelante. Bien. Esto podría ser mejor
si
lo aleatorizamos pero esto debería estar bien
para fines de demostración Ahora tenemos una planta
baja lisa. Y ahora veamos esto aquí. Realmente no me gusta
este material. Entonces usemos otra cosa. Podríamos usar algo
elegante como este material aquí para tener este aspecto
futurista Este material utiliza luces
emisivas. Lo siento, material emisivo
que produce luces. Si vas al material, verás que hay un noid de
color emisivo que
se está aplicando Pasaremos por ello
más adelante con más detalle. Pero por ahora
aumentemos el alicatado. Digamos que cinco por
cinco debería estar bien. Vamos a aceptar. Nuevamente,
dale un momento. Se ve mucho mejor. algo de una película de Ciencia Ficción. Pero como vamos a agregar
luces a esta escena más tarde, no
queremos que esto
sea contradictorio con
las fuentes de luz Entonces, a pesar de que
se vea tan genial, escoja un material más simple. Digamos, por ejemplo,
¿qué tal esto? Se ve similar, pero no
hay luces. O tal vez. Deberíamos hacerlo de la madera. Podríamos hacerlo de
la madera, también. Hagámoslo de la
madera. Dar el momento. Pero, no se ve
bien. Vamos a quedármela. Metal negro, rejilla metálica. Esto es un poco demasiado grande, así que vamos a tejearlo un poco más. Entonces hagamos 88 y veamos. Debería ser
lo suficientemente bueno. Este piso. Lo siento, todo esto necesita tener
material cambiado, también. Apliquemos aquí también. Esto debería estar bien.
Quizá un poco demasiado oscuro, pero a quién le importa. Lo suficientemente bueno. Como pueden ver, hemos cambiado el aspecto de toda
la escena. Pero estos son todos los materiales que ya existen
en el kit de inicio. No
siempre se proporcionan materiales, y habrá momentos en los que quieras crearlos tú mismo. Así que vamos a crear un material. Vamos a nuestra carpeta de contenido. Crea una nueva carpeta
llamada material. Ábrelo y
haz clic derecho o haz clic en Más. Puede hacer clic derecho
y crear un material yendo a aquí material
y haciendo clic en el material. Aquí hay muchas cosas que son para los futuros cursos. Haga clic en el material.
Vamos a llamarlo básico M entendido puntaje básico. M de pie para material. Es bueno tener convenciones de
nomenclatura para tus materiales en general M suele ser para materiales. Entonces lo abrimos, y
esto es lo que obtenemos. Tenemos salida, esencialmente, y antes de salida,
tenemos sustrato. El sustrato es una función material
específica irreal que se agregó recientemente
9. UE5 FC04 02: Es posible que notes que el aspecto de
tus materiales es
ligeramente diferente al mío. Tiene un nodo de
salida diferente, y eso se debe a que no tiene habilitados
los materiales de sustrato. No tienes que usar
esto específicamente, e independientemente de si lo
usas o no, la
funcionalidad básica del material, cómo crearlo es la misma. El sustrato es una función de
material expandido para crear materiales
en capas
que son muy útiles y muy únicos
para el motor irreal He habilitado por defecto, que recomendaría aprender si te
interesa la creación material. Ahora, volviendo
a los materiales. Tenemos algunas opciones aquí. Ignoraremos todo
en el lado derecho, que en su mayoría son
específicos del sustrato, y nos
centraremos principalmente en aquí. Color base, metálico, rugosidad
especular, color MSF
normal El color base es, como
se le llama color base. El lado izquierdo, tenemos
una vista previa de malla SR. Como puedes ver
correctamente,
no hay nada en él, así que
es simplemente blanco. Vamos a agregar un color a esto. De la forma en que lo puedes hacer, puedes clic
derecho sobre la gráfica del
material. Esta es la
gráfica de materiales, como se menciona aquí. Y puedes intentar encontrar el nodo de
textura, etcétera, pero simplemente puedes sostener tres en tu teclado, teclado
numérico y clic Lo que esto hace, esto crea un valor constante que
puedes usar para seleccionar un color. Entonces esto es basado en RGB. Entonces, seleccionemos el rojo. Podemos ajustar el color
aquí de la manera que queramos. Si tienes un
código X o un código X RGB, ya
lo sabes, puedes
simplemente copiar y pegar, escríbalo. Y digamos rojo. Como puedes ver, aquí nada
ha cambiado porque aún
no hemos enchufado nuestro nodo Vamos a enchufar nuestro nodo
de color base aquí. Y ahora nuestro material es rojo. Pero digamos que queremos
hacerlo más metalizado. Necesitamos agregar
valor al metal. Por lo general, el valor no siempre
es, sino que suele ir 0-1, lo que significa que necesitamos un valor de one
float para ponerlo en Se trataba de valores sic, los cuales generaban un color. Pero aquí sólo necesitamos un valor. Entonces lo que tenemos que hacer
hold one y click, lo que creará
un solo valor, que será el float. Pongamos nuestro
nodo de valor cero en el metálico. Nada cambió mucho porque el valor metálico
actualmente está en cero, lo
que significa que es tan
poco metálico como puede ser Y como mencioné antes, uno suele ser el valor
máximo. Entonces pongamos uno aquí y
haga clic en N. Dale un momento. Ahora, de pronto,
es muy diferente. Siempre podemos poner un valor
entre cero punto cinco. Así que mantengámoslo a la una o ahora. Lo queremos brillante y
queremos que sea diferente. Entonces, por cierto, puedes verificar
los valores predeterminados aquí. Entonces, como puede ver, valor
especular predeterminado
es cero punto cinco, lo que significa que este es un
valor especular de 05 en este momento Agreguemos líquido adicional
y lo pongamos en especular. Ahora tenemos
valor especular de cero. Y hazlo uno puedes notar mucha
diferencia en la pantalla, pero es bastante útil para superficies
no metálicas. Como lo hicimos metalizado, no
vamos a poder verlo. Entonces hagamos
cero metálico y uno especular. Y ahora reduce especular a
cero para ver la diferencia. ¿Ves? El material
es muy mate ahora. Ya no
brilla porque es un material no metálico
sin especular Por lo que no va a estar brillando
y reflejando la luz hacia atrás. Pero por ahora prefiero
que mi material sea metálico,
así que hagámoslo uno. Y especular no importa cuando el material es completamente
metálico en la mayoría de los casos Entonces ahora echemos un
vistazo a la aspereza. El valor de difusión de rugosidad también
es cero punto cinco. Entonces ponemos la rugosidad a cero, lo
que significa que es tan
lisa como un vidrio, y es muy reflectante
porque es un material metálico, completamente metálico con
una superficie completamente lisa Si se reduce el valor
metálico, repente, es solo
un objeto liso. Si tienes uno para especular, hay algo de brillo,
pero no es tanto como lo era cuando era completamente metálico Entonces ahora vamos a phot uno, cero. Y nuevamente, esta es una esfera metálica muy
lisa. Especular no importa cuando
tenemos un objeto metálico, así que simplemente lo mantendremos en cero ¿Y qué pasa si
levantamos nuestra aspereza? Si le pones rugosidad a uno, es la misma
textura que una tiza Lo más parecido que está al valor de uno
en la vida real es la tiza. Para los que no
saben lo que es la tiza, es una herramienta utilizada para
escribir en la pizarra Pero esto es demasiado. Entonces pongamos en menor valor. Digamos 07. No queremos que
sea muy reflexivo, pero queremos que sea reflexivo. Quizá un poco más. Lo sentimos, tenemos que hacerlo más bajo
porque está a la inversa. Cuanto menos valor tenemos,
más reflexivo es. No, un poco más. Y,
sí, esto está bien. No demasiado reflexivo. No
y ahora tenemos una normalidad. Entonces en este caso, debido a que solo estamos haciendo
un material de color simple, normal no es tan
útil para nosotros, sino que las normales se utilizan para calcular ciertos valores
en el espacio tangente Por lo general, las texturas normales se utilizan junto con normal, y el valor de cero, uno rara vez se usa por defecto. Entonces veamos una
aplicación de una normal. Digamos, Oh, sí, este adoquín que recientemente le
echamos un vistazo Entonces tenemos este
nodo normal viniendo aquí. Entonces tenemos una textura normal. Esta textura normal es importante para que la
textura cobbledon se muestre correctamente Entonces ahora veamos el mapa. Tenemos este material, o. Y en este material, si vamos y echamos un
vistazo a la textura normal, esta es una textura normal para el material que
usamos en el piso. Y digamos que
lo quitamos o lo cambiamos por otra
cosa, ¿verdad? Entonces cambiémoslo a normal de un adoquín diferente o
incluso guijarros. Y aplicar. De pronto, se ve
un poco diferente. Hay algo mal
con el material. Hagámoslo otra vez. Esta vez, vamos a
cambiarlo de plano en textura de un
concreto y Ahora bien, estas líneas raras
sobre el material, que son de lo
normal del adoquín Es muy importante que las
normales coincidan con la textura. Tenemos que aplicarlo. Yo controlo las dos veces para restaurar
lo que teníamos inicialmente. Las texturas normales
suelen ser creadas por artistas de texturas o modeladores. Si quieres
aprender a hacerlo tú mismo, te recomiendo
buscar la información relacionada con el modelado y la
textura o los cursos en nuestra lista de cursos. Es muy profundo y puede ser lo
más complicado que puede ser, así que no lo estaremos cubriendo
en este curso. Pero si estás interesado,
por favor da tu opinión. Podemos precipitar un nuevo curso
en este tema en particular. Entonces cerremos esto y
volvamos al material. Ahora, se ve
igual que antes. Volvamos a
nuestro material básico. Estábamos creando aquí,
tenemos algo interesante. Tenemos un
color emisivo. ¿Qué significa? El color emisivo es esencialmente un material que brilla
y produce luz Entonces si agregamos un valor
y lo ponemos aquí, y a cero, no hace nada. Si lo pones a tal vez a las cinco, ahora está brillando de manera brillante Si lo metes, digamos,
5 mil, podemos quedarnos ciegos. Como se puede ver, en estos momentos
está emitiendo
mucha luz. Y este material
no está destinado a ser brillante, así que simplemente no vamos a hacer esto. Y mantenerlo en cero es, que es por defecto. Entonces quitamos esto.
También tenemos opacidad Si agregas una
nota flotante, mis disculpas, agrego otro valor flotante y lo pongo en opacidad
y lo pongo en cero, el color del material simplemente
no aparecerá porque está en cero Si lo pones en
digamos cero punto siete, tienes un poco opaco. Es un poco difícil de ver, así que
se deja en cero punto dos. Es menos opaco. En este caso,
no vamos a usar esto, pero independientemente, es importante entender cómo funcionan
los materiales en general. Si quieres hacer un
material opaco o translutar, veamos el
material del vidrio Entonces el vidrio que teníamos es un contenido inicial
materiales, el material de vidrio. Echemos un vistazo
al material de vidrio. Tenemos refracción
del índice de reflexión. Mis disculpas. Contamos con nuestro modelo de sombreado de
sustrato Y aquí tenemos opacidad, y la opacidad es También tenemos
refracción adicional, etcétera, que hacen
modificaciones adicionales para editar la superficie
del objeto Esto está muy por encima del nivel
intermedio, así que nos saltaremos eso. Si le echas un vistazo aquí, tenemos un material muy
interesante que es prácticamente casi todo negro Tenemos un valor
especular de diez Como dije, por lo general,
va también entre cero, pero a veces se puede ir más alto. En el caso de especular, es un valor de diez Tenemos una rugosidad de cero
porque esto es vidrio, y tenemos opacidad
de punto cero 35 Debido a que es un
material negro con opacidad, parece un vaso Y si se quita
esta refracción aquí, como se puede ver, no
cambió casi nada Así que no te molestes demasiado
con la refracción en este momento Y si cambiamos
esta opacidad a una, esta ya no es una clase
transparente Cambiamos lo
especulativo a uno, es demasiado tenue. No hay forma
garantizada de obtener el resultado específico que
deseas, con un material. Entonces, el mejor curso de acción es
simplemente entender las
funciones básicas del material, lo que significan, e intentar juguetear
hasta que
consigas lo que quieres Ahora, por ahora, vamos a cerrar esto. No vamos a salvar. Y
volvamos a esto. Entonces aquí estamos de vuelta, y tenemos ahora este material. Y queremos que este material
se aplique en el bajo. Aquí hay opciones adicionales para el aditivo enmascarado, etcétera, que se
cubrirán en los cursos futuros Y vamos a guardar esto
y vamos a mac el amor. Ahora, digamos que
queremos que estas cajas
sean del mismo color que el material
recién creado. Vamos aquí y lo seleccionamos, y lo aplicamos. Oh, ahora de pronto
tenemos dos cajas con un
material que acabamos de crear. Es bastante así de sencillo
aplicar el
material creado al nivel. Pero digamos que queremos
tener un material metálico, pero queremos que
cada uno tenga un color diferente
o diferente cantidad de
rugosidad o especularidad Queremos que algunos tal vez
este sea amarillo, este sea verde, este sea blanco. No importa. ¿Eso significa que creamos un nuevo
material para uno único, cada tipo y variación? No. Aquí es donde entran
las instancias materiales. Entonces si tienes un material, y quieres tener múltiples
versiones de ese material, por
ejemplo, como dije, quiero que todo esté aquí para que sea exactamente igual, aparte
del color. Entonces quiero la misma cantidad de superficie reflectante, metálica, etcétera, y lo único que
quiero ser diferente
es el color en sí Lo que puedo hacer es hacer clic derecho sobre el material y crear
una instancia de material. Ahora bien, ¿qué significa esto? La instancia de material es
hijo de un material, y toma todos sus parámetros
del propio material. Entonces ahora apliquemos esto
a todas estas medidas. Entonces ahora tenemos una instancia
material. Hay múltiples beneficios al tener una instancia material. Está más optimizado y es más fácil de
cambiar en tiempo de ejecución. Entonces ahora separemos esto por un segundo y echemos un
vistazo a esto, ¿verdad? Correcto. Entonces ahora mismo, no
tenemos nada
en nuestro material. Porque no agregamos ninguna propiedad que
se supone
que debemos estar agregando y cambiando
del material. Hay algunas
opciones por defecto que real tiene para ti, pero no son lo que queremos. Entonces, ¿cómo agregamos opciones aquí para cambiar durante el proceso? Vamos al material en sí y encontramos los
parámetros que queremos. Y en este caso, este,
queremos cambiar de color. Por lo que hacemos clic derecho sobre él. Y convertir a parámetro. Entonces tenemos que nombrarlo. Esto es color, por
lo que es sencillo de nombrar. Y ahora tenemos un parámetro
llamado color, ¿correcto? Y el valor por defecto para
este material es rojo. Esto es todo lo que tenemos que
hacer. A tener en cuenta, puedes hacerlo por cualquier
otro parámetro. Podrías hacerlo por aspereza,
metálica, etcétera. Regresamos y volvemos a abrir el material.
Hagámoslo más grande. Ahora tenemos un color. Entonces, si hacemos clic en esto y
cambiamos el color aquí, instantáneamente cambia
el color de todas las mallas aplicadas con
este material exacto Se puede cambiar fácilmente. Pero quizá te estés preguntando, espera, pero no quiero que todos
sean del mismo color. Bastante justo. Crea más
instancias de ese mismo material. Y ésta puede ser instancia
material, dos, y aplicar ésta. Y ésta puede ser instancia
material tres. Y digamos que esto se aplica a éste y
éste es amarillo. Hagamos, una vez más, crear
instancia material, nómbrala. Este, vamos a hacer el nombre cuatro, abrirlo, cambiarlo, verde. Y apliquemos esto a esto. Ahora tenemos cuatro materiales
de diferente color. Entonces tal vez te estés preguntando, ¿cuál es el beneficio
de hacer esto? Porque esencialmente
creamos múltiples instancias de
material. ¿No podría simplemente crear
múltiples materiales? No. Entonces, antes que nada, las instancias
materiales
están más optimizadas, lo que significa que toman
menos recursos de los que lo harían si tuvieras
múltiples materiales. En segundo lugar, ahora,
tenemos cuatro materiales, instancias, para ser correctos, que se está aplicando
a estas cajas. Y digamos que tomamos esta instancia material y
queremos cambiar algo. Pero
aquí hay beneficio adicional si quieres
cambiarlos todos. Digamos que hubo una
diferencia de opinión más adelante, y queremos asegurarnos de que ninguno de estos materiales de color
sea metálico. Entonces queremos que sean rudos, y lo cambiamos en el
parent save dale un momento. Regresa y ahora todos
ellos son no metálicos. Entonces ahora tenemos flexibilidad para editar materiales en el padre, lo que cambiará instantáneamente todos los valores no siendo modificados en instancia o si
quieres cambiar un material
específico solo en
instancia específica de la malla, solo
puedes editar
eso Como dije, podemos hacerlo no solo con color, podemos
hacerlo con cualquier cosa. Entonces digamos que este es un metalizado, así que podemos hacer click derecho sobre
él, convertir a parámetro. Llamar a este parámetro
metálico, guardar. Tenga en cuenta, este es
un material padre. Ahora bien, si abres alguna de las instancias que creamos
anteriormente, tenemos una opción aquí o
metálica, que podemos cambiar. Así que ten en cuenta. Hagámoslo más visible. Mantén tus ojos en esta caja azul, y cambiemos la metálica. Ahora solo tenemos uno
de ellos, no metálico. Obviamente, es mejor
solo tener cero
en lugar de negativo. Así podemos modificar fácilmente nuestros materiales y nuestras instancias
materiales de esta manera. Y esta es la
forma recomendada de hacerlo. Entonces ahora vamos a guardar esto y
echemos un vistazo. Es simple. No es nada demasiado difícil, y se ve bastante bien para algo que creamos
en pocos minutos. Ahora, antes de pasar
a la siguiente conferencia, hagamos otra tarea. Con los conocimientos que adquiriste, crea materiales y
decora tu escena. Buena suerte y nos vemos
en la próxima conferencia.
10. UE5 FC05 01: Bienvenidos de nuevo al curso. En esta conferencia, vamos
a hablar sobre los relámpagos, sus diferencias, y
cómo colocarlos en la escena. Antes de hablar de relámpagos que se pueden configurar en la escena, echemos un vistazo
al que ya existe en la escena por
defecto en esta plantilla, que es la luz direccional. Y este relámpago de
aquí es el sol. Si vas a los ajustes, panel de
detalles para ser más precisos y cambiar
la intensidad. Aumentaré la luz solar o la disminuiré
dependiendo del valor que pongas. A cero, no hay
luz, esencialmente. Y a la una, es muy baja. Yo personalmente prefiero tres, como puedes ver, pero puedes
cambiar el valor como quieras. El color claro, como es
comprensible de nombre, cambia la luz del color. Lo siento, el color de la luz. Ya ves, podemos darle a
nuestra escena una vibra diferente, o ahora la mantendremos tal como está. El ángulo de origen en
realidad no importa tanto. El ángulo predeterminado aquí, el ángulo de origen es el
mismo que el propio sol. Y si tu principal fuente
de luz es el sol, bien
podrías
mantenerlo a este valor. Esto tampoco es algo
que te deba preocupar. Se puede aumentar la
temperatura o disminuirla, lo que afectará el matiz del color. Nuevamente, no es algo que realmente te
deba
preocupar en este momento. Y podemos ignorar
el resto de esto. Podríamos eliminar las sombras, lo que eliminará todas las sombras que la
proyecten por esta fuente de luz. Cuando tienes múltiples fuentes
de luz en la escena, es posible que prefieras una sombra
específica de esa fuente de
rayos específica. Entonces en ese caso, solo puedes desactivar otras
y quedarte con esa, o puedes tener múltiples luces proyectando sombra de
múltiples fuentes. Y este objeto tendrá
múltiples sombras de ellos. Pero es mejor no
tener cientos de luces, que todas ellas están
proyectando sombras en un espacio reducido porque eso es
solo un desperdicio de cómputos, como la optimización para tu juego Y obviamente afectar al
mundo es algo
obligatorio en la mayoría de los casos. Bien, ahora hablemos de
las luces que en realidad son algo que puedes colocar en la escena de
una manera más pequeña. Entonces si volvemos a este set que tenemos aquí,
está muy oscuro. Y digamos que queremos que el sol no esté tan
alto en el aire. Queremos algo como puesta de sol. Podemos cambiar la dirección
del sol fácilmente
presionando Control E,
perdón, control L y girando
la dirección del sol. Entonces, vamos a algo como esto. Me estoy moviendo alrededor del mouse mientras mantengo presionada la tecla de
control. Sí, hagámoslo Lexis. Cada vez el lado más oscuro, y ahora tiene más sentido
tener un rayo aquí. Siempre podrías tocar luces, hacer clic en este icono en la
parte superior e ir a las luces. O puede hacer clic en
la pestaña Ventana aquí, colocar actores e ir
a la bañera de luz. Lo guardaré
Lexis solo para que sea más fácil explicar
lo que hace cada uno de ellos. Ya hablamos de luz
direccional. Personalmente no querrías
tener demasiadas
luces direccionales en la escena. Entonces, por lo general, una luz direccional de la fuente de luz principal, el sol es suficiente, pero es posible que desee tener
varias luces más pequeñas. Entonces hablemos primero de la luz
puntual. Esta es la luz puntual.
Esta luz tiene un radio. Vamos a sacarlo afuera,
la cámara por un segundo. El círculo alrededor
define su radio. Ocultemos nuestra
luz solar por un segundo, que podamos tener
más fácil ver. El radio de origen y el
radio de origen suave están interconectados. Si tu radio fuente es cero, radio de fuente
suave no hace nada. Entonces, para fines de demostración, hagámoslo más pequeño y
aumentemos la radio fuente. No tiene que
ser tan grande para tener algún efecto en las radios de
fuente blanda. Puede ser literalmente uno. Cuando aumente esto
o lo disminuya, notará
la diferencia en
el relámpago sobre
estos objetos lejanos. Hagámoslo así. Lo que cambió es la caída en que radio comienza a
tener cada vez menos luz. Por lo general, no es algo sobre
lo que tengas que moldear demasiado. Puedes mantenerlo sencillo. Y por ahora, echemos
un vistazo al último,
que es la longitud de la fuente. Entonces, si ponemos el radio fuente
así, eso es demasiado grande. Hagamos que esto haga esto. Esencialmente le da la altura. Entonces en lugar de una bombilla aquí, ahora es un gigante parece un
elevador gigante que emite luz En realidad no es algo que tengas
que entrometerte demasiado, y puedes
ignorarlo la mayor parte del tiempo Y restituyamos esta
luz a algo propio. Se hace más grande.
Hagámoslo un poco más grande, supongo. Y de nuevo, es lo
mismo que antes, el mundo
afecta queda ensombrecido o no. Podemos ignorar todo eso. Ahora, echemos un vistazo
al siguiente tipo de luz,
que es el foco. Quizás te estés preguntando
qué hace Spotlight. Es una fuente de relámpago que como puedes
ver en la forma Aumentemos la
intensidad de la misma. Es una luz que afecta
sólo a una determinada zona. Xis. Movamos el panel de detalles hacia arriba para que sea más fácil de ver. Se puede aumentar el radio de
atención lo que aumenta la lente. Se puede rotar.
Como se puede ver, el eje X
realmente no hace mucho. Pero puedes
girarlo en los ejes Y y Z, echa un vistazo a M para colocar
tu luz de la manera que quieras. Es el tipo de luz más
utilizado en los
juegos en general en las
escenas ya que si tu lámpara está en una dirección
determinada o supone que
tu fuente de luz se acuesta sobre un
actor o dirección específica, es la luz más fácil de
usar para estos fines. Y tenemos
cosas adicionales aquí, que es el ángulo del núcleo interno, como se puede ver, aumenta
o disminuye el co ángulo. Lo que hace el cono interno y el cono
externo es cono
interior es donde la
luz está más brillante Entonces la intensidad de 160
que tenemos aquí se aplica
al cono interno. Entonces, ¿vamos a hacerlo 40? Y con exterior es donde comienza
la caída. Entonces, si somos 40 40, tendremos un flujo muy agudo. Si tenemos núcleo interno a 20, mientras que f apagado en 40, tendremos una luz suave más suave con una f off después del núcleo
interno de 20. Si estamos en cero, todo
será suave. Entonces podrías convertirlo esencialmente en cinco para enfocarte en un determinado
objeto si hay alguno. Digamos que aquí tenemos
estos cubos. Y si dejo de hacer
clic en la luz, entonces ahora tenemos una luz
que se enfoca en los objetos. Entonces podemos aumentar el radio porque parece
un poco demasiado pequeño, y podemos hacer
ángulo de cono exterior aún más pequeño. Pero no tan pequeño, tenemos un objeto que sospechosamente se
ilumina en tu escena El resto de las opciones
son las mismas que antes. Fuente de longitud
realmente no hace mucho en este caso. Y podemos pasar
a nuestra siguiente luz, que es la luz rectangular. Entonces, lo que hace la luz rectangular, es una fuente
de luz en forma de rectángulo. Entonces, rotemos esto para que brille
la luz en el suelo. Y aumentemos el
tamaño de la fuente para que sea más fácil de ver. Y también, cambiemos la radio de
acenación. De más fácil ver el tiempo. A diferencia de las diapositivas anteriores,
esta es una forma particular. Entonces, si cambiamos la
altura de la fuente o el ancho de la fuente, tendremos una
forma específica para nuestra fuente de luz. Entonces la luz ahora está enfocada
en esta dirección. Si cambias esto, segundo, así y pones el ángulo de
la puerta de tu granero como más pequeño, será una sombra
rectangular muy nítida. Después disminuye la longitud o aumentala dependiendo de qué tan nítidas o cuadradas quieras que sean
tus sombras. Y puedes hacerlo así para conseguir un
tipo de sombra muy específico. Ahora, antes de pasar
a la siguiente conferencia, agrega algunos puntos de luz
a tu escena. Esta será su tarea por ahora. Si no tienes
ninguna fuente de luz, asegúrate de agregar algunas. Sé creativo. Puedes agregar
cualquier cosa. Puede ser una lámpara. Puede ser una antorcha.
Puede ser una chimenea. Haz lo que quieras
con él, ponte creativo. No lo pienses demasiado y
ve camino a complejo. Simplemente mantenlo simple.
Hablaremos de cómo hacer relámpagos
complejos con
interactividad en la próxima conferencia Así que por ahora, solo
asegúrate de tener algún espacio donde puedas agregar tus
luces y moverlas. Tal vez agrega algo de color
a tu escena. Es posible que desee hacer una discoteca,
color, lo que sea que usted decida. Diviértete y nos vemos en
la próxima conferencia.
11. UE5 FC06 01: Bienvenido de nuevo. En esta conferencia, vamos a
hablar de planos. Entonces, para empezar,
donde las dejamos, estas lámparas en la pared, queremos agregarles luz, pero queremos agregarles luz,
digamos, de diferentes colores
o diferentes fortalezas, o tal vez incluso formas. Podríamos simplemente
agregar uno manualmente a cada uno, como hicimos con esta
lámpara en el techo. Pero esto lleva mucho tiempo. Y ¿y si no tienes seis sino 600 luces
en tu escena? Aquí es donde entra en juego el plano y
la funcionalidad. Para convertir este objeto
en un plano, hagamos clic en este botón aquí Esto convierte a este actor en clase de planos
reutilizables.
Entonces vamos a hacer clic en esto. Esto te
pedirá una subclase. Simplemente puede hacer clic en Seleccionar. Este es un Masacor estático
y este es un actor, va a ser un Mahcor estático de
todos modos, así que está bien Y obtenemos esta vista. Esta es una ventana gráfica donde
podemos mirar nuestro objeto, modificarlo, etcétera. Y quizás lo que es aún más interesante es este gráfico de eventos. También tenemos un guión de
construcción, que hablaré
en la próxima conferencia. Entonces esta es nuestra gráfica de eventos. Antes de seguir adelante, necesito
explicar qué es un plano, qué es un actor y
cómo funciona todo Los planos son un sistema de código
visual hecho para ayudar a las
personas que quieren ahorrar tiempo o
que tienen problemas para codificar, hacer su trabajo sin
tener que codificar en C
plus o C sharp en
algún otro motor La forma en que esto funciona
es que estos planos son esencialmente una función
integrada en tus actores Y la pregunta,
¿qué son los actores? Cada objeto de tu
escena es un actor, y la escena es tu nivel. Entonces este vasto vacío, ya ves, que es mi
nivel, cada cubo,
vidrio, luz, Todo, hasta
los pedazos
de hierba estropeados , son todos actores Si bien puede crear una
idea errónea por parte de actores como actores humanos o personajes en el lenguaje del
código en el motor, los actores lo son todo en tu escena tres D como con
algunas pequeñas excepciones Por ejemplo, este material, el color no es un actor. Es solo una
adición visual a tu actor. Sería lo mismo para calcomanías o partículas que se producen, como todos los subproductos de
otros actores de la escena que no son realmente O propósito,
aunque sean interactables, no
son algo que solo
puedas colocar en
tu nivel como son Por ejemplo, digamos que tenemos un personaje que
dispara bolas de fuego El personaje
en sí es actor. La bola de fuego que disparó es un actor si se
hace como proyectil Pero las imágenes de llama
alrededor del objeto, que es un proyectil, no
son actores Son solo componentes, y ese
componente en particular es la partícula. La siguiente pregunta es, ¿cuál es el propósito de
los actores en el nivel? Los actores, como dije antes, pueden ser cualquier cosa en tu nivel. Hay pasto, sus paredes, sus pisos, sus personajes. Son todo lo que
necesitas tener en tu nivel. Y los actores son diferentes. Algunos actores ni
siquiera son visibles. Actor no tiene que ser
visible para ser relevante. ¿Y qué son los planos? Y veamos cuál es la
diferencia entre esta lámpara, que es solo una
malla estática y esta lámpara p, que ahora es un plano La diferencia es que
esta malla estática está limitada en funcionalidad a
lo que puede hacer una malla estática. Entonces como pueden ver, tenemos nuestro panel de detalles. Tenemos nuestros parámetros,
transformar, etcétera, algunos ajustes de base sobre cómo deben interactuar
los motores
con este objeto Puede ser bastante complicado pasar repentinamente por todos ellos, así que no vamos a tocarlo
en este momento. Y honestamente, no
necesitas tocar la mayoría de las cosas
en el panel de detalles a menos que sepas exactamente
lo que estás haciendo. Pero los actores, que
son planos, pueden contener cualquier tipo
de funcionalidad Por ejemplo, si quiero
explotar esta lámpara, puedo. Si quiero que se mueva o
vuele o haga cualquier cosa, realmente, puedo hacer todo
esto a través del plano Obviamente, hay
limitaciones lo que puedes y lo que no puede hacerlo y
cómo quieres hacerlo. Pero la libertad es tuya para hacer lo que
quieras con este objeto. En nuestro caso, queremos que este objeto emita
luz. Esto es una lámpara. Y lo que podemos hacer para hacer esto es lo mismo que hicimos
en la conferencia anterior, podemos agregar una luz. Entonces agreguemos una luz
direccional. Oh, mis disculpas. Foco. Y queremos que el
foco esté mirando hacia arriba, y queremos que esté exactamente
donde está la fuente de luz. Si tiene problemas para
moverse con el
mouse y hacer zoom, puede desplazarse hacia abajo, reducir o aumentar
la velocidad del mouse, o simplemente puede hacer clic en la parte superior
aquí y reducirla aquí Pongámoslo así. Verás que la velocidad de la boca es ahora más baja, lo cual es bastante útil cuando
estás trabajando con objetos
más pequeños. Además, si te
pierdes y no estás seguro de
dónde está tu objeto, siempre
puedes hacer clic en
él y presionar el FK. Y si solo presionas FK, se acercará y
podrás ver tu objeto. Esta función también obviamente
funciona en el amor. Entonces, si tienes el
seleccionado y te mueves, presiona FK, éste se ajustará de nuevo al objeto que hayas seleccionado, lo cual es bastante
útil cuando tienes múltiples objetos en la escena
o tu nivel es demasiado grande para tener en cuenta dónde estaba
el objeto o perdiste el objeto mientras lo
estabas arrastrando A lo mejor es bajo
el piso y
echas de menos seleccionados y ya no
puedes verlo. Y solo puedes presionar esa tecla o tu objeto está correctamente. Entonces ahora volvamos
al plano. Y agregamos esta luz
a la escena, ¿verdad? Correcto. Y puede notar que este foco está bajo
el componente de malla estática, lo que significa que el foco
ahora está unido a la malla
estática misma. Si bajamos el objeto, etcétera, los hijos mayores
del mismo se moverán Entonces agreguemos un cubo. Este cubo es demasiado grande, así que hagámoslo un poco más pequeño. Este cubo ahora está unido al componente
de malla de pila. Entonces, si escalas el componente de malla de
pila, mientras que es cinco, este cubo también
aumentará de tamaño. Entonces esto es bastante útil
porque esencialmente
estás creando un
actor escalable, uniformemente escalable que
heredará todas sus propiedades
del padre cuando lo
modifiques en el nivel Eliminemos este
cubo y compilemos, guardemos por si acaso. Ahora tenemos la lámpara de luz y la
propia fuente de luz, el foco. Podemos editarlo aquí y ahora cambiando
las radios, etcétera Entonces vamos a reducir el radio. No quiero que sea
una luz demasiado fuerte. Pongamos el valor
de 500 y compilemos. Después de compilar,
puedes volver al
nivel y echar un vistazo. Oh, tenemos una luz muy débil. A mí me gustaría que fuera
quizá un poco más fuerte. Así que aumenta
la intensidad hasta, digamos, t. Y sube. Sigue
siendo un poco más fuerte, pero no me gusta la forma. A lo mejor es porque
lo extravié. Un poco, sí. Es un poco mejor. Y digamos que quiero que sea de color
rojo. Ahora es rojo. Pero también podríamos haber hecho esto por el método habitual con sólo
adjuntarlo, ¿correcto? Aquí. ¿Por qué
lo haríamos así si es
demasiado molesto? lo haríamos así si es
demasiado molesto Porque podemos agregar
funcionalidad. Entonces en lugar de hacerlo rojo por defecto, lo
haré blanco, y haré que la
intensidad sea 20 K, solo para que coincida con
la lámpara vendedora. Perdón. El
radio de atención está bien para mí, y lo compilaré y
pasaré al gráfico de eventos Y aquí es donde sucede lo más
interesante. Antes de seguir adelante,
explicaré qué son los eventos. Entonces estos son los
tres eventos predeterminados que Unreal pondrá
para ti enseguida. Y los eventos son esencialmente
desencadenantes que comienzan como script. Entonces, por ejemplo, este
evento comenzar a jugar va a comenzar cuando este actor esté en el
nivel y comience el nivel. Entonces, si este actor no
está en el nivel,
esto no hará nada. El actor necesita estar en el
nivel para que esto comience. Entonces esto comienza, y
digamos agregar un nodo de cadena de impresión, podemos agregar un nodo de cadena de impresión aquí y solo hacer
que diga hola hola. Entonces print string
es una función de error que te permite depurar esencialmente probar las funciones
si se activan o no. En este caso, sólo
vamos a mantenerlo en hola
hola y compilar y
volver al nivel. Cuando presionamos play, obtenemos hola porque el evento
comenzó en el momento en que el nivel nosotros si fuera a quitar esto del
nivel y presionar play, no
hay hola
porque el nivel
la lámpara en sí
no está en el nivel, así que esto no disparará. Si de alguna manera engendro o creo este plano en la mitad del nivel, esto
comenzará Esencialmente, esto es
lo que sucede cuando este actor se inicializa
y se crea A continuación se superpone el actor del evento. Entonces, para entender la superposición, primero, necesitamos
entender la colisión. Si miramos el objeto, escojamos esta tienda. Digamos esta tienda. Esta
tienda tiene colisión. Entonces, la manera fácil
que puedes verlo es simplemente dar clic aquí y
hacer clic en colisión de jugador, lo que significa colisión que
afecta al personaje del jugador. También hay colisión de
visibilidad. Es posible que hayas notado que
hay una ligera diferencia
entre la colisión visible
y la colisión del jugador. Esto se debe a que esta hierba en el suelo no tiene
colisión contra jugador. Entonces, si nos movemos, no nos detienen,
no pueden interactuar con ellos. Pero con esta historia
y con toda honestidad, resto de los objetos
de la escena sí. Esto se debe a
la forma en que se
configura la colisión para estos objetos, que atravesaremos
en el próximo capítulo. Pero independientemente,
volviendo al grano, este objeto tiene colisión. Y por defecto, este
objeto no hace nada. Si quieres agregar
funcionalidad a la tienda,
antes que nada,
necesitaremos convertir la tienda
a un blueprint Entonces qué podemos hacer para hacer esto, damos click en este botón aquí, y yo sólo voy a mantener
el nombre ahora mismo como está. Es una buena práctica hacer nuestros archivos de nombres mediante la convención
de nombres. Por lo general, los planos se llaman BP. Y ahora tenemos
este nuevo plano, y este plano es una puerta Si cierras el proyecto y no encuentras
tu blueprint, siempre
puedes ir a
tu navegador de contenido y encontrar tu blueprint En este caso,
no me gusta que
esté en esta carpeta específicamente. Entonces lo que voy a hacer, lo
voy a mover a la carpeta de contenido y moverme
aquí ir a mi contenido. Y nuevamente, no está
organizado si
tenemos múltiples planos aquí,
todos ocupando espacio, todos ocupando espacio, así que voy a crear una carpeta,
llamarlo blueprint Um, vamos a hacer
planos, sólo para ser. Y cambiemos el nombre de
esta lámpara, también. Y ponlos en nuestra carpeta de
planos. Entonces es más fácil
para nosotros encontrarlo en el futuro. Bien, ahora, esta puerta no
tiene colisión. Para ser más específicos,
tiene una colisión, pero solo está
bloqueando al jugador. Realmente no podemos abrir la puerta. Si queremos abrir la puerta,
idealmente, cuando nos acerquemos a ella, la puerta simplemente debería abrirse. Podríamos haber agregado alguna interactividad como
presionar E para abrir la puerta, como en la mayoría de los juegos, pero también podríamos
convertirla en una puerta automatizada Entonces, ¿cómo hacemos esto? Entonces antes que nada, vamos al evento Craft y no
vamos a estar ing tick
o evento comenzar a jugar. Así que vamos a eliminarlos.
12. UE5 FC06 02: Antes de que en realidad solo
empecemos a codificar aquí, lo que
sea, es una buena práctica probar simplemente si tus
suposiciones son correctas. Así que pongamos en una
cadena de impresión diciendo hola. Por lo que estamos esperando que cuando el actor se superponga
con la puerta, obtengamos el gatillo hola Entonces pasemos a la puerta
y no pasa nada. Podemos preguntar ¿por qué? Porque hay una diferencia entre
colisión y superposición. Superposición supone que los objetos pasan entre sí y esencialmente se superponen
en cierto punto. Pero la colisión impide que
esto suceda. Entonces, lo que hacemos volvemos al plano y
echamos un vistazo al viewpo Como esta puerta es un objeto sólido, no
podemos simplemente
atravesarla para superponerla con
nuestro personaje jugador. Por cierto, acabo de notar que
la puerta está invertida. Así que vamos a solo. Esto
es vergonzoso, pero vamos a disculparnos Mira,
gírela en la dirección correcta. No sé, a lo mejor
hay algunas puertas que han tenido una a la izquierda. Nunca he visto uno hasta ahora.
Aparte de puertas dobles. Bien, entonces
volvamos a la puerta. Y aquí, necesitamos
agregar una caja de colisiones. No usaremos esta caja
para colisiones específicamente. Esto es solo una caja
para desencadenar un evento. Entonces vamos a escalarlo
del tamaño que queramos. Donde se activará si el personaje
del jugador lo golpea. Simplemente puedes hacerlo así. Y no quiero que este evento
se active después de
que entramos en la sala. Quiero que siga abierto. Así que hagámoslo así, así no tengo que
preocuparme por el otro
lado de la puerta. Entonces, lógicamente hablando,
ahora el propósito de esto es cuando nosotros, el personaje jugador, nos
superponemos con esta
caja invisible la puerta se abrirá Pero antes de que podamos hacer esto, eliminemos esto y hagamos
clic en el cuadro que creamos. Esta es la caja que hemos creado. Y del lado derecho abajo
en el panel de detalles, verás que tenemos eventos. Estos se hacen automáticamente por irreal para hacerte la
vida más fácil así que solo
puedes ahorrar tiempo y
simplemente hacer clic en lo que necesites En nuestro caso, necesitamos que los
componentes comiencen a superponerse. Puedes preguntar, qué
quieres decir con componente y ese componente
lo es todo dentro del actor. Este plano en sí mismo
está actuando como actor. Este componente de malla estática
aquí es el núcleo, esencialmente el
componente raíz del actor. No se puede eliminar.
No se puede quitar. Se puede cambiar pero idealmente, la raíz del componente es qué se
centra todo. Y la parte de la puerta en sí
es parte de la puerta, y el marco de la puerta es en realidad
la raíz de la escena. Entonces esta parte interna de la puerta es solo un componente de malla
estática tocado. Y lo mismo va para la caja. Podríamos agregar
cantidad infinita de bien, no realmente infinito por
razones computacionales, sino muchos componentes
adicionales, pero en este caso,
no los necesitamos. Y podemos ver aquí, dice, En componente
comienzan solapamiento, y en el al final, puede ver que hay caja. Este es solo un nombre de la
colisión que hemos creado. Entonces, si cambiamos el nombre por
digamos, obtendrás esto. A mí me gusta más la caja, tenía más
sentido. Ponemos esto ahora a
aquí, imprimir cadena, y para probar si esto realmente
desencadenará
el evento de superposición. Entonces volvemos al nivel, pulsamos play, volvemos a la caja. Oh, tenemos el
hola arriba a la izquierda. Tenemos como puedes ver, esto se dispara varias veces cada vez que entramos en el solapamiento. Entonces volvamos
al plano. Ahora confirmamos que esto
realmente funciona como queremos. Podríamos agregar muchos límites sobre lo que
específicamente puede desencadenar esta apertura de puerta o
cuántas veces se puede abrir, cerrar o ¿queremos
abrirla y cerrarla
automáticamente después? Podemos hacer cada
uno de estos escenarios, pero vamos a
mantenerlo sencillo. Apenas vamos a abrir la puerta cuando nos
acerquemos a la puerta. Entonces, ¿cómo dirías que
se supone que la puerta se abre aquí? Para que la puerta se abra, digamos que queremos que esta puerta
se abra digamos con palabras, solo
necesitarías rotar
esto en un ángulo de 90. Quizás de manera realista,
sería algo así como 80, pero prefiero 90 grados. Entonces lo que podemos hacer
es que podemos ir aquí, destrozar este nodo puerta SM aquí Por cierto, este
nodo tor ahora es una variable. Actúa aquí en la gráfica de eventos. Y antes de la luna, déjame
explicarte qué son las variables. Las variables son la
parte más básica del proceso de codificación, no sólo en irreal sino también en SimplusPlst sharp Las variables son esencialmente
se podría decir colocar soldaduras o contenido de información
que se utilizan para codificar Por ejemplo, como en
la masa digamos, estarías como X más Y o
X multiplicado Y, Y es igual a Z. Esta es la misma
lógica. Esta es nuestra X. Esta es nuestra Y. La
otra será nuestra Z. Y cuando codificamos, no
tenemos que cada vez de
alguna manera hacer referencia o poner toda la información
asociada al objeto Podemos simplemente poner esto
como un asa o una etiqueta o como sea que quieras aceptarlo más fácil
para que lo entiendas. Esta es ahora nuestra puerta. La puerta AEM aquí, esta es una referencia a este AMDR y esta puerta asm
ahora se hace referencia aquí
en el plano Ahora bien, qué podemos hacer con esto antes necesitamos entender
lo que estamos tratando de hacer. Queremos girar esta puerta
en 90 grados en el eje Z. -90 grados para ser más específicos el
eje Z. ¿Cómo podemos hacerlo? Entonces para esto, necesitamos
obtener una línea de tiempo. Entonces timeline y agrégalo aquí. Ahora, puede preguntarse,
¿cuál es la línea de tiempo? Esencialmente, las horas extras se
desencadena como eventos, la puerta. No queremos que la puerta
se abra de repente. Entonces si nosotros, por ejemplo, tomamos esta puerta SM y digamos, tomar nota de ella y
establecer perdón, rotación. Y poner en el conjunto la rotación
relativa a -90 en el disparador de eventos Se abrirá instantáneamente, pero este no es
el aspecto que queremos. No querrías
tener este tipo de gatillo
repentino en tu puerta. Entonces ahora, ¿cómo solucionamos esto? Entonces queremos que esta puerta
se abra con el tiempo. Entonces terminado, digamos, 2 segundos. Y la forma en que lo hacemos
es con una línea de tiempo. Entonces tenemos este
nodo que se establece rotación
relativa del
componente al que está unido. En este caso es una puerta SM. Esta puerta es el objetivo
de esta función. Y lo que hace esta función es rotar objeto en
cualquier valor que pongamos en. Podemos hacerlo más grande para
los nodos adicionales, pero ahora no es relevante. Entonces echemos un vistazo a
lo que estamos modificando aquí. Estamos modificando el eje Z. Realmente no nos
importan X e Y. Entonces, qué podemos hacer, podemos hacer
clic derecho y dividir este pin de estructura Entonces, lo que hicimos es
esencialmente dividir este valor vectorial de rotación
en tres valores flotantes, que esto
convierte automáticamente de nuevo en rotación. La razón por la que estamos
haciendo esto de esta manera es porque solo estamos modificando un
valor específico de cada tres, por lo que no necesitamos
enchufar tres valores. Tomamos este
pin de ejecución y lo ponemos en juego. La razón por la que lo pongo
en juego y no juego desde principio es porque
queremos que esto suceda
esencialmente solo una vez. Esto jugará, terminará, y se quedará terminado. Si lo ponemos en
juego desde el principio, comenzará cada
vez
que esto se activará, esta línea de tiempo
comenzaría desde el principio, pero no la queremos, así que solo la vamos
a tener en juego. Y ahora tenemos este conjunto de
puertas ASM ubicación relativa, y necesitamos actualizar esta ubicación relativa establecida con un valor que
obtendremos de la línea de tiempo. Entonces tenemos que decidir qué valor vamos a sacar de esto a esta flotación
relativa Hacemos doble clic en la
línea de tiempo y esto se abrirá así y damos
click en esta pista más. Porque estamos modificando un
solo valor. Realmente no
necesitamos una pista vectorial que contenga tres vals. Simplemente puede usar un
simple en la pista de flujo. Entonces tenemos esta pista, y vamos a cambiarle el nombre del eje Z. Y aquí necesitamos agregar un tiempo. Por lo que la duración del tiempo
es actualmente de 5 segundos. Vamos a probarlo con 5 segundos. Y el valor, aquí no
tenemos ningún valor. Es sólo una
línea recta, no pasa nada. Entonces la forma en que lo hacemos, desplazamos click una vez
para agregar un nodo. Entonces el comienzo va a
ser cero. No es rotación. Entonces lo ponemos en cero, el valor también será cero. Y agreguemos un segundo nodo, que estará a cinco marcador. Alejemos el zoom. Se
va a sumar 5 segundos. Se puede poner tiempo manual, y el valor será de 90 -90 porque vamos a
un número negativo Entonces esta es una
gráfica muy recta de cero a
-90 en 5 segundos. Y vamos a compilarlo,
volver a Gráfico de eventos. Y ahora tenemos este
eje Z de la línea de tiempo. Es una salida del valor que esta función nos va a dar cada segundo, no sólo cada segundo,
como cada fotograma que necesitaremos
ingresar aquí. Entonces ahora, este valor Z del que es
responsable
esta función de
rotación relativa establecida está siendo
actualizado por esta línea de tiempo. Así que compilamos esta caja fuerte por si acaso y
volvemos a nuestro amor. Ahora, cuando activemos esto, la puerta se
abrirá lentamente muy, muy lentamente. Y ahora estamos aquí. Si no hemos jugado,
sino jugamos desde el principio para
el gatillo, y pulsamos, volvemos a las pruebas,
tendríamos esta
situación rara donde, esto se está abriendo,
y me
mudo y vuelvo y bien,
está abriendo de nuevo. Vuelvo y bien, como pueden ver, esto
es en el mejor de los casos, una broma Al principio, una puerta
automatizada que funciona mal. Entonces no queremos esto. Entonces hacemos esta obra. Y se puede pensar, ¿y si quiero
cerrar la puerta? Y es una pregunta razonable. Y si la primera vez que paso por
el yo cuando entro, quiero que se abra, y cuando salga, quiero que se cierre. Se puede hacer. La forma en que se
puede hacer es bastante fácil. Entonces podríamos agregar variables
adicionales
que digan si es cierto o no que
estemos dentro o fuera, etcétera, en caso de que haya múltiples salidas
del edificio En nuestro caso,
solo tenemos una entrada, así que vamos a
mantenerlo sencillo. Si salgo entrado
desde este punto, y necesito salir también
de este punto, ¿correcto? Y vamos a tener
la puerta abierta. A lo mejor sólo queremos
que tenga algo de aire. Lo que podemos hacer es crear un nodo aquí llamado flip
flop.
Chanclas. Lo que hace este nodo es la primera vez que se activa este
evento, este jugará desde el inicio. Y la segunda vez que se desencadena este
evento, se revertirá desde el final. Ahora, probémoslo
y echemos un vistazo. Como puede ver, esto se está
disparando cada vez. El actor se superpone, y esto no es lo que
queremos de nuestra puerta Entonces, ¿qué podemos hacer para arreglarlo? Hay múltiples formas de
hacer esto como siempre. Lo que podemos hacer es agregar una variable
muy sencilla que diga si la puerta está abierta
en este momento o si la animación dejó de
reproducirse o no. Entonces lo que podemos hacer es
crear una variable que diga que puedo abrir puertas cerradas.
El valor del lingote Entonces los valores de lingotes
son valores que
simplemente dicen sí o no Entonces en este caso, ¿podemos abrir
el valor de cierre y Bulim? Queremos que esto sea sí cuando la animación
haya dejado de reproducirse. Entonces, ¿cómo implementamos esto? Puede presionar P y hacer clic, lo que creará un nodo de rama. Entonces, lo que hace la rama es
poner esto en rama. Y agrega este valor a aquí. Queremos que el
valor predeterminado de esto sea cierto porque la puerta
suele estar cerrada. Al principio, queremos que
esto se active al menos una vez. Y si es cierto, queremos que esto juegue. Y si está jugando, queremos que sea falso, por lo que no puede desencadenar
una segunda vez. Entonces lo que
hacemos antes de pasar a aquí, creamos y
arrastramos esto y colocamos puerta cerrada
abierta aquí y
ponemos el valor de yo también fs. Crea una copia de
ésta, la segunda, y haz lo mismo. Queremos que esto sea falso en
ambos casos porque de esta manera, esto no puede desencadenar
la segunda vez, pero queremos que se cierre después que ya haya terminado de abrir. Entonces, lo que hacemos lo hacemos de nuevo. Al terminar, esto
pondrá esto en verdad, y este será el
final de esta línea. Ahora, vamos a probarlo de esta
manera. Y vamos. A. Esto no
vuelve a desencadenar, como se puede ver. Y cuando
lo vuelvo a activar, se cerró. Entonces podemos desencadenar
esto. Entra. Y cuando salgamos, lo
volveremos a activar, y
esto se cerrará de nuevo. Obviamente, esta no es la solución
más ideal para esto. No querrías tener
tu puerta abierta y, bien, volveré y volveré,
y ahora la puerta se te está
cerrando a la cara. Hay
formas más razonables de hacer esto. Podemos agregar disparadores a
ambos lados de la puerta, por ejemplo, puedes duplicar esto y
agregar otro aquí. Este se abrirá
cuando entremos, esto se activará y
cerraremos la puerta después de que estemos dentro
o viceversa, o podemos revertirlos usando la combinación de
planos o nodos Pero esto es
lo suficientemente bueno para lo que estamos
tratando de lograr aquí. Esta es una forma muy básica, no optimizada
de abrir una puerta. Y esto es que hay
demasiados detalles a esta sencilla función que se trata solo de
abrir la tienda. Podríamos haberlo hecho de una
manera mucho más sencilla, pero habría
menos que explicar, así que tuvimos que seguir con esta solución extraña sobre
complicada. Ahora bien, así es como abrimos la puerta y
nos metimos dentro. Como pueden ver, esto es
gracias a los planos. Los planos nos permiten crear funciones de
la manera que queramos Podría hacer esto es solo una puerta sencilla con animación
de apertura y cierre. Podríamos hacerlo de múltiples maneras. Podemos hacer que esta puerta reconozca a este personaje y se
abra sólo a este personaje. Podrías tener, digamos, MPC o
personajes no jugables en el juego, y estos personajes
pueden o no activar la tienda, dependiendo del
nivel de acceso que A lo mejor quieres que un personaje
específico pase por esta
tienda, pero otros lo saben. Tal vez necesites un
artículo específico para hacer esto. Todo depende de cómo quieras hacerlo
y de tu creatividad.
13. UE5 FC06 03: Bueno, esto suele
llamarse simplemente exponer la variable al
editor, esencialmente. Este no es realmente el nombre
correcto de la misma. Es instancia editable. Quizás preguntes ¿qué hace el desove de
Eposon? Entonces, si tenemos un actor que engendra a otros
actores al nivel Entonces, por ejemplo, en este caso, engendremos actor de clase y seleccionemos al
actor spawn como esta misma lámpara Ahora tenemos esta lámpara
que podemos engendrar, ¿no? Y si establecemos esto. Mis disculpas. Sólo
tenemos que poner un valor aquí. Y en este caso, sólo
voy a saltarme el
proceso y exponer en spawn Si compilo, pero esta exposición
en span no está disponible. Digamos que solo lo selecciono. Esto no va a aparecer aquí, aunque lo compile. Pero si pongo spawn expuesto, ahora de pronto tengo
esta función Entonces esto significa que puedo
crear un actor que genere un actor específico
con los parámetros que quiero ¿Cómo es esto útil, puedes preguntar? Digamos que tienes un juego
donde disparas proyectiles, fuego, hielo, eléctrico, no
sé, rayo láser El color es lo único que es diferente entre
tus proyectiles Y este color se define
por actor sobre engendro, similar al que tenemos aquí Cuando llegan a existir, establecen su
color claro, etcétera Pero si quieres
establecer el color de luz para ese proyectil al
desove, específicamente, dependiendo de los parámetros, ciertos parámetros que puedas
tener en tu juego, puedes usar esta exposición en spawn
para tener esa opción disponible
para ti cuando la expongas para tener esa opción disponible
para ti cuando Y obviamente, a menos que
necesites esto, dejas esto fuera. Bien, ahora volvamos a lo que estamos tratando de hacer
aquí en nuestro nivel. Volviendo a estos
planos que tenemos, ¿y si quieres no
configurarlos individualmente, sino cada vez
para tener un color aleatorio posible que solo quieras
buscarlo y buscar color
aleatorio, y
obtendrás esto. Juego de colores lineales tonalidad aleatoria. Lo que tienes que hacer es poner
tu color claro aquí. Y esto de vuelta aquí y pon esto s para
aquí y presiona play, y son aleatorizados
cada vez Para entender lo que hace
este nodo, cada vez
que se ejecuta
este nodo, establece un valor aleatorio
a esta variable, y esta variable se establece como un color claro en un
evento que comienza a jugar. Quizás te preguntes por qué el conjunto de colores no es el
mismo para todos ellos. Solo editamos una opción, un plano, y
todos están en el mismo plano Entonces, ¿por qué el valor es
diferente para cada uno? Esto se debe a que este proceso es llamado para cada
actor de manera individual. Entonces, si juegas a jugar, y ve al Blueprint Verás este nodo. Repetimos este proceso. Esta línea roja es una función
que acaba de activarse. Y si echas un
vistazo a la parte superior aquí, tenemos diferentes laboratorios, y puedes seleccionar cualquiera de ellos. Seleccionemos el segundo y hagamos
clic en el color claro, etcétera, todo
está en su lugar, y es posible que note una diferencia E incluso puedes
revisar los otros. Pero si prestas atención aquí, cuando vuelo el cursor sobre
el color claro, los valores aquí son
diferentes para cada uno Y esto se debe a que
si bien todos son
el mismo plano, son individualizados sus
actores individuales en la escena Entonces, cuando se ejecuta un evento, el evento se ejecuta para
cada uno por separado. Entonces, si tienes un objeto con, digamos, este evento específico
muy simple de dos nodos, y tienes 100
del mismo objeto, debes tener en cuenta
durante el evento comenzar a jugar, no
ejecutas dos nodos de función de
complejidad, sino 200. Así que asegúrate de no
abarrotar demasiado tu escena. Hay formas de optimizar esto, obviamente. Se puede secuenciar. Se pueden combinar todos los
actores en actores de grupo. Por ejemplo, en lugar de tener 100 planos individuales de una
luz, quizás
podrías tener
un sistema de luz para toda
tu ciudad y hacer que todas
las luces compartan
el mismo plano Entonces, en realidad, se
convierte en un plano que se está aplicando a
todas las luces de tu ciudad Pero nuevamente, ya
sea optimizado o no,
más fácil de usar o no, si es necesario
depende de tu juego,
tu creatividad, y lo
más importante, cuando se trata de
optimización, de tu ingenio Ahora tenemos esta función
que no está mal. Cada vez que echamos un
vistazo a esta habitación, es de un color diferente, y tal vez esto sea lo suficientemente elegante Quizás esto es todo lo que quieres. Quiero que sea un poco más
brillante, así que eso es 240. A ver si eso
cambió algo. Sólo un poco. Cambiemos poco
el radio y
ángulo del atentan, tal vez 16 Sí, esto es más de mi agrado. Pero quiero que esto no
se vuelva rancio. Entonces esto seguirá siendo
exactamente de la misma manera durante el resto del juego hasta que lo apague y lo vuelva
a comenzar. Esto era un juego, esto sería parecido
a entrar a una habitación, y la habitación tiene todos
estos colores diferentes, y cada vez
que entras a esa habitación y esa habitación se carga en el
juego o se abre el nivel, obtienes diferentes colores. Puede ser un poco aburrido. Entonces hagamos que cambien los
colores constantemente. Si recordamos Evento tick, si agregas esto todo
aquí tenemos en el evento ik, lugar de eventos comienzan a jugar, obtendremos algo
muy diferente. Pero creo que todos podemos estar de
acuerdo en que esto es demasiado. Esto me está lastimando los ojos. Como tal, esto no es lo ideal. Sí, cambia constantemente, pero no quiero
que cambie tanto. Y esto lo hace sólo una vez. Necesitamos un término medio
entre las horas extras, función de
reajuste y solo las individuales
al principio Hay bastantes formas
de hacerlo. Puedes agregar líneas de tiempo, puedes llamar a eventos, etcétera. Pero la forma más fácil en este caso particular es
agregar una nota de retraso. Qué retraso hace, espera
una cierta cantidad de tiempo, y ese tiempo se hace referencia
aquí, duración por duración Y
transcurrido ese tiempo, se ejecuta. Digamos,
pongámoslo en 1 segundo. Ahora, echemos un vistazo a
esto y pensemos lo que hace. Durante el inicio del juego, es
decir, cuando este actor
está en la escena y comienza el
juego o
cuando este actor es creado o engendrado, esto desencadena Establecimos un color aleatorio a
nuestra variable de color de luz, que se establece como un color de luz para nuestro componente de
foco. Y hay un retraso. Aquí. Y transcurre 1 segundo y este retraso se ejecuta,
pero aquí no hay nada Queremos repetir este proceso. Queremos seleccionar
un nuevo color aleatorio y seleccionar configurarlo
como una nueva luz. Entonces lo que podemos hacer es tomar este
pin de ejecución y ponerlo aquí. Pero de pronto esto es muy
incómodo de ver. Lo que podemos hacer aquí es
agregar un nodo reescrito. Agreguemos este nodo aquí y hagamos un seguimiento de
esto hasta aquí. Rastrea este nodo
de aquí a aquí. Y organizar esto un poco mejor. Ahora, tenemos un nodo que vuelve a ejecutar aquí por
retraso después de 1 segundo Y veamos qué pasa. Volvamos al
nivel y pulsemos play. Esto es mucho más
agradable a la vista. Ahora, hablemos un poco
sobre la organización de planos. Si no eres el
único en el equipo o si solo quieres
mantenerlo organizado, lo cual es una buena práctica
en general para tener siempre tu código organizado,
hay cosas que puedes hacer. Uno de ellos como
he mostrado antes, es un nodo reescrito para que sea fácil ver a dónde van los pines de
ejecución Entonces, en este caso, el
pin de ejecución pasó de retardo a conjunto de colores lineales nodo de tono
aleatorio. Pero esto realmente no
explica lo que hace esto. Y para una persona que la vea por
primera
vez, necesitará pasar por
el código para entenderlo. Y si tienes un código
muy complicado que tiene cientos
de nodos en él, lo cual no es raro,
tendrás a la persona que eche un vistazo al código
lo pasará mal. Para que sea más fácil para ellos, puedes seleccionar todo
tu código y hacer clic en el botón
C. Esto es común. Para las personas que están familiarizadas con la codificación en
plus plus o C sharp, o cualquier lenguaje de programación, esto está haciendo exactamente lo mismo. Esto no agrega ningún costo
al proyecto que se
empaqueta para su implementación. Aquí en la sección de comentarios. Simplemente nombramos esto. Digamos Luz Pero cambia la función. No estoy seguro de lo que está
pasando con mi teclado. Y ahora tenemos esto y
podemos cambiar el color también. Queremos que sea diferente o simplemente código de color o funciones. Prefiero el verde, y no
queremos agregar estos eventos
comienzan a jugar en esto porque el
evento begin play
funcionará independientemente
de este código dentro. Y ahora, como todo esto
dentro de esta sección de comandos, puedes simplemente
moverlos todos juntos. Lo cual es útil cuando
tendrás muchas
notas en tu lave. Hay una cosa más sobre esto que debo
mencionar antes de seguir adelante. Esta nota de retraso aquí, debes prestar atención. Esto tiene icono aquí. Si lo lees,
hay un texto al final
las notas latentes
solo se pueden colocar en gráficas de eventos Quizás te preguntes por qué está esto aquí. Para estas notas
familiarizadas con la codificación, tendré que explicar
qué es una macro. Una macro y funciones son son prácticamente las
mismas que las que tenemos aquí, pero la diferencia es que
tienen están sucediendo instantáneamente y no pueden
ser sensibles al tiempo. Con eso, quiero decir,
digamos que tenemos una función, y no me refiero a esto. Estos son nodos en una secuencia. Una función, si tuviéramos que
crear una aquí, digamos, creamos
pulsamos sobre este icono de
planes y creamos una función y llamamos a
esta función, vamos a llamarla prueba
como estamos probando. Ahora tenemos una
función llamada test. Una función se puede
llamar como un evento o un nodo para ser más precisos
dentro de su blueprint Y quiero que todo esto
suceda dentro de la función. Podría simplemente copiar esto y
arrastrar esto a la prueba. Pero es mucho más fácil eliminar esto y hacer clic en todos ellos y hacer clic derecho y
colapsar para funcionar. Notarás que esto fallará. La razón por la que esto
falló es por
el nodo de retardo. Descartamos esto Hagámoslo otra vez. Esta vez sin nodo de retardo seleccionado,
contraer la función. Ahora tenemos una nueva función, y vamos a copiar
el nombre de ésta. Y renombrar esta nueva función
en función de cambio de luz. Y luego comenzar a jugar esto
parece más organizado, y también es muy
buena manera de hacerlo si vas a reutilizar esta función específicamente
en múltiples lugares. Imagina que tienes una luz y
tienes múltiples
disparadores posibles para cambiar de color. lo general, lo que
tendrías que hacer, tendrías que copiar y pegar. Puedes eliminar este nodo
reescrito, realmente. Tendrías que copiar
y pegar esta función. A cada uno de estos disparadores. Entonces, para cada evento que
tenga la posibilidad cambiar el color de la luz
a color aleatorio, necesitaríamos
copiarlos, pegarlos y colocarlos alrededor
del gráfico del evento, lo que muy rápido, lo
hará muy desorganizado Pero lo que es más
importante un optimizado. Una función optimizada es una función lenta y una
función lenta lo convierte en un juego lento, y a nadie le gusta un juego lento. Ahora tenemos esta función de
cambio de luz, y podemos engañar exactamente este
mismo código por múltiples medios. Quizás tengas un
juego donde, digamos, cuando tocas la luz, cambia a un color aleatorio. Cuando tal vez realizas una determinada acción como saltar cambia a
un color diferente. O tal vez le disparas. Y digamos que tienes las tres posibilidades mencionadas en mismo juego y quieres hacer las tres con
el mismo actor. ¿Crearás tres eventos
separados para y
copiarás y pegarás ese mismo espagueti
de código a todas partes? No. Lo que usarás es
esta función de cambio de luz. Ahora, tal vez se pregunten, pero, bien, si tengo múltiples formas de
activar esta función, me gustaría tener
más control sobre ella Por ejemplo, en el siguiente escenario
mencionado, si puedes disparar como una luz, y quieres que la
luz cambie a, digamos, color rojo
como si estuviera dañada, no
puedes hacer esto
con esta función porque la configuramos al azar
cada vez. Entonces
no habría diferencia real entre disparar
esto, digamos, lámpara, que desencadena esta función, o digamos simplemente
caminar por ahí, o tal vez solo haya otro
disparador, no importa. Necesitarías más
control sobre él. Querrías establecer este color de luz
dependiendo de cómo se
active el evento sin copiar todas
estas funciones en todas partes. Aquí es donde entran las entradas y salidas de las
funciones. Entonces como puedes ver aquí, tenemos función de cambio de luz, y ahí no hay entradas. Target es auto en
este caso, obviamente, pero puede ser
otra cosa si es elenco, cast cast se explicará
en la siguiente estructura. Podemos hacer clic en la función de cambio de luz
y agregar una entrada. Además, podemos agregar una salida, pero en este caso, nos
vamos a centrar en la entrada. Vamos a agregar una entrada. La entrada, en este caso,
es una variable. Ahora bien, este color claro es una variable llamada color lineal
claro. Entonces queremos que esto
sea exactamente lo mismo. Entonces solo podemos
escribirlo de color lineal. Y llamémoslo solo color. Y ahora de pronto tenemos una función de cambio de luz con un nodo de color que
podemos poner en set light color en lugar de
usar la variable de color claro. Yo por ahora, desapegaré esto. Podemos reutilizarla más tarde. Y podemos compilar. Ahora, si vuelves
a tu gráfica de eventos, te darás cuenta, espera,
tenemos un color. Ahora tenemos una manera de
dictar de qué color
será a través de una función Entonces hagámoslo. Digamos, durante los eventos
comienzan a jugar cuando
se llama a la función , se vuelve roja. Guardar, compilar,
volver al nivel, presionar play. Bien, funciona. Pero solíamos tener colores
aleatorios. Entonces esto es lo
que nos estaba permitiendo hacerlo. Entonces lo que podamos hacer, podemos cortar esto de
aquí, compilar, volver. Y esto llegó aquí por ahora.
14. Funciones de BP: Ahora, tenemos esto como
una función separada. Entonces esto es vamos a hacer la función
colapsada, llamarlo color aleatorio. Y ahora tenemos
este color aleatorio. Y para esta función
de color aleatorio, queremos tener salidas
en lugar de entradas. Ahora tenemos este nodo
de retorno de salida. Y cuando arrastramos esto aquí
y color claro esta compilación, guardar por si acaso. Y ahora tenemos esta
función con una salida. Para probar, podemos hacer esto fácilmente. L et's asegúrese de que
todo esté adjunto. Vamos a asegurarnos. Bien.
Volvamos al nivel. Sí. Funciona como debería. Pero no había ninguna razón real para separarlos, tal vez penséis. Eran una función. Estaba más optimizada para ser una función en lugar
de dos funciones. Pero aquí es donde viene la utilidad. Lo que estoy tratando de hacer ahora, cuando abramos la puerta, todos los colores serán rojos. Cuando se cierre la puerta, todos los colores serán verdes. Y cuando estás
justo dentro de la habitación o incluso afuera y no se está
interactuando con
la puerta, van a cambiar sus
colores al azar a partir del tiempo, digamos, en un retraso de
cinco segundos Para que esto suceda,
reorganicemos nuestro código. Tenemos función de cambio de luz,
y esta función de cambio de luz, todo lo que necesita es una entrada de color. Tenemos evento comenzar a jugar, y lo que podemos hacer
es meter esto aquí y agregar cinco
segundos de retraso aquí. Quizás ni siquiera cinco
segundos de retraso, vamos. Sí, vamos a trabajar
en ello más adelante. Entonces, lo que podemos hacer aquí
es agregar un nuevo evento, y tiene que ser
un evento personalizado. Y vamos a llamar a
este evento Puerta Abierta. Puerta. Vamos a crear
otro evento, y otra vez, evento
personalizado y
llamarlo puerta cerrada. Vamos a asegurarnos de que se vea bien. Aquí, tenemos esta función
que toma este color aleatorio. Ahora bien, ¿necesitamos
tener esta función
aquí? Es la pregunta. En realidad no. Puedes
quitar esto y esto. Y separémoslos todos unos de otros y
cantemos sobre esto lógicamente Comienza el juego, obtenemos
un color aleatorio. Entonces obtenemos este color aleatorio. Por ahora no vamos a agregar
aleatorización. La puerta se abre y
obtenemos color verde. ¿Bien? Entonces necesitamos de nuevo esta ligera función de
cambio. Pero esta vez, lo
predefinimos para
digamos puerta abierta, color
rojo como en una señal de advertencia de que alguien
está entrando a la habitación Y para puerta cerrada, digamos que es sólo verde. Sí, estoy de acuerdo. Y digamos que no podemos cambiar el color ni
para ser más específicos, aleatorizar el color de
las luces mientras esto
se está abriendo o Entonces agreguemos una variable. La puerta está interactuada. Y agrégalo como toro en. Y vamos a hacer rama. Al final de este color. Si se está
interactuando con la puerta en este momento, el tono por defecto
debe ser falso Aleatorizamos nuestro color
y lo cambiamos a colores
aleatorios con retraso Retraso F. Y vamos a
tener este retraso sea de 30 segundos debería estar bien. O, sí, debería estar bien. Si no se está
interactuando
con la puerta , no hace nada Para puerta abierta y puerta cerrada. Cuando se desencadenan estos eventos, queremos establecer esta puerta se está
interactuando en verdad Entonces, lo que hacemos, obtenemos dos
conjuntos de interacción de conjuntos. Los establecemos verdaderos, para que no quede
aleatorizado en el medio, y continuamos en nuestro proceso Y si revisamos nuestro plano de
puerta, teníamos una línea de tiempo de 5 segundos. Entonces, para que la puerta termine de
abrirse o cerrarse, toma 5 segundos. Entonces lo que podemos hacer es agregar
un retraso de 5 segundos. Una vez por segunda vez o
simplemente puedes combinarlos porque estas dos operaciones
no pueden suceder
al mismo tiempo que lo
hemos configurado en el blueprint Tor
con este plop, ya que no se puede interactuar con ellas
mientras una función
no haya Ahora, volvamos. Y después de 5 segundos de retraso, disparamos set de nuevo. Y después de que lo pusimos en caídas, y hayan pasado 5 segundos, queremos recuperar colores
aleatorios. Así que volvamos a propósito esto y
arrastremos esto a color aleatorio. Y para que se vea bien, tal vez incluso en un nodo re
rot para hacer las curvas un poco más fáciles a los ojos solo
para tener un tiempo más fácil. Bien. Ahora bien, ¿será esta obra la pregunta principal?
La respuesta es no. ¿Por qué? Sí, las luces
están cambiando de color, pero no
interactuaron con la puerta. La razón por la que esto sucedió, realmente no
activamos la puerta. Lo nombramos
puerta abierta puerta cerrada, pero eso es solo una cosa de nombrar Acabamos de llamarlo de esa manera. Realmente no agregamos
nada para desencadenar esto. Ahora bien, la pregunta es, ¿cómo
activamos esta función? Aquí es donde nosotros por la
simplicidad del curso, simplemente no usaremos
interfaces y usaremos moldes. Y voy a explicar lo
que son en un momento. Pero antes de eso,
tomemos esto y esto cuando tengamos aquí
este plano, tenemos en la A, jugando desde el principio y en
la B, al revés desde el final Entonces cuando B está sucediendo, estamos cerrando la puerta
y A está pasando, estamos abriendo la puerta. Queremos tener color rojo en abierto y color verde en el cierre. Para ello, necesitamos agregar pin de
ejecución aquí
que nos permita hacer esto, pero ya está aquied. La forma en que lo hacemos secuenciando, haga clic
derecho en la secuencia
y haga clic en ella. Y lo que hacemos es que lo metemos aquí y ponemos primero
nuestra jugada desde el principio. Queremos que esto suceda primero, y lo hacemos de nuevo, y en una secuencia y
cero inversa de fin a nuestro plano Esto se está convirtiendo en código de
espagueti, pero solo estamos haciendo esto con el propósito de
aprender, así que está bien. Idealmente,
optimizarías todo este código, pero es bueno para la creación
rápida de prototipos Ahora tenemos esto en su lugar. La pregunta es qué hacemos aquí. Secuencia nos permite hacer ciertas
ejecuciones una por una. Realmente no espera a que
uno termine de comenzar
el otro. Es más un disparador. Voy a estos disparadores
cero primero, 1 segundo. Obviamente, queremos
abrir la puerta, así que ponemos cero a siete
play desde el inicio. Y en una, tenemos que
llamar de alguna manera a estas dos funciones. Tenemos que llamar a esta función de puerta
abierta. La forma en que podamos hacer esto,
en nuestro nivel particular, esta tienda y esta lámpara siempre existirán
al mismo tiempo. Como tal, ya están
en la memoria de tu PC. Entonces podemos usar el casting. Permítanme primero fundir el plano
de dos lámparas fundidas. Clase. La razón por la que no
vamos a lámpara y clase porque
queremos usarla en todas las lámparas no
en una específica. Entonces estamos lanzando a
la clase de planos, y obviamente necesitamos plano
lampll Esto sí. Este casting, aunque no hagas nada
en el otro extremo del mismo, o incluso si
simplemente lo dejas así , sin pin de ejecución, esto siempre cargará la
lámpara en la memoria. Como tal, hay que tener
cuidado al usarlo, no solo casting a clase, sino también casting a
instancias individuales del mismo actor. A medida que lo carga a la memoria, cada vez que la tienda
existirá en la escena, la lámpara estará en la
memoria y ocupará algo de espacio. E incluso si no tienes
ninguna lámpara en la escena, si tienes esta puerta de plano
específico, que tiene un yeso a la lámpara
que estará en la memoria Entonces, si haces clic derecho
y vas a Mapa de tallas, esto te mostrará
cuánto ocupa espacio en tu juego. Esto no es mucho, se puede pensar. Son sólo 3 megabytes. Nuevamente, este es un plano muy
simple, pero esto es en tamaño de disco Esencialmente cuánto espacio
ocupa en tu disco duro. Y si quieres comprobar cuánto espacio
ocupa en tu RAM,
tu memoria, das
click aquí, tamaño de memoria. Y como puedes ver, se necesitan
11 megabytes de tu memoria. Si solo tienes
uno de esos objetos, no
es tanto de un trato, pero si tienes
cientos de objetos que todos están lanzando a
cada objeto diferente, y por lo general serán
mayores de 11 megabytes, de repente, tu RAM se
llena de archivos y datos que ni siquiera
va a usar porque estas clases no
siempre están en el nivel Entonces debes asegurarte si
vas a lanzar a algo que algo
siempre esté en el nivel, con cualquier actor que
realmente esté haciendo el casting. Por ejemplo, lanzar al personaje
jugador suele estar siempre bien porque
tu personaje jugador está en la mayoría de los juegos, siempre cargado en el nivel como tu personaje
que estás jugando como. Puede ser un problema si tienes varios personajes y cada uno de tus personajes funciona manera diferente y tiene
sus propios planos Pero en el caso de solo
tener un personaje de jugador, un mismo personaje de jugador
para todos los niveles, puedes lanzar con seguridad a
tu personaje de jugador. Pero como dije, en este caso, esta lámpara, aunque la
quites de la escena, la puerta puede quedar pero la lámpara seguirá siendo
cargada en la memoria. Por lo que debes asegurarte
de tenerlo en cuenta. Bien, ahora
lo echamos a la lámpara, y desde la lámpara, queremos una función específica. Pero puede notar que
realmente no podemos hacer esto directamente porque esta clase de planos son todos planos de la lámpara No es una instancia o
una instancia específica. Entonces necesitaríamos conseguir a todos los
actores de clase en su lugar. cual está haciendo exactamente lo mismo, pero vamos a obtener
una matriz en su lugar. Entonces hacemos exactamente lo mismo, que de nuevo, es muy simple. Esto va a conseguir una referencia a todos ellos, a
todos los actores. Esto simplemente no es obtener
la referencia a la clase misma directamente. Entonces hagamos lámpara y ahora
tenemos todas las lámparas aquí, pero ahora son array
en forma de array. Entonces, ¿qué es una matriz? Array es un conjunto de múltiples
variables en un solo lugar. Por ejemplo, una
matriz de, digamos, mallas puede contener una cantidad
infinita de mallas, y son una matriz que
comienza desde cero, como indexando desde cero,
uno, dos, tres, cuatro,
etcétera, Y las matrices son muy
importantes para entender si vas a hacer un juego complejo o
incluso un juego simple. Ahora bien, en este caso, esta matriz aquí que
estaba siendo generada por esta función está
obteniendo todos los activos, a todos los blueprints de esta clase Entonces todas las referencias de
esta clase en el nivel. En nuestro nivel, tenemos seis lámparas, y esto nos va a conseguir seis
actores en la matriz. Lo que vamos a hacer,
vamos a sumar para cada bucle, lo que significa que para cada
elemento de la matriz, vamos a lanzar
al plano de la lámpara Ahora bien, puede notar que esto
tiene un color diferente porque ahora esta
no es una clase específica. Este es un
objeto específico en la matriz. Entonces por ejemplo, en
el primer bucle, vamos a conseguir lampara de
pared en el índice cero. Lámpara de índice cero esto
va a dar una nota, pero la razón por la que
esto nos está dando esta nota es porque estamos lanzando a algo
que ya está lanzando. Pero puede notar que no
hay otros errores. Podrías ponerlo
directamente así, y a tener en cuenta,
esto sigue siendo casting. Pero el esto es solo una manera de usar
el casting en un actor individual. Si solo tienes una
lámpara en el nivel, plano
vol,
solo puedes usar cast directo.
No hay problema. Pero si tienes múltiples,
es posible que quieras usar un elemento array y ver
si es el mismo objeto. Por ejemplo, si
tienes, digamos, un conjunto de múltiples actores, pero no todos los actores son iguales. Por ejemplo, tenemos
una matriz que contiene cinco puertas y cinco lámparas. Si solo arrastras
esto aquí así, puede
que no encuentre al actor
requerido. Pero si lo hacemos así
y lo hacemos así,
esto sólo se activará si
el elenco tuvo éxito. Y si el elenco por ese
éxito, quiero decir, si el yeso es lámpara y no
la puerta, esto va a funcionar. Y si es algo más
en la matriz, esto fallará. Pero ten en cuenta, puedes crear tus propias variables
en forma de array. Puede hacer clic en la variable. Seleccionemos una
variable de float. Y aquí en la parte superior derecha, puedes hacer click sobre él y
convertirlo en una matriz. Y puede usar después
de compilar esta matriz, puede agregar tantas instancias
de esta matriz que desee. Entonces queremos, digamos, una matriz de valores, cinco, 12, 14, ocho,
dos y uno. Y si agregas esta matriz al mínimo y obtienes un nuevo R,
por ejemplo, así, puedes usar para
cada función p para
cada función de bucle para obtener siguiente valor en el orden de cero, uno, dos,
tres, cuatro, cinco, para cualquier otro propósito
que necesites como tal, ten en cuenta, matrices, sí, puedes obtener
una matriz de elementos, esencialmente obteniendo múltiples
elementos por algún tipo de funcionar como información y
uso para cada bucle en ellos, o puede hacer sus
propios arrays con valores
específicos o referencias de
actores,
y puede usarlos. Independientemente, en este caso, vamos a usar esta nota porque quiero la validación de que la matriz que estoy obteniendo es en realidad el plano de
caída de lámpara, aunque sea innecesario
en este caso, porque todos sabemos que específicamente
estamos obteniendo los elementos específicos de la matriz y
todos ellos serán laboratorios Y vamos a compilar
ahora, ¿qué hace esto? Cuando abrimos la puerta, obtenemos todos los actores de las lámparas, y todas las lámparas son una a una
en la misma instancia esencialmente de
marco instantánea,
pasan por en la misma instancia esencialmente de
marco instantánea, este bucle, y estos bucles llama la función llamada
no todos función, mi evento de puerta abierta
en el plano Entonces volvamos al poste de la
lámpara y presionemos play. Bien, ahora estamos viendo que
todo está bien, todo está siendo aleatorizado Ah, mientras se
abre la puerta, es roja. Ahora esperemos. Después de que la puerta se haya cerrado, comienza de nuevo Y digamos espera 5
segundos, y funciona. Y cuando salimos afuera, todavía no está funcionando porque no le
agregamos nada a eso. Entonces veamos y volvamos a hacerlo. Podemos simplemente copiar esto
para ahorrar algo de tiempo. Y podemos llamar al mismo
evento y al final, cambiarlo para cerrar puerta. Creo que lo nombró. Y si ves sensible al contexto
ahora es una especie de problema. Cuando haya habilitado, mientras
busca un nombre de función o
un nombre de evento específico para un blueprint diferente,
es posible que no aparezca Así que podemos simplemente
desactivarlo y se ve clase Pvolve blueprint, y vamos a usar esto
y podemos hacer Además, puedes arrastrarlo
directamente aquí y cerrar puerta. Nuevamente, como pueden ver, no
va a aparecer. Entonces tenemos esto ahora
funcionando también, y todo está
como debería ser. Y tenemos esto. Se
abre la puerta. Cuando entramos en él. Ahora, de nuevo, son colores aleatorios. Cuando salimos de esto, es verde. Ahora, vamos a agregar una pequeña modificación
más a nuestra puerta para que podamos tener
una puerta más funcional. Tenemos esto en principio
componente comenzar superposición. Y cuando entramos por primera
vez en él y salimos de él, estas chanclas. Teníamos dos salidas o si queremos cerrar la puerta
después de entrar a la habitación, necesitaríamos hacerlo de
una manera diferente porque el
gatillo para ello está afuera. Y aunque no lo fuera, la
puerta que se nos cierra a la cara, realmente no
tendría mucho
sentido. Cuando estamos tratando de hacer
algo raro como, hagamos esto una vez, espéralo. Digamos que abrimos la
puerta, vamos a otro lado, y la próxima vez que volvamos, la puerta se nos cierra a la cara. Esto realmente no tiene sentido. Entonces, lo que queremos hacer en cambio
es tener una puerta que se abra cuando nos acercamos y se cierre automáticamente
cuando nos vamos. ¿Cómo hacemos esto? algo similar a
competente comenzar solapamiento. Pero en cambio, vamos
a dar click en esta puerta SM, volver aquí y el final
incompetente se superpone Esto hace
lo mismo que esta función. Pero tenemos que asegurarnos de
obtenerlo para el evento correcto. Lo necesitamos para la caja. Esta es exactamente
la misma funcionalidad. Pero ahora, cuando terminemos de
superponernos, esto se activará. que significa que ya no
necesitamos realmente esta rama desde el
principio o esta chancleta. Porque ya no es
una pregunta si podemos o no podemos hacerlo
volteando en una secuencia Ahora, ahora tenemos un tema
diferente. Cuando queremos comenzar
esta funcionalidad, necesitamos tener
ahora dos ramas. Entonces copiamos esto y
esto agregado aquí, y hacemos esto y hacemos esto. Pero vamos
a probarlo y ver cómo funciona
después de editar nuestra caja. Ahora, porque
queremos que contenga la puerta por ambos
lados, necesitamos precisamente ella y
vamos a hacerla más grande por
si tenemos a alguien diciendo: No
hagamos demasiado grande
y hagámoslo xis y
probemos cómo funciona Nos acercamos, empieza a abrirse. Si te
acercas a algún lado, comienza de nuevo. Ahora la razón de que
esto suceda es que no tenemos nuestro anterior, puede desencadenar propiamente para ello. Echemos un
vistazo a nuestro gráfico de eventos. Entonces cuando se superpone, si puede abrir, cerrar la puerta, se
dispara y pone esto No, no se puede abrir cerrar. Y empieza esta línea de tiempo y cuando
vuelve a activarse, esto sucede. Pero lo que necesitamos ahora
es un poco diferente. Ya no queremos que esto suceda de esta manera. Si separamos nuestro abierto aquí y lo expandimos xis Aquí es donde su segundo
monitor es muy útil cuando se trabaja con planos
irreales Podrías acoplarlo
a tu pantalla. En lo personal, me gusta tener
pantalla. A mí mismo. Empecemos. Y es un poco difícil de ver, pero
estamos abriendo la puerta. Bien, ahora se abre. Y nos movemos, se está cerrando. Pero cuando volvemos a entrar, no
se activa. Pero es empezar de nuevo. Y ahora vamos a darle un
segundo y volver. Al instante se nos
mete en la cara. Ahora bien, la
razón por la que sucedió esto, la siempre tenemos jugar desde el principio y
jugar al revés desde el final, lo cual no tiene mucho
sentido en este caso, porque ¿y si la puerta está medio abierta cuando
nos acercamos a ella? Entonces, en cambio, vamos
a hacerlo jugar y revertir. Lo que va a pasar ahora es cuando
jugamos o ahora está jugando Y luego pasamos por versos. Pero ahora tenemos un tema
diferente. Cuando me voy, no
empieza a cerrar de inmediato.
Lo remata. Y la próxima vez que me
vaya, se cierra. Tal vez quieras
mantenerlo así. Esto es más que funcional, y se cierra y se abre. Pero vamos a retocarlo un poco. En lugar de tener ahora
esta sucursal, que nos dice cuándo podemos
abrir o cerrar la puerta, vamos a quitar esta y tenerla directamente en
secuencia así. Esto elimina cualquier
apertura condicional de la función, y veamos qué pasa ahora. Presionamos play, estamos cerrados, y se abre, y cuando
nos vamos, se cierra. Y podemos entrar. Está sin los labios y entramos y se abre El único problema es que lo
hicimos demasiado lento. Así que volvamos
a nuestra línea de tiempo, y hagamos que sea 3
segundos en lugar de cinco. Y tenemos que
cambiar también el valor de la segunda una vez sabia
y hacerla tres. Por lo que gira en los 3 segundos. Pero eso significa que también necesitamos
editar los retrasos en puerta abierta, y vamos a hacerlo
3 segundos también. Esto es dentro de la función de
toro de la lámpara. Entonces veamos qué pasa ahora. Empezamos el juego. Vemos las luces cambiando de colores
al azar. Nos acercamos a la
puerta. Se está abriendo. Al abrir, todo es rojo. Cuando está cerrando, es verde. Y ahora estamos en el telar
con muchas luces. Ahora también podemos cambiar
el material para esta caja aquí y
digamos, agregar esta. Con emisión reducida. El material emisivo es como
mencionamos antes, es un material brillante Aquí se
multiplica el brillo del material, como puedes ver. Para que podamos reducirlo. Simplemente dividimos este valor. Algo que
recomendaría hacer en la instancia material
en lugar del material mismo. Pero digamos que vamos a
dividirlo por diez veces. Veamos qué pasa. Sí, es menos brillante. Entonces hay menos brillo, pero tal vez un poco demasiado. Entonces comamos cuatro
veces menos aplicar. Todavía quiero algo de
brillo para estar ahí. Sí. Y vamos a aplicar el
mismo material aquí también. Quizás no. Nuevamente, al gusto. Lo dejaré aquí
tal como está, salvo esto. Y ahora tenemos una
escena extraña donde tenemos esto a algunas luces aleatorias en medio de la nada
para nuestro placer. Los planos son un tema muy,
muy caro. Se puede hacer cualquier cosa
en el plano. Hay una gran cantidad de
nodos en los que puedes hacer twitch, twit y agregar
tu Hicimos esta sencilla
función de puerta de múltiples maneras. Echamos un vistazo a las luces, cómo podemos hacerlo de múltiples
maneras. Y lo más importante que
debes entender es lo flexible que
es todo en el desarrollo de juegos. No vas a encontrar soluciones
simples, y aunque en el futuro, intentes encontrar información sobre
cómo hacer algo específico, por
ejemplo, aquí tenemos
estos cubos, y cuando
los toco, ellos bajan. Se trata de cubos simples con su física habilitada
y sin planos. Pero también podrías hacer
esto con planos. La diferencia a la hora
de hacer esto son planos y cuando solo se
puede habilitar la física, que se explicará
en la próxima conferencia, es lo que diferencia a un buen
desarrollador de uno malo Necesitas entender
cuándo necesitas usar qué y cómo y por qué. Hay infinitas formas
de hacer lo mismo. Y la complejidad en la
que quieras hacerlo depende de lo que necesites y de
cuál sea tu marco de tiempo. En este caso, echemos
un vistazo a nuestras lámparas. Sí, esto funciona, y así es
como lo mostré para hacerlo. Pero esto no es lo ideal. Tenemos muchos nodos. Nuevamente, no los organizamos. Tenemos variable que
en vez de llegar hasta aquí, podríamos haber heredado
de otra parte. No tuvimos que
usar realmente elencos para esto. Podríamos haber utilizado interfaces, que se explicarán
en la próxima conferencia. Y todo esto estuvo a la
altura de crear libertad. Has hecho múltiples
cosas de múltiples maneras, y todo se reduce a lo que quieres hacer y
cómo quieres hacerlo No te limites
con tus planos. Y cuando buscas información en foros
en formularios comunitarios, tal vez en YouTube, Google, y encuentras lo
específico que necesitas, ten en cuenta, es posible que tengas
una mejor manera de hacerlo. Como he expuesto
en esta conferencia, esta tienda y
esta lámpara,
y lo hicimos de múltiples maneras Es algo muy sencillo, pero todavía tiene infinitas
formas de hacerlo. vemos en la próxima conferencia
donde
realmente vamos a hacer una escena
interactable, pequeña, que puede ser utilizada para
crear prototipos de un juego sencillo, y tendrás total libertad sobre lo que quieres hacer y cómo
quieres hacerlo Pero antes de eso,
tendremos una tarea. Esta tarea va a ser
un poco más difícil. Y en esta tarea, vamos a utilizar todos nuestros conocimientos
que hemos aprendido
hasta ahora y crear y animar aún más tu escena Te he enseñado algunas cosas con cómo puedes
hacer en planos No fue mucho ya que
los planos son un tema muy caro. Pero puedes aplicar
lo que he mostrado en la conferencia hasta ahora a tus escenas que hayas creado
previamente, o simplemente puedes ser
creativo y experimentar con la funcionalidad de blueprint y crear lo que quieras No tengas miedo de
equivocarte o experimentar. La única manera de
aprender realmente irreal es intentar
hacerlo y ver si funciona Incluso los mejores desarrolladores probarán las cosas varias veces antes de
que puedan hacerlo funcionar. Nos vemos en la próxima
conferencia. Y que se diviertan.
15. UE5 FC07 01: Bienvenido de nuevo. En este capítulo,
vamos a pasar por cómo hacer una
escena desde cero. Vamos a intentar crear algunos elementos de juego utilizando todos los conocimientos que
hemos adquirido hasta ahora. Y también, voy a cubrir un poco más
de funcionalidad de cada aspecto de irreal Hasta este punto,
hemos creado materiales. Hemos aprendido a
aplicarlos y a ejemplificarlos, a configurar el
relámpago en nuestra escena, a crear planos y a crear interactividad entre planos Pero lo hicimos todo
encima de nuestra plantilla ya
existente. ¿Y si quieres crear
algo desde cero? Entonces para hacer esto, primero
que nada, decidamos qué queremos evitar de esta creación que ya hicimos. Si tienes algún actor u
objeto en tu escena, te gustaría
transferirte a la siguiente. Téngalo en mente. Y en mi caso, quiero llevar algunos de estos cubos
conmigo al siguiente nivel. Y
los voy a usar como plano, así que simplemente voy a hacer clic en él, convertirlos en un plano,
cambiar el nombre, y
simplemente llamarlo Cubo Voy a salvarlo. La razón por la que estoy haciendo es
porque la voy a necesitar en la siguiente sección de la conferencia. Entonces, para crear un nuevo mapa, antes que nada,
mantengámoslo organizado, cree una carpeta, llámalo nivel. Y ahora vamos a
crear un nuevo nivel. Podrías crear un nivel a partir de
aquí y simplemente hacer clic en el nivel, pero esto siempre va a estar en blanco ya que
no hay nada en el nivel. Si quieres tener una
plantilla para un nivel, puedes hacer clic en
Nuevo nivel en la parte superior, y obtendrás una opción. ¿Quieres un nivel de partición de
mundo abierto? ¿Quieres un nivel de partición de
mundo abierto vacío? Quieres básico o con algunos activos en él o nivel básico
vacío. La diferencia entre
las particiones y los niveles básicos son los niveles de
partición
generalmente destinados mundos
abiertos que son demasiado grandes. Y te gustaría
optimizar tu juego esencialmente cortando este
mundo en particiones, esencialmente partes para
descargar y cargar en juego depende de la proximidad
o el estado del juego En nuestro caso,
no vamos a hacer eso. Solo podríamos usar básico,
pero voy a seleccionar Nivel
vacío para mostrarte cómo
se hace desde cero. Hagamos clic en Crear y guardar. Y ahora estamos en
el nivel vacío. A lo mejor difícil de ver, pero aquí no
hay nada
más que esta grilla. Y primera idea quizá
agreguemos algo de luz a la escena. Pero si solo añades luz, digamos,
luz reaccional, no va a hacer mucho Tenemos que añadir el sol, la esfera del cielo, todo lo que por defecto existía
en el nivel anterior. Para ello, necesitas ir a ventana y mezclador de
luz ambiental. Haga clic en él, y
obtendrá esto. Primero creemos el
tragaluz, la luz atmosférica. Ya podrías editar ajustes si quieres, pero solo estoy para
mantenerlos por defecto por ahora,
crear atmósfera, crear multitud volumétrica y crear niebla de altura. Y de pronto
tenemos algo muy parecido a lo que teníamos
en el nivel anterior. Estos son solo marcadores para en el outliner donde
tenemos nuestro cielo claro Entonces pongámoslos
todos en una carpeta. Y llamemos a esta
carpeta tragaluz. A continuación, vamos
a aprender a crear ambiente
para nuestra escena. Hay dos formas en las que podemos
crear nuestro entorno. Primero es solo usar algunas medidas básicas para crear paredes de piso como
en la plantilla anterior. O puedes crear un paisaje. Para crear un paisaje, da
clic en la parte superior aquí, modo de
selección y
da clic en Paisaje. Obtendrás esta cuadrícula
en tu viewport. Y en el lado izquierdo, tenemos
nuestras opciones para la grilla. Así de grande será tu
paisaje. Esto puede parecer pequeño, pero si tienes en cuenta
que tus mallas no deberían ser demasiado grandes en primer
lugar, esto es bastante grande Y los paisajes mientras
están optimizados todavía están permitidos en
tu rendimiento. Entonces, a menos que los
necesites, no debes
hacerlos demasiado grandes. Quiero esto más pequeño. Así que vamos a reducir
este tamaño por vamos a dividir por y dividir
por dos de nuevo. Esto es más que suficiente para mí. Podríamos hacerlo más pequeño, pero por ahora, debería estar bien. Y también podemos
preseleccionar nuestros materiales. Entonces, seleccionemos tierra. Veamos, grava. A mí me gusta más la grava. Y vamos a hacer clic en Llenar mundo. Mis disculpas. No llenar el mundo. Crear. Vamos a hacer clic en Crear. Si haces clic en Fill World, llenará el mundo entero con el paisaje, que no
es lo que queremos. Genial. Y ahora
tenemos un paisaje. Como pueden ver, ahora es más evidente que es bastante grande. Pero esto es demasiado recto. Y quiero agregar algunas
montañas y cosas lado para poder bloquear la
visión para que quede clara. No es esto. No hay
extremo sur de la Tierra. Esta no es una Tierra plana. Entonces lo que podemos hacer es
usar escultóles. Así que vamos a darle clic. Y tenemos un cepillo.
Lo quiero más grande. Entonces voy a
aumentar el tamaño del pincel, y solo voy a dar click
con el botón izquierdo del ratón. Quizás mi cepillo era demasiado grande. Sí. Aumentemos la cadena de herramientas de
pincel. Y vamos a esculpir este
paisaje al azar. Todo lo que necesito es no tener una línea final que se vea mal
y algo así. Quizá un poco más aquí. Ahora bien, si miramos
desde esta visión, hagámosla más grande aquí. Yo por error, hice clic en este
lugar, pero lo arreglaremos. Podría controlar para deshacerlo. Pero también puedo Shift haga clic en él para revertir
para en su lugar crear este hoyo. O puedo hacer clic en esta herramienta de aplanar aquí en
la parte superior y dar clic en ella. Ahora, la forma en que funciona la herramienta de aplanar, haces clic en un
lugar y después mover el mouse mientras
mantienes ese botón del mouse, los
aplanará a Por lo que vamos a dar click
aquí y nos moveremos, y como pueden ver,
todo se está
aplanando hasta este punto Fy palabra haga clic aquí primero
y mueva mi mouse alrededor, se aplanaría a
la posición inicial Entonces ahora tenemos esta tierra. Ahora solo agreguemos colinas y cimas
aleatorias, solo una especie de falsificaciones
que estamos haciendo Agreguemos uno grande aquí. A lo mejor es un poco demasiado grande, así que vamos a agregar algunas abolladuras
en el suelo, caerse Y ahora tenemos un Paisaje
que puedes usar para nuestros propósitos. Obviamente, esto es
algo que hice en unos minutos rápidos sin poner mucho
pensamiento o esfuerzo en ello, pero puedes crear lo que
quieras. Aquí hay muchas herramientas disponibles para ti.
Puedes erosionarlo. Se puede utilizar hidro para crear
una simulación de erosión. Por ejemplo,
escojamos esta roca aquí, y es posible que veas que está
cambiando ligeramente de forma. Esto está simulando la
erosión por lluvias. Esta es solo la erosión del suelo que se mueve
de mayor a menor. Entonces esto es solo un montón
de herramientas que puedes usar. Solo puedes usar ruido. Puedes seleccionar qué tipo de
ruido quieres, etcétera. Podrías usar mapas de altura si
sabes cómo
obtenerlos o usarlos. Hay muchas cosas que
puedes hacer y puedes crear. Y por ahora, lo
vamos a mantener aquí. Y lo que podemos hacer también, si no queremos tener todo justo este terreno
y tal vez queremos un color o
montaña diferente y tal vez
queremos que lo más alto sea esta grava, pero debajo de alguna hierba,
podemos hacer eso. Para estos dos, necesitamos
crear un material en capas, lo que haremos en breve.
16. UE5 FC07 02: Ahora, vamos a crear nuestro material. La forma en que haremos esto,
vamos a crear un material maestro para el paisaje. Entonces vayamos al soporte de
materiales. Hemos creado previamente, crear un nuevo material
llamado M subrayado MM significa material maestro, y llamémoslo paisaje. Subrayar Matt. Guarde esto. Cuando guardemos algo en el nuevo nivel por primera vez,
va a pedir un nombre. Asegúrate de hacer esto
en caso de que estés en choques
reales y perderás todo tu progreso en el nivel. Y lo vamos a llamar
considera que eres libre de llamarlo como quieras. Y
ahora esto se salva. Ahorre de nuevo solo gase
o guarde todos los materiales. Abrimos esta ranura de material. Realmente no nos importa el
sustrato en este punto. Lo dejaremos para más adelante. Necesitamos ahora
crear un material. Entonces la forma en que
decidí usar grava y pasto y vamos a
tener dos capas. Puedes tener tantas
capas como quieras. Pero ten en cuenta no hacerlo demasiado complejo debido a los costos
de rendimiento. La forma en que lo hacemos es que necesitamos mezclas de
capas o paisajes. Mezclas de capas de paisaje. Agregamos esto, y arrastramos
esto a nuestro color base, obtenemos a y
agregamos elementos iguales a las capas que queremos
en nuestro caso, también. Y duplicamos esto y volvemos a
copiar el pase para las normales. Si tu juego no
tiene normales, como tal, si todo es simplemente
plano, por ejemplo, como en Minecraft, por ejemplo, realmente no
necesitas tanto
normales Y debido a que es un material de
paisaje, es bueno no tener mucho brillo en el paisaje Así que vamos a forzar
hacia abajo el valor de uno. Esto también se puede modificar con la capa Billions como
todas las demás cosas, pero vamos a
mantenerlo muy simple. Y ahora tenemos dos capas. Digamos grava
para el primero. Probablemente debería haberlos nombrado antes de duplicar solo para no tener que hacer este
proceso dos veces Y vamos a llamar a
éste, segundo uno latón. Simplemente copia pase a
aquí y t por ahora. Esto lo guardamos, y ya he abierto el material de pasto y el material de grava
que voy a usar. Y lo que realmente
necesito hacer es copiar lo que hay aquí para el
color base y las normales. Estos dos materiales están
hechos por defecto por unreil. Por lo que convenientemente para
nosotros los han separado ya. Todo en la parte inferior
aquí va a la normalidad junto con la
nota de coordenadas de texto Entonces lo
que podamos hacer, podemos simplemente copiar todo esto. Ve a nuestro material de paisaje, pega todo esto aquí. Asegurémonos de que tenemos
todo correctamente. Entonces, fuera del nodo larp, tenemos que basar colores. Entonces hacemos exactamente lo mismo. Lo agregamos a la mezcla de capas de
pasto. O el nodo larp. Y de
este nodo lp en la parte inferior, lo
tenemos normal. Esto puede parecer un poco
desorganizado porque este material irreal predeterminado
tiene muchos nodos en él Pero vamos a
mantenerlos un poco a un lado. Y pongámoslos todos un poco
abajo tienen un espacio despejado. Cierre este material de pasto ahora. Sí, no nos
importa este material. Y hagamos lo
mismo con la grava, y nosotros hacemos exactamente lo mismo. Copiamos esto. Aquí
pegamos esto. Vamos a arrastrarlo al material. Y aquí, arrastramos esto. Echemos un vistazo a esto. Tenemos multiplicar al color base. Y veamos qué teníamos aquí. Se modificó la rugosidad. Y tenemos esta normal. Puede haber sabido esto porque
este material de grava tiene rugosidad y el pasto tiene una
rugosidad de defecto No podemos usarlo tal como está, por lo que agregaremos
mezcla de capas adicional esta vez para obtener rugosidad. Vamos a agregar esta
rugosidad a la grava. Y debido a que el pasto tiene
rugosidad de uno, solo
agregaremos
el valor de uno No hay necesidad de complicar demasiado
esto y ahorramos. Le damos un segundo
volvemos a nuestro mapa Demo, seleccionamos nuestro paisaje. Bajamos en el panel de detalles y
tenemos un material de paisaje. Haga clic en nuestro material maestro
y póngalo aquí. Verás que realmente
no tenemos ningún color en nuestro material
maestro. Vayamos al paisaje
y vayamos a pintar. Actualmente, si tratamos de
pintar, no va a funcionar. Para ello, necesitamos
crear información de capa. Haga clic en el icono más. Se puede hacer una capa de
mezcla de peso, capa mezclada
sin peso. Realmente no nos importa demasiado el
peso en este caso. Así que vamos a hacer un mapa de demostración. podemos ponerlo en la carpeta de
material , solo por conveniencia. Y lo hacemos de nuevo
por la hierba. Y nuevamente,
lo pondré en el material. Y ahora puedo seleccionar un material, digamos, grava y pintura. Te das cuenta de que esto se ve raro. Si presiono aquí y pasto, esto es muy brillante. Esto es un poco demasiado
brillante para mi gusto. Así que volvamos al modo de
selección y hagamos clic
en la luz direccional, la reduzcamos a tres, como prefiero. Y ahora tenemos menos luz. Guárdala por un segundo. Y echemos un vistazo a nuestro valor especular
metálico y rugosidad Nuestra rugosidad debe ser
fina, especialmente para el pasto. Tenemos que echar un vistazo a
nuestro peso del mapa. Entonces tenemos grava, pero primero pintemos los
lugares que queremos tener pasto. Podemos encargarnos de ello más tarde. Quiero que estas áreas abajo tengan pasto
con menor elevación. Las elevaciones de Ira pueden
estar llenas de grava. O. Interesante. Yo solo desplazaré clic en él
y eliminaré esta parte. El hecho de que la grava no se
vea correcta es motivo de preocupación. Vamos a previsualizar el nodo. Puedes previsualizar el nodo
del material haciendo
clic en este icono, y lo tenemos en negro. Lo cual es motivo de preocupación. Et le echa un vistazo
al material de grava. Bien. Tenemos un nodo
que no está adjunto. Oh, nos falta una nota. Puede que haya estropeado
y copiando el nodo. No puede, he
estropeado el nodo. Veamos cómo se ve ahora. Esto todavía
no parece correcto. Volvamos a echarle un vistazo. Por el bien de la simplicidad, sólo
voy a quitar esta parte del nodo. Regresa a este nodo multitudinario, copia todo esto otra vez, vuelve al
material. Copiar pase. Tenemos un Bien, A tiene que venir de esto, y B tiene que venir de esto. Creo que me he perdido
esta nota aquí la última vez. Aplicar. Echemos un vistazo. Sí. Esto está más en línea
con lo que quería. Y ahora puedo cambiar clic para borrar esta capa
o simplemente hacer clic para agregar. Aquí no
lo vamos a pintar perfectamente. Pero como se puede, todavía
tenemos estos valores aquí, broches, aplana, etcétera También puedes asignar foiliage para generar en una
determinada capa si quieres En este caso, no lo
vamos a hacer por ahora. Vamos a ahorrar. Y por ahora, esto debería estar bien. Por ahora, esto debería estar bien.
17. UE5 FC07 03: Ahora bien, este campo de aquí
se ve muy estéril. Esto se debe a que
no tenemos ningún follaje. No tenemos pasto, no
tenemos arbustos,
no tenemos nada. También podríamos ir al foiliage, y crear un engaño
o conseguir un foilage activo.
Podríamos crearlo. Podríamos hacerlo nosotros mismos y plantarlos manualmente por
todo el lugar. Eso no es algo difícil de hacer. Podemos crear solo, digamos, follaje de malla estática. Y vamos a ver. Vamos a crear una nueva carpeta. Llámalo. Foilge. Y llamémoslo Folage Underscoe Mm. El actor de Wolage
subraya a Bush Abramos esto y vayamos a
mallar y seleccionar algunos Bush. Ahora, nosotros salvamos esto. Y si hace clic
y empieza a pintar, pintaremos manualmente este
empuje alrededor del nivel. Dale un segundo para que termine
de descargarse. Compilando shaders,
sea más preciso. Y ahora podemos simplemente
ponerlos por todas partes. Podemos eliminarlos si queremos
y borrarlos, etcétera. La eliminación es bastante
diferente al borrado. Y puedes agregar parámetros aquí. Digamos que queremos que
sea menos densidad. Entonces digamos diez radios o 100. ¿Y qué es lo que hay aquí ahora? Mis disculpas. Debería
haber seleccionado pintura. Ahora obtenemos menos follaje. Tenemos
parámetros adicionales aquí, o es escala. Puede que no tengas media y
max. Esto es para aleatorizar Entonces digamos que
tenemos cero punto cinco, y sólo para demostración,
digamos ocho. Algunas láminas son ahora muy grandes, algunas tontas son muy pequeñas Podemos hacerlos móviles, etcétera, pero honestamente, no se recomienda
tenerlos móviles. Es mejor tenerlos estáticos. Y tenemos colisión.
Realmente no quieres tener colisión en el
follaje debido
a problemas obvios de
optimización. No quieres que tu
auto se mueva y se quede atascado en un trozo de hierba a menos que se requiera un tipo particular de follaje
para tener colisión, no
debes usar colisión. Independientemente, no quiero
usar esto de esta manera. Lo que voy a hacer en cambio, iré y quitaré
parte de los rayos. La forma de eliminar
funciona, es necesario
seleccionar el foiage
y hacer clic en Quitar, pero no
lo tenemos guardado ahí Entonces simplemente lo borraremos
manualmente para limpiar la escena. Podríamos pintar manualmente todo
el nivel con esto, pero esta no es realmente
una forma eficiente de nuestro tiempo. Obviamente, si estás tratando crear un paisaje hermoso, quieres microgestionar
cada detalle La colocación
manual tiene mucho sentido. Puedes colocarlos en singles con solo hacer clic en
este solo botón, o puedes colocarlos en relleno, simplemente llena toda el
área con él. Pero no quiero
perder el tiempo en ello. Entonces lo que vamos
a hacer es en cambio engendrar papel de aluminio con el material Para eso, primero,
necesitamos crear un actor llamado
Landscape Grass type. Ya creé uno, pero volveré a demostrar. Vamos a Foolage. Ir a la sección Foolage, y tenemos el tipo de
pasto Landscape Nosotros creamos esto.
Vamos a llamarlo LG. Vamos a pasto y T
y llamémoslo empujar. El motivo por el que lo llamo push es porque solo
vamos a tener push, pero puedes tener múltiples elementos de
pasto aquí. En nuestro caso, sólo voy a
agregar a Bush, así que lo acabo de
llamar Bush. Pero podrías tener un conjunto de pasto
diferente juntos, así que puedes
simplemente desovar con una sola hierba Aquí, seleccionamos a nuestro actor Busch. Y la razón por la que estoy
usando es
porque es solo una disponible
en contenido de inicio. Puedes crear tus propios Arbustos. Puedes agregar algo
desde Asset Store, desde Fab, donde quieras. Y vamos a guardar esto. Podemos editar la
densidad del pasto. Podemos usar, nuevamente, el mismo concepto similar
aquí, tamaño maxmin. Y hagamos la talla máxima dos. La distancia de llamadas es importante. A qué distancia
quieres ver tu pasto. Lo dejaré
por ahora en diez K, pero es posible que quieras
reducirlo o
aumentarlo dependiendo de lo importante que sea
este tipo de pasto para ti. Y puede notar que aquí no
hay colisión. La desventaja, bueno,
quizás desventaja, dependiendo de tu juego
de usar esto para desovar tu pasto o papel de hoja
no puedes agregarles colisión Así que volvamos a
nuestro material maestro. Ni siquiera lo sé.
Eso era grava. Así que volvamos a
nuestro material maestro. Haga clic derecho y llame a Grass
Landscape salida de pasto. Podrán notar que no
hay lugar para esto. No hay ningún
nodo de salida para esto. Esto actúa nodo de salida
final adicional. Y tenemos que agregar nuestra
hierba aquí. Empuje LTG Ahora, echemos un vistazo a
nuestro Just give a moment. Se puede notar que en
realidad no pasó nada. Esto se debe a que no tenemos nada en la sección de entrada. Ahora, necesitamos explicar
a los materiales dónde generar los
mensajes estáticos para el arbusto. Anteriormente nos hemos
convertido en tipo de pasto. No podemos simplemente poner aquí
esta información porque
se trata de una combinación
de mezclas de capas, y no hay una manera real generar ubicación
a
partir de nuestros nodos anteriores. Para ello, necesitamos un nodo de
muestra, sampler. O capa Paisaje muestra de capa. Y tenemos que poner esto. Y aquí tenemos que escribir
el nombre de la capa. Esa capa, en este
caso, es pasto. Simplemente puedes copiar
pastas o teclearlo. Y seguro. A ver. De pronto,
tenemos mucha hierba generada donde estaba
nuestro material de pasto. Sigo pensando que es
un poco demasiado brillante. Déjame reducir un poco más el
brillo. Sí. Y como pueden ver, no
tuve que pintar esto, y puede argumentar
que es demasiado denso. Podemos reducir la densidad del pasto. Entonces digamos que no quiero mucho, solo
quiero diez y ahorrar. Y ahora tengo algo de pasto. Quiero que en general
sean un poco más pequeños. Entonces, vamos a decir 02 y máximo a la una. Ahora tenemos pasto que está
optimizado hasta cierto punto, y podemos simplemente colocarlos automáticamente
usando un material. Obviamente, podemos crear
múltiples capas y cada una de ellas puede tener sus propias notas. Para producir mallas. Entonces hagamos otra
esta vez por grava. Quiero rocas pequeñas. A ver si tengo alguna roca como mallas en el contenido de inicio Roca. Tenemos una roca, creo. Vamos a echarle un
vistazo. Es una roca. Entonces, volvamos a pasar por el proceso esta
vez más rápido. Vayamos a nuestro foilage, creamos un tipo de vestido filage
landscape Llámalo LGTUnderscore, rock. Abre esto, agrega un elemento, haz que este elemento se rock, reduce, digamos, tamaño
0-2 a uno como antes, y no quiero que
sea denso también, pero hazlo 20 Guarde esto, y vayamos a
nuestro material de paisaje. Aquí, podemos agregar
un segundo elemento. Y podemos crear un
nuevo nombre de parámetro, sampler, ponerlo en Podríamos hacer directamente dos
desove de tipo foolige diferente en una muestra de capa, pero queremos que haya tierra en capa de
grava y pasto o en esta específicamente
arbustos en Entonces lo que tenemos que hacer
es lo mismo que antes, copiamos la grava, nombre del
parámetro, ponemos en un segundo nodo, vamos a aquí, vamos nuestro segundo
elemento, llamado grava. Entrar, guardar. Volvamos a nuestro nivel. No hay nada.
Quizás preguntándose por qué. Volvemos a nuestro material. Tenemos grava, pasto, y tenemos paisaje, pero no tenemos este segundo tipo de
paisaje seleccionado, roca
LGD seleccionada,
y tenemos rocas Ahora, puede notar que
también está
produciendo rocas en el pasto porque estos materiales están en capas uno encima
del otro. Son capas. Lo que significa que la información que el material está recibiendo aquí es incorrecta. Nosotros tenemos rocas, y tenemos rocas y pasto. Quizás te preguntes por qué
está pasando esto. En primer lugar, vamos a
reducir la cantidad de rocas y su
tamaño es demasiado. Hagámoslo tal vez cuatro y el
tamaño puede ser cero punto uno. Parece que lo he deshecho por error y cero punto f. no
quiero rocas grandes Quiero rocas pequeñas. A lo mejor tal vez agreguemos un poco más de rocas
aquí o tal vez demasiadas. Sí, pequeñas rocas
aquí y allá. No se ven
bien. El hecho de que todos
sean la misma
escala, no me gusta, así que agreguemos una gratis
haciéndola libre, significa que su escalado en todas las
direcciones está aleatorizado Hagamos esto así,
ahorren, y probablemente las rocas
se verán más diferentes. Y no me gusta que
sean altos, así que vamos a introducir esta
escala a cero d dos. Entonces no tenemos rocas altas. Sí. Ahora tenemos
guijarros, etcétera, y editemos también sus
cúmulos,
lo que podemos hacer aquí, tal lo que podemos hacer aquí No, esto es
apenas necesito casi ninguna diferencia. Vamos a restaurarlo tal como es. Haz un poco más. No quiero distancia fría. Quiero rotaciones aleatorias. Lamentablemente, esto es más o menos
una limitación de que no tengamos muchas variaciones rocosas. Independientemente,
dejémoslo como está. Y ahora la pregunta principal es ¿por qué tenemos rocas en el pasto? Esto se debe a que la
forma en que funcionan las capas. Cuando estábamos pintando, teníamos estas dos fortalezas
aquí en cero punto tres, lo que significa que esta hierba
aquí está ponderada. A pesar de que usamos capas no
ponderadas, esta hierba aquí
en realidad está ponderada y ahora
tenemos el valor de
cero punto tres en la hierba y cero punto siete
en la grava. La forma más fácil de
arreglar esto es
quitar la
información de grava de aquí
o encordar una herramienta y hacer clic en hierba y
simplemente pintarla de nuevo. Pero aunque tengamos una hierba, todavía no es
lo ideal. Queremos eliminar la información de
grava. Así que hacemos clic en Shift y eliminamos
la información de grava. Ahora bien, si quitamos información de
grava, no tendremos rocas, y nuestra hierba se pondrá más verde. Unreal es mezclar nuestros
dos materiales juntos, lo cual es una gran
funcionalidad para tener Pero cuando se usa esto para
producir rocas y pasto, esto puede ser un desmurado Entonces depende de ti si los
vas a usar como material para
producir el follaje, o vas a usar follaje
para pintar el tolete y
colocarlos manualmente en el nivel Ahora, limpiemos
un poco la escena de una manera rápida. Vamos, no quiero
hierba aquí a un lado. Vamos a tener una fuga principal vamos a quitar la grava aquí. También quitamos la
hierba, será negra. Entonces significa negro, lo que significa que aquí
no hay información. Entonces si pongo grava
y pasto aquí, verás en el medio,
se mezclan. Podemos usar esto para antes
que nada, eliminemos esto. Haga clic Mayús para eliminar
la información de la capa. No quiero que haya grava aquí. Lo que podemos hacer aquí es que
podemos agregar una capa de grava. Los costados. Las colinas y la hierba también se acoplan a los
lados, y solo la hierba en el medio. Lo que nos daremos es una
capa con follaje de pasto solo en una mezcla de
pasto y grava. Entonces rocas y follaje
y solo rocas. Puedes, de nuevo, usar
múltiples capas, usarlas como quieras, crear lo que
quieras crear. Ahora, vamos a salvar esto. No vamos a perder más tiempo en esta generación de paisajes. Y ten en cuenta que
la información de capa para esta colocación para la pintura en el paisaje son
estos dos archivos. Asegúrate de no eliminarlos ni moverlos desde donde
se supone que deben hacerlo. Generalmente, no es
buena idea tocarlos. Realmente no necesitas hacer
nada con ellos, generalmente. Como tal, no
los toques a menos que
sea absolutamente necesario y estés consciente de
lo que estás haciendo. Ahora podemos pasar a
crear en nuestra escena. Entonces ahora tenemos un paisaje. Y a continuación, quiero
crear algo a donde podamos crear nuestros elementos de juego, pero no
tenemos mallas Y con eso, quiero decir, no
tenemos bloques, etcétera, y honestamente, no quiero usar múltiples box para esto Así que vamos a
volver a la herramienta de modelado. Y una herramienta de modelado,
creémonos nosotros mismos. Vamos a
crearnos una plataforma. Podemos comenzar con un cubo o una caja, si
desea llamarlo. Pongámoslo aquí y
podemos hacer su altura 100. Mis disculpas. Mil.
Quizás sea un poco demasiado grande. Hagámoslo 500. Y veamos, podemos
alinearlo al suelo. Alineamos los objetivos en
el suelo directamente. Debería
dejarla solo a nivel local. No hay necesidad de ser demasiado
creativo aquí. Ahora, tenemos esto habilitado. Vamos a ponerlo un poco
en el suelo y
podemos modelar esto más a fondo para
crear nuestra propia plataforma Podemos grupo poly editar esto podemos agrandar para ser
precisos, extruir este ritmo Selecciona el espacio y vamos a ver. Lo que podemos hacer aquí es empujar
o jalar esta cara aquí. Hagamos esto más allá. Hagámoslo una plataforma grande. Ninguna razón real
para hacerla pequeña. Y extruirlo de nuevo. Puede que haya hecho un clic erróneo en algo. Volvamos a dar click en este ritmo,
extruirlo ligeramente y darle
click sobre este, extruirlo de nuevo extruirlo ligeramente y darle click sobre este, extruirlo de Esta será nuestra parte
de nuestra plataforma. Ahora vamos a empujar esta fase. Quizás debí haber
empujado un poco más. Lo estoy haciendo grande por si acaso lo necesitamos. Pero honestamente, eres libre de hacerlo como
quieras, cualquier forma que quieras. Te habrás dado cuenta de
que cometí un error. No tengo patas para esta parte porque
no extruí una cara adecuada Podría agregar borde adicional,
etcétera, pero en cambio, lo que voy a hacer,
voy a hacer clic en esto y
extruir todo el camino Y voy a extruir ligeramente otra vez, crear pase
adicional Voy a dar click en
la cara inferior de la fase recién creada
extruirla nuevamente, el suelo Y ahora tengo esto aquí, que fácilmente puedo extruir de
nuevo. Mira, ten en cuenta. La razón por la que estoy haciendo esto es sólo por el bien de
ahorrar algo de tiempo. Como no deseo modelar, toda
la plataforma. Esto es muy útil
para bloquear y crear las muestras
para el entorno, que posteriormente, puedes pedir tus modeladores o
creativos que hagan
o si te vas a admirar a ti mismo, tú
mismo puedes hacer Ahora, tenemos esto, y las ideas esto se
adjunta aquí a la montaña y tienen esto. Probablemente deberíamos mover
esta parte hacia adentro. Entonces hagámoslo. Lo que podemos hacer es
seleccionar todas estas caras. Y sólo muévalos a aquí. Ahora tenemos una plataforma en la
que se hace clic en Aceptar. Y podemos seguir editando
grupos poli , eso es
crear pilares. Si quieres, como puedes ver, simplemente no
puedes mover esto. Se puede extruir después de seleccionarlo correctamente,
a diferencia de lo que hice Entonces extrudimos esto,
hagamos solo arena de algún tipo Esa es la idea,
al menos en mi caso. Es sólo un poco más grande. Extruir de nuevo para crear polígonos
adicionales o
para ser caras de mayor precio, necesito empujar todo el camino hasta Esto puede haber sido demasiado largo, pero lo sabremos en un segundo. Se puede empujar de nuevo. Edita esto solo un poco. Se puede hacer lo mismo aquí. Ahora, en este caso, sólo estoy
mirando todo el proceso. Entonces no es lo ideal. No. Yo sólo voy a hacerlo aquí. En el pilar extruye ligeramente, es una cara inferior extruir de nuevo Profundo en la pared.
Está un poco desalineado, así es y vamos a moverlos todos juntos. Y es que debería estar bien. Ahora, vamos a ser
edición de poligrupos, extruir la cara. Seleccione el pilar,
extrúyelo de nuevo. La altura es un poco apagada. Entonces hagámoslo un poco más alto. También puede seleccionar los bordes. Para moverlos,
desea cambiar el tamaño, y puede cambiar seleccionarlos para seleccionar varios
bordes al mismo tiempo. Desea modificar
el tamaño de la cara. Esto es de conocimiento común cuando tienes experiencia
con el modelado. Y ahora podemos extruir. Nuevamente, está un poco desalineado, pero no estamos
tratando de ser perfectos aquí, así que solo podemos hacer esto Y voy a
dejarlo así. va a modificar un
poco esta
colocación de estos vértices reduciendo
sentándolos aquí. Sí, no soy el mejor
arquitecto, pero esto está bien. Excepto ahora vamos a seleccionar un
material para esta plataforma. Creo que algo así como una
canica debería estar bien. Podríamos Vamos a ver cómo se ve. No es ideal ya que no
tenemos UVs adecuados. Así que vamos a crear un
nuevo material para esto. Ir a materiales. cómo
se ve nuestro material básico sobre esto. Sí, los UV básicos están bien. Se puede crear un material. Llámalo subrayado plat form. Guardar Los un material de plataforma. Y ahora podemos trabajar en
material para esta plataforma. Guardar.
18. UE5 FC07 04: Ahora, vamos
a hacer un
material de sustrato para nuestra plataforma. Usted puede preguntar ¿por qué? Porque nunca
hemos
tocado el tema, y esta es una buena oportunidad. El material de sustrato es
un nuevo tipo de material o se podría decir función
material que introdujeron en irreal, y es una forma capas de materiales sin
usar realmente múltiples fuentes de material, y se ve y calcula las
capas con sus alfas, con las luces y
reflejos juntos para
darnos resultados de muy alta calidad Entonces, antes que nada, necesitamos una losa ya que
eliminé las entradas de
material predeterminadas anteriores, y necesitamos una segunda si
estamos haciendo losa de dos capas
lo que vamos a hacer. Y necesitamos una capa de
sustrato vertical. Lo ponemos así, esto
aquí, y esto aquí. Esto es lo que
vamos a hacer por ahora. Ahora bien, esto tiene algunas opciones
similares y
a la original. Entonces, primero agreguemos nuestros colores. El albedo difuso es lo mismo que
tu nota de color anteriormente. Entonces hagámoslo
por ahora sin azul, agreguemos uno diferente y
agréguelo para difundir albedo aquí Y vamos a hacerlo amarillo por ahora. Lo
cambiaremos más tarde. Agreguemos una rugosidad
porque quiero que este material superior
sea muy brillante Hagámoslo 05005. Y lo tenemos
como azul brillante. Pero realmente no podemos ver
el amarillo. Para ello. Necesitamos agregar este ayudante de nodo
en particular. Hay dos de ellos. Necesitamos el segundo. Y
aquí los dejamos caer hasta aquí. Y dale un momento.
Ahora, de pronto, este material se ve
muy diferente. Vamos a guardarlo. Se puede ver que esta es una
capa de dos materiales. Y si miras desde
arriba donde se refleja la luz, puedes ver el
brillo con bastante facilidad. Y si nos fijamos en el fondo, tenemos un color más oscuro. Podríamos cambiar el color
para que quede más claro. Digamos, azul oscuro y
digamos, morado oscuro. Es bastante fácil de ver de esta manera. Pero lo que es más importante
es que podemos sumar normales. Las normales son para agregar texturas, así que solo podemos agregar una muestra de
nodo de textura, agregar una normal Y creo que teníamos algunos de irreal Sartbrek para
adoquines Oh, sí, tenemos normales. Para adoquines también tenemos
lisos. Agreguemos unos lisos
y le demos un segundo. Y ahora tenemos un
material en capas con suavidad al mismo. Ahora hagamos del color algo que realmente nos gustaría ver. Quiero un color más brillante
con algunos tonos más oscuros. Hagámoslo en azul. Quiero esencialmente dos capas. Ahora aplicamos esto. Volvamos al nivel
y veamos cómo se ve. Demos el momento. Y vamos a seleccionar nuestro nuevo material
y ponerlo aquí. Obviamente, necesitamos
ajustar el mosaico, pero ahora tenemos un material muy
diferente Es un alicatado ajustado. Significativamente. Así que coordenada
extra. Agregar MAR, el
único que tengo aquí. Hagamos que sea un número muy alto. Vamos a amarrar diez veces. Guardar Guardar automáticamente
también se aplica. Y ahora tenemos este material. Parece que
hay una lámina de vidrio y la miras
desde una dirección, que es el punto de los materiales del
sustrato. Esto sería muy difícil conseguir este efecto específico
si lo hicieras con materiales
regulares. Pero esto puede ser bastante
duro para los ojos. Entonces, qué podemos hacer, vamos a
probarlo con diferentes colores. Pero tenemos negro con algunos, digamos,
rojo brillante por debajo. Volvamos a Bueno, negro en sí no es
mucho de un color, pero el hecho de que tengamos este parámetro de rugosidad
aquí afecta cómo se ve Entonces, si fuéramos a
aumentar la rugosidad, digamos a uno y aplicar este material de repente
tenemos un material rugoso Pero no lo queremos así de rudo. Vamos a revertirlo, y en realidad
no lo queremos negro. Hagamos algo
elegante y hagamos que dos colores brillantes choquen
entre sí como tales Y tenemos esta nota de estilo. Vamos a aumentarlo aún más. Quiero aún más
rocas más pequeñas en el pavimento. Y vamos a darle un momento. Y ahora tenemos este material, que creo que estoy bien con él. Podrías agregar múltiples
colores, múltiples capas, y ser creativo y obviamente el sustrato por sí mismo
tiene múltiples opciones. Podrías, por ejemplo, editar también
la rugosidad de la
segunda capa Entonces, si haces que la segunda rugosidad
real sea cero, la segunda capa
será muy brillante Entonces ahora de pronto hay más
brillo en la segunda capa, y si invertimos esto un poco La capa superior no le va a
tener ningún brillo,
pero la capa inferior lo será. Entonces se comerá el brillo. Pero si también podemos hacer esto, y la aspereza aquí puede
ser de un valor similar Y agrega una enfermedad a la capa. Entonces, qué tan gruesa es la capa superior. Entonces, cuando tenemos
este mal superior a cero significa que esencialmente el mal
superior no existe, realmente no lo veremos. Entonces, probemos un
punto, apliquemos y veamos. Tenemos un material
amarillo muy brillante. Pero si lo ponemos en
algo así como uno, esto es demasiado enfermo
para ver el amarillo. Pero si punteamos cero punto
cinco, todavía demasiado enfermos. Punto cero uno. A
lo mejor todavía es demasiado grande. La lógica aquí es demasiado enferma
para ver a través del objeto. En zero.01, apenas se puede ver y apenas
se ve y apenas
se Y si se reduce un poco
más, apuesto a que me refiero diez veces. Ahora todo es amarillo. Podrías
simplemente ponerlo en algo cinco y puedes ajustar cuánto quieres que sea Cro
el material. Pero debería ser un número
muy pequeño. Lamentablemente, irreal no
tiene documentación sobre lo pequeño que debería ser el
valor predeterminado, pero podemos probarlo y echarle un vistazo a medida que
estamos dando vueltas. 02 es demasiado grueso, y tal vez deberíamos
tener un valor de siete Y nuevamente,
también podríamos desactivarlo y
ver la diferencia, como pueden ver, un poco más
amarillo, un poco más azul. Tristemente, no estoy al tanto de cuál es la
enfermedad por defecto de la misma, pero voy a asumir
que es en algún lugar 1-2. Lo más probable es que uno.500 15. Sí. Algo a lo largo de los lados. Quiero que sea más amarilla, así que la voy a poner a las 05. Aplicar. Échale un vistazo. Ahora bien, el azul y el amarillo no
es una buena combinación, pero la vamos a dejar
por ahora porque quiero
probar y mostrarte cómo se ve con una normal
diferente aplicada. Entonces, la segunda capa
que tenemos esencialmente parece una capa de
rocas debido a esta normal que tenemos aquí, textura
normal. Pero también podemos agregar una
textura en la primera capa. Entonces si ponemos esto aquí
y lo enchufamos a la normalidad, mis disculpas,
necesitamos un nodo de textura Lo ponemos aquí. Y agreguemos un nodo de
textura diferente para que
solo
podamos buscar N. No queremos arcilla. ¿Hay alguna normalidad interesante? Echemos un vistazo a la roya. El óxido como textura normal. Vamos a aplicarlo. Es posible
que necesitemos agregar el alicatado. Ahora tenemos esta cosa rara de la
roya en la parte superior. No me gusta el mosaico de esto, así que vamos a
agregar un nodo de textura Vamos a dentatizar esto
también. Aplícalo. normales de los nodos de óxido
pueden no ser las mejores, pero de repente tenemos estas
imperfecciones en el material Se siente como si un
bloque de agua congelado sobre el camino
adoquinado,
pero el camino en sí también
está en capas Y todo esto se hace
por material sencillo. Si solo tuvieras que
quitar este material, parece una piedra de bloque. Pero aquí. Ahora bien, lo que podemos hacer es en cambio seleccionar algo
que tenga más sentido. Con un adoquín, normales de
basalto. Y cambiemos
los colores también. El azul no es un buen color. Hagámoslo algo así como color
marrón marrón mezclado con Veamos. Hagamos un material de color
a color, aplique esto Quizás
sea un poco demasiado brillante. Sí, esto es un poco demasiado brillante. Así que vamos a reducir
la saturación de misma y tenerla un poco
más oscura, tal vez un poco más. Puedes escoger el
color esto también. Tomemos saturación
y pongamos a continuación. Son muy similares a los colores lo cual es completamente
fino para nuestro propósito. Sí, esto debería estar bien. Esto ahora parece que la
combinación de colores no está tan lejos. Podríamos hacerlo un poco más
oscuro en ambas cuentas. Podemos, lo que es más importante reducir aumentar la rugosidad para
que sea menos brillante Entonces, vamos a llegar tan lejos. Y éste puede ser
recto. Guardar Bien, ahora es
mucho menos brillante. No queremos que sea
metálico ni nada. Hay
parámetros adicionales como por ejemplo, si pones aquí la rugosidad de la pelusa
y digamos cantidad de pelusa Vamos a
echarles un vistazo y ponerlo en uno y pelar
la rugosidad en cero. Hagámoslo uno
también y agreguemos un color. Digamos rojo. Obtendremos un tinte adicional. Pero esto es un poco demasiado, así que vamos a reducir la
cantidad de pelusa a cero punto cinco, tal vez incluso cero punto dos para simplemente agregar algo de
enrojecimiento al material Y ahora tenemos un material
que es una combinación de tres colores, dos normales. Tiene múltiples
parámetros para la rugosidad. Y no tocamos muchos
ajustes adicionales aquí. Y el hay múltiples
formas en las que puedes hacer esto. Podemos agregar capa
vertical adicional y agregar una losa de sustrato más y colocarlas nuevamente y
agregar aún más normales, incluso más colores, incluso más como rugosidad adicional,
UV, etcétera Hay infinitas formas en las que puedes usar esto para hacer materiales
guapos, y Unreal tiene una demostración de material de
sustrato que puedes descargar
gratis y comprobarlo desde su sección de educación
y tutorial en fab o en el Unreal
Lunch, hay muestras Sección en la que puedes hacer
click y echarles un vistazo. No creo que Unreal tenga muestras de
sustrato en
el contenido de inicio Sí, no lo tienen, pero puedes descargarlos
y echarles un vistazo. En fin, por ahora,
digamos que hemos terminado
con nuestra escena. A continuación, queremos agregar
elemento de jugabilidad en la escena. Entonces primero, tenemos que
asegurarnos de que nuestro personaje funcione. Presionemos play, y nuestros personajes aparecen en
medio de la pantalla ¿Por qué? Si vamos más alto
y presionamos play, nuestro personaje engendra desde
donde está nuestra cámara La razón por la que esto sucede
es porque no
tenemos un cierto
indicador en la escena. Y a ese actor se le llama
aquí, déjame ver. Carácter. 1 segundo. Nodo de inicio del jugador, este. Así que este
nodo de inicio del jugador define dónde empieza de nuevo tu
personaje. Obviamente, puedes
sobrescribirlo como en el juego guardando archivos o
simplemente algunos disparadores Pero por lo general, esto es
sólo un punto de partida. Y ahora, independientemente de
dónde esté nuestra cámara, nuestro jugador siempre va a
desovar en ese punto Asegúrate de que esto
realmente no esté en una posición adecuada. Si pones algo como esto, caerás
por el suelo. Por lo tanto, debes asegurarte inicio de
tu jugador esté
en la posición correcta para no solaparse demasiado con
otros objetos. Y si, tenemos esto ahora
podemos hacer algunas cosas de jugabilidad. Podemos movernos por nuestra escena porque creamos estas
rocas con nuestros materiales. No tienen colisión, que, para ser sinceros, no
queremos en
primer lugar. Y antes de comenzar, agreguemos algún tipo de forma de escalar esta parte aunque no la vamos a usar
solo con fines visuales. Así que vayamos a nuestro
lugar ficha actor. En las ventanas, vayan
a colocar actores. Y vamos a las formas básicas. Creo que teníamos una
escalera en alguna parte sí. Curva señor líneas señor.
Y vamos a usar esto. Esta es una malla de cepillo. Entonces esto no es realmente una malla. Es más como una herramienta de modelado
combinada con malla estática. Y solo puedes aumentar
la cantidad de pasos que tiene. Aumentemos la altura para 80 y el número de escalones
a, digamos, 50. Oh, puede que lo haya exagerado. Digamos que el número de pasos
debería ser algo así como 35, 32, uno. Hazlo. Debería estar bien. A lo mejor vamos a hacerlo más amplio. Es menos de la escena. Y vamos a usar vamos a
quedárnoslo Lexis. Y después de haberlo
alineado como
queramos, podemos crear malla estática, y veamos, mantenerla
en la malla generada. Y ahora esto se
convierte en malla,
y podemos usar nuestro material,
que usamos aquí, simplemente
puede hacer clic en Bowe, dar y podemos usar nuestro material, que usamos aquí, simplemente
puede hacer clic en Bowe, clic en esta malla, y dar clic en Usar Seleccionar activo
desde el navegador Y ahora tenemos la
misma malla aplicada aquí. Debido a que esta malla
es mucho más pequeña, el mosaico también es muy pequeño
, pero está bien Y ahora, por si nos caemos, como lo hice hace un momento, podríamos subir, pero esta malla
no tiene colisión. Entonces hacemos clic en él, hacemos
clic en la colisión, y necesitamos seleccionar el preajuste de
colisión para bloquear todo ya que es una malla Y yo solo lo quería. Ahí tenemos algún espacio vacío. Podemos arreglarlo en un segundo. Pero todavía no funciona. Ahora bien, la pregunta puede ser, ¿por qué no funciona esto, que te
mostraré en un segundo Entonces este es un pincel. Lo creamos a partir del pincel
básico, ¿verdad? Y si revisas el encendido y vas a colisión de jugador, esto
no tiene colisión. La razón por la que
creamos esta malla, pero nunca le pusimos
colisión. Entonces lo que puedes hacer es ir a abrir la malla que
hemos generado y hacer clic
en colisión del jugador, y no hay nada, y hacer clic en la colisión
inferior en la parte superior para crear una. Entonces hay en colisión de esfera. Hay cápsula, hay caja. Entonces, si haces clic en el
cuadro de colisión simplificada, esto no es lo ideal. Entonces solo para demostrar
cómo se verá, movamos nuestro
inicio de juego cerca para que no
tengamos que caminar demasiado. Ahora nos estamos moviendo en el aire. El motivo es porque
hay una colisión, es la forma de una
caja debajo de nosotros. Y eso no es lo ideal
para nuestros propósitos. Sólo una
regla general, ten en cuenta, las únicas cosas que puedes tocar en la escena son las escenas
que tienen colisión. Unreal genera ciertas
colisiones por defecto, asumiendo que las necesitarás Pero hay ciertos
casos en los que así, no
se está generando
porque esto se suele
utilizar para la creación de prototipos,
no para el layout real de la escena Ahora, para hacer una
colisión adecuada para esto, idealmente, lo
crearías a medida en un software de modelado
o simplemente moverte por
tu cuenta
usando algunas herramientas, herramientas de
modelado, etcétera Pero en cambio, lo
que vamos a hacer, vamos a eliminar nuestra colisión
ineficiente C en la colisión y
convertir bookis colisión
y Haremos clic en
Oto cuadro colisión,
fuera colisión convexa,
mi disculpa Y en el lado derecho,
seleccionamos la calidad, y realmente no nos importa
demasiado esta calidad, y haremos clic en Aplicar. Es posible que desee reducir ciertas colisiones hasta
pero ahora esto está mal configurado Si lo haces muy bajo,
esto se verá muy mal. Como puede ver, esto ni
siquiera es una colisión total. Así que vamos a poner en
los valores por defecto y pre suministro. Esto no es realmente ideal. Como se puede ver, hay vértice
extra, etcétera. Hay líneas de colisión
que no tienen sentido, pero esto es solo para propósitos de
prototipado, así que simplemente podemos
dejarlo como está, y ahora podemos movernos Ahora tenemos esta escalera,
que, para ser sinceros, realidad no
vamos a usar porque
pretendo abarcar toda esta
zona con una caja de colisiones. Así que el jugador no puede simplemente
saltar fuera de la capa. Muchos juegos,
tal vez recuerdes si eres un jugador competente tiene áreas fuera de límites con paredes
invisibles, etcétera Y la razón por la que se hace es los desarrolladores no quieren que
vayas a donde se supone que
no debes ir. Por ejemplo, en este caso, estoy escalando esta montaña y si voy más allá de
esta montaña, ahí no hay nada,
y me caeré fuera de límites y cuando llegue a
cierto punto del mapa, el actor quedará destruido Estaré infinitamente atrapado
en una siguiente animación. Obviamente, esto no es lo ideal y no queremos
que eso suceda. Entonces usualmente agregamos colisiones
invisibles, por lo que no puedes moverte fuera de ella. Nuevamente, esto se puede hacer fácilmente, yendo a colocar actores y solo
podemos
buscarlo escribiendo bloqueo. Ahora tenemos bloqueando el volumen. Entonces agregamos esta
caída al nivel, podemos eliminar nuestros sectores de juego. También podrías dar click
aquí e ir a volúmenes e ir a bloquear
volumen o simplemente buscar aquí. Entonces ahora tenemos este volumen de
bloqueo, que todo lo que realmente
necesitamos hacer es dimensionar escalar para ser más precisos, y hagamos esto. Y sólo para fines de
demostración, voy a hacerlo muy grande todos lados y poner esta pared
invisible en el medio. Así que vamos a presionar play, y vamos a tratar de entrar en
el medio de la escena. Quizá veas algo familiar. No estoy en condiciones de ir
más allá de este punto. Visualmente,
no tiene ningún sentido, pero
aquí hay un volumen bloqueante que está impidiendo
mi movimiento. Entonces, lo que tenemos que hacer en cambio, simplemente lo
reduciremos, lo
haremos más largo y
lo pondremos para que abarque el nivel. La forma más fácil de hacerlo podemos usar colisión de
jugadores para ver exactamente dónde
el jugador no puede moverse. Y no queremos que el jugador
se mueva más allá de esto. Hagámoslos más grandes. Y podemos desplazar los clics
con todos los sentidos. Podemos cambiar haga clic en esto de nuevo. Gira es de 90%. Bonito. Titular y cambiar de nuevo y
moverlo todo el camino hasta aquí. Y ahora, si bien esto puede parecer una clave porque no
están perfectamente alineados, para ser honestos,
no importan
tanto como no los
vamos a ver aquí. Obviamente,
querrías tener tus cajas de colisión precisas. Pero para la creación de prototipos, ya
te han visto, realmente no debes
preocuparte por ello. En el tema de la creación de prototipos,
durante el desarrollo del juego, es muy importante prototipar y probar
sus juegos rápidamente En la mayoría de los casos, la razón por que se lanza el
juego
y no
es divertido es porque no fue prototipado y probado correctamente
en la etapa inicial Y cuando los desarrolladores dan cuenta de que su juego no
es realmente divertido, se
encuentran con una opción. Necesitan o bien seguir desarrollando el juego
que saben que
no es divertido o intentan de
alguna manera hacerlo divertido. O simplemente lo empujan
y lo liberan tal como es, o si bien son los más ideales
desde el punto de vista de, ya
sabes, la moralidad,
necesitan reiniciar todo
el proyecto Entonces, la mejor manera de saber si lo que estás haciendo es divertido
o no es haciendo un juego. Y para hacer tu
concepto central de jugabilidad, aunque tus modelos no
parezcan nada, lo que necesitas hacer es simplemente
usar lo que tienes a mano, hacer un prototipo rápido de
lo que intentas
hacer y convertirlo en un juego. Entonces, lo que estamos haciendo aquí ahora, solo
tenemos un
ambiente aleatorio con algo de follaje y
escombros aleatorios, etcétera rocas, y esta muy
aleatoria, muy probablemente, en opinión de la mayoría de la gente, plataforma
muy fea que vamos a usar
como área de juego Estoy tratando de asegurarme de
aprovechar todas las oportunidades posibles para explicar la
funcionalidad adicional de las herramientas disponibles
para ti en la escena. Como tal, vamos a
hacer algunas cosas distintas. No queremos que
sea tiempo de luz. Entonces lo que vamos
a hacer, vamos a controlar L y hacerla más oscura. Lo haré
aún más oscuro más tarde. Vamos a agregar fuentes de
luz
encima de aquí en todas estas líneas. Y estas fuentes de luz
actuarán serán nuestras principales
fuentes de luz. Y este será
en su mayoría elemento visual, y el color de la luz
cambiará dependiendo de
lo que hagamos en el juego. Entonces mi idea actualmente
es muy sencilla. Vamos a tener algunos objetos de
física como esferas, y vamos a
empujar estos
objetos de física a cierta parte de la arena que se moverá. Y tu objetivo es
meter cierta cantidad de pelotas en la arena, y una vez que
hayas terminado con eso, eres libre de ir
por esta plataforma. Y este será el
final de nuestro juego. Vamos a tener
algunos interactables. Y vamos
a tener una puerta de entrada aquí donde está nuestra escalera. Y lo más probable es que
agreguemos algunas paredes aquí para asegurarnos de que realmente no
puedas
salir sin
depender demasiado del volumen de bloqueo que es solo bloques rectos
aquí Vamos a agregar algún
marco, esencialmente, y vamos a
agregar algunas puertas aquí, algo que
funcione como una puerta,
como algo que sea
portón o una barda. Sí, la cerca es más así que ahora vamos a discutir
lo que necesitamos para esto. Necesitamos una fuente de luz. Vamos a reutilizar nuestro plano anterior
con algunas diferencias Vamos a usar
una barda para simplemente agregar una ilusión que diga
tener una colisión y está bloqueando nuestro
movimiento afuera. Vamos a usar
utilería que tenemos a mano y necesitaremos objetos
físicos, que serán formas
básicas regulares como esferas Y necesitaremos crear
algunos planos para movernos por nuestra zona que esencialmente
va a actuar como puerta Necesitas anotar puntos en. Y este va a ser el concepto
básico de jugabilidad de esta demo. Sentialmente este es un prototipo de juego muy
simple que
estamos haciendo solo
para ver si es uno, que probablemente sea
la parte más importante del desarrollo del juego para ver si puedes hacer algo divertido Si bien te estoy enseñando
cómo hacer todo esto, no
estás obligado a repetir
mi paso a paso. Puedes crear algo
divertido de inmediato. Estoy tratando de
asegurarme de que podamos aprender lo
más posible sobre el proceso de
desarrollo de juegos en lo irreal, bueno, también tratando de no
perder demasiado tiempo Y a tener en cuenta, todos estos
son conceptos básicos básicos. Cada elemento
en lo irreal es muy complicado si
cavas lo suficiente, excavas lo suficientemente profundo Instancia, ¿cómo funciona la luz, cómo funcionan las sombras? ¿Cómo funcionan las funciones del material? ¿Cómo puedo crear materiales
que se muevan? Imagina cada juego que hayas jugado
o visto en tu vida. Cada cosa incluso
relativamente simple en los juegos, lógicas, funciones, si intentas
implementarlo en un juego, de pronto, aparecen muchos puntos que
aparecen que no tienes idea de
cómo hacer o cómo funcionan Lo más importante
como desarrollador de juegos para entender cómo los engranajes hacen
clic juntos. Cómo
interactúa un objeto con otro, cómo un material refleja la luz, cómo las sombras trabajan junto con
la luz, cómo
el paisaje, las mallas, las mallas estáticas, los personajes pueden
interactuar entre sí ¿Cómo puedes simplemente abrir una puerta sencilla que es
diferente para cada juego? Ten en cuenta
cómo se hace todo. Y en la próxima conferencia, vamos a crear
nuestros elementos de juego. Por ahora, terminemos de
configurar nuestra escena.
19. UE5 FC07 05: Ahora, comencemos agregando
algunas luces a nuestra escena. Ya usé nuestra lámpara creada
anteriormente, escalé hacia arriba, la giré hacia abajo y dependiendo de tu escena, siéntete libre de hacer lo mismo Sólo para encontrar una posición relativa donde te gustaría
tener tus luces. Ahora, puedes echar un vistazo a la pantalla
y darte cuenta de repente, Oh, hay mucho
espacio que cubrir. Tendría que
agregar manualmente esta luz, digamos, cada cien unidades o cada 500 unidades para
cubrir toda mi escena. Puedes, por todos los medios, hacer eso. Pero el tema es estas luces que vamos a
agregar
a nuestra escena van a estar va a haber muchas de ellas por el tamaño de la escena que hice, y me
tomaría
mucho tiempo colocarlas todas manualmente. En cambio, lo que
vamos a hacer, vamos a crear
una función y tener un
guión de construcción que funcione para esa función que pueda colocar a
estos actores en nuestra escena. Entonces hagámoslo. Primero
que nada, creamos un nuevo actor. Y va a
ser sólo un actor. Lo llamaremos llave de luz
BP. Ábrelo, guárdalo por si acaso. Para fines visuales, agreguemos aquí
algo que pueda actuar. Solo agreguemos una flecha para que podamos ver en qué
dirección se encuentra la X. Si te estás preguntando cómo se
vería en el nivel, si solo añadimos esto aquí vamos a hacer default syn root, compilar Vamos a tener
esta flecha roja que muestra dónde está buscando este
plano, lo cual va a ser útil Podemos escalar esto, así es más fácil de ver. El propio actor
no importará ya que esto sólo
va a ser utilizado
para la construcción. Entonces, la razón por la que creamos
este actor es porque si lo
creamos aquí en el guión de
construcción, esto se ejecutará en cada
copia de este plano Pero solo quiero un
actor que spa cierta cantidad
de actores ligeros, y después de eso, simplemente
eliminaré a este actor para que
no pueda hacer esto incitando Entonces lo que vamos a hacer es que vamos
a ir al guión de construcción, y algunos de ustedes ya lo
han intentado,
pero si van a spa actor de
clase, tal pero si van a spa actor de vez estén pensando, tal vez simplemente haga clic en Lámpara,
Plano, y para, digamos, conseguir que el actor se transforme,
adjuntarlo aquí, y aquí Quizá estés pensando, bien, todo lo que necesito hacer es esto. Y si voy a mi
mapa de niveles y presiono play, habrá una segunda luz. Lo simularé, así
no tengo que enfriarme de esa manera. Bueno, técnicamente tienes
razón. Está engendrado Obviamente, no dijimos
cómo desovar, pero hay un problema Todavía coloqué a un solo actor y ese actor está
apegado a este actor. Entonces lo hicimos
con un paso extra. Ahora bien, tu idea puede ser, bien, ¿y si usamos script de
construcción? De esto se trata. No se puede copiar directamente al actor engendrado en el guión
de construcción Esto es por razones de comp, razones
computacionales porque puede romper fácilmente el motor Si creas un actor que crea un actor
que crea un actor, entonces
no suele ser una buena idea. Ahora bien, ¿qué podemos hacer
para que esto suceda? No podemos usar esto, y
no podemos usar esto porque
no queremos que esté en juego, queremos que sea antes del juego. Y el guión de construcción ocurre antes de que se cree el actor. Sucede antes de
comenzar el juego o incluso hacer cualquier cosa
en la jugabilidad. Para ello, necesitamos
crear una función. Así que vamos a crear una función. Lo llamaremos actor de engendro. El de alguna manera
logró estropearlo. Y vamos a ir a guión de
construcción y
llamar función de actor spawn Y copiaremos esto y lo pondremos dentro de nuestra función de actor
spawn Aquí no. Actor span. Sólo vamos
a hacerlo así por ahora, Compilar y
volver al nivel, y tal vez veas, espera
no pasa nada. Esto se debe a que esta función no
es algo que deba ser llamable por el script de construcción
en primer lugar Entonces lo que vamos
a tener que hacer, vamos a hacer click
en spawn actor y dar click en call en Editor Esto significa que esto ahora se puede llamar antes de que el evento comience a
jugar durante el editor. Así que vamos a volver. Y tenemos a este actor
seleccionado engendrador de luz. Y ahora tenemos un botón
llamado spawn Actor. Se da click en él,
tenemos actor que engendran. Esto es exactamente
lo que necesitamos, y justo ahora
puedes
mover a este actor, hacer clic una vez más
y volver a engendrar Ahora bien, esto todavía no es
exactamente lo que necesitamos. Pero antes que nada,
obtengamos valor o resista la
rotación y la escala. Aquí tenemos que asegurarnos de obtener los valores adecuados para
el actor spawn Entonces actor estamos tratando de engendrar. Para entender cómo funciona, primero, echemos un
vistazo a este nodo. Este nodo se llama
get actor transform. Transformar significa la rotación, ubicación y escala
del actor. En este caso, el destino
para este nodo en sí. Entonces significa que está
consiguiendo a estos actores. Con esto, quiero decir, este actor de
flecha que creamos. Y está obteniendo sus valores para rotación,
ubicación y escala, y lo estamos poniendo aquí
en este nuevo nodo, que está creando el nodo de lámpara con los parámetros descenso. Por lo que es esencialmente copiar exactamente
los mismos valores
del propio actor. Pero esto no
siempre es lo que necesitamos. Entonces en este caso, particularmente, necesitamos editarlo es
rotación y ubicación. Podemos mantener la escala
tal como es porque la escala por defecto para
este actor es cinco, como hemos
configurado anteriormente aquí, y la escala para la
lámpara también es cinco,
así que realmente
no tenemos que cambiarla, pero podríamos hacerlo desde la
función aquí si queremos. En primer lugar, vamos a
dividir pegados. La razón por la que lo
hacemos es porque
no podemos editar todos
estos nueve valores al mismo tiempo fácilmente. Entonces los dividimos, y ahora tenemos parámetros
individuales que podemos
adjuntar entre sí. Podemos simplemente poner en
escala tal como es, pero necesitamos modificar nuestra
ubicación y rotación. Entonces, qué podemos hacer por rotación
tal vez quieras Oh, bien, solo
agregaré el valor que
quiero encima y tal vez incluso solo más. Pero puede notar que esto
no funciona con la rotación. Si lo haces con
vector, funcionará. Ahora bien, la razón es
porque la rotación no suele ser solo un valor. Entonces la rotación de los actores es en grados y no en realidad valores
flotantes, generalmente. Entonces lo que tenemos que hacer en cambio, vamos a poner
esto aquí como
es por ahora y vamos dividir
más strtin y vamos a escupir strtin
aquí Entonces, si le echas un
vistazo a nuestros rotadores, aquí tenemos una
rotación -180 para lámpara y 179,
bueno, que en realidad es
solo un error de flotación, 180 para nuestra Z. Pero si movemos a nuestro actor
aquí y digamos, rotarlo Ahora es 90, 180 Entonces lo que queremos que sea es que
queremos que sea -180 siempre, pero queremos que el eje
sea modificable Entonces lo que vamos a hacer, vamos a mantener Y tal como está. No hay razón real para cambiarlo. Y para X, sólo podemos
poner en el valor de -180. En cuanto a Z, vamos a agregar Y lo que
vamos a agregar aquí es,
echemos un vistazo. Si tuviéramos que revertir Z, esto va a mirar hacia arriba y
tenemos que mirar hacia abajo. Así que hazlo 108. Puede que haya cometido un error, pero pronto lo sabremos. Entonces
echémosle un vistazo yendo a nuestro nivel. Eso es por ahora. Y da click en
esto y haz clic en Spawnctor Sí, he cometido un error. Puede notar que este
es un valor incorrecto. Son los 90. El motivo es porque el
valor predeterminado para esto es 90. Entonces debería haber calculado la diferencia
entre ellos en su lugar, y para 180 y 00 cien 80. Entonces para que sea
exactamente como quiero que sea necesitaría
rotarlo extra. Necesito un extra de -90 grados. Entonces hagámoslo -180 y
veamos cómo funciona ahora. Nuevamente, esto no es correcto. Estamos obteniendo la X correcta, pero
aquí no estamos obteniendo
la rotación correcta porque estamos sumando
el -180 encima de Probemos -170. Compile, y probemos ahora. Eliminemos este
y engendremos actor. Ahora es como debería. Entonces el tema fue que teníamos 90 grados
positivos por
defecto en este actor, y necesitamos que la
diferencia entre este y este vector span sea 270. Ahora, volvamos y tratemos de hacer
uso de este actor. Entonces, si quiero que todos
los actores se alineen con este, necesito los ases para
esto y ponlo aquí. Copiar y pegar. Y
probémoslo ahora. Sí, es más
o menos lo mismo. Ahora, para asegurarnos de que nuestros otros
excesos también sean correctos, simplemente los
copiaremos y
los colocaremos hasta que estén
uno encima del otro y después de eso, simplemente lo moveremos Ahora, sus
puntos de origen son los mismos, y ahora podemos moverlo
y hacer clic en Span actor. Ahora, es solo sector span, y está lleno de
actor funcional que podemos usar. Ahora bien, todavía no es
exactamente lo que necesitamos. Esto todavía significa que
técnicamente será un poco más fácil que arrastrar al actor
requerido
cada vez, todavía
significa que necesitamos
arrastrar esta flecha por
todas partes y
repetir este proceso Hay una manera de
hacerlo aún más fácil. Entonces ahora que podemos engendrar este
sector en cualquier lugar que queramos, pongámoslo hasta aquí como punto de origen y modifiquemos más
nuestro plano Es posible que hayas notado que tenemos este nodo de ubicación de transformación. Entonces, si ponemos aquí valor
adicional, digamos que esto está en el eje
Y actualmente. Entonces si pones eje
Y adicional como digamos 500 unidades y presionas spawnctor
lo engendramos Digamos que queremos generar
500 una lámpara cada 500. Unidades. Ahora echemos un
vistazo a nuestro plano aquí. Tenemos esto aquí
que es responsable de nuestra ubicación Y, ubicación del eje Y. Y lo que queremos que haga
para el primer actor que se está
creando, sea a los 500. El segundo estará en 1,000, tercero a 1,500 y
así así, así sucesivamente y así sucesivamente. Eso significa que necesitamos sumar 500 a este valor cada vez que se repita, pero también necesitamos agregarle algún tipo de límite
porque no queremos que
suceda infinitamente Entonces lo que podemos hacer aquí, podemos presionar la tecla N y dar
click en el plano Esto creará este
nodo llamado D N, lo que significa hacer cierta
cantidad de veces y esa cierta cantidad de
tiempo es este valor por aquí. Lo conseguiremos y
lo pondremos en un comienzo muy claro. Y este va
a ser nuestro contador. Lo que vamos a hacer es hacerlo, digamos, por ahora tres veces. Y cada vez que lo hacemos, y el entero va a ser obviamente cero,
uno, dos, tres. La razón por la que comienza con ceros con el entero y
los enteros comienzan desde Y tenemos que asegurarnos
de editar este valor, ¿verdad? Entonces vamos a
dividir esta estructura, y vamos a obtener
este valor multiplicar por 500 y ponerlo aquí. Lo que está sucediendo
ahora es
dependiendo de qué iteración de
este proceso sea, tomará este valor, lo multiplicará por 500 y
colocará a este actor en el valor de esa ubicación Entonces volvamos al
nivel y veamos cómo funciona. Quitemos primero esta lámpara
y hagamos clic en Spawn Actor. Ahora bien, puede notar que
esto no funciona correctamente. Porque no tenemos
esto volviendo a la. Este spa en sí
no lo repite. Necesitas tener el final de Esto solo limita
cuántas veces esto puede suceder. Entonces lo que vamos a agregar, vamos a agregar un
nodo re root aquí para que quede limpio,
y lo vamos a
volver a poner aquí y vamos a mover esto para tener algunos
sembolanos de organización, que podemos usar más
en este proyecto Y ahora volvemos, compilamos, y vamos a eliminar
esto ahora y pulsamos Spactor que tenemos ahora si echas un vistazo al valor de
ubicación aquí, la diferencia va
a ser exactamente 500 Ahora bien, esto es exactamente
lo que necesitamos. Ahora, solo necesitamos tener algún tipo de cálculo sobre cuántos de estos
actores necesitamos. Y digamos, sólo lo voy
a hacer un globo ocular y
digamos que quiero 15 Yo solo puedo hacer clic en 15 aquí, compilarlo, guardarlo por si acaso guárdalo también. Generar múltiples actores puede
fallar tu PC dependiendo tu lógica que hayas puesto
y las especificaciones de tus PC, actor de generación. Y creo que me
negué correctamente. Sí, ahora tenemos
15 lámparas con una. Hay algo de brillo dando
vueltas por las luces que creamos por
los materiales que tenemos, que arreglaremos todo más adelante. Ahora, queremos que esto repita de nuevo pero esta
vez en otras paredes, y podemos simplemente tomar a este
actor que tenemos, moverlo por ahí. Y ahora esta vez
lo pondremos aquí todo el camino del
lado izquierdo. Ahora, cuando volvamos a hacer clic en
este fondo, tendremos este spawn
en esta línea específica Quizás te estés preguntando, Bien, ¿por qué engendró de
esta manera y no en la misma dirección que la
flecha en la hora anterior El motivo por el que esto sucede
es porque mientras la rotación de este actor en el plano que
hemos creado,
controlamos tesis Es a partir del actor transformar. Estamos agregando forzosamente ubicación de
transformación
en un eje diferente Realmente no estamos usando ninguna direccionalidad
sobre dónde debería desovar Podríamos hacer que suceda. Podríamos obtener la rotación
actual del actor, obtener la rotación de la flecha, por ejemplo, y
ponerla como valor. Pero lo único que estamos tratando de hacer aquí es
hacerlas en línea recta. Y esta línea verde es el eje Y, y la azul es Z, y la roja es X, y nuestra gran
flecha roja está en la X. Entonces, si quieres
desovar en la X, todo lo que tenemos que hacer es
realmente ponerla aquí,
compilarla y presionar néctar de spa Ahora bien, la colocación de
mi flecha es poco fluida. Así que vamos a ponerlo
así de nuevo. A ver si se ven
bien. Están bien. Y ahora lo que podemos hacer, podemos simplemente moverlo todo
el camino hasta allí. Ahora, necesitamos rotar esto y asegurarnos de que
ignores las fluctuaciones de luz. Esto se debe a los ajustes de claraboya
y exposición. Y ahora, de nuevo, necesitamos
que suceda en el eje Y. Pero esta vez, si lo
hacemos así, compilamos y damos clic en Spawctor, se
revertirá La razón por la que esto sucede es porque tenemos un valor
positivo y pasamos del
Y X positivo a uno negativo. Mis disculpas de uno
negativo a uno positivo, mayor valor Entonces, en cambio, lo que puedes
hacer es poner un menos aquí, compilar, como spactar
y ahora tenemos luces Obviamente, no se colocan
correctamente en este momento. Sí, mucho mejor. Y ahora hacemos
exactamente lo mismo. Nuevamente, lo movemos por ahí. La razón por la que
estamos rotando esto y moviéndonos
es porque estamos obteniendo una rotación real de
la rotación del actor. De esta manera no tenemos que volver a
rotarlo cada vez. Y ahora volveremos a spactor, y obviamente, va a estar equivocado Necesitamos que ahora estén
en el eje X. Entonces lo que vamos
a hacer como antes, sólo
vamos a
mover esto de Xxxs y si lo intentamos de nuevo, bueno Entonces haciendo un guión de
construcción una vez, y creo que extravié ligeramente
estas lámparas, así que tengo que
bajarlas manualmente Oh, no, hice la geometría un poco mal.
Debería estar bien. Aquí no estamos
buscando la perfección, solo
estamos en un prototipo Y la mejor parte aquí es de hacer un guión de
construcción, solo unos actores de spa como lo hicimos ahora es que el actor span sí no es necesario
para permanecer en el nivel. Podemos quitarlo del nivel, y tenemos todas estas luces de actor
blueprint puestas y ahora podemos ajustarlas. Entonces, antes de hacer eso,
seleccionémoslos todos. Y me gustaría
agregarlos todos a la carpeta. Luces. Y ahora sólo podemos
entrar en cualquier plano. Lo sentimos, no ningún plano, da clic en cualquier plano de lámparas, saltamos directamente a él, y ahora podemos ajustar
el foco Entonces ajustemos los valores. Podríamos hacer
editables estos valores y hacerlo
desde el editor, etcétera, pero podemos simplemente
hacerlo también programas aquí Entonces hagámoslo. Veamos cómo se ve cuando lo
hacemos de esta manera, compilar. Debido a que tenemos
muchos vectores
, puede tomar mucho
tiempo compilar. Y vamos a reducir el rango de cono. Quiero que sean como
focos y que sean 30. Yo también quiero que sean 30. Compilar. Mira cómo se ven ahora. Me gustaría rotar un
poco
este foco así que selecciona este foco específicamente y rotarlo. Veamos las caras
aquí de esta manera. Entonces cuando ustedes siete grados, compilen con el
momento, no quiero. Creo que aquí tenemos luz
extra. Retirarlo. Sólo para comprobar si tienen alguna
luz extra aquí. Nosotros lo hacemos. Y ahora tenemos la configuración de la luz tal vez incluso un poco más 60. Estas diapositivas ahora necesitan
un poco más de radio. Entonces hagámoslo 35. Y en cuanto a una adherencia,
hagámoslo 35. El núcleo interno puede ser Let's just one. El sufrimiento puede ser de 25. Compilarlo, volver atrás. Esto no es lo
que quiero del cono. Volvamos a tal vez 25
y 2,500 deberían funcionar. Y ahora si juegas, hay diferentes colores, y deberían cambiar de color
porque así es como los
configuramos en nuestro plano
anterior Ahora, echemos un
vistazo a nuestro foco de atención, y cambié mis valores por
15 15 en la autentación de 2004 Y ahora tenemos
este resultado donde tenemos focos,
estos colores. Y ahora lo que voy a tratar de hacer es moverlos a medida
que están moviendo la escena. Pero antes de eso,
no me gusta que nuestro material sea de este color. Si tienes
luces móviles alrededor, me gustaría tener mi
material un poco más oscuro. Y tal vez esto sea un poco
demasiado oscuro en primer lugar. Hagámoslo un poco más brillante
pero no tan brillante. Para que podamos ver todo, pero no tener algunos
cegando nuestros ojos No quiero sombras
del sol, así que vamos a moverlas hasta llegar a la posición en la
que estemos contentos. ¿Algo
así? No. Este tipo de cosas solo te dan vueltas hasta que las consigas de
la manera que quieras. Sí, esto es mucho mejor. Ahora, no quiero porque
vamos a tener mucho
color para las luces, no
quiero que los
colores choquen,
así que voy a hacer que sea
un color más oscuro. Y vamos a poner los roughnes a uno porque no
quiero que el material
brille demasiado. Hagámoslo de un color más oscuro
para el que te avise, hagamos C azul. A ver.
Azul oscuro. El primero. El segundo color
puede ser mucho más oscuro. Quizás podrías
hacerlo aún más oscuro. Guárdalo y échale un vistazo. Está bien. Y ahora presiona play. Ahora tenemos colores que
son bastante fáciles de ver, y ahora quiero
moverlos un poco. Entonces vamos a crear
una nueva función para ello. Y hagámoslo aquí
con una línea de tiempo. Entonces lo que vamos a hacer aquí es que vamos a
crear una línea de tiempo, y vamos a agregar
un nodo de secuencia aquí. Tendremos una secuencia. Vamos a hacer esto una vez, y vamos a agregar un nodo
do once. Hacerlo una vez. Espera, disculpas. No necesitamos hacerlo una vez.
Solo necesitamos cronograma. Tiempo Sí. Mis disculpas. No estoy seguro de por qué tengo
que buscarlo tanto tiempo. Pero hagámoslo
así para que no se interponga en el camino. Vamos a tener una línea de tiempo. Y esta línea de tiempo, la
vamos a jugar desde el principio y vamos
a después de que esté terminada, vamos a un
retraso de, digamos, 1 segundo y lo
volveremos a jugar. Ahora, vamos a hacer una obra de teatro. Entonces la razón por la que
vamos a hacer esto, vamos a agregar una pista, y vamos a
agregar una pista vectorial. Y vamos a ser un poco
creativos con la línea de tiempo. Así que
podemos tenemos ahora Z, X e Y, y vamos a hacer algo
bastante diferente. Vamos a crear una
variable y vamos a aleatizar estos
valores la
20. UE5 FC07 06: Ahora bien, si echamos un vistazo a esta
línea de tiempo que
acabamos de crear, tenemos algunos vectores
que podemos poner aquí, y podemos transferir
estos vectores a nuestra rotación de focos de luz
para movernos alrededor de las luces Pero debido a que esto es solo
un conjunto de valores que pones en ellos serían los
mismos cada vez. Así que cada vez que terminaría la
línea de tiempo. Jugaríamos desde el inicio o donde se detuvo la última vez, y volverá a comenzar. Esto no es lo que
quiero para este nivel. Quiero que las luces se
muevan un poco en ciertas direcciones
al azar y retrocedan. Entonces vamos a cambiar
la forma en que usamos nuestra línea de tiempo. Abriremos nuestra línea de tiempo, y eliminaremos esta
pista que acabamos de crear para vectores
verte y
agregaremos una pista flotante. Y esta pista de flotación estará entre digamos por ahora,
mantengámosla como está. Vamos a llamarlo Alfa. Vamos a compilarlo, volver a Gráfico de eventos. Y ahora tenemos un valor flotante que no va a ninguna parte en este momento. Vamos a hacerlo Vamos a
ponerlo en Vamos a hacerlo. Las luces giran durante 8 segundos, y en 8 segundos, el valor pasará de los clics de cambio de
unidad. El valor pasará de cero, 28. Ocho segundos. Marca de ocho segundos, vamos a ir a ocho. Y vamos a asegurarnos de
que lo tenemos configurado correctamente. Sí, tenemos está configurado
correctamente. Entonces cambiamos clic
en él en el punto clave a cero valor de tiempo cero a
a 8 segundos valor uno Entonces ahora este nodo Alfa aquí nos está dejando
poner el valor 0-1, y el valor
irá 0-1 en 8 segundos Bueno, vamos a quitar estas
líneas para mantenerlo organizado. Y vamos a agregar
un nodo arp vector. Así vector arp. Y aquí vamos a poner
nuestro Alfa. Ahora bien, para explicar lo que hace arp, función
arp
va esencialmente del valor A al valor B gradualmente
dependiendo del valor Alfa Alfa suele ser un valor 0-1. Y a cero, es
A, a la una, es B.
Y esto es útil cuando se
usa esta línea de tiempo para cambiar gradualmente la ubicación o rotación o cualquier cosa realmente. Quieres hacerlo a lo largo del tiempo
sin usar eventi. Como eventi es, en primer lugar, no
será tan
suave como usar LAP Y en segundo lugar, es
más rendimiento. Entonces vamos por ahora,
pruébalo , vamos
a tener un valor. Jugaremos desde el principio e imprimiremos cadena de este valor. Oh, no, no podemos predecir. Tenemos demasiadas
luces en la escena. Entonces, en cambio lo que
vamos a hacer, vamos a mover las luces. Ahora, necesitamos obtener rotación, pero por mi error,
cometí un vector larp Vamos a arreglar este
rotador arp en su lugar, ya que vamos a
trabajar con Y vamos a conseguir la
rotación del foco. No te disculpes, mis disculpas. Establecer rotación. Establecer rotación relativa, creo, es la correcta. La diferencia entre
una rotación relativa y una rotación mundial es que la rotación relativa
a su padre
sería la rotación del foco en
relación con la malla estática. Pero la rotación mundial sería
es rotación en el mundo mismo. Puede ser un poco complicado de
entender de inmediato, pero es justo lo que es. Necesitas probarlo
las diferencias a medida
que usas irreal, así que vamos a poner esto aquí Entonces, qué va a hacer esto,
obtendremos un valor entre cero y B y el Alfa
lo hará por nosotros, rotará lentamente. Ahora, por ahora,
pongamos valores fijos. El valor de foco
actualmente es de 90 Y, y el resto de ellos es cero, cero. Digamos que queremos que
esto vaya 90-30. Lo compilaremos, lo guardaremos, volveremos al nivel
y presionaremos play. No está pasando nada. Ahora bien,
la pregunta interesante es que
no pasa nada porque no
estamos cambiando el valor o Interesante. Vamos a parar. Sí. El tema es que actualmente los focos no
son móviles. Así que volvamos,
haga clic y movible. Ahora esto es más pesado
computacionalmente, pero por lo que
estamos tratando de hacer Ahora tenemos focos
que se mueven por ahí. Como desaparecieron porque no tienen suficiente radio, podemos aumentar ese
radio con bastante facilidad. Entonces vayamos a viewport. Y actualmente tenemos 2000. Hagámoslo 8 mil por ahora, resto compilar, volver. Veamos cómo funciona ahora. Y veamos cómo
se configuran las luces actualmente. Así que estamos recibiendo
esta luz rara. Nuevamente, es principalmente por
la forma en que se gira. Ahora echemos un vistazo a nuestras luces y veamos por qué
empiezan a suceder estos artefactos raros. No obtenemos la sombra adecuada. Entonces, cuando giramos esto,
la luz misma, es una multa, pero en realidad
estamos rotando solo
el foco del plano En realidad no
giramos la lámpara. Entonces cuando hacemos esto, obtenemos un corte y la
razón de ese corte es
porque la luz está colisionando con la malla,
y nos está dando este extraño Para evitar esto, podemos modificar los canales de
luz, etcétera, para no chocar con
la luz de la malla, ignorarla en los canales de luz, y tal vez
incluso podamos crear una nueva malla que
no nos dé este problema Pero la forma más fácil de hacer
correcciones es ir al centro de atención, moverlo un poco fuera de la
malla, guardar y prespy Y ahora, vamos a tener
este tipo de gama. Ahora bien, está cubriendo completamente toda
el área, que es exactamente lo que quería. Pero no queremos que esto suceda cada vez
exactamente de la misma manera. Lo que vamos a hacer ahora, antes que nada, voy
a organizar esto un poco. No me gustó lo
desordenado que está. Y vamos a tener este lenode y
vamos a mover
todo esto hacia abajo. Spotlight aquí. Ahora bien, el valor
que obtenemos del que ponemos con fuerza es ubicación original o
rotación de la luz, que es 90, y la
reducimos a 30 para
moverla por la escena Pero si quisiéramos
dar el rango más amplio, necesitamos
cambiar también otro valor. Entonces, si lo pones
así y aumentas rotación en el eje Z, también
podemos darle movimiento de izquierda
y derecha. Entonces veamos ahora, la rotación que nos
gustaría darle es entre 90 y -90 Entonces tenemos un rango de rotación. Entonces, lo que podemos hacer, podemos
dar una rotación Z menos, por
ejemplo, y una rotación P 90. Nuevamente, esto no es definitivo. Sólo lo estoy haciendo
para una demostración. Y si presionamos play, ahora
tenemos luces giratorias.
21. UE5 FC07 07: Aquí tenemos nuestra luz, y queremos
sustituir todas nuestras referencias
de esto por esta. Entonces lo que podemos hacer es ir a nuestras lámparas,
seleccionarlas todas, hacer
clic derecho y reemplazar a los
actores seleccionados con BPight Podemos copiar propiedades
o ignorarlas, vamos a no
vamos a copiar propiedades, así que solo vamos
a hacer clic en esto, y vamos
a reemplazarlas. Le daremos un segundo, y ahora los tenemos a todos
reemplazados. Todos están
escalados con demasiado. Entonces, bajémoslos. Hagamos una báscula Y ahora todos ellos también
están escalados de manera. También me gustaría hacerlas un poco sí, vamos a poner un poco de ella
abajo y cambiemos. Sin rotación, reinicio de rotación. Además, vamos a rotar 90
grados -90 grados. Y ahora tenemos todas nuestras
luces recién reemplazadas, y podemos probar nuestra lógica de
cubo nuevamente. Pongámoslo de esta manera
y volvamos a seleccionar nuestras luces. Y podemos simplemente dar clic en Target
y apuntar a este cubo. Presiona play. No pasa nada ya que eliminamos Incluso tick de esto. Vamos a agregarlo por un segundo. Descansarlo, compilar,
guardar, guardar también. Ahora, todas las luces de nuestra
escena siguen a este cubo. Lo cual es bastante bonito. Ahora, vamos a dejar esta eventiq estas
notas solas por Esta es nuestra función
para seguir el objetivo. Vamos a agregarlos todos
bajo un solo comentario. Seguir objetivos. Lo vamos a mantener
así por ahora. Y vamos a volver a nuestro plano de lámpara y comenzar a
copiar alguna funcionalidad Eliminemos esto ya
que no lo necesitamos. Vamos a necesitar esto para luces
aleatorias como tales. Vamos a usar esto. No deseo
usar array para ello, ya que usaré enteros aleatorios, valores
flotantes para ello en su lugar. Entonces voy a copiar
esto y ponerlo aquí. Si compilo,
obtendré algunos errores, crearé variable, crearé
variable nuevamente, compilaré nuevamente. Ahora es trabajo como se
supone que debe hacerlo. Y ahora sí tenemos un foco, así que esto solo obtiene valor de nuestro foco aquí ya
que comparten el nombre. Y vamos a probar esto
y ver cómo funciona. Desde el inicio del
evento comienza a jugar, no
hay valor
aquí actualmente, así que vamos a agregar algo
pronto, vamos a presionar play. No está pasando nada. En realidad no. Las luces solo están buscando en un lugar
extraño. Entonces hagámoslo flexionar esto. Entonces se supone
que es -90, veamos. Nuestras luces son Interesantes. Oh, si no lo tienes
pegado al plato de inicio de Evan. Mis disculpas. Esta
no es la correcta. Sigo mezclando el
plano de la lámpara con uno nuevo. Vamos. Todavía no
funciona como debería. Entonces echémosle un vistazo. Fuimos a jugar la línea de tiempo. Y en la línea de tiempo, estamos haciendo algo mal
yendo directamente a este valor, se suponía que íbamos a ir a
establecer la rotación relativa. Después de eso, yendo a
ese valor vamos a jugar. Bien, ahora están
mirando todos hacia abajo. Aún no tenemos colores aleatorios
ni lo que sea configurado, así que vamos a
arreglarlo en un segundo. Y tenemos nuestra
línea de tiempo, nuestro retraso. Esto está desorganizado demasiado, y lo hace más
complicado de lo que debería, así que vamos a
organizar esto un poco Cambiemos
toda esta colocación de la misma. Agreguemos un comentario
encima de él ahora y
lo llamemos lo al azar mover pero. Vamos a compilar esto, y ahora lo tenemos organizado. Vamos a dividir
este pin de estructura, y vamos
a aleatorizarlo Ranura aleatoria en rango. X, como nos enteramos anteriormente, no
importa demasiado para
las luces. Mm. Ahora,
busquemos nuestros valores. ¿Qué? Seleccionemos los valores de los
descansos de foco solo en
caso de que también podamos seleccionar todos los planos,
ya que pueden tener la verificación de que la actación es
correcta para todos Y nos
aseguraremos de que nuestros focos sean Nuestros focos aquí
unas rotaciones raras Vamos a arreglarlos también. Lo
arreglamos desde el plano Lo arreglaré para todos ellos. Así que solo asegúrate de que no
tenemos rotaciones aleatorias raras. Vamos a hacer clic en el foco
para probarlo y echarle un vistazo. Y X claro como los XXs
importan también, y Z importará cuando lo
estemos tomando de cero Entonces todas nuestras Xs importan en
este caso, como debería. Ahora la pregunta es ¿cuánto es el rango
que queremos que tengan? Entonces digamos que esto es que
no quiero que la lámpara tenga más de 40 -40 o cero. Ahora, -90 y 40. Entonces para el eje Y,
que es este, mínimo debe ser -90, MX debe ser -40 Vamos a restaurarlo.
Por nuestro valor X. Nuevamente, hagamos 40 y -40. No quiero que tenga
demasiado rango ya que hace que las
luces se difuminen
entre sí -40 y
y en cuanto al entre sí -40 y
y eje Z, es de 180 grados más o menos. Entonces vamos a hacer -90,
sigue siendo positivo 90, es solo rotación gradual, y lo queremos solo de un lado, así que estamos limitando el rango Entonces ahora, guarda todo
por si acaso, espía. Tengo luces
moviéndose al azar. Mira lo que está pasando con
nuestros focos aquí. Tenemos dos.
Veamos, asegurémonos. Este es un valor de cero
en este momento, luz, foco y tal Esto es cero, y es -90 y más 40 ¿Nos equivocamos con YXS? Menos oh, oh, este es el tema. -40 a -90. Cometí un error
de poner peso. Esto debería ser
correcto, creo. El número que queremos está entre -90 y -40. Volvamos a probar. Interesante la forma en que
se mueven fuera de las radios. Z está bien. X. También está bien. Estoy adivinando que es
una combinación de tres valores aleatorios que
está creando este problema Entonces si pones X en cero a No, cero, no. Así que tal vez vamos a asegurarnos de que
no podemos ni siquiera entrar en -90. Hagámoslo menos digamos
cero. Cero puede ser demasiado. Entonces digamos menos y
obtener un valor que esté bien. La razón por la que algunas de
las luces empiezan a
salir es por
la forma en que Spotlight está
obteniendo sus números. Entonces, si copia este
número, pega, y da clic en Spotlight
y pega este número, vamos a obtener
el mismo valor, y el valor X no es la razón. El valor de Y es. Como pueden ver, ahora copiamos este valor porque a diferencia de los actores de luz
anteriores, estos actores comparten la
forma en que se les da forma. Y la forma en que implementamos a
nuestro actor esta vez hace que sea difícil
salir a la calle usando los
mismos parámetros. Entonces lo que tenemos que hacer es
que tenemos que manejar el eje Y. Hagámoslo de esta manera. Tenemos los ejes X y Z
para nuestras Shenanigans. Entonces si pones eje Y a 50, por ejemplo, estoy seguro que ni siquiera
funcionará correctamente. Nuestro foco va 50, que es 50 todo el
camino arriba en el cielo. Entonces hagámoslo -50. Compile y presione play. Nuevamente, -50 en esta parte de
la escena está todo el camino ups. La única forma en que
realmente podemos arreglar esto es yendo a nuestro
centro de atención aquí. Nos separamos. Cambiamos la rotación a cero, tendremos mirando hacia arriba, que
no es lo que queremos. Y si
lo eliminas de la
propia malla , compila y restablece. Ahora, debido a
que lo eliminamos de la malla estática, ya no toma
en la rotación de la malla estática. Entonces
ahora están en cero. Entonces probémoslo ahora. Ahora tenemos el tema de que ellos vayan sólo en dirección
negativa, así que vamos a volver a nuestro centro de atención y ver
los valores que necesitamos ahora. El valor -60 en
este lado está dentro. Y si nos fijamos en esta ubicación, ahora, positivo 60 está dentro. No queremos que
aleatoriice
demasiado y salga de los límites en
el eje Y. Entonces, en cambio, lo que podemos hacer es que
podemos hacer un valor en el medio. Dos ejes y tenerlo
menos cert y cert. Vamos a compilar esto y jugar. Esto tendrá. Si bien
habrá algunas luces que van afuera solo porque la forma en que funciona el aleatorizador Esto está bien. Vamos a
reducir el tope de valor para todos ellos ya que no queremos que salgan demasiado de
los límites, e incluso voy a reducir
esto a 20
y 20, ya que preferiría que
recordaran dentro la x está bien ya que es solo rotación sobre los
cien 80 grados Y vamos a tener estas luces
raras dando vueltas, algunas de ellas
apagándose, lo cual está bien. Como puedes ver,
simplemente van por ahí al azar. No es la solución más ideal, obviamente, pero está bien. También podríamos agregar
funcionalidad adicional para
hacerlos apuntar solo a esta ubicación
en el medio, pero eso requeriría que hagamos muchas matemáticas
vectoriales complicadas, lo cual no vamos a hacer En este caso,
también podríamos hacer cálculos basados en el vector forward. Entonces, por ejemplo, podríamos hacer
que calculen su vector
forward y solo apunten en la ubicación
donde están mirando, pero eso no es lo que
vamos a hacer en este caso. Ahora, vamos a probar esto. Tenemos nuestro cubo seleccionado, y ahora vamos a conseguir el
evento B y jugar. Y aquí, por ahora agreguemos tick de
evento y veamos
cómo funcionaría. Y funciona como debería, aparte de esta
luz, creo, y esto es porque
modifiqué sus ajustes de luz, y olvidé
volver a ponerla ésta también. Asegúrate de tener en cuenta qué
actores has modificado. Tener esta modificada, que no
funcionaba correctamente, y esta, que
no funcionaba correctamente. Y ahora, todo
debería estar como es. Ahora, esencialmente hemos terminado
con la colocación de luz aleatoria, lo cual está bien por ahora. Aquí vamos a agregar
una secuencia, y esto será 01. Para cero, vamos
a agregar nuestro color aleatorio. Vamos y comencemos a
jugar y en cero, teníamos habilitada esta función de
cambio de color aleatorio. Entonces vamos a copiar esto
y volver a copiarlo aquí. Cuando estés copiando función, te
pedirán
crear o no hacer nada. Nosotros lo creamos y
vamos a tener esto en la cima. Lo vamos a poner aquí. Quita esta nota por ahora. Tenemos esto primero y
tenemos nuestra sucursal. Vamos a crear esta variable ya que la
necesitaremos más adelante. Cambiaremos el
nombre más adelante. Y tenemos esta funcionalidad de
color aleatorio incorporada y
compilada por si acaso. Asegurémonos de que nuestras variables estén nombradas correctamente. La rotación con rotación relativa,
tenemos objetivo. Las plantas no son necesarias. Compile, y echemos un
vistazo a nuestro nodo de color aleatorio. Y echemos un vistazo a nuestra función polar
aleatoria aquí. Tenemos esto, que sólo
vamos a copiar. Probablemente podrías copiar todo y volver a
ponerlo aquí escala. A su vez, retire de nuevo en. Vamos a crear
esta variable, crear color de luz variable. Compilar. Volver a la luz
puede cambiar de color, establecer color claro, amapola,
ir a ser educado Esa función de cambio de luz,
ese color claro, pila
pop que
va a poner su. Ahora vamos a probarlo.
Y está funcionando. Y tenemos un cambio de color aleatorio cada pocos segundos como
lo habíamos hecho anteriormente. Las luces que van fuera de
límites es aunque molesto
no afectará tanto a nuestra jugabilidad porque vamos a tener una funcionalidad de
luz adicional, lo que hace que la luz
siga a ciertos actores Ahora, teníamos esta funcionalidad aquí para
cierre de puerta abierta también Vamos a copiar esto, pero
vamos a
reutilizarlo más adelante Cambie la función y no
pudimos copiar el retraso. Sólo podemos agregarlo nosotros mismos. No podemos. Mis disculpas. No podemos
porque está en la función. Tendremos que añadir ere. Y comentemos
esta sección también. Color aleatorio. Hagámoslo morado.
Tesaro color aleatorio Y ahora tenemos evento de puerta abierta y
evento de puerta cerrada, pero voy a cambiarles el nombre. Uno de ellos
será objetivo localizado. El otro será Target score. Y vamos a
cambiar esto es dos. Veamos cuál sería
el nombre correcto para un objetivo que se genera Target. Llamado blanco engendrado. Y vamos a tener esto. Por ahora, vamos
a dejarlo en esto. Vamos a reutilizar más
adelante esto ahora, tenemos nuestro sistema para la luz Vamos a seleccionar un
Speedbard, presione play. Y desde la
vista en primera persona, esto se ve bien. Hay algo de luz
dando vueltas en la escena, y tenemos nuestro
cubo en el medio. Una de las cosas que quiero
hacer ahora es que la luz apunte
a nuestro personaje cuando el personaje
se mueve. Entonces vamos a agregar un nodo I. Y si el objetivo está cerca, la luz seguirá
al jugador objetivo. Y si el objetivo
no está lo suficientemente cerca, vamos a
aleatorizar la luz Entonces, si recuerdas
este objetivo que teníamos, eliminemos este
nodo objetivo de aquí ahora. O para ser más específicos, necesitamos agregar un
nodo actor conjunto, establecer nodo objetivo. Así que vamos a establecer el nodo de destino. Y vamos a configurarlo
a necesitamos un insumo aquí. Vamos a ponernos
en personaje de jugador. Entonces, por ahora,
hagamos esto de esta manera. Cuando los eventos comiencen el
evento comienza el juego, vamos a
establecerlo en nuestro objetivo. El tick del evento hará que la rotación del
actor siga. O ahora vamos a
eliminar la línea de tiempo. Y presiona play. Entonces comienza el juego, obtenemos todas las luces enfocadas en el personaje del jugador.
Esto no es lo que queremos. Queremos que sólo las
luces más cercanas estén entre, digamos,
las 500 unidades más cercanas para seguir al actor.
22. UE5 FC07 08: Ahora bien, la forma en que calculas
la distancia entre dos actores en los tres
mundos es por vectores. Entonces, lo que tenemos que hacer para esto es vamos a conseguir el personaje del jugador. Lo tenemos aquí. Entonces,
sólo por ahora copiémoslo. Y vamos a obtener la ubicación del actor. Copia esto de nuevo,
coloca esto y aquí. Y vamos a restar uno de otro y obtener vector Oh, no necesitamos enlaces
vectoriales vectoriales. Así que vamos por ahora, imprimir cadena este valor. Y pongámoslo
en un ventiq ahora. Compilar, guardar, res play. Oh, mis disculpas. Tenemos que asegurarnos de ponerlo en la cadena,
no en la duración. Compile, presione play. Entonces como puedes ver, las luces están
calculando la distancia entre el personaje
y ellos mismos. Y la unidad más cercana que puedo
ver aquí es como mil 400. Ahora, lo que podemos hacer es que tenemos
este valor que estamos obteniendo. Y si este valor es menor, h entonces digamos 2.500
o incluso digamos 2000. Es cierto si este valor es
menor a 2000 en eventi, hagámoslo de esta manera Si es cierto, haremos que las luces sigan al
personaje presione play. Ahora ves que tenemos luces
que nos están siguiendo,
y si nos movemos,
las luces más cercanas nos
siguen instantáneamente. Y cuando salimos del rango,
como la distancia se vuelve ahora
da un valor de bulling cae, ya no nos sigue. Obviamente, no queremos
que sea instantáneamente sobre nosotros. Usaremos una línea de tiempo
para ello en un momento. Pero por ahora, esto está bien ya que solo estamos probando
el sistema de focalización. Nuevamente, me estoy dando cuenta de
que
aquí tenemos una luz que yo twix valora Vamos a restaurar
esto, guardarlo, y otro aquí. No estoy seguro de por qué
ajusté tantos valores, pero esto es lo que es Asegúrate de limpiar después de editar los valores
con fines de prueba, y no lo hagas como yo. Ahora bien, esta lógica funciona. Podemos obtener la ubicación, distancia, actuar
distancia para ser claros. Pero no queremos que sea
en Aventi Esto está bien. Y lo que necesitamos ahora es una funcionalidad de
seguimiento adecuada. Vamos a ampliar esto un poco y tener todo dentro, y agreguemos algo de
espacio extra para que podamos trabajar. tema que tenemos ahora es ¿
cuándo deberíamos obtener este cheque y cuándo deberíamos empezar a obtener la
rotación y cómo? No queremos
hacerlo con los eventi, ya que es muy performance en En cambio, lo que
podemos hacer es comprobarlo en lugar de cada
fotograma cada pocos segundos. Y la forma en que podemos hacerlo fácilmente, podemos hacerlo entonces la secuencia aquí y de hecho evitar que
esta línea de tiempo suceda. Segundo, eliminemos esto. Claro. Entonces vamos a conseguir esto
tan bien como lo vamos
a necesitar más tarde. Tenemos estos colores aleatorios que no siempre activaremos, así que no vamos a tocarlo, sino que solo queremos que
esto se active. Hagamos estos segundos afuera si
no hay objetivo de jugador. Entonces puedes poner
aquí un nodo de sucursal y ejecutarlo
por la rama. Y si es falso, vamos a tener esta
función como antes. Y si es cierto, vamos a dejar esto a la sección inferior donde vamos a seguir al personaje
del jugador. Ahora bien, la forma en que podemos hacer
esto es dejarme ponerlo de nuevo en el valor aquí en
lugar de tener dos ramas, es innecesario. Agreguemos una línea de tiempo. Y esta línea de tiempo no puede
funcionar de manera similar. Vamos a tener un rotador
larp Y vamos a
tener nuestro Alpha establecido aquí y encontrar mirada a la rotación. Nueva rotación será
ésta y la rotación de actores. En este caso, queremos que la
luz siga completamente encendida, no sólo el foco. Como tal, cambiemos
algunos parámetros aquí. Solo estábamos moviendo el
centro de atención. Pero con nuestra nueva luz, podemos mover
toda la luz misma. No nos limitamos
a nuestro centro de atención, así que asegurémonos de arreglar
esto antes de seguir adelante. Este parámetro relativo está bien, pero debería ser solo
rotación, no relativo. Y vamos a
conseguir la ubicación de los actores. Rotación de actores. Obtener rotación Actor. Vamos a poner a estos actores en rotación.
Vamos a aplicar. Ellos lo van a establecer, y vamos a
al final,
no rotar el foco
ya que no hay una razón real para hacerlo
solo con spotlight, vamos a copiar
esto de nuevo y establecer rotación de actor de rotación, y actor mismo, obtenemos un nuevo valor de rotación
y actualizamos esto. Ahora probémoslo de
nuevo, presiona play. Las luces se
mueven como deberían. Algunos de ellos
permanecieron en el lugar porque teníamos el nodo sucursal. Nos movemos por aquí y las luces
a las que estamos más cerca no se moverán. Pero la lista de la misma está
funcionando como debería. Vamos a echar un vistazo mediante el uso de simular y
ver cómo se enciende. Sí, se están moviendo. Todos. Bien. Ahora bien, tuvimos un error y
este modo de error porque
estábamos tratando de acceder al personaje
del
jugador y el actor jugador no existía cuando estábamos simulando,
lo cual está bien Realmente no
lo necesitamos durante las simulaciones. Y aquí, cierto,
probémoslo en verdad. Esto va a desencadenar aquí. Nuestra segunda línea de tiempo
se activará. Y esta línea de tiempo
puede ser más corta. Entonces hagámoslo 1 segundo. Y el valor para ello
puede ser uno también. Queremos que las luces
reaccionen instantáneamente el jugador estando cerca para
mostrarle que lo bañe de luz. Y tenemos este nodo larp, que ahora está calculando la ubicación del actor
y la ubicación de los objetivos, y estamos fijando nuestro objetivo
como personaje jugador, que es lo que
vamos a hacer Entonces, si la longitud del vector
entre está lo suficientemente cerca, vamos a establecer nuestro objetivo Después de establecer nuestro objetivo, vamos a jugar desde el principio. Vamos a larp nuestra rotación actual que
haremos por la justicia Al establecerlo, obviamente, vamos a establecer
nuestra propia rotación. Y esta rotación se
utilizará para acecho a medida que nos movemos
a lo largo de la línea de tiempo, esencialmente
estamos haciendo
exactamente lo que hicimos aquí, pero con solo algunos
ligeros cambios Entonces vamos a
hacer esto de esta manera. Ahora, vamos a probarlo. PlesPlay y no está funcionando como debería Tenemos nuestros Alfas,
tenemos nuestra obra de principio. No tenemos nuestras actualizaciones. Esto se debe a que aquí
no agregamos este nodo. Tenemos que actualizar esto, y probablemente también deberíamos, si cuando termine, agregar volver al nodo de
sucursal en la parte superior. Presiona play. Ahora bien, es bastante raro. No estamos obteniendo los
valores adecuados, y como pueden ver, las luces en
la parte superior van
en una dirección extraña. Echemos un vistazo a
lo que está pasando aquí. Estamos consiguiendo rotación de actores
por lo que me refiero a yo mismo, y estamos obteniendo la
ubicación entre yo y B. Pero lo estamos actualizando cada fotograma, que
no es lo que queremos. Queremos establecer la
rotación o RB. Sólo podemos copiar este valor. Y ponlo aquí. Pero recombinar pin de estructura. Pon aquí el valor del ritmo. B valor de rotación aquí, juega desde el principio,
ponle el valor a B. Organicemos esto un poco más. Hay demasiados códigos de
espagueti. Devolver valor en esto. Compilar, guardar, es jugar. Ahora, a medida que nos movemos, cuando
ya no estén lo suficientemente cerca, se aleatorizarán
ellos mismos Mientras están cerca de nosotros,
por ellos, me refiero a las fuentes de luz. Ellos comenzarán a reaccionar. Ahora bien, el tema es
que las luces que están en medio de la rotación
aleatoria no
volverán a
dispararse y echarnos un segundo vistazo. La razón por la que esto está
sucediendo es porque la forma en que
configuramos nuestro nodo sucursal. Nuestro nodo sucursal comienza aquí, y nuestras luces aleatorias lo
están comprobando
no cada segundo,
cada 8 segundos porque la
forma en que se configura nuestra línea Entonces ahora tenemos un pequeño problema donde necesitamos
interrumpir este proceso en el medio y
activar
este nodo de rama para verificar si
va como debería o simplemente
debería seguir. La forma en que podemos hacer
esto es que podemos llamar a esta otra rama
en el medio aquí. Realmente no me gusta cómo se ve
este código de paquete, pero lo dejaremos por ahora. Lamentablemente, no podemos convertir nuestras
líneas de tiempo en funciones. Ahora, tenemos esta
luz que se está
actualizando cada segundo,
cada fotograma, en realidad. Entonces una vez hecho esto, después de cada actualización,
podríamos volver a verificar nuestra sucursal Vamos a compilar y
a ver qué pasa. Creó un bucle infinito. Como tal, esto no se puede aplicar. Los bucles infinitos se estrellarán
instantáneamente en tu PC. Entonces necesitamos llegar a una manera que no esté generando bucle
infinito, y la forma más fácil de hacerlo
es obtener un nodo de retardo. Al final aquí, consigue que se
desencadene cada 1 segundo. Podríamos hacerlo más bajo,
pero esto debería estar bien. Y ponlo en la sucursal. Compilar, jugar. Porque ahí
hay un nodo de retardo. Esto ya no es un bucle
infinito ya que
no se dispara infinitamente
cada segundo Entonces ahora estamos apuntados y cuando
ya no somos blanco, ellos mismos se aleatorizan,
o al menos deberían Veamos qué está pasando. En el centro del mapa, no debería
poder apuntarnos. Veamos qué pasa.
Las luces ahora están aleatorizadas Pero debido a que no les dimos un gran rango para la aleatorización, las luces se mueven en el último lugar
donde caminamos Entonces están tratando de seguirnos, y después de que
terminen de mecanizarnos, solo
están tratando de
ir en esa dirección. Entonces, en cambio, lo que vamos a hacer es que vamos a editar los valores el rango aleatorio. Y la forma en que tenemos estos
valores, aquí, ¿verdad, correcto? Tenemos estos
valores aleatorios en el rango de flotación, en los ejes Y y Z. Pero lo que es más importante
es, como, ¿son ejes? Como este es el
responsable de ser más claro, Y y X Xs son los encargados de que las luces
salgan demasiado de campo. Esa es la razón por la que
reducimos su valor de rango de
flotación aleatorio. Ahora, tenemos que encontrar una manera
de
asegurarnos de que lo que acaba de suceder
no suceda. Lo que pasó aquí fue que
conseguimos su rotación de actor, y después de que establecimos
su rotación de actor, esta A aquí se convirtió en su
nueva rotación de actor. Como esta A es su
nueva rotación de actor, no se
están reiniciando a
sus parámetros iniciales Como tal, lo que podemos hacer es
simplemente en lugar de obtener rotación del
actor cada
vez, o para ser claros, cuando terminemos
con esta rotación, podemos
volver a ejecutar un nodo de rama en la misma rama. Como no me gusta la
forma en
que se configura esto, solo
vamos a proposicionar esto otra vez, vamos a copiarlo, poner una versión de ello aquí abajo, vamos a agregar nodo de rama, y vamos a probar lo
mismo si es cierto, si es falso, y
esto se acaba, cuando transcurra el 1 segundo al apuntar al personaje Si esto es falso, ya que ya no está en rango
y cuando está en rango, si está en rango, solo
vamos a restablecer todo aquí
en la capa inferior. Y si es falso, lo que vamos a hacer
es que vamos a restablecer la rotación para A, que pueda comenzar desde
su punto inicial. Entonces, la rotación inicial para nuestro foco es
cero, cero, cero. Podemos hacerlo exactamente igual, así podemos simplemente establecer nuestra rotación. Aquí en 000, y esto debería
ser todo lo que tenemos que hacer. Después de eso, podemos
simplemente enchufarlo aquí. Ahora, veamos cómo va a funcionar
esto. Tenemos todos ellos disparadores sobre nosotros. Se mueven,
pierden su objetivo. Y después de que
pierden su objetivo, no
están
funcionando correctamente. Siguen siendo
bastante muy altos. Y la razón es porque tomé la rotación del foco
en lugar de malla real, que estamos usando,
debería ser -90 Siempre asegúrate de
verificar tus valores Y vamos a intentarlo de nuevo. Lo estamos haciendo de nuevo.
En el momento en que pierdan los objetivos, deberían volver a
sus valores iniciales. No deberían ser interesantes. Nuevamente, ellos hacen lo mismo. Si
siguen correctamente el objetivo, pero son demasiado. Oh, este es otro
tema que tenemos porque cambiamos
los valores más adelante. Inicialmente, el rango de luz se calculó a partir
del foco. Nuevamente, tengo pocos focos aquí que he tocado
y no he restaurado Siempre limpia después de tus pruebas para no terminar
en una situación como esta. Esto es bastante común,
pero sin
embargo, no es una buena
práctica no limpiar. Vamos a restaurarlo. Y tenemos nuestra malla
que lo siento, lo es el actor, que está
siendo rotada por completo. Entonces, si nos fijamos en nuestra
rotación menos xs, esto va todo el camino de regreso. No lo queremos. -90 a así que ahora tenemos puedes echarle
un vistazo, también Tienes menos nueve. T la rotación original
para este actor es de 180. Y. yo cero, cero, otra vez, esto son todos los temas de mis pruebas que no he
limpiado previamente. Esta es más correcta. Entonces tenemos la misma
situación aquí. Tienes un eje X que va
todo el camino negativo. Tenemos cero y otra vez
cero. No estoy seguro de por qué. Apertura Kips. Y aquí
tenemos este tema. Nada de esto realmente
importa demasiado. Como si solo
simuláramos, estamos obteniendo un resultado similar al que teníamos anteriormente. Ahora, el mayor problema es cuando el jugador no
está en el nivel, así que lo que podemos hacer es
agregar un nodo es válido. Entonces tenemos lo que podemos hacer es
que podemos agregar un nodo es válido. Entonces, si el objetivo es válido, lo que podemos hacer en cambio es
si el objetivo es válido, no es válido,
simplemente continuamos aquí. Si es válido, vamos a sucursal. Esto es temporal, ya que no quiero obtener el mismo
error cada vez. Sólo vamos a
revisar las luces de nuevo, asegurarnos de que estamos haciendo
todo correctamente. Las luces se mueven
demasiado en ciertas direcciones. Nuevamente, el mayor problema, Z va muy alto en número, mientras que
solo debería permanecer en -90 Vamos a descontrolar. Ya no necesitamos esto
. Probamos así que lo
necesitamos y nos aseguramos de que
el problema no fuera. Entonces en lugar de tener
estos valores muy altos, vamos a tener mínimo
de -90 y máximo de -60 Veamos qué pasa ahora. Se están moviendo muy
cerca del rango. Entonces, en cambio,
hagámoslo un poco más. Hagamos positivo por
cinco. Juguemos. También podríamos simplemente
tomar el término medio y hacerlo de 45 a -45, que lo aleatorizará en
todas direcciones por Lo cual está bien. Ahora, volvamos
a jugar esto, a
ver cómo funciona. Y después del momento, pierden la direccionalidad. Deberían volver
a cómo deberían funcionar previamente. Mm hm. Entonces veamos qué está
pasando aquí. Tenemos nuestra estación. Entonces en el momento en que esto se termine, lo
comprobamos si
estamos más allá del rango de 2000 ya que cuando esto es falso, et's simulan esto y un
vistazo a lo que
está sucediendo aquí. Seleccionemos esta luz, que es el número 28. Ampliemos esto
y presionemos play. Y para nuestra depuración, actor, seleccione 26. ¿Qué está pasando ahora? Esto es solo repetirse, establecer su propia rotación
después de que haya terminado, y se cree el retraso. Oh, bien, este es el tema. Nunca llegamos a la nota final ya que esto siempre
va todo el camino de regreso y creando este
tema donde
siempre está jugando constantemente Bien. Como tal, lo que tenemos que
hacer es que tenemos que hacer que este
retraso realmente suceda. Lo siento, el pin de ejecución de este retraso no va
hasta el final y simplemente va por el camino correcto. Entonces lo que podemos hacer
es, entonces tenemos esto. Cuando esté terminado, tenemos este retraso, y
cuando tenemos esto, obtenemos la rotación real establecida, y necesitamos después de que todo
esto haya terminado, verificar el nodo de sucursal. En lugar de
redirigirlo hacia arriba todo el camino de regreso, lo que podemos hacer es
agregar nuevamente este nodo de sucursal. Y antes de seguir adelante, organicemos adecuadamente todos estos nodos. La única manera de lo que tenemos que hacer es que necesitamos obtener este
valor y convertirlo una variable para que no tengamos que volver
a hacer todo esto,
cada vez. Entonces lo que podemos hacer es que podemos
obtener esto en variable, convertirlo en una variable, y necesitamos establecer
esta variable. No todo esto. Al convertir
todo esto en función, lo
colapsaremos para funcionar. Llámalo distancia a capa. Distancia a despejar. Y cuando sí necesitamos esto, lo
necesitamos ante esta rama. Y cada vez que necesitamos esto, podemos simplemente poner
en esta función. En lugar de tener
este espagueti
de código, eso es simplemente ineficiente Entonces lo que hacemos,
distancia al jugador, arrástralo soltar. Y lo hacemos de nuevo aquí,
distancia al jugador. Esto solo comprobará la
distancia al jugador si es Así que la forma vamos a verlo, si la distancia al jugador
es menor a 2000 unidades. Menos de 2000. Establecemos este valor y
devolvemos esta nota. Entonces aquí, si la distancia
es menor a 2000 unidades, todo esto sucede
como lo hacía anteriormente. Y aquí, después de que esto se actualice, segundos pases, pasa el
retraso, y después del retraso, obtenemos
una distancia con el jugador. Si la distancia al
jugador actualmente, después de este 1 segundo
de retraso durante la actualización de esta línea de tiempo
es inferior a 2000, vamos todo el camino atrás
y volvemos a verificar o
ni siquiera tenemos que verificar, nos dirigimos hacia arriba a rama como ya lo
hemos configurado ya Comprueba la distancia
al jugador y vamos si es cae, no pasa nada, y todo esto simplemente sigue funcionando
hasta que esto termine. Así que ahora intentemos ahora otra vez. Y vamos a verlas y a presionar. Esto sucede. Esto está comprobado. Esperamos hasta que termine, que serán 8 segundos. Después de 8 segundos, se
termina y se restaura. Perfecto. Podrías notar si
lo pruebas que tus luces
no funcionarán correctamente, y esta es la razón. La forma en
que funcionan estas funciones, solo producen este valor cuando
realmente se activan. Y cuando tenemos la verdad aquí y vamos
todo el camino de regreso, si no comprobamos el valor
de la distancia al jugador, esta función
no funcionará correctamente. Y lo que tenemos que hacer
es asegurarnos de que solo
tenemos todos los nodos que llegan a esto
en realidad deberían venir a aquí, y debemos asegurarnos
antes de que se active la rama,
activemos el evento de distancia
al jugador. De esta manera, podremos asegurarnos de
que el valor, que es verdadero o falso
desde la distancia a la función
del jugador, sea
realmente exacto. Entonces vamos a compilar, jugar, y volver al nivel y
veamos cómo funciona. Y después de que no puedan encontrarnos, vuelven a sus rotaciones
aleatorias, y cuando nos acercamos, nos
notan y
empiezan a seguirnos por ahí Ahora, obviamente, podríamos
modificarlo para las luces
sean más precisas mejor no querrás limitar más
el alcance, etcétera, pero vamos a
mantenerlo así por ahora,
ya que vamos a
cambiar las luces, funcionalidad
dependiendo de la jugabilidad también Esto no será en realidad así aleatorizado
constantemente porque las luces
circundantes se enfocarán en los objetivos si los
objetivos están cerca Antes de pasar a
comenzar a implementar elementos de
juego, modifiquemos nuestra
luz una vez más. Tenemos luces que se mueven alrededor del nivel y las tenemos que
van fuera del nivel. La razón por la que esto
está sucediendo es porque les damos números
aleatorios Como tal, realmente no tienen ningún punto en el mapa en el que
están tratando de enfocarse. Es una solución fácil,
sobre todo lo que ya
hemos implementado.
Detener la simulación. Y podríamos darles un valor
y modificar ese valor por
este valor aleatorio para asegurarnos de que los obtenemos
en un área determinada, todas las luces se enfocan
en un área determinada. Lo que también podemos hacer, podemos usar nuestro objetivo ya
establecido get target y usarlo como marcador de posición para que
la luz se enfoque Entonces ya tenemos
aquí esta lógica que creamos previamente. Tomemos esto
y aplicarlo aquí. Ahora, tenemos esta
mirada final a la rotación, y tenemos estos
flotadores aleatorios que dan aleatorismos a este valor de rotación
que se está estableciendo aquí Lo que podemos hacer es
combinar estos dos rotadores, lo que nos dará un valor
que no es completamente aleatorio Ahora combinemos rotadores, A y B, y echamos en este valor de
retorno combinado a P. Ahora echemos un
vistazo a nuestro nivel Todavía hay algo de
aleatoriedad en el nivel, pero
todos van a intentar enfocarse en la luz sobre el objetivo Y cuando el objetivo se
mueve, se mueven con él. Obviamente no queremos que
este cubo sea el objetivo. Como tal, lo que podemos hacer
es que esto siga siendo el
centro del nivel, más o menos, y podemos
forzar hacia abajo este valor. Y lo que podemos hacer es que
podemos copiar esta ubicación. Regresa a BP Lit, quita la ubicación
del actor del objetivo y divide el strcm echemos
un vistazo a nuestros valores aquí X ¿Por qué? Y Z compilar presblow. Se comportarán de
manera similar, pero ya no están
apuntando a este cubo específico. Ahora solo están rotando en la dirección general alrededor donde se ubicó
inicialmente este cubo. También podrías apuntar
al nivel en sí, o también puedes simplemente hacer invisible
este cubo, dejarlo y llamarlo día, pero no hay razón
para complicar demasiado cuando puedes codificar duro los valores, tú podríamos hacerlo de múltiples
maneras, pero esto simplemente funciona Ahora, organicemos nuestro código que tengamos un tiempo más fácil para la próxima vez que
realmente necesitemos esto. Vamos a convertir algunas de las
cosas aquí en funciones. No podemos agregar línea de tiempo
a las funciones. Vamos a hacer esto, convertir a función, colapsar
función específicamente. Llamémoslo rotación,
generación aleatoria. Esto está aquí solo para mantener
todo organizado. Y voy a renombrar esta
función. Correctamente. Asegúrate de probar tus
planos siempre. Y si funciona como debería, solo
puedes continuar. Sí, la mayoría de las luces
están dirigidas hacia adentro. También podemos reducir los valores de aleatoriedad para que no
vaya demasiado lejos de
lo que queremos a esto debería
ser lo suficientemente razonable Hagámoslo de 20 a 20. Si bien los números aleatorios están bien, tenerlos yendo demasiado
hacia arriba no es lo ideal. Y ahora tenemos este efecto
disco como. Ignoramos el
error. Es porque el jugador en
realidad no está en el nivel. Se puede agregar un nodo es válido, pero eso no será realmente necesario cuando hayamos
terminado con esto. Así que tomemos esto también. Y esta vez, lo que
vamos a hacer, vamos a colapsar
en una función también, pero es una función diferente, ya que es una función que está
mirando al jugador, y vamos a
seleccionarlos a todos, colapsar la función. Se encontró la ubicación del jugador. Sólo voy a nombrarlo
así. Todo está bien. Podemos volver a Gráfico de eventos, ver si necesitamos
organizar cualquier otra cosa. Las secciones de mando ahora
son demasiado grandes, así que vamos a reducirlas. A ver. No podemos
poner esta línea de tiempo en la función ya que es
un evento relacionado con el tiempo, y no hay ninguna razón real para colapsar estos dos
nodos en función, ya que
realmente no los vamos a reutilizar demasiado. Los tenemos de
cierta manera aquí, pero no son
realmente manera eficiente de ponernos en una función. Esto puede quedar como está. Estos retrasos no se pueden agregar
a la función o macros. Y ahora tenemos un
poco más claro. Todavía tenemos estos
nodos yendo
hasta el final, pero está bien. Probablemente podríamos hacer que se vea mejor si
reorganizamos más, pero no quiero perder
demasiado tiempo aquí Aquí tenemos nuestros ajustes de color
y, a continuación, los
vamos a editar cuando realmente implementemos elementos de
juego. Entonces
23. UE5 FC08 01: Ahora, comencemos a
hacer nuestra interfaz. Haga clic derecho en la carpeta vacía. Ya creé la carpeta
Interfaz, tuya propia y llamo a tu interfaz Blueprint BPI for
Blueprint, y voy a llamarla
llamada Compilarlo,
guardarlo por si acaso, y nos metemos en nueva función
aquí en la interfaz. Vamos a renombrarlo
y llamarlo gol score. ¿Por qué tenía L? No lo sé. Entonces ya tenemos esta Interfaz. Vamos a crear uno más, y este siguiente
no vamos a usar realmente, pero solo voy a
demostrar cómo se puede usar. Vamos a
llamarlo interactuado. Y esta vez
vamos a agregar un nodo de salida y
un nodo de entrada. Un nodo de entrada será, digamos, capa arctor Veamos qué podemos Primero, lo que podamos usar, podemos usar ese carácter de
persona. Esto sólo va a
ser para demostración. En realidad no vamos
a usarlo, y para la salida, vamos a agregar un
valor bulling de algo En
realidad no vamos a usarlo. Lo voy a quitar más adelante. Entonces vamos a
salvar esto. Y ahora
tenemos uno con salida, uno sin salida
y y veamos. Nuestro puntaje de gol no
tiene salida y nuestro
Interactivo tiene una salida. Entonces, lo que vamos a hacer va a BP Goal y en los ajustes de
clase, vaya a las interfaces implementadas en el panel de detalles del
lado derecho y haga clic aquí y
encontremos nuestro puntaje de gol PPI. Lo compilamos, y ahora
tenemos este paso aquí. Se llama interfaces. Amplíalo, y
verás dos nuevas opciones aquí. En primer lugar, vayamos al gráfico de
eventos y hagamos clic
en Interactivo. Tenemos esta función que tiene entrada de jugador y
algo de salida. El propósito de esto es crear una función ampliamente disponible que pueda ser modificada
en cada plano Entonces la función interactuada que
creamos puede ser utilizada, digamos que tenemos nuestras
entradas y salidas,
obviamente, y podemos
en nuestros gráficos de eventos, llamar a este evento por ejemplo,
digamos, quien interactuó, puede ser este actor mismo Y en el nodo jugador, podemos agregar la referencia para
el jugador que hizo esto. O puedes agregar un evento
interactable que diga, por ejemplo, monedas Imagina que estás usando una tienda en un juego y tienes
un evento interactivo, y este valor dice monedas, que es verificar cuántas
monedas tiene tu personaje. Y en esto de aquí, digamos que el artículo que estás
tratando de comprar cuesta 100 monedas, puedes agregar menos que nodo. De hecho voy a
cambiar este valor de lingotes aquí para flotar, solo
para demostrarlo Monedas. Compilar y compilar de
nuevo, compilarlo recompilar Y la razón de este error, aquí no
hay valor. Y digamos que las monedas que tenemos menos de 50
o
es igual al artículo con el que
estás interactuando. Este será valor verdadero
o falso, que esto dará salida
como a través de todo falso. Entonces la entrada para la
moneda que estás obteniendo, esto solo queda así porque aún no lo
guardamos, así que vamos a guardarla. La próxima vez que generemos este
evento, esto funcionará bien. Esto nos permite obtener
información o variables,
etcétera, de otros
actores que tienen la interactividad habilitada por interfaz y
obtener fácilmente sus variables sin tener que lanzar
realmente
al actor y obtener sus
valores al obtener de aquí, obtener monedas, etcétera Realmente no vamos a necesitar esto. Lo que necesitamos es este objetivo. No puedes arrastrar esto lo que puedes hacer es
implementar un evento. Ahora bien, lo que hace esto, cuando la puntuación de llamada de evento es
llamada vía interfaz, esencialmente por un actor
diferente, este evento se activará. En este caso, lo que queremos que
suceda es que este
evento sea anotado de gol. Eliminemos esto
interactuarlo ya que no
lo estaremos usando en el plano de la luz Así que vamos no bolas phon blueprint y light
blueprint más adelante Vamos a ir a la
configuración de clase en la interfaz, nuevamente, en la misma interfaz ya que
van a tener la misma interfaz por
todas partes, compilarla. No necesitamos tener un evento
on que podamos jugar. Queremos que suceda en el evento de desplazamiento de
objetivos. Entonces vamos a
conseguir esto y ponerlo en vamos a
compilar este guardado. Y aquí en el PPG. Eliminemos estas cosas, vamos al gráfico de eventos. No necesitamos esto
para desencadenar aquí. Tenemos que activarlo en todas
partes en otras interfaces. Entonces, si vamos a la partitura y hacemos
clic en Llamar mensaje de ScorR, esto llamará a este evento en la sección objetivo de los
actores que lo interactúen Ahora, tal vez te estés preguntando quién es el que
desencadena este evento En nuestro caso, es este arco. Así que en realidad vamos a hacerlo solo con fines de
demostración, solo
voy a ponerlo como estamos llamando a este evento objetivo, así que solo vamos a arrastrar
esto de aquí a aquí. Y puede estar asumiendo que
esto funcionará según lo previsto, pero no lo hará porque
estamos apuntando al evento de pelota, y el balón en sí no
tiene nada que ver. Se trata de un actor vacío con solo un
componente de malla estática encima de él. Pero necesitamos que interactúes con este engendrador de luz
lo siento negrita spawner Y para que eso suceda, necesitamos interactuar con él directamente
poniéndolo como blanco. Pero eso implicaría el casting, lo cual está bien, en este caso, ya que ya hemos establecido que van a
existir en el mismo nivel. Pero también podemos saltarnos
eso al conseguir todos los actores tengan interfaz. Y la interfaz que
queremos seleccionar es el marcador de gol
PPI, y lo
pondremos aquí. Entonces, lo que esto hará es
cuando se active esto, verificará a todos los
actores del nivel, y todos los actores
del nivel que tengan habilitada
esta interfaz se activarán su
evento de gol. Esto no se recomienda para
usar en operaciones basadas en el tiempo, si estás en eventing, muy probablemente
se
estrellará tu PC si
tienes muchos factores Y si es posible,
te gustaría apuntar
directamente si
es una opción disponible. Y en realidad, el casting
puede estar bien si hay una garantía de que estarán en el mismo nivel que aquí
hemos establecido. Ahora bien, puede preguntarse si
ese es el propósito, ¿por qué estamos haciendo esto de esta manera? ¿Por qué no podemos simplemente usar casting? Esto se debe a que si
tienes un personaje jugador, y tu personaje jugador
tiene habilitada una interfaz, y digamos que tenemos esta
función llamada interactuar, digamos para recoger objetos. Entonces para esta pelota, cuando interactúo con ella, digamos, solo la recojo. Pero también puedo interactuar
con esta puerta y hacerla explotar o
interactuar con el MPC,
hablar con él, o interactuar
con algunas otras cosas Puedo tener una llamada de evento,
que llamadas interactúan. Y la forma en que ese evento es funciones no está definida
por mi personaje jugador, sino por los propios actores, que haremos ahora mismo. Ya agregamos este evento. ver si no me
olvidé de hacer nada, esto solo debería activarse, y deberíamos conseguir una nueva pelota. Sí. Tenemos una pelota nueva. Y si podemos repetir este
proceso, infinitamente, como cada vez que hagamos esto, obtendremos una bola nueva Y tenemos una nueva bombilla. Modifiquemos nuestro conejo de desove de
cuenco. Vamos a agregar un nodo, que sea tres. Entonces, cuando esto se activa, retrocedemos y volvemos a pasar por
el proceso. Y cada vez que esto se
desencadena, vamos a la secuencia. Restablecemos nuestro conteo aquí
para que pueda funcionar de nuevo, y lo rehacemos. Vamos a probarlo. Res
play. Se explota. Obtenemos tres bolas nuevas, y podemos hacer exactamente lo
mismo otra vez. Obtienes tres bolas más, y puedes repetir este proceso tantas
veces como quieras. Ahora, es posible que hayas notado que desovan directamente uno
encima del otro, y eso está bien, pero no exactamente lo me gustaría ver
cada vez Como tal, voy a
cambiar su ya sabes, no solo
voy a
cambiar su talla, sino que también cambiaré ligeramente
su ubicación al lapso. Entonces voy a agregar este vector. No vamos a tocar
demasiado la Z o en realidad, también
podríamos. Así que volvamos a hacerlo
aleatorizado. Consigamos flotar al azar en el rango. Cargar. En rango. Nuevamente, copiemos
esto tres veces. No queremos tocar demasiado el eje
Z. No queremos que vaya abajo. Como tal, vamos a tener
que ir entre cero
o en realidad eso es mezcla gota desde el
cielo cero y 200. El eje Y puede ser -50 más 50. Y X puede ser lo mismo. Podrías incrementar los números
para hacer más variaciones, etcétera, pero esto
debería estar bien Y no olvidemos
ponerlo en, compilar, presionar, jugar. Tenemos nuestra jugada de inicio. No pasa nada.
Tenemos nuestra pelota. Hagámoslo una vez. Obtenemos tres bolas. Y el spund Ahora
cambiemos sus tallas al azar. Podemos hacer exactamente
lo mismo que hicimos aquí. Pero lo haremos en vez de usar tres nodos de rango,
vamos a usar uno, y vamos a
hacer mínimo uno, y máximo, vamos a
hacerlo tres veces el tamaño. Vamos a
introducir esto en los tres valores aquí. Compile, guarde, presione
play y pruébalo nuevamente. Vamos a volver a hacer esto. Y ahora tenemos cerebrales, y son de diferentes tamaños. Y aún deberíamos poder
interactuar con ellos. Estamos. Y ahora nuestra marcha confinada, obtenemos tres bolas más, y podemos repetir
este proceso para llenar nuestro campo de bolas Como no le hemos puesto ningún límite,
irá infinitamente Podríamos agregar un número infinito de bolas o podríamos limitarlo por cierta cantidad
haciendo el asentimiento nuevamente, pero no hay necesidad real ya que no vamos a
publicar realmente este esquema,
ya que esto se entiende solo con fines de
demostración Ahora, tenemos nuestras
interfaces siendo llamadas. Hagámoslo con luces también. Ir a configuración de clase,
implementar interfaz. Nuevamente, implementaremos exactamente
la misma interfaz. Sólo tenemos uno,
compilarlo, guardar. Quizás te preguntes cuáles
son los otros. Son
interfaces proporcionadas por motor por defecto que
no vamos a atravesar
en este curso. Pero de todos modos, así que
vamos a querer agregar esta
interacción a aquí. Específicamente, tenemos puntaje
objetivo aquí. Entonces, primero que nada,
movamos esto por ahí. Y vamos a eliminar esto en nuestra interfaz e implementarlo. Ojalá solo
aparecieran frente a ti, pero esto es lo que es. Vamos a arrastrar esto, y lo que va a
pasar es que
vamos a modificar esto un poco ya que tenemos generación de
colores aleatorios aquí, y tenemos objetivo generado aquí Mantendremos la
misma lógica que usamos en el nivel
anterior. Si el objetivo
se está generando durante 3 segundos, durante 3 segundos, se establece falso y
si es falso, continuaremos con nuestra
operación para colores aleatorios Si no lo es,
vamos a mantenerlo en verde. Vamos a probarlo ahora. Vamos a presionar play. Y cuando lo metamos, todas las luces cambiarán
a verde por 3 segundos. Y cuando la próxima
vez que
se supone que el aleatorizador va a entrar en acción, todo debería volver
a los colores aleatorios Pero el problema es, en realidad no
tenemos un re disparador para esta operación de color
aleatorio. Como tal, cuando sea cierto, volveremos
al nodo de retardo y volveremos al nodo de retardo y a
pasar por el proceso
hasta que sea cierto, y vuelve a comenzar el bucle. Vamos a intentarlo de nuevo. Juguemos. Metamos nuestra
pelota en el círculo. Uno, dos, tres, cuatro, y
recuperamos nuestras luces. Colores aleatorios. Ahora bien, sería aburrido si
tenemos esta enorme arena, y este objetivo siempre
va a sentarse en un solo lugar. Entonces, en cambio lo que
vamos a hacer, vamos a agregar
funcionalidad adicional a la meta, y vamos a
teletransportarla alrededor del nivel Y cada vez que se teletransporta
alrededor del nivel, las luces alrededor lo echarán un
vistazo, lo que nos permitirá esencialmente reconocer
instantáneamente dónde está Vamos a combinar
esencialmente la interfaz y el targeting, inicialmente
agregamos a las luces. Con la propia puerta. Ahora, tenemos esta puerta, y nos gustaría
que engendrara en, digamos, cuatro ubicaciones
diferentes Podríamos hacer como ubicaciones infinitas
aleatorias, etcétera, pero
no es buena idea que sea completamente aleatoria Lo que vamos a
hacer, vamos a crear una matriz,
y en esa matriz, tendremos posibles
ubicaciones para esta marcha, y vamos a
pasar por ellas una por una, y cuando ya no
haya elementos en la
grieta del array, restablecemos Podríamos hacerlo de
manera controlada para ser exactamente iguales
cada vez, pero también podríamos
hacerlo aleatorizado Entonces hay variaciones
posibles aleatorias, y obtendremos una elección aleatoria de las posibles variaciones. Ahora volvamos a nuestro objetivo. Antes que nada, hagámoslo cada vez que termine toda la operación
aquí, teletransportaremos a este actor Así que vamos a llamar personalizado
y crear un nuevo evento. Evento personalizado. Vamos a llamarlo teletransporte. Y lo que vamos a hacer ahora, necesitamos establecer transformación forma para el propio actor, que es uno mismo un nuevo valor de
transformación. Y lo que vamos a hacer, podemos calcular los lugares donde vamos a
ponerlo cada vez. Y en este caso, creo que de alguna manera
logré ahora es porque hay un error de compilación,
así que no puede vomitar. Muy abajo, vamos a quitar esto. Así que podría calcular manualmente
el espacio aquí, el espacio aquí, el espacio aquí y el espacio aquí y usar el plano para poner
directamente a ubicaciones
predefinidas O lo que puedo hacer es
ir a formas básicas y encontrar creo que
hay un nodo llamado target a menos
que se eliminen en la
última versión. Sí, lo tenemos
aquí. Punto objetivo. Lo que podamos hacer, podemos
usar este punto objetivo. Y voy a llamar tenemos
este punto objetivo aquí. Aquí hay una marca. Es bastante pequeño, pero
vamos hasta aquí del
otro lado de la pantalla, y vamos a conseguir
otro de estos y
ponerlo de nuevo aquí y
moverlo todo el camino hasta aquí. Arreglaremos sus
ubicaciones después e iremos hasta el final
y pondremos la última aquí. Ahora tenemos cuatro
puntos objetivo. Podemos establecer. Podemos volver a nuestro objetivo. Podemos crear get location. En primer lugar, asegurémonos de
que tenemos referencia para ellos. Entonces objetivo. Elenco al punto objetivo On y vamos a
promoverlo a variable. O ahora, voy
a quitar esto. Voy a convertir
esto en array. Lo voy a compilar.
Voy a añadir cuatro elementos. Y después de que haya terminado de
agregar cuatro elementos, vamos a obtener esta matriz, obtener un punto stargt Vamos a sumar para
cada bucle Por ahora, sólo
vamos a
usarlo para probarlo, y vamos a exponer esto. Y lo que vamos a hacer, seleccionaremos target. Y deberíamos tener esto
como punto objetivo aquí. Vamos a
seleccionarlos uno por uno. Ir al punto objetivo. Uno, dos, tres y cuatro. Ahora tenemos objetivos
uno, dos, tres, cuatro. Ahorraremos,
volveremos y guardaremos otra vez por si acaso vamos a
conseguir que el actor se transforme
y lo ponga aquí. Y este teletransportarse por ahora, solo con fines de prueba, vamos a ejecutarlo
una vez en el evento comience a jugar Creo que lo tenemos en la parte superior, pero no lo estamos usando. Como tal, solo podemos probarlo,
compilarlo , guardar, descansar jugar. Entonces debería desaparecer
de nuestra ubicación, y aparece aquí. El motivo por el que aparece
en el aire, antes que nada, porque nuestro objetivo no está colisionando y
hagámoslo así Ahora volvamos a jugar. Perfecto. Y tenemos que asegurarnos de que se rote de
la manera correcta. Y ahora lo tenemos. Todavía está un poco en el aire. Así que vamos a arrastrarlo por
el bit objetivo al suelo. Veamos si está
bien ahora y si lo es, simplemente lo
haremos, se ve bien. Ahora, vamos a tomar la transformación
Z de este objetivo. Vamos a copiar. Y vamos a
aplicarlo a todos los demás. Esto fue alrededor de 75 705 tal
solo uso esto directamente. Ahora, tenemos que
asegurarnos de que nuestras rotaciones también
sean correctas Como tal, lo que podemos hacer, podemos obtener uno específico
primero pasando por a. en este caso, supongo que solo
podemos obtener una copia. Y si lo ponemos así,
éste siempre va a conseguir el
primero de la línea que ya
tenemos. Entonces hagamos uno, que en realidad es el segundo, compilemos,
juguemos, y veamos dónde generó Se engendró en esa dirección. Transformar es
obviamente incorrecto. Como tal, vamos a dar clic en este segundo y
rotarlo integrarlo hacia la izquierda. Entonces la línea roja está de este lado. Y echemos un
vistazo a éste también,
y lo más
probable es que esto sea lo mismo, así que vamos a hacer. Entonces probémoslo con el
segundo, compilemos, guardemos y presionemos play. Bien, cometí un error.
Vamos a intentarlo de nuevo. Volvamos. Se ve bien. Ahora, asegúrate de que tenemos lo
mismo para este,
que es el número tres. Compile, presione play,
y está funcionando bien. Inicialmente puse esto
un poco al revés, así que no se activaría, pero
como lo estamos moviendo demasiado, solo vamos a
mantenerlo en el medio. Sí. Compilarlo,
guardarlo presione play. Ahora, arreglemos la lógica para ello. Y para no estorbarnos, cerremos éste y vayamos
a BPG y agarremos al azar Interesante. Elemento de matriz aleatoria. Asegurémonos de que sea
aleatorizado cada vez. Vamos a obtener un elemento aleatorio de
estos cuatro puntos cada vez Ya los tenemos preestablecidos. Ya tenemos las
rotaciones, etcétera. Y lo que
vamos a hacer a continuación, obviamente, primero,
vamos a probarlo. Desapareció
en ese lugar cuando agregamos Evans baking play. Tenemos que desencadenar esto
llamando al evento de teletransporte, y esto es bastante fácil Sólo vamos a llamar al evento de
teletransporte desde aquí Vamos a llamar a la
función Telepot. Vamos a guardar el juego, y veamos,
lo tenemos frente a nosotros. Nosotros lo metemos. B tres
bolas y puerta nueva. Y a continuación lo que vamos a hacer es que vamos a
ir a nuestra interfaz y llamar a una nueva función y llamarla nueva interesante. Nuevo modo de andar u oro. Compilarlo, guárdalo. Esto automáticamente
agregará esto a todos los actores con
la interfaz. En este caso, los
queremos a la luz, así que puedes simplemente dar
click en cualquier luz, ir a su plano Amplíe la interfaz. Y en vez de objetivo localizado, vamos a moverlo e implementar evento
llamado Nuevo gol. Y evento Nuevo gol
hará múltiples cosas. En primer lugar, vamos a conseguir que
esto suceda un nuevo objetivo. Y vamos a
apuntar a la nueva puerta. Pero primero, vayamos a aquí. Y una vez terminado el teletransporte, conseguiremos a todos los actores con
la interfaz y la enumeraremos aquí y llamaremos a este
evento Nuevo mensaje de gol El objetivo son todos los actores que
tienen habilitada esta interfaz. Ahora, vamos a probarlo. En el momento en que metemos la pelota, todas las luces deben ponerse rojas. Ellos lo hacen. Ahora, queremos las luces
más cercanas a la nueva puerta, enfocarnos en ella, para que
podamos cambiar instantáneamente nuestro enfoque hacia la nueva puerta. Y la forma en que lo
hacemos es ir a nuestra luz. Ya no necesitamos la lógica de l
spanner. Aquí, si recuerdas, teníamos esta funcionalidad donde teníamos distancia al jugador. Vamos a copiar esto o topcates y llamarlo
distancia a puerta Vamos a compilar esto y
volver al injerto de Avent. Vamos a utilizar esta
distancia para portón aquí. La forma en que esto va a funcionar, necesitamos conseguir un personaje
jugador aquí, inicialmente, pero lo que tenemos que
hacer ahora es conseguir al actor. Podríamos codificarlo duro, pero
como mencioné primero, no
queremos referencias
duras Entonces lo que vamos
a hacer en cambio, vamos a ir BPG, y en la interfaz, vamos a agregar una entrada, y vamos a llamarlo
target lo siento, referencia actor Vamos a conseguir actor objeto
referencia juego y llamar actor ref compilarlo, guardarlo. Y si echamos un
vistazo a nuestro objetivo de BP, ahora
tenemos un techo de actor. Y en este caso,
va a ser yo mismo. Como estamos consiguiendo una nueva referencia que queremos
conseguir es la propia puerta. Volvemos al
plano de la luz,
guardamos o no, volvemos
al gráfico de eventos Si por alguna razón, pierdes o tienes
demasiadas opciones aquí, simplemente
puedes cerrarlas y encontrar tu gráfico de eventos aquí
en la parte superior izquierda. Y en la distancia a la puerta, necesitamos una entrada. Entonces vamos a agregar input. Mis disculpas.
Vamos a necesitar un insumo, y vamos a
llamar a esta entrada una referencia de
actor, una referencia de
actor. Y esta nueva
referencia de actor será la puerta. Y si vuelves a graficar
aquí, qué vamos a hacer, obviamente vamos a
activar esto para asegurarnos nuestros colores aleatorios paren y
obtengamos el color rojo por un segundo. Y como todo esto suceda, vamos a conseguir este evento de referencia Ni gol, ponerlo en puerta. El que activa este
evento es la puerta, y la puerta hará
referencia a sí misma, y la interfaz transferirá esa información a nuestro
evento aquí en las luces Entonces vamos a
tener esto aquí. Y qué más
vamos a hacer, vamos a agregar salida
adicional,
y esa salida también será puerta o en
realidad podríamos saltarnos esta parte porque ya tenemos la
referencia en el blueprint No hay razón para complicarlo en
exceso. Lo que vamos a hacer es que estamos consiguiendo una
distancia a la puerta. Y si la distancia a la puerta
es esencialmente por rama, cierto, o esta es una distancia de si está
más cerca de 2000, ¿verdad? Vamos a poner esto aquí. Entonces, si la distancia
entre él y la puerta
es menor a 2000, obtendrá este valor, lingotes, y este lingote definirá si
está cerca o Y si es así, vamos a conseguir
nuestro nodo objetivo establecido, que creo que
teníamos aquí en algún lugar de
la sección de jugadores. ¿Establecer rotación de actor o
jugador distanciado después de que lo configuramos? Sí. Teníamos esta ubicación de actor
get. Oh, sí, no nos fijamos ahí. Lo fijamos aquí, y vamos a establecer nuestro nuevo objetivo que por cierto, podría haber encontrado una nota, pero siempre es mejor
revisar tu plano Vamos a establecer nuestro nuevo objetivo. Esencialmente, si
está lo suficientemente cerca, pondremos nuestro nuevo
objetivo a la puerta y realizaremos este evento manera
similar a la
que teníamos aquí. Vamos a conseguir
vamos a establecer nuestra nueva rotación y
obtener nuestra propia rotación. Lo que podemos hacer fácilmente es que también podemos duplicar
esta función y hacer que encuentre la rotación de la puerta. Y agrega una entrada aquí o actor o actor, llámalo puerta solo para asegurarnos de que aquí solo ingresamos
la referencia de la marcha, desplácese hacia arriba en nuestra
función de marcha, rotación de puerta Nos fijamos nuestro objetivo. Lo conseguimos como referencia Vamos a tu jugada conseguir personaje
jugador y
establecerlo como objetivo. Obtendrás la nueva rotación de
los objetivos. no hay razón para configurarlo
ya que en cambio podemos conseguir esto Y en este caso, el yo aquí no se está
utilizando ya que no lo necesitábamos. Y podemos copiar la lógica exacta que tenemos para la línea de tiempo en
el siguiente aquí para la línea de tiempo. Y vamos a copiar esto Vamos a copiar este lugar aquí y
usarlo desde el principio. Nuestros resultados serán A y B, y todo lo demás
debe quedar como está. Por ahora, vamos a probarlo. Nosotros hacemos esto. Ponemos esto en. Yo explota. Las puertas cercanas deberían enfocarse en ello,
pero no lo hicieron. Veamos por qué sucede esto. Y volvamos a la impresión de plumín. Ahora, esto se desencadena. Esto
también se desencadena. Esto lo activamos. Establecemos el engendro objetivo y la razón por que
esto sigue activándose es que en realidad
no estamos impidiendo que
esto suceda Con esto, me refiero al movimiento
aleatorio de la luz. Tenemos que agregar esta nota
aquí y agregarla aquí. Y si esto es falso, como lo dijimos aquí, esto no debería desencadenarse, y esto solo debería
desencadenarse si es cierto. Y por defecto,
parece ser vamos a
comprobarlo por si acaso. Bien, no está
pasando actualmente. Vamos a mis habilidades de juego
superiores no brillaron por
aquí. Nos estamos poniendo rojos. Y estos actores están buscando en direcciones
distintas a las que deberían. Veamos qué está pasando aquí. Nuestra salida A está aquí, que es nuestra rotación actual. Oh, no necesitamos obtener
la rotación de los objetivos. Esto es un error de mi parte. Vamos a intentarlo de nuevo. Y ahora nos llega este interesante
interactivo. Tenemos rotación B aquí. Vamos a dejarlo abajo, y
tenemos una rotación, que debería ser su
propia rotación actual. Echemos un vistazo a nuestro evento, la forma en que se juega aquí. Obtenemos nuestros
valores de salida, A y B, lo
metemos y tenemos Alpha
tenemos Alpha rotador, y obtenemos rotación setter, la misma manera que lo hacemos aquí La única diferencia
sería cuando lo actualizamos y
lo terminamos, necesitamos
asegurarnos de que esto vuelva a ser verdadero terminado. Cierto. Y el cronograma
para ello es de 1 segundo. Hagámoslo 3 segundos. Compilar, guardar,
volver a Gráfico de eventos.
24. UE5 FC08 02: Echemos un vistazo a
lo que está mal con nuestro plano. Sólo
para verificar dos veces. Tenemos este
span objetivo cuando es cierto, esto debería dejar de activarse, ya que no queremos topin por lo que
no debe activarse en Debería aparejar en falso. Y en verdad, no
debería pasar nada, y deberíamos estar
obteniendo colores aleatorios a menos que ya se genere
durante los próximos 3 segundos. Aquí hacemos exactamente
lo mismo. Tenemos un retraso. Después del retraso en serie,
vuelve a caer, por lo que todo esto puede funcionar
como lo hacía anteriormente. Echemos un vistazo a
nuestra distancia a la puerta. Es como debe ser. Veamos esto,
y aquí está el tema. Tenemos que ponerlo
aquí también. Muéstralo, guárdalo. A ver si funciona ahora. Solo necesitamos luces más cercanas
a la puerta para avistar sobre ella. Lo que hicieron, pero
se retrasó bastante. Esto puede deberse principalmente a que tenemos demasiadas líneas de tiempo
funcionando al mismo Y si bien esta reproducción
desde el principio está bien, necesitamos evitar que estos otros eventos o líneas de tiempo jueguen
cuando hacemos esto, ya que necesitan ser
pausados Ahora bien, la forma en
que podemos hacer esto es asegurarnos, primer lugar, de que tengamos una
manera de interactuar con ellos. Entonces agreguemos una secuencia. Y en esa secuencia, vamos a arrastrar esto. Cuando está bien,
esencialmente, se está ubicando un
nuevo objetivo, primero detenemos todas las
líneas de tiempo existentes Y esto no debería suceder
en evento para comenzar a jugar. No. Esto debería suceder en el
evento, nuevo objetivo en su lugar. Entonces esto no debería suceder aquí en pliegues,
donde vas a hacer. ¿Por qué eliminé esto? Podemos simplemente
jalarlo aquí por ahora. Esto está muy desorganizado por el
momento, pero no perdamos
demasiado tiempo en ello. Tomemos esto y lo pongamos aquí. Entonces, cuando se activa una nueva meta, estos dos se detienen
instantáneamente y
conseguimos que nuestras luces se centren
en las luces en su lugar. Entonces hagámoslo. Aparecen. Y veamos. Comienzan su movimiento
aleatorio. No, ya que no agregamos ninguna información
adicional. Entonces, antes que nada, vamos a
asegurarnos de que más luces puedan Fox Gate ya que
queremos que sea evidente que
algo está pasando. A continuación, después de que todo esto haya sido finalizado y hayamos
terminado nuestra jugada, tenemos que volver todo el camino regreso a la secuencia cero aquí. Juguémoslo, y
volvamos a verlo. Nosotros hacemos esto. Yo vamos a enfocarnos en ello. Ahora, volvamos a cambiar
algunos ajustes. Este es un código muy
desorganizado, que organizaremos más adelante Echemos un vistazo a
lo que hace nuestro código. Obtenemos nuestras luces, obtenemos nuestra rotación, etcétera, y sí recuerda que esto
es por luz, así que no es como todas las luces se vean afectadas
al mismo tiempo Las luces que no estén
lo suficientemente cerca no deberían verse afectadas, por lo que necesitamos cambiar
la ubicación para esto. Nodo si
se genera el objetivo y si la distancia a la puerta es
verdadera, esto debería activarse Y después de esto detiene a
los otros dos, reutilizamos esto y las luces que están cerca la nueva puerta deberían
funcionar en su lugar Nuestra puerta se centró instantáneamente. En este caso, nuestras
puertas responden aquí. Vamos a asegurarnos de que lo
estamos haciendo de nuevo. También lo volveremos a utilizar, y lo que vamos a hacer
es que nos vamos a asegurar que solo las luces alrededor la puerta sean rojas
en lugar de todas ellas, ya que no sirve
para propósito para que todas sean rojas Entonces, en cambio, lo que
vamos a hacer, nos estamos moviendo cuando esto activa y cuando
se marca gol, cuando se marca gol, todos ellos volviéndose verdes
es algo genial. Fresco. Es como animar. Y vamos a
asegurarnos de que tenemos tiempo
suficiente para que las luces se
pongan verdes cuando anotemos. Vamos a los planos. Vayamos a nuestro objetivo. Y antes de que ocurra el teletransporte, vamos a darle retraso Retraso y tenemos 3
segundos de luz verde. Así que hagámoslo 3
segundos también. Teletransporte verde. Entonces, antes de que se llame al
evento de teletransporte, que llamaremos a esto y
todo esto sucederá, tendremos 3 segundos
de luz verde Soy muy malo en este juego. Vamos a modificar la velocidad en
el jugador un poco más adelante. Y hacemos esto, 3
segundos de luz verde. Desaparece, y
después de que desaparezca, todas las luces deben
enfocarse en él. Sí. Ahora, veamos cuál
es el tema aquí. Este evento, distancia
a puerta tiene un error, y veamos por qué ocurrió
este error. Nuestro evento de distancia a puerta se llama todo el camino por aquí. Pero para que esto sea funcional, realidad no
tenemos
mucho que seguir. Entonces echemos un vistazo a la. Nodo de acceso Roy rojo
probablemente puerta puerta. Menos de 2000, conseguimos subasta. Entonces están tratando de leer
el nodo llamado puerta. Y por cierto, esto es ahora
menos de 3 mil, pero es pecado. Y en vez de menos de,
vamos a llamar a ss. Este es el valor
que está tratando de leer. Y si le echas un
vistazo a la gráfica, el objetivo después de
que se crea una nueva
meta, obtiene una referencia
para la nueva meta, y esta referencia va
a través de la distancia a la puerta. Y si está
más cerca que el cierto rango,
antes nada, asegurémonos de que nuestros valores de cambio de luz
realmente vengan después de esto. Entonces vamos a guardar esto por ahora y conseguir que este nodo de sucursal
esté antes de todo esto. Obtenemos esta distancia. Si es menor, pasamos por, y de a través, vamos a hacer esto, y de aquí, vamos a secuencia y esta secuencia de operaciones
debería ser más correcta. Vamos a probarlo.
Tenemos esto, se nos cae esto. Tenemos esta pantalla, una, dos, tres, desaparece. Si están cerca, deben cambiar de color y ponerse rojos. Pero por alguna razón, no lo
hicieron Ahora, arreglemos todos los problemas que
tenemos con esta luz
y terminemos con ella. La razón por la que esto no está funcionando de la manera que
queremos es porque aquí
hay múltiples interacciones simplemente no siguen la
secuencia correctamente. Entonces, antes que nada,
asegurémonos no solo mientras
necesitamos que el evento comience a jugar, no queremos que
estos nodos vengan por todas partes
del lugar cada vez. Entonces, en su lugar, hagamos
clic en el evento constante. A eso solo puedes llamar. Llamemos a evento constante, y podemos simplemente llamarlo reinicio. Esencialmente reinicie toda la operación desde el
principio. Esto se activará cada
vez que se llame al reinicio, y podemos ponerlo aquí, por ejemplo, art, call function. Y aquí vamos a limpiar bastante
nuestra escena. Tenemos este disparador de secuencia y tenemos este
disparador de secuencia a partir de aquí, volvamos a nuestro jugador distanciado Asegurémonos que esto en vez de ir
a nuestro
jugador distanciado , vaya a reiniciar Entonces volveremos a llamar a esta
función aquí. Podemos simplemente copiar esto
y pegar esto aquí. Entonces cuando todo esto aquí termina y se termina, probamos nuestra distancia
al jugador y si todo está
como debería ser, reiniciamos toda la operación. Volvamos a echar un vistazo aquí. Tenemos reinicio,
tenemos secuencia que diferencia aquí, tenemos eventos que corren Y cuando todo esto termine, reiniciamos nuestro nodo. Aquí paramos estos dos eventos. Pero en lugar de usar esto
podemos crear eventos personalizados. Llámalo parar y podemos controlar mis bolologías
podemos arruinar esto hasta
aquí abajo. Y en vez de tener este nodo, ve hasta aquí, lo que
podemos hacer es quitar esto. Es cierto, esto sólo sigue. Usamos el nodo stop
para detener este, y agregamos una secuencia aquí. Paramos este en la parte superior y paramos este
en la parte inferior. Mucho más limpio. Código espagueti. no
tenemos nada que realmente necesitamos Ya no
tenemos nada que realmente necesitamos
limpiar aquí
en la fila inferior, y solo podemos
moverlo un poco. Y aquí, echemos un vistazo. Lo estamos deteniendo
cuando es necesario. Tenemos este retraso que se remonta a
la generación
aleatoria. En su lugar, volvamos a llamar a nuestra función de
reinicio. Entonces para que lo revise. Hay un retraso después de
que todo esté terminado y
reiniciamos todo de nuevo y
el reinicio Pasaremos por todo
este proceso una vez más. Obtendremos nuestro nuevo color aleatorio. Esto desencadenará. Vamos a asegurarnos de que todo aquí esté
dentro de la sección de comentarios. Tenemos ramas dobles
para distancia al jugador y distancia si el nuevo objetivo está
disponible o no. Esto es sólo una
forma más limpia de hacerlo, así que no tenemos que
conseguir esa pesadilla. Podríamos crear funciones, etcétera para compactarlo aún
más, pero creo que está bien Puedes, por cierto, alt
click derecho e izquierdo Alt click y click derecho mantén presionado
y moverte alrededor tu mouse para cambiar
tus niveles de zoom. Y aquí todo está bien. Ahora, lo tenemos organizado, pero cambiemos algo. Deberíamos hacer avanzar esto. Y vamos por ahora, destruir nuestras referencias
aquí y desatarse. Arrastremos toda nuestra
larp, etcétera,
rotación, todo aquí, al gráfico
de eventos, Evento nuevo gol Y usemos nuestra
variable objetivo y pongámosla aquí. De esa manera no tenemos que hacer
referencia a la interfaz
cada vez. Lo conseguimos una vez. Y cada vez que lo
necesitamos, solo lo obtenemos
del set aquí, y lo hacemos por aquí también. Y cuando jugamos, cuando
terminemos de jugar, nos fijamos el objetivo girado
y vamos a reiniciar. Y antes de
movernos por las luces, queremos ponerlas rojas. Como tal, los vamos
a trasladar aquí. Y a la derecha encontramos, lo
movemos y
jugamos desde el principio. Y cuando esto
termine, de nuevo, apuntamos giramos, retrasamos. Y creo que
tendremos que modificar esto de
nuevo solo para asegurarnos. Pero vamos a compilar.
Seleccione pulsar play. Veamos qué pasa. Nos movemos la pelota, todo se vuelve verde. Obtenemos bolas nuevas. Todo está enfocando esto. Pero ahora están pegados en él. La razón por la que esto sucede
es porque este valor aquí. Veamos qué pasa de nuevo. Lo movemos por ahí. Soy un jugador muy malo, así que vamos a dejarlo caer
directamente frente a él. Lo volamos.
Todo es verde, se vuelve a activar. Y los tenemos aquí, pero no son
del color correcto. Entonces esto se
debe en parte a que tenemos muchos nodos
de reinicio. Esto sucede cuando está
terminado y son 3 segundos. Este disparador avanza
y el siguiente disparador ocurre en BPG, en BPLTe Si echamos un vistazo a
nuestro objetivo de evento aquí, 3 segundos retrasan el
engendro objetivo Esto en realidad no es volver a
activar nada. Pero esto tiene un retraso en su lugar. Entonces, en vez de esto,
eliminemos esto. Y aquí quitamos la sucursal. Agregamos este retraso, pero después de esto, agreguemos
nuestro nodo de reinicio, call. Y aquí, asegurémonos no
nos
llamen a nuestro reinicio cuando no lo necesitamos. Tenemos nuestra sucursal
yendo todo el camino hasta aquí. Esto nunca debería ir
al jugador distanciado. T debería ir a la sucursal inicialmente. Y si es cierto, esto no
debería desencadenar. O volvamos a revisar nuestro lingote. Cuando es falso,
esto debería desencadenarse. Cuando es cierto, no
debería activarse. Y cuando la radiación
y generación aleatorias están en su lugar, rotación del
detector, la
estamos retrasando. Estamos obteniendo rotación de distancia,
estamos atravesando. Y cuando lleguemos esto,
eliminemos esto de aquí y agreguemos el nodo de reinicio
adicional aquí. Si es cierto, compilar. Tenemos la secuencia que detiene estas dos líneas de tiempo y
después de que se detienen, no se
están
actualizando en tiempo real Como tal, podemos simplemente
moverlo un poco. Estamos consiguiendo transtation
real, y cuando esto termine, comprueba si está cerca
del jugador o no Si es falso, establecemos
nuestra rotación a default, lo que ya no
tenemos que hacer porque modificamos
nuestro sistema de luz, y si es falso, reiniciamos nuestro sistema de luz. Así que vamos a intentarlo de nuevo. Todo está funcionando
como debería. Cuando estoy cerca de las
luces, me apuntan, yo la meto, y
veamos cómo reacciona de nuevo. Están reaccionando a la puerta y
enfocándolo como deberían. Y después de que
termine de jugar, deberían comenzar a moverse. Y la razón por la que esto
no está sucediendo es porque no
estamos deteniendo esta operación en
ningún momento. Entonces lo estamos actualizando, y cuando termine,
se está reiniciando Pero tenemos que establecer el engendro
objetivo falso antes de terminarlo. Debe asegurarse de que
esté configurado para caídas para que las luces afectadas por la puerta puedan volver a
estar operativas. Ponemos esta pelota,
dale el momento. Se apareció. Las luces lo están mirando, y las luces están
funcionando de nuevo, pero ahora tenemos un
tema de colores. Ahora, arreglemos eso también y terminamos con
el sistema de luz. Cuando se activa el color del evento, obtenemos nuestro engendro objetivo, configuramos que las luces se vuelvan verdes Reafirmémoslo. Esto lo conseguimos, uno, dos, pero las luces apuntan al jugador
cambian de color instantáneamente. Ahora bien, esto está sucediendo por
una razón muy sencilla. Tenemos nuestra nota de reinicio repitiendo esta secuencia
de colores aleatorios también. Entonces, si solo arrastramos esto
desde aquí y lo ponemos aquí, esto debería resolver todos
nuestros problemas restantes. Hagamos esto y conseguimos nuestra luz verde y nuestra luz
verde está aquí, obtenemos nuestros
colores aleatorios y colores de puerta. Ahora bien, no estamos recuperando
nuestros colores aleatorios. La razón es que ningún evento ahora
se está volviendo a activar
obtener colores aleatorios, lo que podemos
hacer fácilmente nosotros mismos asegurándonos de que cuando termine esta secuencia y
esta secuencia termine aquí, llamamos a un evento que
inicia colores aleatorios Entonces llamemos evento personalizado. Llámalo llamador aleatorio B set. Nuevamente, no es el
mejor sentido de nomenclatura, sino que sólo vamos
a rodar con él. Y vamos a llamar a este evento aquí en la parte
superior donde editamos nuestra luz. Y aquí cuando hacemos clic en
la meta, en este caso, realmente no
tenemos que hacerlo porque después de que activemos este evento, conseguimos este evento en la cima, así que simplemente no puedes
reiniciarlo aquí, y debería funcionar bien. Esto lo activamos, las luces nos
siguen cuando estamos cerca. Las puertas giraron ahí, las luces se
vuelven rojas a alrededor
y se mueven de nuevo. La luz verde aquí se
queda como debería
porque después de que esta
luz verde se active por sí misma, si no están cerca, no
se reinician Entonces sí necesitamos agregar este reset de luz
verde aquí. Ahora bien, si lo agregamos directamente, esto lo sobrescribirá. Es por ello que es tan importante comprender la secuenciación en el
plano Se puede pensar, Oh, ya lo
hice, pero la secuenciación
en sí puede ser un problema. Obtienen colores aleatorios
y éste se vuelve verde. Solo para asegurarse de que el
resto de los permanezcan verdes mientras
se está enfocando el verde. Hagámoslo un retraso de 6 segundos. Esto dice 3 segundos y
tenemos tres segundos de retraso
antes de que esto comience. Por lo que las luces que
no están cerradas se volverán rojas. Y sólo para asegurarnos
estamos siendo capaces de
ver definitivamente el verde mi rojo. Consigamos el spot
y fijemos la intensidad. Vamos a restablecerlo. De nuevo, por lo que normalmente
tenemos 40 mil. Hagámoslo 80 mil. Y volveremos a copiar esto. Y cuando hayamos terminado y
estemos haciendo todo esto, lo
volveremos a poner en 40 mil. Entonces, cuando terminemos
con nuestra operación y para el evento de puerta, los
regresamos a. Vamos a bajarlo. Lo conseguimos en. Obtenemos nuestro
color, mientras que la marcha. La marcha tiene la
luminoidad incrementada, y vamos a conseguir que nuestro atentan
reduzca también está Ahora, lo único que hay que
cambiar es el color mismo. Y no lo hagamos rojo brillante,
hazlo rojo más oscuro, combinemos, jueguemos, guardemos. Y metemos esto. Obtenemos
nuestras luces, dónde está nuestro git. Es nuestra puerta. Diferencia,
pero esto debería ser suficiente. Podríamos y supongo que
deberíamos cambiar el
nivel de intensidad de lumen predeterminado para este 20, y hagamos que sea un rango
más corto para que
no tengamos demasiadas luces en
cascada por todas partes Y ahora vamos a intentarlo de nuevo. Tenemos estas luces, y pronto tenemos luces rojas aquí. Y supongo que podríamos hacer que las luces
rojas permanezcan más tiempo, pero de nuevo, esto es solo
cuestión de elección en este momento, y no quiero
perder más tiempo con la luz. Así que vamos a dejar aleatorizar todo
en la luz aquí ahora, y vamos a usar comentarios y esas cosas para
organizar el evento Así anota luz verde. Y éste
serán serán nuevos objetivos. Vamos a
hacer que este sea rojo. Y éste verde. Vamos a alterarlos, a ver si tenemos algo más. Tenemos nuestro objetivo, seguir
objetivo o ser específicos. Sigue claro tenemos nuestro movimiento de luz aleatorio y nuestro color aleatorio
para las luces. Y esto es suficiente. Tenemos nuestros nuevos eventos, somos nuestros dispensadores de eventos
que llaman a estos eventos Y ahora vamos a asegurarnos de
que tenemos suficientes albercas en la escena al
inicio del juego. Entonces qué podemos hacer,
podemos agregar No, podemos dejar
éste en el campo. El mensaje de error fue porque hemos
hecho referencia a él por defecto. Realmente no necesitamos
hacerlo en este punto, pero podemos dejarlo
adentro. No es problema. Así que vamos a tenerlo aquí. Quiero generar múltiples bolas durante el evento comenzar a jugar Así que vamos a agregar muchas
más bolas a la escena. Sólo para tener ing la escena. Y lo que voy a
hacer porque agregué tantos bolspwers
y no quiero realmente
hacer
un juego equilibrado También lo estamos haciendo con fines de
demostración. Después de todo, lo que voy a hacer es en lugar de hacer
este evento N veces, voy a agregar comenzar a
jugar y al comenzar a jugar, voy a hacer N, esencialmente haciendo este
evento tres veces. Y en el marcador de gol del evento, restableceré y lo volveré a hacer. Entonces, al
comienzo del juego, esto generará muchas bolas para que
las use Y si marco un gol, lo cual es un poco duro para mí por
alguna razón, probémoslo. A nosotros le sumamos esta bola y Bam.
Tenemos muchas más pelotas. Lo que también podemos hacer, podemos llevarnos aquí a todos nuestros esponjadores de pelota Haga clic en Shift y
colóquelos en el aire. Y creo que vamos a
centrarlo un poco más. Y ahora
caerán del cielo, y vamos a agregarlos a una
carpeta, llamarlo A subrayado Spooners No tengo que usar
guión bajo en los nombres de carpetas, pero es solo una fuerza de hábito, y vamos a tener
una bola verde a muy y nuestro
comido de partida está ahí, así que solo podemos comenzar
colocando estos dos aquí, y podemos comenzar nuestro juego lexis Y a medida que comenzamos nuestro juego, tenemos muchas pelotas con las
que trabajar. Podemos moverlos. Y a
medida que metemos una, obtenemos aún más pelotas, y las bolas no pueden salir de campo porque ahí tenemos
colisión. Y ahora tenemos un juego de infinitamente generar bolas
hasta que te ahogues en él Ahora, hemos terminado con los relámpagos, los elementos de la marcha y
el juego, las interacciones entre ellos, y vamos a detener adiciones de
juego
allí en este curso
25. UE5 FC08 03: Ahora, hablemos del personaje en tercera persona y de
lo que podemos hacer con él. En este caso, el personaje de tercera
persona es nuestro maniquí irreal que se nos
proporciona por defecto. Te explicaré algunos
de los parámetros que puedes agregar en él y algunos componentes útiles que podemos usar para nuestros actores, y tal vez incluso podamos poner pocos como decoración
en la etiqueta. Si vuelves a
tu carpeta de contenido, planos de
tercera persona,
encontrarás tu
personaje en tercera persona, ábrelo Y notarás que
aquí
hay muchas cosas para saltar, movimiento, acciones de entrada
mejoradas, entrada
mejoradas, que no se
explicarán en este curso, pero son la nueva forma irreal de agregar insumos a los actores Es un tema para
el próximo curso. Y aquí tenemos nuestra
ventana gráfica, nuestro personaje,
nuestros personajes
caja de colisión o componente cápsula, y nuestra cámara que sigue al personaje nuestro componente de
movimiento de personaje Entonces esto es en lo que hoy
vamos a enfocarnos. Tenemos componente de
movimiento de personajes aquí, y si echas un
vistazo al panel de detalles, verás muchas
cosas que te pueden resultar útiles. Entonces tenemos nuestra aceleración. Tenemos nuestra velocidad de movimiento, velocidad de
natación, etcétera No nos vamos a centrar
en cada una de ellas. Lo que necesitamos es nuestra velocidad. Por lo que tenemos una velocidad máxima
de 500 en este momento, que no encuentro lo suficientemente
alta como para navegar por
esta enorme área Se siente muy lento.
Vamos a aumentarlo. Entonces aumentémoslo en, digamos, y que sea
1,500 y que sea 2000. Veamos jugar ahora. Ahora, nuestro personaje se
mueve mucho más rápido, y tal vez
incluso podamos anotar algo. Y cuando golpeamos algo, nuestra velocidad de movimiento baja un poco, pero podemos atrapar nuestras
pelotas y navegar por ellas. Vamos a intentarlo de nuevo. Ahora podemos encontrar nuestra forma de andar diferente y volver a
hacerlo por sí Y podemos repetir esto tantas
como queramos y llenar
toda la pantalla visible. Ahora, puede notar que ahora tenemos Max lk velocidad de 20 k como la
puse anteriormente Pero si controlo Z y
lo vuelvo a poner a 500 o controlo Y, también, las diferencias
aquí son enormes. El hecho de que solo puedas ir a una mayor velocidad mayor es porque tenemos cierta
cantidad de aceleración, y a menos que golpee algo, va a caer vamos
a disminuir la velocidad máxima, digamos, vamos a
dividirla por dos. Creo que ese número era
demasiado alto para nuestros propósitos. Entonces veamos, y todavía
tenemos una velocidad lo suficientemente alta. Pero y si quieres tener cierta cantidad de aceleración pero no quieres
ir instantáneamente a alta velocidad posible. Aquí es donde entra nuestra
aceleración. Y si le das un
vistazo a nuestra aceleración, nuestra aceleración máxima
es actualmente de 1,500. Si lo ponemos en un número
mayor, digamos,
5,000, compilar, presionar play. Obtendremos velocidad de impulso instantánea, y va a ir más
y más y más alto hasta que
alcancemos nuestra velocidad máxima, que creo que
ya es demasiado alta. Entonces pongamos la aceleración a 3,000 y asegurémonos nuestra velocidad máxima no se
acerque a este número ridículo. Lo reiniciamos, es muy lento, así que pongámoslo como ¿qué
podemos hacer aquí? ¿Por defecto? Fueron, creo, 500. Y vamos a
multiplicarlo por digamos seis. Y nuestra aceleración máxima se
puede multiplicar por dos. Aquí tenemos
opciones adicionales para la gravedad, cuánta gravedad debería
aplicar a este personaje, podríamos reducirla, lo
que nos permitiría saltar más alto y nuestra caída
será más lenta. Lo que podemos hacer, podemos
aumentar nuestra velocidad de salto. Entonces, dupliquemos nuestra velocidad de
salto, y digamos que la tripliquemos. Compilarlo, presionar play, y ahora tenemos un salto de Superman, y en realidad podemos
saltar fuera de límites, que no es algo que
me gustaría tener Así que vamos a reducir nuestro
salto en 300 incumplidos, y vamos a hacerlo 800 Paso. Así que volvamos. Tenemos alto me
gustaría tener salto lo suficientemente
alto como para
saltar por encima de las bolas, pero no lo suficientemente alto para
poder salir del nivel. Siempre podría agregar una
pelota caminando encima del nivel, pero no vamos a hacer eso,
ya que a propósito
limitamos nuestro salto Instancia. Tenemos
control aéreo que nos permite ajustar cuánto podemos
controlar al personaje mientras se mueve, y tenemos muchos más
ajustes para volar, para nadar, para interacciones
físicas. Y esto es en lo que
quiero enfocarme. Tenemos un juego donde estamos
moviendo objetos basados en la física. Así que vamos a ocultar todas estas opciones que en realidad
no necesitamos. Y nos vamos a centrar
sólo en nuestra física. Como puedes ver,
aquí hay
muchas opciones que tardarían una
eternidad en pasar. Entonces, solo
busquemos la física. Y tenemos nuestras opciones de
interacciones físicas. Hemos habilitado la interacción
física, lo cual es cierto, la necesitamos. Y lo que tenemos para Alvin
limita a un objeto de física. Entonces cuando golpeamos un objeto o colisionamos
con él para ser específicos, le aplicamos una fuerza de 500 Si lo aumentamos a algo así como 5,000 compilar
y jugar, e interactuamos con un objeto, digamos, se está aplicando
mucha más fuerza que antes. Y si aquí agregamos una cantidad
ridícula,
digamos, sucederá,
simplemente se
evaporarán instantáneamente en el momento en que los
toquemos, lo que puede parecer gracioso, pero no es ideal cuando todo lo que tocas explota y entra en el
olvido en Pero sí quiero algún impacto extra cuando toquemos las esferas. Como tal, vamos a
presionar play, y veamos. Nuestra fuerza ahora es suficiente para arrastrar hacia abajo múltiples bolas
al mismo tiempo y solo
podemos movernos. Y con nuestra mayor velocidad, podemos repetir esto
tantas termas que queramos Ahora, aquí
también podríamos hacer click sobre esto y si
aumentamos la fuerza
mínima de contacto, esencialmente la cantidad mínima de fuerza podemos aplicar a
algo como digamos 2000 y digamos que también
es nuestro máximo ahora. Si compilas y presionas play, obtendremos esta
extraña interacción. En realidad no
lo estamos haciendo muy diferente. Quizás te preguntes qué
es esto en este caso. ¿Es esta la cantidad
de fuerza aplicada, no la fuerza de empuje? Como tal, no es
exactamente lo mismo. Se trata de un cálculo basado
en la cantidad de fuerza. Si estás tratando de agregar fuerza
adicional por kilogramo, lo cual es útil para
la simulación física, pero no es algo que
te ayude a la hora empujar objetos reales. Asegurémonos de que todavía tenemos nuestras opciones habilitadas
como queríamos, y ahora
saldremos de esta sección. Y vamos a hablar
muy brevemente sobre objetos, componentes,
componentes actores para ser claros. Entonces ya creamos pocos
planos. Y vamos a crear uno más. Y ésta sólo
vamos a hacer actor, vamos a llamar a prueba por ahora porque
no la vamos a quedar. Vamos a agregar una malla, y digamos que agregamos
una malla estática aquí, y podemos hacer esta malla estática en hagamos esta pirámide. También agreguemos el
material para ello porque ¿por qué no?
Nosotros compilamos esto. Y si haces clic en
Agregar aquí arriba, encontrarás una gran cantidad de
componentes que puedes agregar. Tenemos elementos de IA, tenemos señales de audio, tenemos formas adicionales,
cámara, brazo de resorte, etcétera Todos ellos son muy útiles y están superando por su cuenta. Pero de lo que vamos a
hablar aquí es movimiento. Tenemos flotación, entierro, proyectiles
y movimiento giratorio Movimiento de proyectiles cuando
se aplica a un actor, vamos a ponerlo de
nuevo al nivel Si eres un
movimiento de proyectil, aquí. Aplicado. Entonces vamos
a la velocidad del proyecto, y digamos que la
velocidad del proyecto es de 10,000. Hagámoslo un número
menor para que
podamos no tengamos
problemas para verlo, y la velocidad máxima es como 2000, mismo punto que antes, aceleración y velocidad máxima. Y lo que podemos hacer es que podemos desactivar la gravedad sobre
esto si queremos para que no
tenga nunca tirón gravitacional ni nada, pero vamos a dejarlo
como está y presionar simular Estos eventos nos
van a dar muchos errores ya que no
hay personaje jugador,
pero te habrás dado cuenta, pero te habrás dado cuenta, lugar de quedarte en un solo lugar, se empujó hacia adelante. La razón por la que este ahorro es por el movimiento de proyectiles Esto es considerado
como un proyectil. Y si reducimos la escala de gravedad a cero,
compilamos, presionamos play. Esto simplemente
avanzará al infinito ya que no tiene ninguna
gravedad de proyecto aplicada a él, a menos que esto realmente golpee
algo y se destruya sí mismo como un proyectil
que necesitarías
agregar en la
sección de planos del proyectil, esto simplemente irá infinitamente Esto es bastante útil para
hacer juegos, obviamente. Donde quieres
tener proyectiles,
balas, tal vez algún tipo
de esfera u objetos, si estás haciendo dos juegos D, no dos D como A, donde quieras tener algunos
actores interactuables que
puedas engendrar y destruir
y necesitan moverse
en cierta dirección Puedes usar solo movimiento de
proyectil. Ahora, echemos un vistazo a
la otra opción de movimiento. Este es el movimiento giratorio, y lo que hace
el movimiento giratorio es, que es que gira cierta velocidad en una dirección
determinada. Entonces, si volvemos al nivel
y vamos a hacerlo más grande, hagámoslo mucho más grande. Y vamos a presionar play. Notarás que se está
moviendo en su espacio. Se puede utilizar esto como
decoración en el ambiente. Si quieres que algunos
objetos simplemente roten, o puedes usarlo como elemento
de juego. Depende de ti. Pero todo lo que hace es simplemente rotar al
actor en un solo lugar. Se usa más comúnmente
para camionetas, como monedas,
heltrops, kits met y cosas en los juegos donde tienes esta camioneta simplemente
girando en un solo Esto se puede usar con el
propósito de
no tener que agregar elementos
adicionales a su plano que no sea
solo un movimiento giratorio
para girarlos alrededor. Y eso es un ahorro de tiempo
para una cosa muy sencilla, que suele tardar mucho más porque se necesita llamar
a un evento que gira un objeto en un cierto radio
en una dirección, cada fotograma del juego. Simplemente puedes saltarte todo
eso y solo agregar esto. Entonces, si necesitas algo para solo rotar en un solo lugar,
usa movimiento giratorio. En cambio, no es necesario
usar matemáticas vectoriales complicadas. Y eso es prácticamente todo lo que necesitamos recordar
que Unreal es una herramienta muy,
muy cara
para el desarrollo de juegos Tiene de todo. Al igual que, tiene tantas cosas de las que ni siquiera hemos hablado, ni siquiera mencionado. Traté de cubrir
todo lo que pude, y lo voy a mantener al
mínimo, complejidad. Pero todos necesitan arrancar
en alguna parte para aprender este motor. Y para seguir adelante, es
necesario antes que nada, aprender estos conjuntos de habilidades muy básicas. Y lo que es más importante que necesites
entender cómo los actores, cómo el código, cómo todo en el mundo de los CD
interactúa entre sí Para que puedas diseñar tu camino hacia lo que realmente estás
tratando de crear. No empieces con ideas
demasiado complejas. Incluso las
cosas más simples en los juegos suelen ser un
proceso complicado de integrar, y algunas
cosas muy complicadas en realidad pueden ser simples. Es contraintuitivo
en la mayoría de los casos. Lo más difícil en este prototipo que hicimos fueron en realidad las interacciones
ligeras, el hecho de que tuviéramos que
hacerlas tantas
veces en tantas variaciones es solo un testamento de lo difíciles son
los sistemas de luz en todos los
juegos en general. Por lo general,
ni siquiera querrías tener tantas luces ya que
es experto en rendimiento Y en este nivel, lo más sencillo de hacer era realidad el
elemento de juego en sí, que era simplemente
meter las bolas en la puerta de entrada y
hacerlas explotar. En el momento en que agregas cualquier cantidad de complejidad a tu nivel, ya que tener múltiples luces interactúan con algún
otro actor, etcétera, el juego de repente se convierte en una tarea de
ingeniería donde intentas
asegurarte
de no usar muchos recursos, pero
al mismo tiempo, estás tratando de hacer
algo que se vea bien, sea divertido, y para todos los efectos
y propósitos, el juego de
tus sueños. Hay mucho más que cubrir. Como tal, estaremos lanzando cursos de
nivel
intermedio y experto en el futuro. Y también tendremos cursos
individuales para
algunas materias que requieren de sus cursos individuales para recorrerlas,
como material, relámpago por sí mismo, animación, que ni siquiera
hablamos en este curso, cómo crear animaciones, cómo aplicar animaciones, cómo hacer IA dentro de irreal Y por IA, me refiero no solo a la IA para el movimiento de los
personajes en el juego, sino también a la IA misma, como la programación
basada en notas generativas de IA Se pueden hacer muchas
cosas en irreal,
aparte de los juegos,
se puede hacer producción cinematográfica Puedes hacer simulaciones por
razones científicas si quieres Y Unreal sigue agregando más y más funciones
al motor Así que siempre hay nuevos
temas por explorar. Y hay una miríada de
oportunidades para que usted mismo mejore Ten en cuenta,
no tienes que saberlo
todo en irreal Necesitas entender lo irreal a un grado donde
puedas trabajar con ello. Pero a menos que seas un desarrollador de juegos
indie o estés tratando de estar
en el desarrollador de juegos, no
tienes que conocer
todos los aspectos del motor. Lo que
recomendaría para que
empieces a aprender lo básico. Y después de que confíes en tus conceptos básicos, empieza a
experimentar alrededor. Intenta crear algo interesante,
busca información. Si no entiendes
algo o necesitas una
guía adecuada para ello, siempre
estamos encantados de responder tus preguntas y no
dudes en consultar nuestros
otros cursos nuevos. Siempre habrá
más por aprender. Y en un momento, es posible
que tengas que decidir
si
vas a
especializarte
en cierto campo en el motor y trabajar equipo con otras personas
para desarrollar tu juego, o vas a profundizar tu juego y trabajar en él solo. No tocamos el uso activos de
marketplace
en este curso, ya que quiero usar la menor
interferencia externa posible. Porque cuando estás aprendiendo, es importante aprender lo básico antes de poder saltar y descargar material
maestro complicado que ni siquiera
entenderás aunque lo veas. De nuevo, siéntete libre de experimentar. No hay nada malo en eso, pero asegúrate de que tus
conceptos básicos sean sólidos. Mi nombre es Al Jun
Ab lazade y estoy feliz de que hayas
terminado mi curso, y estoy feliz de ayudar a los
nuevos desarrolladores de juegos y
quizás solo a los usuarios casuales de motores
irreales mejorar su conjunto de habilidades Y si tienes alguna duda, no dudes en preguntarlas
en la sección de comentarios, y estaría
más que feliz de ver tus propias creaciones y no hay
razón para ser tímido al respecto. Todo lo que compartes es
mejor que nada. Gracias por su tiempo, y espero verlos a
todos en mis nuevas conferencias. Pocos temas adicionales para cualquiera que esté interesado
en el desarrollo de juegos. Cuando estás iniciando el proceso de desarrollo del
juego, puede
parecer muy
complicado y puede parecer muy aterrador y
es complicado, pero no hay que
tenerle miedo. El proceso de desarrollo del juego es una interacción muy compleja de diferentes campos como la masa, la creatividad, la
representación artística de tu propio gusto. Habilidades de codificación combinadas
con animación, modelado , cualidades de
producción
como planificación , escritura
de
cuentos, hay muchas cosas en un solo juego, y honestamente, el juego
puede ser tan complejo y tan
difícil como quieras que sea o tan simple como
quieras que sea. No tienes que
hacer un juego difícil para aprender a hacer un juego. Es mejor empezar
con algo pequeño. Y la
razón principal por la que muchos desarrolladores de juegos están
teniendo muchos
problemas es la mala planificación, alcance demasiado amplio y el intento de hacer demasiado
a la vez Y en el proceso
de este proyecto, ya que están
desarrollando este juego, pierden la motivación,
pierden el tiempo, pierden dinero. Y todo esto es
parte del viaje. Están tratando de completar
para entrar en el objetivo final
de ser un desarrollador de juegos, tal vez lanzar un juego muy exitoso
y hacerse rico, o puede que solo estés
tratando de hacer un juego tú mismo o te gustaría jugar o alguna otra gente a la que te
gustaría mostrarle tu juego. Independientemente de tu razonamiento sobre lo que intentas hacer, cuando comiences a aprender
cualquier motor de juego, no limitado a
motor irreal específicamente, sino que aún aplica, comienza pequeño Elige una idea simple, elige un juego simple, que puedas terminar en
idealmente pocos meses, como máximo medio año, terminarlo. No tiene que ser bueno. No tiene que ser perfecto. Puedes tener tantos bichos
y errores como quieras. Solo asegúrate de que el juego
tenga un inicio, un medio y un final, y que todo esté más o menos
funcionando como debería. Y eso por sí solo es
un gran logro donde la mayoría de los desarrolladores de
juegos fallan. Lanzar un juego incluso uno malo es un logro cuando lo
estás haciendo solo. Es un tema diferente si
eres parte de la empresa y eres como una gran empresa
con cientos de trabajadores, estás tratando de hacer un juego.
Ese es un tema diferente. Pero cuando estás aprendiendo y dónde estás en
el desarrollador del juego, comenzando simplemente no saltes de
inmediato a los MMORPG o juegos
multijugador o mecánicas demasiado dónde estás en
el desarrollador del juego,
comenzando simplemente no saltes de
inmediato a los MMORPG o juegos
multijugador o mecánicas demasiado
complicadas para tu juego.
Simplemente empieza simple. Haz un juego de terror, haz que un Mio haga un juego de plataformas, lo cual puede ser complicado, pero solo mantenlo simple El proceso de desarrollo del juego puede ser uno de los
campos más duros en general, porque requiere
de muchas disciplinas que no suelen
interactuar entre sí. Es posible que necesites música muy jazzy para el juego que tengas en mente Pero quizá no tengas las
habilidades para producir esa música. Entonces tendrás que aprender a
hacer esa música además de cómo
hacer el juego tú mismo, o tal vez necesites comprar activos que no siempre son exactamente
lo que quieres ser, que es la opción más
razonable. En la mayoría de los casos, encuentra
a alguien
que pueda hacer esa música y esté dispuesto a
ayudarte en tu proyecto. No tienes que hacerlo solo. Siempre puedes conseguir que algunas
personas te ayuden. Te puede costar dinero a menos que sean tus amigos o familiares. Y hay que
recordar que si bien los juegos en sí son divertidos de
jugar y fáciles de
ver y ser como, Oh, ya sabes, el próximo gran juego, haré mejor copia del juego ya existente y lo haré mucho
mejor que ese. Voy a tomar las mismas
ideas, los mismos principios, hacerlos un poco más diferentes, ser más complejos,
y hacerlo más grande. Alguien ya antes que yo, ¿qué tan difícil puede ser? Ese es un bonito escollo en
el que saltar. Asume que es
fácil de hacer, pero en realidad, hay mucho trabajo puesto en el fondo de muchos
juegos que simplemente parecen simples. Puede echar un vistazo a juegos
más simples suelen ser los juegos de
disparos de la
implementación y los juegos de terror. Tienes un tipo que
dispara a otras personas, y tal vez estés pensando, bien, todo lo que necesito es un tipo
que se mueva, un arma, una bala. Y otras personas para golpear por el Y puedes
estar asumiendo que esto es todo lo que
necesitas. En cierto sentido, lo es. Pero cuando empieces a
implementar esto en tu juego mientras
intentas pulir tu juego, notarás que muchas
cosas no se sienten bien. Deberías haber ido, pero no se siente
tan impresionante. Miras el medio ambiente, es algo que
le falta. Esto se debe a que
muchos detalles en muchos juegos no son realmente evidentes a
primera vista. Por ejemplo, en el ejemplo anterior más corto que
acabo de mencionar, la pistola puede tener un
marco de impacto cuando le disparas. Puede ser el sonido.
Puede ser el VFX Puede ser el temblor de cámara que
obtienes cuando disparas el arma. El ambiente puede
necesitar más viento, tal vez algunos
colmillos adicionales o variación en él. IA puede parecer estúpida ya que solo te están horneando y disparando mientras estás
parado en su lugar, mientras que un juego
hecho por profesionales puede tener una IA que está
tratando de cubrirte activamente y dispararte desde una mejor posición o
huir de ti cuando
están bajos en HP o altos. Lamentablemente, hay muchos
juegos que ignoran muchos
aspectos del juego con
solo intentar copiar en juegos ya existentes. Pero no tienes que copiar
los géneros de juego ya existentes o incluso los elementos del juego. Siéntete libre de experimentar
y hacer lo que quieras. No hay nada
que te impida hacer una especie de juego de
tronos y todos
son actores siendo dulces, o piedras o rocas o donas
para todos como, Y solo puedes tomar este extraño concepto
y convertirlo en un juego. Puedes convertirlo en un tirador, puedes hacer un juego de
rol táctico, etcétera Estás mientras esta idea que acabo de mencionar puede ser
compleja de implementar, no
hay ninguna
razón real por la que no puedas, aparte de la
cantidad de esfuerzo y tiempo que vas
a poner en ella. Tienes plena libertad creativa para crear lo que quieras. No te quedes atascado en solo copiar una plantilla o el trabajo de otra
persona. Solo hazte creativo.
Hazte apasionado por lo que estás
tratando de hacer. No intentes copiar el trabajo de otra
persona. Esto no es una escuela. Esto no es un examen. No necesitas
aprobar cierta calificación, y no tienes forma de hacerlo simplemente copiando el trabajo de
otra persona directamente. Puedes intentar mejorar el trabajo de otra
persona
inspirándote inspirándote su trabajo y
mejorándolo hasta el punto que
ahora ya no es su
trabajo, es tu trabajo. Y la siguiente persona
que vaya a jugar un juego mirará tu trabajo y
será como, Esto es impresionante. Yo lo copiaré y ellos
copiarán los elementos de tu juego. Y
muy probablemente fallarán porque nada bits originales
en la mayoría de los casos. Para que sea simple y
breve, sé creativo. No tengas miedo de experimentar. No hay razón real para copiar
y pegar el trabajo de otras personas. Y no sobrepongas el alcance en tus proyectos y solo empieza
algo y lo termines. Y el primer
juego que termines hacer se sentirá muy diferente, y lo más
probable es que no sea bueno. No puede vender. Puede recibir malas críticas. No te lo tomes en serio. Llévala con
actitud profesional, mejora. Los críticos ems y lo usan como combustible para
mejorar aún más tu juego. No te rindas en
medio del camino. Este es un viaje muy largo en el que
estás entrando. Pero creo que merece la pena recorrer este camino y podemos recorrerlo juntos. Gracias por su tiempo. Espero verte en la próxima conferencia, y espero que aunque
no esté en la conferencia, veré tu
trabajo en el futuro. Como tal, siéntete libre compartir tus proyectos
si estás trabajando en alguna o solo una muestra en
las plataformas sociales. Y si tienes alguna duda,
no dudes en ponerte en contacto. Estoy más que feliz de ayudar. Como compañero desarrollador,
sería un honor
para mí ayudarlos a todos a
hacer algo genial. Consulta aquí y diviértete.
26. UE5 FC09 01: Hola, y bienvenidos de
nuevo a la conferencia. En esta conferencia, vamos a agregar elementos de interfaz de usuario a nuestros juegos. Entonces en este juego, actualmente, tenemos nuestras pelotas, tenemos nuestras porterías, pero realmente no
tenemos ningún punto ni HP
ni ningún otro
elemento de UI en la pantalla, y los vamos a agregar
con el sistema de widgets de Unreal Entonces, para hacer esto primero, vamos a crear una carpeta. Vamos a la carpeta de
llamadas de blueprint y creamos una carpeta de información
y llamemos widgets O simplemente un widget debería estar bien. Aquí, hacemos clic derecho y
aquí vamos a la interfaz. Interfaz de usuario y haga clic
en Widget Blueprint. Solo lo llamaré
UI Widget guión bajo, UI. Eso es todo. Obtendrá este menú Widget, que es su
menú de diseñador para el widget. También tienes una gráfica,
que es muy similar a blueprint con
ligeras diferencias Entonces, para entender
cómo funciona el widget, primero, necesitamos crear nuestros elementos de
interfaz de usuario en el widget. Y después de que se cree ese
widget, lo
adjuntaremos
a nuestro punto de vista. Entonces nuestra pantalla en
cierta posición. Ahora, decidamos
primero qué
vamos a tener un widget. Por ejemplo,
agreguemos una puntuación de
cuántos Vamos a ver los puntos que anotamos. Obtenemos un punto
por cada esfera, nos metemos en la puerta. Podemos hacer un
widget para calcular nuestra velocidad para mostrarnos a qué
velocidad estamos corriendo. Y honestamente,
podríamos hacer muchas más cosas. Tal vez también podamos poner en el
tiempo que transcurrió el allay, y en realidad podemos agregar final de
juego a este mini Ahora, antes que nada, agreguemos estas cosas aquí. Ahora, ahora que tenemos
esta interfaz de widget, echemos un vistazo a
los elementos del lado izquierdo. Puede notar que tenemos elementos que pueden ser útiles para nuestra interfaz de usuario. Entonces tenemos deslizadores, tenemos imágenes,
botones, etcétera. Como imagina esto siendo un
botón que usarías. Entonces digamos que puede tener un
texto en él llamado Start. Y cuando haces clic en esto, algo sucede, etcétera Por ahora, voy
a eliminar esto
Podrías simplemente poner en el
elemento que quieras y colocarlo donde quieras en la pantalla y codificar
en la lógica para ello. Pero el mejor uso de
los elementos de la interfaz de usuario es cuando
están en un determinado
panel o lienzo, si van
a tener algo así como una lista de un inventario o quieres que el widget sea movible de una parte
de la pantalla a otra. Por ejemplo, imagina algunas cajas de chat en juegos
multijugador. Y da clic en el cuadro de
chat y
muévalo para que eso sea posible, necesita tener un panel de widgets que solo puedas moverte. Y obviamente,
necesitarías codificar en cómo se
debe mover, pero no vamos a ir
tan profundo en el widget. El widget de uso más general que tenemos se llama Panel Canvas. Y el panel de Canvas aquí es
bastante pesado de rendimiento. Simplemente probablemente no sea la mejor manera de hacerlo si estás tratando de
optimizar tus UI Si tienes muchos elementos de interfaz de usuario en tu juego y todos ellos
están usando paneles Canvas, y los estás
actualizando constantemente todos, agregará una
cantidad sorprendente de costo de uso de tu CPU. E incluso puede comenzar a
quedar rezagado en tu PC, etcétera, y
tal vez te preguntes por qué tu juego se está retrasando cuando has optimizado Lo más probable es que
se haya metido aquí metiendo demasiadas UI con
paneles de lona Nuevamente, el
costo de rendimiento no es muy alto, pero aún así puede llegar a ser muy alto dependiendo de
lo complejo que lo hagas. Entonces por ahora, sólo
vamos a usar el panel Canvas. Y como pueden ver, tenemos este panel de Canvas, pero no
tenemos nada dentro. Por ahora, voy a redimensionarlo. Volvamos a nuestro nivel. Entonces imaginemos lo
que vamos a necesitar. Tenemos a nuestro personaje aquí, y tenemos a nuestro personaje,
y por cierto, si presionas F ocho, recuperarás tu mouse mientras este personaje aún está
en medio del juego s. Y si haces clic,
puedes mover cosas por ahí. Entonces es simular es una
especie de mezcla entre
simular y simplemente jugar. Simplemente presiona F ocho después de
iniciar la simulación. Para que puedas probar cosas. Y de esta manera, las referencias al personaje jugador no se
romperán porque todavía existe. Es solo que no lo estamos
controlando por el momento. Entonces ahora tenemos nuestro personaje, y tuvimos una muy tenemos
esta vista de cámara, ¿verdad? Y yo sólo voy
a presionar Fight. Sólo para que veas mi ratón. Digamos que queremos un texto en parte superior derecha que diga
cuántas puntuaciones obtuvimos, y digamos en la
parte inferior derecha aquí, queremos tener un valor que demuestre lo rápido que
nos estamos moviendo. En el centro de la
parte superior de la pantalla, también
podrías en un tiempo transcurrido, solo por
el bien de ello Así te puedo mostrar cómo hacer widgets basados en la
segunda vez. Ahora bien, esto deberíamos ahora tener
una idea de lo que necesitamos. Así que vamos a crear nuestro widget. Primero, agreguemos un bloque de texto aquí como marcador de posición por ahora Y vamos a ver. Todo lo que necesitaremos son
realmente cuadros de texto, pero solo voy
a agregar una imagen
también solo para poder
mostrar cómo usarla. También podríamos hacer una barra de
progreso. Sí, hagamos una mezcla de todos ellos, aunque sea innecesario
para este mini juego que tenemos, solo para que pueda exhibir. Y llamemos a este bloque de texto. En la parte superior derecha, vamos
a tener nuestro puntaje, ¿verdad? Entonces, vamos a anotar. Esto es solo un
marcador de posición por ahora. Y digamos que
tenemos una barra de progreso y en vez de
ponerla aquí. Digamos que si llegamos a
medida que nos metemos en la puntuación, obtendremos una barra de progreso. Y digamos que cuando
lleguemos a la puntuación de diez, esta barra de progreso se
llenará y
esencialmente ganaremos el juego o
haremos la misión o lo que sea. Y esta imagen solo puede ser
un elemento UI que podamos usar, y pongámoslo aquí. Simplemente
lo vamos a tener en cierto color o con cierta imagen
con algunos números en él. Entonces necesitaremos un texto. Y si lo arrastro y lo
suelto aquí, notarán
que
no se apegó a la imagen porque mientras los
Lienzos pueden tener hijos, esta imagen en sí
no puede tener Así que necesitaría
colocarlo perfectamente en la parte superior, idealmente. O necesitaría
pero puede que no, dependiendo del
tamaño de la pantalla, esto puede llegar a la posición. Entonces si pongo un texto justo
aquí como marcador de posición, sólo va a cambiar. 1 segundo Oh, sí, cambiemos el color del texto
para que lo veas. Si muevo mi pantalla, el texto puede salir de
posición con bastante facilidad, especialmente si no pongo el panel
adecuado en un panel adecuado. Entonces lo que puedo hacer, puedo
crear una caja o una superposición. Entonces puedo agregar superposición aquí. Y dentro de esta superposición, puedo agregar esta imagen, y puedo agregar este cuadro de texto. Ahora bien, esta superposición está actuando como una frontera para nuestro
libro de texto y nuestra imagen, y hagamos nuestra imagen más grande Vamos a meterlo en el
centro. Y vamos a ver. Podrán notar algo
interesante aquí. No puedo redimensionarlo
directamente fácilmente porque es muy pequeño Así que vamos en cambio lo que podemos hacer, podemos dar click aquí en
este botón, llenar. Si solo
lo centras, esta imagen, imagen
vacía que hemos agregado
no tiene ninguna imagen real dentro de ella, así que no hay referencia
para que obtenga. Entonces, lo que puedes hacer, puedes simplemente telón de fondo esto y agrandarlo. Este bloque de texto puede
estar en el medio. Podríamos agrandarlo, pero realidad
no hace
mucho por el texto, y lo colocamos directamente de centro
a centro alinearlo. Podríamos editar el relleno, etcétera, para hacerlo. Por ejemplo, si tenemos esto así y agregamos
un padding de 50, se moverá 500
sería algo así, pero no hay
razón para hacerlo. Si solo quieres centrarlo, solo
puedes
centrarlo haciendo esto. Y ahora, esto siempre
permanecerá en el centro de
este widget de superposición, y solo puedes poner este widget de
superposición donde queramos. Y este
widget de superposición que vamos a usar se puede seleccionar y poner exactamente donde
queremos que esté. Ahora, me gusta que mis posiciones
sean valores sólidos, pongámoslo así. Ahora, nuestro bloque de texto
siempre estará aquí
independientemente del tamaño, etcétera, la pantalla o el dispositivo
con
el que estés jugando, y que está bien Panel de lienzo en sí,
como pueden ver, es que ponemos estos widgets
en fuera de él, y cometí un error de
hacer clic en Debería clic en la superposición en
lugar de solo imagen, y vamos a moverlos adentro. Puedes verificar tu
tamaño de pantalla específicamente si quieres aquí si estás intentando que
coincida con un tamaño de pantalla específico, o simplemente puedes hacer clic en
el ajuste personalizado y
poner, por ejemplo, digamos, 180,
54 como 180, ¿verdad? Entonces este es un
tamaño de pantalla al que estoy apuntando. Obviamente, sólo puedo
hacer clic en Ajustar pantalla, que sería mi pantalla. Y aquí en la parte inferior, se
nos muestra nuestra escala DPI, que puedes
configurar si quieres. Pero no es necesario, así que vamos a saltarnos esa parte y centrarnos en
lo que estamos haciendo aquí. Entonces, volvamos a
lo que estamos haciendo. Tenemos nuestro puntaje.
Tenemos nuestra barra de progreso. Podemos agregar tiempo
después de esto también, hagamos mis disculpas ¿Por qué lo estoy arrastrando desde
aquí? Lo necesito de aquí. Bien, así que vamos a
tiempo transcurrido aquí o tal vez para mantenerlo
limpio, vamos a agregarlo No, no, no, solo
hagámoslo en medio de la pantalla. Ahora, tenemos Este
va a ser nuestro tiempo, así que por ahora sólo voy a
cambiar el nombre, así que recuerdo por qué lo
puse ahí. Esto no va a ser
Podrías poner en el contenido para tus contenedores aquí desde aquí y puedes
modificarlos, su posición. Su color, su sombra, si necesitan alguna imagen, aquí
hay un montón de cosas que puedes echar un vistazo. Se pueden cambiar los fones. Tendrías que descargar teléfonos si quieres
tus teléfonos personalizados. Podrías usar
tipografía, etcétera, como los tamaños de letra itálica, todo lo que quieras
cambiar, puedes hacerlo aquí Y siempre, puedes simplemente
llamarlo click en contenido de tamaño. En este caso, el tamaño del widget
coincidirá con el contenido, lo cual es importante si tienes un widget que tenga una mecánica como click en el elemento en el elemento widget
del widget. Digamos que tienes un ícono. Y si quieres hacer
clic en el icono y quieres, digamos, arrastrarlo en el inventario o simplemente activarlo o lo que sea, tal vez
quieras simplemente dimensionarlo
al contenido, el widget. De esa manera, el widget es exactamente del
mismo tamaño que lo que ves. Obviamente podrías
fingirlo haciendo una imagen transparente en el
fondo la daba más grande, pero eso es solo por qué
harías esa tontería, ¿verdad? Así que solo ten en cuenta, esta es una buena manera de
asegurarte de que el tamaño de
tu interfaz de usuario coincida con lo que es
el contenido. Entonces esta vez, si agrego
letras extra y por centro, ahora mi widget es más grande. Lo que significa que solo puedo presionar en
la parte X de este widget, y seguirá
activando el evento que vamos
a crear para que sea función o lo que sea. Ahora, volvamos. Ahora, tenemos nuestro widget, que en este momento no es realmente
funcional. Entonces hagámoslo. En primer lugar, asegurémonos hacer algo con
esta etiqueta de imagen aquí. Tenemos este widget, que es sólo un pincel
de color blanco. No tenemos una
imagen puesta para ello. Así que vamos a seleccionar una
imagen o textura aleatoria que tengamos. No tengo ningún
widget subido, pero honestamente, podría
hacerlo con cualquier textura. Entonces vamos a ver. Solo
usemos widget irreal por ahora El solo uso de re logo puede
no ser la mejor opción. Hagámoslo, sí. Y podemos mover esto con aquí. Ahora que lo
pienso, puede ser una mala idea usar este logo porque está haciendo
difícil ver la textura. Encontremos que
también podrías usar materiales, pero esto no va a ser funcional. Tendrías que
crear un material de interfaz de usuario, que hablaremos más adelante. Así que vamos solo por ahora,
solo escoja este color. Simplemente elige una textura aleatoria. Y sí, hagámoslo. Textura extraña. Ni siquiera estoy seguro para qué sirve. Vamos a usar esto. Y aquí
tenemos esta barra de progreso. La forma en que funciona la barra de progreso es similar a la que esperas, pero necesitas poner los
valores que necesita para, ya
sabes, completar el progreso. En primer lugar, tenemos
su color por defecto, y tenemos color de relleno. Y lo que hay
que hacer para lograrlo. Bien, vamos por ahora quitemos esto. Vigila
esta barra de progreso. Tenemos el avance del 0%. Si aumento esto,
verás que está aumentando
en la pantalla aquí. Pero puedes notar
mientras dice por ciento, es el valor de cero, uno, siendo cero cero, siendo
uno 100%. Por lo que no se puede simplemente
ingresar un valor del 50%. Tendrías que
convertir tu valor a un porcentaje y convertir ese porcentaje
a un valor 010-1, y poner el valor aquí de esa manera Te mostraré cómo
vincular valores más adelante. Tenemos nuestras opciones, cómo queremos que se sienta nuestro
progreso. Entonces digamos llenar desde el centro será
algo así. Completo desde horizontal. Este puede ser un buen sistema no solo
para las personas
para el progreso, sino también la cantidad de ruido
que estás haciendo si
quieres Esto es desde la vertical
desde el tope inferior. Obviamente, puedes cambiar la
forma de esta barra de progreso, así que solo podrías
hacer algo como esto o tope inferior, obviamente. Vamos a mantenerlo
de izquierda a derecha, y vamos a hacerlo
como era antes. Hay
cosas adicionales que puedes hacer, pero no nos vamos a
molestar también con ellas. Podríamos agregar frontera. Entonces, ¿cuánto de la
barra de progreso se puede llenar, etcétera? Nosotros no vamos a
preocuparnos por ellos. No me gusta el color
azul para esto. Hagámoslo rojo. Por ahora, quizá
debería hacerlo verde, pero mantengámoslo así. Y aquí tenemos nuestra
puntuación y nuestro tiempo, y tenemos nuestro
bloque de texto para la velocidad Por lo que tendremos que
crear alguna
funcionalidad adicional para que todos ellos se
actualicen en el juego. Los widgets se pueden
utilizar como elementos de menú,
pueden ser como elementos de la interfaz de usuario. Su propósito es
permitirte activar algo
algún código que hayas precodificado o simplemente para
mantenerme actualizado y disponible para ti como
fuente de información, ¿verdad Imagina un juego sencillo como
la cantidad de HP que tienes, cuántas vidas te quedan,
como tus
artículos de inventario, inicio, menú de pausa, menú de
configuración, todo lo que sea interactable o simplemente dándote información como elemento de la interfaz Es un widget en irreal. Entonces tenemos esto, pero no tenemos ninguna lógica
asociada a ellos. El motivo es porque
no los creamos. Tendremos que crear
nuestros elementos de interfaz de usuario. Lo siento, lógica de interfaz de usuario. En primer lugar, vamos a eliminar este eventi Y tenemos aquí evento pre
constructo y evento constructo. Es similar al
evento comenzar a jugar, pero la diferencia es que
las UI necesitan ser construidas
para funcionar Entonces puedes preguntar cuando
me construya, ¿no
sucede automáticamente cuando empiezo el juego? No. Entonces responder a eso es no. Es necesita ser generado y
unido a la pantalla,
esencialmente, a nuestra
ventana gráfica a través Y la forma más común de hacerlo es hacerlo en
el personaje jugador. Entonces, si vamos a nuestro
contenido y vamos a nuestro plano en tercera persona,
este es nuestro personaje Solo para asegurarme de que estoy
viendo el bleprint correcto, solo
voy a escalarlo, presione play. Sí, soy gigantesco A lo mejor este es el tamaño adecuado. Entonces estamos viendo
el plano correcto. Aquí, necesitaríamos
agregar un evento para crear nuestro widget de UI y adjuntarlo a nuestro viewpoard que
haremos en el siguiente video
27. UE5 FC09 02: Ahora, vamos a crear nuestro widget. Vamos a crearlo aquí. Primero, encontramos un nodo llamado
create widget y agregamos a. Lo unimos juntos. Y aquí seleccionamos el
Widegit que creamos. Entonces lo llamamos
subrayamos UI, no
el mejor nombre para ello, pero vamos a querer agregar
esto para que el evento comience a jugar Así que vamos a cortarlo.
Tengo evento empezar a jugar, y tenemos algunas
cosas pasando aquí, lo cual está completamente bien. Podemos simplemente agregarlo como solo para asegurarnos de que no lo
estropeamos. Podemos agregar un nodo secuenciador. Podemos ponerlo aquí, esto, y aquí podemos agregar nuestra lógica de widget
create UI. Entonces el juego comienza el juego agrega entradas predeterminadas
a nuestro personaje jugador, que es solo tener en cuenta, esto es creado por Unreal, y el contexto de mapeo y sistema de entrada
mejorado
van a ser parte
del curso intermedio en el futuro Como hay muchos detalles, no
quiero complicar demasiado
este curso. Solo debes saber que esto
aquí es responsable asegurarte de que tus entradas estén registradas cuando
estés jugando al juego. Así que saltando, moviéndose,
etcétera, todo. Toman su subsistema local de
entradas mejoradas y le agregan el contexto de mapeo para que pueda trabajar con él. Entonces lo que hacemos aquí, el juego comienza jugador
se crea disculpas Y la primera secuencia
hace entrada y la segunda secuencia
hace la ventana gráfica Y esto sucede instantáneamente, más
o menos, por lo que
notarás diferencia. Entonces, por ahora, compilemos, guardemos y pulsemos play. Nuestra interfaz de usuario está
en realidad en la pantalla. Pero puedes notar que está un poco
en una posición extraña. Y esto se debe a que
necesitamos ajustar nuestro diseñador de UI así que antes que nada, asegurémonos de
anclar nuestros elementos. Entonces, lo que hace el
anclaje, el anclaje
asegura que tus elementos permanezcan en cierta
parte de la pantalla, y puedes hacerlo dando click aquí y dando clic arriba a la derecha. O simplemente puede hacer clic
aquí y hacer clic aquí. Por lo que este puntaje ahora siempre está
anclado a este punto. Podría moverlo,
pero no tiene sentido. Por lo que esta puntuación ahora siempre está
anclada a este punto. Sólo hagámoslo con nuestro y quiero que
sea de tamaño uniforme. Simplemente voy a dimensionarlo contenido, hacer que sea más fácil de administrar. Así que los tamaños aquí ya no
importan ya que es el tamaño del contenido, y vamos a
hacerlo alrededor de 100 en Z, lo siento, X, y digamos 100 no lo quiero todo
el camino hacia arriba en la pantalla. Esto tiene el mismo problema. Tenemos que anclarlo
hasta cierto punto. Entonces haz clic en Anclar, haz
clic en la parte superior derecha y ahora está anclado en
la parte superior derecha Quizás te preguntes cuál es
la diferencia entre anclar algo
y no anclarlo. La diferencia es si el tamaño
de la pantalla es diferente, emergencia es una pantalla móvil. ¿Dónde se debe
colocar este widget en relación con
el tamaño de su pantalla? Entonces, si tu esquina de pantalla
es esta línea correcta de aquí, una pantalla móvil tendría una diferente vamos. Digamos, tamaño de iPhone móvil, en muchos de no en el momento en que lo
cambié a tamaño de pantalla
móvil, este widget de interfaz de usuario lo he
abandonado de la ventana gráfica Entonces, si estuviera jugando esto en un móvil para ser específico
saco el iPhone five S, este widget no se
vería porque de todos modos
no lo anclé. Pero este widget aquí
se movió junto con la pantalla porque está anclada la parte superior derecha de la pantalla Ese es el punto de anclar. Anclas tus widgets a una parte específica
de tu pantalla. Entonces cuando tu pantalla está
en diferentes tamaños, supuesto diferentes dispositivos, siempre
permanece en una posición relativa a
esa parte de la pantalla Entonces, si quieres que algo
esté siempre en la parte superior derecha,
anclalo a la parte superior derecha. Si quieres que algo esté siempre
en el centro de la pantalla,
anclarlo al centro. Tienes opciones aquí. Entonces solo hazlo. Ahora,
tomemos esto, por
ejemplo, y lo que
vamos a hacer,
antes que nada, vamos a no me
gusta el tamaño de pantalla, obviamente, así que
vamos a restaurar. Y lo que vamos a hacer
es que te des cuenta que
realmente no puedo anclar este texto o esta imagen porque están
dentro del panel de superposición. Entonces este panel de superposición es el
que necesita ser anclado, no los widgets dentro Entonces lo haré abajo a la derecha. Y obviamente, cuando muevo
mi overlay, también
mueve mi widget. Hagámoslo -100 y menos 150. En realidad, supongo que
200 serán mejores. Ahora, también vamos a trasladar
esto al mismo lugar, así podríamos
hacerlo 100. A lo mejor no. Por el contenido de tamaño,
será muy pequeño porque no
tiene su tamaño real. Hagámoslo por 100 y cero. No 100. Y en cuanto a Y, hagámoslo 200. En realidad, vamos a hacer 400. Y el tiempo, queremos que esté
anclado al centro, arriba, o podrías
hacerlo así Pero lo quiero a la
mitad de la parte superior, no toda la parte superior. Entonces voy a hacerlo así. Entonces también, esto da
una buena indicación de dónde está el centro
del nivel, así que sólo puedo ponerlo aquí. Podría posicionarme en cero, cero, pero eso va a estar en el
ancla superior, que no es ideal. Entonces vamos a moverlo
así, que sea 100. Vamos a
dimensionar el contenido, y lo vamos a poner
-50 -25 mejor Bien, ahora están
bien colocados. Ahora compilamos, guardamos, presionamos play y nuestros
widgets están en su lugar. Pero puedes notar que los
widgets no están haciendo nada en este momento
porque aún
no les agregamos ninguna lógica. Hicimos todo lo que necesitamos aquí
en el segmento de interfaz de usuario del widget, así que vamos a
guardarlo por ahora y salir. Primero, necesitamos entender
cómo va a funcionar esto. Estos dos esencialmente están
tratando de obtener un valor similar e información
similar. Esta es una
barra de progreso fuera del total. Entonces, ¿qué te gusta ?
Digamos que necesitas diez puntos. Por lo que este será un valor
porcentual de tu puntaje actual
y un valor de diez. Entonces digamos que tienes
cuatro anotaciones, cuatro puntos. Esto debería ser del 40%. Por lo que estos dos requieren el mismo valor
para hacer sus cálculos. Este requiere velocidad. Entonces nuestra velocidad actual, que obtendremos en un segundo. Y éste es justo el tiempo
transcurrido desde que comenzó el juego. Entonces este es un momento Delta. Esto es velocidad, y
estos dos solo
buscan un valor que puedan
usar para mostrar tus puntuaciones. Ahora bien, la forma en que hicimos
nuestro marcador fue pateando una pelota
en esta puerta Lo que podemos hacer es algo
bastante sencillo, de verdad. Podríamos lanzar a esta interfaz de usuario. Esta interfaz de usuario siempre está disponible en el nivel porque forma parte de
tu UI principal, ¿verdad? Hay otras formas de
hacerlo para que quede muy claro. Podrías hacerlo dentro
del propio widget, podrías agregar la lógica aquí. Pero la forma más común de anotar puntos y
calcular es haciendo casting a la UI
o haciéndolo desde el jugador, ya que ya tenemos una referencia a esto dentro del personaje
jugador, que es a lo que
vamos a hacer cuando vamos a agregar nuestra interfaz a nuestro personaje
jugador. Entonces agreguemos una interfaz. Y creo que
lo llamamos Tutorial Interfaz BP. Oh, no, no, no. Mis disculpas. Olvidé el nombre de la
interfaz que estamos usando, así que asegurémonos de
seleccionar la correcta. Hay un montón de interfaces
irreales. Vamos a revisar. Si te
olvidaste como yo, ¿cuál era el nombre
del plano Al igual que acaba de recibir el plano y comprueba el nombre
de la interfaz Bien, entonces marca de gol BPI. Bien. Vayamos aquí
y agreguemos nuestra interfaz. Gol BPI anota, compila, guarda, y aquí tenemos
nuestro marcador de gol Entonces lo que vamos a
hacer es cuando
ocurra el marcador de gol , evento llamado marcador. Vamos a obtener esta
referencia del widget aquí. Entonces para que eso lo haga, solo
asegurémonos de tener
este valor siempre a mano. Nosotros lo llamamos widget. Subrayar la interfaz de usuario. Y lo pondremos
aquí. Y obviamente, nosotros también lo configuramos. Entonces esto probablemente se
haga a la inversa. Vamos a configurarlo y
después de establecerlo, obtener este valor y
ponerlo de esta manera. Obviamente, si no estás
seguro de tu código, es mejor idea probarlo. Volvamos. Entonces ahora tenemos una referencia de widget
que podemos usar, ¿verdad? Por lo tanto, la puntuación de llamada del evento. Cuando esto sucede, queremos que la puntuación cambie
en el widget de interfaz de usuario. Entonces lo que vamos a hacer,
vamos a volver a nuestra interfaz de usuario y pasar a nuestro modo de edición
gráfica. Eliminemos estos dos. Por ahora, no
tenemos ningún evento
planeado para GameStar Y aquí, vamos
a crear una variable, y vamos
a llamarla score. Y vamos a
convertirlo en valor flotante o valor entero
dependiendo de lo que necesitemos, pero vamos a hacer
float en este caso. Simplemente mantenlo simple.
Y lo que va a pasar cuando ocurra este evento evento llamado
score sucede, obtendremos nuestro valor,
el valor de puntaje y más uno de él. Entonces vamos a conseguir este puntaje y
ponerlo en más uno. También tenemos que
obviamente conseguirle puntaje. Así que solo podrías hacer esto. No creo ahí, hay un plus directamente. Oh, no, ¿nosotros? Ya que sólo
vamos a hacer más
uno, usted puede hacer esto. Entonces, qué hace
esto en cambio, esto es por cierto, me tomó mucho
tiempo encontrarme con ello. No sé por qué eso
me facilitó tanto la vida. Entonces si solo más uno y
pones establece esto aquí, ¿verdad? Esto en la parte superior, tomando este valor, agregando un plus uno al valor
existente y
configurándolo también se puede
hacer por este nodo. Si todo lo que estás haciendo es agregar un plus uno a un valor flotante, solo haz un seguimiento de algo o lo que sea, solo
puedes usar esto. Esto agrega uno
al valor de puntaje que ya tenemos en el widget y lo
establece en lo que sea. Entonces si es uno, se convierte en dos, si son dos, se convierte en
tres, etcétera Entonces vamos a saltarnos
esta parte y en su lugar, vamos a establecer este
valor directamente más uno. Y obviamente,
tendremos que
probarlo después de tener
nuestra funcionalidad. Ahora, volviendo a nuestro diseñador, voy a mostrar cómo vincular
valores a los no valores,
mis disculpas, variables
a la lógica que creaste
28. UE5 FC09 03: Bienvenida de nuevo.
Continuando por donde nos quedamos. Vamos solo por ahora, llevemos aquí el texto de la partitura. Y vincula este texto
a nuestro valor flotante. Entonces, la forma en
que funciona el enlace es que vincula este texto aquí, es
decir, en lugar de
ingresar manualmente este
texto aquí como tal, lo que hacemos en cambio, solo
lo vamos a reemplazar con una variable o
algún otro resultado Entonces en el momento en que hago clic en Enlazar, obtenemos una función
aquí llamada get text. Y puedes notar que aquí
no hay nada en el gráfico de
eventos, pero tenemos esta función. Esta función está destinada
a funcionar solo para este específico con texto de partitura
específica aquí. Y se llama Obtener
texto por defecto. Va a resultar confuso si tenemos múltiples textos get, así que vamos a
reemplazar el nombre por
algo así como la puntuación de subrayado Bueno, aquí no necesito
subrayado. Pero vamos a conseguir puntaje, y necesitamos un valor de retorno
en la forma del texto. Aquí tenemos nuestro puntaje, y lo que vamos a hacer es que
vamos a conseguir nuestro puntaje. Y este valor de puntuación se convierte
automáticamente en
un texto y se pone en la interfaz de usuario. Entonces nuestro valor de puntaje predeterminado
es cero, y comencemos. Ahora tenemos un cero en la
parte superior de nuestra pantalla. Así que asegurémonos de que de
alguna manera pueda meter una pelota
en la puerta. Y cambió a uno. Nuestra marcha se movió, y ahora son dos Y ahora podemos
volver a hacerlo y esta vez,
van a ser tres. Entonces esta interfaz de usuario superior ahora
en realidad muestra nuestra puntuación, pero es solo un número. Tal vez quieras, solo
voy a agregar otro widget que agregue un texto que
diga, Oh, puntuación. Entonces es como anotar dos puntos y número que viene después de él. Ese es un error común. Como hacen las personas que no conocen ciertos nodos en
los widgets. Lo que hay que hacer
en su lugar es anexar. Mis disculpas. Ese es éste. Sí. Así que tenemos que añadir, pero tenemos que asegurarnos de que esta
es la función correcta Entonces aquí está el texto. Lo que necesitamos
agregar es una cadena. Así que anexar cadena. Y ponemos esto A a B. Lo sentimos, ponemos este valor en B, y lo ponemos aquí en
nuestro valor de retorno. Y aquí a A,
anotamos puntaje y ya está. Lo que esto hace, esto cambia el valor del texto
en valor de cadena, lo
pone en B, y a partir de aquí, ponemos este valor y lo combinamos con una
puntuación de texto la cadena aquí, escribimos, y
devuelve la salida como un texto después de
convertirla de la cadena Voy a explicar la razón por la que
estamos haciendo esto después de probarlo. Entonces ahora tenemos asustar
subrayado cero. Y si justo entonces
conseguimos anotar uno. Podemos hacerlo tantas
veces como queramos, y siempre
funcionará como debería. Ahora, puede notar que
recibimos un mensaje de texto. Tomamos ese texto, lo
convertimos en cadena, lo
convertimos de nuevo en texto. La razón por la que
hicimos esto es a menos que
primero cambie esto a texto, esto sucederá. Si lo cambias a string, a string, y lo
ingresamos directamente aquí así. Compile, presione play. Notarás que
ahora tenemos cero punto cero. El valor flotante por defecto, tiene un
punto cero cero adicional después de él, que se elimina cuando
lo hacemos vía conversión a texto. Como no necesitaba el valor
punto cero, solo
usé Lexis También podríamos, por supuesto, tratar de hacer esto con valores
enteros. Por ejemplo, si
quieres hacer,
digamos, una variable de
valor entero, vamos a tener una
variable score, ¿verdad? Así que si tomamos esto y
vamos a duplicar esto eliminar más nuevo y hacer un valor entero y
poner en el valor entero. Y para fines de prueba, voy a hacer el valor
por defecto en esto. Una vez más, obtener pre default. Eso está bien. Cambiamos este valor por
digamos uno, compilar. Y si tuviera que sacarle
una cuerda, como Cp, presione play,
voy a conseguir una. Que tal vez lo que deberíamos
usar aquí con toda honestidad, pero quiero que
recuerdes la diferencia. Los valores flotantes tienen sus como hay números
adicionales que puedes tener después de cero, como cero punto algo. Los valores enteros son números
enteros. No puedes simplemente
tenerlos como cero punto cinco. O un punto cinco o dos
puntos dos o lo que sea. Entonces en este caso, ya que estamos usando un sistema basado en
puntaje, podemos simplemente usar un
valor entero en lugar de float, y podemos saltarnos este punto. Pero si tu juego requiere un valor que hay que tener
poder dividirlo, multiplicarlo, etcétera Entonces, si vas
a hacer algún tipo de operaciones
masivas sobre
él, por ejemplo, necesitas un valor de cero punto dos o cinco punto siete
o algo así, no
puedes usar
entero como un todo. Tendrías que usar flotador. Y si usas flotador, necesitas asegurarte de hacerlo de esta manera, o siempre puedes verificar
estos valores, ¿verdad? Entonces volveré a
mostrar una manera de usar float si
quieres si
necesitas usar float, pero no quieres
mostrar duramente los valores enteros Lo que puedes hacer es
hacerlo por lo cual reducimos
los dígitos fractales Presionamos play, y ahora
no vemos nuestros dígitos fractales, pero sigue siendo un valor flotante Entonces seguimos usando un flotador, pero ya no tenemos un
punto cero o 20 o lo que sea. Y puedes usar este
mismo valor para hacer otras operaciones y aplicar
el mismo valor en
otro lugar sin estropear estética visual de
tu UI donde no
quieres que se vean cero punto cero, etcétera, fractales. Entonces vamos a eliminar este entero porque
ya no lo necesitamos. Lo voy a mantener como flotador. No hay razón real para no y obviamente lo
convertimos a flotar, etcétera, pero aún así podríamos ponerlo
directamente también,
y aún así estaría bien. Entonces no hay punto
uno, ni punto nada. Y podemos simplemente usarlo tal como es, y poner en uno. Y obviamente, queremos que
esto sea así. Y mantengámonos un poco
organizados. Es una línea simple. Juguemos, pruébelo. Todo está bien. Nuestra función funciona. Oh, me equivoqué. Solo con fines de prueba, probablemente
debería haber
hecho las puertas más grandes. Bien, sí,
funciona. Ahora bien, esta es nuestra lógica de widget
para este widget, ya no
vemos aquí, esta, la partitura. Podrán notar que es
muy pequeño en este momento porque me aseguré de que
sea de tamaño de contenido, cual me gusta hacer a
menos que no tenga que hacerlo, pero aún así no importa
realmente en nuestro caso, así que solo voy
a guardarlo lexis Más fácil para mí. A continuación, queremos
gestionar éste. Progreso, barra de progreso. No estoy seguro de por qué lo
moví. Y esta barra de progreso, usaremos el mismo valor. Por valor, me refiero al
valor de susto, el flotador creado. Pero aquí necesitamos vincular no el valor directamente porque como expliqué en
el video anterior, lo
estamos haciendo por progreso, y nuestro avance es 0-1 Entonces si vamos y vinculamos
este valor para anotar, como lo hice ahora mismo y
compilamos y presionamos play. Actualmente está en cero, y en el momento en que
anote algún punto, se llenará hasta
el completo completo porque nuestro valor de uno significa 100%. Así que tenemos que asegurarnos de
crear un nuevo enlace para esto. Y esta nueva encuadernación
conseguirá nuestra puntuación. Y digamos vamos a crear
otro valor de hilo dental y llamarlo digamos marcar gol Entonces este es el marcador que estamos tratando de alcanzar para terminar el juego. Por lo general, no
lo harías directamente en el widget. Obtendrías este valor
desde el modo juego o en algún
otro lugar donde tu lógica esté dictando cuántos
puntos necesitas, pero no vamos a aplicar múltiples niveles con
múltiples lógicas, así que solo voy a
mantenerlo muy sencillo Necesitamos diez puntos para este juego se considere
completo, como nivel terminado. Y como tal, lo que
vamos a hacer, lo vamos a
compilar y poner el valor por defecto de gol de
marcador a diez. Ahora, necesitamos obtener un
porcentaje de este valor. Podrías intentar
buscar como porcentaje, pero esto es sólo un texto. Se convierte a texto. Entonces lo que vamos a hacer
en cambio es que vamos a tomar nuestro valor y vamos
a dividirlo por puntuación. Lo siento, multiplícalo por
puntuación y divídalo por 100. Entonces lo multiplicamos por puntaje, 100. Lo sentimos, multiplicamos por puntaje, y lo dividimos por 100. Esto debería darnos el valor. A menos que recordara mal
cómo funciona el porcentaje, esto debería darnos
un valor que necesitamos Vamos a probarlo. Ahora, cada vez que ponga
otra esfera, obtendré una
barra más de progreso. Porque cada vez que
obtengo una puntuación, ahora, me
da el 10% de la barra, que es exactamente lo que queríamos. Y si fuera bueno en este juego, quizá lo haría más fácil. En fin, así que ahora tenemos nuestro
segundo widget funcionando. Y lo único que realmente
hicimos, acabamos de agregar este cálculo de
porcentaje de flotación, y agregamos una variable
que es nuestro objetivo final. Podríamos obtener esto
del modo de juego o instancia de
juego o cualquier
actor que estés haciendo que
necesite que algo suceda o widget para reaccionar
para ser más específico. Pero eso no es necesario para nuestro minijuego así que
vamos a dejar un set A continuación, echemos un vistazo aquí. Tenemos tiempo. Si tu juego tiene elementos
relacionados con el tiempo, digamos que tienes
un juego de carreras, tienes un
necesitas algún tipo de mecanismo de interfaz de usuario de
tictac de tiempo, así es como lo vamos a
lograr en el siguiente video
29. UE5 FC09 04: Bienvenido de nuevo. En este video, vamos a convertir este marcador de posición de widget que
tenemos aquí en un temporizador real
que solo se activa. Ahora bien, el problema con
esto haciendo esto es que el temporizador es algo
que sucede en cada tick. Así que idealmente, no
querrías tener muchas acciones de temporizador, porque si vas al
gráfico de eventos y obtenemos nuestro tick, Esto necesita desencadenarse esencialmente cada segundo y actualizar nuestro valor para el temporizador, que es idealmente no es
algo que te gustaría. Y si estás haciendo esto, independientemente, es mejor
probablemente tener alguna
forma de detenerlo, el proceso de tick cuando
no lo necesitas o opciones
alternativas de tictac si está relacionado con algún tipo de
evento o algo así para que puedas habilitar deshabilitar este tick incluso
podrías agregar una
línea de tiempo si son solo 10 segundos o 20 segundos, así que no tienes que preocuparte sobre Evan tomando
cada vez. Evan Ts agrega mucho tiene mucho costo cuando
hay demasiados de ellos. Ahora, para el propósito
de esto, vamos. Tenemos este tiempo aquí, y tenemos que atarlo. Y antes de que me olvide,
asegurémonos de cambiar
el nombre al anterior. G score, consigue por ciento. Ya lo hicimos. Así que vamos a crear un nuevo enlace. Para este tiempo. Y esto va
a nuestra nueva encuadernación, y vamos a llamarlo tiempo transcurrido. Tiempo transcurrido. Ahora esta función se
supone que nos da un valor de texto de un tiempo
que ya ha pasado. Así que vamos a
crear una variable, llamar a asegurarse de que es flotar después. Vamos a llamarlo tiempo vamos a convertirlo a flotar
y agregar este valor. Necesitamos actualizar nuestro valor de tiempo por el
tiempo de juego en milisegundos. Entonces, consigamos tiempo Delta. Y lo que hace Delta Time, Delta Ts es
la cantidad de tiempo transcurrido después de que haya comenzado el juego
esencial. Entonces si además de esto por
Delta Delta Time y set, más fácil hacerlo
así y
configurarlo e ingresamos esto como un valor de texto.
Veamos qué pasa. 1 segundo. Contexto. Oh, esta no
es la hora correcta de Delta. Necesitamos un tiempo Delta para que esto
obtenga segundos mundiales de Delta. Lo cual es bastante confuso con su denominación sea tan similar Pero de todos modos, así que nuestro
widget está demasiado arriba. Vamos a asegurarnos de que realmente lo
puedas ver. Y veamos posición amplia
pongamos en alguna parte lex. Compile, presione play. Entonces ahora tenemos un
tiempo que está haciendo tictac, y va a seguir haciendo tictac Pero esto no es lo
que queremos exactamente. Entonces lo que vamos a hacer, vamos a convertir este tiempo a segundos de tiempo en cadena. Esto lo
convertirá automáticamente
al formato de
minutos, etcétera Entonces ahora, segundos, minutos
ahora tenemos un tiempo en la cima. También podrías hacer
un temporizador de cuenta atrás, por ejemplo, si quieres
tener, digamos, 20 segundos para anotar un punto, y si no anotas un punto en segundos, pierdes el juego, etcétera, o si
solo quieres tener una cantidad máxima de tiempo que puedan pasar
en cierto nivel, puedes hacerlo de la manera que quieras Si quieres
darle la vuelta a la cuenta regresiva,
todo lo que necesitarías hacer
sería restar este valor,
sacarlo todo lo que necesitarías hacer
sería restar este valor, de segundos y
aplicar este valor en Y necesitarías establecer un valor
predeterminado para el tiempo a la cantidad que
quieres que sea el segundo máximo. Entonces digamos si quiero
tener 30 segundos al máximo. Entonces lo hago 30 segundos, y ahora mi tiempo está saliendo, sólo
tengo 22 segundos. Obviamente, no tenemos
ninguna lógica aplicada
a él para que realmente se
acabe el juego o lo que sea, y realmente no lo queremos en este caso, así que
voy a quitarlo. Y ahora, lo que podríamos
hacer es también si no
quieres que sea tan
discorante de alguna manera, si no quieres este
valor flotante al final, todo lo que tenemos que hacer es hacer lo mismo que mencioné
anteriormente Convertimos en lugar de
usar valores flotantes, usamos enteros, y solo
voy a
demostrar uno simple Vamos a dar
tiempo. Vamos a convertirlo a entero. Vamos a poner esto un tiempo. Y en realidad, lo
que podemos hacer en cambio es convertir esto en entero. Conversión. Oh, no esta diversión. Vamos a hacer esto.
Será más rápido. Y establecemos este valor
y ponemos este valor como 2 segundos segundos a cadena. Ese fue un error raro, pero
ahora obtenemos esto por segundo. Podrán notar que
todavía no es lo que queremos. Todavía tenemos ceros de punto. Entonces lo que podemos hacer en su lugar, podemos quitar esto y eliminar
esto también, girar puertas. Si recuerdas nuestra función
anterior, la forma en que te muestro,
tenemos esto aparente y tuvimos que texto flotar aquí. Entonces, lo que podemos hacer en cambio, tenemos que texto
cadena aquí de todos modos, pero queremos que sea
de float a string. Lo que podrías hacer es crear un append by,
vamos a copiar nuestros nodos append
para que no tenga que teclearlo vamos a copiar nuestros nodos append para que no tenga que teclearlo Entonces lo que podríamos hacer
es simplemente anexar y hacer una combinación
de apéndices para ser como,
Oh, bien, este primer valor de
tiempo es minutos,
el segundo valor de tiempo
es Por eso, necesitaríamos
sujetarlo, dividirlo. Cada vez que
llega a los 60 segundos, lo
pones a cero, lo
pones en un valor. Puedes de múltiples maneras. Si no quieres ese cero
ahí solo para que quede claro. Y obviamente, si
conoces C plus plus, también
puedes editar la funcionalidad de
Ciplus plus y hacer una en la que haga
exactamente lo mismo que esto, pero urnicar menos Y también siempre podríamos
simplemente quitar parte de la cuerda para hacerla de manera que no tengan
ningún valor fracturado Pero personalmente no me importa. No me importa
que el tiempo tenga milisegundos, sobre todo si eres corredor de
velocidad o algo así Asegurémonos de volver a poner nuestro valor de
tiempo a cero. Comenzamos en el tiempo cero, y eliminamos nuestro entero,
compilamos y guardamos. Ahora tenemos un widget que nos
dice el tiempo pasado. Tenemos nuestro progreso var, nuestro puntaje total, todos
ellos están desalineados, tristemente Entonces tendré que alinearlos si quiero
alguna claridad visual. Entonces pongamos 20 sólo un poco. Quiero que el punto final de la misma
sea lo mismo que la puntuación. Sí, en realidad, lo suficientemente bueno. No es ideal, pero
no tiene por qué serlo. Sólo estamos prototipando cosas. Y ahora tenemos nuestra línea de tiempo. Tenemos nuestro puntaje. Tenemos nuestra barra de progreso. Ahora cambiemos
nuestro valor de velocidad. Ahora bien, esta va
a ser un poco diferente porque la velocidad que estamos obteniendo es del personaje en
tercera persona. Entonces el movimiento estamos tratando de
obtener la velocidad del personaje en
tercera persona. Entonces lo que tenemos que hacer, digamos, comprobar lo siento. Velocidad. Entonces lo que vamos a hacer, vamos a
calcular la velocidad. Y como pueden ver, esto no
es lo que necesitamos. Esta no es una
salida que podamos usar. Entonces, en cambio, lo que vamos a hacer Para todos los fines previstos, podríamos obtener fácilmente
nuestra velocidad actual personaje
de persona Sirt
dentro del plano estelar Pero esto no es lo que
queremos, en realidad. En un juego, normalmente
tendrías en un juego donde
querrías ver tu velocidad, normalmente tendrías
algún tipo de valor para ello. Por ejemplo, si
estás manejando un auto o es un juego donde estás calculando la
velocidad o lo que sea, cuando estás volando, ya
tendría algún tipo de valor de
hilo dental que dictaría
qué tan rápido
va o no va tu personaje En este caso, no lo tenemos. Solo estamos usando un sistema de movimiento
básico irreal, y lo que podemos hacer es
obtener nuestra velocidad Si yo 1 segundo, obtener mi pregunta. Esto va como parámetros, así que tampoco es correcto. Entonces vamos a hacer
vamos a gráfico de eventos aquí. Y en gráfico de eventos, por cierto, si te has dado cuenta no
usamos este tick que teníamos antes lo haremos, asegúrate de eliminarlo
si no lo necesitas. Esto agrega costo solo por existir. Vamos a ir a la velocidad, y vamos a
crear una nueva encuadernación. Y vamos a
llamar a esta encuadernación donde vamos a conseguir velocidad. Ahora, la velocidad que estamos tratando conseguir pertenece al personaje
del jugador, y te mostraré cómo se
hace en el siguiente video.
30. UE5 FC09 05: Bienvenida de nuevo. Ahora,
continuando, estamos tratando de obtener un valor por nuestra velocidad que vamos a tener aquí en la parte inferior derecha
en la parte superior del widget. Necesitamos obtener la velocidad de
movimiento de nuestro personaje de tercer jugador. Y como he mostrado en
el video anterior, no
hay
manera directa de conseguir como,
Oh, consígueme la velocidad de movimiento. Tenemos que
pasar por algunas popas, y voy a moverlo del personaje de jugador en
tercera persona
al propio widget Entonces, si quiero modificar las propiedades
del widget, solo
puedo hacerlo desde el widget. Lo que vamos a hacer,
vamos a conseguir personaje jugador. Y la razón por la que estamos consiguiendo este personaje jugador es porque estamos tratando de encontrar una velocidad para el personaje
jugador. Si estuvieras
intentando conseguir algún tipo de enemigo u objeto en el nivel, lo ideal sería obtener el valor directamente de ese objeto y
de alguna manera
transferirlo al widget a través de interfaz o modo de juego. Instancia, si es necesario, por lo general no es buena idea que todos estos cálculos sucedan
constantemente a menos que
sea parte integral de tu juego, probablemente no
deberías hacerlo. Nuevamente, es mucho costo
por muy poco retorno. Pero nuevamente, en algunos juegos
se requiere, entonces lo haces. Entonces necesitamos la velocidad de nuestro jugador, así que estamos obteniendo nuestro personaje de
jugador, y lo que necesitamos
es su velocidad. Si obtenemos velocidad y tenemos aquí en la parte
inferior, obtener velocidad. Y si solo
lo ponemos en retorno,
y compilamos press play, verás que estamos
obteniendo valores XYZ porque la velocidad
suele estar bien, no usualmente se
calcula en XYZ. Nos movemos a
cierta velocidad, X a XY o Z en el mundo de las tres D. Pero
esto no es lo que necesitamos. Como si no quisiéramos poner
nuestro XYZ en la ventana gráfica. Entonces, lo que tenemos que hacer
tenemos que obtener enlace vectorial. Y ahora este valor es nuestra velocidad. A ver, presiona play. Y ahora, esta es nuestra velocidad. Quizás te estés preguntando
por qué se está
atascando a 3,000 y por qué se
mueve más lento, subiendo. En primer lugar, tenemos un valor fractal al
final, lo cual es normal, pero puedes notar también que
tenemos una velocidad máxima de 3,000, y eso sucede por el plano, el movimiento
del personaje
y la velocidad máxima hemos enviado anteriormente Por lo que nuestra velocidad máxima de vax es de 3,000. Es de 3,000 centímetros. Es esencialmente de
30 metros/segundo. Ahora bien, no queremos que se ponga
directamente en
ese tipo de valor. Entonces lo que vamos
a hacer en cambio, vamos a
convertirlo a texto en texto. Vamos a asegurarnos de que no
tenemos fractales. No los quiero
en mi UI por velocidad. Y para los suyos, incluso
antes de que hagamos eso, dividiré este valor por 100 porque no
quiero que mi velocidad se
muestre en centímetros. Quiero que importe. Ahora bien, lo que esto nos va
a dar es un valor de uno a 30 siendo nuestra velocidad. A veces va un
poco más arriba porque estoy volando y esas cosas, pero
eso es comprensible. Esto es sólo calcular
mi velocidad total. Entonces ahora
vamos a hacer algo que ya
hicimos en la anterior. Vamos a anexar Vamos a anexar el
valor y después del valor, vamos a sumar
hagamos menos Y voy a añadir
espacio extra el espaciado. Voy a ponérselo de nuevo. Lo compilaré, lo
guardaré, presionaré play. Y ahora tengo un widget
que me dice mi velocidad. Hay mucho más que
puedes hacer con los widgets. Así que los Widgets también actúan
como elementos del menú. Entonces, si quieres hacer
clic en un botón o, ya
sabes, administrar tu inventario, consultar el mapa, hacer clic
en los elementos del mapa, etcétera en los juegos, necesitarías algún tipo de interactabilidad con Y normalmente crearíamos diferentes widgets
y los aplicaríamos, los
eliminaríamos de la escena como pantalla según los necesites o
quitando el widget. Entonces, por ejemplo, tenemos nuestro widget aquí,
creamos este widget. También podríamos
eliminar el widget. Entonces Widget si vas a
los comandos del widget aquí. Has eliminado del padre, puedes usarlo para simplemente eliminarlo o establecer la visibilidad en invisible o simplemente moverlo
fuera de la pantalla. Idealmente, si se trata de un widget que consume CPU, etcétera, querría simplemente
eliminarlo por completo Así es eliminar y
si lees la descripción, está quitando de
todo, esencialmente. Se está quitando de
containerus, etcétera. A menos que lo
necesites, probablemente deberías quitarlo. Y en nuestro caso, este widget es algo que debería
permanecer siempre en la pantalla. Es posible que desee si desea ocultar ciertos elementos
del widget, puede hacerlo
dentro del
propio widget agregando algunas llamadas, etcétera, yendo
al widget y llamando a eventos
directos Tenemos nuestra referencia de
interfaz de usuario de Widget aquí. Entonces si quiero, digamos, obtener cierta función. Vamos a tener el uno por tiempo. Así que tenemos co función
tiempo transcurrido. Así podrás acceder a
tu elemento widget, como funcionalidad
por la referencia que
tenemos aquí cuando
creamos el widget. Así que siempre puedes simplemente
administrar tus elementos de widget
, partes específicas de él o elementos con solo lanzarlo Lo siento, solo por usar
la referencia de la misma. Ahora bien, si quieres hacer click en crear algún tipo
de interactividad aquí, lo que tendríamos
que hacer es, por ejemplo, solo
podríamos agregar un fondo voy a
agregar un botón aquí Y en este botón, agregaría un evento
llamado On clicked Entonces cuando se hace clic en este botón, se supone que
algo va a suceder Así que sólo voy a
hacer una cadena de impresión. Y aquí vamos. Y quiero que me diga hola
cuando haga clic en este botón. Compilar, PrescoPlay presione play, y como pueden ver,
puedo dar click en él Pero cuando empiezo mi juego, perdería la entrada de mi mouse. La razón por la que pude
hacer clic en él porque cuando juego,
todavía tenía mi mouse, pero no tendrías este
mouse cuando realmente comienzas el juego si estás jugando
con un teclado, etcétera, porque esto
solo va a funcionar dentro del editor irreal
hasta que haga clic en Y ahora si quiero volver a
hacer clic en el widget, necesito Fight y
da click aquí. Pero esta no es la forma en que
funcionaría en el juego, sobre todo si se trata de un widget que se genera en
medio del juego Para asegurarte de que realmente puedes hacer
clic en esto,
qué harías, los widgets que requieren
tu capacidad para ser clicado tendrían un evento
que te permite hacer clic en él Entonces agregaré un evento llamado Construct me and my my miserable
typing event construct. Lo que esto hace es que se activa cuando se crea el
widget. Esto es esto de ninguna manera debe ser parte de los elementos del widget de
la interfaz de usuario. Sólo lo estoy mostrando aquí para
que sepas cómo se hace. Idealmente, crearías
esto en un widget diferente. Entonces, cuando se contrata el evento, obtenemos el controlador del jugador. Vamos a moverlo. y establecer el ratón Espera. Esto no es así. Mis disculpas. Necesitamos obtener el
controlador del jugador de esto, no de los bits de ejecución. Esto es sólo una función pura. Y aquí, lo que
hacemos es conseguir el cursor del ratón. Y lo hacemos y compilamos, presionamos y presionamos play. Entonces ahora, mientras este widget está en la pantalla o no mientras
es cuando este widget
empieza a crearse, todavía
tengo mis entradas
disponibles para mí en mi teclado, pero también puedo hacer clic en este botón y crear
el botón Hola. Pero obviamente, imagina
que esto es un inventario o un mapa, etcétera, y no quieres que esté constantemente
en pantalla, ¿correcto Por lo que querría
desactivar esta entrada del mouse y eliminar ese elemento
del widget de la pantalla. Entonces, antes que nada, vamos a anclar esto para que no esté en
medio de la pantalla. Sí, mucho mejor. Entonces, cuando presiono play ahora,
esto es ahora abajo a la derecha. Primero, ahora que ya está hecho, tomemos este widget. Y sabemos que este widget
es nuestro Button 01. Vamos a nuestro Button
01 y aquí consigue. En lugar de vender hola, vamos a ver
qué podemos hacer con esto. Esto es solo un widget, así que
podemos, supongo, eliminarlo. Sí. Entonces veamos qué
pasa cuando hacemos clic en él ahora, cuando lo eliminamos del
padre, y ya no está. Pero todavía tenemos nuestro mouse
en medio de la pantalla, obviamente esa es una solución
bastante fácil. Obtenemos este cursor del ratón
y lo configuramos en fs. Y el objetivo debería ser el
controlador del jugador, obviamente. Y cuando pulsamos Reproducir ahora y clic en este botón, ahora
desaparece. Ahora bien, esto es útil cuando
tienes, digamos, una interfaz de usuario en la que quieres tener un click que
tenga algo así como, digamos, cuando
tienes un determinado elemento, aparece en tu UI. Le das click,
lo consumes y desaparece. Obviamente, podrías escribirle toda la lógica, como, Oh, si ya no tienes
de este artículo, quítalo, o si quieres, pasó el
tiempo, caducó. Depende de ti. Puedes crear
lo que quieras con él. Pero personalmente no necesito esta funcionalidad en esta. Y como tal, me lo
quité todo. Pero solo ten en cuenta. Así es como puedes crear
tus elementos de menú. Se puede poner un texto,
se puede hacer clic en los botones. Puedes agregar una cuadrícula, que es si vas
a nuestro Canvas aquí, tenemos nuestro
panel de cuadrícula, por ejemplo. Y dentro de este panel de rejilla, puedo agregar muchas otras cosas. Entonces puedo agregar el botón uno, el botón dos, el botón tres Es difícil de ver en este momento, pero lo verás en un segundo. Y yo sólo los voy a dimensionar. Puedo ponerlos en filas. Y ahora tengo cuatro botones. En una fila diferente. Puedo
moverlos si quisiera. Como se puede ver. Ahora bien, si quieres que tu talla
sea más grande, etcétera, simplemente lo
harías
en el panel de cuadrícula, vamos a dimensionar el
contenido en sí mismo Entonces solo va a ser
el tamaño del contenido, o en su lugar puedes ir a tus botones y
desde los botones, puedes cambiar cómo
están acolchados, son pasados, etcétera Y no estás limitando
a solo agregar botones. También podrías agregar una
imagen aquí. Y si tu imagen es, digamos, Espera.
Esto no es imagen. Esta es una imagen HDR. Mis boologis. Solo agreguemos
una textura, textura regular. Y esta textura es muy grande, por lo que de pronto está cubriendo todo
el widget. Se puede reducir el tamaño. Si quieres, y en mi caso, yo no quiero ninguna imagen, así que sólo voy
a quitarle los botones. Si voy al panel de rejilla, verás que
tenemos nuestro tamaño aquí. Voy a aumentar el
tamaño a algo así, y podemos
posicionarlo donde tú quieras. Voy a anclar en
la parte inferior izquierda por ahora y colocarlo 000 y luego moverlo como quiero algo como
aquí, lo cual está bien. Ahora podemos dar click sobre los botones. Podemos cambiar sus
colores si queremos. Entiendo que es un poco difícil
de ver desde aquí y Así que tenemos nuestras columnas. Tenemos nuestras filas donde
queremos que se coloque esto. Y ten en cuenta,
esta es una grilla. Entonces hay como este
es un sistema basado en cuadrícula, y hay
botones en la cuadrícula. Si quieres elementos de menú que estén más alineados a
lo que estás acostumbrado, lo que puedes hacer es de 1 segundo. Creo que fue éste. Y si agrego botones aquí, sí. Si agrego botones aquí. Ahora, quiero que sean
horizontales, no verticales, así que lo siento, los quiero
verticales, no horizontales. Ahora los tengo horizontales. No, sólo voy a
pegar este fondo. Y ahora tengo cinco espacios de elementos
UI dentro de esta superposición, y puedo agregar textos encima de ellos si quisiera hacer cada uno. Y digamos, este
es el juego de inicio. Sí, no juego de estrellas, entendiste el punto. Opciones, dejar el juego como extras, etcétera, lo que quieras
de tu caja de juego Stack Siéntete libre de experimentar. Hay muchas
cosas que puedes hacer. Imagina cualquier juego que hayas jugado o hayas visto
alguna vez, ahí tienes los ojos y trata pensar en cómo lo
hicieron suceder. ¿Cómo hicieron cómo usarías el
sistema de widgets en irreal para obtener los mismos resultados y si tendría
sentido que estuvieran en el mismo widget o parte
de un widget diferente Además, ten en cuenta, puedes agregar otros widgets
a tus widgets. Entonces si tienes un widget
diferente, que vamos a
crear en un segundo. Nuevamente, solo con fines de
demostración, en realidad no
voy a hacer clic
y crear un widget, y vamos a llamar al widget de
usuario y vamos a ir Cty Eso es solo SS, solo para
que pueda encontrarlo fácilmente. Y aquí, si quiero
agregar un widget, podría simplemente agregarlo aquí. Y tengo mi widget SS aquí. Y si abro mi widget SS ahora, y en esto de aquí, agrego un panel,
solo voy a agregar un lienzo solo
porque es más rápido. Y voy a añadir una
imagen o en realidad un texto. Voy a anclar el
centro de texto y simplemente escribir texto, compilar, presionar guardar, vamos a jugar. Y puede que no en la
parte superior izquierda, tengo SSSS. Yo lo anclé aquí. Se puede
preguntar por qué no está aquí, y en la parte superior izquierda gal no la
he anclado aquí Yo lo ancla aquí en el
centro también y
lo posiciona Así que ya ves, tengo un widget dentro de un widget, lo cual es útil cuando tienes sistema de
inventario o algún tipo de menú que se superponga a sí mismo, como un menú con múltiples
capas y esas cosas Eso es muy útil. Además, te permite codificarlos independientemente unos de otros y puedes eliminarlos
cuando no sean necesarios, etcétera, o si algunos widgets son específicos de ciertos niveles, puedes usarlos allí y
eliminarlos después Hay muchas maneras en las
que puedes usar tus widgets, y el sistema de widgets en
general es muy caro. Al igual que aquí hay muchas
cosas que puedes usar, pero que solo
necesitarías probarlas para ver
qué quieres hacer. Y no hay una
solución única para todos. Puedes agregar un
trober círculo, etcétera, que es solo un buen
widget. Me gusta usar. Puedes usar esto como pantalla de
carga o lo que sea. Se pueden agregar más
elementos, menos elementos. Al igual que, imagina que haces un
juego y la cantidad de puntos representa la
cantidad de HP que tienes Simplemente puedes
aumentarlos o disminuir la cantidad con la
cantidad de HB que tengas. Hay mucho que puedes hacer.
La imaginación no tiene limitaciones, así que siéntete libre de experimentar. Eso va a ser todo para la introducción de
widgets en
este curso básico. Tendremos una explicación más profunda
sobre los widgets y cómo hacer elementos complicados del
juego en el curso intermedio que se
lanzarán en el futuro. Espero que hayas aprendido algo y disfrutes tu tiempo aquí. Si tiene alguna pregunta,
no dude en comunicarse. Haré todo lo posible para ayudarte. Gracias, y espero que
tenga un buen día.