• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

How to size shape layers based on time?

Community Beginner ,
May 11, 2019 May 11, 2019

Copy link to clipboard

Copied

After effects.PNG

I'm creating a video to show which chords are playing in a song. The white vertical bar in the image represents the current position in the song. This image shows that B7 is the current chord and C will be next. The chords will scroll as the song plays.

Here is a link that shows what I'm trying to replicate:

https://www.youtube.com/watch?v=NP0MLMXOQdc

I have markers where each chord change takes place. How do I figure out the right width for each chord shape?

Views

580

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
May 11, 2019 May 11, 2019

Copy link to clipboard

Copied

Hi Peter

I'm an AE artist and musician as well.

Lots of ways to tackle this. I would tackle it this way:

I would build the whole visual layout of my songs chords. Then parent all tos to a null which will be your horizontal control. Keyframe the position of the null so that you first chord hits the static white line on the first beat and then go to your last beat and move the hull to the left to bring the last chord into place. Then use time remapping to make sure each chord hits the line when your marker says it should.

Hope that helps,

Steve

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 11, 2019 May 11, 2019

Copy link to clipboard

Copied

Hi Steve,

The null object parenting sounds very interesting.

Time remapping seems like it would simplify the process of getting the chords to appear at the right time. But wouldn't it cause the chord shapes to speed up and slow down instead of scrolling smoothly?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
May 11, 2019 May 11, 2019

Copy link to clipboard

Copied

I would set a specific size (width) to determine a bar/beat. Then each chord/shape has an Expression Slider where you input its size based on this bar/beat. For example, a chord may be used for 1 bar at certain times and 2 bars at other times. For a single bar you input 1 into the Slider and input 2 if the chord runs for 2 bars - the Expression simply multiples its size by the Slider value.

The next step involves aligning the chords in sequence - best to work in terms of a total of 8 or 12 bars - whatever works, as long as you don't get a ridiculously long line of shapes, to the point where working with them becomes a pain.

Next step is to align the shapes - do it manually or use this script - https://aescripts.com/alignlayers/ ​

Finally, for movement, create a Null Object and keyframe it such that it moves a distance equal to 1 bar (shape size). Then use the loopOut("continue") Expression on property. Then link the Chord Shapes to this Null.

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 12, 2019 May 12, 2019

Copy link to clipboard

Copied

I will try out those suggestions.

Before I start on that, right now I'm working on getting just one chord shape animated. I have markers in the timeline for every chord change. I have it animated properly for when the chord is playing.

I can't figure out where to put the keyframes for when the chord shape enters on the right and leaves on the left.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
May 12, 2019 May 12, 2019

Copy link to clipboard

Copied

I would use a shape layer for each chord.

Start with a rounded rectangle with this expression added to the Transform Rectangle1>Anchor point:

x = content("Rectangle 1").content("Rectangle Path 1").size[0]/2;

y = value[1];

[-x, y]

If you make sure that the Transform Rectangle1>Position is 0,0 the layer will always expand from the left side.

I haven't got time to tell you the rest but basically, I would tie the size to the in and out points of the layer and animate the layer's position based on a time multiplier. I'll give you more info after I get done with Mothers Day.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 12, 2019 May 12, 2019

Copy link to clipboard

Copied

>I can't figure out where to put the keyframes for when the chord shape enters on the right and leaves on the left.

I meant to say: I can't figure out where on the timeline to put the keyframes for when the chord shape enters on the right and leaves on the left.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 12, 2019 May 12, 2019

Copy link to clipboard

Copied

I would tie the size to the in and out points of the layer and animate the layer's position based on a time multiplier.

I think that will only work if the in/out points are set so the chord only displays while it is playing. But they have to be wider than that so the chord displays before and after it is played.

I haven't figured out yet how to determine the in/out points of the layers.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 12, 2019 May 12, 2019

Copy link to clipboard

Copied

>use the loopOut("continue") Expression

I tried this expression and it worked. It is like magic.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Valorous Hero ,
May 12, 2019 May 12, 2019

Copy link to clipboard

Copied

LATEST

It is MAGIC! Plus it works really well for lazy folks like me. 🙂

Motion Graphics Brand Guidelines & Motion Graphics Responsive Design Toolkits

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines