‫Hola y bienvenido.
‫En esta lección, vamos a hacer nuestro movimiento, hacer algunos movimientos, marcando una casilla de verificación.
‫Habilitaremos que se mueva y se desplace a una velocidad constante.
‫Y vamos a hacer esto usando algunas funciones de biblioteca esta vez desde adentro.
‫Irreal.
‫Así que pondremos a prueba todo nuestro conocimiento de cabecera de archivos e incluye.
‫Vamos a sumergirnos y ver cómo funciona.
‫Entonces, la forma en que quiero que funcione este movimiento es que quiero que se mueva sin problemas desde donde comenzó hasta
‫un desplazamiento objetivo durante un período de una cierta cantidad de segundos.
‫Entonces, la forma en que necesitaremos configurar esto es agregar algunas propiedades nuevas en el archivo de encabezado.
‫Entonces, comencemos agregando una sección privada al encabezado del archivo
‫y luego agregaremos una nueva propiedad que se agregará en cualquier lugar, que definirá el desplazamiento, el desplazamiento del movimiento.
‫Entonces, ¿qué tan lejos debe moverse este motor cuando se activa?
‫Entonces, la forma en que vamos a hacer eso, usará un vector F y lo llamaré desplazamiento
‫de movimiento, así que no le daré un valor predeterminado.
‫Lo haremos en el editor.
‫Luego, voy a crear otra propiedad U que nuevamente se agregará en cualquier lugar,
‫que será la cantidad de tiempo que lleva moverse al objetivo.
‫Así que vamos a hacer que sea un flotador, que es tiempo de movimiento.
‫Voy a configurar eso en un valor predeterminado de, digamos, 4 segundos.
‫Ahora, hay una cosa más que quiero incluir aquí, que es un booleano solo
‫por ahora, que nos permitirá activar el movimiento para que se mueva hacia abajo cuando activemos este booleano.
‫Así que vamos a crear otra propiedad nueva de nuevo, editar en cualquier lugar para que podamos agregarla incluso mientras
‫estamos jugando.
‫Esto va a ser un valor booleano que dice que debe moverse y, de forma predeterminada, se establecerá en falso.
‫Entonces, cuando marcamos esto en el editor, cuando estamos jugando, irá y se moverá a su compensación de
‫movimiento objetivo.
‫Ahora, anteriormente, cuando teníamos un componente móvil, hacíamos todos los pasos manualmente.
‫Pero quiero mostrarles que en realidad hay algunas funciones integradas para hacer.
‫Muchos de los cálculos que necesitamos están integrados directamente en Unreal y también hay una función llamada
‫V interpret constant.
‫Y lo interesante de esto, echemos un vistazo a los comentarios.
‫Entonces, interpola un vector desde un vector actual a un vector objetivo usando un paso constante.
‫Eso significa que, con el tiempo, nos moveremos de la corriente al objetivo a cierta velocidad, y lo hará
‫constantemente, lo que suena exactamente como lo que queremos.
‫Queremos movernos desde nuestra ubicación actual a una ubicación de compensación de destino a una velocidad constante.
‫Ahora puede ver que echa un vistazo a la sintaxis de esta función.
‫Puede ver que tiene un tipo de retorno de vector.
‫Así que esa es la nueva ubicación que está interpolando.
‫Entonces tiene dos entradas.
‫Tenemos un vector F actual y no nos preocupemos por los otros símbolos alrededor de este efecto por ahora, solo lo
‫importante es que es un factor actual y luego el objetivo que queremos que alcance eventualmente, luego
‫tiene el Delta time, por lo que usa esto para hacer que la velocidad de fotogramas de movimiento sea independiente y la velocidad de
‫interpolación.
‫Entonces, ¿qué tan rápido deberíamos movernos desde nuestra ubicación actual hasta el objetivo?
‫Ahora notará que aquí en la documentación tiene una sección que dice incluir y esto le indica la
‫línea de inclusión que necesitará en su archivo C++ para poder usar esta
‫función.
‫Y como hemos visto en el video anterior, la línea de inclusión nos permite copiar las definiciones de este
‫archivo en particular.
‫Y una de las definiciones es la definición de esta función.
‫Entonces, nos permite usar esta constante de intercepción de V para ahora que la V delante de esta función básicamente
‫significa que interpola en vectores.
‫Es por eso que se llama v interpret a diferencia de otras funciones de interpolación que también están disponibles en
‫este archivo de biblioteca.
‫Así que echemos un vistazo a cómo lo usaríamos.
‫En primer lugar, vamos a copiar la línea de inclusión de la documentación y vamos a pasar a nuestro
‫ACP de movimiento donde queremos implementar esto en el cuerpo del componente de marca.
‫Pero incluyen que no incluimos dentro del cuerpo del componente tick.
‫Tenemos que hacer el include all en la parte superior del archivo.
‫Así que ahí es donde voy a poner el mío.
‫Voy a poner el mío después del include de move a dot h.
‫Así que vamos a poner e incluir para matemáticas una barra inclinada unreal math utility dot h.
‫Ahora lo que podemos hacer es usar la función dentro de nuestro componente tick.
‫Simplemente deshagámonos del código que ya tenemos y marquemos compilar.
‫Porque estábamos usando eso para entender cómo llamar funciones en otros actores.
‫Y lo que debemos hacer es si se desplaza hacia arriba, puede ver que la forma de llamar a esto es f math colon colon
‫V in tap constant to.
‫Así que estamos haciendo este operador de dos puntos que mira dentro de la clase matemática F, que
‫organiza todas estas utilidades matemáticas.
‫Así que vamos a hacer matemáticas F.
‫Colon.
‫Y aquí puede ver un montón de autocompletar para diferentes funciones matemáticas incluidas en ese archivo de
‫encabezado que acabamos de incluir en este archivo.
‫Así que puedes echar un vistazo, ver cualquiera de las cosas interesantes que hay aquí.
‫Puedo ver un montón de interpolaciones e interpolaciones circulares, etc. pero queríamos que la v interpretara constante.
‫Podemos presionar tab para completar eso y luego abrir algunos paréntesis y podemos ver los argumentos que necesitamos
‫pasar en la corriente, el tiempo delta objetivo y la velocidad de intercepción.
‫Entonces, comencemos a crear algunas variables para contener algunos de estos.
‫Entonces, antes que nada, necesitamos un vector F, que será nuestra ubicación actual, y no vamos a
‫configurarlo todavía.
‫Entonces vamos a tener un vector F para la ubicación del objetivo, y luego vamos a obtener un flotador para
‫la velocidad.
‫Y vamos a tener que calcular cada uno de estos individualmente para averiguar cómo podemos hacer que suceda este
‫movimiento.
‫Entonces, la ubicación actual será relativamente sencilla.
‫Necesitamos obtener la ubicación actual del actor propietario.
‫¿Entonces cómo hacemos eso?
‫Reemplacemos este punto y coma con un signo igual.
‫Luego hacemos un par de paréntesis para obtener el propietario que vamos a hacer Arrow.
‫Así que vamos a llamar a una función en el actor propietario, y vamos a obtener la ubicación del actor y luego un par de paréntesis
‫y un punto y coma para terminar.
‫Eso nos da la ubicación actual del actor propietario.
‫Ahora, ¿qué pasa con nuestra ubicación de destino?
‫Bueno, sabemos que tenemos una propiedad llamada Move Offset.
‫Así que eso va a estar involucrado aquí.
‫Pero necesitamos agregar la ubicación original a este desplazamiento de movimiento.
‫Entonces, para eso, necesitamos capturar la ubicación original al comenzar el juego.
‫Así que necesitamos un almacén de variables.
‫Así que vayamos a nuestro ejército.
‫H Y no va a ser una edición en ningún lado.
‫Así que lo pondré bajo propiedades de valor, será un vector F llamado ubicación original.
‫No vamos a establecer nada aquí que vayamos a repasar en nuestras películas.
‫CP Into Begin Play, elimine esta línea de comentarios y coloque nuestro propio código,
‫que será que la ubicación original es igual a obtener la flecha entre paréntesis del propietario obtener la ubicación del actor así.
‫Entonces, ahora que capturamos nuestra ubicación original y comenzamos a jugar, podemos usarla en tecnología.
‫Así que vaya a marcar y establecemos nuestra ubicación de destino igual a la ubicación original más el desplazamiento de movimiento.
‫Así que esa es nuestra ubicación objetivo.
‫Y finalmente, a la velocidad, bueno, esta es esencialmente la distancia que necesitamos mover dividida
‫por el tiempo que necesitamos para movernos.
‫Entonces, si tenemos una ubicación de destino y tenemos una ubicación original, necesitamos encontrar la distancia
‫entre estas dos, lo que podemos hacer con una columna de vector f, distancia de dos puntos.
‫Luego pasamos a los paréntesis, la ubicación original y la ubicación de destino.
‫Eso nos da la distancia entre estos dos vectores.
‫Y luego vamos a dividir eso por lo que nos sobra y nos mudamos llamado tiempo de movimiento.
‫Eso nos da la velocidad a la que deberíamos movernos.
‫Y ahora podemos usarlos como argumentos para nuestra constante de intercepción V.
‫Entonces, primero que nada, debemos darle la ubicación actual y luego la ubicación de destino.
‫Luego le diremos que es el tiempo Delta, que ya es un parámetro en el componente de tic.
‫Así que solo tenemos que pasar eso.
‫Y luego tenemos la velocidad de intercepción.
‫Así que vamos a pasar la velocidad como un punto y coma al final de esa línea.
‫Y esta es esencialmente la nueva ubicación.
‫Entonces almacenemos eso en un nuevo vector variable llamado nueva ubicación igual a esto.
‫Frio.
‫Ahora, necesitamos hacer algo con esa nueva ubicación porque no es bueno simplemente haberla
‫calculado, en realidad necesitamos mover al actor a la nueva ubicación.
‫Así que eso es lo que vamos a hacer.
‫Vamos a llamarlo a obtener propietario para que podamos hacer una obtención propia.
‫Flecha de paréntesis.
‫Y luego vamos a hacer una ubicación fija para el actor y vamos a pasar la nueva ubicación así y tendremos un punto y coma
‫al final de la línea.
‫Así que sigamos adelante y compilemos esto y veamos si funciona.
‫Así que si nos adentramos en la mazmorra, seleccionamos la pared que queremos mover.
‫Ahora puede ver que el componente de movimiento tiene un desplazamiento de movimiento, que voy a querer
‫hacer en la dirección Z, y creo que voy a hacer -600.
‫Y luego el tiempo de movimiento, 4 segundos debería estar bien.
‫Así que guardemos eso y luego presionemos reproducir y veamos si se mueve.
‫Así que no se mueve.
‫Y hay un error en el registro de salida que dice que la movilidad del actor se ha establecido en estática, por lo que
‫no se puede mover.
‫Entonces, si volvemos a seleccionar al actor y observamos su configuración de movilidad, puede ver que la configuración de movilidad del componente de malla estática, así
‫que seleccione el componente de malla estática y luego observe la movilidad.
‫Puede verlo configurado para especímenes estáticos.
‫No está permitido moverse.
‫Cambiemos eso a móvil porque queremos que se mueva.
‫Y luego sigamos adelante y presionemos reproducir.
‫Ahora, puedes ver en la oscuridad que la guerra estaba ocurriendo, lo cual es perfecto.
‫Creo que tenemos un movimiento en otro lugar, como se ve en este pilar aquí, que también está tratando de moverse.
‫Así que no hagamos eso.
‫Eliminemos el movimiento, un componente que agregamos allí solo para probar.
‫Y no debería darnos errores en el registro de salida.
‫Si seguimos adelante con el golpe de juego ahora, deberíamos tener ese muro bajando a su ubicación de destino.
‫Así que vamos a desafiarlo a hacer que se mueva con el valor booleano que creamos que es de su propiedad.
‫Entonces, envolverá el código en una declaración if apropiada y el código apropiado para que solo
‫mueva la plataforma cuando ese valor booleano sea verdadero.
‫Y luego vas a volver a compilar el código y reproducir un eject usando F ocho y luego cambiar el valor
‫booleano y observar la plataforma y ver si se mueve cuando compruebas ese valor booleano.
‫Así que pausa el video y pruébalo.
‫Bueno.
‫Bienvenido de nuevo.
‫Así que vamos a envolver este componente tecnológico en una declaración if, no super, pero todo lo demás que vamos a
‫hacer.
‫If debería mover y abrir algunos paréntesis y mover todo este código recordando sangrar un nivel porque estamos dentro de paréntesis y
‫queremos mostrar que esto solo se ejecutaría dentro de la instrucción if.
‫Haz que sea fácil para nosotros leer el control de todas las compilaciones de Taft elevens y luego deberíamos
‫poder ir y presionar reproducir y presionar F8 para expulsar si tenemos nuestro mouse capturado.
‫Y luego vamos a entrar para echar un vistazo a nuestro contorno y vamos a tratar de encontrar la pared.
‫O simplemente podemos hacer clic en la escena y luego vamos a seleccionar mover un componente y verificar si debe moverse
‫y se van, la pared comienza a moverse cuando eso sucede.
‫Buena cosa.
‫Te veré en la próxima conferencia.