[TOOL] DAEnerys - DAE Ship Editor

(D Kesserich) #422

If you could drop one of your .blends on dropbox or google drive or something I might be able to take a look over the weekend to try to figure out what’s going on.

(Christoph Timmermann) #423

It’s a Taiidan Interceptor with a close wings animation using bezier curves.

(D Kesserich) #424

The problem is your start and end times are wrong in the ANIM[Wings_Close] node. In the original Taiidan Interceptor, the close wings animation goes from frame 0 to 33 at 30fps, which is 1.1 seconds. In yours you’re going from frame 1 to 26, which at 30fps is 0.83 seconds, at 25fps is 1 second, and at 24 fps (which is what you have set in the blend) is 1.041 seconds. Hodor doesn’t seem to like 24 fps at all, so I’d recommend setting your target framerate to 30.

Also you’ve left the anim define empties for the other three animations in and they’re referencing keyframes that don’t exist, which hodor also probably doesn’t like.

(Christoph Timmermann) #425

Thanks for the advice. But unfortunately this hasn’t generated a MAD file…
I changed the FPS in the Render tab to 30, changed the end time in the Close ANIM node to 1 second, edited the animation to run in frames 1-30 and removed the other three ANIM nodes.


EDIT: And what’s up with bezier curves not exporting? :confused:
EDIT2: Also tried STF and ENF instead of ST/EN.

(D Kesserich) #426

Okay, so turns out there was one small bug in the exporter that was causing the loop that iterated over the frames to terminate one frame early. Fixed that. (Download updated expoerter here)

The other thing is that since your start frame is 1 and not 0, your start time was incorrect. Start time is calculated by Starting Frame Number / Target Frame Rate. 1/30 = ~0.03.

Since the exporter iterates frame by frame over the all the frames in an action set, Bezier curves for animations are not preserved. As far as I can tell there doesn’t seem to be a way to get a list of the keyframes within an action set, just the start and end frames.

(Christoph Timmermann) #427

I fixed that, no success. The Gearbox examples have set their start to 0 anyways…

Can’t you access the two control points of the keyframes?
You could look at the standard DAE exporter for reference, it exports bezier curves.

EDIT: Uhm… turns out that loading and saving the DAE in DAEnerys fixes it and lets HODOR generate a MAD file. :smiley:

(Siber) #428

I wonder if that’ll help all our rodoh-generated DAEs that don’t animate right…

(Christoph Timmermann) #429

The new release is here!
Download: DAEnerys_b6350.zip

Added features

  • Animation parsing and exporting.
  • Animations can be previewed (linear and bezier supported).
  • Framerate importing and exporting.
  • Added DAE import/export functionality for single meshes. (you will be warned if a mesh has a second UV channel and you try to export it to OBJ)
  • Changed target architecture to x64 for more RAM.
  • Collision meshes can now be added/removed, reparented and imported/exported to DAE/OBJ.


  • Many parameters are now optional, DAEnerys will use default values if they don’t exist (like HODOR).
  • A HOLD_DOCK is now only exported when there are dockpaths.
  • Added InvariantCulture to some float.ToString()-calls.
  • Fixed some GUI issues. (Hopefully also the DPI-scaling on the updater window)
  • Increased maximum number of materials on a mesh to 16.
  • Added a warning if DevIL somehow failed to load the texture right.
  • Fixed some exporter oversights.
  • Collision meshes and engine shapes now get the default material assigned (white).

I think nobody of the HWRM modders out there is still using 32-bit, but it would be possible to release a x86 build too.

Please especially test the animation stuff and tell me if something is wrong. :slight_smile:

(D Kesserich) #430

Blender’s standard DAE exporter is written in C++, so I can’t reference it for a python based exporter. I know the data exists, I just can’t find a way to get it from the python API.

Due to how the exporter works on animations, it meant they also had keyframes on 1 and 33 in the dae after export, so the anim nodes weren’t referencing keyframes that didn’t exist.

Here’s your .blend file with the anim node tags fixed, I get a MAD when I run it through HODOR.

(Siber) #431

So far, HWAT_UNH_FFAssault and HWAT_UNH_FFIon are still giving me errors, such as

[code]See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
Assimp.AssimpException: Error importing file: Collada: Unable to resolve effect texture entry “IMG[UNH_FFA_THRUST_EXPORT[3]_GLOW]_FMT[8888]-image”, ended up at ID “IMG[UNH_FFA_THRUST_EXPORT[3]_GLOW]_FMT[8888]-image”.
at Assimp.AssimpContext.ImportFile(String file, PostProcessSteps postProcessFlags)
at DAEnerys.Importer.ImportFromFile(String path) in D:\DAEnerys\DAEnerys\collada\Importer.cs:line 81
at DAEnerys.Main.buttonOpen_Click(Object sender, EventArgs e) in D:\DAEnerys\DAEnerys\Main.cs:line 347
at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
at System.Windows.Forms.ToolStrip.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.ToolStrip.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

