ズームプラグイン

・組み込み方

　scenario\zoom.ks をお手持ちの KAG3 のプロジェクトの scenario フォルダにコ
ピーしてください。
フォルダの各フォルダにコピーしてください。

・使い方

　シナリオの先頭などで

@call storage="zoom.ks"

　として zoom.ks を呼び出すと bgzoom と wbgzoom という２つのタグが定義され
ます。
　zoom.ks は２回以上呼び出さないでください。マクロの定義と同じで、１回呼び
出せば、それ以降、機能が使用可能になります。

・bgzoom タグ

　bgzoom タグは表背景画像のズームを開始します。

　以下の属性があります

storage      ズームさせる画像のファイル名を指定します
bgstorage    ズームのさせる画像の背景に表示する画像を指定します
sl           初期矩形の左端位置
st           初期矩形の上端位置
sw           初期矩形の横幅
sh           初期矩形の縦幅
dl           最終矩形の左端位置
dt           最終矩形の上端位置
dw           最終矩形の横幅
dh           最終矩形の縦幅
time         ズームを行っている時間(ms)
accel        加速度的な動きをさせるかどうか


　このうち、bgstorage と accel 属性は省略可能です。
　sl st sw sh の位置にまず storage 属性で指定した画像が表示され、そのあと
time 属性で指定した時間をかけながら徐々に dl dt dw dh で指定した位置にまで
移動します。従って、sl などや dl などの指定の仕方によってはズームしなくて単
に画像が移動するだけというのも作れます(そういうのだったら move タグ使った方
がいい) (^^;
　bgstorage 属性が指定されていると、ズームの開始時にその属性で指定された画
像を表背景レイヤに読み込みます。ズームされる画像はこの手前に表示されます。
ズームされる画像が背景レイヤよりも大きく覆い被さる場合は当然背景は見えませ
ん。
　accel 属性は加速度的な動きをさせるかどうかの指定です。 0 を指定すると最初
から最後まで直線的な位置の移動になります ( しかし視覚効果的にはそう見えない
かも知れません )。1〜3 ぐらいの正の数を指定すると、最初は動きが遅く、徐々に
早くなります。-1〜-3 ぐらいの負の数を指定すると、最初は動きが早く、徐々に遅
くなります。


・wbgzoom タグ

　wbgzoom タグは背景ズームの終了を待ちます。canskip=true とすると、クリックでズ
ームをスキップすることができます。


・fgzoom タグ

　fgzoom タグは前景画像のズームを開始します。

　以下の属性があります

storage      ズームさせる画像のファイル名を指定します
layer        対象のレイヤ番号 ( 0 〜 ) を指定します
mode         前景レイヤのモードを指定します。
sl           初期矩形の左端位置
st           初期矩形の上端位置
sw           初期矩形の横幅
sh           初期矩形の縦幅
dl           最終矩形の左端位置
dt           最終矩形の上端位置
dw           最終矩形の横幅
dh           最終矩形の縦幅
time         ズームを行っている時間(ms)
accel        加速度的な動きをさせるかどうか

　bgstorage 属性が無く、layer 属性と mode 属性がある以外は bgzoom タグと同じ
です。常に表画面のレイヤに対してズームが行われます。ズーム中は表示状態になり
ます。
　mode 属性は image タグの mode 属性と同じで、透過モードを指定します。


・wfgzoom タグ

　wfgzoom タグは前景ズームの終了を待ちます。実質、wbgzoom と同じです。


・栞との関連

　背景レイヤに対するズームの場合、最終矩形が画面全体ぴったりを覆っている場合
で、かつ、bgzoom タグの storege 属性で指定した画像が背景レイヤのサイズ ( つ
まり画面サイズ ) と同じ場合は、最終的に bgzoom タグの storage タグで指定した
画像が背景画像になります。この場合は続く位置に栞を保存可能なラベルが存在して
いても問題ありません。
　また、最終矩形のサイズが 0 ( 最終的に消えてしまう ) の場合は、もし bgzoom
タグで bgstorage 属性が指定されていれば、それが背景画像になります。そうでな
ければ、bgzoom タグの直前の背景画像が引き継がれたままです。この場合も続く位
置に栞を保存可能なラベルが存在していても問題ありません。

　そのほかの場合、つまり、最終矩形のサイズが 0 でなくて、画面全体をぴったり
と覆ってない ( ちいさすぎる、あるいは画面からはみ出ている場合 ) や、bgzoom
タグの storage 属性で指定した画像が背景レイヤのサイズと異なる場合ですが、こ
の場合は続く位置にすぐに栞を保存可能なラベルが存在していると問題になります。
この栞の位置から再開しても、ズームされた部分の画像を再構成できません。背景
画像を image タグで読み込み直すなどすれば、栞を保存可能なラベルを書いても大
丈夫です。

　前景レイヤの場合も同じで、最終矩形が読み込もうとした前景画像と同じサイズ
である場合は、最終的に fgzoom タグの storage 属性で指定した画像が、layer
属性で指定したレイヤの画像になります。
　最終矩形のサイズが 0 の場合は最終的に layer 属性で指定したレイヤは非表示に
なります。

　その他の場合、つまり最終矩形のサイズが読み込もうとした前景画像のサイズと異
なる場合は、背景画像のズームと同じく、続く位置に栞を保存可能なラベルが存在し
ていると問題になります。次に栞を保存可能なラベルを通過する前に、対象とした前
景レイヤに画像を image タグなどで読み込みなおしておけば、栞を保存可能なラベ
ルを書いても大丈夫です。

ご注意ください。


・例

@bgzoom storage=bg9 time=2500 accel=2 sl=-1280 st=-960 sw=3200 sh=2400 dl=0 dt=0 dw=640 dh=480
@wbgzoom canskip=true
これはズームアウトの例です。画面の中央付近を 5 倍に拡大した状態からズームア
ウトし、最終的に画面全体ぴったりになります。この場合、wbgzoom タグでズーム
が終わった時点で、bg9 が背景画像となっています。この後に栞を保存可能なラベル
があってもかまいません。

@bgzoom storage=bg3 time=2500 accel=2 sl=320 st=240 sw=0 sh=0 dl=0 dt=0 dw=640 dh=480
@wbgzoom canskip=true
これはズームインの例です。画面の中央から bg3 の画像がズームインし、最終的に
画面ぴったりになります。この場合、wbgzoom タグが終わった時点で、bg3 が背景
画像となっています。この後に栞を保存可能なラベルがあってもかまいません。

@bgzoom storage=bg3 basestorage=bg9 time=2500 accel=0 sl=0 st=0 sw=640 sh=480 dl=320 dt=240 dw=0 dh=0
@wbgzoom canskip=true
これはズームアウトの例です。最初、bg3 が画面全体に表示されます。bg9 は背景
画像として読み込まれますが、bg3 が画面全体を覆っているので見えません。その
あと、画面中央に向かって bg3 は小さくなりながら消えていき、そのかわり bg9
が見えてきます。この場合、wbgzoom タグが終わった時点で、bg9 が背景画像となっ
ています。この後に栞を保存可能なラベルがあってもかまいません。

@bgzoom storage=bg3 time=2500 accel=0 sl=0 st=0 sw=640 sh=480 dl=0 dt=0 dw=240 dh=240
@wbgzoom canskip=true
これもズームアウトの例です。最初、bg3 が画面全体に表示され、だんだん画面左
上の 1/4 の場所に移動していきます。この場合は背景画像は、wbgzoom タグが終
わった時点で、bgzoom タグが実行される直前の背景画像の上に、bg3 が小さくなっ
て左上に表示されている状態になっています。この後に栞を保存可能なラベルがあっ
てそこで栞が保存されても、再開するときに背景画像を再構成できないので、次の
保存可能なラベルをかくまえに、背景画像を読み込みなおしたりする必要がありま
す。

@fgzoom storage=fg_ak_4 layer=2 time=2500 accel=2 sl=-1280 st=-960 sw=1800 sh=2400 dl=100 dt=0 dw=360 dh=480
@wfgzoom canskip=true
前景画像のズームアウトの例です。最初、５倍に拡大された位置から最終の 360x480
のサイズまでズームアウトします。この後に栞を保存可能なラベルがあってもかま
いません。

@fgzoom storage=fg_ak_4 layer=2 time=2500 accel=2 sl=100 st=0 sw=360 sh=480 dl=100 dt=100 dw=0 dh=0
@wfgzoom canskip=true
これも前景画像のズームアウトの例です。最終的に消えて無くなります。この後に
栞を保存可能なラベルがあってもかまいません。

@fgzoom storage=fg_ak_4 layer=2 time=2500 accel=0 sl=320 st=240 sw=0 sh=0 dl=100 dt=0 dw=360 dh=480
@wfgzoom canskip=true
これは前景画像のズームインの例です。中央からズームインします。この後に栞を
保存可能なラベルがあってもかまいません。



・ライセンス

KAG3に準じます。つまり、使用・改変自由です。
