UDK - Creando Eventos Con Unreal Kismet

Hoy profundizaremos en Kismet de UDK y echaremos un vistazo al desarrollo de Eventos, qué son, cómo podemos crearlos y cómo podemos gestionarlos. Aprenderá cómo crear y administrar casi todos los tipos de eventos en UDK para poder construir niveles completos, complejos y completamente guionados, comenzando con el nivel simple que crearemos en este tutorial..

Introducción a los eventos de UDK

En UDK, un evento es una situación particular que definas (obviamente en Unreal Kismet) que trae consecuencias al juego oa otros elementos del juego. Puede crear eventos en cualquier lugar en un nivel, sin limitaciones. Puede dividirlos en tres grupos diferentes: eventos precompilados, eventos de activación o eventos de InterpActor. En este tutorial los cubriremos todos para darle una vista completa de cómo se crea y manipula un evento.


Eventos Pre-compilados

Paso 1

Eventos precompilados: si abre Unreal Kismet (la K verde en la parte superior de la ventana de UDK, cerca del icono del navegador de contenido y el icono de Matinee) y hace clic con el botón derecho en un espacio en blanco de la ventana de Kismet, y aparece debajo "Nuevo evento", verá muchos eventos listos para usar agrupados como "Actor", "AI" o "Peón", por ejemplo. Actor, AI y Pawn son, en este caso, la parte desencadenante de un evento y sin ellos, el evento no se inicia en absoluto. Entonces, un ejemplo: si quieres que un evento comience cuando muera un enemigo, tendrás que pasar por debajo de "Peón", porque un enemigo se llama peón y elige Muerte..


Paso 2

Para nuestro propósito, crear una 512 x 512 x 256 Cubo hueco.


Paso 3

Ahora, agregue un punto de luz en la habitación sosteniendo la L Tecla en el teclado, y luego haga clic izquierdo en la sala que acabamos de crear (el Cubo).


Etapa 4

Mueva la luz al centro de la habitación y luego reconstruya la iluminación (con o sin Lightmass, no es importante).


Paso 5

¿Hecho? Ahora, podemos comenzar con nuestro primer evento UDK, un evento precompilado en este caso. El evento precompilado más común utilizado por un codificador UDK es el evento "Nivel cargado". Como puedes imaginar, este evento comienza cuando se carga el nivel. Entonces, comencemos con esto: vaya a Unreal Kismet, haga clic derecho en un espacio en blanco y vaya a Nuevo evento> Nivel cargado.


Paso 6

Ahora, debería tener un nodo llamado "Nivel cargado" en su Kismet. Si es así, ahora puede ver que este nodo tiene tres salidas o, mejor en este caso, tres condiciones para activar el evento: cuando el nivel está cargado y visible, al inicio del nivel o cuando hay un nivel de reinicio. Estas condiciones se explican por sí mismas, de hecho, la única diferencia entre "Cargado y visible" y "Principio de nivel" es un pequeño retraso del segundo en comparación con el primero. Mientras que el tercero se trata de una recarga del nivel, pero no vamos a entrar en esta función ahora.


Paso 7

Vamos a crear una especie de alarma que le dice al jugador que se prepare porque el enemigo está llegando. Para lograr esto, vamos a crear otro Nodo yendo (siempre con el botón derecho), para Nueva acción> Voz / Anuncios> Anuncio de juego.


Paso 8

Ahora, haga clic en este Nodo, y en la barra de Texto de Anuncios, escriba "¡Prepárese! ¡Un robot viene para matarlo!" Con esto, le estamos diciendo a UDK que escriba un texto en el centro del monitor que informa al jugador que un robot lo está matando, por lo que debe prepararse para luchar..


Paso 9

Ahora, cree otros 6 Nodos de Anuncio de Juego, como lo hemos hecho antes.


Paso 10

En el último, escribe bajo el Texto de anuncio "¡Toma el fusil de choque y la pelea comenzará!".


Paso 11

En los otros Nodos, usaremos una cuenta regresiva de sonido que se incluye en los activos UDK. Por lo tanto, vaya al "Navegador de contenido" y escriba en la barra de búsqueda "cuenta atrás". Aparecerá una Diez ondas de Soundnode, luego seleccione "Cuenta atrás 5".


Paso 12

