trans.dll

エフェクト型プラグインtrans.dllを作成しました。
http://www.eiji8pou.pics/download/trans20110524.zip
http://www.eiji8pou.pics/download/trans20110530.zip

概要

D
旧画面と新画面を比較し、色について差異のあるピクセルを、それぞれ独立して動かすエフェクトです。
※この動画は、サンプルとしてはあまりよくないです。本当は、戦人のマント部分だけを操作したかったのですが、どういう訳か輪郭部分も微妙に違っていて操作の対象になってしまっています。
画面全体を動かすとこんな感じに。
D

*define
deletemenu
game
*start

bg "back.bmp",1
ld c,":a;tatie2.bmp",1
click
*ll
ld c,":a;tatie1.bmp",99,3000,"trans.dll/delay,500,320,480,burst,10,320,480,tremble,5,erace,2500"
click
ld c,":a;tatie2.bmp",99,3000,"trans.dll/delay,500,320,480,burst,10,320,480,tremble,5,erace,2500,mode,in"
click
goto *ll
end

使い方

エフェクト型プラグインとして普通に。

print 99(固定),3000(ミリ秒),"trans.dll/パラメータをここに書く。"

パラメータの与え方

print 99,3000,"trans.dll/burst,10,320,240,delay,500,640,240"

単語でパラメータの種類、その後、パラメータの種類に応じた数値や文字列。また、任意にパラメータを続けることができます。

パラメータの種類

mode
inとoutの二種類。outは基本的に画面から物がなくなる時に使います。inは逆に画面に物が増えた時に使います。もちろん、あえて逆にして効果を狙っても構わないでしょう。デフォルトはoutです。他のパラメータは同じで、modeだけを変えると逆回しになります。
gravity
この後に、数値を二つ、重力の方向と強さを与えます。方向は画面上を0として時計回りの度数です。デフォルトは180で、この方向にピクセルが「落ちる」と考えてください。強さは、ドット数です。このエフェクトが解決されるまでに、一つのピクセルがドット数だけ移動すると考えてください。強さのデフォルトは画面の高さと同じです。方向を横にすれば風の表現に、上にすれば蒸気の表現に、使えます(多分)。
delay
この後に、数値を三つ、最大遅延ミリ秒と基準座標のxとyを与えます。delayを与えると、ピクセルの移動開始に時間差をつけることができます。基準座標に最も近いピクセルは即座に動き出し、最も遠い点が最大遅延ミリ秒後に動き出します。最大遅延ミリ秒はエフェクト全体のミリ秒よりも小さい数値を設定してください。デフォルトは0です。また、最大遅延ミリ秒にマイナスの数値を与えると、最も遠い点から動き出し、最も近い点が最も遅く動き出します。基準座標は画面の外遠くにおくのがよいでしょう。
erace
この後に、ピクセルが動き出してから消えるまでのミリ秒を指定します。このパラメータを指定しなければ、ピクセルは決して不透明にはなりません。この場合、きちんと画面の外まで移動させないとおかしな演出になるでしょう。数値を指定した場合、そのミリ秒までの間にピクセルの不透明度は0に向かって減っていきます。
burst
この後に、三つの数値を指定します。爆発の強さと、爆心地のx座標とy座標です。爆発の強さは、最初は10くらいで試して調整してください。ピクセルは最初に爆心地から離れるようなベクトルを与えられます。
tremble
この後に、揺れの強さを指定します。揺れの強さは、最初は5くらいで試して調整してください。ピクセルそれぞれに違う微小な初期ベクトルを追加します。砂のような効果を期待するならば、これを指定しておくのが定番かと。
tremblex/trembley
揺れの強さを横方向と縦方向に別々に指定できるようになりました。以降、"tremble,5"は、"tremblex,5,trembley,5"と等価になります。
color
移動対象のドットが徐々に色変化するパラメータです。colorの後には、指定した色に完全に変化してしまう時間(ミリ秒)、その後にカラーコードの数値三つを与えます。1500ミリ秒後に白に変化するならば、"color,1500,255,255,255"としてください。

※パラメータが多くありますので、色々と試してみてください。

サンプル動画その2

この二つの画像を使ってエフェクトだけで下の動画のようなことができます。
D

*define
deletemenu
game
*start

bg "01.bmp",1
click
*loop
bg "02.bmp",99,1000,"trans.dll/delay,250,400,350,tremble,5,burst,15,400,350,gravity,0,0,erace,750,mode,in"
click
bg "01.bmp",99,1000,"trans.dll/gravity,75,300,delay,250,1280,0,erace,7500,tremble,3"
click
goto *loop

20100530追記

  • tremblex/trembley
  • color

以上、二つを追記し、サンプル動画も一つ追加。

*define
deletemenu
game
*start

mov $100,"trans.dll/gravity,0,0,delay,-500,320,240,burst,15,320,240,tremble,1,erace,2500,color,1500,255,255,255"

bg "back2.bmp",1
ld c,":a;tatie3.bmp",0
print 1
click
*back
bg "back.bmp",0
ld c,":a;tatie1.bmp",0
print 99,3000,$100
click
bg "back2.bmp",0
ld c,":a;tatie3.bmp",0
print 99,3000,$100+",mode,in"
click
goto *back