「Krita」と「Python」でプラグインを作ろう

2025年3月21日(金)
大西 武 (オオニシ タケシ)
第14回の今回は「Krita」で「Python」スクリプトを「プラグイン」にしたり、「ショートカットキー」をセットする解説をします。

プラグインのインストール

Pythonスクリプトをプラグインとしてメニューに配置するには、決まったフォルダにファイルを配置する必要があります。具体的には「pykrita」フォルダ内に配置します。

  1. Kritaを起動して「設定」→「リソースを管理」メニューを実行すると、「リソースを管理する」ダイアログが開きます(図3)。

    図3:「リソースを管理する」ダイアログ

  2. そのダイアログの「リソースフォルダを開く」ボタンを押すと、Kritaのリソースファイルが置かれたフォルダのエクスプローラが開きます。
  3. そこに1ページ目のファイルを配置します。具体的には次の階層図(図4)のようになります。

    図4:ファイルの階層図

  4. Kritaを再起動して「設定」→「Kritaの設定を変更」メニューを実行します。
  5. 「Pythonプラグインマネージャ」アイコンを選択すると、右上にスクリプトの名前とコメントの一覧が表示されます。一覧に「円周上に円を生成」があるはずなので、チェックされていなければチェックしてKritaを再起動します。
  6. Kritaが起動したら「新しい画像」を開始し、カスタムドキュメントを「作成」します。これはスクリプターでは必要なかった操作なので忘れないでください。
  7. 「ツール」→「スクリプト」→「円周上に円を生成」メニューを実行すると、円周上に12個の円の画像が生成されます。

zip圧縮したプラグインのインストール

Pythonスクリプトを配布する場合は、先ほどのやり方では少し面倒です。そこでzip圧縮したプラグインを一発でインストールできるようにします。先ほどのプラグインを「pykrita」フォルダから削除した状態にしておきます。

  1. 前述の「circle.py」「__init__.py」「circle.desktop」をフォルダの階層を変更せずに「circle_plugin」フォルダに入れます。
  2. circle_pluginフォルダをzip圧縮します。
  3. Kritaを起動します。「ツール」→「スクリプト」→「Pythonプラグインをファイルからインポート」メニューを実行し、2. のcircle_plugin.zipを選択してインストールします。
  4. Kritaを再起動すると「ツール」→「スクリプト」→「円周上に円を生成」メニューが追加されています。

ショートカットキーのセット

ショートカットキーをセットするには「プログラム名.action」でファイルを作成します。リソースフォルダに「actions」フォルダを作り、次のファイルを配置します。

「krita」→「actions」→「circle.action」ファイルはXML形式のファイルです。「Actions」タグの「text」タグにプラグイン名を書き、「Action」タグにcircle.pyファイルのcreateAction()内に書いたユニークな(一意の)アクション名「CreateCircleAction」を書きます。

「Action」タグの「text」タグにプラグイン名、「icon」タグに使用可能なアイコンの名前、「text」タグにショートカットエディタの中で表示されるテキスト、「whatsThis」タグにヘルプアクションを呼び出した時に表示されるテキスト、「toolTip」タグにマウスをかざすと表示されるツールチップ、「iconText」タグにツールバーで表示される文字列、「activationFlags」タグにアクションを無効にするかどうか、「activationConditions」タグに有効化の条件、「shortcut」タグにデフォルトのショートカット、「isCheckable」タグにチェックボックスかどうか、「statusTip」タグにステータスバーに表示されるステータスチップをセットします。

次のサンプルスクリプトをスクリプティングしてKritaを再起動し、「新しい画像」を開始して「カスタムドキュメント」を「作成」します。そしてshortcutタグでセットした[Ctrl]キー+[Alt]キー+[Shift]キー+[C]キーを全て押すとショートカットキーが実行され、円周上に円が12個描画されます。

・サンプルスクリプト「krita」→「actions」→「circle.action」
<?xml version="1.0" encoding="UTF-8"?>
<ActionCollection version="2" name="Scripts">
  <Actions category="Scripts">
    <text>Roxigaのプラグイン</text>
    <Action name="CreateCircleAction">
      <icon></icon>
      <text>Circleプラグイン</text>
      <whatsThis>ヘルプアクションを呼び出した時に表示されるテキスト</whatsThis>
      <toolTip>マウスをかざすと表示されるツールチップ</toolTip>
      <iconText>ツールバーで表示される文字列</iconText>
      <activationFlags>10000</activationFlags>
      <activationConditions>0</activationConditions>
      <shortcut>ctrl+alt+shift+c</shortcut>
      <isCheckable>false</isCheckable>
      <statusTip>ステータスバーに表示されるステータスチップ</statusTip>
    </Action>
  </Actions>
</ActionCollection>
著者
大西 武 (オオニシ タケシ)
1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書など30冊以上を商業出版する作家。Microsoftで大賞やNTTドコモでグランプリなど20回以上全国区のコンテストに入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」が全国放送のTVで約10回出題。
https://profile.vixar.jp

連載バックナンバー

開発言語技術解説
第14回

「Krita」と「Python」でプラグインを作ろう

2025/3/21
第14回の今回は「Krita」で「Python」スクリプトを「プラグイン」にしたり、「ショートカットキー」をセットする解説をします。
開発言語技術解説
第13回

「Krita」と「Python」でオリジナルの幾何学模様を作ろう

2025/2/27
第13回の今回は「Krita」の「Python」でダイアログUIにUIパーツを貼り付けて操作できるようにして、オリジナルの幾何学模様を作成できるプログラムを解説します。さらにアニメーションも作ります。
開発言語技術解説
第12回

「Krita」と「Python」のクラスでダイアログを使ってみよう

2025/1/30
第12回の今回は「Krita」の「Python」でクラスを使ってダイアログ(QDialog)を継承し、UIを構築する解説をします。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています