遊戲翻譯機 VNR (visual novel reader) 常見問題, FAQ

VNR是日文遊戲用的翻譯程式 (其他語言也可以用,效果沒有日文好)
對想用遊戲來學日文的很有幫助

對於沒玩過日文遊戲的,請先看怎麼正常啟動/執行遊戲
日本/日文程式(遊戲)需要修改的語系設定

一個症狀可能有多種原因,解法不固定

Q: 除錯模式 (debug mode) 怎麼用?
A: 用Visual Novel Reader\Scripts\Visual Novel Reader (Debug).cmd啟動VNR,在發生錯誤後,把視窗的輸出都複製進文字檔 (按標題選全選->複製),貼進檔案再檢查錯誤原因

Q: 啟動跳錯誤
A: 用純英文路徑 (ex: 目錄/資料夾不可有中文),使用者帳號也要純英文。或是VNR檔案損壞,請重裝,重裝還有問題就關掉VNR清設定檔重開
locale設定不能開UTF-8



Q: 清除設定
A: Visual Novel Reader\Scripts\下 (關掉VNR後執行)
Remove VNR Profiles.cmd
Remove VNR Settings.reg

Q: 抓不到本文可能解法
A:
  1. 改遊戲設定 (字型,文字速度調最快)
  2. 需要特別碼h-code(hook code)才能抓到,VNR支援引擎是內建規則找出hook,兩者底層原理都一樣 (手動和VNR自動幫你加)
  3. 遊戲要手動啟動,等文字出現後再讓VNR連接上
  4. 更新遊戲 (可能VNR支援的是新版本的遊戲引擎),不同遊戲版本使用的h-code可能不同,不同發行商也可能改變(ex: steam版和非steam版)
  5. patch遊戲讓VNR能抓到(rpgmaker mv, 還有一個我忘記名字了,Ren'Py?)
  6. ocr 直接掃描畫面成文字,好像需要安裝微軟office的某個元件,沒用過的功能
  7. 用管理者權限執行 (如果遊戲用管理者,VNR也需要)
  8. 遊戲不要用相容模式執行 (VNR會抓不到,大概是hook address會改變或有保護無法inject) 
  9. VNR只支援32bit遊戲,有些遊戲有分32/64bit的執行檔,用32bit的 (通常執行檔名字後面有64/x64的是64bit版本,32bit版本後面會有32/x86)
  10. 軟體衝突,有其他程式注入遊戲,影響到VNR運作
    要用OBS顯示遊戲畫面遇過這個問題 https://craftwarblog.blogspot.com/2018/05/obs-vnr-display-vnr-translation.html
    https://craftwarblog.blogspot.com/2017/09/obs-blackscreen-game-capture-crash.html
    參考第8點
Q: 本文抓取不完全或有多餘字元
A:
  1. 重開遊戲,讓VNR重新判斷,吉里吉里(kirikiri) engine常遇到的問題
  2. 使用特殊碼
Q: 特殊碼 hook code 搜尋關鍵字
A: h-code, hook code, 特殊碼。打上其中一個關鍵字加上遊戲名字,除非太新或冷門都有
找不到的就自己做吧 (要懂一點asm)
hook code整理網站 (不更新列表)
http://ithcodes.wikia.com/wiki/H-Code_List
http://vn-hooking.wikia.com/wiki/H-Code
http://www.hakadoru.tank.jp/mysql/itiran.php

Q: 特殊碼無效 (含機率性失效)
A: 
  1. 關掉內建引擎避免衝突(不支援新版本),把目錄 Visual Novel Reader\Library\Frameworks\Sakura\py\libs\gameengine 改名 ex: alicesoft比較新的遊戲
  2. 特殊碼是跟系統有關,每台電腦不一定相同 (有看過可以自己計算的,不用重找) ex: 椎名理緒 2.5 (3rd eye用的引擎),可用兩個dll address相減得出會變動的部分

Q: 只有本文無翻譯
A: 換一個翻譯,線上翻譯無法使用原因: 網路問題或服務修改,後者要等有人修正程式
ex: 百度翻譯失效 (目前的修正,速度變慢影響體驗,所以我沒加進去,猜測原因是把request從Qt改成python)

Q: 在實況上顯示翻譯
A: https://craftwarblog.blogspot.com/2018/05/obs-vnr-display-vnr-translation.html 有好幾個方法,其中最佳解是用我改的OBS和VNR 

Q: 使用VNR後遊戲文字顯示異常或容易當掉
A: 換一種本文擷取方式看看 (打勾和不勾作測試),是注入兩個不同dll (有時只有一個正常)

我通常是用ITH的擷取方法(我不內嵌改介面)

Q: 重灌/升級系統後,無法使用
A: 因為使用者改變了,權限不合(帳號名稱一樣,sid通常也不一樣,系統當作不同帳號,查詢關鍵字take folder/file ownship) ,VNR運作不正常無法注入dll,要把整個VNR的擁有者改成使用的帳號,或是重新安裝VNR,也有可能是被防毒擋住了

Q: VNR卡住
A: 重開VNR,通常遊戲也要先重開 (否則VNR hook的過程會失敗卡住,因為hook重複)

Q: VNR能不能移到非主要螢幕?
A: 好像不行,程式設計的時候沒考慮到吧。其實VNR是畫面大小是整個螢幕,除了文字和控制列以外透明

其他翻譯相關工具
https://github.com/Artikash/Textractor
https://github.com/hanmin0822/MisakaTranslator
https://github.com/project-yuki/YUKI

QTranslate
https://quest-app.appspot.com/


已知問題
下面兩個問題我都沒有打算修,VNR本身的問題,不是我寫的code
1. 遊戲前進中不要按VNR擷取的本文或翻譯,可能會當掉 (要等文字顯示完不會變動的時候)
ex: auto速度比較快,又去點VNR文字就會觸發
這個bug,很久以前我就回報給Jichi過了,他只把點擊後翻譯查詢的速度加快,沒有完全修正
大概是pointer的bug吧,指向已經消失的東西
2. 用久了熱鍵會失效,我猜是PySide的bug,要更新版本,懶得裝古老的開發工具設置環境,也沒license不想處理。

留言

這個網誌中的熱門文章

OBS 抓不到畫面, 視窗, 遊戲擷取, 黑或白畫面, 當掉 ,卡住, black/white screen, window game capture, crash, freeze

優化實況(一) OBS設定 streaming settings

OBS plugin obs-text 顯示播放中音樂, display playing music