Blender has a problem when baking animations that I experienced before where baking an animation to an armature to be used in games creates really bad animation and also inaccurate. After searching around, it seems that this is a limitation of Blender since it doesn’t support shearing. From the discussion it seems that this will be a limitation of Blender that won’t be fixed anytime soon. This is really disappointing for me since it makes Blender not a good software when creating animations for games.
Has anyone even found a workaround that experienced this problem, even external, that can make animations bake 100% accurate? It’s frustrating how I’ve made a rig in Blender but can’t translate it accurately to be used in games.
I am not sure of the details of your set up but have you tried using a basic top down FK and deformation rig for the baking and export and having it constrained to and controlled by a separate animation IK rig ?
This is always the way I have made custom real time rigs in multiple other apps. Maya Max etc over the years .
Although I’ve done a fair bit of rigging in blender I’ve not needed to make any game engine rigs yet and mainly been doing TV work recently so I might be missing something.
But if you have a very simple top down hierarchical FK rig starting with a root or motion bone to export and bake. Then that usually always works since there is very little room for any error. You need to bake the animation only into the basic bones of the hierarchical FK rig only and then only export that on it’s own with the skinned mesh objects. Nothing else.
Hope this helps.
All the best.
That’s exactly what I do.
What I do in detail is I use Rigify for animating and a separate game skeleton rig for deformations that I export and then import in the game. The skeleton rig is just your typical ‘FK’ which contains only deformation bones that uses Copy Constraint targeting Rigify’s own deformations. It looks fine but once you bake animations into the game skeleton and disable the constraints it will be inaccurate and would sometimes bake really bad deformations.
I’m surprised that this is almost never discussed in Blender despite being an ACTUAL PROBLEM when creating animations for games. What’s also worse is that it doesn’t seem to be a priority. Creating animations in Blender for internal use is fine but I don’t recommend using Blender to animate if you want really good animation in games.
yup i’m familiar with challenges when baking and exporting for games. certainly these workflows can be improved, however there are usually workarounds.
specifically most of my problems arise from non-uniform scaling in parent-child bone relationships (including stretchy bones, which are used in rigify). for these situations, the ‘simplest’ solution is to flatten the hierarchy in your export rig and do a copy transforms constraint to each of these bones, and the results won’t get messed up by any parent bone transformations.
practically though, you often want to retain a hierarchy in engine in case you need to manipulate skeletons at runtime (look at scripts etc). for this it requires a little more careful setup, where your export rig has a base heirarchy that is constructed only from loc/rot and uniform scaling. and any stretching bones are children of bones in this base heirarchy, but have no chidren themselves. eg a stretchy arm rig that should export/bake cleanly:
Does this actually work? I’ve tried doing this but it’s still the same problem unless I’m doing something wrong. Do you have a blend file example? Since there’s absolute no way to export without full inherit scale it’s just impossible. The only time it would work accurately if there are no parenting which is obviously unacceptable.