Smooth screen - acidbubbles/vam-timeline GitHub Wiki

Smooth screen

Accessible from the more screen.

Originally released by GargChow on Reddit for native recorded animations, this plugin allows to reduce jitter in animations. Features and options were kept as-is as much as possible, therefore documentation was brought from the Reddit page when possible.

Smoothing example

Smoothing Amount

Two sliders control the degree of smoothing: Time Span and Center Weight.

  • Each animation step has its position and rotation averaged with steps up to Time Span seconds before and after it in the animation. The default is 0.25 sec. It's comparable to the smoothing radius in an image editor.
  • Steps are weighted according to the Center Weight slider. The default value is 1.
  • When Center Weight is zero, all steps contribute equally, resulting in more noticable smoothing.
  • When Center Weight is positive, steps at the edge count less than those toward the center, preserving the original position and rotation that much more.
  • When Center Weight is negative, steps futher from the current step count more; this usually creates bizarre and unwanted effects.

Start Time and End Time

Smoothing will be applied to the entire animation by default, but the time range can be restricted using the Start Time and End Time sliders. But note that the smoothing effect (the time span) is always faded in and out at the start and stop of the selected range, because abruptly kicking in the smoothing would generally create a hard jump at that time step. So when restricting the start and end times, it's a good idea to pad the times by one Time Span on each end.

Apply

Only the selected controller targets on the dope sheet will be affected; float params will not be smoothed.

You can use the Backup and Restore buttons to re-apply the smoothing multiple times and start over if you want.

Caveats

  • Large Time Span values and long animations can lead to long run times. If you do hit Cancel, there will be an abrupt jump in your animation at last smoothed step. You will definitely want to restore the backup in this case.
  • Large fluctuations in the time between steps in the recorded animation may have a negative impact on the smoothing effect. When the number of animation steps before and after the current step is imbalanced, the step will be pulled more toward one side or the other.
  • The Time Span is tweaked before smoothing in a way that establishes an actual minimum of about 1.5 times the average time step. So if you click Apply Smoothing, you're going to get at least a little smoothing within the configured start and end times.
  • Center Weight values larger than 5 are probably pointless. Once it is high enough, you're weighing the center point so heavily that you might as well not do any smoothing at all.
  • Negative Center Weight values are generally a bad idea. I probably should have restricted it to 0 and above, but I thought someone might get a laugh out of the bizarre results.

Thanks

Thanks for GargChow for releasing this plugin!

GargChow thanks:

Thanks to project-canyon for the VaM Scene Compressor command line tool, which inspired this plugin and taught me some VaM and Unity fundamentals. Scene Compressor actually reduces the size of an animation (SmoothMoves doesn't). Thanks to MacGruber_VR for the original ScriptEngine and his example scripts; VAMDeluxe for so many great plugins; and of course meshedvr.