Welcome Dialog

Welcome to the Community!

We have a brand new look! Take a tour with us and explore the latest updates on Adobe Support Community.


Seamlessly Loop Wave Warp Effect

Contributor ,
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

16.1K

Likes

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 Community Professional ,
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

Likes

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

Likes

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 ,
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.

Likes

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 Community Professional ,
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

Likes

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

Likes

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

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.

Likes

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 Community Professional ,
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.

Likes

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 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.

Likes

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 Community Professional ,
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.

Likes

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

LATEST

love you

Likes

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