Since Tiled 1.5

GameMaker Studio 2.3

GameMaker Studio 2.3 utilise un format basé sur le JSON pour stocker ses salles, et Tiled est distribué avec un greffon qui exporte les cartes dans ce format.

Ce greffon va faire de son mieux pour exporter la carte aussi fidèlement que possible, correspondant les fonctionnalités diverses de Tiled à celles de GameMaker. Les calques de tuiles sont exportés en tant calques de tuiles si possible, mais peuvent devenir des calques de ressources si nécessaire. Les objets peuvent être exportées en tant qu’instances, mais aussi en tant que graphismes de tuile, graphismes d’image ou vues. Les calques d’images sont exportés en tant que calques d’arrière-plan.

Avertissement

Since GameMaker’s « Add Existing » action doesn’t work at this point in time (2.3.1) the easiest way to export a Tiled map to your GameMaker Project is to overwrite an already existing room.yy file.

Starting with Tiled 1.8, it is no longer necessary to deactivate the « Use safe writing of files » option, since the GameMaker export now ignores it to avoid reload issues in GameMaker.

Référence aux Ressources Existantes

Comme Tiled ne fait qu’exporter une carte en tant que salle GameMaker pour le moment, toutes images, jeux de tuiles ou objets utilisés par la carte sont supposés être déjà existants dans le projet GameMaker.

For sprites, the sprite name is derived by looking for a *.yy file in the directory of the image file and up to two parent directories. If such a file is found, it is assumed to be the associated meta file and its name without the file extension is used. If no *.yy file can be found, the name of the image file without its file extension is used.

If necessary, the sprite name can be explicitly specified using a custom sprite property (supported on tilesets, tiles from image collection tilesets and image layers).

Pour les jeux de tuiles, le nom du jeu de tuiles entré dans Tiled doit correspondre au nom du jeu de tuiles ressource dans GameMaker.

Pour les instances d’objet, le nom de l’objet doit être spécifié dans le champ Type.

Exporter une Carte Tiled

Une carte Tiled contient des calques de tuiles, des calques d’objets, des calques d’images et des groupes de calques. Tous ces types de calques sont supportés.

Calques de Tuiles

Si possible, une carte de tuiles va être exportée en tant que calque de tuiles.

Quand plusieurs jeux de tuiles sont utilisés dans le même calque, le calque est exporté en tant qu’un groupe avec un calque de tuiles enfant pour chaque jeu de tuiles, comme GameMaker ne supporte qu’un seul jeu de tuiles par calque de tuiles.

Quand la taille des tuiles d’un jeu de tuiles ne correspond pas à la taille de la grille de la carte, ou quand l’orientation de la carte n’est pas orthogonale (isométrique ou hexagonale, par exemple), les tuiles seront exportées en tant que calque de ressources à la place. Ce type de calque est plus flexible, cependant il ne supporte pas la rotation des graphismes des tuiles.

Quand le calque inclut des tuiles venant d’un jeu de tuiles de collection d’images, celles-ci seront exportées dans un calque de ressources en tant que graphismes d’image.

Calques d’Objets

Les calques d’objets dans Tiled sont très flexibles puisque les objets peuvent prendre un grand nombre de formes différentes. Pour cette raison, l’exportation examine chaque objet pour voir comment il doit être exporté dans la salle GameMaker.

Quand un objet a un Type, il est exporté en tant qu’instance sur un calque d’instance, où le type réfère au nom de l’objet à instancier. Cependant, si le type est « view », l’objet est interprété en tant que vue.

Quand un objet n’a aucun Type, mais que c’est un objet tuile, alors il est exporté soit en tant que graphisme de tuile ou graphisme d’image, dépendant de si la tuile appartient à une image de jeu de tuiles ou à une collection d’images.

Les propriétés personnalisées suivantes peuvent être ajoutées aux objets pour affecter l’instance exportée ou l’image ressource :

  • La couleur (color) colour (basé sur la couleur de teinte du calque par défaut)

  • Le flottant (float) scaleX (déduit de la tuile ou 1.0 par défaut)

  • Le flottant (float) scaleY (déduit de la tuile ou 1.0 par défaut)

  • Le booléen (bool) inheritItemSettings (false par défaut)

  • L’entier (int) originX (0 par défaut)

  • L’entier (int) originY (0 par défaut)

  • Le booléen (bool) ignore (si l’objet est caché par défaut)

Les propriétés scaleX et scaleY peuvent être utilisées pour remplacer l’agrandissement de l’instance. Cependant, si l’agrandissement est important, alors il est généralement plus facile d’utiliser un objet tuile, qui dans ce cas sera automatiquement dérivé de la taille de la tuile et de la taille de l’objet.

