Dessin
Les outils de l'éditeur sous forme de commandes — les outils de l'interface appellent exactement celles-ci. La couleur, le pinceau et les options d'outil que tu omets viennent du contexte d'édition. La peinture ignore la sélection et la symétrie sauf si tu passes respectSelection = true et symmetry = app.getContext().symmetry. (24 fonctions)
app.blur(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Floute les pixels sous le pinceau le long des points — exactement l'outil de flou de l'interface.
layerId(string)frameId(string)points(table) — Liste de points { x = n, y = n } (ou { n, n }) ; les écarts entre points consécutifs sont interpolés comme lors d'un vrai glissement.opts(table, facultatif) Accepte aussi Options de peinture et Options de pinceau (voir « Groupes d'options »), et :strength(integer 0–8; par défaut context.blurStrength) — Rayon du flou en pixels.
Ne renvoie rien.
app.dodgeBurn(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Éclaircit (dodge) ou assombrit (burn) les pixels sous le pinceau le long des points, dans la luminosité OKLCH — exactement l'outil éclaircir/assombrir de l'interface. La teinte et la chroma sont conservées sauf si hueShift est défini. Chaque pixel change une seule fois par appel ; les pixels transparents ne sont pas touchés.
layerId(string)frameId(string)points(table) — Liste de points { x = n, y = n } (ou { n, n }) ; les écarts entre points consécutifs sont interpolés comme lors d'un vrai glissement.opts(table, facultatif) Accepte aussi Options de peinture et Options de pinceau (voir « Groupes d'options »), et :strength(integer 1–100; par défaut context.dodgeBurnStrength) — De combien la luminosité OKLCH de chaque pixel touché se déplace : 100 = la moitié du chemin du noir au blanc, 25 = 0.125.hueShift(integer 0–60; par défaut context.dodgeBurnHueShift) — Degrés dont la teinte OKLCH de chaque pixel touché tourne vers le jaune chaud (dodge) ou le bleu froid (burn), sans jamais le dépasser, avec une chroma atténuée (dodge) ou renforcée (burn) de 0.5 % par degré. 0 conserve la teinte et la chroma.burn(boolean; par défaut false) — Assombrit (burn) au lieu d'éclaircir (dodge).
Ne renvoie rien.
app.drawContour(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Remplit le chemin fermé passant par les points, pixels du chemin inclus (le contour d'Aseprite) — exactement l'outil contour de l'interface.
layerId(string)frameId(string)points(table) — Le tracé à main levée sous forme de liste de points { x = n, y = n } ; il est fermé et rempli automatiquement.opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.
Ne renvoie rien.
app.drawCurve(layerId, frameId, anchors, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine un chemin de courbes de Bézier cubiques passant par les ancres — exactement l'outil courbe de l'interface. Passe closed = true pour une forme fermée (et fill = "filled" pour la remplir).
layerId(string)frameId(string)anchors(table) — Les ancres du chemin dans l'ordre : { x = n, y = n } (ou { n, n }), chacune avec en option des poignées de Bézier inX/inY (le point de contrôle du segment qui arrive) et outX/outY (du segment qui part). Une ancre sans poignées est un angle vif ; deux ancres de suite sont reliées par une ligne droite.opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.closed(boolean; par défaut false) — Relie la dernière ancre à la première.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Chemins fermés : dessine le contour, ou remplit aussi l'intérieur.width(integer 1–64; par défaut context.lineWidth) — Épaisseur du trait en pixels (1 = une courbe nette de 1 px) ; les traits plus larges ont des extrémités arrondies.pixelPerfect(boolean; par défaut context.curvePixelPerfect) — Retire les angles en L qu'une courbe de 1 px accumule, pour des lignes de pixel art propres (ignoré pour les traits plus larges).
Ne renvoie rien.
app.drawEllipse(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine une ellipse inscrite dans la boîte délimitée par les deux coins — exactement l'outil ellipse de l'interface.
layerId(string)frameId(string)x0(number) — Premier coin.y0(number)x1(number) — Coin opposé (inclus).y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Contour seulement, ou rempli.
Ne renvoie rien.
app.drawGradient(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Remplit la région que le pot de peinture remplirait à partir de (x0, y0) — la zone connexe de sa couleur (ou tous les pixels correspondants si non contigu), dans la sélection — avec un dégradé de startColor en (x0, y0) à endColor en (x1, y1), ou le long de stops — exactement l'outil dégradé de l'interface. Avec la symétrie, les régions en miroir reçoivent le même dégradé. Un glissement de longueur nulle, ou un départ hors du canevas ou hors de la sélection, ne fait rien.
layerId(string)frameId(string)x0(number) — Début du dégradé (là où se trouve startColor).y0(number)x1(number) — Fin du dégradé (là où se trouve endColor).y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :startColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur au premier point.endColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.backgroundColor) — La couleur au second point.stops({ color, color, ... } or { { color = c, position = 0-1 }, ... }; par défaut When gradientColors is "stops" and neither startColor nor endColor is given, the gradientStops list.) — Une rampe à plusieurs points de 2 à 32 couleurs du premier point au second, à la place de startColor et endColor. Les couleurs simples sont réparties uniformément ; les positions vont de 0 à 1 dans l'ordre, et deux points à la même position font un bord net.gradientType(GradientType: "linear" | "radial"; par défaut context.gradientType) — Une rampe droite entre les points, ou rayonnant depuis le premier.dithering(GradientDithering: "none" | "bayer2" | "bayer4" | "bayer8" | "dots" | "lines-h" | "lines-v" | "diagonal" | "noise"; par défaut context.gradientDithering) — Tramage ordonné appliqué à la rampe (none = lisse).snap(GradientSnap: "free" | "palette"; par défaut context.gradientSnap) — Mélanges libres, ou couleurs de la palette uniquement (le tramage alterne alors entre couleurs de palette voisines).contiguous(boolean; par défaut context.bucketFillMode (true pour le mode contigu du contexte, false pour global)) — Seulement la région connexe (true), ou tous les pixels correspondants du canevas (false).tolerance(integer 0–255; par défaut context.bucketTolerance) — La plus grande différence de couleur par canal qui compte encore comme une correspondance.diagonal(boolean; par défaut context.bucketDiagonal) — Contigu uniquement : s'étend aussi aux voisins en diagonale (8-connexité), si bien que la région déborde à travers les lignes diagonales de 1 px.stopAtGrid(boolean; par défaut context.bucketStopAtGrid) — Confine la région à la cellule de la grille où tombe le clic (la cellule d'une grille isométrique est le losange qu'elle dessine, avec les pixels de ligne de ses deux bords supérieurs).closeGap(integer 0–5; par défaut context.bucketCloseGap) — Remplissages contigus : considère comme fermés les trous du contour jusqu'à cette largeur en pixels, pour que le remplissage s'y arrête au lieu de déborder. 0 = désactivé.
Ne renvoie rien.
app.drawHexagon(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine un hexagone à sommet plat remplissant la boîte délimitée par les deux coins — exactement l'outil hexagone de l'interface.
layerId(string)frameId(string)x0(number) — Premier coin.y0(number)x1(number) — Coin opposé (inclus).y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Contour seulement, ou rempli.
Ne renvoie rien.
app.drawIsoShape(layerId, frameId, x, y, width?, depth?, height?, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine un solide isométrique (box, ramp, stairs, pyramid, prism, cylinder, cone, sphere ou dome) en projection de pixel art — exactement l'outil Forme isométrique de l'interface. Les arêtes sont de propres escaliers (2 px en largeur pour 1 px en bas à 2:1), les faces sont remplies avec les couleurs du dessus / de gauche / de droite, les arêtes intérieures les séparent et la silhouette est cernée d'un contour. Le coin arrière de l'empreinte se trouve en (x, y) ; x descend vers la droite et y vers la gauche à l'écran, et height élève le sommet. Les solides ronds (cylinder, cone, sphere, dome) prennent width comme diamètre et ignorent depth ; la sphère ignore aussi height.
layerId(string)frameId(string)x(number) — Ancre : le pixel le plus à gauche de l'arête plate au coin arrière (supérieur) de l'empreinte, au sol.y(number)width(number, facultatif) — Empreinte le long de x (vers le bas à droite), en unités iso : chaque unité est une rangée de l'escalier d'arête 2:1. nil = le isoWidth du contexte.depth(number, facultatif) — Empreinte le long de y (vers le bas à gauche), en unités iso. nil = le isoDepth du contexte.height(number, facultatif) — Hauteur en pixels (0 = un losange plat). nil = le isoHeight du contexte.opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de base : la face du dessus en ombrage automatique.shape(IsoShape: "box" | "ramp" | "stairs" | "pyramid" | "prism" | "cylinder" | "cone" | "sphere" | "dome"; par défaut context.isoShape) — Quel solide dessiner.cap(integer 2–4; par défaut context.isoCap) — La suite plate de pixels aux sommets supérieur et inférieur : 2 (largeurs paires), 3 (impaires) ou 4 (multiples de quatre). Les rapports supérieurs à 2 ont une arête naturelle plus large.bevel(integer 0–1024; par défaut context.isoBevel) — Box uniquement : chanfreine les quatre arêtes du haut de ce nombre de pixels, une pente à 45 degrés entre le dessus et les côtés (0 = arêtes vives). Limité à la hauteur et à la moitié de l'empreinte.style(IsoShapeStyle: "filled" | "outline" | "filled-outline"; par défaut context.isoStyle) — Faces, contour, ou les deux.hiddenEdges(boolean; par défaut context.isoHiddenEdges) — Dessine aussi les arêtes derrière le solide, dans la couleur des arêtes intérieures (un fil de fer transparent avec le style outline).direction(IsoDirection: "+x" | "-x" | "+y" | "-y"; par défaut context.isoDirection) — Ramp et stairs : le sens de la descente. Prism : le sens vers lequel une pente est tournée (+x et -x donnent le même toit). Ignoré par les autres formes.ratio(integer 1–8; par défaut the sprite's isometric grid ratio (run / rise, rounded), else 2) — Pixels en largeur par pixel en bas le long des axes iso.colors({ outline =, innerEdge =, top =, left =, right = } colors; par défaut auto-shaded from color, or the context's isoColors when isoAutoShade is off) — Les cinq couleurs d'un coup (left est la face tournée vers +y, en bas à gauche ; right la face tournée vers +x). Remplace l'ombrage automatique.autoShade(boolean; par défaut context.isoAutoShade) — Dérive les couleurs decolor: dessus = color, les côtés un et deux crans plus sombres le long deramp(ou calculés), les arêtes intérieures encore plus sombres, le contour le plus sombre. false utilise le isoColors du contexte. Ignoré quand colors est donné.ramp(a list of colors ("#rrggbb[aa]" or { r, g, b, a }); par défaut context.shades) — La rampe le long de laquelle avance l'ombrage automatique quand elle contientcolor(l'extrémité la plus sombre est trouvée par la luminosité). Sinon les nuances sont calculées, et alignées sur la palette sur un sprite indexé.
Ne renvoie rien.
app.drawLine(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine une ligne droite entre les deux points — exactement l'outil ligne de l'interface (width l'épaissit avec des extrémités arrondies).
layerId(string)frameId(string)x0(number)y0(number)x1(number)y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.width(integer 1–64; par défaut context.lineWidth) — Épaisseur de la ligne en pixels (1 = une ligne nette de 1 px) ; les lignes plus larges ont des extrémités arrondies.
Ne renvoie rien.
app.drawPolygon(layerId, frameId, vertices, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine un polygone fermé passant par les sommets — exactement l'outil polygone de l'interface.
layerId(string)frameId(string)vertices(table) — Liste de sommets { x = n, y = n } (ou { n, n }), au moins 2 ; le polygone se referme automatiquement sur le premier.opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Contour seulement, ou rempli.
Ne renvoie rien.
app.drawRectangle(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine un rectangle aligné sur les axes délimité par les deux coins — exactement l'outil rectangle de l'interface (radius arrondit les coins, ensemble ou un par un). Ignore la sélection sauf si respectSelection = true.
layerId(string)frameId(string)x0(number) — Premier coin.y0(number)x1(number) — Coin opposé (inclus).y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Contour seulement, ou rempli.radius(an integer 0–1024 for every corner, or a list of four { topLeft, topRight, bottomRight, bottomLeft }; par défaut context.cornerRadius) — Arrondit les coins, en pixels (0 = angles droits) : un seul rayon pour les quatre, ou un par coin dans le sens horaire à partir du coin supérieur gauche. Chacun est limité à la moitié du plus petit côté.
Ne renvoie rien.
app.drawStar(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine une étoile à 5 branches (pointe vers le haut) dont les pointes extérieures touchent chaque côté de la boîte délimitée par les deux coins — exactement l'outil étoile de l'interface.
layerId(string)frameId(string)x0(number) — Premier coin.y0(number)x1(number) — Coin opposé (inclus).y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Contour seulement, ou rempli.
Ne renvoie rien.
app.drawStroke(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Trait de pinceau à main levée passant par les points — exactement le crayon de l'interface (ou, avec erase = true, la gomme ; avec dither, le pinceau de tramage).
layerId(string)frameId(string)points(table) — Liste de points { x = n, y = n } (ou { n, n }) ; les écarts entre points consécutifs sont interpolés comme lors d'un vrai glissement.opts(table, facultatif) Accepte aussi Options de peinture, Options de pinceau et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.erase(boolean; par défaut false) — Efface vers la transparence au lieu de peindre (la gomme) ;colorest ignoré.pixelPerfect(boolean; par défaut context.pixelPerfect) — Retire les doubles marches d'angle du chemin du trait (toute taille de pinceau).matchColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut nil (every pixel)) — Ne peint (ou n'efface) que les pixels qui ont exactement cette couleur ; les autres ne sont pas touchés. Avec color = la couleur d'arrière-plan et matchColor = la couleur de premier plan, c'est la gomme du clic droit d'Aseprite.dither({ pattern = "bayer2" | "bayer4" | "bayer8" | "dots" | "lines-h" | "lines-v" | "diagonal" | "noise", density = 0-100 }; par défaut nil (every pixel)) — Ne peint (ou n'efface) que les pixels d'un motif ordonné à une densité en pourcentage, en laissant le reste intact : le pinceau de tramage (50 avec bayer2 donne un damier). Le motif se répète à partir du coin supérieur gauche du sprite, donc les traits qui se chevauchent restent alignés.dynamics({ stabilizer = 0-64, pressure = { size, angle, gradient (booleans), min, max (0-100) }, velocity = { same }, minSize, minAngle, maxAngle, dither, curve = 25-400 }; par défaut built from the context's stabilizer, pressure*/velocity* and dynamics* fields; pass {} for a plain stroke) — Dynamique du pinceau : un stabilisateur (moyenne mobile des points) et des capteurs de pression / vitesse qui pilotent la taille du tampon (de minSize jusqu'à la taille du pinceau), son angle (de minAngle à maxAngle) et un dégradé de couleur de color à endColor (dither = true choisit l'une ou l'autre par pixel ; les sprites indexés s'alignent sur la couleur de palette la plus proche). min/max sont la plage du capteur en pourcentage (min > max inverse) ; curve est la sensibilité en pourcentage (100 = linéaire). Avec pixelPerfect et une taille variable, les coudes sont quand même retirés le long du chemin central. Les pinceaux personnalisés n'ont que le stabilisateur et le dégradé.pressures(list of numbers 0-1, one per point; par défaut 1 (full pressure) for every point) — Pression du stylet par point, lue par le capteur de pression. Une souris n'en a pas, elle compte donc comme pleine.velocities(list of numbers >= 0, one per point; par défaut 0 for every point) — Vitesse du pointeur par point en pixels du sprite par milliseconde (0.5 = le maximum du capteur), lue par le capteur de vitesse.endColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.backgroundColor) — La couleur de fin du dégradé quand un capteur pilote le dégradé ;colorest le début.
Ne renvoie rien.
app.drawTriangle(layerId, frameId, x0, y0, x1, y1, opts?) — modifie, annulable, refusée sur un calque verrouillé
Dessine un triangle isocèle (sommet en haut au centre, base en bas) remplissant la boîte délimitée par les deux coins — exactement l'outil triangle de l'interface.
layerId(string)frameId(string)x0(number) — Premier coin.y0(number)x1(number) — Coin opposé (inclus).y1(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.fill(FillMode: "outline" | "filled"; par défaut context.shapeFillMode) — Contour seulement, ou rempli.
Ne renvoie rien.
app.floodFill(layerId, frameId, x, y, opts?) — modifie, annulable, refusée sur un calque verrouillé
Remplissage au pot de peinture à partir de (x, y) — exactement l'outil pot de peinture de l'interface.
layerId(string)frameId(string)x(number)y(number)opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.contiguous(boolean; par défaut context.bucketFillMode (true pour le mode contigu du contexte, false pour global)) — Seulement la région connexe (true), ou tous les pixels correspondants du canevas (false).tolerance(integer 0–255; par défaut context.bucketTolerance) — La plus grande différence de couleur par canal qui compte encore comme une correspondance.diagonal(boolean; par défaut context.bucketDiagonal) — Contigu uniquement : s'étend aussi aux voisins en diagonale (8-connexité), si bien que la région déborde à travers les lignes diagonales de 1 px.stopAtGrid(boolean; par défaut context.bucketStopAtGrid) — Confine la région à la cellule de la grille où tombe le clic (la cellule d'une grille isométrique est le losange qu'elle dessine, avec les pixels de ligne de ses deux bords supérieurs).closeGap(integer 0–5; par défaut context.bucketCloseGap) — Remplissages contigus : considère comme fermés les trous du contour jusqu'à cette largeur en pixels, pour que le remplissage s'y arrête au lieu de déborder. 0 = désactivé.pattern(FillPattern: "solid" | "checker" | "dither25" | "dither75" | "hstripes" | "vstripes" | "diagonal" | "grid" | "dots" | "bricks"; par défaut context.bucketPattern) — Remplit avec un motif répété decoloretpatternColor, répété à partir du coin supérieur gauche du canevas. "solid" = seulementcolor.patternColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.backgroundColor) — La seconde couleur du motif (ignorée quandpatternvaut "solid").
Ne renvoie rien.
app.isoProject(layerId, frameId, projection, opts?) — modifie, annulable, refusée sur un calque verrouillé
Projette les pixels sélectionnés (le cadre de sélection suit) — ou tout le cel quand rien n'est sélectionné — sur une face d'un cube isométrique : "left" et "right" cisaillent les colonnes le long de la pente, "floor" transforme la région en face du dessus (un carré devient un losange). Au pixel près : chaque arête devient un propre escalier (2 en largeur pour 1 en bas à 2:1) et aucune couleur n'est mélangée. Ce qui atterrit hors du canevas et des limites du cel est coupé (le calque Arrière-plan est coupé au canevas).
layerId(string)frameId(string)projection(IsoProjection: "left" | "right" | "floor")opts(table, facultatif)run(integer 1–16; par défaut The sprite's isometric grid ratio, or 2 (2:1) when the grid is rectangular.) — Pixels en largeur pourrisepixels en bas (la pente, sous forme irréductible). Donne aussi rise.rise(integer 1–16; par défaut The sprite's isometric grid ratio, or 1 (2:1) when the grid is rectangular.) — Pixels en bas pourrunpixels en largeur. Donne aussi run.
Ne renvoie rien.
app.jumble(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Étalement aléatoire : brouille les pixels sous le pinceau avec des voisins aléatoires le long des points — exactement l'outil brouillage de l'interface.
layerId(string)frameId(string)points(table) — Liste de points { x = n, y = n } (ou { n, n }) ; les écarts entre points consécutifs sont interpolés comme lors d'un vrai glissement.opts(table, facultatif) Accepte aussi Options de peinture et Options de pinceau (voir « Groupes d'options »), et :strength(integer 0–100; par défaut context.jumbleStrength) — Probabilité en pourcentage que chaque pixel touché soit brouillé. Un pinceau de 1 px n'a pas de voisins avec qui se brouiller, utilise donc brushSize 2 ou plus.seed(integer 0–4294967295; par défaut random) — Graine aléatoire : la même graine et les mêmes points donnent le même résultat.
Ne renvoie rien.
app.movePixels(layerId, frameId, dx, dy) — modifie, annulable, refusée sur un calque verrouillé
Déplace les pixels sélectionnés (selon la sélection actuelle ; le cadre de sélection suit) — ou tout le cel quand rien n'est sélectionné — de (dx, dy). Exactement l'outil déplacer de l'interface. Sans sélection, tout le cel se déplace et garde tout, y compris au-delà du bord du canevas ; les pixels de sélection déplacés sont conservés dans le canevas et les limites du cel, et coupés au-delà. Le calque Arrière-plan est coupé au canevas.
layerId(string)frameId(string)dx(number) — Pixels de déplacement vers la droite (négatif = vers la gauche).dy(number) — Pixels de déplacement vers le bas (négatif = vers le haut).
Ne renvoie rien.
app.outline(layerId, frameIds, opts?) — modifie, annulable, refusée sur un calque verrouillé
Filtre > Contour, comme dans Aseprite : dessine un contour autour (ou juste à l'intérieur) des formes des cels d'un calque, en une seule étape d'annulation. Un pixel fait partie d'une forme sauf s'il est transparent (ou correspond à bgColor). Les contours extérieurs agrandissent le cel, rogné au canevas. Calques d'image uniquement.
layerId(string)frameIds(table) — Tableau d'ids d'images dont les cels de ce calque sont entourés d'un contour (une image pour le cel actif, toutes les images pour tous).opts(table, facultatif)cels(Array of { layerId = ..., frameId = ... }) — Entoure d'un contour ces cels, à travers calques et images, au lieu de layerId/frameIds (passe nil pour les deux).color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur du contour. Sur un sprite indexé, elle est alignée sur l'entrée de palette la plus proche sauf si colorIndex est donné.colorIndex(integer 0–255; par défaut Taken from color.) — Sprites indexés : l'index de palette à peindre, utilisé tel quel. Pas l'index transparent.place(OutlinePlace: "outside" | "inside"; par défaut "outside") — Contour à l'extérieur de la forme (elle s'agrandit) ou à l'intérieur (ses pixels de bord sont repeints).shape(OutlineShape: "circle" | "square"; par défaut "circle") — Préréglage de la matrice de voisins. Ignoré quand matrix est donné.matrix(9 booleans, row-major 3x3 (top-left first): which neighbors count as touching. The center entry is ignored.) — Une matrice de voisins personnalisée, comme la grille de bascules 3x3 d'Aseprite.bgColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut Only transparent pixels are background.) — Une couleur opaque qui compte aussi comme arrière-plan, en plus des pixels totalement transparents.bgIndex(integer 0–255) — Sprites indexés : un index de palette qui compte aussi comme arrière-plan.respectSelection(boolean; par défaut false) — Passe true pour n'entourer d'un contour qu'à l'intérieur de la sélection actuelle. Par défaut, la sélection est ignorée.
Ne renvoie rien.
app.pastePixels(layerId, frameId, image, opts?) — modifie, annulable, refusée sur un calque verrouillé
Colle une image sur le cel d'un calque/d'une image d'animation comme le collage flottant de l'interface : les pixels transparents laissent le cel intact, les pixels partiellement transparents se fondent dessus, et les pixels collés deviennent la sélection. Le transform optionnel la distord (coins), puis met à l'échelle, fait pivoter et/ou cisaille l'image autour de son centre (sauf si pivotX/pivotY sont donnés), puis la décale de dx/dy. Exige un calque d'image modifiable (non verrouillé) ; un verrou de déplacement ne s'applique pas. Ce qui atterrit hors du canevas et des limites du cel est coupé (le calque Arrière-plan est coupé au canevas).
layerId(string)frameId(string)image(table) — { x, y, width, height, pixels } — pixels est une liste de width*height couleurs ("#rrggbb[aa]" ou { r, g, b, a }), ligne par ligne ; x, y est l'endroit où atterrit le coin supérieur gauche.opts(table, facultatif)scaleX(number -256–256; par défaut 1) — Échelle horizontale autour du pivot ; une valeur négative retourne. Pas 0.scaleY(number -256–256; par défaut 1) — Échelle verticale autour du pivot ; une valeur négative retourne. Pas 0.rotation(number; par défaut 0) — Degrés dans le sens horaire autour du pivot.skewX(number -80–80; par défaut 0) — Degrés de cisaillement horizontal (le haut penche d'un côté, le bas de l'autre, autour du pivot).skewY(number -80–80; par défaut 0) — Degrés de cisaillement vertical.dx(number; par défaut 0) — Pixels de décalage vers la droite après la transformation.dy(number; par défaut 0) — Pixels de décalage vers le bas après la transformation.pivotX(number; par défaut The center of the selection (or of the cel when nothing is selected).) — X du point fixe pour la rotation, l'échelle et le cisaillement, en pixels du canevas.pivotY(number; par défaut The center of the selection (or of the cel when nothing is selected).) — Y du point fixe pour la rotation, l'échelle et le cisaillement, en pixels du canevas.interpolation(TransformInterpolation: "nearest" | "rotsprite" | "bilinear"; par défaut "nearest") — Comment les pixels sont rééchantillonnés. Utilise rotsprite pour des rotations propres de pixel art, bilinear pour des résultats lissés (fondus).corners({ {x=,y=}, {x=,y=}, {x=,y=}, {x=,y=} }; par défaut The region's own corners (no distortion).) — Distorsion libre / perspective : où atterrissent les coins supérieur gauche, supérieur droit, inférieur droit et inférieur gauche de la région, en pixels du canevas (fractions permises), avant l'échelle, le cisaillement, la rotation et le décalage ci-dessus. Doit former une forme convexe. Rapprocher les deux coins supérieurs plus que les inférieurs donne une perspective de sol.
Ne renvoie rien.
app.scatter(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Pinceau de dispersion : estampe le pinceau le long des points, un pas par largeur de pinceau, chaque tampon décalé d'un écart aléatoire — exactement l'outil dispersion de l'interface.
layerId(string)frameId(string)points(table) — Liste de points { x = n, y = n } (ou { n, n }) ; les écarts entre points consécutifs sont interpolés comme lors d'un vrai glissement.opts(table, facultatif) Accepte aussi Options de peinture, Options de pinceau et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.offsetX(integer 0–64; par défaut context.scatterX) — Jusqu'où chaque tampon peut atterrir à gauche ou à droite du chemin, en pixels.offsetY(integer 0–64; par défaut context.scatterY) — Jusqu'où chaque tampon peut atterrir au-dessus ou en dessous du chemin, en pixels.count(integer 1–16; par défaut context.scatterCount) — Tampons posés à chaque pas le long du chemin.seed(integer 0–4294967295; par défaut random) — Graine aléatoire : la même graine et les mêmes points donnent le même résultat.
Ne renvoie rien.
app.spray(layerId, frameId, points, opts?) — modifie, annulable, refusée sur un calque verrouillé
Aérographe : disperse des points aléatoires autour de chaque point — exactement l'outil aérosol de l'interface. Chaque point est un tic, répète donc un point pour continuer à pulvériser sur place.
layerId(string)frameId(string)points(table) — Liste de points { x = n, y = n } (ou { n, n }) ; les écarts entre points consécutifs sont interpolés comme lors d'un vrai glissement.opts(table, facultatif) Accepte aussi Options de peinture et Options d'encre (voir « Groupes d'options »), et :color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur de peinture.radius(integer 1–128; par défaut twice the context's brushSize, at least 2) — À quelle distance de chaque point les points se dispersent, en pixels.rate(integer 1–64; par défaut context.sprayRate) — Points dispersés par point.seed(integer 0–4294967295; par défaut random) — Graine aléatoire : la même graine et les mêmes points donnent le même résultat.
Ne renvoie rien.
app.strokeSelection(layerId, frameId, width, opts?) — modifie, annulable, refusée sur un calque verrouillé
Édition > Contour de la sélection : peint une ligne de la largeur donnée le long du bord de la sélection actuelle (à l'intérieur, centrée ou à l'extérieur) sur un cel, en une seule étape d'annulation. Ne fait rien quand rien n'est sélectionné. Calques d'image uniquement.
layerId(string)frameId(string)width(number) — Pixels, de 1 à 256.opts(table, facultatif)position(StrokePosition: "inside" | "center" | "outside"; par défaut "center") — Où se place le trait par rapport au bord de la sélection.color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); par défaut context.foregroundColor) — La couleur du trait. Sur un sprite indexé, elle est alignée sur l'entrée de palette la plus proche sauf si colorIndex est donné.colorIndex(integer 0–255; par défaut Taken from color.) — Sprites indexés : l'index de palette à peindre, utilisé tel quel. Pas l'index transparent.shape(SelectionModifyShape: "circle" | "square"; par défaut "circle") — Comment la distance au bord est mesurée (coins arrondis ou carrés).
Ne renvoie rien.
app.transformPixels(layerId, frameId, opts?) — modifie, annulable, refusée sur un calque verrouillé
Met à l'échelle, fait pivoter, cisaille et/ou distord (perspective, via corners) les pixels sélectionnés (le cadre de sélection suit) — ou tout le cel quand rien n'est sélectionné — autour d'un pivot, exactement comme les poignées de transformation de l'outil déplacer de l'interface. Ordre : échelle, cisaillement, rotation, puis décalage de dx/dy. Sur un sprite aux pixels non carrés (Sprite.pixelRatio), les angles et les échelles sont ceux que tu vois à l'écran, donc une rotation de 90 degrés ressemble à une rotation de 90 degrés. Sans sélection, le cel entier garde ce qui atterrit dans la boîte formée par le canevas et les limites du cel, à son emplacement comme décalé de dx/dy (un simple décalage ne perd donc rien, y compris au-delà du bord du canevas) ; les pixels de sélection transformés sont conservés dans le canevas et les limites du cel et coupés au-delà. Le calque Arrière-plan est coupé au canevas. Une transformation sans effet ne change rien.
layerId(string)frameId(string)opts(table, facultatif)scaleX(number -256–256; par défaut 1) — Échelle horizontale autour du pivot ; une valeur négative retourne. Pas 0.scaleY(number -256–256; par défaut 1) — Échelle verticale autour du pivot ; une valeur négative retourne. Pas 0.rotation(number; par défaut 0) — Degrés dans le sens horaire autour du pivot.skewX(number -80–80; par défaut 0) — Degrés de cisaillement horizontal (le haut penche d'un côté, le bas de l'autre, autour du pivot).skewY(number -80–80; par défaut 0) — Degrés de cisaillement vertical.dx(number; par défaut 0) — Pixels de décalage vers la droite après la transformation.dy(number; par défaut 0) — Pixels de décalage vers le bas après la transformation.pivotX(number; par défaut The center of the selection (or of the cel when nothing is selected).) — X du point fixe pour la rotation, l'échelle et le cisaillement, en pixels du canevas.pivotY(number; par défaut The center of the selection (or of the cel when nothing is selected).) — Y du point fixe pour la rotation, l'échelle et le cisaillement, en pixels du canevas.interpolation(TransformInterpolation: "nearest" | "rotsprite" | "bilinear"; par défaut "nearest") — Comment les pixels sont rééchantillonnés. Utilise rotsprite pour des rotations propres de pixel art, bilinear pour des résultats lissés (fondus).corners({ {x=,y=}, {x=,y=}, {x=,y=}, {x=,y=} }; par défaut The region's own corners (no distortion).) — Distorsion libre / perspective : où atterrissent les coins supérieur gauche, supérieur droit, inférieur droit et inférieur gauche de la région, en pixels du canevas (fractions permises), avant l'échelle, le cisaillement, la rotation et le décalage ci-dessus. Doit former une forme convexe. Rapprocher les deux coins supérieurs plus que les inférieurs donne une perspective de sol.
Ne renvoie rien.
En Markdown : drawing.md.