RGSS 规格

RGSS3 的新功能(RGSS3)

RGSS3 是内置于 RPG Maker VX Ace 的一套脚本系统, 和 RMVX 中的 RGSS2 比起来有一些的不同之处,主要的变化如下:

除此之外,还有一些小变化留待用户自行探索。

在本文中,所有在 RGSS3 中重新定义的部分都会用此符号进行标注: (RGSS3)

开始游戏

game folder

一般而言,当你双击 Game.exe(不显示扩展名时为 Game) 文件的时候,RGSS 就会开始执行。而存储该文件的文件夹,通常就被称为「游戏目录」。

正在编辑中的游戏可以通过在菜单中选择[运行],或者在数据库[敌群]中选择[战斗测试]。此时全局变量 $TEST 的值将会被设置为 true。如果你选择了战斗测试,变量 $BTEST 的值也会被设置为 true。

游戏其他的一些设置则存储于 Game.ini 这个配置文件当中。

Game.ini

Game.ini 是由编辑器自动创建并更新的,但是它也可以由记事本以及其他文本编辑器直接编辑。

范例:

[Game]
RTP=RPGVXAce
Library=System\RGSS300.dll
Scripts=Data\Scripts.rvdata2
Title=RubyQuest
RTP

这是在这个游戏中使用的 RGSS-RTP 名称,通常是 "RPGVXAce"。

如果这个RTP模组没有被安装,那么游戏程序就会报错。

Library

RGSS 所使用的 DLL 名称,通常使用游戏文件夹中 System 文件夹中的副本。(RGSS3)

Scripts

储存脚本的数据文件,指定其在游戏文件夹的相对路径。

Ruby的脚本通常以 .rb 作为后缀名,但是 RGSS 是使用特殊的方法压缩成一个文件。这个文件通常只能用 RPG Maker VX Ace 的脚本编辑器进行编辑。其中的数据由多个脚本页构成,按照列表显示的顺序执行。

Title

游戏标题,在游戏窗口的标题栏显示。

RGSS-RTP

RTP (Run-Time Package),是用来减少发布游戏文件大小的构件,RTP 包含了许多游戏共享的标准图文件和音乐文件,游戏前安装这些共享文件可以免于重复下载这些文件。

RTP 文件可以使用下列内建游戏库的方法调用,就与调用游戏文件夹下的文件一样。在调用下面的方法时,文件的后缀名(.png、.mid 等)会自动判断,因此可以省略不写。

Bitmap.new, Audio.bgm_play, Audio.bgs_play, Audio.me_play, Audio.se_play, Graphics.transition

安装数据

RPG Maker VX Ace 中唯一标准的 RTP 就是 "RPGVXAce",但是你可以使用独立的 RTP。如果你知道如何制作安装包, 那么你就可以遵循以下规则来制作独立的 RTP。

RTP 默认会安装进这个目录:

[CommonFilesFolder]\Enterbrain\RGSS3\[RTPName]
这里的 [CommonFilesFolder] 其实就是操作系统中的 Common Files 文件夹,而 [RTPName] 则是 RTP 的名字。比如:
C:\Program Files\Common Files\Enterbrain\RGSS3\Standard

RTP 安装程序会在注册表的 "HKEY_LOCAL_MACHINE\SOFTWARE\Enterbrain\RGSS3\RTP" 位置新建一个字符串类型的键值(RTP 的名称),在值中设定路径名。在该键下设置的字符串会被 RGSS 判定为 RTP。

加密档案

加密档案可以让人难以对游戏进行解析、修改。Game.rgss3a 文件中,通常包含所有的数据文件和图像文件(不包含声音文件和字体文件)。你可以在[制作游戏发行包]时选择[生成加密数据文件]来制作加密档案。

对于已经被打包进加密档案中的素材文件,你可通过以下内置函数进行调用,就像调用原文件夹中的文件一样:

load_data, Bitmap.new, Graphics.transition

当程序在游戏目录下检测到加密档案的时候,在 Game.ini 中的 Scripts 指定的脚本文件(一般是 Data\Scripts.rvdata)一定会直接读取加密档案中的脚本。这个限制是为了防止外部脚本读取到内部文件。

鉴于加密档案的设计初衷,我们不会公布加密档案的内部格式,请不要试图解析。

其他

扩展库

RGSS 无法加载在 C 语言编写的 Ruby 扩展库,因此,我们加载了以下扩展库:

字符集

RGSS 使用的是 UTF-8 字符编码。UTF-8 是 Unicode 字符编码的一个分支,而 Unicode 字符编码可以支持世界上所有类型文字的显示。

RPG Maker 所输出的脚本数据及其他字符串的编码方式全部为 UTF-8 ,所以不必担心因为字符编码方式不同而产生的冲突。

属性

「属性」是 游戏库 解说中的用语,它并非 Ruby 语言的概念,而是 RGSS 的用语。

比如,利用下面的代码可以获取和设置一个精灵的坐标(Sprite#x):

x = sprite1.x         # 获取
sprite2.x = x + 32    # 设置

为了方便起见,这被定义为可通过赋值运算符进行获取(读)和设置(写)的方法,就称为属性。

Color 类、 Tone 类、Rect 类作为属性定义时,所返回的是对象本身的引用,而非对象的副本。因此可以用下面的格式修改字体颜色:

color = font1.color
color.set(255, 0, 0)