Re: SB3Utility (GUI + Script)
While I first thought I could go a fast path it wouldn't have worked. So it still takes some time, but several things are ready. E.g. you drop cf_base.unity3d, cf_m_base.unity3d and cf_t_body_00.unity3d into Sb3UGS, and you can immediately see the naked body cf_O_body_00 fully textured in the renderer. Object Tree, lists, cross references and nearly all functionality in the editors has been reworked.
But there are open questions. How will you find out which file has which CAB-String? Currently you will have to search with a tool like TC binarily through the whole game in all *.unity3d files. And that is inconvenient. May be I can find some global inventory file for the purpose.
Or you may build that inventory that keeps track of all the references.
With the switch to Unity, and Illusion learning how to use it and properly package their bundles (as mentioned [POST="2495219"]here[/POST]), there is going to be more and more cross-dependencies between assets bundles in the future.
As such, I think it would be great to switch from a "per-file" approach to a "per-game" approach. Instead of loading files one by one with Sb3UGS, you directly load the whole game directory right of the bat. Or rather "pre-load" it, in order not to eat too much memory (I don't know how you manage memory... do you load all the opened bundles content in memory or just their headers ?)
Of course, it would require some big changes. It would especially require to build a repertory of all the assets with their dependencies the first time you open a game, and keep a cache of it to speed up later access (and offer the option to rebuild it).
It would allow require to abstract the asset hierarchy, since the end user doesn't really need to browse assets on a per-file basis anymore. The "Quick Access" sub-window would then rather be used to filter the many results that are displayed in the "Files" sub-window (since we'll have all the assets of the game in it).
Users will still want to know in which bundle the files they have modified will be stored, as well as the files they created, so there's still a need to keep a window that shows files as they are on the disk, too. The difficulty is to abstract enough to easily find the assets to modify without having to know exactly in which bundle they are, but to let them know exactly where they are once they found and modified them so that they can easily ship the modifications to the modding community.
What are your thoughts about this kind of feature ? Do you plan something similar ?
I think Sb3UGS need some elegant way to handle assets with cross-referenced dependencies in various bundles, and I think maintaining a repertory of all of those could already be a good start.
Or, much simpler : why not automatically opening and loading bundles that are referenced in the asset you open ? You open cf_thingy_01, load a mesh from it, and Sb3UGS automatically open mat_thingy_01 to parse and load the textures that are used the mesh.
Ho... and do you have any way to know which animation apply to which skeletal mesh ? If so, they could be automatically loaded, to.