Alex Printz
Forum Replies Created
-
No there is not; AE does not have a 3D tracker.
You could try and cheat it by scaling the null in one dimension and locking the other to a fixed size, but AE is not capable of understanding how the human head is a cylinder and it’s actually wrapping around it.
3D head tracking is not easy, when facebook or other apps use in filters it it’s because they’ve spent tons of money teaching AI to learn how to track just the face, whereas AE is designed to track anything you tell it to, so it only looks at changes of pixels compared to the previous frames.
Alex Printz
Mograph Designer -
Alex Printz
January 20, 2020 at 2:41 pm in reply to: counting bars and notes with expressions from a known bpmplace this onto a null property that you want to animate (I usually use it to generate a Tone); you will need two sliders, one for the beats per minute, and one for the number of beats in a measure.
Note that if your framerate doesn’t work well with the BPM you’ve chosen, it might get messy and/or bleed between frames.
There are 3 outputs possible; Z (off), Y (minor beat), and X (major beat); set them to whatever you want and/or manipulate the code.
s = effect("BPM Slider")(1);
m = effect("Number of beats per measure")(1);X = value;
Y = value/5;
Z = 0;b = 60/s; //convert to seconds
d = thisComp.frameDuration;
t = time-inPoint; //current timee = (d+(s/2000)); //slop for error
function p(x){ //previous frame value
return thisProperty.valueAtTime(Math.ceil(time-framesToTime(x))) };if( (t/b) %1 <e && p(1) != 0) //if current frame for beat
((t/(b*m)) %1 <e && p(1/s) != 0) ? X : Y; //if major or minor beat
else Z; //else offAlex Printz
Mograph Designer -
Alex Printz
December 17, 2019 at 3:49 pm in reply to: Editing graph when an ‘ease’ expression is usedYou could always do something like the code below for quick and dirty force-easing between all of your keys. Just set the keys to ‘continuous bezier’ and then edit the linearity to adjust the easing output post-expression.
Just make sure you turn on the expression view in the graph editor to see what is actually happening.
In the past I’ve also built custom Penner easing expressions and built a cubic Bezier easing expression, but neither of those are quick and easy to implement, but allow totally-customizable easing expressions quickly and easily once you have the expressions built.
note: plugins “ease and wizz” is Penner functions, and “Flow” is cubic beziers, if you don’t want to write your own.
if(thisProperty.velocity == 0) value; else{
n=thisProperty.nearestKey(time).index;
if(key(n).time>time)n--;
valueAtTime(ease(time,key(n).time, key(n+1).time, key(n).time, key(n+1).time))
};Alex Printz
Mograph Designer -
Alex Printz
December 6, 2019 at 5:59 pm in reply to: Global time variable in time remapped compositionsYeah it’s not going to work, I forgot master properties still need to be moving in the time dimension to re-render frames; if you pause, rewind, etc. it won’t work because they’ve already been calculated so won’t change. I just tested it and it failed.
Sorry, out of ideas. You’re going to need to get creative with duplicating content instead of looping it.
Alex Printz
Mograph Designer -
Alex Printz
December 6, 2019 at 4:19 pm in reply to: Global time variable in time remapped compositionsYou could always try pushing a slider called “master time” into the essential graphics, plug all of your sub-comp expressions into that master time, use that master time for calling whatever properties you need, and then inside your parent comp link the essential properties to the parent’s time value? That way it pushes it into the comp and can repeat loops.
Alex Printz
Mograph Designer -
Alex Printz
December 6, 2019 at 4:16 pm in reply to: Global time variable in time remapped compositionsOkay, well without knowing what specifically you’re looking for then I can’t be of much help, occasionally the essential graphics panel will help with doing some concepts that would otherwise break dependency loops. Perhaps look to some of the stuff you can do there?
Alex Printz
Mograph Designer -
Alex Printz
December 6, 2019 at 4:13 pm in reply to: Global time variable in time remapped compositionsAlso one final note, if you stretch the sub-comp’s time-remap so that it’s frame duration becomes longer than the main comp’s frame duration, you’re going to get slightly staggered effects where the subComps cannot read/react in a short enough time span and will bleed across. Weird effect.
Alex Printz
Mograph Designer -
Alex Printz
December 6, 2019 at 4:03 pm in reply to: Global time variable in time remapped compositionsI had to make one minor tweak, I had to round them both time values to the nearest whole frame and compare them; I was getting sub-frames when stretching the time remap. Again, this works so long as you are not repeating the same sections over and over:
var targetComp = comp("parentComp");
var targetLayer = targetComp.layer(thisComp.name);var i = timeToFrames(targetLayer.inPoint)
while(true){
if (i == timeToFrames(targetLayer.outPoint) || i == timeToFrames(targetComp.duration)){ i=0; break;} //runs out of timeRemap;targetTime = timeToFrames(targetLayer.timeRemap.valueAtTime(framesToTime(i)));
roundedTime = Math.round(timeToFrames(time));if ( roundedTime == targetTime ) break; //finds the corresponding time
i++; //else
}parentGlobalTime = framesToTime(i);
Alex Printz
Mograph Designer -
Ah I see, I misunderstood you, I thought you wanted your expressions to link inside your current comps no matter what.
Try something like this to parse an integer from the end of the current comp’s name and add it to the end of the target comp’s “Style” name:
n = thisComp.name;
i = parseInt(n.split(” “)[1]);targetComp = comp(“Style “+i);
Alex Printz
Mograph Designer -
It was probably done with the text effectors then, or as shape layers with multiple repeaters
https://www.youtube.com/watch?v=vJLJtVJnUqA
Alex Printz
Mograph DesignerSome contents or functionalities here are not available due to your cookie preferences!This happens because the functionality/content marked as “Google Youtube” uses cookies that you choosed to keep disabled. In order to view this content or use this functionality, please enable cookies: click here to open your cookie preferences.