Ahora, vuelva a Kismet y haga clic en el primer Nodo de Anuncio de Juego vacío. Vaya a la barra de sonido de anuncios y haga clic en la flecha verde a la derecha. El nombre de SoundNode Wave debería aparecer en la barra. Lo que acaba de hacer es decirle a UDK que reproduzca el sonido un número (cinco) de veces para crear una cuenta atrás..


Paso 13

Entonces, haga lo que acaba de hacer con el Nodo anterior, con los cuatro Nodos de Anuncio de Juego restantes. Recordando que primero debe seleccionar el número para la cuenta regresiva en el Navegador de contenido (el cuarto, el tercero, el segundo y el primero) y luego hacer clic en el nodo en Kismet, y luego en el sonido de anuncio, hacer clic en la flecha verde para insertarlo.


Paso 14

¿Hecho? Bien. Ahora es el momento de conectar el evento a los nodos que hemos creado. Conecte la salida de "Principio de nivel" al primer nodo de anuncio.


Paso 15

Luego, desde la salida de su primer nodo de anuncio hasta la entrada del segundo nodo de anuncio y así sucesivamente (como se muestra a continuación).


Paso 16

Ahora, cuando comienza el nivel, tenemos una serie de anuncios que avisan al jugador, pero si los dejamos como están, solo se mostrará un anuncio en la pantalla y el jugador no obtendrá toda la información que queremos darle. . Para mostrarlos todos, debemos establecer un retraso entre nuestros Nodos de Anuncio. Entonces, haga clic con el botón derecho en la Salida (el rectángulo negro) del primer Nodo de Anuncio, y haga clic en "Establecer retraso de activación". En la ventana que aparece, establezca la demora en 2.0 y haga clic en Aceptar.


Paso 17

Repita el paso anterior para las conexiones entre los otros nodos, pero esta vez establezca la demora en 1.0, porque hay la cuenta regresiva!


Eventos gatillo

Paso 1

Eventos de activación: Estos son eventos particulares que se usan para activar parte de un elemento, que no se muestra durante el juego, llamado "Activación". Los disparadores son cilindros, pero no son cilindros apropiados. Tienen un radio y una altura, pero no son un pincel o algo a lo que se pueda aplicar un material. El radio y la altura de estos cilindros describen el área en la que un jugador, un peón o cualquier cosa que desees, puede activar el evento relativo. Entonces, en este caso, los jugadores o los peones no son directamente responsables del inicio de un evento, sino que lo activan a través del contacto con el área definida del cilindro del Gatillo..


Paso 2

¿Recuerdas que escribiste en el último anuncio "Take the Shock Rifle?"? Bueno, supongo que es hora de poner uno en tu nivel. Pero primero, coloquemos un Desencadenador, que nos ayudará a definir el área en la que el jugador activará el próximo evento, y donde generaremos nuestro Lanzacohetes. Entonces, haz clic derecho en el piso, ve a "Agregar actor" y selecciona "Agregar activador". Ahora, notará que ha aparecido un ícono extraño, lo que parece ser un interruptor, con un rectángulo rojo que rodea a un cilindro verde..


Paso 3

Ahora, como dije antes, el cilindro es el área que define si hay contacto con el jugador o no, y activa un evento. Vamos a hacerlo más grande. Haga clic con el botón derecho en el gatillo, vaya a "Propiedades" y en "Componente del cilindro", modifique el radio y la altura del cilindro como desee (iré por un 60-60.)


Etapa 4

Probablemente, como con el mío, el cilindro de tu Trigger cayó al suelo. Así que deslízalo hacia arriba y cuando hayas terminado, vuelve a Kismet.


Paso 5

En un espacio en blanco cerca del último Anuncio, haga clic con el botón derecho y vaya a Nueva Acción> Actor y seleccione "Actor Factory".


Paso 6

Haga clic en este nodo, y en la barra de Fábrica, haga clic en la flecha azul a la izquierda y seleccione "UTFactoryPickup". Luego haga clic en "Fábrica" ​​para expandirla y, en la barra de inventario, seleccione "Rifle de descarga".


Paso 7

Luego, seleccione el Disparador en el nivel y regrese a Kismet, haga clic derecho en la entrada "SpawnPoint" y haga clic en "Nueva var. De objeto usando el disparador".


Paso 8

Ahora, conecte la salida del último nodo de anuncio a la entrada del nodo de fábrica del actor. Bueno, finalmente tenemos nuestro Rifle de Choque que se genera después del último anuncio..


