最新消息:

用RenPy来做美少女游戏吧!!!(入门)

编程 eben 114浏览 0评论

Ren’Py是什么?

Ren’Py视觉小说引擎 是一款开放源代码的自由软件引擎,用来创作通过电脑叙述故事的视觉小说。Ren’Py之名是Ren’ai与Python两词混合而成。Ren’ai为日文,意指“恋爱”,而Python是Ren’Py所使用的语言环境。和其他流行的视觉小说引擎(例如NScripter)不同,Ren’Py是在英语文化圈中开发,所以较受英语用户的青睐。至2013年8月,官方网站已登记超过500个使用Ren’Py的游戏。

开发者:PyTom
初始版本:2004年8月24日
稳定版本:Ren’Py 6.99.14.3 (2018年4月5日)
开发状态:运行中
编程语言:Python
操作系统:Windows、Linux、Mac OS X、Android、iOS
文件大小:80 MB
语言 :游戏引擎为英文,程序中可使用UTF-8
类型:游戏引擎(视觉小说)
许可协议:MI
官方网站:https://www.renpy.org/
源代码库:https://github.com/renpy/renpy

Ren’Py是开源的,可以免费商业使用。

概述
Ren’Py几乎支持所有视觉小说所应该具有的功能,包括分支故事、存储和加载游戏、回退到之前故事的存储点、多样性的场景转换等。Ren’Py拥有类似电影剧本的语法,并且能够允许高级用户编写 Python代码来增加新的功能。除此之外,游戏引擎内附的出版工具能够为脚本加密以及压缩游戏素材以防 止盗版。

Ren’Py建构于 Pygame,它基于 Python和 SDL。Ren’Py官方支持 Windows、Linux 以及较新版 Mac OS X,并可通过Arch Linux、Ubuntu、Debian或Gentoo的软件包管理系统安装Linux 包中。它也已被移植到 Android、OpenBSD 以及 iOS 7预发布版本。

利用Ren’Py结合剧本及Python,非常适合制作AVG,也可以制作出SLG、扑克游戏等类型游戏。Ren’Py也有一些RPG框架的示例,但相对来说,制作RPG游戏会比较困难。而对比吉里吉里,它甚至支持3D加速的功能。

支持格式
视频格式

  • VP9
  • VP8
  • Theora
  • MPEG 4 part 2 (包括Xvid和DivX)
  • MPEG 2
  • MPEG 1

图片格式

  • BMP
  • PNG
  • JPG
  • JPEG
  • GIF

音频格式

  • OPUS
  • Vorbis
  • MP3
  • MP2
  • PCM

还支持以下容器格式:

  • WebM
  • Matroska
  • Ogg
  • Avi
  • 多种MPEG格式流媒体

(注意某些格式可能需要专利许可证书。没有把握的情况下,推荐使用VP9、VP8或者Theora、Opus、Vorbis,以及WebM、Matroska或者Ogg。)

著名Ren’Py游戏

  • 片轮少女
  • Everlasting Summer
  • Doki Doki Literature Club (心跳文学部!)

汉化前先了解

什么是电子小说/音响小说/可视小说/视觉小说/虚拟小说/VN

这堆东西以前被称为Galgame/美少女游戏/文字游戏(其实现在也在被这么叫),就是一个卡通人物说话,下面出来一行字,然后另一个人的头像,又是一堆字,全程游戏都靠文字过剧情,玩法也只有文字。

虽然这么说,其实现在游戏已经有了很多变种,不同类型的游戏之间的界限也不明显。日本的Galgame(早期都是色情游戏……现在也有很多)在Steam建立单机游戏平台后,其概念被大大拓展,不只限于爱情或是动画头像或是纯文字剧情什么的,现在VN只是作为整体或部分的游戏要素在用。

什么是Python

一种计算机编程语言,一种脚本语言,非常简单,入门容易,小孩子学起来了没有困难。不过这里你不会也没关系。

什么是Ren’Py

VN类游戏的开发引擎(引擎=制作软件)贼多。目前国内玩家接触得比较多的有两种:国内制作者使用THE NVL Maker,西方制作者使用Ren’Py。

顾名思义,Ren’Py是受Python语言支持的游戏开发引擎,Ren指日语的“恋”,Py指的就是Python了。这款软件本身是英文的,汉化程度较低,资料不太多,使用基础功能还好,要用高级功能,还是懂点Python语言比较好。

什么是Steam

从欧美市场起步的全球游戏平台,可以用比较低的价格买到很多下载版的正版游戏,不过很多都是只有英文版。

笔者的电脑配置(用来作参考)

Win7系统,64位。

汉化步骤

1. 下载所需的软件

下面要用到的软件有(奇妙的是,Ren’Py本身不用下载):

1) Python开发工具:到Python官网下载最新版(笔者使用的最新版的Python 2);

2)unrpa工具:用来解压archive.rpa文件,自己找下载,网上很多的,下载下来后有的是unrpa、有的是unrpa.py,如果是前者请加上.py的后缀;

