使用FModel提取游戏资产
前言
这篇文章仅记录我作为初学者使用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 Viewer,Audio Player,Image Merger预览器,方便预览资产中的模型文件,音频文件和图片文件(直接在相应资产上双击即可)
资产导出
在Settings的Models中设置资产的导出格式(比如对于mesh可以设置导出为.glb,texture可以设置导出为.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文件

使用FModel提取游戏资产的更多相关文章
- (转)unity3D 如何提取游戏资源 (反编译)+代码反编译
原帖:http://bbs.9ria.com/thread-401140-1-1.html 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源.教我们初步的破解unity3d资 ...
- Unity 提取游戏资源之ktx转换
http://blog.csdn.net/akof1314/article/details/38022263 从雨松的博文<Unity3D研究院之mac上从.ipa中提取unity3D游戏资源( ...
- 游戏引擎架构 (Jason Gregory 著)
第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...
- Unity 3d游戏逆向及.NET Reflector工具使用介绍
移动平台游戏框架主要有unity 3d和cocos 2d.我们首先得识别游戏使用的框架.识别Unity游戏Android平台的apk包可以直接解压,看是否有./assets/bin/Data/Mana ...
- JavaScript游戏中的面向对象的设计
简介: 从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句.在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计.本文将概述原 ...
- 【分享】School Rumble校园迷糊大王PSP姐姐事件+PS2游戏第一,二学期【带VNR翻译教程】
7/22/2014 TUE 为「スクールランブル 姉さん事件です」加入了BANDAI PSP的引擎. 校园迷糊大王PSP姐姐事件 下载地址1:http://www.bego.cc/file/689 ...
- [转] java开源游戏
收藏一下 triplea Triplea是一个开放源码的boardgame.它允许玩家选择各种各样的战略版图游戏(如:轴心国或同盟军).TripleA引擎支持联网对战,支持声音,支持使用XML文 ...
- NGK公链生态所如何保障用户的数字资产隐私安全?
距离NGK生态所正式上线已经没剩下几天时间了,NGK全网算力总量正在持续猛增,NGK日活账户也在大幅度增多.可以看出,币圈的生态建设者们是十分看好NGK生态所的.那么,有这么多的生态建设者涌入NGK生 ...
- 剖析虚幻渲染体系(14)- 延展篇:现代渲染引擎演变史Part 1(萌芽期)
目录 14.1 本篇概述 14.1.1 游戏引擎简介 14.1.2 游戏引擎模块 14.1.3 游戏引擎列表 14.1.3.1 Unreal Engine 14.1.3.2 Unity 14.1.3. ...
- Phaser-游戏之旅
虽然这个小游戏逻辑不是很复杂,但为了熟悉Phaser这个游戏框架的使用方法所以就选择了它. 另外第一次在项目中尝试使用ES6,之后利用babel进行转换. 自动化构建:gulp(其他文件复制和解析) ...
随机推荐
- PCF 的 Npcf_PolicyAuthorization 服务化接口
目录 文章目录 目录 引用 前文列表 术语 PCF Npcf_PolicyAuthorization 服务化操作类型 服务化接口参数类型 创建 Application Session Context: ...
- 基于Python的性能优化
一.多线程 在CPU不密集.IO密集的任务下,多线程可以一定程度的提升运行效率. import threading import time import requests def fetch_url( ...
- 微信开发者工具拉取gitlab远程代码报Pull failed原因分析:
可能出现的原因: 本地主机上没有安装node node下载地址: 1 https://nodejs.org/zh-cn/download/ 没有保存gitlab的用户名和密码
- Python爬图片(面向对象版)
import requests from lxml import etree from threading import Thread class Spider(object): def __init ...
- HTML——标签语法
<标签名 属性1="属性值1" 属性2="属性值2"-->内容部分</标签名> <标签名 属性1="属性值1" ...
- 支持表格识别,PaddleOCRSharp最新发布
PaddleOCRSharp 2.3.0已经发布nuget包. 项目开源地址:https://gitee.com/raoyutian/paddle-ocrsharp 2.3.0更新内容: 1.增加表格 ...
- flutter 打包web应用指定上下文
使用flutter build web命令打包的应用不包含上下文,只能部署在根目录.如何指定上下文,部署在子目录下呢? 有两种办法: 1.修改web/index.html文件 修改 <base ...
- FreeRTOS-02-列表和列表项
说明: 本文仅作为学习FreeRTOS的记录文档,作为初学者肯定很多理解不对甚至错误的地方,望网友指正. FreeRTOS是一个RTOS(实时操作系统)系统,支持抢占式.合作式和时间片调度.适用于微处 ...
- jquery的绑定和删除
// 基本语法形式 $().on( 事件类型 , 事件处理函数 ) // 删除事件处理函数 // 必须绑定的是 函数名称 才能删除 绑定的事件处理函数 ...
- CentOS7打开终端快捷键
点击右上角的用户名,选择设置>>键盘>>快捷键,然后点+,名称自己写,命令是"/usr/bin/gnome-terminal",这个是不能改的,再点应用,这 ...