ラベル GIMP の投稿を表示しています。 すべての投稿を表示
ラベル GIMP の投稿を表示しています。 すべての投稿を表示

GIMP2.8で星空を描く(応用編) -クオリティを上げる効果の追加-

基礎編「 GIMP2.8で星空を描く(基礎編) -偏りのある星空を作り出す-」は、ちょっとした絵の背景に使うには十分かと思います。
とはいえ、リアル度の高い絵や構図にそのまま対応できません。そこで、必要に応じて以下の効果を加えることで、星空のイラストを用途に応じてカスタマイズすることができます。

「きらめき」適用例



ベースの背景に(簡単な)グラデーションをかける

実は基礎編のサンプル画像には、気づかない程度にグラデーションをかけてあります。
グラデーションは、あくまで方角により異なる明暗を表現する夜空のベースカラーです。
星雲を混在させてはいけません。



 

作業手順

背景のグラデーションにはブレンドツールを使う。
グラデーション:描画色から背景色(RGB)
形状:放射状 (または直線)










グラデーションの状態は直線でも良いのですが、基本的には「放射状」を使います。
ただし、中心点は必ず絵の外の遠い場所に置き、緩い円弧を描くようにします。
グラデーションの支点や終点が絵の外にはみ出すため、絵の端は指定した色の通りにならないことを忘れないようにします。



背景の色選び

明部と暗部の2色を用意します。
色選びは基本的にはフィーリングですが、指標もないわけではありません。

基本は青をベースにします。夜空なので当然黒に近づけます。最も暗い場所は、RGBを2,2,25くらいに。
明るい場所は、4,4,55~30,30,75までくらいは行けます。
明部と暗部にあまり変化を付けず、気づかれないくらいにすれば、まず失敗はありません。

応用。
十分に暗い色を使うならば、青と赤でグラデーションをかけても問題ありません。良い感じに仕上がる場合もあります。
強いグラデーションをかけて夜空の一方向を明るくすることで、夜明け前や日没前後、街の灯りが近い丘の上などを演出することもできます。
また、夜空は暗いイメージが強いですが、彩度が低い(白っぽい)色なら、明度(明るさ)が80%くらいの高さでも、意外なほどしっかり夜空に見えます。
例:彩度40%、明度80%など。

色は、写真から取ってくるという手法もあるのですが、同じ色を取ってきても色の持つ雰囲気を再現できない場合があり、確実とは言えません(圧縮劣化や光学素子などから生まれたノイズが色の味になっていて再現困難な場合がある)。
色選びの知識があれば、そのような状況で色を調整する際にも役に立つかと思います。


赤色を使って描いた夜空


星雲や天の川を描く

太いブラシや塗りつぶしでベタ塗りしたあと、ぼかしとして「ガウスぼかし」を強くかけておけば、あとは色と透明度を調整するだけで、けっこう星雲や天の川らしくなります。

作業手順

「自由選択(F)」ツールで、星雲を描きたい範囲を囲む
選択範囲を塗りつぶし(青系が良い)。
選択範囲を解除(Ctrl+A)
ガウスぼかしを適用。その際、ぼかし量は約(200/1920x1050)。(「フィルター(R)」→「ぼかし(B)」→「ガウスぼかし(G)」)

レイヤーを複製。
ガウスぼかしを適用。前よりもぼかし量を増やす。
複製したほうのレイヤーの不透明度を下げる。
(必要ならば、もとの天の川レイヤーの不透明度も調整する。)

濃淡を加える

星雲としてはこれで十分ですが、星雲らしい濃淡を付けることで、さらに効果を高めることもできます。
この濃淡は、レイヤーにレイヤーマスクを追加し、ソリッドノイズ効果をかけることで、簡単に付けることができます。
作業手順中に作ったレイヤーに対してこの効果をかけても良いですし、新たに濃淡効果のレイヤを追加するのも有りです。

以下、作業手順。
レイヤータブ上のレイヤーに対して、「レイヤーマスクの追加(Y)」をする。
レイヤーマスクに、ソリッドノイズ「フィルタ(R)->下塗り 雲 ソリッドノイズ」を加えます。この時、X,Yサイズは6.0程度にしておくと良いです。
濃淡のレイヤを追加した場合、星雲が濃くなりすぎるので、濃淡を付けていない元の星雲レイヤの不透明度を下げる。(約50%を参考に任意)

ただし、この手順を加えたレイヤーは、色が薄くなる欠点があります。
対策としては、単にレイヤを複製して重ねる方法が簡単です。



丸い星のブラシを作る(ピーマン型を使わない)

拡大されたとしても、まずピーマンだと気づかれません。が、それは別として、リアル系の絵で星が大きく表示される場合、形が丸くないと雰囲気に合わない場合も多くあります。

作業手順

ピーマン(正式名称"z Pepper")ブラシの設定を参考に、「間隔」などの項目を設定し、星用ブラシを作成します。

ピーマンブラシの間隔設定および、
新しいブラシを作成するボタン

間隔:400程度(5000まで行く模様)
画像サイズにもよるが、大きいほどよい。
硬さ:
ボケた星0.40~0.70または、はっきりした星0.70~0.90
強いほどブラシの描く星の円形がはっきりする。硬さを弱めるとぼかし効果のように形がボケていく。
使い分けると良い。

その他の設定は、デフォルトのままで良いです。






星を描く際に注意すべきこと

ブラシ「硬さ」の比較
ぼかしが強いほど幻想的になる反面、使い所によってリアリティを損なうかと思われる。
ブラシのぼかし設定は、ぼかしフィルタで代替できる。描いてから調整したい場合はそちらを使う。

