ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

AssetRipper Unity 资源提取教程:从下载到第一次导出的完整流程

AssetRipper Unity 资源提取教程:从下载到第一次导出的完整流程 AssetRipper Unity 资源提取教程从下载到第一次导出的完整流程【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipperAssetRipper 是一款免费开源的 Unity 资源提取与分析工具用于从 Unity 游戏的序列化文件.assets、.sharedAssets和资源包.bundle中提取模型、纹理、音频等资产并转换为 Unity 引擎原生格式。如果你手头有一个 Unity 游戏文件想把里面的模型、贴图取出来重新使用本文会带你从下载到第一次成功导出全程约 10 分钟。工具定位AssetRipper 能做什么、不能做什么能做的读取 Unity 序列化文件和 AssetBundle解析出其中的资产将资产转换为 Unity 原生格式导出成可以直接用 Unity Editor 打开的工程分析文件中的资产依赖关系、查找损坏的引用、定位意外混入构建的资产支持 Unity3.5.0到6000.5.X的版本不同版本的支持质量会有差异不能做的不能读取加密文件。如果游戏对资产做了加密封装AssetRipper 无法直接处理需要先解除不能自动提取 AssetBundle 中不存在的 C# 脚本。Mono 脚本存在于.dll程序集里必须把对应程序集一并导入见后文不能保证反编译脚本零编译错误尤其 IL2Cpp 游戏的脚本恢复属于实验性功能导出的工程建议用与游戏版本相同或更新的 Unity Editor 打开第一次提取从下载到导出结果第 1 步下载到官方下载页获取稳定版 zip 包按平台选择平台包名Windows x64AssetRipper_win_x64.zipWindows Arm64AssetRipper_win_arm64.zipMac x64 / Arm64M 系列芯片为 Arm64AssetRipper_mac_x64.zip/AssetRipper_mac_arm64.zipLinux x64 / Arm64AssetRipper_linux_x64.zip/AssetRipper_linux_arm64.zip把 zip 解压到任意目录即可无需安装。Windows 上直接双击可执行文件macOS 和 Linux 见下文的启动说明。第 2 步启动macOS由于可执行文件没有签名需要手动授予权限官方文档中有完整的图文指引参见 macOS 运行指南。简要步骤在解压出的文件夹中打开终端Finder 中选择文件夹后通过 Finder 服务 新建位于文件夹位置的终端首次运行若提示Permission denied执行chmod x AssetRipper.GUI.Free ./AssetRipper.GUI.Free系统弹出安全提示时点取消到 系统设置 隐私与安全性 中点击仍要允许再运行一次命令弹出提示时点打开GUI 窗口打开后以后可以直接双击AssetRipper.GUI.Free启动Linux如果启动失败提示缺少库安装libwebkit2gtk-4.1-devUbuntu/Debian或webkit2gtk4.1-develFedora。Windows双击可执行文件即可无额外依赖。第 3 步第一次成功提取把要提取的.assets、.sharedAssets或.bundle文件直接拖入 AssetRipper 窗口。多个文件可以放入同一文件夹把文件夹整个拖入进行批量导入等待左上角日志滚动完成日志会显示导入文件的 Unity 版本和脚本后端Mono、IL2Cpp或Unknown左侧面板会出现 Assets、Bundles、Scenes、Collections 等选项卡点击即可浏览解析出的资产也可以用 Search 页按名称搜索在 Settings 页确认导出格式下文有说明然后执行导出选择输出目录得到的是一个标准的 Unity 工程用 Unity Editor 打开即可按任务拆解导出纹理、模型、音频与脚本导出纹理与 Sprite设置项Image Export Format图像格式和Sprite Export ModeSprite 导出模式Image Export Format默认Png需要保留原始扩展名时Prefer Original Texture Extension默认为trueSprite Export Mode推荐Yaml这是唯一能保证 Sprite 元数据完整还原的模式Native和Texture2D两种模式因输出变化较大官方注释明确不建议使用结果纹理以 PNG 图片导出Sprite 以 Unity 可识别的资产形式导出导出模型与网格网格默认以 Unity 原生格式.fbx风格的 Mesh 资产导出可直接被 Unity 识别场景中静态合并的网格不会自动拆分拆分属于 Premium 功能见进阶能力Terrain 等场景几何数据也有对应的导出模式开关Terrain Export Mode导出音频设置项Audio Export Format官方推荐值为Ogg如需未压缩的 WAV 用于二次编辑可切换对应格式恢复脚本这是最容易踩坑的一项关键认知是AssetBundle 里不存 C# 脚本脚本在游戏的.dll程序集里。Mono 后端游戏把Managed文件夹含Assembly-CSharp.dll等与资源文件一起拖入 AssetRipper。成功时日志出现Files use the Mono scripting backend.失败时是UnknownIL2Cpp 游戏需要先借助 Cpp2IL 等工具生成程序集再导入Mod 常用的 Il2CppInterop 生成的程序集不兼容导出模式选择见下文配置详解默认Hybrid核心程序集反编译为.cs其余保存为.dll配置详解导出选项怎么选导出选项集中在设置页对应源码中的 配置模块。主要选项与建议值选项作用建议值Image Export Format纹理导出格式Png默认Audio Export Format音频导出格式Ogg官方推荐Sprite Export ModeSprite 导出方式Yaml唯一保证元数据完整还原Script Export Mode脚本导出方式见下表Script Language Version反编译脚本的 C# 语言版本AutoSafe默认Shader Export Mode着色器导出方式Dummy保证能在编辑器编译或Yaml可在编辑器查看Text Export Mode文本资产导出Parse默认Export Unreadable Assets是否导出无法读取的资产false默认Prefer Original Texture Extension优先使用原始纹理扩展名true默认Script Export Mode的四个取值取值行为适用场景Decompiled全部程序集用 ILSpy 反编译为.cs想要全部可读源码耗时较长且编译错误较多官方推荐HybridAssembly-CSharp等核心程序集反编译其余存为.dll日常使用的默认值DllExportWithRenaming程序集保留为.dll但重命名为兼容名需要程序集可被 Unity 加载DllExportWithoutRenaming原样导出.dll实验性可能完全不可用进阶能力Premium 与实验性功能AssetRipper 有免费版和 Premium 版官方订阅制$10/月通过其列出的 4 个赞助平台任一订阅生效。以下功能与成熟度均来自官方文档 Premium 功能说明静态网格分离还原编译时被 Unity 静态批处理合并的网格。默认开启。若原网格存在于游戏文件中会直接复用否则生成新网格Prefab 轮廓识别游戏编译后场景中的 Prefab 全部被实例化内联此功能分析 GameObject 层级找出可还原为 Prefab 的重复结构。默认关闭着色器反编译实验性。目标是支持所有变体并保留完整语义但目前未打磨完成处理部分着色器时会报错Unity 中也可能有编译错误。平台限制Vulkan 着色器任意平台可反编译DirectX 着色器只能在 Windows 上反编译传统 Il2Cpp 分析实验性。在设置中选择 Script Content Level 3 启用。官方给出的数据是 x86 游戏约 10%–20% 的方法能恢复成功其他平台更低资产去重实验性。逆转 Unity 在多 Bundle 间复制共享资产的行为目前仅支持 Mono 脚本、着色器、Compute Shader、音频、文本、网格和无 Sprite 的纹理。默认关闭资产路径覆盖 / 自定义包导出实验性。通过文件菜单 View Configuration Files上传 JSON 配置可修改单个资产的导出路径或导出项目包引用。需要自己为游戏挖掘包数据排错指南常见问题汇总自官方文档 CommonIssues现象导出的工程里没有.cs脚本日志显示Files use the Unknown scripting backend.原因只拖入了资源文件没有把含 C# 程序集的Managed文件夹一起导入AssetRipper 无法确定脚本后端解法把程序集所在文件夹和资源文件同时拖入成功后日志应显示Mono scripting backend。IL2Cpp 游戏先用 Cpp2IL 生成程序集现象日志出现Could not add pe assembly to name dictionary!原因Managed目录或其子文件夹中存在两个同名程序集同名指反编译器中显示的 assembly 名不是文件名解法找出并移除重复的程序集现象大量读取错误MonoBehaviour 字段反序列化异常原因使用了被修改过的程序集如 publicize 过的、Il2CppInterop 生成的字段布局和属性与原版不一致解法换回游戏原始程序集现象Linux 上运行时报System.IO.IOException (00000018): Too many open files原因系统的文件句柄数上限设置过低解法在运行 AssetRipper 的终端中先执行ulimit -n 1048576如需永久生效修改/etc/security/limits.conf现象macOS 首次运行提示无法打开因为开发者无法验证原因可执行文件未签名Gatekeeper 拦截解法在系统设置 隐私与安全性 中点击仍要允许或按 macOS 运行指南 操作现象导出的工程在 Unity 中打开报脚本引用错误原因Unity Editor 版本比游戏使用的版本旧解法用与游戏相同或更新的 Unity Editor 版本打开版本越接近兼容性越好写在最后AssetRipper 适合需要从 Unity 游戏中提取并复用资产的美术、独立开发者以及做 Mod 和逆向分析的用户。上手门槛主要在两处把脚本程序集和资源一起导入以及按游戏类型选择脚本与着色器的导出模式。延伸阅读入口下载与版本说明稳定版、预发布版、Nightly 构建运行要求源码构建需要 .NET 10 SDK打开导出工程需要对应版本的 Unity Editor源码总览各导出模块如Source/AssetRipper.Export.Modules.Models/、Source/AssetRipper.Export.Modules.Textures/按资产类型组织社区官方 Discord 服务器在 README 中给出入口链接【免费下载链接】AssetRipperGUI application to analyze game files项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表