MUGEN ( フォント環境:MS ゴシック 標準 サイズ10 )  ※文字での図が非常に多いので、↑の環境を推奨。少なくとも等幅フォントで。   速度処理(Vel)の基本 byADI 20:17 2013/01/12 いまさら修正 22:09 2011/11/23 23:09 2011/11/22 ステコンについて追記。もういいかな 21:19 2011/11/07 とりあえずここまで 16:31 2011/11/07 書き始め >←こう書かれてる部分は専門的なことばっかりです。 ■■■Velの性質(初めての方は読み飛ばし可)  ※細部までは調べていないため、実際と異なる可能性が高いです※  1.Velは毎フレーム、ステート処理後にその数値分、ユニットの座標を動かします。   1−1.Bindなどを行っている場合、それらの処理は行われません(?)。※調べてない※   1−2.順番は「ステート処理>速度を座標に加算>速度を物理状況に〜>次のユニットorフレーム」  2.Velは物理的状況(Physics)の状態などで速度の加算処理の後に数値が変化します。   2−1.S(立ち)状態ではVel XがVel X*Const(Movement.Stand.friction)の数値になります。   2−2.C(屈み)状態ではVel XがVel X*Const(Movement.Crouch.friction)の数値になります。   2−3.A(空中)状態ではVel YがVel Y+Const(Movement.yaccel)の数値になります。   2−4.N(無効)状態では、システムによるVel X,Vel Yの変化はありません。  3.Velは移動動作や攻撃を受けた際などに数値が設定されます。   3−1.例外としてStateType=S&&Ctrlで下へキーを入れる(屈ませる)とVel Xが0になる模様。  4.VelはVeladd,Velmul,Velsetのステートコントローラーで設定できます。   4−1.common1.cnsの立ちステートには、VelをYXそれぞれ0にする記述があります。   4−2.common1.cnsのふっとびステートはPhysics=NでVeladd y=GetHitVar(yaccel)があります。   4−3.それらのステートコントローラー以外にTargetBindなどでも指定される模様?  補足※物理状態(Physics)がA(空中)の時に下へ加速し地面へ到達すると、   着地ステート(52番ステート)へ強制的に移行し、ステート側でPos YやVel Yが0に設定されます。 >着地の処理のタイミングは「速度処理の後」で、52以降後再度番号ステート読み込みをしています。  ●フレーム(F)とは  ゲームなどコンピューターの処理は1秒間60回など、   細かい処理を繰り返し行うことで動いているように見せています。その一回の処理を1フレームと呼びます。  映画のフィルムを思い浮かべてもらえると分かりやすいかと。あれでいう1コマが1フレームです。  映画では↓この1コマ1コマに画像が入っており通常は1秒に計24コマを表示させます。  24コマ→□□□□□□□□□□□□□□□□□□□□□□□□  mugenでは「60回/1秒」で↓この1フレーム1フレームで全員の処理+表示を行い、それを1秒間に60フレーム行なっています。  60フレーム→□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□ ■■■初歩 ■距離の単位について > ピクセル(px)です。通常の(本来の)画面サイズが320px×240pxなので、 > ステージにもよりますが横幅が大体300前後、地面から画面上まで200程度。 > KFMの棒立ちの当たり判定の頂点は-93、当たり判定の幅は29(前16,後-13)です。 > 表示されないだけで内部的な0.xxの小数数値もあります。 > ハイレゾ(2倍拡大)仕様の場合は「表示のピクセル/2」が1pxとなります。  と言っても、他に距離の単位は無いので単位は省略して説明しますが。 ■Velとはなんぞや?  速度(Velocity)です。Vel Xは横の速度、Vel Yは縦の速度です。  例えば、Vel Xが3固定の場合、1フレーム毎に3ずつ進みます。 0→●□□□□□□□□□□□□□□□□□□□□ (□1つで1px)   ×123 1 →□□●□□□□□□□□□□□□□□□□□      ×123 2 □□□→□□●□□□□□□□□□□□□□□         ×123 3 □□□□□□→□□●□□□□□□□□□□□            ×123 4 □□□□□□□□□→□□●□□□□□□□□               ×123 5 □□□□□□□□□□□□→□□●□□□□□                  ×123 6 □□□□□□□□□□□□□□□→□□●□□                     ×123 7 □□□□□□□□□□□□□□□□□□→□□●→  1秒60Fですので、1秒間に3*60の180も進むことになります。  Vel Yが3の場合は1フレーム毎に3ずつ下がっていきます。  ↓プラスが下  0 1 2 3 4 5 6 7    0 1 2 3 4 5 6 7  ●×↓ □ □ □ □ □ □    □ □ □ □ □ □ □3●  □1□ □ □ □ □ □ □    □ □ □ □ □ □ □2□  □2□ □ □ □ □ □ □    □ □ □ □ □ □ □1□  □3●×↓ □ □ □ □ □    □ □ □ □ □ □3●×↑  □ □1□ □ □ □ □ □    □ □ □ □ □ □2□ □  □ □2□ □ □ □ □ □    □ □ □ □ □ □1□ □  □ □3●×↓ □ □ □ □    □ □ □ □ □3●×↑ □  □ □ □1□ □ □ □ □    □ □ □ □ □2□ □ □  □ □ □2□ □ □ □ □    □ □ □ □ □1□ □ □  □ □ □3●×↓ □ □ □    □ □ □ □3●×↑ □ □  □ □ □ □1□ □ □ □    □ □ □ □2□ □ □ □  □ □ □ □2□ □ □ □    □ □ □ □1□ □ □ □  □ □ □ □3●×↓ □ □    □ □ □3●×↑ □ □ □  □ □ □ □ □1□ □ □    □ □ □2□ □ □ □ □  □ □ □ □ □2□ □ □    □ □ □1□ □ □ □ □  □ □ □ □ □3●×↓ □    □ □3●×↑ □ □ □ □  □ □ □ □ □ □1□ □    □ □2□ □ □ □ □ □  □ □ □ □ □ □2□ □    □ □1□ □ □ □ □ □  □ □ □ □ □ □3●×↓    □3●×↑ □ □ □ □ □  □ □ □ □ □ □ □1□    □2□ □ □ □ □ □ □  □ □ □ □ □ □ □2□    □1□ □ □ □ □ □ □  □ □ □ □ □ □ □3●    ●×↑ □ □ □ □ □ □  0 1 2 3 4 5 6 7    0 1 2 3 4 5 6 7                     ↑マイナスが上  反対にー3であれば1フレーム毎に3ずつ上がって行きます。  Vel Xも−3であれば1フレーム毎に3ずつ後ろへ動きます。  こうした「1フレーム毎に速度分動く」というのがVelの初歩です。  進むタイミングはステートの処理が終わったあとです。(詳しくは冒頭参照)  AI的には、Vel X>0で「前に進んでいる」ことVel Y>0で「落ちていること」が分かります。 > ただし座標移動の処理(Posadd,Posset)でも移動はできますので、 >  速度0だから必ずしも静止状態というわけではありませんが。難しいことは後。 ■Velの性質  Velには地上だとVel Xに「摩擦係数」がかかって減速していき、   空中だとVel Yに「重力加速度」がかかってジャンプからも減速・落下して着地します。  ジャンプしたあとにちゃんと落下して着地できるのは大体「重力加速度」のお陰、   一部のキャラのダッシュなどで緩やかに減速していくのは大体「摩擦計測」のお陰です。 > 実際の設定数値はキャラのCNSファイル(.defの[Files]で指定されてるcns=xxx.xxのファイル)の中の、 >  [Movement]設定の中に書かれています。Yaccelが重力加速度、Stand.Frictionが立ち摩擦、Crouch.Frictionが屈み摩擦です。 > ちなみにCnsの設定はConst(xxx.xxx)で記述からの参照ができます。使い方は後。 > 例えばKFMの「立ち状態の摩擦係数(Coonst(movement.stand.friction))」は「.85」に設定されています。 > もし速度が10の場合最初のフレームで10進んだ後、速度が*.85され、8.5に減速します。それを繰り返すと 0 10.〜K____,____,____,____,____,____,____,____,____,____,____,____,____, 0 ※実際は小さい数字は切り捨てて表示 1 10. *-------->K____,____,____,____,____,____,____,____,____,____,____, 10  10*0.85=次は8.5 2 8.5 ,____,____*------>K_,____,____,____,____,____,____,____,____,____, 18.5 8.5*0.85=次は7.225 3 7.225,____,____,____,__*----->K____,____,____,____,____,____,____,____, 25.725 7.225*0.85=次は6.141,, 4 6.141,____,____,____,____,____*---->K___,____,____,____,____,____,____, 31.866,, 6.141,,*0.85=次は5.220,, 5 5.220,____,____,____,____,____,____,*---->K__,____,____,____,____,____, 37.086,, 5.220,,*0.85=4.437,, 6 4.437,____,____,____,____,____,____,____,_*-->K___,____,____,____,____, 41.523,, 4.437,,*0.85=3.771,, 7 3.771,____,____,____,____,____,____,____,____,*-->K____,____,____,____, 45.294,, 3.771,,*0.85=3.205,, 8 3.205,____,____,____,____,____,____,____,____,____*->K_,____,____,____, 48.500,, 3.205,,*0.85↓ 9 2.724,____,____,____,____,____,____,____,____,____,__*->K___,____,____, 51.225,, 2.724,,*0.85↓ 10 2.316,____,____,____,____,____,____,____,____,____,____,*>K_,____,____, 53.541,, 2.316,,*0.85↓ 11 1.968,____,____,____,____,____,____,____,____,____,____,__*>K____,____, 55.510,, 1.968,,*0.85↓ 12 1.673,____,____,____,____,____,____,____,____,____,____,____*>K__,____, 57.183,, 1.673,,*0.85↓ 13 1.422,____,____,____,____,____,____,____,____,____,____,____,_*K_,____, 58.606,, 1.422,,*0.85↓ 14 1.209,____,____,____,____,____,____,____,____,____,____,____,__*K,____, 59.815,, 1.209,,*0.85↓ 15 1.027,____,____,____,____,____,____,____,____,____,____,____,___*K____, 60.843,, 1.027,,*0.85↓ 16 0.873,____,____,____,____,____,____,____,____,____,____,____,____*K___, 61.716,, 0.873,,*0.85↓ 17 0.742,____,____,____,____,____,____,____,____,____,____,____,____,*K__, 62.459,, 0.742,,*0.85↓ 18 0.631,____,____,____,____,____,____,____,____,____,____,____,____,_*K_, 63.090,, 0.631,,*0.85↓ 19 0.536,____,____,____,____,____,____,____,____,____,____,____,____,_*K_, 63.626,, 0.536,,*0.85↓ 20 0.455,____,____,____,____,____,____,____,____,____,____,____,____,__*K, 64.082,, 0.455,,*0.85↓ > こんな風になります。たった1/3秒でほとんど進まなくなりましたが、64進んでいます。KFM約2体分。 > 16F目で既にVel Xは1未満になっており、移動も19F目では0となっています。 > ちなみにKFMの屈み状態の摩擦係数(Const(movement.crouch.friction))は.82なので、13F目で速度1未満に15F目で移動0が出ます。  数字だけ見ると頭が痛いですが、図だけ見てだいたいこんな感じに減速するんだと覚えておけば十分です。  こちらは掛け算なので係数が小さいほど遅くなりやすいです。  1だと減速せず、1より大きいとむしろ加速します。反対に0なら初速分だけしか動きません。 > 次に重力加速度についてですがMUGEN内の物理法則では「指定された一定値が速度に加算される」という処理です。 > 例えばKFMの「重力加速度(Const(movement.yaccel))」は「.44」なので、上ジャンプ速度「-8.4」から軌道を考えてみましょう。 ※大雑把な表なので大体のイメージが分かればok。  ,##,0 ,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 32 33 34 35 36 37 38 39##40 -88## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-88 -86## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-86 -84## || :: || :: || :: || :: || ## || :: || :: || :: || :: ||▲##■||▼:: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-84 -82## || :: || :: || :: || :: || ## || :: || :: || :: ||▲::▲|| ## || ::▼|| :: || :: || :: || ## || :: || :: || :: || :: || ## ||-82 -80## || :: || :: || :: || :: || ## || :: || :: || ::▲|| :: || ## || :: ||▼::▼|| :: || :: || ## || :: || :: || :: || :: || ## ||-80 -78## || :: || :: || :: || :: || ## || :: || :: ||▲:: || :: || ## || :: || :: ||▼:: || :: || ## || :: || :: || :: || :: || ## ||-78 -76## || :: || :: || :: || :: || ## || :: || ::▲|| :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-76 -74## || :: || :: || :: || :: || ## || :: ||▲:: || :: || :: || ## || :: || :: || ::▼|| :: || ## || :: || :: || :: || :: || ## ||-74 -72## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: ||▼:: || ## || :: || :: || :: || :: || ## ||-72 -70## || :: || :: || :: || :: || ## || ::▲|| :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-70 -68## || :: || :: || :: || :: || ## ||▲:: || :: || :: || :: || ## || :: || :: || :: || ::▼|| ## || :: || :: || :: || :: || ## ||-68 -66## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-66 -64## || :: || :: || :: || :: || ##▲|| :: || :: || :: || :: || ## || :: || :: || :: || :: ||▼## || :: || :: || :: || :: || ## ||-64 -62## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-62 -60## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ##▼|| :: || :: || :: || :: || ## ||-60 -58## || :: || :: || :: || :: ||▲## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-58 -56## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-56 -54## || :: || :: || :: || ::▲|| ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||▼:: || :: || :: || :: || ## ||-54 -52## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-52 -50## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || ::▼|| :: || :: || :: || ## ||-50 -48## || :: || :: || :: ||▲:: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-48 -46## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-46 -44## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: ||▼:: || :: || :: || ## ||-44 -42## || :: || :: || ::▲|| :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-42 -40## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-40 -38## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || ::▼|| :: || :: || ## ||-38 -36## || :: || :: ||▲:: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-36 -34## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-34 -32## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: ||▼:: || :: || ## ||-32 -30## || :: || ::▲|| :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-30 -28## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-28 -26## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-26 -24## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || ::▼|| :: || ## ||-24 -22## || :: ||▲:: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-22 -20## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-20 -18## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-18 -16## || ::▲|| :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: ||▼:: || ## ||-16 -14## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-14 -12## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-12 -10## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||-10 ,-8## ||▲:: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || ::▼|| ## ||,-8 ,-6## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||,-6 ,-4## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||,-4 ,-2## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## ||,-2 +-0##▲|| :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: || ## || :: || :: || :: || :: ||▼##■||+-0  ,##,0 ,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 32 33 34 35 36 37 38 39##40 速度0.0-8.4-8.0-7.5-7.1-6.6-6.2-5.8-5.3-4.9-4.4-4.0-3.6-3.1-2.7-2.2-1.8-1.4-0.9-0.5 0.0 0.4 0.8 1.3 1.7 2.2 2.6 3.0 3.5 3.9 4.4 4.8 5.2 5.7 6.1 6.6 7.0 7.4 7.9 8.3 8.8 位置〜 _-8.40 -16.36 -23.88 -30.96 -37.60 -43.80 -49.56 -54.88 -59.76 -64.20  11〜 -68.20 -71.76 -74.88 -77.56 -79.80 -81.60 -82.96 -83.88 -84.36 -84.40 ※20F目で頂点に 21〜 -84.00 -83.16 -81.88 -80.16 -78.00 -75.40 -72.36 -68.88 -64.96 -60.60  31〜 -55.80 -50.56 -44.88 -38.76 -32.20 -25.20 -17.76 _-9.88 _-1.56 __7.20  >上昇から約1/3秒で頂点に達し、跳躍から計約2/3秒で着地する計算です。 >グラフにすると綺麗な曲線になるのですが、図の都合上ちょっといびつですね。  こちらも、大雑把に感じが分かればいいです。  重力加速度は一定の足し算なので数値が大きいほど早く地面に付き、   数値が低いほど滞空時間が長いです。いわゆるティッシュは後者ですね。  もし重力加速度が0だった場合は落ちること無く上がり続けます。反対に非常に大きな数字だとすぐに落下します。  ちなみに空中ではVel Xの減速はありません。滞空時間が長くVel Xが大きめだと非常に遠くまで跳びます。 > あと、この重力加速度は通常時のもので、吹き飛び中などは別の処理で落下します。  ただし常にそうした処理が行われているわけではなく、   物理状態(Physics)というものが、A(空中)なら重力加速度が、S(立ち)やC(屈み)なら摩擦係数が、   N(無し)ならそのどちらの影響も受けない状態になります。  例えば吹っ飛び中(昇竜技で浮かせた場合など)にもちゃんと落下していきますが、物理状態(Physics)はN(無し)で、   VelAddという速度変更記述で「技で指定された重力加速度」を参照して通常の重力の代わりに落下させています。  よく分からなければ、   ●空中だと落下してくることもあるし、しないこともある。   ●地上なら減速することもあるし、しないこともある。  程度に覚えておきましょう ■■■命令処理とか ■ステートコントローラー:Velset,Veladd,Velmul,他(HitVelSet)  Velはステートコントローラー(処理の命令)などで指定されています。  そうした方法で指定しなければ、物理状態以外で速度が変化することはありません。  なので、ステート(動作処理)の記述を見ることで、どういった速度にしているのかある程度分かります。  通常の基本ステート(Common1.cns)から、例を出してみましょう。  通常の立ちステート[Statedef 0]では [State 0, 2] type = VelSet trigger1 = Time = 0 ←★ステートに入った時(1F目) y = 0 [State 0, 3] ;Stop moving if low velocity or 4 ticks pass type = VelSet trigger1 = abs(vel x) < 2 ←★速度の絶対値(0からの数→-なら+に変える)が、 trigger2 = Time = 4 ←★ステートに入ってからから4F後(5F目) x = 0  という2つのVelSet(Velを指定した数にする)のステートコントローラーがあります。  これらはそれぞれ、   0,2●「Y速度(上昇・落下)を最初に0にする」という命令と、   0,3●「X速度が遅くなったり、ちょっとだけ時間が立ったら、X速度を0にする。」という命令です。  これらで浮いたり沈んだりするのを停止させ、ずっと動き続けることも抑えています。 > 補足:物理状態(Physics)の摩擦は掛け算なので、それだけでは0になるまで非常に時間がかかるみたい。 >    立ち状態はいつまでも居続けられるステートというのもあってか、こういう処理になっている。  通常の歩きステート[StateDef 20]では [State 20, 1] type = VelSet trigger1 = command = "holdfwd" ←★コマンド:キーが前へ押しっぱなし x = const(velocity.walk.fwd.x) [State 20, 2] type = VelSet trigger1 = command = "holdback" ←★コマンド:キーが後ろへ押しっぱなし x = const(velocity.walk.back.x)  この2つのVelSetで、  20,1●「レバーが前側なら、X速度を前歩きの速度に」という命令と  20,2●「レバーが後ろ側なら、X速度を後ろ歩きの速度に」という命令が入っています。  これで、同じ20番のステートで前後両方に動かしているわけです。 > VelSetの処理はステートコントローラーだけでなく、 >  ステート冒頭[StateDef ****]のオプションでVelSet = 0(#X速度),0(#Y速度)という風にも指定ができます。  打って変わって、通常の空中ガードステート[StateDef 132]では、 [State 132, 2] type = VelAdd trigger1 = 1 ←★毎フレーム処理 y = Const(movement.yaccel)  という風にVelAdd(現在の速度に加算する)のステートコントローラーで、  通常の物理状態の処理で行われる落下速度の加算(↑にも表があるアレ)をしており、   ●通常の空中動作中と同じような感じで空中ガード中も落下していきます。  こうした処理は幾つかの場所で使われています。 > ※細かい補足:なぜこのような方法になっているかといえば >  物理的状況が空中(Physics=A)で地面に着くと自動で着地ステート[StateDef 52]へステートが変わるため。 >  しかしガードを勝手に解いてしまうとマズいので、このVelAddで落下させ、 >   Pos Y>=0&&Vel>0になったら「立ちガードステート」へ飛ばすことで、ガードを継続させています。 > ※着地状態になってはいけない「吹っ飛び中」なども、同様の処理を行なっています。 >  ただ色々なChangeStateの前に配置されているので、 >  ChangeStateした先でも加算されてしまい、2重3重の加算が度々発生しているようです。(通称は「重複バグ」など)  それ以外にも、倒れステート[StateDef 5110]では、 [State 5110, 13] ;Friction type = VelMul trigger1 = 1 x = 0.85  というVelMul(現在の速度に掛け算する)のステートコントローラーで、   ●倒れ中にもしっかり減速させています。 > 立ち状態・屈み状態とも異なる「倒れ中の摩擦係数処理」ですね。 > ちなみにVelAddとVelMulは、VelSetのステートコントローラーでも、 >  Vel Y+3やVel X*0.85といった計算でそれぞれを再現することはできます。 > またちょっと変わった速度処理のステートコントローラーとして、HitVelSetというものがあります。 > これは攻撃を受けた時の吹き飛び量・ノックバック量( GetHitVar(XVel),GetHitVar(YVel) )を反映させるというもの。   ●攻撃を受けた後の吹っ飛び具合も、ステートコントローラーで処理されているわけです。 > こちらはCommonのくらいステート以外にはほぼ使われてませんけど。  とまあこのように速度は基本的にステートコントローラーによって設定されているわけです。  しかし、動くこと自体が全て速度で行われているわけではありません。 ■ステートコントローラー:PosSet,PosAdd  この2つは「座標を動かす」という命令です。速度の処理ではありません。 > Pos系の処理は速度と異なり処理をした時に動く。速度はステートが終わった後にしか動かない。 > 速度に影響を与えず、座標だけを動かします。  大体の着地処理には [State 52, 2] (これは通常の着地ステート[StateDef 52]) type = PosSet trigger1 = Time = 0 y = 0  といったような「Y座標を0にする」という処理が行われています。 > そうしないと高い所から落ちた後にY速度だけ0にしても、「地面にめり込んだまま」になってしまいます。 > 着地ステート(52)以外にも、着地処理全般に、PossetのY=0が行われています。 > ちなみにPossetのX指定は「画面の中央から右に+,左に-」という状態なので注意。ほとんど使われない。  PosAddは基本のステートには使われていませんが、 >  +指定で「X前,Y下」、-指定で「X後,Y上」に動かすことがき、   「座標を少しだけ動かしたい」といった場合や、   速度とは別の処理で動かす処理をしたいという場合などに使われています。 [State a] Type = PosAdd Trigger1 = Time = 0 X = 15  という記述なら動作の最初に15だけ前進させるという感じです。   ●特定の場所に動かしたい場合は、PosSet   ●特定の数値だけ動かしたい場合は、PosAdd  ってわけです。 >■補足 > Bind系の命令は、もしかしたら速度をいじってるかもしれません。 > よくわかってません。