FireAlpaca用ブラシスクリプト「梯子ブラシ」を作成しました
定規ブラシから派生して梯子ブラシ(Ladder_a02.bs)というものを作ってみた。
基本は、等間隔に等幅の矩形を描画するブラシで、任意本ごとに別の太さを混ぜたりもできる。
Downloadは記事下部のリンク先から行ってください。
パラメータ
太さ
- 各粒子の太さを決定するパラメータ。
太さブースト
- 太さに掛けて太さを決定するパラメータ。
粒子距離
- 各粒子の描画中心同士の距離を決定するパラメータ。
粒子距離ブースト
- 粒子距離に掛けて各粒子の描画中心を決定するパラメータ。
Bold
- 「間隔」で指定した粒子ごとに粒子の太さを変更を有効にするパラメータ。
Shift
- 「Bold」が有効のときに、粒子間の空白を均等にするためのパラメータ。
間隔
- 太さを変更する粒子を決定するためのパラメータ。
太さ2
- 「間隔」で指定される粒子の太さを決定するパラメータ。
太さ2ブースト
- 太さ2に掛けて「間隔」で指定される粒子の大きさを決定するためのパラメータ。
以上のようなパラメータを用いて以下のように様々な描画ができる。
スクリプト
function default_size()
return 40 , 1
endfunction param1()
return "太さ" , 1 , 100 , 6
end
function param2()
return "太さブースト" , 1 , 100 , 1
end
function param3()
return "粒子距離" , 1 , 100 , 20
end
function param4()
return "粒子距離ブースト" , 1 , 100 , 1
end
function param5()
return "Bold" , 0 , 1 , 0
end
function param6()
return "Shift" , 0 , 1 , 0
end
function param7()
return "間隔" , 1 , 20 , 1
end
function param8()
return "太さ2" , 0 , 100 , 6
end
function param9()
return "太さ2ブースト" , 1 , 10 , 1
endfunction main ( x , y , p )
local ww = bs_param1() * bs_param2()
local dis = bs_param3() * bs_param4()
local w = bs_width()
if w < 5 then
w = 5
end
if bs_param5() == 1 then
if j % bs_param7() == 0 then
ww = bs_param8() * bs_param9()
if bs_param6() == 1 then
dis = dis + 0.5 * ( ww - bs_param1() * bs_param2() )
end
elseif j % bs_param7() == 1 then
if bs_param6() == 1 then
dis = dis + 0.5 * ( bs_param8() * bs_param9() - bs_param1() * bs_param2() )
end
end
end
if not firstDraw then
local distance = bs_distance( lastDrawX - x , lastDrawY - y )
if distance < dis then
return 0
end
end
local dx , dy = bs_dir()
local nx , ny = bs_normal()
bs_polygon( x + dx * ww * 0.5 - nx * w , y + dy * ww * 0.5 - ny * w )
bs_polygon( x + dx * ww * 0.5 + nx * w , y + dy * ww * 0.5 + ny * w )
bs_polygon( x - dx * ww * 0.5 + nx * w , y - dy * ww * 0.5 + ny * w )
bs_polygon( x - dx * ww * 0.5 - nx * w , y - dy * ww * 0.5 - ny * w )
local r , g , b = bs_fore()
bs_fill( r ,g , b , 255 )
lastDrawX = x
lastDrawY = y
firstDraw = false
j = j + 1
end
j = 0
lastDrawX = 0
lastDrawY = 0
firstDraw = true
スクリプト解説
定規の時とほとんど同じなので割愛。
Download
Downloadは以下のリンク先から行ってください。