3)文本编辑工具:Windows自带的记事本也可以(笔者使用的notepad+);

4)游戏(废话)。

2. 安装Python并进行配置

1)安装:默认是在C盘(?)。

2)配置:安装好后右键点击桌面上的“计算机” – 属性 – 高级系统设置 – 高级 – 环境变量 – 系统变量 – “Path”,选择编辑。

在变量值一栏的最后增加你装Python安装的目录(默认是C:Python27),与前面已有内容要用小写的英文分号“;”隔开,后面最好也加个“;”。

3)测试:安装好后打开 开始 – 运行… – 输入“cmd”回车 – 在cmd窗口输入“python” – 如果不提示错误就说明安装成功且配置成功。

3. 解压对话文档

汉化VN最主要的部分就是对话,而且笔者也只试过这个,VN的对话文本文件有三种可能:

a.一般来说,在 游戏根文件夹/game 里面,script.rpy;

b.商业游戏会加密,在 游戏根文件夹/game 里面,archive.rpa;

c.商业游戏而且有多种语言的,也在在 游戏根文件夹/game 里面,archive.rpa。

第一种情况就直接修改就可以了,恭喜你,前面后面的步骤都没有用,你白做了。

第二、三种情况先解密archive.rpa文件,将对话文本文件script.rpy解压出来。

1)首先想下把文件解压到哪,提前建立文件夹;

2)打开cmd(就是前面那个),输入python(空格)(把unrpa.py文件拖到这)(空格)-p(空格)(把要解压到的位置文件夹拖到这)(空格)(把archive.rpa文件拖到这),回车;

cmd界面会显示正在解压,过个几秒就好;

(除了对话文本文档,你一般也能在这里找到CG和BGM。所以下次再看到免和谐补丁,不用安装也可以直接照上面步骤打开欣赏了。)

4. 汉化翻译

1)在文件解压到的文件夹里,如果只有一种语言,script.rpy会在 文件解压文件夹/script.rpy 里;如果有多种语言,则会在 文件解压文件夹/lib/语言文件夹/script.rpy 里。

2)用你的文本编辑工具打开它,一行一行改吧,不多说了。

3)翻译时注意:

a. 文件毕竟是基于Python的,有的语法问题——比如对话里出现英语引号的话,一定要写成斜线引号”的形式。

b. 字数不要太多,超过文本框的最大容纳字数……虽然这个可能性很小。

5. 精减补丁

终于,script.rpy里的内容都翻译完了,怎么用呢?

虽然有打包工具,其实笔者试过,未必好用。

1) 事实上,直接将改过的文件复制过去就可以了。

比如某在解压文件夹里script.rpy的位置是 解压文件夹/game/tl/chinese/script.rpy,要制作补丁就照样建立几个同名文件夹 game/tl/chinese/script.rpy 就行了。

(同一个文件夹一不能同时有两个rpa文件,切记,切记)

2)有时会出现错误,是因为缺少必要的文件。把和script.rpy同属一个文件夹下的同名的script.rpyc文件一起就可以了,反正空间不大(如果汉化过CG甚至语音的话别算)。

3)虽然有例外,一般汉化包是压缩文件格式。

4)发布吧。

6. 后续

1)测试:重新安装一遍游戏,打上补丁再玩上一遍,找出最后可能隐藏的bug(运行错误)或文本错误;

a. 如果游戏里的中文都变成了小框框,是因为原先的字体不支持中文字符,把renpy/common里的.ttf字体文件换成合适的中文字体就可以了。

b. 反馈:如果有像10个小时这么长的游戏流程……可能会没精力玩,可以在发布贴中留言等玩家反馈;

2)更新:最好是在同一个帖子,标上版本号(没有也行);

3)注意游戏更新:游戏本体更新或是加载了官方补丁后可能会导致原先打上的汉化补丁不可用;

4)等做完了,有时间可以过来在本贴下面投个币,给张票,点个收藏,加进收藏夹什么的,谢谢——

——当然如果没有就算了。

Ren’Py是一个很有名气的视觉小说类游戏引擎,最初于2004年在MIT开源许可下推出、基于Python编写。“Ren’Py”本身是日语里“恋愛”与英语里“Python”两个词的复合,而这个引擎中也诞生了很多恋爱模拟类游戏。目前Steam上大约有上千款游戏采用它制作,大部分都是视觉小说类型,有些还包含绅士元素。

部分使用Ren’Py开发的游戏:

《心跳文学部》

游侠网21

《永恒之夏》

游侠网22

《Being a DIK》

游侠网23

游侠网24

RenPy安装并新建一个游戏工程

安装包获取:

用RenPy来做美少女游戏吧!!!(入门)-1

可以在steam免费下载

http://store.steampowered.com/app/313730/

安装后得到一个文件夹

用RenPy来做美少女游戏吧!!!(入门)

打开这个软件就可以运行了

可以看到它的基本界面

