Armature Animation Blending

You are an experienced programmer and have a problem with the engine, shaders, or advanced effects? Here you'll get answers.
No questions about C++ programming or topics which are answered in the tutorials!
Post Reply
dart_theg
Posts: 22
Joined: Sun Dec 29, 2024 3:13 am

Armature Animation Blending

Post by dart_theg »

For my past Irrlicht projects, I've tended to create my own "armature" where it is made up of parented scene nodes that animate based on json data I create in Blender. This is obviously not as efficient as just using the Animated Mesh scene node (I think...?) but my implementation allows for me to stack animations and control the blending between parts of the body to allow for multiple animations to run at the same time. Is there any proper implementation for this or should I just stick with what I have been doing? I would dive into the animated scene node but I don't want to fudge anything in there.
CuteAlien
Admin
Posts: 9838
Joined: Mon Mar 06, 2006 2:25 pm
Location: Tübingen, Germany
Contact:

Re: Armature Animation Blending

Post by CuteAlien »

Well, if you have already something that works, then maybe it's not so bad to re-use it.

I have sadly still very little experience with the animation system, although I learned quite a bit last weeks while working on some bug.
Irrlicht has actually different animation systems. The simplest one uses SAnimatedMesh which has 1 mesh per frame and then shows those frame-by-frame.

MD2 and MD3 loaders implement their own animated meshbuffers. I never worked with those, but from a quick look at the code I feel they maybe build the mesh each frame based on interpolation between key frame meshes.

And the most complex right now is likely the skinned meshes. Those support some animation blending, but that's exactly where the bug sits which I was looking at recently, so some fixes needed there. That one works closest to how Blender does things I guess, but it's not super easy to get into.

Generally it's easiest to work with Irrlicht if you can somehow make your animation system use the IAnimatedMesh interface. So basically - figure out how to return a mesh for a given frame.
IRC: #irrlicht on irc.libera.chat
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm
Post Reply