注意点として、星を描く際は必ず「ブラシ 」ツールを使うこと。
「鉛筆」ツールは硬さ設定を無視してくっきりした円形を描いてしまいます。














「浴びせ」で小さな星を撒く

「浴びせ」は分布を制御できないため、星を描くのに向いているとは言えません。ただし、小さな星を描くには手軽で、星空を描く際にベースとして使えば効果的です。

作業手順

基本的な作業手順は、下記の「星をきらめかせる」と同じです。

レイヤを作成(Ctrl+Shift+N)。
レイヤータブ上でレイヤーを右クリックして、「アルファチャンネルの削除(R)」を行う。
「浴びせ」効果を適応。(「フィルター(R)」→「ノイズ(N)」→「浴びせ(H)」)
「しきい値」で、白い点を少数に減らす。(左側に行くほど種の数を減らすことができる)
拡大して使う場合は、拡大後に「ぼかし」(2〜5pixel)を適用する。
レイヤーの右クリックから「アルファチャンネルの追加 (H)」を行う。
 「色を透明度に」を実行。この際、黒色を透明度にする色として選択する。(「色(C)」→「色を透明度に(A)」)
必要ならば、「レイヤーマスク」を追加。不透明度により、星の密度を代替する。
浴びせレイヤーの不透明度を上げる(浴びせを目立たなくさせる)。


画像のサイズによる制御がきかないので、大きな画像では少し扱いが難しくなります。
(処理時間も長くなります。)
A4用紙の場合、サムネイルのように縮小して見た時と、壁紙など元サイズに近い大きさで見た時では印象が、かなり違います。

A4用紙サイズに対する「浴びせ」で作った星空
(クリックして拡大して見てください)






さまざまな色の星を追加

基本となる黄色系以外の星を加えることで、華やかな星空を描くことができます。
星を追加する場合、専用にレイヤを追加します。
あらかじめ星の数を少なめにしておいたほうが良いです。
追加するのが小さな星で少数ならば、何色の星を追加しても悪いことにはなりません。


星のブラー(ほかし)に色を付ける。

ぼかし色を変えることで、星空をより華やかに演出することができます。

基礎編の2レイヤ使った輝きを1レイヤに統合する

基礎編で作った星空を使う場合、ぼかしに色を付ける前に「下のレイヤーと統合」を使って、ぼかしレイヤを1つにまとめておきます。











作業手順

「レイヤーマスクの追加(Y)」から「レイヤーのアルファチャンネルを移転」を選択します。
こうすれば、レイヤに色を塗った結果がぼかしの色に反映されるようになります。色つけも、レイヤ全体に着色するだけです。
複数色によるグラデーションをかけたり、グラデーション以上の複雑な色を付けられるようになります。

また、オーバーレイでも同じようなことができます。状況によって使い分けます。




不透明度・色の変化を抑制

動的特性設定時に、忘れず「不規則」のカーブを選択する

大きな星を描くときに、特に有効な手法です。
動的特性の「色」変化を設定変更すれば、白色の出現比率を上げたり、不透明および背景色への変化を弱めに制限することができます。











注意点

星空用の動的特性は「不規則」と「色」変化を結びつけていると思います。
それを忘れると、「筆圧」のカーブを変更して「設定変更が適用されない」と首をかしげることになります。


星をきらめかせる

大小の瞬く星が混じっていると、星空が華やかになります。

「きらめき」フィルタの適用手順

瞬く星は、きらめき効果によって描くことができます。
また、きらめきの元となる種は、「浴びせ」を間引く方法で用意するのが簡単です。

きちんと設定していない「きらめき」

なお、「きらめき」の設定は、「なかのヒト」様が「きらめき」効果を検証してくださっているページを参考にさせていただきました。









作業手順

きらめき用にレイヤを作成(Ctrl+Shift+N)。
「レイヤー」タブ内でレイヤーを右クリックして、
「アルファチャンネルの削除(R)」を行う。
「浴びせ」効果を適応。
(「フィルター(R)」→「ノイズ(N)」→「浴びせ(H)」)
「しきい値」で、白い点を少数に減らす。
(左側に行くほど種の数を減らすことができる)

「きらめき」を適用。
とがりの長さ: 10~80(画像600x400px~4000x6400pxに対して) とがりの数: 2~4程度。(実際のとがりの本数はこの値の2倍になる)
とがりの角度: 15度くらい。(ちょうど45度などにしてしまうと不自然な絵になるのでわざとずらす)
ほかは、ほぼ基本設定のまま。

レイヤーの右クリックから「アルファチャンネルの追加 (H)」を行う。
 「色を透明度に」を実行。この際、黒色を透明度にする色として選択する。
(「色(C)」→「色を透明度に(A)」)
きらめきがカクついている場合、最後にガウスぼかしを3px程度入れる。




「しきい値」による白い点の間引き













きらめきを使うコツ

作業中、わざわざ一度レイヤの「アルファチャンネルを削除」しています。
なぜかといえば、浴びせの後に「しきい値」を適用する際、真白以外の点が残らないようにするためです。(薄い白の点はきらめきにならずに残りますし、黒い点がレイヤ上に残ると、きらめきにノイズが入ります)。

きらめきが適用されるのは、ほぼ純白(RGBが255,255,255)のみです。


 種を手作業で描く場合:
種の色は必ず白(純白)にします。サイズは画像の大きさに関係なく、3〜5Pixelの小さいものでないと、先の尖った綺麗なきらめきが作れません。
(きらめきのとがり部分は、種を引き伸ばして描かれているようです)


きらめきを組み合わせる:
精細な絵の場合、きらめきが大小あわせて2〜3種類あったほうが見栄えがよいです。

