Artemis引擎游戏去假名标注(ruby)

Oct 26, 2024

你可能会发现在使用Artemis引擎的游戏中假名注解会让文本提取出现问题,以下介绍一种较为轻松且通用*的解决方法:

以下教程以遥かなるニライカナイ为例,游戏主程序名niraikanai.exe(部分内容请根据游戏具体情况灵活变化)

  1. 解开游戏封包

根据游戏主程序名,找到对应的封包niraikanai.pfs

这里需要用到一个开源项目pfs_upk,这个项目实现了对.pfs.*的解包和重新封包功能

拖拽niraikanai.pfspfs_upk.exe上,稍等片刻之后你可以在游戏目录下找到niraikanai文件夹(已解包的文件)

  1. 修改script.lua文件

转到niraikanai\system\extend目录,找到script.lua文件

使用任何用起来顺手的文本编辑器来打开它,稍微翻一下,你应该能够找到与下面这块内容相同/相似的

----------------------------------------
-- テキスト
----------------------------------------
--function tags.name(e, p)	mw_name(p)		return 1 end	-- 
function tags.text(e, p)	mw_text(p)		return 1 end	--
function tags.line(e, p)	mw_line(p)		return 1 end	-- 
function tags.rt2(e, p)		rt2()			return 1 end	-- 
function tags.nrt(e, p)		nrt()			return 1 end	-- 
function tags.gaiji(e, p)	gaiji(p)		return 1 end	-- 
function tags.exfont(e, p)	exfont(p)		return 1 end	-- 
function tags.txruby(e, p)	txruby(p)		return 1 end	-- <--找到这行,关键词ruby
function tags.txkey(e, p)	txkey(p)		return 1 end	-- 
function tags.tximg(e, p)	tximg(p)		return 1 end	-- 
function tags.txcode(e, p)	txcode(p)		return 1 end	-- 
function tags.txnb(e, p)	txnb(p)			return 1 end	-- 
function tags.txnc(e, p)	txnc(p)			return 1 end	-- 
function tags.heroname(e, p) heroname(p)	return 1 end	-- 

修改txruby(p)mw_text(p),保存文件

  1. 重新打包

在重新打包之前,请先备份原版niraikanai.pfs文件,并将它移动到其他位置或重命名

返回到游戏目录,拖拽先前解包且修改的niraikanai文件夹到pfs_upk.exe上并稍等片刻,你将得到一个新的niraikanai.pfs文件

  1. 启动游戏

可以观察到原先提取不完整的文本已经能够正确提取

*并不能保证该方法与所有的Artemis引擎游戏兼容