Utilisation de gridmaps

Introduction

ref:Gridmaps <class_GridMap> sont un outil pour créer des niveaux de jeu 3D, similaire à la manière dont TileMap fonctionne en 2D. Vous commencez avec une collection prédéfinie de maillages 3D (a class_MeshLibrary) qui peuvent être placés sur une grille, comme si vous construisiez un niveau avec un nombre illimité de blocs Lego.

Les collisions et la navigation peuvent également être ajoutées aux maillages, tout comme vous le feriez avec les tuiles d’une carte en mosaïque.

Exemple de projets

Pour apprendre comment fonctionnent les GridMaps, commencez par télécharger l’exemple de projet : gridmap_demo.zip.

Décompressez ce projet et ajoutez-le au gestionnaire de projet en utilisant le bouton « Importer ».

Création d’une MeshLibrary

Pour commencer, vous avez besoin d’une class_MeshLibrary, qui est une collection de maillages individuels qui peuvent être utilisés dans la grille. Ouvrez la scène « MeshLibrary_Source.tscn » pour voir un exemple de configuration de la MeshLibrary.

../../_images/gridmap_meshlibrary1.png

Comme vous pouvez le voir, cette scène a un nœud class_Spatial comme racine, et un certain nombre de class_MeshInstance enfants.

Si vous n’avez pas besoin de physique dans votre scène, alors c’est fini. Cependant, dans la plupart des cas, vous voudrez assigner des corps de collision aux mailles.

Collisions

Vous pouvez assigner manuellement un class_StaticBody et un class_CollisionShape à chaque maille. Vous pouvez également utiliser le menu « Mesh » pour créer automatiquement le corps de collision en fonction des données du maillage.

../../_images/gridmap_create_body.png

Notez qu’un corps de collision « convexe » fonctionnera mieux pour des mailles simples. Pour des formes plus complexes, sélectionnez « Create Trimesh Static Body ». Une fois que chaque maille a un corps physique et une forme de collision assignés, votre bibliothèque de mailles est prête à être utilisée.

../../_images/gridmap_mesh_scene.png

Matériaux

Seuls les matériaux provenant des mailles sont utilisés lors de la génération de la bibliothèque de mailles. Les matériaux définis sur le nœud seront ignorés.

Exportation de la MeshLibrary

Pour exporter la bibliothèque, cliquez sur Scene -> Convert To.. -> MeshLibrary…, et enregistrez-la comme ressource.

../../_images/gridmap_export.png

Vous pouvez trouver une MeshLibrary déjà exportée dans le projet nommé « MeshLibrary.tres ».

Utilisation de GridMap

Créez une nouvelle scène et ajoutez un nœud GridMap. Ajoutez la MeshLibrary en faisant glisser le fichier ressource depuis le dock FileSystem et en le déposant dans la propriété « Theme » de l’Inspecteur.

../../_images/gridmap_main.png

La propriété « Cell/Size » doit être réglée sur la taille de vos mailles. Vous pouvez le laisser à la valeur par défaut de la démo. Réglez la propriété « Center Y » sur « Off ».

Vous pouvez maintenant commencer à concevoir le niveau en choisissant une tuile dans la palette et en la plaçant avec le clic gauche dans la fenêtre de l’éditeur. Pour supprimer une tuile, utilisez Shift+Clic-Droit.

Cliquez sur le menu « GridMap » pour voir les options et les raccourcis. Par exemple, appuyer sur « S » fait tourner une tuile autour de l’axe des y.

../../_images/gridmap_menu.png

Maintenez la touche <Shift> enfoncée et faites-la glisser avec le bouton gauche de la souris pour dessiner une boîte de sélection. Vous pouvez dupliquer ou effacer la zone sélectionnée à l’aide des rubriques de menu correspondantes.

../../_images/gridmap_select.png

Dans le menu, vous pouvez également modifier l’axe sur lequel vous dessinez, ainsi que le changement du plan de dessin supérieur ou inférieur sur son axe.

../../_images/gridmap_shift_axis.png

Utiliser GridMap dans le code

Voir class_GridMap pour plus de détails sur les méthodes du nœud et les variables membres.