Aspriteのプラグインを作る。

Asprite

参考

Aseprite – Api – Plugin
GUIのメニュー追加先
aseprite/data/gui.xml at main · aseprite/aseprite · GitHub

必要なファイル

  • package.json
  • my-script.lua( package.jsonで指定したファイル名 )

完成後はこれらを入れたフォルダをzipに圧縮する。

package.json

{
  "name"        : "my-scripts",
  "displayName" : "My Scripts",
  "description" : "My scripts do something",
  "version"     : "0.1",
  "author"      : { "name": "FirstName LastName",
              "email": "my@email.com",
              "url": "https://mywebsite.com/" },
  "contributors": [ ],
  "publisher": "myname",
  "license": "CC-BY-4.0",
  "categories": [ "Scripts" ],
  "contributes": {
    "scripts": [
        { "path": "./my-script.lua" }
    ]
  }
}

my-script.lua

-- 読み込み時に実行される関数
function init(plugin)


  -- 変数を保存するフィールドはplugin.preferences.XXXを使用する。
  -- we can use "plugin.preferences" as a table with fields for
  -- our plugin (these fields are saved between sessions)
  if plugin.preferences.count == nil then
    plugin.preferences.count = 0
  end


  -- 特定の場所を右クリック時のメニューにグループを追加する。
  plugin:newMenuGroup{
      id="new_group_id",
      title="追加するグループ名",
      -- レイヤーウィンドウの右クリック時に表示されるメニューにグループ(フォルダ)を追加する。
      group="cel_popup_properties"
  }


  -- 機能を追加する。プラグイン内に複数あってもよい。
  plugin:newCommand{
    -- コマンドのID
    id="MyFirstCommand",
    -- ショートカットなどで表示されるコマンド名。
    title="My First Command",
    -- GUIのどこにメニューを追加するか。
    -- この例だと、自分で作ったグループに追加している。
    group="new_group_id",
    -- -- 直接追加する場合はこのように。
    -- group="cel_popup_properties"
    -- クリック時およびショートカット使用時に実行される内容。
    onclick=function()
      plugin.preferences.count = plugin.preferences.count+1
      print( "call" )
    end
    -- 実行可能なときはtrueを返す。falseなら実行不可。
    onenabled=function()
      return true
    end
  }
  -- 指定したメニューにセパレータ[ ------- ]を追加し、メニューを区切る。
  plugin:newMenuSeparator{
    group="new_group_id"
  }

end

function exit(plugin)
  -- 終了時に実行される関数
  print("Aseprite is closing my plugin, MyFirstCommand was called " .. plugin.preferences.count .. " times")
end

プラグインを読み込む。

Edit > Preferences > Extensions > Add Extension
asprite_add_plugin.jpg

備考

cel_popup_propertiesなど、どの位置のメニューに追加するかなどはこれを確認する。
aseprite/data/gui.xml at main · aseprite/aseprite · GitHub