Format de Carte JSON

Tiled peut exporter des cartes sous forme de fichiers JSON. Pour ce faire, sélectionnez simplement « File > Export As » et sélectionnez le type de fichier JSON. Vous pouvez exporter en json à partir de la ligne de commande avec l’option --export-map.

Les attributs trouvés en format JSON diffère légèrement de ceux trouvés dans le format de carte tmx, mais leurs sens restent les mêmes.

Les attributs suivants peuvent être retrouvés dans un fichier Tiled JSON :

Carte

Attribut

Type

Description

backgroundcolor

string

Couleur en hexadécimal (#RRVVBB or #AARRVVBB) (optionnel)

class

string

La classe de la carte (depuis la 1.9, optionnelle)

compressionlevel

int

Le niveau de compression à utiliser pour les données du calque de tuiles (-1 par défaut, ce qui veut dire que l’algorithme par défaut est utilisé)

height

int

Nombre de lignes de tuiles

hexsidelength

int

Longueur d’un côté d’une tuile hexagonale en pixels (seulement pour les cartes hexagonales)

infinite

bool

Si la carte a des dimensions infinies

layers

array

Tableau de Calques

nextlayerid

int

Incrémente automatiquement pour chaque calque

nextobjectid

int

Incrémente automatiquement pour chaque objet placé

orientation

string

orthogonal (orthogonale), isometric (isométrique), staggered (échelonnée) ou hexagonal (hexagonale)

parallaxoriginx

double

La coordonnée X de l’origine de la parallaxe en pixels (depuis la 1.8, 0 par défaut)

parallaxoriginy

double

La coordonnée Y de l’origine de la parallaxe en pixels (depuis la 1.8, 0 par défaut)

properties

array

Tableau de Propriétés

renderorder

string

right-down (bas-droite, par défaut), right-up (haut-droite), left-down (bas-gauche) ou left-up (haut gauche) (seulement supporté pour les cartes orthogonales pour le moment)

staggeraxis

string

x ou y (seulement pour les cartes échelonnées / hexagonales)

staggerindex

string

odd (impair) ou even (pair) (seulement pour les cartes échelonnées / hexagonales)

tiledversion

string

La version de Tiled utilisée pour sauvegarder le fichier

tileheight

int

Hauteur de la grille de la carte

tilesets

array

Tableau de Jeux de Tuiles

tilewidth

int

Longueur de la grille de la carte

type

string

map (depuis la version 1.0)

version

string

La version du format JSON (auparavant un nombre, sauvegardé en tant que chaîne de caractères depuis la version 1.6)

width

int

Nombre de colonnes de tuiles

Exemple de Carte

{
  "backgroundcolor":"#656667",
  "height":4,
  "layers":[ ],
  "nextobjectid":1,
  "orientation":"orthogonal",
  "properties":[
    {
      "name":"mapProperty1",
      "type":"string",
      "value":"one"
    },
    {
      "name":"mapProperty2",
      "type":"string",
      "value":"two"
    }],
  "renderorder":"right-down",
  "tileheight":32,
  "tilesets":[ ],
  "tilewidth":32,
  "version":1,
  "tiledversion":"1.0.3",
  "width":4
}

Calque

Attribut

Type

Description

chunks

array

Tableau de partitions (optionnel). Seulement pour les calques de tuiles.

class

string

La classe de la tuile (depuis la 1.9, optionnel)

compression

string

zlib, gzip, zstd (since 1.3) or empty (default). tilelayer only.

data

tableau ou chaîne de caractères

Tableau d'entiers non-signés (GIDs) ou données encodées en base64. Seulement pour les calques de tuiles.

draworder

string

topdown (haut en bas, par défaut) ou index. Seulement pour les groupes d'objets.

encoding

string

csv (par défaut) ou base64. Seulement pour les calques de tuiles.

height

int

Nombre de lignes. Identique à la hauteur de la carte pour des cartes à taille fixe. tilelayer uniquement.

id

int

ID incrémental - unique pour tous les calques

image

string

Image utilisée pour ce calque. Seulement pour les calques d'images.

imageheight

int

Height of the image used by this layer. imagelayer only. (since 1.11.1)

imagewidth

int

Width of the image used by this layer. imagelayer only. (since 1.11.1)

layers

array

Tableau de calques. Seulement pour les groupes.

locked

bool

Whether layer is locked in the editor (default: false). (since 1.8.2)

name

string

Nom assigné à ce calque

objects

array

Tableau d’objets. Seulement pour les groupes d'objets.

offsetx

double

Décalage horizontal du calque en pixels (0 par défaut)

offsety

double

Décalage vertical du calque en pixels (0 par défaut)

opacity

double

Valeur comprise entre 0 et 1

parallaxx

double

Horizontal parallax factor for this layer (default: 1). (since 1.5)

parallaxy

double

Vertical parallax factor for this layer (default: 1). (since 1.5)

properties

array

Tableau de Propriétés

repeatx

bool

Whether the image drawn by this layer is repeated along the X axis. imagelayer only. (since 1.8)

repeaty

bool

Whether the image drawn by this layer is repeated along the Y axis. imagelayer only. (since 1.8)

startx

int

Coordonnée X avec laquelle le contenu commence (pour les cartes infinies)

starty

int

Coordonnée Y avec laquelle le contenu commence (pour les cartes infinies)

tintcolor

string

Couleur de teinte formatée en hexadécimal (#RRVVBB ou #AARRVVBB) qui est multipliée par tout graphisme dessiné par ce calque ou tout calque enfant (optionnel).

transparentcolor

string

Couleur en hexadécimal (#RRVVBB) (optionnel). Seulement pour les calques d'images.

type

string

tilelayer, objectgroup, imagelayer ou group

visible

bool

Si le calque est visible ou non dans l’éditeur

width

int

Nombre de colonnes. Identique à la longueur de la carte pour des cartes à taille fixe. tilelayer uniquement.

x

int

Décalage horizontal d’un calque en tuiles. Toujours 0.

y

int

Décalage vertical du calque en tuiles. Toujours 0.

Exemple de Calque de Tuiles

Les données d’un calque de tuiles peuvent être stockées en tant qu’un tableau JSON natif ou bien que données binaires encodés base64 et optionnellement compressés, à l’image de ce qui est fait dans le format TMX. Les tuiles sont référencées en utilisant des Identifiants de Tuile Globaux (Global IDs).

{
  "data":[1, 2, 1, 2, 3, 1, 3, 1, 2, 2, 3, 3, 4, 4, 4, 1],
  "height":4,
  "name":"ground",
  "opacity":1,
  "properties":[
    {
      "name":"tileLayerProp",
      "type":"int",
      "value":1
    }],
  "type":"tilelayer",
  "visible":true,
  "width":4,
  "x":0,
  "y":0
}

Exemple de Calque d’Objets

{
  "draworder":"topdown",
  "height":0,
  "name":"people",
  "objects":[ ],
  "opacity":1,
  "properties":[
    {
      "name":"layerProp1",
      "type":"string",
      "value":"someStringValue"
    }],
  "type":"objectgroup",
  "visible":true,
  "width":0,
  "x":0,
  "y":0
}

Fragments

Les fragments sont utilisés afin de stocker les données d’un calque de tuiles pour des cartes infinies.

Attribut

Type

Description

data

tableau ou chaîne de caractères

Tableau d'entiers non-signés (GIDs) ou données encodées en base64

height

int

Hauteur en tuiles

width

int

Longueur en tuiles

x

int

Coordonnée X en tuiles

y

int

Coordonnée Y en tuiles

Exemple de Fragment

{
  "data":[1, 2, 1, 2, 3, 1, 3, 1, 2, 2, 3, 3, 4, 4, 4, 1, ],
  "height":16,
  "width":16,
  "x":0,
  "y":-16,
}

Objet

Attribut

Type

Description

ellipse

bool

Utilisé pour référencer un objet en tant qu’une ellipse

gid

int

ID de tuile global, seulement si l’objet représente une tuile

height

double

Hauteur en pixels.

id

int

ID incrémental, unique pour tous les objets

name

string

Chaîne de caractères assignée au champ de nom dans l’éditeur

point

bool

Utilisé pour référencer un objet en tant qu’un point

polygon

array

Tableau de Points, si l’objet est un polygone

polyline

array

Tableau de Points, si l’objet est une polyligne

properties

array

Tableau de Propriétés

rotation

double

Angle en degrés dans le sens des aiguilles d’une montre

modèle

string

Référence à un fichier de modèle, si l’objet est une instance d’un modèle

text

Objet texte JSON

Seulement utilisés pour les objets texte

type

string

La classe de l’objet (était sauvegardé en tant que class en 1.9, optionnel).

visible

bool

Si l’objet est affiché dans l’éditeur.

width

double

Longueur en pixels.

x

double

Coordonnée X en pixels

y

double

Coordonnée Y en pixels

Exemple d’Objet

{
  "gid":5,
  "height":0,
  "id":1,
  "name":"villager",
  "properties":[
    {
      "name":"hp",
      "type":"int",
      "value":12
    }],
  "rotation":0,
  "type":"npc",
  "visible":true,
  "width":0,
  "x":32,
  "y":32
}

Exemple d’Ellipse

{
  "ellipse":true,
  "height":152,
  "id":13,
  "name":"",
  "rotation":0,
  "type":"",
  "visible":true,
  "width":248,
  "x":560,
  "y":808
}

Exemple de Rectangle

{
  "height":184,
  "id":14,
  "name":"",
  "rotation":0,
  "type":"",
  "visible":true,
  "width":368,
  "x":576,
  "y":584
}

Exemple de Point

{
  "height":0,
  "id":20,
  "name":"",
  "point":true,
  "rotation":0,
  "type":"",
  "visible":true,
  "width":0,
  "x":220,
  "y":350
}

Exemple de Polygone

{
  "height":0,
  "id":15,
  "name":"",
  "polygon":[
  {
    "x":0,
    "y":0
  },
  {
    "x":152,
    "y":88
  },
  {
    "x":136,
    "y":-128
  },
  {
    "x":80,
    "y":-280
  },
  {
    "x":16,
    "y":-288
  }],
  "rotation":0,
  "type":"",
  "visible":true,
  "width":0,
  "x":-176,
  "y":432
}

Exemple de Polyligne

{
  "height":0,
  "id":16,
  "name":"",
  "polyline":[
  {
    "x":0,
    "y":0
  },
  {
    "x":248,
    "y":-32
  },
  {
    "x":376,
    "y":72
  },
  {
    "x":544,
    "y":288
  },
  {
    "x":656,
    "y":120
  },
  {
    "x":512,
    "y":0
  }],
  "rotation":0,
  "type":"",
  "visible":true,
  "width":0,
  "x":240,
  "y":88
}

Exemple de Texte

{
  "height":19,
  "id":15,
  "name":"",
  "text":
  {
    "text":"Hello World",
    "wrap":true
  },
  "rotation":0,
  "type":"",
  "visible":true,
  "width":248,
  "x":48,
  "y":136
}

Texte

Attribut

Type

Description

bold

bool

Si la police doit être en gras (false par défaut)

color

string

Couleur en hexadécimal (#RRVVBB ou #AARRVVBB) (#000000 par défaut)

fontfamily

string

La famille de police utilisée (sans-serif par défaut)

halign

string

Alignement horizontal (center (centré), right (droite), justify (justifié) ou left (gauche, par défaut))

italic

bool

Si la police doit être en italique (false par défaut)

kerning

bool

S’il faut utiliser du crénage lors du placement des caractères (true par défaut)

pixelsize

int

Taille en pixels de la police (16 par défaut)

strikeout

bool

Si le texte doit être barré (false par défaut)

text

string

Texte

underline

bool

Si le texte doit être souligné (false par défaut)

valign

string

Alignement vertical (center (centré), bottom (bas) ou top (haut, par défaut))

wrap

bool

Si le texte est enroulé à l’intérieur des bords de l’objet (false par défaut)

Jeu de Tuiles

Attribut

Type

Description

backgroundcolor

string

Couleur en hexadécimal (#RRVVBB or #AARRVVBB) (optionnel)

class

string

La classe du jeu de tuiles (depuis 1.9, optionnel)

columns

int

Le nombre de colonnes de tuiles du jeu de tuiles

fillmode

string

Le mode de remplissage à utiliser pour le rendu des tuiles de ce tileset (stretch (étirer, par défaut) ou preserve-aspect-fit (préserver l’aspect)) (depuis 1.9)

firstgid

int

Le GID de la première tuile du jeu de tuiles

grid

Grille de jeu de tuiles JSON

(optionnel)

image

string

Image utilisée pour les tuiles de cette collection

imageheight

int

Hauteur de l’image source en pixels

imagewidth

int

Longueur de l’image source en pixels

margin

int

Marge entre les bords de l’image et la première tuile (en pixels)

name

string

Nom donné à ce jeu de tuiles

objectalignment

string

Alignement à utiliser pour les objets tuiles (unspecified (non spécifié, par défaut), topleft (en haut à gauche), top (en haut), topright (en haut à droite), left (à gauche), center (au centre), right (à droite), bottomleft (en bas à gauche), bottom (en bas) ou bottomright (en bas à droite)) (depuis la 1.4)

properties

array

Tableau de Propriétés

source

string

Le fichier externe qui contient les données de ce jeu de tuiles

spacing

int

Espacement entre deux tuiles adjacentes dans l’image (en pixels)

terrains

array

Tableau de Terrains (optionnel)

tilecount

int

Le nombre de tuiles dans ce jeu de tuiles

tiledversion

string

La version de Tiled utilisée pour sauvegarder le fichier

tileheight

int

La hauteur maximale des tuiles de cette collection

tileoffset

Décalage de tuiles de jeu de tuiles JSON

(optionnel)

tilerendersize

string

La taille à utiliser pour le rendu des tuiles de ce tileset sur un calque de tuiles (tile (défaut) ou grid) (depuis 1.9)

tiles

array

Tableau de Tuiles (optionnel)

tilewidth

int

Longueur maximale des tuiles de cette collection

transformations

Transformations de jeu de tuiles JSON

Transformations autorisées (optionnel)

transparentcolor

string

Couleur en hexadécimal (#RRVVBB) (optionnel)

type

string

tileset (pour des fichiers de jeu de tuiles, depuis la 1.0)

version

string

La version du format JSON (auparavant un nombre, sauvegardé en tant que chaîne de caractères depuis la version 1.6)

wangsets

array

Tableau de collections Wang (depuis la 1.1.5)

Tous les jeux de tuiles ont une propriété firstgid (premier ID global) qui vous donne l’ID global de sa première tuile (celle qui a pour ID de tuile local 0). Cela vous permet de correspondre les IDs globaux à son vrai jeu de tuiles, et ensuite de calculer l’ID de tuile local en soustrayant firstgid de son ID de tuile global. Le premier jeu de tuiles a toujours une valeur firstgid égale à 1.

Grille

Spécifie les paramètres communs de la grille utilisés pour les tuiles d’un jeu de tuiles. Visitez grille dans le Format de Carte TMX.

Attribut

Type

Description

height

int

Hauteur d’une cellule de la grille de tuiles

orientation

string

orthogonal (orthogonale, par défaut) ou isometric (isométrique)

width

int

Longueur d’une cellule de la grille de tuiles

Décalage de Tuile

Visitez décalage de tuile dans le Format de Carte TMX.

Attribut

Type

Description

x

int

Décalage horizontal en pixels

y

int

Décalage vertical en pixels (positif en bas)

Transformations

Visitez transformations de jeu de tuiles dans le Format de Carte TMX.

Attribut

Type

Description

hflip

bool

Si les tuiles peuvent être inversées horizontalement

vflip

bool

Si les tuiles peuvent être inversées verticalement

rotate

bool

Si les tuiles peuvent être pivotées par incréments de 90 degrés

preferuntransformed

bool

Si les tuiles non transformées sont préférée, sinon les tuiles transformées sont utilisées pour produire plus de variations

Exemple de Jeu de Tuiles

{
 "columns":19,
 "firstgid":1,
 "image":"..\/image\/fishbaddie_parts.png",
 "imageheight":480,
 "imagewidth":640,
 "margin":3,
 "name":"",
 "properties":[
   {
     "name":"myProperty1",
     "type":"string",
     "value":"myProperty1_value"
   }],
 "spacing":1,
 "tilecount":266,
 "tileheight":32,
 "tilewidth":32
}

Tuile (Définition)

Attribut

Type

Description

animation

array

Tableau de Trames

id

int

ID local de la tuile

image

string

Image représentant cette tuile (optionnel, utilisé pour les jeux de tuiles de type collection d’image)

imageheight

int

Hauteur de l’image de la tuile en pixels

imagewidth

int

Longueur de l’image de la tuile en pixels

x

int

La position X du sous-rectangle représentant cette tuile (défaut : 0)

y

int

La position Y du sous-rectangle représentant cette tuile (défaut : 0)

width

int

La largeur du sous-rectangle représentant cette tuile (défaut : la largeur de l’image)

height

int

La hauteur du sous-rectangle représentant cette tuile (défaut : la hauteur de l’image)

objectgroup

Calque

Calque de type groupe d'objets, si des formes de collisions sont spécifiées (optionnel)

probability

double

Pourcentage indiquant la probabilité que cette tuile soit choisie quand elle est en compétition avec d’autres tuiles dans l’éditeur (optionnel)

properties

array

Tableau de Propriétés

Terrain

array

Index du terrain pour chaque coin de la tuile (optionnel, remplacé par Ensembles Wang depuis la 1.5)

type

string

La classe de la tuile (était sauvegardé en tant que class en 1.9, optionnel)

Un jeu de tuiles qui associe des informations avec chaque tuile, tel que le chemin de son image, peut inclure une propriété de tableau tiles. Chaque tuile a une propriété id qui spécifie son ID locale dans le jeu de tuiles.

Pour des informations sur le terrain, chaque valeur est un tableau de 4 valeurs dans lequel chaque élément est l’index d’un terrain pour un coin de cette tuile. L’ordre est indices est : en haut à gauche, en haut à droite, en bas à gauche, en bas à droite.

Exemple :

{
  "id":11,
  "properties":[
    {
      "name":"myProperty2",
      "type":"string",
      "value":"myProperty2_value"
    }],
  "terrain":[0, 1, 0, 1]
}

Trame

Attribut

Type

Description

duration

int

Longueur de la trame en millisecondes

tileid

int

ID local de la tuile représentant cette trame

Terrain

Attribut

Type

Description

name

string

Nom du terrain

properties

array

Tableau de Propriétés

tile

int

ID local de la tuile représentant le terrain

Exemple :

{
  "name":"ground",
  "tile":0
}

Ensemble de Wang

Attribut

Type

Description

class

string

La classe de l’ensemble Wang (depuis 1.9, optionnel)

colors

array

Tableau de couleurs Wang (depuis la 1.5)

name

string

Nom de la collection Wang

properties

array

Tableau de Propriétés

tile

int

ID local de la tuile représentant la collection Wang

type

string

corner (coin), edge (bord) ou mixed (mixte) (depuis la 1.5)

wangtiles

array

Tableau de tuiles Wang

Couleur Wang

Attribut

Type

Description

class

string

La classe de la couleur Wang (depuis 1.9, optionnel)

color

string

Couleur en hexadécimal (#RRVVBB or #AARRVVBB)

name

string

Nom de la couleur Wang

probability

double

Probabilité utilisée lors de la sélection aléatoire

properties

array

Tableau de Propriétés (depuis la 1.5)

tile

int

ID local de la tuile représentant la couleur Wang

Exemple :

{
  "color": "#d31313",
  "name": "Rails",
  "probability": 1,
  "tile": 18
}

Tuile Wang

Attribut

Type

Description

tileid

int

ID local de la tuile

wangid

array

Tableau d’index de couleurs Wang (uchar[8])

Exemple :

{
  "tileid": 0,
  "wangid": [2, 0, 1, 0, 1, 0, 2, 0]
}

Modèle d’Objet

Un modèle d’objet est écrit dans son propre fichier et est référencé par toute instance de la modèle.

Attribut

Type

Description

type

string

template

tileset

Jeu de tuiles

Jeu de tuiles externe utilisé par le modèle (optionnel)

object

Objet JSON

L’objet instancié par ce modèle

Propriété

Attribut

Type

Description

name

string

Nom de cette propriété

type

string

Type de la propriété (string (chaîne de caractères, par défaut), int (entier), float (flottant), bool (booléen), color (couleur), file (fichier), object (objet) ou class (depuis la 0.16, avec les options color et file ajoutées dans la 0.17, object ajoutée dans la 1.4 et class dans la 1.8))

propertytype

string

Nom du :ref:`type de propriété personnalisée <custom-property-types>, quand applicable (depuis la 1.8)

value

value

Valeur de la propriété

Point

Un point d’un polygone ou d’une polyligne, relatif à la position de l’objet.

Attribut

Type

Description

x

double

Coordonnée X en pixels

y

double

Coordonnée Y en pixels

Notes de Version

Tiled 1.11.1

  • Added imageheight and imagewidth properties to image layers.

Tiled 1.10

  • Renommage de la propriété class de Tuile (Définition) et Objet en type, pour conserver la compatibilté avec Tiled 1.8 et moins. La propriété reste class à d’autres endroits, étant donné qu’elle ne pouvait pas être renommée en type partout.

Tiled 1.9

Tiled 1.8

  • Ajout du support pour la personnalisation par l’utilisateur des types de propriétés. Une référence au type est sauvegardée en tant que le nouvelle propriété propertytype de Propriété.

  • L’élément Propriété peut maintenant avoir un objet JSON quelconque en tant que value, dans le cas où la valeur de la propriété est une classe. Dans ce cas la propriété type est mise à la nouvelle valeur class.

  • Ajout des propriétés parallaxoriginx et parallaxoriginy à Carte.

  • Ajout des propriétés repeatx et repeaty à Calque (ne s’applique qu’aux calques d’images pour le moment).

Tiled 1.7

  • Les objets tuile dans un jeu de tuiles ne sont plus sauvegardés avec un ID incrémental. Ils sont maintenant sauvegardé dans l’ordre d’affichage, ce qui peut être configuré dans Tiled.

Tiled 1.6

  • La propriété version est maintenant écrite en tant que chaîne de caractères (« 1.6 ») plutôt qu’un nombre (1.5).

Tiled 1.5

  • Les propriétés cornercolors et edgecolors d’une collection Wang ont été unifiées dans la nouvelle propriété colors et un champ type a été ajouté.

  • Les couleurs Wang peuvent maintenant stocker des propriétés dans properties.

  • Ajout de la propriété transformations aux jeux de tuiles (voir transformations de jeu de tuiles).

  • Suppression des propriétés dflip, hflip et vflip des tuiles Wang (support abandonné).

  • Ajout des propriétés parallaxx et parallaxy à l’objet Calque.

Tiled 1.4

  • Ajout de objectalignment à l’objet jeu de tuiles.

  • Ajout de tintcolor à l’objet calque.

  • Ajout de object en tant que type possible de Propriété.

Tiled 1.3

  • Ajout de la propriété editorsettings aux objets carte et jeu de tuiles à la racine, qui est utilisée pour stocker des paramètres spécifiques à l’éditeur qui ne sont généralement pas utiles lors du chargement d’une carte ou d’un jeu de tuiles.

  • Ajout du support pour la compression Zstandard pour les données d’un calque de tuiles ("compression" : "zstd" pour les objets calques de tuiles).

  • Ajout de la propriété compressionlevel à l’objet carte, qui stocke le niveau de compression à utiliser pour les données des calques de tuiles.

Tiled 1.2

  • Ajout de nextlayerid à l’objet carte.

  • Ajout de id à l’objet calque.

  • Les tuiles dans un jeu de tuiles sont maintenant stockées dans un tableau plutôt qu’un objet. Avant les IDs des tuiles étaient stockées en tant que clés chaînes de caractères des objets « tuiles », maintenant elles sont stockées en tant que propriété id de chaque objet Tuile.

  • Les propriétés personnalisées des tuiles sont maintenant stockées dans chaque Tuile plutôt qu’être inclus en tant que tileproperties dans l’objet jeu de tuiles.

  • Les propriétés personnalisées sont maintenant stockées dans un tableau plutôt que dans un objet où le nom des propriétés étaient leur clé. Chaque propriété est maintenant un objet qui stocke son nom, son type et la valeur de la propriété. Les propriétés séparés propertytypes et tilepropertytypes ont été enlevées.

Tiled 1.1