Thanks for breaking it all down so clearly! I’m really enjoying the deep dives into expressions, your channel has some awesome AE tips and tricks that are going to save me so much time. Just subscribed!
So obvious now, but putting the 2 together is where the real creativity is. Big 🎉. Question please. I'm doing a car racing scoreboard. Did you do a single array for your horseracing or an array on each horse layer
@@AtaurRaziq legend. Hey I made up the rig. you don't need the wordID array unless there is something i'm missing. Mine worked without it xPoint = linear(animSlider, animSliderInt, animSliderInt+1,textPos[animSliderInt],textPos[animSliderInt + 1]);
Awesome! I do have to say I was not able to recreate this for some reason but I'll keep trying. I do want to ask how would you use this (or some other technique ) incase you have 2 layers. First one showing the current word. The second layer showing the next word. So 1 3 5 7..... and 2 4 6 8 .... I want to create an in and out animation for both layers one after the other to have the illusion of many layers. but the timing is dynamic and can change from one word to the next. Would you use the same technique in this?
What kind of Job position is called when you do something like the horse ranking system where everything runs off the javascript? Programming MoGraph? Btw thanks for the free knowledge.
You're welcome. I have just called myself a Senior Motion Designer but this kind of work I'd call a toolkit. When there's this much automation it starts getting more into javascript than animation lol.
Great Idea. - using sourceRectAtTime to iterate through all the layers and add up the widths. I tried this in a template. Works great you can adjust text size, tracking , etc and it updates live. let initialPoint = thisComp.layer("Offscreen Point").index - 1; let spacing = thisComp.layer("Null 1").effect("TextLayer Spacing")("Slider"); // slider to set gap between text layers let startIndex = thisLayer.index; let accumulatedDistance = 0; // Sum widths of layers between the 'Offscreen Point' layer and this layer for (let i = initialPoint; i >= startIndex ; i--) { accumulatedDistance += thisComp.layer(i).sourceRectAtTime().width; } // Calculate position - All layers widths plus spacing between let xPos = value[0] - accumulatedDistance - (initialPoint - startIndex) * spacing; [xPos, value[1]];
Can you explain how/why it's jumping multiple words? You say that every second it goes to the next word, however it's clearly jumping multiple words each time. At the start it goes from "The first" to "el segundo". Instead of "The" then "first" then "el" then "sugundo". I would assume each individual word has a word ID?
OK so that's a misspeak on my part. Replace 'word' with 'chapter'. I meant to say each chapter. This was a ticker system made for a TH-cam series where the segment of the show would display at the bottom, and then things moved onto the next segment, it would animate.
@@AtaurRaziq Thanks for your reply. I couldn't see anything in your expressions/strings that identified each individual chapter. A deeper breakdown would be great if you get the chance.
👏👏👏
I want more of these videos. Nice job 🎉
@@kshkalla thank you, will do my best to provide more
Thanks for breaking it all down so clearly! I’m really enjoying the deep dives into expressions, your channel has some awesome AE tips and tricks that are going to save me so much time. Just subscribed!
That's very kind. I'm glad the knowledge is reaching people like yourself.
So obvious now, but putting the 2 together is where the real creativity is. Big 🎉.
Question please. I'm doing a car racing scoreboard. Did you do a single array for your horseracing or an array on each horse layer
Every horse device is assessing itself. I'll do a proper breakdown of that project soon
@@AtaurRaziq legend. Hey I made up the rig. you don't need the wordID array unless there is something i'm missing. Mine worked without it
xPoint = linear(animSlider, animSliderInt, animSliderInt+1,textPos[animSliderInt],textPos[animSliderInt + 1]);
This is amazing! Super smart!
Awesome! I do have to say I was not able to recreate this for some reason but I'll keep trying. I do want to ask how would you use this (or some other technique ) incase you have 2 layers. First one showing the current word. The second layer showing the next word. So 1 3 5 7..... and 2 4 6 8 ....
I want to create an in and out animation for both layers one after the other to have the illusion of many layers. but the timing is dynamic and can change from one word to the next. Would you use the same technique in this?
I'd have to see a visual to understand what you're trying to achieve and how to respond properly
Did you come up with this and figure it out by yourself? Really cool 😅
A lot of trial and error but yes. Thank you !
What kind of Job position is called when you do something like the horse ranking system where everything runs off the javascript? Programming MoGraph? Btw thanks for the free knowledge.
You're welcome. I have just called myself a Senior Motion Designer but this kind of work I'd call a toolkit. When there's this much automation it starts getting more into javascript than animation lol.
All this needs is to get the position of the word automatically via some more clever expressions. :)
Hey hey the Ae engine can only handle so much 😆
Great Idea. - using sourceRectAtTime to iterate through all the layers and add up the widths. I tried this in a template. Works great you can adjust text size, tracking , etc and it updates live.
let initialPoint = thisComp.layer("Offscreen Point").index - 1;
let spacing = thisComp.layer("Null 1").effect("TextLayer Spacing")("Slider"); // slider to set gap between text layers
let startIndex = thisLayer.index;
let accumulatedDistance = 0;
// Sum widths of layers between the 'Offscreen Point' layer and this layer
for (let i = initialPoint; i >= startIndex ; i--) {
accumulatedDistance += thisComp.layer(i).sourceRectAtTime().width;
}
// Calculate position - All layers widths plus spacing between
let xPos = value[0] - accumulatedDistance - (initialPoint - startIndex) * spacing;
[xPos, value[1]];
@@broadcastbytes is your "let" the same as "var" and so could it work without it as well?
@@broadcastbytes Would you be willing to share a sample project? I can't get this to work with your expression. Not sure what I'm doing wrong.
Can you explain how/why it's jumping multiple words? You say that every second it goes to the next word, however it's clearly jumping multiple words each time. At the start it goes from "The first" to "el segundo". Instead of "The" then "first" then "el" then "sugundo". I would assume each individual word has a word ID?
OK so that's a misspeak on my part. Replace 'word' with 'chapter'.
I meant to say each chapter. This was a ticker system made for a TH-cam series where the segment of the show would display at the bottom, and then things moved onto the next segment, it would animate.
@@AtaurRaziq Thanks for your reply. I couldn't see anything in your expressions/strings that identified each individual chapter. A deeper breakdown would be great if you get the chance.
Please have my like, it's the least I can do
Love to you sir