Mugen Fighter Guild(MFG)和The Mugen Archive(MA)是目前欧美最大的两个Mugen论坛,拥有大量资源

招式对应按键编辑(cmd文件)

cmd文件主要负责角色的按键对应的招式。目前FF没有针对cmd文件进行编写,所以只能用记事本或其他相关软件来编写。这里依然以中文功夫男的cmd文件为例,强烈建议下载观看,其中详细记录了cmd的细节规则和大量实例,本章教程只做简单介绍。

 

1、全局设定

cmd最开头会有remapDefaults两部分,一般用默认的就可以。

[Remap]

x = x

y = y

z = z

a = a

b = b

c = c

s = s

这一段可以让玩家简单的重新排列该人物的攻击按键。格式是“以前对应的键 = 修改后的键”,如果不填写修改后的键,则以前对应的键将失效。

 

[Defaults]

command.time = 15                  ;默认接受指令的时间,最小为1

 

command.buffer.time = 1                 ;默认指令蓄力的时间,最小为1,最大为30

这一段主要是指令的相关默认参数,包括按键容错时间和按住蓄力的默认时间。

 

2、招式

全局设定往下就要编写每一个招式了。每一个招式由两部分构成,操作指令和触发条件,而这两部分分别写在不同的地方。我们先来说操作指令。

 

2.1、操作指令

一个招式的操作指令的语法规范如下:

   [Command]

   name = "指令名"                                            ;指令的名字,不可重复,因为后面的触发条件会调用这个名字,指令名区分大小写。

   command = 按键输入                                  ;按键输入,输入的按键的列表。每一个键由逗号隔开,方向键和攻击键之前可以用特殊符号来达到一些效果,详细见下面的按键说明。

   time = 接受指令输入的时间 (可选) ;接受指令输入的时间,以帧为单位。默认值可以在[Defaults]条目修改,通常为15

   buffer.time = 输入缓存的时间 (可选) ;输入的指令被缓存的时间。当一个指令被输入时,它在这段时间里都是有效的。

 

以“破裂功夫升龙”这招为例:

[Command]

name = "破裂功夫升龙"                            ;招式名为破裂功夫升龙

command = ~D, DB, B, D, DB, B, x           ;出招指令为↓↙←↓↙←X,也就是下后下后拳

time = 20                                                         ;在上一个按键输入后的20帧内按下的按键为有效按键

 

2.2、按键说明:

注意: 按键和招式名分大小写。

 八个方向分别是:

   B, DB, D, DF, F, UF, U, UB     (全大写)

   对应后,下后,下,下前,前,前上,上,上后。

 六个按键是:

   a, b, c, x, y, z               (全小写)

   在默认按键的情况下,xyz在上排,abc在下排。

   推荐使用xyz作为拳,abc作为脚。

 

方向键和攻击键之前可以用特殊符号来达到一些效果,比如:

   斜杠 (/) - 表示之后的一个键必须被按住不放

          举例, command = /D       按住不放下方向键

               command = /DB, a   按住不放下后方向键的时候按a

   波浪号 (~) - 表示按键被松开

          举例, command = ~a       松开a

               command = ~D, F, a 松开下方向键,按前方向键,再按a

          如果你想让某个键蓄力一段时间再放开,可以再波浪号之后加入你想保持蓄力的时间(以帧为单位)

          举例, command = ~30a     按住a30帧,再松开

   美金 ($) - 仅限上下左右方向键。表示包括正和斜方向

          举例, command = $D       包括下,下后和下前

               command = $B       包括后,下后和上后

   加号 (+) - 仅限攻击键。表示同时按多个键。

          举例, command = a+b      同时按ab

               command = x+y+z    同时按xyz

   大于号 (>) - 表示上一次按键和这一次按键之中不能掺杂其他的按键

          举例, command = a, >~a   按下a再松开a,而其中不按下或者松开其他键

   这些符号可以组合使用:

     举例, command = ~30$D, a+b     按住下,下后或者下前30帧,松开,然后同时按ab

 

   注意: 连续按方向键的指令会被MUGEN引擎自动理解如下:

         举例,cmd文件中的定义:

           command = F, F

         会被引擎理解成:

           command = F, >~F, >F

 

   对于有多个方向键的定义,例如四分之一圈下前,为了让招数能更容易的使出,最好在定义由一个"松开方向键"起始。

 

3、触发条件

有些招式的发动会有特殊条件,比如基本的蹲重拳、下脚,再比如耗气、限定空中释放,还包括派生技、格挡、GG的爆BURST条也都在这里定义。

 

所有招式的触发条件都要写在cmd文件最下面的[Statedef -1]下,-1是系统的固定编号,不可更改。无论人物处于哪个state-1这个state每一帧都会执行。

 

一个招式的触发条件就是一个state,所以书写格式和前面章节提到过的state类似,我们依然以功夫男的“破裂功夫升龙”这招为例:

[State -1, 破裂功夫升龙]

type = ChangeState                                                        ;类型必须是这个

value = 3050                                                            ;跳转至cns中的第3050statedef,也就是引用这个编号状态的所有参数

triggerall = command = "破裂功夫升龙"       ;必须和招式的name一致

triggerall = power >= 1000                                  ;气大等于于1000时可发动,1000等于1

triggerall = statetype != A                                   ;不处于空中时可发动

trigger1 = ctrl                                                          ;角色当前可控制时可发动倒地等状态为不可控制

trigger2 = hitdefattr = SC, NA, SA, HA              ;当游戏者正在站立或者蹲下时发动打击技能的时候可发动

trigger2 = stateno != [3050,3100)                     ;角色状态号(statedef)不在3050到3100之间时可发动(包含3050,不包含3100,这个区间对应功夫男的超必杀状态)

trigger2 = movecontact                                        ;命中对方或被对方防住时可发动

trigger3 = stateno = 1310 || stateno = 1330 ;角色状态号(statedef)13101330可发动。(这两个状态号都是格挡的状态号)

 

这里对trigger稍微解释一下,trigger1表示在正常状态下可以发动,trigger2表示在发动攻击时可以发动,以便于可以进行连段,trigger3表示在格挡的时候可以发动,以便于凹招反击


你,确定要这么做吗?
正在处理中...