はじめに
実際にPythonでKritaを制御する前に、まずはPythonのおさらいをしておきましょう。Pythonは極力シンプルな文法でスクリプトを書くことができるとても簡単な言語ですが、使い方次第で「ChatGPT」のような高度なプログラムまで作れてしまう優れた言語です。
他のプログラミング言語が使えるなら、Pythonと似たような文法もたくさんあるのですぐに理解できると思います。なお、今回解説するのはPythonの文法の全てではなく、最低限知っておくべき文法だけです。
筆者の経験上、プログラミングは数学を駆使しそうなイメージがありますが、ほとんどの業務アプリで大げさな数学を使うことはあまりありません。「言語」と言うだけあって英語を使うのに近いと思います。ただし本連載は2DCGを扱うため、三角関数などの数学の知識も多少は必要です。
Pythonの文法
まず「変数」「代入」「データ型」「計算式」「辞書型」について解説します。「リスト」と「タプル」についてもここで解説すべきですが、記事構成の都合上それらは「制御構文」の中で解説します。もちろんPythonの文法だけのサンプルスクリプトもKritaの「スクリプター」でそのままスクリプティングして実行できます。
変数とデータ型
プログラミングには図1のように必ずと言っていいほど「変数」が出てきます。これは「値」を記憶して残しておき、後でその値を使いまわすために必要なものです。
代入できる値には「整数」「小数」「文字列」「リスト」「タプル」「辞書型」「オブジェクト」などがあります。つまり「=」でデータを代入できます。プログラミングにおいて=は数学の「等号」ではなく「代入」を意味します。
ところで「数」についてよく間違うのが、整数(int)や小数(float)としての「数値」と、文字列(str)としての「数」がある点です。数値としての数は計算することができますが、文字列としての数は計算には使えません。ただし数値と文字列の数は次のサンプルスクリプト「data_type.py」のように互いに変換し合うことができます。
図1:変数に代入
・サンプルスクリプト「data_type.py」
計算式
プログラミングの計算には「ベクトル」や「行列」などもありますが、突き詰めれば「算数」で習う加減乗除でほとんど表現できてしまいます。「+」が「加算」、「-」が「減算」、「*」が「乗算」、「/」が「除算」、「%」が「剰余(除算した余り)」です。だから簡単なことなら小学校でもプログラミングを習うことができるわけですね。
・サンプルスクリプト「keisan.py」
辞書型
辞書型は図2のように変数を「辞書(Dictionary)」的に扱う文法です。例えば辞書で「multiply」を引くと「かける」という意味が出てくるように、「multiply」が「キー」となり、それに対応する「値(バリュー)」が「かける」となります。辞書型の要素は「{」「}」で囲います。
図2:辞書型
・サンプルスクリプト「dict.py」
2 | dict = {"key":"value","キー":10} |
【コラム】「スクリプターの注意事項について」
筆者がKritaのスクリプターでつまずいた点を1つ注意しておきます。Pythonをスクリプティングするたびに「Krita」→「ツール」→「スクリプト」→「スクリプター」メニューを実行してしまいがちですが、既にスクリプターウィンドウが開いているとさらにウィンドウが増えてしまいます。そこでWindowsの場合、図3のようにタスクバーからスクリプターウィンドウをアクティベートします。macOSやLinuxの場合はスクリプターウィンドウ自体をクリックしてアクティベートします。
図3:「スクリプター」ウィンドウのアクティベート