Importer une planche dans Godot
Godot 4 peut lire une planche de sprites de trois façons différentes ; choisir la mauvaise peut vous obliger à refaire deux fois votre configuration d’animation. Ce guide présente AnimatedSprite2D avec SpriteFrames, les régions AtlasTexture et le raccourci hframes/vframes sur un simple Sprite2D : leurs usages respectifs et la marche à suivre lorsque la planche n’est pas une véritable grille.
Importer la texture dans le projet
Godot surveille les fichiers. Copiez PNG dans le projet ; il apparaît dans FileSystem avec un .import fichier créé à côté. Ne modifiez jamais ce fichier manuellement ; changez les réglages dans le panneau Import et appuyez sur Réimporter.
Avant tout, réglez le filtrage : c’est le paramètre le plus visible pour le pixel art. Dans Godot 4, le filtre de texture se trouve sur le nœud plutôt que dans les paramètres d’importation, sous CanvasItem → Texture → Filter. Réglez-le sur Nearest et les contours francs des pixels le restent. Le régler pour chaque nœud devient vite fastidieux : changez plutôt la valeur par défaut du projet : Project Settings → Rendering → Textures → rendering/textures/canvas_textures/default_texture_filter → Nearest. Chaque CanvasItem laissé sur Inherit le récupère ensuite.
Pendant que vous êtes dans le panneau Import, laissez Mipmaps désactivé pour les sprites 2D affichés près de leur taille native ; notez que Godot 4 ne compresse les textures aux formats VRAM que lorsque vous choisissez VRAM Compressed. La valeur par défaut Lossless est le mode voulu pour le pixel art ; la compression VRAM introduit précisément les artefacts de blocs que les dessins en aplats révèlent le plus.
Méthode 1 : AnimatedSprite2D et SpriteFrames
C’est la méthode pour tout ce qui s’anime, et le point de départ conseillé pour la plupart des projets. AnimatedSprite2D est un nœud contenant un SpriteFrames ressource : une collection nommée d’animations, chacune constituée d’une liste ordonnée de textures avec une fréquence d’images et un indicateur de boucle.
- Ajouter un AnimatedSprite2D à votre scène.
- Dans Inspector, cliquez sur Sprite Frames propriété et choisissez New SpriteFrames. Le panneau SpriteFrames s'ouvre en bas de l'éditeur.
- Renommez l’animation par défaut de default à une valeur pertinente — walk, idle. Vous référencerez ces chaînes dans le code.
- Ajoutez des images avec l'un des deux boutons : Ajouter des images depuis une planche de sprites (l'icône de grille) ou Ajouter des images depuis des fichiers (l'icône de fichier).
- Réglez les FPS de l’animation et l’option de boucle, puis lisez-la dans le panneau pour vérifier le rythme avant d’écrire du code.
Ajouter des images depuis une planche de sprites
L'icône de grille ouvre un dialogue pour choisir le PNG et décrire la disposition : Horizontal et Vertical comptages, plus Separation et Offset si la planche comporte des marges ou des espacements. L’aperçu se met à jour en direct ; cliquez ensuite sur les cellules voulues, dans l’ordre souhaité. Maj-clic sélectionne une plage.
Deux détails à connaître. D’abord, l’ordre de sélection devient l’ordre des images ; cliquer les cellules dans le désordre produit une animation désordonnée. Ensuite, ce dialogue suppose une grille régulière, comme Grid By Cell Count dans Unity. Il n’a aucun mode de détection de contenu, aucun équivalent du découpage Automatic. Si la grille n’est pas réelle, il ne peut la corriger.
Ajouter des images depuis des fichiers
Sélectionnez plusieurs PNG individuels ; ils deviennent des images d’animation dans l’ordre alphabétique de Godot. Ajoutez des zéros en tête des noms de fichiers — walk_01.png jusqu’à walk_12.png — sinon l’image 10 suit immédiatement l’image 1. Cette méthode est la plus facile à réussir et explique pourquoi prédécouper une planche en fichiers est souvent plus simple, particulièrement dans Godot.
Méthode 2 : régions AtlasTexture
Un AtlasTexture est une ressource pointant vers une région d’une texture plus grande et se comportant comme une texture indépendante partout où Godot en accepte une. Vous la créez en définissant une propriété de texture sur New AtlasTexture, en affectant la planche à sa propriété atlas propriété, puis en saisissant les region rectangle (x, y, width, height).
C’est l’option la plus souple et la plus manuelle. Elle est idéale si les sprites sont à des positions arbitraires, si plusieurs nœuds utilisent différents morceaux d’une texture ou si les régions viennent de données dans le code :
- Thème d'interface extrayant nine-patch et icônes d'une texture commune.
- Ensemble de tuiles ou catalogue dont un script crée des AtlasTextures depuis le manifeste JSON.
- Sprite statique isolé où un fichier supplémentaire paraît excessif.
Le filter_clip est une propriété à connaître : son activation empêche la texture d’échantillonner hors de sa région, ce qui corrige le fin débordement du sprite voisin le long d’un bord.
Méthode 3 : hframes/vframes dans Sprite2D
Un simple Sprite2D possède trois propriétés permettant de lire une planche sans aucune ressource supplémentaire : hframes, vframes, et frame. Mettez hframes et vframes sur 4 : Godot divise en grille 4×4 ; régler frame sur un indice de 0 à 15 affiche cette cellule.
Méthode la plus légère, animée proprement depuis une piste AnimationPlayer sur frame propriété, ou avec quelques lignes dans _process. Pour une planche exportée par un outil, c'est réellement suffisant.

Pourquoi les planches irrégulières font échouer les trois méthodes et comment y remédier
Toutes les méthodes ci-dessus reposent sur une hypothèse : vous pouvez décrire la planche par des calculs. Add Frames from Sprite Sheet demande des nombres de cases. hframes/vframes demandent des nombres de cases. AtlasTexture demande des rectangles explicites, que vous pouvez définir correctement, mais seulement en mesurant chacun à la main.
Les planches des générateurs d’images rompent cette hypothèse. Un modèle auquel on demande un « cycle de marche 4×4 » produit un aspect de grille parce qu’il en a vu des milliers, pas parce qu’il a calculé les limites des cellules. L’espacement dérive de quelques pixels par colonne et s’accumule de gauche à droite ; la taille change selon la pose ; le contenu est décentré. Réglez hframes sur 4 : la première colonne semble correcte, la deuxième est légèrement coupée et la quatrième traverse le personnage.
La solution fiable est de cesser de décrire la planche et de la lire. Sur un fond transparent, chaque pixel est sprite (alpha supérieur à zéro) ou fond (alpha nul), et les lignes et colonnes entièrement transparentes indiquent les limites réelles. Coupez au milieu de ces espaces, rognez chaque morceau à son contenu et vous obtenez des images individuelles indépendantes d’une grille supposée.
C’est ce que fait l’onglet Magic Slice de notre Découpeur de planches de sprites fait, avec quelques passes de raffinement pour détecter les morceaux contenant encore deux sprites ou trop de marges. Exportez les résultats en PNG individuels et chargez-les avec Ajouter des images depuis des fichiers. Lorsque la détection automatique peine — sprites qui se touchent, lueur couvrant le canevas ou personnage aux parties détachées — l’onglet Manuel et préréglages permet de placer chaque ligne dans le bon espace, soit six déplacements pour une planche de seize images.
Si le fond est uni plutôt que transparent, utilisez suppression du fond d’abord. Le faire une fois sur toute la planche donne une seule opération et un résultat cohérent ; le faire ensuite sur seize images séparées donne seize occasions de diverger.
PNG individuels ou planche unique
| Une planche | PNG individuels | |
|---|---|---|
| Effort de configuration | Faible si grille réelle, élevée sinon | Toujours faible |
| Modifier une image | Réexporter et redécouper la planche | Remplacer un fichier |
| Ordonnancement des images | Ordre des clics dans le dialogue | Tri par nom : zéros initiaux |
| Appels de dessin | Bon regroupement : une texture | Plus de textures sauf atlas |
| Gère les dispositions irrégulières | Non | Oui — chaque fichier constitue une image |
Pour la plupart des projets 2D, la différence d’appels de dessin n’est pas le facteur limitant, et les fichiers individuels sont plus pratiques. Si les changements de texture finissent par compter, empaquetez les images terminées dans un atlas lors de la compilation, plutôt que de les créer dès le départ dans une immense planche découpée à la main.
Questions fréquentes
Pourquoi mon pixel art est-il flou dans Godot 4 ?
Le filtre de texture. Réglez rendering/textures/canvas_textures/default_texture_filter sur Nearest dans Project Settings, et vérifiez que Texture Filter du nœud est sur Inherit plutôt que sur Linear explicitement. Si l’image reste floue, la fenêtre de rendu peut être redimensionnée selon un facteur non entier : examinez les modes d’étirement et d’échelle sous Display → Window.
Faut-il utiliser AnimatedSprite2D ou un AnimationPlayer contrôlant un Sprite2D ?
AnimatedSprite2D pour une animation simple image par image : il est conçu pour cela et demande moins de préparation. AnimationPlayer lorsque vous devez synchroniser d’autres éléments avec les images : positions des hitboxes, déclenchement de sons, émission de particules ou visibilité des nœuds. Beaucoup de projets utilisent finalement les deux.
Un morceau de l'image suivante apparaît au bord du sprite.
Débordement de texture dû à un échantillonnage hors de la zone. Passez le filtre sur Nearest et activez filter_clip si vous utilisez un AtlasTexture, et vérifiez que la taille des cellules divise exactement la texture. Un ou deux pixels de marge transparente entre les sprites dans la source règlent définitivement le problème.
Puis-je changer les images par code plutôt que par le panneau ?
Oui. Sur un Sprite2D, affectez au frame propriété directement. Sur un AnimatedSprite2D, appelez play("walk") ou réglez frame pendant la pause. Piloter les images manuellement est courant pour une barre de vie composée d’états de sprites distincts.
Découper d'abord la planche
Les importateurs de Godot supposent tous une grille régulière. Si votre planche ne l’est pas, découpez-la dans le navigateur et chargez les résultats avec Add Frames from File(s). Magic Slice lit le canal alpha ; Manuel et préréglages vous permet de placer les lignes vous-même. Rien ne quitte votre ordinateur.
Ouvrir le découpeur de planches