Espacio global, espacio local y jerarquía

Clase 13 de 22Curso de Introducción a Unity: Interfaz

Resumen

¿Cómo entender la diferencia entre el espacio global y el local en el desarrollo de juegos?

La diferencia entre espacio global y espacio local es fundamental al trabajar con simulaciones 3D y motores de juego como Unity. Imagina tener la capacidad no solo de manipular el posicionamiento y la orientación de objetos en un entorno digital, sino también de cambiar la interpretación del "norte", "sur", "arriba" o "abajo", dependiendo del contexto. En este contexto, explorarás cómo los objetos rotan y se posicionan dependiendo de si estás usando un espacio global o local.

¿Qué es el espacio global y cómo se interpreta?

  • Espacio Global: Define un marco de referencia universal en el que todos los objetos del entorno están ubicados en un sistema de coordenadas predeterminado. Es como tener una brújula donde "norte" y "sur" siempre apuntan al mismo lugar sin importar la perspectiva del observador. Por ejemplo, las latitudes y longitudes en un mapa son coordenadas globales, permitiéndote ubicar cualquier punto en el planeta de manera consistente.

¿Cómo funciona el espacio local?

Por otro lado, el espacio local es relativo. Imagina que estás en una habitación y alguien te dice "a la derecha". La dirección dependerá de hacia dónde estás mirando. En un entorno de juego, cada objeto puede tener su propio marco de referencia.

  • Espacio Local: Abarca el punto de vista individual de un objeto, donde "arriba", "abajo", "izquierda" y "derecha" dependen de la orientación actual de dicho objeto. Esto permite acciones como rotaciones complejas y transformaciones entendidas desde el "punto de vista" del objeto, no desde un marco universal.

¿Cómo se emplea la jerarquía en la organización de objetos en Unity?

La jerarquía es el sistema estructural que define las relaciones padres-hijo entre los objetos del juego. Es crucial para aplicar transformaciones de manera efectiva y para administrar los pivotes (puntos alrededor de los cuales giran los objetos) adecuadamente. Veamos cómo funciona en Unity con un ejemplo de rotación y escala.

¿Qué sucede cuando un objeto es padre de otro?

Un objeto puede ser el "padre" de otro, conocido como "hijo", lo que significa que cualquier transformación aplicada al objeto padre también afectará al hijo. Considerando un astronauta dentro de una nave espacial, si la nave gira, arriba y abajo también giran para el astronauta sin alterar su orientación interna.

  • Movimientos Relativos: Cuando un objeto padre rota, el hijo no solo se mueve a lo largo de esa rotación, sino que su interpretación de "frente", "detrás", "arriba" y "abajo" se ajusta conforme a la orientación del padre.

¿Cómo influye la escala de un objeto padre en su hijo?

Un aspecto importante a tener en cuenta es cómo la escala del padre puede impactar de manera negativa la escala y apariencia de los hijos si no se maneja con cuidado. Unity puede mostrar comportamientos extraños si se intenta combinar escalas locales y globales inadecuadamente.

  • Herencia de Escala: Los hijos heredan la escala del padre, y si esta es irregular, puede distorsionar visualmente a los objetos. Siempre es recomendable utilizar objetos vacíos con escala estándar (1, 1, 1) al configurar pivotes para evitar deformaciones.

¿Cómo se establecen pivotes en Unity?

Configurar un pivote correctamente es crucial para asegurar un comportamiento predecible al rotar objetos complejos. A continuación, se presenta cómo Unity maneja los pivotes.

¿Qué es un pivote y cómo establecerlo correctamente?

Un pivote es el punto fijo alrededor del cual un objeto rota. Configurar pivotes requiere atención a las escalas y jerarquías involucradas para evitar problemas como deformaciones inesperadas.

  • Creación de Pivotes con Objetos Vacíos: Siempre se debe comenzar con un objeto vacío para definir un pivote. Asegúrate que el objeto vacío tiene su escala en (1, 1, 1) antes de asignar otros objetos como hijos. Esto ayuda a gestionar rotaciones complejas o animaciones evitando deformaciones visuales inesperadas.

¿Cómo evitar deformaciones al configurar un pivote?

Al rotar un objeto con múltiples hijos, puedes notar problemas si las escalas de los distintos objetos no están ajustadas al contexto del espacio local o global. Para ilustrarlo, si componemos un martillo en Unity:

  1. Crea un objeto vacío como pivote de rotación.
  2. Añade otros objetos (como cubos o cápsulas) como hijos para formar las partes del martillo.
  3. Controla visualmente los puntos pivote seleccionando el ícono en Unity y utilizando un color distinto para cada pivote.
  4. Ajusta los objetos secundarios en relación a su pivote en vez de mover manualmente puntos de pivote en objetos ya escalados.

Ejercicio práctico: crear un reloj con manecillas

Ahora que comprendes cómo funcionan los espacios y los pivotes, aquí hay un desafiante ejercicio para aplicar tus conocimientos: crea un reloj y ajusta las manecillas para que giren en torno a la cara del reloj. Configura los puntos pivote de manera adecuada para lograr un comportamiento realista.

  • Tarea: Configura las manecillas y ponlas en la hora correcta. Comparte tus resultados y sugerencias en los comentarios para mejorar tu técnica y aprendizaje colaborativo.