It's especially rough when these mishaps happen in animated productions. In live-action, if necessary, you can go back and reshoot something to fix what's wrong. In animation, re-rendering is almost a last option most of the time. Because rendering is so time intensive, it's usually called upon the compositors to try and "edit out" what might be wrong with a shot, if possible. Here, I'll detail one such time where in compositing, I needed to cover up a tiny goof.
Here we have shot 039_01, the last shot of our film to actually get rendered. Everyone was all "Yes, all the shots are rendered!" And then our small team that was still in the studio put the EXR file into nuke to see how it came out... and we noticed something that shouldn't have been there.
|Frame from shot 039_01 with those rotten numbers showing. (post composite)|
NOOOOOOO!! Our camera rig's timecode appeared in the upper portion of our picture. It was almost suggested we leave it, as it wasn't the center of attention in the shot and not necessarily as noticeable. But those of us that couldn't stand it won out quickly. However, a full re-render of the shot, or even just the frames that the numbers appeared on, would have taken too long and we were already too close to the premiere to take another step backward. So, I was asked to see what I could pull together to hide the rogue numbers in Nuke.
The answer was simple enough. I could just cover up the dirty area with a clean slate that was correct. It was SO lucky that the numbers came in after the slight camera move in the scene. It would have been way more problematic if I'd have to move the patch with the camera. But since I lucked out, I could merely take a simple patch and place it over the affected area.
So first things first, the clean plate. Like I said, the numbers appeared on screen after the camera had completed its motions. From that frame on, the camera was motionless. And also, the numbers came down into frame, floated for a moment, and then lifted off the screen again. So after the numbers left, voila, clean slate!
|A frame with no numbers visible that could be used as a clean slate to|
hide the numbers from view. (pre-composite)
|Shot 039_01's Node Tree|
And then I made it into a mask.
Next, I applied the mask to the full EXR of the shot. Applying it before the composites meant I could make changes to the whole shot and wouldn't have to do them separately.
|Tree and Viewer with the rotomask deactive...|
|...and then turned on.|
NO! More numbers! However, there shouldn't be any more numbers on the EXR file, and even if there were, the clean slate should be covering it. Then I discovered that this assumption was correct, and that these new numbers were in fact coming from the EXR for the Ambient Occlusion pass, which had been rendered separate from the rest of the shot.
That bugger. Well, now there needed to be a second cleaning solution for the shot. The cleaning slate wasn't working because I decided to apply it before the scene went through the composite tree, and the AO pass is added later on down the tree. If I wanted to move the clean slate behind the AO pass, I would have to make a second set of nodes specifically for the slate, and that would get very cluttered pretty quickly. So instead, I decided to make a little "fill light" to cover the numbers.
The first image is the node tree used to create the light. The input of the merge is connected into the colorspace node of the clean slate. The RotoPaint node masking the slate is a repeat of the original RotoPaint, giving the new light it's shape. The CC node does exactly what you think it might. I left the panels on the right side visible to show you that I also have the Merge node animated.
This was an unexpected and quick fix I didn't know I would need to make. However, when it came to judging how to place the light, I had to make it at least somewhat believable that there could actually be spill light there coming from the window. Not to mention, a matching color.
And there you have it! Replacing an area of a shot with a still image in order to quickly hide some of the unfortunate goofs that occur when you least expect them too. And I say quickly because this method took maybe an hour or so to get completed, whereas a re-render of those woe begotten frames would've taken an overnight rendering shift!