‫Hola y bienvenido.
‫En esta lección, vamos a crear un nuevo componente en C++, este cuadro de activación, que nos informará
‫cuando entremos en la alcoba o coloquemos cualquier objeto en la alcoba.
‫Puede ver que estamos recibiendo un pequeño mensaje de plano en la esquina superior izquierda.
‫Y para hacer eso, vamos a tener que entender cómo se comportan las superposiciones y los bloqueos y
‫las diferentes respuestas de colisión en Unreal.
‫Vamos a sumergirnos y averiguarlo.
‫Ahora ya nos hemos familiarizado con el funcionamiento de los canales de seguimiento.
‫Sabemos que puede tener respuestas de rastreo en los diferentes objetos en nuestra escena, como este arbusto aquí.
‫Puede ver que tiene una respuesta de ignorar los rastros de armas, pero bloquea los rastros de visibilidad.
‫Luego está este ejemplo de vidrio a prueba de balas que bloquea las armas pero permite la visibilidad y una pared
‫de ladrillos que bloquea ambas.
‫Así que puedes ver cómo funciona este sistema con canales de seguimiento.
‫Ahora, ¿qué sucede si estamos tratando de decidir qué objetos pueden superponerse entre sí?
‫¿Cuáles pasan?
‫¿Cuáles se bloquean entre sí?
‫Eso puede ser un poco más complicado.
‫Ya vimos esto cuando intentamos que la gárgola se superpusiera con nuestro peón.
‫Ahora, así es como funciona.
‫Esencialmente, usamos estos tipos de objetos.
‫Cada objeto puede pertenecer a un tipo de objeto particular.
‫Y esto es diferente al tipo de sistema de tipos en C++.
‫Estos son tipos de colisión.
‫Así que podrías tener el objeto A, un objeto B, y en su configuración, si vamos y echamos un vistazo a
‫la configuración de nuestra gárgola, por ejemplo, puedes ver que tienen su propio tipo de objeto.
‫Este es un objeto estático mundial.
‫Pero luego, más abajo, también tienen sus respuestas a otros tipos de objetos.
‫Entonces puedes ver que este objeto bloqueará otras estáticas mundiales.
‫Bloqueará otras dinámicas mundiales.
‫Superpondrá los tipos de peones.
‫Bloqueará cuerpos físicos y prácticamente bloqueará cualquier otro tipo.
‫Y obviamente, el propio peón, si vamos a buscar a nuestro jugador BP.
‫Y mira en su componente cápsula.
‫Mire los detalles y desplácese hacia abajo hasta donde tenemos un preajuste de colisión.
‫Si podemos expandir el preajuste de extracción y colisión, no podemos editarlo, pero podemos ver lo que está haciendo.
‫Y puedes ver que tiene su propia respuesta a la estática mundial.
‫Así que su respuesta al mundo estático sería bloquearlo.
‫Así que en realidad tenemos dos opciones diferentes aquí.
‫El peón dice que bloqueo la estática mundial, pero la gárgola dice que superpongo peones.
‫Entonces, ¿qué debería pasar?
‫Bueno, aquí es donde entra esta tabla y tengo un enlace a esta publicación de blog
‫si desea leerla completa en los recursos de la conferencia.
‫Entonces puede ver que se necesita la menor interacción de bloqueo entre los dos.
‫Entonces, si el objeto A era el peón y dice, oye, debería bloquear esa gárgola, pero el objeto B de
‫las gárgolas dice, oye, debería superponer ese peón.
‫Así que va a tomar el menor bloqueo de esos dos y va a superponerse.
‫Entonces significa que si quieres que dos cosas se bloqueen entre sí, ambas deben estar de acuerdo en que eso es
‫lo que quieren hacer.
‫Así que veamos otro ejemplo aquí.
‫Tenemos al jugador que es un peón de tipo objeto, y su respuesta de objeto a otros peones es
‫bloquearlos y los objetos estáticos del mundo es bloquearlos.
‫La pared de ladrillos es un objeto estático mundial.
‫Puede bloquear peones y bloquear el mundo estático.
‫Así que estos dos estarían de acuerdo entre sí.
‫Ahora el arbusto también es estático mundial, pero se superpone a los peones.
‫Es muy parecido a nuestra gárgola, pero bloquea la estática mundial.
‫Entonces, si baja y observa lo que sucedería, el peón intentaría viajar a través del arbusto y podría hacerlo
‫porque toma la opción de menor bloqueo, que es la superposición y genera un evento de
‫superposición que podemos conectar en el código o blueprint, mientras que no podrá atravesar la pared de ladrillos
‫y generará un evento de éxito nuevamente, algo a lo que podemos engancharnos en Blueprint
‫o C++.
‫Entonces, ¿por qué entro en toda esta profundidad?
‫Porque lo que quiero hacer es poner un objeto que sea básicamente invisible dentro de esta pared que nos permita
‫poner la gárgola aquí y obtendremos un evento cuando eso suceda.
‫Entonces la gárgola apoyará un evento y dirá: Oye, tengo algo que se superpone conmigo.
‫Entonces, ¿por qué es importante todo esto?
‫Porque quiero poner un objeto que es invisible pero que se superpondrá con la gárgola y nos informará sobre
‫ese hecho.
‫Luego podemos consultarlo desde C ++ o podemos obtener eventos en planos de cualquier manera.
‫Y la forma en que vamos a hacer esto es, en primer lugar, crear un plano a partir de esta pared de la mazmorra.
‫Así que voy a hacer clic en el botón de plano en el
‫panel de detalles, crear una nueva subclase, y voy a llamarla BP, Underscore Secret Wall, y vamos a presionar seleccionar para crearla.
‫Y lo llevó a nuestra ventana principal y tiene un motor en él.
‫Lo que también quiero agregar aquí es esencialmente un componente que se llama colisión de caja.
‫Entonces, si hacemos clic en una colisión de cajas, pueden ver que es completamente invisible.
‫Simplemente le da algunas extensiones de cuadro que podemos cambiar.
‫Podemos hacerlas más grandes para que en cualquier lugar que coloquemos la gárgola en esta caja, la acepte.
‫Y podemos ver que tiene opciones de colisión aquí abajo.
‫Tenemos una superposición de todas las dinámicas por defecto, pero como preajuste por defecto.
‫Pero si seleccionamos personalizado, puede ver que podemos cambiar los tipos de objetos y podemos cambiar la forma en que
‫responde a diferentes cosas aquí.
‫Y creo que lo más importante, como puede ver, está configurado para superponerse con la mayoría de los tipos de objetos, lo
‫que significa que incluso si no están configurados para superponerse con la dinámica mundial, se superpondrá.
‫No va a bloquear nada que nos permita colocar la gárgola aquí.
‫Así que voy a eliminar ese componente de la escena porque lo que queremos hacer es crear un
‫nuevo componente en C++ basado en esa colisión de cajas.
‫Ahora solo quiero mostrarles que con este cuadro, si lo volvemos a establecer en el ajuste
‫preestablecido predeterminado que tenía, creo que se superponen todas las dinámicas y marcamos o, como ya está marcado, generar eventos superpuestos
‫ya está marcado.
‫Luego podemos ir a nuestro gráfico de eventos y podemos hacer clic derecho aquí y buscar superposición.
‫Y justo en la parte superior, puede ver un componente adicional que comienza a superponerse para el cuadro.
‫Entonces, si hacemos clic en eso y cambiamos el nombre del componente del cuadro para activar el área, básicamente, si nos superponemos con el
‫área de activación, obtendremos una lista de propiedades de lo que se superpone con nosotros para
‫que podamos tomar el.
‫Se superpone con los niños.
‫Obtén su nombre.
‫Entonces, obtener el nombre para mostrar es el nombre del nodo y luego podríamos tomar eso e imprimir la cadena de
‫resultados y conectarla al pin de ejecución y podemos continuar y presionar reproducir.
‫Y si caminamos hacia el área, pueden ver que está diciendo que el reproductor de pitidos es lo que se superpone.
‫Ahora no puede ver el error porque está muy oscuro.
‫Así que voy a ir a la pared secreta de nuevo y un pitido y voy a agregar un componente de luz puntual, que
‫voy a colocar en este pequeño nicho girando su cara hacia abajo e iluminando el espacio donde estamos.
‫quiere el objeto.
‫Ahora en la escena, podemos verlo muy claramente.
‫Así que sigamos adelante y presionemos reproducir y podemos caminar hasta ese nicho.
‫Si lo superponemos, dice que el reproductor de pitidos se superpone y podemos ir y agarrar
‫nuestra gárgola de esta celda usando nuestro capturador recién acuñado, y podemos tomar esa gárgola y colocarla en esta área.
‫Sin embargo, no parece generar ningún evento superpuesto, y eso se debe a que, como necesitamos, hay dos partes
‫en la colisión.
‫También hay dos partes para generar eventos superpuestos.
‫Entonces, el hecho de que lo tengamos habilitado en ese componente de caja no significa que la gárgola que se mueve hacia
‫él realmente nos alertará sobre cualquier evento de superposición.
‫Entonces, lo que tenemos que hacer es ir a la gárgola y verificar que también genere eventos de superposición.
‫Entonces, los eventos de superposición deberían ocurrir.
‫Vayamos y recojamos la gárgola, llévelo a la alcoba y métalo adentro.
‫Y ahora tenemos un evento por venir.
‫Cuando eso sucede, la estatua de Gargoyle se está registrando.
‫Ahora, no quiero usar eventos modelo en este caso particular.
‫Entonces, lo que quiero hacer es tomar nuestro componente de área de activación y convertirlo en un componente de C++
‫que pueda evaluar si tiene la estatua de Gargoyle que quiere o no.
‫La forma en que vamos a hacer esto es que vamos a AGREGAR componentes, crear nuevos componentes de C++.
‫Y como clase principal, en lugar de elegir el componente ACT o los componentes
‫de escena, vamos a ir a todas las clases y buscaremos el componente de caja.
‫Y puede ver los componentes de la forma, los componentes de la caja, el que queremos y podemos continuar y
‫presionar siguiente.
‫Entonces, me gustaría desafiarlo a crear este componente ahora que le mostré cómo configurar la clase
‫principal.
‫Así que lo nombrará componentes desencadenantes y tendrá que copiar algunas cosas de los otros componentes que hemos
‫creado porque no está configurado de la misma manera.
‫Dado que derivamos de un padre diferente, no es necesario que copie la alineación de su clase.
‫Toda esa línea está básicamente vacía en el componente desencadenante a medida que lo crea.
‫Así que copie eso de su capturador o su motor y, de lo contrario, no podrá agregar sus componentes
‫a sus planos.
‫Entonces, debe usar estos nuevos componentes de activación para reemplazar nuestros componentes de caja actuales e imprimir algo desde Comenzar a
‫jugar nuevamente.
‫Begin Play no se configurará automáticamente para usted, por lo que tendrá que copiar desde el archivo
‫de encabezado y el archivo C++ de nuestros otros componentes para configurarlo.
‫Pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que voy a llamarlo los componentes desencadenantes, todo una palabra y un golpe para crear la clase.
‫Entonces, como se predijo, una nueva línea de clase no tiene nada dentro de los paréntesis.
‫Y si vamos y echamos un vistazo a nuestro editor y vamos al secreto de BP, intentaremos agregar este componente
‫de búsqueda de disparador.
‫Puedes ver que no sale nada.
‫Y la razón de esto es que si pasamos a Tomo un punto H y tuvimos que mirar su línea de clase,
‫pueden ver que hay un poco aquí que dice un engendro de plano de un componente.
‫Entonces, de manera crucial, necesitamos copiar esto.
‫También tiene un grupo de clase.
‫También podríamos copiar todo porque esto nos permite crear estos componentes en el modelo para que podamos
‫ir y pegar esto como la línea de clase para el componente desencadenante.
‫Y luego, la otra cosa, si vamos a agarrarlo, pueden ver que comienza a reproducirse.
‫Está dentro de una sección protegida y podemos simplemente copiar la definición de esa función de inicio
‫de reproducción, copiarla en nuestros componentes de activación y colocarla como estaba en el capturador, justo debajo del cuerpo
‫generado.
‫Luego podemos ir a tomar un CP y ver qué tan grande se definió en el juego.
‫Aquí puedes ver que tiene este toque genial para comenzar a jugar que es realmente importante.
‫Así que vamos a copiar eso, ir a un componente desencadenante.
‫CP Y vamos a cambiar el componente de disparador, agarra dos puntos, comienza a jugar y luego aquí podemos poner un
‫nuevo registro y solo vamos a escribir un mensaje simple como componente de disparador
‫vivo.
‫Seguiremos adelante y compilaremos.
‫Esto puede llevar un poco de tiempo, ya que hemos realizado algunos cambios bastante significativos en nuestro encabezado de archivo.
‫Y una vez hecho esto, podemos ir a nuestro muro secreto de BP, ir a agregar y buscar disparador.
‫Y aquí pueden ver que tenemos ese componente disparador.
‫Ahora podemos agregar eso.
‫Podemos eliminar nuestra área de activación que hemos configurado anteriormente.
‫Simplemente continúe y elimine eso y verifique que aún queremos eliminarlo.
‫Básicamente, invalidará este evento que creamos y podemos verificar que las colisiones estén configuradas como queremos en
‫el gatillo si vamos a echar un vistazo.
‫Sí, está configurado para superponer todas las dinámicas y generar eventos superpuestos.
‫Y finalmente, lo que necesitamos reemplazar es este evento aquí donde vamos a seleccionar
‫nuestro botón derecho del disparador e ir a desplegar el evento de agregar para Trigger Collision y agregar nuestro propio componente de superposición de inicio.
‫Eso es lo que estábamos usando antes.
‫Engancha el pin activo y el pin de ejecución para dirigirte al nivel de la mazmorra.
‫Ve y recoge la gárgola, intenta meterla en la alcoba y notamos que no funciona.
‫Así que ahora tenemos ese gatillo configurado.
‫Vayamos a la ventana gráfica y puede ver que en realidad no se ha realizado el disparador.
‫No se ha hecho lo suficientemente grande.
‫No lo hemos colocado correctamente.
‫Así que vayamos y colóquelo en el centro de la alcoba y aumentemos las propiedades de extensión de la caja para que atrapemos
‫todo lo que hayamos puesto dentro de esta área de la alcoba.
‫No importa si es un poco más grande y nos da un margen de seguridad, entonces podemos entrar en la
‫mazmorra, presionar reproducir y luego entrar en la alcoba.
‫Y, efectivamente, detecta que el jugador de BP ha entrado en ese nicho.
‫Buena cosa.
‫En esta lección hemos aprendido todo sobre tipos de objetos y respuestas de tipos de objetos, y lo
‫hemos usado para configurar este componente de disparo.
‫Te veré en la próxima conferencia.