【給版主的話】
該帖的工具教學可能涉及有心人士用於非法用途,若版務閱讀過此帖所有內容後,
仍覺得不適合公開發表在此,希望版務可以先與小弟聯絡,
以便小弟在收到通知後的24小時以內,備份文章然後刪除該帖,謝謝。@@
【必讀前言】
(1) 如果你只是伸手黨,此文不適合你,請選擇上一頁離開。
(2) 本教學只是概念性的教學指點與討論,不是一蹴可幾獲得所有資源。
(3) 所有資源版權為 Mad Head 所有。
(4) 舉凡你使用該工具提取到的任何資源,禁止用於商業用途。
(5) 舉凡你使用該工具提取到的任何資源,避免打包成懶人包在其他地方二次發佈。
(6) 本帖宗旨在於分享技術給大家研究與討論,請勿將此技術用於非法用途,如(4)所述。
(7) 小弟不能保證該工具100%可以找到所有資源,因為每天都要工作;可能需要大家的幫忙。
############################### 我是分割線 ###############################
第一種拆解方法:
Unity Assets Explorer 工具 教學
【必要工具】
(1)《Unity Assets Explorer v1.2》
此原PO文的主樓有提供外部下載連結叫 yadi.sk
不一定要註冊該論壇,就能下載該工具。
神魔是使用Unity 3D工具開發出來的遊戲。
(2)《WinRAR》
解壓的必備工具,BJ4。
(3) 《TOS Tex Converter v1.0》
雖然 Unity Assets Exloper 有提供材質貼圖提取的轉換 .tex 轉 .dds。
但很不幸,多數神魔的貼圖 .tex 並沒有正確被轉譯,導致DDS成像錯誤。
而且DDS對於沒有接觸3D貼圖的使用者,一般不會安裝可瀏覽編輯的套件。
為了正確瀏覽部份神魔的材質貼圖,小弟自行研究 .tex 及開發簡易轉換器。
可將部份貼圖 .tex 轉換成我們熟知的 .png 檔,自帶透明層。
¥ 開發工具:VC 6.0
¥ 開發專案:MFC
¥ 相關圖形函式庫:CxImage
【基礎操做】
(1) 從神魔官方網站下載APK版本。
(2) 將 綴名(附檔名) .apk 修改成 .rar,並解壓於某資料夾中。
(3) 神魔遊戲裡的所有素材資源都位於:assets/bin/Data 之下
(4) 為了工作方便及識別,多重選擇後重新命名:
§ 多重選擇的方法,先選擇(highlight) 0000000000000000e000000000000000 這個檔案
§ 滑鼠下滾,找到 level0 前一個檔案,此時按住 Shift 鍵然後點擊,便可多重選擇(highlight)
§ 多重選擇後,點右鍵選擇重新命名,這裡是以 AData 為例
§ 命名完後,作業系統會幫你批量由上到下按編號照順序命名,如下圖:(應該會共有2020個)
(6) 點擊 Open Assets-file 的按鈕開啟讀取舊檔視窗,找到你剛剛批量更名檔案的位置,檔案類型選擇 *.*,這時你就會看到 AData (1), AData (2), AData (3), .....
(7) 隨意選擇一個檔案;這裡選擇 AData (1101),然後開啟。你會發現 UnityAssetsExplorer 解析出一個 .MP3 的檔案。
(8) 然後點擊 Extract All 的按鈕導出素材,導出的位置是在 UnityAssetsExplorer.exe 的旁邊
進去該資料夾就能找到我們耳熟的戰鬥背景音樂咯 XD
(9) 其他 AData 就依此類推了,裡頭藏有各種檔案,甚至是剛剛有一些尚未批量重新命名的 .assets 檔案等,各位也可以嘗試看看。但有些是 UnityAssetsExplorer 無法解析的,或解析出我們仍無法識別的檔案。
【圖片提取】
話說前頭,小弟目前還沒有技術到能做出因應各種.tex圖檔的轉換;
目前只針對 A4R4G4B4、A8R8G8B8 格式能解析得出來,DTX1格式還在研究中 (也許弄不出來)
寵物所有圖鑑,如 ***n.tex 可以解 => A4R4G4B4,沒錯神魔的寵物圖鑑僅用16bit描述 = =
部分檔名有標明TrueColor,有機會可解 => A8R8G8B8
(1) 一樣隨意選擇一個檔案;這裡選擇 AData (133),然後開啟。你會發現解析出一個287n.tex的檔案,而這個檔案正是寵物編號287號的奧丁。
(2) 先把選項 Convert TEX to DDS 取消。該工具對神魔的 .tex 解析是錯的,就算你有可以瀏覽DDS的工具或套件,圖像看下來是亂七八糟的,有興趣自己可以試試。
(3) 開啟 TOS Tex Converter.exe,Tex Viewer 按鈕是預覽,Tex => PNG 按鈕是轉檔;兩者都可以多重選擇檔案(批量)來開啟或轉換。
(4) Tex => PNG 批量轉檔後,會出現以下對話框;PNG檔案產生的位置在 .tex 的旁邊。
(5) 完成。轉出來的PNG是以32bit真彩描述。
(6) 這裡提供一些我找到的.tex (不是全部的),給你們測試 TOS Tex Converter
【後記】
◎ 對我寫的工具有興趣的人,可以從這裡下載 source code,這也是MFC的專案:
◎ 想要研究.TEX的人,可以從這裡著手:
前0x38個Bytes是神魔.tex的檔頭,其中....
前兩個 4個Bytes 各別是:長和寬、也有可能是寬和長;
第三個 4個Bytes 是:圖像資料的總量;
第四個 4個Bytes 是:區別 .tex 解碼的代號;
A8R8G8B8 代號是 4(dec)
A4R4G4B4 代號是 13(dec)
其他欄位尚未研究出是什麼東西了~~~ Orz
◎ 最後,祝大家能從2000多份檔案中,找到自己喜歡的卡片提取出來收藏。=w=""
############################### 我是分割線 ###############################
第二種拆解方法:
disunity 工具 教學
【數據包概念】
所謂數據包,就是指一種『資料庫』的概念。
當遊戲過大時,無法在 APK 檔案中容納。就會分離數據包。
同時因為安卓的型號太多,大部分機型的內置記憶體過於小。
所以,遊戲開發商必須盡量縮小 APK 檔案的大小。
神魔從 4.0 開始,開始引入數據包的概念,畢竟圖鑑跟音樂只會越來越多;
透過玩家第一次進入遊戲,下載數據包補足不足的資源內容。
神魔的數據包位於這底下:
內部儲存空間\Android\data\com.madhead.tos.zh
【必要工具】
(1)《Java VM》
運行 disunity 的必要環境,因為該工具是使用 Java 所撰寫的工具。
如果你的電腦上已經裝有 Java VM,就不需要重裝了。
(2)《ES檔案瀏覽器》
用來瀏覽安卓裝置上資料文件的APP。
(4)《disunity》
一款比 Unity Assets Exloper 還強大的工具,它不只能夠針對 .unity3d 進行分析拆解,
它也可以解析 .assets 類型的檔案,甚至完整度都比 Unity Assets Exloper 優秀,
有關於貼圖的轉匯,都能成功且正確地被轉譯成常見的TGA檔。
但缺點就是沒有GUI介面,使用者需要熟用 command 操作。
該網頁中,下載點可以從 Download 下的 releases page 超連結 找到,目前最新版本是v0.2.1
【數據包的提取】
如果你使用的是模擬器 bluestacks,可能需要 豌豆莢,
本文不教學有關 豌豆莢 與 bluestacks 的使用,請自行Google爬文一下。
有關 iOS 的玩家,請自行搜索相關知識,如何獲知遊戲的數據包安裝在何處,
因為小弟身邊沒有 iOS 的裝置,所以本教學以實體安卓系統為例。
有鑑於不是所有裝置USB連接後,都能直接從數據包資料夾下看到所有檔案,
要在裝置上先般到別的地方才行,如 ES檔案瀏覽 的APP。
(1) 使用ES檔案瀏覽器,瀏覽你安裝數據包的路徑:
\ Android \ data \ com.madhead.tos.zh \ files \ boundles
(一般預設會安裝在此,如果沒有可能要去別的地方找有關 com.madhead.tos.zh 的資料夾)
(2) 長壓某個檔案,然後點取『全部選取』,選擇『複製』。
(3) 在你儲存裝置路徑最開始的地方新增TOS資料夾,並把複製的資料丟置與此
(4) 把你的安卓裝置用USB連至PC,找到你剛剛建立的TOS文件夾,並把它拿移至PC中吧。
你會發現剛復製出來的地方,可以看到所有檔案了。
(5) 在電腦瀏覽的時候,會發現有些文件已經被壓縮起來,請自己手動解壓縮這些文件。
※ 感謝 Wendell 大大的提點與教學。
(6) 同樣為了工作方便,你可以批量重新命名這些 .unity3d 檔案。這裡是以 X 為例。
【工具操作】
如果你熟用 command 操作,你可以不用遵照我這邊的教學。
這裡的操作僅供參考,當然如果你按教學跟著做,你也可以達到相同效果。
(1) 把你下載的工具 disunity_v0.2.1.zip 解壓至桌面 ( 資料夾 disunity_v0.2.1 )
(2) 把你剛剛抓到的數據包資料夾 TOS,放置到 disunity_v0.2.1 資料夾底下
(3) 紀錄一下你此時的 disunity_v0.2.1 文件夾路徑
我這裡是 C:\Users\Terence\Desktop\disunity_v0.2.1,請自行變通。
(4) 執行 CMD (命令提示字元),輸入你剛剛紀錄的路徑
cd C:\Users\Terence\Desktop\disunity_v0.2.1
※ Tips:當你輸入每一層路徑時,輸入幾個字元後,按Tab鍵,十之八九系統會自動彈出你想要的路徑,加快你輸入路徑的時間。
(5) 接下來直接輸入 disunity "TOS\X (1).unity3d",就能解出你第一份的 X (1).unity3d 包裝。
其他解包動作都相同,
disunity "TOS\X (1).unity3d"
disunity "TOS\X (2).unity3d"
disunity "TOS\X (3).unity3d"
...... 以此類推
如果 發現 disunity 不能使用,發生 unable to access jarfile
指令改用:java -jar disunity.jar "........"
※ Tips:避免重複輸入的困擾,你可以按 ↑ 或 ↓ 鍵,切換以前你曾經輸入過的指令,以便你修改部分文字就好。
(6) 拆解的檔案,可以在 TOS 資料夾內找到,裡頭可以看到有關貼圖資料夾,進去後就得到資源了,如果是音樂則會是有關audio資料夾。
(7) 用 Paint.NET 就可以順利開啟或編輯 TGA 的圖檔咯 =w=
(8) 關於APK裡的內容,也就是第一個方法裡處裡的檔案,也可以用 disunity 來解。
至於怎麼做,仿照這裡的教學,一樣能做到,只是部分指令要請各位大大自行變通喔。
(9) APK 裡的 assets 切割檔split,選擇第一個部分來解,disunity 就能自動全解出來了。
【後記】
Unity Assets Explorer | disunity |
有GUI介面,方便 | 無GUI介面,不便,需CMD知識 |
解包面向不夠全面 | 解包面向相當全面 |
論功能來說,個人絕對推薦使用 disunity,
畢竟 Unity Assets Explorer 的作者貌似已經沒在更新很久了。
雖然操作麻煩,但學學 CMD (命令提示字元) 未嘗壞事。

