RenPy 如何设置支持中文内容

本文详细介绍了如何在RenPy中实现中文支持的过程。包括从Windows系统中导出字体文件、修改RenPy项目的配置文件等内容,确保游戏能正常显示中文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【未经本人允许,禁止转载】

RenPy 默认只支持英文,如果想编写中文的游戏,则需要向软件中导入ttf字库文件。

  1. 从WIN7导出默认字库文件:

    windows系统的字体文件都放在这个文件夹下:C:\WINDOWS\Fonts,首先打开此文件夹,把里面的字库文件 .ttf 复制出来。

  2. 把 .ttf 文件放入到 RenPy指定项目的 Game 目录下,如果ttf是中文名称,建议把名称改成英文。如: simfang.ttf

  3. 打开 PenPy的 Scipt.rpy 文件,在文本内容上方增加以下代码,指定默认字库名称:

init:
    $ style.default.font = "simfang.ttf"
    $ style.default.language = "simfang"
init python:
   style.default.layout = "greedy"
  4. 再打开 Game目录下的 gui.rpy 文件,设置游戏中加载的字库名称,找到 Fonts and Font Sizes这段内容,在下面添加:

## The font used for in-game text.
define gui.text_font = "simfang.ttf"

## The font used for character names.
define gui.name_text_font = "simfang.ttf"

  5. 然后保存,编译完游戏,发现可以正常显示中文了!
[code] I'm sorry, but an uncaught exception occurred. While processing text tag {transform=jitter} in '正常文本{shake}这部分中文会抖动{/shake}正常文本'.: File "game/script.rpy", line 22, in script "正常文本{shake}这部分中文会抖动{/shake}正常文本" Exception: Unknown text tag 'transform=jitter' -- Full Traceback ------------------------------------------------------------ Full traceback: File "game/script.rpy", line 22, in script "正常文本{shake}这部分中文会抖动{/shake}正常文本" File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\ast.py", line 2586, in execute Say.execute(self) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\ast.py", line 623, in execute renpy.exports.say(who, what, *args, **kwargs) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\exports\sayexports.py", line 132, in say who(what, *args, **kwargs) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\character.py", line 1471, in __call__ self.do_display(who, what, cb_args=self.cb_args, dtt=dtt, **display_args) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\character.py", line 1117, in do_display display_say(who, File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\character.py", line 814, in display_say rv = renpy.ui.interact(mouse='say', type=type, roll_forward=roll_forward) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\ui.py", line 301, in interact rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\core.py", line 2218, in interact repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, pause=pause, pause_start=pause_start, pause_modal=pause_modal, **kwargs) # type: ignore File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\core.py", line 2882, in interact_core self.draw_screen(root_widget, fullscreen_video, (not fullscreen_video) or video_frame_drawn) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\core.py", line 1384, in draw_screen surftree = renpy.display.render.render_screen( File "render.pyx", line 486, in renpy.display.render.render_screen File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\layout.py", line 900, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 170, in renpy.display.render.render File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\layout.py", line 900, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 170, in renpy.display.render.render File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\layout.py", line 900, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 170, in renpy.display.render.render File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\screen.py", line 755, in render child = renpy.display.render.render(self.child, w, h, st, at) File "render.pyx", line 170, in renpy.display.render.render File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\layout.py", line 900, in render surf = render(child, width, height, cst, cat) File "render.pyx", line 170, in renpy.display.render.render File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\display\layout.py", line 1457, in render surf = render(child, File "render.pyx", line 170, in renpy.display.render.render File "render.pyx", line 260, in renpy.display.render.render File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\text\text.py", line 2627, in render virtual_layout = Layout(self, width, height, renders, drawable_res=False, size_only=True) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\text\text.py", line 739, in __init__ self.paragraphs = self.segment(text.tokens, style, renders, text) File "F:\1.1.1galgame\renpy\renpy-8.3.7-sdk\renpy\text\text.py", line 1541, in segment raise Exception("Unknown text tag %r" % text) Exception: Unknown text tag 'transform=jitter' Windows-10-10.0.26100 AMD64 Ren'Py 8.3.7.25031702 test 1.0 Fri Aug 1 07:48:50 2025 [/code] 给我完整可运行的文字抖动代码
08-02
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值