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.
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
- Losse PNG-frames โ รฉรฉn afbeelding per pose (bijv. 6 frames voor een loop-cyclus).
- Transparante achtergrond op elke PNG (anders zit er een witte rechthoek achter je karakter).
- 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:
- Open de afbeelding in je standaard fotoviewer of in een browser-tab.
- Zoom voldoende in zodat รฉรฉn frame goed zichtbaar is.
- Druk op
Win + Shift + Sโ Rechthoekige selectie โ trek een vierkant strak rond รฉรฉn frame. - Plak het screenshot in een nieuwe afbeelding (Paint, Photopea, Piskelโฆ) en sla op als
frame_01.png. - Herhaal voor elke frame met dezelfde uitsnijding-grootte (anders schalen je frames straks niet gelijk in Godot).
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?
- Open Piskel, LibreSprite of Pixilart.
- Maak een nieuw canvas (bijv. 32ร32 of 64ร64 pixels โ kies hetzelfde formaat als je andere sprites).
- Teken je idle-pose. Klik op Add new frame en teken de volgende fase. Herhaal tot je 4-8 frames hebt.
- 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)?
- Ga naar ezgif.com/split.
- Upload je GIF.
- Klik op Split to frames. en daarna op Download frames as ZIP.
- 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)
- Ga naar photopea.com โ File โ Open โ kies je PNG.
- Klik op de witte achtergrond met de Magic Wand-tool (toverstaf).
- Druk op Delete โ de witte achtergrond verdwijnt, je ziet een schaakbord (= transparant).
- File โ Export As โ PNG.
Manier 3 โ GIMP (open-source, lokaal)
- Open je PNG โ Layer โ Transparency โ Add Alpha Channel.
- Select โ By Color โ klik op de witte achtergrond.
- Druk Delete.
- File โ Export As โ
.png.
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โ
- Sleep je losse PNG's naar de
assets/-map in je FileSystem-paneel. - Open de SpriteFrames-editor (zie Animaties aanmaken voor de stappen).
- Klik op een animatie (bijv.
idle) en sleep je frames รฉรฉn voor รฉรฉn in het frame-paneel, in de juiste volgorde. - Zet de FPS op 8 of 10, zet Loop aan voor doorlopende animaties (idle, run) of uit voor eenmalige (jump).
- Speel af via je script (zie Animaties in code).
Handige open-source toolsโ
| Tool | Wat doet het? | Waar? |
|---|---|---|
| Piskel | Pixel-art en animaties tekenen, GIF-export | Browser (gratis, open-source) |
| LibreSprite | Open-source fork van Aseprite, desktop | Windows/Mac/Linux |
| GIMP | Beeldbewerking, transparantie | Desktop (alle platforms) |
| Photopea | Photoshop-alternatief in de browser | Browser (gratis) |
| ezgif.com | GIF naar losse PNG-frames omzetten | Browser |
| Pixilart | Pixel-art tekenen in de browser | Browser (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:
- Ga naar Project โ Project Settings.
- Typ
default_texture_filterin de zoekbalk bovenin. - Verander de waarde van
LinearnaarNearest.
Vanaf nu worden alle afbeeldingen in je project scherp weergegeven.