きらめきフィルターは、角度およびサイズがすべて同じきらめきを描きます(「傾きランダム」 にしても)。
光学的にはこれが正しいのではないかと思います。
複数のきらめきを組み合わせて使いたい場合は、レイヤを2〜3枚用意し、レイヤごとに種を作り、設定を変えながらきらめきフィルターをかけましょう。

上でも書きましたが、とがりの角度は、大きなものは15度か45度前後が見栄えがよいです。小さなきらめきならば、「-1」を指定してランダムにしても良いかもしれません。
 
きらめきは、本数が多すぎると作り物っぽくなり、見栄えが悪くなる場合があります。
きらめきは、個数もサイズも控えめにしましょう。





本記事は姉妹編として、基礎編のほかに番外編「GIMPで露光撮影のような「星の軌跡」イラストを描く」も存在します。よろしければどうぞ。


私が仮想マシンゲストを作って開発を行う手順 (手作業メイン)

仮想マシンゲストでプログラムのテストを行う際の、私なりの手順です。
良いやり方とは言えるわけではありませんが、気楽に素のOS環境をテストすることができます。
何かの参考になれば幸いです。

GIMPをビルド中のVirtualBoxゲスト


自作のGIMPの自動ビルドスクリプトを実行したところ、うまく行かないことが判明。
原因は新機能の画像メタデータ編集に必要なlibgexiv2-devパッケージの不足でした。

対応作業自体はすぐに終わりました。
GIMP自体のビルドスクリプトが必要なパッケージを教えてくれましたし、自作スクリプト側ではインストールするパッケージを一つ増やしただけなので、変更は1行のみでした。

とはいえ、一応githubで公開しているスクリプトなので、事前チェックをするに越したことはありません。
(それも、できれば素のOS上であることが好ましい)。
そこで、いつもの通り仮想マシンで実験環境を作成してテストを行いました。
今回はその手順を紹介します。

実験用環境をゲストに作成する方法としては、一時期Chefなどのスクリプトが話題になりましたが、私はまだその粋に達していないようです。
(数が少ないので手作業で済ませてしまっている)。


ゲストOSのインストール

仮想マシンを作成し、OSをインストールします。
インストール終了した時点で、システムのスナップショットを取ります。
(ちなみに今回使用したUbuntu13.10環境は、ここまで準備してありました)。
システムアップデートとGuestAdditionの導入を行います。
特にGuestAdditionは、実権環境で使用するVirtualBoxの共有フォルダ機能を使用するために、必ず導入します。


テスト用ゲストの基礎を作成

テスト手順は多くの場合、ホスト側で途中まで開発したソースコードを、ゲスト環境に移して試し、公開できるところまで持っていく流れになります。
そこで私は、VirtualBoxの共有フォルダを使って、ホストとゲストのソースコード共有を行っています。
ホスト側の共有フォルダのパスはテストごとに違いますが、共有フォルダを使うためにゲストで行うグループ設定はいつも変わらないので、こちらを先に済ませておきます。
sudo gpasswd -a username vboxsf

また、ターミナルは必ず使うことになるので、
gnome-session-properties
にて、ゲストOS起動時にgnome-terminalが自動起動するようにします。

本当はGitとVimくらいは導入しておきたいのですが、実験環境としては可能な限り素に近いほうが良いので、必要なパッケージはその都度導入することにしています。
シャットダウンして、ここまでのスナップショットを取ります。


使い捨てゲストをリンククローンで作成

テスト用のゲストを、リンククローンで作成します。
(基本的には実験環境を作り捨てます。)
コツ:このとき、スナップショット(S)の管理「最新の状態」ではなく、スナップショットからクローンを作成するようにします(対象スナップショットを右クリックします)。
最新の状態からリンククローンを作ると、「リンククローン作成段階」をVirtualBoxが勝手にスナップショットにしてしまうからです。
ゲスト一覧から右クリックでクローンを作成すると、最新の状態からのコピーになってしまいます。
スナップショット管理画面


VirtualBoxのゲスト設定にて、共有フォルダを指定します。
この時、「自動マウント」は有効にします。
「読み込み専用」オプションもありますが、こちらは仮想マシン内で編集したくなった場合に不便なので、特に危険な場合以外では、あまり使っていません。

無事にGuest Additionの導入とグループ設定ができていれば、実験環境として使用可能です。
再起動して、共有ディレクトリの内部が閲覧できることを確認します。
ゲストOSで立ち上がったターミナル上で、
ls /media
すると、 sf_***といった名前で、共有フォルダが出来ているはずです。


以上、簡単ですが。

GIMP2.9をコンパイルするスクリプト (Ubuntu13.04)

Ubuntu 13.04環境で、最新のGIMPをGitリポジトリから取得してコンパイルするスクリプトを公開します。
(2013/10/30 Ubuntu13.10で使用可能です)。

ダウンロードはgithubからどうぞ。

コンパイルに成功したGIMP(2013/09/14時点)


使い方は、ダウンロードしたスクリプトを2回、実行するだけです。
sudo ./gimp_make.sh --apt
./gimp_make.sh

詳細なオプションなどは、別途READMEおよびスクリプトそのものをご参照ください。

1回目の --apt オプションで、パッケージマネージャから導入可能なライブラリやアプリケーションを導入しています(要管理者権限)。
 2回目のオプション無し実行でGIMPのコンパイルを行います。また、GIMPのコンパイルに必要で、Gitリポジトリから入手する必要のあるライブラリの導入も、すべて自動で行います。


Ubuntu 13.04 環境で動作を確認していますが、無改造か少し変更すれば、12.04でも動作すると思います。


雑記

