LegendaryExplorer
LegendaryExplorer copied to clipboard
Meshplorer - can't save ME1 packages with externally referenced textures
Describe the bug I tried to replace Mass Effect 1 meshes with Meshplorer WPF but once it's done I cannot save the package. The following message appears: "Cannot save ME1 packages with externally referenced textures. Please make an issue on github .... "
To avoid the issue, I tried to replace a mesh with its materials and textures located in the same package, with no success.
To Reproduce
-
Launch ME3Explorer > Meshplorer WPF
-
In Meshplorer WPF : File > Open > ME1Dir\BioGame\CookedPC\Packages\GameObjects\Characters\Humanoids\HumanFemale\ BIOG_HMF_HIR_PRO.upk
-
Select HMF_HIR_PROCustom_Sexy_MDL
-
Click on the Unreal Engine button under the mesh preview, and select a folder to export it as a .psk file.
-
Open UDK
-
In the package window, Right click and select "Import" to import the previously saved .psk file.
-
Name the package with the exactly same mesh name : "HMF_HIR_PROCustom_Sexy_MDL"
-
Right click on the package and click on "Save" to save it as a .upk file.
-
Go back to Meshplorer, select HMF_HIR_PROCustom_Sexy_MDL, Right click on it and Click on "Replace mesh from UDK".
-
Import the .upk file previously saved with UDK and select "HMF_HIR_PROCustom_Sexy_MDL" skeletal mesh.
-
When the replacement is Done, click on File > Save to save the edited ME1 package. The following error message appears : "Cannot save ME1 packages with externally referenced textures"
Expected behavior Being able to save a ME1 package with Meshplorer WPF when a mesh is replaced, even if it uses external referenced textures.
Screenshots and files used to replicate this This is a pdf describing the behaviour to reproduce with screenshots : MeshplorerME1SaveIssue.pdf
Version information: ME3Explorer 4.1.1 - 11/12/2019 & ME3Explorer 4.2 NIGHTLY - 2/24/2020 UDK version 12791 used to save the mesh as a .upk file.
Other information I exported the mesh with meshplorer and didn't edit it. I used a vanilla Mass Effect 1 game I tried to edit several hair and face meshes (even using FBX files instead of .psk or other UDK saving process) and had the same issue. If I can do other tests to help, feel free to ask.
Due to the way textures are linked in Mass Effect (1), if there are textures that are referenced externally by other files. When the file is saved, the offsets will change, which will break any incoming texture refs (we have precalculated which files have these). In ME1 there is code that will crash the game immediately on wrong pointers or empty mips, so we had to disable saving, because if a user distributes files with modified pointers like this, the files game crashes when that external file tries to load the modified file's texture. It's like an embedded TFC, but in tons of files.
Thanks for the quick reply :-) Does it mean I cannot save any ME1 file at all ? I plan to directly edit the binary values to change mesh vertex coordinates in ME1 upk files (this method works like a charm with ME2), so I will resave them with Visual Studio. Can I do this ? Or will It breake the pointers ?
Hi there ! I am really interested in a method which allows to bypass or fix this problem . how to edit binaryvalues to change mesh vertex coordinates in me1 upk files ? did it works ? thx you
Mesh vertex coordinates don't really seem applicable to this issue. You would use a 3D editor to do 3D editing, which can be done in things like blender or 3dsmax. You still wouldn't be able to save them as we don't allow saving files even if they're the same size, as the file is saved decompressed. (Our compression is not as efficient as bioware's/epic's likely proprietary commercial version of Zlib)
As for texture relinking we have it planned but it's a ways out. It's complicated as ME1 is very linked together so changing one thing requires changing like everything and inventing a solution to not do that takes a fair amount of time (especially since no tools support this kind of setup).
Thank you ! I actually found a solution using 3dsmax and UDK with which I can replace the meshes, it's a bit long but it allows to fix animation bugs with new meshes.
Our development priorities have changed, unfortunately we will not be dedicating much resources to ME1 these days, so I am closing this.