找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6699|回复: 4

[转载] Ren'Py引擎从入门到放弃(支线2)——只有文字也要搞NV(?)

[复制链接]
发表于 2019-4-25 18:51:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 BuErShen 于 2019-4-25 16:46 编辑

Ren'Py引擎从入门到放弃(支线2)——只有文字也要搞NV(?)

世上无难事,只要肯放弃。

支线系列是独立于基础之外的内容,会使用一些犄角旮旯的知识点,感觉有困难的同学可以暂时不(fang)看(qi)。

本篇内容将主要是讲解文本的一些使用和处理。请善用官方文档的搜索功能,能解决大部分疑问。

文字是小说的根本。(此处省略500字描述文字重要性的内容。)

所以文本的处理工作非常重要。当然比文本更重要的是画面、画面、以及画面……

第一个问题:在只有大量文本而几乎没有什么图片的情况下还能做VN吗?

答:可以考虑NVL模式。NVL模式就是一张背景图,全屏文本的模式。严格来说,《Fate/Stay Night》原作就采用了类似的做法——使用蘑菇的大段文本掩盖了武内(除了少量“特殊”场景)画功不足的问题。这也是 FSN被认为更偏向于 VN而不是传统GAL的原因之一。

NVL模式下角色对象的定义需要加一句 kind=nvl 。角色的所有功能与 ADV模式下是一样的。

第二个问题:文本显示可以使用哪些功能?

答:单纯只是文本的话,跟页面设计有些类似(其实我不懂页面设计)。转义、插值、样式(style)、标签(tag)、字体等都很常见。VN中独有的是对话文本标签(Dialogue Text Tags),主要控制对话中的几个显示速度和用户输入等待特性。官方文档写得比较全,这里就不展开。

值得一提的是Ruby文本。Ruby貌似是日本特产。当初看到写做“誓约胜利之剑”念做爱库斯咖喱棒的时候,我感受到了文化冲击。呃,扯远了……

Ruby文本在中文里一般有两个用处:注音吐槽

读书人有个臭毛病就是喜欢掉书袋,文本中不出现几个生僻字不舒服斯基。这个时候添加上拼音就能很好地解决生僻字的读音问题,而且比直接用括号加拼音的办法看起来高端一些。
不过,使用Ruby文本会遭遇到一个常见问题:小方框!如果尝试过官方文档中那段给“東京”加平假名注音的代码,就会发现实际会显示的是几个小方框。

这个问题的本质是没有匹配的字体文件。

中文的拼音属于GB2312标准内容,所以必须使用符合GB2312的字体文件。找到符合要求的字体之后,记得在 rb 标签里面使用 font 标签指定字体文件,如果反过来依然是小方块。偶尔需要使用注音的情况下,使用文本标签就能解决。如果存在大量需要注音的情况,请优先考虑换个剧本作者……解决的技术手段也有,就是使用字体组(FontGroup)。

我查了下汉语拼音的编码范围为0xa8b1 - 0xa8df,所以定义字体组的时候使用“类似”代码:
[RenPy] 纯文本查看 复制代码
style default:
     font FontGroup().add("GB2312.ttf", 0xa8b1, 0xa8df).add("mainfont.ttf", 0x0000, 0xffff)

注意这里的 GB2312.ttfmainfont.ttf 改成自己实际使用的字体文件。但是!文本编辑器和输入法可能也会掺和进来,把事情搞得更复杂。比如我常用谷歌拼音输入和UE编辑器,输入拼音之后选择使用16进制查看,发现所谓的拼音其实是拉丁字母……

至于Ruby用于吐槽,就是类似于写做牛×,念做傻×之类的常见精分型语言文字表现手法。

第三个问题:还有啥简单实用的文字功能吗?

答:所有文字都可以转为文本组件(Text Displayables),然后跟图片一样进行处理。可以减少一些美术人员的工作。同时文本内容可以动态变化,也可以内插数值,比直接使用图片要灵活得多。下次续一篇讲解一个具体的例子……

预告部分:这篇太短,肯定要续的。

题外话部分:回老家带的电脑没存啥图片资源,所以只能用文字干唠,真的不是我偷懒……RenPyCN站长给了个建议,所以目前正在处理那个事情,预计春节期间可以完工。

最后祝大家新春快乐~



“Ren'Py引擎从入门到放弃”系列教程
发表于 2019-10-22 22:48:57 | 显示全部楼层
本帖最后由 隔壁老豆 于 2019-10-22 23:07 编辑

您好,请问一下,如果在其他电脑上,调用这些字体会不会出问题?还是推荐直接拿自己系统本地中文字体然后放在游戏根目录导入好一些?
回复 支持 抱歉

使用道具 举报

发表于 2019-10-22 23:09:42 | 显示全部楼层
我尝试把电脑自带的中文宋体的简体包复制了一份到游戏中,然后
style default:
    font FontGroup().add("simsun.ttc", 0xa8b1, 0xa8df)
进行导入,然后直接报错,我现在在研究,麻烦大佬能给个解决方案吗?
回复 支持 抱歉

使用道具 举报

发表于 2019-10-22 23:10:52 | 显示全部楼层
隔壁老豆 发表于 2019-10-22 23:09
我尝试把电脑自带的中文宋体的简体包复制了一份到游戏中,然后
style default:
    font FontGroup().add(" ...

Character U+200b not found in FontGroup
这是具体的报错内容....
回复 支持 抱歉

使用道具 举报

发表于 2020-12-6 15:34:13 | 显示全部楼层
隔壁老豆 发表于 2019-10-22 22:48
您好,请问一下,如果在其他电脑上,调用这些字体会不会出问题?还是推荐直接拿自己系统本地中文字体然后放 ...

我感觉后者比较靠谱,只要你把游戏所用的字体一并放入游戏根目录中这样对方下载你的游戏玩也不会出现错误
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-4-26 12:02 , Processed in 0.067074 second(s), 15 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表