このページの最終更新
 2008/09/11

Paint.NET公式サイト↓
マニュアルメニュー TOP 機能と使い方 プラグイン レタッチ例 効果使用例 ギャラリー
ゼロから作るオリジナルプラグイン
2.たった1行のプログラムでオリジナルプラグイン!

■線画を色塗り用の線画に変えるプラグインを作ってみよう
 せっかちな私は、無謀にも1を試しただけで、オリジナルプラグインを作りたくなりました。欲しいのは、お絵かきの線画から色塗りの線画に変えるプラグインです。実際にお絵かき講座で私が説明してる内容は、魔法の杖選択、グローバル選択、適用量0にスライド調整、黒選択、反転、Deleteと、6工程も必要なのです。

(1)日本語でプログラムを考えてみる

いきなり、プログラムなんて書けません。私がやってることを、まず整理します。

黒だけを選択し、黒以外を消す。

たったこれだけの事です。実は、これがプログラムの基本(偉そうに)
もうちょっと、プログラムらしい日本語にしましょう。
「黒」というのは私の目的の場合「プライマリーカラー」に置き換える事ができます。「消す」というのは、「透明にする」と置き換える事ができます。(正確には、「消す」と「透明にする」は全然違いますが、現象として同じ結果に見えるので置き換える事ができます。詳しくは別の機会に説明します)前回覚えた「代入する」という言葉を使えば「透明にする」のは、「アルファに0を代入する」事です。これを日本語プログラム(私の造語です)にすると

もし、画面のピクセルがプライマリーカラー以外なら、画面のピクセルの透明度(アルファ)に0を代入する。


これで、日本語プログラムは完璧!(なのか?)後は、これをC#にすれば、プラグインの完成のハズです!

(2)「画面のピクセルの透明度(アルファ)に0を代入する」をC#プログラムに置き換える
もしもしカメさんよ〜はとりあえず、分からないので、分かるところから。画面のピクセルの透明度は前回の単語(笑)がそのまま使えるハズです。後は0を代入するんだから、そのまんま
CurrentPixel.A = 0 ;
でいいハズです。サンプルプログラムの時と同じく、(1)(2)ブロックの不要な行を消します。書き換えるのは(3)ブロックのみです。簡単にできますね。早速試して見ましょう!ちゃんと、画像が透明になります。


ところで式の後の「;」は、お約束のようです。これが無いと、「;がありませんよ〜!」って怒られます(笑)
それと、プログラムは全部、半角英数字です。

(3)「もし、画面のピクセルがプライマリーカラー以外なら」をC#プログラムに置き換える

さて、ここまではサンプルプログラムで用が足りましたが、「もし、(A≠B)なら」の条件式は自分で探さなければなりません。で、探しました!

if ( A !=  B )

この式に出てくる「 != 」は「」の意味です。つまり、これで、目的のプログラムができそうです。さて、ここで、また悩みます。RGBA毎の単語(爆)は覚えましたが、一つずつ比較したんじゃ大変です。まとめて比較したいですよね。
ハイ、なんの事はない、RとかBとか書かなきゃいいんです。

if ( CurrentPixel != PrimaryColor ) CurrentPixel.A = 0;

早速試してみましょう!OKクリックして、一旦閉じます。「直線/曲線」でプライマリーカラーで線を描きます。そしたら、CodeLabを呼び出して、buildをクリック!滑らかな線がMSペイントのような線に変わりました。それ以外は全部透明に!大成功です。


赤でも青でも、プライマリーカラーで描いた線は全部ギザギザの線になります。こんな簡単なプラグインじゃ、誰も発表しないわけだ(核爆)

(4)プログラムを保存しよう

とりあえず、プログラムを保存しましょう。Code Lab の「File」を選択し、「Save」をクリックします。CSファイルというのは、Code Lab専用らしいです。
全部小文字でもいいのですが、みなさん、単語の頭は大文字にしていますので、マネッコして大文字にします。名前は・・・
「ChangePaintLine」にしました。全然英語になってません(自爆)まあ、なんちゃって気分ですから(苦笑)

(5)オリジナルアイコンを作ろう

せっかくですから、オリジナルアイコンを作ります。サイズは16x16、ファイル形式はPNGです。もうこうれは説明いりませんね。一目で分かるアイコンを作りましょう。でも、私ってセンスないのよね(悲)

(6)dllファイルで保存しよう

アイコンができたら、いよいよdllファイルで保存してPDNで使えるようにします。
Code Lab の「File」を選択し、「Save As DLL」をクリックします。
保存画面が出てきますので、説明に従って、設定していきます。

●Menu Settings どのメニューに入れるか選びます。
●Adustmentは調整、Effectは効果、効果を選びました。
●Submenuはサブメニュー、デフォルトで色々入ってますが、自分のサブメニューも作れます。日本語で「アニメツール」というサブメニューにしました。
●Menu Textは表示されるプラグインの名前になります。
デフォルトでは、CSファイルにした、「ChangePaintLine」が表示されますが、ここも日本語が使えます。
●Select Iconをクリックして、先ほど作ったアイコンを指定します。指定するとアイコンが表示されます。アイコンを指定しなければ、メニューには名前だけが表示されます。
●後は、名前、バージョン、URL、記入しなくても良いです。
●View sourceにチェックを入れると、本当のプログラムを見ることができます。
必要なければ、チェック無しでそのままBuildをクリックします。通常はチェックの必要はないです。

ちなみに、チェックを入れてからBuildをクリックした場合、こんなFull Sorce Codeというウインドウが出ます。
たった一行のプログラムと思いましたが、実は大半をCodeLabが作ってくれているわけです。ものすごい長いプログラムなのでびっくりしました。

コレを見るのは、最初で最後でしょう。
見たって分からないので、OKをクリックします。

Build Finishedというウインドウが表示されます。

「成功しました!
DLLファイルが作られました。
「効果」のメニューを確認するにはPDNを再起動してください。」

指示通りに再起動し、「効果」をクリックすると・・・・








完成です!オリジナルメニューにオリジナルアイコンが表示されています。もちろん、線を描いて、色塗線変換をクリックすると一発、線の周りが透明になり、線はMSペイントのような線になります。

初めてなので、手順の説明が長くなりましたが、とても簡単です。
今回のまとめ

日本語プログラム(私の造語ですよ〜)を作る、つまりプログラムを論理的に日本語で考える
プログラムは半角英数字
プログラムの1行の終わりには「;」を必ず付ける
代入式には、直接、数字が使える
「もし A ≠B  なら Cの処理をしなさい」をC#で表すと「if ( A != B ) C」

こんなトコですかねぇ〜。たったこれだけでも、プログラムが作れるワケです。
簡単なので、もう一つ覚えましょう「もし A = B  なら Cの処理をしなさい」というのは「if ( A == B) C」
A = Bじゃダメ、 == とイコールマークを二つ続けます。この記号、次回使いますので、是非遊びながら、頭に入れて置いてください。

次回は、背景色に描いたアンチエイリアスラインを透明レイヤに描いたアンチエイリアスラインのようにするプラグインの製作です。

前の記事に戻る  目次へ戻る  次の記事へ進む
inserted by FC2 system