Skip to content

gm3dr/DeltaruneChinese

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DELTARUNE 中文本地化补丁 By 好人汉化组

此处 下载最新版汉化补丁
本仓库源码为不定期手动更新,不代表 目前最新构建

补丁安装方法

Note

如果在安装过程中出现任何问题
请先尝试在 Steam 右键 DELTARUNE
选择 属性 -> 本地文件 -> 验证游戏文件完整性
待 Steam 验证完毕后再次尝试

Tip

获取安装目录方法:在 Steam 右键 DELTARUNE
选择 管理 -> 浏览本地文件

一键安装器

  1. 前往 https://github.com/gm3dr/DeltaruneChinesePatcher/releases/latest 下载安装器
  2. 将汉化补丁放到安装器根目录,打开安装器
  3. (Windows 可选) 输入 DELTARUNE 安装目录(或「浏览」,选中 DELTARUNE 安装目录)
  4. 点击「安装补丁」即可

Tip

对于 Windows 平台,安装器已实现全自动从 Steam 获取 DELTARUNE 安装路径
在首次启动安装器时就会自动填入,无需再改动路径

Important

对于 macOS 平台,补丁需要放到安装器包 DELTARUNE Chinese Patcher.app/Contents/MacOS
以及需要选中的目录是 DR 安装目录下 DELTARUNE.app/Contents/Resources

手动安装

下载汉化补丁,将里面所有的内容全部解压到 DELTARUNE 安装目录下,全部覆盖
使用 DeltaPatcher 按照以下表格逐行进行输入
输入后点击 Apply patch

Original file XDelta patch
DELTARUNE 安装路径/data.win 补丁路径/main.xdelta
DELTARUNE 安装路径/chapter1_windows/data.win 补丁路径/chapter1.xdelta
DELTARUNE 安装路径/chapter2_windows/data.win 补丁路径/chapter2.xdelta
DELTARUNE 安装路径/chapter3_windows/data.win 补丁路径/chapter3.xdelta
DELTARUNE 安装路径/chapter4_windows/data.win 补丁路径/chapter4.xdelta

Tip

如果按照前面步骤解压补丁到 DELTARUNE 安装目录下
补丁路径DELTARUNE 安装路径 一致

Important

对于 macOS 平台,需要:
使用 macOS 版本的补丁压缩包
把「安装目录」换成「安装目录下 DELTARUNE.app/Contents/Resources
Original file 一栏的 _windows 换成 _mac
data.win 换成 game.ios

Tip

Linux 不需要额外操作,可以与 Windows 共用补丁
游戏文件和补丁文件一样,都是完全相同的
这是因为 Steam 使用 Proton 兼容层运行 Windows 版 DELTARUNE

由此开始是本仓库源码的内容
玩家看上面就足够了

协议 License

翻译文本(workspace/ch*/imports/text_src)与中文贴图经过修改的部分(workspace/ch*/imports/pics/workspace/ch*/imports/pics_zhname)使用 CC BY-NC-SA 4.0 协议许可
在保留好人汉化组署名的前提下,您可以对补丁的文本和贴图进行修改,并在不违反相关法律规范的前提下合理使用,好人汉化组对修改后的内容不承担任何责任。

打包脚本工具源码 srcGPL 通用公共许可证 v3(GPL v3) 下开源
杂项脚本 misc_scripts/*.pyMIT 许可证 下开源

GML 代码 workspace/ch*/imports/code 由于是基于使用 Undertale Mod Tool 解出的 DELTARUNE 本身 GML 代码修改,且改动较小无法分别列出,恕我们无法给出授权协议
但您可以在自行承担责任的情况下自由使用或修改这些代码,后果自负,好人汉化组对于这些代码的改动不承担任何责任。

基于原版 data 生成成品 data 方法

  1. 将四个章节的 data 分别放置到 workspace 目录下的对应章节目录下
  2. 将游戏目录下的 data 放置到 workspace 目录下的 main 目录下
  3. 命令行运行 bin/deltarunePacker.exe ,传入 workspace 目录作为参数
  4. 在 workspace 目录下的 result 文件夹中获取结果

Demo 版生成方法

  1. 将 Demo 版目录下的 data 放置到 workspace 目录下的 demo 目录下
  2. 命令行运行 bin/deltarunePacker.exe ,传入 workspace 目录作为参数
  3. 在 workspace 目录下的 result 文件夹中获取结果

Tip

需要使用 Steam 最新的 Demo 版而非官网版
可以在 DELTARUNE 的 Steam 页面看到 Demo 版的获取
也可以透过按下 Win+R,然后运行 steam://install/1690940 来快速安装 Demo 版本

Important

由于使用了 bmfont 来生成位图字体,bmfont 这个程序过于老旧
使用脚本时需要保证 workspace 路径无汉字等特殊字符
否则将会无法生成位图字体并因为找不到 .fnt 而报错

本仓库结构

主要的构建程序与脚本

  • export.csx 从游戏文件中导出文本字体与贴图
  • src 构建程序源代码
    • Importer.cs 主逻辑
  • bin 构建程序二进制
    • deltarunePacker.exe 程序本体,需要传入 workspace 目录作为参数
    • 7z.exe 压缩工具,用于生成安装器使用的最终补丁档案
    • bmfont64.exe 位图字体生成工具
    • hdiffz.exe 差分生成工具,用于生成补丁档案
  • atlas_packer 纹理图集生成工具,使用 node atlas_packer/run 来调用
  • workspace/global
    • re_cnname.json 完整人名翻译替换表
    • re_recruit.json 仅可招揽人名翻译替换表

