16:50 you forget that color print always have different halftone angles for each color channel, try 15 / 45 / 75 for example and feel the difference ) For this you will also have to duplicate the footage composition to rotate them accordingly. And you can use Camera Z Rotation parameter in Card Dance effect instead of adding transform effect. P.S. Thanks for interesting tutorial.
Here’s solution with 3 different letters, it works the same as the RGB solution at 15:44. But every color has it’s own custom shape precomp. And you must posterize your footage first and tint it RGB (e.g. with CC Toner). I’m working on a solution with more custom shapes with time displacement involved. But it’s a render overkill 😂
Here's a formula for the size of the dots and a slider to control it: I've done the math and it is simple: - 2 layers (top to bottom): 1) solid named: dot-1 2) original footage (I pre-compose it with alpha) named: insert-precomp >>>>>>>>>>>>>>>>> in layer 1: (effects top to bottom) - - slider control - - CC Ball Action (expression in the grid spacing key): x = thisComp.width; // Replace "x" with the actual width of the current composition e = effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider r = ((x/(x/e))-(e/(e/2)))/(e/(e/2)); r - - Card Dance (expression in the rows key) e = effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider e_rows = thisComp.height/e; e_rows; (expression in the columns key) e = effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider e_columns = thisComp.width/e; e_columns; >>>>>>>>>>>>>>>>>>> in layer 2: (effects top to bottom) - - Mosaic (expressions in the Horizontals Blocks key) e = thisComp.layer("dot-1").effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider e_rows = thisComp.height/e; e_rows; (expressions in the Vertical Blocks key) e = thisComp.layer("dot-1").effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider e_columns = thisComp.width/e; e_columns; - - Invert
4:34 gridSpacing = thisComp.width / dotsNumber / 2 - 1. But this parameter accepts only integer number, so you can put square shape into this layer and round Grid Spacing parameter to closest bigger integer (Math.ceil(gridSpacing)) and change rectangle size by expression like this: Math.ceil(gridSpacing + 1) * 2 * dotsNumber; and to fit result to comp you can add Transform effect with scale expression like: thisComp.width / content("Rectangle Path 1").size[0] * 100
Quick check of my formula (Comp.width / dotsNumber / 2 - 1). You have this pairs at 4:26: 10-100, 19-55, 24-44, 49-22. Let's substitute these numbers into the formula: 2200 / 100 / 2 - 1 = 10; 2200 / 55 / 2 - 1 = 19; 2200 / 44 / 2 - 1 = 24; 2200 / 22 / 2 - 1 = 49. So, you found these combinations only because the width of your composition was divided by the double number of dots without a remainder. Also, the following number of dots would suit you: 1, 2, 4, 5, 10, 11, 20, 22, 25, 44, 50, 55, 100, 110, 220, 275, 550 and so on.
16:50 you forget that color print always have different halftone angles for each color channel, try 15 / 45 / 75 for example and feel the difference ) For this you will also have to duplicate the footage composition to rotate them accordingly. And you can use Camera Z Rotation parameter in Card Dance effect instead of adding transform effect. P.S. Thanks for interesting tutorial.
I absolutely love your tutorials, so inspiring!
Thank you so very much. This is an incredibly powerful tutorial!
Another great one, Michael!
Thanks, man 😊
amazing! There are no excuses today because of people like you.
Youre such a hero for this, thank you!
Thanks man 😊
Great tutorial as always!
Thank you, Zohaib 😊
Great and helpful
Great tutorial! For the custom shape, why not just use a custom shape in the shape layer?
Thank you very much! Good Point! you could do this with custom shapes. But with the other method you could use images, videos, anything 😎
@@MichaelPonch 👍🏼 That could definitely be useful for a 1s and 0s effect.
So good!
Thank you 😊
Awesome 🎉
In the custom shape effect, how can I achieve different letters for different shades of black?
Here’s solution with 3 different letters, it works the same as the RGB solution at 15:44. But every color has it’s own custom shape precomp. And you must posterize your footage first and tint it RGB (e.g. with CC Toner). I’m working on a solution with more custom shapes with time displacement involved. But it’s a render overkill 😂
good
Sir great
Wow ❤️❤️❤️
Here's a formula for the size of the dots and a slider to control it:
I've done the math and it is simple:
- 2 layers (top to bottom):
1) solid named: dot-1
2) original footage (I pre-compose it with alpha) named: insert-precomp
>>>>>>>>>>>>>>>>> in layer 1: (effects top to bottom)
- - slider control
- - CC Ball Action (expression in the grid spacing key):
x = thisComp.width; // Replace "x" with the actual width of the current composition
e = effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider
r = ((x/(x/e))-(e/(e/2)))/(e/(e/2));
r
- - Card Dance
(expression in the rows key)
e = effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider
e_rows = thisComp.height/e;
e_rows;
(expression in the columns key)
e = effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider
e_columns = thisComp.width/e;
e_columns;
>>>>>>>>>>>>>>>>>>> in layer 2: (effects top to bottom)
- - Mosaic
(expressions in the Horizontals Blocks key)
e = thisComp.layer("dot-1").effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider
e_rows = thisComp.height/e;
e_rows;
(expressions in the Vertical Blocks key)
e = thisComp.layer("dot-1").effect("Slider Control")("Slider"); // Replace "Slider Control" with the name of your slider
e_columns = thisComp.width/e;
e_columns;
- - Invert
Wow 🤩 Thank you. I’ll try it. How did you find out?
4:34 gridSpacing = thisComp.width / dotsNumber / 2 - 1. But this parameter accepts only integer number, so you can put square shape into this layer and round Grid Spacing parameter to closest bigger integer (Math.ceil(gridSpacing)) and change rectangle size by expression like this: Math.ceil(gridSpacing + 1) * 2 * dotsNumber; and to fit result to comp you can add Transform effect with scale expression like: thisComp.width / content("Rectangle Path 1").size[0] * 100
Quick check of my formula (Comp.width / dotsNumber / 2 - 1). You have this pairs at 4:26: 10-100, 19-55, 24-44, 49-22. Let's substitute these numbers into the formula: 2200 / 100 / 2 - 1 = 10; 2200 / 55 / 2 - 1 = 19; 2200 / 44 / 2 - 1 = 24; 2200 / 22 / 2 - 1 = 49. So, you found these combinations only because the width of your composition was divided by the double number of dots without a remainder. Also, the following number of dots would suit you: 1, 2, 4, 5, 10, 11, 20, 22, 25, 44, 50, 55, 100, 110, 220, 275, 550 and so on.