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

2026-07-30 15:08:09 / 攻略指南

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

1、全局设定

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

[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 同时按a和b

command = x+y+z 同时按x,y和z

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

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

这些符号可以组合使用:

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

注意: 连续按方向键的指令会被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中的第3050号statedef,也就是引用这个编号状态的所有参数

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)为1310或1330时可发动。(这两个状态号都是格挡的状态号)

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