Paso 9

Ahora, tenemos que engendrar un enemigo después de que el jugador haya tomado el Rifle de Choque. Para hacer esto, crearemos un evento de activación. Con el Disparador seleccionado en el nivel, ve a Kismet y haz clic derecho en un espacio en blanco, luego en "Nuevo evento usando disparador", selecciona "Tocar". Esto significa que el evento se activará cuando el jugador entre en el área del cilindro. Otra opción común es "Usado", significa que cuando el jugador está frente al cilindro y presiona la tecla E puede activar un evento. Las otras son elecciones menores, que no se usan frecuentemente con un Disparador.


Paso 10

Ahora, cree otro nodo "ActorFactory", pero esta vez en la barra de Fábrica, seleccione "UTActorAI". Y en las propiedades de fábrica, establezca ControllerClass: "UTBot", PawnClass: "UTPawn" y verifique la propiedad "GiveDefaultInventory".


Paso 11

Luego, déle un nombre (le dejaré la decisión) y conecte el evento "Trigger Touch" a "Actor Factory". Ahora, haga clic con el botón derecho en el resultado "Generado" y seleccione "Crear nueva var. De objeto".


Paso 12

En su nivel, en el lado opuesto de su activador, haga clic con el botón derecho en el piso, vaya a "Agregar actor" y seleccione "Agregar Pathnode".


Paso 13

Ahora, vuelva a Kismet, haga clic con el botón derecho en "Punto de generación" y seleccione Nueva var. De objeto usando Pathnode. Finalmente, has creado tu primer Evento de Disparo y tienes a tu enemigo desovando después de que el jugador haya tomado el arma, lo único que queda es darle al enemigo un objetivo..


Paso 14

En Kismet, haga clic derecho y vaya a Nueva Acción> Misc y seleccione "Traza".


Paso 15

Conecte la salida "finalizada" de ActorFactory a la entrada de "Seguimiento", luego conecte la entrada de inicio de "Seguimiento" a la variable de objeto de "Generada" de ActorFactory.


Paso 16

Ahora, haga clic derecho en un espacio en blanco, y vaya a Nueva Acción> AI y seleccione "Comenzar a disparar a".


Paso 17

Luego, haga clic derecho en un espacio en blanco, vaya a Nueva Acción> AI y esta vez selecciona "Stop Firing".


Paso 18

Conecte la salida "No obstruida" a "Comenzar a disparar" y "Obstruida" a "Dejar de disparar".


Paso 19

Conecte la salida de "Inicio" y "Detener activación" a la entrada de "Seguimiento" (como se muestra.)


Paso 20

Establecer su retraso de salida a .5.


Paso 21

Conecte la entrada de destino de "Inicio" y "Detener el disparo" a la variable de objeto generada.


Paso 22

Ahora, haga clic derecho en un espacio en blanco y vaya a Nueva Variable> Jugador, y selecciona "Jugador".


Paso 23

Conecta la entrada "Fire At" a la variable del jugador. De repente, has creado un bot (un enemigo) que aparece en el cilindro de disparo y luego busca al jugador. Y si está obstruido por algo, no dispara, mientras que si no está obstruido, puede disparar libremente al jugador..


Paso 24

Ahora, si intentas tu nivel, verás que a veces el enemigo aparece antes del final de la cuenta regresiva. Esto sucede porque el Disparador ya está habilitado y no espera el final de la secuencia de Kismet anterior. Para activar esto solo cuando finalice la cuenta regresiva, vamos a Kismet, seleccionamos "Trigger Event Touch" y deseleccionamos "Habilitado" en sus propiedades.


Paso 25

Luego haga clic derecho (como siempre en Kismet), y vaya a Nueva acción> Alternar y elige "Alternar".


Paso 26

Ahora conecte la salida del último nodo de anuncio de reproducción a la entrada "Activar" del nodo de alternancia y la salida del "Evento" de "Alternar" al "Evento de activación de activación". Ahora tienes un Evento de activación que está habilitado cuando la secuencia de Play Announcement ha finalizado.


Eventos InterpActor

Paso 1

