‫Hola y bienvenido de nuevo.
‫Ahora, en este video, vamos a comenzar a hablar sobre cómo podemos mover nuestro tanque.
‫Entonces, para mover el tanque, tendremos que agregar algún tipo de compensación y un motor irreal.
‫Cuando se trata de agregar un desplazamiento, debemos tomar la decisión de realizar el desplazamiento en el
‫espacio local o en el espacio mundial.
‫Así que analicemos la diferencia entre estas dos cosas.
‫Ahora, aquí en el editor, tengo el tanque seleccionado, y tan pronto como lo tenga seleccionado,
‫notará que hay un artilugio.
‫Así es como se llama esta cosa, un artilugio.
‫Tiene tres flechas y cada una es de un color diferente.
‫Ahora, si no te has dado cuenta, en la parte inferior izquierda de la pantalla hay otro artilugio más pequeño.
‫Y esto se parece al artilugio del actor que estamos seleccionando.
‫Entonces, si selecciono a cualquier actor, siempre obtenemos este artilugio.
‫Y, por supuesto, el artilugio cambia cuando pasamos del modo de traducción al de rotación y al de escala.
‫Entonces, siempre que estemos en traducir, al que podemos acceder desde este ícono más a la izquierda en la parte
‫superior derecha de la ventana gráfica o con la tecla W, tenemos la capacidad de mover cosas o traducirlas arrastrando una de las flechas
‫en el artilugio.
‫Y los colores corresponden a los ejes rojo como eje x, verde es el eje y y azul es el eje z.
‫Ahora, si rotamos nuestra vista y miramos en una dirección diferente, veremos que ese artilugio todavía apunta
‫en la misma dirección original.
‫Y mientras giramos, el artilugio en la parte inferior izquierda de la ventana gráfica gira porque
‫la dirección del mundo no cambia.
‫Hasta aquí todo bien.
‫Ahora lo que estamos viendo son las direcciones del espacio mundial, pero para cada actor en el mundo, hay una dirección
‫local.
‫Y podemos ver que al hacer clic en este ícono que parece un mundo y la ventana emergente dice ciclos, el gizmo
‫de transformación coordina los sistemas entre el mundo y el espacio local.
‫Cuando vemos un mundo aquí, eso significa que estamos mirando el espacio del mundo, pero si hacemos
‫clic en él, ahora se convierte en un cubo y ahora estamos mirando el espacio local para el actor dado que hemos seleccionado.
‫El artilugio en la parte inferior izquierda de la ventana gráfica todavía nos muestra el espacio mundial.
‫Pero si tomo este actor y cambio al modo de rotación y lo giro, entonces cuando vuelvo al modo de traducción,
‫verán que el artilugio ahora está apuntando en una dirección diferente.
‫El propio actor tiene su propio eje x local.
‫Podemos pensar en el eje x del actor como su vector de avance.
‫Ahora observe que en la parte inferior izquierda de la pantalla, el artilugio sigue apuntando en la misma dirección.
‫Pero este actor aquí, el tanque de peones, tiene su propia dirección X local y apunta en una dirección diferente.
‫Ahora, si hago clic en el cubo aquí y lo vuelvo a convertir en un mundo ahora, el artilugio para el tanque
‫se empareja y se alinea con la dirección del eje del mundo para que podamos cambiar entre el mundo y el espacio local para
‫que cualquier actor vea su local. dirección versus su dirección mundial.
‫Así que hemos visto que para cualquier actor que seleccionamos en nuestro mundo, tiene su propia dirección local.
‫Y esto puede o no ser diferente a la dirección del mundo como se indica en esta imagen aquí.
‫Esto es muy importante cuando se trata de mover objetos en Unreal Engine.
‫Hay funciones para mover objetos y hay un conjunto diferente de funciones para moverse en el espacio
‫mundial frente al espacio local.
‫Digamos que nuestro tanque mira de esta manera y su eje x apunta ligeramente hacia la izquierda, como lo indica
‫la flecha que dibujé aquí en el tanque.
‫Ahora podemos ver, según este artilugio de la parte inferior izquierda, que la dirección del eje x del mundo apunta hacia
‫la derecha.
‫Entonces, el tanque no está alineado con la dirección del espacio mundial.
‫Ahora, supongamos que movemos este tanque en el espacio mundial en la dirección X positiva.
‫Luego, aunque el tanque apunte hacia la izquierda, seguirá moviéndose en esa dirección x del mundo y
‫parecerá que se mueve hacia atrás.
‫Así que eso no es lo que queremos.
‫Ahora, por otro lado, digamos que usamos una función diseñada para mover el tanque en su propio espacio
‫local.
‫Eso significa que si movemos el tanque en su propia dirección X local, avanzará en la dirección
‫esperada.
‫Y ese es el comportamiento que queremos.
‫Ahora en Unreal Engine.
‫La función que puede hacer esto por nosotros se llama Add Actor Local Offset.
‫Esta función mueve al actor en una dirección local.
‫Ahora aplica un desplazamiento, que es un solo movimiento.
‫Esencialmente, le decimos en qué dirección moverse y qué tan lejos, y mueve ese objeto una vez, lo que significa
‫que vamos a llamar a esta función en cada fotograma que queramos mover el tanque.
‫Así que vamos a moverlo en pequeños incrementos desde que llamamos a una función en cada cuadro.
‫Significa que lo estamos llamando mucho ahora para nuestro tanque, su propio eje X local es su dirección de avance.
‫Así que este es el eje que usaremos cuando agreguemos un desplazamiento local.
‫Ahora aquí está la documentación del motor irreal para el desplazamiento local del actor AGREGAR.
‫Verás que es una función que pertenece a la clase actor.
‫Es por eso que ahora se llama agregar desplazamiento local del actor porque existe en la clase del actor.
‫Los peones heredarán esta función para que podamos usarla.
‫Ahora aquí está la sintaxis.
‫Tiene cuatro parámetros de entrada.
‫El primero es un vector F llamado ubicación delta.
‫Así que vamos a necesitar crear un vector F que podamos pasar a esta función de desplazamiento local de agregar actor.
‫Entonces sabemos sobre este desplazamiento local del actor agregado.
‫Y me gustaría experimentar con esto solo para ver cómo funciona para que podamos hacer esto en la función de tic.
‫Ahora no estamos sobreescribiendo la función tic aquí en la clase tank, pero la tenemos en la clase base
‫pong.
‫Si vamos al CP del estanque base aquí tenemos la función de tic y no estamos haciendo nada aquí y esto es perfecto
‫para hacer algo de experimentación.
‫Entonces, lo que voy a hacer es escribir, agregar, actor, desplazamiento local así como así.
‫Y voy a hacer clic derecho y seleccionar ir a definición.
‫Ahora, aquí en el archivo CP del actor, tenemos la definición para AGREGAR Compensación local del actor.
‫Ahora nota algo interesante.
‫Está verificando si el componente raíz no es nulo y si no es nulo, entonces llama a esta función agregar compensación
‫local.
‫Así que realmente lo que estamos haciendo es agregar un desplazamiento al componente raíz.
‫Y dado que todos los demás componentes están adjuntos al componente raíz, se moverán junto con él.
‫Por lo tanto, es importante tener en cuenta que cuando agregamos un desplazamiento local, movemos el componente raíz
‫y todo lo demás simplemente se mueve con él.
‫Ahora, si nos desplazamos sobre Agregar desplazamiento local, veremos que los cuatro parámetros de entrada se enumeran
‫aquí.
‫Y aparte del primero, que es un vector F, los demás tienen valores por defecto.
‫Observe que el barrido bool B dice que es igual a falso.
‫Los parámetros de entrada tercero y cuarto también tienen estos valores predeterminados.
‫Esto significa que si llamamos a esta función y no pasamos entradas para los últimos tres parámetros de entrada, se establecerán
‫en estos valores de forma predeterminada.
‫Ahora voy a cerrar el CP del actor y aquí, en la función de marca del estanque base, me gustaría llamar a agregar el desplazamiento local
‫del actor en cada cuadro solo para ver cómo funciona.
‫Ahora sabemos que el primer parámetro de entrada es un vector F.
‫Se llama ubicación delta.
‫Esta es la cantidad de movimiento que nos gustaría agregar cada vez que llamamos a esta función.
‫Así que voy a crear un vector F llamado ubicación delta.
‫Por lo tanto, ubicación del delta del vector F.
‫Ahora me gustaría poner a cero este vector.
‫En otras palabras, asegúrese de que esté inicializado con todos ceros.
‫Ahora quiero un vector cero que pueda pasar en cero f, una x, y y z obtendrán cero f.
‫Así que esto servirá para mis propósitos muy bien.
‫Ahora voy a tomar Delta Location X y voy a cambiar eso a dos puntos F.
‫De esa forma tenemos un vector con Y y Z iguales a cero, una x igual a dos.
‫Así que seguiré adelante y pasaré la ubicación Delta para agregar el desplazamiento local del actor como una especie de experimento.
‫Ahora puedo salirme con la mía llamando al desplazamiento local del actor y simplemente pasando el primer parámetro de entrada,
‫ya que los otros tres son opcionales.
‫Así que voy a compilar esto y ver qué pasa.
‫Ahora, si seguimos adelante y presionamos reproducir, observen un par de cosas.
‫En primer lugar, mira, la torre también se está moviendo.
‫Esto se debe a que ponemos esto en la función de marca para el peón base y ambos enlaces se heredan del peón
‫base.
‫Entonces, de hecho, todos estos estanques se estaban moviendo.
‫Y lo interesante es que todos se mueven en sus propias direcciones del eje x.
‫Podemos ver todo moverse a la vez desde este punto de vista.
‫Si hacemos clic en el menú desplegable junto a jugar y seleccionamos simular, esto nos permite jugar sin
‫poseer estanques.
‫Entonces, si hago clic en Simular, verifique esto.
‫Cada estanque se mueve en su propia dirección del eje x.
‫Eso es realmente bastante extraño y bastante genial.
‫Así que esto nos muestra cómo funciona la compensación local del actor publicitario.
‫Mueve las cosas en sus direcciones locales.
‫Ahora podemos salir del modo de simulación haciendo clic en el menú desplegable y seleccionando la ventana gráfica
‫seleccionada y esto nos permitirá jugar en el modo de juego normal.
‫Muy bien, voy a detener esto y podemos volver a la base, y podemos eliminar este código experimental.
‫Continuaré y simplemente lo eliminaré de la función de marca para que ahora sepamos cómo funciona la compensación
‫local de agregar actor.
‫Así que volvamos a Tank CP y aquí tenemos la función MOVER.
‫Sabemos que esta función se llama en cada cuadro y sabemos que el valor es igual a uno.
‫Si estamos presionando la tecla W y es uno negativo, si estamos presionando la tecla y es cero si estamos presionando
‫ambas o ninguna.
‫Entonces, para su desafío, va a mover el tanque usando el desplazamiento local de agregar actor.
‫Así que en la función MOV vas a crear un vector F llamado ubicación delta.
‫Ahora asegúrese de poner a cero X, Y y z.
‫Puede hacer esto de varias maneras, como usar uno de los diversos constructores de vectores f.
‫Ahora, una vez que haya puesto a cero todos los componentes, establezca su x en el valor del parámetro de entrada
‫flotante en la función MOV.
‫Una vez que haya hecho esto, continúe y llame al paso de compensación local del actor en la ubicación delta.
‫Pausa el video y haz esto ahora.
‫Bueno.
‫Así que estoy de vuelta aquí en el archivo CP del tanque.
‫Ahora, ya no necesito este registro EWI, así que lo sacaré y crearé un vector F
‫llamado ubicación Delta.
‫Ahora puedo usar uno de los constructores de vectores F.
‫Ya te mostré cómo crear un nuevo vector con todos ceros.
‫Voy a mostrarles otra manera, que es inicializar esto con vector f, vector cero.
‫Y esto es exactamente lo que parece, un vector con cero para cada componente.
‫Esto es solo para mostrarle una forma alternativa.
‫Así que tenemos un vector cero.
‫Ahora tomaré la ubicación delta X y estableceré un valor igual.
‫Y, por último, puedo llamar a agregar el desplazamiento local del actor que pasa en la ubicación delta.
‫Así que vamos a compilar esto y de vuelta aquí en el editor, voy a tomar mi tanque y voy a orientarlo para
‫que esté mirando en la dirección X del mundo y luego puedo presionar reproducir y ahora hacer clic en la ventana
‫gráfica.
‫Si presiono la tecla W, me muevo hacia adelante y si presiono la tecla, me muevo hacia atrás.
‫Si presiono ambos, se cancelan entre sí y no me muevo en absoluto.
‫Y claro, si no presiono nada, tampoco me muevo.
‫Así que ahora tenemos movimiento para nuestro tanque, pero es un poco lento, así que vamos a tener que hacer algunos ajustes.
‫Y también vamos a hablar sobre cómo ajustar esta mecánica de movimiento con nuestro tanque.
‫Entonces, en resumen, aprendimos sobre ADD Actor, el desplazamiento local y la diferencia entre el espacio mundial y
‫el espacio local.
‫En el siguiente video, continuaremos perfeccionando esta mecánica de movimiento con nuestro tanque.
‫Te veré pronto.