MUGENについて語るスレpart:155


告知欄


■MUGENについて語るスレpart:155

現在表示しているスレッドのdatの大きさは171KBです。
レス数が1000を超えています。残念ながら全部は表示しません。

49 名前: no name :2008/10/27(月) 23:54:17 ID:z1gpElb4

流れ無視で悪いけど
最近サボり気味だったAI製作に久々に手を付けてみたら
行き詰ってた摩擦計算が上手く動くようになったので晒してみる。(誤差±1程度)
ただし画面端は未対応(一応動くけど、cornerpushと相手knockbackで開く距離に差が無い場合に限る)
cornerpush.veloffの計算はどうなってるのやらサッパリ分からん…

[State -2, Facing]
type = VarSet
trigger1 = 1
var(X) = -(Facing)*(EnemyNear,Facing)
ignorehitpause = 1

[State -3, 相手摩擦係数]
Type = VarSet
Trigger1 = 1
fvar(Y) = IfElse(P2StateType=C,(EnemyNear,Const(movement.crouch.friction)),(EnemyNear,Const(movement.stand.friction)))
IgnoreHitPause = 1

【運用記述】
Triggerall = !(P2StateType = A || P2StateType = L)
Triggerall = P2MoveType = H
Triggerall = EnemyNear,GetHitVar(yvel) = 0
Triggerall = EnemyNear,GetHitVar(HitShakeTime) + EnemyNear,GetHitVar(HitTime) >= 発生F-1
Trigger1 = (技使用条件,Trigger2のものと同じ)
Trigger1 = (abs(EnemyNear,Vel X) = abs(EnemyNear,GetHitVar(xvel))) || EnemyNear,Vel X = 0
Trigger1 = abs(P2BodyDist X+(abs(EnemyNear,GetHitVar(xvel))*(1-fvar(Y)**(IfElse((EnemyNear,GetHitVar(HitShakeTime)>発生F),0,(発生F-EnemyNear,GetHitVar(HitShakeTime)))))/(1-fvar(Y)))*var(X))=[射程]
Trigger2 = (技使用条件,Trigger1のものと同じ)
Trigger2 = !((abs(EnemyNear,Vel X) = abs(EnemyNear,GetHitVar(xvel))) || EnemyNear(var(2)),Vel X = 0)
Trigger2 = abs(P2BodyDist X-((EnemyNear,Vel X)*(1-fvar(Y)**(IfElse((EnemyNear,GetHitVar(HitShakeTime)>発生F),0,(発生F-EnemyNear,GetHitVar(HitShakeTime)))))/(1-fvar(Y)))*var(X))=[射程]

射程はAirの間合いからconst(size.ground.front)を引いた値が基本だが
相手仰け反り時の食らい判定を考慮して調整する必要有り
まあ長々と書いてますが要は公比が摩擦係数の等比数列和なので人によってはもっと簡略化出来るかも?
長々と書いたけど、AI作ってる人の参考になれば幸いです。

…さて、さっさとAI完成させねば。
まだ10%くらいしか出来てないし…orz

新着レスの表示 掲示板に戻る 全部 前100 次100 最新50