本文为系列教程的第三段(共三段),前两段在这里:《手把手教你RMXP 第一部分》,《手把手教你RMXP 第二部分》
本教程的目录:
1-1 RM开始:新建工程,保存工程,测试游戏
1-2 RM开始:绘制地图
(注:学到这里能画地图了)
2-1 数据库设置:角色相关【职业、特技、物品、武器&防具】
2-2 数据库设置:敌人相关【敌人、队伍】
2-3 数据库设置:状态、动画相关
2-4 数据库设置:地图图块、系统相关
2-5 数据库设置:自定素材导入【如何使用自己的素材?】
(注:学到这里能设置数据了,如果只希望制作【<A HREF=”HTTP: www.66rpg.com type.php?t=’1″ target=”_blank”‘>短剧】,可以跳过上面的第 2 章,直接看下面的第 3 章)
3-0 手把手教你入门RMXP-地图事件设置部分
3-1 地图事件设置剧情篇:显示文章、选择项、增减物品金钱、开关变量操作、条件分歧、移动路线等
3-2 地图事件设置地图篇:场所移动、显示图片、天气操作、渐变和画面色调、地图设置等
3-3 地图事件设置战斗篇:战斗处理、我方和敌方的参数增减等
3-4 地图事件设置其他篇:禁止&呼叫菜单和存档、更改窗口图形、返回标题、BGM等相关音频播放等
(注:学到这里能做剧情了)
4-1 补充部分:计时器、数值输入、标签、循环
4-2 补充部分:公共事件的使用法
4-3 补充部分:数据库“队伍”里面的事件设置法
4-4 补充部分:测试游戏时候所用的Debug模式
4-5 补充部分:制作可以发布的完整游戏包
(注:学到这里,能顺利制作、最后发布游戏了)
5 答疑部分:解决在学习本教程中一些集中的提问
4-1 补充部分:计时器、数值输入、标签、循环
本章跟着做预计需要20-30分钟。
本章介绍几个在事件指令里比较特殊的功能——学习之前需要确定你已经熟悉了第三章地图事件教程里面介绍到的各项功能。因为它们一般情况下是要配合这些功能来进行使用的。
首先我们介绍计时器操作。它在事件页面的第一页右边第四个,用来做一些需要计时的特殊事件设定。在计时器操作的窗口里你可以设定计时器是开始还是停止,并在下面的时间框里输入你需要操作的时间长度。如果选择了停止计时器,则直接将时间归零,无需设定什么具体的时间数值了。
为了能够更好地了解这个功能,我们可以在此做个范例:角色接到一个任务,需要在30秒钟之内从宝箱里拿到一个药品,否则游戏结束——这个范例要配合地图上的并行事件来进行操作,不懂并行事件的请回头看第三章。
首先是开启这个任务——在地图上建立一个新的事件(行走图随意)。按照上面的设定将计时器的时间定为30秒。然后打开一个开关,此开关作为你的并行事件的出现条件,可以随意命名(这里我将其命名为“倒数计时”)。这就是开启你这个任务的事件了。随后再建立另一个事件,设置开始条件为并行处理,然后在内容里添加判定游戏结束与否的条件分歧——在条件分歧的第一页就有关于计时器的判定,在那里你可以自行判定在什么时候执行(比如我这里判定0秒以下),然后再在条件分歧内添加计时器0秒以下出现的内容(游戏结束)。这样你的并行判定已经做完了,当开关打开(也就是所谓的“任务开始”)的时候,它会反复在地图里刷新判定,一旦计时器变成零,则立刻执行游戏结束指令。
然后是达成任务条件的那个事件——再在地图上建立一个事件,这里需要获得任务要求的物品。在这个范例里我做了一个宝箱事件,打开之后就可以获得任务要求的物品。但是获得这个物品之后计时器和并行判定还是没停下来,所以需要先将并行事件的开关关掉,然后用计时器操作把计时器停止。注意两个顺序不要搞反,因为计时器一旦归零,并行事件就会判定为符合条件然后Game Over了。
<IMG SRC=”HTTP: pic.66rpg.com ftp_pic preview rmxp_4-4.jpg? />
在事件指令第一页左边第三个可以看到“数值输入的处理”,打开后首先选择你需要让玩家自己输入的变量(这里我们选1号变量),然后再设置输入的数字位数(通常密码都会是4到6位不过这个都可以随意)。那么当游戏执行到这里的时候,玩家会被要求输入一串数字,而这个数字将会成为1号变量。接下来你就可以对这个变量进行其他操作或判定,比如说用条件分歧,当数字等于123456的时候发生什么事情,当数字等于444444的时候发生什么事情等等,自由度很高。(与其说这是密码系统不如说是秘籍系统……)这项指令的用法相对比较简单,就不做范例了。
然后是标签的用法。它有点类似于网页编辑中的Target,给你游戏的单个事件内部设定一些跳转点,然后再利用标签跳转的功能直接到达相应的位置。这里就要用到标签。在你需要跳转回去的地方设定一个标签(事件指令第一页倒数第二个),并给它命名(名字可以随便取但要注意后面使用跳转标签的指令的时候必须输入一模一样的名字),之后再在接下来需要执行这个跳转的地方使用“标签跳转”指令,输入这个标签的名字,就可以跳转回去了。要注意的是标签的用法只能在一个事件内部执行,不能在不同的事件里跳转。
举个例子,比如我们想要做一个游戏说明,然后在游戏说明的末尾询问玩家是否要再看一遍,如果是的话就跳回到开头部分,如果否的话就继续执行接下来的内容——使用标签和标签跳转命令之后,做出的效果如下。其实也是很简单并方便的功能,掌握熟练之后基本上可以省掉复制粘贴不少重复的内容。
最后再来说说循环。在事件指令第一页里可以看到“循环”和“中断循环”两个指令,在游戏里这两个功能用到的地方很少,大概是可以被看作事件里面套着的事件。在循环里的内容会被反复地执行下去,直到某些条件满足并中断循环为止。所以在利用循环的时候,多半是离不开条件分歧的,因为它起着判定循环是否可以中断的重要作用。在这里举个例子,每次摘1个苹果,然后苹果数(变量)加1,利用条件分歧判断是否摘到了5个苹果(变量数是否等于5),如果不满的话就跳回开头继续这一过程,直到苹果数等于5的时候中断循环。做成事件的样子大概如下图。(总觉得介绍这个功能的时候截图比较直观……= =|||)
因为用处不是特别大,也就不放工程了。本章的内容到此结束,下一章介绍公共事件的用法。
教程4-5到此结束,目前你已经完成教学的 81%,点此返回目录。
4-2 补充部分:公共事件的使用法
本章跟着做预计需要20分钟。
在之前介绍数据库的时候,我们略过了其中一个标签的内容,就是公共事件。它和一般的地图事件不同之处在于它的全局性和随时调用性。
全局性:也就是作用范围的大小。地图事件所执行的内容只能在单张地图之内,一旦离开了这张地图,这个事件的内容就再也不会作用了。但公共事件不同,它的统管范围是整个游戏,只要这个公共事件在执行中,那么无论游戏的角色在哪张地图都不会对其有影响。
随时调用性:它可以用来替代一段在很多地方都会用到的内容,并且利用事件指令中的“公共事件”指令在游戏里调用它。可以有效地减少一些重复性较高的东西在游戏里的出现率,而这段内容如果需要修改的话,只要在公共事件里修改一处就可以了。我们打开数据库切换到公共事件这个部分——最大值和事件命名什么的大家都会就不再罗嗦——然后来分别讲一下这两方面的实际效果。
首先是在全局事件的操纵方面。在这个界面上我们可以看到“目标”这一选项,在这个下拉菜单里会出现“无”“自动执行”和“并行处理”三个选项。因为公共事件是不会和角色与事件有接触的,所以要想它运行,只有自动执行和并行执行两种发生方式,也同样需要用开关进行控制。当你打开启动事件的开关的时候,无论角色在哪里,这个公共事件都会执行。在这里我们举个例子,比如我们想要配合4-1教过的计时器系统,做一个并行事件这样这个计时可以在所有的地图里进行测定,我们便将那个原本放在地图上的并行事件换作并行的公共事件,这样无论角色跑到哪个地图,这个事件判定都始终在运行着,直到你关闭开关为止。这就是公共事件的第一个作用,相较于单张地图的自动执行事件和并行处理事件,直接上升到整个游戏里执行。
接下来是公共事件的随意调用性。这里便是将公共事件作为一段“不会自动执行但是要在很多地方用到”的事件来制作,例如游戏里的显示头像,物品和技能附带的公共事件等——制作这样的公共事件的时候,“目标”一定要设置为“无”。这样它就只是类似被放在那里的一个预设好的事件,在需要调用的时候调用它就可以了。在这里我们举两个例子,一个是特技调用的公共事件,一个是在地图上调用的显示人物头像的公共事件。之前在2-1里介绍数据库的时候我们有提到在“特技”和“物品”的设定里都有附带公共事件的这个选项,这就是为了利用公共事件补足一些在它们默认功能里实现不了的内容而存在的。比如说我们想要制作一个可以补充SP的技能,但是在特技设定页面里我们发现技能只能对HP伤害,就算设为负值也只是补HP。那么该怎么实现技能恢复SP呢?就要利用公共事件了。在公共事件页面里做一个事件,内容为我方全体SP增加9999,然后切换到特技页面,在那个你制作的恢复SP特技的设置里,找到“公共事件”这一项并在下拉菜单里选择你刚才做好的那个公共事件。这样一来在战斗过程中,主角使用了这个技能之后系统会自动执行它连带的公共事件,让我方全体SP恢复9999。物品的应用也是同样的,只要熟练了事件内容,可以利用公共事件为你的物品和技能附加上各种花样。
另一方面,除了在物品和特技里调用现成的公共事件,我们也可以直接在地图事件里甚至是公共事件里调用已经做好的公共事件(前提“目标”依然要设置为“无”)。举个例子,在这里我们做一个显示主角头像的事件,它由“显示图片-透明度为零”“移动图片-透明度255”“等待20帧”三个指令组成,那么每次我们需要显示这个头像都要把这三条指令复制粘贴一遍。而如果我们中间突然发现坐标错误要重新修改而这三条指令已经被粘遍了你的游戏,你要从几百个事件里一个一个订正过来的时候——会不会觉得很抓狂?但是如果把它们做到一个公共事件里,然后每次在需要显示这个头像的时候,只要用指令“公共事件”,调用这个事件就可以了。一旦错误,也只需要在公共事件里面修改一遍就行。它可以为你节省很多时间和工夫,尤其是在你的重复调用的内容很多很冗长的时候。
最后需要说到的一点是,自动执行和并行处理的公共事件千万不要过多。尤其是不要让太多的并行处理的公共事件同时运行。那样会大幅度地拖慢你的游戏速度。而在战斗里面每次调用公共事件的时候也会减低速率,虽然通过修改脚本我们也能有效改善这一点,不过这里就不再多说了,请先掌握它的基础用法吧。
教程4-5到此结束,目前你已经完成教学的 86%,点此返回目录。
4-3 补充部分:数据库“队伍”里面的事件设置法
本章跟着做预计需要20分钟。
在RPG游戏里,分为平时冒险的地图和战斗场景两大部分,在RMXP里无论是暗雷遇敌还是使用“战斗处理”的指令都会进入战斗场景。在地图上的事件设置已经讲过了,所以本章来讲一讲同样是在数据库里进行设置,但却归属于事件类设置的“队伍”里的战斗事件。
在游戏里每一场战斗都要在“队伍”里安排,然后再在“战斗处理”里调用。有些特殊的Boss战里可能会有些特殊的内容,比如在进入战斗几回合之后发生一些特殊情况,出现对话或者是额外增减参数等,这些都可以在战斗事件里设置出来。让我们先打开数据库切换到“队伍”标签,然后看右下角的“战斗事件”部分。它和地图事件的构成有些相似,都是由事件页构成,一个战斗事件里可以有多个事件页来安插不同条件之下发生的事情。不过要注意的是,当有了多个战斗事件页并且发生条件一样的时候,它是从编号较小的事件开始处理。
战斗事件的发生条件比起单纯用变量和开关来控制的地图事件,有些不一样。当我们点击“条件”那个向右的小三角的时候,就会弹出设定这个事件页的事件执行条件的小窗口,并且这些条件同样可以复选。我们一个一个来介绍:首先是根据回合数来判定事件发生的时间。因为RMXP默认的战斗是回合制的,所以你可以设定在特定的回合数发生事件——在这里它的计算格式是A+BX,其中X会从零开始计数,然后依次向后推算。举个例子,如果你设定了1回合+2X回合,那么战斗里的第1回合(X=0)、第3回合(X=1)、第5回合(X=2)……都会执行这一事件。如果你只需要它在单个回合执行事件,那么就在第二个数字框里写0就可以了。接下来是敌人的HP多少以下触发此事件。这个很简单,不过一定要选择你在队伍里已经有的敌人,否则是没用的。角色同理,要选择当时参战的时候已经在队伍里的角色进行判定。最后一条是开关打开的时候执行事件,这个和地图事件一样所以不用多说。
在条件右边有个“距离”,代表在战斗中此事件发生的频率。这个选项只在你设置出会多次发生的条件之后再选择才会看出效果——换句话说如果你让事件只在第一回合发生就无所谓这个了。但如果你的条件是敌人的生命30%以下或者某开关打开期间都会执行,那么你要在这里设置一个频率。在“距离”的下拉菜单里你可以看到“战斗”“回合”和“暂时”三种选项,“战斗”表示当条件满足的时候,整个战斗里该事件只会执行一次,“回合”则是每回合执行一次,“暂时”是会反复执行(所以如果不是类似循环的内容还是不要选这个……)。
接下来我们看看在战斗事件里我们能安排些什么地图上没有的好东西吧。点开事件指令切换到第三页,右面画了圈的这一些指令都是在这里专用的。当然,左边那些关于角色的处理也是可以在这里用到的(右下角的结束游戏也包括在内)。增减敌人的HP、SP、状态以及完全回复等都和对角色的操作一样,只不过一定要注意弄对对象(如果你的队伍里有很多同样的敌人的话,它们的名字是一致的所以要注意它们的排序不要搞混,先被你添加的敌人序号在前面)。完全回复指令会把所有状态清除包括有益状态。
然后我们重点需要说的是下面的几个指令,首先是“敌人出现”。这个指令是用来让一些在游戏开始未参战的敌人于特殊情况下突然进入战斗的类似“援兵”一样的功能。但是,半道出现的敌人必须在队伍里事先设置好,也就是说你要先确定哪些才是“援兵”。设置这个要先回到队伍的界面看到你在战斗地图里出现的那些敌人,在你想要当“援兵”的敌人的战斗图上右键单击,会出现一个小菜单,内有“中途出现”和“不死之身”两个选项。“不死之身”是让这个敌人就算HP被打为零也不会判定死亡,一般用作必败之战的选项;而当你选了“中途出现”的时候,这个敌人的战斗图会变成透明的,且在你进入战斗的时候,这个敌人也暂时不出现。然后在战斗事件里,你可以使用“敌人出现”指令,选定这个敌人让它出现。比如我们设置一个战斗事件,条件为幽灵HP降低50%以下的时候它召唤出另一只幽灵。那么当你进入战斗的时候,当你把这只幽灵的HP削减到50%以下,就会出现另一只幽灵。要注意的是,战斗的经验值和金钱获得都以你实际击杀的敌人数量为标准进行计算,换句话说即使你设置了战斗里有两个敌人其中一个为暂时不出现的援兵,但你在设置的援兵出现的条件未满足之前就打败了第一个敌人结束了战斗,那么那个敌人就不会再出来了,而你获得的经验和金钱也只按照一个敌人来计算。
接下来是“敌人变身”指令。它是个很有趣的功能,可以让你战斗中的某个敌人变身为数据库里的另外一种敌人。比如这里我们可以指令让幽灵变身为石像鬼。另外要注意的是,当敌人变身为另一种敌人的时候,它的一切状态都会保留原来那个敌人的现有状态,包括HP、SP和异常状态等。所以通常情况下在变身之后,我们也会附带一个“完全回复”指令(……对战BOSS的时候如果设置成这样还真是让人抓狂啊……),当然你并不一定非要这么做。
接下来要说的是“显示动画”指令。务必要将其和第二页的那个显示动画区分开,这里的指令只是针对战斗场景里的动画显示,显示对象是战斗图而非行走图。点开这个指令可以选择是在敌人身上显示动画还是在角色身上显示,敌人那边的对象选定比较好理解,但角色这边的对象列表显示的是“1人”“2人”“3人”和“4人”,其实指的是战斗队伍里的第一个、第二个、第三个或者第四个。(在RMXP默认的战斗场景里,战斗队伍中最多只能有四个人)所以在执行这一指令的时候,如果你的队伍是不固定的,最好先确认一下队伍里在战斗里从左到右第一个人是谁,第二个人是谁,第三个人是谁……防止动画加错对象。
接下来是伤害处理。它和战斗指令里的增减HP不同之处在于增减HP是隐性的,数值不会显示在屏幕上。但是伤害处理就会将数值显示出来。伤害处理的对象可以选定敌人和角色两边,同时操作的数量也可以自行设定,常量变量皆可。这里要注意的是因为数值可以为负,所以如果伤害为负的话反而是给对象加血。当你想要加很大的数值但是它限制为99999之内的时候,也可以将数值代入变量进行设定。这个功能配合上面的“显示动画”指令也可以做出伪·技能的效果来,具体可以自行研究。
接下来是“强制行动”指令。用于操作战斗里的对象在设定之外的一些额外行为,比如当判定了某个敌人HP为20%以下的时候,我方某角色乘胜追击强制发动攻击技能。前面是该事件的触发条件,而后面这个行动则需要依靠“强制行动”来完成。打开这个窗口我们能看到强制行动的对象和行为,这两个都很简单不用多说,要注意的是角色依然按照你队伍里的第几个人来选定。接下来是那个“行动对象”的指定,在下拉菜单里有很多选择,“最后的目标”是指该角色会攻击他先前最后攻击过的对象,“随机”则是在队伍里随机挑选一个对象进行攻击,而下面的Index一二三四五六七则是指定队伍里的位置索引,也就是说如果你指令某角色攻击敌人队伍,那么这里Index1就代表敌人队伍里的第一号敌人(也就是你在队伍里第一个添加进去的敌人),如果作用对方是我方,那么Index的有效范围只在1-4之内(因为角色方最大只能有四个人)。另外,如果你强制勒令对象使用集体攻击的技能或者作用于使用者本人的技能,则这里的设定就无效了。“顺序”这里可以选择是按照原本的行动顺序执行(有些角色速度比较慢的话可能会被排在其他角色动作完了才会开启这个强制指令)还是立即执行(无视角色速度造成的次序落差)。强制指令会消耗指令对象的一个自由回合。
最后,“战斗中断”指令是将目前的战斗强制中断掉。如果这个是在事件中由“战斗处理”调用的战斗,则会继续执行接下来的内容——有意思的是如果你设置了分歧,它会按照“逃跑的场合”进行处理(效果和暗雷战斗的逃跑很相似)。而如果不设置这个“逃跑的场合”(即此场战斗无法逃跑)但依旧在战斗过程里中断战斗的话,它既不会执行失败情况下的内容也不会执行胜利情况下的内容,而是执行分歧之外的接下来的东西。同样,就算是在战斗里击杀了敌人,如果战斗中断的话角色也无法得到金钱和经验值。
那么,所有在“队伍”的战斗事件就都设置完了。现在大家应该已经学会了所有的事件设置的基本操作,它们需要被合理地统筹和穿插起来才能成为一个完整的游戏。这一点是没法手把手去教的,必须要自己来尝试摸索着进行制作,然后从实践之中获得经验。下一章我们将讲解一下如何在游戏的测试模式下进行Debug。
教程4-5到此结束,目前你已经完成教学的 91%,点此返回目录。
4-4 补充部分:测试游戏时候所用的Debug模式
本章跟着做预计需要20-30分钟。
在第一章里我们曾经提到过在RMXP制作游戏的时候,工程里有测试游戏的功能(忘记的请去回顾第一章)。按下F12之后游戏就会进入测试模式,弹出制作好的游戏窗口。另一方面,如果我们打开在游戏文件夹下的那个Game.exe文件,也同样可以执行游戏。但是,这两种方式执行的游戏是不一样的,前者是处于Debug模式下的游戏,而后者才是给玩家玩的游戏。对我们RMer而言,一般在自己玩自己做的游戏的时候,都会直接使用这个Debug模式,因为它有一些小功能可以便利地处理游戏里出现的Bug,以及跳过一些重复的内容。
如上图所示,按“游戏测试”(或者F12)所执行的是Debug模式
如上图所示,这是正常运行的游戏执行文件(玩家们用的)
首先,我们介绍一下在这两个模式之下运行游戏的时候都会作用的功能。当你启动游戏窗口之后,按下F1键,就会看到这样一个设定窗口。在“常规”页面里的选项,“平滑模式”表示提高游戏的帧速率,让游戏以每秒40帧来显示,让游戏的画面更加平滑。不过如果电脑配置不好的话,一般不会勾选这个,这样游戏会以20帧每秒来运行,也就是说速率降低一般以保证它能够流畅运行。“抑制画面抖动”可以最低限度减少画面的细微闪烁,却会让画面出现稍微延迟的情况。选择与否,可以根据哪个更舒适,PC配置和个人的爱好决定。“播放BGM和ME”可以决定是否播放游戏里的音乐,如果去掉这个勾选的话游戏里的BGM和ME都不会播放了。“播放BGS和SE”同理。想一边听其他音乐一边测试游戏,就可以取消对勾,选择无声设置。
而在“游戏手柄”和“键盘”的页面里可以自行调整游戏手柄和键盘的按钮设定(比如说惯用左手的人可能会想将确认键之类的调到左手方便的按键)。不过那里的按键对应比较奇怪,并不是游戏里的功能键对应某个键盘按键,而是反过来,已经固定了几个键盘按键然后你自己来设置它们对应哪些功能键。在RMXP里,确认键默认为C键,取消键默认为B键。所以在这里你可以看到,空格和回车对应的都是C,而ESC对应B,这样我们按下空格就是确定,ESC就是取消,以此类推。那些A、B、X、Y、Z在游戏里默认是没用的,它们分别作为一些条件分歧的按键判定的备用按键存在(有时候你想利用它们制作额外的特殊功能,比如按下除确认和取消之外的某键呼唤出一个窗口等,这里不予拓展)。至于L和R,其实是Pageup和Pagedn键,在游戏的菜单里你有多个队员时,可以在查看状态的时候按下它们翻页。所以通常情况下,并不需要特别去设置什么。如果你自己改了按键后觉得不便,按“重置”键,就可以回复为系统默认设定。
除了按下F1以外,还有F12功能键是两个模式下共通的,在进入游戏之后,只要是非标题画面的场景里按F12,就会直接回到标题画面。另外,Alt+Enter是切换全屏和窗口的组合键,这些其实都可以在RMXP自带的帮助里面查阅到。
接下来我们介绍只在Debug模式下出现的一些功能。首先是F2显示帧速率——在你执行游戏的时候按下F2,就能看到此时你游戏的FPS数值出现在窗口的标题栏。如果你在刚才说到的F1设定里勾选了“平滑模式”,那么FPS最大为40,否则为20。FPS值越大,说明你目前游戏的平滑度越高。反之,游戏就会变得很卡很拖沓,时断时续等。当你在游戏的一张地图上放了太多的事件,或者在战斗中用了大量全屏幕魔法,或者用了太多并行处理的公共事件,都会导致你的游戏帧速率下跌。为了不让玩家被卡机折腾到捶桌,你最好通过这个功能观测一下你游戏的速率,随时减掉一些内容然后找出拖慢游戏画面的罪魁祸首,以保障你游戏大体上能够顺利运行下去。
然后在游戏界面里,只要不是在自动运行的事件和非战斗的场景里(换言之就是你可以操作角色的行走图自由活动的时候),按下F9,就能看到这样一个后台操作视窗,里面列出了你工程里所有的开关和变量的情况。你可以看到运行到这里的时候你的开关的开闭情况以及变量的数值,并在这里随意手动调整开关的开启和关闭,或者变动变量的数值。如果你的游戏进程是用变量来进行控制的,那么你可以随意跳转到游戏的不同章节进行测试,不需要每次测试的时候都从头再来。用方向键可以增减变量的数目,而按Pageup和Pagedn可以整十整十地增减,多用于你的变量设定数值很大的情况下。而开关可以直接用确定键切换开与关。
最后,同样当你在可以自由操纵角色活动的时候,如果按住Ctrl键移动,就能无视地图图块的通行度,即使在无法通行的元件上也可以自由移动。当游戏地图很大而你只希望快点抵达触发剧情的地点,或者一不小心出现了不该有的不能通行的图块的时候,可以利用这个。只是如果是后者的错误,还是要记得回头改正的,否则玩家玩到这里过不去就很成问题了。
好了,到目前为止我们已经从制作到测试都讲解完毕了。当你把游戏做完并测试流畅之后,就可以进行脱离RTP的工作和打包发布了。敬请期待关于发布游戏的最后一章。
教程4-5到此结束,目前你已经完成教学的 96%,点此返回目录。
4-5 补充部分:制作可以发布的完整游戏包
本章跟着做预计需要15-25分钟。
游戏做完啦!在跟能玩到的就近的亲友们欢呼庆祝尖叫撒花绕场奔跑三周半一个月(……)之后,就到了将它们发布到网上共享的时间了。RMXP制作的游戏的发布工作,大概分为以下几步:
1、清点素材,归整默认素材至自己的游戏目录下
在第二章我们介绍导入素材的时候曾经说过,你放在自己游戏目录下的素材是和RM默认素材区分开来的。(你放在游戏目录下的素材前面的圆点是红色,RM默认素材前面的圆点是蓝色)在玩家运行你的游戏的时候,游戏执行文件只能从游戏目录下面读取素材,而那些默认的安装在你自己电脑里的素材是不会被读到的。说得更具体些:找到你的RPG Maker XP软件本身的安装目录,里面有个“RGSS”文件,点开里面的“Standard”,就能看到Audio和Graphics两个文件,然后你可以查看这两个文件,发现里面的东西就都是RM默认的那些音乐和图片素材。在你用RM制作游戏的时候,系统都是从制作软件目录下的这两个文件里读取默认素材的。但玩家们不装RMXP,就不可能有这些素材。因此如果你用了RM默认的素材(也就是前面有蓝色圆点的那些),你就需要把这些素材都拷贝到你的游戏目录下的对应文件里面。一定要确认你在游戏里用到的所有素材都已经是前面带红点的,才能够继续下一步。否则脱离RTP之后,如果有缺失的文件就很难检查出来了。
2、脱离RTP
如果到RMXP相关论坛的新手区兜一圈,大体上所有在发布上出的毛病都是基于这个“没脱离RTP的问题”。所谓RTP,就是指素材库,也就是你的游戏读取素材的路径。当你不设置素材库的时候,它会从游戏的目录里直接读取各类素材(所以上一步要求你把所有用到的素材都放到游戏目录下面)。如果不脱离RTP,而玩家的机器里又没有素材库的时候,就会显示“没有发现RGSS-RTP。”的提示,导致游戏无法运行。脱离RTP看似很复杂,设置起来却非常简单。首先如图示,点击你工程右上角“游戏”菜单,选择“选择RTP”选项,然后将三个RTP都设置为“无”。那个Standard就是上一步提到的在RMXP软件安装目录下的Standard文件夹,被软件用作素材库使用。这样设置之后,软件将不再从这个文件夹里读取素材。然后当你再次回到游戏里的时候,就会看到那些前面有蓝点的文件都不见了——因为RM已经不再会从默认目录里读取素材了,它读取的只是你游戏文件夹下的文件。
3、再次Debug检查是否漏缺文件
然后,再次的Debug就是必须的了,尤其是你在制作游戏的时候如果用了很多默认素材,又不确定自己是否拷贝齐全的情况下。在Debug的过程中任何素材的缺失都会导致游戏中途报错跳出,好在它报错的时候会提供给你游戏的路径和文件名,所以你可以立刻找到并且补上。因而其实我个人推荐你在一开始做游戏的时候就注意看着自己用了哪些素材,用上的同时就拷贝过来,以防最后整理发布的时候忘记。
4、添加DLL文件
这一步经常被很多Rmer给漏掉(包括我一开始做游戏的时候也忘记过……= =|||)。RMXP文件夹下的那个Game.exe需要一个辅助运行的DLL文件,它叫做RGSS102J.DLL。为了确定这个文件的版本,我们需要打开你的游戏的系统信息文件来进行确认。在你的游戏目录里有个Game.ini文件,可以用记事本打开。注意看那里的第二行,Libarary= 这行字的后面,就是你需要的这个DLL(要注意的是这个文件会根据你使用的RM的版本有所变化,请务必记得你要用你自己ini文件夹下记录的那个DLL文件)。那么在哪里找到这个文件呢?一般情况下,它的路径是C:WindowsSystem32下面。如果你嫌找起来麻烦的话,可以直接下载我提供的这个。如果名字不一样的话改成同样的名字就可以了,内容没有什么实质区别:http://www.uushare.com/user/saintsky/file/2464674
将这个文件放进你的游戏目录下面,确认过素材齐全,然后把你不需要发布到网上的冗赘内容都删掉(压缩数据的时候会把游戏目录下的所有内容都压缩进去所以没用的东西都要删掉),就可以开始打包了。Game.ini文件必须留着,但是工程文件可以删掉。
5、压缩游戏数据
其实当你按照上述步骤弄完毕之后,直接把游戏打个压缩包就可以上传了。不过如果你的电脑里没有压缩软件,或者你想要让它看上去更加正规一点的话,可以使用RM自带的压缩游戏数据功能。选择“文件”——“压缩游戏数据”,显示出压缩窗口。在这里你可以选择制作压缩包的路径,并且也能选择是否加密你的游戏内容——加密之后,你的Graphics文件夹和Data文件夹都会消失,图片及数据会被做进一个加密文件里面,可以适度保护你的游戏里的隐藏内容(比如游戏CG和不想被盗用的原创素材等)。游戏压缩之后就会在你设定好的目录下面出现一个exe的解压缩文件。玩家只要打开这个文件,就可以像安装游戏一样直接解压缩出你的游戏,然后通过运行Game.exe进行游戏了。
6、发布上传
选一个好点的稳定的网盘,把你的游戏传上去然后放出地址让人下载吧=v=。如果你上传的是上面压缩出来的exe文件,最好是选择能够允许共享exe文件的网盘。
7、一点补充:给游戏打补丁
如果在发布游戏之后,有人找到了问题的话,也要立刻制作补丁发布上去。缺素材的话就要补素材这个不需要废话,但如果是游戏里面别处有了问题的话,就要发布数据补丁。没有加密的情况下,只要修改并保存游戏,将你的Data文件夹打包传给对方覆盖原文件夹的所有内容就行了。但若是加密的话,就必须重新压缩一次游戏数据,然后把那个包括了Graphics和Data的加密文件给对方传过去覆盖原文件。
教程4-5到此结束,目前你已经完成教学的 99%,点此返回目录。
5 两个常见问题的答疑
本章预计需要10分钟。
问题1:为何我的事件一直重复执行?
回答:你当前的事件页的开始条件被设置为“自动执行”,然后又没有任何可以让这个事件页中断的内容,所以会循环执行下去。解决办法是打开一个开关or独立开关,新建一个出现条件为该开关打开,开始条件为“决定键”or“与主角接触”or“与事件接触”的事件页。这样由于事件会优先执行序号大的事件页,而第二个事件页的出现条件已经满足(开关在第一页打开了),就会跳转到第二个事件页,而那时候你不按确定键或者与此事件接触,它就不会再执行,整个事件就停下来了。
范例:http://bbs.66rpg.com/UP_PIC/200801/Project1_118021442.rar
问题2:如何制作宝箱?
和问题1的原理很类似,是对独立开关的运用。第一个事件页是宝箱关闭的图片,内容里是获得物品、金钱等(也可以加入显示文章说明获得的物品),然后打开独立开关,第二个事件页里是宝箱打开的图片。
范例:http://bbs.66rpg.com/UP_PIC/200801/宝箱范例.rar
教程到此全部结束,目前你已经完成教学的 100%,点此返回目录。
嗯……?你已经全跟着学完了吗?恭喜,新手毕业啦~ 开始制作属于你的游戏吧!
今天的文章rmxprt在哪_Winktv把手「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/85762.html