基本的にGIMPは、最新に近いバージョンのGEGLとBABLを要求します。
そのため、この2つはGitリポジトリから取得してコンパイルする必要があります。
また、その際にglibの最新版を要求されることがあり、glibも最新版をコンパイルして使用するようになっています。

これらの情報は、コンパイル時にチェック機能が働くのでその時にわかります。
「〜が不足しています」「〜のバージョンが古過ぎます。バージョンx.x以上が必要です」という表示が英語で出るようになっています。
とはいえ、ソースを落としてきて、一つずつ足りないライブラリを入手していく作業は面倒なので、スクリプトにまとめることにしたわけです。



GIMP2.6の時代、イラストに適したG-Penという機能が追加された、しげっち氏などによるgimp-painterというパッチがありました。(2.8版も開発中のようです。)
これを利用するには、Linux環境ではGIMPのソースを入手して、ユーザがコンパイルをする必要がありました。
このスクリプトはその時代に原型を作ったものです。

将来的には、GIMPのソースを把握して、何か貢献できれば良いなと思っているのですが、このスクリプトによって、GIMP開発の敷居を少しでも下げられれば良いなと思います。

GIMP2.8で星空を描く(番外編) - 露光撮影のような「星の軌跡」イラストを描く -

夜空を露光撮影したような星空イラストを、GIMPで描く方法です。

本記事は「GIMPで分布が自然かつ、偏りのある星空を描く」記事および「GIMP2.8で星空を描く(応用編) -クオリティを上げる効果の追加」の番外編です。

本記事の手法で作った、露光撮影のような星の軌跡


PhotoShopには標準で「星の軌跡」アクションが存在するそうですが、GIMPではフィルタを使って実現します。

平行線を引いて「極座標」フィルタで変形、という手段もあるのですが、「渦巻きと吸い込み」フィルタを使う方法が、平行線を引く手順がなくてオススメです。

双方にメリット・デメリットがあるので両方とも紹介しようと思います。
用途によって使い分けてください。
・ 「極座標」は星の軌跡が切れる円弧ができてしまう弱点がある。
 (角度の違う軌跡を重ねれば解決できますが面倒。)
・「渦巻きと吸い込み」 は、軌跡の太さが一定にならない。
 星の大きさは時間変化しないので軌跡の太さは一定のはず。
 とはいえ、まじまじと写真と見比べない限り、まず気になりません。


まず、大きめの正方形画像を作ります。
これは、どちらの場合も同じです。すくなくとも、欲しい画像サイズの倍の大きさが欲しいところです。


「極座標」フィルタで作る星空の軌跡

LBACKCOIN様の手法をGIMPで再現する形になります
横線を引きます。
この時、左右の領域までできるだけ埋めます。星の軌跡が切れる円弧の範囲が大きくなってしまうからです。
「極座標」フィルタによる 星の軌跡



「渦巻きと吸い込み」フィルタで作る星の軌跡


星になる点を打ちます。
(800x800pxに対して15~20pxの点を打たないとフィルタ適応時に細くなりすぎて消えます。)
星らしく分布した点を簡単に打つ方法を別記事の「星の書き方」で紹介しています。
星の軌跡は星空と違い、適当に打っておけばフィルタによる変形で十分にそれっぽくなるので、「たくさんの点を簡単に打つ方法」として参考にしてください。



渦巻きと吸い込み
 渦の方向 800~1500~3000
 吸い込む量 -1
半径 2

このフィルタは、中央へ向かって渦を巻いて吸い込む変形をするのですが、吸い込む量を-1にすることで、吸い込む変形をキャンセルし、中央を囲んで渦を巻く変形効果だけを与えるわけです。

「渦巻きと吸い込み」フィルタによる 星の軌跡

コツであり難しいのが、中央付近に星を置きたい場合です。
中央に星を置かないと、中央部に星のない星空になります。
(これでも多くの場合、あまり不自然になりませんが。)
星の密度を増やした星空などでは、中央付近に星を置きたくなりますが、何も考えず中央に星を置いたり、中央の星の密度を増やすと、中央の星が潰れて広がり、露光撮影らしさが無くなってしまいます。
そこで、中央付近には、周囲よりも小さな星を多めに打ちます。
このとき、あくまで「中央付近」であり、中央には星を打たないように注意してください。
中央付近は、フィルタ結果の変化が激しい部分です。
無理にフィルタで済ませようとしないほうが無難です。
中央が空いて不自然な場合、軌跡をもうひとつ作り縮小して貼り付けるか、手描きするほうが良いと思います。
「渦巻きと吸い込み」で中央付近に軌跡を描くのは難しい



どちらかのフィルタで軌跡を描いたら、共通の手順に戻ります。
軌跡の中心が画像の中央と一致しているままでは不自然なので、中心をずらして画像を切り出します。

軌跡の画像から欲しい部分を切り出す


星雲は描き入れません。
星雲は星と共に移動して、長期で露光した写真を撮ると消えてしまうからです。

反して、背景の夜空のベース色には、グラデーションを強めにかけましょう。
また、星雲や小さな星は、夜空に溶けて写るので、夜空のベース色そのものも、心なし明るめになります。


本当は前面に木や地面、山を描いておくのがベターなようです。


上でも紹介したLBACKCOIN様が指摘していますが、軌跡を描いた星空イラストは、キャラクタイラストの背景に使うのが、ちょっと難しいです。
とはいえ、キャラクタイラストは現実的な構図ばかりではありません。イメージイラスト的な絵の背景では効果的に使えるのではないかと思います。

GIMP2.8 動的特性をかけたペンが意図せず透明になる理由と解決法

気づいてみれば単純な見落としでしたが、念の為。

