Jump to: Board index » General » Fusion

Animated on twos

Learn about 3D compositing, animation, broadcast design and VFX workflows.
  • Author
  • Message
Offline

AgisEgis

  • Posts: 5
  • Joined: Sun Feb 18, 2018 9:34 am
  • Real Name: Anders Egis

Animated on twos

PostThu Nov 18, 2021 1:55 pm

Hello,
I have an animation which is animated on twos (=each image stays 2 frames still). That causes the VectorMotion not to work correctly anymore because it just calculates the motionblur between the two moving frames, causing a heavy jerking. So basically every second frame has no motion blur.

Does somebody know a workaround to get MotionBlur working with that setup? Maybe there is a possibility to tell the VectorMotion Node to use the data from the frame before for the current frame?

Thanks!
Offline

Okke Verbart

  • Posts: 290
  • Joined: Tue Jan 17, 2017 8:40 pm

Re: Animated on twos

PostFri Nov 19, 2021 7:16 am

Hey Anders - there may be more efficient ways, but one way would be the following:

Feed the vectorMB node with a timestretcher where the timestretcher is set to either return only even or odd frames. The expression you could use (for even): iif(time%2==0,time,time-1)

Now, as the vectorMB node doesn't have the option to generate blur only (as opposed to original image with blur applied to it), you'll need to extract it. You can do this by using a channel boolean: set it to "subtract" and feed it with the VectorMB node and the time stretcher node. Result of all this is that this will generate the blur of the input stream, and this will change every other frame.

In the last step you can then use another channel boolean and set it to "add" and feed this with the first channel boolean and the original image input (the one before the time stretcher).

This should do the trick.... but as said, there are probably more efficient methods!

Example below (replace the placeholder node with your image input)

Code: Select all
{
   Tools = ordered() {
      Placeholder = Background {
         CtrlWZoom = false,
         NameSet = true,
         Inputs = {
            Width = Input { Value = 1920, },
            Height = Input { Value = 1080, },
            ["Gamut.SLogVersion"] = Input { Value = FuID { "SLog2" }, },
         },
         ViewInfo = OperatorInfo { Pos = { 412, 251 } },
      },
      TimeStretcher1 = TimeStretcher {
         Inputs = {
            SourceTime = Input {
               SourceOp = "TimeStretcher1SourceTime",
               Source = "Value",
               Expression = "iif(time%2==0,time,time-1)",
            },
            Input = Input {
               SourceOp = "Placeholder",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 614, 252 } },
      },
      TimeStretcher1SourceTime = BezierSpline {
         SplineColor = { Red = 233, Green = 217, Blue = 243 },
         NameSet = true,
         KeyFrames = {
            [192] = { 0, Flags = { Linear = true } }
         }
      },
      VectorMotionBlur1 = VectorMotionBlur {
         Inputs = {
            Input = Input {
               SourceOp = "TimeStretcher1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 763, 252 } },
      },
      ChannelBooleans1 = ChannelBoolean {
         Inputs = {
            Operation = Input { Value = 2, },
            Background = Input {
               SourceOp = "VectorMotionBlur1",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "PipeRouter2",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 892, 248 } },
      },
      PipeRouter2 = PipeRouter {
         Inputs = {
            Input = Input {
               SourceOp = "TimeStretcher1",
               Source = "Output",
            },
         },
         ViewInfo = PipeRouterInfo { Pos = { 871, 159 } },
      },
      ChannelBooleans2 = ChannelBoolean {
         Inputs = {
            Operation = Input { Value = 1, },
            Background = Input {
               SourceOp = "Placeholder",
               Source = "Output",
            },
            Foreground = Input {
               SourceOp = "ChannelBooleans1",
               Source = "Output",
            },
         },
         ViewInfo = OperatorInfo { Pos = { 911, 369 } },
      }
   }
}
www.ablackbirdcalledsue.com
Offline

Frank Feijen

  • Posts: 167
  • Joined: Tue Dec 13, 2016 10:04 am
  • Location: Vilvoorde, Belgium

Re: Animated on twos

PostFri Nov 19, 2021 7:43 am

Use a timespeed-node of 2, do your thing, add a timespeed-node of 0.5 (Both seth to nearest interpolation). Is also less rendering...
Offline

AgisEgis

  • Posts: 5
  • Joined: Sun Feb 18, 2018 9:34 am
  • Real Name: Anders Egis

Re: Animated on twos

PostFri Nov 19, 2021 4:00 pm

Thanks a lot for the super fast and awesome suggestions!
I will try both methods and let you know what happened :)

Return to Fusion

Who is online

Users browsing this forum: No registered users and 40 guests