- Sold between 250 000 and 1 000 000 dollars
- Author was Featured
- Item was Featured
- Contributed a Tutorial to a Tuts+ Site
- Repeatedly Helped protect Envato Marketplaces against copyright violations
- Exclusive Author
- Has been a member for 3-4 years
- Bulgaria
Based on the image by EFEKT : why dont you first mask the object.. like make a regular rectangle mask with no rotation what so ever, then rotate the layer itself 45 degrees.. thus making the mask and the axis rotate too. This will make it easy to move the object diagonally by adjusting the X value. Visually you get the same thing.
-inlife
- Community Superstar
- Sold between 50 000 and 100 000 dollars
- Author had a File in an Envato Bundle
- Item was Featured
- Author was Featured
- Contributed a Tutorial to a Tuts+ Site
- Author had a Free File of the Month
- Exclusive Author
Mocarg said
Hey!I’ve made a little project file for you
2 Points
Starting Point Ending Point Control
Percent Preview
![]()
Conclusion
Adjust the point, select the object layer and in the effects panel play with the “Percent” value to get it moving between the lines. Expressions
per = effect("Percent")("Slider"); if(per <= 0) { per = 0.001; } start = thisComp.layer("Starting Point").transform.position; end = thisComp.layer("Ending Point").transform.position; dx = end[0] - start[0]; //replace minus with the simbol, forum wont display it correctlydy = end[1] (minus) start[1]; //here also [dx * per + start[0] , dy * per + start[1]]
This is a very simple expressions. First i calculate the difference in x and y values between the point. Then i simply multiply the values with the “Percent” and add that value to the Starting Point.
Download
Download *.AEP for After Effects CS4
Nice one man! Besides this, could be useful for other stuff too.
@inlife, I know all that, but I’m too stubborn. I want to do this the easiest possible way 
- Community Moderator
- Sold between 50 000 and 100 000 dollars
- Author was Featured
- Item was Featured
- Author had a File in an Envato Bundle
- Beta Tester
- Has been a member for 4-5 years
- United Kingdom
Mo’s bang on with that expression.
The 45 degree thing is all about linking the x and y move together and offsetting by the original position. For a 45 degree move, x = y. For a different angle the relationship changes. You can use trigonometry to find the relationship.
Below is an expression that does a similar thing, but instead of using Mo’s start and end position, it uses an angle of movement given by an Angle Control expression controller effect on the layer (along side the Slider Control that adjusts the extent of the movement). Note that angles need to be converted from degrees into radians before you can use trigonometrical functions on them. This is just the way of things.
origPos = value;
amt = effect("Slider Control")(1);
ang = degreesToRadians(effect("Angle Control")(1));
move = [-Math.sin(ang), Math.cos(ang)];
origPos + amt*move;
@Mo. You’d only need the line…
if(per <= 0) { per = 0.001; }
...if you were dividing by per. Seeing as you’re multiplying, it’s irrelevant.- Sold between 250 000 and 1 000 000 dollars
- Author was Featured
- Item was Featured
- Contributed a Tutorial to a Tuts+ Site
- Repeatedly Helped protect Envato Marketplaces against copyright violations
- Exclusive Author
- Has been a member for 3-4 years
- Bulgaria
Hey, is there a way to fix the range of an expression slider control.. say from 0 to 100.. or 50 to 100. Now they are like.. 0 to (too much). Same question for the other expression controls.
-inlife
- Community Moderator
- Sold between 50 000 and 100 000 dollars
- Author was Featured
- Item was Featured
- Author had a File in an Envato Bundle
- Beta Tester
- Has been a member for 4-5 years
- United Kingdom
InlifeThrill said
Hey, is there a way to fix the range of an expression slider control.. say from 0 to 100.. or 50 to 100. Now they are like.. 0 to (too much). Same question for the other expression controls. -inlife
Like this…
linear(value, 0, 100, 0, 100);
...fixes to minimum 0, maximum 100. Change the values for a different fix. If you just want to fix one end, just adjust one of the values to a ludicrously high or low number. Alternatively use…
value<12 ? 12 : value;
... clamps value to greater than 12
value>103 ? 103 :value;
...clamps value to less than 103
for a point control, it looks like this…
[linear(value[0], -50, 50, -50, 50), linear(value[1], 0,1000, 0,1000)];
..clamps the first value to between -50 and +50 and the second to between 0 and 1000
- Sold between 250 000 and 1 000 000 dollars
- Author was Featured
- Item was Featured
- Contributed a Tutorial to a Tuts+ Site
- Repeatedly Helped protect Envato Marketplaces against copyright violations
- Exclusive Author
- Has been a member for 3-4 years
- Bulgaria
Ah cool stuff. I’ve used the linear before but never though of it right here. That’s why I suck at math. Thanks Ben. Saved the day.. again.
-inlife
- Community Superstar
- Sold between 50 000 and 100 000 dollars
- Author had a File in an Envato Bundle
- Item was Featured
- Author was Featured
- Contributed a Tutorial to a Tuts+ Site
- Author had a Free File of the Month
- Exclusive Author
@mocarg, @felt_tips – thank you very much guys.. Cannot try it properly now, my computer is going to die soon.
Time for refreshment 

dy = end[1] (minus) start[1]; //here also
[dx * per + start[0] , dy * per + start[1]]