Hi Thanks for this script this is a very nice and helpful script. I am having problems with more than one path. Can you please guide me on how to run arrow shape on other path when 1st one is completed Thanks
@Big_Llama26 күн бұрын
This is so helpful, thanks! Would love more tutorials like this
@raduantoniu2 ай бұрын
Wow thanks so much! You the real MVP
@lazzer173 ай бұрын
my god this is a crazy amount of work for a simple line chart
@lua.motion3 ай бұрын
Thank you so much Daron! It helped a lot, the fact that you explain how the expression works, made me be able to animate something that was not exactly the same problem you shared, but had the same solution. I needed to connect the center point of a light to a path, and it worked perfectly! Your tutorial was a real life changing!
@TheTimtastic3 ай бұрын
This is by far the best tutorial I've come across for working with CSV data. There are some minor changes I would make to certain parts of the expression to make it more flexible to work with within a larger comp (mostly to allow room for additional elements of the graph that may need to be in the same comp), but those are easy enough to tweak, and I'm really glad that you kept it simple. Great work!
@maxpartain3 ай бұрын
Would you be willing to share those changes you use? That would help me in this.
@Audumbar_shinde5 ай бұрын
thanks madam you save my day
@mattrossi79555 ай бұрын
This is so helpful! Is anyone having an issue with the shape rotating near the end of the trim path animation?
@sirajudheenkv85013 ай бұрын
yes, i have the same issue... how we can fix ..?🙃
@Max771895 ай бұрын
Thank you
@studiopictures93156 ай бұрын
I've been looking for ages for this, thanks!
@user-wz4ub2kz2m6 ай бұрын
Hi, I've got this to work but my path has been reversed, so now the shape object follows it but in reverse to the trims path, ie as my line draws in from the left my shape starts at the right! Is there a way around this using an expression to counter it?
@galaga006 ай бұрын
Works great. Thank you. With some help with GPT I was able to turn this into a script to turn the process into a one click solution. Check it out: The Script: ```javascript // Check if exactly two layers are selected if (app.project.activeItem.selectedLayers.length == 2) { var arrowLayer = app.project.activeItem.selectedLayers[0]; var lineLayer = app.project.activeItem.selectedLayers[1]; // Apply the position expression to the arrow layer var expression = "var path = thisComp.layer(\"" + lineLayer.name + "\").content(\"Shape 1\").content(\"Path 1\").path; "; expression += "var trimPath = thisComp.layer(\"" + lineLayer.name + "\").content(\"Shape 1\").content(\"Trim Paths 1\").end/100; "; expression += "var targetLayer = thisComp.layer(\"" + lineLayer.name + "\"); "; expression += "var point = path.pointOnPath(trimPath); "; expression += "targetLayer.toComp(point);"; arrowLayer.property("position").expression = expression; // Set Auto-Orient for the arrow layer arrowLayer.autoOrient = AutoOrientType.ALONG_PATH; // Optional: Prompt for manual rotation offset var rotationOffset = parseFloat(prompt("Enter rotation offset (degrees):", "0")); if (!isNaN(rotationOffset)) { arrowLayer.property("rotation").setValue(rotationOffset); } } else { alert("Please select exactly two layers: the arrowhead layer and the line layer."); } ``` To use this script: 1. Save the script as a `.jsx` file. 2. In After Effects, go to `File > Scripts > Run Script File...` and select your script. 3. Make sure you have exactly two layers selected in your composition: the layer that follows and the layer with the trim paths. 4. Run the script, and it will apply the expression and set up the orientation for you. NOTE: You will have to have your trim paths effect within the same "group" as your shape. Also, don't forget to adjust the anchor point on your layer that will follow the path.
@rod4s3117 ай бұрын
Thank you! Unfortunately it's not ganna work as mogrt in Premier Pro (the second option). Didn't tryed first one
@rrrickwallace7 ай бұрын
This rules, thank you.
@antonin79858 ай бұрын
Hi ! Thx so much for this tutorial, I have a some struggle AE is lagging so much when consulting the CSV, any idea to avoid that ? I am on M1 Max
@victorpapou8 ай бұрын
var path = thisComp.layer("Target Layer Name").content("PATH").content("Shape 1").path; var trimPath = thisComp.layer("Target Layer Name").content("PATH").content("Trim Paths 1").end /100; var targetLayer = thisComp.layer("Target Layer Name"); var point = path.pointOnPath(trimPath); targetLayer.toComp(point)
@micheliochoa20858 ай бұрын
Na, increible
@alexcarey82799 ай бұрын
Your explanation was sooo good/easy to follow, thanks so much!
@Tom109 ай бұрын
The most major problem with using time remapping this way - you don't have ability to use any motion to text animation. Which, makes text blunt and boring :|
@godaron1049 ай бұрын
An important point! Not every tool will be right for the job
@koldoidigoras9 ай бұрын
Clear and insightful. Even I can nail it (at second try). Thank you very much, life saver. Go Girl! 👏
@nahuelcardozoesper10 ай бұрын
Thanks!! Was very useful! I was struggling to do this and you solved it! Thanks!
@WalidDingsdale10 ай бұрын
awesome expression tutorial. thants for sharing
@dcustudio59310 ай бұрын
How does the editable field in Essential Graphics panel operate when you Time Remap and Pre-Comp? I notice it still appears (even though the text layer is pre-comp'd) -- so I assume it still functions. If that's the case, I suppose you just have to make sure you include that property (and any other ones you want included in the MOGRT) before pre-comping?
@angelvazquez553811 ай бұрын
Thank you so much, you saved my life. <3
@rafaelopotenza11 ай бұрын
Thanks for the video! It helped me get a solution to my case. I have two text layers ("Text - Right" with the right paragraph and anchor point on the right top side and "Text - Left" with the left paragraph and anchor point on the left top side). In the Source Text of the "Text - Right" layer I added this expression: const referenceText = thisComp.layer("Text - Left").text.sourceText; const style = referenceText.getStyleAt(0,0); style.setText(referenceText); *** So, if I change the text size in the Essential Graphics, it will be changed here as well. In the opacity of both text layers I will add what I want to lead the changes, in my case: controlX = thisComp.layer("Position - Global").transform.position[0]; if(controlX >= 420) 100 else 0 I hope that helps someone!
@alenlenia Жыл бұрын
Thank you. do you also know how to involve an offset value made by trimpath into the codes so that the arrow head or triangle doesn't fall behind or move forward?
@PhookaAnimation Жыл бұрын
This would be so cool but it's just not working for me :/
@TheBestgoku Жыл бұрын
Why did you channel stop making videos?
@noorredom1950 Жыл бұрын
my code does not work
@Pandorac Жыл бұрын
This is fantastic and just what I needed. Thank you so much for sharing this knowledge.
@romainamphyon Жыл бұрын
Thank you very, very much 😘
@nikyabodigital Жыл бұрын
Great. I am working with thicc stroke. This is massive value you're offering Daron. Thank you very much.
@Shiffo Жыл бұрын
Thanks for sharing. I followed the steps, but for some reason the path is generated (purple line is showing), but the stroke does not want to show up. I added the stroke first and then I added the path. Do i need to connect the stroke with the path somehow?
@Shiffo Жыл бұрын
Figured it out! I needed to place my Stroke below my Path layer. My Path was below the Stroke layer.
@jlagerholm11 ай бұрын
@@Shiffo had this problem too. That fixed it. Thanks.
@MotivationNation-cp4rv10 ай бұрын
you are a god send! I was having this problem for so long
@maxpartain3 ай бұрын
@@MotivationNation-cp4rv Same. Fantastic solve.
@crisd_ Жыл бұрын
Thank you so much, super helpful video! Will you be able to make one in the future about how you created the x-axis and y-axis to expand out the graph?
@angelaw7963 Жыл бұрын
Fabulous tutorial!!!! Just what I was looking for and worked perfectly. The explanation for understanding how the expression works was also super clear.
@LEE-337 Жыл бұрын
The text size, font, and faux styles can not be changed in the mogrt using this method. Is there a work around?
@godaron104 Жыл бұрын
Ah you like to make things complicated :) Off the top of my head, if I wanted to add a bunch of different text style options I would probably just make three different text layers (for left right and center alignment), link them to some source text and toggle their opacity using Trevor's method below. But if you wanted to continue to use this method in the video, you could create more source text keyframes at different seconds (4 sec, 5 sec, whatever) Either way, you'd have to insert more conditionals into your if/else statement in your source text eg. if ( a && b) {z;} else if ( a && d) {y;} etc.
@DMGFXink Жыл бұрын
Thank ya
@nikkiritmeijer4562 Жыл бұрын
I'm doing it exactly as your instructions but I'm getting a "Undefined value used in expression (could be an out of range array subscript?)" error when I try adding var path or var trimpath to my expression, can't figure out for the life of me why!!
@contrail33 Жыл бұрын
I have the same issue. Can't get past the first step. Unfortunate because this would do exactly what I need 😩
@Bloodnick Жыл бұрын
Great tutorial! But I tried doing this to a 3D layer, and it messes with the Z-position of the null object and sends it back several thousand values. Any idea on how to fix this issue within the expression?
@godaron104 Жыл бұрын
You'll need a different expression for that -- You use toComp() when you're working with 2d layers, and toWorld() when you're working with 3d.
@aliciajoohee Жыл бұрын
THANKSSSSS A Millionnn !
@Winxamitosis Жыл бұрын
i'm using a closed path for this, and i've offset the trim to start in a different place on the path. how do i apply the same offset to the following arrow to take into account the offset?
@luisvb24 Жыл бұрын
Replace the var trimPath line with all this (Be careful with the Comp.layer and content names): if (thisComp.layer("OrbitPath").content("Trim Paths 1").offset/360 < 1) { var trimPath = thisComp.layer("OrbitPath").content("Trim Paths 1").offset/360 } else { var trimPath = (thisComp.layer("OrbitPath").content("Trim Paths 1").offset%360)/360 }
@hmproductions5974 Жыл бұрын
Super Usfull, Thanks for sharing this 😍one thing can make it simpler instead of time remapping, Use 3 text layers each with a different alignment
@mohamedmoussa1477 Жыл бұрын
very good tutorial this exactly what i got tired searching for. thank you very much indeed wish you best of luck
@bg9919 Жыл бұрын
Good tutorial, but it's not working for me in Adobe AE 2022. I get an error saying "Undefined value used in expression". I've followed your code to a T. So weird.
@crisislab Жыл бұрын
Thank you for saving me a GAJILLION hours. You're a wizard. :)
@editoromroepgelderland Жыл бұрын
I'm getting an error saying - path.pointOnPath is not a function What can I do?
@abdulkreemalsultan1342 жыл бұрын
Can you post the files please
@christiaannel55042 жыл бұрын
Lifesaver! 💖💖💖💖
@jounikuuva7632 жыл бұрын
Cool! Hey you should at least have a donate-button somewhere, this is valuable stuff.
@nickperry32552 жыл бұрын
this is just the effect i needed. however, what if my trim path has an offset? how do i have it so the object starts at the offsetted point?
@marimotion22 Жыл бұрын
Just add "+value " into your last line of code. Should look like this: targetLayer.toComp(point) +value; I think this should solve the problem.
@marimotion22 Жыл бұрын
Then you can move the Object to the destination needed and it will still work with the expression.