Ga naar hoofdinhoud

Je eigen animaties maken

Tot nu toe heb je gewerkt met kant-en-klare sprite-sheets uit het Pixel Adventure-pack. Tijd om dat los te laten en je eigen personage te animeren โ€” uit een eigen tekening, een geknipte GIF of een afbeelding die je ergens vond. In deze les leer je hoe je losse frames maakt, ze transparant achtergrondje geeft en in Godot zet.

Godot 4.5

Geschreven voor Godot 4.5.x โ€” zie Godot-versies voor compatibiliteit.

Voorspel: wat heb je nodig om je eigen animatie te maken?โ€‹

Drie ingrediรซnten zijn nodig. Welke denk je?

Antwoord
  1. Losse PNG-frames โ€” รฉรฉn afbeelding per pose (bijv. 6 frames voor een loop-cyclus).
  2. Transparante achtergrond op elke PNG (anders zit er een witte rechthoek achter je karakter).
  3. Invoeren in Godot โ€” sleep ze in de SpriteFrames-editor uit Animaties aanmaken.

Stap 1: Verzamel je framesโ€‹

Drie aanpakken, kies wat past:

Aanpak A โ€” Screenshots uit een sprite-sheetโ€‹

Heb je een sprite-sheet (รฉรฉn afbeelding met meerdere poses naast elkaar) maar Godot herkent de frames niet automatisch? Knip ze handmatig:

  1. Open de afbeelding in je standaard fotoviewer of in een browser-tab.
  2. Zoom voldoende in zodat รฉรฉn frame goed zichtbaar is.
  3. Druk op Win + Shift + S โ†’ Rechthoekige selectie โ†’ trek een vierkant strak rond รฉรฉn frame.
  4. Plak het screenshot in een nieuwe afbeelding (Paint, Photopea, Piskelโ€ฆ) en sla op als frame_01.png.
  5. Herhaal voor elke frame met dezelfde uitsnijding-grootte (anders schalen je frames straks niet gelijk in Godot).
tip

Werk altijd met een vast canvas-formaat (bijv. 32ร—32 of 64ร—64 pixels). Plak elk screenshot in een nieuw frame van datzelfde canvas in Piskel of LibreSprite โ€” zo blijven alle frames identiek.

Aanpak B โ€” Eigen frames tekenen in een pixel-art toolโ€‹

Wil je een volledig eigen karakter tekenen?

  1. Open Piskel, LibreSprite of Pixilart.
  2. Maak een nieuw canvas (bijv. 32ร—32 of 64ร—64 pixels โ€” kies hetzelfde formaat als je andere sprites).
  3. Teken je idle-pose. Klik op Add new frame en teken de volgende fase. Herhaal tot je 4-8 frames hebt.
  4. Exporteer als losse PNG's of als sprite-sheet โ€” beide werkt in Godot.

Aanpak C โ€” Frames knippen uit een GIFโ€‹

Heb je een animatie als GIF (bijvoorbeeld uit een tutorial of YouTube)?

  1. Ga naar ezgif.com/split.
  2. Upload je GIF.
  3. Klik op Split to frames. en daarna op Download frames as ZIP.
  4. Je krijgt elke frame als losse PNG.

Stap 2: Maak de achtergrond transparantโ€‹

Zonder transparantie zit er straks een witte (of een andere) rechthoek achter je karakter in Godot. Een PNG kan transparantie bevatten via het zogeheten alpha-kanaal โ€” pixels zijn dan letterlijk doorzichtig.

Drie manierenโ€‹

Manier 1 โ€” Piskel of LibreSprite (aanbevolen voor pixel-art)

  • Open je PNG โ†’ menu File โ†’ Import.
  • Bij het importeren wordt de witte achtergrond standaard transparant gemaakt zodra je hem aanklikt.
  • Exporteer terug als PNG via Export โ†’ PNG.

Manier 2 โ€” Photopea (browser-based Photoshop-alternatief)

  1. Ga naar photopea.com โ†’ File โ†’ Open โ†’ kies je PNG.
  2. Klik op de witte achtergrond met de Magic Wand-tool (toverstaf).
  3. Druk op Delete โ€” de witte achtergrond verdwijnt, je ziet een schaakbord (= transparant).
  4. File โ†’ Export As โ†’ PNG.

Manier 3 โ€” GIMP (open-source, lokaal)

  1. Open je PNG โ†’ Layer โ†’ Transparency โ†’ Add Alpha Channel.
  2. Select โ†’ By Color โ†’ klik op de witte achtergrond.
  3. Druk Delete.
  4. File โ†’ Export As โ†’ .png.
tip

Sommige downloads (vooral van itch.io of opengameart.org) hebben al een transparante achtergrond. Test eerst: sleep je PNG in Godot en kijk of er een rechthoek omheen zit. Geen rechthoek = al transparant, sla Stap 2 over.

Stap 3: Importeer in Godotโ€‹

  1. Sleep je losse PNG's naar de assets/-map in je FileSystem-paneel.
  2. Open de SpriteFrames-editor (zie Animaties aanmaken voor de stappen).
  3. Klik op een animatie (bijv. idle) en sleep je frames รฉรฉn voor รฉรฉn in het frame-paneel, in de juiste volgorde.
  4. Zet de FPS op 8 of 10, zet Loop aan voor doorlopende animaties (idle, run) of uit voor eenmalige (jump).
  5. Speel af via je script (zie Animaties in code).

Handige open-source toolsโ€‹

ToolWat doet het?Waar?
PiskelPixel-art en animaties tekenen, GIF-exportBrowser (gratis, open-source)
LibreSpriteOpen-source fork van Aseprite, desktopWindows/Mac/Linux
GIMPBeeldbewerking, transparantieDesktop (alle platforms)
PhotopeaPhotoshop-alternatief in de browserBrowser (gratis)
ezgif.comGIF naar losse PNG-frames omzettenBrowser
PixilartPixel-art tekenen in de browserBrowser (gratis)

Er gaat iets misโ€‹

Mijn frames hebben verschillende formaten en springen tijdens de animatie

Oorzaak: Bij screenshots heb je per frame een iets andere uitsnijding gemaakt.

Oplossing: Werk met een vast canvas in Piskel of LibreSprite (bijv. 32ร—32 pixels). Plak elk screenshot in een nieuw frame van datzelfde canvas. Zo houden alle frames identiek formaat en springt de animatie niet.

Mijn karakter heeft nog een witte rechthoek omheen in Godot

Oorzaak: De PNG heeft geen alpha-kanaal (transparantie).

Oplossing: Doorloop Stap 2 met Photopea of GIMP. Test daarna opnieuw door de PNG in Godot te slepen โ€” geen rechthoek meer = klaar.

De animatie speelt af, maar de richtingen kloppen niet

Oorzaak: Frames staan in de verkeerde volgorde in SpriteFrames.

Oplossing: Sleep de frames in de juiste volgorde in het frame-paneel. Bij twijfel: speel af op 2 FPS om elke frame te kunnen zien, sleep daarna in de juiste volgorde, en zet FPS terug op 8-10.

Mijn karakter is wazig / pixel-art ziet er niet scherp uit

Oorzaak: Godot gebruikt standaard een blur-filter (lineaire filtering). Pixel-art wordt daardoor vloeiend uitgesmeerd in plaats van scherp.

Oplossing:

  1. Ga naar Project โ†’ Project Settings.
  2. Typ default_texture_filter in de zoekbalk bovenin.
  3. Verander de waarde van Linear naar Nearest.

Vanaf nu worden alle afbeeldingen in je project scherp weergegeven.