Root motion/Animation on Armature from inside pose mode
in other softwares you can use constraints to allow you to move the root bone and maintain Ik functional for example.
unfortunaly in blender to animate root motion you need to go outside pose mode to keyframe the ''armature'' itself.
which by default makes Ik useless and also keyframes every bone, making the worflow extremely destructive. In addition to that, keyframes in the armature/root are always visible in pose mode regardless of you bone selection, so you're forced to delete/move them around while animating in pose mode.
- I believe the ideal solution would be armature to be ''native'' in blender, but not related to the rig itself. just an object to enter pose mode. (Thats not a bone, not part of the skeleton nor of the hierarchy)
- Or an option to set a bone inside the Armature to ''ignore'' parent with the armature, so we can move the rig from inside pose mode.
4 Comments
Strictly speaking, rigs should have their own root bones. Firstly for technical reasons: some formats and softwares require a root bone parent of everything (some exporters in Blender offer to convert the armature object into a root bone) and that every vertex must be fully weighted (so you can use the root bone as default static bone for weighting, especially on mesh parts that "don't move").
With Blender's current way of functioning, animating the armature object instead of the bones leads to different action data blocks created, and you don't have access to the pose mode's tools, ...
So really the solution to avoid all issues is to have a root bone.
But I don't see why there should be an option to "ignore" the armature object's movement? Firstly because I don't see a scenario where you would need that on a rig (some constraints really don't like that). But if you really want to move an object but not its content, you can enable " Affect Only Origins " before transforming.
Yep, all rigs should have root. i dont think you got the issue.
The armature is the root. so its kinda redudant to add a ''bone'' inside the armature. (Regarding Root motion for games) which is move characters by animation instead of standart engine's movement components. thats only achievable by the actual root. which is the ''armature'' regardless of naming.
if you import from UE for example, the root becomes the Armature itself. so you can't animate that Root anymore, because it will be outside Pose mode.
since we cant extract Root motion from non-root bones, we need access to animate the actual Root without the ''Armature system'' getting in the way. like you can in every other existing software.
in addition to that, you cant constraint the ''Armature'' because animation happens ''inside'' it, nothing there can control armature, every value would reflect back on the bone, for the armature is the Parent bone. so it just breaks
Basically I find this is a bigger issue with FBX export. Being that Autodesk owns this tech it's hard for anything open source to get a good result as they have to reverse engineer the SDK and make it their own. A good solution I've found is the Better FBX Exporter, but this isn't a perfect solution as it can take your pipeline down if it's not in lockstep release with Blender. I personally wouldn't ever animator the root Armature as it's just an unusable way of working. I add a root bone then export FBX as selected (adding in the bones I want pulled over).
ideally we stop these excruciating workarounds. like i said ''root motion'' needs to come from the root/armature in blender
a workraound in Unreal for example, we can create a secondary root bone, and change the original root to armature. Unreal will disolve that one named armature.
but we would need set up the file/export scales so the animations match the size of the mesh/rig.
anyway. that happens because the armature is also a bone. And the way it works in blender, it will always be the root. and we cant animate that for real. so i believe tha the ''armature system'' should be its own thing in the future. not part of the rig's hierarchy.
i generally only use this addon when blender wont import a fbx for its life. but seams theres always some glitchy results.