close

文本腳本也是非常之靈活多變的,基本上每啟動一個遊戲漢化項目就得重新做一次導入導出工具(也不是全部重新來,基本上修改個別參數、某個結構就可以了)。文本腳本在總體結構上可以分為三種類型:順序結構、指針表結構、跳躍結構。

順序結構:



這種結構最為常見也最簡單,每一個文段都是緊挨著的,段與段之間有一個承接符來表示前一段的結束和後一段的開始。句子有伸長縮短改改這個控制符的位置就可以了,很簡單的。這種結構在《光明之魂2》中相當的多,而承接控制符就是「FFFE」了,大家自己可以試試!

指針表結構:

 
接觸過編程的人一定會知道指針是什麼意思吧,指針就是指向目標的地址,多個指針構成的向量表就是指針表(實在搞不懂就把它想像成碼表)。在指針表內指針按一定次序依次排列,程序就是靠他引導定位文本腳本的,有的遊戲一句話就有一個指針,但有的是一個場景對話才有一個指針。通過對指針的修改就能達到移動文段的目的,比如當「文段1」修改後長度如果出現增加,為了不影響句子的正確顯示,這時我們就得把「文段2」往後(高地址方向)移動,並修改對應的指針讓它再次指向「文段2」的頭部。還是《光2》上面那句話為例子,該句從0x368574開始到0x368589結束。取得句首地址0x368574把它轉換為GBA內存地址0x08368574(不同的遊戲機由於硬件基礎不同,轉換的方法也不同。對於GBA來說遊戲機把卡帶內容影射到內存中從0x08000000到0x09FFFFFF的一塊區域內進行尋址操作的,所以直接在地址前加上08000000就可以了)。高低反得到「74853608」,用《UE》搜索找到唯一一個地址: 
 


 

 

觀察一下不難發現該段很有規律。的確,你所看到的就是指針表,一個個指針順次排列。把我們搜索到的指針改為下一句話的起始地址0x36858A,在遊戲中原先的那句話變成了你所修改指針的指向的這一句了。現在你該體會到指針表的含義了吧。繼續對指針表研究,不難發現其規律——《光明之魂2》是每一小段劇情一個對話指針的。

跳躍結構:



這種結構最為麻煩,規律最難把握。文段與文段之間夾雜很多「垃圾」,比如程序指令等等,少則幾個字節,多的可能幾百個字節也不為過,有時候移動一下位置都會造成問題,對於這種情形只能祈禱遊戲中少出現些了。處理這種結構的時候一定要小心中間的那些「垃圾」千萬別真的把它們扔掉了!!,導入導出程序也要考慮怎樣合理處理這些「垃圾」,必要時候手工操作也是難免的嘛。《光明之魂2》中道具名稱就屬於這類情況,經過反覆對照試驗發現同一類型的道具名稱地址的差是一個定值,相對來說降低了不少難度。

由此可見三種結構在《光明之魂2》中都有所出現,在你今後漢化遊戲的時候肯定會遇到這樣那樣的特殊結構,但無論哪種結構都不外乎以上三種的有機組合。大家一定不要吝惜花在結構分析上的時間,否則「一失足成千古恨」。

文本導出完畢後大體上檢查一遍,如果沒什麼問題的話就可以進行翻譯了。翻譯可以交給懂外語的朋友或者網友等等的,當然如果你自己會的話更好。翻譯的時候仍然要注意書寫的格式,為了避免導入時候不必要的麻煩一定要採用統一的格式。一般地,翻譯內容都是跟在原文以後的。以下是《光明之魂2》的翻譯片斷,僅供參考:


引用
<368578>
···ヒソヒソ
---
···咕~  
<36858E>  
···え?そうなんですか?
---
···嗯?有動靜?  
<3685B0>
シッ!  
今···物音がしたぞ  
---  
噓!  
剛才···有什麼聲響 
<3685D2>
あ···今の···  
私のおなかの音です
---  
啊···剛才是···  
我肚子發出的聲音

原文和譯文之間加入的「---」只是為了方便導入程序識別而已。如果你要使用《SIN》來導入的話還需閱讀說明文本並按照它的版式要求書寫譯文。等到所有文本都翻譯完畢後還有一個非常必要的環節——文飾。翻譯的時候基本上都是以文字字面意思來進行的,單獨一句是沒有什麼問題,但拿到遊戲中連續起來問題就大了。所以在完成翻譯後要整理譯文,讓對話通順流暢符合中文習慣等等,如果再追求一點可以讓譯文突出說話角色的性格特徵等等,如果方便可以請教有文學功底的朋友來進行劇情潤色。潤色完畢後還要對整篇文章逐句安全檢查。看看每行字符是否超出範圍;控制符書寫是否正確、是否配對完整(比如文字變色、慢速等等有起始符還有終止符);標點符號是否統一,特別注意半角符號和全角符號,在電腦看來「,」和「,」是不同的符號,除非你在做碼表的時候都有定義……。文本檢查相當重要馬虎不得!!!

小結:
  本節內容不多、份量十足,文本導出的落腳點不是僅僅為了翻譯,而是要為翻譯後的導入過程。導出是否完善直接影響導入的成功與否,在設計輔助工具的時候要想著怎樣排版既方便翻譯時正確閱讀理解文字內容,還要考慮這樣排版日後是否能使工具正確識別轉換其中的文字信息並寫入遊戲文件中正確的位置。特別是有跳躍腳本(也稱「飄浮腳本」)的遊戲怎樣避免改動文段間的指令部分是設計的關鍵。建議在完全把握腳本後先寫導入工具然後再寫導出工具,導出後先利用一小段文本測試導入工具,確認沒有任何問題後再進行翻譯。翻譯的時候考慮到別人可能對漢化並不太瞭解,所以一定要給對方說清楚具體操作。最後需要說一點:導出文本的時候如果腳本有包含說話人的信息也要一併導出來,這樣會提高翻譯時的效率和準確率。對於《光明之魂2》,前面說過在每一句開頭的4個字節就是說話人,這些信息也最好導出,哪怕是導出個說話人的代碼也可以。而當初我並沒有在意這一點,所以整個漢化消耗的時間大部分都浪費在了翻譯上,沒有說話人的翻譯是很傷腦筋的。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ohgi01 的頭像
    ohgi01

    ohgi的棒球電玩天地

    ohgi01 發表在 痞客邦 留言(0) 人氣()