Animating influence of 'Child Of' bone constraint causing motion blur errors. #73756
Labels
No Label
Meta
Good First Issue
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
Eevee & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds, Tests & Devices
Module
Python API
Module
Rendering & Cycles
Module
Sculpt, Paint & Texture
Module
User Interface
Module
VFX & Video
Priority
High
Priority
Low
Priority
Normal
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Information from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
9 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender-manual#73756
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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:
blender/blender@c939b4df18
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.
blur-childof-constraint-bug.blend
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).
apple-blur-test.blend
apple-blur-test.mp4
Exact steps for others to reproduce the error
Or
Added subscriber: @stephenthomas
blender/blender#73758 was marked as duplicate of this issue
Changed status from 'Needs Triage' to: 'Confirmed'
Added subscriber: @iss
Changed status from 'Confirmed' to: 'Archived'
Looking at this file again, after looking at blender/blender#73758 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.
0030-0060.mp4
Added subscriber: @pokedstudio
This comment was removed by @pokedstudio
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
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.
Added subscribers: @WilliamReynish, @Blendify
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.
@Blendify, @WilliamReynish 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.
Changed status from 'Archived' to: 'Needs User Info'
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.
@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!
Changed status from 'Needs User Info' to: 'Confirmed'
Added subscriber: @ideasman42
Marking as documentation TODO.
Added subscriber: @vasiln
@stephenthomas
Just as a work-around, considering that this is related to a current, probably commercial, project, baking to visual keyframes should eliminate the weird in-betweens that happen from animated child-of influence.
If there is a bug related to huge rendering times when child-of influence leads to large in-between differences in object position, it should resolve that as well.
Thanks @vasiln, it was a commercial project that ended a while ago :) We did some kind of workaround, think it was having several instances of the object being picked up with constraints based on if they were being held or not, then animated the visibility to switch between them. We did consider baking out the meshes, but didn't in the end.
Added subscriber: @StephenHamacek
Thanks for this tip, i've just come across this bug myself, and it certainly doesn't make sense from an artist pov, when object is at pt A then pt B, but because of a constraint the motion blur doesn't work.
Added subscriber: @B_Engstler