DHQの雑記とか

mugen関連でいろいろと

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

1行でできる摩擦計算

すでにADIさんのページで摩擦を考慮した距離計算のテンプレが紹介されていますが、
ここでは簡単にまとめたものを紹介。いくらか場合分けもしてあります。

12/06/30
計算式の導出と、gethitvar(vel x)ではなくvel xを使用している理由について追記

相手の摩擦を考慮しつつ、nF間に相手が動く距離をvar(0)に代入するステコン

;相手が立ちくらい状態
[state -2]
type = varset
triggerall = numenemy
trigger1 = enemy,statetype = S
trigger1 = enemy,movetype = H
trigger1 = enemy,stateno = [5000,5001]
v = 0
value = floor(enemy,vel X*((enemy,const(movement.stand.friction))**n-1)/ln(enemy,const(movement.stand.friction)))

;相手がしゃがみくらい状態
[state -2]
type = varset
triggerall = numenemy
trigger1 = enemy,statetype = C
trigger1 = enemy,movetype = H
trigger1 = enemy,stateno = [5010,5011]
v = 0
value = floor(enemy,vel X*((enemy,const(movement.crouch.friction))**n-1)/ln(enemy,const(movement.crouch.friction)))

;相手がガード状態
[state -2]
type = varset
triggerall = numenemy
trigger1 = enemy,statetype = S || enemy,statetype = C
trigger1 = enemy,stateno = [150,153]
v = 0
value = floor(enemy,vel X*((enemy,const(movement.stand.friction))**n-1)/ln(enemy,const(movement.stand.friction)))

くらい状態以外の状況では相手のphysicsが不明なので、対象外としています。
またガード状態では相手が任意に立ちとしゃがみを切り替えられるので、
より遠くに滑る立ち状態での摩擦係数を採用しています。

これらの計算式ですが、相手と自分との処理順序や、
time>=gethitvar(slidetime)になった後に減速が強まることとの兼ね合いは考慮していません。
特に処理順序は1F分の移動距離の誤差が出てきますので、
相手のノックバックが大きな状況では注意した方がいいかもしれません。
さらにhitshaketimeや画面端の影響など、カバーするべき状況はいくらでもあります。
また、場合分けによりそれらをクリアしても、積分していることによる誤差が必ず数ドット出ますので、
あまりスレスレを狙わず、適当に余裕を持たせた方がいいと思われます。


追記
time現時点でのvel xをv1とした場合、physics依存の摩擦が1度かかるとvel xはv1☓aになり、
nF経過した時点のvel xはv1☓a^nとなります。
移動距離は速度の積分で得られますので、nF間の移動距離は、
上記のv1☓a^nをaの関数と見て0~nまで積分することで得られます。
なおmugen上ではnが整数しか取らないため単純に連続関数と見て積分すると誤差が出るわけですが、
正直1Pと2Pの処理順序だのなんだのでぐちゃぐちゃもいいところなので
実装する時は適当に余裕を持たせるしかないと思われます。

gethitvar(vel x)は被弾したhitdefもしくはprojectileのhitvelを参照し続けるため、
摩擦によって原則が始まった後も同じ値を返し続けます。
ノックバックで滑り始めた直後にしか計算しないならそれでもいいのですが、
毎F更新を行うため常時値が書き換わるvel xの値を使用しています。

  1. 2012/06/30(土) 23:20:48|
  2. mugenのAI
  3. | トラックバック:0
  4. | コメント:0
<<プレイヤー操作動画上げてみました その25 | ホーム | プレイヤー操作動画上げてみました その24>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://dhq.blog137.fc2.com/tb.php/57-b30e6e5b
この記事にトラックバックする(FC2ブログユーザー)

プロフィール

DHQ

Author:DHQ

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

未分類 (0)
お知らせ (2)
mugenの仕様 (16)
mugenのAI (3)
キャラ製作の豆知識 (31)
動画について (32)

FC2カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる

QRコード

QR

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