Slices

Named rectangles, e.g. for export regions or hitboxes. A slice can also be a 9-slice (a center rectangle) and carry a pivot point; both are relative to the slice's top-left corner, as in Aseprite, and move with it when the canvas is resized, cropped or rotated. (5 functions)

app.addSlice(name, x, y, width, height, opts?) — changes, undoable

Adds a new named rectangular slice, optionally a 9-slice (center) and/or with a pivot.

  • name (string)
  • x (number)
  • y (number)
  • width (number)
  • height (number)
  • opts (table, optional)
    • center ({ x, y, width, height }) — The 9-slice centre { x, y, width, height }, relative to the slice's origin: inside the slice, positive size.
    • pivot ({ x, y }) — The pivot point { x, y }, relative to the slice's origin (may lie outside the slice).

Returns (string): The new slice's id.

app.getSlices(frameId?) — reads

Every slice as { id, name, x, y, width, height, center = { x, y, width, height } (9-slice slices), pivot = { x, y } (slices with a pivot), keyFrameIds (frames where the slice has its own key, slices with per-frame keys only) }. center and pivot are relative to the slice's origin. Pass a frame id for the geometry in effect on that frame.

  • frameId (string, optional) — Frame to read the slices at (a slice can change bounds, centre and pivot per frame); omit for the first frame's.

Returns (table): Array of slice tables.

app.removeSlice(sliceId) — changes, undoable

Removes a slice.

  • sliceId (string)

Returns nothing.

app.removeSliceKey(sliceId, frameId) — changes, undoable

Removes a slice's key at a frame (not the first frame, which holds the slice's own geometry): from that frame on, the previous key's geometry applies again. Errors when the slice has no key on that frame.

  • sliceId (string)
  • frameId (string)

Returns nothing.

app.updateSlice(sliceId, props, frameId?) — changes, undoable

Updates one or more properties of a slice. Resizing a 9-slice keeps its center only if it still fits; otherwise pass a new center (or false) too. With a frameId past the first frame, x, y, width, height, center and pivot edit the slice's key on that frame (creating one: the new geometry holds from that frame on, until the next key); name is always slice-wide.

  • sliceId (string)
  • props (table) — Omitted keys are left unchanged.
    • name (string) — The slice's name.
    • x (integer) — Left edge, in sprite pixels.
    • y (integer) — Top edge, in sprite pixels.
    • width (integer ≥ 1) — Width in pixels.
    • height (integer ≥ 1) — Height in pixels.
    • center ({ x, y, width, height } or false) — The 9-slice centre { x, y, width, height }, relative to the slice's origin: inside the slice, positive size. false clears it.
    • pivot ({ x, y } or false) — The pivot point { x, y }, relative to the slice's origin (may lie outside the slice). false clears it.
  • frameId (string, optional) — The frame the geometry applies at; omitted or the first frame edits the slice's own geometry.

Returns nothing.

As Markdown: slices.md.