5

I'm after a very specific effect and I haven't found an effective way to accomplish it. Basically, I want dots to appear along a path and disappear over time. The dots should not move after they're born, only fade out via alpha channel. It's important that this is an actual alpha transformation, not just a color blend, because I plan to overlay this graphic on different source videos. The paths also need to be easily editable and there will be hundreds of dots, so individual layers for each dot is out of the question.

The best way I can describe the effect I'm after is: Imagine a person walking through the snow, the footprints appear instantly, and fade out over time. I've seen plenty of tutorials on creating a series of elements which follow each other, as if you're dragging a string of pearls, but this is not what I'm after.

I've tried After Effects, and it's easy enough to make a dotted line with a shape layer, but a gradient stroke doesn't follow the path, or give me control over start position, end position, or offset. (here's an illustration of the problem)

enter image description here

I've also tried using Cinema 4D and mograph, but keep running into similar problems. I basically can't get a graduated shader effector to follow a spline.

Any solutions which use C4D or AE are preferred. All are welcome. Thanks.

  • Semi-related, though I'm sure there are better options. – AJ Henderson Jan 15 '15 at 22:53
  • Feel free to comment if my answer don't solve your issue... – p2or Jan 19 '15 at 11:35
  • It looks good. The edits you added are helpful. I just can't help but feel that there's an easier way. I'm going to give it some more time. Actually, maybe add a bounty. – Jason Conrad Jan 19 '15 at 17:04
  • Ok, nice :) What exactly bothers you? Do you prefer After Effects? 2d is ok? – p2or Jan 19 '15 at 19:47
  • I'm not too familiar with blender, and am not quite sure how to translate into c4d. I guess it's the soft transition part that I don't quite get, or maybe it sounds a little cumbersome. Honestly I haven't sat down and tried it yet, it might make more sense when I do. And really, this is a compositing problem, so I'm going to need to see the background as I draw over it and decide where to place the lines. I know how to do that, it just seems like a job for a compositing app. Guess I'm disappointed it's not as simple as it seems like it should be. – Jason Conrad Jan 19 '15 at 22:10
5

A simple way in blender or any other 3d package would be to use a boolean modifier, if you want to subtract real geometry:

enter image description here

  1. use a array modifier to duplicate your shape
  2. create a path and aligning the objects on it
  3. animate the object count of the array modifier
  4. create a simple geometry for subtracting the path objects at the beginning
  5. add a boolean modifier to your base object
  6. animate the position of the boolean object to subtract the shape objects
  7. make the boolean object invisible to the camera (e.g. with a transparent material)

enter image description here

.blend file


Edit: To get a soft transition you can render the bool object seperatly, blur the alpha channel and subract it from the another alpha. Or simply use a roto mask.

enter image description here

enter image description here

.blend

  • Very close, but it's important that the tail fades out. C4D has booleans too, and I could do something very similar. It's just the "8. OR render the bool object as mask for creating a softer edge" that's tricky for me, and actually the crux of this whole question. The most frustrating part about it is that I don't actually need the effect to be 3D. I'd just settle for a 3D app solution if that's the only way I can get the control I need. All I really want is an alpha gradient that can traverse a path. But thank you for your answer, I'll upvote it. – Jason Conrad Jan 16 '15 at 14:06
  • @JasonConrad To get a nice alpha gradient, you can render the bool object seperatly like this: i.stack.imgur.com/qm5ts.png, blur the alpha pass and combine both alphas. – p2or Jan 16 '15 at 15:25
  • 1
    I would also suggest to do the alpha fade in post. – PTS Jan 22 '15 at 22:08
5
+150

here's a solution that I've used. It can be used to reveal a shape path, or as a way to add a smooth fade-out on the stroke effect as-is:

  1. Create your dotted path using the pen tool (or whatever you like), then use the path to create a mask on a new adjustment layer. I use an expression so that I can dynamically change the path - just alt-click the stopwatch on the Mask Path property and drag the pick-whip to the shape path: using pick-whip to synchronise paths

  2. Apply the stroke effect to the mask path on the adjustment layer. We'll be using the adjustment layer as an alpha matte for your dotted line layer, but best to do that later so you can see what you're doing. Set the Brush Size property so that the brush covers the dotted line layer. Set the Paint Style property to On Transparent.

  3. Animate the Start and / or End property for the stroke effect to animate the reveal / disappearance of your stroke. Now this creates a hard start and end, so what you have to do is apply the Echo effect — Effects>Time>Echo. set the decay to something less than 1. You may want to increase the Number of Echos and decrease the Echo Time to make the fade in/out/smooth.

    stroke effect fading smoothly

  4. Now set your alpha matte on the shape layer et Voila! final result

If you want the stroke to fade in as well as out, you'll need to add another echo, but with the echo time set to a positive value (or is it negative) so that you're echoing from the future. You thought it was slow with just one echo effect applied? You're in for a world of waiting now! The reason it's so slow is that it has to compute the value for the previous frames for each of the echos, so for every frame you're rendering ten, twenty frames. That's why you might want to only ramp up the number of echos when it's time to send it off to the render.

Caveat: if the stroke crosses itself the alpha matte will reveal areas out of sequence. You can manually mask the offending areas out, or split the stroke path up into separate layers, this works, but it's a world of tediousness, I know from experience - I used it on an animation that featured hand-written text slowly fading in. Also Echo is dog slow, so you may want to ramp the settings up to final quality only once you done everything else you want to in the comp.

uh oh out-of sequence image appearing.

You can mitigate this by making sure that your brush size is as small as possible:

enter image description here

But if that's still a problem you can spit the stroke: add an extra point somewhere between the overlapping parts of the stroke enter image description here Now duplicate the shape layer and the adjustment layer (note that I've coloured the duplicated shape layer yellow) enter image description here

Then you delete the points at either side of the point you created on each layer

enter image description here

one side

enter image description here

and the other.

Make sure you adjust the expression in your duplicated adjustment layer to reflect the name of the new stroke layer - if it was thisComp.layer("Shape Layer **1**").content("Shape 1").content("Path 1").path you'll have to use the pick-whip or manually correct it to thisComp.layer("Shape Layer **2**").content("Shape 1").content("Path 1").path.

Now you just have to offset the keyframes in your adjustment layer so that one starts when the last one stops. You might need to juggle the position of the middle keyframes to deal with the echoes. enter image description here

and you have a correctly revealing crossing:

enter image description here

  • Thanks for the really spectacular answer. Just wanted to say I'm sorry for not awarding you the full 300 in time, I totally meant to, but I got pretty sick for a week or so. Anyway, much appreciation :) – Jason Conrad Feb 10 '15 at 13:20
1

I tried to accomplish a similar effect and used the 'Vegas' and 'Echo' (or a similar) effect in AE to create an alpha matte.

The problem with the 'Vegas' effect is that when you set your line to be right before the beginning of the path, it appears at the end of it (try it out, you'll quickly notice what I mean).
My solution was to only use a little dot in the 'Vegas' effect but duplicate and fade it over time using an 'Echo' effect (or another of that sort).
The 'Echo' effect controls the length and falloff of the stroke, the color and width are controlled by 'Vegas'.

It's not very pleasingly clean, but it might get the job done.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.