Les propriétés originX et originY peuvent être utilisées pour donner l’origine de l’image définie dans GameMaker à Tiled en tant que décalage depuis en haut à gauche. Cette origine est prise en compte lors de la détermination de la position de l’instance exportée.

Indication

Bien sûr, donner le type et/ou les propriétés au dessus manuellement pour chaque instance va vite devenir ennuyeux. À la place, vous pouvez utiliser des objets tuile avec le type donné sur la tuile ou utiliser des modèles d’objet.

Instances d’Objet

Les propriétés personnalisées additionnelles suivantes peuvent être ajoutées à des objets qui sont exportés en tant qu’instances d’objet :

  • Le booléen (bool) hasCreationCode (false par défaut)

  • L’entier (int) imageIndex (0 par défaut)

  • Le flottant (float) imageSpeed (1.0 par défaut)

  • L’entier (int) creationOrder (0 par défaut)

La propriété hasCreationCode peut être mise à true. Cela réfère au fichier « InstanceCreationCode_[nom_d’instance].gml » dans le dossier de la salle que vous pouvez créer dans GameMaker lui-même ou avec un éditeur de texte externe.

Par défaut l’ordre de la création de l’instance dépend de la position des objets dans le calque et de la hiérarchie des objets dans Tiled. Cela peut être changé en utilisant la propriété personnalisée creationOrder. Les objets ayant des valeurs plus petites seront créés avant les objets ayant des valeurs plus grandes (donc les objets avec des valeurs négatives seront créés avant les objets sans propriété creationOrder).

Les propriétés personnalisées additionnelles qui ne sont pas documentées ici peuvent être utilisées pour remplacer les définitions des variables qui ont été mises en place dans GameMaker pour l’objet.

Note

Pour le moment seules les définitions de variables de l’objet lui-même peuvent être remplacées. Le remplacement de définitions de variables d’objets parents n’est pas supporté. Vous pouvez utiliser le code de création pour remplacer les variables d’un objet parent en tant que palliatif.

Graphismes de Tuile

Pour les objets exportées en tant que graphismes de tuile (tuiles GMS 1.4), il doit être noté que la rotation n’est pas supportée pour les calques de ressources.

Quand une rotation de 90 degrés avec un alignement de grille suffit, ces tuiles doivent être placées dans des calques de tuiles à la place. Quand un placement libre avec une rotation est requis, alors un jeu de tuiles de collection d’images doit être utilisé, pour que les objets exportés soient exportés en tant que graphismes d’image à la place.

Graphismes d’Image

Les propriétés personnalisées additionnelles suivantes peuvent être ajoutées aux objets qui sont exportés en tant que graphismes d’image :

  • Le flottant (float) headPosition (0.0 par défaut)

  • Le flottant (float) animationSpeed (1.0 par défaut)

Calques d’Images

Les calques d’images sont exportés en tant que calques d’arrière-plan.

Le nom de fichier de l’image source est présumé être le même que le nom de l’image ressource correspondante. Alternativement, la propriété personnalisée sprite peut être utilisée pour explicitement donner le nom de l’image ressource.

Même s’il n’y a pas de support visuel dans Tiled, il est possible de créer un calque d’images sans image mais seulement avec une couleur de teinte. De tels calques seront exportés en tant que calque d’arrière-plan avec juste la couleur mise en place.

Les propriétés personnalisées suivantes peuvent être ajoutées aux calques d’images pour affecter les calques d’arrière-plan exportés :

  • La chaîne de caractères (string) sprite (basé sur le nom de fichier de l’image par défaut)

  • bool htiled (default: value of Repeat X property)

  • bool vtiled (default: value of Repeat Y property)

  • Le booléen (bool) stretch (false par défaut)

  • Le flottant (float) hspeed (0.0 par défaut)

  • Le flottant (float) vspeed (0.0 par défaut)

  • Le flottant (float) animationFPS (15.0 par défaut)

  • L’entier (int) animationSpeedtype (0 par défaut)

Even though the custom properties such as hspeed and vspeed have no visual effect inside Tiled you will see the effect in the exported room inside GameMaker.

Cas Spéciaux et Propriétés Personnalisées

Salles

Si une Couleur d'Arrière-Plan est donnée dans les propriétés de la carte Tiled, un calque d’arrière-plan supplémentaire avec cette couleur sera exportée en tant que calque le plus en bas.

Les propriétés personnalisées suivantes peuvent être données dans Carte -> Propriétés de Carte.

Général

  • La chaîne de caractères (string) parent (« Rooms » par défaut)

  • Le booléen inheritLayers (false par défaut)

  • La chaîne de caractères (string) tags ( » » par défaut)

