mugen人物制作教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
mugen人物制作教程
mugen人物制作教程 part1 通过这么久的学习,大家应该也知道了一些mugen的基本知识。
那么从这期开始,我们开始大家最关心的人物制作教程!不过要做一个人物需要的时间和精力比较多,要有一定的心理准备哦~ 诚邀极限流师傅坂崎良作为我们的示范人物,也就是说我这里给大家讲演的就是坂崎良的制作全过程~ 1, 文件结构信息def 首先我们先在chars目录下建立一个新的目录,目录名ryo。
建几个文件: ryo.def ryo.air ryo.cmd /doc/bb15373938.html,s 然后编辑ryo.def [Info] name = "Ryo Sazaki" ;人物全名 displayname = "Ryo" ;人物在游戏中显示的名字 versiondate = 10,29,2002 ;人物最后更新日期(方便版本控制而已,没有什么实际意义)mugenversion = 04,14,2001 ;人物适应的mugen版本 author = "Misamu K Young" ;人物的制作者,当然是署上您自己的大名了! ;pal.defaults = 1 ;默认的色表顺序(由于我们现在还没有做色表,所以先把这段注释掉,mugen程序的注释的方法就是在前面加";"号) ; 人物文件列表 [Files] cmd = ryo.cmd ;出招方法及条件 cns = /doc/bb15373938.html,s ;人物定义st = /doc/bb15373938.html,s ;人物states stcommon = /doc/bb15373938.html,s ;公用states sprite = ryo.sff ;图片 anim = ryo.air ;动画编号等 ;sound = ryo.snd ;声音文件,现在暂时不加先暂时写这些吧,保存。
2,图像信息sff 然后,我们开始抓图,首先先抓大小头像和站立,前进,转向,后退,跑步,急退等动作。
除了大头像不必使用公用色表外,其他图片都需要公用色表(公用色表就是说这些图片的颜色表是一样的。
)抓图以及图片处理在前面的杂志上都有做过详细介绍,不熟悉的的话可以找以前的杂志或者下载电子版查阅。
这里就不详细说明了,就大概的介绍一下步骤吧。
a,使用你习惯的模拟器抓这些图,记得把背景色设为洋红色或其他比较显眼的颜色。
b,使用acdsee或其他工具将这些bmp或png格式的图片转换成pcx格式。
c,把一张人物的图片
用paint shop 或photoshop 打开,转成256色,并把黑色和洋红色位置互掉,然后保存该色表(图片不需要保存)。
d ,除大头像外其它图片也load这个色表,保存。
图片处理好后,接下来的步骤就是使用mcm这个工具来制作sff文件了。
首先加入大小头像. Sff ->Add Sprite ,选图片,输入编号,加入. 值得注意的是在加入图片的时候有些要注意的东西,如下图所示记得在加大头像9000,1的时候要把共享色表 ,"Use shared palette" 前面的勾去掉. 小头像编号为9000,0。
大头像的编号为9000,1。
然后再加入站立动画,站立图等其他的图都要对准坐标, 坐标一般设在人物重心处,当然也要考虑图片之间的过渡的平滑. 再来就是转向的图,站立转向的图片编号是5,0 ,蹲下转向的图片编号设为6,0 下
蹲的图片,编号是10,0--10,1 前进的图片,编号是20,0--20,5 同样后退的图片,编号21,0--21,5 跑步和急退的图片,编号100,0-100,5 和105,0 保存该sff为ryo.sff 3,动作定义信息 air 然后我们开始air文件的制作。
用文本编辑器打开air文件。
;站立动作[begin action 0] 0,0,0,0,63 ;前面两个数字是图片在sff中的编号,第三个和第四个是相对坐标,最后一个是该帧图片的持续时间。
0,1,0,0,13 ;图片的时间可以用模拟器数.或者你偷懒的话随便写也成,不过感觉可能会有点怪. 0,2,0,0,13
顶
0* 2006-6-8 16:46
* 回复 *
* BUG绝缘酷仔
* 7位粉丝
* 2楼
0,3,0,0,27 0,2,0,0,13 0,1,0,0,13 ;站立转向[begin action 5] 5,0,0,0,1,H;后面再加一个H表示是关于x轴对称 5,1,0,0,2 5,0,0,0,2, ;蹲下转向 [begin action 6] 6,0,0,0,2,H ;后面再加一个H表示是关于x 轴对称6,0,0,0,4 ;站立到蹲下的过渡动作[Begin Action 10] 10,0,0,0,1 ;蹲下的动作 [Begin Action 11] 10,1,0,0,1 ;蹲到站的过渡动
作[Begin Action 12] 10,0,0,0,3 ;往前走动作[Begin Action 20] 20,0,0,0,7 20,1,0,0,7 20,2,0,0,7 20,3,0,0,7 20,4,0,0,7 20,5,0,0,7 ;往后走的动作[Begin Action 21] 21,0,0,0,7 21,1,0,0,7 21,2,0,0,7 21,3,0,0,7 21,4,0,0,7 21,5,0,0,7 ;跑步 [Begin Action 100] 100,0,0,0,4 100,1,0,0,4 100,2,0,0,4 100,3,0,0,4 100,4,0,0,4 100,5,0,0,4 ;刹车[Begin Action 101] 101,0,0,0,3 ;疾退预备动作 [Begin Action 105] 101,0,0,0,3 ;疾退空中[Begin Action 106] 105,0,0,0,-1 ;疾退着地[Begin Action 107] 101,0,0,0,3 光是写好这些编号还不够,还必须给这些anim画上打击框和被打击框,这里可以借助工具airedit或mcm。
airedit是dos工具,这里也就介绍mcm吧。
选air的目录Air ->load ,把ryo.air读进去.这时候就可以看到ryo的上面的一些动作,点"play"那个按钮还可以看看效果. 要画clsn2框就得点击clsn2那个按钮,如下图. 按了之后就可以用鼠标在ryo身上画格子了:) 全部图片都画好之后,Air - >Save ,覆盖ryo.air即可. 4,程序定义信息 cns air搞定之后,接下来就是cns了。
首先把下面这些参数抄下去。
;基本数据[Data] life = 1000 ;生命值 attack = 100 ;攻击力百分比 defence = 100 ;防御力百分比fall.defence_up = 50 ;打倒时防御力临时上升的百分比liedown.time = 12 ;倒地时间 airjuggle = 15 ;空中连击修定值(不建议改) sparkno = 2 ;默认的攻击火花编号 guard.sparkno = 41 ;默认的防御火花编号KO.echo = 0 ;被KO的时候,声音是否有回音效果volume = 0 ;语音音量修正值 power = 4000 ;能量值(默认是3000,3段气)IntPersistIndex=0 ;var参数跨场次变化台阶FloatPersistIndex=40 ;fvar参数跨场次变化台阶 [Size] xscale = 1 ;x 轴缩放比例 yscale = 1 ;y轴缩放比例 head.pos = -10,-75 ;头部大概的位置(在某些投技时候有用)choi这些矮个子y轴就应该低些 mid.pos = -12,-40 ;中心大概位置(在某些
投技时候有用) ground.back = 24 ;地面人物宽度(后)陈可汗这些肥肥这些参数就得设大些. ground.front = 22 ;地面人物宽度(前) air.back = 12 ;空中人物宽度(后) air.front = 11 ;空中人物宽度(前) height = 60 ;人物高度 attack.width = 4,4 ;攻击宽度 attack.dist =
160 ;攻击距离 proj.attack.dist = 90 ;飞行道具距离 proj.doscale = 0 ;飞行道具缩放比例 [Velocity] walk.fwd = 2.96078431 ;往前走的速度walk.back = -2.96078431 ;往后走的速度 run.fwd = 5.66666666, 0;跑步速度 run.back = -4.5,-3.8 ;后退速度 jump.neu = 0,-9.62352941;直跳速度 jump.back = -2.55 ;后跳速度
* 2006-6-8 16:46
* 回复
*
* BUG绝缘酷仔
* 7位粉丝
* 3楼
jump.fwd = 2.5 ;前跳速度 runjump.back = -2.55,-9.62352941;跑步中后跳跃的速度 runjump.fwd = 5,-9.62352941;跑步中前跳跃的速度 ;airjump.neu = 0,-8.1 ;空中直接跳跃速度 ;airjump.fwd = 2.5,-8.1 ;空中前跳速度 [Movement] airjump.num = 0 ;允许空中2段跳(0,不允许;1 ,允许)airjump.height = 35 ;空中跳跃高度yaccel = .56862745 ;重力加速度 stand.friction = .85 ;站立时的摩擦系数crouch.friction = .82 ;蹲下中的摩擦系数;再来就是写跑步的语法 ;跑步 [Statedef 100] ;定义跑步的state号 type = S ;角色的状态为S(站立),状态还可以为C(蹲下), A (空中),L(躺在地上) . ;还有就是U( 维持前一个State的状态).这里设为S应该不难理解吧. physics = S ;角色的受力环境为 S(站立) .还可以为C (蹲下),A(空中),N (没有任何受力环境) ;不理解的话就举个例,比如S就有摩擦系数,A就有重力加速度等. anim = 100 ;对应的图片编号. sprpriority = 1 ;图层编号.可选 -5 到 5的之间的整数.数字越大越靠前. ;两个图有重合的时候,数字小的会被数字大的遮住. velset = 0,0 ;x 轴和y轴速度设置 [State 100, 1] ; type = VelSet ;速度设置 trigger1 = 1 ;在该state内的所有时间都需要进行设置 x = const(velocity.run.fwd.x) ;取得前面设置的数字 [State 100, 2] type = AssertSpecial;特别设置 trigger1 = 1 ;在该state内的所有时间都需要进行设置flag = NoWalk ;在这里设置这个参数,就不会进入
步行的state. [State 100, 3] type = ChangeState ;state转换 trigger1 = command != "holdfwd";如果没有一直按住前的按钮trigger1 = Time > 12 ;同时需要12桢之后 value = 101 ;进入刹车 state ;完整的解释:如果没有一直按住往前的按钮在12桢之后就进入刹车的state ;--------------------------------------------------------------------------- ; 跑步中止(刹车) [Statedef 101] type = S physics = S anim = 101 velset = 0 [State 101, 1] type = ChangeState trigger1 = AnimTime = 0 ;101动画执行完后 value = 0 ;进入待机的state ctrl = 1 ;同时把控制权交回 ;疾退 [Statedef 105] type = S physics = S anim = 105 velset = 0 ctrl = 0 [State 105, 1] type = ChangeState trigger1 = AnimTime = 0 value = 106 [State
def 106] type = A physics = N anim = 106 [State 106, 1] type = VelSet trigger1 = Time = 0 x = -8 y = -3.5 [State 106, 2] type = VelAdd trigger1 = Time > 0 x =.3 y =.45 [State 106, 3] type = ChangeState trigger1 = Vel Y > 0 trigger1 = Pos Y >= 0 value = 107 [Statedef 107] type = S physics = S anim = 107 velset = 0,0 [State 107, 1] type = PosSet trigger1 = Time = 0 y = 0 [State 106, 3] type = MakeDust ;制造灰尘 trigger1 = Time = 2 ;时间为第二桢pos = -5,-2 ;位置是-5,-2 [State 107, 3] type = ChangeState ;在动画执行完后回到待机的state,同时把控制权交回trigger1 = AnimTime = 0 value = 0 ctrl = 1
* 2006-6-8 16:46
* 回复 *
* BUG绝缘酷仔
* 7位粉丝
* 4楼
5,控制定义信息然后抄这些到cmd文件中 ;-| Double Tap |----------------------------------------------------------- [Command] name = "FF" ;Required (do not remove) 前跑 command = F, F time = 10 [Command] name = "BB" ;Required (do not remove) 疾退
command = B, B time = 10 ;-| 2/3 Button Combination |----------------------------------------------- [Command] name = "call" command = y+a time = 1 [Command] name = "recovery";Required (do not remove) command = x+y time = 1 [Command] name = "c" command = y+b time = 1 [Command] name = "z" command = a+x time = 1 ;-| Dir + Button |--------------------------------------------------------- [Command] name = "down_x" command = /$D,x time = 1 [Command] name = "down_y" command = /$D,y time = 1 [Command] name = "down_z" command = /$D,z time = 1 [Command] name = "fwd_a" command = /F,a time = 1 [Command] name = "fwd_b" command = /F,b time = 1 [Command] name = "fwd_c" command = /F,c time = 1 [Command] name = "fwd_x" command = /F,x time = 1 [Command] name = "fwd_y" command = /F,y time = 1 [Command] name = "fwd_z" command = /F,z time = 1 [Command] name = "back_a" command = /B,a time = 1 [Command] name = "back_b" command = /B,b time = 1 [Command] name = "back_c" command = /B,c time = 1 [Command] name = "back_x" command = /B,x time = 1 [Command] name = "back_y" command = /B,y time = 1 [Command] name = "back_z" command = /B,z time = 1 [Command] name = "fd_x" command = /DF,x time = 1 [Command] name = "fd_a" command = /DF,a time = 1 [Command] name = "down_a" command = /$D,a time = 1 [Command] name = "down_b" command = /$D,b time = 1 [Command] name = "down_c" command = /$D,c time = 1 ;-| Single Button |--------------------------------------------------------- [Command] name = "hold_x" command = /$x time = 1 [Command] name = "hold_y" command = /$y time = 1 [Command] name = "hold_z" command = /$z time = 1
[Command] name = "hold_a" command = /$a time = 1 [Command] name = "hold_b" command = /$b time = 1 [Command] name = "hold_c" command = /$c time = 1 [Command] name = "hold_s" command = /$s time = 1 [Command] name = "a" command = a time = 1 [Command] name = "b" command = b time = 1 [Command] name = "c" command = c time = 1 [Command] name = "x" command = x time = 1 [Command] name = "y" command = y time = 1 [Command] name
= "z" command = z time = 1 [Command] name = "s" command = s time = 1 ;-| Hold Dir |-------------------------------------------------------------- [Command] name = "holdfwd";Required (do not remove) command = /$F time = 1 [Command] name = "holdback";Required (do not remove) command = /$B time = 1 [Command] name = "holdup" ;Required (do not remove) command = /$U time = 1 [Command] name = "holddown";Required (do not remove) command = /$D time = 1 ;--------------------------------------------------------------------------- [Statedef -1] ;--------------------------------------------------------------------------- ;前跑 [State -1, Run Fwd] type = ChangeState ;state跳转 value = 100 ;跳到state 100 trigger1 = command = "FF" ;如果按了前前这个出招 trigger1 = statetype = S ;同时状态为站立 trigger1 = ctrl ;而且可以是可控制状态 ;后跳 [State -1] type = ChangeState ;state跳转 value = 105 ;跳到state 105 trigger1 = command = "BB" ;如果按了疾退的出招trigger1 = statetype = S ;同时状态为站立 trigger1 = ctrl = 1 ;而且可以是可控制状态嗯,之后就可以试着运行一下. 嘿嘿,至少可以有站立,蹲下走和跑等动作了吧! 篇幅有限其他的之后再讲了~ 示范人物下载
mugen人物制作教程
*
* 拳皇百宝箱
* 20位粉丝
* 1楼
如果你是一个新手,我相信这篇教程还是对你有一定帮助的,如果
你是个高手,那么.....同样欢迎收看,请多多指出我对一些定义或概
念的理解错误,也算是对我的帮助。
对于MUGEN的制作人物嘛,我认为分以下部分,我就是按照这个排列顺序
编写的,中间有大量说名与代码,争取做到大家看完了能......作出一个人物来.也算是提高MUGEN的知名度把,呵呵~~~~
好了,废话到此结束!
我还要说一说,在做人物之前需要抓图,着一部分MUGENCHINA 上有
/doc/bb15373938.html,/
还有,ACT\SFF也得自己动手,MUGENCHINA上也有,其它的么....
都有我写在下面了,这里再次声明,由于是一个人编写,实在难免有错误
况且是一天写的...........
目前嘛,学习MUGEN就先从DEF部分开始把~~~~~~
1.DEF部分
1.1简介
所谓DEF,就是DEFINITION的缩写,是定义的意思,它的作用很大,规定了
MUGEN人物的相关文件都是什么,可以说就是一个文件列表啊,明白了
么??
1.2用法
下面看一个人物的DEF
;人物基本信息档
[Info] ;人物信息
name="freeze2" ;人物名称
DisplayName="Freeza" ;显示名称
author = "admin&Vision" ;制做者
pal.defaults = 1,2 ;默认色版
[Files] ;人物文件
cmd = freeza.cmd ;CMD文件
cns = /doc/bb15373938.html,s ;CNS文件
sprite = freeza.sff ;SFF文档资料
anim = freeza.air ;AIR文档资料
sound = freeza.snd ;SND
pal1 = freeza.act ;人物色版文件,注意:可以有12个,使用PHOTOSHOP制作.
pal2 = freeza2.act
pal3 = freeza3.act
pal4 = freeza4.act
需要注意的是,AIR,SFF可以使用MCM2.0
_DEV356编写,在此我就不多说了,因为
MCM很简单,有点基础就会,实在不会,就找论坛上的人问问嘛......
在多说一句MCM2.0_DEV356也能用与编写SND ,即声音档
下载地址:/doc/bb15373938.html,/
好了,DEF部分就这些了,怎么样?很简单吧.好,下面请出............
2.CMD部分
2.1简单介绍
CMD可以设置出招的按键定义,CMD为COMMAND的缩写,意思为命令
2.2.1按键设置用法
人物CMD部分,关于出招的设置,与定义。
关于按键设置:a,b,c,X,Y,Z六个控制键,F,B,D,U四个方向控制键,F---前(FORWARD) B---后(BACK) D---下(DOWN)
U---上(UP) ,用法为:例如要发"下,前,a"三个键的组和,则键入D,DF,F,a DF为方向的过渡.
2.2.2其它用法
1.保持状态 (/) 例如:/D 意思为必须保持 "下" 这个按键不放.
当然也可以用在一组命令里,意为在按下控制键之前方向键保持按下状态,当然/后可以用控制键,不光是方向键.
注意:标记"~"用于设置按键状态为放开例如: ~a表示这个键不用保持按下状态,可以按下后即放开.
在~前加一个数字,用于表达按下时间的长短.例如:~30a
2.动作方向 ($) 例如:$D 意为DB,DF 也在.
3.按键同时 (+) 例如:a+b+c 意为这三个键同时按下.
这些命令是可以组合的,例如: ~30$D,a+b
2.2.3附加项介绍注意:这些项目可以随意选加.
1.时间(time = 时间长度) 意为允许多长时间做这个命令,为常数值.(默认数值:15)
注意,冲突命令是不可以同时使用的,例如: ~/
再后面的命令段里,有许多注意,大家可以参考命令旁边注释,与上文来一点一滴的揣摩CMD命令的含义,有些地方已经给;出,很容易看明白的.
这里面还有好多常用英文单词的解释,会有用的.
很简单吧,祝愿好运..........
2.2.4按键CMD分析
让我们先来读一段CMD
[Command] ;命令定义为COMMAND,按键
name = "kenzien" ;定义名称,以后会用到,这个名称用于识别命令,经常使用好记的名字例如:STRONG KICK,为重脚
顶
0* 2009-6-29 11:32
* 回复 *
* 拳皇百宝箱
* 20位粉丝
* 2楼
command = ~D, DB, B, b ;按键设置
这一部分显然为快退,或快进,或跑动部分.
[Command]
name = "FF" ;必要部分
command = F, F
time = 10
[Command]
name = BB
command = B, B
time = 10
[Command]
name = "recovery" ;注意"RECOVERY" 意为恢复
command = a+b ;用到了双键同时按下
time = 1
[Command]
name = ab
command = a+b
time = 1
;大家也许都知道了,这一部分的意思显然是后退,前进,蹲下时发招的样式
[Command]
name = "fwd_a"
command = /F,a
time = 1
[Command]
name = "fwd_b" command = /F,b time = 1
[Command] name = "fwd_c" command = /F,c time = 1
[Command] name = "fwd_x" command = /F,x time = 1
[Command] name = "fwd_y" command = /F,y time = 1
[Command] name = "fwd_z" command = /F,z time = 1
[Command] name = "back_a" command = /B,a time = 1
name = "back_b" command = /B,b time = 1
[Command]
name = "back_c" command = /B,c time = 1
[Command]
name = "down_a" command = /$D,a time = 1
[Command]
name = "down_b" command = /$D,b time = 1
[Command]
name = "down_c" command = /$D,c time = 1
[Command]
name = "fwd_ab" command = /F, a+b time = 1
name = "back_ab"
command = /B, a+b
time = 1
[Command]
name = "a"
command = a
time = 1 ;注意:单个键的TIME数值就要设置小一点了,着点必须考虑到,做人物时必须要用心考虑每一步.关于这些方面;;还要多参考功夫人
的CMD,CNS来体会
[Command]
name = "holdfwd" ;必须部分注释:这一部分是保持一个见的状态,看看TIME只有一,只是后跳躲开一下,大家想到了么?
command = /$F
time = 1
2.2.5特殊英文单词归纳
HOLD:保持
DEFINITION:定义
CONDITION:条件
INFORMATION:信息
COMMAND:命令
SPECIAL:特殊的
2.3 TRIGGERS
(状态设置)
; --------------
;注意,这一部分也很重要,它是规定按键将对应什么状态.(判定)
;注意:DEF为缩写,意为信息 OR 设置.
;2.3.1.关于状态设置的格式
;一般的,格式为
;[STATE -1,设置标记] 设置标记可以随便设置,以后用于识别这里所定义的状态.
;TYPE意思为类型.一般的,都设置为CHANGESTATE,在CMD中请不要改动,即:type = ChangeState
;VALUE意思为值.后面要设置为需要的数值,与CNS中的动作对应,如果在CNS中设置了一个动作,赋值1000,这里用;VALUE=1000可以表示.
;TRIGGER意为触发器.第一个触发器名为TRIGGER1,然后为~2,3....
;2,3.2TRIGGER逻辑简介
;TRIGGER的逻辑是这样的,例如TRIGGER1的所有条件为真,则激活它定义的按键控制,否则测试TRIGGER2是否为真,直到没;有TRIGGER(好象类似OR逻辑)
;2,3,2.1编号被跳过
;如果有TRIGGER1,2,4,但没有TRIGGER3,则TRIGGER4将被忽略.
;2.3,2.2一个以上的条件
;如果你有一个以上的条件要被激活,可以这样.
;假如一个玩家的手(当然是他所选择的人物)超出了屏幕可看见范围,则可
;TRIGGER1 = 屏幕上 > 0
;TRIGGER1 = 屏幕下 > 0
;这样即可判断两个都大于零.
;一个TRIGGER可以有两个以上的条件.
;2.3,2.3两个TRIGGER的同时使用
;TRIGGER1 = VEL Y > 0
;TRIGGER1 = POS Y > 0
;TRIGGER2 = TIME = 5 (这里的TIME 为状态时间)
;这个逻辑将激活TRIGGER1,或状态时间是五.
* 2009-6-29 11:32
* 回复
*
* 拳皇百宝箱
* 20位粉丝
* 3楼
;可以说
;相同编号的TRIGGER将激活一个对应按键,或其它控制,但前提是所有相同编号的TRIGGER设置的条件为真.
;不同编号的TRIGGER将激动所有定义按键,或其它控制,但前提是它们中的一个或更多的TRIGGER的条件为真.
;所以TRIGGER的基本格式为:
;TRIGGER编号 = TRIGGER类型测试TRIGGER
;关于TRIGGER的类型有许多,这些将在CNS里面提到,还有TR IGGER的其它用法也将在CNS中提到,还有好多.....请参考;CNS部分
;CNS部分还将介绍许多常用TRIGGER类型,不懂的可以参考CNS 部分
;2.3.3常用类型
;2.3.3.1STATE TYPE
; 可以为S\C\A:目前人物的状态 S:站 C:蹲 A:空中
;2.3.3.2 CTRL
; 0或1:0为人物不可控制,1则相反.
;2.3.3.3 STATENO
; 玩家状态数值
;2.3.3.4 MOVECONTACT
; 0或1:1为玩家上次攻击打到了对方,0则相反
;2.3.3.5 COMMAND
; COMMAND为CMD文件中定义好的动作的名称
; 例如:TRIGGER1 = COMMAND = SPECIAL KICK意为判断命令是否为CMD中定义NAME = "SPECIAL KICK"
;2.3.3.6 POWER
; 即为玩家现在的能量值
; 例如:TRIGGER1 = POWER <= 1000意为判断玩家目前能量是否小于1000
;2.3.4 TRIGGERALL
;顾名思义,这个命令很有用,他的作用是用来判断条件是否符合所有TRIGGER.
;好了,说了这些,也该实际看一看真正的STATE部分了,说的不少,其实原理很简单,看了我上面的说明,应该可以明;;白下面的代码都是什么意思.
;CMD部分对以后的CNS也有用啊,记住"罗马不是一天建成的".
;~~~~~~~~~~~~~~
;2.3.5编码分析
;[State -1]
type = ChangeState ;意思为改变状态,在CNS部分中将会提到value = 1030
triggerall = command = special kick ;调用SPECIAL KICK按键设置,用来判断
trigger1 = statetype != A ;请看CNS部分解释
trigger1 = ctrl = 1 ;可控
trigger2 = command = special kick
trigger2 = stateno = 610
trigger3 = command = special kick
trigger3 = stateno = 610
trigger3 = statetime <= 2 ;状态时间
trigger4 = command = special kick
trigger4 = stateno = 210
trigger4 = movecontact = 1
trigger5 = command = special kick
trigger5 = stateno = 610
trigger6 = command = special kick
trigger6 = stateno = 610
trigger6 = movecontact = 1
[State -1]
type = null; ChangeState
value = 900
triggerall = statetype = S
triggerall = ctrl = 1
triggerall = p2bodydist X < 5 ;接近P2
trigger1 = command = fwd_b ;P2 站着
trigger1 = stateno != 100 ;未跑动
trigger1 = p2statetype = S ;P2STATETYPE在CNS中有介绍,这里的意思是判断P2的STATETYPE 是否为S---STAND(站立) trigger1 = p2movetype != H ;同理,判断P2MOVETYPE,是否为H----HIGH(高)
trigger2 = command = fwd_b ;P2 蹲着
trigger2 = stateno != 100 ;未跑动
trigger2 = p2statetype = C ;同理
trigger2 = p2movetype != H
trigger3 = command = back_b ;p2 站着
trigger3 = p2statetype = S
trigger3 = p2movetype != H
trigger4 = command = back_b ;p2 蹲着
trigger4 = p2statetype = C
trigger4 = p2movetype != H
;恭喜恭喜!您已经将CMD部分攻克完毕了
;想必您对MUGEN,的CMD部分已经基本认识了,下面就是CNS 了,其实也没有什么难的
在这里我有必要提一下,CMD中许多编码是与CNS有关连的,所以要想自己作出人物
必需看完CNS部分,然后在读一个功夫人的代码,这样才能作出.,.....自己的人物
.......(又有臭鸡蛋!!)
2.6英文单词归纳
STATE:状态
TYPE:类型
CHANGE:改变
HIGH:高
* 2009-6-29 11:32
* 回复 *
* 拳皇百宝箱
* 20位粉丝
* 4楼
SPECIAL:特殊的
TRIGGER:触发器
GENERATOR:发动机
POWER:能量
/doc/bb15373938.html,S部分
;这一部分同样嘛,简单啦......
不过还得仔细读/doc/bb15373938.html,S是人物的核心呢.
3.1简介
CNS就是一个人物出招信息,招试画面,还有AI的文件
3.1.1 关于打击定义的解释
;1.HITDEF详细解释
;1.关于STATE DEF的详细解释
;HITDEF,顾名思义为攻击属性,是CNS的灵魂所在
;对人物有很大影响,可以说是控制人物的操作代码~~~~~~~~~~~(又来臭鸡蛋,第3个了,我倒!)
;HITDEF有很多支线属性,这里只将常用的45个
;属性用法列举出来,但做人物也就用这些了,所以绝对
;够用了,那么..继续吧
;3.1.1.1附加属性
;TYPE=HITDEF
;意思为攻击定义
;简单说,攻击就是P1的攻击块与P2的防御块重合时造成的碰撞.
;1.ATTR=打击属性
;决定P1是否可以打击P2,或P2是否可以打击P1
;格式象...ATTR=ARG1,ARG2
;ARG1设置为S站立攻击,C蹲下攻击,A空中攻击
;ARG2设置为N,普通,S特殊,H超强,A攻击,T投掷,P火球
;2.HITFLAG=HIT_FLAG(打击标志)
;设置值H,高,L低,A空中,M中等,F落下,D击倒
;两个可以选择的设置,"+","-"对于人物
;+将使人物受到攻击后变为被攻击状态
;-将使人物没有变化,用于投掷"THROW"时
;这项设置可以混用,例如,HLA,MAF
;注意:M=HL
;3.GUARDFLAG=打击属性
;与HITFLAG设置相同,有H,L,A,M,四项设置
;任意选择项目
;4.ANIMTYPE=动作类型
;可以设置,LIGHT,轻,MEDIUM,中等,HARD,重,BACK,后退,UP,击出;DIAGUP,击飞.
;默认值为LIGHT
;5.AIR.ANIMTYPE=动作类型
;与ANIMTYPE参数相同,不同的是AIR.ANIMTYPE是设置在空中的打击状态.
;6.FALL.ANIMTYPE=动作类型
;可以设置为UP,或BACK
;人物落下时的打击状态
;7.PRIORITY=打击优先级别,打击属性
;在打击时同时发出,优先级别高的一方会抵消低的一方的招式,并使;对方挨招.设置数值为1-7,4为默认.
;打击属性有HIT打击,MISS被遗漏,DODGE避开
;例如,PRIORITY=7
;8.DAMAGE=攻击伤害生命数值,如果防护住伤害生命数值
;默认两数值为0.
;这是非常常用的设置,用于设定人物招式造成的伤害.
;例如DAMAGE=10,0
;9.PAUSETIME=暂停时间
;同样非常常用,用于设置中招后硬直时间.
;MUGEN里的时间单位,很短,约一毫秒左右.
;例如PAUSETIME=10
;10.GUARD.PAUSETIME=暂停时间
;有用的设置,能使人物手感上升,更加接近KOF,甚至超越.
;显然,这是设置防御住的硬直时间.
;例如:GUARD.PAUSETIME=10
;11.SPARKNO=火花编号
;这显然是设置打击中的火花,如果要使用共用火花SFF的话,直接输入
;编号即可,如果要制定火花,在前面加"S"
;格式为:SFF中的组+图片编号
;例如:SPARKNO=1,1000
;11.1.GUARD.SPARKNO=
火花编号
;格式,与上同,显然是设置防御住的火花
;12.SPARKXY=火花坐标
;顾名思义,输入火花坐标数值即可,X在先,Y在后
;例如:SPARKXY=0,0
;默认也是0,0
;13.HITSOUND=声音组,声音编号
;在人物SND里对应的声音设置的组,与设置的编号
;例如:HITSOUND=7,2 意思为使用公共声音库,第7组,编号为2的;声音,如果要使用制定声音,需要在设置数值前加"S"
;14.GUARDSOUND=声音组,声音编号
;与上格式同
;意为防御的声音
;15.GROUND.TYPE=攻击类型
;这是设置P1攻击P2,或P2攻击P1在场景里造成的效果
;H,高,令P2后退并疼痛感觉
;L,低,原地不动只是象胃疼一样.
;T,绊倒,P2被绊倒
;N,毫不,P2无反映
;默认为H
;16.AIR.TYPE=攻击类型
;与上同,在空中P1攻击P2或P2攻击P1造成的效果
* 2009-6-29 11:32
* 回复
*
* 拳皇百宝箱
* 20位粉丝
* 5楼
;17.GROUND.SLIDETIME=滑动时间
;显然设置为被攻击方的滑动时间
;单位同样为MUGEN里的时间循环单位,接近与毫秒
;例如:GROUND.SLIDETIME=10
;18.GUARD.SLIDETIME=滑动时间
;设置与上同,为防御住地面攻击的滑动时间.
;19.GROUND.HITTIME=打击时间
;打击令被攻击方硬直时间
;例如:GROUND.HITTIME=10
;20.GUARD.HITTIME=打击时间
;防御住打击令被攻击方硬直时间
;例子同上.
;21.AIR.HITTIME=打击时间
;在空中被打击硬直时间
;例子同上
;22.GUARD.CTRLTIME=控制时间
;防御后,允许被打击方自控时间.
;23.GUARD.DIST=X数值
;被攻击方离攻击方多远时攻击方出招被攻击方的状态不为;后退而为防御.
;通常这不被使用
;24.YACCEL=加速长短
;确定攻击方的招式将提前作用于被攻击方多长时间
;同样为MUGEN里的时间
;例如:YACCEL=10
;默认为零,这不是常用设置
;25.GROUND.VELOCITY=X速度,Y速度
;默认都为0.该命令给P1,P2攻击时间
;例如:GROUND.VELOCITY=0,-1
;26.AIR.VELOCITY
;设置同上,在空中
;例子同上
;27.AIRGUARD.VELOCITY
;设置同上,在空中防御发动中
;例子同上
;28.AIRGUARD.CTRLTIME=控制时间
;在空中防御住,后过多长时间允许防御方控制.
;MUGEN里的时间单位.
;例如:AIRGUARD.CTRLTIME=10
;29.AIR.JUGGLE=JUGGLE点数
;在一般情况下,这项设置并不需要
;设置的JUGGLE点数作为本次攻击成功将在M目前的JUGGLE里的点数上
;加上.
;关于JUGGLE的定义,请参考后面的解释资料.
;30.SNAP=X位置,Y位置
;用于投掷招式中,吸附被攻击方.
;这里被攻击方自动移动规定的距离,到攻击方的打击点.
;31.SPRPRIORITY=绘图优先级
;绘图的优先级,高者覆盖底者.
;默认值为0
;32,P1,P2STATENO=状态编号
;33,P2GETP1STATE=数值(常数)
;设置为零防止P2得到P1 的状态动画,默认为1在P2STATENO里;否则这参数被遗忘.
;P2GETP1STATE=0
;34,FORCESTAND=0或1
;设置为1迫使被攻击方做
"站"状态如果攻击成功.
;默认为0,如果"GROUND.VELOCITY"里面的Y速度不为
;0,则默认为1.
;35.FALL=值
;设置为1,令P2为FALL--落下状态,0则相反,前提为
;招式成功击中对方.
;例如:FALL=0
;36.FALL.RECOVER=值
;设置为0,被攻击方将不会恢复FALL设置的状态
;设置为1,则相反.
;37.FALL.RECOVERTIME=恢复时间
;恢复FALL状态为普通状态所需要的时间
;同样为MUGEN里的时间循环单位,接近一毫秒.
;例如:FALL.RECOVERTIME=10
;38.FALL.DAMAGE=伤害数值
;经常您会看到有些招式会使被攻击方落地时才减少生命数值;例如大蛇的镜子,ATHENA的投掷.
;设置为生命数值,例如:FALL.DAMAGE=100
;39.DOWN.HITTIME=打击时间
;显然是时打击时间.
;40.KILL=0或1
;这如果设置为1,如果这招成功击中,被攻击方将死亡
;零则相反.
;例如:KILL=0
;41.GUARD.KILL=0或1
;设置为1则即使防御住也会被KO
;0则相反
;42.FALL.KILL=0或1
;同上,1即为落下也会被KO
;例子也同上
;43.NUMHITS=HIT_COUNT
;设置几连击中被视为1攻击加入到屏幕的HITS里.
;44.GETPOWER=能量数值
;发招增长能量
;1000为一个大绝所消耗的能量
;例如:GETPOWER=1000
;45.GIVEPOWER=能量数值
;发招给对方增长能量数值.
;其它同上
;关于HITDEF就说到这里,相比各位也能看懂这里面大部分的;代码了
;
3.1.2代码分析
[State 210, 2]
type = HitDef
trigger1 = AnimElem = 2
attr = S, NA
* 2009-6-29 11:32
* 回复 *
* 拳皇百宝箱
* 20位粉丝
* 6楼
animtype = Medium
damage = 55
guardflag = MA
pausetime = 11,11
sparkxy = 0,-20
hitsound = 5,1
guardsound = 6,0
ground.type = High
ground.slidetime = 12
ground.hittime = 15
ground.velocity = -5
air.velocity = -2.2,-3.2
您能读懂这一段代码么
3.1.3基本信息介绍
[Data]
life=1000;人物生命数值,1000为默认,可以自己设置.
attack=100;人物攻击百分比,以DAMAGE的数值*ATTACT%
defence=100;人物防御百分比,以对方招式数值除以DEFENCE% fall.defence_up=50;倒下时防御上升百分比
liedown.time=60;倒下时间
airjuggle=15;空中JUGGLE数值
sparkno=0,7;打击火花
guard.sparkno=0,20;防护火花
volume=265;音量
echo=1;KO后是否重复播放击倒声音
[Size]
xscale=1;;横向缩放值。
yscale=1;纵向缩放值。
z.width=3;人物宽度--站立后点。
ground.back=15;人物宽度--站立前点。
;上两个值会确定人物的宽度,在Debug模式下可以看到一条黄线。
当人物有存
;在判定(Clsn2),且没有实现PlayerPush控制语句时,双方黄线交叠时会互相
;弹开。
ground.front=13;人物宽度--空中后点。
air.back=12;人物宽度--空中前点。
air.front=12;。
height=60;。
人物身高(与对方跳跃过顶有关)人物身高(与对方跳跃过顶有关)
attack.width=0;攻击宽度。
attack.dist=160;;攻击效果距离响。
proj.attack.dist=90;发射
弹(Projectiles,常为飞行道具)攻击效果距离。
proj.doscale=0;Projectiles是否也受人物缩放比例影响。
[Movement]
airjump.num=1;连续跳跃次数
airjump.height=38;连续跳跃允许高度
yaccel=.43;下落加速
crouch.friction=0.82;蹲下状态摩擦系数
stand.friction=0.85;站立摩擦系数
[Velocity]
walk.fwd=1.5;前行速度
walk.back=-1.5;后退速度
run.fwd=4.2,0;前跑速度
run.back=-4.2,-3.8;后跃速度
runjump.back=-2.55,-8.1;助跑跳跃速度
runjump.fwd=4,-8.1;助跑后跳速度
jump.neu=0,-8.1;正跳速度
jump.back=-2.2,0;;向后跳起速度。
;向前空中连跳速度。
jump.fwd=2.2,0;向前跳起速度。
airjump.neu=0,-8.1;正上空中连跳速度。
airjump.back=-1.22,-8.1;向前空中连跳速度。
airjump.fwd=1.2,-8.1;向后空中连跳速度。