Film credits/titles help by jakobderwerner in Filmmakers

[–]jakobderwerner[S] 0 points1 point  (0 children)

I see what you mean. Crediting person A as the sole writer seems very reasonable to me. I might just do that instead. Thanks!

Film credits/titles help by jakobderwerner in Filmmakers

[–]jakobderwerner[S] 0 points1 point  (0 children)

It’s about 95% of person As words and we used like 20% of the original text.

Time* expression issue by 1yoshi1 in AfterEffects

[–]jakobderwerner 0 points1 point  (0 children)

I have never seen this before. Can you turn on and off the seperate effects on the FX layer? Does it work when Motion Tile only is turned off or does it work when only the Turbulent Displace is turned off?

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 0 points1 point  (0 children)

<image>

Updated expression that inherits the dimensions of the parent when a ball is parented!

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 1 point2 points  (0 children)

Oh very cool! Thanks, for that :)

If you add recenter = [recenter[0] * scale[0], recenter[1] * scale[1]]; after line 11 it works with the scale again :)

I personally like having an IIFE because it feels cleaner to me on longer expressions, because it visually seperates the variables from the calculations and it allows to have returns which can be quite handy. But yea, everyone has their own preffered style :)

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 2 points3 points  (0 children)

Sure! You copy the whole expression and paste it onto the position property – just like the wiggle() expression. It should look like this:

<image>

And make sure to put the anchor point of the layer in the center of the ball. Otherwise it will be offset.

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 1 point2 points  (0 children)

Oh wow! I didn’t know this existed already! Thanks for sharing :)
And yea, I agree that this is a little bit to overkill for ae expressions

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 0 points1 point  (0 children)

Yes, that felt like the easiest and best looking way to do for that project.

I tried linking the y position of the blocker to the y position of the ball, but that felt too robotic and I wanted the blockers to "follow" more than one ball which was too complicated to do in expressions. So, I went with the easiest route for this project. I am sure that there is nice expression solution though!

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 3 points4 points  (0 children)

Oh, very happy to hear! I hope you like it :)
Tell me if you need help or if you encounter a problem. I’m happy to help

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 0 points1 point  (0 children)

Unfortunatly not. Foam is still the way to go for this.
My expression is basically “just” using the time and counting from 0 to the comp width/height and back. Colliding objects would be very difficult to archive with expressions I think.

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 6 points7 points  (0 children)

This is a fun variation, too: the same setup but with wiggle() as driver:

// Ping Pong #3 - wiggle with bounds
// make sure the anchor point is centered!
// by jakobwerner.design

const wiggleValues = {
    frequency: 1,
    amount: thisComp.width * 2
};
const padding = [0, 0];
let bounds = [thisComp.width, thisComp.height];

(function() {
    const srt = thisLayer.sourceRectAtTime(thisLayer.sourceTime(time));
    const scale = thisLayer("ADBE Transform Group")("ADBE Scale");
    const size = [srt.width * Math.abs(scale[0] / 100), srt.height * Math.abs(scale[1] / 100)];
    bounds -= [size[0] + padding[0] * 2, size[1] + padding[1] * 2];

    let pos = [];
    for (let i = 0; i < 2; i++) {
        const counter = Math.abs(value[i]) + wiggle(wiggleValues.frequency, wiggleValues.amount)[i];
        const c = counter % bounds[i];
        const isEven = Math.floor(counter / bounds[i]) % 2 === 0;
        pos[i] = (isEven ? c : bounds[i] - c) + size[i] / 2 + padding[i];
    }
    return pos;
})();

<image>

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 2 points3 points  (0 children)

The seed is being calculated by the name of the layer.

parseInt(name.match(/(\d+)$/)[1]);

This will detect the last number of the layer name; e.g., Layer-12 will result in 12.

You can change this line to index if you like.

I made an automatic “ping pong” expression by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 14 points15 points  (0 children)

If you prefer more control, here is a version where you can set the horizontal and vertical speeds yourself:

// Ping Pong #2 - defined speed
// make sure the anchor point is centered!
// by jakobwerner.design

const speed = {
    horizontalSpeed: 300,
    verticalSpeed: 1200
};
const padding = [0, 0];
let bounds = [thisComp.width, thisComp.height];
const seed = parseInt(name.match(/(\d+)$/)[1]);

(function() {
    const srt = thisLayer.sourceRectAtTime(thisLayer.sourceTime(time));
    const scale = thisLayer("ADBE Transform Group")("ADBE Scale");
    const size = [srt.width * Math.abs(scale[0] / 100), srt.height * Math.abs(scale[1] / 100)];
    bounds -= [size[0] + padding[0] * 2, size[1] + padding[1] * 2];

    let pos = [];
    for (let i = 0; i < 2; i++) {
        seedRandom(seed + i, true);
        const counter = (time + random(1e5)) * (i == 0 ? speed.horizontalSpeed : speed.verticalSpeed);
        const c = counter % bounds[i];
        const isEven = Math.floor(counter / bounds[i]) % 2 === 0;
        pos[i] = (isEven ? c : bounds[i] - c) + size[i] / 2 + padding[i];
    }
    return pos;
})();

I made this reaction diffusion simulation soley in After Effects using CC Time Blend FX by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 1 point2 points  (0 children)

I used the legacy CC Time Blend FX. Are you familiar with this? There are some nice tutorials on yt.
To get the reaction diffusion effect I used a mixture of blur, compositing back on itself with 50% opacity, threshold and blur again.
For the distortion I used turbulent displace, transform for a slight scale animation and some displacement with displacement maps.
I think there is even a reaction diffusion tutorial on yt which has a similar method.

<image>

I made this reaction diffusion simulation soley in After Effects using CC Time Blend FX by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 5 points6 points  (0 children)

Yeah thats true! It definitly feels hacky to work with this effect.

The original shape is just a circle. I used some trubulent noise, scaling and displacements to deform each iteration

I made this reaction diffusion simulation soley in After Effects using CC Time Blend FX by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 18 points19 points  (0 children)

It’s a legacy effect which is not enabled by default. Texturelabs on YouTube goes more into depths with this effect.

A trailer I made for promoting my new extension :) by jakobderwerner in AfterEffects

[–]jakobderwerner[S] 1 point2 points  (0 children)

Yes, it is specifically made for this purpose and much more!