Asepriteで利用できる拡張機能を自作した際に、[ファイル]や[編集]などのメインメニューに拡張機能を操作するメニューを追加する際に、少しハマったので備忘録的に投稿しておきます。
拡張機能
Asepriteにも、スクリプトで機能を追加できる[Extension]があります。
JSONとLUAで作成したスクリプトを圧縮ファイルにして、拡張子を変更したファイルを用意します。
用意したファイルを[Prederences]画面の[Extensions]で読み込んで追加ができます。
その時にハマったのが、操作メニューを追加する init 関数での書き方です。
リファレンスなど文章では、Asepriteのソースプロジェクト内の[gui.xml]の “group” の値を使うと読み取れます。
[gui.xml]は公式の Git で参照できます。
私は[Sprite]メニューに追加したかったので、”sprite” や “sprite_menu” などを試していたのですがメニューは表示されず。
正解は、表示したいメニューの直前のgroupの値を指定すると表示されました。
例えば[Sprite]メニューの一番下に追加したい場合には
[gui.xml]を開いて、[Sprite]メニューの最後尾の[item]タグを探します。(通常時は非表示になっているメニューもあるので注意)
私の場合は、このタグでした。
<item command="AutocropSprite" text="@.sprite_trim" group="sprite_crop" />
見つけた[item]タグ内の[group]属性の値を、スクリプトでメニューを追加するLUA内の[init]関数で指定します。
function init(plugin)
plugin:newCommand{
id = "DiamondMaskExporter",
title = "Diamond Mask Exporter",
group = "sprite_crop",
onclick = exportDiamondMasks
}
end
指定した[group]が正しければ、拡張機能をインストールするとメニューが追加されます。
まとめ
今回は短い記事ですが、Asepriteで利用できる拡張機能を自作した際に、[ファイル]や[編集]などのメインメニューに拡張機能を操作するメニューを追加する処理について書きました。
Aseprite内に操作メニューを追加する場合は、ソースプロジェクト内の[gui.xml]で表示する場所の直前のメニューに指定されている[group]値を使って表示ができました。
Asepriteで拡張機能をインストールしてメニューにアイテムを追加したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。

