大家一起做游戏←_←gal制作过程

[复制链接]
匿名  发表于 2016-12-10 22:17:16 |阅读模式
游戏元素的准备(上)

制作游戏的过程,其实就好像拼装模型一样,是一个把各个元素有机地结合起来的过程,开发引擎就相当于把“零件”拼合起来的粘合剂。在具体制作游戏之前,首先让我们来分析一下制作游戏需要事先准备哪些“零件”吧。


概括地说,任何游戏所需要的元素大概都可以分为图像、文字、声音三大类,这三大类元素又可以具体细分。Galgame作为比较单纯的一种游戏类型,所需要的“零件”比ACT、FPS等很多主流游戏类型都要少。更何况Galgame中也分三六九等,有运用了3D效果和射击关卡的『BALDR FORCE』系列,也有个性游戏制作人饭野贤治所制作的没有图像的『REAL SOUND』那种异类。


鉴于我们只想做一个普通的Galgame,不想去搞什么行为艺术,基本上只需要准备以下几种元素就足够做出一个通常概念上的Galgame了。


1.人物立姿

人物立姿,俗称立绘,是在Galgame中大概80%的时间里我们都能看到的东西。早期的游戏中只有女主角才有人物立姿,现在男性配角们也开始有人物立姿了。由于需要作出表情的变化,每个角色至少要准备出喜怒哀乐等几档。而重要的角色更有可能出现姿势和服装的变化,姿势数X服装数X表情数就成了一个可怕的数字,在开始绘制之前最好先列个表格控制一下人物立姿的数目。当然,也有『白诘草话』那种完全不采用人物立姿的游戏。不过一般来说采用人物立姿是一种性价比比较高的表现手法。关于人物立姿,最低限度每个登场的重要角色至少要准备一张。


2.背景图像

背景图像其实是指游戏中采用的所有800X600(游戏窗体大小)的不透明图案。除了一般的场景背景之外,剧情CG等也算在其中(超过游戏窗体大小的拉伸用CG除外)。要做背景图像有很多方法,可以用3D软件进行建模,可以用水彩水粉手绘,也可以用照片素材PS后使用。剧情CG的话就没什么偷懒的办法了,老老实实去画吧。关于背景图像有一个小建议,最好事先准备出一张全白一张全黑的两张图像备用。虽然各个引擎都有“全白”“全黑”的渲染功能,但是有的时候利用实际的图像进行演出会更加省力一些


3.文字剧本

文字剧本其实没什么好说的,就是在游戏中显示出来的文字。把剧本当作小说去写还是当作台本去写都可以,另外也可以参考流行的网络小说元素。这个环节略过。


4.音乐音效

音乐音效其实在Galgame中占据了很重要的位置,但却往往是新手制作游戏的时候最薄弱的一个环节。音效的话除了平时注意收集,也可以去购买一些音效素材CD,还可以自行录音。音乐的话,如果不能自行编曲,就只有去收罗一些MIDI和OGG素材选择使用了。日本的网站上一般会放出很多免费素材,仔细寻找的话也能有所收获。在选用的时候记得注意一下文件格式就是了,有必要的时候使用格式转换器进行转换。


5.其他准备

在准备素材的同时也需要简单构思一下游戏的结构和形式。一般的Galgame都是通过选择支和各种条件分歧进行游戏剧本的跳转,来实现身临其境的代入感。所以在这时候最好先画出一张游戏剧本的流程图,将跳转的位置和所需要的程序变量都列出来。如果不知道应该怎么写流程图,可以去参考一些日本商业游戏的攻略,最好是官方攻略本,一定能清晰地理解流程图的概念。


作为最初试手的游戏,以Nitro+的选择支分歧数目为标准进行设置为好。设置过多分歧的话会大幅度拖慢制作进程,而其中的bug也会呈几何级数增加,会给新手熟悉引擎带来极大障碍。当熟悉了引擎的功能之后,像『壳之少女』那种加入了地图点选模式和日程表判定的更加复杂的游戏形式也就不在话下了。


如何组织元素

虽然相关素材都已经准备完备了,但是也不能一股脑地全都塞到引擎里面去。把游戏制作看成搭积木比较合适,要先搭一层,再搭第二层。这时候,游戏的搭建顺序就变得很重要。

