前言

这篇文章仅记录我作为初学者使用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预览器,方便预览资产中的模型文件,音频文件和图片文件(直接在相应资产上双击即可)

资产导出

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文件

使用FModel提取游戏资产的更多相关文章

  1. (转)unity3D 如何提取游戏资源 (反编译)+代码反编译

    原帖:http://bbs.9ria.com/thread-401140-1-1.html 首先感谢 雨松MOMO 的一篇帖子 教我们怎么提取 .ipa 中的游戏资源.教我们初步的破解unity3d资 ...

  2. Unity 提取游戏资源之ktx转换

    http://blog.csdn.net/akof1314/article/details/38022263 从雨松的博文<Unity3D研究院之mac上从.ipa中提取unity3D游戏资源( ...

  3. 游戏引擎架构 (Jason Gregory 著)

    第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...

  4. Unity 3d游戏逆向及.NET Reflector工具使用介绍

    移动平台游戏框架主要有unity 3d和cocos 2d.我们首先得识别游戏使用的框架.识别Unity游戏Android平台的apk包可以直接解压,看是否有./assets/bin/Data/Mana ...

  5. JavaScript游戏中的面向对象的设计

    简介: 从程序角度考虑,许多 JavaScript 都基于循环和大量的 if/else 语句.在本文中,我们可了解一种更聪明的做法 — 在 JavaScript 游戏中使用面向对象来设计.本文将概述原 ...

  6. 【分享】School Rumble校园迷糊大王PSP姐姐事件+PS2游戏第一,二学期【带VNR翻译教程】

    7/22/2014 TUE   为「スクールランブル 姉さん事件です」加入了BANDAI PSP的引擎. 校园迷糊大王PSP姐姐事件 下载地址1:http://www.bego.cc/file/689 ...

  7. [转] java开源游戏

    收藏一下   triplea  Triplea是一个开放源码的boardgame.它允许玩家选择各种各样的战略版图游戏(如:轴心国或同盟军).TripleA引擎支持联网对战,支持声音,支持使用XML文 ...

  8. NGK公链生态所如何保障用户的数字资产隐私安全?

    距离NGK生态所正式上线已经没剩下几天时间了,NGK全网算力总量正在持续猛增,NGK日活账户也在大幅度增多.可以看出,币圈的生态建设者们是十分看好NGK生态所的.那么,有这么多的生态建设者涌入NGK生 ...

  9. 剖析虚幻渲染体系(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. ...

  10. Phaser-游戏之旅

    虽然这个小游戏逻辑不是很复杂,但为了熟悉Phaser这个游戏框架的使用方法所以就选择了它. 另外第一次在项目中尝试使用ES6,之后利用babel进行转换. 自动化构建:gulp(其他文件复制和解析) ...

随机推荐

  1. AIRIOT物联网低代码平台如何配置MQTT驱动?

    MQTT驱动配置简介 MQTT全称为消息队列遥测传输(英语:Message Queuing Telemetry Transport),是ISO 标准(ISO/IEC PRF 20922)下基于发布 ( ...

  2. [第一届长城杯]-ez-python

    ----这道题似曾相识,和某刃的题目不能说不同,简直就一摸一样 ----考点:pickle序列化问题,命令执行 ----正常访问网站,源代码F12给出?pic=的提示,这种大致一看就是可以任意文件访问 ...

  3. Istio(四):创建部署Gateway并使用网关暴露服务

    目录 一.模块概览 二.系统环境 三.Gateway网关 3.1 使用 Gateway 四.实战:使用Gateway发布服务 4.1 创建部署并使用网关暴露 4.2 清理 一.模块概览 在Kubern ...

  4. Ceph存储池管理

    目录 Ceph存储池 1. Ceph的存储流程 1. 数据写入 2. 数据读取 2. 资源池的配置 2.1 资源池创建 pgp是什么 (Placement Group for Placement pu ...

  5. C# WPF 自定义Main方法总结

    在使用自定义的Main函数启动应用时,应该需要做这几步: 1.去掉App.xaml的Application的starup属性. 2.右键App.xaml,属性 把生成操作改为Page. 3.如果有引入 ...

  6. 显示锁之ReentrantLock

    ReentrantLock显示锁 在Java 1.5之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile两种.Java1.5增加了一种新的机制:ReentrantLo ...

  7. DRF之通过GenericAPIView的视图子类实现数据的增删改查接口

    1.安装DRF pip install djangorestframework 2.将DRF注册到APP中 INSTALLED_APPS = [ 'django.contrib.admin', 'dj ...

  8. 部署Zabbix

    https://blog.csdn.net/qq_57414752/article/details/125819822

  9. Android 13 - Media框架(7)- NuPlayer::Source

    关注公众号免费阅读全文,进入音视频开发技术分享群! Source 在播放器中起着拉流(Streaming)和解复用(demux)的作用,Source 设计的好坏直接影响到播放器的基础功能,我们这一节将 ...

  10. 开源Blazor UI组件库精选:让你的Blazor项目焕然一新!

    今天给大家推荐一些开源.美观的Blazor UI组件库,这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率,还能够为他们的项目带来更加丰富的用户体验. 注:排名不分先后,都是十分优秀的开源框架和 ...