Skip to content

Instantly share code, notes, and snippets.

@dacap
Created March 30, 2022 15:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dacap/59425d9bf312d8ce878a7446f5d1ce6a to your computer and use it in GitHub Desktop.
Save dacap/59425d9bf312d8ce878a7446f5d1ce6a to your computer and use it in GitHub Desktop.
Aseprite scripts to jump between tags keeping the relative local frame
local spr = app.activeSprite
local tag = app.activeTag
local fr = app.activeFrame
if not spr or not tag then return end
local relativeFr = fr.frameNumber - tag.fromFrame.frameNumber
local function clamp(x, min, max)
if x < min then
return min
elseif x > max then
return max
else
return x
end
end
for i,t in ipairs(spr.tags) do
if t == tag then
local tag2
if i-1 >= 1 then
tag2 = spr.tags[i-1]
else
tag2 = spr.tags[#spr.tags]
end
app.activeFrame = clamp(tag2.fromFrame.frameNumber + relativeFr,
tag2.fromFrame.frameNumber,
tag2.toFrame.frameNumber)
return
end
end
local spr = app.activeSprite
local tag = app.activeTag
local fr = app.activeFrame
if not spr or not tag then return end
local relativeFr = fr.frameNumber - tag.fromFrame.frameNumber
local function clamp(x, min, max)
if x < min then
return min
elseif x > max then
return max
else
return x
end
end
for i,t in ipairs(spr.tags) do
if t == tag then
local tag2
if i+1 <= #spr.tags then
tag2 = spr.tags[i+1]
else
tag2 = spr.tags[1]
end
app.activeFrame = clamp(tag2.fromFrame.frameNumber + relativeFr,
tag2.fromFrame.frameNumber,
tag2.toFrame.frameNumber)
return
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment