Please read the section about using the dependency graph in the usage instructions below!
Download
The addon is currently for 3.2 and higher, works better in 3.4 and higher. For a 2.93/3.0/3.1 compatibility version, or an older version of this addon, see the releases on the github.
Github repo:
The default one
branch is a slightly outdated branch without certain experimental changes. The latest fixes and such are in the other_one
branch (which the above download link leads to).
I saw that the old Motion Trail addon by Bart Crouch was included in master but not updated, so I finally decided to update it myself. There is now support for trails for objects with all kinds of constraints, parents, etc., and bones, but please read about the depsgraph. If you find any (further, non-dg) issues, please make sure to mention them here.
Depsgraph
The most important toggle, and the one at the top, is for using the dependency graph. When using the dependency graph, the addon will display completely accurate motion trails that factor in all constraints, parents, drivers and more. HOWEVER, there are many drawbacks to using this - all your unkeyframed changes will be removed, the motion trail will not update while you use the graph editor (or others), performance while dragging will be much worse, and likely more.
If you happen to lose some unkeyframed changes you deemed important, first disable the motion trail then undo.
If you want better performance while using the DG, you can increase the drag step size.
As always, addon or not, save often.
If the depsgraph is not used, the addon will use its own custom evaluation. This will not evaluate drivers at all, will not work with most constraints, whacky scenarios like vertex parents, the variety of bone options, and more. Non-DG evaluation will generally not work for complex rigs like rigify or autorig pro. It might work for your own custom rig, as those tend to be much simpler.
Generally, if the motion trail doesn’t line up or isn’t visible (because it’s way offscreen), use the depsgraph.
Usage
For simplicity, let’s assume your grab, rotate and scale keys are g, r and s.
The motion trail toggle is located in the sidebar (AKA n menu) of the 3D viewport.
The motion trail can work with location, rotation and scale keyframes. Currently, rotation can be a bit weird. Scale by default will not be allowed to be negative, if you want negative scale you can tick the tickbox for that.
On the trail, keyframes on the same frame will be grouped together into a single point. When there are multiple of different transform, their colors will be combined.
When using values mode…
With a keyframe on the trail selected, you can:
- Move with G all its values at once. With a location keyframe, this will move the position of the trail.
- Scale with S both handle sides for its keyframes.
- Rotate with R both handle sides for its keyframes
If there are multiple transforms, the first available one in location, rotation, scale will be used. If you wish to choose a different one, press shift+g/r/s.
With a handle selected, you can:
- Move the handles on that side with G or R
- Scale the handles on that side with S
When using timing mode…
With a timebead (green dots along the trail) selected, you can press g/r/s to shift in time all keyframes from the enabled transforms, and you can toggle some transforms with shift+g/r/s.
With a keyframe selected, you can press g/r/s to shift the keyframe in time, until it hits another keyframe.
When using timing mode, you also have the option to position the keyframes on the old Y axis of their curves. I added this to attempt to make timeshifting distort the curve less, however it didn’t quite achieve that, nonetheless I’m sure someone will find a use for this.
In either mode, you can enable frames, which will show individual frames on the trail (keep in mind these are affected by the step size!), you can select and drag a frame to insert keyframes in all the transforms you currently have chosen.
There are 2 buttons for deselecting - one on miss, and one always. For missing, you can use the same key as regular selecting, so you can select when you point at something, and deselect when not. Otherwise, you might want to deselect even while pointing at something, so that’s what the miss key is for.
When you deselect, the deselect passthrough option is whether or not the addon should then pass your input through to the rest of Blender, so you can do whatever you wanted with just 1 input.
You can see what the rest of the various toggles and properties in the sidebar do by hovering over them and reading the descriptions.
Old stuff
Here’s the old wiki link.
Here’s an outdated silent video demo for an older version of this addon:
https://www.youtube.com/watch?v=LUE99D4ME8g
Changelog
1.2.5
- Minor bugfix for odd keymaps
1.2.4.
- Minor bugfix
1.2.3.
- Option to calculate motion trail outside of scene frame range
1.2.2.
- Minor bugfixes
- Passthrough for user saving
1.2.1.
- Initial Armature constraint support for non-DG eval
- Hopefully improvements for constraints with non-1/0 influence for non-DG eval
- Attempts at getting local location to work for non-DG eval
- Ability to set what panel the addon is in
1.2.
- Minor performance optimizations
- Extra improvements and settings for unfull keyframe display (e.g. choose the side)
- Fill unfull keyframes with (shift)+f: f for the channels that are displayed, shift+f for locrotscale
- Initial, bad version of ability to automatically adjust handles by moving a point on the motion trail inbetween keyframes
- Reorganized defaults in the addon preferences
- Support for newer (4.0, 4.1) Blender versions
- !!! Fix for child bones’ non-DG motion trail (and for quaternion rotation in general)
This was caused by a Blender bug. Note that this still does not include constraints or the various other options like local location and such.
1.1.
- Ability to delete a keyframe with X
- Better undo support
- Unfull keyframe visualization, i.e. that lack specific channels, e.g. quaternion keyframes, but w is missing, or location has only x and y
This can help you understand why you can only move a motion trail keyframe along specific axis.
1.0.
- Made lines prettier
- Added option for even prettier lines
- Added outlines
- New shader for pretty points, which are now circles rather than squares
- Ability to work on rotation and scale keyframes
- More Blender-like drag, alongside ability to hold Shift or Alt to slow down / speed up
- Ability to scale and rotate keyframes and handles
- Removed speed mode
- Added ability to constrain movement of keyframes
- Lots of code refactoring and some bugfixes
- Improved UI