FireAlpaca用ブラシスクリプト「五芒星形散布ブラシ」を改良しました
前回作った五芒星形散布ブラシを、パラメータを変更できるように改良した(star_s150406c.bs)。
Downloadは記事下部のリンク先より行ってください。
※使用イメージ
変更できるパラメータ
散布幅
名前の通り、どれくらいの幅に対して散布を行うかを決めるパラメータ。実際の散布幅はブラシ幅にも依るが、値が大きいほど散布幅は広くなる。
0でペン軌道上を粒子の描画中心座標とする。
散布強さ
粒子(五芒星形のひとつひとつ)をどれくらいの頻度で描画するかを決定するパラメータ。値が大きいほど多く散布する。
粒子ランダム
粒子の大きさのばらつきを決定するパラメータ。0で全て同じ大きさの粒子を描画する。
粒子サイズ
粒子のサイズを決定するパラメータ。
粒子回転
粒子の回転を決定するパラメータ。デフォルトの状態(チェックの入った状態)でランダムに粒子を回転させて描画する。
スクリプト
function default_size()
return 20 , 0.50
end
function param1()
return "散布幅" , 0 , 100 , 50
end
function param2()
return "散布強さ" , 0 , 100 , 50
end
function param3()
return "粒子ランダム" , 0 , 100 , 50
end
function param4()
return "粒子サイズ" , 0 ,100 ,50
end
function param5()
return "粒子回転" , 0 , 1 , 1
end
function point(X , Y , K , D ,W)
local a = X + math.cos( ( D + K )*math.pi / 180 ) * W
local b = Y + math.sin( ( D + K )*math.pi / 180 ) * W
return a , b
end
function main( x, y, p )
local sw = bs_param1() * 3
local q = 50 / bs_param2()
local r , si = math.random() * sw , math.random(-90 , 90)
local x0 , y0 = x + r *math.cos(si) , y + r * math.sin(si)
local k = 0
if bs_param5() == 1 then
k = math.random(0 , 72)
end
local k2_min = 100 - bs_param3()
local k2 = math.random(k2_min , 100) * bs_param4() *0.01
local d = {54 , 126 ,198 , 270 , 342}
local px = {0,0,0,0,0}
local py = {0,0,0,0,0}
local w = bs_width()
if w < 5 then
w = 5
end
if not firstDraw then
local distance = bs_distance( lastDrawX - x, lastDrawY - y )
if distance < q*w then
return 0
end
end
w = w * k2 * 0.01
for i , value in ipairs(d) do
px[i] , py[i] = point(x0 , y0 , k , d[i] , w)
end
--S1
bs_polygon(x0 , y0)
bs_polygon(px[1] , py[1])
bs_polygon(px[3] , py[3])
local r,g,b = bs_fore()
bs_fill( r,g,b, 255 )
--S2
bs_polygon(x0 , y0)
bs_polygon(px[1] , py[1])
bs_polygon(px[4] , py[4])
local r,g,b = bs_fore()
bs_fill( r,g,b, 255 )
--S3
bs_polygon(x0 , y0)
bs_polygon(px[2] , py[2])
bs_polygon(px[4] , py[4])
local r,g,b = bs_fore()
bs_fill( r,g,b, 255 )
--S4
bs_polygon(x0 , y0)
bs_polygon(px[2] , py[2])
bs_polygon(px[5] , py[5])
local r,g,b = bs_fore()
bs_fill( r,g,b, 255 )
--S5
bs_polygon(x0 , y0)
bs_polygon(px[3] , py[3])
bs_polygon(px[5] , py[5])
local r,g,b = bs_fore()
bs_fill( r,g,b, 255 )
lastDrawX = x
lastDrawY = y
firstDraw = falsereturn 1
end
lastDrawX = 0
lastDrawY = 0
firstDraw = true
変更点
- パラメータ設定変更の追加
- デフォルトサイズ(幅、最小サイズ)の指定
Download
ファイルのダウンロードは以下のリンク先から行ってください。
star_s150406c.bs - Google ドライブ