¡Primeros Pasos con UE4! 3: Colocar objetos y transformaciones básicas

Colocar objetos y transformaciones básicas

Habiéndose ya familiarizado con el uso y la navegación del viewport, podemos empezar a editar lo que tenemos en la escena y agregar nuestros propios componentes. Para esto no hace falta más que planear cómo queremos que se vea, colocar los elementos básicos y manipularlos para que se vean como deseamos.

La fórmula mágica: arrastrar y soltar

Así de simple es colocar casi lo que sea en el escenario. Prueba lo siguiente:

  1. Igual que como se hizo en el post anterior, busca en el content browser y carga el escenario “StarterMap”.
  2. En el content browser navega a la carpeta “props” y busca la malla “SM_MatPreviewMesh_02”.
  3. Da click, arrástrala y suéltala sobre una plataforma (piso) de tu escenario.

Voilà, ya sabes cómo colocar mallas en tu escenario. Puedes probar colocando cualquier otra malla estática en la carpeta de “props” y con las transformaciones acomodarlas de la manera que más te agrade. Algo así como el sketch de tu primer escenario.

Nota que lo primero que se puede apreciar cuando colocas un objeto es que se selecciona automáticamente. Esto hace que se muestren (por defecto) tres flechas dirigidas a cada uno de los ejes (X rojo, Y verde, Z azul).

Transformaciones globales/absolutas

Las coordenadas del mundo en UE4, como en cualquier otro software 3D, se rigen con estos ejes. Lo que miras originalmente son los ejes con respecto a la ubicación global, osea con respecto a tu mapa/mundo/escenario completo. La otra forma en que se pueden mostrar estas coordenadas son relativas, osea con respecto al objeto mismo. Un poco más adelante se explicará mejor esto.

Para cambiar la transformación a aplicar puedes presionar la barra de espacio (presiónala varias veces para que notes cómo cambia de desplazamiento a rotación, de rotación a escalamiento y de escalamiento otra vez a desplazamiento) o dar click en el ícono de cada transformación en la parte superior del viewport. Vale la pena ir mencionando estos otros botones de los que no se habló en la publicación pasada.

BotonesViewport1

 

Los primeros tres botones son para elegir entre las tres transformaciones básicas: desplazar, rotar y escalar (de izquierda a derecha). La forma gráfica de aplicarlas es lo que se explicará en este post, aunque también cabe notar que se pueden aplicar ingresando manualmente valores desde el menú de Detalles de tu(s) objeto(s) seleccionados, en la sección Transform.

Detallestransform

 

Puedes ir empezando a jugar con estos valores desde este punto, notarás que los valores de la localización absoluta están dados en centímetros, la rotación en grados y la escala en un valor flotante donde 1 significa su tamaño original, y cualquier otro valor es su tamaño original multiplicado por ese número, osea que si ingresas “0.5” en X, tendrá la mitad de ancho, y si le aplicas “2.0” en Z, será el doble de alto.

Desplazar

Lo primero que se debe aprender para diseñar un escenario es cómo mover las cosas de un lado para otro, de otra forma ¿qué tanto se puede hacer de un escenario solamente con un montón de cosas en el mismo sitio, no? Bien, pues empecemos a ver cómo se acomodan.

Cuando utilizas los gizmos para manipular tus objetos (las flechas, ruedas o líneas de color azul, verde y rojo que representan tus coordenadas y que están en el origen de tu objeto), estos pueden o no utilizar la función de gridsnapping. Esto significa que se ajusta a una especie de cuadrícula o escala (prefiero llamarle escala), que define un valor fijo a cada vez que hagas modificaciones a tu objeto. Esto es, si ajustas este valor en 10 para tu gridsnap de desplazamiento, se moverá de 10 en 10 cm por cada unidad que muevas las flechas. Puedes activar o desactivar los valores de gridsnapping de desplazamiento dando click a la cuadrícula.

gridsnapping

Cuando el gridsnapping está desactivado tu objeto se moverá en una escala tan pequeña como puedas hacer zoom, y esto te ayudará si necesitas hacer cambios de posición muy muy sutiles o si colocas objetos que no importa tanto que estén bien alineados con el resto de los objetos, pero normalmente es más conveniente si quieres conservar la simetría (como cuando te pones en plan de arquitecto y diseñas un cuarto, edificio o espacio cerrado) mantener tus valores de ubicación sin decimales y con gridsnapping activado. Prueba cambiando estos valores, y activando y desactivando el gridsnapping mientras intentas lo siguiente.

  • Para desplazar un objeto con una de las coordenadas globales haz click en cualquiera de las flechas que salen del origen de tu objeto y arrastrarla en las direcciones del eje.

Desplazar1d

  • También puedes seleccionar simultáneamente dos ejes entre los cuales desplazar tu objeto haciendo click en la línea que une estos dos ejes y arrastrando.

Desplazar2d

  • Y además, esto puede funcionar con los 3 ejes al mismo tiempo (aunque no es lo más intuitivo de usar) seleccionando el origen de las 3 coordenadas en tu objeto (el punto blanco).

Desplazar3d

Aplicar transformaciones en más de un eje al mismo tiempo funciona con desplazamiento y escalamiento, pero no con rotación. También, si por alguna razón no te agrada el cambio que acabas de hacer a tu objeto, presionar Ctrl+Z funciona igual que en cualquier otro programa para deshacer tu última acción.

Un “truco” muy útil cuando mueves objetos es mantener presionada la tecla Shift mientras arrastras tu objeto en cualquier dirección. Esto hace que la cámara del viewport siga viendo al objeto desde la misma perspectiva. También puedes mantener presionada la tecla Ctrl mientras desplazas tu objeto si quieres clonarlo; el objeto original se queda en la misma posición, y el que arrastras es la copia de éste. Puedes combinar el uso de ambas teclas para realizar ambas acciones al mismo tiempo; clonar tus objetos y mover la cámara a la par (suele ser útil cuando tienes que hacer cosas como columnas en un edificio o barras de un barandal, o cualquier otra cosa que te imagines).

