カットインレイヤー概要 カットインレイヤーは、カットインを実現するレイヤーである。 KAGのアニメーションと同じように、「動き」を別ファイル(拡張子.cid)に 定義することにより、ある画像をその動きに従って動かすことができる。 可能な動作は、いわゆる二次元アフィン変換で可能な以下の四つ。 ・位置移動 ・拡大縮小 ・回転 ・透過率変更 これらをテキストファイル(デフォルトでは「画像ファイル名.cid」)に 定義し、KAGスクリプト側では[cutin]タグで表示を指定するだけ。 ただし、あくまでもカットインレイヤーはカットイン専用であり、現在の ところ、カットインレイヤー上ではアニメーションはできない。 定型動作に適する。そうでないならmoveexとかそういうプラグインを使った 方が便利。 セーブ・ロードについて: セーブは、cidファイル先頭か、cidファイル中のラベル位置でのみ実施 される。KAGと同じく、直前のラベル位置まで遡ってセーブされることに注意。 KAG同様、セーブ可能ラベルは後ろに'|'を伴う。'|'がないラベル位置では セーブしない。 セーブ可能ラベル通過前は、必ず[syncwait]される(infinityのものは除く)。 例:*ラベル名[|] ***************************************************************************** KAGスクリプト中のタグ: タグ: [cutin name= storage= cutininfo= page= top= left= absolute= opacity= angle=] 説明: カットインを一つ表示する。 引数: name= カットインの名前を指定する。省略可、省略時は"all"が 指定される storage= カットインの画像を指定する cutininfo= カットインスクリプト(.cid)を指定する。省略時はstorage の拡張子を.cidに変更したものになる。 page= ページを指定する。 fore 表画面に表示する(def) back 裏画面に表示する top= カットインレイヤーの初期位置Y座標(def=0) left= カットインレイヤーの初期位置X座標(def=0) absolute= カットインレイヤーの絶対位置(描画優先順位)(def=1000000-10) opacity= カットインレイヤーの初期透明度(def=255) angle= カットインレイヤーの初期角度(def=0) タグ: [cutin_erase name=] 説明: カットインを削除する 引数: name= カットインの名前を指定する。指定したキーに一致する カットインが削除対象となる。 page= 削除するページを指定する both 表、裏両方を削除対象にする fore 表画面のみ削除対象とする back 裏画面のみ削除最小とする ***************************************************************************** .cidスクリプト中のタグ: 書式例: [locate pos=320,240] *start| ←ここでセーブ可能 [rotate angle=0 dstangle=360 time=1000 infinity] *loop ← ここではセーブ不可能 [scale scale="1,1" dstscale="3,1" time=700] [locate relpos="100,-100" time=700 accel=-2] [opacity opa=255 dstopa=64 time=700] [syncwait waitrotate=false] [scale dstscale="1,1" time=700] [locate relpos="-100,100" time=700 accel=2] [opacity dstopa=255 time=700] [syncwait waitrotate=false] [jump target="*loop"] タグ: [locate pos= dstpos= relpos= accel= time=] [locatex pos= dstpos= relpos= accel= time=] [locatey pos= dstpos= relpos= accel= time=] 説明: 元画像中心を、指定位置に移動する。移動終了時にはその場で停止する。 パラメータは、[locate]の時は pos="0,100" accel="1,2" のように , で区切ってX,Y二つ別々に指定できる。一つだけ指定すると、二つ 同じ値を指定したことと同義となる。 ※[locatex] [locatey]は一つだけ指定すること。 <例> [locate pos=0 dstpos=50,100 accel=-2 time=3000] ↑は、↓と等しい [locatex pos=0 dstpos=50 accel=-2 time=3000] [locatey pos=0 dstpos=100 accel=-2 time=3000] 引数: pos= 表示位置を指定。省略すれば現在の表示位置を引き継ぐ。 dstpos= 「どこまで移動するか」を示す絶対座標。relposと背反 ※ relpos = dstpos - posになる。 relpos= 「どこまで移動するか」を示す相対座標。dstposと背反 ※ dstpos = relpos + posになる。 accel= 移動加速度を指定。 =0:加速度なし(def) <0:最初早く徐々にゆっくり >0:最初ゆっくり徐々に早く time= 移動時間を指定(ms)。 infinity=true|false(def) 無限に移動し続けるかどうかのフラグ。falseだとdstposに 到達するとそこで停止するが、trueだと、dstposに 到達してもそのまま移動し続ける。 使用例: ・単純に、ある位置に固定的に表示 [locatex pos=320] [locatey pos=240] ・(0,0)から(320,240)まで線形に2秒で加速度付き(徐々に早く)で移動 [locatex pos=0 dstpos=320 time=2000 accel=2] [locatey pos=0 dstpos=240 time=2000 accel=2] タグ: [rotate angle= dstangle= relangle= accel= time=] 説明: 元画像中心を中心軸に、回転させる。 位置指定と移動を指定する。移動終了時にはその場で停止する。 引数: angle= 初期角度。省略すれば現在の回転角度を引き継ぐ。 dstangle= 「どこまで回るか」を示す絶対角度。relangleと背反 relangle= 「どこまで回るか」を示す相対角度。dstangleと背反 accel= 回転加速度を指定 =0:加速度なし <0:最初早く徐々にゆっくり >0:最初ゆっくり徐々に早く time= 回転時間を指定(ms) infinity=true|false(def) 無限に回転し続けるかどうかのフラグ。falseだとdstangleに 到達するとそこで停止するが、trueだと、dstangleに 到達してもそのまま回転し続ける。 使用例: ・単純にある角度(0.3 = (180*0.3/3.14)°)に固定的に表示 [rotate angle=0.3] ・一秒で半周だけ、加速度付けて回転する [rotate angle=0 dstangle=3.14 time=1000 accel=1] ・ずっと回り続ける(一周は約6.28秒(=2π秒)) [rotate angle=1 time=1000 infinity=true] タグ: [scale scale=sx,sy dstscale=dx,dy time=xx] 説明: 元画像中心を原点に、拡大縮小する。 引数: scale= 拡大縮小率初期値。1,1で元と同じ dstscale= 拡大縮小率終了値 accel= 拡大縮小加速度 time= 拡大縮小時間(ms) タグ: [opacity opa= dstopa= velo= accel= time=] 説明: 透明度を指定する。0=透明、255=不透明。 引数: opa= 初期透明度 dstopa= 終了透明度 accel= 透明度変更加速度 time= 透明度変更時間(ms) タグ: [s] 説明: そこでスクリプト実行を終える。処理中のタグがあればその終了を 待つ。どれかのタグでinfinityが指定されている場合は、そのタグは 処理を実行し続ける。 引数: なし タグ: [syncwait] 説明: 処理中のタグの処理終了を待つ。タグ間に処理の同期が欲しい時は 時々コレを入れておくこと。そうしないと、タグ間で開始・終了時間が 微妙にズレた時(処理が重くて引っかかった時など)に、CutInの動きが 意図しないものになることがある。 infinityが指定されているものがある場合、二度と帰ってこないので注意。 引数: waitinfinity= true infinityがあったらずっと待ち続ける false(def) infinityを待たない(infinity以外を待つ) waitlocatex= true(def) locatexの終了を待つ false locatexの終了を待たない waitlocatey= true(def) locateyの終了を待つ false locateyの終了を待たない waitrotate= true(def) rotateの終了を待つ false rotateの終了を待たない waitscale= true(def) scaleの終了を待つ false scaleの終了を待たない waitopacity= true(def) opacityの終了を待つ false opacityの終了を待たない タグ: [wait time=] 説明: 指定時間だけ待つ 引数: time= 待つ時間をms単位で指定する。 タグ: [eval exp=] 説明: 指定されたTJS式を実行する 引数: exp= TJS式を指定する。 ; ------------------------------------------------------------------- 以下未実装 [erase] cutinを削除する [trigger] トリガを引く [waiting] トリガを待つ ; 外から [cutin_trigger] トリガを引く [cutin_waiting] トリガを待つ [cutin_stop] カットインを止める(最終状態へ移行する) [cutin_jump] スクリプト中でジャンプする [cutin_options] 表示順位設定 あるレイヤの子として動作するようにする(漫符・影用) 表示順位設定 // [center_pos]タグは未実装。元図形の中心を回転・移動中心と決め打ったため。 // タグ: [center pos=] // 説明: 元図形の拡大・回転・移動中心位置を決める。 // 引数: pos= x,yをカンマで区切って指定 // 100x600の画像の中心を回転中心とするなら、50,300と指定。def=0,0 AnimationConductorオブジェクトをセーブした時の内容。どうでもいいか。 (string)"macroArgStackBase" = (int)0 (string)"curLine" = (int)1 > (string)"storageShortName" = (string)"dokidoki.cid" <- (string)"curPos" = (int)40 (string)"macroArgs" = (object)(object 0x019BAD6C:0x019BAD6C) (string)"macroArgStackDepth" = (int)0 (string)"lineBuffer" = (string)"" > (string)"storageName" = (string)"file://./g/athenakrkr/data/others/dokidoki.cid" (string)"callStack" = (object)(object 0x019BCB34:0x019BCB34) (string)"lineBufferUsing" = (int)0 (string)"macros" = (object)(object 0x019DB9F8:0x019DB9F8) (string)"curLabel" = "*loop"