Date: Jan 31, 2019 Author: Jeremy Ernst
Creating a space must be done in the unreferenced rig file. View “Setting up Control Spaces” in the Rigging section of the documentation.
To switch spaces, there are a few ways you can access space switching:
Through the UI¶
To switch spaces through the UI, click on the Space Switcher icon in the animation tools interface:
Here is an in-depth look at each of the elements on the space switcher interface:
Field Description Operation Whether the function the interface performs will be to switch a space or bake a space. Control This is the control that contains spaces. Start typing in this text field to auto-populate suggestions. Space This is the list of spaces you can switch to. Update Matching This section gives functions for updating the matching on space switching if the motion was updated after the space was switched.
Buttons Description Adds the currently selected control to the “Control:” text field. Shows a new widget for seeing all valid controls that have space-switching available. Select a control from the list to populate the ‘Control:’ text field. Select a previously available space-switching key from the current frame. Matches the previous frame’s space-switching pose. Matches the next frame’s space-switching pose. Select the next available space-switching key from the current frame.
To add a control, you have several options available to you. First, you can start typing in the name of a control and the UI will provide auto-complete suggestions:
You can also use the list picker button, to bring up a widget that shows all controls with space switching, and select from there.
Lastly, you can simply select the control in the viewport or using the control picker, and plug it in using the “use selection” button:
The space in the combo box will update to show the active space on the current frame when scrubbing the timeline.
Using the Animation Picker¶
Space Switch Keys¶
All keyframes set for space switching are done on the control itself. When you switch a space, a “bookmark” key is set on the previous frame in order to ensure there are no pops when the space switches. You will see two keyframes side-by-side any time you switch spaces.
The matching is done by setting new values on the control translates and rotates, as you can see in the graph editor:
Only visible in the graph editor, is the follow attribute (as seen in the first image), which is the actual space switch keyframes (whereas the translate and rotates are the matching keyframes).
All keys are on the control so that re-timing your animation is simple! Just make sure to keep any side-by-side keys together (treat them as one pose) and your space switches won’t get messed up.
Sometimes, you may end up adjusting a pose after you’ve done your space switches. Because the control had keys set to ensure there were no pops when matching, those keys may now be invalid if the underlying pose has changed!
To fix this, you can use the Update Matching tool found in the space switcher UI.
Use the next and previous buttons to browse to the next or previously available space switch key set. Then use the match next or match previous buttons to choose which frame of the key set to update.
Baking spaces allows you to take a control with animation, and either bake all of the current space-switching down into one space, or bake sections of the animation into different spaces.
To bake a space, open the space switcher interface, and change the operation to “Bake Space”. Much of the UI remains the same as the Switch Space operation, so if you need a refresher to what the different buttons do, take a look at Switching Spaces Through the UI.
The new parts here are a frame range and a Bake button. Set the control whose space you want to bake, select the space to bake, and enter the frame range that you want the control baked into the given space. In the below example, the weapon_jnt_anim will be baked into the l hand space during frames 53-72. Assuming the control was only in default space previously, this means that it will remain in default space, except during that frame range, in which case, it will be in the left hand space.