# Unreal 遊戲翻譯修改教學──如何拆包、修改翻譯、重新打包成 pak 因為前陣子終於掌握了如何拆包 Unreal 遊戲並且重新打包的技術,這項技術能用來把僅有簡體的遊戲翻成繁體,也有可能把無中文的遊戲翻成中文,因此開一篇來紀錄步驟,另一方面也是防止我忘記。 這篇教學目的是讓有一定程度軟體操作基礎,但是對於 Unreal 不熟的人也能完成 Unreal 拆包翻譯而撰寫,文中不會寫 code 但是會操作不少軟體。 因為我之前也是找了很久才終於研究出來,相信也有其他人需要面向不熟 Unreal 的人的教學。 為了方便其他人重現,在此使用 [Last Train Home](https://store.steampowered.com/app/1469610/Last_Train_Home/) 的 Demo 版作為測試對象,因此任何人都可以試著重現。 以下是步驟: 1. 下載必要的軟體 會用到這三樣:[FModel](https://github.com/4sval/FModel/releases)、[UE4LocalizationsTool](https://github.com/amrshaheen61/UE4LocalizationsTool/releases)、[unrealpak](https://github.com/btwOreO/unrealpak) 其中我用的是 FModel v.4.4.3.6、UE4LocalizationsTool v2.7、[unrealpak v.44aea39](https://github.com/btwOreO/unrealpak/tree/44aea39459bbbf582e135079ebcf7e1fd32b13c5)。 unrealpak 沒有 release 只能整包下載,個人建議軟體下載最新版,不過使用新版可能會有部分 UI 和我提供的教學不同,如果新版有什麼問題的話可以試著換成我用的板本,其中 UE4LocalizationsTool 已經封存所以不會更新。 2. 使用 FModel 拆包 a. 用 FModel 開啟 LastTrainHome Demo 開啟 FModel 並且選擇 LastTrainHome Demo,首次開啟你可能會需要手動指定遊戲路徑,在 Directory 選好路徑並且填好 Name 後按下右下的加號,遊戲會加入清單之中,下次只需要從清單中選擇即可。   b. 確認是否加密 觀察左側欄的檔案是否如下圖有紅色圖示,如果有的話代表這個遊戲有加密需要解密,接續 2-c. 的步驟;否則代表不需要解密,接續 2-d. 的步驟。 有加密的 pak 如果雙擊試圖打開,右下的 console 會顯示 [ERR] An encrypted archive has been found. In order to decrypt it, please specify a working AES encryption key。  c. 解密遊戲 遊戲有加密,需要找到對應的 AES encryption key 才能繼續,目前我所知道的是可以去[這個網站](https://cs.rin.ru/forum/viewtopic.php?t=100672)的 Keys 部分嘗試找該遊戲的 key,如果這邊沒有或是 key 不管用的話只能去尋找其他提供來源。 點擊 Directory > AES 開啟 AES 輸入視窗,如下圖輸入我們在網站中取得的 key,我當前用 0xD23CE5798C0848BD763A66A732FA80A221C7F898723ABB6C9846BA6B116F2DBA 是會成功的。  d. 尋找 Localization 資料夾  已解鎖或是未加密的遊戲會長這樣,雙擊這些 pak 會跳到 Folder 分頁,嘗試在 Folder 分頁裡面 Train/Content 資料夾下找到 Localization 資料夾,一直找遍各 pak 直到找到為止。  這邊不保證 Localization 不會分散在不同的 pak,這種情況接下來的步驟就要對多個 pak 進行操作。 e. 對 pak 進行拆包 對於包含 Localization 資料夾的 pak,要將 Localization 資料夾的內容都拆出來;我們對 Localization 右鍵 > Export Folder's Packages Raw Data (.uasset) 執行拆包。  拆完之後資料夾結構應該會如圖:FModel.exe 旁有 Output 資料夾,Output/Exports 下可以找到 Train/Content/Localization 內的檔案。  3. 修改翻譯 經過上述步驟後,現在你可以在 Localization 找到遊戲的所有翻譯,一般修改翻譯會需要修改所有 .locres 檔案,這邊我們象徵性的修改一個翻譯以證明這個方法成功就好。遊戲正常的主畫面如下,我們的目標是把畫面中的新旅程改成「新旅程 20240908」。  --------------------------------防盜退支符--------------------------------  --------------------------------防盜退支符-------------------------------- a. 找到圖中路徑的 Game.locres 檔案,拖曳進 UE4LocalizationsTool 開啟,就能看到翻譯。   b. 點 Tool > Export all text > No names 匯出所有文本到你方便的地方,但是盡量不要放在 Exports 資料夾內。  c. 使用任何你想用的翻譯工具對匯出的檔案進行翻譯,如果你想簡轉繁或是修正中國用語為台灣用語,可以使用[繁化姬桌面版](https://zhconvert.org),這邊我們只用文字編輯器找到新旅程並且修改後儲存。  d. 回到 UE4LocalizationsTool,點 Tool > Import all text > 選取剛才修改過的檔案,接著被修改過的翻譯會以橘底表示,有看到橘底就表示取代成功了,按下 File > Save 或 Ctrl+S 匯出新的 locres,直接覆蓋原本的 locres 檔。   4. 重新打包 改好翻譯後,將 Exports 資料夾整個拖曳到 unrealpak 的 UnrealPak-With-Compression.bat 上進行打包。   cmd 跑完之後在 Exports 旁可以找到新打包的 Exports.pak 檔案,將這個檔案改名為你當初拆的 pak 檔名加上後綴_p,並且放進我們拆的 pak 同資料夾內。  這邊的例子我會需要改成 pakchunk0-WindowsNoEditor_p.pak,最終資料夾內如圖,_p 檔案是以補丁形式將部分內容取代掉,因此將檔案刪除就能還原,即使遊戲更新你的檔案也不會被覆蓋,不過假如遊戲內有新的字串你會需要重新產生新的 _p.pak。關於補丁你可以參考[這篇](https://buckminsterfullerene02.github.io/dev-guide/Basis/PakPatching.html?highlight=_p#pak-patching),還有另一篇提到了更詳盡的[補丁優先順序](https://www.cnblogs.com/shiroe/p/14809663.html)。  最終我們可以看到遊戲畫面中的新旅程被取代。  本文參考了[Dead by daylight 簡轉繁](https://home.gamer.com.tw/artwork.php?sn=5392762)撰寫,並且將部分我無法重現的部分抽換成其他工具,並且使用免費遊戲作為示範方便他人重現。值得注意的是文中是產生 DeadByDaylight.locres 並且放在特定路徑下,並不是重新產生整個 pak 檔案,這是使用了 Unreal 自帶的外掛翻譯系統,假如遊戲有開啟這個系統的話就能以這種方式加入翻譯,如果不想打包 pak 可以試試這種方法。 本文為原創並且同步發表於[巴哈姆特](https://home.gamer.com.tw/artwork.php?sn=6000031)、[HackMD](https://hackmd.io/@nathan60107/Bk2W6Xo2R),禁止轉載。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.