A Character (Rigged with Rigify) starts walking at the Root Bone position and stops from a distance of the Root Bone position. In the whole process of walk animation, the root bone position remains same, only the torso bone alongwith the other bones change location. The walk animation starts from Frame 1 and ends at Frame 41. Both the Screenshots at Frame 1 and Frame 41 are attached.
My question is to how at Frame 42 the Root bone can be shifted from its original position to the new position of the Character, without shifting the Character from its final location? Whenever, the Root bone is set manually to Character position at Frame 42, the Character is also getting moved to the same distance as it moved from the Frame 1.
2 Answers
You need to apply a transformation to the root bone, while at the same time applying the opposite transformation (in the same space as the root bone transformation) to all of the root bone's immediate children.
We can use a bake action operation to do this. Make a duplicate of your armature with a new, empty action. Animate its root bone as desired for your new action-- let's say, at 0,0,0 at frame 1 and -2,0,0 at frame 42, with linear interpolation. Now find all immediate children of your root bone (the outliner is handy for this) and give them copy transforms constraints targeting their counterparts in the original, animated operation. These bones will need to not have the "connected" property in order to accept the new location transforms, but if they've been moved in your original animation, then we know that they don't.
Now you can use a "bake action" operation on your duplicate armature, in pose mode, baking the pose. Enable "visual keying" at the least; enabling clear constraints is optional but a good idea; and baking only selected bones (the root and its immediate children are the only bones here that matter) will save some calculation time.
It will create keyframes for every frame on the baked bones. You can copy these keyframes from the graph editor and paste them directly into the old, animated action to replace the keyframes from your root and its children with your new, adjusted transforms. (To copy/paste keyframes, you want to be at frame 1, and destination channels need to be keyframed to accept the paste; any that have not been keyframed should be keyframed before pasting.)
If any immediate children of your original armature's root bone have any constraints, these should now be deleted (or muted, perhaps with keyframes) as they've now been baked into the action. You can now delete the duplicate armature you made-- or, save it to repeat the operation on a different action with a similarly misplaced root.
-
$\begingroup$ Your solution seems exact and what I look for but could you please mention all the process in flowchart? Actually this walk animation is downloaded from Mixamo, however, imposed on a custom character and now after finishing the walk cycle at frame no. 41, I want to bring back the root bone to the character center at frame no. 42, so that from frame no 42 onwards, I can create some more animation (not Mixamo) on this character. $\endgroup$ Jan 26 at 1:05
There are 2 ways of animating a walk: either with static walk, like if your character was walking on a treadmill (the bones stay aligned with the root) or a normal one like what you've done (the bones move away from the root).
In the first case (treadmill), in Object mode, you'll need to move the armature through the scene at the right pace so that the feet don't slip.
In the second case, in Object mode, at the end of the cycle, you'll need to shift the whole armature in order to move it to the correct location.
In both cases I think you generally parent the armature to an empty and move the empty, not the armature.
-
$\begingroup$ Note that animating an armature in object mode is fine only if you don't leave Blender and/or don't intend to make use of the animation as an asset. Otherwise it's most likely better to use solutions that remain in pose mode. $\endgroup$– L0LockJan 25 at 16:42
-
$\begingroup$ Wouldn't you say that the treadmill solution is the best for long walks while the second is better for smal walks? $\endgroup$ Jan 25 at 16:53
-
1$\begingroup$ IMHO treadmill is more versatile for hand-made cyclic animation. It's common for animators to create the walk cycle "in place" as it's easier that way, and have an animation layer that adds the root movement and can be toggled ON/OFF at any time to check the cycle in movement and see how the contacts go with the character motion. While having the cycle moving in the first place and adding keys to the root to make it teleport is significantly harder to manage for making a cycle, but absolutely better if there's no cycle involved. Though in some softwares it can create issues with motion blur. $\endgroup$– L0LockJan 26 at 20:30
-