Home Artists Posts Import Register
Join the new SimpleX Chat Group!

Content

Static Mesh Separation

Objects marked as static in a scene get merged when the game is compiled. This is an optimization Unity uses to reduce draw calls. Unfortunately, it also makes game recovery more difficult. This feature reverses that process to the best of its ability.

  • If a mesh is used statically multiple times in the game, even across different scenes, AssetRipper intelligently identifies these duplicates and generates a single mesh for all the instances.
  • If the original mesh exists in the game files, it's used instead of generating a new mesh.
  • Mesh names are lost during static batching, so the GameObject name is used instead. Some sensible name cleaning is applied.

In earlier AssetRipper versions, when the feature was still experimental, it had a setting for enabling it. Many improvements have been made, so it now stable and automatically enabled.

Asset Deduplication

When building multiple asset bundles, it's very common for Unity to duplicate assets shared between bundles. This allows each bundle to stay self-contained. Asset deduplication reverses that process.

Some assets are easier to deduplicate than others. The first iteration of the feature is limited to:

  • Mono Scripts
  • Shaders
  • Compute Shaders
  • Audio Clips
  • Text Assets
  • Meshes
  • Textures without sprites

There is no user action required to enable this feature.

User Defined Package Export

One of the most frustrating things for users is package export. Previously, exported projects referenced only the default set of Unity core modules. Whenever a user would reference a package that the game had used, the new package would conflict with assemblies and scripts within the exported project. Deleting the conflicting exported files would break any asset references to those files.

There are third-party tools available to help fix broken script references, but they mostly rely on guessing the scripts from the MonoBehaviour fields. In addition, they do nothing to fix broken references for other asset types. That is the purpose of this feature: export asset and package references, so that the user doesn't have to fix broken references later.

Unfortunately, it is not feasible for me to datamine all possible packages, not even if I restrict myself to the official offerings from Unity. As such, I leave it to users and communities to mine the packages specific to their game. However, I have created some resources to help programmers do the required datamining. https://github.com/AssetRipper/MarrowMiningDemo

This feature can be enabled by going to the Configuration Files page, which can be accessed with "View/Configuration Files" in the file menu. To enable the feature, the user must upload package data json files appropriate for the game being ripped. Example json files are available in the Marrow Mining Demo I linked above.

Comments

No comments found for this post.