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

Seamlessly Loop Wave Warp Effect

Engaged ,
Dec 02, 2017 Dec 02, 2017

Copy link to clipboard

Copied

For most effects with a "phase angle", all I have to do to seamlessly loop them over a given time interval is just place a keyframe with at phase angle 0 at the beginning and then a keyframe at the end that's just any whole integer of the phase angle (for example, I can do this with Motion Tile to repeatedly shift an image across the screen).  However, when I attempt to do the same thing with the Wave Warp effect, it doesn't line up at all!  (This is after setting it to a wave speed of 0.)  I noticed that I instead had to set the phase angle to o 256 degrees to get it to line up properly (or any whole number multiple of 256 for more loops).  I'm not quite sure why this is.  I'm not sure if this is consistent across layers or not, as I've got the feeling it might be dependent on the actual width or height of the layer.

So how can I make wave warp loop seamlessly?

Views

34.8K

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
LEGEND ,
Dec 03, 2017 Dec 03, 2017

Copy link to clipboard

Copied

I'm not clear what you are saying. The exact repeats are dependent on the Wave Width, which is user controlled and the phase is merely an offset for the underlying formula. Of course for a sine wave it will have something to do with the equivalent angles to multiples of Pi. It's not a linear function. Additionally of course there may be an uneven fractional number of waves depending on how you set the width. Similar logic applies to other wave types. There's nothing wrong here. You just need to understand the math and eitehr tweak your values accordingly or create a smart expression for it.

Mylenium

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
Adobe Employee ,
Dec 21, 2017 Dec 21, 2017

Copy link to clipboard

Copied

Hi JohnT,

So how can I make wave warp loop seamlessly?

Did you get this working according to your needs? How did you do this?

Thanks,
Kevin

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
Engaged ,
Dec 23, 2017 Dec 23, 2017

Copy link to clipboard

Copied

I just had to stick with what I said in my original post (using multiples of 256 degrees for the phase angle).  It seems to be independent of the other parameters of the wave warp function; no matter what layer I apply it to or whatever other parameters I change, for some reason 256 seems to correspond to a phase change of 2*Pi for the wave (hence creating the loop).

Maybe this is an issue with CC 2014.0 that isn't present in other versions (not sure).  Perhaps that's why there's this confusion.

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
People's Champ ,
Dec 24, 2017 Dec 24, 2017

Copy link to clipboard

Copied

johnt53984649  wrote

So how can I make wave warp loop seamlessly?

it loops automatically using 'Wave Speed'

Is there some reason you're using key frames & a loop out?

Either way Mylenium gave you the correct answer. 

It's the math.  Luckily, the effect does the math for you if you use 'Wave Speed'.

There's no keyframing or Loop Outs necessary

~Gutterfish

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
Contributor ,
May 02, 2019 May 02, 2019

Copy link to clipboard

Copied

Gutterfish  wrote

Is there some reason you're using key frames & a loop out?

If I need to make 10 or 30 seconds or any other length of the video file, which is a perfect loop. It is not possible to do using only "Wave Speed" parameter.


Parameter "Phase" value *256   -   AMAZING! It really works!  Thank You johnt53984649

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
Engaged ,
May 02, 2019 May 02, 2019

Copy link to clipboard

Copied

Once again, I'm not sure why that is, and I think that there are situations where you may have to add or subtract one degree after doing the multiplication, but that's just what I observed.  If anybody can actually explain the mathematics behind it, I'd love to know.

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 03, 2019 May 03, 2019

Copy link to clipboard

Copied

If you use loopOut() on an animation that has only 2 keyframes the first and last frame must be identical. For example, if you loop rotation and set the first keyframe to 0º and the second keyframe to 360º the loop will be perfect. If the distance between the first and second keyframe is 10 frames so the motion is 36º per frame then you might think that you should set the second keyframe at 9 frames and set the value to 234º, but that won't work. The first and last frame must be exactly the same for Loop to work. That is how Java works and if you really think about it, it makes sense.

255 (the perfect value if the keyframes are 10 frames apart and the comp frame rate is 29.97) works because that's the value they chose. There's nothing magical about it. It is entirely possible that no consideration was ever made when picking that number.

If you set up Wave Warp so the Wave Speed is zero and the Wave Width is the same as your layer width you can get a seamless single wave to loop perfectly if you simply set a keyframe at 0 and another at 256 and add the loopOut() expression. It's kind of a waste of time though because you can get the exact same animation if you turn off the Phase Animation and simply adjust the speed.

I would have to see the project and fully understand what you are trying to accomplish to figure out why you would try and loop the phase.  I can get exactly the same animation by setting wave width to 1920, speed to -3 and leaving phase alone as I get by setting wave width to 1920, speed to 0, and animating phase from 0º to 257º over 10 frames. Here's everything I modified to get exactly the same motion with Wave Warp:

Screenshot_2019-05-03 06.29.26_sguBPZ.png

Both layers are perfectly aligned and the motion is exactly the same. I'm not going to take the time to test it but it would not surprise me to find that you need a different phase value with different widths layers or different frame rates.

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
Engaged ,
May 03, 2019 May 03, 2019

