遊戲漢化教程1-漢化流程

來源:互聯網
上載者:User

遊戲漢化流程

  遊戲漢化是非常具有挑戰和成就感的,挑戰在於和遊戲開發商鬥智鬥勇,想盡一切辦法層層撥開檔案,得到最後需要漢化的資源,其過程不亞於一段推理。成就感就不用說了,和開發程式一樣的,誰不願意看到自己的作品被很多人使用呢?

  實際上,遊戲的漢化流程非常簡單,如所示:

 

  其中,黃色的表示要根據實際情況進行處理,大部分遊戲是需要處理字型檔和編碼(字型檔和編碼的處理屬於漢化中難度比較大的一個技術環節,後面的教程會詳細說明)的,不過如果運氣好遇到一些比較厚道的廠商(比如我們漢化的托托莉的工作室,採用Unicode編碼,TrueType字型檔,那就可以直接利用ttf字型檔,而不需要重建字型檔了),那麼這個環節就簡單多了。

  OK,我們還是按照流程來說,整個左邊就是漢化組中,程式需要做的工作。看起來幾個簡單的步驟,實際上每一步都還可以拆分的更細,每一步要做的工作也不會很少。

  首先是要多整個遊戲的檔案資源進行分析,一般來說,遊戲的資源都不是我們平時在Windows或者Linux下常見的檔案類型,而是一些遊戲廠商利用第三方工具處理或者自己開發的檔案格式。例如PS3的psarc格式(playstation archive),CRIWare的cpk等等。這些檔案都是對遊戲資源的一個壓縮打包,作用是減小遊戲的體積並且減少零碎檔案的存在,以提升遊戲的運行效率。這些檔案有些可以直接利用現成的工具解包,有些則需要分析封包資料來自己編寫解包程式。

  遊戲資源解包以後,就要開始尋找文本了,尋找文本以前,首先要搞清楚遊戲文本所用的編碼方式,一般來說,PS3上的日文遊戲採用的是UTF8、ShiftJIS等編碼,也有遊戲使用的自訂編碼(自訂編碼處理起來稍微麻煩一些,不過到目前為止,還沒有在PS3上遇到過自訂編碼的,PSP上倒是有)。找編碼的方式有幾種,一是先找到字型檔(大部分遊戲是自製字型檔,整個字型檔就是一張圖片,整圖或者Tile圖片),通過字型檔可以觀察出遊戲的文本編碼。二是對檔案進行16進位搜尋,先在遊戲中找到一段對話,然後利用工具在資源中選擇不同的編碼方式進行搜尋,對於非自訂編碼,第二種方式比較簡單,對於自訂編碼,可以採用相對搜尋方式(或者叫差值搜尋),這種方式就需要結合字型檔來進行。尋找字型檔和編碼常用的工具有CrystalTile2(天使漢化組的一款功能比較強大的工具),還有一個是我近期才編寫的16進位搜尋工具(原始碼在這裡),我在網上找的16進位搜尋工具都不太好用,不太適合漢化。

  文本搞定以後,就需要處理遊戲圖片了,一般遊戲圖片上也包含了需要漢化的內容(比如封面之類的),遊戲的圖片常見格式為PNG或者DDS(當然還有其他格式)。但是這些圖片一般都不是直接就乖乖的躺在資源檔裡面,而是用一種廠商自訂的格式來封裝了一下(也就是加了些檔案頭資訊和控制資料,但是圖片內容資料本身就是位元影像),所以只需要去掉這些自訂的檔案頭資訊,換成BMP或者DDS的檔案頭即可用常用圖片閱覽器開啟。

  文本和圖片搞定以後,要做的就是編寫一個程式來匯出文本和圖片(最好是批量工具,能整體處理某一個檔案夾下的所有檔案)。圖片還好,一般封裝的檔案格式都比較簡單,文本就不一樣了,千差萬別。所以,為了匯出文本,還需要讀懂文本封裝檔案的資料。比如一個文本封裝檔案,包含頭資訊,裡面告訴了你這個檔案包含多少句文本,同時,每一句文本前還有控制資料,告訴你這句文本總共包含了多少位元組的資料(但一般都直接利用一個特殊位元組來做為每一句的結束,例如0x00)。所以,我們需要讀懂這些資料來編寫匯入匯出程式。

  上面的工作完成後,漢化就基本完成一半了,這個時候,還不要急著把文本和圖片丟給翻譯,一個擁有良好習慣的程式員總是要自測一下自己的程式的。我們需要將解包的資源封包,放回遊戲,看看有沒有問題,如果沒有問題,則將匯出的文本隨便修改一些,再匯入放回遊戲,看看在遊戲裡面是否有效果等等。完成一系列的測試後,再交給翻譯人員,不要等翻譯完了,才發現,不能封包什麼的,那就虧大了。

  翻譯完成後,程式要做的事情實際上就是翻譯前的一個逆向過程了,就像上山總要下山一樣。不過一般的漢化組的程式會在編寫匯出程式的同時,就完成了匯入程式的開發,並且,按照我的習慣,會利用我的程式來將匯出的資源匯入回去,與原始檔案做一次MD5校正,必須保證完全一致,才能確保在遊戲中不出問題。

  以上就是整個漢化的大致流程,比較粗,實際上整個漢化過程會非常繁瑣,而且有時候一個很小的細節,就會導致遊戲出現各種問題。我會在後面的文章中,把每一個步驟都細分,然後結合執行個體來編寫這部漢化教程。教程中所有涉及到的原始碼,我會在Github上共用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.