
LunaTranslator 基本用法全解HOOK 文本提取、OCR 图像识别与拖拽快捷启动【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator本篇指南基于 LunaTranslator 官方文档docs/ko/basicuse.md与docs/zh/basicuse.md、docs/en/basicuse.md等各语言版本内容一致整理而成系统讲解视觉小说翻译器的三种最常用入门操作HOOK 模式对已运行游戏进程注入 DLL 提取文本、OCR 模式框选屏幕区域识别图像文字以及拖拽快捷启动将游戏程序拖入软件窗口后自动转区启动并 HOOK。读完本文你将掌握从启动软件到看到译文的完整操作链路并理解选择文本窗口、内嵌翻译列、OCR 识别区域等关键界面元素的底层机制。HOOK 模式注入游戏进程提取文本HOOK 模式是 LunaTranslator 的核心文本源适用于已经启动的游戏进程。原理上它通过向游戏进程注入LunaHost32.dll/LunaHost64.dll见 texthook.py 的 DLL 加载与函数绑定逻辑挂钩游戏内部文本输出函数从而实时获得原始文本。第一步打开选择游戏进程窗口对于已经启动的游戏点击工具栏中的 HOOK 模式入口打开选择游戏进程窗口从进程列表中选中目标游戏进程。该窗口由 attachprocessdialog.py 中的AttachProcessDialog实现包含以下关键元素进程列表按程序名展示当前系统可附加的进程并显示程序图标由getExeIcon获取支持在程序名输入框中输入关键字进行过滤filterproc。进程号 / 程序名 / 标题三个编辑框分别显示所选进程的 PID、可执行文件名和窗口标题进程号支持以逗号分隔的多个 PID。点击此按钮后点击游戏窗口当进程列表中没有看到目标进程时可点击该按钮后直接点击游戏窗口来完成选择。刷新按钮重新枚举系统进程列表。打开选择文本窗口复选框确认后是否自动弹出选择文本窗口对应全局配置autoopenselecttext默认开启。管理员权限检测testifneedadmin会调用test_injectable检测目标进程是否可注入若权限不足确认按钮会显示 UAC 盾牌图标部分游戏必须以管理员权限运行 LunaTranslator才能完成注入此时请使用LunaTranslator_admin.exe启动。第二步确认后自动注入点击确认后游戏会被添加到软件中并开始向目标进程注入 DLL。若注入过程中弹出正在等待DLL注入到游戏中……的提示通常是 Windows Defender 或第三方杀毒软件拦截所致需要在杀毒软件中添加信任/排除项后重试详见 README 常见错误章节。注入完成后会自动弹出选择文本窗口该窗口也可随时通过工具栏按钮再次打开。第三步在选择文本窗口中挑选文本行让游戏运行并显示出一些文本例如推进一句剧情对话此时选择文本窗口中会出现若干候选文本行。该窗口由 selecthook.py 中的hookselect类实现表格默认包含显示 / HOOK / 文本三列显示每行首列的开关按钮用于选取/取消该条 HOOK对应accept中的edit_selectedhook_insert/edit_selectedhook_remove调用链。HOOK形如模块名 句柄 地址:上下文的钩子标识。文本该钩子最新捕获的文本内容截取前 200 字符实时刷新。从候选中选择与游戏文本相符的那一行双击或点击首列开关即可开始翻译窗口下方的文本 / 日志标签页可查看该钩子的历史文本与系统日志。该窗口还提供了几个实用的辅助功能源码均在 selecthook.py 中搜索输入框按关键字过滤已发现的钩子行。特殊码输入框 加号按钮手动输入特殊码如1:0x123456插入用户 HOOK其格式说明见 hooksettings.md 的特殊码格式章节右键文本行还可复制特殊码。游戏适配打开游戏适配资源目录。右键菜单对已选文本行可执行移除移除且总是移除复制特殊码等操作。内嵌翻译列游戏支持时的第二列按钮如果游戏支持内嵌翻译将译文直接绘制到游戏画面内选择文本窗口会额外出现内嵌这一列按钮否则只有显示一列。该列由solveifembedablenumincreaseto1动态插入selecthook.py其判断依据是Luna_CheckIsUsingEmbed对线程参数的查询结果打开内嵌开关后会调用Luna_UseEmbed并由getembedtext在等待翻译完成后通过Luna_EmbedCallback把译文回写进游戏画面见 texthook.py。勾选内嵌后软件还会自动检查并解决 Unity 游戏的字体内嵌问题on_check_unity_font。启用内嵌时建议配合字体下载功能使用。提示在搜索设置窗口中searchhookparamselecthook.py当自动搜索不到合适钩子时可以尝试默认搜索 / 文本搜索 / 自定义搜索三种方式支持特征匹配、函数对齐、函数调用、地址表等高级搜索参数。该功能可能造成游戏崩溃官方建议优先将不兼容游戏提交适配而非自行搜索。OCR 模式框选区域识别图像文字当游戏无法通过 HOOK 提取文本例如部分模拟器渲染、视频播放、图片文本时可以切换到OCR 模式来识别图像文字。基本操作流程在文本源中切换到 OCR 模式。在游戏画面上框选一个识别区域。软件会持续对框选区域进行 OCR 识别识别出的文字自动送入翻译流程。从源码看OCR 文本源由 ocrtext.py 的ocrtext类与rangemanger区域管理器实现框选区域以rangeadjust覆盖层呈现在屏幕上后台gettextthread线程按设定的触发方式周期性地对区域截图、调用 OCR 引擎ocr_run并分发结果。关键注意不要用错按钮请特别注意不要使用错误的按钮在工具栏中与自动持续识别图标默认相同、但位置靠后的那个按钮只用于临时选取并识别一次图像而非自动持续识别。两者对应rangemanger中的两种取数路径getresauto自动持续识别按周期、画面相似度或按键触发方式循环识别ocrtext.py。getresmanual手动单次识别仅对当前框选的区域执行一次 OCRocrtext.py。日常翻译请使用自动持续识别模式手动单次识别适合临时查看某处文字。关于 OCR 引擎的详细配置本地 OCR、各类云端 OCR API 等可参考 ocrapi.md识别区域、触发间隔等参数说明见 ocrparam.md。快捷启动游戏并自动 HOOK对于尚未启动的游戏LunaTranslator 支持更快的入口拖拽启动。启动软件。用鼠标将游戏程序.exe文件拖拽到软件窗口中松开鼠标。游戏会被自动添加到软件中自动按对应区域设置转区启动并自动完成 HOOK 注入。随后自动弹出选择文本窗口按照与 HOOK 模式相同的操作继续即可运行游戏出现文本 → 选择匹配的文本行 → 开始翻译。从源码看拖拽触发的启动流程对应 gamemanager/common.py 中的startgame函数它读取该游戏保存的启动路径按需自动切换文本源如texthook/copy/ocr并通过localeswitchedrun完成转区后启动随后texthook.starttexthook.py会恢复该游戏此前保存的钩子配置、自动插入历史特殊码并在无历史钩子且开启自动打开选择文本窗口时弹出选择窗口。拖拽方式无需手动枚举进程特别适合每次都要转区运行的日文游戏可以省去先手动启动游戏、再回软件附加进程的重复操作。若游戏是首次运行建议先通过 HOOK 模式完成一次文本行选取软件会记住该游戏的钩子与特殊码保存在userconfig相关数据中后续拖拽启动即可自动复现。常见问题小结注入失败 / 一直等待 DLL 注入优先检查杀毒软件排除项并确认使用管理员权限运行LunaTranslator_admin.exe。看不到目标进程使用点击此按钮后点击游戏窗口方式选择或提升软件权限后刷新列表。OCR 识别不触发确认使用的是自动持续识别按钮而非单次识别按钮并检查识别区域是否有效框选。没有内嵌列说明该游戏不支持内嵌翻译属正常现象使用显示列即可。如需了解下载、运行、更新及常见错误的更多细节可查阅 README韩文版或 中文版说明HOOK 特殊码的详细格式可参考 hooksettings.mdOCR 相关参数可参考 ocrparam.md。【免费下载链接】LunaTranslator视觉小说翻译器 / Visual Novel Translator项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考