---
# System prepended metadata

title: Unreal 遊戲翻譯修改教學──如何拆包、修改翻譯、重新打包成 pak

---

# 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 後按下右下的加號，遊戲會加入清單之中，下次只需要從清單中選擇即可。
   ![](https://i.imgur.com/CBI34p2.png)
   ![](https://i.imgur.com/LZ1Z9Ie.png)
   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。
   ![](https://i.imgur.com/e8FQ4vq.png)
   c. 解密遊戲
   遊戲有加密，需要找到對應的 AES encryption key 才能繼續，目前我所知道的是可以去[這個網站](https://cs.rin.ru/forum/viewtopic.php?t=100672)的 Keys 部分嘗試找該遊戲的 key，如果這邊沒有或是 key 不管用的話只能去尋找其他提供來源。
   點擊 Directory > AES 開啟 AES 輸入視窗，如下圖輸入我們在網站中取得的 key，我當前用 0xD23CE5798C0848BD763A66A732FA80A221C7F898723ABB6C9846BA6B116F2DBA 是會成功的。
   ![](https://i.imgur.com/4PLT2nv.png)
   d. 尋找 Localization 資料夾
   ![](https://i.imgur.com/Fkb9eCc.png)
   已解鎖或是未加密的遊戲會長這樣，雙擊這些 pak 會跳到 Folder 分頁，嘗試在 Folder 分頁裡面 Train/Content 資料夾下找到 Localization 資料夾，一直找遍各 pak 直到找到為止。
   ![](https://i.imgur.com/OyhlwK9.png)
   這邊不保證 Localization 不會分散在不同的 pak，這種情況接下來的步驟就要對多個 pak 進行操作。
   e. 對 pak 進行拆包
   對於包含 Localization 資料夾的 pak，要將 Localization 資料夾的內容都拆出來；我們對 Localization 右鍵 > Export Folder's Packages Raw Data (.uasset) 執行拆包。
   ![](https://i.imgur.com/uCxE0V6.png)
   拆完之後資料夾結構應該會如圖：FModel.exe 旁有 Output 資料夾，Output/Exports 下可以找到 Train/Content/Localization 內的檔案。
   ![](https://i.imgur.com/ninBoSB.png)
3. 修改翻譯
經過上述步驟後，現在你可以在 Localization 找到遊戲的所有翻譯，一般修改翻譯會需要修改所有 .locres 檔案，這邊我們象徵性的修改一個翻譯以證明這個方法成功就好。遊戲正常的主畫面如下，我們的目標是把畫面中的新旅程改成「新旅程 20240908」。
![](https://i.imgur.com/mnxN4hU.jpeg)
--------------------------------防盜退支符--------------------------------
![](https://i.imgur.com/qaMccXS.jpeg)
--------------------------------防盜退支符--------------------------------
   a. 找到圖中路徑的 Game.locres 檔案，拖曳進 UE4LocalizationsTool 開啟，就能看到翻譯。
   ![](https://i.imgur.com/DwsIrW0.png)
   ![](https://i.imgur.com/7tz5XAa.png)
   b. 點 Tool > Export all text > No names 匯出所有文本到你方便的地方，但是盡量不要放在 Exports 資料夾內。
   ![](https://i.imgur.com/wMIeHPL.png)
   c. 使用任何你想用的翻譯工具對匯出的檔案進行翻譯，如果你想簡轉繁或是修正中國用語為台灣用語，可以使用[繁化姬桌面版](https://zhconvert.org)，這邊我們只用文字編輯器找到新旅程並且修改後儲存。
   ![](https://i.imgur.com/YJEI0kI.png)
   d. 回到 UE4LocalizationsTool，點 Tool > Import all text > 選取剛才修改過的檔案，接著被修改過的翻譯會以橘底表示，有看到橘底就表示取代成功了，按下 File > Save 或 Ctrl+S 匯出新的 locres，直接覆蓋原本的 locres 檔。
   ![](https://i.imgur.com/DA5zM1f.png)
   ![](https://i.imgur.com/WHN0CDP.png)
4. 重新打包
改好翻譯後，將 Exports 資料夾整個拖曳到 unrealpak 的 UnrealPak-With-Compression.bat 上進行打包。
![](https://i.imgur.com/n2uB9qd.png)
![](https://i.imgur.com/PWVsIBO.png)
cmd 跑完之後在 Exports 旁可以找到新打包的 Exports.pak 檔案，將這個檔案改名為你當初拆的 pak 檔名加上後綴_p，並且放進我們拆的 pak 同資料夾內。
![](https://i.imgur.com/qhM0hnI.png)
這邊的例子我會需要改成 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)。
![](https://i.imgur.com/ecw5o9o.png)
最終我們可以看到遊戲畫面中的新旅程被取代。
![](https://i.imgur.com/FJXVFnX.jpeg)

本文參考了[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)，禁止轉載。