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 de sprite ou vues. Les calques d’images sont exportés en tant que calques d’arrière-plan.

Avertissement

Comme l’action « Ajouter Existant » de GameMaker ne marche pas dans la version courante (2.3.1), la façon la plus facile d’exporter une carte Tiled dans votre Projet GameMaker est de remplacer un fichier room.yy déjà existant.

A partir de Tiled 1.8, il n’est plus nécessaire de désactiver l’option « Utiliser l’écriture sécurisée des fichiers » puisque l’export GameMaker l’ignore pour éviter des problèmes de rechargement dans GameMaker.

Référence aux Ressources Existantes

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

En ce qui concerne les sprites, le nom du sprite est dérivé en cherchant un fichier *.yy``dans le répertoire du fichier image et jusqu'à deux répertoires au-dessus. Si un tel fichier est trouvé, il est supposé être le fichier associé et son nom sans l'extension de fichier est utilisé. Si aucun fichier ``*.yy n’est trouvé, le nom du fichier image sans son extension est utilisé.

Si nécessaire, le nom du sprite peut être explicitement spécifié à l’aide d’une propriété personnalisée sprite (supportée par les jeux de tuiles, les tuiles provenant de jeux de tuiles basés sur des collection d’images, et les calques d’images).

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.

For object instances, the name of the object should be set in the Class field.

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 de sprite.

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.

When an object has a Class, it is exported as an instance on an instance layer, where the class refers to the name of the object to instantiate. Except, when the class is « view », the object is interpreted as a view.

When an object has no Class, but it is a tile object, then it is exported as either a tile graphic or a sprite graphic, depending on whether the tile is from a tileset image or a collection of images.

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

  • 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 du sprite 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

Of course setting the class and/or the above properties manually for each instance will get old fast. Instead you can use tile objects with the class set on the tile or use object templates.

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. La surcharge de définitions de variables d’objets parents n’est pas supportée. Pour pallier à cela, vous pouvez utiliser le code de création pour remplacer les variables d’un objet parent.

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 de sprite à la place.

Graphismes de Sprite

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

  • 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 la ressource sprite correspondante. Alternativement, la propriété personnalisée sprite peut être utilisée pour explicitement donner le nom de la ressource sprite.

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)

  • Le booléen (bool) htiled (par défaut prend la valeur de la propriété Repeat X)

  • Le booléen (bool) vtiled (par défaut prend la valeur de la propriété Repeat Y)

  • 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)

Même si les propriétés personnalisées telles que hspeed et vspeed n’ont pas d’effet visuel dans Tiled, vous verrez l’effet dans la salle exportée dans 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 des Sprites

Comme mentionné ci-dessus, les références vers des sprites sont généralement dérivées du nom de la ressource sprite à partir du 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 du sprite :

  • 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

Views can be defined using rectangle objects where the Class has been set to « view ». The position and size will be snapped to pixels. Whether the view is visible when the room starts depends on whether the object is visible. The use of views is automatically enabled when any views are defined.

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

Quand vous définissez des vues dans Tiled, il est pratique d’ajouter view comme classe dans l”:ref:Éditeur de Types Personnalisés <custom-property-tyles>, en ajoutant les propriétés ci-dessus pour un accès plus facile. Si vous utilisez souvent des vues avec des configurations similaires, vous pouvez leur configurer des modèles.

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.