############################### 我是分割線 ###############################
小撇步一:
如何從新版本中,只找新追加的部分?
最近 4.0 更新到 4.5,有人 PM 我說要怎麼找到新追加的素材,妹子們的潛能解放圖。
難道每次改版,就得重頭開始慢慢找新追加的內容 ?
其實有一個小撇步,那就是每次大改版前作『舊版備份』,無論是APK,還是數據包都一樣。
※ 請注意,這裡備份的數據包裡的檔案群都還沒 解壓 或 重新命名 的喔
(1) 我們將 新版本的數據包 與 舊版本的數據包 分開放 ( TOS放舊的,TOS2放新的 )
(2) TOS底下舊的數據包檔案群 拷貝至 TOS2底下新的數據包檔案群,選擇覆蓋。
(3) 此時你會發現有幾份檔案沒被 選取(HighLight) 起來,表示沒覆蓋到;
這也同時指出,這些檔案是新加進來的。
(4) 所以不要急著點擊其他地方,然後還是在 HighLight 狀態下,按下 Delete 鍵 刪除;
留下來的就是:新加進來的檔案咯 =w=
留下來的就是:新加進來的檔案咯 =w=
小撇步二:
disunity 的 批量處理
※ 感謝 神洛官人 大大的提醒
disunity 是可以做批量處理的,
我們以 disunity 的【工具操作】之第 (5) 項來說明:
當你指令輸入:disunity TOS\*
就可以達到將TOS底下所有的檔案進行批量轉換了!!
同樣如果 發現 disunity 不能使用,發生 unable to access jarfile
指令改用:java -jar disunity.jar TOS\*
Enjoy !
-- 2014.01.17 筆