「Krita」と「Python」の基礎知識

2024年6月6日(木)
大西 武 (オオニシ タケシ)
第1回の今回は、無料2Dペイントツール「Krita」上で「Python」をプログラミングするための基礎知識を解説します。

はじめに

高機能な無料ペイントツールとして有名な2DCGツールには「Krita(クリータ、図1)」「GIMP(ギンプ)」「Paint.NET(ペイントドットネット)」などがあります。KritaとGIMPはWindowsやmacOSやLinuxでクロスプラットフォームに動作しますが、Paint.NETは2024年6月現在、Windowsのみでしか動作しません。

KritaとGIMPを比較すると、GIMPの方が歴史があり利用者も多いかもしれませんが、Kritaは拡張機能として、Krita上で「Python(パイソン)」をプログラミングして絵を描いたり、アニメーションを作ったり、UIを利用したりすることもできます。そこがGIMPに対するKritaの決定的な優位性です。

本連載では、15回に渡ってKrita上でPythonをプログラミングしながらPythonの基礎知識を解説していきます。Pythonの文法を学びながら単純な図形を描くことから始め、画像ファイルを扱ったり、アニメーションを作ったり、UIで幾何学模様をカスタマイズしてオリジナルの絵を描いたり、Kritaプラグインを作ったりしていきます。

図1:Kritaの画面

Kritaについて

Kritaはオープンソースで無料のオンラインソフトです。Kritaの公式サイト(図2)から簡単にダウンロードできます。

KritaはMDIのウィンドウで複数の絵を並行して編集できたり、レイヤー機能があったり、ペンタブレットと連携できたり、筆を選択できたり、フォントの文字を描けたり、色を選びやすかったりと、基本的なことは全て網羅した2Dペイントツールです。もちろん日本語にも対応しています。さらにKritaを実行中にその中でPythonをスクリプティングしたり実行したりもできます。

無料のスマホアプリだと広告が付いたりして煩わしいこともありますが、パソコンのフリーソフトは広告も付かずに使えるため快適で良いですね。ただ、広告の代わりに寄付を募る表示は出てきますが…。

図2:Kritaの公式サイト

そんなKritaですが残念な点もあります。アプリが落ちやすいことです。やっと作業が一段落しそうだというときに限って強制終了されることがあります。今後のバージョンアップでさらに安定性を高めて欲しいところです。ところで、Kritaは落ちやすいので、筆者はWindowsで簡単なことをするときにはPaint.NETを使うことが多いです。

Kritaの使い方について

本連載ではPython入門がメインになりますが、Kritaを使えば気軽に開発環境を揃えられて、スクリプティングして実行できます。本来ならPython本体とコードエディタ、ターミナルが必要になるところ、Kritaならこれ1つで全てできてしまいます。こういうところも本連載を始めた理由です。

なお、Kritaでスクリプティングと実行をするには、「スクリプター」という簡易IDE(統合開発環境)がメニューの中にあります。ちょっと簡易過ぎて物足りなくもあるのですが。

Pythonについて

Pythonはインタプリタ型のプログラミング言語の一種で、最も人気があるプログラミング言語の1つです。多くのランキングサイトで人気プログラミング言語の1位になっています。その理由はシンプルでイージーなプログラミングの文法にあるのでしょう。

例えば、Pythonの作者グイド・ヴァンロッサム氏はMicrosoft社に在籍しており、2024年6月現在Microsoft社の時価総額は世界1~2位です。また今話題のAIはPythonでプログラミングされることが最も多く、それを高速に計算するのにも使われるGPUを開発するNVIDIA社の2024年6月現在の時価総額は世界3位です。どちらも日本の国家予算よりも多いのです。

Python本体は2024年6月現在Version 3.12.3が最新版です。Pythonも公式サイトから簡単にダウンロードできますが、Kritaには最初からPythonが組み込まれているため、追加でダウンロードする必要はありません。

Pythonの長所は、ユーザーがたくさんいるため「パッケージ」が豊富にある点です。パッケージとはPythonの追加機能のことで、これにより車輪の再発明をすることなく、既存のパッケージを使えば楽に欲しい機能が使えます。もう少し詳しく言うと、Pythonのスクリプトであるpyファイルから別のpyファイル(モジュール)を読み込めるのですが、そのモジュールを機能ごとに集めたものがパッケージです。

一方でPythonのプログラミングしていて短所だと思ったのは、パッケージのバージョン管理が面倒な点です。どちらかと言うと勝手にバージョン管理をしてくれるのですが、Python本体の最新版が出たときにパッケージのバージョンが違うとうまく動作しない場合がある点が問題でした。ただしKritaの場合はPythonが最新バージョンではないため、大抵の既存パッケージは動くはずですから、それほど気にはなりません。

先ほどAIの話が出てきましたが「PythonでAIがプログラミングできるならAIのパッケージで絵が描けないの?」と思われたかもしれません。筆者もAIを勉強中で、まだそこまで使いこなせていません。ただし既に「krita-ai-diffusion」というKrita向けAIを作っておられる猛者もいるようです。

【コラム】「BlenderユーザーのためのPython入門」

Kritaの基本的な使い方は分かっていた方が良いのですが、本連載ではそれほど基本機能でお絵描きする解説はしません。あくまでKritaの機能ではなく、Pythonのプログラムで絵を描くことがメインになります。筆者は当然できるだろうと思って記事を書いていても、中には全く2Dペイントツールを使ったことがない方もいるかもしれません。

以前、無料の3DCGツール「Blender」の入門書「BlenderユーザーのためのPython入門」という本を書いたことがあるのですが、レビューか何かで「PythonユーザーのためのBlender入門」の方が良かった、という意見もありました。つまりPythonはプログラミングできるからBlenderの使い方を教えて欲しい、ということでしょう。もしかすると本連載でもPythonのプログラミングはできるからKritaの使い方を教えて欲しい、という人もいるかもしれませんね。

著者
大西 武 (オオニシ タケシ)
1975年香川県生まれ。大阪大学経済学部経営学科中退。プログラミング入門書など30冊以上を商業出版する作家。Microsoftで大賞やNTTドコモでグランプリなど20回以上全国区のコンテストに入賞するアーティスト。オリジナルの間違い探し「3Dクイズ」が全国放送のTVで約10回出題。
https://profile.vixar.jp

連載バックナンバー

開発言語技術解説
第10回

「Krita」と「Python」のクラスで画像を加工しよう

2024/12/13
第10回の今回は「Krita」で「Python」のクラスを使ってプログラミングして、開いた画像ファイルに擦りガラス加工などをする解説をします。
開発言語技術解説
第9回

「Krita」と「Python」でクラスの文法を身につけよう

2024/11/22
第9回の今回は「Krita」と「Python」で、オブジェクト指向プログラミングができる「クラス」の文法を解説します。
開発言語技術解説
第8回

「Krita」と「Python」でUIパーツを構築してみよう

2024/11/1
第8回の今回は「Krita」で「Python」をプログラミングして、ボタンやスライダーなどのUIパーツを構築する解説をします。

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

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

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

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