View InertialBounce.jsx
// Inertial Bounce - Created by Animoplex: www.animoplex.com | |
// Original Version: http://www.graymachine.com/top-5-effects-expressions/ | |
// Modified expression for a smoother bounce effect and easier editing. Use this on any property with two keyframes to get a nice bounce effect that is based on velocity of the value change. Perfect for a scale from 0 to 100 or a speedy rotation that needs some extra life. Adjust amp, freq and decay values to tweak the effect. Amp is intensity, freq is bounces per second, and decay is the speed of decay, slow to fast. | |
// Full Tutorial: https://www.youtube.com/watch?v=653lxeVIyoo | |
amp = 5.0; freq = 2.0; decay = 4.0; | |
n = 0; | |
if (numKeys > 0) { | |
n = nearestKey(time).index; |
View CountdownClock.jsx
// Countdown Clock | |
// Original: http://www.motionscript.com/design-guide/up-down-clock.html | |
rate = -1; | |
clockStart = 3.00; | |
sign = ""; | |
function padZero(n) { | |
if (n < 10) { | |
return "0" + n | |
} |
View AutoFadeOpacity.jsx
// Auto Fade Opacity - Created by Animoplex: www.animoplex.com | |
// Automatically fades a layer in and out based on the inPoint and outPoint of the layer. | |
// Full Tutorial: https://www.youtube.com/watch?v=BOPfs49VfLE&t=188s | |
fade = 1; // fade duration in seconds | |
fadeIn = (time - inPoint) / fade; | |
fadeOut = (outPoint - time) / fade; | |
if (time < inPoint + fade) { | |
ease(fadeIn, 0, 1) * value; | |
} else if (time > outPoint - fade) { |
View MarkerSyncExpression.jsx
// Marker Sync Expression | |
// Modified expression based on Dan Ebbert's Marker Sync Expression | |
// Original Version: http://www.motionscript.com/design-guide/marker-sync.html | |
// Full Tutorial: https://www.youtube.com/watch?v=B_3XS2-VWOM&t=698s | |
src = comp(name).layer("Markers"); | |
n = 0; | |
if (marker.numKeys > 0) { | |
n = marker.nearestKey(time).index; | |
if (marker.key(n).time > time) { |
View LoopExpression.jsx
// Loop Expression - Created by Animoplex: www.animoplex.com | |
// Basic loop expressions for use on a property in After Effects. | |
// Full Tutorial: https://www.youtube.com/watch?v=XRrs9pvWGuY | |
// Loop Examples | |
loopOut("cycle", 0) // Repeat from start to finish. Default loop mode. | |
loopOut("pingpong", 2) // Loops last three keyframes back and forth. | |
loopOut("offset", 0) // Repeats animation using last keyframe as new start point. | |
loopOut("continue") // Does not loop, but continues onwards with current velocity. |
View 3Dto2DPosition.jsx
// 3D to 2D Position - Created by Animoplex: www.animoplex.com | |
// Give 2D effects or properties the ability to use 3D positioning in After Effects. | |
// toComp is a layer space transform method that transforms values from a layer space to a composition space. | |
// Full Tutorial: https://www.youtube.com/watch?v=FVrgLK6Zovw&t=268s | |
src = thisComp.layer('Layer 1'); | |
src.toComp([0,0,0]); |
View ValueAtTime.jsx
// Value At Time | |
thisComp.layer(index - 1).transform.scale.valueAtTime(time - 2) | |
// Output Scale of layer above, delayed in time by 2 seconds |
View PlayPauseCountdown.jsx
// Play / Pause Realtime Countdown - Created by Animoplex: www.animoplex.com | |
// Counts down a clock in realtime with the ability to play and pause the countdown with a checkbox | |
// NOTE: Expression will gradually slow down over duration of comp due to the while loop mechanic | |
src = effect("Checkbox Control")("Checkbox"); // play/pause control | |
dur = thisComp.frameDuration; // length of 1 frame | |
count = 300; // 5 minutes in seconds | |
t = 0; | |
function addZero(n) { // adds a zero to the end of numbers 0-9 |
View DelayedOffset.jsx
// Delayed Offset - Created by Animoplex: www.animoplex.com | |
// Delays an animation based on the layer above and the frames to delay. | |
// NOTE: Looks for an identical transform property on the layer above. | |
// NOTE: To change, replace "transform(thisProperty.name)" with your desired effect. | |
delay = 10; // Frames To Delay | |
above = thisComp.layer(index - 1).transform(thisProperty.name); | |
above.valueAtTime(time - framesToTime(delay)) |
View EnhancedYouTubeEmbed.html
<!-- Enhanced Youtube Embed Code for Motion Portfolios - Created by Animoplex | |
Features: Responsive-width player, removes tracking cookies, changes red controls to white, reduces YouTube branding | |
How to use: Replace the standard YouTube iframe embed code with the code below and add your YouTube video ID --> | |
<div style="width:100%; max-width:960px;"> | |
<div style="position:relative; height:0; padding-bottom:56.25%;"> | |
<!-- Video size ratio calculation: 1080px / 1920px = 0.5625 (16:9) --> | |
<iframe | |
style="position:absolute; width:100%; height:100%;" | |
src="https://www.youtube-nocookie.com/embed/YOUTUBEVIDEO?autoplay=1&color=white&modestbranding=1&rel=0" |
NewerOlder