最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Switch游戲《超偵探事件簿 霧雨謎宮》UE4解包筆記

2023-07-10 15:51 作者:NB_XX  | 我要投稿

最近在玩《超偵探事件簿 霧雨謎宮》這款彈丸精神續(xù)作,里面的小死神的各種顏藝表情,讓我想起之前的黑白熊非常的可愛。

就是她↑

在有著同樣想法的群友慫恿下,開始了痛苦的初次解包之旅。

需要的工具我會放在文末跟參考文章鏈接一起,并在文章中用加以標注。

解包本體NSP獲取NCA資源文件

首先拿到游戲的ROM,我是從Switch520上下載的nsp文件。隨后是本次解包需要的prod.keys[注 1],當前最新的V16.0.3測試可用。

第一個是BASE是游戲本體,而第二個是更新包,我們要提取的表情就在游戲本體里。

下載游戲文件解包工具:NCA-NSP-XCI_TO_LayeredFS_v1.6.rar[注 2],把下載的prod.keys放在同一的文件夾下。

打開腳本NCA-NSP-XCI_TO_LayeredFS.bat,第一個界面是選擇要處理的文件類型,因為我們本次的解壓的是NSP商店包,所以選擇?2.? eShop NSP。

之后選擇對文件進行的操作,我們選擇1.? Extract Eshop NSP。

之后腳本提示我們把文件拖入窗口,選擇剛才的BASE文件然后回車。

在解包結束后生成一個Extracted_NSP的子文件夾,里面會有些nca、cert、tik文件,其中后續(xù)會用到的文件有

將tik文件拖到NCA-NSP-XCI_TO_LayeredFS工具包里的腳本獲取titlekey.bat

這個32位字符串就是我們后續(xù)解包NCA所需的titlekey。

提取NCA文件里的Romfs文件夾

這一步驟我們還是用到腳本NCA-NSP-XCI_TO_LayeredFS.bat,選擇需要提取的文件類型1.? NCA,隨后選擇2.? Extract Ecrypted NCA提取已加密的NCA包,之后選擇2.? Romfs folder我們把提取的文件釋放到文件夾,之后拖入上面提到的體積最大NCA包,輸入獲取的32位titlekey后回車。

如果解包順利你可以看到最后有如下的輸出,若提示prod.keys不存在等信息,嘗試把prod.keys 重命名為keys.ini后重新解包。

這告訴我們UE4引擎的資源包pak和ucas文件都已經(jīng)成功輸出到Extracted_NCA\romfs\RC\Content文件夾下了。

確定所用引擎版本

需要用到另一個腳本UnrealPakSwitchv10[注 3],我們把提取出的pakchunk0-Switch.pak復制到解壓后的文件夾內(nèi),將pak文件拖動到腳本1.check.cmd就能看到當前使用的UE引擎版本。

一定要把pak文件復制到腳本同一文件夾下。因為作者的編寫問題,腳本會以pak包所在文件夾的相對位置去調(diào)用u4pak.py,如果pak文件在不同文件夾就無法調(diào)用

腳本提示我們pak包版本可能是11或者11.27。按照腳本發(fā)布作者的原帖可以找到,對應的引擎版本是Unreal Engine 4.26.2 (for v11 *.pak),或Unreal Engine 4.27.2 (for v11.27 *.pak)。

題外話:UnrealPakSwitchv10本身設計也有解壓pak包的功能,但本次教程并沒有使用這個方法。其一需要下載原UE4引擎再調(diào)用其中的UnrealPak.exe,下載UE引擎略微麻煩。其二超偵探的包雖然沒有加密,但是提取出的并不完整,原因不明。

非加密UE4的資源查看方式1:UnrealPakViewer

在前面的操作中我們已經(jīng)提取到了pak和ucas文件,以下就進入到常規(guī)的UE4引擎游戲解包流程。

