Capas
Crea, organiza y configura capas. Los grupos son carpetas de capas: el parentId de una capa nombra su grupo (nil en el nivel superior) y las posiciones de app.moveLayer cuentan dentro de un grupo (0 = abajo). Ocultar o bloquear un grupo oculta o bloquea todo lo que contiene. Un grupo con opacidad total y modo de mezcla "normal" es de traspaso (sus capas se mezclan directamente con lo de abajo) salvo que tenga activada su marca isolated; un grupo aislado, o con cualquier otra opacidad o modo, compone primero sus capas entre sí. (25 funciones)
app.addAdjustmentLayer(name?, effects?, parentId?) — modifica, deshacible
Añade una capa de ajuste encima de todas las demás capas (o dentro del grupo parentId): no contiene píxeles, y sus efectos modifican todo lo compuesto debajo de ella en su grupo (o en toda la imagen), en todos los fotogramas, con la opacidad de la capa. Recórtala para cambiar solo la capa de abajo. La activa.
name(string, opcional) — Por omisión es "Adjustment N".effects(table, opcional) — Sus efectos, como en app.setLayerEffects (solo los de color y por píxel). Si se omite, ninguno por ahora.parentId(string, opcional) — Un grupo al que añadirla (encima de sus capas); si se omite, el nivel superior.
Devuelve (string): El id de la capa nueva.
app.addGroup(name?, parentId?) — modifica, deshacible
Añade un grupo de capas nuevo y vacío encima de todas las demás capas (o dentro del grupo parentId) y lo activa. Pon capas en él con app.moveLayer o app.groupLayers.
name(string, opcional) — Por omisión es "Group N".parentId(string, opcional) — Un grupo en el que anidarlo (encima de sus capas); si se omite, el nivel superior.
Devuelve (string): El id del grupo nuevo.
app.addLayer(name?, parentId?) — modifica, deshacible
Añade una capa en blanco nueva encima de todas las demás capas (o encima de las capas del grupo parentId) y la activa.
name(string, opcional) — Por omisión es "Layer N".parentId(string, opcional) — Un grupo al que añadirla (encima de sus capas); si se omite, el nivel superior.
Devuelve (string): El id de la capa nueva.
app.backgroundFromLayer(layerId?, backgroundColor?) — modifica, deshacible, se rechaza en una capa bloqueada
Capa > "Fondo desde capa": convierte una capa de imagen en la capa Fondo del sprite: la mueve abajo del todo, la llama "Background" y la hace totalmente opaca (los píxeles transparentes toman el color de fondo). Lanza un error si el sprite ya tiene una capa Fondo.
layerId(string, opcional) — La capa de imagen que se convierte; si se omite, la capa de imagen más baja.backgroundColor(color, opcional) — Con qué se rellenan los píxeles transparentes. Por omisión, el color de fondo actual.
Devuelve (string): El id de la capa convertida.
app.bakeLayerEffects(layerId) — modifica, deshacible, se rechaza en una capa bloqueada
Renderiza los efectos activados de una capa de imagen en todas sus celdas y los quita, en un solo paso de deshacer. Las celdas crecen para contener sombras y contornos (recortadas al lienzo); los sprites indexados ajustan el resultado a la paleta de cada fotograma. Lanza un error en una capa bloqueada o sin efectos.
layerId(string)
No devuelve nada.
app.duplicateLayer(layerId) — modifica, deshacible
Clona una capa (un grupo con todo lo que contiene) y todas las celdas pintadas en ella, inserta la copia justo encima del original y la activa.
layerId(string)
Devuelve (string): El id de la capa copia.
app.flattenGroup(layerId) — modifica, deshacible, se rechaza en una capa bloqueada
Reemplaza un grupo y todo lo que contiene por una sola capa de imagen (mismo id, nombre, opacidad, modo de mezcla y lugar) que guarda sus capas compuestas entre sí en cada fotograma. Las capas ocultas, de borrador y de referencia que contiene se eliminan, como en Aplanar.
layerId(string) — El grupo que se aplana.
No devuelve nada.
app.flattenSprite(visibleOnly?, backgroundColor?) — modifica, deshacible
Capa > Aplanar: reúne todas las capas del nivel superior (incluidas las ocultas) en una sola capa, por fotograma, exactamente como se renderiza con ellas visibles; con visibleOnly, solo las visibles, y se conservan las ocultas. Una capa Fondo visible sigue siendo el Fondo (totalmente opaco); si no, el resultado es una capa nueva llamada Flattened. Lanza un error si no hay nada que aplanar.
visibleOnly(boolean, opcional) — Aplanar visibles: aplana solo las capas visibles del nivel superior y conserva las ocultas. Por omisión es false: todo, incluidas las capas ocultas.backgroundColor(color, opcional) — Solo cuando el resultado es la capa Fondo (se aplana un Fondo visible): con qué se rellenan los píxeles que nada cubre. Por omisión, el color de fondo actual.
No devuelve nada.
app.getActiveLayerId() — lee
El id de la capa activa en este momento, o nil si no hay ninguna.
Devuelve (string): Id de capa o nil.
app.getLayer(layerId) — lee
Una capa, con la misma forma que una entrada de app.getLayers, o nil si no existe esa capa.
layerId(string)
Devuelve (table): Tabla de capa o nil.
app.getLayers() — lee
Todas las capas, de abajo arriba (un grupo queda justo encima de sus capas), como { id, name, type ("image" | "tilemap" | "reference" | "group"), parentId (el grupo en el que está; nil en el nivel superior), depth (0 = nivel superior), index (0 = la base de toda la pila), position (posición entre las capas de su padre, 0 = abajo; lo que recibe app.moveLayer), opacity (0-1), visible, locked, movementLocked, background (true en la capa de fondo), clipped (una máscara de recorte: se muestra solo donde la capa sin recortar más cercana de abajo tiene píxeles), continuous (app.duplicateFrame vincula sus celdas en lugar de copiarlas), blendMode, collapsed (grupos), tileset = { tileWidth, tileHeight, tileCount, matchFlipH, matchFlipV, matchRotate } (capas de tilemap), reference = { width, height } (capas de referencia) }. visible/locked/movementLocked son las marcas propias de la capa; un grupo oculto, bloqueado o con el movimiento bloqueado también oculta, bloquea o fija todo lo que contiene.
Devuelve (table): Array de tablas de capa.
app.getReferenceTransform(layerId, frameId) — lee
Dónde está la imagen de una capa de referencia en un fotograma, como { x, y, width, height } en píxeles del sprite, o nil si está en blanco ahí.
layerId(string) — Una capa de referencia.frameId(string)
Devuelve (table): Tabla de transformación o nil.
app.groupLayers(layerIds, name?) — modifica, deshacible
Pone capas (grupos con todo lo que contienen) en un grupo nuevo, en la posición de la más alta y conservando su orden, y activa el grupo.
layerIds(table) — Array de ids de capa, todas en el mismo grupo (o todas en el nivel superior).name(string, opcional) — Por omisión es "Group N".
Devuelve (string): El id del grupo nuevo.
app.layerFromBackground() — modifica, deshacible
Capa > "Capa desde fondo": convierte la capa Fondo en una capa normal (vuelven a permitirse la transparencia y el movimiento). Lanza un error si el sprite no tiene capa Fondo.
Devuelve (string): El id de la capa convertida.
app.mergeLayerDown(layerId) — modifica, deshacible, se rechaza en una capa bloqueada
Compone una capa (o un grupo entero, tal como se renderiza) sobre la capa que tiene justo debajo en el mismo grupo, y luego la elimina; una base de recorte se lleva consigo sus capas recortadas. El resultado se ve igual, y la capa de abajo termina con opacidad 100% y modo de mezcla normal. Lanza un error si no hay nada debajo en su grupo, si lo de abajo no es una capa de imagen, o si una capa sin recortar se fusionaría sobre una recortada.
layerId(string)
No devuelve nada.
app.mergeLayers(layerIds) — modifica, deshacible, se rechaza en una capa bloqueada
Fusiona capas (grupos con todo lo que contienen) en una sola capa de imagen exactamente como se renderizan juntas, en la posición de la más alta y con su nombre, y la activa. Si entre ellas está el Fondo, el resultado es el Fondo.
layerIds(table) — Array de dos o más ids de capa, todas en el mismo grupo (o todas en el nivel superior). Las ocultas también se fusionan.
Devuelve (string): El id de la capa fusionada.
app.mergeLayerUp(layerId) — modifica, deshacible, se rechaza en una capa bloqueada
Fusiona una capa de imagen con la capa que tiene justo encima en el mismo grupo: el resultado se ve exactamente como Fusionar hacia abajo de esa capa, pero toma su nombre y su etiqueta de color. Lanza un error si no hay nada encima en su grupo o si no es una capa de imagen.
layerId(string)
No devuelve nada.
app.moveLayer(layerId, position, parentId?) — modifica, deshacible
Mueve una capa (un grupo con todo lo que contiene) a una posición nueva, opcionalmente dentro de otro grupo. Lanza un error al mover un grupo dentro de sí mismo.
layerId(string)position(number) — Su lugar entre las demás capas del padre después de moverla (0 = abajo), limitado al rango válido.parentId(string, opcional) — El grupo al que se mueve; "" = el nivel superior; si se omite, se queda en su grupo actual.
No devuelve nada.
app.removeLayer(layerId) — modifica, deshacible
Elimina una capa y las celdas pintadas en ella; al eliminar un grupo se elimina todo lo que contiene. Lanza un error si no quedaría ninguna capa (que no sea un grupo).
layerId(string)
No devuelve nada.
app.setActiveLayer(layerId) — modifica
Convierte una capa en la activa (lo que hace hacer clic en ella en el panel de capas). No es una edición que se pueda deshacer.
layerId(string)
No devuelve nada.
app.setLayerEffects(layerId, effects) — modifica, deshacible
Establece los efectos no destructivos de una capa: las operaciones se ejecutan sobre los píxeles de la capa (los hijos compuestos de un grupo) cada vez que se compone el sprite, en orden, y nunca se escriben en las celdas (eso lo hace app.bakeLayerEffects). Se permite en una capa bloqueada. No sirve para capas de referencia; la capa Fondo solo admite efectos de color.
layerId(string)effects(table) — La lista completa de efectos de la capa, el primero abajo ({}la vacía). Cada entrada es{ kind = "levels", ...that effect's fields, enabled = true }; lee la lista actual deapp.getLayers, cámbiala y pásala de vuelta (las entradas conservan suid). Tipos: brightnessContrast, hueSaturation, colorCurve, levels, threshold, gradientMap, colorBalance, invert, replaceColor, posterize toman los campos del ajuste app.* correspondiente; outline tomaplace,width,shape,color; shadow tomaplace,dx,dy,spread,shape,softness(0-8 px de borde suave),edge("dithered", "hard" o "smooth": cómo se dibuja un borde suave),color; noise (amount,size,mono,seed), dither (pattern,levels,strength), scanlines (period,thickness,offset,strength,mask), vignette (strength,radius,softness,color), paletteSwap (from,to,tolerance), blur (radius,shape,edge,colors), bloom (threshold,radius,intensity,edge,colors), edgeDetect (strength,mode,invert,color), smoother (size), pixelate (size), chromatic (dx,dy), wave (axis,amplitude,wavelength,phase), bend (axis,amount), distortion (axis,band,amount,density,seed), parallax (shift), echo (count,dx,dy,fade), antiAlias (a,anyA,b,steps,into,strength,colors: como app.antiAlias), autoShade (target,base,angle,highlights,shadows,width,hueShift,chroma,rim,outline,colors,ramp: como app.autoShade). Blur y bloom pueden ajustarse para pixel art:edgees "smooth", "hard" o "dithered",colorses "any" o "palette" (la paleta del fotograma, el valor por defecto en sprites indexados). Anima un parámetro numérico o de color contracks = { dx = { { frame = frameId, value = 0 }, { frame = otherFrameId, value = 4, easing = ... } } }(la ruta es el campo, ovalue.gamma,shadows.redy así sucesivamente; si falta easing, es lineal) ytiming = "frames"o"time". Todo color (color,below,above,from,to, elcolorde un punto de degradado,a,b,base, elvaluede un fotograma clave de color) es"#rgb","#rrggbb","#rrggbbaa"o{ r, g, b, a }(avale 255 por defecto); las listas de colores (fromytode paletteSwap,rampde autoShade) también los aceptan, y se ignora el alfa. Las lecturas (app.getLayers) devuelven los colores como tablas{ r, g, b, a }y las listas de colores como cadenas"#rrggbb".
No devuelve nada.
app.setLayerProps(layerId, props) — modifica, deshacible
Actualiza una o más propiedades de una capa o grupo.
layerId(string)props(table) — Las claves omitidas no cambian.name(string) — El nombre de la capa.opacity(number 0–1) — Opacidad de la capa. Un grupo por debajo de 1 compone primero sus capas entre sí (queda aislado).visible(boolean) — Si la capa se muestra (y, para los scripts, se exporta). Un grupo oculto oculta todo lo que contiene.locked(boolean) — Nada puede cambiar el contenido de una capa bloqueada, ni siquiera los scripts. Bloquear un grupo bloquea todo lo que contiene.movementLocked(boolean) — Las celdas de una capa con el movimiento bloqueado no se pueden mover (movePixels, moveCels, un desplazamiento de transformPixels, la colocación de referencias); pintar sigue funcionando. Bloquear el movimiento de un grupo bloquea el de todo lo que contiene.clipped(boolean) — Máscara de recorte: la capa solo se muestra donde la capa sin recortar más cercana por debajo en el mismo grupo (su base) tiene píxeles, y el modo de mezcla de la base se aplica a toda la pila. No sirve para capas de referencia ni para la capa Fondo.draft(boolean) — Capa de borrador: se muestra mientras trabajas pero nunca se exporta, aplana ni estampa (un grupo de borrador arrastra consigo todo lo que contiene). No sirve para capas de referencia ni para la capa Fondo.continuous(boolean) — Capa continua (la de Aseprite): Nuevo fotograma (app.duplicateFrame sinlinked) vincula la celda de esta capa a la del original en lugar de copiarla. No sirve para grupos.isolated(boolean) — Solo grupos: compone primero las capas del grupo por separado y luego mezcla el resultado como una sola imagen (el grupo Normal de Photoshop). Desactivado, un grupo con mezcla normal y opacidad 1 es de traspaso: sus capas se mezclan directamente con lo de abajo. Cualquier otro modo de mezcla u opacidad aísla el grupo de todos modos.blendMode(BlendMode: "normal" | "multiply" | "screen" | "overlay" | "darken" | "lighten" | "color-dodge" | "color-burn" | "hard-light" | "soft-light" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity" | "addition" | "subtract" | "divide") — Cómo se mezcla la capa con las de abajo. Un grupo con un modo distinto de "normal" compone primero sus capas entre sí (queda aislado).
No devuelve nada.
app.setReferenceTransform(layerId, frameId, x, y, width, height) — modifica, deshacible, se rechaza en una capa bloqueada
Reposiciona o redimensiona la colocación de una capa de referencia en un fotograma (en el espacio del sprite). Un width o height <= 0 la borra (en blanco en ese fotograma). Lanza un error si layerId no es una capa de referencia.
layerId(string)frameId(string)x(number)y(number)width(number)height(number)
No devuelve nada.
app.stampVisible(name?) — modifica, deshacible
Añade una capa nueva con todo lo visible, por fotograma, exactamente como la crearía Aplanar (sin las capas de referencia y de borrador) pero conservando todas las capas, encima del bloque de nivel superior de la capa activa, y la activa.
name(string, opcional) — Por omisión es "Visible".
Devuelve (string): El id de la capa nueva.
app.ungroupLayer(layerId) — modifica, deshacible
Elimina un grupo y sube sus capas a su lugar. Conservan sus propias propiedades; la opacidad, el modo de mezcla y la visibilidad del grupo se descartan, no se aplican.
layerId(string) — Un grupo.
No devuelve nada.
En Markdown: layers.md.