●応用編 で 魂響編 その1 拡大縮小回転移動
講座というよりも備忘録なこのカテゴリ
魂響~円環の絆~(吉里吉里製)の変換では、 drawbg/sp2 を使ったエフェクトに手を出してみました
なかなか元のスクリプトを忠実に反映出来なかったのですが、ようやく目処が立ったのでメモメモ
@eff layer=3 storage=EV_KASUMI_BAT_00_D ss=2.75 ds=3 path=(331,123,0)(331,123,255) time=600 sr=0 dr=+0.0 pathtype=true
この作品では上記のような命令で画像に対して拡大縮小回転移動のエフェクトをかけています。
@move命令と同じように、始値と終値(とはいわないと思う)を指定しての連続的なエフェクト指定です。
Nスクでも拡大略自体は出来るのですが、連続させて動かしたりエフェクトをかけることは出来ません。
そう、なので "スプライトを動かす"時と同様に timer を使った for 文 でぶん回しましょう
基本的には移動時と同じく各パラメータを 始値+(終値-始値)×経過時間÷完了時間 で計算
textoff mov $1,"EV_KASUMI_BAT_00_D" defsubでgetparamする時を考えて、文字変数に入れています saveoff:textoff csp -1;bg black 0 lsp 9,":c;image/"+$1+".png",0,0 文字変数をファイル名に使う時の処理。この辺、あんまり解説がないかも resettimer for %1=1 to 999999 gettimer %9 if %9>=600 break mov %3,0+(255-(0))*%9/600 透過度 mov %4,331+(331-(331))*%9/600 画面の中心となる、画像上のx座標 mov %5,123+(123-(123))*%9/600 画面の中心となる、画像上のy座標 mov %6,275+(300-(275))*%9/600 拡大率 mov %7,-0+(0-(-0))*%9/600 回転度 if %6>=215 add %7,180 *ONS不具合。拡大率215以上の場合は上下反転 mov %4,800-((%4-400)*%6/100+400) *拡大の中心となる、スクリーン上のx座標 なんだかよく分からない計算 mov %5,600-((%5-300)*%6/100+300) *拡大の中心となる、スクリーン上のy座標 同上 drawclear 前回描画分消去 drawsp2 9,1,%3,%4,%5,%6,%6,%7 描画 スプライト番号,セル番号,透過度,x座標,y座標,縦拡大率,横拡大率,回転度 draw 実画面に表示 next drawsp2 9,1,%3,572,742,300,300,180 最後に終了の値で表示 draw saveon
こんな感じになりました。
詳しくは 魂響コンバータの sub eff{ 以下を見てください(投げた
いえ、PATHが複数ある際の処理など、微妙に複雑且つ長くなってしまうのです…
Nスクの拡大略仕様がいまいち判らなくて、元スクリプトでの値をどうすればいいか迷ってました
元スクリプトでは 「画面の中心となる、画像上の座標」 が書かれているのですが、
Nスクでは 「拡大の中心となる、画面上の座標」 を drawbg/sp2 で使っているようです。
(うーん、この違いを言葉で説明するのは難しい)
しかも前者は等倍での座標、後者は拡縮を適用させた後の座標だったようで
ようやく本日、上記なんだかよく分からない計算で求めることができました。近日アップデート予定
が、しかし!どうもONSでは drawbg/sp2 の際に解像度の変更(800にしてます)が効いてないみたい
本家Nスクでは再現出来た部分が、ONSだとずれて表示されてしまう…orz
215%の反転表示に加えて、要検証かもしれません。近日アップデート未定
しょうがないのでもう少し数字と格闘しようと思いました。備忘備忘
…って、せめて動画でもおかないと何が何だかわからないですねえ
8/13)細々追記修正。なお本ページの全エントリは予告なくせこせこ修正されます。
それはそれとして、ONSだと魔の215%を境に拡大率がおかしくなっているという仮説を立ててみる
Nスクの300%がONSのほぼ240%だ。どうしよう
9/10)
ONS更新によって上記の描画不具合が修正。
これで思った通りに動いてくれる様になりました。
改めて本家Ogapee様、PSP&Winバイナリ作成すとーむ様に感謝いたします。乙です!
下は検証用に…
コメント
drawbgを使った拡大処理について,微妙にずれているのは誤差か計算ミスだと思っていたのですが,NスクとONSの拡大率が違うことには気付きませんでした。
拡大率215%以上の増分に法則性があれば計算式を立てられるのですが,暇があったら確認してみたいと思います。
Posted by: ゆす | 2007年08月21日 01:55
おお、是非にお願いします。
ただ、実は暫定的な計算式を立てて検証してみたのですが
描画範囲は正常な拡大率で求められているんですね…
draw命令では640x480or800x600の画面内しか描画されないので、
拡大率を補正すると正常な描画範囲からはみ出た部分が黒く切れてしまいました orz
Posted by: ひとつもり | 2007年08月22日 07:55