查閱資料的時候我發(fā)現(xiàn)大多數(shù)都是針對pak的解包教學,但是很少有人提到另一個文件ucas,而在我們解包出來的資源文件中,ucas明顯應該是包含更多資源的。

查詢了UE官方wiki[注 4]和一些論壇討論后逐漸了解到,在UE4和UE5引擎更新了一種打包方式,優(yōu)化原來的pak包的資產(chǎn)存儲模式來加快加載速度。可以簡單地理解為:

.pak 存儲訪問率低的文件,在《超偵探事件簿:霧雨迷宮》中主要存儲游戲劇情動畫,音樂等。

.utoc 是一個描述文件,主要記載容器文件壓縮格式以及是否被加密。

.ucas 存儲游戲中的主要數(shù)據(jù),在本作游戲中所有的場景貼圖,人物建模和動作,以及UI等資產(chǎn)都在這個包里。

UnrealPakViewer[注 5]是一個界面友好的pak查看器,README中描述也支持ucas文件,但是使用過程中發(fā)現(xiàn)只能讀取到ubulk文件,無法直觀的看到素材資產(chǎn)。懷疑可能是沒辦法導入utoc的原因。

下載工具后打開腳本Run.bat就可以把pak包拖進窗口使用樹形圖方式閱覽。

pak包中主要的內(nèi)容集中在RC/Content/CriData路徑下,awb是音頻格式,里面存放著游戲的BGM和效果音以及人物配音。在Moives文件夾下的usm文件是游戲的劇情動畫,而RC/Content/RC/Ul/Font/FontFace路徑下存放的是游戲所用字體。

右鍵Extract選擇提取文件到文件夾,對于usm視頻文件選擇用vgmtoolbox[注 6]工具來查看。

VGMToolbox → Misc . Tools → Stream Tools → Video Demultiplexer 打開視頻提取工具,格式選擇USM,右側(cè)勾選提取音頻與視頻,按照提示將文件拖入上方的Drop Files Here區(qū)域,等待轉(zhuǎn)換進度條完成,可以在原usm文件所在文件夾找到同名m2v文件,主流播放器即可正常播放。

這里提取的是唯一內(nèi)嵌中文字幕的視頻文件,其他均為字幕掛載

非加密UE4的資源查看方式2:UEViewer

上文說到無法直接提取的ucas文件,也有其他更強大的軟件可以進行破解,這里使用的是最強大的UE引擎提取軟件UEViewer[注 7]。

文件輸入我們NCA部分提取到的整個Paks文件夾地址,勾選Overmide game detection,引擎選擇UE4 4.27版本,這里不勾選具體引擎版本雖然可以閱覽資源目錄,但是在預覽的時候無法正常查看模型和貼圖等資產(chǎn)。

下面的Platform可以選擇游戲原始平臺,這里我們不勾選switch的原因是UEViewer論壇中有帖子[注 8]提到勾選后紋理顯示可能會不正常。

打開資產(chǎn)樹狀圖,忽略掉Engine和Plugins(引擎與插件)兩個配置文件夾,我們主要的提取內(nèi)容在RC/Content/RC路徑下,也就是新增的ucas文件包含內(nèi)容。

UEViewer在打開無法正常解析的文件時會整個軟件崩潰,所以建議pak文件夾常開隨時準備重啟UEViewer后輸入path。此外UEViewer的文件提取并不全,像RC/Content/CriData路徑下的音頻文件在UEViewer中沒有正常顯示,暫時沒有查到相關解決資料

超偵探的人物模型在RC/Content/RC/Characters文件夾下,但是并不是按照人物命名分類的,而是編號+子編號的方式。例如002代表小死神,003代表大死神,后續(xù)子編號則代表不同場景下的模型。

子文件夾分別對應材質(zhì)Materials、模型Meshes、動作Motins、分支Sequence、紋理Textures,下面的部分uasset文件可以用UEViewer內(nèi)置的預覽器預覽。

我們打開Chr00300文件夾,這個對應了大死神的主要場景素材文件,