Eventos InterpActor, StaticMeshActor y Brush: son similares a los desencadenantes, de hecho, estos eventos siempre se activan al entrar en contacto con un área, pero en este caso no con un área cilíndrica, sino con un área personalizada relacionada con el InterpActor o pincel) elegido. El único gran cambio, aparte de las diferentes áreas con las que puedes entrar en contacto, es que el Disparador está visible durante el juego, y puedes hacer contacto físico con él mientras juegas.


Paso 2

Finalmente, hemos llegado a los eventos InterpActor. Para este tipo de evento, crearemos una especie de división entre el nivel y la dividiremos en dos partes, ¡pero de una manera singular! Por lo tanto, vaya al "Navegador de contenido" y busque "thinwire", cuando finalice la búsqueda, haga doble clic en "Thinwire16" y haga clic con el botón derecho en su nivel y seleccione "Agregar InterpActor".


Paso 3

Ahora, busque "conector" y seleccione el primer resultado de su búsqueda, agregue este InterpActor dos veces.


Etapa 4

Ajuste estos tres elementos como se muestra en la imagen a continuación, para dividir la habitación en dos partes. (Para este propósito, escale el alambre delgado en Y por 1.2)


Paso 5

Con estos elementos aún seleccionados, presione F4 para abrir las propiedades.


Paso 6

Ahora, vaya a "Colisión" y configure el "Tipo de colisión" a "Tocar todo".


Paso 7

Lo que acaba de hacer es poner tres InterpActor en el nivel con un Tipo de colisión configurado en Tocar todo. Lo que significa que, en este caso, se activará un evento si el Jugador u otra persona toca los cables o los conectores. Ahora, debemos crear este evento! Seleccione los tres actores que hemos creado, vaya a Kismet, haga clic con el botón derecho en un espacio en blanco, y vaya a "¿Nuevo evento usando InterpActor?", Y seleccione "Tocar".


Paso 8

Haga clic derecho en Kismet, vaya a Nueva Acción> Actor y seleccione "Modificar Salud".


Paso 9

Seleccione el nodo "Modificar estado de salud" y establezca la Cantidad de daño en 100 (vida del jugador) también puede configurar el Tipo de daño como Aplastado o Telefragmentado si desea que se reproduzca un sonido cuando el Jugador recibe el daño..


Paso 10

Ahora, haga clic derecho en Kismet, vaya a Nueva Variable> Jugador y selecciona "Jugador".


Paso 11

Conecte la entrada "Objetivo" de "Modificar salud" a esta variable.


Paso 12

Conecte todas las salidas "tocadas" de los eventos de InterpActor al nodo "Modificar estado de salud". Ahora, cuando alguien toca los cables o los conectores, el jugador morirá. No es tan igual, pero en este nivel el enemigo no se mueve, solo se para frente a ti y te dispara, por lo que no puede tocar los cables. Mientras que el jugador debe tener cuidado cuando él mismo se mueve..


Paso 13

Todavía hay un problema que arreglar, si mueres al tocar los cables o los conectores y reaparece, al tocar el InterpActor que acaba de matarte, no volverás a matarte. Eso es porque nuestros eventos están configurados para activarse solo una vez. Para solucionarlo, vaya a Kismet, seleccione todos los nodos de eventos de InterpActor y vaya a "Eventos de secuencia".


Paso 14

Estas propiedades son las mismas en el nodo de inicio de cada evento: "Max Trigger Count" significa cuántas veces se puede activar el evento. "Demora de activación" significa cuánto tiempo dura una activación antes de la siguiente. "Habilitado" obviamente significa que si está marcado, el evento está activado, de lo contrario está inactivo. La "Prioridad" es útil cuando tiene muchos eventos que comienzan en el mismo momento y, finalmente, "Solo para jugadores o clientes" significa quién puede activar este evento. Para nuestro propósito, establezca el "Número máximo de disparos" en 0 (infinito).


Paso 15

Finalmente, el nivel está completo, entonces, guarda, reconstruye tu nivel de iluminación y caminos y estás listo para probar el nivel!


Paso 16

Ahora haga clic con el botón derecho, vaya a "Nueva condición" y seleccione "Está vivo".


Paso 17

Conecte la salida terminada a la entrada "Is Alive" y conecte la salida "True" a "Trace", y "Start Fire At" y la opción "Stop Fire" a la entrada "Is Alive's". También conecte el jugador "Is Alive" al objeto "engendrado". Ahora, finalmente ha solucionado el error (¡solo inténtelo!) Y está listo para jugar su nivel!