Armature Animation Blending
Armature Animation Blending
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.
Re: Armature Animation Blending
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.
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
Code snippet repository: https://github.com/mzeilfelder/irr-playground-micha
Free racer made with Irrlicht: http://www.irrgheist.com/hcraftsource.htm