雙擊打開閱覽器后原本的文件樹狀圖會消失,快捷鍵O可以再次打開

而我們想要提取的表情包則是附著在對話框上的(如下圖),那么它應該屬于游戲UI的一部分(這里感謝麻衣舞HalfMai的指點),順著這個思路開始分析UI文件夾中的結構。

請原諒我手機拍攝屏幕的懶惰行為,NS的截圖WIFI分享太反人類了

在UI文件夾中,可以看到類似于菜單Menu、對話記錄BackLog,謎迷宮NzUI、游戲標題Title等子文件夾,其中COMMON這個UI引起了注意。

至此耗費了大概10個小時,解包、分析試錯部分9個小時

終于我們在UI/COMMON/Character/FaceChip下找到了想要的對話框表情包,而旁邊的FaceEffects自然就是表情動效的其他素材。右鍵文件夾選擇Export folder content,就可以將整個文件夾內(nèi)的素材用UEViewer內(nèi)置的轉(zhuǎn)換器導出為TGA圖片格式,至此我們的解包之旅終于告一段落。

還沒完?圖片的格式轉(zhuǎn)換

TGA的圖片格式雖然可以用常規(guī)圖片瀏覽軟件和PS正常打開,但是透明通路部分是無法正常查看的,需要轉(zhuǎn)換為PNG等更通用的格式。原本自己搓輪子的時候發(fā)現(xiàn)已經(jīng)有前人做好了工具tga2png[注 9](開源最棒?。?span id="s0sssss00s" class="font-size-16">,我需要做的只有寫一個批量轉(zhuǎn)換腳本即可。

將以上內(nèi)容保存到文本文件,修改后綴為bat。將下載好的tga2png和保存的腳本與TGA圖片放在同一文件夾,雙擊即可批量轉(zhuǎn)換。


“累死小爺了”

本次解包出來的小死神與大死神表情包也分享給大家,See You Next Time。

https://nbxx.lanzouj.com/ioPvZ11u39bg

這一次的解包雖然收獲頗豐,但是仍然有很多我沒有涉及到的內(nèi)容,有待后續(xù)學習:

  • xci、nsz格式的解包

  • UE4引擎的aes key提取

  • UE5引擎的解包

  • UE Viewer中無法查看部分文件的真實原因

  • 模型的提取與導入

  • UE引擎游戲制作實操(地圖文件和流程文件的理解)

本文涉及到的參考文章與工具下載鏈接如下

  1. https://prodkeys.net/

  2. https://shipengliang.com/games/switch-%E8%A7%A3%E5%8C%85-%E5%9B%BE%E6%96%87%E6%95%99%E7%A8%8B.html

  3. https://gbatemp.net/threads/how-to-unpack-and-repack-unreal-engine-4-files.531784/

  4. https://docs.unrealengine.com/5.0/en-US/zen-loader-in-unreal-engine/

  5. https://github.com/jashking/UnrealPakViewer

  6. https://sourceforge.net/projects/vgmtoolbox/

  7. https://github.com/gildor2/UEViewer

  8. https://www.gildor.org/smf/index.php/topic,8627.msg45495.html

  9. https://github.com/shusaura85/tga2png


Switch游戲《超偵探事件簿 霧雨謎宮》UE4解包筆記的評論 (共 條)

分享到微博請遵守國家法律
汝南县| 灵寿县| 安远县| 延庆县| 安义县| 临沂市| 大丰市| 汕尾市| 金秀| 尚志市| 崇州市| 远安县| 栖霞市| 梧州市| 柳河县| 颍上县| 兴安县| 县级市| 凉城县| 电白县| 麦盖提县| 汤原县| 吉隆县| 芦山县| 临高县| 德阳市| 星子县| 伊通| 衢州市| 百色市| 沙河市| 龙川县| 龙山县| 孝义市| 曲水县| 新余市| 二连浩特市| 武清区| 新邵县| 古浪县| 嵩明县|