三原色レイヤー分割操作DLL
画面の色を操作するフィルタリングプラグインを作成しました。
ダウンロード
以下のURLからどうぞ。
http://www.eiji8pou.pics/download/rgbfilter20120629.zip
どういうものか
レイヤー型のプラグインで、画面を赤・青・緑の三つのレイヤーにわけ、それぞれを操作してから再構成するものです。
できる操作は、
- 選んだレイヤーをずらす。
- 選んだレイヤーの輝度を調節する。
- 選んだレイヤーをネガポジ反転する。
などです。
どこで使うのか。
使える場所が少ないのは確かです。
レイヤーをずらす機能
カメラを通して見ている光景で、電波状態の悪さを表現するために、ランダムにレイヤーをずらして画面が滲む風を演出してみる。
レイヤーの輝度を調節する。
「千と千尋の神隠し」DVDに対して抗議するために画面全体の赤を強くしてみるとか。
レイヤーをネガポジ反転する。
これだけ使えば普通にネガポジ反転フィルタとしても使えます。
使い方
NScripterのレイヤー型プラグインです。
まず、define節で定義します。
*define setlayer 10,30,"rgbfilter.dll" ; 最初の10はレイヤー番号です。後のlayermessage命令で、この番号を使います。 ; 次の30は更新の間隔です。単位はミリ秒です。あまり短くすると動作が重くなります。17にすると60fpsくらいになります。
次に、start節で、プラグインをスプライトに結びつけます。
lsph 100,"*10" ; 最初は非表示にしておくのをオススメします。 ; "*"の次の数字は、setlayerで設定したレイヤー番号です。
レイヤースプライトが非表示中は、フィルタリングをしません。vspを効果的に使ってください。
そして、layermessage命令で設定ができます。
layermessage 10,"rx,10" ; 赤レイヤーのx座標を右に10ドットずらす。 layermessage 10,"gy,-5" ; 緑レイヤーのy座標を上に5ドットずらす。 layermessage 10,"balpha,128" ; 青レイヤーの輝度を半分(デフォルトは255)にする。 ; ちなみに輝度は0〜255の範囲を超えて設定することができます。
また、命令はいくつでもつなげて構いません。
layermessage 10,"rx,10,ry,10" ; 赤レイヤーを右下に10ドットずらす。
ネガポジ反転は以下のようにします。
layermessage 10,"rnega,-1" ; 赤レイヤーをネガポジ反転させます。 layermessage 10,"gnega,1" ; 緑レイヤーをネガポジ反転させます。
全ての設定を初期状態に戻すには、以下のようにします。
layermessage 10,"reset"
また、状態をシリアライズできます。
layermessage 10,"save" getret $0 ; これに、状態を入れた文字列が入る。 layermessage 10,$0 ; これで状態を再現できる。
このシリアライズ機能で、セーブロードに対処してください。
サンプルスクリプト
動画の元になったスクリプトは以下のもの。先日の連続画面キャプチャーDLLを組み合わせて画面を出力した後、それをAVIMakerでまとめたんですが、何故かこんなことに。
00.txt
;mode800 *define setlayer 10,30,"rgbfilter.dll" setlayer 11,50,"playmovie.dll" deletemenu numalias com,100 game *start lsp 550,":c;image.jpg",0,0 print 1 lsp 500,"*10" lsph 499,"*11" vsp 499,1 *loop make_command $com layermessage 10,$com layermessage 10,"save" getret $0 caption $0 repaint layermessage 11,"shot" wait 10 goto *loop end
system.lua
-- system.lua do -- PIE local pie = 6 * math.asin( 0.5 ) -- 角度 local deg = 0 local deg2 = 0 local deg3 = 0 local rad = 0 -- ズレの大きさ local dis = 0; local dis2 = 0; local dissize = 20; -- 前回の呼出 local before = NSTimer() -- 今回の呼出 local now = 0 -- 前回からの経過時間 local span = 0 -- 座標 local x local y local int = math.floor local sin = math.sin local cos = math.cos NSExec("_luasub make_command") function NSCOM_make_command() now = NSTimer() span = now - before deg = deg + span / 10 while deg > 360 do deg = deg - 360 end deg2 = deg + 120 deg3 = deg + 240 dis = dis + span / 5 while dis > 360 do dis = dis - 360 end dis2 = pie * dis / 180 local ret = NSPopStrRef() local str = "" str = str .. "rx," .. int(cos(deg *pie/180)*sin(dis2)*dissize) str = str .. ",ry," .. int(sin(deg *pie/180)*sin(dis2)*dissize) str = str .. ",gx," .. int(cos(deg2*pie/180)*sin(dis2)*dissize) str = str .. ",gy," .. int(sin(deg2*pie/180)*sin(dis2)*dissize) str = str .. ",bx," .. int(cos(deg3*pie/180)*sin(dis2)*dissize) str = str .. ",by," .. int(sin(deg3*pie/180)*sin(dis2)*dissize) NSSetStrValue(ret, str) before = now end end
※なお、image.jpgは各自で調達してください。
2012-06-28 (sub)
- 02:05 わたしの今日の運勢です 恋愛運 ★★☆☆☆ 金運 ★★★★☆ 健康運 ★★☆☆☆ 仕事運 ★★★☆☆ 嘘も方便!場の空気を読み思いやりのある嘘をつこう。すぐバレる嘘はダメね。 ラッキーアイテム 『熱帯魚』→http://t.co/vNWD4aDy
Powered by twtr2src
三原色レイヤー分割操作DLL
画面の色を操作するフィルタリングプラグインを作成しました。
ダウンロード
以下のURLからどうぞ。
http://www.eiji8pou.pics/download/rgbfilter20120629.zip
どういうものか
レイヤー型のプラグインで、画面を赤・青・緑の三つのレイヤーにわけ、それぞれを操作してから再構成するものです。
できる操作は、
- 選んだレイヤーをずらす。
- 選んだレイヤーの輝度を調節する。
- 選んだレイヤーをネガポジ反転する。
などです。
どこで使うのか。
使える場所が少ないのは確かです。
レイヤーをずらす機能
カメラを通して見ている光景で、電波状態の悪さを表現するために、ランダムにレイヤーをずらして画面が滲む風を演出してみる。
レイヤーの輝度を調節する。
「千と千尋の神隠し」DVDに対して抗議するために画面全体の赤を強くしてみるとか。
レイヤーをネガポジ反転する。
これだけ使えば普通にネガポジ反転フィルタとしても使えます。
使い方
NScripterのレイヤー型プラグインです。
まず、define節で定義します。
*define setlayer 10,30,"rgbfilter.dll" ; 最初の10はレイヤー番号です。後のlayermessage命令で、この番号を使います。 ; 次の30は更新の間隔です。単位はミリ秒です。あまり短くすると動作が重くなります。17にすると60fpsくらいになります。
次に、start節で、プラグインをスプライトに結びつけます。
lsph 100,"*10" ; 最初は非表示にしておくのをオススメします。 ; "*"の次の数字は、setlayerで設定したレイヤー番号です。
レイヤースプライトが非表示中は、フィルタリングをしません。vspを効果的に使ってください。
そして、layermessage命令で設定ができます。
layermessage 10,"rx,10" ; 赤レイヤーのx座標を右に10ドットずらす。 layermessage 10,"gy,-5" ; 緑レイヤーのy座標を上に5ドットずらす。 layermessage 10,"balpha,128" ; 青レイヤーの輝度を半分(デフォルトは255)にする。 ; ちなみに輝度は0〜255の範囲を超えて設定することができます。
また、命令はいくつでもつなげて構いません。
layermessage 10,"rx,10,ry,10" ; 赤レイヤーを右下に10ドットずらす。
ネガポジ反転は以下のようにします。
layermessage 10,"rnega,-1" ; 赤レイヤーをネガポジ反転させます。 layermessage 10,"gnega,1" ; 緑レイヤーをネガポジ反転させます。
全ての設定を初期状態に戻すには、以下のようにします。
layermessage 10,"reset"
また、状態をシリアライズできます。
layermessage 10,"save" getret $0 ; これに、状態を入れた文字列が入る。 layermessage 10,$0 ; これで状態を再現できる。
このシリアライズ機能で、セーブロードに対処してください。
サンプルスクリプト
動画の元になったスクリプトは以下のもの。先日の連続画面キャプチャーDLLを組み合わせて画面を出力した後、それをAVIMakerでまとめたんですが、何故かこんなことに。
00.txt
;mode800 *define setlayer 10,30,"rgbfilter.dll" setlayer 11,50,"playmovie.dll" deletemenu numalias com,100 game *start lsp 550,":c;image.jpg",0,0 print 1 lsp 500,"*10" lsph 499,"*11" vsp 499,1 *loop make_command $com layermessage 10,$com layermessage 10,"save" getret $0 caption $0 repaint layermessage 11,"shot" wait 10 goto *loop end
system.lua
-- system.lua do -- PIE local pie = 6 * math.asin( 0.5 ) -- 角度 local deg = 0 local deg2 = 0 local deg3 = 0 local rad = 0 -- ズレの大きさ local dis = 0; local dis2 = 0; local dissize = 20; -- 前回の呼出 local before = NSTimer() -- 今回の呼出 local now = 0 -- 前回からの経過時間 local span = 0 -- 座標 local x local y local int = math.floor local sin = math.sin local cos = math.cos NSExec("_luasub make_command") function NSCOM_make_command() now = NSTimer() span = now - before deg = deg + span / 10 while deg > 360 do deg = deg - 360 end deg2 = deg + 120 deg3 = deg + 240 dis = dis + span / 5 while dis > 360 do dis = dis - 360 end dis2 = pie * dis / 180 local ret = NSPopStrRef() local str = "" str = str .. "rx," .. int(cos(deg *pie/180)*sin(dis2)*dissize) str = str .. ",ry," .. int(sin(deg *pie/180)*sin(dis2)*dissize) str = str .. ",gx," .. int(cos(deg2*pie/180)*sin(dis2)*dissize) str = str .. ",gy," .. int(sin(deg2*pie/180)*sin(dis2)*dissize) str = str .. ",bx," .. int(cos(deg3*pie/180)*sin(dis2)*dissize) str = str .. ",by," .. int(sin(deg3*pie/180)*sin(dis2)*dissize) NSSetStrValue(ret, str) before = now end end
※なお、image.jpgは各自で調達してください。
2012-06-28 (sub)
- 02:05 わたしの今日の運勢です 恋愛運 ★★☆☆☆ 金運 ★★★★☆ 健康運 ★★☆☆☆ 仕事運 ★★★☆☆ 嘘も方便!場の空気を読み思いやりのある嘘をつこう。すぐバレる嘘はダメね。 ラッキーアイテム 『熱帯魚』→http://t.co/vNWD4aDy
Powered by twtr2src
三原色レイヤー分割操作DLL
画面の色を操作するフィルタリングプラグインを作成しました。
ダウンロード
以下のURLからどうぞ。
http://www.eiji8pou.net/download/rgbfilter20120629.zip
どういうものか
レイヤー型のプラグインで、画面を赤・青・緑の三つのレイヤーにわけ、それぞれを操作してから再構成するものです。
できる操作は、
- 選んだレイヤーをずらす。
- 選んだレイヤーの輝度を調節する。
- 選んだレイヤーをネガポジ反転する。
などです。
どこで使うのか。
使える場所が少ないのは確かです。
レイヤーをずらす機能
カメラを通して見ている光景で、電波状態の悪さを表現するために、ランダムにレイヤーをずらして画面が滲む風を演出してみる。
レイヤーの輝度を調節する。
「千と千尋の神隠し」DVDに対して抗議するために画面全体の赤を強くしてみるとか。
レイヤーをネガポジ反転する。
これだけ使えば普通にネガポジ反転フィルタとしても使えます。
使い方
NScripterのレイヤー型プラグインです。
まず、define節で定義します。
*define setlayer 10,30,"rgbfilter.dll" ; 最初の10はレイヤー番号です。後のlayermessage命令で、この番号を使います。 ; 次の30は更新の間隔です。単位はミリ秒です。あまり短くすると動作が重くなります。17にすると60fpsくらいになります。
次に、start節で、プラグインをスプライトに結びつけます。
lsph 100,"*10" ; 最初は非表示にしておくのをオススメします。 ; "*"の次の数字は、setlayerで設定したレイヤー番号です。
レイヤースプライトが非表示中は、フィルタリングをしません。vspを効果的に使ってください。
そして、layermessage命令で設定ができます。
layermessage 10,"rx,10" ; 赤レイヤーのx座標を右に10ドットずらす。 layermessage 10,"gy,-5" ; 緑レイヤーのy座標を上に5ドットずらす。 layermessage 10,"balpha,128" ; 青レイヤーの輝度を半分(デフォルトは255)にする。 ; ちなみに輝度は0〜255の範囲を超えて設定することができます。
また、命令はいくつでもつなげて構いません。
layermessage 10,"rx,10,ry,10" ; 赤レイヤーを右下に10ドットずらす。
ネガポジ反転は以下のようにします。
layermessage 10,"rnega,-1" ; 赤レイヤーをネガポジ反転させます。 layermessage 10,"gnega,1" ; 緑レイヤーをネガポジ反転させます。
全ての設定を初期状態に戻すには、以下のようにします。
layermessage 10,"reset"
また、状態をシリアライズできます。
layermessage 10,"save" getret $0 ; これに、状態を入れた文字列が入る。 layermessage 10,$0 ; これで状態を再現できる。
このシリアライズ機能で、セーブロードに対処してください。
サンプルスクリプト
動画の元になったスクリプトは以下のもの。先日の連続画面キャプチャーDLLを組み合わせて画面を出力した後、それをAVIMakerでまとめたんですが、何故かこんなことに。
00.txt
;mode800 *define setlayer 10,30,"rgbfilter.dll" setlayer 11,50,"playmovie.dll" deletemenu numalias com,100 game *start lsp 550,":c;image.jpg",0,0 print 1 lsp 500,"*10" lsph 499,"*11" vsp 499,1 *loop make_command $com layermessage 10,$com layermessage 10,"save" getret $0 caption $0 repaint layermessage 11,"shot" wait 10 goto *loop end
system.lua
-- system.lua do -- PIE local pie = 6 * math.asin( 0.5 ) -- 角度 local deg = 0 local deg2 = 0 local deg3 = 0 local rad = 0 -- ズレの大きさ local dis = 0; local dis2 = 0; local dissize = 20; -- 前回の呼出 local before = NSTimer() -- 今回の呼出 local now = 0 -- 前回からの経過時間 local span = 0 -- 座標 local x local y local int = math.floor local sin = math.sin local cos = math.cos NSExec("_luasub make_command") function NSCOM_make_command() now = NSTimer() span = now - before deg = deg + span / 10 while deg > 360 do deg = deg - 360 end deg2 = deg + 120 deg3 = deg + 240 dis = dis + span / 5 while dis > 360 do dis = dis - 360 end dis2 = pie * dis / 180 local ret = NSPopStrRef() local str = "" str = str .. "rx," .. int(cos(deg *pie/180)*sin(dis2)*dissize) str = str .. ",ry," .. int(sin(deg *pie/180)*sin(dis2)*dissize) str = str .. ",gx," .. int(cos(deg2*pie/180)*sin(dis2)*dissize) str = str .. ",gy," .. int(sin(deg2*pie/180)*sin(dis2)*dissize) str = str .. ",bx," .. int(cos(deg3*pie/180)*sin(dis2)*dissize) str = str .. ",by," .. int(sin(deg3*pie/180)*sin(dis2)*dissize) NSSetStrValue(ret, str) before = now end end
※なお、image.jpgは各自で調達してください。
2012-06-28 (sub)
- 02:05 わたしの今日の運勢です 恋愛運 ★★☆☆☆ 金運 ★★★★☆ 健康運 ★★☆☆☆ 仕事運 ★★★☆☆ 嘘も方便!場の空気を読み思いやりのある嘘をつこう。すぐバレる嘘はダメね。 ラッキーアイテム 『熱帯魚』→http://t.co/vNWD4aDy
Powered by twtr2src