This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
Un composant (component) sprite est une simple image ou une animation image par image affichée à l’écran.
![]()
Le composant sprite peut utiliser un atlas ou une source de tuiles pour ses graphismes.
Outre les propriétés Id, Position et Rotation, les propriétés suivantes sont propres à ce composant :
Image. Sinon, chaque emplacement porte le nom de l’échantillonneur de texture dans le matériau.
Chaque emplacement indique la ressource atlas ou source de tuiles à utiliser pour le sprite avec cet échantillonneur de texture.Automatic, l’éditeur définit la taille du sprite. Si la valeur est Manual, vous pouvez définir la taille vous-même.Les nœuds Box de l’interface graphique et les composants sprite (sprite components) comportent parfois des éléments dont la taille dépend du contexte : des panneaux et des boîtes de dialogue qui doivent être redimensionnés pour s’adapter à leur contenu, ou une barre de vie qui doit être redimensionnée pour indiquer les points de vie restants d’un ennemi. Cela peut entraîner des problèmes visuels lorsque vous appliquez une texture au nœud ou au sprite redimensionné.
Normalement, le moteur met la texture à l’échelle pour l’adapter aux limites du rectangle, mais la définition de zones de bordure pour le découpage en neuf tranches (slice-9) permet de limiter les parties de la texture qui doivent être mises à l’échelle :

Le paramètre Slice9 du nœud Box se compose de quatre nombres qui indiquent le nombre de pixels des marges gauche, supérieure, droite et inférieure qui ne doivent pas être mises à l’échelle de la manière habituelle :

Les marges sont définies dans le sens des aiguilles d’une montre, en partant du bord gauche :

La mise à l’échelle de la texture avec Slice9 décrite ci-dessus s’applique uniquement lorsque vous modifiez la taille du nœud Box ou du sprite :

![]()
Si vous modifiez le paramètre d’échelle du nœud Box, du sprite ou de l’objet de jeu (game object), le nœud ou le sprite et la texture sont mis à l’échelle sans appliquer les paramètres Slice9.
Lorsque vous utilisez le texturage en neuf tranches sur des sprites, le paramètre Sprite Trim Mode de l’image doit être réglé sur Off.
En raison du fonctionnement du mipmapping dans le moteur de rendu, la mise à l’échelle des segments de texture peut parfois présenter des artefacts. Cela se produit lorsque vous réduisez la taille des segments en dessous de la taille de la texture d’origine. Le moteur de rendu sélectionne alors un mipmap de résolution inférieure pour le segment, ce qui entraîne des artefacts visuels.

Pour éviter ce problème, assurez-vous que les segments de la texture qui seront mis à l’échelle sont suffisamment petits pour ne jamais devoir être réduits, mais uniquement agrandis.
La propriété Blend Mode définit la façon dont les éléments graphiques du composant (component) doivent être fusionnés avec ceux qui se trouvent derrière lui. Voici les modes de fusion disponibles et leur calcul :
src.a * src.rgb + (1 - src.a) * dst.rgbsrc.rgb + dst.rgbsrc.rgb * dst.rgbsrc.rgb - dst.rgb * dst.rgbVous pouvez manipuler les sprites à l’exécution au moyen de différentes fonctions et propriétés (consultez la documentation de l’API pour leur utilisation). Fonctions :
sprite.play_flipbook() - Joue une animation sur un composant sprite.sprite.set_hflip() et sprite.set_vflip() - Définissent le retournement horizontal et vertical de l’animation d’un sprite.Un sprite possède également différentes propriétés que vous pouvez manipuler avec go.get() et go.set() :
cursornumber).imagehash). Vous pouvez la modifier à l’aide d’une propriété de ressource atlas ou source de tuiles et de go.set(). Consultez la référence de l’API pour un exemple.materialhash). Vous pouvez le modifier à l’aide d’une propriété de ressource matériau et de go.set(). Consultez la référence de l’API pour un exemple.playback_ratenumber).scalevector3).sizevector3). Elle ne peut être modifiée que si la propriété Size Mode du sprite est définie sur Manual.Le matériau sprite par défaut possède les constantes suivantes, que vous pouvez modifier avec go.set() ou go.animate() (consultez le manuel des matériaux pour plus de détails). Exemples :
go.set("#sprite", "tint", vmath.vector4(1,0,0,1))
go.animate("#sprite", "tint", go.PLAYBACK_LOOP_PINGPONG, vmath.vector4(1,0,0,1), go.EASING_LINEAR, 2)
tintvector4). Le type vector4 représente la teinte, avec x, y, z et w correspondant aux composantes rouge, verte, bleue et alpha de la teinte.Un sprite peut redéfinir les attributs de sommets du matériau actuellement assigné, qui seront transmis au shader de sommets par le composant (consultez le manuel des matériaux pour plus de détails).
Les attributs spécifiés dans le matériau apparaissent comme des propriétés ordinaires dans l’inspecteur et peuvent être définis individuellement sur chaque composant sprite. Si un attribut est redéfini, il apparaît comme une propriété redéfinie et est enregistré dans le fichier sprite sur le disque :
![]()
Le fichier game.project comporte quelques paramètres du projet liés aux sprites.
Lorsqu’un sprite utilise plusieurs textures, certains points sont à prendre en compte.
Les données d’animation (nombre d’images par seconde, noms des images) proviennent actuellement de la première texture. Nous l’appellerons « animation directrice ».
Les identifiants d’image de l’animation directrice servent à rechercher les images dans une autre texture. Il est donc important de veiller à ce que les identifiants d’image correspondent entre les textures.
Par exemple, si votre diffuse.atlas contient une animation run comme ceci :
run:
/main/images/hero_run_color_1.png
/main/images/hero_run_color_2.png
...
Alors les identifiants d’image seront de la forme run/hero_run_color_1, qu’il est peu probable de trouver, par exemple, dans un normal.atlas :
run:
/main/images/hero_run_normal_1.png
/main/images/hero_run_normal_2.png
...
Nous utilisons donc Rename patterns dans l’atlas pour les renommer.
Définissez _color= et _normal= dans les atlas correspondants, et vous obtiendrez des noms d’image comme ceux-ci dans les deux atlas :
run/hero_run_1
run/hero_run_2
...
Les coordonnées UV proviennent de la première texture. Comme il n’y a qu’un seul ensemble de sommets, nous ne pouvons pas garantir une bonne correspondance si les textures secondaires ont davantage de coordonnées UV ou une forme différente.
Ce point est important : veillez à ce que les images aient des formes suffisamment similaires, sinon vous risquez d’observer des bavures de texture.
Les dimensions des images dans chaque texture peuvent être différentes.