KRKR引擎汉化使用技巧之免转区的思路

该话题被推 其它保存草稿
浏览数 - 151发布于 - 2025-12-23 - 16:45

重新编辑于 - 2025-12-23 - 22:55

XP3未加密型

演示游戏:

妹妹太爱我了~所以决定和她生个孩子

因为文件编码都是shift-tjs日本地区的编码只要换成Unicode就可以让绝大多数计算机玩得上

这种只需要拿garbro解包提取所有的ks,tjs再拿个EmEditor.exe全部批量转成utf-16le

弄好之后用kirikiritools的XP3PACK封包即可

解包XP3

使用garbro2解包

Github:

https://github.com/UserUnknownFactor/GARbro2/releases/tag/v2.0.0

度盘:

https://pan.baidu.com/s/13lt5u3G_0S938UpUMK96kA 提取码: 75pf

将xp3拖入到打开的窗口

image.png确认,打开

image.png

ctrl+A全选,右键提取

image.png

image.png其他文件同样的操作

目前这样子

乱码状态

image.pngimage.pngimage.png每次如果不想每次玩还要在转区软件弄,这就是本文章的意义和技术价值所在

像日文玩家一样获得流畅舒适的体验

批量改编码

对此写了个python脚本以处理这种文件

如果还有别的文件,请自行修改代码

对比EmEditor.exe只能批量地保存,而这玩意需要读取为SHIFT-JIS

使用前,请备份提取的文件!

使用前,请备份提取的文件!

使用前,请备份提取的文件!

使用前,请备份提取的文件!

使用前,请备份提取的文件!

使用方法

python 程序.py 文件夹路径

javascript
import os
import codecs
import argparse

# 定义要转换的文件扩展名
extensions = ['.tjs', '.ks']

# 源编码和目标编码
source_encoding = 'shift-jis'
target_encoding = 'utf-16-le'

# 解析命令行参数
parser = argparse.ArgumentParser(description='批量转换文件编码从Shift-JIS到带BOM的UTF-16LE')
parser.add_argument('directory', nargs='?', default=os.getcwd(), help='要转换的文件夹路径(默认:当前工作目录)')
args = parser.parse_args()

def convert_file_encoding(file_path):
    """
    将单个文件从源编码转换为目标编码(不创建备份)
    """
    try:
        # 以源编码读取文件内容
        with codecs.open(file_path, 'r', encoding=source_encoding) as f:
            content = f.read()
        
        # 以目标编码写入文件(带BOM        # 对于UTF-16-LEBOM是\xFF\xFE
        bom = codecs.BOM_UTF16_LE
        with open(file_path, 'wb') as f:
            f.write(bom)
            f.write(content.encode(target_encoding))
        
        print(f"成功转换: {file_path}")
        return True
    except Exception as e:
        print(f"转换失败: {file_path}")
        print(f"  错误信息: {str(e)}")
        return False

def main():
    # 获取要转换的根目录
    root_dir = args.directory
    print(f"开始转换文件编码,根目录: {root_dir}")
    print(f"源编码: {source_encoding}")
    print(f"目标编码: {target_encoding} (带BOM)")
    print(f"文件扩展名: {extensions}")
    print("=" * 50)
    
    success_count = 0
    fail_count = 0
    
    for dirpath, dirnames, filenames in os.walk(root_dir):
        for filename in filenames:
            # 检查文件扩展名
            if any(filename.lower().endswith(ext) for ext in extensions):
                file_path = os.path.join(dirpath, filename)
                if convert_file_encoding(file_path):
                    success_count += 1
                else:
                    fail_count += 1
    
    print("=" * 50)
    print(f"转换完成!")
    print(f"成功转换: {success_count} 个文件")
    print(f"转换失败: {fail_count} 个文件")

if __name__ == "__main__":
    main()

修改的小细节

存档位置

例如在这个tjs它将储存游戏存档至游戏目录,其中一行它注释掉了

这个就需要你自己去利用chatgpt还有trae快速找找看了

image.png

XP3打包

https://github.com/arcusmaximus/KirikiriTools

 https://pan.baidu.com/s/14kI9SwgP8df-RhxKwBX3ew 提取码: h2xc

本文版权遵循 CC BY-NC 协议 本站版权政策

(。>︿<。) 已经一滴回复都不剩了哦~