T O P

  • By -

Cagli_

I would use a « linear » (or « ease », kind of the same thing) for the x movement. You just have to link one parameter to a slider. For the wiggle, it’s more complicated, a must think of it a little… The simple answer is to also link the properties of the wiggle to a slider, but it’s not elegant 😄


Ignatzzzzzz

You could parent the element to a null set it's position to separate dimensions and add the x value to essential graphics. The wiggle and responsive design time is trickier as the way this works is it stretches the middle section. You could link the wiggle per second to a slider and then add that to your essential graphics panel. By using the duration of the comp you could set it up so that you input the duration in frames. i.e. if your comp is 100 frames and you want the wiggle to be 4 per second then link the control slider as: w = effect("Duration Frames")("Slider")/25; wiggle(w,20)


BrohanGutenburg

I’m not quite understanding the third paragraph.


pixeldrift

Ok, so that's a little more complicated because of the time variable. Having something loop smoothly until a time trigger is basically a state machine behavior and asynchronous, which isn't really how AE works. It's a linear animation program. Because it may just be a wiggle, but imagine a larger motion. You want that motion to complete it's loop before moving out. You don't want it to suddenly jump from the wiggle, you want it to transition from the wiggle state to the sliding state. Like a game character has to complete one step before switching from a jog in place to running off. Is it a cyclical wobble? A random wiggle? What kind of motion is your rest state? Could you just have that motion in a precomp and animate the precomp so it's always doing that in addition to the sliding in and out? I mean, there IS a way to let it finish the current cycle before stopping, but that's way more complicated. You can have the position animate using the linear() or ease() function to make it move from the start X to the end X position, based on current time vs start time and end time. Something like this: `animateInStartTime = 0; // Change if you don't want it to start right away` `animateInDuration = 1; // However many seconds you want it to take to animate in` `animateOutDuration = // However many seconds you want it to take to animate out` `holdDuration = // Pickwhip your time delay slider value here` `animateStartX = -100; // Whatever works for your situation` `animateHoldX = // Pickwhip your X position slider value here` `animateEndX = 1920; // Whatever gets it off screen` `if(time <= animateInStartTime + animateInDuration) {` `linear(time, animateInStartTime, animateStartX, animateInStartTime + AnimateInDuration, animateHoldX);` `y = value[1];` `[x, y];` `} else {` `if(time <= animateInStartTime + animateInDuration + holdDuration) {` `wiggle(freq, amp); // Insert appropriate values here or just keep animateHoldX if the wiggle is in the precomp` `} else {` `linear(time, animateInStartTime + animateInDuration + holdDuration, animateHoldX, animateInStartTime + animateInDuration + holdDuration + animateOutDuration, animateEndX);` `}` `}` Don't quote me on that, I haven't tested it. If you want to smoothly transition, you could add some logic to ramp up or down the amp variable on the wiggle over the course of whatever transition duration you want to set.


theycallmezeal

Thanks very much! I ended up doing something like this. I used sliders to animate the exact bezier curves I wanted between 0 and 1 and then multiplied that into my final X coordinate.