Kostenloser Konverter · Frame-Strip für Shader

GIF zu Flipbook-Textur — Jedes GIF in einen Frame-Strip für Unity & VRChat packen

Eigenes GIF zu Flipbook erstellen

Packen Sie ein GIF in eine einreihige Flipbook-Textur für Unity, Godot oder VRChat. Automatisches Raster, einsatzbereite Zeilen-/Spalten-Metadaten, transparenter Hintergrund.

✦Sprite
Erstellen Sie ein GIF-zu-Flipbook

Ein GIF ist eine Zeitachse. Eine Flipbook-Textur ist dieselbe Zeitachse, gepackt in ein einzelnes Bild, sodass ein Shader sie per Index durchlaufen kann, statt dass ein Player Frames sucht. Sie legen ein GIF im Tool ab, es erkennt Frame-Anzahl, Abmessungen und Verzögerung und schreibt dann einen einreihigen oder gerasterten Streifen mit Zeilen- und Spalten-Metadaten, die Sie in Ihr Material einfügen.

Diese Seite behandelt, was eine GIF-zu-Flipbook-Konvertierung für Unity, Godot und VRChat tatsächlich erzeugt — die vier Zahlen, die ein Flipbook-Shader benötigt, was auf einem Poiyomi-Material eingestellt werden muss und wann ein Frame-Strip besser ist als ein Raster. Die Ausgabe ist ein PNG mit transparentem Hintergrund und den Zeilen-/Spaltenanzahlen als Klartext daneben.

GIF ablegen

Der Tool-Bereich ist der erste Bildschirm. Die Drop-Zone sitzt oben; alles darunter ist Ausgabe. Ziehen Sie ein GIF darauf, und das Tool liest die Frame-Anzahl, die Verzögerung pro Frame, die Canvas-Größe und die Disposal-Methode aus. Es meldet, was es gefunden hat, bevor es etwas schreibt, denn GIFs in freier Wildbahn sind sich bei allen vier Punkten uneinig.

Zwei Dinge erfordern meist eine Entscheidung. Erstens, ungleichmäßige Frame-Verzögerungen: Die meisten Flipbook-Shader arbeiten mit einer konstanten FPS, daher muss ein GIF mit gemischten Verzögerungen auf eine feste Rate neu abgetastet oder mit seiner langsamsten gemeinsamen Frame-Zeit exportiert werden. Zweitens, Disposal: Ein GIF, das zwischen Frames nur geänderte Bereiche neu zeichnet, zeigt Ghosting, wenn Sie Frames naiv stapeln. Das Tool komponiert jeden Frame vor dem Packen auf eine vollständige Canvas, sodass teilweise Neuzeichnungen zu vollständigen Frames werden.

Wenn das Komponieren abgeschlossen ist, schreibt der Packer ein Bild. Ein 24-Frame-GIF mit 128x128 wird zu einem 3072x128-Strip. Dieselben Frames als 6x4-Raster werden zu 768x512. Beide enthalten dieselben Pixel; der Unterschied liegt darin, was der Shader mit den UVs macht.

1

01

Legen Sie das GIF auf der Drop-Zone ab. Lesen Sie die gemeldete Frame-Anzahl, Verzögerung und Canvas-Größe.

2

02

Pack-Layout wählen: eine Zeile für UV-scrollende Shader, Raster für Atlanten und Engine-Import. Die Rasterspalten werden automatisch gewählt, damit das Bild annähernd quadratisch bleibt.

3

03

Wählen Sie die Resampling-Rate, wenn das GIF ungleichmäßige Frame-Verzögerungen hat. Der Standard ist die mediane Verzögerung; wählen Sie eine feste FPS, wenn Ihr Shader mit konstanter Rate arbeitet.

4

04

Exportieren. Sie erhalten ein PNG mit transparentem Hintergrund sowie Zeilen, Spalten, Frame-Anzahl und FPS als Text, den Sie in ein Material oder ein Skript einfügen können.

