single.php

Asepriteの拡張機能でメニューを追加する手順

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で拡張機能をインストールしてメニューにアイテムを追加したい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です