Assembly Version: 1.0.6350.0
Win32 Version:
CodeBase: file:///D:/tools/DAEnerys/DAEnerys.exe

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

Assembly Version:
Win32 Version: 2.0.0
CodeBase: file:///D:/tools/DAEnerys/OpenTK.DLL

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll

Assembly Version:
Win32 Version: 1.1.2349.61993
CodeBase: file:///D:/tools/DAEnerys/OpenTK.GLControl.DLL

Assembly Version:
Win32 Version:
CodeBase: file:///D:/tools/DAEnerys/DevILSharp.DLL

Assembly Version:
Win32 Version: 4.40.23020.0
CodeBase: file:///D:/tools/DAEnerys/FSharp.Core.DLL

Assembly Version:
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.IO.Compression/v4.0_4.0.0.0__b77a5c561934e089/System.IO.Compression.dll

Assembly Version:
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll

Anonymously Hosted DynamicMethods Assembly
Assembly Version:
Win32 Version: 4.6.1586.0 built by: NETFXREL2
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/mscorlib/v4.0_4.0.0.0__b77a5c561934e089/mscorlib.dll

Assembly Version:
Win32 Version: 3.3.1
CodeBase: file:///D:/tools/DAEnerys/AssimpNet.DLL

Assembly Version:
Win32 Version: 4.6.1586.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Dynamic/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Dynamic.dll


These are both rodoh-made files that hodor and the game accept without issue.

The broken animations on my rodoh-made hods still look broken, unfortunately but not surprisingly, but I did get to see some illuminating things. The nav light display is really cool and promising, though they don’t currently follow animations which they need to. And when testing HWAT_VAY_CABattle, whenever the lights are on the ship appears to render black, which doesn’t seem correct.

(Nathanius) #432

Could it be the extra square brackets around the 3 in the middle of all that confusing it?

(Nathanius) #433

Hoo boy! I loaded up my Midway (one of the few ships I’ve tried to do a from-scratch warp animation on) and clicked on “warp_out” and then… CRASH! This has given me the first hope in a long time that the problem with the warp animations can be tracked down! Once animations are editable in DAEnerys I should be able to straighten it all out! :smiley:

The error was an out of range exception @Payday, can you cater for these and just highlight it as something to be fixed? Here’s the error text for some specifics for you.

System.ArgumentOutOfRangeException: Value of '120' is not valid for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'.
Parameter name: Value
   at System.Windows.Forms.NumericUpDown.set_Value(Decimal value)
   at DAEnerys.Main.listAnimations_SelectedIndexChanged(Object sender, EventArgs e) in D:\DAEnerys\DAEnerys\Main.cs:line 1696
   at System.Windows.Forms.ListBox.OnSelectedIndexChanged(EventArgs e)
   at System.Windows.Forms.ListBox.WmReflectCommand(Message& m)
   at System.Windows.Forms.ListBox.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

One of the ships I’ve not touched yet, straight from RODOH, allows me to click on the warp animations without complaint but in every single animation sits every single animated joint, also none of them seem to play in DAEnerys… Would a sample from STC help?

Also, just to see how crazy it is, can *.MAD files be imported? Animations that are standard (like our warp) or being transferred from ships in old mods would benefit from this greatly. I say this without having any idea of how difficult this might be though

(ajlsunrise) #434

I did some work on this during the weekend. Still testing… I’ll let you know when it’s more functional.

Sure, send one over.

(Herbyguitar) #435

“Out of range”. So the animation is too long for the program? That’s not good. We need those anims to be this long for effect and smoothness of transition… Or am I not understanding the error correctly?

(Christoph Timmermann) #436

No worries! I just forgot to change the Minimum and Maximum values on the NumericUpDown Windows Forms control. :stuck_out_tongue:

@EatThePath Could you send me that DAE with the effect texture entry error?

(Herbyguitar) #437

You’re a gem! Thanks buddy :smiley:

[edit] I reworked the anim several years ago to smooth out the effect and get rid of the jerkiness. I had to add several transitions and lengthen the footprint, so it’s a bit stretched and long. I hope it’s not the game itself that has trouble with it… but that shouldn’t be the case right?

(Christoph Timmermann) #438

Which animation?
I couldn’t think of anything why Homeworld could have problems with long animations.

There are parameters Sect in two navlights in Tur_P1Mothership.dae. What are these? What are they doing?

(BitVenom) #439

That is the NavLight ‘section’ - a property that appears to be completely ignored by the engine itself (it is read and stored, but never used). Which, interestingly enough, means we may be able to do fun stuff with it eventually…

(Aleksandr) #440

future updates?

(Nathanius) #441

STC Sample pack for you sir: https://1drv.ms/u/s!AjHLszqa4A26roolfzAExSPfeeMSpA

Includes the Excelsior DAE, its original HOD and a fully from-scratch attempt at animation on my part as well. The last one looks ok in DAEnerys actually… it just still refuses to play the warp out animation in game