別記事(GIMPで星空を描く)を書くために作業をしていたところ、動的特性をかけたペンが意図せず透明になってしまう現象に出会いました。
どういうことかと言いますと、星を描くつもりで、動的特性エディターから「色」変化を有効にした動的特性を作ったところ、描画色から背景色にならず、透明に変化してしまいます。
動的特性エディターの「透明度」を解除しても結果に反映されなかったため、最初はGIMPの不具合かとすら思いましたが、原因は単純な設定の見落としでした。

「動的特性のオプション」による描画色の透明化
(図は「ランダム」特性が有効であるため変化が線形でない)











原因は「動的特性のオプション」のグラデーションが「描画色から透明」に設定されていたためでした。 (動的特性エディターの「透明」設定は関係なかったわけです。)
「描画色から背景色」 に変更して解決。


とはいえ、この設定は「ブレンド」ツールと共有されるようになっています。
私は動的特性のオプションでは「描画色から背景色」を使うのですが、「ブレンド」ツールによるグラデーションをかける際は「描画色から透明」を使います。
作業のたびに設定を切り替えるのは面倒です。
そこで、ツールオプションから「ツール共有の描画オプション」にて、グラデーション設定の共有を切ることにしました。これで、動的特性と「ブレンド」ツールのグラデーションを別々に設定できるようになります。

グラデーション設定の共有を切る














GIMP2.8で星空を描く(基礎編) -偏りのある星空を作り出す-

むかし見た映画版の「スカイクロラ」では、CGで描かれた雲がとても綺麗でした。

本記事の手順で描いた星空のサンプル



絵の背景に星空が欲しい場合、背景として綺麗な星空を簡単に描きたいです。ですが人間が描くものには人の意図が入りこんでしまうため、不自然な偏りが生まれます。そのため手書きで自然物を描くことは難しく、多くの手間がかかってしまいます。
星を含め、自然物はフラクタルに分布していますから、確率的に星を散りばめて、自動生成したほうが綺麗でリアリティのある星空が描けるはずです。
ですがその一方で、何か意図した構図があり、天の川が使いたいときや、空の上方に星が偏った構図がほしい場合、星空の自動生成によって狙った構図を得ることは、難しいか不可能です。
あるていど描き手の意図を反映しつつ、自然なバラけ方をしているのが理想です。


本記事はすばらしい星空の講座を見まして、触発されたものです。



作業手順

背景は黒くします。とはいえ、真っ黒ではさすがに違和感が出てしまうので、わずかに色を付けます。
RGBそれぞれ15あたりに設定した弱めの黒色から、赤か青を35~40程度に強めた色が、夜空のベースとして適切です。

 動的特性の設定

星を描くために動的特性とツールオプションを設定します。
動的特性の作成

動的特性の設定は以下のように。
「描画の動的特性」から新しい動的特性を作成します。
項目「不規則」の、「不透明度・サイズ・角度・色・間隔」にチェックを入れます。











ツールオプションの設定

鉛筆ツールの「散布」を最大に設定

ツールは、鉛筆・ペンのどちらでも構いません。以下の設定を行います。
ブラシを「z pepper」(ピーマン)に。
サイズは40~120px (画像サイズ6400x4000pxに対して)
大:12px、小:3px(画像サイズ640x480に対して)
先ほど作った動的特性を適用。
散布を最大の50へ。
描画色は白っぽい黄色。背景色は白にします。

念の為、「動的特性のオプション」を開いて、「描画色から背景色」になっていることを確認しましょう。グラデーションを多用する方は特に注意。




星を描く

設定すれば、あとは、ペンで星の欲しいあたりをなぞるだけです。
手打ちによる不自然な偏りはありません。(ないわけではありませんが、手数の割に目立ちません)

設定したペンで、星を描きます。
大きな星と小さな星用に、レイヤを2つ作りましょう。
なお、レイヤの順番は、大きな星を手前(上)に。

星っぽく描くコツとしてはまず、直線を引かないことです。短い線をいろいろな方向へ引くつもりで画面を埋めます。
画面を埋めようと意識しすぎないこと。均一になって、星空らしさが失われます。(星が泡のように分布していると、星空っぽさが増します)
そもそも、星の数は控えめにすべきです。大きな星は特に。
動的特性によって、星が過剰に集まった「ダマ」のようなものができることがあります。出来てしまったら、「Ctrl+z」でひとつ戻ってダマは消しましょう。これも、目立たない程度ならば良いアクセントになるかと思います。


最初の作例。明らかに出来が悪い


 グラデーションをかけて輝かせる

星に対してグラデーションをかけて輝かせます。
大きな星と小さな星で、作業が少し異なります。
大きな星を描いた状態
まずは大きな星を輝かせる方法から。
レイヤーを複製して、「フィルター(R)」の「ぼかし(B)」にて、「ガウシアンぼかし」を適応します。
ぼかしのサイズは、ブラシサイズ12pxに対して14px程度。
GIMPの「ぼかし」は機能の性質上、PhotoShopのレイヤー効果と比べて、同じぼかしでも薄くなります。そのため、ぼかしたレイヤーをさらに複製して、ぼかし効果を重ねがけします。

小さな星のレイヤーも、同様に複製して「ガウシアンぼかし」をかけます。ぼかしのサイズは、ブラシサイズと同じか小さめ。ブラシが3pxならば3~2xpかけます。
小さな星には、ぼかしレイヤーの重ねがけはしません。
このままでは小さな星がまぶしすぎるので、小さな星の2レイヤー共に、透明度を約65%に落とすと良いです。

作業した結果(左から順)

星雲を加えたもの(応用編へ)

今回は基礎編として、最低限の設定と作業で星空っぽく見える描き方を解説しました。
とはいえ、もっとクオリティの高い星空が必要な場合もありますし、演出を追加して雰囲気を変えることで応用の可能性が広がります。

