Lukas Thorsson
Forum Replies Created
-
Ooops… I was a bit in a hurry when i made the post…
pointALayer = thisLayer;
pointA = pointALayer.toComp(pointALayer.anchorPoint);pointBLayer = thisComp.layer("Null 3");
pointB = pointBLayer.toComp(pointBLayer.anchorPoint);a = pointA[0] - pointB[0];
b = pointA[1] - pointB[1];
switcher = 0;
if (b < 0) {switcher = -180};
if (b == 0) {degree = 90} else {degree = -radiansToDegrees(Math.atan(a/b))}degree + value + switcher
Same script but without .position @ line 6 and 7. In the first script Variable pointA was a Layer, so pointA.position referred to the layers position. Now we calculate the position using the toComp() Function and save the position to the Variable pointA.
-
Hi Konstantin,
try replacing the first 2 lines with
pointALayer = thisLayer;
pointA = pointALayer.toComp(pointALayer.anchorPoint);pointBLayer = thisComp.layer("Null 3");
pointB = pointBLayer.toComp(pointBLayer.anchorPoint);
Bye
Lukas
-
What do you mean “face the camera”? Should the letter stay upwards?
Try
-parent.rotationon the letters rotation.
-
Hey Royce,
this is complicated but not impossible. I don’t have the time to hack something together right now, but for the first step I can tell you how it works:
PreComp the 16 frames animation to a Comp of the length of your Animation, so you don’t have to check for freezing the last Frame later on, you just play the freezed Frame until the next event.
The Expression you work on is in the TimeRemap Value of the PreComp.
You have to Travel Back in Time by using a for-loop from current Time to zero. In the For Loop you check ifsoundLVL.valueAtTime(framesToTime(i)) > 6 && soundLVL.valueAtTime(framesToTime(i)-1) < 6
is true… that means the value at current frame he checks is more than six, and the value at the frame before is less than 6. If that is the case save the current frame he checked in a variable and leave the loop using break;.
You now got the last Start Time of your Animation. Then just play from lastStartTime.
time – lastStartTimeIf you know some Expressions you might get it to work like this, but its not that simple…
I’ll check later on.
-
Use this simple Script:
pointA = thisLayer;
pointB = thisComp.layer("Null 2");a = pointA.position[0] - pointB.position[0];
b = pointA.position[1] - pointB.position[1];
switcher = 0;if (b < 0) {switcher = -180};
if (b == 0) {degree = 90} else {degree = -radiansToDegrees(Math.atan(a/b))}degree + value + switcher
The difference between Point a and b can be described as a triangle. The difference on X Axis is line segment a, Y Axis is line segment b, line segemnt c would be the distance, but we only need a and b.
Computing the Angle beween is arctan(a/b). As in https://en.wikipedia.org/wiki/Triangle#Computing_the_sides_and_angles described.
If the difference on y Axis is negative the Triangle “flips”, so we need to rotate the value by 180 degrees. If its zero, we get an divide by zero error, so we’re catching this case also.
By Adding the “value” Argument at the End you can easily rotate your layer to the right direction.
-
Try out purging cache after each 50 frames rendered. Or 25, or 10… Each purge will slow down the rendering a bit, as AE needs to reload all footage, but it may help.
You’ll reach these secret setting if you hold down shift while entering the a random tab of the preferences menu. Once the windows shows up, you’ll find a “Secret” Tab on the buttom of the list.
-
Seems to be a cache / RAM Problem. Have you tried the “secret” settings for flushing cache?
I don’t know things go on mac exactly, but on windows you got the possibility to do exactly what you want: You can start After FX from the shell telling him which file to render. With the option -rqindex you can specify which item in the queue you want to render.
For rendering item 1 in queue command is:aerender -project file.aep -rqindex 1
I’d put that line in a batch file, doubling it 60 times and increase the index on each line.
On the PC the program is called aerender, maybe someones who’s more involved into mac stuff can get you more details.
-
Hi Steve,
I just wanted to show up the second opportunity, “wasting keyframes” was a joke. In most cases the use of keyframes might be better, of course.
Lukas
-
6. From the Effect drop-down menu, select Color Correction => Tint. Your clip will be B&W now. Keyframe the “Tint amount” value to bring it from B&W to color.
Why wasting Keyframes if its possible to use expressions? 🙂 Alt-Click the Stopwatch of “Amount to Tint” and type
linear(timeRemap.speed,0,1,100,0)
and your footage is BW on play speed 0 and fully colored on play speed 1 (meaning 100%).