Me cuesta entender los conceptos básicos detrás del pixel art en Unity.
Entiendo qué es una unidad, y que si dibujo mi sprite con 16x16 píxeles, debería establecer PPU en 16.
Tome Stardew Valley, por ejemplo, en la imagen a continuación puede ver claramente que el jugador no es cuadrado. El creador del juego dijo que hizo todo en 16x16, pero ¿cómo hay tantos detalles en los personajes? ¿Seguramente no parches varios cuadrados de 16x16 para formar un personaje (como lo harías con un mapa de mosaico)?
¿Cuál es la forma "común" de tratar con cosas que no son cuadradas, como los personajes de la imagen. ¿Simplemente haces un sprite de 16x32 y configuras PPU a 16? ¿No hará que parezca un poco extraño junto a los sprites de 16x16? ¿Generalmente eliges una talla (es decir, 16, 32, 64) y luego te limitas a eso para todo en el juego?
El problema visual que he visto es este, donde un sprite de 32x32 se ve muy fuera de lugar (demasiado afilado) junto a un sprite de 16x16.
Así que me pregunto, ¿cómo se mezclan los tamaños sin obtener este efecto donde una imagen se ve mucho más nítida que la otra? Si, por ejemplo, quisiera que un personaje fuera 16x32, o cualquier valor no cuadrado, cuando mis mosaicos son 16x16
fuente
Respuestas:
Resumiendo los puntos anteriores, lo que importa para que coincidan dos piezas de pixel art es que su densidad de píxeles (texels por área de pantalla / unidad mundial) es la misma.
Usando algunos sprites de Stardew Valley como ejemplo, podemos ver que, aunque los sprites tienen diferentes dimensiones de textura, coinciden en una cuadrícula consistente porque cada píxel se dibuja del mismo tamaño.
Si pensamos en el tamaño de la planta como una baldosa / una unidad de espacio mundial, podemos ver que esta unidad abarca 16 píxeles horizontal y verticalmente. El personaje, que tiene el doble de la altura de la planta, también cubre el doble del número de fichas / unidades mundiales, por lo que la densidad de píxeles se mantiene igual a 16 píxeles por unidad mundial.
Para Unity específicamente, lo expone a usted como una configuración de píxeles por unidad en el inspector de configuración de importación de Sprite . Siempre que use un número consistente aquí para todos sus sprites, Unity se encargará automáticamente de dibujarlos en el tamaño correcto en su mundo para mantener esta densidad de píxeles, incluso si son tamaños impares y no potencia de dos o exacta múltiplos de su tamaño de mosaico. Entonces, en este ejemplo, tanto el arbusto como el personaje, y todo lo demás en el juego usaría una PPU DE 16.
El número exacto que elige no es gran cosa, lo más importante es la consistencia. Si quisiéramos que cada mosaico abarcara 2 unidades mundiales, de modo que cuando editemos el nivel, podamos ajustar fácilmente las esquinas de los mosaicos (números impares) y los centros de mosaicos (números pares), entonces usaríamos una PPU de 8 para todos nuestros sprites.
Simplemente no lo bajes demasiado bajo. Verá algunos artículos que recomiendan una configuración de PPU de 1, lo que significa que un sprite de 256 píxeles abarcará 256 unidades mundiales. Si bien esto puede no sonar alarmante, los sistemas como la física están ajustados asumiendo que la mayor parte de su juego se desarrollará en escalas de décimas a decenas de unidades, y hacer que su escala sea demasiado grande puede hacer que se comporten mal. Intenta elegir un número de píxeles que sea significativo en tu juego, como el ancho de tu personaje o tu ficha. Esto también hará que tus matemáticas sean más fáciles para la programación y el diseño de niveles (por ejemplo, "Quiero que este personaje ponga 3 fichas correctamente, así que eso es así
x + 3.0f
")Tenga en cuenta que escalar un sprite, una imagen de interfaz de usuario o sus padres utilizando propiedades de transformación los distorsionará de esta densidad de píxeles constante, así que tenga mucho cuidado con las propiedades de escala y mantenga la mayor parte o la totalidad de su escena en una escala de 1.0 para simplificar.
Una última advertencia es que nada de esto determina qué tan grandes realmente terminan tus sprites en tu pantalla, eso está determinado por el tamaño de la ventana / pantalla del juego y el tamaño / FoV / ángulo de tu cámara. Para píxeles perfectos en 2D, también deberá asegurarse de que la altura de su ventana sea un múltiplo entero del número de píxeles de sprite que ve su cámara (altura ortográfica de la cámara x 2 x PPU)
fuente