La propriété parent est utilisée pour définir le dossier parent dans le navigateur de ressources de GameMaker.

La propriété tags est utilisée pour assigner des étiquettes à la salle. Plusieurs étiquettes doivent être séparées par une virgule.

Options de Salle

  • Le booléen inheritRoomSettings (false par défaut)

  • Le booléen (bool) persistent (false par défaut)

  • Le booléen (bool) clearDisplayBuffer (true par défaut)

  • Le booléen inheritCode (false par défaut)

  • La chaîne de caractères (string) creationCodeFile ( » » par défaut)

La propriété creationCodeFile est utilisée pour définir le chemin vers un fichier de code de création existant, par exemple : « ${project_dir}/rooms/room_name/RoomCreationCode.gml ».

Fenêtres d’Affichage et Caméras

Général

  • Le booléen inheritViewSettings (false par défaut)

  • Le booléen enableViews (true si tout objet « view » a été trouvé par défaut)

  • Le booléen (bool) clearViewBackground (false par défaut)

Fenêtre d’Affichage 0 - Fenêtre d’Affichage 7

Vous pouvez configurer jusqu’à 8 fenêtres d’affichage en utilisant des objets vue (voir Vues).

Propriétés Physiques

  • Le booléen inheritPhysicsSettings (false par défaut)

  • Le booléen (bool) PhysicsWorld (false par défaut)

  • Le flottant (float) PhysicsWorldGravityX (0.0 par défaut)

  • Le flottant (float) PhysicsWorldGravityY (10.0 par défaut)

  • Le flottant (float) PhysicsWorldPixToMeters (0.1 par défaut)

Références d’Images

Comme mentionné ci-dessus, les références vers des images sont généralement dérivées du nom de la ressource d’image depuis le nom du fichier d’image. Les propriétés suivantes peuvent être données sur des jeux de tuiles, des tuiles d’un jeu de tuiles de collection d’images et des calques d’images pour explicitement spécifier le nom de l’image :

  • La chaîne de caractères (string) sprite (basé sur le nom de fichier de l’image par défaut)

Chemins

Avertissement

Les chemins ne sont pas encoure supportés, mais il est prévu d’exporter les objets polyligne et polygones en tant que chemins sur des calques de chemins dans une future mise à jour.

Vues

Les vues peuvent être définies en tant qu”objets rectangles où le Type a été changé en « view ». La position et la taille seront converties en pixels. La visibilité de la vue quand la salle commence dépend de la visibilité de l’objet. L’utilisation de vues est automatiquement activée si toute vue est définie.

Les propriétés personnalisées suivantes peuvent être utilisées pour définir les propriétés variées de la vue :

Général

  • Le booléen (bool)``inherit`` (false par défaut)

Propriétés de la Caméra

Les Propriétés de la Caméra sont automatiquement dérivées de la position et de la taille de l’objet vue.

Propriétés de la Fenêtre d’Affichage

  • L’entier (int) xport (0 par défaut)

  • L’entier (int) yport (0 par défaut)

  • L’entier (int) wport (1366 par défaut)

  • L’entier (int) hport (768 par défaut)

Suivi d’objet

  • La chaîne de caractères objectId

  • L’entier (int) hborder (32 par défaut)

  • L’entier (int) vborder (32 par défaut)

  • L’entier (int) hspeed (-1 par défaut)

  • L’entier (int) vspeed (-1 par défaut)

Indication

When you’re defining views in Tiled, it is useful to add view as class in the Custom Types Editor, adding the above properties for ease of access. If you frequently use views with similar settings, you can set up templates for them.

Calques

Tous les types de calques supportent les propriétés personnalisées suivantes :

  • L’entier (int) depth (assigné automatiquement par défaut, comme dans GameMaker)

  • Le booléen (bool) visible (dérivé du calque par défaut)

  • Le booléen (bool) hierarchyFrozen (l’état de verrouillage du calque par défaut)

  • Le booléen (bool) noExport (false par défaut)

La propriété depth peut être utilisée pour assigner une valeur de profondeur spécifique à un calque.

La propriété visible peut être utilisée pour remplacer l’état « Visible » du calque si besoin.

La propriété hierarchyFrozen peut être utilisé pour remplacer l’état « Verrouillé » du calque si besoin.

La propriété noExport peut être utilisée pour annuler l’exportation d’un calque en entier, incluant tous ses calques enfants. C’est utile si vous utilisez un calque pour des commentaires (comme l’addition d’une image d’arrière-plan ou d’objets texte) que vous ne voulez pas exporter dans GameMaker. Veuillez noter que toute vue définie dans ce calque sera aussi ignorée.