Rotación

La rotación, como se dijo antes, está dada en grados, y también tiene su propio tipo de gridsnapping en estos valores. Para activar y desactivar el gridsnapping está el botón con unas flechas indicando un ángulo de abertura (que pareciera formar un triángulo).

anglesnapping

La rotación, a diferencia del desplazamiento y el escalamiento, solamente se puede hacer en un eje a la vez, porque, seamos honestos, rotar en dos ejes al mismo tiempo no sería tan preciso y lo haríamos solamente para divertirnos o mirar el objeto, en vez de acomodarlo de forma precisa. Y para utilizar los guizmos es igual que con el desplazamiento, solamente ubica el cursor en uno de sus ejes de color, haz click y arrastra el ratón.

rotacion

Otra cosa que vale la pena explicar en este momento es la forma en que se nombran los ejes cuando se habla de rotación. Si estás familiarizado con la aeronáutica esto ya lo sabes, si no, pon atención, porque cuando programes o hagas blueprints para automatizar la rotación de tus objetos esto te será indispensable. Ahora imagina un avión que apunta en la misma dirección que el eje X y expliquemos los ejes de rotación:

  • Pitch (cabeceo) para el eje Y, esto significa imaginar que la cabeza y cola de un avión es lo que gira, como si girara sobre una barra entre sus alas.
  • Yaw (guiñada) para el eje Z, es cuando gira a izquierda y derecha, como cuando giras tu cuello para mirar a otra parte.
  • Roll (alabeo) para el eje X, resulta en el movimiento sobre el largo del avión, como si rodara.

pitchrollyaw

 

Escalamiento

Quizás debería ser lo primero que deberías hacer antes de mover o rotar tu objeto, pero porque la vida es mágica y porque es lo más simple de explicar, la última transformación aquí es escalar objetos. Todo lo que necesitas es seleccionar el gizmo de escalamiento, los parámetros de gridsnapping y listo, funciona igual que el de desplazamiento.

escalamiento

Transformaciones relativas

Como encore al post y cereza de las transformaciones, aquí un truquito que quizás te ayude a diseñar tu nivel, pero estoy bastante seguro de que te ayudará cuando quieras automatizar cómo y hacia dónde se mueven los objetos cuando se acciona algún evento.

Las transformaciones relativas se aplican a los objetos solamente en desplazamiento y rotación, los dos tipos que se pueden utilizar son Local y Relativa.

Local vs Relativa

El desplazamiento y rotaciones locales, son aplicables con respecto a las propias coordenadas y orientación del mismo objeto. Para que notes esto, primero selecciona un objeto y prueba a tener los valores de rotación en 0,0,0.

ceroceroceroa cerocerocerob

Haz tus propias pruebas y muévelo un poco en cualquier dirección con el gizmo de desplazamiento. Cuando hayas terminado de probar y notes cómo se mueve, rótalo un poco en Z (yaw) y en X (roll) con respecto a tus coordenadas globales. Puedes saber si tu gizmo actualmente está trabajando con coordenadas globales o locales con el botón que está justo a la derecha de los selectores de transformación en el viewport; si tiene como imagen un “mundito” es que trabaja con coordenadas globales, si tiene un cubo son coordenadas locales.

gizmoglobalgizmolocal

Prueba moviéndolo unos 30º en cada dirección con el gizmo, ajusta tu gridsnapping a 30º para que te sea más fácil. Después da click en el botón para cambiar a coordenadas locales y ve cómo se transforma el gizmo. Prueba también con la herramienta de desplazamiento. Experimenta con las combinaciones de ángulos y posiciones que se te antojen, porque es a este tipo de cosas es probable que tengas que hacer mucha referencia si llegas a programar los eventos y acciones de los objetos en tu juego.

Rotación global Vs. Rotación local

A la izquieda: rotación global. A la derecha: rotación local.

Desplazamiento global Vs. Desplazamiento local

A la izquieda: rotación global. A la derecha: rotación local.

Por desgracia, no sería fácil explicar en este punto la diferencia entre las transformaciones relativas, porque en primer lugar no se pueden editar gráficamente en el viewport, y segundo, para eso primero hay que hablar sobre cómo emparentar objetos con otros objetos ya sea en C++ o con blueprints, pero aquí una breve idea sobre de qué van las transformaciones relativas:

  • Imagina que tienes un objeto con el que quieres que otro objeto siempre se mantenga a una misma distancia, algo así como si estuvieran conectados por una línea recta. Para eso tendrías que aplicar un desplazamiento relativo que se actualiza cada que el objeto padre (o principal) se mueve a alguna parte. Entonces suponiendo que el objeto padre se encuentra en 100 en la coordenada X y el otro en 120 en X, y el objeto padre se mueve hacia 110 en X, el objeto hijo tiene que agregar un desplazamiento de +10 en X, y acabaría en 130 en X
  • Ahora imagina que el objeto hijo siempre tiene que estar dándole la espalda al objeto padre. Esto necesitaría que conforme a la posición que tienen en línea recta, la rotación del hijo fuera relativa a la ubicación del padre.

 

Ahora que tienes una noción de cómo colocar objetos en tu nivel y transformarlos en ángulo, posición y tamaño, trata de comenzar a crear un escenario básico con lo que tienes a la mano. Una escena como sillas apuntando hacia la mesa como en el primer nivel de prueba, o poner lámparas en el techo que tiene el nivel utilizado en este post. ¡Que te diviertas! Conviértete en un maestro de las transformaciones.

Deja un comentario