X-Hax / sa_tools

Sonic Adventure Toolset
http://info.sonicretro.org/SA_Tools
102 stars 24 forks source link

SADXLVL2 Exporter Assimp Problem #144

Closed spacepig22 closed 3 years ago

spacepig22 commented 3 years ago

Hello. I'm having an issue with exporting level geometry from SADXLVL2. I noticed another thread with a similar issue, but it was from 2019, and this is a little different. When I export, it exports all the textures, but then when it hits 100% an error appears reading:

Unhandled Exception AssimpException Error loading unmanaged library from path: assimp.dll The specified module could not be found (Exception from HRESULT: 0x8007007E)

The folder I exported to will have the textures of the level, but no obj, or fbx, or dae (I tried all 3). I'm wondering if it's something I'm missing on my end.

Program: SADXLVL2 Build Date: 01/14/2021 16:39:08 OS Version: Microsoft Windows NT 10.0.18363.0 Log: Assimp.AssimpException: Error loading unmanaged library from path: assimp.dll

The specified module could not be found. (Exception from HRESULT: 0x8007007E) ---> System.IO.FileNotFoundException: The specified module could not be found. (Exception from HRESULT: 0x8007007E) --- End of inner exception stack trace --- at Assimp.Unmanaged.UnmanagedLibrary.UnmanagedWindowsLibraryImplementation.NativeLoadLibrary(String path) at Assimp.Unmanaged.UnmanagedLibrary.UnmanagedLibraryImplementation.LoadLibrary(String path) at Assimp.Unmanaged.UnmanagedLibrary.LoadLibrary(String libPath) at Assimp.Unmanaged.UnmanagedLibrary.LoadLibrary() at Assimp.Unmanaged.UnmanagedLibrary.LoadIfNotLoaded() at Assimp.Unmanaged.AssimpLibrary.GetExportFormatDescriptions() at Assimp.AssimpContext.TestIfExportIdIsValid(String exportFormatId) at Assimp.AssimpContext.ExportFile(Scene scene, String fileName, String exportFormatId, PostProcessSteps preProcessing) at SonicRetro.SAModel.SADXLVL2.MainForm.ExportLevelObj(String fileName, Boolean selectedOnly) in D:\Programs\sa_tools\SADXLVL2\MainForm.cs:line 3154 at SonicRetro.SAModel.SADXLVL2.MainForm.levelGeoToolStripMenuItem_Click(Object sender, EventArgs e) in D:\Programs\sa_tools\SADXLVL2\MainForm.cs:line 3061 at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Also, I tried doing it from SALVL instead, and was able to export the level geometry, but the obj had no materials when I imported it into Maya.

PiKeyAr commented 3 years ago

This should no longer be an issue with the latest build.

While it should work now, the current recommended way to export levels and models is to save them in SA Tools' formats and import them in Blender with Justin's addon. From what I heard (I wasn't there when it was implemented), Assimp support isn't complete and there are cases when it doesn't work reliably.

spacepig22 commented 3 years ago

The Blender method worked perfectly. Thank you for the help!