Grow/Shrink custom behaviour: is it possible to publish keyframes time-positions?

I created a custom behaviour such that an object grows from 0% to 100% scale, it is kept at 100% scale and then it shrinks from 100% to 0%. The behaviour curve shape looks like the following:


_/‾‾ ‾ ‾ ‾ ‾ ‾ ‾ ‾ ‾  ‾ ‾ ‾ ‾ ‾ ‾ \_


I wish to do publish the keyframes time-positions so that I can change how long it takes to my object to grow and then to shrink (i.e. I want to change the slopes of the two oblique lines that you see in the drawing above.)

In that way I would have two published parameters that I could comfortably change from FCPX.


Is it possible to do that? And if so, how?




MacBook Pro 14″, macOS 14.1

Posted on Nov 19, 2023 4:40 AM

Reply
Question marked as Top-ranking reply

Posted on Nov 19, 2023 9:44 AM

My method is to use 2 Ramp behaviors and RIG the Start/End Offsets so that they represent % of length of clip for the timing. One Ramp will be "pre-set" for the beginning and the other for the end. It is IMPERITIVE that the Ramp behaviors exist for the full length of the project, even though that may seem counterintuitive.


Ramp behaviors are "additive" so it doesn't matter if the Start and End animations overlap.


In order to do that, for the Start Offset, you Rig to a Slider widget from 0 to the # of frames* in your project.

For the End Offset, the Slider is rigged from # of frames to 0 [corresponding to 0 - 100 in the slider widget — in other words, the End Offsets are rigged "backwards"].


*Frames in project — the number value depends on your preference to start a project on frame 0 or frame 1. If your projects start on Frame 0, then the # of frames in project is the actual length - 1. For a 10 second 30fps project, that would be 299...

If you need to be able to shut off animation, then you would generally set the End Offset to Frames + 1 to 0 for the slider. (I hope that makes sense...)


Setting the timing in Final Cut it just a matter of positioning the playhead and dragging the Offset widgets until animation is detected — similar to moving the keyframe to the playhead position. It has been, for me, the best solution for UX.


HTH

Similar questions

3 replies
Question marked as Top-ranking reply

Nov 19, 2023 9:44 AM in response to Barzi2001

My method is to use 2 Ramp behaviors and RIG the Start/End Offsets so that they represent % of length of clip for the timing. One Ramp will be "pre-set" for the beginning and the other for the end. It is IMPERITIVE that the Ramp behaviors exist for the full length of the project, even though that may seem counterintuitive.


Ramp behaviors are "additive" so it doesn't matter if the Start and End animations overlap.


In order to do that, for the Start Offset, you Rig to a Slider widget from 0 to the # of frames* in your project.

For the End Offset, the Slider is rigged from # of frames to 0 [corresponding to 0 - 100 in the slider widget — in other words, the End Offsets are rigged "backwards"].


*Frames in project — the number value depends on your preference to start a project on frame 0 or frame 1. If your projects start on Frame 0, then the # of frames in project is the actual length - 1. For a 10 second 30fps project, that would be 299...

If you need to be able to shut off animation, then you would generally set the End Offset to Frames + 1 to 0 for the slider. (I hope that makes sense...)


Setting the timing in Final Cut it just a matter of positioning the playhead and dragging the Offset widgets until animation is detected — similar to moving the keyframe to the playhead position. It has been, for me, the best solution for UX.


HTH

Nov 19, 2023 1:37 PM in response to Barzi2001



Just for the matter of sharing my attempts to get that effect with ramps: the ramps don't necessarily need to be all the project long.
However, in this way you are the max "stretch" you can have is limited but you can use smaller numbers for the Start/End offset, see below.

Yes...I usually publish the first ramp Start/End as 0 (%) and 10 (%) and the last ramp as 90/100. They can be adjusted appropriately in Final Cut.


The Ramps do need to be the entire length of the project to be able to use the percentage paradigm, and it makes the most sense and is easier to deal with in the FCP storyline as those amounts are more easily "visualized" (or at least approximated). However, there is no "one right way" to make templates, so however you want to split them up.


Two Ramps give the option of an "open end" (animate in OR animate out) whereas Fade In/Out forces both ends of the animation. Duration in Fade In/Out is also in Frames based on the Motion project (duration will scale depending on the length applied in FCP) — so that can be rigged to percentage and the End Offset can also be treated the same as I recommended for the Ramps.


You *could* use a fade in/fade out to control a grow/shrink through a "null object" (a rectangle shape usually fits the bill) - just link the opacity of the null to the scale of the object to grow/shrink. Place the null inside a Group and turn off the visibility of the group or put it behind something or "out of bounds" so that it will never be seen.



Nov 19, 2023 12:24 PM in response to fox_m

This is actually the way I was doing and I was searching for something simpler at least for simple cases like grow at the beginning - keep constant - shrink at the end.


Just for the matter of sharing my attempts to get that effect with ramps: the ramps don't necessarily need to be all the project long.

However, in this way you are the max "stretch" you can have is limited but you can use smaller numbers for the Start/End offset, see below.


Also, interestingly the Fade In/Fade Out allows to get that curve with just one behaviour.


This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Grow/Shrink custom behaviour: is it possible to publish keyframes time-positions?

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.