追記:
応用編として「 GIMP2.8で星空を描く(応用編) -クオリティを上げる効果の追加」を公開しました。

また、何故か応用編より先に番外編「GIMPで露光撮影のような「星の軌跡」イラストを描く」を公開しています。よろしければどうぞ。

GIMP2.8について英語で調べるための対応表(動的特性/ブラシツールオプション)

GIMPで別記事(GIMPで星空を描く)を書いていた時に欲しくなったので。
対応表といいつつ、画像を貼りつけただけですが。

GIMP2.8で追加された、動的特性などについて調べたい場合などにどうぞ。


ブラシ(ツールオプション)の英文

動的特性の英文




Ubuntu13.04でデュアルディスプレイとデュアルペンタブレット環境を作った雑記

ペンタブレット2枚刺しは男のロマン。

プログラマやデジ絵師ならば、デュアルディスプレイを使っている方が多いと思います。
特に絵師の場合、デュアルディスプレイでペンタブ+マウスで操作、片側のディスプレイをお絵描き作業用としてペンタブの操作エリアを割り当てる、といった構成になっているのではないかと。
しかし、マウスとタブレットペンを持ち替えるのは思いのほか面倒です。
そこで提唱しますのがずばり、デュアルディスプレイ環境における『デュアルペンタブレット構成』です。




PCデスク環境(2013年7月)

わたしも以前はペンタブ+マウスでした。ディスプレイは1枚でしたが、ペンタブ操作に慣れなかった当時は困ったらマウスに持ち替えていました。
持ち替えが面倒だったため、右手にペン、左手にマウスで操作をしていました。今ではすっかり左手マウスに慣れました。
現在はペンタブでの操作に慣れたため、マシンにマウスを繋いでいません。


プログラマを志してから、すでに6年強。技術はともかく、PC周辺環境は、最初期の理想にやっと追いつきました。感慨深いものがあります。
閑話休題。


環境
PCは、Ubuntu13.04 デスクトップ(PCのハードウェア仕様は別のブログ記事をご覧ください。)
ディスプレイは、両方とも三菱製フルHD(1920x1080)
 Diamondcrysta RDT272WX(IPSパネル)、 Diamondcrysta RDT271WLM(TNパネル)、
 これをDVIとD-sub15でそれぞれ接続しています。
ペンタブレットは、二台とも intuos4 です。(片方はwirelessですがUSB接続して運用)

結果的に、今回はUbuntuのシステム設定が優秀で、設定ファイルやコマンドを駆使して試行錯誤する必要はありませんでした。
ブログ記事にする甲斐はありませんが、 楽であることは良いことです。


デュアルディスプレイ

とりあえずディスプレイ情報を取得しようと、xrandrを引数なしで実行たところ、思いがけず2台目のディスプレイが急に映り始めてびっくりしました。
ディスプレイ配置の左右が逆だったので困りましたが。
(xrandrには、デュスプレイを無効化するoffオプションがあります。画面サイズなどを設定すればnoになるのかと思ったのですが、コマンドでonにすることができませんでした。最終的にシステム設定の「ウィンドウ」項目でディスプレイを有効にしました。あるいは再起動すれば良かったのでしょうか。)

システム設定の「ウィンドウ」項目
システム設定の「ウィンドウ」項目

2台のディスプレイが有効になった状態

ログイン時に画面表示が乱れる


デュアルペンタブレット

(注意:ペンタブレットを2枚にしても、魂が中学二年生に還元されるだけで、絵がうまくなったりの効果は期待できません。)

Wacomタブレットを設定するためにxsetwacomコマンドを使用するつもりだったのですが、Ubuntuのシステム設定ツールが思ったより優秀だったので、(というか普通に使うことができたので)そちらに使うことに。
なお、xsetwacomコマンドについては、Kawaji's Weblog様にて詳しく解説されています。(検索でも一番最初に出て来るページです。)古くなってきたせいか、今はそのまま使えない部分もありますが。


Ubuntuのシステム設定にある「ワコムタブレット」を開くと、下のような設定画面が出てきます。
「ワコムタブレット」設定画面
しっかり2枚目のタブレット Intuos4 Wireless (WL)が認識されています。
「画面にマッピング」を選べば設定画面が出てきます。
「画面にマッピング」項目
チェックを入れて、そのペンタブレットを割り当てる画面を選択します。
チェックボックスを入れたとき、操作できなくなる場合がありうるので注意しましょう。(割り当てられたディスプレイに設定画面がない場合に。)



GIMPでデュアルペンタブレットを利用するための設定

GIMPは、システムとは別に設定する必要があります。
2台目のペンタブレットは、「入力デバイスの設定」で認識させないとペンや範囲選択に使うことができません。
ペンタブレットを有効化するには、モードを「不可」から「ディスプレイ」に変えます。(好みで「ウィンドウ」でも良いです。)
GIMPのペンタブレット設定

今後について

夢のデュアルペンタブレット環境を実現することができました。
これから、使い勝手を検証していきたいと思います。
この環境に慣れるのがいつになるかはわかりませんが、ゆっくりやっていきます。

しろもじ様製のスクリプトでフォントを作るテスト

 Bloggerをメモ帳代わりにするテストを兼ねる。

はじめに

 正確には、mashabow様のサイトにて公開されている(感謝)手書きフォント作成スクリプトを使って、自作フォントを作るテストです。
 なぜテストを行うかというと、手書きフォント作成の様子がニコニコ動画に投稿されたのが2008年であり、私の使っているUbuntu13.04(2013年4月)環境でスクリプトが動くのか、確認する必要があったためです。せっかく先人がスクリプトを書いてくれても、システムの仕様変更などが原因で使えないこともあります。
 結論としては、スクリプトは問題なく動作しました。

