MaDDoX wrote:Hi Methuselas. The first 3D package I used was Imagine on the Amiga, then I started on Lightwave beta (there was an e-mail list where the devs actually replied back then!) and stayed in it for more than a decade. These days I use Maya and Modo for almost everything, still visiting Lightwave from time to time.
So, back to your point, there are some things I've already learned about animating in the Spring engine (using LUS, Lua Unit Script) and some stuff I'm still figuring out. Once I have a complete workflow - and probably a tool as well - I'll write a Wiki page on it, so feel free to share anything new you find.
I *LOVED* Imagine3D. I never really got into Lightwave. I stuck mostly with Cinema4D (it was what I had access to, at the time.) but I also played with Aladdin3D. I was actually given an updated copy of Aladdin about 10 years ago, by the developer. Unfortunately, by then, I had all but dropped out of the Amiga scene. My 500 is still languishing in my closet. I need to get a new case for it. It tried to commit suicide a little over a year ago, falling off a top shelf.
1. Maya default DAE exporter sucks, and Spring won't load anything spit from it. I export fbx from Maya and import into Modo, then export to DAE. It works fine. I haven't tried other DAE exporters/plugins, highend3d.com has a bunch so if you try them and have any luck with those please share the news.
I haven't even looked at exporting yet. I just got the engine installed yesterday, but didn't realize it was simply a build of the engine. I downloaded Zero-K to see how it functions, but it appears I need to actually read the code instead (which is not my forte.) Maybe I'll bug my wife to look at the code, since she's a software developer. XD
2. Custom pivots for objects don't work. What I'm having to do (painfully) is adding a null object / locator, move it to the desired pivot position (never zeroing out its coords / freezing position), then parent the actual mesh object to it. The null object is what should be rotated by LUS. That obviously makes the hierarchy much bigger and cumbersome to use than it should, and I'm not sure if there's a workaround for that - maybe using joints? Joints themselves seem to export fine, it's just the actual weight blending/mesh deformation which isn't supported by Spring.
Joints are EXACTLY what you want to do. The Local Rotation Axis of Locators is ALWAYS set to 0,0,0 coordinates (ie, world axis) From what I read, Spring uses it's own rotation results.
1. Build your skeleton. Make sure the LRA axis of each bone is the same. (If you don't know how to do this, I can walk you through manually adjusting them to match. It's really simple. This is a CYA thing.)
2. Parent a Locator to each bone.
3. Parent the mesh to each locator.
4. Rig the Skeleton to your heart's content. (Avoid using HumanIK right now, as it requires bones for hands, but if I am correct in my assumptions, the extra bones won't matter to the Spring Engine. I have no way to adequately test animations in the Engine, as I have no build to allow me to do so. )
5. Export the animations and when you do so, BURN the animations, but without the bones. The Locators/Mesh will still move and should automatically keyframe themselves.
This is basically the same format I used to make new animations for Mechcommander Omnitech. Unfortunately, the developer of MCO went a direction I didn't want to follow, so they were only used for my own work.
3. There's no support for ease-in, ease-out, just linear move or rotation, so baking any sort of organic animation is a must. Making such an exporter for Maya using python is not too hard, especially for a simple 'snapping' version, I intend to work on it early next year - unless someone else tackles it first, ofc :)
4. Separate animation clips should be read from a single LUS file, although you can include separate lua files in a single "main" one as you'd do with any lua script.
Good luck!
If you get around to writing a python script, let me know. I can help you with bug testing.