Cómo importar una hoja de sprites en Unity

Arrastrar un PNG a un proyecto Unity lleva un segundo. Conseguir que se renderice como sprites nítidos, correctamente escalados y divididos requiere unos seis ajustes, y la mayoría tienen valores predeterminados incorrectos para trabajo 2D. Aquí explicamos qué hace cada uno, cómo dividir la hoja en el Sprite Editor y cuándo es más rápido cortar la hoja antes de que llegue a Unity.

Empieza con Texture Type

Selecciona el PNG importado en Project y mira Inspector. El primer desplegable es Texture Type, y su valor predeterminado es Default — la vía de texturas 3D. Cámbialo a Sprite (2D and UI).

No es cosmético. Cambia el proceso de importación, muestra las opciones de sprites e indica a Unity que genere un Sprite recurso en lugar de un simple Texture2D. Sin él, SpriteRenderer no tiene nada que aceptar y Sprite Editor sigue desactivado. En proyectos de plantilla 2D las texturas ya usan Sprite; compruébalo antes de buscar el ajuste.

Recuerda pulsar Aplicar al pie del Inspector. Unity no confirma los ajustes de importación hasta que lo haces; si seleccionas otro recurso antes, los cambios se revierten silenciosamente. A casi todo el mundo le ocurre alguna vez.

Sprite Mode: Single o Multiple

Sprite Mode decide si el archivo contiene uno o varios sprites.

  • Único — toda la imagen es un sprite. Para fotogramas ya separados, fondos e imágenes de interfaz.
  • Múltiple — contiene varios sprites cuyos rectángulos definirás en Sprite Editor. Úsalo para una hoja real que quieras conservar unida.
  • Polígono — genera una malla personalizada en vez de un cuadrilátero. Rara vez conviene para hojas; sirve sobre todo para reducir sobredibujado en sprites grandes casi transparentes.

Multiple suele elegirse por reflejo, pero conviene pensarlo. Conservar una hoja significa una textura, un lote de llamadas de dibujo y un recurso. Los PNG independientes simplifican la animación y la edición por fotograma y evitan depender de que Unity adivine los límites. Ambas opciones son válidas; suele decidirlo la fiabilidad de la cuadrícula.

Dividir dentro del Sprite Editor

Con Sprite Mode en Multiple, haz clic en Sprite Editor. Si el botón no aparece en absoluto, el paquete 2D Sprite no está instalado: añádelo desde Window → Package Manager. Dentro del editor, el Dividir de arriba a la izquierda ofrece tres tipos.

Automático

Unity busca islas de píxeles no transparentes y las rodea con rectángulos. Con huecos transparentes y sprites separados funciona con un clic. Falla en tres casos previsibles: fusiona sprites que se tocan, divide partes separadas como armas o sombras y produce un solo rectángulo si el fondo no es transparente, porque toda la imagen es opaca.

El Method de al lado importa al volver a dividir. Delete Existing borra tus correcciones manuales; Smart intenta conservar los rectángulos que ajustaste; Safe solo añade nuevas. Usa Inteligente o Seguro después de corregir cualquier cosa a mano.

Una hoja de sprites de cuatro por cuatro de un guardabosques con capucha verde y arco, donde las dieciséis poses tienen un tamaño uniforme y espacios regulares entre ellas, sobre un fondo transparente
Una hoja lo bastante regular para los tipos de división en cuadrícula siguientes. Tamaños de sprite consistentes, separaciones uniformes y fondo transparente: las condiciones que presupone Cuadrícula por tamaño de celda y que proporciona automáticamente una exportación generada por una herramienta.

Cuadrícula por tamaño de celda

Introduce ancho y alto de celda y Unity superpone una cuadrícula. Es correcto si conoces el tamaño, como una hoja 512×512 de celdas 64×64. Offset y Padding resuelven margen y separación. Una vez configurados, cada celda encaja porque una hoja de herramienta sí es una cuadrícula.

Cuadrícula por número de celdas

