第二篇教程(必杀技制作篇)地址: http://bbs.66rpg.com/forumTopicRead.asp?id=117333 第三篇教程(飞行道具、AI篇)地址: http://bbs.66rpg.com/forumTopicRead.asp?id=117455
想做出如《幻想传说》那样的横板战斗吗?想DIY一个属于自己的格斗RPG吗?用RMXP实现并不是梦想。而实现的方法,就是樱雅开发的Full-Move BattleSystem
原版范例下载 http://bbs.66rpg.com/UP_PIC/200801/Full-Move_Battle_System.rar
简化版脚本下载地址:(此脚本已经过我的修改,增强了一些格斗感,本教程也是以此版本为标准) http://bbs.66rpg.com/UP_PIC/200801/我爱龙_横板格斗脚本.rar
使用说明:这个脚本文件是直接从我工程里拿出来的。各位要把分割线之内的Window_EquipItem和Full CBS 的几个Part一起拷到自己的工程里,其他的不要复制,否则直接用会出错。
很多网友说不会用这个脚本,由于在下近日正在用这个脚本做游戏,所以略微了解了一些皮毛,目前将我所知的部分向大家做些解释,相信看懂了之后,要做出自己的格斗RPG也不是那么困难了。
首先,这个脚本的作用是完全改变原来的战斗方式,从回合制变成了横板即时格斗。操作方式:上下左右控制方向,双击左或右是加速跑;C键(以下皆以键盘上的按键为准)为普通攻击,连按三下是三连击;X键是必杀技,X、前X、上X和下X分别是四种不同的必杀技,需要事先在技能窗口设定好;A键是跳跃;S键是防御;D键是暂停游戏,同时打开战斗选项窗口,第一个选项是使用道具,第二个选项是设定技能,第三个选项是逃跑;W键是换人,作用是当共同战斗的角色有2人以上时,按此键可以切换自己操纵的角色。
理解了基本的操作方式,接下来就是制作自己的角色人物了。由于战斗是横板格斗,因此需要各种各样的动作,包括待机、行走、攻击等等。这里我用从KOF游戏中提取出来的gif图片为例说明一下制作方法。
前期的准备:在Battlers文件夹中放一张图片,命名为weapon_001,图片内容为空也没关系,但一定要有这张图片。
万事开头难,首先我们要知道如何创建一个人物。先在游戏工程的数据库里新建一个角色,行走图可以随便设,但战斗图先不要设。然后我们打开脚本,在“FullCBS part-5 (Reflex)”里面,找到34行的case actor_id,这里就是设置一个人物的各种基本属性,大多数属性的旁边都有注释,不难看懂。我来解释一下@stand_body_rect、 @sit_body_rect和 @down_body_rect分别是人物站立、下蹲和倒地时的判定范围。相当于人物的坐标和大小。= Rect.new(X坐标, Y坐标, 人物宽度, 人物高度)设完之后我们可能对这些数字没有概念,不知道到底人物坐标在哪儿,到底有多大,别急,后面会慢慢讲到。后面的战技设定是规定了这个人物可以使用多少基本的攻击动作。比如@forte_ids[ 1] = 121 # 弱攻撃 意思是使用弱攻击就等于使用121号特技。以下依此类推。
我们再把脚本往下拉,在设定完actor之后,会看到def setup_enemy_reflexes(enemy_id)和case enemy_id,这里是设定敌人的,方法和设定角色一样,别忘了在数据库中先建好一个敌人再到脚本中这个位置进行设置。
设定好人物之后没有战斗图怎么办?首先我们需要一张默认的战斗图,比如我要做一个二阶堂红丸,那就选一张红丸的战斗图,取名叫BENIMARU。注意这个BENIMARU一旦确定,就不要随意更改,因为后面的一系列图片都要以这个作为基础。同时在数据库中为角色设置好这张战斗图,也可以顺带新建一个敌人,也用这张战斗图,用以测试。
接下来看这张照片
为什么会有这么多红丸呢?其实这就是他的动作图。请大家搜索脚本中的“def do_stand”,会找到下面这段话 def do_stand return if @me.now_form_id/10 == 0 and !@attack_motion_plan.empty? @dashing = false @attack_motion_plan = [1,nil,nil,2,nil,nil,... end 这里面的1,nil,nil,2,nil,nil,...就是人物站立时的动作编号。看一下,最大的数字是10,就表示人物站立待机的动作需要10帧。那么我们就需要10张战斗图,分别代表这10帧的动作。而图片的来源很简单,下载一张红丸站立时的gif图片,用gif movie gear打开,看看是不是有10帧的内容,多了就删掉重复的,少了就复制几帧贴在后面,总之补足10帧就行。然后选“另存为”,保存类型PNG,风格为“独立图像”,选“所有的”,在左边的白框中键入文件名范例“BENIMARU_00”,这时会看到下面的“文件名范例”会出现“BENIMARU_001”和“BENIMARU_002”。不错,这样保存的话,他就会自动在文件名前缀后面编号,从而得到从“_001”到“_010”的10张图片,当然,_010这张名字得改一下,默认的是_0010。
改完之后将这10张图片也都放进Battlers文件夹里。此时进入战斗测试,看看,是不是红丸在站立待机时已经会动了呢?
以此类推,其他的动作也可以通过相同的方法完成,我就不一一赘述了,只把动作对应的编号讲一下。 站立:001-010 行走:011-020 奔跑:021-026 下蹲:031 跳起上升阶段:041 跳起下降阶段:051 防御:061 挨打:071-074 倒地(或曰死亡图):091 战斗胜利动作:901-950(可以自己改得更多) 战斗险胜动作:801-850(同上) 普通攻击(第一下和第二下是一样的):111-113 普通攻击(第三下):116-120 冲跑攻击(在奔跑中按攻击键):121-130 前强攻击、上强攻击(按住前或上再按攻击键):131-140 下蹲攻击(按住下和攻击键):141-150 空中攻击:152 空中强攻击:151
以上是一个人物的基本动作。编号161-800目前都处于空闲状态,可以日后用来做必杀技。
那么,现在一个人物就算做完了吗?在战斗中攻击试试,是不是会脚本出错?那是因为虽然在脚本中设定了战技,但在数据库中还没有设定过。刚才说到的弱攻击就是121号特技,那么就在数据库的“特技”一栏中设一个121号特技,名字就叫弱攻击。同理122-127都要设好,是地面上的攻击技,而131-135是空中的攻击技。
最后,关于人物坐标,如何确定自己设置的坐标和高宽是合理的呢?其实打开脚本,在FullCBS part-8的第9行,将ENABLE_RECTLINE_WINDOW = false改成= true,这样在战斗中就会把人物设定的坐标和长宽矩形给画出来,一目了然,但是游戏速度被大幅降低,只是用于测试之用。
说了这么多,如果您能自己试着做出一个人物出来了,那我写这篇东西就没白费。如果大家支持,我会再继续介绍如何制作必杀技以及如何设定敌人AI等方法。 欢迎拍砖
|