Profile

アメリ

Author:アメリ
キャラ紹介

line
カテゴリ
AIR (1)
Pos (1)
Var (1)
FAQ (1)
line
不許カウンター
line
最新記事
line
最新コメント
line
最新トラックバック
line
月別アーカイブ
line
sub_line
カレンダー
04 | 2017/05 | 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
line
検索フォーム
line
リンク
line
RSSリンクの表示
line
QRコード
QR
line
ブロとも申請フォーム

この人とブロともになる

line
sub_line
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
line
・GameWidth

 基本はワイド対応なので他の方法でも構いませんが、先ず別の項目を説明しておきます。
Hitdef(Projectile)には次の値を入れておきましょう。

fall.yvelocity = -4.5
yaccel = .35

 この2つは初期値がLocalcoordで変化してしまうのですが、4:3の初期値(上記)を入れておくと期待通りに動くので必ず全てに設定しておきましょう。勿論自分で決めた値でも構いません、とにかく設定してある事が重要です。詳しくはリンクの「気まぐれ猫(新MUGEN)」の方のブログを見て下さい。localcoordについては私の頁を見て下さい。

 さてでは画面の幅を取得するmugen1.0のトリガーの変わりです。-3,-2,-1ステートに入れておけばどこでも使えます。ただ、-1で使う事は多分無いと思いますが、通常はコマンド受け付けして-1ステートからChangeStateするので入れておかないと他のステートの開始時点で効果がありません。


 改良しました。
GameWidth = floor(screenpos x - pos x)*2

左端からの距離から中央からの距離を引いて画面の半分の距離を出して2倍にしています。
pos は浮動小数点を返すので一応floorしています。localcoord が奇数になっているキャラは ceilの方が良いかもしれません。


・単純なワイド対応
scale = 1*(var(49)/320.0),1*(var(49)/320.0)

 1が基準となる倍率です。小数点を含まない式にすると426/320は1になってしまいます。元々426用の幅で作ってあれば拡大する必要が無いので大丈夫です。使い方次第ですね。

 Ahojin1x4 のワイド対応は p1 と left で色々な方法でやっているのでこういう風にしたいみたいなのがあれば参考にしてください。leftでやっているのは主に挑発と勝利時の表示です。


・画面幅を取得する為にヘルパーを使う
 helpertype = normal のヘルパーを postype = right で出すとカメラは移動せずに画面端に出ます。この位置は pos x で言うと 画面中央から半分になり、screenpos x だと 画面幅(GameWidth)になるので parentvarset でプレイヤーに設定します。screenpos は画面左上基準なので右端は常に画面端となります。

;---------------------------------------------------------------------------
; state for Helper to get GameWidth.
;---------------------------------------------------------------------------
[statedef 4999]
anim = 4999; or 0

[state , set GameWidth in player variable]
type = parentvarset
trigger1 = time = 0
var(49) = ceil(screenpos x)

[state , DestroySelf]
type = DestroySelf
trigger1 = time = 0

[state , ChangeState for player]
type = ChangeState
trigger1 = !IsHelper
value = 0

;---------------------------------------------------------------------------
; States that are always executed (use statedef -2)
;---------------------------------------------------------------------------
[statedef -2]


[state -2, call helper to get GameWidth]
type = helper
trigger1 = var(49) = 0
type = normal
id = 4999
postype = right
pos = 0,0
stateno = 4999
supermovetime = 1
pausemovetime = 1

出したヘルパーは必要ありませんし1㍉でも動いたら値が変わってしまうので DestroySelf で消しておきましょう。

 縦幅は下端に出せないのとステージの高さも不定ですしヘルパーでは無理です。どうしてもやりたいならprojectile をゆっくり下に飛ばしてみましょう。縦に並べるとか。


・カットインをキャラクターの位置に表示する。
 ワイドを越えた画面に対応。
;facing = facing
postype = p1
pos = (var(49)>426)*floor(pos x*(pos x)/var(49)-abs(floor((pos x)/var(49)*320)))+(var(49)<=426)*floor(-pos x),120-floor(screenpos y)

 登録してある画像が左上揃え(left用)ではなくてキャラクター中心揃え(p1用)の場合です。
画面端に寄っても端っこで切れずに止まります。facingは反転させたくない場合に使ってください。
アホジンのcnsからvar(49)を検索すれば幾つも見つかると思うので参考にしてください。

 普通はleftにしてremovetimeとbindtimeを同じにして固定させます。横に伸ばさない場合はこんな感じで。
triggerall = facing = 1
trigger1 = Time = 0
facing = facing
postype = left
pos = (screenpos x>426/2)*floor(screenpos x-426/2),0

 右端から出す場合
triggerall = facing = -1
trigger1 = Time = 0
facing = facing
postype = right
pos = (screenpos x<var(49)-426/2)*floor(screenpos x+426/2-var(49)),0

 こうすると端固定ではなくキャラの位置に合わせた場所に出ます。この式は画像の大きさが426の場合で426を越えると画面より小さくなるので移動する様になります。
アホジンの中身が最新版で色々使い分けているので参考にしてみて下さい。
 背景を真っ黒にしたい様な場合はleft側だけでscaleを変更して画面の幅に拡大するだけで大丈夫です。キャラクターのカットインの場合は端っこから出すよりキャラの位置基準の方が良いと思いますが色々試してみてください。
 また、velを調整して移動させる方法もあります。画面外まで移動させたい場合はboundを設定しておけば画面外で勝手に消えます。


-------------------- おまけ --------------------


・stageのBound固定(15,15)の場合に幅計算で出せる式。


[state -2, GameWidth]
type = varset
trigger1 = RoundState > 0
trigger1 = var(49):=FrontEdgeDist+BackEdgeDist+31
trigger1 = var(49):=var(49)+(var(49)>320+1)*floor(1+(var(49)-320+31)/10)
var(49) = var(49)+(var(49)%10)*(1-2*(var(49)%10<5))
ignorehitpause = 1

 どうしてBoundが統一されていないのか。取得できない値が多い過ぎるすぎる・・・
スポンサーサイト
line
line

line
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。