Was eine Flipbook-Textur ist

Ein Flipbook-Shader liest vier Zahlen: Zeilen, Spalten, den aktuellen Index und FPS. Er nimmt eine UV-Koordinate im Bereich 0 bis 1, teilt sie in eine Zeilen-/Spalten-Zelle auf und verschiebt diese Zelle um den aktuellen Index. Die Textur selbst ist statisch. Nichts animiert, bis sich der Index bewegt.

Der Index wird üblicherweise aus der Zeit abgeleitet. Bei einem Zeilen-Strip gilt: Index = floor(Zeit multipliziert mit FPS), und die U-Koordinate wird um Index geteilt durch Spalten versetzt. Bei einem Raster liefert der Index auch eine Zeile: Zeile = floor(Index geteilt durch Spalten), Spalte = Index modulo Spalten. Deshalb ist der Zeilen-Strip der einfachere Fall — es gibt nur eine Dimension zu durchlaufen.

Zeilen und Spalten müssen exakt zum Bild passen. Ein 3072x128-Strip mit deklarierten 24 Spalten und 1 Zeile wird korrekt gesampelt. Deklarieren Sie 23 Spalten, und jeder Frame landet um einen Bruchteil einer Zelle daneben, was als diagonaler Schlieren-Effekt sichtbar wird. Deklarieren Sie 1 Spalte, und Sie erhalten ein statisches Bild. Diese beiden Fehler erklären die meisten defekten Flipbooks.

FPS ist von der Frame-Anzahl getrennt. Ein 24-Frame-Strip mit 12 FPS läuft zweimal pro Sekunde durch. Ein 24-Frame-Strip mit 24 FPS läuft einmal pro Sekunde durch. Die Texturdaten sind identisch; nur die Uhr ändert sich. Halten Sie die FPS am selben Ort wie die Zeilen- und Spaltenanzahlen, damit sie nie auseinanderdriften.

Die vier Zahlen

Zeilen, Spalten, Index, FPS. Zeilen und Spalten beschreiben die Textur. Index und FPS beschreiben die Zeit. Zeilen und Spalten sind beim Export festgelegt. Der Index ist dynamisch und gehört zum Shader oder Skript. Die FPS sind bei den meisten Shadern fest, können aber über einen Parameter gesteuert werden, wenn Sie die Geschwindigkeit regeln möchten.

Wenn Ihr Shader einen Parameter für Geschwindigkeit oder Wiedergaberate hat, multipliziert er den Zeitterm, nicht die FPS-Konstante. Behalten Sie die exportierte FPS als Basisrate bei, damit die Metadaten bei Geschwindigkeit 1 aussagekräftig bleiben.

Flipbook-Textur für Unity

In Unity ist das Flipbook üblicherweise ein Material auf einem Quad oder einem Partikel. Importieren Sie das PNG mit aktiviertem sRGB, ohne Mipmaps, wenn die Frames klein sind, und Alpha ist Transparenz. Der Wrap-Modus sollte Clamp sein, nicht Repeat — ein wiederholendes Flipbook wickelt den letzten Frame am UV-Rand in den ersten und zeigt eine Ein-Pixel-Naht.

Es gibt zwei Möglichkeiten, den Index anzusteuern. Bei einem Unlit- oder Particles-Shader mit integriertem Flipbook-Node stellen Sie die Kachelung auf Zeilen und Spalten ein und speisen einen Blend-Wert von 0 bis 1 ein. Bei einem benutzerdefinierten Shader schreiben Sie die UV-Mathematik selbst und legen Zeilen, Spalten und FPS als Materialeigenschaften offen, damit sie ohne Neukompilieren bearbeitet werden können.