La misma idea, pero introduces columnas y filas y Unity divide. Resulta cómodo si sabes que la hoja es 4×4 sin calcular. Cuidado con divisiones no exactas: 1024 entre 3 da 341.33, y el redondeo deja una franja de un píxel del vecino en un borde de cada celda.

El pivote importa más de lo que parece. Cada tipo de división tiene un menú desplegable Pivot. Para personajes que se apoyan en el suelo, Bottom suele ser correcto: fija los pies si cambia la altura. Para proyectiles y efectos, Center. También puedes usar Custom con coordenadas normalizadas. Un pivote incorrecto es la causa habitual de oscilaciones y deslizamientos.

Píxeles por unidad y qué significa realmente

Pixels Per Unit (PPU) es la tasa de conversión entre los píxeles de la textura y las unidades del mundo de Unity. El valor predeterminado es 100: un sprite de 100×100 píxeles ocupa exactamente un cuadrado de una unidad del mundo a escala 1.

Las unidades del mundo de Unity son abstractas, pero la física, las cámaras y las velocidades se expresan en ellas; por eso el valor elegido determina la escala de todo el juego. Dos convenciones habituales:

  • PPU = tamaño de pieza de tu sprite. Si tus piezas miden 16×16 píxeles, configura PPU en 16 y cada pieza equivaldrá a una unidad del mundo. Los mapas encajan en coordenadas enteras y una gravedad de −9.81 tiene un significado aproximadamente físico.
  • PPU = 100 para todo. Más sencillo si tu ilustración tiene alta resolución y el movimiento no se basa en piezas.

Lo importante es la coherencia. Distintos PPU producen escalas relativas distintas. Ajustar Transform por objeto oculta el problema y complica colisiones, física y reutilización de prefabs. Configura correctamente PPU al importar.

Modo de filtrado y compresión para pixel art

Dos ajustes deciden si tu pixel art se ve como pixel art o como una mancha borrosa.

Filter Mode tiene como valor predeterminado Bilinear, que interpola entre téxeles cuando un sprite se dibuja a una escala distinta de 1:1. En texturas fotográficas es lo que necesitas. En un personaje de 32×32 produce bordes suaves y poco definidos. Configúralo en Point (no filter) para pixel art y los límites de píxeles siguen nítidos.

Compression usa Normal Quality por defecto, compresión por bloques en la mayoría de las plataformas. Aproxima grupos de píxeles y crea halos de color en arte plano de bordes duros, especialmente junto a transparencia. Pon Compression en None para sprites de pixel art. Sí, la textura consume más memoria; unas pocas hojas pequeñas sin comprimir suponen una diferencia insignificante en cualquier dispositivo moderno, pero la mejora visual no lo es.

Desmarca también Generate Mip Maps para sprites 2D que siempre se dibujan cerca de su tamaño nativo. Los mipmaps sirven para texturas vistas a distintas distancias en 3D; en 2D suelen consumir memoria y a veces muestrear un nivel más borroso del previsto.

AjustePixel art2D de alta resolución / pintado
Texture TypeSprite (2D and UI)Sprite (2D and UI)
Modo de filtradoPoint (no filter)Bilineal
CompresiónNingunoCalidad normal
Generate Mip MapsDesactivadoDesactivado para 2D, activado si se escala mucho
Píxeles por unidadTamaño de pieza (8, 16, 32…)100
Max SizeAl menos la dimensión mayor de la hojaAl menos la dimensión mayor de la hoja
Comprueba Max Size si tu sprite parece poco nítido sin motivo. Unity limita las texturas importadas a 2048 por defecto en algunas pestañas de plataforma. Una hoja de 4096 de ancho se reduce silenciosamente a 2048, dividiendo la resolución a la mitad antes de aplicar los ajustes anteriores.

Archivos previamente divididos frente a dividir en Unity

El divisor de Unity funciona bien para lo que se diseñó: hojas generadas por una herramienta, con cuadrícula real y separaciones transparentes. Grid By Cell Size sobre una exportación de Aseprite es exacto e inmediato; no hay motivo para hacerlo en otro sitio.

