Icônes de l’éditeur

When a new class is created and exposed to scripting, the editor’s interface will display it with a default icon representing the base class it inherits from. Yet in most cases it is recommended to create icons for new classes to improve the user experience.

Création d’icônes

In order to create new icons, you first need a vector graphics editor installed. For instance, you can use the open-source Inkscape editor.

Clone the godot-design repository containing all the original editor icons:

git clone https://github.com/godotengine/godot-design

The icons must be created in a vector graphics editor in svg format. You can use engine/icons/inkscape_template.svg with default icon properties already set up.

Once you’re satisfied with the icon’s design, save the icon in engine/icons/svg/ folder. But in order for the engine to automatically pick up the icons, each icon’s filename:

  1. Must be prefixed with icon_.

  2. PascalCase name should be converted to snake_case, so words are separated by _ whenever case changes, and uppercase acronyms must also have all letters, numbers, and special characters separated as distinct words. Some examples:

    Nom Nom de fichier
    `` Polygon2D`` icon_polygon_2_d.svg
    CSGPolygon icon_c_s_g_polygon.svg
    CPUParticles2D icon_c_p_u_particles_2_d.svg
    C# icon_c_#.svg

Optimisation des icônes

Comme l’éditeur rend les svg au moment de l’exécution, ils doivent être de petite taille pour pouvoir être analysés efficacement. Les icônes de l’éditeur doivent donc être optimisées avant d’être ajoutées au moteur. Pour ce faire :

  1. Ajoutez-les dans le dossier engine/icons/svg.

  2. Exécutez le script optimize.py. Vous devez avoir installé le paquet scour :

    pip install scour
    cd godot-design/engine/icons && ./optimize.py
    

Les icônes optimisées seront générées dans le dossier engine/icons/optimized.

Intégration et partage des icônes

Si vous contribuez au moteur lui-même, vous devez faire une pull request pour ajouter les icônes optimisées au répertoire godot/editor/icons dans le dépôt principal. Recompilez le moteur pour vous assurer qu’il détecte bien les nouvelles icônes pour les classes. Une fois fusionné, n’oubliez pas d’ajouter la version originale des icônes au dépôt godot-design afin que ceux-ci puissent être améliorés par d’autres contributeurs.

Il est également possible de créer des icônes personnalisées au sein d’un module. Si vous créez votre propre module et que vous ne prévoyez pas de l’intégrer à Godot, vous n’avez pas besoin de faire une pull request pour que vos icônes soient disponibles dans l’éditeur car elles peuvent être indépendantes.

Pour des instructions spécifiques sur la manière de créer des icônes pour un module, vous pouvez vous référer à Création d’icônes de module personnalisées.

Troubleshooting

Si les icônes n’apparaissent pas dans l’éditeur, assurez-vous que :

  1. Le nom de fichier de chaque icône correspond aux exigences de nommage telles que décrites précédemment.
  2. modules/svg est activé (il devrait être activé par défaut). Sans cela, les icônes n’apparaîtront pas dans l’éditeur.

Références :