Copy link to clipboard

Copied

The reason I would want to loop the phase is because I'm developing compositions of a fixed length that need to loop seamlessly with themselves (so the first and last frame need to be identical, with the last frame not rendered).  Hence if I want direct control over how many times the wave occurs, animating the phase parameter is by far the easiest way to achieve that.

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 03, 2019 May 03, 2019

Copy link to clipboard

Copied

D

If you need a single complete wave to move over 10 seconds then all you need is a way to easily match the first and last frame of a comp that is 10 seconds and 1 frame long.

Try this:

  • Get the first frame of the wave animation to look the way you want it to look
  • Set wave speed to zero
  • Duplicate the layer - set the blend mode of the duplicate to Difference
          (you should see a mostly black screen - blackness depends on the aliasing quality and transparency)
  • Slide the top copy down the timeline until the in-point is at 10:01 seconds
  • Adjust the wave speed of the bottom copy of the layer until you complete one cycle and the frame is mostly black again
  • Hold down the Ctrl/Cmnd key to fine tune the speed if necessary
  • Press Ctrl/Cmnd + left arrow to move back 1 frame
  • Press n to set the work area to the current CTI position
  • Add your comp to the Render Cue to render a perfect one cycle loop that is 10 seconds long using the Work area as the duration (that's the default)

If you want multiple cycles in your 10-second loop just count the number of times you get a mostly black frame. It should be easy and precise. No need for a loopOut() expression or anything else. It should only take you about 2 minutes to set up a perfect loop. I personally don't see any reason to have more than one complete wave cycle in a loop, but if that is what you want it's really easy to do. This took me about 2 minutes to create:

Screenshot_2019-05-03 10.48.35_gMSAFv.png

It loops perfectly 4 times in 10 seconds.

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
Explorer ,
Sep 08, 2022 Sep 08, 2022

Copy link to clipboard

Copied

Those 2 minutes counts a lot on workflow. We need to accept the rough-old Wave Warp lacks of Cycle Phase and Revolutions settings.

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
New Here ,
Sep 10, 2022 Sep 10, 2022

Copy link to clipboard

Copied

Thank you! It works out! 

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 ,
Apr 11, 2024 Apr 11, 2024

Copy link to clipboard

Copied

LATEST

Thank !
Great methode 🤓 🖖

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
New Here ,
Sep 01, 2021 Sep 01, 2021

Copy link to clipboard

Copied

love you

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
New Here ,
Jan 17, 2023 Jan 17, 2023

Copy link to clipboard

Copied

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
New Here ,
Jul 20, 2023 Jul 20, 2023

Copy link to clipboard

Copied

The key is to use a bit of math to figure out what to set the Wave Speed at. Keep your Phase angle at 0 and don't use any keyframing. Set Wave Height/Width/Direction to whatever you want and change as desired.

 

Step 1: figure out the duration of time (IN SECONDS) you want to loop seamlessly within. If you want the animation to loop seamlessly within the length of your composition or the length of your work area, figure out how many seconds long your composition or work area is. This could mean converting hours/minutes to seconds which you can do easily with the help of google and/or a calculator. **(if the last two digits in the timecode of the desired duration of the loop aren't 00, jump to the red asterisk section below)**.

 

Step 2: figure out the wave speed by dividing the number of times you want the animation to loop by the duration of time you want the animation to loop seamlessly within (IN SECONDS). Type that value into the Wave Speed up to four decimal points to get it as accurate as possible so the loop is seamless. For example, if you want the animation to loop twice over the course of 15 seconds, the math would be: 2/15=1.3333 so your Wave Speed should be 1.3333. Fiddle with the number of times you want the animation to loop in this equation in order to adjust the speed of the animation while keeping the loop seamless.

 

Step 3: Check your work and you should be good to go!

 

 

**the last two digits of your timecode are in FRAMES, NOT HUNDREDTHS OF SECONDS so you must convert the frames to seconds. To figure out how many seconds the last two digits of your timecode equates to, divide the value of the last two digits of your timecode by the fps of your composition. Add this to the rest of the desired duration in which you want the loop to occur (in seconds) and continue with Step 2 above. 

 

EXAMPLE:

You want the wave warp animation to loop seamlessly within your work area. The duration of your work area is 00:00:14:24 (AKA 14 seconds and 24 frames), according to your timecode. You want the animation to loop 5 times within that time. You are working in 30fps. The math would be as follows:

 

Frames to seconds: 24frames/30fps = 0.8 seconds

Total duration of work area in seconds: 14 seconds + 0.8 seconds = 14.8 seconds

Wave Speed: 5loops/14.8seconds = 0.3378

 

 

 

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
New Here ,
Jul 20, 2023 Jul 20, 2023

Copy link to clipboard

Copied

Essentially, divide the number of loops you want (x) (must be a whole number for seamless loops!) by the length of time (in seconds) you want the loop to occur in (t) to get your Wave Speed (W) and play with the # of loops you want (x) in order to change the speed of the animation.

W = x/t

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