Die Metadaten, die Sie einfügen: Zeilen, Spalten, Frame-Anzahl, exportierte FPS. Wenn Ihr Shader einen normalisierten Blend statt eines ganzzahligen Index verwendet, reicht der Blend-Bereich von 0 bis Frame-Anzahl geteilt durch die Gesamtzahl der Rasterzellen — bei 24 Frames in einer Zeile ist das 0 bis 1, bei einem 6x4-Raster mit 24 Frames aus 24 Zellen ebenfalls 0 bis 1. Teilraster sind der Fall, bei dem das Leute aus dem Tritt bringt: Ein 6x4-Raster mit 20 Frames endet bei 20 geteilt durch 24, also etwa 0.833. Gehen Sie darüber hinaus, und Sie sampeln leere Zellen.

  • Transparenter HintergrundDas exportierte PNG behält Alpha, sodass ein Flipbook auf einem Quad weder einen Multiply-Blend noch einen Chroma Key benötigt. Bei Quell-GIFs mit einer Mattierungsfarbe wird diese stattdessen in Alpha geschrieben.
  • Keine Mipmaps bei kleinen GrößenFrames unter 256 Pixeln pro Seite sind ohne Mipmaps besser. Die Mip-Chain-Generierung mischt benachbarte Frames im Strip, und in der Ferne wird das Flipbook zu einem Durchschnitt aller Frames.
  • Clamp-WrapRepeat-Wrapping eines Strips tastet über die Naht hinweg ab. Setzen Sie Wrap U und V auf Clamp, damit der letzte Frame nicht in den ersten übergeht.

Poiyomi-Flipbook für VRChat

Poiyomi bringt einen Flipbook-Node mit, und er ist der übliche Weg für einen sprechenden Mund, einen scrollenden Bildschirm oder einen Zwei-Frame-Toggle auf einem Avatar. Der Node nimmt eine Textur, ein Zeilen-/Spalten-Paar und einen Blend-Wert. VRChat führt zur Laufzeit keinen benutzerdefinierten Shader-Code aus einem Skript aus, daher muss der Index aus einer animierten Materialeigenschaft oder einem Animator-gesteuerten Parameter kommen.

Das Mesh ist genauso wichtig wie das Material. Ein Flipbook auf einem flachen Quad liest sich korrekt; dieselbe Textur auf einer gekrümmten Oberfläche zeigt gestreckte Zellen, wo die UVs ungleichmäßig verteilt sind. Behalten Sie Flipbook-Materialien auf planaren oder nahezu planaren Meshes.

Arbeiten Sie für Poiyomi im Strip-Layout, wenn die Animation eine Schleife ist, weil die UV-Mathematik aus einer Multiplikation und einer Addition besteht. Verwenden Sie das Raster-Layout, wenn die Animation aus diskreten Zuständen besteht, zwischen denen Sie springen möchten — ein Mund mit vier Formen ist als 4x1-Raster mit ganzzahligem Index leichter zu verstehen als ein Scroll.

1

01

Exportieren Sie im Strip-Layout, es sei denn, Sie benötigen diskrete Zustände. Bestätigen Sie, dass Zeilen gleich 1 und Spalten gleich der Frame-Anzahl sind.

2

02

Importieren Sie das PNG in Unity. Setzen Sie den Wrap-Modus auf Clamp, sRGB an, Alpha ist Transparenz an, Streaming aus für kleine Texturen.

3

03

Erstellen Sie in Poiyomi einen Flipbook-Node. Weisen Sie die Textur zu. Setzen Sie Zeilen und Spalten auf die exportierten Werte.

4

04

Steuern Sie den Blend-Eingang an. Für eine Schleife speisen Sie einen zeitbasierten Wert aus einem animierten Float-Parameter ein. Für diskrete Zustände speisen Sie einen ganzzahligen Index ein, der in einen Blend umgerechnet wurde.

5

05

Stellen Sie Alpha und Render Queue ein. Ein Flipbook, das ausblenden soll, verwendet dieselben Transparenzeinstellungen wie der Rest des Materials — aktivieren Sie kein separates Cutout.

6

06