用RenPy来做美少女游戏吧!!!(入门)

这里官方给了一个教程 启动工程 可以看到一个基本的galgame 虽然没有什么剧情

用RenPy来做美少女游戏吧!!!(入门)
用RenPy来做美少女游戏吧!!!(入门)

关闭这个工程 自己新建一个工程看看

用RenPy来做美少女游戏吧!!!(入门)
用RenPy来做美少女游戏吧!!!(入门)

得到一个自己新建的工程 启动工程看看

用RenPy来做美少女游戏吧!!!(入门)
用RenPy来做美少女游戏吧!!!(入门)
用RenPy来做美少女游戏吧!!!(入门)

基本的框架都有了。非常方便。如果不喜欢这些框架呢??在之后的篇章会讲到如何修改这些框架。RenPy也可以叫做面向屏幕语言哈哈哈哈哈

有了骨架,接下来要为它增添血肉。

制作第一个galgame

首先安装代码编辑器atom

关注公众号回复renpy就可以得到链接哦

将压缩包得到的atom文件夹直接放在renpy所在的目录就可以了

然后打开script.rpy 选择atom编辑器

用RenPy来做美少女游戏吧!!!(入门)

可以把自带的代码全部删除 我们从头开始写

renpy是有自带的语法 但是也可以用python进行编程

***

注意用atom编辑器 不会自动保存 需要Ctrl+S保存

***

先介绍几个基本的renpy格式和语法

label start:
label test:

就是进入游戏后的开始场景。一开始的场景只能叫start,后面的场景可以根据喜好改名。

场景中出现的对话可以直接用””写出来

label start:
    "Hello World"

注意:renpy的语法格式中,在一个label下或者其他方法下,是以四个空格为缩进而不是一个table。

效果:

用RenPy来做美少女游戏吧!!!(入门)

但是剧情中是有人物的,单单有一句话很难知道是谁在说话或者只能表示为旁白,因此需要给它加上人物名字。这时候需要定义角色。

define rikka = Character("六花")
label start:
    rikka "Hello World"

以上面代码为例:

定义了一个对象rikka并且它的名字属性为“六花”

六花要说话时 调用的当然是对象rikka 而不是它的属性

六花说话 就像真的剧本一样:对象名字+空格+对话

效果:

用RenPy来做美少女游戏吧!!!(入门)

继续添加一些要素场景,人物,音乐

# 添加学校这个场景 需要在这个工程目录下的images文件夹事先放入名为school的图片
# with fade就是场景出现的特效 类似于ppt中的淡出淡入 可以让转场更自然
scene school with fade
# 显示人物 同理也要在images文件夹下放入名为rikka的立绘图片 默认出现在中间
show rikka
# 在右边显示人物 同理可以改成left
show rikka at right
# 播放音乐 在工程目录下放入名为bgm的音频文件 播放audio的音频文件可以同时播放多个
play audio "bgm.mp3"
# 也是播放音乐 唯一区别是 只能播放一个且会一直循环
play music "bgm.mp3"

用到的素材都在公众号内给的链接中的test文件夹得到

把上面的语法综合运用一下

define rikka = Character("六花")
label start:
    scene school with fade
    show rikka
    play music "bgm.mp3"
    rikka "hello world"
用RenPy来做美少女游戏吧!!!(入门)

是不是已经有模有样了?

但是往往剧情不止一个人物,人物之间的对话,一个人物台词结束之后退场,再到下一个人物登场,会让场景更有感觉,有时候bgm也需要停止。

hide rikka  # 将人物隐藏
stop music  # 停止music的音乐轨道 同理可以运用到其他的音频轨道

galgame的灵魂是什么?!!是关键时刻的抉择,不同的分支选项走向不同结局或者不同场景(label)

以代码为例

menu:
    "多喝热水":
        "bad ending"
    "少喝凉水":
        "happy ending"
用RenPy来做美少女游戏吧!!!(入门)
用RenPy来做美少女游戏吧!!!(入门)

当然可以更灵活一点地跳到预先设定好的不同场景

用到jump这个语法

jump a

顾名思义 就是跳转到名为a的场景(label)去

用这个方法再试试

define rikka = Character("六花")
label start:
    scene school with fade
    show rikka
    play music "bgm.mp3"
    rikka "hello world"
    hide rikka
    stop music
    menu:
        "多喝热水":
            jump a
        "少喝凉水":
            jump b
label a:
    "bad ending"
    return
label b:
    "happy ending"
    return

这边再顺便介绍一下return

就是结束整个游戏的作用

总结

这样一个简单的美少女游戏就完成了 学会了一点点renpy的语法

就是略显单薄和无趣~

一款美少女游戏不仅还需要优秀的剧情,光是这样点点选项前往不同结局也是完全无法满足玩家的需求~我们需要更多玩法,比如DDLC中的写诗和读信这样的小功能。

转载请注明:落伍老站长 » 用RenPy来做美少女游戏吧!!!(入门)

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址