GIF a textura de flipbook — Empaqueta cualquier GIF en una tira de fotogramas para Unity y VRChat

Crea tu propio gif a flipbook
Empaqueta un GIF en una textura de flipbook de una sola fila para Unity, Godot o VRChat. Cuadrícula automática, metadatos de filas y columnas listos para usar, fondo transparente.
Un GIF es una línea de tiempo. Una textura de flipbook es esa misma línea de tiempo empaquetada en una sola imagen para que un shader la recorra por índice en lugar de que un reproductor busque fotogramas. Sueltas un GIF en la herramienta, esta detecta la cantidad de fotogramas, las dimensiones y la demora, y luego escribe una tira de una sola fila o con cuadrícula junto con los metadatos de filas y columnas que pegas en tu material.
Esta página cubre lo que produce realmente una conversión de gif a flipbook para Unity, Godot y VRChat: los cuatro números que necesita un shader de flipbook, qué configurar en un material de Poiyomi y cuándo conviene una tira de fotogramas en lugar de una cuadrícula. El resultado es un PNG con fondo transparente y los conteos de filas y columnas en texto plano junto a él.
Suelta un GIF
El cuerpo de la herramienta es la primera pantalla. La zona para soltar archivos está arriba; todo lo que hay debajo es salida. Arrastra un GIF sobre ella y la herramienta lee la cantidad de fotogramas, la demora por fotograma, el tamaño del lienzo y el método de disposición. Informa lo que encontró antes de escribir nada, porque los GIF que circulan no coinciden en ninguno de esos cuatro puntos.
Dos cosas suelen requerir una decisión. Primero, las demoras desiguales entre fotogramas: la mayoría de los shaders de flipbook avanzan a una tasa de FPS constante, así que un GIF con demoras mixtas debe remuestrearse a una tasa fija o exportarse con el tiempo de fotograma común más lento. Segundo, la disposición: un GIF que solo redibuja las regiones modificadas entre fotogramas mostrará imágenes fantasma si apilas los fotogramas sin más. La herramienta compone cada fotograma sobre un lienzo completo antes de empaquetar, de modo que los redibujados parciales se convierten en fotogramas completos.
Cuando termina la composición, el empaquetador escribe una sola imagen. Un GIF de 24 fotogramas de 128x128 se convierte en una tira de 3072x128. Esos mismos fotogramas como una cuadrícula de 6x4 se convierten en 768x512. Ambos son los mismos píxeles; la diferencia está en lo que el shader hace con las UV.
01
Suelta el GIF en la zona para soltar archivos. Lee la cantidad de fotogramas, la demora y el tamaño del lienzo informados.
02
Elige el diseño de empaquetado: una sola fila para shaders con desplazamiento de UV, cuadrícula para atlas e importación en motores. Las columnas de la cuadrícula se eligen automáticamente para mantener la imagen cerca de un cuadrado.
03
Elige la tasa de remuestreo si el GIF tiene demoras desiguales entre fotogramas. La opción predeterminada es la demora mediana; elige una tasa de FPS fija si tu shader avanza a una tasa constante.
04
Exporta. Obtienes un PNG con fondo transparente, más las filas, las columnas, la cantidad de fotogramas y los FPS como texto que puedes pegar en un material o en un script.
Qué es una textura de flipbook
Un shader de flipbook lee cuatro números: filas, columnas, el índice actual y los FPS. Toma una coordenada UV en el rango de 0 a 1, la divide en una celda de fila/columna y desplaza esa celda según el índice actual. La textura en sí es estática. Nada se anima hasta que el índice se mueve.
El índice suele derivarse del tiempo. Con una tira de una fila, el índice es igual a floor(tiempo multiplicado por FPS), y la coordenada U se desplaza según el índice dividido por las columnas. Con una cuadrícula, el índice también da una fila: fila es igual a floor(índice dividido por columnas), columna es igual a índice módulo columnas. Por eso la tira de una fila es el caso más sencillo: solo hay una dimensión que recorrer.
Las filas y las columnas deben coincidir exactamente con la imagen. Una tira de 3072x128 con 24 columnas y 1 fila declaradas se muestrea correctamente. Declara 23 columnas y cada fotograma quedará una fracción de celda desfasado, lo que se ve como un barrido diagonal. Declara 1 columna y obtendrás una imagen estática. Estos dos errores explican la mayoría de los flipbooks rotos.
Los FPS son independientes de la cantidad de fotogramas. Una tira de 24 fotogramas a 12 FPS se repite dos veces por segundo. Una tira de 24 fotogramas a 24 FPS se repite una vez por segundo. Los datos de la textura son idénticos; solo cambia el reloj. Mantén los FPS en el mismo lugar que los conteos de filas y columnas para que nunca se desincronicen.
Los cuatro números
Filas, columnas, índice, FPS. Las filas y las columnas describen la textura. El índice y los FPS describen el tiempo. Las filas y las columnas quedan fijas al exportar. El índice es dinámico y pertenece al shader o al script. Los FPS son fijos en la mayoría de los shaders, pero pueden controlarse con un parámetro cuando quieres regular la velocidad.
Si tu shader tiene un parámetro de velocidad o tasa de reproducción, este multiplica el término de tiempo, no la constante de FPS. Mantén los FPS exportados como la tasa base para que los metadatos sigan siendo significativos cuando la velocidad sea 1.
Textura de flipbook para Unity
En Unity, el flipbook suele ser un material sobre un quad o una partícula. Importa el PNG con sRGB habilitado, sin mipmaps si los fotogramas son pequeños, y el alfa como transparencia. El modo de ajuste debe ser Clamp, no Repeat: un flipbook con repetición enlaza el último fotograma con el primero en el borde de las UV y muestra una costura de un píxel.
Hay dos maneras de controlar el índice. En un shader Unlit o Particles con un nodo de flipbook incorporado, configuras el tiling con las filas y las columnas y le envías un valor de mezcla de 0 a 1. En un shader personalizado, escribes tú mismo las operaciones de UV y expones las filas, las columnas y los FPS como propiedades del material para poder editarlas sin recompilar.
Los metadatos que pegas: filas, columnas, cantidad de fotogramas, FPS exportados. Si tu shader usa una mezcla normalizada en lugar de un índice entero, el rango de mezcla va de 0 a la cantidad de fotogramas dividida por el total de celdas de la cuadrícula: para una sola fila de 24 fotogramas es de 0 a 1, y para una cuadrícula de 6x4 con 24 fotogramas de 24 celdas también es de 0 a 1. Las cuadrículas parciales son el caso que suele causar confusión: una cuadrícula de 6x4 con 20 fotogramas termina en 20 dividido por 24, o aproximadamente 0.833. Si avanzas más allá de eso, muestreas celdas vacías.
- Fondo transparenteEl PNG exportado conserva el alfa, así que un flipbook sobre un quad no necesita una mezcla multiplicativa ni un chroma key. Los GIF de origen que tenían un color de fondo se convierten escribiendo ese color en el alfa.
- Sin mipmaps en tamaños pequeñosLos fotogramas de menos de 256 píxeles por lado funcionan mejor con los mipmaps desactivados. La generación de la cadena de mips mezcla fotogramas adyacentes de la tira y, a distancia, el flipbook se convierte en un promedio de todos los fotogramas.
- Ajuste ClampEl ajuste Repeat en una tira muestrea a través de la costura. Configura el ajuste U y V en Clamp para evitar que el último fotograma se filtre en el primero.
Flipbook de Poiyomi para VRChat
Poiyomi incluye un nodo de flipbook, y es la ruta habitual para una boca que habla, una pantalla que se desplaza o un interruptor de dos fotogramas en un avatar. El nodo recibe una textura, un par de filas y columnas, y un valor de mezcla. VRChat no ejecuta código de shader personalizado desde un script en tiempo de ejecución, así que el índice debe provenir de una propiedad de material animada o de un parámetro controlado por un animator.
La malla importa tanto como el material. Un flipbook sobre un quad plano se ve correctamente; la misma textura sobre una superficie curva mostrará celdas estiradas donde las UV están distribuidas de forma desigual. Mantén los materiales de flipbook sobre mallas planas o casi planas.
Trabaja con el diseño de tira para Poiyomi cuando la animación sea un bucle, porque las operaciones de UV son una multiplicación y una suma. Usa el diseño de cuadrícula cuando la animación sea un conjunto de estados discretos entre los que quieras saltar: una boca con cuatro formas es más fácil de razonar como una cuadrícula de 4x1 con un índice entero que como un desplazamiento.
01
Exporta con el diseño de tira a menos que necesites estados discretos. Confirma que las filas sean iguales a 1 y las columnas iguales a la cantidad de fotogramas.
02
Importa el PNG en Unity. Configura el modo de ajuste en Clamp, sRGB activado, alfa como transparencia activado, streaming desactivado para texturas pequeñas.
03
En Poiyomi, crea un nodo Flipbook. Asigna la textura. Configura las filas y las columnas con los valores exportados.
04
Controla la entrada de mezcla. Para un bucle, envíale un valor basado en el tiempo desde un parámetro float animado. Para estados discretos, envíale un índice entero convertido a una mezcla.
05
Configura el alfa y la cola de renderizado. Un flipbook que necesita desvanecerse usa la misma configuración de transparencia que el resto del material: no actives un cutout aparte.
06
Prueba en modo Play y luego en una carga de avatar. Confirma el punto de bucle: al último fotograma debe seguirle el primero sin pausa.
Tira de fotogramas vs cuadrícula: cuál exportar
Los datos de píxeles son idénticos. La elección depende de qué los va a consumir. Los shaders prefieren una tira. Los motores y los sistemas de sprites prefieren una cuadrícula. Elige según el consumidor, no según el tamaño del archivo: una tira es más ancha y una cuadrícula más cuadrada, y ambas se comprimen de forma similar con la misma cantidad total de píxeles.
Una tira tiene una sola fila, así que la coordenada V no se usa y el shader solo desplaza U. Eso son menos instrucciones y menos formas de equivocarse con las operaciones. Una cuadrícula usa ambos ejes, que es lo que esperan los sistemas basados en atlas. Si tienes dudas, exporta la tira y vuelve a exportar como cuadrícula solo cuando un importador de motor la pida.
Hay un caso más: el animador de sprites que espera fotogramas individuales. Algunos motores quieren una carpeta de PNG, no un atlas. La herramienta puede escribir los fotogramas por separado, pero entonces la imagen en disco es la suma de todos los fotogramas en lugar de un solo archivo, y la configuración de importación es por fotograma.
| Consumidor | Diseño | Qué lee | Nota |
|---|---|---|---|
| Shader de flipbook | Una sola fila | Filas 1, columnas N, desplazamiento en U | La menor cantidad de operaciones de UV, bucle sencillo |
| Atlas de sprites | Cuadrícula | Filas M, columnas N, tamaño de celda | El tamaño de celda es igual al tamaño del lienzo |
| Animador de sprites | Cuadrícula o PNG separados | Orden de fotogramas y FPS | Los PNG separados pierden el empaquetado en un solo archivo |
| Importación en motor | Cuadrícula | Filas, columnas, cantidad de fotogramas | Mantén la imagen cerca de un cuadrado para respetar los límites de textura |
Reprodúcelo en 3D
Una textura de flipbook sobre un plano estático no demuestra nada. Las afirmaciones que hay que comprobar son las que solo aparecen en movimiento: si la costura se enlaza bien, si el alfa se mantiene a distancia, si los FPS se sienten correctos cuando la cámara se mueve. The Cyclops' Island es una escena jugable creada en el constructor de juegos 3D donde las superficies se animan en tiempo real, así que puedes ver un bucle de flipbook junto a la geometría en lugar de en un inspector.
Ábrelo, recorre la superficie y observa el punto de bucle. Si a un flipbook le falta un fotograma o le sobra una columna, lo verás ahí —un salto visible o un barrido diagonal— antes de subir un recurso. Ese es todo el argumento a favor de la escena jugable: el fallo es visual, y los fallos visuales necesitan una ventana de visualización.
La misma escena sirve de referencia para saber cómo se ven los fotogramas al cambiar a distintas distancias y ángulos de cámara. Los fotogramas que se ven bien a 128 píxeles de cerca presentarán aliasing a distancia sin control de mipmaps; los fotogramas que se ven bien de lejos pueden quedar demasiado suaves de cerca. Ambos son más fáciles de juzgar en movimiento.
Entra al mundo al que pertenece
Un sprite es un personaje sin un lugar donde pararse. El último paso es el que nadie más ofrece: toma la hoja que acabas de crear y colócala en un mundo por el que alguien pueda caminar —una isla pequeña, un planeta, una esquina lluviosa. Cada mundo de este sitio se creó a partir de una descripción escrita y se publicó como una página que puedes jugar.
Preguntas frecuentes
¿Qué es un flipbook de Poiyomi? +
Poiyomi es un paquete de shaders para Unity y VRChat, y su nodo Flipbook muestrea una tira de fotogramas empaquetada para que un material cicle fotogramas sin un animator. Le das la textura, las filas y las columnas, y un valor de mezcla. El valor de mezcla es lo que mueve el índice, y normalmente lo controla un parámetro float animado.
¿Por qué mi flipbook muestra un barrido diagonal? +
El conteo de columnas declarado no coincide con la imagen. Una tira de 24 fotogramas muestreada como 23 columnas desplaza cada fotograma una fracción de celda, lo que se acumula en un barrido diagonal a lo largo de la tira. Vuelve a verificar el valor de columnas exportado contra la cantidad real de fotogramas.
¿Debo exportar una tira o una cuadrícula? +
Exporta una sola fila para shaders de flipbook, porque las operaciones de UV son de una dimensión y el bucle es trivial. Exporta una cuadrícula para atlas de sprites e importadores de motores que esperan filas y columnas. Los píxeles son los mismos; solo cambia el consumidor.
¿Cómo mantengo el fondo transparente? +
La exportación escribe el alfa en el PNG en lugar de aplanarlo sobre un color. Al importar, configura alfa como transparencia y mantén sRGB activado. Si un GIF de origen usaba un color de fondo en lugar de transparencia real, la herramienta compone fotogramas completos sobre un lienzo transparente para que el fondo no permanezca.
Mi GIF tiene demoras desiguales entre fotogramas. ¿Qué FPS uso? +
Elige una tasa fija. La opción predeterminada es la demora mediana, que suele acercarse a cómo se ve el GIF en un navegador. Un shader de flipbook avanza con un reloj constante, así que las demoras mixtas no pueden representarse sin remuestrear a un solo tiempo de fotograma.
¿Por qué mi flipbook da un salto en el punto de bucle? +
O la cantidad de fotogramas incluye un último fotograma duplicado, o los FPS están ligeramente desfasados respecto al origen. Verifica juntos la cantidad de fotogramas exportada y el valor de FPS. Un bucle que se pausa casi siempre se debe a un fotograma de más, no a un problema del shader.
Volver al constructor de juegos 3D
Los 31 mundos, juegos y escenas 3D terminados están en una sola página: todos jugables.
Ver tiras listas para flipbook
Cada recurso de esta biblioteca es un PNG transparente y listo para juegos con un prompt registrado: recursos de hojas de sprites y hojas de sprites gratuitas, etiquetados por acción, estilo y tema. Gratis para explorar y descargar.