Las hojas de generadores son otro problema. Pedir «una hoja de sprites 4×4» da algo parecido a una cuadrícula, pero con separación que deriva por celda, tamaños variables y contenido descentrado. Grid By Cell Size corta cabezas. Automatic fusiona dos fotogramas que se tocan y divide uno con escudo separado. Acabas arrastrando dieciséis rectángulos en Sprite Editor, una forma lenta de gastar veinte minutos.

Cortar la hoja antes de importarla evita eso. Nuestro Divisor de hojas de sprites detecta los límites mediante el canal alfa en vez de coordenadas supuestas, ajusta cada fotograma a su contenido y exporta PNG individuales. Se importan a Unity con Sprite Mode Single sin trabajar en Sprite Editor. Si falla la detección, Manual y preajustes permite arrastrar líneas al hueco correcto: seis movimientos para dieciséis fotogramas en vez de dieciséis rectángulos.

Hay una contrapartida real. Los archivos independientes implican más recursos y, sin Sprite Atlas, más llamadas de dibujo. Si eso importa en tu proyecto, divide externamente para obtener fotogramas correctos y después añade un Sprite Atlas recurso (Assets → Create → 2D → Sprite Atlas) y arrastra la carpeta a Objects for Packing. Obtendrás límites correctos y renderizado por lotes, mientras Unity realiza el empaquetado que domina.

De sprites a una animación

  1. Selecciona los fotogramas en orden en Project: los subsprites de una hoja dividida o tus PNG individuales.
  2. Arrastra la selección a Scene o Hierarchy. Unity pide una ubicación para guardar y crea un Animation Clip y un Animator Controller vinculado a él.
  3. Abre la ventana Animation para ajustar la frecuencia de muestreo. Las 12 muestras por segundo predeterminadas sirven para muchos ciclos de caminata; 24 resultan más fluidas; las cifras de un solo dígito dan un estilo retro deliberadamente entrecortado.
  4. Confirma que los fotogramas estén en el orden correcto. Unity ordena por nombre, así que frame_10 queda entre frame_1 y frame_2 salvo que añadas ceros a la izquierda hasta frame_01.
  5. Para más clips, repite el proceso y conecta transiciones en Animator, o controla los fotogramas directamente desde un script si prefieres evitar Animator por completo.

Preguntas frecuentes

¿Por qué mi sprite tiene una línea fina del fotograma vecino en un borde?

Contaminación de textura. El tamaño de celda no divide exactamente la textura o el bilineal muestrea fuera del rectángulo. Pon Filter Mode en Point, desactiva compresión y verifica el cálculo. Uno o dos píxeles de relleno transparente entre sprites lo evitan permanentemente.

¿Debo usar Sprite Atlas o una hoja grande?

Sprite Atlas, normalmente. Permite crear archivos separados, fáciles de editar y reordenar; Unity los empaqueta en una textura compartida al compilar para renderizar por lotes. Una megahoja manual da resultados parecidos, pero resulta mucho más incómoda al cambiar un fotograma.

Mi animación se reproduce, pero el personaje salta arriba y abajo. ¿Por qué?

Fotogramas de diferentes alturas con un pivote Center compartido. Configura el pivote en Bottom o amplía todos los fotogramas a dimensiones idénticas antes de importar para que el contenido ocupe una posición consistente en cada uno.

¿Debo cambiar algo para Universal Render Pipeline?

Los ajustes de importación son los mismos. Lo que cambia es el material: URP 2D utiliza Sprite-Lit-Default cuando 2D Renderer está activo, por lo que los sprites sin luz pueden aparecer negros hasta que haya una luz en la escena. Cambia el material de SpriteRenderer a Sprite-Unlit-Default o añade Global Light 2D.

Divide la hoja antes de que llegue a Unity

Si la división automática de Unity no funciona bien con tu hoja, córtala primero en el navegador e importa PNG individuales limpios. Corte mágico detecta los límites de sprites mediante el canal alfa; Manual y preajustes permite arrastrar tú las líneas. No se sube nada: todo funciona localmente.

Abrir Divisor de hojas de sprites