一般来说,新手抱着熟悉引擎的目的进行游戏制作的时候,按照1.显示文字->2.设置音声->3.配上图像->4.制作跳转的顺序比较合理。虽然一般的概念上,画面和音声才是最直接给予玩家刺激的来源,但是从重要性上看,音声和图像其实并不是最重要的基础。能够显示文字才是重中之重。最低限度的电子小说游戏,其实根本不需要任何图像和音声,只需要显示出文字,让读者跟着文字的意境展开遐想就是,比如电脑游戏的始祖『Colossal Cave(洞穴深处的探险)』。

在显示了文字之后,可以适当地配上音声。让玩家在全神贯注地阅读的时候,突然被喇叭中传出来的尖锐叫声吓到,造成更全方位的感官刺激。『寒蝉鸣泣之时』中的音效就被运用到了极致,那些被“豹变”吓到的人,决不会意识到自己其实是被突然响起的音效吓到了。





有了文字,有了声音,该轮到显示图像了。只要图像达到一定水准,即使没有一个令人可以操作的游戏系统,也已经初步满足了成为大作的条件——至少龙骑士07就是这么干的。





最后,在演出丰富的故事中加入选择支进行跳转,让世界观进一步扩大,生成多种多样的可能性。这样就初步达成了一个通常意义上的Galgame。


以上的素材搭建顺序,其实是一个重要性递减的过程。要顺利完成一个Galgame,还是让我们打好基础,从显示文字的部分看起吧。下面,就让我们从零开始学习一下如何在吉里吉里2/KAG3中显示文字。

吉里吉里2/KAG3的素材管理比较简明,在开发用文件夹之下有着分别名叫scenario、bgm、fgimage等等的多个子文件夹,其中scenario就是剧本/脚本专用的文件夹。打开文件夹可以看到里面有一名叫first.ks的文件,这就是吉里吉里2/KAG3在运行的时候必定最先读取的脚本文件。ks是吉里吉里2/KAG3特有的文件格式,该文件用windows自带的记事本即可打开并进行编辑,当然也可以使用其它任何一款文档编辑软件。

要在吉里吉里2/KAG3的窗体中显示文字,并不需要什么特别的操作。只要一行行地将剧本输入到first.ks之中即可原样显示。不过在实际操作的时候,最好还是事先将剧本写好,然后复制粘贴到first.ks当中为好。虽然在first.ks中直接书写也没有什么不良影响,但是涉及到游戏制作的流程管理,还是将剧本写作和脚本编程这两个环节清楚地分开比较好。现在,就请诸位读者随便写上两句话,然后运行一下吉里吉里2/KAG3试试看吧。

现在我们看到,刚才写上的文字已经显示在了吉里吉里2/KAG3的游戏窗体之中。但是无论怎么用回车分行,都不能反映在实际显示的文字之中,文字总是一下子从头显示到尾。要让文字显示的时候能够分行、分段、以及改变文字的颜色和大小,让文字看起来更丰富,就要利用到一些简单的标签和命令行了。

