|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
3093
部分人物制作教程
鲁鲁修
2012-11-28 12:58
1
;一个人物的组成:cmd(控制指令文件),cns(核心代码),air(动作编辑),sff(人物图片)
; ,snd(人物声音),act(色表,人物的颜色)
;cns的结构:(1)人物必备属性
;---------------------------------------------------------------------------
[Data]
life=1000;生命值,一般都是1000,觉得你的人物有特别原因的,就随意增减吧。
attack=100;攻击力,以后设定的伤害数值都会乘上该值作为实际效果,当然是百分比。
defence=100;防御力,越大就是防御力强,对方对己方的伤害效果也会减少。
fall.defence_up=50;被打倒时防御力临时上升的百分比。
liedown.time=60;击倒在地后,躺在地上的时间。(其实也是个重要的指数哦)
airjuggle=15;空中juggle值(请看后面详解)
sparkno=2;默认的击中火花号(觉得好像没用)。
guard.sparkno=40;默认的防中火花号。
KO.echo=0;被KO时有没有回声(就是啊…啊…啊…………)。
volume=0;音量调整(负数就是变轻)。
IntPersistIndex=60
FloatPersistIndex=40
;整形/浮点型变量的生存期指标(翻不好,看下去吧)。默认值为60和40,如果IntPersistIndex=60则有从;0;到59排列的60个整形变量,而高于60号的变量将不受VarRangeSet控制;不会在rounds或matches中被;;复;位;。(有用啊!)如果想让你的变量在matches中不被复位,那么就自己覆盖common1.cns的state ;5900吧。
[Size]
xscale=1;横向缩放值。
yscale=1;纵向缩放值。
ground.back=15;人物宽度--站立后点。
ground.front=16;人物宽度--站立前点。
;上两个值会确定人物的宽度,在Debug模式下可以看到一条黄线。当人物有存在判定(Clsn2),且没有实;现;PlayerPush控制语句时,双方黄线交叠时会互相弹开。
air.back=12;人物宽度--空中后点。
air.front=12;人物宽度--空中前点。
height=60;人物身高(与对方跳跃过顶有关)。
attack.dist=160;攻击效果距离(与对方摆防御动作有关)。
proj.attack.dist=90;发射弹(Projectiles,常为飞行道具)攻击效果距离。
proj.doscale=0
Projectiles;是否也受人物缩放比例影响。
head.pos=-5,-90;近似的头部位置(好好设啊,等着我的Choi,heihei)
mid.pos=-5,-60;近似的中身部位置
shadowoffset=0;影子的垂直偏离象素。
draw.offset=0,0;人物的偏离象素(x,y)。
[Velocity]
walk.fwd=2.4;步行前进速度。
walk.back=-2.2;步行后退速度。
run.fwd=4.6,0;跑步前进速度。
run.back=-4.5,-3.8;跑步后退速度。
;上两个值的y如不是0,则为小跳前进/后退速度。
jump.neu=0,-8.4;正上跳起速度。
jump.fwd=2.5;向前跳起速度。
jump.back=-2.5;向后跳起速度。
;上两个值的y大多不设,即等同于jump.neu的y值。
runjump.fwd = 4,-8.1;向前跑跳起速度。
runjump.back=-2.55,-8.1;向后跑跳起速度。
airjump.neu=0,-8.1;正上空中连跳速度。
airjump.fwd=2.5;向前空中连跳速度。
airjump.back=-2.55;向后空中连跳速度。
[Movement]
airjump.num=1;空中能连跳数。
airjump.height=35;空中能启动连跳的最低高度。
yaccel=.44;下落加速度。
stand.friction=.85;站立摩擦系数。
crouch.friction=.82;蹲态摩擦系数。文字文字
;---------------------------------------------------------------------------
;设定好了上边的属性后我们来正式作人物吧!
;首先人物必须有跑跳等必需的基本动作
;先通过编辑air来编辑人物的基本动作
;0 站立
;5 opt 转身 必须是有限循环时间
;10 站到蹲 有限循环时间
;11 蹲
;12 蹲到站 有限循环时间
;20 向前走
;21 向后走
;40 跳跃启动(在地面) 仅在人物离地时
;41 直向跳跃(向上) 当人物往上跳
;42 向前跳跃(向上) 当人物往前上跳
;43 向后跳跃(向上) 当人物往后上跳
;44 opt 直向跳跃(向下) Y-velocity > -2时
;45 opt 向前跳跃(向下) 同上
;46 opt 向后跳跃(向下) 同上
;47 跳跃着陆 人物着陆时
;100 向前跑/急冲
;105 急退
;120 防御-站-启动 有限循环时间
;121 防御-蹲-启动 有限循环时间
;122 防御-空-启动 有限循环时间
;130 防御-站-摆势
;131 防御-蹲-摆势
;132 防御-空-摆势
;140 防御-站-结束 有限循环时间
;141 防御-蹲-结束 有限循环时间
;142 防御-空-结束 有限循环时间
;150 防御-站-状态 无限循环时间
;151 防御-蹲-状态 无限循环时间
;152 防御-空-状态 无限循环时间
;170 opt 失败 (请看Note 1)
;175 opt 时间到 (请看Note 1)
;180 opt 胜利 无限循环时间(181-189 for multiple) (请看Note 1)
;190 opt Intro 无限循环时间(请看Note 1)
;195 opt Taunt 有限循环时间(请看Note 1)
;编辑好了以后我们来做人物的第一个动作,以迪亚兰丽的重拳为列:
;站立 重拳
[Statedef 210] ;一个动作的开始的标记,210是代表动作号,表示这个动作时标记是210,是自己定义的数字
type = S ;表示这个动作的状态是站立(s),空中(a),蹲态(c)
movetype= A ;表示这个动作的状态是攻击(A),被攻击(H),不攻击也不被攻击(I)
physics = S ;表示这个动作的所受的摩擦力类型时是站立(s),空中(a),蹲态(c)
juggle = 10 ;连击点数
poweradd= 65 ;自己的能量增加的点数
ctrl = 0 ;受控制状态,0(作这个动作时不被控制),1(作这个动作时被控制)
velset = 0,0 ;这个动作的初始速度,如果动作是空中的基本动作这一项就要去掉
anim = 210 ;对应air里的动作号
sprpriority = 2 ;所在的图层,这个属性可以不用写
[state 3002]
type = velset
trigger1 = var(17) = 1
trigger1 = time = 0
x = 10
[State 117]
type = VelSet
trigger1 = AnimElem = 2
trigger2 = AnimElem = 3
x = 4
[State 117]
type = VelSet
trigger1 = AnimElem = 4
x = 0
[State 211, 1] ;声音的设定部分
type = PlaySnd ;type的类型
trigger1 = Time = 2 ;条件是动作的时间的第二帧
value = s0, 2 ;声音的标记
[State 211, 1]
type = PlaySnd
trigger1 = Time = 1
value = s300, 1
;攻击效果的设定,详见幻影的翻译(顶帖)
[State 210, 2]
type = HitDef
trigger1 = animelem = 3
persistent = 0
attr = S, NA
hitflag = MAF
animtype = hard
air.animtype = back
damage = 95
getpower = 80,30
givepower = 10
guardflag = MA
pausetime = 12,12
sparkno = S161
guard.pausetime = 12,17
guard.sparkno = S7003
sparkxy = -20,-80
hitsound = S200,1
guardsound = S210,0
ground.type = hard
ground.slidetime = 17
ground.hittime = 19
ground.velocity = -8
guard.velocity = -7
ground.cornerpush = 1
air.velocity = -3,-5
air.cornerpush = 1
air.fall = 0
fall.recover = 0
yaccel = .5
;动作的结束部分,一个动作又开始就必需有结束,空中动作可以省略这段代码
[State 211, 5]
type = ChangeState ;固有类型
trigger1 = AnimTime = 0 ;动作动画播放结束
value = 0 ;动作替换到的动作号,0是站立的动作的动作号
ctrl = 1 ;表示动作结束后人物处于可控制状态
;站立 重拳
[Statedef 410] ;一个动作的开始的标记,410是代表动作号,表示这个动作时标记是410,是自己定义的数字
type = C ;表示这个动作的状态是蹲(s),空中(a),蹲态(c)
movetype= A ;表示这个动作的状态是攻击(A),被攻击(H),不攻击也不被攻击(I)
physics = C ;表示这个动作的所受的摩擦力类型时是蹲(s),空中(a),蹲态(c)
juggle = 10 ;连击点数
poweradd= 65 ;自己的能量增加的点数
ctrl = 0 ;受控制状态,0(作这个动作时不被控制),1(作这个动作时被控制)
velset = 0,0 ;这个动作的初始速度
anim = 410 ;对应air里的动作号
sprpriority = 2 ;所在的图层,这个属性可以不用写
[State 411, 1] ;声音的设定部分
type = PlaySnd ;type的类型
trigger1 = Time = 2 ;条件是动作的时间的第二帧
value = s0, 2 ;声音的标记
[State 411, 1]
type = PlaySnd
trigger1 = Time = 1
value = s300, 1
;攻击效果的设定,详见幻影的翻译(顶帖)
[State 410, 2]
type = HitDef
trigger1 = animelem = 3
persistent = 0
attr = S, NA
hitflag = MAF
animtype = hard
air.animtype = back
damage = 95
getpower = 80,30
givepower = 10
guardflag = MA
pausetime = 12,12
sparkno = S161
guard.pausetime = 12,17
guard.sparkno = S7003
sparkxy = -20,-80
hitsound = S200,1
guardsound = S210,0
ground.type = hard
ground.slidetime = 17
ground.hittime = 19
ground.velocity = -8
guard.velocity = -7
ground.cornerpush = 1
air.velocity = -3,-5
air.cornerpush = 1
air.fall = 0
fall.recover = 0
yaccel = .5
;动作的结束部分,一个动作又开始就必需有结束,空中动作可以省略这段代码
[State 411, 5]
type = ChangeState ;固有类型
trigger1 = AnimTime = 0 ;动作动画播放结束
value = 11 ;动作替换到的动作号,11是蹲态的动作的动作号
ctrl = 1 ;表示动作结束后人物处于可控制状态
;下边给大家介绍一下人物的飞行道具的得制作,其实也很简单方法与普通的动作制作差不多,
;只是把type里的hitdef换作Projectile(发弹),以上边的列子来示范一下
;
[Statedef 410] ;一个动作的开始的标记,410是代表动作号,表示这个动作时标记是410,是自己定义的数字
type = C ;表示这个动作的状态是蹲(s),空中(a),蹲态(c)
movetype= A ;表示这个动作的状态是攻击(A),被攻击(H),不攻击也不被攻击(I)
physics = C ;表示这个动作的所受的摩擦力类型时是蹲(s),空中(a),蹲态(c)
juggle = 10 ;连击点数
poweradd= 65 ;自己的能量增加的点数
ctrl = 0 ;受控制状态,0(作这个动作时不被控制),1(作这个动作时被控制)
velset = 0,0 ;这个动作的初始速度
anim = 410 ;对应air里的动作号
sprpriority = 2 ;所在的图层,这个属性可以不用写
[State 411, 1] ;声音的设定部分
type = PlaySnd ;type的类型
trigger1 = Time = 2 ;条件是动作的时间的第二帧
value = s0, 2 ;声音的标记
[State 411, 1]
type = PlaySnd
trigger1 = Time = 1
value = s300, 1
;攻击效果的设定,详见幻影的翻译(顶帖)
[State 1000,Proj1]
type = Projectile
attr = S, SP
trigger1 = AnimElem = 4;道具出现的画面是第四张
projanim = 1480 ;道具出现时的状态是读取得air里的第1480号的动画
projID = 1480;道具标记
projhitanim = 1485 ;道具击中时替换到的动画号
projremanim = 1485;道具消失时替换到的动画号
projcancelanim = 1485;道具cancel时替换到的动画号
projhits = 3 ;道具的攻击次数
projremove = 1 ;道具是否会消失
projpriority = 1;道具的攻击优先权(1~7)
projshadow = -1;道具的影子设定
sparkno = s1041
guard.sparkno = s1039
sparkxy = 20,0
offset = 75,-55
velocity = 3.2, 0
damage = 30, 10
animtype = hard
ground.type = High
guardflag = MA
hitflag = MAFP
pausetime = 5,5
hitsound = S220,0
guardsound = s150,0
ground.slidetime = 10
ground.hittime = 10
ground.velocity = -6.2,-4
air.velocity = -4.8,-4.1
air.juggle = 9
air.fall = 1
fall = 1
envshake.time = 8
envshake.ampl = 2
;动作的结束部分,一个动作又开始就必需有结束,空中动作可以省略这段代码
[State 411, 5]
type = ChangeState ;固有类型
trigger1 = AnimTime = 0 ;动作动画播放结束
value = 11 ;动作替换到的动作号,11是蹲态的动作的动作号
ctrl = 1 ;表示动作结束后人物处于可控制状态
;下边介绍一下cns里的statedef -1下的东东
;在运行时这个底下的代码会一直被解析,也就是这些代码会一直执行
;一般情况受击时出声的代码都写谡饫?[statedef -2]
[State -2, HitAttack]
type = PlaySnd
triggerall = Time = 0
triggerall = life > 0
trigger1 = stateno = 5000
trigger2 = stateno = 5001
trigger3 = stateno = 5002
trigger4 = stateno = 5010
trigger5 = stateno = 5011
trigger6 = stateno = 5012
trigger7 = stateno = 5020
trigger8 = stateno = 5021
trigger9 = stateno = 5022
value = 5000, 0
;现在我开始为大家介绍cmd下的东西
;这些东西其实很简单,道理是先定义出招的指令然后触发指令,触发指令是在[statedef -1]下执行的
;所以cmd里必须有[statedef -1]
[Command]
name = "a";定义一个指令,名字是"a"
command = c;暗地键位是c
time = 1;完成指令的时间是1
;下边是[statedef -1]下的触发指令
[State -1, Stand Light Punch]
type = ChangeState
value = 200;完成指令后脚色进行的动作
triggerall = var(59) != 1
triggerall = (command = "c")
triggerall = command != "holddown"
trigger1 = statetype = S
trigger1 = ctrl |
评分
-
3
評分人數
-
|