飛沫スクリプト

p.jpg

画面全体に、色と筆圧がランダムで描画されます。
色は選択色を基本とし、数値幅を自分で指定できます。
色幅255が最大です。
回数指定は、指定した数値の数がそのまま反映されるわけではありません。
プログラムが動いていても、ブラシ設定によって描画されにくいものもあるからです。

p2.jpg

筆圧もランダムで設定されるので、筆圧背景色補充を使えば画像のような色の出し方も可能です。
(これの色幅は35)

リスト登録したい場合は
http://nekop.seesaa.net/article/159342506.html
に、スクリプトの登録方法を載せています。
※ 今はブラシにジッターHSVがあるので、不要なスクリプトだと思います

長いので続きへ


//---------- 設定 ----------//

// 近似色範囲 0〜255まで 描画色
double col = 35 ;

// 近似色範囲 0〜255まで 背景色
double col2 = 35 ;

// 回数指定
int y = 120 ;


//筆圧背景補充について
//スプレーにチェックがあると全く反映されません。
//混色の項目を「荒く」にしてると、補充の数値によって背景色の補充量が変化します。
//「細かく」だと、補充0でも筆圧設定通りになるようです。
//「荒く2」「荒く3」は把握が厳しかったので、このスクリプトでは
//狙って使わないのが無難かもしれません。

//----- 設定ここまで ------//

np_canvas c = get_active_canvas();
np_image img = get_active_image();
np_layer l = get_active_layer(img);
int w = get_width(img); //キャンバスの幅を取得
int h = get_height(img); //キャンバスの高さを取得

np_rgb rgb = get_select_color(); //描画色を取得
np_rgb rgb2 = get_back_color(); //背景色を取得

double cr = rgb.r ;
double cg = rgb.g ;
double cb = rgb.b ;

double bcr = rgb2.r ;
double bcg = rgb2.g ;
double bcb = rgb2.b ;

double cr1 = cr ;
double cr2 = col * 2 + 1 ;
double cg1 = cg ;
double cg2 = col * 2 + 1 ;
double cb1 = cb ;
double cb2 = col * 2 + 1 ;

double bcr1 = bcr ;
double bcr2 = col2 * 2 + 1 ;
double bcg1 = bcg ;
double bcg2 = col2 * 2 + 1 ;
double bcb1 = bcb ;
double bcb2 = col2 * 2 + 1 ;


// 繰り返し
begin_draw_line_(c);
for (int i = 0; i < y ; ++i) {
if (is_esc_pressed() ) {
end_draw_line_(c);
return;
}
if ( cr < col ){
cr1 = col ;
cr2 = cr + (col+1) ;
}else {

if ( (255-col) < cr ){
cr2 = (255+col+1) - cr ;
}
}

if ( bcr < col2 ){
bcr1 = col2 ;
bcr2 = bcr + (col2+1) ;
}else {

if ( (255-col2) < bcr ){
bcr2 = (255+col2+1) - bcr ;
}
}
///////////////////////////

if ( cg < col ){
cg1 = col ;
cg2 = cg + (col+1) ;
}else {

if ( (255-col) < cg ){
cg2 = (255+col+1) - cg ;
}
}

if ( bcg < col2 ){
bcg1 = col2 ;
bcg2 = bcg + (col2+1) ;
}else {

if ( (255-col2) < bcg ){
bcg2 = (255+col2+1) - bcg ;
}
}

/////////////////////////

if ( cb < col ){
cb1 = col ;
cb2 = cb + (col+1) ;
}else {

if ( (255-col) < cb ){
cb2 = (255+col+1) - cb ;
}
}

if ( bcb < col2 ){
bcb1 = col2 ;
bcb2 = bcb + (col2+1) ;
}else {

if ( (255-col2) < bcb ){
bcb2 = (255+col2+1) - bcb ;
}
}
//////////////////////////////////

rgb2.r = rand() % bcr2 + (bcr1 -col2);
rgb2.g = rand() % bcg2 + (bcg1 -col2);
rgb2.b = rand() % bcb2 + (bcb1 -col2);
set_back_color(rgb2);

rgb.r = rand() % cr2 + (cr1 -col);
rgb.g = rand() % cg2 + (cg1 -col);
rgb.b = rand() % cb2 + (cb1 -col);
set_select_color(rgb);

// 描画位置ランダム
int i = rand() % (w + 1); // 横乱数
int v = rand() % (h + 1) ; // 縦乱数

np_point p1;
p1.x = i;
p1.y = v;
np_point p2;
p2.x = i + 2;
p2.y = v + 0;

double prs0 = rand() % 71 + 30 ;
if (prs0 > 100){ prs0 = 100 ;}

double prs1 = prs0 / 100 ;

draw_line_prs_(c,p1,prs1,p2,prs1);

}
end_draw_line_(c);

//色を戻す
rgb.r = cr;
rgb.g = cg;
rgb.b = cb;
rgb2.r = bcr;
rgb2.g = bcg;
rgb2.b = bcb;

set_back_color(rgb);
set_select_color(rgb2);
posted by むらせ at 2011年10月31日 21:35 | スクリプト | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。