"Solitaire ending " effect using Echo effect
Copy link to clipboard
Copied
Hello all, Im trying to achieve the solitaire ending / Windows XP glitch effect using the Echo effect similar to this reference.
https://giphy.com/clips/laguarimba-glitch-guarimba-film-festival-VWKZo6eOpI9C58M2k1
I pretty much want the echos made to stay forever and not move based on the path the animated object goes. I know there is an expression out there for the echo effect that can achieve this, but I just can not find it for the life of me. Does anyone know this expression? Or perhaps a better way to achieve this effect?
Copy link to clipboard
Copied
Start by pre-composing the moving layer you want to echo, name the layer Echo, make sure that you Move All Attributes to the new comp, and Open the comp. Pre-compose again, moving all attributes and naming the new comp Original, but do not open the second copy.
Apply Echo to the Echo comp, move to the last frame and this expression to echo time:
- thisComp.frameDuration
Now set the Echo Operator to In Front and start increasing the number of echoes until you get about the number of echoes that you want in your final comp. Don't worry about the starting point yet.
Here comes the fun part. Open the composition settings using Ctrl/Cmnd + K, go to the Advanced tab and select Preserve Frame Rate when nested, return to the first tab, and start fiddling with the frame rate until you get the echoed frames to cover the motion path completely. The Comp Preview will update if you click off the frame rate. When you have the echoes starting at the initial position of the moving object, close the comp.
Check the work. In this example, the frame rate was set to 12 fps.
Because the frame rate of the nested comp matches the frame duration of the echo, the moving object will not move in the frame. You should now be able to return to the Main comp and have the laying down Solitaire effect.
Copy link to clipboard
Copied
That's a really neat implementation. Although it is giving me flashbacks to when Solitaire and minesweeper were the only games I had.
Copy link to clipboard
Copied
Thank you so much for the fast answer Rick! Awesome solve!
I was also able to find the buried reddit post which had a slightly different approach to this elusive effect, I will post here for visibility.
1. Make your position animation and pre comp it.
2. Place your pre comped animation inside a master / main comp.
3. Within the master/ main comp, apply "Echo" effect on your pre comp layer. Set "Echo Operator" parameter to "Composite in Front".
4. Now for a little math, divide -1 by the frame rate you are using for your main comp and your pre comp (in my example this would be 24).
So -1 / 24 = -0.04166666666
5. Take this calculation and input it in the "Echo Time (Seconds)" parameter.
6. On "Number of Echoes" parameter, alt click the stopwatch to enter expressions mode and input "time*(youre frame rate)". In my case the code will look like "time*24".
Now if you play your animation should have the Solitaire effect!
Please note that the way this is set up the number of echoes increases over time, so it can get really sluggish if you run this effect for a real long time. I noticed the effect kind of doesn't work properly on frame rates that arent whole numbers like 23.976, so try to keep it a whole number. Also make sure all comps are consistent frame rates!
Copy link to clipboard
Copied
The thisComp/frameDuration gives you the same result, and you don't have to do any math. You can also change the frame rate of the nested comp and preserve the frame rate when nested to get one card to appear as slowly as once every second with the frame rate set to 1.
Add Time Remap to the nested comp and set preserve frame rate in the nested comp, and you can have the first frame last for 5 seconds, the second for 3, the third for 2, and then speed things up until you get one 30 new cards per second.
Copy link to clipboard
Copied
This is perfect for something I've been trying to do Rick!
I wasn't sure about having to make the frame rate change though (we have to work to a particular frame rate) but using your method and multiplying it my -1 (thisComp.frameDuration*-1) seems to achive the same thing while keeping comp frame rate.
Wouldn't have got there without your method though so thanks again!
Ed

