‫Así que nos gustaría que la cámara se moviera una vez que nuestro proyectil golpee, algo así.
‫Y también nos gustaría que se sacudiera una vez que uno de nuestros estanques muera.
‫Oye, bienvenido de nuevo.
‫En este video, agregaremos otro tipo de efecto especial a nuestro juego que consiste en sacudir la
‫cámara.
‫Nos gustaría sacudir la cámara cuando el proyectil golpea algo, así como cuando muere uno de
‫nuestros estanques.
‫Esto agregará otro toque final al juego que lo hará sentir un poco más profesional.
‫Así que vamos a sumergirnos ahora.
‫Aquí estamos dentro del editor y me gustaría agregar una nueva clase para nuestro movimiento de cámara.
‫Unreal Engine tiene una clase integrada para agitar la cámara.
‫Ahora voy a crear una nueva carpeta aquí en la carpeta de planos y llamaré a esta cámara sacudida.
‫Y en la carpeta de movimiento de cámara.
‫Voy a hacer clic derecho y crear un nuevo plano.
‫La razón por la que estamos haciendo un plano es porque esta es una de esas cosas que
‫es mucho más fácil de hacer desde el lado del plano, ya que hay muchas variables para ajustar con los movimientos de la cámara, y la clase
‫que estamos buscando es la cámara matinée. agitar para que podamos buscar el movimiento de la cámara y elegir.
‫Sacudida de cámara matinée.
‫Haga clic en Seleccionar y llamaremos a este primer movimiento de cámara.
‫BP golpeó la vibración de la cámara.
‫Ahora hagamos doble clic en este nuevo plano y ábralo y veremos que tiene un panel de
‫detalles con muchas variables diferentes para elegir.
‫Y hablemos de algunos de estos parámetros que existen en la clase de vibración de la cámara.
‫Ahora, hay bastantes aquí, y solo vamos a tocar un par que afectan la sensación general del
‫movimiento de la cámara.
‫Ahora verás que hay una sección llamada oscilación.
‫Y la razón por la que esta sección se llama oscilación es porque un movimiento de la cámara implica oscilar
‫la cámara.
‫Ahora, aquí está la página de Wikipedia para una onda sinusoidal.
‫Una onda sinusoidal es una función matemática y no necesitamos entender las matemáticas detrás de una onda sinusoidal.
‫Pero ayuda ver cómo se ve una onda sinusoidal.
‫Si me desplazo hacia abajo aquí a la derecha, veo esta onda roja aquí y está etiquetada como seno, una onda sinusoidal
‫oscila.
‫Eso significa que sube y baja o va y viene.
‫Entonces, si nuestra cámara se mueve de un lado a otro de manera suave, decimos que está oscilando.
‫Ahora vemos que tenemos una duración de oscilación y un tiempo de mezcla y un tiempo de mezcla.
‫La duración afecta cuánto va a durar el batido.
‫Ahora, estos son valores con los que puede experimentar, pero ya he experimentado un poco y conozco
‫algunos buenos valores aproximados para el movimiento de la cámara.
‫Cuando el proyectil golpea algo, vamos a tener una duración relativamente corta.
‫Ahora, esto es en segundos, y voy a elegir 0. 2 5 segundos para la duración de este movimiento de la cámara y
‫para el tiempo de mezcla de entrada y salida.
‫Voy a usar valores de 0. 05, entonces 0. 05 para mezcla en tiempo y 0. 05 para el tiempo de mezcla.
‫Este es el tiempo que se tarda en mezclarse dentro y fuera del movimiento de la cámara, que durará 0. 2 5 segundos.
‫Ahora tenemos diferentes tipos de oscilaciones.
‫Tenemos oscilaciones rotacionales, y estas rotarán la cámara de acuerdo a esa función de oscilación.
‫Tenemos una oscilación de ubicación que sacudirá la cámara en el espacio y una oscilación del campo de visión,
‫que afectará al campo de visión, que básicamente consiste en acercar y alejar la cámara.
‫Ahora, la rotación y las oscilaciones del campo de visión son las que son más propensas a causar mareos.
‫Así que puedes experimentar con ellos si quieres.
‫Pero para este movimiento de cámara, solo vamos a cambiar la oscilación de ubicación.
‫Ahora tenemos tres ejes X, Y y Z, y vimos que la onda sinusoidal sacudirá algo de un lado a otro.
‫Estas oscilaciones sacudirán la cámara hacia adelante y hacia atrás en las direcciones X, Y y z.
‫Voy a hacer clic en estos menús desplegables para expandirlos y veremos que cada eje tiene una amplitud, una
‫frecuencia, así como un desplazamiento inicial y una forma de onda.
‫Ahora, el desplazamiento inicial para el movimiento de la cámara se establece en aleatorio, y podemos dejarlo al azar para
‫que tengamos un movimiento de cámara menos predecible.
‫Y la onda sinusoidal es el tipo de forma de onda que se usa cuando se sacude la cámara.
‫Y vimos que tiene un suave movimiento hacia arriba y hacia abajo.
‫Ahora la amplitud es la cantidad máxima de movimiento en ese eje que se moverá la cámara.
‫Voy a configurar estos tres para que tengan amplitudes de diez, una X, Y y z, y la frecuencia
‫será qué tan rápido oscila la cámara.
‫Voy a configurar estos también para que sean diez.
‫Ahora veremos cómo se ve esto tan pronto como implementemos el movimiento de la cámara.
‫Pero antes de hacer eso, voy a crear otro movimiento de cámara y esto será para cuando muera
‫el peón.
‫Así que hagamos clic derecho, creemos una nueva clase de plano y busquemos movimiento de cámara y seleccionemos movimiento de cámara matinée,
‫haga clic en seleccionar.
‫Y para esto, vamos a llamar a este movimiento de cámara de profundidad BP.
‫Ahora, el movimiento de la cámara de la muerte va a ser un poco más violento que el movimiento de la cámara del golpe.
‫El golpe de la cámara sacudirá la cámara cuando nuestro proyectil golpee algo.
‫Pero el movimiento de la cámara de la muerte hará temblar la cámara cuando algo muera.
‫Entonces, para la duración de la oscilación, voy a hacer esto un poco más largo.
‫voy a ir 4. 3, 5 segundos y cuatro, tiempo de mezcla y tiempo de salida.
‫Voy a poner estos dos a 0. 1.
‫Ahora, solo una nota al margen que mezcla el tiempo de entrada y salida.
‫¿Los porcentajes del tiempo completo están normalizados entre cero y uno?
‫Entonces, el punto uno es el 10% de la duración total de la oscilación.
‫Ahora voy a establecer las amplitudes en 54 X e Y y dejaré la amplitud Z en cero para que solo sacudamos
‫la cámara en X e Y después de... la muerte.
‫De esta manera obtendremos un movimiento de cámara un poco diferente.
‫Y para la frecuencia, voy a configurar ambos en 20.
‫Así que ahora tenemos un movimiento de cámara y es hora de implementar la reproducción real de estos movimientos de cámara
‫desde el lado de C++.
‫Ahora, para reproducir un movimiento de cámara, necesitamos algunas variables de movimiento de cámara.
‫Si está utilizando una versión anterior de Unreal Engine, Unreal Engine 4. 25 y menos específicamente, entonces la clase
‫para sus variables será usted.
‫Vibración de la cámara.
‫Pero en las versiones más nuevas 4. 2, seis y más.
‫Y esto incluye Unreal Engine cinco.
‫Vamos a utilizarte matiné.
‫Vibración de la cámara.
‫Así que eso es lo que vamos a usar en este video.
‫Ahora, las funciones para reproducir un movimiento de cámara también son diferentes.
‫Si estás en 4. 2, cinco y menos, entonces la función que vas a usar es juego de cliente.
‫Vibración de la cámara.
‫Y esta es una función en la clase de controlador de jugador ahora en 4. 26 y más, incluyendo 5. 0, que es lo que
‫estamos usando.
‫Vamos a utilizar el movimiento de la cámara de inicio del cliente como reproducción del cliente.
‫El movimiento de la cámara ahora está obsoleto.
‫Entonces, dado que estamos usando Unreal Engine cinco, usaremos clientes, inicie el movimiento de la cámara.
‫Y si está usando cinco, los seguirá y usará los clientes para iniciar el movimiento de la cámara.
‫Pero para la versión de motor anterior, específicamente 4. 2, cinco y menos, use la clase y la función en
‫el lado izquierdo allí y todos los demás usen la clase y la función en el lado derecho.
‫Ahora solo para mostrarle, aquí está la base de movimiento de la cámara en la documentación y aquí está la inclusión.
‫Así que vas a usar esta base de movimiento de cámara con barra inclinada para la inclusión.
‫Entonces, primero, me gustaría manejar el movimiento de la cámara en la clase de proyectiles.
‫Así que aquí en proyectil, voy a agregar un movimiento de cámara.
‫Ahora, esto será declarado hacia adelante.
‫Voy a hacer una U.
‫Base de vibración de la cámara.
‫Es un puntero.
‫Y voy a llamar a este hit camera shake ahora porque me gustaría configurar esto a partir de planos.
‫Ya que tenemos un modelo de movimiento de cámara, voy a exponer esto.
‫Va a ser una nueva propiedad.
‫Voy a hacer que se edite en cualquier lugar y darle una categoría.
‫Y para esto, lo mantendré en la sección de combate.
‫Ahora estoy listo para reproducir el movimiento de la cámara.
‫Entonces, en CP de proyectiles, voy a colocar esto en hit aquí en el cheque para otro actor.
‫Y lo primero que voy a hacer es asegurarme de haber configurado el movimiento de la cámara a partir de
‫planos, lo que significa que debo asegurarme de que el movimiento de la cámara no sea nulo.
‫Entonces, si golpeo el movimiento de la cámara, entonces puedo iniciar el movimiento de la cámara.
‫Y aquí hay un movimiento de cámara de inicio de cliente de controlador de jugador para las versiones 4. 26 y más.
‫Ahora observe un par de cosas.
‫Estos involucran dos subclases de variables, lo que significa que necesitamos una nueva clase.
‫Ahora creamos planos para estas variables, lo que significa que podemos crear fácilmente una subclase en lugar
‫de una variable regular aquí.
‫Así que puedo tomar esta clase de la base de movimiento de la cámara y ponerla dentro de una subclase PT de, digamos subclase PT de y voy a mantener la declaración
‫de avance aquí y no necesito el asterisco ya que la subclase PT de simplemente envuelve esto en la plantilla y debido
‫a que este golpe de movimiento de la cámara es en realidad una subclase de PT, voy a llamarlo clase de golpe de movimiento
‫de la cámara y ahora en proyectil ese CPP en lugar de golpe de movimiento de la cámara llamemos a este golpe
‫de clase de movimiento de la cámara y ahora podemos llamar un movimiento de cámara de inicio de cliente.
‫Ahora, esta función pertenece al controlador del jugador y estamos aquí en el CP del proyectil y no tenemos una
‫variable para el controlador del jugador, pero tenemos esta función obtener el primer controlador del jugador que existe en la
‫clase mundial U para que podamos llamar a obtener world y luego llama a get first player controller.
‫Así que vamos a hacer eso.
‫Entonces, primero llamaremos a Git World y desde allí vamos a llamar a obtener el primer controlador del jugador y desde
‫obtener el primer controlador del jugador, podemos llamar a un movimiento de cámara de inicio del cliente y veremos que
‫esto toma una subclase PT de nosotros vamos a pasar en la clase hit camera shake y el resto de estos
‫parámetros de entrada tienen valores predeterminados, por lo que podemos omitir las entradas restantes.
‫Así que sigamos adelante y compilemos esto.
‫Así que de vuelta aquí en el editor, estamos listos para probar esto.
‫Ahora creamos el modelo y la subclase de PT, pero necesitamos configurar esa subclase de PT.
‫Así que entremos en actores y proyectiles BP.
‫Voy a abrir el editor de planos completo e ir a la sección de combate y aquí está mi
‫subclase t de clase de movimiento de cámara de golpe. Puedo abrir esto y seleccionar movimiento de cámara de golpe y ahora esto estará configurado.
‫Así que voy a compilar, presione reproducir y veamos si hacemos que la cámara se mueva.
‫Y ahí va.
‫Impresionante.
‫Entonces, a continuación, quiero reproducir un movimiento de cámara cuando el pod muera.
‫Así que voy a ir a bass pond y agregar una variable de movimiento de cámara aquí.
‫Así que aquí abajo, hagamos otra subclase t de variable.
‫Voy a reenviar declararlo.
‫Va a ser su base de movimiento de cámara y voy a llamar a esta clase de movimiento de cámara de profundidad.
‫Y al igual que nuestro otro, vamos a hacer de esto una propiedad U.
‫Edite el combate de categoría Anywhere y ahora tenemos una clase de movimiento de cámara aquí en base pon.
‫Ahora voy a desafiarte a que juegues el movimiento de la cámara de la muerte para el peón cuando muera.
‫Así que vas a hacer esto cuando el... muera y eso va a estar en la destrucción del mango, por supuesto.
‫Así que elija la ubicación correcta en esta función para reproducir este movimiento de cámara y luego compile su código.
‫Establezca la subclase de valor en las clases de plano de tanque y torre y pruébelo.
‫Pausa el video e implementa la cámara de la muerte.
‫Agitar ahora.
‫Bueno.
‫Así que tenemos nuestra clase de movimiento de cámara def.
‫Vayamos al CP del estanque base y me desplazaré hacia arriba para manejar la destrucción.
‫Y lo primero que voy a hacer es verificar para asegurarme de que la clase de movimiento de la cámara de profundidad esté configurada y,
‫si lo está, entonces podemos reproducir el movimiento de la cámara.
‫Ahora no tenemos un puntero al controlador del jugador aquí, así que voy a llamar a Get
‫World desde aquí, obtener el primer controlador del jugador y desde allí voy a llamar.
‫El cliente inicia el movimiento de la cámara.
‫Y aquí podemos pasar en cámara de profundidad, sacudir la clase.
‫Y ahí lo tenemos.
‫Así que vamos a compilar esto y volveremos al editor y voy a abrir la carpeta --'s, BP
‫-- tank.
‫Y aquí tenemos la clase de movimiento de cámara de profundidad.
‫Voy a poner esto a muerte.
‫Cámara, agitar, compilar y guardar y cerrar.
‫Voy a cerrar el proyectil también.
‫Y abra el estanque BP, la torreta y configure la clase de vibración de la cámara de profundidad a la vibración de la cámara de profundidad aquí también.
‫Ahora podemos probar la muerte.
‫Entonces, veamos cómo funciona esto.
‫Kay, voy a subir a una de las torres y.
‫Boehm.
‫El movimiento de la cámara funciona.
‫Ahora, lo último que hay que comprobar es si la cámara se mueve cuando mueren las torres.
‫Así que sigamos adelante y matemos una de las torres.
‫Y ahí vamos.
‫Conseguimos que la cámara se sacudiera.
‫Impresionante.
‫Entonces, en resumen, ahora estamos moviendo la cámara.
‫Lo estamos sacudiendo cuando el proyectil golpea algo y cuando uno de los estanques muere.
‫Este es solo otro de esos agradables efectos de pulido que hacen que nuestro juego se vea un poco más profesional.
‫Hablando de pulir en nuestro próximo video, vamos a pulir el juego y ponerlo en
‫su estado de funcionamiento final para que podamos concluir esta sección y tener un juego de trabajo completo en nuestro haber.
‫Te veré pronto.