【灌水】想发点帖子刷分,又没啥素材,只好写点这个
2dfm吧
全部回复
仅看楼主
level 11
《斗魂》制作的全过程回顾[一楼喂熊]
2012年08月15日 21点08分 1
level 11
[啊!]又吞了
2012年08月15日 21点08分 3
《斗魂》创意阶段:在正式制作前三个月,开始创意。基本概念是:《斗魂》是一个模版。既然是模版,它的攻击招式都是空白的,默认移动招式也都是空白的,这些部分看起来就像是新建的player文件的对应部分那样
2012年08月15日 21点08分
《斗魂》是一个升级模版,它相当于给2dfm软件增加了一些扩展功能(虽然这些功能其实是用原有功能做出来的),例如检测血量数值,按变量数值设置速度,检测人物面对方向等。在这个意义上来说,《斗魂》其实是对2dfm的升级
2012年08月15日 21点08分
《斗魂》还是一个简化制作的模版,所有游戏制作者最讨厌的受伤反应制作部分,可以通过这个模版迅速完成(一般来说只需要替换图片和修改受伤区),然后就可以立即进入个性招式的制作阶段
2012年08月15日 21点08分
这三个理念贯穿了《斗魂》的整个制作过程,直到结束。而要想达成这些目标,第一步就是制作那些扩展功能。在正式制作前这三个月的时间里,我做了许多实验,来确定2dfm可以做到哪些功能,去掉其中极不常用的,最终确定《斗魂》所提供的扩展功能的类型
2012年08月15日 21点08分
level 11
[拍砖]
2012年08月15日 21点08分 4
在兼容性测试基本完毕后,我开始对所有扩展功能所用到的变量进行统筹规划,尽可能做到每个功能都有自己专用的变量,以便将来在多个功能同时工作时,不会争夺同一变量造成执行故障。
2012年08月15日 21点08分
然后就是列出多种变量使用方案,从中刷选最节约的一种。每一种变量都是有限的,尤其是系统变量还要提供给全局使用,因此,扩展功能及可能避免占用系统变量,只在绝对必要的情况下才使用系统变量。
2012年08月15日 21点08分
而有些扩展功能是人物与其飞镖共用的,就要占用角色变量来交换数据,因此也就导致了角色变量吃紧,为了尽可能节约角色变量,那些只有人物本体才会用到的扩展功能,一律使用任务变量,而不使用角色变量
2012年08月15日 21点08分
尽管如此,2dfm所提供的变量还是太少了,很多复杂计算都需要多个中间变量来寄存过程数据。为了解决这个问题,我又进行了大量实验,测验2dfm中哪些脚本序列全部执行完成后才会执行其他脚本,最终找出了一个大量节约变量的方法:
2012年08月15日 22点08分
level 11
[揉脸]
2012年08月15日 22点08分 5
使用这种方法,节约了大量中间变量,以至于后来又有富余变量资源用于新增一些扩展功能。 当所有扩展功能脚本修改完成后,我就新建了正式的player文件,开始对所有扩展功能脚本进行整合,即把它们利用跳转脚本,全部塞进10个招式项目里
2012年08月15日 22点08分
这10个招式项目位于《斗魂》player文件的开头,一共有2550个脚本方格组成 (完全占用),以避免将来使用者误操作在其中插入多余脚本导致功能崩溃。而且有防修改功能,任何新插入或删改原有方格的操作都会造成所有功能失灵
2012年08月15日 22点08分
而每个扩展功能都不在这10个整合项目之列,而是另外新建的招式项目。每个扩展功能实际 上占用了一个招式项目,以备将来使用者【调】用这个项目来调用对应的扩展功能,例如【调】用【人物面对方向】项目,可以检测当前人物面对左侧(1)还是右 侧(0),并把对应的数值存给专用变量
2012年08月15日 22点08分
而扩展功能项目本身并不包含真正起作用的那些脚本序列,那些序列都整合在开头10个招式项目里,扩展功能项目只是含有一个【跳】脚本跳转去整合区中的某个脚本,开始执行该功能的脚本序列,执行完毕后跳回该扩展功能项目中的一个占位用的脚本方格
2012年08月15日 22点08分
level 11
[抖胸]
2012年08月15日 22点08分 6
所有这些工作,用了半年多的时间,然后就是对整合好的这些脚本序列进行运行测试。第一次的运行测试非常不走运,有三个扩展功能运行出错。这意味着我必须重写所有脚本。类似地,重写一次测试一次,测试出错再次重写,直到第四次重写完成,所有脚本运行正常,此时实际上又增加了一些新的扩展功能
2012年08月15日 22点08分
当去年年底我彻底完成扩展功能制作时,集成脚本区已经包含了20个招式项目,共计5100个脚本方格。这时我想到一个问题,当一个2dfm的player文件拥有上万个脚本方格时,它的运行是否会有问题?于是新的实验开始了
2012年08月15日 22点08分
我在贴吧贴出了一个N in 1的计划,大意是用2dfm制作非格斗游戏。这个概念是一时兴起,原本就是为了测试大量脚本方格存在时,软件运行是否稳定。为此我制作了一个测试用的半成品游戏《坦克大战》
2012年08月15日 22点08分
这个游戏不仅仅测试大量脚本存在的运行稳定性,还测试大量【物】同时存在时的运行稳定性,结果令人鼓舞,2dfm的稳定性非常好。N in 1的第一作,目前只有两个吧主手里有。其思路其实也是很新颖的:
2012年08月15日 22点08分
level 11
[Yeah]
2012年08月15日 22点08分 7
在剧本模式下,玩家的选人菜单类似红白机游戏的菜单列,每个菜单项目就是一个player文件,例如坦克大战那一项就是“我方”player文件,一旦选择它,就会激活它的剧本模式,它的剧本模式将会用到“敌人”“场景”player文件(但它们不存在自己的剧本,只是供别人剧本使用),来运行一个坦克大战游戏
2012年08月15日 22点08分
再比如有一个《雷电战机》游戏,它在选人菜单中也是一个文字选项行,玩家选择它其实就是选择了这个游戏对应的那个“我方战机”player文件的剧本模式,在这个剧本闯关中,还要用到另外两个player文件(敌方飞机、背景画面),而这两个文件是不存在剧本模式的,所以在菜单中无法被选择
2012年08月15日 22点08分
依照这种方法,我们可以用最多49个player文件制作出十几(例如15)个小游戏,并把它们的主player文件列入剧本模式的选人菜单,看起来像是15 in 1组合游戏卡带的选择画面。而不同爱好者可以在今后这类游戏多了的时候,选择喜欢的游戏组成自己的合卡(其实就是导入对应游戏的player文件并修改选人菜单)
2012年08月15日 22点08分
这个创意只是《斗魂》制作过程里的插曲,当然《斗魂》的脚本模块最终也是为这些未来的大计划服务和作铺垫用的。坦克大战这个小游戏只是一个样板,当然它主要的作用是测试2dfm运行的稳定性,结果是令人非常满意的
2012年08月15日 22点08分
level 11
[啊!]
2012年08月15日 22点08分 8
从开始制作受伤反应,《斗魂》就进入了新阶段,它引入了一个《斗神擂台》或者《功夫寻祖》中广泛采用却又没有成熟化的概念,那就是全程调用。将来你们拿到《斗魂》时,很可能根本用不到教程,就能明白2dfm这货怎么工作
2012年08月15日 22点08分
《斗魂》中的一个战斗用招式项目(不是扩展功能的项目),外观看来就是“调调调图图图图调图图图图”。具体看看那些调,你会看到,第一个调引用了一个项目叫做“移动速度”,第二个调引用了一个项目叫做“报告血量给系统”,第三个调引用了一个项目叫做“受伤区域出现”,第四个调引用“受伤区域更改”
2012年08月15日 22点08分
没错,你一看文字就明白调用的功能是啥,我都省了给你写注解了。具体要修改什么,去找被调用的项目,修改它就行了,项目的名称是带有标号的,找序号就行,不用地毯搜索。最关键的是,被调用的项目将来可以重制增加新功能以及改名。例如一受伤反应中调用的“受伤区域”项目可以改成“受伤区域+受身”
2012年08月15日 23点08分
然后你在那个改名后的项目里增加受身指令脚本就行了,你这个人物就有了受身功能。类似的可以做出什么“防御反击吹飞”、“抓技拆解”,反正道理都一样。实际上如果你真不会做这些功能,那么《斗魂》已经给你预备好现成的 受身、GC吹飞、拆抓 项目了,你就修改一下调用指向就完事大吉了
2012年08月15日 23点08分
level 11
[瞌睡]
2012年08月15日 23点08分 9
没这两下子,咱也不敢叫《斗魂》“无界版”。大部分格斗游戏里的高级功能,咱都有挂件预备好了。但有一点有言在先,你不需要知道那些挂件的功能具体是怎么做的,你只要会挂上就行。但如果你非要纠结那些挂件的原理,那就不是战士,而是兵器研发人员了,菜鸟最好别想拆开兵器看看构造,否则你会很郁闷
2012年08月15日 23点08分
言归正传,在制作《斗魂》之前,研究了那么些年格斗游戏,都没有认识到受伤反应的重要性,受伤反应就是格斗游戏之魂。高品质的格斗游戏不在于华丽的画面,而在于错落有致的游戏节奏。什么东西决定了格斗游戏的节奏?那就是受伤反应
2012年08月16日 00点08分
考察了一些商业游戏之后,我发现它们的受伤反应持续时间,都是有规律的,大都以4个脚本周期为基本单位,例如地面轻伤后退时间为24周期,中伤为28周期,重伤为32周期,被绊倒落地时间为56周期等等
2012年08月16日 00点08分
各种不同受伤反应的存在决定了游戏的连续技、伪连续技、伪伪连续技的续招时间。它们之所以是4周期的整数倍,目的就是为了让三类连续技的节奏切换都有统一的时间缩短和延长因数,有利于设计者设计连招时精确把握时间
2012年08月16日 00点08分
level 11
[震荡]
2012年08月16日 00点08分 10
《斗魂》存在的一个重要目的就是简化制作,其深层含义就是让使用者用最小修改成本,就能制出有自己特色的高品质游戏。而要想做出高品质游戏就意味着《斗魂》代替大家制作的受伤反应部分必须就是高品质的。因此,受伤反应这部分的制作花了很长的时间,从2月末一直到现在,还没有完全完成
2012年08月16日 00点08分
在这个过程里,《斗魂》的受伤反应系统大小修改不下20次,其实现在也没有完全定型。最初修改的是特效系统,火焰特效等功能空前强化,最为关键的就是被攻击方如何识别攻击方的攻击元素类型,展示出正确的元素特效来,这里涉及到两种数据判定方法:
2012年08月16日 00点08分
一种是受伤方用不同位置的道具去探测攻击方对应位置的道具,而位置决定数值,数值决定元素特效类型。一种是攻击方控制受伤方进入某个被抓反应,该被抓反应瞬间设置一个数值给受伤方,受伤方根据这个数值来判断自己该表现出哪一种元素特效
2012年08月16日 00点08分
但这个问题与鞭尸功能相比,真是小巫见大巫。2dfm制作鞭尸,有先天的缺陷,倒不是它无法鞭尸,而是尸体不能自动做出正确的受伤动作。为了解决这个问题,我进一步扩展利用了前述两种数值判定方法,来让黑体字【失败动作】项目能自动识别攻击方的攻击,做出正确的受伤动作
2012年08月16日 00点08分
level 11
[拍砖]
2012年08月16日 00点08分 11
《斗魂》的受伤反应系统包括了被抓反应,这也是为了避免制作者在制作抓招时出现疏漏,忘记让被抓一方恢复自由的时候,被抓方定死在画面上的问题。由于采用了受伤反应制作被抓反应,被抓一段时间后,被抓方可以自动恢复自由。此系统更重要的目的是支持拆抓的制作
2012年08月16日 00点08分
统计商业游戏中最常见的受伤动作和被抓动作,并将其整理成一个体系纳入《斗魂》的受伤反应系统,是个庞杂的工作,耗费了大量时间,但这是值得的。《斗魂》的被抓反应系统基本上能够配合制作主流知名商业游戏的各种花样投技,将来所有用《斗魂》制作的人物,都能正确配合用《斗魂》制作的抓招
2012年08月16日 00点08分
《斗魂》的受伤系统不仅能满足 烧烤控 和 推倒控 的实际需要,还为广大 揉脸控 提供了强力支持,每个人物可以拥有至多4种抓敌人头部的抓招,也可以被敌人的四种抓头部的抓招控制。而且这些抓招是可以自由修改制作的。
2012年08月16日 00点08分
《斗魂》的受伤反应附带有 霸体、当身、拆抓、防反吹飞、受身 等挂件扩展项目,使用者可以自由选用。《斗魂》采用了“皮影”模式,即给人物本体挂一个同步移动的物体,用物体来播放动画,这样大家只要修改物体动画即可修改动作样式,不用改本体的脚本。且在动作切换过程中,可以设定延续上一招式的动作
2012年08月16日 00点08分
level 11
[揉脸]
2012年08月16日 01点08分 12
《斗魂》目前面临最大规模的优化设置:【一】制定攻击硬度标准,以判定硬度来决定对招双方谁受伤,或双方能否攻击相抵。【二】增加反制系统,当一方长时间被另一方控制,或者长时间被连击时,制止过度控制或连击。【三】对 攻击、攻击相抵、控制 这三类基本招式设置互相制约的机制
2012年08月16日 01点08分
这些标准制定完成之后,越霸道的招式需要越多的额外制作,来避免被一些制约机制处罚。例如那种懒汉式的不做受伤区域就获得无敌招式的传统制作方法将在这个体系下受到处罚,只有正确制作硬度判定才能获得不受处罚的无敌技能。而常规的只设置受伤区域和攻击区域的简单做法,将被系统判断为弱硬度攻击
2012年08月16日 01点08分
对于当身、霸体、指令抓这类霸道招式,该标准也有相应的制约措施,想要获得正确的效果,只要调用《斗魂》提供的挂件项目(模块)即可,这些挂件项目是自动符合上述制约标准的。类似的挂件项目还有 反射飞镖、宠物控制 等,也都符合各自的对应制约标准
2012年08月16日 01点08分
目前,这些额外的东西正在试验制作中,它们将最终影响《斗魂》受伤反应系统的一些关键功能(例如拆抓、受身、防反吹飞攻击所受制约的机制),可以算是《斗魂》受伤反应系统制作的最后部分,这些东西都是为了将来大家用《斗魂》制作的个人作品能够在平衡性上达到高品质标准
2012年08月16日 01点08分
level 9
好,好长帖子…………我居然都看完了!!!
2012年08月16日 01点08分 13
[睡觉]
2012年08月16日 01点08分
level 11
[88]全文暂时完,以后有新进度继续更新
2012年08月16日 01点08分 14
level 8
...... 楼主辛苦了!
2012年08月16日 03点08分 15
level 11
楼中楼确实比较安全
2012年08月16日 05点08分 16
level 9
我....我还可以说些什么,
火星人果然不是人类。
(汗)
2012年08月16日 07点08分 17
level 9
碉炸了[Yeah]
2012年08月16日 07点08分 18
level 11
[变脸],步步硬骨头,lz犬齿系。
对攻击硬度的标准表示很关心,想知道到底谁敢跟我攻击互抵?
2012年08月16日 09点08分 19
这话很让我怀疑吧主到底是gg还是是mm
2012年08月18日 14点08分
回复 wzy200530022 :我神一般的领会了,I'm攻
2012年08月18日 18点08分
回复 wzy200530022 :我会告诉你其实冷吧是受吗?
2012年08月19日 02点08分
level 7
这个工作量真恐怖。我有一个邪恶的想法,LZ要是硬盘坏了。。。。。。。
2012年08月16日 10点08分 20
狡兔必有三窟[睡觉]
2012年08月18日 22点08分
回复 厉风 :何况是火星兔,[酷]
2012年08月19日 02点08分
level 9
原来吧主是为了刷分啊,其实分数对我一文不值
2012年08月16日 12点08分 21
1 2 尾页