Page MenuHome

Animating influence of 'Child Of' bone constraint causing motion blur errors.
Needs Information from User, NormalPublic

Description

System Information
Operating system: Linux-5.3.0-29-generic-x86_64-with-debian-buster-sid 64 Bits
Graphics card: GeForce GTX 1080 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 440.59

Blender Version
Broken: version: 2.82 (sub 6), branch: master, commit date: 2020-02-11 14:45, hash: rBc939b4df18e9
Worked: This has been the way Cycles motion blur has worked since I started using it, so I wasn't sure if this was classed as a bug or not. Either way, it would be great if this didn't happen.

Short description of error
When animating the influence value of the 'Child Of' constraint, motion blur errors occur when the bone isn't in the position where 'Set Inverse' correction was set.

The very simple example attached (blur-childof-constraint-bug.blend) shows how the mesh of the cube isn't "moving", but still gets blurred based on the parent bone's motion, the 'Child Of' constraint seems to be ignored by the blur.

This is a practical problem for character animators in particular. See example apple-blur-test.blend. A character picks up an apple with one hand, tosses it in the air and catches it with the other hand, then places it back down again in a different position. The child of constraint needs to be animated to control the influence the hands have on the apple. Position and rotation keyframes need to be added to compensate for the Inverse correction of the Child Of constraint. When influence switches from 1 to 0 (when a hand is letting go of the apple), a motion blur error occurs (see below frames 40 and 80 of the apple test where this influence switch occurs).

Exact steps for others to reproduce the error

  • Open 'blur-childof-constraint-bug.blend'
  • Hit render.

Or

  • Open 'apple-blur-test.blend'
  • Go to frame 40 or frame 80.
  • Hit render.

Event Timeline

Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.Wed, Feb 12, 10:27 PM
Richard Antalik (ISS) added a project: Cycles.
Richard Antalik (ISS) closed this task as Invalid.Thu, Feb 13, 12:24 AM
Richard Antalik (ISS) claimed this task.

Looking at this file again, after looking at T73758 and playing around a bit, I think that there is no bug here. If you enable subframes and look at motion between frame 40 and 41, result of rendering looks correct.
https://docs.blender.org/manual/en/dev/editors/timeline.html#playback-popover

I if you change interpolation to constant and set motion blur position to start of frame you can work around this issue.

Thank you for looking at this and also for merging the bugs, I wasn't quite sure if they were the same issue or not.

Where you say

if you change interpolation to constant and set motion blur position to start of frame you can work around this issue.

Suggests that this an issue to be worked around, making it a bug? I've already been working around this issue for years, but it does seem to be an error rather than incorrect use of the feature. i.e. changing the interpolation to constant and setting motion blur position to start of frame is not an intuitive solution at all if an artist comes across this issue. They're going to think that motion blur is broken. I understand that this might be a difficult issue to fix, but I think it is very much an issue.

If I put this into context of the current project I'm working on, maybe this will convince you that this is something that needs to be looked at further.

We're currently working on a short character animation, about 5 minutes long, consisting of hundreds of shots. Animators working on the project aren't necessarily technical artists, they animate based on what looks best for the shot.

We've come across this issue several times and whenever it occurs it substantially increases render times. On average, our test renders have been around 1 minute. When a frame has this issue, the render time jumps, sometimes as high as 11 hours. It would be extremely time consuming to check every shot for this issue before hitting render. It's also a waste of render time when this bug occurs, as it ties up a render node for way too long. If we grin and bear the very high render times for these problem frames, yes, we can find them, go through the shots with these problems and manually do the workaround that you suggest, but again, this takes up more time. As you say, it's something we can work around, but it's not very practical.

We've come across this issue several times and whenever it occurs it substantially increases render times. On average, our test renders have been around 1 minute. When a frame has this issue, the render time jumps, sometimes as high as 11 hours.

This would be a bug. Can you report this With example .blend separately?

We could reopen this as known issue as in it needs better documentation, workflow example and possibly change default settings.
@Aaron Carlisle (Blendify), @William Reynish (billreynish) what do you think?

tl;dr: teleporting objects requires special workflow for motion blur to work correctly.

Thanks Richard. Unfortunately we can't share anything from the project, but I'll look into duplicating the issue in another example that shows a bump in render times, will send it over as soon as I get a chance to put it together.

Aaron Carlisle (Blendify) reopened this task as Needs Information from User.Fri, Feb 14, 7:02 PM

I am not sure what default settings would need to be changed to fix this. There does seem like the possibility of a bug somewhere so I will leave to report open for now.

Thanks guys. Hopefully I’ll have some time this weekend to put together a sample that better illustrates the problem.

@Aaron Carlisle (Blendify)
If motion blur position should be set to start of frame by default and if boolean properties could have constant interpolation by default, teleporting objects with motion blur in this case would work out of box. I guess that using constant interpolation for bools by default, could have unforseen consequences though and there may be cases where this defaults wouldn't be enough.

So I personally would rather just properly document why this happens (motion in subframes), and what to do to resolve this problem (eliminate motion in subframes while shutter is open).

thanks for re-looking at this guys!