Testen Sie im Play-Modus, dann in einem Avatar-Upload. Bestätigen Sie den Loop-Punkt: Auf den letzten Frame sollte ohne Pause der erste folgen.

Frame-Strip vs. Raster: Was exportieren

Die Pixeldaten sind identisch. Die Wahl hängt davon ab, was sie konsumiert. Shader wollen einen Strip. Engines und Sprite-Systeme wollen ein Raster. Entscheiden Sie sich nach dem Konsumenten, nicht nach der Dateigröße — ein Strip ist breiter und ein Raster quadratischer, und beide komprimieren bei gleicher Gesamtpixelzahl ähnlich.

Ein Strip hat eine Zeile, daher bleibt die V-Koordinate ungenutzt und der Shader verschiebt nur U. Das sind weniger Instruktionen und weniger Möglichkeiten, die Mathematik falsch zu machen. Ein Raster nutzt beide Achsen, was atlasbasierte Systeme erwarten. Wenn Sie unsicher sind, exportieren Sie den Strip und exportieren Sie nur dann als Raster neu, wenn ein Engine-Importer danach verlangt.

Ein weiterer Fall ist der Sprite-Animator, der einzelne Frames erwartet. Manche Engines wollen einen Ordner mit PNGs, keinen Atlas. Das Tool kann die Frames separat schreiben, aber das Bild auf der Festplatte ist dann die Summe aller Frames statt einer einzelnen Datei, und die Importeinstellungen gelten pro Frame.

KonsumentLayoutWas es liestHinweis
Shader-FlipbookEinzelne ZeileZeilen 1, Spalten N, U-OffsetWenigste UV-Instruktionen, einfache Schleife
Sprite-AtlasRasterZeilen M, Spalten N, ZellgrößeZellgröße entspricht Canvas-Größe
Sprite-AnimatorRaster oder separate PNGsFrame-Reihenfolge und FPSSeparate PNGs verlieren das Einzeldatei-Paket
Engine-ImportRasterZeilen, Spalten, Frame-AnzahlBild annähernd quadratisch halten, um Texturgrenzen zu respektieren

In 3D abspielen

Eine Flipbook-Textur auf einer statischen Ebene beweist nichts. Die Punkte, die Sie prüfen müssen, sind die, die erst in Bewegung sichtbar werden: ob die Naht sauber umläuft, ob das Alpha in der Ferne hält, ob sich die FPS richtig anfühlen, wenn sich die Kamera bewegt. The Cyclops' Island ist eine spielbare Szene, die im 3D-Spiel-Builder erstellt wurde, wo Oberflächen in Echtzeit animieren, sodass Sie eine Flipbook-Schleife neben Geometrie beobachten können statt in einem Inspector.

Öffnen Sie es, laufen Sie über die Oberfläche und beobachten Sie den Loop-Punkt. Wenn ein Flipbook einen Frame zu kurz oder eine Spalte zu breit ist, sehen Sie es dort — ein sichtbares Stocken oder diagonale Schlieren —, noch bevor Sie ein Asset hochladen. Das ist das ganze Argument für die spielbare Szene: Der Fehler ist visuell, und visuelle Fehler brauchen einen Viewport.

Dieselbe Szene ist eine Referenz dafür, wie das Durchblättern von Frames bei unterschiedlichen Entfernungen und Kamerawinkeln wirkt. Frames, die aus der Nähe bei 128 Pixeln gut aussehen, werden in der Ferne ohne Mip-Kontrolle Aliasing zeigen; Frames, die aus der Ferne gut aussehen, können aus der Nähe zu weich sein. Beides lässt sich in Bewegung leichter beurteilen.

Magier-Zauber — ein 4-Frame-Strip (577×686 pro Frame), genau die Eingabe, die ein Flipbook-Shader möchte.
The Cyclops' Island — eine Flipbook-Animation in einer echten 3D-Szene laufen sehen.

Betreten Sie die Welt, zu der es gehört