フォント作成における基礎知識は、FontForgeの解説ページを読めば把握できます。日本語訳されているので、ひと通り目を通しておくとよいです。最低限、初歩的な概念あたりを記憶に留めておくと、用語の混乱が少なくなって作業もスムーズになると思います。

 最終目標はMagi-Cursiveフォントの作成です。

スクリプトの動作を確認

 スクリプト操作が大半を占めるので、ほとんどの作業はターミナル上で行います。
 まずはじめに、ダウンロードさせていただいたスクリプトが、Ubuntu13.04環境で動くか試してみようと思った……のですが。
 我が家にはプリンターがありません。当然、スキャナーも持っていません。
 これでは手書きフォントが作れません!
 そういうわけで、グリフをGIMPで描いてスキャン済みデータをでっちあげることにしました。
 作業開始します。

 各手順で必要なアプリケーションを導入していますが、作業前にまとめてインストールしたければ
 sudo apt-get install fontforge inkscape potrace
 としても良いと思います。


 さらに、独自の変更や作業途中に生成されるファイルがわかりやすいように、gitリポジトリで解凍直後のスクリプト群を保存。
 codeディレクトリに、文字割り当て表とUnicodeコードポイント変換リストが入っていることを確認。
 (magi-cursiveには半角カナは必要ないので、いずれこの2つを改造することになります。)

 pdfファイルの自動生成が上手く行くかテスト

 作業ディレクトリ位置は、ディレクトリcode/とsheet/が見える位置なので、解凍して得られるディレクトリのtfssss/tegakiの位置なので移動。
 第一引数に文字割り当て表へのパスを指定。
 例: perl codesheet.pl code/half.txt
 sheetディレクトリ内にhalf.pdfが作成されていれば成功です。

 文字を書く

 pdfファイルをGIMPで開いて、文字を書き込んでいきます。
 読み込み時にピクセル数を変更。幅を合わせると 高さがはみ出ます。後で問題があれば調整するということで。
 ペンタブがあるので楽ですが、 解像度の低さと文字の下手さで不安になります。
 適当に切り上げて、
 元サイト様では、スキャンの際に枠線が消えることを狙っています。手書き文字と位置ズレ修正用のマーカーだけが残っていればよいはずなので、枠線などpdf ファイル経由の画像を消した画像ファイルを作成。
 スキャン済み画像の仕様は、約1654x2291pixelのpgm画像で良いのでしょう。
 書いたフォントをGIMPからエクスポート。ファイル名をhalf.pgmとして拡張子でpgmを指定し、RAWを選択して保存。


分割

 出力先ディレクトリout/temp/とout/pgm/は、あらかじめ作っておかなければならないようです。
 perl glyphsplit.pl sheet/half.pgm code/_half.txt 


ベクタ化

 出力先ディレクトリout/svg/を作成。
 potraceをインストール
 sudo apt-get install potrace
 以下のように実行
 perl pgm2svg.pl 1 0.9
 引数の値は元サイト様を参考(そのまま)に。引数はオプションだと思っていたのですが、指定してやらないと、スクリプトが出力を吐き出しません。

 フォント化

 FontForgeをインストールします。Perlは大抵のLinuxディストリビューションなら標準搭載ですが、FontForgeはインストールしなければなりません。
 sudo apt-get install fontforge
 としてインストール。
  fontforge generate.pe
 で終了。



 Magi-Cursiveを作ろうと思って久しぶりにPuella Magi WikiのRunesページに行ったら、手書きフォントがリンクされている!(続く?)

Magi-Cursive ファンフォントのデザイン案(文字は"Puella")

GIMP2.8でイラストにペン入れを行う


GIMP2.8には手ブレ補正機能が標準搭載されました。これで、ペン入れに使える綺麗な線を手軽に引けるようになりました。
しかし、GIMP2.8の使い方情報は、他のイラストツールに比べて少ないです。GIMPをペン入れに使うには自分で設定を詰めなければならず、初心者にとって使いづらくなってしまっています。
ここでは、私なりのペン入れ設定を紹介することにしました。

ペンタブレットを使ったペン入れを想定しています。
環境はUbuntu13.04で、使っているペンタブはWacomのIntuos4です。ここでの設定は、一部を除けばWindowsマシンでも通用するはずです。

本来、初心者ならばWindows環境でSAIを使うのが良い選択肢だと思います。先駆者がいて良い作例が多く公開されており、ネットや書籍にペンデータや使い方の情報が集積されているからです。
わたしがGIMPを使っているのは、個人的にUbuntu上で使いやすいと感じるペイントツールがGIMPとMyPaintであったためです。
(WineでSAIを動かすという方法は、上手くいかないという報告が過去にある)



最低限、ペンだけを設定すればペン入れ作業はできます。ここでは、ペン入れを助ける便利スクリプトなども紹介します。
・「転写」スクリプトをGIMPに追加
・マルチビューのTIPS(方法2つ)
・自動バックアップを設定する

なお、G-Pen相当のペン作成と、転写機能スクリプトは、「GIMPでペン入れ」(サイトMagic Object)様に書かれている方法です。
また、 自動バックアップのスクリプトは「Auto SavePlugin」(サイトGIMP USERS様)に記載されているものです。
スクリプト本体は、上記サイト様から入手してください。


ペンの設定

おおまかなまとめとしては、
まず、アンチエイリアスが効いた線を引くために
・ツールは「ブラシ」(ブラシで描画)
・ブラシ(ペン先)は外周がボケているものを選ぶ("2. Hardness 075"など)
・手ブレ補正をONにする
・動的特性はサイズと筆圧が対応している特性を作って使う
 (GIMP PainterのG-Pen相当)


