【理论深究】2D格斗游戏制作大师,2DFM脚本的目标指向失效问题分析
2dfm吧
全部回复
仅看楼主
level 11
cryo0_0 楼主
     闲话:
     估计大家在使用2D格斗游戏制作大师制作格斗游戏的时候,都会遇到如下问题。
    (以下仅以角色/招式单元进行说明,其实所有涉及脚本表的地方,都存在这个问题,包括系统图像、招式、影片、场景。)
    先设立两个名词,“上游脚本”和“目标脚本”,以便可以描述的简单些。
   
     如上图:某个[跳]脚本指向了一个[图]脚本,那[跳]脚本就是上游脚本,[图]脚本为目标脚本。
    图中2处[跳]脚本指向了同一个[图]脚本,他们都是[图]脚本的上游脚本,除了所在位置不同,剩下的没有什么区别,可以通过复制粘贴获得。
2011年04月21日 13点04分 1
level 11
cryo0_0 楼主
     故障描述:
     有时在修改某个招式项目的时候,会导致其它招式项目的一些脚本的“目标指向”莫名其妙的发生了变化,导致那些招式不能正常执行,或是出现一些很难找到的“异灵”故障。
2011年04月21日 13点04分 2
level 11
cryo0_0 楼主
    故障分析:
     在修改某个含有“目标脚本”的招式项目的时候,如果导致目标脚本和其上游脚本失去了联系,那2DFM就会按着一定的规则自动为上游脚本分配另一个目标指向,这虽然会避免游戏崩溃,但是,也因此产生了我们所不需要的招式bug。
     2DFM的26种脚本中,可以作为上游脚本进行目标指向的脚本如下:
     移动类脚本:[跳][调][循]
     分歧类脚本:[招][动][随][令][改]
     这些脚本可以指向项目名称,也可以指向项目中的某个脚本格。
     ============================================================================
     只有一种情况可以导致上游脚本失去目标,那就是目标脚本曾被删除、或剪切!!!!
     删除:不必多说。
     剪切:除了通过右键或快捷键直接剪切目标脚本,会导致目标脚本被剪切掉,目标脚本一旦被剪切,即使再被粘贴到其它地方也没用,因为剪切完毕,目标脚本就失去了自己的脚本格位置,2DFM就已经为上游脚本分配了另一个目标指向。
2011年04月21日 13点04分 3
level 11
cryo0_0 楼主
     楼上我们得出了一个结论:
     只要目标脚本不曾被剪切、删除过,其与上游脚本之间的关联就会维持生效,即使在招式项目中增加、删减其它脚本导致该目标脚本的脚本格编号发生改变也没事,上游脚本会自动识别指向其所在新的脚本格编号。
     还需注意的是,通过目标脚本复制出来的脚本,是与原上游脚本没有任何联系的,俗称:没有一毛钱关系!
     因此,如果们在制作的中期,想主动通过复制、剪切来调整招式项目的排序的话,如果里面含有目标脚本,那么想维持指向关联 = 无解。
    但是,如果是因为插入新的招式项目,导致含目标脚本的招式项目的排序被动的改变了,这样不会破坏上游脚本和目标脚本的关联指向关系。
     同理,复制粘贴另一个角色脚本表里的招式到自己的角色里,其中目标脚本的指向关联也会失效。
     ===============================================================
     但与之相对的是,上游脚本却可以随便通过复制、剪切来改变位置,只要没被删除过即可,而且,通过上游脚本复制出来的新的脚本,无论粘贴在哪里,都同样保留着和目标脚本之间的指向关系。
     所以,改变仅含有上游脚本的招式项目的项目排序,是可以的。
2011年04月21日 14点04分 4
level 11
cryo0_0 楼主
    解决方案:
    表达能力有限,可能说的比较含糊、模糊、糊涂,以及不算清楚。
    如果,你能理解4楼以前的讲述,那请注意下面所说的操作注意事项即可。
    如果,不能理解4楼以前的讲述,也请注意下面所说的操作注意事项即可。
    [被殴]废话!
    操作注意事项:
    1. 在游戏设计的前期,角色的规划要完整,在制作期间只增加项目,一旦必须改变招式项目在脚本表中的排序,或需要删除招式项目,必须检查修正相关的上游脚本的关联指向。
    虽然,正规的游戏设计过程需要比较完整的前期整体规划,但是,我们作为菜鸟不可能把规划做的如此完备,而且,随时会有新的设想,那么既然不可避免,就多加注意好了。
2011年04月21日 15点04分 5
level 11
cryo0_0 楼主
    补充说明:
    3楼中只是作为例子指出了一些类型的上游脚本,其实还不只这些,[动][物][气][血]这些脚本,也需要指向招式项目或项目中的某个脚本。
    [敌][销][改][控]这些脚本,其实也是在间接的指向目标招式项目。
2011年04月21日 16点04分 6
level 11
cryo0_0 楼主
     以上话题,仅此。
     以下话题,闲谈。
     牵一发,而动全身,2dfm里很多制作单元之间也是属于上下游关系,相互关联的,因此,在制作中期时,改变招式项目的排序,或删除某个招式项目是个很严肃的问题,
     以下,我们举例说明下。
    
     我们客观的理解下“角色/招式”单元,其实它就是个角色的动作动画库,打击火花、光效特效的动画也都在这里制作,之所以称之为库,是因为他是最下游的制作单元了。受攻击反应、指令、AI这些上游单元都需要指定这个动画库里的目标动画。
     比如“角色/指令”单元(它是真正制作角色招式的单元),我们在那里创建了一个角色招式并编写指令以后,就需要在“角色/招式”动画库里为这个招式指定3种情况下的招式动画。(如上图红圈圈)
     这个动画的指向确定后,如果我们删除了“角色/招式”里相对应的招式项目(或是改变其排序),那么“角色/指令”就会失去目标动画,从而导致招式不能执行。
     解决出路,只能是在调整好招式项目新的排序后,为“指令成立时执行”项重新指定动画。
2011年04月21日 16点04分 7
level 11
cryo0_0 楼主
    3楼谈到,如果目标脚本和其上游脚本失去了联系,那2DFM就会按着一定的规则自动为上游脚本分配另一个目标指向。
    那么这个智能获得新目标的规则是什么呢?
    其实还得分很多种情况,而且还有些细节的区别,目前仅仅是体验到了一部分,考虑是否费费口舌说说,因为确实对避开或解决这个问题,没什么帮助,只是了解下而已。
    继续考虑停滞中......
2011年04月21日 16点04分 8
1