每个章节对应 imports 内结构(workspace/ch*/imports)

  • atlas 使用的纹理页图集,包含所有新纹理,使用 node atlas_packer/run 生成
  • code 修改过的 GML 代码
  • font 字体
  • pics 贴图,用于生成纹理页图集
  • pics_zhname 人名翻译版贴图,用于生成纹理页图集
  • text_src 打包使用的语言文件

Important

除了第三章 Tenna 的 funnytext 艺术字有特殊处理,自动居中外
其余贴图都需要保证大小与原本的相同,否则会报错

修改过的 GML 代码实现(workspace/ch*/imports/code)

通用

  1. 废话:把代码中硬编码没有走游戏多语言系统的文本改动了
    修改了各种坐标值来微调文字显示位置和动画
  2. 改动了 is_english 使得游戏即使当 langen 时也会从语言文件夹中加载 json
  3. 改动了 obj_writer 添加了汉字字符字宽逻辑
  4. 改动了 DEVICE_MENU(读档界面)使得日文下显示的是简体中文而不是English
  5. 改动了 obj_credits 覆盖掉了原有的日文本地化名单为汉化组名单
  6. 改动了 scr_kana_check 去除了文本中含有日文时切换为日文字体的功能
    这个功能原本用于保证日文玩家名也能在英文时正常显示
  7. 改动了 scr_change_languageobj_initializer2scr_84_lang_loadscr_84_init_localizationDEVICE_MENU 来实现人名翻译的切换
    添加了变量 global.names 用于存储人名翻译选项的值,往 true_config.ini 里添加了 NAMES 项用来存储人名翻译选项的设定

第一章

  1. 改动了 obj_writer 把后三章的`保留特殊字符文本功能带回了第一章
  2. 改动了 obj_writer 把后三章的\n换行逻辑带回了第一章
  3. 改动了 obj_town_event 来实现 Sans 店名的人名翻译切换
  4. 改动了 obj_84_lang_helper 来实现 Toriel 黑板的人名翻译切换

第二章

  1. 改动了 obj_fusionmenu 来让存档点的伙伴页面字串不被横向压缩
  2. obj_welcometothecity_backinglights,逐字效果的适配
  3. 改动了 obj_town_event 来实现 Sans 店名的人名翻译切换
  4. 改动了 obj_84_lang_helper 来实现 Toriel 黑板的人名翻译切换
  5. 改动了 obj_pipis_egg_bullet/obj_pipis_enemy 来实现 Pipis 的人名翻译切换

第三章

  1. 改动了 obj_fusionmenu 来让存档点的伙伴页面字串不被横向压缩
  2. 改动了 obj_writer_quiz 添加了汉字字符字宽逻辑
  3. 改动了 scr_rhythmgame_lyrics 使得音游小游戏强制使用日文方式显示字间隙
  4. 改动了 obj_ch3_closet 加长了 Tenna 发癫
  5. 改动了 obj_watercooler/obj_holywatercooler 把 Watercooler/Holywatercooler 说话逻辑改为和日文一样随机字符
  6. 改动了 obj_rouxls_annyoing_dog_controller 把 Rouxls 战的 神烦狗 参战 从英文的文本改为了和日文一样的贴图形式
  7. 改动了 obj_room_green_room 来实现 Ramb 位置上方的人名翻译切换
  8. 改动了 obj_dw_ranking_t_explain 来实现 T 级房间 Tenna 的人名翻译切换
  9. 改动了 scr_rhythmgame_draw 来实现音游小游戏的人名翻译切换
  10. 改动了 obj_ch3_couch_video 来实现 Tenna 小视频的人名翻译切换
  11. 改动了 obj_rouxls_biplane_flag 来实现 Rouxls 战飞机旗帜弹幕的人名翻译切换

第四章

  1. 改动了 obj_fusionmenu 来让存档点的伙伴页面字串不被横向压缩
  2. 清空了 obj_dw_church_intro_guei_Draw_0 来去除一个文本中的特殊字符
    这条文本的中文译文中不含这个特殊字符
  3. 改动了 obj_takingtoolong 来让 TAKING TOO LONG 不会 TAKING TOO LONG
  4. obj_micmenu 回退到了 Patch 1.02 之前的版本
    Patch 1.02 为了允许麦克风有更多字符能显示,强制这里使用日文字体,所以回退到旧版
  5. 改动了 obj_room_town_mid 来实现 Sans 店名的人名翻译切换
  6. 改动了 obj_84_lang_helper 来实现 Toriel 黑板的人名翻译切换
  7. 改动了 scr_rhythmgame_draw 来实现音游小游戏的人名翻译切换

补字用字体(workspace/ch*/imports/font/font)

  • normal.ttf SimSun 12x(中易宋体 内嵌点阵 12)
    (修改过拼音、全角问号叹号、全角逗号句号、双层直角引号)
  • battle.ttf SimSun 16x(中易宋体 内嵌点阵 16)
  • sans.ttf 方正少儿(手机端主题提取的两万字大字库版)
  • noelle.ttf Boutique Bitmap 9x9 R(精品点阵体 9x9 R)
  • 8bit.ttf Boutique Bitmap 9x9 B (精品点阵体 9x9 B)
  • legend.ttf 基于 DR 日文使用的 Maru Monica 补字,By 晓晓_Akatsuki

Adobe Premiere Pro 2025 工程项目(prproj)

杂项脚本(misc_scripts)

  • convert.py 繁中初始化用的脚本(仅用于初次导入,后续全部需要进行人工校对)
  • collecting_spr.py 从一个目录中提取另一个目录中有的所有文件
  • compare_sprs.py 匹配已翻译和全部 spr 的目录来找出未翻译的 spr
  • move_spr.py 把没有按文件夹分类的 spr 覆盖到分类好的 spr 目录中
  • nameconverter.py 人名翻译替换脚本