ドット絵描画ツールAsepriteは、Luaを用いてプログラムを書き、機能拡張や処理の自動化を行うことができます。
Aseprite
Animatedspriteeditor&pixelarttool
よく使いがちな処理について、備忘録としてまとめておきます。
アラートダイアログを表示する
app.alert("hoge")
ファイル内の全レイヤーを取得する
for i, layer in ipairs(app.activeSprite.layers) do
app.alert (layer.name)
end
ファイル内の全フレームを取得する
for i, layer in ipairs(app.activeSprite.frames) do
app.alert (frame.frameNumber)
end
レイヤー内の特定のセルをフレーム番号から取得する
local cel = layer:cel(frame.frameNumber)
各ピクセルごとの色について処理する
local clonedImage = cel.image:clone()
for it in clonedImage:pixels() do
-- ピクセル情報を取得
local pixelValue = clonedImage:getPixel(it.x, it.y)
-- ピクセルの色を取得
local color = app.pixelColor.rgba(pixelValue)
-- ピクセルのRGBAごとの値を取得(0 ~ 255)
local r = app.pixelColor.rgbaR(pixelValue)
local g = app.pixelColor.rgbaG(pixelValue)
local b = app.pixelColor.rgbaB(pixelValue)
local a = app.pixelColor.rgbaA(pixelValue)
-- 色を作成
color = app.pixelColor.rgba(r, g, b, a)
-- ピクセルの色を指定
clonedImage:drawPixel(it.x, it.y, color)
end
getPixel()
についてはImageやpositionとの関係性がややこしいので、こちらも要参照
Aseprite
Animatedspriteeditor&pixelarttool
セルを書き換える
local layer = app.activeLayer
local frame = app.activeFrame
local image = Image(app.activeSprite.width, app.activeSprite.height) -- 空のImage
sprite:newCel(layer, frame, image, 0)
新規レイヤーを作成する
local newLayer = app.activeSprite:newLayer()
newLayer.name = "New Layer"
コメント