ツールは「ブラシ」(ブラシで描画)

GIMPでフリーな線を引けるツールは、「鉛筆・ブラシ・インク」の3種類です。
ペン入れにはブラシを使います。
[鉛筆で描画]だとアンチエイリアスが効きません。[インクで描画]だと入りが太くなってしまい、綺麗な線になりません。



ブラシ(ペン先)は外周がボケているものを使う

ブラシ設定デフォルトのブラシの中では、2. Hardness 075が良いかと思います。
私が使っている自作ブラシは半径を100 にしてあります。




手ブレ補正をONにする

 手ブレ補正のチェックボックスをONにするだけです。
品質50、ウェイト80 くらいまで上げてみても良いと思います。
 わたしの場合、
サイズは8~20。手ブレ補正にチェックを入れ、品質20~60、ウェイト40~80あたりで作業しています。


















動的特性はサイズと筆圧が対応している特性を作って使う

GIMP PainterのG-Penに相当するペンを作るにあたって、
動的特性を追加するには、「描画の動的特性」タブを開く必要があります。
「タブの追加」を行うか、 ブラシ設定の動的特性アイコンをクリックして探せば、「描画の動的特性」タブを開くことができます。
「新しい動的特性を作成」すると「動的特性エディター」タブが開くので、筆圧によるサイズ変化のみにチェックを入れます。

わたしの場合、「筆圧によって太さが変わる」設定で、2種類定義しています。 2つ目の動的特性は、「サイズ」設定で筆圧によるサイズ変化がすぐ上限に達するようにしてあります。こうすれば、太さが安定しない不恰好な腺になりにくいです。

引いてみた線の見た目が悪ければ変えます。あとは、慣れとその日の筆圧次第。





 その他

・画像サイズの大きいほうが、アンチエイリアスが効いて綺麗になる。
・線が太すぎると下手に見えるが、腺が細すぎるとアンチエイリアスが効かなくなり、見た目が汚くなる。
私は画像サイズ4000x6400で作業しています。
適切な線の太さは、画像のサイズによって違います。(イラストのタイプにもよりますが)
腺の太さは、ツールの「サイズ」、選択した「ブラシ」のサイズ、動的特性によるサイズ変化、によって決まります。状況によって「サイズ」を変更するとよいです。

Ubuntu(13.04)環境のGIMP2.8では、GIMPを設定して筆圧を有効化する必要があります。
筆圧検出を有効化しないと、ブラシ設定をしても入りや抜きの綺麗な線が引けません。
編集→入力デバイスの設定 で、ペンタブレットが認識されていればcursorやeraserなどがあると思うので、すべてモードを「不可」から「スクリーン」に変更してください。
入りや抜きの線幅が、筆圧で変化していることが確認できれば、設定に成功しています。


現状、GIMP2.8では画像全体の回転表示と左右反転表示がサポートされていません。
(画像を加工してしまう回転・反転処理は存在するのですが)
なお、Mypaint1.1では左右反転がサポートされています。また、GIMP 2.10では回転が可能になりそうな雰囲気です。

鉛筆と消しゴムのペン先設定の共有を解除する

ペン先の設定が共有されるのがデフォルト設定。(「ツールオプション」で表示される)
消しゴムはペンより太くしたほうが、線を消しやすくて便利です。
上部バーから 編集→設定 を選択し、ツールオプションにてツール共有の描画オプションからブラシのチェックボックスをOFFにします。

「転写」スクリプトをGIMPに追加

転写機能スクリプトとその導入方法は、「GIMPでペン入れ」(サイトMagic Object)様で紹介されています。
 

マルチビューっぽいもの

「ナビゲーション」タブを追加する。
描画中のブラシに追従するわけではありませんし、ウィンドウに表示されている範囲の外は暗くなるため、ぱっと見る以上の役には立ちません。ですが、全体のバランスを確認するには十分ではないかと思います。

自動保存(バックアップ)の設定

不意なPCの停止やGIMPのクラッシュに備えて、定時の自動バックアップを用意するスクリプトを導入しておきました。
(幸い、GIMPのクラッシュはまだ体験していないですが)
まず、スクリプトはGIMP USERSのAuto SavePluginページから。
このページに記載されたスクリプトを、ホームディレクトリの./gimp-2.8/plug-ins/ディレクトリ内に格納して再起動。
(スクリプトは、ページ下部の"#!/usr/bin/env python" から "main()" まで。)
メニューファイル(F)の一番下にActivate Autosaveが出てくるので、これをクリックすると、バックアップ保存機能が起動します。GIMPを起動したとき、忘れずに有効化します。

バックアップファイルは、ルート直下のテンポラリフォルダである/tmp/フォルダ内に作成されます。
ここから、必要に応じて取り出します。

バックアップ自体は行われているようですが、まだわからないことが多いです。導入後、GIMP起動時に自動起動しているっぽい挙動や、バックアップの実行タイミングが把握できていません。
GIMP2.8にはPythonスクリプト対応が標準搭載されているため、このスクリプトの追加が楽です。
動作はUbuntu13.04で確認したため、Windows対応は不明です。

ComfyUIでXYZ-PlotするワークフローのサンプルとTips(ComfyUI-XYZ-Stitch)

 ComfyUIでAutomatic1111的なXY-Plotをしたいのだが、ComfyUIデフォルト機能には用意されていない。     カスタムノードが必要となるのだが、Webには古いとか何故か動かないとかなXY-Plotパッケージの使ってみた系記事か、githubに上げられた...