使用FModel提取遊戲資產

paw5zx發表於2024-07-16

目錄
  • 前言
  • FModel簡介
  • FModel安裝
  • FModel使用
    • 初次使用
    • 資產預覽
    • 資產匯出
  • 附錄
    • dumper
    • Dumper-7生成usmap檔案
    • 向遊戲中注入dll

前言

這篇文章僅記錄我作為初學者使用FModel工具提取某款遊戲模型的過程。

FModel簡介

FModel是一個開源軟體,可以用於檢視和提取UE4-5專案中的資產。它支援從.pak.uasset檔案中提取內容,如3D模型,紋理,音訊等。

FModel安裝

首先進入FModel官網,下載最新的釋出版本。

下載後是一個壓縮包,直接解壓然後開啟exe檔案即可。

FModel還需要依賴.NET,如果你的系統中沒有,則會提示你安裝:

安裝好.NET之後,重新開啟FModel.exe,此時軟體可以正常開啟。

FModel使用

初次使用

①軟體初次開啟會彈出這個介面

這裡可以隨便設定,之後進入軟體還可以更改。
②點選ok進入軟體
③設定填寫AES key
這裡填寫你要解包的遊戲對應的AES key

④設定選擇UE版本和填寫遊戲路徑

解包
全選(我在使用時是這樣,可能會因遊戲的不同而不一樣)然後load

然後就會自動跳到Folder下,此時我們就可以隨便選擇一個資產雙擊進行檢視

注意:
如果你要解包的遊戲是使用UE5開發的,那麼在解包的時候可能會報錯:

[ERR] CUE4Parse.UE4.Exceptions.ParserException: Package has unversioned properties but mapping file is missing, can't serialize
   at CUE4Parse.UE4.Assets.IoPackage..ctor(FArchive uasset, IoGlobalData globalData, FIoContainerHeader containerHeader, Lazy`1 ubulk, Lazy`1 uptnl, IFileProvider provider, TypeMappings mappings)

解決方案我放在附錄中。

資產預覽

FModel還提供了3D ViewerAudio PlayerImage Merger預覽器,方便預覽資產中的模型檔案,音訊檔案和圖片檔案(直接在相應資產上雙擊即可)

比如3D Viewer的模型預覽是這樣

資產匯出

SettingsModels中設定資產的匯出格式(比如對於mesh可以設定匯出為.glbtexture可以設定匯出為.png

然後在你要匯出的資產上右鍵,選擇要匯出的型別即可:

附錄

dumper

對於UE5+的遊戲來說,具有unversioned屬性的包是意料之中的。然而現在有一些解決方案可以讓FModel支援對它們的解析。

下面將提供三種dumper,使用它們中的任意一個,可以生成一個對映檔案(*.usmap),檔案中是一些結構(schema),其包含遊戲類、結構體和列舉。

注意,這種結構(schema)在每次遊戲更新之後都會可能會發生變化,因此為了避免錯誤,應該在每次更新之後重新生成此檔案。

三個dumper的連結(閱讀它們的README檔案來學習使用方法):
https://github.com/Encryqed/Dumper-7
https://github.com/UE4SS-RE/RE-UE4SS
https://github.com/OutTheShade/UnrealMappingsDumper

當成功生成了*.usmap檔案後,你可以在FModel軟體的設定介面將其新增到Mapping File Path中:

下面我將演示透過使用Dumper-7生成*.usmap的過程

Dumper-7生成usmap檔案

①將Dumper-7專案git到本地
②使用Visual Studio開啟.sln檔案,將Settings.h中的SDKGenerationPath修改為你期望的usmap檔案儲存路徑(預設路徑為C:/Dumper-7
③在x64-Release下編譯,生成dll檔案
④向目標遊戲中注入dll(這一步我將在下面展開介紹)
⑤檢視生成的usmap檔案

向遊戲中注入dll

為了向遊戲中注入dll,我們要使用一個工具:DLL Injector
官網連結:DLL Injector官網
使用方法:
①開啟DLL Injector

②選擇要載入的DLL檔案(有兩種方法):

  • 點選browse按鈕然後選擇你要載入的dll檔案
  • 拖拽你的dll檔案到DLL injector軟體的介面中

③從左側視窗中選擇要注入DLL檔案的目標程序

  • 可以在輸入框中輸入程序名稱或程序號來篩選條目
  • 如果使用篩選功能最後只篩選出一個程序,則此程序會被自動選中

④點選右上方的注入按鈕將DLL注入目標程序,結束後會在指定資料夾生成usmap檔案

相關文章