[PR] この広告は3ヶ月以上更新がないため表示されています。
ホームページを更新後24時間以内に表示されなくなります。
widthを使った場合SFF登録X座標位置が いくつでも
DEFのX座標を0にした場合、左のようになります。
SFF登録、DEF記述の注意するべき点 として,この yscalestart yscaledeltaを使う時に、
SFF登録時は床の場合Yの座標は0にすることです。
画像の基準点(床の角度の変わる始点)が、登録時にY座標が0のところのラインが基準になります。
天井でしたら、その画像の下のラインをY座標0で、登録しなければいけません。
そして、DEF記述の際に、画像Y座標位置をあわせるといいです。
そして、yscaledeltaが、そのスケールの変化係数です。
yscalestart = 100 yscaledelta=1.2の時
Yのカメラ(縦のカメラ)が1上がれば101.2% となって、もうひとつ上がれば、102.4% となります。
ジャンプすると、3D的に上からのぞく感じ(床が縦に伸びた感じ)になります。
逆に、天井にparallaxを使い、この yscaledeltaも使うのであれば、その値はマイナスで書くといいでしょう。
(ジャンプすると、縮む感じになる)
垂直の尺度、が変わっているのがわかると思います。
基本的に、この値は100でいいと思います。
yscalestartを、それぞれ90 100 110 と切り替えた 画像がこれです。
yscalestartは、英語の原文を直訳しますと、
「カメラのy-位置が地表面にあるとき始めの垂直の大きさを表す割合。」
と、あります。
これは、パーセンテージで表記されているものと思われます。
100%がデフォルト位置ですね。
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 140
delta = 0.8, 0.7
mask = 1
xscale = 1,1.75
width= 640,1120
yscalestart = 100
yscaledelta = 1.2
そして、次は Y(縦)方向のパラメーター yscalestart yscaledeltaについての解説です。
[BG 1-1];;;背景
type = normal
spriteno = 1, 0
layerno = 0
start = 0,0
delta = 0.8, 1
trans = none
mask = 1
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 0
delta = 0.8, 1
mask = 1
xscale = 1, 1.75
width= 640, 1120
[BG 1-1];;;rogo
type = parallax
spriteno = 1, 1
layerno = 0
start = 0, 0
delta = 0.8, 1
mask = 1
xscale = 1, 1.75
width= 640, 1120
widthパラメーターは画像の 表示サイズのパラメーターです。
元画像が640*100なので、上部の表示サイズを640にし、
下部をその1.75倍の1120にしてみました。
もちろんdelta=1 のところが等倍幅に表示したければ、
上部は0.8×640=512 下部は0.8×1.75=1.4 640×1.4=896
width= 512, 896で書くといいですね。
(これだと、背景がはみだしちゃいますが・・。)
そして、この画像が右にスクロールさせたものです。
つまり、
初期画面の中心の点(SFFのX座標0の点)が Xscaleの 原点になります。
通常ならば、(遠近変形させた)その画像の中心をSFFのX座標0の点にして
登録すればいいということになります。
もちろん、応用すれば、例えば
右だけに遠近感だしたりすることも可能ですね。
画像の床の部分、(640*100)の画像をSFF登録時に、
Xの座標を320で登録し、DEFはX座標0のものです。
当たり前ですがこうなります。
この、Parallax がうまく使いこなせたら、きっといいステージができるでしょうね。
試行錯誤 がんばってみてください。きっと上手くいくと思います。
ではでは~
天井
なんだこりゃ?そりゃそうなりますよね
天井に使うとよさそうです。
[BG 1-1];;;背景
type = normal
spriteno = 1, 0
layerno = 0
start = 0,0
delta = 1, 1
trans = none
mask = 1
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 0
delta = 1 , 1
mask = 1
xscale = 9, -1
ちなみに、こうかけば・・。
では、こんなロゴ文字を追加してみましょう。(ピンクは背景色です) 320*100
おっ!いい感じに奥行きでてきましたねぇ!!
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 0
delta = 0.8, 1
mask = 1
xscale = 1, 1.75
width= 640, 1120
parallaxのパラメーターである、xscaleは
xscale= 画像の上部のdelta , 下部のdelta の倍率なります。
つまり、spriteno = 1, 2の画像のx方向delta = 0.8ですので、
parallax効果をかけた画像の上部のdeltaは0.8×1=0.8
下部のdeltaは 0.8×1.75 =1.4になります。
もちろんこの2点間のdeltaは自然に段階的に処理されます。
[BG 1-1];;;背景
type = normal
spriteno = 1, 0
layerno = 0
start = 0,0
delta = 0.8, 1
trans = none
mask = 1
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 0
delta = 0.8, 1
mask = 1
xscale = 1, 1.75
レイヤー 1,0 背景 (640*480)
数値は適当ですが、こちらも上下逆にしてみます。
地面と比率をあわせるため、
320/2=160 160×1.75=280
で、画像幅を設定
おっ!うまく画面いっぱいに引き伸ばされましたね。
ここでは、背景の表現方法のひとつである、「parallax」について
解説しようと思います。
xscaleを使う時、SFF登録時に注意点があります。(widthを使っていない場合)
下記画像例は、delta = 0.8, xscale = 1, 1.75 のものです。(遠近変形させてないもので比較してます)
もし、DEFのX座標を-320にしたら、左のようになります。
widthをつかった場合、SFFの登録位置に関係なく
DEFでそのX座標位置を決めていくのが可能ですね。
では、SFFをX座標0で登録し、DEFでX座標-320にしたらどうでしょうか?
静止画なら同じ位置に表示されるはずですが・・。
左の画像のようになってしまいます。
真ん中の緑のラインはあってますから、deltaがずれた状態にあります。
この画像はSFFのX座標が0,でDEFのX座標も0にしたものです。
その他、注意点としまして、透過処理(trans)の項目は常にnone 無効です。(記述不要)
mask処理は同じように可能です。mask= 1
tile(タイル)に関しては、width パラメーターを使用したものに関してはうまくタイル処理できました。
ただし、tile=0 tile=1 のみ、(指定数タイルはできない)です。
KFMステージの場合 床画像を、1:1.75 で作っているので、width は不要になります。
;--KFMステージ内 床 例
[BG Floor]
type = parallax
spriteno = 10,0
start = 0, 181
delta = .78, .75
xscale = 1, 1.75
yscalestart = 100
yscaledelta = 1.2
床
ちなみに、
KFMステージで、
parallaxに使われています。↓のような画像をですと、
widthパラメーターは
不要ですね。
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 0
delta = 1 , 1
mask = 1
xscale = 9, -1
width= 3840, 640
プレーヤーを中心に、ステージがまわってそう?な
感じになりました・・・・。
めまいを起こしそうです。
で、つぎはせっかくなので、逆バージョンも少し・・。
こんな感じでどうでしょうか?
ちょっと、xscaleがいいかげん?だったので、キャラと地面のスクロールがずれていたかもしれません。
上記の場合だと、背景(地面上のライン)のdeltaが0.8 なので、キャラのラインをdelta=1のすると、手前(地面下)のラインはdelta=1.05になります。
ということは、xscaleは xscale=1 , 1.3(1.05÷0.8)で キャラのラインがdelta1のはずですね
**キャラのライン=zoffset=220 画面下がら20ピクセル上がったライン
わかりやすく、背景のdeltaを0.2 にしてその比率でキャラのラインがdelta=1になるよう
xscaleを設定したみました。(奥が0.2 だから 1, 手前は1.2 だから、1.2÷0.2=6)
width もわかりやすく そのままの倍率(奥1倍 、手前6倍)
今度は、上手く縮小しました。
これが、上記のように記述した、画像ですが・・。
左右によった時に、床の幅が足らずに、背景が見えてしまってますよね。
Parallax ステージ
*
Parallax_D4ステージ
*
まず、この「 parallax」 でステージを作るために、
次のような画像を用意しました。
ややこしく、書いてしまったかもしれませんが、(書いててもj混乱します・・。)
もしわけがわかんなくなったら、X座標はSFF登録時画面の中心にしておいてDEFは0で書けば
通常ならば、問題ないですね。
では、これもwidthを追加してみます。
先ほどとは、xscaleの比率を逆にしました。
上のラインがdelta=9(1×9),下のラインはdelta=-1(1×-1)
になります。
[BG 1-2];;;地面
type = parallax
spriteno = 1, 2
layerno = 0
start = 0, 0
delta =0.2, 1
mask = 1
xscale = 1, 6
width= 640, 3840
[BG 1-1];;;rogo
type = parallax
spriteno = 1, 1
layerno = 0
start = 0, 0
delta = 0.8, 1
mask = 1
xscale = 1, 1.75
width= 160, 280
ロゴ画像が、地面の画像のdeltaとあうように、xscaleは同じにしました。
同じく、width も引き伸ばされるように
width= 640, 1120 こう書きます。
そこで、次はこう書いてみました。
レイヤー 1,2 地面(parallax)(640*100)