一个游戏文件里提走 3D 模型与贴图:Unity 资源提取工具 AssetRipper 完整实战
【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper
把一个游戏的.assets文件丢进 AssetRipper,输出目录里就是一套能直接打开的 FBX 模型、PNG 贴图和音频文件。它是一款开源的 Unity 资源提取工具,从 Unity 3.5 一路兼容到 6000.5 的几乎所有版本,还能把场景资源转成可重新导入新项目的可编辑格式,资源之间的引用关系也会保留下来。不管是想拆解一款精品游戏的场景搭法、做 mod 改模型贴图,还是把资源在不同 Unity 版本之间迁移,起手动作都一样:把文件放进工具,导出。
这篇文章按"下载 → 构建 → 导入 → 导出"的时间线把流程走一遍,最后集中讲最容易踩的几个坑。
装好之前的环境自检
AssetRipper 用 C# 编写,动手前先对照三件事:
| 检查项 | 要求 |
|---|---|
| 操作系统 | Windows 10/11(64 位)、macOS 10.15 以上或 Ubuntu 18.04 以上 |
| 运行/构建环境 | 源码构建需要 .NET 10 SDK;直接用发布包则无需额外安装 |
| 硬件 | 2GB 内存、5GB 可用磁盘;源码构建时网络要稳,用于拉取依赖 |
先确认 .NET 环境是否可用:
dotnet --version输出 10.x 或更高就可以继续;数字对不上就先装好 SDK 再来,后面的构建命令会直接报错。
拿到可执行文件的两种方式
从源码构建
想要最新功能就自己构建,前提是装好 git 和 .NET 10 SDK:
git clone https://gitcode.com/GitHub_Trending/as/AssetRipper cd AssetRipper dotnet build AssetRipper.slnx -c Release首次构建整个解决方案要几分钟,时长主要取决于网络拉依赖的速度。构建完成后,GUI 可执行文件AssetRipper.GUI.Free会生成在0Bins/AssetRipper.GUI.Free/Release/目录下,直接运行它即可。
下载即用包
Windows 和 macOS 也可以直接取对应平台的发布包,解压就能跑。解压后的目录里除了主程序,还有一组运行时依赖库(dylib 或 dll)和一个 Licenses 文件夹:
⚠️ macOS 上首次运行若提示 "Permission denied",先给可执行文件加上执行权限(终端里跑chmod +x),再被系统安全弹窗拦住时,到"系统设置 → 安全性与隐私"里点"仍要允许"即可,细节可参考仓库内的 docs/articles/RunningOnMac.md。
第一次导出:从 .assets 到 FBX
工具是图形界面,打开后主流程就两步:导入文件、选好导出格式,然后开始。
导入文件并盯住日志
把游戏的.assets文件拖进窗口——也可以直接拖 AssetBundle 或整个 StreamingAssets 目录。这里有个最容易漏的点:如果你还想导出 C# 脚本,就得把对应的程序集(.dll)文件同时放进去,脚本本身并不存在.assets里。导入后看一眼日志,出现使用 "Mono" 脚本后端的提示,说明脚本具备导出条件;看到 "Unknown" 就要回到前面这一步补程序集了。
导出前调好三个关键配置项
导出格式集中在欢迎页的 Configuration Options 里,选项不少,最常动的是这三个:
| 配置项 | 默认值 | 作用 |
|---|---|---|
| Mesh Export Format | Native | 网格输出格式。Native 在编辑器里最稳,之后还能再转其他格式 |
| Image Export Format | Png | 所有导出贴图的格式,PNG 在画质与体积之间比较均衡 |
| Script Content Level | Level 2 | 脚本导出详细度:Mono 游戏导出完整方法,IL2CPP 游戏导出占位方法 |
Audio Export Format、Sprite Export Format、C# Language Version 这些配套项首次使用保持默认即可。
配置好后用 Export 菜单指定目标目录并启动。结束进输出目录看结构:模型、贴图、音频各归其位。抽查几个文件能正常打开、引用没断,第一次导出就算跑通了。
导出出问题:常见报错的处理办法
| 现象 | 常见原因 | 处理动作 |
|---|---|---|
| 日志出现 "Unknown scripting backend",导出结果里没有 C# 脚本 | 程序集没有和资源文件一起导入;或游戏是 IL2CPP,手上根本没有原始程序集 | 把程序集所在文件夹和资源文件拖进同一窗口再试;IL2CPP 游戏先用 Cpp2IL 生成程序集;也可以换一档 Script Content Level |
| 贴图颜色失真、尺寸不对或打不开 | 原文件用了特殊压缩格式,或导出格式不匹配 | 换 Image Export Format(比如切到 PNG)重新导出;确认文件本身损坏时,用 GIMP 等图像工具校验 |
| 大资源包处理很慢、界面卡住 | 所有资源类型同时处理,内存吃紧 | 用过滤功能只导需要的类型;按批次处理;关掉其他程序腾内存 |
| Linux 上抛 "Too many open files" 后中断 | 系统文件句柄数上限太低 | 在同一终端执行ulimit -n 1048576后重跑工具 |
更多常见问题的完整清单在仓库的 docs/articles/CommonIssues.md 里。下一步建议:把导出的 FBX 和 PNG 拖进一个空白 Unity 项目,能正常显示,这条"从 .assets 到可编辑资产"的路就完整走完了。
【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考