Confusión sobre el tamaño del sprite en el espacio mundial (Unidad)


11

Tengo un Sprite con resolución de 1080x1920. Y configuré la resolución de vista del juego también a 1080x1920. Lo que estaba pensando es que el sprite (1080x1920) debería encajar correctamente dentro de la Vista de cámara.

la resolución de la imagen es 1080x1920

Pero cuando arrastro ese sprite, el sprite se agranda y sale de la vista de la cámara.

vista de pantalla, sprite está fuera de cámara

¿Qué ajustes debo hacer para asegurarme de que este sprite se ajuste al 100% dentro de la vista de la cámara? Podría haber cambiado la escala de transformación de Sprite. Pero eso causará problemas porque tengo que lidiar con muchos otros sprites y deberían ser proporcionales.


¿Estás hablando de un sprite 3D? O UI 2D sprite?
TomTsagk

Un 2D Sprite .....
Faizan Khan

Respuestas:


19

Esto tiene sentido cuando recuerdas que los sprites no solo se borran píxel por píxel en tu pantalla (lo que haría que fuera una pesadilla tener el mismo aspecto en pantallas con diferentes resoluciones, ya que todos recortarían tu arte de manera diferente) , sino que son parte de tu mundo 3D en un sistema de coordenadas de juego independiente del dispositivo que puedes controlar.

Como todo lo demás en ese mundo de juego, la parte que termina asignando a la pantalla está determinada por cómo ha configurado su objeto de cámara.

Entonces, hay cuatro partes que deciden qué tan grande se muestra tu sprite:

  1. La resolución fuente del sprite.

  2. La configuración Píxeles por unidad elegida en su inspector de configuración de importación.

    Esto establece un factor de conversión para transformar tamaños de píxeles en el espacio de textura a unidades en el espacio mundial (es decir, el espacio en el que ocurren todos sus cálculos de juego y física)

    Altura en unidades mundiales = Altura de origen en píxeles / píxeles por unidad

    En general, debe elegir este número para alinearlo con algunas métricas de juego relevantes en su juego. p.ej. Si tienes una cuadrícula de mosaico con un espacio de 135 píxeles, elegir Píxeles por unidad = 135 hará que cada celda de tu cuadrícula tenga exactamente 1 unidad de ancho en el sistema de coordenadas del juego, haciendo que tus cálculos sean más convenientes.

  3. El tamaño ortográfico de su cámara.

    (O, si usa una cámara de perspectiva, una combinación del campo de visión de la cámara y la profundidad desde la cámara hasta su sprite)

    Esto determina cuántas unidades de su mundo puede ver su cámara, desde el centro de su vista hasta el borde superior.

    Porción de la altura de la cámara ocupada = Altura en unidades mundiales / (2 * Tamaño de cámara ortho.)

    Entonces, si corremos con el valor de 135 PPU, el sprite de 1920 píxeles de altura tendrá 14.222222 unidades de altura en el mundo, lo que significa que necesitaremos una cámara con una altura de 7.111111 para capturar todo de arriba a abajo (ya que la altura de la cámara se mide desde el medio fuera)

  4. El tamaño de píxel de la resolución de pantalla de su ventana / salida.

    Por defecto, la vista de la cámara llenará la pantalla verticalmente, por lo que si su pantalla / ventana cambia de altura, el recorte vertical de su escena no cambiará (un objeto en el borde superior o inferior de la pantalla no se moverá o recortar, toda la escena se hará más grande o más pequeña para llenar la altura disponible).

    Entonces, la cantidad de unidades mundiales que su cámara puede ver desde los mapas de arriba hacia abajo hasta la cantidad de píxeles en su ventana / pantalla de arriba hacia abajo.

    Tamaño del píxel de salida = Parte de la altura de la cámara ocupada * Altura de la ventana en píxeles

    Entonces, si nuestra pantalla tiene una altura de 1920 píxeles y nuestro sprite fuente llena exactamente la vista de la cámara, entonces se emitirá en toda la pantalla de 1920 píxeles en alineación 1: 1.


¡Estoy realmente agradecido por tu respuesta detallada!
Faizan Khan

3
¡Me alegra que lo hayas encontrado útil! He escrito algunas otras preguntas y respuestas sobre cómo trabajar con tamaños de sprites en Unity que también podrían ayudar: elegir tamaños de sprites , hacer coincidir la apariencia de sprites de diferentes tamaños , escalar pixel art
DMGregory

1
Gracias ... También te seguí en Twitter ... Me siento muy bien por haber interactuado con alguna persona que trabaja en UbiSoft :)
Faizan Khan
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.