你也可以成为替身使者!——替身使者克拉克深度解析
mugen吧
全部回复
仅看楼主
level 9
韦斯特宾 楼主
替身使者克拉克是本人制作的带有替身《红色旋风》的魔改老员工,这次就给有志制作人物的你来专门好好讲一讲这个替身到底是怎么做出来的。希望你看完以后也能从中领悟一些技巧。
2018年05月13日 16点05分 1
level 9
韦斯特宾 楼主
首先介绍一下我惯用的工具
从千寻MUGEN下的FF 3
处理图片的盗版Photoshop(新版)
盗录音频的Windows自带录音机
处理音频的盗版Cool Edit Pro
录制视频的WIN10自带XBOX录屏软件
处理视频的哥们儿的正版VEGAS
完全没有要花钱的意思呢……
2018年05月13日 17点05分 3
level 9
韦斯特宾 楼主
首先是第一步
你要有合适的点子。
这一步至关重要,空有灵感是不够的,需要深思熟虑、考虑好这个人物的特色,想一想大致的招式,如果招式量够多的话再开始找素材。
只凭一腔热血就横冲直撞只会白白浪费时间。
2018年05月13日 17点05分 4
level 9
韦斯特宾 楼主
第二步
找素材,用PS制作效果图和概念图。如果自己觉得这个人物“看起来怎么恁牛B呢”的话就可以开始制作了。
2018年05月13日 17点05分 5
level 9
韦斯特宾 楼主
第三步
码字
注:从此处开始就是进阶部分了,如果对制作人物一点都不了解的话请到此打住,去找找别人的基础教程、拆一拆功夫男。
2018年05月13日 17点05分 6
level 9
韦斯特宾 楼主
接下来就要详细讲解替身《红色旋风》是如何接在克拉克身上的了。
首先是召唤出替身,这里我制作成了普通的招式来进行收放替身的操作
;放出替身
[state -1]
type = changestate
value = 9001
triggerall = statetype != A ;当前状态不是在空中,即站或蹲
triggerall = var(39) = 0
triggerall = numhelper(10000) = 0 ;替身的helper的ID是10000,这里是为了保证替身在场上唯一
;triggerall = numhelper(10001) = 0
triggerall = var(59) = 0 ;让AI不要在不合适的时机出招的保险
triggerall = !ishelper ;不是helper才能使用这个招式
trigger1 = ctrl
trigger1 = command = "收放替身"
这是该招式会转入的状态号,会召唤一个Helper
;放出替身
[statedef 9001]
type = S
ctrl = 0
anim = 8000
velset = 0,0
[state 9001]
type = helper
triggerall = numhelper(10000) = 0
;triggerall = numhelper(10001) = 0
trigger1 = time = 0
stateno = 10201
name = "red"
id = 10000
postype = p1
ownpal = 1
sprpriority = -99
pos = 0,0
helpertype = player
;supermovetime = 999999
;全身出现
[statedef 10201]
type = S
movetype = A
physics = S
anim = 10004
sprpriority = -99
[state 10012]
type = posset
trigger1 = pos y <= 0
y = 0
[state 10004]
type = posadd
trigger1 = 1
x = (parentdist x) -20
y = (parentdist y) -3
[State 900,0]
type = NotHitBy
trigger1 = Time = 0
time = -1
value = SCA,aa,ap,at,NP,SP,HP,NT,ST,HT
[state 10000]
type = changestate
trigger1 = time = 18
value = 10011
这样就可以原地召唤出一个红色巨汉
2018年05月13日 17点05分 7
level 9
韦斯特宾 楼主
只是召唤出来是不够的,还需要能遥控他。所以再加一些招式用来控制替身。
;召唤螺旋打桩
[statedef 8901]
type = S
ctrl = 0
[state 8000] ;重点
type = varset
trigger1 = time = 0
var(41) = 1
[state 8000]
type = helper
triggerall = numhelper(10000) = 0
;triggerall = numhelper(10001) = 0
trigger1 = time = 0
stateno = 11300
name = "red"
id = 10000
postype = p1
ownpal = 1
sprpriority = -99
pos = 0,0
helpertype = player
[state 8000]
type = ChangeState
trigger1 = Time = 0
value = 0
ctrl = 1
这里再次写上召唤Helper是为了在没有放出替身时使用该招式就可以直接发动攻击,省去了操作的麻烦。
这部分的重点是varset,设置变量41为1
2018年05月13日 17点05分 8
level 9
韦斯特宾 楼主
在召唤替身的那一步中,初次召唤的替身先转入状态10201,之后转入10011
;上抛准备
[statedef 10011]
type = S
movetype = A
physics = S
juggle = 0
velset = 0,0
ctrl = 0
anim = 10005
sprpriority = -99
这里把hitdef省略掉了
[state 10011]
type = changestate
value = 10013
triggerall = ishelper
trigger1 = root,var(41) = 1 ;这一句就是核心,当根的变量41为1时,启动changestate,转入10013
helper的变量和人物本体的变量是不一样的,如果忘记加上root或parent的话就会读取helper自己的变量,本体不管怎么动helper都是毫无反应的
这样就成功的遥控了替身进入10013
;螺旋打桩准备
[statedef 10013]
type = S
movetype = A
physics = S
juggle = 0
velset = 0,0
ctrl = 0
anim = 10005
sprpriority = -99
2018年05月13日 17点05分 9
level 9
韦斯特宾 楼主
在10013中同样也有遥控的选项
[state 10013]
type = changestate
triggerall = ishelper
trigger1 = root,var(40) = 1
value = 10011
这里就会出现一个问题,如果转入的时候本体的var40和var41都是1的话就会loop,令程序崩溃,通称mugen落
2018年05月13日 17点05分 10
level 9
韦斯特宾 楼主
所以要在本体的招式那边把变量设定好
;召唤后抛
[statedef 8200]
type = S
ctrl =
[state 8000]
type = varset
trigger1 = time = 0
var(40) = 1
[state 8000]
type = varset
trigger1 = time = 0
var(41) = 0
这样就只有1个变量是1了。
同理,每增加一个招式,就要记得在别的招式那边把变量清零,防止loop。这个步骤非常繁杂,所以写的时候一定要好好检查,防止出错。
2018年05月13日 17点05分 11
level 9
韦斯特宾 楼主
想要令替身消失时怎么办呢?
;收回替身
[statedef 9000]
type = S
ctrl = 1
[state 9000]
type = varset
triggerall = numhelper(10000) = 1
trigger1 = time = 0
var(20) = 0
这个招式中把var20设为了0,
在替身的状态中同样有一句对应的
[state 10010]
type = changestate
trigger1 = parent,var(20) = 0
value = 10006
;全身消失
[statedef 10006]
type = S
movetype = A
physics = S
anim = 10006
sprpriority = -99
[state 10006]
type = destroySelf
trigger1 = time = 8
这样一来替身就消失了
2018年05月13日 17点05分 12
level 9
韦斯特宾 楼主
除了使用招式控制替身外,还有另外一种方法
[state -2]
type = varset
triggerall = var(59) = 0
triggerall = var(39) = 0
triggerall = var(38) > 0
trigger1 = command = "c"
var(30) = 1
这是写在-2下的varset,其实有点作弊,应该写在-1或-3里的。
这里只要按下“C”就可以把var30设置为1,道理和上面是一样的。
2018年05月13日 17点05分 13
level 9
韦斯特宾 楼主
替身有另外一种形态,可以跟随本体一起移动,这里要怎么办呢
首先,这一个只有上半身的替身使用的状态号和全身的是不一样的
[state 9001]
type = helper
;triggerall = numhelper(10000) = 0
triggerall = numhelper(10001) = 0
triggerall = var(25) = 0
trigger1 = time = 0
stateno = 10001
name = "red"
id = 10001
postype = p1
ownpal = 1
sprpriority = -99
pos = 0,0
;supermovetime = 999999
;站立上半出现
[statedef 10001]
type = S
movetype = A
physics = S
anim = 10001
sprpriority = -99
[State 900,0]
type = NotHitBy
trigger1 = Time = 0
time = -1
value = SCA,aa,ap,at,NP,SP,HP,NT,ST,HT
[state 4901]
type = posadd
trigger1 = 1
x = (parentdist x) -20
y = (parentdist y) -5
[state 10000]
type = changestate
trigger1 = time = 18
value = 10002
在10002中有这样一段
[state 4901]
type = posadd
trigger1 = 1
x = (parentdist x) -20
y = (parentdist y) -5
只要使用这一段,就可以令替身一直保持在那个距离,从而做到跟随本体移动。
-20和-5是为了微调位置设置的,可以自行变更
2018年05月13日 17点05分 14
level 9
韦斯特宾 楼主
只有上半身的招式则是令普通招式变化达成的
;立重拳
[State -1, 立重拳]
type = ChangeState
value = 211
triggerall = var(59) = 0
triggerall = var(39) = 0
triggerall = numhelper(10001) = 1 ;重点
triggerall = command = "y"
triggerall = command != "蓄下方向"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = (stateno = 200) && time > 5
trigger3 = (stateno = 230) && time > 6
[State -1, 立重拳]
type = ChangeState
value = 210
triggerall = var(59) = 0
triggerall = !ishelper
triggerall = command = "y"
triggerall = command != "蓄下方向"
trigger1 = statetype = S
trigger1 = ctrl
trigger2 = (stateno = 200) && time > 5
trigger3 = (stateno = 230) && time > 6
在cmd文件中有两个站重拳,上面的那一个带有numhelper(10001) = 1,上半身helper的id是10001,即是说在放出上半身的情况下,同样出重拳的指令就会让人物转入211而不是一般站重拳的210
2018年05月13日 17点05分 15
level 9
韦斯特宾 楼主
以上就是替身使者克拉克的系统解析,希望你看完后可以领悟到一些技巧,创造出有你自己特色的人物
2018年05月13日 17点05分 16
1 2 尾页