‫Hola y bienvenido.
‫En esta conferencia, vamos a conectar nuestro sistema de salud al modelo de animación para que
‫pueda filmar a este personaje hasta que muera.
‫Vamos a sumergirnos y ver cómo funciona.
‫Por lo tanto, desea que este booleano en los planos de animación se establezca automáticamente desde el juego.
‫Y si pasamos al gráfico de eventos y observamos cómo funciona esto actualmente, otras propiedades como esta,
‫como obtener velocidad, activarse, transformar, vamos al peón y estamos haciendo una función de
‫obtención en él. cada vez que queremos actualizar la animación.
‫Así que queremos seguir este modelo en el que vamos a ir y saber si nuestro jugador está
‫muerto o no.
‫Tal es así que necesitamos exponer alguna funcionalidad, alguna función invocable desde nuestro C++.
‫Así que vayamos a C++ y echemos un vistazo a lo que hay.
‫Así que podríamos crear una función pública, pero eso no necesariamente la hace accesible.
‫Para hacer la accesibilidad, necesitamos tener una nueva función que lo haga visible para los planos y el sistema de herramientas de
‫encabezado en rieles.
‫Pero tenemos que ir un paso más allá de simplemente tenerlo como una nueva función.
‫Así que comenzamos con la macro de función, pero queremos que sea invocable mediante blueprint.
‫Entonces esa es la opción que podemos usar blueprint callable.
‫Sin embargo, hay otra opción que anula el blueprint callable y implica que es
‫blueprint callable y que es blueprint puro.
‫Ahora veremos la diferencia entre blueprint pure y Blueprint callable en solo un segundo.
‫Pero solo sepa que si usa blueprint pure, está haciendo lo mismo que Blueprint Callable y algo más.
‫Por lo tanto, está haciendo un poco más que un plano invocable.
‫Y luego lo que queremos es una función que devuelva un valor booleano que diga si este personaje está muerto
‫o no.
‫Eso nos va a ser útil saberlo.
‫Y finalmente, queremos que esto sea una función de miembro del concierto.
‫Ahora bien, ¿por qué quiere ser concierto?
‫Porque cuando llamamos a esta función, no esperamos que cambie ninguno de los estados del carácter "Preguntarle", por lo que podemos
‫decir con seguridad que debería ser una función de concierto.
‫Y, de hecho, concert y blueprint pure a menudo van juntos porque blueprint pure significa que si vamos a
‫cualquier blueprint, podemos echar un vistazo a algunas notas puras.
‫Este de aquí tiene transformación activa.
‫Esa es una nota pura.
‫Obtener la velocidad es una nota pura La velocidad establecida no es una nota pura.
‫¿Puedes ver lo que podría estar uniendo estos juntos?
‫¿Qué pasa con estos hace que este no sea puro y este sea puro?
‫Bueno, en términos generales, es el hecho de que esta pluma de ejecución, un nodo puro, es uno que no tiene
‫un pin de ejecución.
‫Y, por lo general, es seguro decir que algo no tiene un pin de ejecución cuando no tiene ningún impacto en
‫lo que está llamando solo en su resultado.
‫Esencialmente, esto significa que no importa cuántas veces llamemos a esta función, siempre generará
‫el mismo resultado.
‫Siempre va a tener el mismo efecto en el programa.
‫Es una función pura.
‫No cambia nada cuando se llama.
‫Así que es más o menos lo mismo que const, aunque es un poco más fuerte porque lo que
‫dice no es solo que no cambia nada aquí en el personaje de disparo, sino que no cambia nada
‫global, ningún estado, en ninguna parte.
‫Punto final.
‫La única entrada, el único efecto que tiene está en las salidas que produce.
‫Es por eso que estamos eligiendo hacer este modelo puro.
‫Elimina la necesidad de un pin de ejecución, lo que lo hace mucho más agradable en los planos.
‫Y también expresa el hecho de que no estamos haciendo ningún cambio en el estado de nuestro juego cuando llamamos
‫a esta función.
‫Así que sigamos adelante y tratemos de crear una implementación para esto.
‫De hecho, les dejaré la implementación como un desafío, y vamos a repasar y
‫conectar esto en un gráfico, lo siento, un gráfico de eventos del proyecto de animación.
‫Así que vamos a hacer esto al tener un nuevo conjunto aquí.
‫Queremos establecer la variable booleana is dead al final y queremos obtener el propietario del peón y queremos lanzar eso
‫porque debe ser un personaje disparado para tener esta propiedad is dead.
‫Así que queremos lanzarlo también.
‫Y en este caso, quiero convertirlo en el personaje del tirador de C++
‫porque no necesito ir hasta el final para decir que definitivamente es una versión modelo de esto porque esta función existe realmente en
‫el nivel de C++.
‫Así que vamos a seguir adelante y lanzar.
‫Si tenemos éxito en el reparto, estableceremos la propiedad is dead.
‫Ahora déjame poner algunos nodos de redirección aquí para hacer que nuestro proyecto se vea un poco
‫mejor.
‫Y luego, lo que queremos hacer es usar this shoots una referencia de personaje ahora que
‫lo hemos convertido en un personaje shoots y sabemos que debería tener esta propiedad muerta, por lo que deberíamos poder hacer eso.
‫Una vez que haya compilado y hecho funcionar, puede obtener esta propiedad muerta y configurarla aquí.
‫Así que es hora de que tu desafío calcule si estamos muertos o no.
‫Así que devuelve el valor booleano correcto de nuestra función is dead.
‫Ese es el primer paso.
‫Es posible que desee usar algunas desigualdades con una variable de salud para eso y luego conectar nuestra variable.
‫El muerto es muerto variable.
‫En el modelo de animación nos quedamos cortos de hacer eso.
‫Solo necesitábamos básicamente una compilación antes de hacerlo.
‫Pausa el video y arregla eso.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vayamos al código, en primer lugar.
‫Entonces, de manera bastante directa, voy a devolver una expresión que devuelve un valor booleano.
‫Entonces queremos decir, ¿la salud es menor o igual a cero, en cuyo caso estamos realmente muertos?
‫Eso es lo más simple que puede ser una función de expresión.
‫Así que sigamos adelante y construyamos eso.
‫Y una vez que se haya compilado, podemos ir a Unreal y conectarlo.
‫Entonces, al arrastrar el personaje como tirador, somos un nodo, vamos a tener una referencia de disparar un personaje aquí.
‫Así que lo que queremos hacer es muerto nos da esta es una función muerta, pueden ver que no tiene pin de ejecución
‫porque es pura.
‫Luego quitamos este booleano de eso y lo conectamos a nuestra variable is dead.
‫Y ahora, si seguimos adelante y jugamos, deberíamos poder matar a ese personaje en el mundo.
‫Le dispararemos hasta que su salud llegue a cero.
‫Y ahí tienes
‫La animación lo ha matado con éxito.