kythyria / payday2-model-tool

Diesel Model importer/exporter, with bones/rigging coming soon!
https://ci.appveyor.com/project/kythyria/payday2-model-tool/build/artifacts
GNU General Public License v3.0
19 stars 7 forks source link

Exception when trying to export humanoid to DAE #19

Open thegordonbeeman opened 3 years ago

thegordonbeeman commented 3 years ago

The model exported was the units\payday2\characters\civ_male_meth_cook_1\civ_male_meth_cook_1.model OBJ export works fine but DAE throws an exception (probably because it's still beta)

** Exception text ** System.Collections.Generic.KeyNotFoundException: Given key wasn't present in the Dictionnary à System.Collections.Generic.Dictionary2.get_Item(TKey key) à PD2ModelParser.ColladaExporter.ExportFile(FullModelData in , String path) dans C:\projects\payday2-model-tool\PD2ModelParser\Exporters\ColladaExporter.cs:ligne 206 à PD2ModelParser.FileTypeInfo.DaeType.Export(FullModelData in , String path) dans C:\projects\payday2-model-tool\PD2ModelParser\Filetype.cs:ligne 59 à PD2ModelParser.Modelscript.Export.Execute(ScriptState state) in C:\projects\payday2-model-tool\PD2ModelParser\Modelscript\ScriptCommands.cs:ligne 244 à PD2ModelParser.Modelscript.ScriptState.ExecuteItems(IEnumerable1 items) in C:\projects\payday2-model-tool\PD2ModelParser\Modelscript\Script.cs:ligne 260 à PD2ModelParser.Modelscript.Script.ExecuteItems(IEnumerable1 items, String workDir, FullModelData initialModel) in C:\projects\payday2-model-tool\PD2ModelParser\Modelscript\Script.cs:ligne 55 à PD2ModelParser.Modelscript.Script.ExecuteItems(IEnumerable1 items, String workDir) in C:\projects\payday2-model-tool\PD2ModelParser\Modelscript\Script.cs:ligne 61 à PD2ModelParser.UI.ExportPanel.exportBttn_Click(Object sender, EventArgs e) in C:\projects\payday2-model-tool\PD2ModelParser\UI\ExportPanel.cs:ligne 64 à System.Windows.Forms.Control.OnClick(EventArgs e) à System.Windows.Forms.Button.OnClick(EventArgs e) à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) à System.Windows.Forms.Control.WndProc(Message& m) à System.Windows.Forms.ButtonBase.WndProc(Message& m) à System.Windows.Forms.Button.WndProc(Message& m) à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

** Loaded assemblies ** mscorlib Assembly version : 4.0.0.0 Version Win32 : 4.8.4300.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

PD2ModelParser Assembly version : 2.13.0.200 Version Win32 : 2.13.0.200 CodeBase : file:///D:/Program%20Files%20(x86)/Steam/steamapps/common/PAYDAY%202/epictrolling/pd2modelparser-v2.13.0-Debug/Debug/PD2ModelParser.exe

System.Windows.Forms Assembly version : 4.0.0.0 Version Win32 : 4.8.4270.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System Assembly version : 4.0.0.0 Version Win32 : 4.8.4300.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Drawing Assembly version : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

Mono.Options Assembly version : 5.0.0.0 Version Win32 : 5.3.0.0 CodeBase : file:///D:/Program%20Files%20(x86)/Steam/steamapps/common/PAYDAY%202/epictrolling/pd2modelparser-v2.13.0-Debug/Debug/Mono.Options.DLL

System.Configuration Assembly version : 4.0.0.0 Version Win32 : 4.8.4190.0 built by: NET48REL1LAST_B CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Core Assembly version : 4.0.0.0 Version Win32 : 4.8.4320.0 built by: NET48REL1LAST_C CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

System.Xml Assembly version : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

System.Windows.Forms.resources Assembly version : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll

System.Numerics Assembly version : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll

Accessibility Version de l'assembly : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll

System.Design Assembly version : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Design/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Design.dll

SharpGLTF.Core Assembly version : 1.0.0.0 Version Win32 : 1.0.0.0 CodeBase : file:///D:/Program%20Files%20(x86)/Steam/steamapps/common/PAYDAY%202/epictrolling/pd2modelparser-v2.13.0-Debug/Debug/SharpGLTF.Core.DLL

netstandard Assembly version : 2.0.0.0 Version Win32 : 4.8.4084.0 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/netstandard/v4.0_2.0.0.0__cc7b13ffcd2ddd51/netstandard.dll

System.Memory Assembly version : 4.0.1.1 Version Win32 : 4.6.28619.01 CodeBase : file:///D:/Program%20Files%20(x86)/Steam/steamapps/common/PAYDAY%202/epictrolling/pd2modelparser-v2.13.0-Debug/Debug/System.Memory.DLL

System.Numerics.Vectors Assembly version : 4.1.4.0 Version Win32 : 4.6.26515.06 CodeBase : file:///D:/Program%20Files%20(x86)/Steam/steamapps/common/PAYDAY%202/epictrolling/pd2modelparser-v2.13.0-Debug/Debug/System.Numerics.Vectors.DLL

nunit.framework Assembly version : 3.10.1.0 Version Win32 : 3.10.1.0 CodeBase : file:///D:/Program%20Files%20(x86)/Steam/steamapps/common/PAYDAY%202/epictrolling/pd2modelparser-v2.13.0-Debug/Debug/nunit.framework.DLL

mscorlib.resources Assembly version : 4.0.0.0 Version Win32 : 4.8.4084.0 built by: NET48REL1 CodeBase : file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_fr_b77a5c561934e089/mscorlib.resources.dll

Sprixitite commented 1 year ago

I'm not as familiar with this repo as those who built it but at a glance this seems to be something to do with either the if on line 204 being wrong or the index at line 206 being wrong. I'm not able to test right now but I suspect you would get more information if line 204 were changed to if (bones.ContainsKey(obj.Parent)) or line 206 to parent = bones[obj].

If I were to just throw something at the wall to see if it sticks I would say this is a case of trying to index the parent of a node which doesn't have one? Although as I said I've not familiarised myself with this codebase (or the diesel.model format) too much.

I'm aware this issue is 1.5 years old but I hope to fix this regardless, I will reply with my progress when and if I make any. This tool is what makes a lot of this communities mods possible and I hope to try improve it as much as I can :]