Ein Sprite ist eine Figur ohne Ort zum Stehen. Der letzte Schritt ist der, den sonst niemand bietet: Nehmen Sie das Sheet, das Sie gerade erstellt haben, und setzen Sie es in eine Welt, in der jemand herumlaufen kann — eine kleine Insel, ein Planet, eine regnerische Straßenecke. Jede Welt auf dieser Seite wurde aus einer geschriebenen Beschreibung erstellt und als spielbare Seite veröffentlicht.

FAQ

Was ist ein Poiyomi-Flipbook? +

Poiyomi ist ein Shader-Paket für Unity und VRChat, und sein Flipbook-Node sampelt einen gepackten Frame-Strip, sodass ein Material Frames ohne Animator durchläuft. Sie geben ihm die Textur, die Zeilen und Spalten und einen Blend-Wert. Der Blend-Wert bewegt den Index und wird üblicherweise von einem animierten Float-Parameter gesteuert.

Warum zeigt mein Flipbook diagonale Schlieren? +

Die deklarierte Spaltenanzahl stimmt nicht mit dem Bild überein. Ein 24-Frame-Strip, der als 23 Spalten gesampelt wird, verschiebt jeden Frame um einen Bruchteil einer Zelle, was sich zu diagonalen Schlieren über den Strip summiert. Prüfen Sie den exportierten Spaltenwert erneut gegen die tatsächliche Frame-Anzahl.

Sollte ich einen Strip oder ein Raster exportieren? +

Exportieren Sie eine einzelne Zeile für Shader-Flipbooks, weil die UV-Mathematik eindimensional ist und die Schleife trivial. Exportieren Sie ein Raster für Sprite-Atlanten und Engine-Importer, die Zeilen und Spalten erwarten. Die Pixel sind dieselben; nur der Konsument unterscheidet sich.

Wie behalte ich den transparenten Hintergrund? +

Der Export schreibt Alpha in das PNG, statt auf eine Farbe abzuflachen. Setzen Sie beim Import Alpha ist Transparenz und lassen Sie sRGB an. Wenn ein Quell-GIF eine Mattierungsfarbe statt echter Transparenz verwendet hat, komponiert das Tool vollständige Frames auf eine transparente Canvas, damit die Mattierung nicht erhalten bleibt.

Mein GIF hat ungleichmäßige Frame-Verzögerungen. Welche FPS verwende ich? +

Wählen Sie eine feste Rate. Der Standard ist die mediane Verzögerung, die üblicherweise dem nahekommt, was das GIF im Browser zeigt. Ein Flipbook-Shader läuft mit konstanter Taktung, daher können gemischte Verzögerungen nicht dargestellt werden, ohne auf eine einzige Frame-Zeit neu abzutasten.

Warum hakt mein Flipbook am Loop-Punkt? +

Entweder enthält die Frame-Anzahl einen doppelten letzten Frame, oder die FPS weichen leicht von der Quelle ab. Prüfen Sie die exportierte Frame-Anzahl und den FPS-Wert zusammen. Eine Schleife, die pausiert, ist fast immer ein zusätzlicher Frame und kein Shader-Problem.

Zurück zum 3D-Spiel-Builder

Alle 31 fertigen 3D-Welten, Spiele und Szenen befinden sich auf einer Seite — jede davon spielbar.

Plattform: Neta StudioSeite: GIF zu Flipbook-TexturAls Nächstes lesen: /explore/tool/gif-to-sprite-sheet · /explore/guide/flipbook-texture · /app/flip-book-maker

Flipbook-fertige Strips ansehen

Jedes Asset in dieser Bibliothek ist ein transparentes, spielfertiges PNG mit aufgezeichnetem Prompt — Sprite-Sheet-Ressourcen und kostenlose Sprite-Sheets, verschlagwortet nach Aktion, Stil und Motiv. Kostenlos zum Durchsuchen und Herunterladen.

×