标签,英文记作TAG,在吉里吉里2/KAG3中作为实现各种演出的命令得到了广泛的应用。吉里吉里2/KAG3中的标签,是被[]所包围起来的小写半角英数字符串的总称。在书写的时候要注意,[字符之后紧接着就要书写TAG的名字,中间不要加入空格或其他字符。

吉里吉里2/KAG3中最常用的标签分为两类,一种是不涉及属性的标签,一种是涉及属性的标签。不涉及属性的标签单纯地由[]和标签名组成,例如[er](清除当前文字层的所有文字和相关属性)。这种标签就是单纯表示某个功能,在剧本中写入这种标签后,程序就会自动实现这个功能。

而涉及属性的标签则需要在标签名后面加入一个带=的短句,注明属性名称和属性值。例如[trans time=0](渐变,时间=0),trans是标签名,time是属性名称,0是属性值。属性值不一定是数字,也可能是一个单词或者一段文字。要特别注意的是,虽然在一般情况下属性值不需要用””括起来,但是如果属性值中出现空格,就必须用””将整个属性值词组括起来,例如[font face="MS Pゴシック"](定义字体,字体=MS Pゴシック)。

这是因为吉里吉里2/KAG3允许同一个标签中省略重复的标签名。例如[font size=20 color=0xFF0000](定义字体,字体大小=20,字体颜色=红),在size=20的空格之后,吉里吉里2/KAG3会默认20这个属性值单词已经结束了,并将之后的color判定为另一个属性名称。如果属性值中存在空格又没有使用””强制地将该词组括为一体,吉里吉里2/KAG3就会判断错误继而产生bug。在制作游戏时,大量的复制粘贴必不可少,在此过程中很容易造成多一个字符少一个字符的悲剧。如果发生了不明原因的错误,记得先查查标签是否不合格式吧。

命令行,是与标签功能相同的另一种书写吉里吉里2/KAG3命令,实现功能和演出的格式。简单地说,命令行是省略掉[],以@开头,以回车结尾的一种命令书写方式。例如上面的[er],就可以直接改写为@er,功能是完全一样的。命令行比较适合书写大段的连续命令,但是由于以回车作为结尾,有时候也容易产生一些程序上的歧义,使某段命令过早地结束,又或者两个命令被混成一个。在实际使用的时候,最好根据自己的需求,与标签结合使用。

所谓的改行记号,其实就是一般的Galgame中一句话显示结束之后闪动的光标。光标会出现在句子的结尾处不停闪动,直到玩家按下回车或鼠标左键为止。[l]的主要功能是让一句话显示完毕之后,文字显示暂时中断。

特别要注意的是,只输入[l]的话,文章本身并不会改行。在按下回车或鼠标左键后,之后的文章依然会紧接着前文出现。


[r] 强制改行

在[r]之后的文字会被强行显示于下一行,从下一行的顶头位置开始显示。此功能主要与上面的[l]结合使用,在一句话的末尾连续输入[l][r],即可令文字显示暂时中断,而按下回车或鼠标左键后,之后的文章由下一行的顶头位置继续显示。

[r]也可以单独使用,用来对一段话进行分段,让几个句子连续、自动地显示于多行之上。另外,每输入一次[r],只能改下一行。想要让行与行之间空开的话,则需要连续输入多个[r]来实现。


[p] 表示改页记号并等待

在文字框集中于画面下部的经典Galgame中,一般不会看到改页记号。改页记号一般出现在那种文字满屏显示且显示于画面之上的游戏中,例如『Fate/stay night』,用来标记一页文字的结束。[p]的功能基本与[l]一样,可以令一段文字显示完毕之后,文字显示暂时中断。

与[l]同样,只是输入[p]的话,文章并不会自行翻页或改行。在按下回车或鼠标左键后,之后的文章依然会紧接着前文出现。


[er] 清除现在所操作的文字层文字和属性

[er]一般用于一段文字的最开始,作用是把之前屏幕上所显示的文字全都擦掉,并把之前所定义的文字字体、字号、颜色等属性信息全部恢复为默认值。此功能一般与[l]和[p]结合使用,在按下回车或鼠标左键后,擦掉屏幕上现存的文字并显示新的文字内容。若应用于文字框在下方的经典Galgame,就是一句对话显示完毕之后再显示下一句的对话效果;若应用于文字在画面之上的电子小说,就是一页文字显示完毕之后翻页的效果。

另外,[er]也可以直接使用,令屏幕上的文字消失。例如与下面介绍的[wait]功能结合,就可以作出让某一段话在画面上停留一段时间后自行消失的效果。


文字对齐

这个所谓文字对齐的功能的官方解释是“让指定范围内的文本的每一行的第一个字都对齐于指定位置”。具体地说,输入

之后程序就将这个标签之后的文字所处的位置作为文本对齐的标尺,接下来换行的时候第一个字都由这个标尺的位置开始显示。

此效果一般被用于文字显示时的简单排版。另外需要注意的是,在输入

之后这个效果会一直保持,直到[endindent]这个标签出现为止。使用这个功能的时候一定要记得有始有终,否则会严重影响到之后的文字显示。


[delay speed=XX] 文字显示速度

文字显示速度是调整文字显示快慢的标签,在XX处可以代入任意数字进行调整。XX=0(或者输入nowait)的时候,文字显示速度最快,为瞬间显示。代入的数值越大,文字显示的速度越慢。特别要说明的是,这里的数字1000等于1秒钟,请根据需要自行换算。


[wait time=XX] 等待

顾名思义,等待的意思就是“慢慢来”。遇到这个标签的时候,程序将等待相应时间之后才继续进行。等待可以发生在任何地方,无论是文字正在显示的途中,还是某一演出即将发生之前,都可以让时间暂时停止。同样地,这里的数字1000等于1秒钟。要是等待的时间过长会容易让玩家感觉烦躁,如果设置了比较长的等待时间,一定要先自己测试一下效果啊。


[locate x=XX y=XX]文字表示位置

文字表示位置标签可以强制指定接下来的文字出现的位置,分别代入x轴坐标和y轴坐标后,文字就会出现在那里。一般来说吉里吉里2/KAG3的游戏窗体大小默认都是640X480,而大家在使用的时候改为800X600的居多,所以这里的坐标就要记得取(0~640,0~480)或者(0~800,0~600)范围之内的值。虽然理论上说这里的数字可以任意输入,但是如果坐标超出了屏幕之外,就无法正常显示文字了。该标签所指定的坐标会被[er]清除,如果想要连续使用,最简单的方法就是每次重新输入一遍。


[position vertical=true]竖排文字

输入这个标签后,文字会变为竖排版,按照从右向左,从上向下的顺序显示。『壳之少女』中就采用了这种功能,在描写第三人称视点的时候将文字转为竖排版显示,以区别普通状态的对话和剧本。如果想要制作出古风的话,采用竖排版是个好主意,不过现在的中国人一般都已经不习惯阅读竖排的文字了。要转回横向显示文字,可以输入[position vertical=false]来抵消这一标签。


[style align=center/left/right]文字置中/左顶格/右顶格

关于style标签的功能,熟悉WORD的人会比较容易理解。该标签的作用就是让之后的文字固定显示于画面中央,或者左顶格或者右顶格。此功能最常见被运用于title画面的“开始游戏”“读取存档”等按钮的位置,让这些按钮整齐地显示于画面正中。在竖排文字的模式下,该标签也可以发挥作用,只是align的属性值变成了center/top/bottom,分别对应中央/置顶/置底三种位置。此功能标签一旦被指定,就不会被[er]所清除掉。要取消这一标签的功能时,必须输入[resetstyle]进行手动取消。


[font face=’’XX’’]指定字体

在face处输入字体的名称,即可以让之后显示的文字都以该字体显示。由于吉里吉里2/KAG3支持unicode字符编码,所以任何语种的文字都有相应的字体可供显示。一般来说我们最经常遇到的就是日文字体、英文字体、简体中文、繁体中文这四种,有需要的时候我们也可以让吉里吉里2/KAG3显示出韩文或阿拉伯文等。

要注意的是,如果没有事先自行导入字体,虽然可以在这里随意指定字体,但是只有windows的系统字体可以正常对应显示。如果开发者指定的字体在用户的电脑里不具备,字体指定会被自动忽略,文字会以windows系统字体显示。另外,某些网友自制的字体中文字不全,缺少一些生僻字。如果使用了这些生僻字,在屏幕上也会被转为windows系统字体显示。

其实,过多地转换字体和使用生僻的字体,会影响玩家的观感。基本上一般的游戏都是选用一种与游戏风格最为一致的字体从头用到尾,在中途反复更换字体的情况十分少见,这足可以证明滥用字体并不是个好主意。


[font size=XX]指定字号

此标签的功能是在size处输入数字,让字号发生改变。基本上来说,这个数字可以任意指定,完全没有任何限制。至于字号与实际字体大小的关系,可以参考WORD等文档处理软件进行预览。吉里吉里2/KAG3默认的字号是24,制作一般概念的文字匣在画面下方的Galgame的话,不改动字号也可以了。一般的Galgame的字号都是在23~25之间,若是文字在画面上方,全屏显示文字的电子小说,考虑到阅读的便利可以将字号提升到28。总之,字号不能太大也不能太小,玩家的视神经是很敏锐的。为了塑造气氛,可以少量地使用低于15的小号字体,但如果整个游戏的字号都偏小,玩家是会抗议的。


[font color=0x123456]指定字体颜色

在Galgame中,指定字体颜色是一个比较常用的标签,除了龙骑士07爱用的红字外,更有Galgame将每个角色的台词都用不同的颜色区分开来。color属性的属性值是一个8位的代码,以0x开头,加上十六进制的6位数,就构成了一个颜色的代码。指定颜色的时候要注意书写颜色代码的格式正确,不要忘记最开始的0x。而十六进制中的英文字符无论写为大写还是小写都没有关系,但是必须为半角字符。

要查找某一颜色的代码可以参考HTML颜色代码表,这里列出几个常用的颜色代码以供诸位进行对比:白色=0xFFFFFF,黑色=0x000000,灰色=0x7F7F7F,红色=0xFF0000,黄色=0xFFFF00,蓝色=0x0000FF,绿色=0x00FF00。


[ruby text=’’XX’’]注释文字

注释文字是一种日语特有的格式,最原始的作用是给汉字注音,后来发展成为对某一单词的释义或近义指代。虽然中文中除了汉语拼音注音外,没有这种书写格式,但是随着Galgame和漫画的传播,这种书写格式也逐渐为国人所接受。

注释文字标签要放在需要注释的正文之前,然后将需要注释的内容填在""之内。一般来说,如果要对某一个词语中的汉字进行逐个注音的话,就分别在该词语的每一个字前面插入这个标签,而要对某一个词语整体进行解释和注释的时候,只在该词语的前面插入一次该标签即可。例如:


[ruby text=’’er’’]O[ruby text=’’ci’’]N[ruby text=’’yuan’’]S[ruby text=’’kuang’’]安[ruby text=’’re’’]卓[ruby text=’’JEDI’’]ons安卓吧

由于文字的大小各异,有的时候注释文字并不能正确地显示在被注释文字顶上的正中位置。这时候比较常用的解决方式就是输入空格进行手动对齐。由于注释文字并不会被反映在文字履历之中,所以可以随意输入空格而不必考虑是否会带来排版的问题。


[graph storage=’’XX.png’’ char=false]显示图像文字

根据游戏情节的发展,有时候需要在正文中插入一些符号或图案,这时候就需要用到这个能够将图像文件辨认为文字,并且显示于正文之内的标签了。首先,制作一张png格式的图片并将其置入吉里吉里2/KAG3的开发文件夹中。然后在需要插入该图片的地方写标签,并将该图片的文件名输入到storage的属性值处,该图片即可正常显示在正文之间。这个功能一般用于要在正文中显示某个标志、某个特殊标点符号,或某个字体中不存在的原创符号(例如『变形金刚』中的塞星文字)时。需要注意的是,图片的大小一定不要与字体的大小差别过大,否则会造成正文行列的错位,影响正文整齐。

特别要解说一下char属性,该属性如设为char=true,插入的图片将会被与正文的文字一同处理,会受到之前所设置的字体颜色和大小等相关标签和命令的影响。善用此特性的话,可以做出让同一个标志改变不同颜色等特殊效果。


[resetfont]清除字体属性

该功能可以清除一切有关字体属性的设定,将包括字体、字号、颜色等所有相关设定都还原为默认值。这个标签用来结合以上的功能使用,在需要特殊字体演出的段落结束之后,记得用这个标签将字体属性全部清零,恢复为通常的格式显示。


[font edge=true edgecolor=0x123456]文字描边

edge是管理字体美化的标签,作用是用指定颜色在文字外围描边。edgecolor是决定描边颜色的属性值,可以自由指定。但是要注意不要选择与字体颜色一致的颜色进行描边,如选择了与字体颜色一致的颜色进行描边,实际显示出来的效果就是字体莫名地粗了一圈,非常影响观感。

一般来说,比较常见的描边颜色组合是白色字体黑色描边。描边可以让你的游戏文字变得更加清晰易读,配上相对花哨的背景和文字匣也不用担心看不清楚。另外,白色字体红色描边的组合也很常见,但是红色和绿色配合起来的效果就比较糟糕,建议不要挑战。如果设定edge=false,描边效果就会被关掉,描边效果可以结合具体需要自由选用。


[font shadow=true shadowcolor=0x123456]文字投影

shadow是另一种管理字体美化的标签,作用是用指定颜色在文字下方投射阴影。shadowcolor是决定阴影颜色的属性值,可以自由指定。由于具体投射出来的阴影是半透明的效果,即使选择了与字体颜色一致的颜色进行阴影的投射,在画面上也能够区分出文字和阴影不同。不过由于黑色属于过于浓重的颜色,如果选择了黑色字体+黑色阴影,实际的画面效果会好像文字产生了重影,比较影响阅读的顺畅。

一般来说,比较常见的阴影颜色组合是白色字体黑色阴影,或白色字体灰色阴影。阴影可以让你的游戏文字显得更富立体感,直接与背景和文字匣分开层次。不过由于阴影只被投射在45度角的斜下方,没有阴影映衬的部分的文字仍然会容易与近似颜色的背景混同。同样地,如果设定shadow=false,投影效果就会被关掉,投影效果可以结合具体需要自由选用。


虽然edge和shadow都是关于美化字体的功能标签,但是两者不可并存。在实际使用的时候只有分开使用,或者选定一种美化方式从头用到尾。个人认为在具体选用的时候应该结合自己的游戏风格选择,不应该把画面弄得过于花哨。过于繁琐的效果只会带来过犹不及的结果。然后就这样没了,不过要有一个游戏出来就必须要有一个好故事所以我决定发几本好书出来给大家选择


您需要登录后才可以留言 登录 | 立即注册

?>