Kevin Camp
Forum Replies Created
-
you could do it with a text animator, a mask and a duplicate of the text layer. You would probably need that set up for each line of text.
to get you started, first create a text layer with a single line of text and add a mask that is a little taller than the text.
then add a text animator for position and set the y position to be about the same size as the text. ex: if you text is 100pt, set the y value to around 100. this should move the text outside the layer mask, so you won’t see it. adjust your layer mask or y value if needed.
once that is set up, you can animate the offset for that animator (animator > range selector > offset) to go from 0% to 100%. Each letter should now reveal on one-at-a-time.
now to set up the word so that it is on-screen and the letter move off, simply duplicate the text layer, set the y value of the position animator to the negative of the current value (ex, it if was 100, set it to -100) to move the text above the mask. then twirl down the properties animator > range selector > advanced and set the ‘mode property to from ‘add’ to ‘subtract’ to make the word start on-screen and have each letter move above the mask.
now as the characters from one text layer move above the mask as the letters from the other layer move from below the mask.
-
Kevin Camp
February 4, 2021 at 6:14 pm in reply to: Scaling one word in a sentence more than the restYou can use another text animator for scale, then in the advanced settings for that animator, set ‘based on’ from ‘character’ to ‘words’. I would also set the ‘units’ property (just above ‘based on’) from ‘percentage’ to ‘index’ to make it easier to find the word that you want to affect. Ex: your text is 6 words and you want to scale the 4th word, with ‘index’ selected you would just change the range selector ‘start’ property to 3 and the ‘end’ property to 4 to isolate the 4th word. with percentages you would need to calculate the values for the start and end properties…
-
Kevin Camp
February 4, 2021 at 3:29 am in reply to: HELP PLEASE…EXPRESSION TO LIMIT AN ANIMATION TO COMP DURATION!I’m not sure how you are animating the bar, but if you used a solid the size of the bar you need (maybe 1000 x 20) and moved the anchor point to the left edge of the solid, you could then animate the x-scale of the solid as the progress bar.
The expression for the scale would be pretty simple:
x = linear( time, 0, thisComp.duration, 0, 100 ) ;
[ x, value[1] ]
this should make the solid’s x-scale animate from 0% to 100% over the duration of the comp. However the solid would need to be as long or longer than the comp. If you were to make the comp longer than the solid, you would need to make sure you extend the end point of the solid to match the new comp length.
-
Actually it looks like you can now have multiple arguments inside Math.max. This works for me:
x = Math.max( a, b, c ) ;
I always thought it should work that way : )
-
You are soo close. You won’t need the if statements, just put a Math.max() inside the Math.max():
x = Math.max( a, Match.max( b, c ) ) ;
-
Kevin Camp
January 29, 2021 at 10:03 pm in reply to: Change the value only for the second keyframe in a position aplicationIf you use a Point Control on the same layer that the beam effect is on and the ease on the keyframes is the standard easy-ease, this should work:
p1 = key(1).value ;
p2 = effect(“Point Control”)(“Point”) ; // pickwhip to your point control
ease(time, key(1).time, key(2).time, p1, p2 )
If you need to use sliders, then this should work:
p1 = key(1).value ;
x2 = effect(“Slider Control 1”)(“Slider”) ; // pickwhip to your x-position slider
y2 = effect(“Slider Control 2”)(“Slider”) ; // pickwhip to your y-position slider
p2 = [ x2, y2 ] ;
ease(time, key(1).time, key(2).time, p1, p2 )
If the ease on the keyframes is using a custom velocity then it will get a more complicated.
-
Actually you could do this without any expressions. I was able to get similar results using a Wiggly Selector rather than an Expression Selector…
If interested, do the steps above but instead of adding the Expression Selector and the expression, choose Selector > Wiggly from the Add menu. Then set the Wiggles/Second property to 0.
The result is pretty similar to the random expression above.
To further affect the scattered position of the characters you have several settings to choose from, not just Random Seed and the Character Animator Position property…. you can use jsut about all the Wiggly Selector’s properties to affect the scattered positions, with Spacial Phase seeming to affect the random positions the most.
-
Kevin Camp
January 29, 2021 at 4:35 pm in reply to: Change the value only for the second keyframe in a position aplicationit looks like you have two slider controls, I’ll assume you want one to control the x-position and the other to control the y-position of one end of the beam effect.
If so, then try something like this on the beam point you want to affect:
x = effect("Slider Control 1")("Slider") ; // point this at one slidery = effect("Slider Control 2")("Slider") ; // point this at the other
[ x, y ]
Alternatively you may be able to use a Point Control that natively has 2 dimensions. Then the expression would simply be this:
effect("Point Control")("Point") -
That will be a bit more difficult… I’m not sure how to get that to happen. I can make an array of the increment values and randomly grab a value from that array and add that to the counter as it counts, however if the random increment is 25 at one frame, then 1 on the next the frame the counter will actually decrease…
you might ask on the expressions forum, there are definitely users over there that are better at expressions than I am.
-
Kevin Camp
January 28, 2021 at 6:43 pm in reply to: Turn on/off layer opacity with specific color valuetry just one = (equal sign). I think since it is a numerical value comparison, it should just be one equal.