# Table of Contents - [Overview - iExpressions for Ae | Mamoworld Docs](#overview-iexpressions-for-ae-mamoworld-docs) - [Markdown page example | Mamoworld Docs](#markdown-page-example-mamoworld-docs) - [Beat Detector Automatic | Mamoworld Docs](#beat-detector-automatic-mamoworld-docs) - [Beat Detector from bpm | Mamoworld Docs](#beat-detector-from-bpm-mamoworld-docs) - [Auto Scale | Mamoworld Docs](#auto-scale-mamoworld-docs) - [Autofocus on POI | Mamoworld Docs](#autofocus-on-poi-mamoworld-docs) - [Autofocus on Layers | Mamoworld Docs](#autofocus-on-layers-mamoworld-docs) - [Auto Scale Random | Mamoworld Docs](#auto-scale-random-mamoworld-docs) - [Beat Mixer | Mamoworld Docs](#beat-mixer-mamoworld-docs) - [Beat Detector via Threshold | Mamoworld Docs](#beat-detector-via-threshold-mamoworld-docs) - [Beat Switch | Mamoworld Docs](#beat-switch-mamoworld-docs) - [Beat Detector from Marker | Mamoworld Docs](#beat-detector-from-marker-mamoworld-docs) - [Change on Beat | Mamoworld Docs](#change-on-beat-mamoworld-docs) - [Align Layers in Row/Column | Mamoworld Docs](#align-layers-in-row-column-mamoworld-docs) - [Align to Composition | Mamoworld Docs](#align-to-composition-mamoworld-docs) - [Attach to Circle 2D | Mamoworld Docs](#attach-to-circle-2d-mamoworld-docs) - [Attach to Cylinder 3D | Mamoworld Docs](#attach-to-cylinder-3d-mamoworld-docs) - [Attach to Sphere 3D | Mamoworld Docs](#attach-to-sphere-3d-mamoworld-docs) - [Distribute 2D Circle and Spiral | Mamoworld Docs](#distribute-2d-circle-and-spiral-mamoworld-docs) - [Distribute 2D Line | Mamoworld Docs](#distribute-2d-line-mamoworld-docs) - [Distribute 2D Random | Mamoworld Docs](#distribute-2d-random-mamoworld-docs) - [Distribute 2D Grid | Mamoworld Docs](#distribute-2d-grid-mamoworld-docs) - [Wiggle | Mamoworld Docs](#wiggle-mamoworld-docs) - [Snapping Wiggle 1D/2D/3D | Mamoworld Docs](#snapping-wiggle-1d-2d-3d-mamoworld-docs) - [UIKit Spring | Mamoworld Docs](#uikit-spring-mamoworld-docs) - [Tutorial: Spring Animations in Adobe After Effects | Mamoworld Docs](#tutorial-spring-animations-in-adobe-after-effects-mamoworld-docs) - [React Spring 8 | Mamoworld Docs](#react-spring-8-mamoworld-docs) - [Tutorial: Prototyping React-Spring Animations in Adobe After Effects | Mamoworld Docs](#tutorial-prototyping-react-spring-animations-in-adobe-after-effects-mamoworld-docs) - [Android Spring | Mamoworld Docs](#android-spring-mamoworld-docs) - [Tutorial: UX with Spring Animations in Adobe After Effects | Mamoworld Docs](#tutorial-ux-with-spring-animations-in-adobe-after-effects-mamoworld-docs) - [Change at Marker 1D | Mamoworld Docs](#change-at-marker-1d-mamoworld-docs) - [Waveform | Mamoworld Docs](#waveform-mamoworld-docs) - [Connect Multiple Layers | Mamoworld Docs](#connect-multiple-layers-mamoworld-docs) - [Auto-Resizing Background Shape | Mamoworld Docs](#auto-resizing-background-shape-mamoworld-docs) - [Connect Two Layers | Mamoworld Docs](#connect-two-layers-mamoworld-docs) - [Snap to Grid 1D/2D/3D | Mamoworld Docs](#snap-to-grid-1d-2d-3d-mamoworld-docs) - [Increment at Marker 2D | Mamoworld Docs](#increment-at-marker-2d-mamoworld-docs) - [Change at Marker 2D | Mamoworld Docs](#change-at-marker-2d-mamoworld-docs) - [Change at Marker 3D | Mamoworld Docs](#change-at-marker-3d-mamoworld-docs) - [Loop | Mamoworld Docs](#loop-mamoworld-docs) - [Separate Smoother 3D | Mamoworld Docs](#separate-smoother-3d-mamoworld-docs) - [Increment at Marker 3D | Mamoworld Docs](#increment-at-marker-3d-mamoworld-docs) - [Time Remap at Marker | Mamoworld Docs](#time-remap-at-marker-mamoworld-docs) - [Play Animation at Marker | Mamoworld Docs](#play-animation-at-marker-mamoworld-docs) - [Mirror | Mamoworld Docs](#mirror-mamoworld-docs) - [Walk Cycle | Mamoworld Docs](#walk-cycle-mamoworld-docs) - [Arrowhead | Mamoworld Docs](#arrowhead-mamoworld-docs) - [Rotating Wheel Linear Motion | Mamoworld Docs](#rotating-wheel-linear-motion-mamoworld-docs) - [Roller Coaster Wagon | Mamoworld Docs](#roller-coaster-wagon-mamoworld-docs) - [Softlink Puppet Pin To Layers | Mamoworld Docs](#softlink-puppet-pin-to-layers-mamoworld-docs) - [Basic Smoother | Mamoworld Docs](#basic-smoother-mamoworld-docs) - [Move In & Out 3D | Mamoworld Docs](#move-in-out-3d-mamoworld-docs) - [Elastic | Mamoworld Docs](#elastic-mamoworld-docs) - [Cog Wheels | Mamoworld Docs](#cog-wheels-mamoworld-docs) - [Simple Link 1D | Mamoworld Docs](#simple-link-1d-mamoworld-docs) - [Simple Link 3D | Mamoworld Docs](#simple-link-3d-mamoworld-docs) - [Separate Link 2D | Mamoworld Docs](#separate-link-2d-mamoworld-docs) - [Simple Link 2D | Mamoworld Docs](#simple-link-2d-mamoworld-docs) - [Linear Link 3D | Mamoworld Docs](#linear-link-3d-mamoworld-docs) - [Linear Link 1D | Mamoworld Docs](#linear-link-1d-mamoworld-docs) - [Layer Distance Link | Mamoworld Docs](#layer-distance-link-mamoworld-docs) - [Rotation Link | Mamoworld Docs](#rotation-link-mamoworld-docs) - [Linear Link 2D | Mamoworld Docs](#linear-link-2d-mamoworld-docs) - [Linear Link Color | Mamoworld Docs](#linear-link-color-mamoworld-docs) - [Trail | Mamoworld Docs](#trail-mamoworld-docs) - [Separate Link 3D | Mamoworld Docs](#separate-link-3d-mamoworld-docs) - [Color Link | Mamoworld Docs](#color-link-mamoworld-docs) - [Link to Point on Shape | Mamoworld Docs](#link-to-point-on-shape-mamoworld-docs) - [Linear Link Time Remap | Mamoworld Docs](#linear-link-time-remap-mamoworld-docs) - [Throw 2D/3D | Mamoworld Docs](#throw-2d-3d-mamoworld-docs) - [Average Link | Mamoworld Docs](#average-link-mamoworld-docs) - [Random Letter Wipe | Mamoworld Docs](#random-letter-wipe-mamoworld-docs) - [Repeater | Mamoworld Docs](#repeater-mamoworld-docs) - [Separate Smoother 2D | Mamoworld Docs](#separate-smoother-2d-mamoworld-docs) - [Sine Wave | Mamoworld Docs](#sine-wave-mamoworld-docs) - [Increment at Marker 1D | Mamoworld Docs](#increment-at-marker-1d-mamoworld-docs) - [Pie Slice | Mamoworld Docs](#pie-slice-mamoworld-docs) - [Unfold | Mamoworld Docs](#unfold-mamoworld-docs) - [Blockify | Mamoworld Docs](#blockify-mamoworld-docs) - [Evolution | Mamoworld Docs](#evolution-mamoworld-docs) - [Random Text Template | Mamoworld Docs](#random-text-template-mamoworld-docs) - [Text Link | Mamoworld Docs](#text-link-mamoworld-docs) - [Counter Date | Mamoworld Docs](#counter-date-mamoworld-docs) - [Vertical Align Text | Mamoworld Docs](#vertical-align-text-mamoworld-docs) - [Counter Numbers | Mamoworld Docs](#counter-numbers-mamoworld-docs) - [News Ticker | Mamoworld Docs](#news-ticker-mamoworld-docs) - [Counter Time | Mamoworld Docs](#counter-time-mamoworld-docs) - [Text Combiner | Mamoworld Docs](#text-combiner-mamoworld-docs) - [Scroll Text Terminal | Mamoworld Docs](#scroll-text-terminal-mamoworld-docs) - [Distribute Text to Layers | Mamoworld Docs](#distribute-text-to-layers-mamoworld-docs) - [Counter Date and Time | Mamoworld Docs](#counter-date-and-time-mamoworld-docs) - [Linear Wipe | Mamoworld Docs](#linear-wipe-mamoworld-docs) - [Random Text | Mamoworld Docs](#random-text-mamoworld-docs) - [Upper and Lower Case | Mamoworld Docs](#upper-and-lower-case-mamoworld-docs) - [Appear Disappear per Character | Mamoworld Docs](#appear-disappear-per-character-mamoworld-docs) - [Pendulum | Mamoworld Docs](#pendulum-mamoworld-docs) - [Link Puppet Pin To Layer | Mamoworld Docs](#link-puppet-pin-to-layer-mamoworld-docs) - [Roller Coaster Master | Mamoworld Docs](#roller-coaster-master-mamoworld-docs) - [Move In & Out 2D | Mamoworld Docs](#move-in-out-2d-mamoworld-docs) - [Elastic Connection | Mamoworld Docs](#elastic-connection-mamoworld-docs) - [Rotating Wheel Curvaceous Motion | Mamoworld Docs](#rotating-wheel-curvaceous-motion-mamoworld-docs) - [Look At Line 3D | Mamoworld Docs](#look-at-line-3d-mamoworld-docs) - [Look At Line 2D | Mamoworld Docs](#look-at-line-2d-mamoworld-docs) - [IK Arm (with 2 or 3 Segments) | Mamoworld Docs](#ik-arm-with-2-or-3-segments-mamoworld-docs) - [Distribute 3D Sphere Random | Mamoworld Docs](#distribute-3d-sphere-random-mamoworld-docs) - [Distribute 3D Cylinder | Mamoworld Docs](#distribute-3d-cylinder-mamoworld-docs) - [Distribute 3D Random | Mamoworld Docs](#distribute-3d-random-mamoworld-docs) - [Distribute 3D Sphere Evenly | Mamoworld Docs](#distribute-3d-sphere-evenly-mamoworld-docs) - [Look At Point 2D | Mamoworld Docs](#look-at-point-2d-mamoworld-docs) - [Distribute 3D Line | Mamoworld Docs](#distribute-3d-line-mamoworld-docs) - [Distribute 3D Grid | Mamoworld Docs](#distribute-3d-grid-mamoworld-docs) - [Distribute 3D Circle and Spiral | Mamoworld Docs](#distribute-3d-circle-and-spiral-mamoworld-docs) - [Look At Point 3D | Mamoworld Docs](#look-at-point-3d-mamoworld-docs) - [Limited Time Parent | Mamoworld Docs](#limited-time-parent-mamoworld-docs) - [Text Combiner Multi | Mamoworld Docs](#text-combiner-multi-mamoworld-docs) --- # Overview - iExpressions for Ae | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/#) On this page Overview - iExpressions for Ae ============================== iExpressions contains ready to use expressions for Adobe After Effects grouped into the following categories: Audio[​](https://docs.mamoworld.com/iexpressions/#audio "Direct link to heading") ---------------------------------------------------------------------------------- * * * [![Beat Detector Automatic](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/beat_detector_automatic_preview.jpg)](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic) [### Beat Detector Automatic](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic)     [![Beat Detector from bpm](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/beat_detector_from_bpm_preview.jpg)](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm) [### Beat Detector from bpm](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm)     [![Beat Detector from Marker](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/beat_detector_from_marker_preview.jpg)](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker) [### Beat Detector from Marker](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker)     [![Beat Detector via Threshold](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/beat_detector_via_threshold_preview.jpg)](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold) [### Beat Detector via Threshold](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold)     [![Beat Mixer](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/beat_mixer_preview.jpg)](https://docs.mamoworld.com/iexpressions/audio/beat-mixer) [### Beat Mixer](https://docs.mamoworld.com/iexpressions/audio/beat-mixer)     [![Beat Switch](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/beat_switch2d_preview_0.jpg)](https://docs.mamoworld.com/iexpressions/audio/beat-switch) [### Beat Switch](https://docs.mamoworld.com/iexpressions/audio/beat-switch)     [![Change on Beat](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/change_on_beat2d_preview_0.jpg)](https://docs.mamoworld.com/iexpressions/audio/change-beat) [### Change on Beat](https://docs.mamoworld.com/iexpressions/audio/change-beat)   Camera[​](https://docs.mamoworld.com/iexpressions/#camera "Direct link to heading") ------------------------------------------------------------------------------------ * * * [![Auto Scale](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/auto_scale_preview.jpg)](https://docs.mamoworld.com/iexpressions/camera/auto-scale) [### Auto Scale](https://docs.mamoworld.com/iexpressions/camera/auto-scale)     [![Auto Scale Random](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/auto_scale_random_preview.jpg)](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random) [### Auto Scale Random](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random)     [![Autofocus on Layers](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/autofocus_on_layers_preview.jpg)](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers) [### Autofocus on Layers](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers)     [![Autofocus on POI](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/autofocus_on_poi_preview.jpg)](https://docs.mamoworld.com/iexpressions/camera/autofocus-poi) [### Autofocus on POI](https://docs.mamoworld.com/iexpressions/camera/autofocus-poi)   Layer Placement[​](https://docs.mamoworld.com/iexpressions/#layer-placement "Direct link to heading") ------------------------------------------------------------------------------------------------------ * * * [![Align Layers in Row/Column](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-11-12_11.00.17_0.png)](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn) [### Align Layers in Row/Column](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn)     [![Align to Composition](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/align_to_composition_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition) [### Align to Composition](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition)     [![Attach to Circle 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/attach_to_circle2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/attach-circle-2d) [### Attach to Circle 2D](https://docs.mamoworld.com/iexpressions/layer-placement/attach-circle-2d)     [![Attach to Cylinder 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/attach_to_cylinder3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/attach-cylinder-3d) [### Attach to Cylinder 3D](https://docs.mamoworld.com/iexpressions/layer-placement/attach-cylinder-3d)     [![Attach to Sphere 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/attach_to_sphere3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/attach-sphere-3d) [### Attach to Sphere 3D](https://docs.mamoworld.com/iexpressions/layer-placement/attach-sphere-3d)     [![Distribute 2D Circle and Spiral](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute2d_circle_and_spiral_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral) [### Distribute 2D Circle and Spiral](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral)     [![Distribute 2D Grid](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute2d_grid_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid) [### Distribute 2D Grid](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid)     [![Distribute 2D Line](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute2d_line_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line) [### Distribute 2D Line](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line)     [![Distribute 2D Random](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute2d_random_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random) [### Distribute 2D Random](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random)     [![Distribute 3D Circle and Spiral](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_circle_and_spiral_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral) [### Distribute 3D Circle and Spiral](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral)     [![Distribute 3D Cylinder](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_cylinder_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder) [### Distribute 3D Cylinder](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder)     [![Distribute 3D Grid](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_grid_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid) [### Distribute 3D Grid](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid)     [![Distribute 3D Line](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_line_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line) [### Distribute 3D Line](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line)     [![Distribute 3D Random](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_random_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random) [### Distribute 3D Random](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random)     [![Distribute 3D Sphere Evenly](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_sphere_evenly_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly) [### Distribute 3D Sphere Evenly](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly)     [![Distribute 3D Sphere Random](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute3d_sphere_random_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random) [### Distribute 3D Sphere Random](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random)     [![Look At Line 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/look_at_line2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-2d) [### Look At Line 2D](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-2d)     [![Look At Line 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/look_at_line3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d) [### Look At Line 3D](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d)     [![Look At Point 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/look_at_point2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d) [### Look At Point 2D](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d)     [![Look At Point 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/look_at_point3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d) [### Look At Point 3D](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d)   Linking[​](https://docs.mamoworld.com/iexpressions/#linking "Direct link to heading") -------------------------------------------------------------------------------------- * * * [![Average Link](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/average_link_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/average-link) [### Average Link](https://docs.mamoworld.com/iexpressions/linking/average-link)     [![Color Link](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/iexpressionscolorlink.jpg)](https://docs.mamoworld.com/iexpressions/linking/color-link) [### Color Link](https://docs.mamoworld.com/iexpressions/linking/color-link)     [![Layer Distance Link](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/04_layer_distance_link_iexpression.jpg)](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link) [### Layer Distance Link](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link)     [![Limited Time Parent](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/limited_time_parent_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/limited-time-parent) [### Limited Time Parent](https://docs.mamoworld.com/iexpressions/linking/limited-time-parent)     [![Linear Link 1D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/linear_link1d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d) [### Linear Link 1D](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d)     [![Linear Link 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/linear_link2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d) [### Linear Link 2D](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d)     [![Linear Link 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/linear_link3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d) [### Linear Link 3D](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d)     [![Linear Link Color](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-11-11_16.09.29.png)](https://docs.mamoworld.com/iexpressions/linking/linear-link-color) [### Linear Link Color](https://docs.mamoworld.com/iexpressions/linking/linear-link-color)     [![Linear Link Time Remap](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/iexpressionslinearlinktimeremapfatthin_16_9.jpg)](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap) [### Linear Link Time Remap](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap)     [![Link to Point on Shape](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-22_16.40.22.png)](https://docs.mamoworld.com/iexpressions/linking/link-point-shape) [### Link to Point on Shape](https://docs.mamoworld.com/iexpressions/linking/link-point-shape)     [![Rotation Link](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/rotation_link_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/rotation-link) [### Rotation Link](https://docs.mamoworld.com/iexpressions/linking/rotation-link)     [![Separate Link 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/separate_link2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/separate-link-2d) [### Separate Link 2D](https://docs.mamoworld.com/iexpressions/linking/separate-link-2d)     [![Separate Link 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/separate_link3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/separate-link-3d) [### Separate Link 3D](https://docs.mamoworld.com/iexpressions/linking/separate-link-3d)     [![Simple Link 1D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/simple_link1d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d) [### Simple Link 1D](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d)     [![Simple Link 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/simple_link2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d) [### Simple Link 2D](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d)     [![Simple Link 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/simple_link3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/simple-link-3d) [### Simple Link 3D](https://docs.mamoworld.com/iexpressions/linking/simple-link-3d)     [![Text Link](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/text_link_preview.jpg)](https://docs.mamoworld.com/iexpressions/linking/text-link) [### Text Link](https://docs.mamoworld.com/iexpressions/linking/text-link)   Movement Modifier[​](https://docs.mamoworld.com/iexpressions/#movement-modifier "Direct link to heading") ---------------------------------------------------------------------------------------------------------- * * * [![Basic Smoother](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/basic_smoother_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/basic-smoother) [### Basic Smoother](https://docs.mamoworld.com/iexpressions/movement-modifier/basic-smoother)     [![Change at Marker 1D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/change_at_marker1d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d) [### Change at Marker 1D](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d)     [![Change at Marker 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/change_at_marker2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d) [### Change at Marker 2D](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d)     [![Change at Marker 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/change_at_marker3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d) [### Change at Marker 3D](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d)     [![Increment at Marker 1D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/increment_at_marker_1d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d) [### Increment at Marker 1D](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d)     [![Increment at Marker 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/increment_at_marker_2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d) [### Increment at Marker 2D](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d)     [![Increment at Marker 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/increment_at_marker_3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d) [### Increment at Marker 3D](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d)     [![Loop](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/loop_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/loop) [### Loop](https://docs.mamoworld.com/iexpressions/movement-modifier/loop)     [![Play Animation at Marker](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-22_14.54.11.png)](https://docs.mamoworld.com/iexpressions/movement-modifier/play-animation-marker) [### Play Animation at Marker](https://docs.mamoworld.com/iexpressions/movement-modifier/play-animation-marker)     [![Separate Smoother 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/separate_smoother2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d) [### Separate Smoother 2D](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d)     [![Separate Smoother 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/separate_smoother3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d) [### Separate Smoother 3D](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d)     [![Snap to Grid 1D/2D/3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/snap_2_grid_2d_expression_title.png)](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d) [### Snap to Grid 1D/2D/3D](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d)     [![Time Remap at Marker](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/time_remap_at_marker_preview.jpg)](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker) [### Time Remap at Marker](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker)   Path[​](https://docs.mamoworld.com/iexpressions/#path "Direct link to heading") -------------------------------------------------------------------------------- * * * [![Arrowhead](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-18_20.18.00.png)](https://docs.mamoworld.com/iexpressions/path/arrowhead) [### Arrowhead](https://docs.mamoworld.com/iexpressions/path/arrowhead)     [![Auto-Resizing Background Shape](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/expression_thumbnail.jpg)](https://docs.mamoworld.com/iexpressions/path/auto-resizing-background-shape) [### Auto-Resizing Background Shape](https://docs.mamoworld.com/iexpressions/path/auto-resizing-background-shape)     [![Blockify](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/blockify.jpg)](https://docs.mamoworld.com/iexpressions/path/blockify) [### Blockify](https://docs.mamoworld.com/iexpressions/path/blockify)     [![Connect Multiple Layers](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-18_13.41.17.png)](https://docs.mamoworld.com/iexpressions/path/connect-multiple-layers) [### Connect Multiple Layers](https://docs.mamoworld.com/iexpressions/path/connect-multiple-layers)     [![Connect Two Layers](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-18_16.28.46.png)](https://docs.mamoworld.com/iexpressions/path/connect-two-layers) [### Connect Two Layers](https://docs.mamoworld.com/iexpressions/path/connect-two-layers)     [![Elastic](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/plant.jpg)](https://docs.mamoworld.com/iexpressions/path/elastic) [### Elastic](https://docs.mamoworld.com/iexpressions/path/elastic)     [![Mirror](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/mirror_0-00-00-00.jpg)](https://docs.mamoworld.com/iexpressions/path/mirror) [### Mirror](https://docs.mamoworld.com/iexpressions/path/mirror)     [![Pie Slice](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/pie_chart_title.jpg)](https://docs.mamoworld.com/iexpressions/path/pie-slice) [### Pie Slice](https://docs.mamoworld.com/iexpressions/path/pie-slice)     [![Repeater](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/crazy_shape.jpg)](https://docs.mamoworld.com/iexpressions/path/repeater) [### Repeater](https://docs.mamoworld.com/iexpressions/path/repeater)     [![Sine Wave](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/sine_wave_0-00-01-10.jpg)](https://docs.mamoworld.com/iexpressions/path/sine-wave) [### Sine Wave](https://docs.mamoworld.com/iexpressions/path/sine-wave)     [![Trail](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-15_14.12.58.png)](https://docs.mamoworld.com/iexpressions/path/trail) [### Trail](https://docs.mamoworld.com/iexpressions/path/trail)     [![Unfold](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-21_16.12.01.png)](https://docs.mamoworld.com/iexpressions/path/unfold) [### Unfold](https://docs.mamoworld.com/iexpressions/path/unfold)     [![Waveform](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/waveform_tutorial_0-00-00-00.jpg)](https://docs.mamoworld.com/iexpressions/path/waveform) [### Waveform](https://docs.mamoworld.com/iexpressions/path/waveform)   Physics Simulations[​](https://docs.mamoworld.com/iexpressions/#physics-simulations "Direct link to heading") -------------------------------------------------------------------------------------------------------------- * * * [![Cog Wheels](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/cog_wheels_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels) [### Cog Wheels](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels)     [![Elastic Connection](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/elastic_connection_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/elastic-connection) [### Elastic Connection](https://docs.mamoworld.com/iexpressions/physics-simulations/elastic-connection)     [![IK Arm (with 2 or 3 Segments)](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-22_13.27.49.png)](https://docs.mamoworld.com/iexpressions/physics-simulations/ik-arm-2-or-3-segments) [### IK Arm (with 2 or 3 Segments)](https://docs.mamoworld.com/iexpressions/physics-simulations/ik-arm-2-or-3-segments)     [![Link Puppet Pin To Layer](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/link_puppet_pin_to_layer_preview_0.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer) [### Link Puppet Pin To Layer](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer)     [![Move In & Out 2D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/move_in_out2d_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d) [### Move In & Out 2D](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d)     [![Move In & Out 3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/move_in_out3d_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d) [### Move In & Out 3D](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d)     [![Pendulum](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/pendulum_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum) [### Pendulum](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum)     [![Roller Coaster Master](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/roller_coaster_master_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master) [### Roller Coaster Master](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master)     [![Roller Coaster Wagon](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/roller_coaster_wagon_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-wagon) [### Roller Coaster Wagon](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-wagon)     [![Rotating Wheel Curvaceous Motion](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/rotating_wheel_curvaceous_motion_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion) [### Rotating Wheel Curvaceous Motion](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion)     [![Rotating Wheel Linear Motion](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/rotating_wheel_linear_motion_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion) [### Rotating Wheel Linear Motion](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion)     [![Softlink Puppet Pin To Layers](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/soft_link_puppet_pin_preview.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers) [### Softlink Puppet Pin To Layers](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers)     [![Throw 2D/3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/throw_2d_yellow.jpg)](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d) [### Throw 2D/3D](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d)     [![Walk Cycle](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-23_16.16.37.png)](https://docs.mamoworld.com/iexpressions/physics-simulations/walk-cycle) [### Walk Cycle](https://docs.mamoworld.com/iexpressions/physics-simulations/walk-cycle)   Source Text[​](https://docs.mamoworld.com/iexpressions/#source-text "Direct link to heading") ---------------------------------------------------------------------------------------------- * * * [![Appear Disappear per Character](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/appear_disappear_per_character_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character) [### Appear Disappear per Character](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character)     [![Counter Date](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/counter_date_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/counter-date) [### Counter Date](https://docs.mamoworld.com/iexpressions/source-text/counter-date)     [![Counter Date and Time](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/counter_date_and_time_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time) [### Counter Date and Time](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time)     [![Counter Numbers](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/counter_numbers_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers) [### Counter Numbers](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers)     [![Counter Time](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/counter_time_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/counter-time) [### Counter Time](https://docs.mamoworld.com/iexpressions/source-text/counter-time)     [![Distribute Text to Layers](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/distribute_text_to_layers_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers) [### Distribute Text to Layers](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers)     [![Evolution](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/evolution_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/evolution) [### Evolution](https://docs.mamoworld.com/iexpressions/source-text/evolution)     [![Linear Wipe](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/linear_wipe_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe) [### Linear Wipe](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe)     [![News Ticker](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/news_ticker_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/news-ticker) [### News Ticker](https://docs.mamoworld.com/iexpressions/source-text/news-ticker)     [![Random Letter Wipe](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/random_letter_wipe_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe) [### Random Letter Wipe](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe)     [![Random Text](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/random_text_block.jpg)](https://docs.mamoworld.com/iexpressions/source-text/random-text) [### Random Text](https://docs.mamoworld.com/iexpressions/source-text/random-text)     [![Random Text Template](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/random_text_template_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/random-text-template) [### Random Text Template](https://docs.mamoworld.com/iexpressions/source-text/random-text-template)     [![Scroll Text Terminal](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/scoll_text_terminal_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal) [### Scroll Text Terminal](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal)     [![Text Combiner](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/text_combiner_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/text-combiner) [### Text Combiner](https://docs.mamoworld.com/iexpressions/source-text/text-combiner)     [![Text Combiner Multi](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/text_combiner_multi_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi) [### Text Combiner Multi](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi)     [![Upper and Lower Case](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/upper_and_lower_case_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/upper-and-lower-case) [### Upper and Lower Case](https://docs.mamoworld.com/iexpressions/source-text/upper-and-lower-case)     [![Vertical Align Text](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/vertical_align_text_preview.jpg)](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text) [### Vertical Align Text](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text)   Spring Systems[​](https://docs.mamoworld.com/iexpressions/#spring-systems "Direct link to heading") ---------------------------------------------------------------------------------------------------- * * * [![Android Spring](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/spring_android_spring_ae.jpg)](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring) [### Android Spring](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring)     [![React Spring 8](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/spring_react_spring_ae.jpg)](https://docs.mamoworld.com/iexpressions/spring-systems/react-spring-8) [### React Spring 8](https://docs.mamoworld.com/iexpressions/spring-systems/react-spring-8)     [![UIKit Spring](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/spring_apple_spring_ae.jpg)](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring) [### UIKit Spring](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring)   Wiggles[​](https://docs.mamoworld.com/iexpressions/#wiggles "Direct link to heading") -------------------------------------------------------------------------------------- * * * [![Snapping Wiggle 1D/2D/3D](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/screenshot_2019-10-14_14.50.36.png)](https://docs.mamoworld.com/iexpressions/wiggles/snapping-wiggle-1d2d3d) [### Snapping Wiggle 1D/2D/3D](https://docs.mamoworld.com/iexpressions/wiggles/snapping-wiggle-1d2d3d)     [![Wiggle](https://docs.mamoworld.com/iexpressions/img/after-effects-expressions/basic_wiggle_preview.jpg)](https://docs.mamoworld.com/iexpressions/wiggles/wiggle) [### Wiggle](https://docs.mamoworld.com/iexpressions/wiggles/wiggle)   * [Audio](https://docs.mamoworld.com/iexpressions/#audio) * [Camera](https://docs.mamoworld.com/iexpressions/#camera) * [Layer Placement](https://docs.mamoworld.com/iexpressions/#layer-placement) * [Linking](https://docs.mamoworld.com/iexpressions/#linking) * [Movement Modifier](https://docs.mamoworld.com/iexpressions/#movement-modifier) * [Path](https://docs.mamoworld.com/iexpressions/#path) * [Physics Simulations](https://docs.mamoworld.com/iexpressions/#physics-simulations) * [Source Text](https://docs.mamoworld.com/iexpressions/#source-text) * [Spring Systems](https://docs.mamoworld.com/iexpressions/#spring-systems) * [Wiggles](https://docs.mamoworld.com/iexpressions/#wiggles) --- # Markdown page example | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/markdown-page#) Markdown page example ===================== You don't need React to write simple standalone pages. --- # Beat Detector Automatic | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#) On this page Beat Detector Automatic ======================= ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. ![](https://docs.mamoworld.com/iexpressions/assets/images/beat_detector_automatic_0-3ce67e29bdaa00c714c5107579d04896.png) ![Beat Detector Automatic expression]() Beat Detection iExpressions can be applied to properties which represent the audio amplitude of some music (i.e. properties which you created with the function 'convert audio into keyframes' of the keyframe assistent). They can detect the beats in the music such that you can animate various properties according to the music. The beat detectors just recognize the beat and don't do any animation, yet. You can animate properties using other iExpressions (like the 'Change on Beat 1D') which are then linked to the beat detector. This setup allows to animate several properties according to the same beat. To use the beat detector automatic, you just have to provide one example frame where the music contains a beat and the iExpression automatically searches for all other places where the wave form looks very similar. Theses are then also considered to be beats. This works in particular well, if the beats are clearly visible in the wave form of the audio. * ##### Example Beat Frame[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#example-beat-frame "Direct link to heading") specifies one example frame, at which the beat occurs. The iExpression tries to detect all other occurences of the beat automatically. * ##### Tolerance (%)[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#tolerance- "Direct link to heading") determines how similar other parts must be to the given example beat in order to be identified as beat, too. The lower this number, the less beats are detected. A tolerance of 0 means that other parts are identified as beats only, if they have exactly the same audio amplitude as the example beat. * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#fade-inout "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#fade-in-duration "Direct link to heading") determines the number of frames over which the beat is faded in. If this is set to 0, the iExpression abruptly jumps on each beat from 0 to 100. If it is set to 10, the value starts already 10 frames earlier to slowly increase from 0 to 100. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#fade-out-duration "Direct link to heading") determines the number of frames over which the beat is faded out. If this is set to 0, the iExpression abruptly jumps after each beat from 100 to 0. If it is set to 10, the value slowley decreases over 10 frames from 100 to 0. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#fade-type "Direct link to heading") determines whether the beat signal fades in or out in a linear or exponential fashion. * ##### Advanced[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#advanced "Direct link to heading") ##### Pattern Length[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#pattern-length "Direct link to heading") determines the length of the beat in number of frames. 10 means, for example, that the 10 frames around the given example beat are compared to other audio amplitude of remaining parts in order to find the other occurences of the beat. Download at aescripts.com #### Animating to Musik - Part 1[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic/#animating-to-musik---part-1 "Direct link to heading") ##### tip [![Animating to Musik - Part 1](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_news-eb2c52ef1375fc7b73e297c33fab7e1f.png)](http://www.sternfx.com/tutorials/105) [This tutorial](http://www.sternfx.com/tutorials/105) for sternfx.com uses different audio and linking iExpressions to animate things automatically according to music. --- # Beat Detector from bpm | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#) Beat Detector from bpm ====================== ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. ![](https://docs.mamoworld.com/iexpressions/assets/images/beat_detector_from_bpm_0-0c898bd58fbcc4d5a05b75a6d88493f3.png) Beat Detection iExpressions can be applied to properties which represent the audio amplitude of some music (i.e. properties which you created with the function 'convert audio into keyframes' of the keyframe assistent). They can detect the beats in the music such that you can animate various properties according to the music. The beat detectors just recognize the beat and don't do any animation, yet. You can animate properties using other iExpressions (like the 'Change on Beat 1D') which are then linked to the beat detector. This setup allows to animate several properties according to the same beat. To use the 'Beat Detector from bpm', you need to know the beats per minute (bpm) of the music. The bpm can also be determined with the mamoworld tool Beat Assistant. Then you simply specify one sample frame where a beat occurs and the iExpression generates a regular pattern of beat signals according to the BPM. * ##### Beats per Minute (bpm)[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#beats-per-minute-bpm "Direct link to heading") how many beats per minute the music has (if you don't know it, use mamoworld Beat Assistant to determine it) * ##### Example Beat Frame[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#example-beat-frame "Direct link to heading") specifies one example frame, at which the beat occurs. The iExpression tries to detect all other occurences of the beat automatically. * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#fade-inout "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#fade-in-duration "Direct link to heading") determines the number of frames over which the beat is faded in. If this is set to 0, the iExpression abruptly jumps on each beat from 0 to 100. If it is set to 10, the value starts already 10 frames earlier to slowly increase from 0 to 100. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#fade-out-duration "Direct link to heading") determines the number of frames over which the beat is faded out. If this is set to 0, the iExpression abruptly jumps after each beat from 100 to 0. If it is set to 10, the value slowley decreases over 10 frames from 100 to 0. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-bpm/#fade-type "Direct link to heading") determines whether the beat signal fades in or out in a linear or exponential fashion. Download at aescripts.com --- # Auto Scale | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#) Auto Scale ========== ![](https://docs.mamoworld.com/iexpressions/assets/images/auto_scale_0-bf34836cf4ad5a2c255afa663fd7c6da.png) With this expression you can move layers away from the camera (or towards it) while simultaneously scaling them, so that from the perspective of the camera they look unchanged. This is useful, for example, when you have an image (like a matte painting) that consists of several layers representing different levels of depth - like foreground, middle ground and background elements. With this expression you can easily distribute layers in 3d space to give your scene depth, as well as create parallax effects. * ##### Reference Frame[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#reference-frame "Direct link to heading") The frame at which the layers should look as if their position has not been shifted at all. * ##### Offset[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#offset "Direct link to heading") How much the layer is moved away from the camera (use negative values to move towards the camera) * ##### Offset Multiplier[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#offset-multiplier "Direct link to heading") For a value of 20, each layer moves 20 times as far as determined by "Offset"; for 0 all layers are remain at their original position. If you give different layers a different "Offset", you can still animate them simultaneously by linking the "Offset Multiplier" of all of them to the same slider control. * ##### Camera[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#camera "Direct link to heading") ##### Use Camera[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#use-camera "Direct link to heading") Determines whether the iExpression should use the active camera, or the camera specified in the next parameter ##### Custom Cam Name[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale/#custom-cam-name "Direct link to heading") Name of the camera to be used when 'Use Camera' is set to 'custom'. Download at aescripts.com --- # Autofocus on POI | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/camera/autofocus-poi/#) Autofocus on POI ================ ![]() If you apply this iExpression to the Focus Distance of a camera, the focus automatically keeps the Point of Interest in focus. * ##### Offset[​](https://docs.mamoworld.com/iexpressions/camera/autofocus-poi/#offset "Direct link to heading") Animate this property if you want to temporarily shift the focus away from the point of interest. You can link this to a slider and apply a wiggle to the slider, for example, to simulate some "pumping" auto-focus. Download at aescripts.com --- # Autofocus on Layers | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers/#) On this page Autofocus on Layers =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/autofocus_on_layers_3_web-49a98db5098579381bc6b0f5b80632d4.png) Automate the focus distance of your camera to keep a particular layer in focus - also transitions between layers are possible. Just apply this expression to the "Focus Distance" property of your camera layer. Now the meaning of the "Focus Distance" value changed: 1 does not mean "focus distance 1px" anymore, but means "keep layer 1 in focus" instead. ### Transitions[​](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers/#transitions "Direct link to heading") To do a focus transition from layer 3 to layer 5 of your comp, simply add two keyframes - first with value 3 and second with value 5. If you add easing to your keyframes, the focus pull will ease accordingly, too! Of course, you can add as many keyframes as you want. ### Explicitly linking layers[​](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers/#explicitly-linking-layers "Direct link to heading") The only inconvenience of using layer indices for the focus distance is that you have the update the keyframes accordingly, if the index of your focus layers changes (if you add or delete other layers). To avoid this, you can connect layers explicitly by setting "Choose Layer by" to "explicit link". Now properties "Focus Layer 1" to "Focus Layer 30" appear, where you can connect layers that you want to focus on. **Example:** Say you have in total five layer that you want to focus on. Then simply connect the first five "Focus Layer" properties of the iExpression to these five layers. Now keyframing the focus distance to 1 does not mean to focus on layer #1 of the comp anymore, but instead it means to focus the layer that you connected at the "Focus Layer 1" property of the iExpression - and this will not change, no matter how the actual index of the connected layer might change. **Note - Missing Transition Parameters:** Older versions of this expressions had some transition parameters to control the timing from one layer to the next one. In the new version, the easing is directly taken from the easing of the keyframes. Therefore, the easing parameters are not needed anymore. Download at aescripts.com * [Transitions](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers/#transitions) * [Explicitly linking layers](https://docs.mamoworld.com/iexpressions/camera/autofocus-layers/#explicitly-linking-layers) --- # Auto Scale Random | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#) Auto Scale Random ================= ![](https://docs.mamoworld.com/iexpressions/assets/images/auto_scale_random_0-c89ea4182359f70570bf3bf6b4c942d2.png) With this expression, you can move layers randomly away from the camera (or towards it) while simultaneously scaling them, so that from the perspective of the camera they look unchanged. This is useful, for example, if you have many text layers and want them to look as if they are all on the same plane in 3D space with the same size. If you turn the camera, however, you notice that some of them are very close and small, while others are far away and much bigger. If you want to control for each layer exactly how much it is shifted, you can use the "Auto Scale" expression instead. * ##### Reference Frame[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#reference-frame "Direct link to heading") The frame at which the layers should look as if their position has not been shifted at all. * ##### Min Offset[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#min-offset "Direct link to heading") The minimum amount that a layer can be moved away from the camera (use a negative value to allow moving towards the camera) * ##### Max Offset[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#max-offset "Direct link to heading") The maximum amount that a layer may be moved away from the camera (use a negative value to only allow moving towards the camera) * ##### Offset Multiplier[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#offset-multiplier "Direct link to heading") For a value of 20, each layer moves 20 times as far as determined by "Min Offset" and "Max Offset"; for 0, all layers remmainat their original position. Animate this value to move the layers further away or back to their original position. * ##### Camera[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#camera "Direct link to heading") ##### Use Camera[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#use-camera "Direct link to heading") Determines whether the iExpression should use the active camera or the camera given in the next parameter ##### Custom Cam Name[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#custom-cam-name "Direct link to heading") Name of the camera that should be used when 'Use Camera' is set to 'custom'. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/camera/auto-scale-random/#random-seed "Direct link to heading") Change this number arbitrarily to get another random shift in the layers. For each number you enter, a different random value is generated. Download at aescripts.com --- # Beat Mixer | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#) Beat Mixer ========== ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. ![](https://docs.mamoworld.com/iexpressions/assets/images/beat_mixer_0-8a42ed918844c0c6175fc707f8cd25f7.png) The Beat Mixer creates a new beat as a combination of several other beats. This is useful if you want to animate a property such that it reacts on several different beats in the same way. For this, you first merge all the beats into a new beat using the 'Beat Mixer' and then you animate the property using this combined beat as you would use any other beat. If you want the property to react on more than one beat, but react on each of them differently, you can use one of the 'Beat Switch' iExpressions instead * ##### Smooth[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#smooth "Direct link to heading") controls the behaviour if several different beats overlap in time. Without 'Smooth' the result changes apruptly from the value of the one beat to the value of the other, whereas with the 'Smooth' option there is a smooth transition between the different beats. * ##### Beat 1[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#beat-1 "Direct link to heading") ##### link to Beat 1[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#link-to-beat-1 "Direct link to heading") must be linked to the first of the beats which should be combined. ##### Level Beat 1 (%)[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#level-beat-1- "Direct link to heading") allows to modify the amplitude of beat 1 such that the reaction on it gets stronger or weaker. * ##### Beat 2[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#beat-2 "Direct link to heading") ##### link to Beat 2[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#link-to-beat-2 "Direct link to heading") must be linked to the second of the beats which should be combined. ##### Level Beat 2 (%)[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#level-beat-2- "Direct link to heading") allows to modify the amplitude of beat 2 such that the reaction on it gets stronger or weaker. * ##### Beat 3[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#beat-3 "Direct link to heading") ##### link to Beat 3[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#link-to-beat-3 "Direct link to heading") must be linked to the third of the beats which should be combined (or be set to 0 if you only want to combine two beats). ##### Level Beat 3 (%)[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#level-beat-3- "Direct link to heading") allows to modify the amplitude of beat 3 such that the reaction on it gets stronger or weaker. * ##### Beat 4[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#beat-4 "Direct link to heading") ##### link to Beat 4[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#link-to-beat-4 "Direct link to heading") must be linked to the fourth of the beats which should be combined (or be set to 0 if you want to combine less than four beats). ##### Level Beat 4 (%)[​](https://docs.mamoworld.com/iexpressions/audio/beat-mixer/#level-beat-4- "Direct link to heading") allows to modify the amplitude of beat 4 such that the reaction on it gets stronger or weaker. Download at aescripts.com --- # Beat Detector via Threshold | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#) On this page Beat Detector via Threshold =========================== ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. ![](https://docs.mamoworld.com/iexpressions/assets/images/beat_detector_via_threshold_0-c9ee099f3d48edd5336ae08132f4886f.png) ![]() Beat Detection iExpressions can be applied to properties which represent the audio amplitude of some music (i.e. properties which you created with the function 'convert audio into keyframes' of the keyframe assistent). They can detect the beats in the music such that you can animate various properties according to the music. The beat detectors just recognize the beat and don't do any animation, yet. You can animate properties using other iExpressions (like the 'Change on Beat 1D') which are then linked to the beat detector. This setup allows to animate several properties according to the same beat. The 'Beat Detector via Threshold' detects all parts of the audio as beat, whose audio amplitude is inbetween 'Min Value' and 'Max Value'. This beat detector is hence best suitable to detect parts of the music whose loudness significantly differs from the remaining audio. It can also be used to detect silence (for example for automatic lip sync animation which should only be active when there is no silence). * ##### Min Amplitude[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#min-amplitude "Direct link to heading") denotes the minimal audio amplitude of a beat. Everything that has an audio amplitude in between Min Amplitude and Max Amplitude is considered as a beat. * ##### Max Amplitude[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#max-amplitude "Direct link to heading") denotes the maximal audio amplitude of a beat. Everything that has an audio amplitude in between Min Amplitude and Max Amplitude is considered as a beat. * ##### Smooth (Num Frames)[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#smooth-num-frames "Direct link to heading") allows to do not consider the audio amplitude of the current frame, but the average of the sourrounding frames. Large values hence allow to identify parts of the music as beats which have a characteristic (average) volume, wheras small values allow to react to quick changes in the audio amplitude. * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#fade-inout "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#fade-in-duration "Direct link to heading") determines the number of frames over which the beat is faded in. If this is set to 0, the iExpression abruptly jumps on each beat from 0 to 100. If it is set to 10, the value starts already 10 frames earlier to slowly increase from 0 to 100. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#fade-out-duration "Direct link to heading") determines the number of frames over which the beat is faded out. If this is set to 0, the iExpression abruptly jumps after each beat from 100 to 0. If it is set to 10, the value slowley decreases over 10 frames from 100 to 0. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#fade-type "Direct link to heading") determines whether the beat signal fades in or out in a linear or exponential fashion. Download at aescripts.com #### Create a Kick Drum Kinetic Type Animation[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-threshold/#create-a-kick-drum-kinetic-type-animation "Direct link to heading") ##### tip [![Create a Kick Drum Kinetic Type Animation]()](http://aescripts.com/create-a-kick-drum-kinetic-type-animation/) [This tutorial](http://aescripts.com/create-a-kick-drum-kinetic-type-animation/) by Brad Magnus shows how to use iExpressions and 3D Extruder to make a sound syncronized kinetic type animation. --- # Beat Switch | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/beat-switch/#) On this page Beat Switch =========== ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-17_11.48.18-16e6fb41fff1d9a6fe4e9eac70af9cb3.png) The Beat Switch iExpressions allow a property to react to more than one beat slider simultaneously (say one with the [Beat Detector from Marker](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker) and one with the [Beat Detector Automatic](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic) ). The reaction to the beat sliders can be completely different for each of them. In particular, the reaction to each single beat signal can again be controlled by a separate, individual iExpression. The Beat Switch expressions are pretty advanced and you should be familiar with the different _Change on Beat_ and _Beat Detector_ iExpressions, before you start using them. If you want to react on more than one beat signal but react on all of them in exactly the same way, better use the [Beat Mixer> iExpression.](https://docs.mamoworld.com/iexpressions/audio/beat-mixer) There exist sevaral _Beat Switch_ iExpressions, namely one of 1D, 2D, 3D properties, Texts and Colors, respectively. ### Usage[​](https://docs.mamoworld.com/iexpressions/audio/beat-switch/#usage "Direct link to heading") Let's say you want to perform two different moves with a layer - one on each marker and one on each beat detected by the Beat Detector Automatic. Then you first create two beat sliders using the [Beat Detector from Marker](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker) and the [Beat Detector Automatic](https://docs.mamoworld.com/iexpressions/audio/beat-detector-automatic) , respectively. Now you create two copies of your layer and animate the position of both of them using the two beat sliders with the [Change on Beat 2D](https://docs.mamoworld.com/iexpressions/audio/change-beat) iExpressions (or animate other properties using other [Change on Beat](https://docs.mamoworld.com/iexpressions/audio/change-beat) iExpressions). So now you have two copies of the layer, one doing some moves based on the first beat signal and one doing some moves based on the second beat signal. We combine them now using the _Beat Switch 2D_ iExpression. We first connecting the beat sliders to the respective parameters in the iExpression. Then in the "Value on Beat" parameters than show up after you connected the beat sliders, you can link the animations that belong to the first and second beat signal, respectively, i.e. the position of the first and second copy of your layer. Finally you make the two copies of your layer invisible and create a third, visible copy to whose position you apply the _Beat Switch 2D_. Now the two invisible layers move based on only the first beat signal (the markers in this case) and only the second beat signal (Beat Detector Automatic), respectively, but the visible copy combines both animations and moves based on both beat signals. Download at aescripts.com * [Usage](https://docs.mamoworld.com/iexpressions/audio/beat-switch/#usage) --- # Beat Detector from Marker | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#) On this page Beat Detector from Marker ========================= ![](https://docs.mamoworld.com/iexpressions/assets/images/beat_detector_from_marker_0-5a61085122805e4e958f148cf9559f81.png) ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. Beat Detection iExpressions can be applied to properties which represent the audio amplitude of some music (i.e. properties which you created with the function 'convert audio into keyframes' of the keyframe assistent). They can detect the beats in the music such that you can animate various properties according to the music. The beat detectors just recognize the beat and don't do any animation, yet. You can animate properties using other iExpressions (like the 'Change on Beat 1D') which are then linked to the beat detector. This setup allows to animate several properties according to the same beat. To use the 'Beat Detector from Marker', you need to play the music and set marker according to it as if you would tab along with the rhythm. The iExpression then generates one beat for each marker. If you reapeat a regular pattern with the markers at least three times, the iExpression automatically continues this pattern if you enable the option 'continue automatically'. * ##### continue automatically[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#continue-automatically "Direct link to heading") enables the iExpression to detect the regular pattern in the marker placement and to continue it automatically. * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#fade-inout "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#fade-in-duration "Direct link to heading") determines the number of frames over which the beat is faded in. If this is set to 0, the iExpression abruptly jumps on each beat from 0 to 100. If it is set to 10, the value starts already 10 frames earlier to slowly increase from 0 to 100. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#fade-out-duration "Direct link to heading") determines the number of frames over which the beat is faded out. If this is set to 0, the iExpression abruptly jumps after each beat from 100 to 0. If it is set to 10, the value slowley decreases over 10 frames from 100 to 0. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#fade-type "Direct link to heading") determines whether the beat signal fades in or out in a linear or exponential fashion. Download at aescripts.com #### Animating to Musik - Part 1[​](https://docs.mamoworld.com/iexpressions/audio/beat-detector-marker/#animating-to-musik---part-1 "Direct link to heading") ##### tip [![Animating to Musik - Part 1](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_news-eb2c52ef1375fc7b73e297c33fab7e1f.png)](http://www.sternfx.com/tutorials/105) [This tutorial](http://www.sternfx.com/tutorials/105) for sternfx.com uses different audio and linking iExpressions to animate things automatically according to music. --- # Change on Beat | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/audio/change-beat/#) On this page Change on Beat ============== ##### tip [BeatEdit for After Effects](https://aescripts.com/beatedit-for-after-effects/) has a very different, powerful and in particular very easy to use approach to animate properties in sync with music. ![](https://docs.mamoworld.com/iexpressions/assets/images/change_on_beat_2d-cb640fef56b9b7359fe69b3e3fd36a3d.png) With this iExpression you can make a property react on a beat signal (slider) which you created using one of the beat detector iExpressions. When there is no beat the property has its normal value given by the keyframes as if no iExpression would be applied. When there is a beat, the value changes to what you specify in "Value on Beat" (or the "Value on Beat" is added to the current value, if "Mode" is set to "add to original value"). There exists different _Change on Beat_ iExpressions, for 1D, 2D and 3D properties, texts and colors, respectively. Download at aescripts.com #### Animating to Music - Part 1[​](https://docs.mamoworld.com/iexpressions/audio/change-beat/#animating-to-music---part-1 "Direct link to heading") ##### tip [![Animating to Music - Part 1](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_news-eb2c52ef1375fc7b73e297c33fab7e1f.png)](http://www.sternfx.com/tutorials/105) [This tutorial](http://www.sternfx.com/tutorials/105) for sternfx.com uses different audio and linking iExpressions to animate things automatically according to music. --- # Align Layers in Row/Column | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn/#) On this page Align Layers in Row/Column ========================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-12_10.58.50_0-0e4d07bf525c393f82c799e001085557.png) The _Align Layers in Row_ and _Align layers in column_ expressions allow you to create dynamic layouts. The placement of the layers is calculated automatically and when the content changes (say you replace some text or change the scale of some layer), the placement of all layers changes instantly such that they stay aligned perfectly. Just connect in the expression parameters all layers that should be aligned and then apply the expression to the position of all connected layers. Now you can move the first and last layer freely and all other layers distribute in-between automatically. ### Animate In/Out[​](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn/#animate-inout "Direct link to heading") By default, the expressions keep the layers aligned on all frames. If you want to move layers individually, to animate them into or out of their aligned position, you should 1. choose the option to align only on a single frame (choose some frame where everything should be aligned). 2. add a keyframe to the position of all aligned layers at this frame 3. Now you can add keyframes at other points in time to move the layers relative to their aligned position Note that the keyframes you create work relative to the aligned position now. So If you change the content, still all layers update their position and all keyframed animations are shifted accordingly. ### Example[​](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn/#example "Direct link to heading") ![After Effects layers aligned in column with expression. When content changes, layout updates instantly](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsalignlayerscolumn_preview_gif-d5bfdb6f036b08f1c6b753df3d7c3123.gif) Here we aligned some text layers and a shape layer (the line) in a column. If you move the first or last layer (or change the content of any of the layers) everything updates such that the layers always preserve and equal distance in Y direction and stay centered in X direction. You can still animate the layers in and out, since the expression is set to align only on a single frame. Download at aescripts.com * [Animate In/Out](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn/#animate-inout) * [Example](https://docs.mamoworld.com/iexpressions/layer-placement/align-layers-rowcolumn/#example) --- # Align to Composition | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition/#) Align to Composition ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/align_to_composition_0-916526135a724be84d457eead1c6e083.png) This iExpression allows to align layers relative to the composition, i.e. they can be placed centered or at the borders of the composition. This placement is dynamic, i.e. if you change the composition size the placement adjusts automatically. * ##### Align X[​](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition/#align-x "Direct link to heading") aligns the layer horizontally. If 'none' is choosen, the keyframed x-value remains unchanged. * ##### Align Y[​](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition/#align-y "Direct link to heading") aligns the layer vertically. If 'none' is choosen, the keyframed y-value remains unchanged. * ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition/#offset "Direct link to heading") allows to move the layer away from its aligned position. This is useful, for example, if you want to place the layer at the border of the composition but keep a certain distance to the border. * ##### Center around[​](https://docs.mamoworld.com/iexpressions/layer-placement/align-composition/#center-around "Direct link to heading") determines which point of the layer is aligned relatively to the composition. When 'anchor point' is choosen the position of the layer is changed such that the anchor point is placed where specified (i.e. centered or at the border of the composition). If you choose 'layer boundaries', the boundaries of the layer are aligned to the boundaries of the composition, i.e. when aligning at the top, the top border of the layer is placed at the top border of the composition. The option 'layer boundaries' is only working for footage-based layers and not for other layers like text layers, as for those expression cannot determine the boundaries. Download at aescripts.com --- # Attach to Circle 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/attach-circle-2d/#) Attach to Circle 2D =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/attach_to_circle_2d-353838b53e8123c304f3f0cacb962243.png) This iExpression changes the meaning of the x and y value such that you can easily animate the property along circles, ellipses or spirals. Technically speaking, the iExpression turns your coordinates into polar coordinates. Simply speaking, after you applied the iExpression, you can animate the property via keyframes as usual but they have a different meaning: Applied to the position of a layer, the x and y position now to not specify anymore how much the layer moves left/right and up/down; instead the x value moves the layer along circles around the center point and the y value gives the radius of this circle, i.e. moves the layer towards and away from the center. If you animate the position of a layer using 2 keyframes, e.g. from \[0,50\] to \[360,50\], the layer moves one complete round (0 to 360 degrees) on a circle of radius 50. To move on spirals, also animate the y component over time. Moving e.g. from \[0,0\] to \[720,100\] yields a movement along a spiral from the center of the circle outward up to a radius of 100, where in total two full rotations are performed (720=2\*360). In order to orient the layers correctly on the circle, apply the "Look At Point 2D" iExpression to their rotation and choose as "Look At" point the center of the circle. If you want to move or rotate the circle, its best to set the center to (0,0), then create a new NULL object and parent the layers on the circle surface to this NULL. During the parenting, keep the alt or option key pressed. Then the position of the NULL becomes the center of the circle and you can move or rotate it using the transform controls of the NULL. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/attach-circle-2d/#center "Direct link to heading") is the center of the circle (or of the ellipse) around which the property moves. * ##### Scale (%)[​](https://docs.mamoworld.com/iexpressions/layer-placement/attach-circle-2d/#scale- "Direct link to heading") allows to scale the circle. If the x and y values are not identical you obtain squeezed circles, i.e. ellipses. Download at aescripts.com --- # Attach to Cylinder 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/attach-cylinder-3d/#) Attach to Cylinder 3D ===================== ![](https://docs.mamoworld.com/iexpressions/assets/images/attach_to_cylinder_3d-39575bfaa3313cff8e37b9e3d2b3398b.png) This iExpression changes the meaning of the x, y, and z value of the property such that you can easily animate it along a cylinder surface. Technically speaking the iExpression turns your coordinate system into a cylindrical coordinate system. Simply speaking, you can animate the property via keyframes as usual, but the values have a new meaning: Applied to the position of a layer, the x and y position now do not move the layer left/right and up/down anymore; instead they move the layer along the surface of the cylinder. The radius of the cylinder is given in the z component. In order to orient the layers correctly on the cylinder surface, apply the "Look At Line 3D" iExpression to their orientation and choose as first point of the line the center of the sphere and as second point an arbitrary point exactly above or below it (e.g. the center with a value of 100 added to its y value). If you want to move or rotate the cylinder, its best to set the center to (0,0,0), then create a new NULL object, make it 3D and parent the layers on the cylinder surface to this NULL. During the parenting keep the alt or option key pressed. Then the position of the NULL becomes the center of the cylinder and you can move or rotate it using the transform controls of the NULL. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/attach-cylinder-3d/#center "Direct link to heading") is the center of the cylinder along whose surface the property is moved. * ##### Scale Radius (%)[​](https://docs.mamoworld.com/iexpressions/layer-placement/attach-cylinder-3d/#scale-radius- "Direct link to heading") allows to scale the circle around which the cylinder wraps. If the x and y values are not identical you obtain squeezed circles i.e. ellipses. Download at aescripts.com --- # Attach to Sphere 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/attach-sphere-3d/#) Attach to Sphere 3D =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/attach_to_shpere_3d-8a05a753383320f29c16bec9f1dff901.png) This iExpression changes the meaning of the x, y, and z value of the property such that you can easily animate it along a sphere surface. Technically speaking the iExpression turns your coordinate system into a spherical coordinate system. Simply speaking, you can animate the property via keyframes as usual but the values have a new meaning: Applied to the position of a layer, the x and y position now do not move the layer left/right and up/down anymore; instead they move the layer along the surface of the sphere. The radius of the sphere is given in the z component. In order to orient the layers correctly on the sphere surface, apply the "Look At Point 3D" iExpression to their orientation and choose as "Look At" point the center of the sphere. If you want to move or rotate the sphere, its best to set the center to (0,0,0), then create a new NULL object, make it 3D and parent the layers on the sphere surface to this NULL. During the parenting, keep the alt or option key pressed. Then the position of the NULL becomes the center of the sphere and you can move or rotate it using the transform controls of the NULL. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/attach-sphere-3d/#center "Direct link to heading") is the center of the sphere along whose surface the property is moved. * ##### Scale Radius (%)[​](https://docs.mamoworld.com/iexpressions/layer-placement/attach-sphere-3d/#scale-radius- "Direct link to heading") allows to scale the sphere. If the x y and z values are not identical you obtain squeezed spheres (i.e. elliptical ones). Download at aescripts.com --- # Distribute 2D Circle and Spiral | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#) Distribute 2D Circle and Spiral =============================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_2d_circle_and_spiral-18867dc2f41903383aeb2a4504335fb6.png) With this iExpression you can place layers in a circle. Variants like ellipses, spirals or arcs of circles are also possible. In order to orient the layers correctly on the circle, apply the "Look At Point 2D" iExpression to their rotation and choose as "Look At" point the center of the circle. If you want to move or rotate the circle, its best to set the center to (0,0), then create a new NULL object and parent the layers on the circle surface to this NULL. During the parenting, keep the alt or option key pressed. Then the position of the NULL becomes the center of the circle and you can move or rotate it using the transform controls of the NULL. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#center "Direct link to heading") is the center of the circle (or of the ellipse, spiral,...) * ##### First Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#first-layer "Direct link to heading") ##### Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#layer-name-or-index "Direct link to heading") is the name or index of the first layer that should be placed in the circle. ##### Angle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#angle "Direct link to heading") this angle gives the direction where (relative to the center) the first layer is placed. 0 degree means above the center (12 o clock), 90 degree to the right of if (3 o clock), 180 degree below it (6 o clock) etc. ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#radius "Direct link to heading") is the distance that the first layer has to the center. For circles, this value is identical in both dimensions, for ellipsis you can choose different values in x and y direction. * ##### Last Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#last-layer "Direct link to heading") ##### Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#layer-name-or-index-1 "Direct link to heading") is the name or index of the last layer that should be placed in the circle. ##### Angle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#angle-1 "Direct link to heading") this angle gives the direction where (relative to the center) the last layer is placed. 0 degree means above the center (12 o clock), 90 degree to the right of if (3 o clock), 180 degree below it (6 o clock) etc. ##### use Radius of First Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#use-radius-of-first-layer "Direct link to heading") With this option the last layer uses the radius of the first layer (and ignored its own radius). Use this to create circles and ellipses; for spirals the radius of the first and last layer must be different. ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#radius-1 "Direct link to heading") is the distance that the first layer has to the center. For circles, this value is identical in both dimensions, for ellipsis you can choose different values in x and y direction. For spirals this parameter should differ from the respective parameter for the first layer. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value to the position on the circle. Hence, the layer is only placed exactly on the circle when the keyframed position is (0,0). Other values cause a corresponding offset and allow to animate the position relative to its placement on the circle. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#frequency "Direct link to heading") makes the layer wiggle around its position in the circle with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its position on the cirle. To create a little less regular but still not moving circle, set the frequency to 0 and the amplitude to some value greater 0. ##### Radial Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#radial-wiggle "Direct link to heading") makes the layers stay exactly on the circle while they wiggle. In other words, only the angle is wiggled, but not the radius. * ##### Layer Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#layer-offset "Direct link to heading") ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-circle-and-spiral/#offset "Direct link to heading") with an Offset of one, the first layer is removed from the beginning of the arc and added again at the end behind the last layer. For an offset of 2 this happens for the first two layers etc. Download at aescripts.com --- # Distribute 2D Line | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#) Distribute 2D Line ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_2d_line-a12b7e0fafaff74741ecce90feac2f36.png) With this iExpression you can place layers in a straight line. For horizontal or vertical lines, you can also use the 'Align Layers in Row' or 'Align Layers in Column' iExpressions, if you don't need the advanced parameters like the wiggle. * ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#first-layer-name-or-index "Direct link to heading") is the name or index of the first layer that should be placed on the line. * ##### Last Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#last-layer-name-or-index "Direct link to heading") is the name or index of the last layer that should be placed on the line. * ##### Starting Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#starting-point "Direct link to heading") is the starting point of the line on which the layers should be distributed. * ##### Ending Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#ending-point "Direct link to heading") is the ending point of the line on which the layers should be distributed. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value to the position on the line. Hence, all layers except the first and the last one are then only placed exactly on the line when their keyframed position is (0,0). Other values cause a corresponding offset and allow to animate the position relative to its placement on the line. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#frequency "Direct link to heading") makes the layer wiggle around its position on the line with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its position on the line. To create a little less regular but still not moving line, set the frequency to 0 and the amplitude to some value greater 0. ##### Wiggle On Line[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#wiggle-on-line "Direct link to heading") makes the layers stay exactly on the line while they wiggle. In other words, it only wiggles in the direction of the line. * ##### Layer Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#layer-offset "Direct link to heading") ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-line/#offset "Direct link to heading") with an offset of one, the first layer is removed from the beginning of the line and added again at the end behind the last layer. For an offset of 2 this happens for the first two layers etc. Download at aescripts.com --- # Distribute 2D Random | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#) Distribute 2D Random ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_2d_random-8a9ffe28ae9156e34fa509d8c9888c68.png) With this iExpression you can distribute 2D layers (or other 2D properties) randomly. You can still move layers away from their random position using their keyframe values or the wiggle parameters. You can influence the random distribution also with the help of some layer: The lighter the layer is at some position, the more likely it is that a random value is placed at this position. * ##### Minimum Value[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#minimum-value "Direct link to heading") is the minimum of the possible random values. Note that if you use the wiggle or keyframe offset options, the value could become smaller that this. * ##### Maximum Value[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#maximum-value "Direct link to heading") is the maximum of the possible random values. Note that if you use the wiggle or keyframe offset options, the value could become larger that this. * ##### Image based Probability[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#image-based-probability "Direct link to heading") ##### Use Image Based Probability[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#use-image-based-probability "Direct link to heading") allows to determine based on the lightness of some layer the probabilies where the random positions appear. The more white the layer is at some position, the more likely it is that at this point a random value is placed. ##### Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#layer-name-or-index "Direct link to heading") is the name or index of the layer whose lightness is used to determine where to place the random values. ##### Precision[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#precision "Direct link to heading") When the layer consists mostly of very dark areas the computation might become slow. If you decrease the precision, the computation gets faster but it is possible that more random values occur in the dark (unlikely) areas. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value of the property to the random value. This allows you to move the property away from its keyframed value using keyframes. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#frequency "Direct link to heading") makes the layer wiggle around its random position with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its random position when it wiggles. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#random-seed "Direct link to heading") can be modified to get other random values. ##### Change Over Time[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-random/#change-over-time "Direct link to heading") allows to get a new random value for each frame. Download at aescripts.com --- # Distribute 2D Grid | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#) Distribute 2D Grid ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_2d_grid-0b94f38f60c9b7679b6fcfb6c6619640.png) With this iExpression you can distribute layers on a 2D grid. Just specify the first layer and all other layers that you apply the iExpression to, will be placed next to this layer in the given distance. You can still move layers away from their grid position using their keyframe values or the wiggle parameters. * ##### First Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#first-layer "Direct link to heading") ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#first-layer-name-or-index "Direct link to heading") is the name or index of the first layer. This layer is the upper left corner of the grid and its position determines the position of the grid. ##### Position[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#position "Direct link to heading") is the position of the first layer in the grid. * ##### Distance[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#distance "Direct link to heading") is the distance between neighouring layers in the grid. * ##### Grid Size[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#grid-size "Direct link to heading") denotes how many layers should be placed in one row and one column. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#use-keyframe-value-as-offset "Direct link to heading") allows to move each layer away from its position in the grid using keyframes. In order to be exactly placed at its position in the grid, a layer then must have exactly the same keyframed position as the first layer of the grid. If the position is different, the difference is used as an offset to the grid position. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#frequency "Direct link to heading") makes the layer wiggle around its position in the grid with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its grid position. To create a little less regular but still not moving grid, set the frequency to 0 and the amplitude to some value greater 0. * ##### Layer Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#layer-offset "Direct link to heading") ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-2d-grid/#offset "Direct link to heading") allows to delete the first rows or columns of the grid and insert them again behind the last rows or columns. A value of (3,2), for example, moves the first three columns behind the last one and the two topmost rows below the bottommost one. Download at aescripts.com --- # Wiggle | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#) On this page Wiggle ====== ![](https://docs.mamoworld.com/iexpressions/assets/images/basic_wiggle_0-51f612b08887c1474592db91f200c851.png) **Wiggle and Jiggle layers in After Effects easily** iExpressions includes a big collection of different wiggle expressions for After Effects. In addition to the normal _Basic Wiggle_ it contains a seamlessly looping wiggle, one that snaps to a grid and also wiggles where you can control the wiggle settings for up/down and left/right movement separately, for example. ### Fade Wiggle In and Out[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#fade-wiggle-in-and-out "Direct link to heading") To fade any of the wiggle expressions in and out, you can link the wiggle amplitude to a slider and then keyframe it. This also allows you to change the amount of wiggling over time. ### Variants[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#variants "Direct link to heading") ![Basic Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/basic_wiggle-6de2b29ccc7d7e6b11cd52976e587bef.gif) #### Basic Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#basic-wiggle "Direct link to heading") This is the simple wiggle that you also get when writing this expressions code manually: wiggle(frequency, amplitude) The _Frequency_ parameter says how fast it should wiggle (wiggles per second) and the _Amplitude_ parameter says how much it should wiggle (maximum amount in pixels). ![Directional Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/directional_wiggle-f9b82d6b1e46b0f9fa88f7e8e4521659.gif) #### Directional Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#directional-wiggle "Direct link to heading") The _Directional Wiggle_ has an _Angle_ parameter and only wiggles in the direction specified by that angle. Of course, you can also link this angle to a slider to change the wiggle direction over time. ![Looping Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/looping_wiggle-568301a599d9209a78366b2652144ee1.gif) #### Looping Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#looping-wiggle "Direct link to heading") The _Looping Wiggle_ behaves exactly as the _Basic Wiggle_, except that at the last frame of the layer it ends exactly at the position where it started. This is very helpful if you want to create a wiggle animation that loops seamlessly. ![One Side Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/one_side_wiggle-f21b8a0d1edd2c663f5ec7fe25409b6f.gif) #### One Side Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#one-side-wiggle "Direct link to heading") In this example, we let the right icon wiggle upwards when the left icon bounces on the ground. These kinds of secondary animations let impacts appear to be more realistic and intense. Since we use the _One Side Wiggle_, it only wiggles upwards (note that it never goes below the ground line). iExpressions contains _One Side Wiggle_ expressions for 1D, 2D and 3D properties. The 1D variant can be applied to rotation (say wiggle the hand of a speedometer) or opacity, for example. ![Separate Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/separate_wiggle-7449fa81473ddace859496a67ad3022a.gif) #### Separate Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#separate-wiggle "Direct link to heading") The _Separate Wiggle_ is the same as the _Basic Wiggle_, except that wiggle frequency and amplitude can be controlled for X and Y direction independently. In this example, we wiggle 100px left/right but only 50px up/down. Also the frequency is set to 10 wiggles per second for left/right but only 3 wiggles per second for up/down. As a result, the layer wiggles much more and faster to the side than up and down. The _Separate Wiggle_ comes in a 2D and a 3D variant. In the 3D variant you can control frequency and amplitude not only in X and Y but also in Z direction. ![Snapping Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/snapping_wiggle-0af1d4601a74ac554109161a4c75be43.gif) #### Snapping Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#snapping-wiggle "Direct link to heading") The _Snapping Wiggle_ is like a combination of a _Basic Wiggle_ and a [Snap 2 Grid iExpression](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d) , so it first moves the layer in a random direction and then snaps the position to a grid. The expression also offers a smoothness parameter. [Learn more](https://docs.mamoworld.com/iexpressions/wiggles/snapping-wiggle-1d2d3d) ![Temporal Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/temporal_wiggle-ed03c64ffb163585b7e17b47368bf879.gif) #### Temporal Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#temporal-wiggle "Direct link to heading") In this example, we use the _Temporal Wiggle_ to wiggle the layer along its keyframed motion path. So without the wiggle it would move along the line with constant speed and with the wiggle it moves back and forth along the path in a random way instead. In general, the _Temporal Wiggle_ can be applied to any keyframed property. Instead of using the keyframe value at the current time, the expression then moves back and forth in time randomly and picks the keyframe values of these other points in time. ![Wave Wiggle Expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/wave_wiggle-b9e95da0e7bbdbb96c6dd31a5c4f8d33.gif) #### Wave Wiggle[​](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#wave-wiggle "Direct link to heading") The _Wave Wiggle_ is very similar to the _Basic Wiggle_, but creates a more regular, curved movement. So if the _Basic Wiggle_ is too chaotic or has too abrupt turns for you, try the _Wave Wiggle_ instead. Download at aescripts.com * [Fade Wiggle In and Out](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#fade-wiggle-in-and-out) * [Variants](https://docs.mamoworld.com/iexpressions/wiggles/wiggle/#variants) --- # Snapping Wiggle 1D/2D/3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/wiggles/snapping-wiggle-1d2d3d/#) On this page Snapping Wiggle 1D/2D/3D ======================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-14_14.22.24-c564c686ed0ac60d3ecfa73767391858.png) These expressions are like a combination of a [Wiggle expression](https://docs.mamoworld.com/iexpressions/wiggles/wiggle) and a Snap to Grid iExpression. So instead of a continuous movement, the wiggle happens in steps of a customable step size. The 2D and 3D variants are useful to move layers along a grid, the 1D variant can be used, for example, to rotate elements. [See More Wiggles](https://docs.mamoworld.com/iexpressions/wiggles/wiggle) ### Examples[​](https://docs.mamoworld.com/iexpressions/wiggles/snapping-wiggle-1d2d3d/#examples "Direct link to heading") ![After Effects Snapping Wiggle expression - Rotation Example Sci-Fi HUD](https://docs.mamoworld.com/iexpressions/assets/images/snapping_wiggle_example_rotation-41d665d36332feb1b5407cd8216f6a70.gif) Here we applied the Snapping Wiggle 1D expression to the rotation of the different layers. In contrast to the simple wiggle, the rotation is not continuous, but consists of fixed degree steps. Due to the smoothness parameter, the rotation does not jump from one step to the next one, but still travels smoothly. ![After Effects Snapping Wiggle expression - Rotation Example Sci-Fi HUD](https://docs.mamoworld.com/iexpressions/assets/images/snapping_wiggle_example_position-72a37bc3da2ff4e8f5aa8e485e4dc251.gif) Here we applied the Snapping Wiggle 1D to a lot of semi transparent solid layers. In contrast to the Basic Wiggle, with the Snapping Wiggle the layers stay on the grid. Due to the smoothness parameter, they do not jump abruptly from one grid cell to the next cell, but travel there smoothly. If your grid has a different size in X and Y direction, use the Snapping Wiggle 2D, if the grid size is the same in all dimensions, you can also use the 1D variant. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/wiggles/snapping-wiggle-1d2d3d/#examples) --- # UIKit Spring | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring/#) On this page UIKit Spring ============ Design spring animations in After Effects in the same way as Apple's spring animation systems in UIKit/SwiftUI and use them for implementation in Android, iOS and React! [Tutorial](https://mamoworld.com/tutorials/spring-animations-adobe-after-effects) [More details](https://mamoworld.com/blog/ux-spring-animations-adobe-after-effects) This expression interpolates between keyframes in the same way as the spring systems of Apple's UIKit or SwiftUI and has exactly the same parameters. It allows you to not only easily create a spring animation in After Effects, it also calculates all the parameters you need to recreate the exact same behavior with Android Spring Physics, UIKit’s UISpringTimingParameters, or SwiftUI’s interpolatingSpring and react-spring. So you can design the animations with the UIKit spring parameters and then easily implement them across all platforms so they always feel the same, whether your user is in a web app, or using an Android or Apple phone. ### Creating Animations[​](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring/#creating-animations "Direct link to heading") UIKit Spring creates time-less animations, i.e. you don't specify the duration of movements or motion path curves. Instead you just specify a target position and how the object is attracted by this target position (as if your object is pulled towards that target by an invisible spring). When you apply this expression, your keyframes turn into target positions. So if you have two keyframes, for example, immediately after the first keyframe, the value is attracted by the second keyframes and moves towards it based on the spring physics parameters you set in the expression. Only the value of the keyframes is considered, the easing you set in Ae is ignored and replaced by the spring simulation. You can have as many keyframes as you want, to move the target position over time and can apply the expression to arbitrary 1D, 2D and 3D properties (and to texts for parameter conversion - see next section). ### Converting Parameters[​](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring/#converting-parameters "Direct link to heading") Since the expression has exactly the same spring parameters as springs in UIKit and SwiftUI spng, it is easy to implement the animation in Apple devices. But if you need to implement the same animation in Android or react, you need the corresponding parameters for those spring systems, first. To obtain those, just apply the expression to the source text of a text layer. The expression will then calculate the parameters for Android and react-spring from the UIKit/SwiftUI parameters and then output all of them on the text layer. Download at aescripts.com * [Creating Animations](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring/#creating-animations) * [Converting Parameters](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring/#converting-parameters) --- # Tutorial: Spring Animations in Adobe After Effects | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects/#) On this page Tutorial: Spring Animations in Adobe After Effects ================================================== #### Can't wait to see new tutorials?[​](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects/#cant-wait-to-see-new-tutorials "Direct link to heading") [Subscribe](https://mamoworld.com/subscribe) In our newsletter we share all new tutorials already before they are published. Subscribe to watch new tutorials before everybody else! ### Chapters[​](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects/#chapters "Direct link to heading") 1. What are spring animations? 2. Import Designs from Figma, Sketch and Xd to After Effects 3. Creating spring animations in Ae 4. Android spring parameters 5. Spring animations on scale 6. Implementing springs in Android, iOS and React 7. Converting spring parameters between Android, iOS and React 8. Overlapping actions 9. Initial velocity parameter Today we show you something about a little motion design niche: Designing user interface animations for mobile apps and web apps. Learn how to first import your user interface designs from Xd, Figma or Sketch into Adobe After Effects, then create animations there using the spring tools in [iExpressions](https://aescripts.com/iexpressions/) . It’s not only easy to create spring animations in After Effects, they can also be easily implemented in Google’s Android, Apple’s UIKit (or SwiftUI), and Facebook’s React. One major potential hassle is that the parameters for spring animations are different for each platform - Google, Apple and Facebook all cook their soup a little differently. Fortunately, the After Effects extension iExpressions comes to the rescue. It allows you to not only easily create a spring animation in After Effects, it also calculates all the parameters you need to recreate the exact same behavior with Android Spring Physics, UIKit’s UISpringTimingParameters, or SwiftUI’s interpolatingSpring and react-spring. So even though all these spring animation systems are very different, once you’ve designed the animation in After Effects, you’ll have an easy recipe to precisely implement the same animation across all major platforms. [Learn More](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects) ### Used tools: [​](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects/#used-tools "Direct link to heading") [![]()](https://mamoworld.com/tools/iexpressions) Download iExpressions for Ae * [Chapters](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects/#chapters) * [Used tools:](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects/#used-tools) --- # React Spring 8 | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/spring-systems/react-spring-8/#) On this page React Spring 8 ============== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-18_11.07.33-e21e9fc717982e40e7faec5f0085ae23.png) Design animations in Adobe After Effects for [react-spring](https://www.react-spring.io/) ! Don't know what react-spring is? [Learn more](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects) This expression interpolates between keyframes in the same way as [react-spring](https://www.react-spring.io/) (version 8) and has exactly the same parameters. So if the animations you create should be implemented in react-spring, simply use this expression instead of normal keyframes and when implementing the animation in react-spring, simply copy and paste the parameters from the expression to get exactly the same animation in your web app. react-spring creates time-less animations, i.e. you don't specify the duration of movements or motion path curves. Instead you just specify a target position and how strongly the object is attracted by this target position. When you apply this expression, your keyframes turn into target positions. So if you have two keyframes, for example, immediately after the first keyframe, the value is attracted by the second keyframes and moves towards it based on the spring physics parameters you set in the expression. Only the value of the keyframes is considered, the easing you set in Ae is ignored and replaced by the spring simulation. You can have as many keyframes as you want, to move the target position over time and can apply the expression to arbitrary 1D, 2D and 3D properties. ### Example[​](https://docs.mamoworld.com/iexpressions/spring-systems/react-spring-8/#example "Direct link to heading") ![how react-spring animations work](https://docs.mamoworld.com/iexpressions/assets/images/spring-systems-explanation_0-78aa03d0c7f17822f7080db49ae8d511.gif) Here we visualized how a spring system is working. The green box is the target position given by your keyframes and the orange circle moves as calculated by the react-spring expression. The upper one moves with default spring settings and in the lower one we changed the mass from 1 to 4 such that the animation has more inertia and overshooting. Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/spring-systems/react-spring-8/#example) --- # Tutorial: Prototyping React-Spring Animations in Adobe After Effects | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#) On this page Tutorial: Prototyping React-Spring Animations in Adobe After Effects ==================================================================== [![](https://docs.mamoworld.com/iexpressions/assets/images/spring_react_spring_ae-f3b50949710070f20a1fe165ed77ac27.jpg)](https://docs.mamoworld.com/iexpressions/assets/files/spring_react_spring_ae-f3b50949710070f20a1fe165ed77ac27.jpg "Prototyping React-Spring Animations in Adobe After Effects") What is Spring-Based Animation?[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#what-is-spring-based-animation "Direct link to heading") ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ No matter if you create animations for the web, Android or iOS - spring animations are becoming more and more popular. In traditional, time-based animations an animation is defined by a start point A, and end point B, a duration and some easing. If you design a single, static animation, this is a very intuitive way to work. However, when it comes to designing continuous, fluid interactivity, this approach is very limited. ![how react-spring animations work](https://docs.mamoworld.com/iexpressions/assets/images/spring-systems-explanation_0-78aa03d0c7f17822f7080db49ae8d511.gif) Spring systems are a very different approach to animation. To move an object from its current position A to another position B you just specify that it is attracted by B as if the object is connected to point B with an invisible spring. You specify the physics parameters that describe how exactly the spring pulls and then the object moves to B accordingly. So if A and B are very close, the duration, speed etc of the move is very different than if A and B are far apart. What you specify with the spring parameters is not just how fast and far it moves, but rather how the move should feel. Is it a heavy object or does it slide easily? Does it overshoot? These aspects can be controlled with the spring parameters. Also in situations where movements might be aborted, spring systems are very powerful. Let's say in the middle of the move from A to B the move must be aborted due to some user interaction and the object should now move to some point C instead. If we simply stop the current movement and start a new one, the abrupt change will look very unnatural. However with a spring system, we simply specify that from now on the object is attracted by the new point C. Except for the new target point the spring simulation will continue exactly as before, so it will continue with the current position, speed, etc. of the object. The result will be a smooth and natural transition to C. So for interactive scenarios like mobile or web apps, spring systems are much better suited than traditional keyframe and easing approaches. [React-spring](https://www.react-spring.io/) is one of the most popular spring systems in the web world but also [UIKit](https://medium.com/ios-os-x-development/demystifying-uikit-spring-animations-2bb868446773) , [Andriod](https://developer.android.com/guide/topics/graphics/spring-animation) and also prototyping tools like [Framer](https://www.framer.com/) have their own sping systems, for example. Prototyping Spring-Based Animation in After Effects[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#prototyping-spring-based-animation-in-after-effects "Direct link to heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ### The Problem[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#the-problem "Direct link to heading") Adobe After Effects is the de facto standard for motion design, but it relies to 100% on keyframes and time-based animation. So if you prototype animations with keyframes in After Effects, for web or mobile developers it is impossible to implement the same animations with a spring system. ### The Solution[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#the-solution "Direct link to heading") ![react spring iExpression](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-18_11.07.33-e21e9fc717982e40e7faec5f0085ae23.png) The [react-spring iExpression](https://docs.mamoworld.com/iexpressions/spring-systems/react-spring-8) is part of our After Effects extension [iExpressions](https://aescripts.com/iexpressions/) . It performs an accurate spring simulation that is 100% identical to a react-spring animation and it has exactly the same spring parameters. You simply set the spring parameters in the user interface of the iExpression and apply it to the position of a layer. Now your keyframes turn into target locations by which the layers are attracted. For a detailed explanation see the tutorial below. ### Implementation[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#implementation "Direct link to heading") Once you are done with your prototype in After Effects, implementing the final animation in your web app with react-spring is very easy. You can simply copy and paste the spring parameters from the iExpressions interface and you are done. ### Tutorial[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#tutorial "Direct link to heading") ### What about other Spring-Systems?[​](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#what-about-other-spring-systems "Direct link to heading") The react-spring iExpression is our first step towards supporting spring systems in After Effects. You use another spring system that uses different physics parameters? Please get in touch with us! We want to hear what you need and we plan to support more spring systems in the future! Get iExpressions Now! * [What is Spring-Based Animation?](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#what-is-spring-based-animation) * [Prototyping Spring-Based Animation in After Effects](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#prototyping-spring-based-animation-in-after-effects) * [The Problem](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#the-problem) * [The Solution](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#the-solution) * [Implementation](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#implementation) * [Tutorial](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#tutorial) * [What about other Spring-Systems?](https://docs.mamoworld.com/iexpressions/spring-systems/prototyping-react-spring-animations-adobe-after-effects/#what-about-other-spring-systems) --- # Android Spring | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#) On this page Android Spring ============== Design spring animations in After Effects in the same way as [Android's Spring Animation](https://developer.android.com/reference/androidx/dynamicanimation/animation/SpringAnimation) and use them for implementation in Android, iOS and React! [Tutorial](https://docs.mamoworld.com/iexpressions/spring-systems/spring-animations-adobe-after-effects) [More details](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects) This expression interpolates between keyframes in the same way as [Android's Spring Animation](https://developer.android.com/reference/androidx/dynamicanimation/animation/SpringAnimation) animations and has exactly the same parameters. It allows you to not only easily create a spring animation in After Effects, it also calculates all the parameters you need to recreate the exact same behavior with Android's Spring Physics, UIKit’s UISpringTimingParameters, or SwiftUI’s interpolatingSpring and react-spring. So you can design the animations with the Android spring parameters and then easily implement them across all platforms so they always feel the same, whether your user is in a web app, or using an Android or Apple phone. ### Parameters[​](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#parameters "Direct link to heading") Android's Spring Animation describes spring animations with damping ratio and stiffness. Instead of dealing with a ton of different keyframe types, easings and durations, you describe each move with just two numbers! Android has four default values for both damping and stiffness, and the following chart demonstrates what all combinations of these values look like. ![Android Spring Animation - Stiffness and DampingRatio](https://docs.mamoworld.com/iexpressions/assets/images/andriod_spring_grid_optimized-1608a39725efcfd61e62a4ede0fb8f33.gif) ### Creating Animations[​](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#creating-animations "Direct link to heading") Android Spring creates time-less animations, i.e. you don't specify the duration of movements or motion path curves. Instead you just specify a target position and how the object is attracted by this target position (as if your object is pulled towards that target by an invisible spring). When you apply this expression, your keyframes turn into target positions. So if you have two keyframes, for example, immediately after the first keyframe, the value is attracted by the second keyframes and moves towards it based on the spring physics parameters you set in the expression. Only the value of the keyframes is considered, the easing you set in Ae is ignored and replaced by the spring simulation. You can have as many keyframes as you want, to move the target position over time and can apply the expression to arbitrary 1D, 2D and 3D properties (and to texts for parameter conversion - see next section). ### Converting Parameters[​](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#converting-parameters "Direct link to heading") Since the expression has exactly the same spring parameters as Android spring, it is easy to implement the animation in Android. But if you need to implement the same animation in iOS or react, you need the corresponding parameters for those spring systems, first. To obtain those, just apply the expression to the source text of a text layer. The expression will then calculate the parameters for UIKit, SwiftUI and react-spring from the Android parameters and then output all of them on the text layer. Download at aescripts.com * [Parameters](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#parameters) * [Creating Animations](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#creating-animations) * [Converting Parameters](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring/#converting-parameters) --- # Tutorial: UX with Spring Animations in Adobe After Effects | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#) On this page Tutorial: UX with Spring Animations in Adobe After Effects ========================================================== !["UX with Spring Animations in Adobe After Effects"](https://docs.mamoworld.com/iexpressions/assets/images/spring_react_apple_and_android_ae_adobestock_2326046_big_bubble-df6248acf811a68f4bd5ee9654c3b2a8.jpg) A workflow for Animation in User Experience Design in Adobe After Effects for Android, iOS or Web Apps. ### The Workflow[​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#the-workflow "Direct link to heading") So, you’ve designed the user interface of your app in Adobe Xd, Sketch or Figma and now you want to implement it in Android, iOS or a web app. But before you start coding, there’s one little thing missing in your design: animation. How does the loader spin, exactly? When a message is deleted, does it just disappear abruptly, fade out, scale out, or perhaps fly into a trash can icon? And what’s the exact timing for that move? You’ll need to answer these questions before the app is actually implemented. But here’s the problem: you can’t just ask a motion designer to create some videos with the behavior you want, because a developer won’t be able to implement these animations based only on a sample video. The programmer will need the exact motion path and timing details to recreate the same animation in your app. And to make matters worse, those details are very different for Android, iOS and web apps. ![Spring Animation Workflow: Involved Software](https://docs.mamoworld.com/iexpressions/assets/images/workflow-overview-diagram-tools-involved-33e2adbed481e963edbfd45b7e7dd547.png) In this article, I propose a workflow to first import your designs from Xd, Figma or Sketch into Adobe After Effects (Ae), then create animations there using the spring tools in iExpressions. When it comes to interactivity, spring animations have some big advantages over traditional keyframes, which we’ll discuss in more detail later. But more importantly, it’s not only easy to create spring animations in After Effects, they can also be easily implemented in Google’s Android, Apple’s UIKit (or SwiftUI), and Facebook’s React. One major potential hassle is that the parameters for spring animations are different for each platform - Google, Apple and Facebook all cook their soup a little differently. Fortunately, the After Effects extension iExpressions comes to the rescue. It allows you to not only easily create a spring animation in After Effects, it also calculates all the parameters you need to recreate the exact same behavior with [Android Spring Physics](https://developer.android.com/guide/topics/graphics/spring-animation) , UIKit’s [UISpringTimingParameters](https://developer.apple.com/documentation/uikit/uispringtimingparameters) , or SwiftUI’s [interpolatingSpring](https://developer.apple.com/documentation/swiftui/animation/interpolatingspring(mass:stiffness:damping:initialvelocity:)) and [react-spring](https://github.com/pmndrs/react-spring) . So even though all these spring animation systems are very different, once you’ve designed the animation in After Effects, you’ll have an easy recipe to precisely implement the same animation across all major platforms. In this way, your app will have a consistent look and feel throughout all these platforms. ### From Static Designs to Animation[​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#from-static-designs-to-animation "Direct link to heading") With Adobe XD, Sketch or Figma, there are plenty of solutions for designing user interfaces for mobile apps, web apps etc. Naturally, these tools focus on static designs. You draw an artboard for each screen of your app - say the login screen, the main chat screen and the address book of your new messaging app. Next, you connect those static designs with actions to create mockups. You could specify, for example, that the mockup should start by showing the login screen and when the login button is pressed, it should transition to the main chat screen. This way you effectively create interactive slideshows that give the user a pretty good idea of how to navigate the app. ![UI animation example](https://docs.mamoworld.com/iexpressions/assets/images/ui_mock_delete_entry_small_optimized-ef8bf926645b0b5a9c656d17a323d2f1.gif) These mockups are very useful for communicating how an app is supposed to work long before it’s been implemented, but in terms of animation, they are very limited: you only have a handful of presets to transition from one screen to the next. So if you want to visualize exactly how a loader symbol spins after the login button is clicked, or how fast (and with what kind of easing) a document flies to the trash icon, you’ll need some dedicated animation software. Adobe After Effects (Ae) is the de facto standard for motion design, so it’s no surprise that Xd (which is also developed by Adobe) can export a design to Ae with a single click. If you’re using Figma or Sketch, there’s also a free tool ([AEUX](https://aeux.io/) ) to bring designs from these applications into After Effects in no time. ### Keyframes - so obvious, but such a bad idea[​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#keyframes---so-obvious-but-such-a-bad-idea "Direct link to heading") As with almost any other animation software, After Effects is based on keyframes. To move an object from A to B, you specify what time it starts at A (the first keyframe) and what time is gets to B (the second keyframe). In addition to these times, each keyframe has easing information attached to it that describes the timing of the move, for example whether it travels at a constant speed, or starts slow and accelerates over time. In After Effects, the easing is described by terms like linear keyframes, easy ease keyframes and a speed graph – for a comprehensive explanation of these, see the [Keyframing in After Effects](https://mamoworld.com/motion-graphics-ebook/content17.html) Chapter of our free eBook [Motion Graphics in After Effects that Speaks to Your Brain](https://mamoworld.com/free-motion-graphics-course) . In the web development world, easing is expressed differently, in the form of CSS easing functions. ![refresh animation example](https://docs.mamoworld.com/iexpressions/assets/images/news_refresh_spring_system_optimized-4c160aa7bee17afd0b1f7c11f5c87da9.gif) While keyframes are great for most animation jobs, for user interface design they have some serious drawbacks. A key difference between an animation for a video clip and one for an interactive interface is that the latter changes depending on the user’s input. Take a look at this simple animation, which moves the content back in place after the user has dragged it downwards. Depending on how far the user drags it down, the move back up is longer or shorter. Of course, all these variants can be easily keyframed; however, the app developer doesn’t need three or ten examples, he needs one recipe for how to move the content back, no matter how far it was dragged. Since keyframes have a fixed time, the move between two keyframes consists of a fixed duration and some easing details. Keyframed moves can be explained to an app developer with words like “Move back in place in 0.3s with a constant speed” or “Move back in place in 0.5s and ease in at the end of the move”. But while it might seem obvious that a motion is described by a duration, this doesn’t work well for interactive animations. For our example, if both have the exact same timing it means that short moves (where the user drags down just a little) appear too slow, while long moves (where the user drags a lot) appear too fast. Essentially, the movements don’t feel natural. We want the move to feel the same, no matter how far the element was dragged. This means that shorter moves need to be finished in less time than longer ones. So, if it’s not the duration, what else is it that we want to be consistent across all variants of the move? It’s not the absolute speed – it doesn’t help to say “move back in place with a speed of 100px per second” instead of “move back in place in 0.5 seconds”. If the user drags down 100px we don’t want this move to last ten times as long as a little 10px move, as this would be way too long. Longer moves need more time than short moves, but they should still be quite a bit faster. The natural solution seems to be a middle ground between the two extremes of fixed duration and fixed speed. ![refresh animation example: constant time vs constant speed vs spring animation](https://docs.mamoworld.com/iexpressions/assets/images/news_refresh_all_optimized-91263766c9a496f605abc6b30ccd1ab9.gif) ### Spring Physics - better and even easier![​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#spring-physics---better-and-even-easier "Direct link to heading") If you want animations to feel natural, think about how things move in the real world – after all, that’s what users are used to and perceive as natural. In the real world, things don’t move with keyframes and easing curves - they move based on physics. Forces push and pull objects around, friction or damping makes them slow down, etc. But you don’t need a full-blown physics simulation like in a computer game to create a natural user interface; in fact, you can achieve this with a very simple concept. Welcome to the world of spring animations. ![what are spring animations](https://docs.mamoworld.com/iexpressions/assets/images/spring_both_optimized-692da809a1ed841f5701bbe59442c5a7.gif) Like keyframes, spring animations are a general concept to move things from point A to point B, but they are a very different approach to animation. To move an object from position A to position B, you just specify that it is attracted by B, as if the object were connected to point B with an invisible spring. You specify the physics parameters that describe exactly how the spring pulls, and then the object moves to B. So if A and B are very close, the duration, speed etc. of the move is very different than if A and B were far apart. What you specify with the spring parameters is not just how fast and how far it moves, but rather how the move should feel. Is it a heavy object, or does it slide easily? Does it overshoot? These aspects can be controlled with the spring parameters. There are different ways to describe a spring (more on that in the section about implementation), but for now let’s see how Android describes springs: with stiffness and damping ratio, just two parameters! Instead of dealing with a ton of different keyframe types, easings and durations, you describe each move with just two numbers! Android has four default values for both damping and stiffness, and the following chart demonstrates what all combinations of these values look like. ![android spring parameters visualized: damping ratio vs stiffness](https://docs.mamoworld.com/iexpressions/assets/images/andriod_spring_grid_optimized-1608a39725efcfd61e62a4ede0fb8f33.gif) As you can see, the animations in the first row move slowly, while those in the last row move very fast. So, the stiffness essentially corresponds to the speed of the animation – the stiffer the spring, the faster it pulls an object to its target position. The damping ratio controls how much the move overshoots and/or swings. You can see that in the first column (DAMPING\_RATIO\_HIGH\_BOUNCY) the move swings a lot, whereas in the rightmost column (DAMPING\_RATIO\_NO\_BOUNCY) there is no overshoot at all. Of course, when designing spring animations, you aren’t limited to the four constants shown here – you can adjust the stiffness and damping ratio however you choose. If we think about the drawbacks of keyframes that we discussed above, spring animations solve them easily. A spring “feels” the same, no matter how far it’s stretched. For long moves, the spring is stretched a lot and so pulls more strongly than for short moves. With the same spring parameters, long moves are faster that short ones (exactly how we want them to be), but still feel very consistent. It’s also worth noting that springs don’t need to be springy! For most motions, you won’t want overshoot (i.e. you’ll want to choose DAMPING\_RATIO\_NO\_BOUNCY). Using spring animations isn’t about being springy, it’s about creating smooth animations that feel natural and fluid. ### Design: Spring Animations in After Effects[​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#design-spring-animations-in-after-effects "Direct link to heading") Spring animations aren’t natively supported by After Effects, but as we mentioned above, they’re very easy to create with the extension [iExpressions](https://aescripts.com/iexpressions/) . First, keyframe your moves as usual, without worrying about the easing. You then apply the [Android Spring iExpression](https://docs.mamoworld.com/iexpressions/spring-systems/android-spring) to the keyframed properties to add spring-based easing. The Android Spring expression has exactly the same spring parameters as Android, so you can be sure the animation will behave exactly the same. If you’re used to using Apple’s spring parameters, you can use the [UIKit Spring iExpression](https://docs.mamoworld.com/iexpressions/spring-systems/uikit-spring) instead. Note that you can choose the Android or UIKit expression based on personal preference – it’s no problem to design an animation with the Android Spring iExpression then later implement the animation in UIKit, or vice versa. If you’ve never worked with spring animations before, I highly recommend using the Android expression, since Android has one less parameter to worry about, comes with intuitive default values, and is just as powerful as Apple’s variant. ![iExpressions for Spring Animation](https://docs.mamoworld.com/iexpressions/assets/images/iexpressions-spring-ui-2468d87148935453630472e0852c6730.png) When you’re done with your design, how do you tell your Apple, Android or React developers how to actually implement the animations? It couldn’t be easier: just load the spring expression you used into iExpressions and apply it to the source text of a text layer. When applied to a source text, the expression converts the spring parameters into the corresponding parameters for all the different spring implementations (Android, UIKit/SwiftUI and react-spring), and outputs these onto the text layer. This makes it super easy to bake all the information your developers need right into the videos that you export from After Effects. ![iExpressions: convert spring parameters between iOS, Android and React](https://docs.mamoworld.com/iexpressions/assets/images/iexpressions-parameter-output-with-label-8a5e223e301926ecd90840330ab2e96d.png) Here’s a little tutorial to demonstrate this process: So far we’ve only talked about movement, but spring animations can also be used for any kind of animations, like scaling or rotating objects. To imagine what a spring animation on the scale property looks like, for example, think of the scale property as a slider, with the spring pulling the slider handle from one value to another. ![spring expression on sliders](https://docs.mamoworld.com/iexpressions/assets/images/spring_slider_optimized-44510d0d9c4ced28c3e80b5b575d3181.gif) ### Implementation: Springs in iOS, Android and React[​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#implementation-springs-in-ios-android-and-react "Direct link to heading") Here are some links to get you started on implementing spring animations * Apple with SwiftUI : here’s [an example](https://www.hackingwithswift.com/quick-start/swiftui/how-to-create-a-spring-animation) , and here’s the [documentation for SwiftUI](https://developer.apple.com/documentation/swiftui/animation/interpolatingspring(mass:stiffness:damping:initialvelocity:)) * Apple with UIKit: you’ll need to create a [UIViewPropertyAnimator](https://developer.apple.com/documentation/uikit/uiviewpropertyanimator) and provide it with a [UISpringTimingParameters](https://developer.apple.com/documentation/uikit/uispringtimingparameters) object. * Android: use the [SpringAnimation](https://developer.android.com/reference/androidx/dynamicanimation/animation/SpringAnimation) class and specify the parameters of the spring with the [SpringForce](https://developer.android.com/reference/androidx/dynamicanimation/animation/SpringForce) class. Here’s [an example](https://www.thedroidsonroids.com/blog/springanimation-examples) . * React: take a look at the [react-spring](https://www.react-spring.io/) documentation for details. As we mentioned before, the parameters for describing a spring are very different for Android, SwiftUI or UIKit and React: * Android’s SpringForce is described by stiffness and damping ratio. * Apple’s SwiftUI, UIKit describe springs by mass, stiffness and damping * react-spring describes springs by mass, tension, friction and a clamp option This is not just like one car describing the speed with kilometers per hour and another with miles per hour. Instead, it’s one car working with kph and the other with the traveling time, wheel diameter and the number of wheel rotations – it’s a very different way of looking at things, and going from one to the other is cumbersome. For example, if you’ve designed your animation for Android and now want to implement the exact same behavior in iOS, you’ll need to somehow convert Android’s stiffness and damping Ratio into Apple’s corresponding mass, stiffness and damping. But as we mentioned in the previous chapter, our After Effects extension iExpressions has an easy solution for this: when you use the Android Spring iExpression (or the UIKit Spring iExpression), it calculates all the different parameters for these systems for you. So, whether you’re designing in the Google or Apple world, you’ll get the parameters you need for all other worlds, too. ### Summary[​](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#summary "Direct link to heading") Spring animations make a whole lot of sense for user interface design, but the spring systems available for Android, Apple or the web are so different that it’s hard to create consistent animations for all those platforms. But with iExpressions, not only can you design spring animations directly in Adobe After Effects, you can also easily implement them across all platforms so they always feel the same, whether your user is in a web app, or using an Android or Apple phone. Download iExpressions for Ae * [The Workflow](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#the-workflow) * [From Static Designs to Animation](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#from-static-designs-to-animation) * [Keyframes - so obvious, but such a bad idea](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#keyframes---so-obvious-but-such-a-bad-idea) * [Spring Physics - better and even easier!](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#spring-physics---better-and-even-easier) * [Design: Spring Animations in After Effects](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#design-spring-animations-in-after-effects) * [Implementation: Springs in iOS, Android and React](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#implementation-springs-in-ios-android-and-react) * [Summary](https://docs.mamoworld.com/iexpressions/spring-systems/ux-spring-animations-adobe-after-effects/#summary) --- # Change at Marker 1D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#) Change at Marker 1D =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/change_at_marker_1d-ef406d16c94d4727762f90cb9cbe71a2.png) With this iExpression you can modify 1D properies (like the opacity of layers) at markers. At each marker you can either replace the keyframed value by another value or add something to the keyframed value. The changes at the markers can be faded it and out. Also, you can annotate comments like "50%" to individual markers, to decreate or increase the impact of this particular marker. * ##### Value at Marker[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#value-at-marker "Direct link to heading") the value that the property should at each marker (or which should be added to the regular value at each marker). * ##### Mode[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#mode "Direct link to heading") determines whether the "Value at Marker" is added to at each marker to the original value of the property, or whether it replaces the original value. * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#frame-offset "Direct link to heading") for -2, the modification already starts 2 frames before each marker. * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#fade-inout "Direct link to heading") ![change_at_marker_fading_options.png]() ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#fade-in-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded in. ##### Hold Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#hold-duration "Direct link to heading") determines the number of frames over which the change at each marker stays before it goes back. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#fade-out-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded out. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-1d/#fade-type "Direct link to heading") determines whether the change at the markers fades in or out in a linear or exponential fashion. Download at aescripts.com --- # Waveform | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/waveform/#) Waveform ======== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-19_09.33.13-feb7439896a1bd88ccc6da2c6592d19b.png) Creates a shape for the waveform of an audio file. Can be applied to any shape or mask path. **Usage** 1. make sure the audio file is in your comp and audible 2. create audio keyframes via the Ae menu command Animation->Keyframe Assistant->Convert Audio to Keyframes 3. In the "Audio Amplitude Slider" parameter of the expression choose one of the sliders created in step 2 4. apply the expression to the shape path property that should become the waveform Download at aescripts.com --- # Connect Multiple Layers | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/connect-multiple-layers/#) On this page Connect Multiple Layers ======================= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-06_15.38.56-d29594121e882f3c8c8ccdabae390828.png) This expression connects the anchor points of a set of given layers - this allows you to draw a path though a set of nulls, for example. You can either connect all pairs of layers or create a single line from the first layer to the last one. If you choose a single line, you also have a roundedness option. For the "all pairs" option, the expression attempts to connect as many of them as possible with a single line without taking any path twice. If you want to connect just two layers with a line, take a look at the [Connect Two Layers](https://docs.mamoworld.com/iexpressions/path/connect-two-layers) iExpression. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/connect-multiple-layers/#examples "Direct link to heading") ![Connect points with path - After Effects expression overview](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsconnectlayers_variant_overviews_gif-61cc3c07022555625285a2491ae2c5d2.gif) This example shows both the single line and the "all pairs" option ![Character Animation example - smooth curve though nulls](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsconnectlayers_tentacle_gif-c212dc4854dea6f3eacf39d6d8c175c8.gif) Here we create the tentacle of the bee using the single line option. The path is drawn based on three layers - the circle at the top, a null in the middle and another null where the tentacle is attached to the body. The roundedness parameter is very hand here, to control the exact shape of the tentacle. ![Ellipse around Text in Ae with Expressions](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsconnectlinewithpinsandboxes_preview_0-e89eedb60aecc9ceca44fbcfa30b15f3.gif) In this example, we use the _Connect Multiple Layers_ iExpression to draw an ellipse around some text layers. First we create a bounding box for the texts with our extension [Pins & Boxes](https://aescripts.com/pins-and-boxes/) and then we draw an ellipse with iExpressions by drawing a 100% smooth curve along the corner points of the bounding box. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/connect-multiple-layers/#examples) --- # Auto-Resizing Background Shape | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/auto-resizing-background-shape/#) On this page Auto-Resizing Background Shape ============================== ![](https://docs.mamoworld.com/iexpressions/assets/images/background_box_expression-5101d25a59c5257e401c44c1ae34303a.png) ![](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsautoresizingbackgroundshapesoverview_short_square_preview_optimized256-c211ca57443c4a4c4d59fba72fe130ca.gif) Creates a box, ellipse, circle, heart, diamond or cloud shape for text backgrounds that auto-resize with the text. Just connect the first parameter to a text layer (or also any other layer) and apply the expression to a path property on a shape layer. This will create a shape that resizes based on the size of the text layer. The expression offers many options to customize the shape. Boxes can have rounded corners and a minimum and maximum sizes, for example, and offer rotation and shear controls. ### Usage[​](https://docs.mamoworld.com/iexpressions/path/auto-resizing-background-shape/#usage "Direct link to heading") 1. Select the text layer (or other layer whose size should be measured) and click the "connect" button at the "Target Layer" parameter of the iExpression. 2. Create a new shape with the pen tool and select its path property (or select any other existing shape or mask path that you want to overwrite). 3. Adjust the other iExpressions parameters however you want (choose the shape type you want, add margins etc) 4. Apply the iExpression to the path. Now the path is replaced by a background shape whose size and location follows the target layer. Download at aescripts.com * [Usage](https://docs.mamoworld.com/iexpressions/path/auto-resizing-background-shape/#usage) --- # Connect Two Layers | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/connect-two-layers/#) On this page Connect Two Layers ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-18_16.34.16-cd5d29ac018bcf5fa645d6adf6c58f6b.png) Connects the anchor points of two layers with a line. With the "Variant" option you can control, how exactly the two points should be connected - there exist many variants, from a straight line to a combination or horizontal and vertical lines with rounded corners. If you want to draw a curve though more than just two points, take a look at the [Connect Multiple Layers](https://docs.mamoworld.com/iexpressions/path/connect-multiple-layers) iExpression. **Usage** 1. Make sure the anchor points of the two layers are located where the line should start/end, respectively. 2. Connect the two layers in the expression parameters 3. Create a new path (on a new shape layer) and apply the expression to the path 4. You can lock the shape layer now. When you move the two layers it is connected to, the line updates automatically ### Example[​](https://docs.mamoworld.com/iexpressions/path/connect-two-layers/#example "Direct link to heading") ![](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsconnecttwolayers_preview-688aa83106c3184d4c4e6df49dbf6016.gif) Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/path/connect-two-layers/#example) --- # Snap to Grid 1D/2D/3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d/#) On this page Snap to Grid 1D/2D/3D ===================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-15_10.06.58-fa68f265a45bddc975593aa5fa0daf9d.png) This iExpression changes a keyframed movement such that it is no more continuous but jumps from one point to the next, where the distance of the points can be chosen with the "Grid Size" parameter. The iExpression can be applied to arbitrary 1D, 2D, and 3D properties. Applied to the rotation of a clock hand, for example, it makes it jump from second to second instead of rotating smoothly. Applied to the position of a 2D or 3D layer, it makes the layer jump from point to point on an imaginary grid. If you want to control the size of this grid in each dimension separately, you can use the "Snap to Grid 2D" or "Snap To Grid 3D" iExpression. If you want to snap a wiggle movement to a grid, you can also use the [Snapping Wiggle iExpression](https://docs.mamoworld.com/iexpressions/wiggles/wiggle#snappingWiggle) . ### Examples[​](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d/#examples "Direct link to heading") ![Clock Hand Animation expression After Effects Snap](https://docs.mamoworld.com/iexpressions/assets/images/clock_snap_to_grid_before_after-0e23667acc0cd26c874871a403ed2f23.gif) Here we applied the Snap 2 Grid iExpression to the rotation of the clock hand. We set GridSize to 360/60=6 such that the full 360 degrees of the circle are subdivided in 60 one second steps. The Smoothness parameter is set to 20 such that the expression spends 20% of the time traveling from one second to the next one and 80% pausing at each second. ![Move on Grid With Snap2Grid iExpression](https://docs.mamoworld.com/iexpressions/assets/images/snap2grid2d-comparison-95c210bbb73a47d61af4c02609da8bf0.gif) In this example, we applied the Snap2Grid 2D iExpression to the position of a layer. The keyframed motion path now snaps to the grid. We used the 2D variant in order to control the grid offset in each dimension separately. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d/#examples) --- # Increment at Marker 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#) Increment at Marker 2D ====================== ![](https://docs.mamoworld.com/iexpressions/assets/images/increment_at_marker_2d-df1a7bab95474765fd915191b317e0e6.png) With this iExpression the property is automatically increased (or decreased) by some fixed amount at each marker. In addition, you can overwrite this behavior at individual markers using the marker comments. If a marker has "\[\-5,20\]" as comment, for example, the x value is decreased by 5 at this particular marker and the y increased by 20. With a comment "5s" or "20 frames" also the fade in duration for this marker can be changed to 5 seconds or 20 frames, respectively. * ##### Increment at Marker[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#increment-at-marker "Direct link to heading") How much the value should increment at each marker (if the marker has no comment specifying a different value). * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#frame-offset "Direct link to heading") for -2, the modification already starts 2 frames before each marker. * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Fade In[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#fade-in "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#fade-in-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded in. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-2d/#fade-type "Direct link to heading") determines whether the change at the markers fades in in a linear or exponential fashion. Download at aescripts.com --- # Change at Marker 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#) Change at Marker 2D =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/change_at_marker_2d-a461570bcfb317a27cc284d3b2bd31e7.png) With this iExpression you can modify 2D properies (like the position or scale of 2D layers) at markers. At each marker you can either replace the keyframed value by another value or add something to the keyframed value. The changes at the markers can be faded it and out. Also, you can annotate comments like "50%" to individual markers, to decreate or increase the impact of this particular marker. * ##### Value at Marker[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#value-at-marker "Direct link to heading") the value that the property should at each marker (or which should be added to the regular value at each marker). * ##### Mode[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#mode "Direct link to heading") determines whether the "Value at Marker" is added to at each marker to the original value of the property, or whether it replaces the original value. * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#frame-offset "Direct link to heading") for -2, the modification already starts 2 frames before each marker. * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#fade-inout "Direct link to heading") ![change_at_marker_fading_options.png]() ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#fade-in-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded in. ##### Hold Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#hold-duration "Direct link to heading") determines the number of frames over which the change at each marker stays before it goes back. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#fade-out-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded out. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-2d/#fade-type "Direct link to heading") determines whether the change at the markers fades in or out in a linear or exponential fashion. Download at aescripts.com --- # Change at Marker 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#) Change at Marker 3D =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/change_at_marker_3d-b8e88bb38659ad836aaa4398b5e02814.png) With this iExpression you can modify 3D properies (like the position or scale of 3D layers) at markers. At each marker you can either replace the keyframed value by another value or add something to the keyframed value. The changes at the markers can be faded it and out. Also, you can annotate comments like "50%" to individual markers, to decreate or increase the impact of this particular marker. * ##### Value at Marker[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#value-at-marker "Direct link to heading") the value that the property should at each marker (or which should be added to the regular value at each marker). * ##### Mode[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#mode "Direct link to heading") determines whether the "Value at Marker" is added to at each marker to the original value of the property, or whether it replaces the original value. * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#frame-offset "Direct link to heading") for -2, the modification already starts 2 frames before each marker. * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Fade In/Out[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#fade-inout "Direct link to heading") ![change_at_marker_fading_options.png]() ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#fade-in-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded in. ##### Hold Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#hold-duration "Direct link to heading") determines the number of frames over which the change at each marker stays before it goes back. ##### Fade Out Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#fade-out-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded out. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/change-marker-3d/#fade-type "Direct link to heading") determines whether the change at the markers fades in or out in a linear or exponential fashion. Download at aescripts.com --- # Loop | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#) Loop ==== ![]() This iExpression can loop a segment of time of a property in various ways. By default, the region from the first keyframe to the last keyframe is looped, but you can also loop arbitrary other segments of time. In addition to normal cycle types, the expression also supports "seamless cycles" where the motion path is modified such that it loops seamlessly. Also pingping-loops (where every second loop plays backwards) and offset loops (where each loop starts exactly at the position where the last one ended) are supported. * ##### Loop Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#loop-type "Direct link to heading") **cycle** simple loop **seamless cycle** simple loop where the motion path is modified if necessary to create a seamless transition from the end of the loop to the beginning. **pingpong** alternating between forward and backward **offset** continues with the beginning of each loop exactly at the position where the last loop ended such that the transition is seamless. * ##### Loop[​](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#loop-1 "Direct link to heading") Where the copies of the loop region be generated: Before (in) or after (out) the original loop * ##### Loop Region[​](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#loop-region "Direct link to heading") ##### Use Custom Frames[​](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#use-custom-frames "Direct link to heading") If this option is enabled, the expression loops the region between the frames specified below. Otherwise it loops the region between the first and last keyframe. ##### Custom Start Frame[​](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#custom-start-frame "Direct link to heading") where the range starts that should be looped (only if the option Custom Start Frame is enabled. Otherwise the loop starts at the first and ends at the last keyframe). ##### Custom End Frame[​](https://docs.mamoworld.com/iexpressions/movement-modifier/loop/#custom-end-frame "Direct link to heading") where the range ends that should be looped (only if the option Custom Start Frame is enabled. Otherwise the loop starts at the first and ends at the last keyframe). Download at aescripts.com --- # Separate Smoother 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#) Separate Smoother 3D ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/separate_smoother_3d-598853911459c2f300455d5ec5f83a81.png) This iExpression is a variant of the Basic Smoother iExpression which is dedicated to 3D properties and allows to control the smoothing in x, y, and z dimension separately. * ##### Width[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#width "Direct link to heading") determines the amount of smoothness. The larger the width, the more smooth is the result - a value of 2 means, for example, that the values within a window of 2 seconds are taken into consideration to smooth each value. * ##### Samples[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#samples "Direct link to heading") determines the accuracy of the smoothing. The more samples the more accurate is the result. For optimal quality it is recommendet to use a value that is 25 or up to 50 times larger than the value of "Width". * ##### Dimensions[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#dimensions "Direct link to heading") ##### Smooth X[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#smooth-x "Direct link to heading") turns smoothing for X dimension on and off ##### Smooth Y[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#smooth-y "Direct link to heading") turns smoothing for Y dimension on and off ##### Smooth Z[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-3d/#smooth-z "Direct link to heading") turns smoothing for Z dimension on and off Download at aescripts.com --- # Increment at Marker 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#) Increment at Marker 3D ====================== ![](https://docs.mamoworld.com/iexpressions/assets/images/increment_at_marker_3d-7f1e896a1127aa8811dc412e885b1b16.png) With this iExpression the property is automatically increased (or decreased) by some fixed amount at each marker. In addition, you can overwrite this behavior at individual markers using the marker comments. If a marker has "\[\-5,20,0\]" as comment, for example, the x value is decreased by 5 at this particular marker, the y value is increased by 20 and the z value remains unchanged. With a comment "5s" or "20 frames" also the fade in duration for this marker can be changed to 5 seconds or 20 frames, respectively. * ##### Increment at Marker[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#increment-at-marker "Direct link to heading") How much the value should increment at each marker (if the marker has no comment specifying a different value). * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#frame-offset "Direct link to heading") for -2, the modification already starts 2 frames before each marker. * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Fade In[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#fade-in "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#fade-in-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded in. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-3d/#fade-type "Direct link to heading") determines whether the change at the markers fades in in a linear or exponential fashion. Download at aescripts.com --- # Time Remap at Marker | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#) Time Remap at Marker ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/time_remap_at_marker_0-8f3492959cadb3bc1561363bc92edd83.png) This iExpression is applied to the time remapping property of the layer and allows to play back some region of the clip at each marker. This is useful, for example, if you have a precomp with w twinkling eye and want it to twinke at each marker. You can also apply the iExpression to audio layers in order to play the audio at each layer. However, in the audio playback, you might hear some rewind noise when teh time remapping jumps from the end to the beginning. To avoid this, apply the same iExpression to both the time remapping and audio levels. When applied to the audio levels, the iExpression will mute the audio whenever it "rewinds". * ##### Start Frame[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#start-frame "Direct link to heading") where the range starts that should be played at each marker. * ##### End Frame[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#end-frame "Direct link to heading") where the range ends that should be played at each marker. * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#frame-offset "Direct link to heading") allows to shift the playback: for -2, the time remapping already starts 2 frames before each marker. * ##### after Playback[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#after-playback "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, or the markers from another layer * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Mute Audio on Rewind[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#mute-audio-on-rewind "Direct link to heading") ##### Rewind Speed Factor[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#rewind-speed-factor "Direct link to heading") When you do time remapping on audio layers, you get a short "rewind noise" on the jump from the end to the beginning of the audio. To avoid this, apply this iExpression to both the Time Remap and the Audio Levels property. Then the iExpression will mute the audio whenever it rewinds. The Rewind Speed Factor determines when the audio is muted. For 5, it mutes whenever the audio plays faster than 5x normal speed. ##### Mute Lookahead[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#mute-lookahead "Direct link to heading") How far before and after the rewind the audio is already muted. Only change here something when the rewind noise does not disappear completely with the default settings. ##### Mute Value[​](https://docs.mamoworld.com/iexpressions/movement-modifier/time-remap-marker/#mute-value "Direct link to heading") To which value the audio levels should be set when it should be muted (normally: -48db on both stereo channels) Download at aescripts.com --- # Play Animation at Marker | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/play-animation-marker/#) On this page Play Animation at Marker ======================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-22_14.49.31-8c7410def264ebe5934704003aaae238.png) This iExpression can trigger any animation to repeat at each marker. **Usage:** 1. Keyframe some animation (the animation can use multiple properties - like positions of layers or puppet pins, for example) 2. enter the start and end frame of the keyframed animation in the iExpression parameters 3. apply the iExpression to all properties that you keyframed for the animation 4. now wherever you place a marker, the expression will repeat the keyframed animation. **Speed Control** Say on one marker you want to play back the animation twice as fast. Then simply add a comment "200%" to the marker and it will play at 200% speed. **Multiple Layers** A marker can trigger animations on any kinds of properties and also on multiple layers simultaneously. By default, the expression reacts on the markers of the layer on which the property lives. If you want to trigger an animation involving multiple layers, use the controls in the "Marker Source" section to specify the layer whose markers should be used. This way the markers of a single layer can trigger animations for properties on multiple different layers. ### Example[​](https://docs.mamoworld.com/iexpressions/movement-modifier/play-animation-marker/#example "Direct link to heading") ![After Effects: Repeat an animation at each marker with expression](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsplayanimationatmarker_preview-be3225e1d161624147cd9715231be3e5.gif) With some puppet pins, we animated the mouth to shap shut. Then we applied the "Play Animation at Marker" expression, such that this animation repeats on each marker. At the third marker we annotated "300%" such that the plant snap shuts three times as fast. Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/movement-modifier/play-animation-marker/#example) --- # Mirror | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/mirror/#) Mirror ====== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2021-03-02_at_10.15.03-db0dc04536c84f9fb7d6cea6f9ebfa80.png) ![](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsmirrorxy_preview_optimized256-8b4369a108d84cf73c6a24f6daab9a65.gif) Mirrors the path along the line between its first and last vertex. This allows you to create symmetrical shapes in Ae easily. If you apply the expression to a path, it mirrors the shape along the line between the first and last vertex. As soon as an expression is applied to a path, Ae does not allow you to modify it manually anymore unless you deactivate the expression again. In order to still be able to get a life preview of the mirrored shape while you are changing it, you can apply the expression to a duplicate of the shape that is linked to the original. Then you can edit the original and the duplicate with the mirrored shape updates instantly when you change something. See the tutorial below for details. ![](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsmirror_preview-1d550e9822bd5a472f53f519573f4b5f.gif) Download at aescripts.com --- # Walk Cycle | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/walk-cycle/#) On this page Walk Cycle ========== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-23_16.04.05-d4581081c3d49c457ecdf43479420cba.png) This expression generates a walk cycle for a character. You can simply keyframe the position of the character and the expression takes care that the feet, hands and the body move accordingly to make the character walk or run. ### Example[​](https://docs.mamoworld.com/iexpressions/physics-simulations/walk-cycle/#example "Direct link to heading") ![Walk Cycle expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/walkcycle_preview-7b1a45355eceae39b5d3ed3b65e46b8a.gif) This robot walks fully automatically. Just keyframe the position of its master controller and the expression moves the hand and feet as needed. At the point where the robot stops, we added some manual keyframes for hand and feet controllers to fine-tune the stopping pose. That's a very powerful feature of the expression, that you can keyframe on top of the generated walk cycle easily. **Character Setup** You first need to setup a skeleton for your character with the [IK iExpressions](https://docs.mamoworld.com/iexpressions/physics-simulations/ik-arm-2-or-3-segments) , or other rigging tools like DuiK, Rubber Hose or Limber. The Walk Cycle iExpression does not care about the details of your rig, just ensure that you have 1. One controller (goal layer) to move every hand, foot and the body 2. One master layer that moves the entire character (just create a new null and parent all these other goal layers from step 1 to it) Then you just need to move the master layer (2) and the other controllers (1) are moved by the expression as needed to create a walking animation. Watch the tutorial for details. **Animate On Top of The Walk Cycle!** One very powerful feature of this expression is that you can still customize the position of every controller (hands, feet, body) at any frame easily. Consider the walk cycle that the iExpression generates just as a starting point for possible modifications. If your character should stop walking at some point, for example, you might want to fine-tune the pose in which he stops. No problem. Just add some keyframes to the hand/feed/body controllers to modify the animation generated by the expression. **Ground Layer** In the expression parameters, you can connect an (optional) ground layer. If a ground layer is connected, instead of moving the character, you can also move the ground layer and the character will walk accordingly. So if you plan to animate (pan) the ground that the character is walking on, just connect some layer that moves with the ground as the ground layer and the expression takes care of all other details. Internally, the expression needs to compute the distance that the character has walked on each single frame. If no ground layer is connected, it measures how many pixels the character moved in the composition. If a ground layer is selected, it measures instead how the distance (in X direction) between the character and the linked ground layer changed. **DuiK** To combine the walk cycle with DuiK - and in particular for proper heel raising - see [this tutorial for details](https://mamoworld.com/tutorials/automatic-walk-cycles-ae-duik-and-iexpressions) . Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/physics-simulations/walk-cycle/#example) --- # Arrowhead | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/arrowhead/#) Arrowhead ========= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-18_20.19.41-69d4b236ad0a065088d914dd0f900579.png) Creates an arrow head that can be attached to any shape. The arrow head is a separate path such that it can be styles independently of the shape it is attached to. The appearance of the arrowhead can be controlled in full detail using the iExpressions parameters. **Usage** To attach an arrowhead to a path 1. duplicate the path (or the entire shape layer) 2. connect the original path in the expression parameter "Attach to Path" 3. apply the arrow head to the duplicate path - it will stick now to the path it is connected to ![Fill between arrow head and line](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-25_09.34.23-181cffd9907b61b631537956c5bcd2f0.png) **Tip** Make sure to keep both the path for your line and the path for the arrowhead on the same shape layer, to make sure the arrow head stays attached to the line when you move it. Best place the arrow head path above the line path, such that you can place a fill between the two path. That way the arrow head is filled, but the line is not. Download at aescripts.com --- # Rotating Wheel Linear Motion | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#) Rotating Wheel Linear Motion ============================ ![]() This iExpression computes the rotation of a wheel based on the movement of the layer. This can be used to rotate the wheels or a car or any other kinds of wheels that roll on the ground. This iExpression has the following limitations: (a) the wheel may only move along a straight line (for example horizontally, but any other direction is also possible). On this line it may move both forwards and backwards. (b) the size of the wheel may not change over time. If you have more complex animations where either (a) or (b) is not satisfied, use the iExpression "Rotating Wheel Curvaceous Motion" that can handle these cases but computes a bit slower. * ##### Diameter[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#diameter "Direct link to heading") the diameter of the wheel (in number of pixels) * ##### Use Movement From[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#use-movement-from "Direct link to heading") ##### Use[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#use "Direct link to heading") Choose if the rotation should be computed according to the movement of the layer itself or according to the movement of another point. ##### Link to Other Point[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#link-to-other-point "Direct link to heading") link here the other point, to whose movment the according rotation should be computed. * ##### Ground[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#ground "Direct link to heading") ##### use ground layer[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#use-ground-layer "Direct link to heading") if the ground itself moves relative to the composition, use this option. ##### Ground Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#ground-layer-name-or-index "Direct link to heading") is the name or index of the ground layer relative to which the wheel should rotate. * ##### Advanced[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#advanced "Direct link to heading") ##### Specify Diameter in[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#specify-diameter-in "Direct link to heading") Specifies whether die diameter is given in composition or in layer space. Example: Say the wheel is a solid of size 100 pixels and is scaled to 200%. With the option 'layer coordinates' you should set the diameter to 100 but with the option 'comp coordinates' you should set it to 200, since from the comp's perspective, the solid has a size of 200 pixels. ##### Flip Direction[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-linear-motion/#flip-direction "Direct link to heading") Activate this option if the wheel rotates in the wrong direction. This may happen when the ground is above the wheel instead of below it. Download at aescripts.com --- # Roller Coaster Wagon | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-wagon/#) Roller Coaster Wagon ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/roller_coaster_wagon_0-290532397de1c508cfce881e9bc12870.png) This iExpression is used in combination with the "Roller Coaster Master" to animate a series of layers as if they where different wagons of a roller coaster. For more details see the description of "Roller Coaster Master". * ##### Link To Master Data[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-wagon/#link-to-master-data "Direct link to heading") link here a copy of the Roller Coaster Master, whose output is set to "Master Data". * ##### Link To Track Data[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-wagon/#link-to-track-data "Direct link to heading") link here a copy of the Roller Coaster Master, whose output is set to "Track Data". * ##### Position Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-wagon/#position-offset "Direct link to heading") allows to build a roller coaster out of several layers (where each layer behaves like one wagon of the rollercoaster). The wagon in the middle should have a position offset of 0 and the wagons before and after it should have appropriate positive or negative offsets to place them before or after the middle wagon. Download at aescripts.com --- # Softlink Puppet Pin To Layers | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#) Softlink Puppet Pin To Layers ============================= ![](https://docs.mamoworld.com/iexpressions/assets/images/soft_link_puppet_pin_ui_0-a9badea72cb11dad149639c553dac404.png) This expression links a pin from the puppet tool to several layers, such that all these layers influence the movement of the pin. This is like connecting the pin with rubber bands to all these layers. With a weight you can control the influence of each individual layer (the less weight, the softer is the rubber band for this layer). This is like a simple form of weight painting used for skinning characters in 3d applications. You can also set a time delay for each individual layer to create the impression of an even more elastic connection to this layer. * ##### Layer 1 (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-1-name-or-index "Direct link to heading") Name or index of the first layer to which the puppet pin should be connected. * ##### Layer 1 Weight[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-1-weight "Direct link to heading") The higher this value, the more influence this layer has on the pin. * ##### Layer 1 Options[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-1-options "Direct link to heading") ##### Time Delay (frames)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#time-delay-frames "Direct link to heading") for 10, for example, the pin reacts with a delay of 10 frames to each movement of the layer. ##### Layer Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-space-offset "Direct link to heading") Offset, in case the pin should not be linked to the anchor point of the layer but to another point in the layer space. ##### Comp Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#comp-space-offset "Direct link to heading") Moves the link in composition space. For \[100,0\], for example, the pin is always 100 pixels right of the anchor point of the layer. In contrast to the Layer Space Offset, the Comp Space Offset is not affected by rotation or scale of the layer that the pin is linked to. * ##### Layer 2 (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-2-name-or-index "Direct link to heading") Name or index of the first layer to which the puppet pin should be connected. * ##### Layer 2 Weight[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-2-weight "Direct link to heading") The higher this value, the more influence this layer has on the pin. * ##### Layer 2 Options[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-2-options "Direct link to heading") ##### Time Delay (frames)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#time-delay-frames-1 "Direct link to heading") for 10, for example, the pin reacts with a delay of 10 frames to each movement of the layer. ##### Layer Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-space-offset-1 "Direct link to heading") Offset, in case the pin should not be linked to the anchor point of the layer but to another point in the layer space. ##### Comp Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#comp-space-offset-1 "Direct link to heading") Moves the link in composition space. For \[100,0\], for example, the pin is always 100 pixels right of the anchor point of the layer. In contrast to the Layer Space Offset, the Comp Space Offset is not affected by rotation or scale of the layer that the pin is linked to. * ##### Layer 3 (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-3-name-or-index "Direct link to heading") Name or index of the first layer to which the puppet pin should be connected. * ##### Layer 3 Weight[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-3-weight "Direct link to heading") The higher this value, the more influence this layer has on the pin. * ##### Layer 3 Options[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-3-options "Direct link to heading") ##### Time Delay (frames)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#time-delay-frames-2 "Direct link to heading") for 10, for example, the pin reacts with a delay of 10 frames to each movement of the layer. ##### Layer Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-space-offset-2 "Direct link to heading") Offset, in case the pin should not be linked to the anchor point of the layer but to another point in the layer space. ##### Comp Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#comp-space-offset-2 "Direct link to heading") Moves the link in composition space. For \[100,0\], for example, the pin is always 100 pixels right of the anchor point of the layer. In contrast to the Layer Space Offset, the Comp Space Offset is not affected by rotation or scale of the layer that the pin is linked to. * ##### Layer 4 (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-4-name-or-index "Direct link to heading") Name or index of the first layer to which the puppet pin should be connected. * ##### Layer 4 Weight[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-4-weight "Direct link to heading") The higher this value, the more influence this layer has on the pin. * ##### Layer 4 Options[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-4-options "Direct link to heading") ##### Time Delay (frames)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#time-delay-frames-3 "Direct link to heading") for 10, for example, the pin reacts with a delay of 10 frames to each movement of the layer. ##### Layer Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-space-offset-3 "Direct link to heading") Offset, in case the pin should not be linked to the anchor point of the layer but to another point in the layer space. ##### Comp Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#comp-space-offset-3 "Direct link to heading") Moves the link in composition space. For \[100,0\], for example, the pin is always 100 pixels right of the anchor point of the layer. In contrast to the Layer Space Offset, the Comp Space Offset is not affected by rotation or scale of the layer that the pin is linked to. * ##### Layer 5 (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-5-name-or-index "Direct link to heading") Name or index of the first layer to which the puppet pin should be connected. * ##### Layer 5 Weight[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-5-weight "Direct link to heading") The higher this value, the more influence this layer has on the pin. * ##### Layer 5 Options[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-5-options "Direct link to heading") ##### Time Delay (frames)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#time-delay-frames-4 "Direct link to heading") for 10, for example, the pin reacts with a delay of 10 frames to each movement of the layer. ##### Layer Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#layer-space-offset-4 "Direct link to heading") Offset, in case the pin should not be linked to the anchor point of the layer but to another point in the layer space. ##### Comp Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#comp-space-offset-4 "Direct link to heading") Moves the link in composition space. For \[100,0\], for example, the pin is always 100 pixels right of the anchor point of the layer. In contrast to the Layer Space Offset, the Comp Space Offset is not affected by rotation or scale of the layer that the pin is linked to. * ##### Pin Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/softlink-puppet-pin-layers/#pin-offset "Direct link to heading") For \[100,0\], for example, the pin is always 100 pixels right of the normal position. Download at aescripts.com --- # Basic Smoother | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/basic-smoother/#) Basic Smoother ============== ![](https://docs.mamoworld.com/iexpressions/assets/images/basic_smoother_0-caca588d6e9137330da38ac4096d888e.png) This iExpressions allows to smooth the keyframed motion of a property. * ##### Width[​](https://docs.mamoworld.com/iexpressions/movement-modifier/basic-smoother/#width "Direct link to heading") determines the amount of smoothness. The larger the width, the more smooth is the result - a value of 2 means, for example, that the values within a window of 2 seconds are taken into consideration to smooth each value. * ##### Samples[​](https://docs.mamoworld.com/iexpressions/movement-modifier/basic-smoother/#samples "Direct link to heading") determines the accuracy of the smoothing. The more samples the more accurate is the result. For optimal quality it is recommendet to use a value that is 25 or up to 50 times larger than the value of "Width". Download at aescripts.com --- # Move In & Out 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#) Move In & Out 3D ================ ![](https://docs.mamoworld.com/iexpressions/assets/images/move_in_out_3d-2d80d84b09a4d8acb668caa51d9f56cc.png) With this iExpression you can move a 3D layer in and out of screen using a uniformly accelerated movement in any direction. At first sight the motion might seem similar to using 'easy ease' keyframes, but due to the uniform deceleration when moving in and uniform acceleration when moving out, the movement is slightly different and more natural. The direction is given via two angles (like in a spherical coordinate system). * ##### Acceleration[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#acceleration "Direct link to heading") determines how fast the object decelerates when moving in and accelerates when moving out. * ##### Angle In (horizontal,vertical)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#angle-in-horizontalvertical "Direct link to heading") ![angle_move_in_out_3d.png]() is the angle (i.e. the direction) from which the object is moving into the frame. The first component denotes the horizontal angle, i.e. the angle on the ground plane (like shown on a compass). It the camera has its default orientation, 0 degree means moving in from z direction, -90 degree from left and 90 degree from right. 180 degree means moving in from the viewers point of view. The second component denotes the vertical angle. 0 degree means a purely horizontal movement, 45 degree moving in diagonally from above and -45 degree from diagonally below. 90 degree means moving in vertically from the top and -90 degree from the bottom. * ##### Angle Out (horizontal, vertical)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#angle-out-horizontal-vertical "Direct link to heading") is the angle (i.e. the direction) in which the object is moving out of the frame. The first component denotes the horizontal angle, i.e. the angle on the ground plane (like shown on a compass). It the camera has its default orientation, 0 degree means moving out in z direction, -90 degree to the left and 90 degree to the right. 180 degree means moving towards the viewers point of view. The second component denotes the vertical angle. 0 degree means a purely horizontal movement, 45 degree moving out diagonally upwards and -45 degree diagonally downwards. 90 degree means moving straight up and -90 degree straight down. * ##### Move In Time[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#move-in-time "Direct link to heading") ##### Move In At[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#move-in-at "Direct link to heading") controls whether a movement into the frame should be enabled and if so at which point in time this movement should be finished (at the first keyframe, an a manually chosen keyframe, at a manually chosen frame, or no movement into the frame at all). ##### Move In (Key) Frame No.[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#move-in-key-frame-no "Direct link to heading") is the frame or the keyframe (depending on the choice of 'Move In At' option) at which the movement into the frame should be finished. If 'Move In At' has any other value than 'keyframe no.' or 'frame no.' this value is ignored. * ##### Move Out Time[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#move-out-time "Direct link to heading") ##### Move Out At[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#move-out-at "Direct link to heading") controls whether a movement out of the frame should be enabled and if so at which point in time this movement should start (at the first keyframe, an a manually chosen keyframe, at a manually chosen frame, or no movement out of the frame at all). ##### Move Out (Key) Frame No.[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-3d/#move-out-key-frame-no "Direct link to heading") is the frame or the keyframe (depending on the choice of 'Move Out At' option) at which the movement out of the frame starts. If 'Move Out At' has any other value than 'keyframe no.' or 'frame no.' this value is ignored. Download at aescripts.com --- # Elastic | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/elastic/#) On this page Elastic ======= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-17_10.13.04-b3c0bbdefb47eedee0ce925dfbe9dfc4.png) Makes the shape deform and react to movements of the layer in an elastic way. Shape parts are deformed more, the further they are away from the anchor point of the layer. Note that the expression only reacts on movements of the layer (or its parents) but not on changes of the path it self. **Tip:** If your have multiple path, vary the parameters (like delay and wobble frequency) slightly to get a rich and dynamic result. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/elastic/#examples "Direct link to heading") ![motion trails shape layer After Effects](https://docs.mamoworld.com/iexpressions/assets/images/iexpressiontrail_preview-61e1124dc60257f82ec0b8017bf494a9.gif) In this example we wiggled position and rotation of the text and then converted it to shapes such that we could apply the Elastic iExpression, which adds some deformation to the text. Finally we applied the Trail expression to a few paths on a new shape layer to create the white speed lines. ![Throw 2D, Trail and Elastic expressions have been used for this animation](https://docs.mamoworld.com/iexpressions/assets/images/throw-aa6dde1338a1e90dfb607e876373294b.gif) For this animation we combined * the [Throw 2D with Walls](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d) iExpression for the motion * the [Trail iExpression](https://docs.mamoworld.com/iexpressions/path/trail) for the speed lines and * the _Elastic iExpression_ to deform the logo Instead of linking the trail expression directly to the logo, we linked it to a null layer with the same position as the logo, but no rotation. That way the trails follow the position, but not the rotation. We also applied the [Basic Wiggle iExpression](https://docs.mamoworld.com/iexpressions/wiggles/wiggle) to this null to wiggle the speed lines a bit. ![wobble elastic shape path in After Effects with expression](https://docs.mamoworld.com/iexpressions/assets/images/comparison_plant_elastic_wobble-ed0a517797aa0748bbe955ca5aaf68f6.gif) In this example each of the two branches is one shape layer with the elastic expression applied to its path. The anchor point of the layers is at the bottom of the branch, such that the deformation originates from that point. **Variation:** In the wobble variant, we varied the wobble frequency a bit (3 vs 3.5) such that the branches don't swing in sync. A bit more subtle bit still visible is that in the variant without wobble the delay is slightly different for each of the two branches (0.2s vs. 0.25s), such that the darker, bigger branch overshoots a bit more and longer. These little variations are not obvious but add a lot of life and realism. **Easing:** Wobble works best, it your layer stops abruptly, hence, we used linear keyframes for the variant with wobble. Without wobble, the overshooting looks much better with eased keyframes. Therefore, in the other variants, we applied an ease in, such that the motion stops softly. ![reset group transforms for shape layers when using the expression](https://docs.mamoworld.com/iexpressions/assets/images/reset_group_transforms-e3b68156ea748bb78667e2e74ee5db98.png) If the path is nested inside groups, make sure that all their transforms are at default values. You can animate the layer by animating the layer transforms or using parenting. If you have several shapes that should move in different ways, place them on separate layers. All of this is necessary, since the expression measures the movement of the shape based on the movement of the layer's anchor point. So if you animate using transforms of individual groups, this movement is ignored by the expression. Also, the deformation is calculated such that it originates from the anchor point, and this only works properly, if the individual group transforms are reset to zero. If you notice that the shape does not stick to the anchor point during deformation, make sure to reset the group transforms. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/elastic/#examples) --- # Cog Wheels | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels/#) Cog Wheels ========== ![](https://docs.mamoworld.com/iexpressions/assets/images/cog_wheels_0-05cbca9c1175c857ba3532f12580ae09.png) Computes the rotation of a cog wheel (gear wheel) from the rotation of the other cog wheel that it is connected to. The iExpression can also be used for wheels or rollers that are rotating agains each other. In this case, specify the diameter or circumfence of the wheels instead of the number of theeth. * ##### Link To Other Wheel Rotation[​](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels/#link-to-other-wheel-rotation "Direct link to heading") Link here the rotation of the cog wheel that is driving this cog wheel. * ##### This Wheel Number of Teeth[​](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels/#this-wheel-number-of-teeth "Direct link to heading") How many teeth this cog wheel has (instead of the number of teeth you can also enter the diameter or circumfence of the two wheels) * ##### Other Wheel Number of Teeth[​](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels/#other-wheel-number-of-teeth "Direct link to heading") How many teeth this other cog wheel has which is driving this cog wheel (instead of the number of teeth you can also enter the diameter or circumfence of the two wheels). * ##### Flip Direction[​](https://docs.mamoworld.com/iexpressions/physics-simulations/cog-wheels/#flip-direction "Direct link to heading") Makes the wheel move in the opposite direction. This is only required in special cases, like for internal gears that have their theeth inside and not at the outside of the wheel. Download at aescripts.com --- # Simple Link 1D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d/#) On this page Simple Link 1D ============== ![]() This iExpression links a 1D property to another 1D, 2D, or 3D property. If you link the 1D property to a 2D or 3D property you can (as in any other link) choose in the options of "Link to" among other things whether you want to link to the x, y, or z component. * ##### Link to[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d/#link-to "Direct link to heading") Don't put a number here. Use the link button to link this to some property. Download at aescripts.com Tip[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d/#tip "Direct link to heading") ----------------------------------------------------------------------------------------------------- #### Create Your Own Little Fuzzy Friends from Aetuts+[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d/#create-your-own-little-fuzzy-friends-from-aetuts "Direct link to heading") ##### tip [![Create Your Own Little Fuzzy Friends from Aetuts+](https://docs.mamoworld.com/iexpressions/assets/images/little-fuz-balls-e6f2cc1b83717e8414cf2dd4aaff8edc.jpg)](http://ae.tutsplus.com/tutorials/motion-graphics/create-your-own-little-fuzzy-friends/) [In this tutorial](http://ae.tutsplus.com/tutorials/motion-graphics/create-your-own-little-fuzzy-friends/) the Simple Link 1D iExpression is used to move the hair of a cute little creature according to the moves of the creature. This iExpression is used around 12:50, the entire iExpressions-based * [Tip](https://docs.mamoworld.com/iexpressions/linking/simple-link-1d/#tip) --- # Simple Link 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/simple-link-3d/#) Simple Link 3D ============== ![]() This iExpression links a 3D property to another 1D, 2D, or 3D property. As in any other link of iExpressions, you can choose in the options of "Link to" many details of the link, e.g. whether to link to the actual value or to its speed and which component should be linked to the x and y component, respectively. * ##### Link to[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-3d/#link-to "Direct link to heading") Don't put a number here. Use the link button to link this to some property. Download at aescripts.com --- # Separate Link 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/separate-link-2d/#) Separate Link 2D ================ ![]() This iExpression links a 2D property to two different 1D, 2D, or 3D properties such that the X and Y component can be linked to different properties. * ##### Link x to[​](https://docs.mamoworld.com/iexpressions/linking/separate-link-2d/#link-x-to "Direct link to heading") Don't put a number here. Use the link button to link the X value of your property to some other property. * ##### Link y to[​](https://docs.mamoworld.com/iexpressions/linking/separate-link-2d/#link-y-to "Direct link to heading") Don't put a number here. Use the link button to link the Y value of your property to some other property. Download at aescripts.com --- # Simple Link 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d/#) On this page Simple Link 2D ============== ![]() This iExpression links a 2D property to another 1D, 2D, or 3D property. As in any other link of iExpressions, you can choose in the options of "Link to" many details of the link, e.g. whether to link to the actual value or to its speed and which component should be linked to the x and y component, respectively. * ##### Link to[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d/#link-to "Direct link to heading") Don't put a number here. Use the link button to link this to some property. Download at aescripts.com Tip[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d/#tip "Direct link to heading") ----------------------------------------------------------------------------------------------------- #### Time Remapped Mock TV Show Opener on Aetuts+[​](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d/#time-remapped-mock-tv-show-opener-on-aetuts "Direct link to heading") ##### tip [![Time Remapped Mock TV Show Opener on Aetuts+](https://docs.mamoworld.com/iexpressions/assets/images/time_remapped_tutorial-9d3a7797a99693bb9b2ab7aa703bc3d1.jpg)](http://ae.tutsplus.com/tutorials/motion-graphics/time-remapped-mock-tv-show-opener/) [In this tutorial](http://ae.tutsplus.com/tutorials/motion-graphics/time-remapped-mock-tv-show-opener/) , Ran Ben Avraham uses the Simple Link 2D (starting at 38:30) to connect some letters and other elements with lines. * [Tip](https://docs.mamoworld.com/iexpressions/linking/simple-link-2d/#tip) --- # Linear Link 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#) Linear Link 3D ============== ![](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_3d-f58f013ce69bcf022ce11d045f0feb0e.png) This iExpression links a 3D property to a slider (or some other 1D property - like audio keyframes). You specify which value the 3D property should have when the slider has its minimum value and which value it should have when the slider has its maximum value. For all other slider values the iExpression chooses automatically an appropriate value (using linear interpolation). * ##### Link to Slider[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#link-to-slider "Direct link to heading") Don't put a number here. Use the link button to link this to a slider control, an audio amplitude or some other 1D property. * ##### Slider Min[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#slider-min "Direct link to heading") the smallest value of the slider control (or of the audio level or whatever other property you link to) * ##### Slider Max[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#slider-max "Direct link to heading") the largest value of the slider control (or of the audio level or whatever other property you link to) * ##### Value for Min[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#value-for-min "Direct link to heading") the value that the property should have when the linked slider has its minimal value * ##### Value for Max[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#value-for-max "Direct link to heading") the value that the property should have when the linked slider has its maximal value * ##### Options[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#options "Direct link to heading") ##### Clip Borders[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#clip-borders "Direct link to heading") If this is enabled, the property will never have values smaller than 'Value for Min' or larger than 'Value for Max', even if the slider that the property is linked to has values smaller than 'Slider Min' or larger than 'Slider Max'. ##### Link x[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#link-x "Direct link to heading") Without this option the X value is not linked but taken from the keyframes instead ##### Link y[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#link-y "Direct link to heading") Without this option the Y value is not linked but taken from the keyframes instead ##### Link z[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-3d/#link-z "Direct link to heading") Without this option the Z value is not linked but taken from the keyframes instead Download at aescripts.com --- # Linear Link 1D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#) On this page Linear Link 1D ============== ![](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_1d-35602c4e03625bbd70f80e1915d55437.png) This iExpression links a 1D property to a slider (or some other 1D property - like audio keyframes). You specify which value the 1D property should have when the slider has its minimum value and which value it should have when the slider has its maximum value. For all other slider values the iExpression chooses automatically an appropriate value (using linear interpolation). * ##### Link to Slider[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#link-to-slider "Direct link to heading") Don't put a number here. Use the link button to link this to a slider control, an audio amplitude or some other 1D property. * ##### Slider Min[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#slider-min "Direct link to heading") the smallest value of the slider control (or of the audio level or whatever other property you link to) * ##### Slider Max[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#slider-max "Direct link to heading") the largest value of the slider control (or of the audio level or whatever other property you link to) * ##### Value for Min[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#value-for-min "Direct link to heading") the value that the property should have when the linked slider has its minimal value * ##### Value for Max[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#value-for-max "Direct link to heading") the value that the property should have when the linked slider has its maximal value * ##### Options[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#options "Direct link to heading") ##### Clip Borders[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#clip-borders "Direct link to heading") If this is enabled, the property will never have values smaller than 'Value for Min' or larger than 'Value for Max', even if the slider that the property is linked to has values smaller than 'Slider Min' or larger than 'Slider Max'. Download at aescripts.com Tips[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#tips "Direct link to heading") ------------------------------------------------------------------------------------------------------- #### Create Your Own Little Fuzzy Friends from Aetuts+[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#create-your-own-little-fuzzy-friends-from-aetuts "Direct link to heading") ##### tip [![Create Your Own Little Fuzzy Friends from Aetuts+](https://docs.mamoworld.com/iexpressions/assets/images/little-fuz-balls-e6f2cc1b83717e8414cf2dd4aaff8edc.jpg)](http://ae.tutsplus.com/tutorials/motion-graphics/create-your-own-little-fuzzy-friends/) [In this tutorial](http://ae.tutsplus.com/tutorials/motion-graphics/create-your-own-little-fuzzy-friends/) the Linear Link 1D iExpression is used to deform the hair of a cute fuzzy creature when it touches the ground. This iExpression is used around 19:32, the entire iExpressions-based creature rigging starts around 11:30. * [Tips](https://docs.mamoworld.com/iexpressions/linking/linear-link-1d/#tips) --- # Layer Distance Link | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#) Layer Distance Link =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/layer_distance_link_ui-cd88cbe81e90daa6104111f30811f283.png) This iExpression calculates the distance between two 2d or 3d layers. It can also calculate the distance only in a particular direction. * ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#first-layer-name-or-index "Direct link to heading") is the name or index of the first of the two layers whose distance should be measured * ##### Second Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#second-layer-name-or-index "Direct link to heading") is the name or index of the second of the two layers whose distance should be measured * ##### Compute[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#compute "Direct link to heading") Determines whether the total distance or only the distance in a specific direction should be calculated. * ##### Options[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#options "Direct link to heading") ##### Allow Negative Values[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#allow-negative-values "Direct link to heading") Allows negative distances in order to distinguish different directions (only if distance is measured in x- or y-direction). ##### Scale[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#scale "Direct link to heading") Allows to scale the computed distance value. ##### Enable Clipping[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#enable-clipping "Direct link to heading") Clips the computed distance value such that it always stays between the given minimal and maximal distance. ##### Min Distance[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#min-distance "Direct link to heading") If the computed distance is smaller than this value, this value will be returned. ##### Max Distance[​](https://docs.mamoworld.com/iexpressions/linking/layer-distance-link/#max-distance "Direct link to heading") If the computed distance is larger than this value, this value will be returned. Download at aescripts.com --- # Rotation Link | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/rotation-link/#) Rotation Link ============= ![]() This iExpression links an arbitrary property to the rotation of a layer or any other value representing an angle, like an Angle Control. You can keyframe your property as usual specify a first and a last frame and then the keyframes between the first and the last frame are played in a loop for each full rotation. This is similar to a Linear Link Time Remap, but has a cyclic behaviour such for each full rotation, the same animation is played again. * ##### Link to Rotation[​](https://docs.mamoworld.com/iexpressions/linking/rotation-link/#link-to-rotation "Direct link to heading") Don't put a number here. Use the link button to link this to the rotation of a layer or any other Angle Control. * ##### Start Frame[​](https://docs.mamoworld.com/iexpressions/linking/rotation-link/#start-frame "Direct link to heading") the number of the first frame of the region that should be played at each rotation * ##### End Frame[​](https://docs.mamoworld.com/iexpressions/linking/rotation-link/#end-frame "Direct link to heading") the number of the first frame behind the region that should be played. * ##### Options[​](https://docs.mamoworld.com/iexpressions/linking/rotation-link/#options "Direct link to heading") ##### Loop length[​](https://docs.mamoworld.com/iexpressions/linking/rotation-link/#loop-length "Direct link to heading") After how many degrees of rotation the animation starts again at the beginning. 360 degrees means that after one full rotation, the animation starts again at the beginning. Download at aescripts.com --- # Linear Link 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#) On this page Linear Link 2D ============== ![](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_2d-a28e13a97ae2e1783cecd1ff78599ea0.png) This iExpression links a 2D property to a slider (or some other 1D property - like audio keyframes). You specify which value the 2D property should have when the slider has its minimum value and which value it should have when the slider has its maximum value. For all other slider values the iExpression chooses automatically an appropriate value (using linear interpolation). * ##### Link to Slider[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#link-to-slider "Direct link to heading") Don't put a number here. Use the link button to link this to a slider control, an audio amplitude or some other 1D property. * ##### Slider Min[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#slider-min "Direct link to heading") the smallest value of the slider control (or of the audio level or whatever other property you link to) * ##### Slider Max[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#slider-max "Direct link to heading") the largest value of the slider control (or of the audio level or whatever other property you link to) * ##### Value for Min[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#value-for-min "Direct link to heading") the value that the property should have when the linked slider has its minimal value * ##### Value for Max[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#value-for-max "Direct link to heading") the value that the property should have when the linked slider has its maximal value * ##### Options[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#options "Direct link to heading") ##### Clip Borders[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#clip-borders "Direct link to heading") If this is enabled, the property will never have values smaller than 'Value for Min' or larger than 'Value for Max', even if the slider that the property is linked to has values smaller than 'Slider Min' or larger than 'Slider Max'. ##### Link x[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#link-x "Direct link to heading") Without this option the X value is not linked but taken from the keyframes instead ##### Link y[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#link-y "Direct link to heading") Without this option the Y value is not linked but taken from the keyframes instead Download at aescripts.com Tips[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#tips "Direct link to heading") ------------------------------------------------------------------------------------------------------- #### Animating to Music - Part 1[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#animating-to-music---part-1 "Direct link to heading") ##### tip [![Animating to Music - Part 1](https://docs.mamoworld.com/iexpressions/assets/images/linear_link_news-eb2c52ef1375fc7b73e297c33fab7e1f.png)](http://www.sternfx.com/tutorials/105) [This tutorial](http://www.sternfx.com/tutorials/105) for sternfx.com uses different audio and linking iExpressions to animate things automatically according to music. #### Create Your Own Little Fuzzy Friends from Aetuts+[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#create-your-own-little-fuzzy-friends-from-aetuts "Direct link to heading") ##### tip [![Create Your Own Little Fuzzy Friends from Aetuts+](https://docs.mamoworld.com/iexpressions/assets/images/little-fuz-balls-e6f2cc1b83717e8414cf2dd4aaff8edc.jpg)](http://ae.tutsplus.com/tutorials/motion-graphics/create-your-own-little-fuzzy-friends/) [In this tutorial](http://ae.tutsplus.com/tutorials/motion-graphics/create-your-own-little-fuzzy-friends/) the Linear Link 2D iExpression is used to squash a cute fuzzy creature when it bounces at the ground. This iExpression is used around 15:03, the entire iExpressions-based creature rigging starts around 11:30. * [Tips](https://docs.mamoworld.com/iexpressions/linking/linear-link-2d/#tips) --- # Linear Link Color | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/linear-link-color/#) On this page Linear Link Color ================= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-11_16.12.28-9c3adf3ee061e53f4a6ff1e23dddd4ee.png) This iExpression links a color to a slider (or to some other 1D property - like audio keyframes). You specify which value the color should have for the minimum and maximum slider value, respectively and the expression then blends between those colors as needed. By linking many different color properties to the same slider, you can control a lot of difference color changes with a single slider. ### Example[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-color/#example "Direct link to heading") ![Blend Colors using Expressions and a slider](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionlinearcolorlink_preview-ab276897bec6393b9ce17a7fde2aa1a5.gif) In this example, we linked the colors of the hair, skin, eyes, eyebrows, nose and mouth all to the same slider to control all of them with a single slider. Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/linking/linear-link-color/#example) --- # Trail | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/trail/#) On this page Trail ===== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-15_14.17.43-1fe864159da0608efb8005ddab1aa8f9.png) Creates a line that follows the movement of another layer. To create multiple different lines, play with the parameters in the "Randomize" section and apply the expression to multiple path properties at the same time. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/trail/#examples "Direct link to heading") ![motion trails shape layer After Effects](https://docs.mamoworld.com/iexpressions/assets/images/iexpressiontrail_preview-61e1124dc60257f82ec0b8017bf494a9.gif) In this example we wiggled position and rotation of the text and then converted it to shapes such that we could apply the Elastic iExpression, which adds some deformation to the text. Finally we applied the Trail expression to a few paths on a new shape layer to create the white speed lines. ![Throw 2D, Trail and Elastic expressions have been used for this animation](https://docs.mamoworld.com/iexpressions/assets/images/throw-aa6dde1338a1e90dfb607e876373294b.gif) For this animation we combined * the [Throw 2D with Walls](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d) iExpression for the motion * the _Trail iExpression_ for the speed lines and * the [Elastic iExpression](https://docs.mamoworld.com/iexpressions/path/elastic) to deform the logo Instead of linking the trail expression directly to the logo, we linked it to a null layer with the same position as the logo, but no rotation. That way the trails follow the position, but not the rotation. We also applied the [Basic Wiggle iExpression](https://docs.mamoworld.com/iexpressions/wiggles/wiggle) to this null to wiggle the speed lines a bit. ![Trails with After Effects shape expression](https://docs.mamoworld.com/iexpressions/assets/images/trails_snap_to_grid-106407ff5f135238b3d072041ee97d78.gif) In this example, we first applied the [Snap 2 Grid iExpression](https://docs.mamoworld.com/iexpressions/movement-modifier/snap-grid-1d2d3d) to the position of the circle to create the zig zag motion path. Then we created a new shape layer and applied the Trail expression to its path to create the lines that follow the motion. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/trail/#examples) --- # Separate Link 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/separate-link-3d/#) Separate Link 3D ================ ![](https://docs.mamoworld.com/iexpressions/assets/images/separate_link_3d-8c625633a5af0b47151fa82a58b02a85.png) This iExpression links a 3D property to three different 1D, 2D, or 3D properties such that the X, Y, and Z component can be linked to different properties. * ##### Link x to[​](https://docs.mamoworld.com/iexpressions/linking/separate-link-3d/#link-x-to "Direct link to heading") Don't put a number here. Use the link button to link the X value of your property to some other property. * ##### Link y to[​](https://docs.mamoworld.com/iexpressions/linking/separate-link-3d/#link-y-to "Direct link to heading") Don't put a number here. Use the link button to link the Y value of your property to some other property. * ##### Link z to[​](https://docs.mamoworld.com/iexpressions/linking/separate-link-3d/#link-z-to "Direct link to heading") Don't put a number here. Use the link button to link the Z value of your property to some other property. Download at aescripts.com --- # Color Link | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/color-link/#) Color Link ========== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-11_14.57.01-1086686299ecb15905ea4dce4f52bfea.png) This iExpression links a color to another color property. In the link options you can also modify the link - you can change the brightness, for example, to obtain a brighter or darker variant of the linked color. Download at aescripts.com --- # Link to Point on Shape | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/link-point-shape/#) Link to Point on Shape ====================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-22_16.40.48-628e6324569b4b43d66f021f56afdb36.png) This expression links the position (and optionally rotation) of a layer to an arbitrary point on a path or also to its Bezier handles. Works even if the path is nested into groups with non-default transforms! **Rotation** To orient the layer along the path, simply apply the expression to both position and rotation of the layer. You can still keyframe the rotation on top of the rotation generated by the expression. **Animate Along Path** To animate any layer along a path in After Effects, you need to 1. make sure _mode_ is set to _percentage_ 2. link the _Attach Point_ parameter to a slider (by clicking on the chain link icon right before it) 3. Keyframe the linked slider from 0 to 100 to move from the beginning to the end of the path. Download at aescripts.com --- # Linear Link Time Remap | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#) On this page Linear Link Time Remap ====================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-12-02_10.03.24-6559afeb789676e5d0a074e47b579513.png) This iExpression links arbitrary keyframed animations to a slider. ### Usage[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#usage "Direct link to heading") 1. keyframe an animation as usual 2. Set the iExpression parameters _Frame for Min_ and _Frame for Max_ to the frames where your keyframed animation starts and ends, respectively. 3. Optional: If the slider should have a different range than 0-100, set it in the iExpressions parameters _Slider Min_ and _Slider Max_ 4. Create a slider (Effect->Expressions Controls->Slider Control) and connect it to the iExpression 5. Apply the expression to all properties you keyframed in step 1 Now the keyframed animation is linked to the slider, i.e. when you move the slider from 0 to 100, the animation plays back (and if you move the slider from 100 back to 0 it plays backwards). This is like time-remapping the keyframes, but instead of time-remapping an entire video clip, it only time-remaps the keyframes of the properties that the expression is applied to. ### Example[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#example "Direct link to heading") ![Link Keyframes to Sliders in After Effects](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionslinearlinktimeremapfatthin_preview-d3be28030a46b8510f6fd8592c388b8c.gif) This character is created with a single shape layer. First we keyframed the face details to transition from a happy face to a sad face and linked those properties to a happiness slider. Then we used keyframes on the remaining shape paths properties to transition from a slim, bearded character to a fat one and linked those keyframes to a weight slider. Finally, we keyframed the transform properties (scale and position) of the shape groups to shrink the character and linked this animation to a size slider. ### Tip[​](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#tip "Direct link to heading") Note that each property can only be controlled by one slider. If you want to transform a shape based on multiple sliders, you can nest the shape inside multiple groups. Since each group has its own transform controls, nesting into multiple groups allows you to to link each group transform to a different slider. Similarly, if you want to move a layer based on two sliders, you can parent the slider to a null. Then keyframe the movement for the first slider on the layer itself and the one for the second slider on the parent layer. Download at aescripts.com * [Usage](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#usage) * [Example](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#example) * [Tip](https://docs.mamoworld.com/iexpressions/linking/linear-link-time-remap/#tip) --- # Throw 2D/3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d/#) On this page Throw 2D/3D =========== ![](https://docs.mamoworld.com/iexpressions/assets/images/throw_2d-38ad1cacf1e92db1f801a2f3a7fe9200.png) With these iExpressions you can literally throw a layer such that it flies through the air and realistically bounces off the ground and optionally also walls. Using this iExpression is very easy: Just keyframe the movement of the layer and after the last keyframe the simulation starts automatically. Hence, the throw direction and speed depends on the movement at the last keyframe. To get the desired movement you only need to adjust the height of the ground from which the layer bounces. You can also adjust the elasticity with which the layer bounces of the ground and the gravity with which the layer is attracted by the ground. In the variants of this expression with walls, you also need to specify the location of those walls and how elastic it bounces at those walls. In total there are four _Throw_ iExpressions: A variant with walls and without for both 2D and 3D layers, respectively. ### Example[​](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d/#example "Direct link to heading") ![Throw 2D, Trail and Elastic expressions have been used for this animation](https://docs.mamoworld.com/iexpressions/assets/images/throw-aa6dde1338a1e90dfb607e876373294b.gif) For this animation we combined * the _Throw 2D with Walls_ iExpression for the motion * the [Trail iExpression](https://docs.mamoworld.com/iexpressions/path/trail) for the speed lines and * the [Elastic iExpression](https://docs.mamoworld.com/iexpressions/path/elastic) to deform the logo Instead of linking the trail expression directly to the logo, we linked it to a null layer with the same position as the logo, but no rotation. That way the trails follow the position, but not the rotation. We also applied the [Basic Wiggle iExpression](https://docs.mamoworld.com/iexpressions/wiggles/wiggle) to this null to wiggle the speed lines a bit. ![Bouncing Text in After Effects with expressions](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsthrow_preview-bb161ee292833a77fdaf3a2838ceb039.gif) Here we used the _Throw 2D_ iExpression to drop the "Heavy" text on the ground and the _Throw 2D with Walls_ to throw the "Light" text. For the heavy text, we lowered the _Elastic Bounce_ parameter from the default of 50% to only 20% such that the object feels as if it has more weight. We also converted the texts to shapes and applied the [Elastic Path](https://docs.mamoworld.com/iexpressions/path/elastic) iExpression to deform the texts based on their movement. For the entire animation we just needed three keyframes! One for the start location of the heavy text and two for throwing the light text. All other movement and deformation is entirely derived from those three keyframes by the expressions. Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/physics-simulations/throw-2d3d/#example) --- # Average Link | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/average-link/#) Average Link ============ ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-11_11.42.56-c08b7922ce82e46e1719ede49ab795f4.png) This iExpression links a 1D, 2D or 3D property to the average of two other properties. Average means that the property is always in the middle of the two linked properties. This is, for example, useful to average two trackpoints to get a more precise and robust tracking result. You can also compute weighted averages where one of the two points has a stronger influence than the other by using the 'balance' parameter. Download at aescripts.com --- # Random Letter Wipe | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#) Random Letter Wipe ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/random_letter_wipe_0-f1e36cdc12d0cc6d4cf4647b8e7d71e9.png) Creates a transition from one text to another one by replacing the first text letter by letter with quickly changing random letters that finally become the second text. This iExpression is applied to the source text property of a text layer. Create for each text a keyframe and the iExpression computes automatically the transition between the keyframes. If some text should remain unchanged for some time, simply create two keyframes with the same text at the beginning and end of this region. ![](https://docs.mamoworld.com/iexpressions/assets/images/text_transition_random_letter_wipe-2fe637209bc88d33dca2f4a6e7cd1245.gif) * ##### Random String Width[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#random-string-width "Direct link to heading") How many letters are replaced by random letters in parallel. * ##### Random Letter Duration[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#random-letter-duration "Direct link to heading") For how many frames each single random letter stays until it is replaced by a new one. * ##### Direction[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#direction "Direct link to heading") the order in which the letters are replaced. * ##### Align[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#align "Direct link to heading") if the old and new text have different length, you determine here, how they are layed on top of another. * ##### Alphabet[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#alphabet "Direct link to heading") ##### Alphabet[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#alphabet-1 "Direct link to heading") which symbols to use for the random letters (input = letters of the text itself, binary e.g. 100101010, numbers e.g. 9873548923, hex e.g. 19af21, HEX z.B. 19AF21, letters e.g. asfgdsdfg, LeTTers e.g. AlfDfaSA; LETTERS e.g. AGUAFZTCTAS) ##### Custom Alphabet[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#custom-alphabet "Direct link to heading") Those characters are used, when the alphabet 'Custom' is choosen. If letters occur more than once in the alphabet, they are used more frequently, e.g. for 'aaabc' the letter 'a' occurs 3 times as often in the random text as 'b' or 'c'. ##### Use Spaces[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#use-spaces "Direct link to heading") With this option the generated text also contains empty spaces. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#random-seed "Direct link to heading") For each number, the random generator produces different results. If you have chosen "random" for Direction, you can try different numbers here to get different random directions. ##### Change for each Layer[​](https://docs.mamoworld.com/iexpressions/source-text/random-letter-wipe/#change-for-each-layer "Direct link to heading") With this option you get a different random values for each layer, if you apply the iExpression to several layers simultaneously Download at aescripts.com --- # Repeater | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/repeater/#) On this page Repeater ======== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-21_09.29.39-fbd84c18d7b24109e557fce483396167.png) Concatenates several copies of a shape into a single new shape. It also offers options to scale and bend the copies successively. If you keyframe a path and apply this expression to it, you can create complex path animations by simply keyframing a tiny source path and repeating it with the expression. **Difference to normal Shape Repeater** The repeater that ins built-in to After Effects shape layers creates multiple copies of a shape. In contrast to that, this expressions-based repeater always creates a single shape by concatenating all copies into a single line. This is very useful to create repetitive, complex shapes. You can continue a simple arc into a spiral, for example, or a single wave into a longer wave shape. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/repeater/#examples "Direct link to heading") ![Shape Repeater Explanation After Effects](https://docs.mamoworld.com/iexpressions/assets/images/wave_shape_comparison-57b2c2f0286bd8a27372b1d95f495d69.gif) We keyframed the shape on the left, linked it in the repeater expression and then applied the expression to a duplicate of the path to get the result on the right. The advantage of working with a duplicate is that you can still modify the original path and get an instant preview of the duplicator result. We also linked the scale and #copies parameters of the expression to a slider such that we could animated them over time, too. ![Shape Repeat expression for After Effects Example](https://docs.mamoworld.com/iexpressions/assets/images/crazy_shape_comparison-35eae5a861f7fe5e99748c316de85f11.gif) The approach here was the same as in the first example. Since our shape has corner points at the end instead of smooth bezier handles (convert vertex tool), the resulting shape has pointed corners where one copy is appended to the next one. To create more chaos, we applied two iterations of the expression: Again, we worked with two copies of the path, where the original path is linked in the expression and then applied to the duplicate. But this time we applied the expression with slightly different scale and bend settings to the original path, too. That way first the repeater on the original path creates a shape of successively smaller copies of the original and then the duplicate takes this result and applies a second round of repetition. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/repeater/#examples) --- # Separate Smoother 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d/#) Separate Smoother 2D ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/separate_smoother_2d-034e9bf11d241c7e8dadede25b079468.png) This iExpression is a variant of the Basic Smoother iExpression which is dedicated to 2D properties and allows to control the smoothing in x and y dimension separately. * ##### Width[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d/#width "Direct link to heading") determines the amount of smoothness. The larger the width, the more smooth is the result - a value of 2 means, for example, that the values within a window of 2 seconds are taken into consideration to smooth each value. * ##### Samples[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d/#samples "Direct link to heading") determines the accuracy of the smoothing. The more samples the more accurate is the result. For optimal quality it is recommendet to use a value that is 25 or up to 50 times larger than the value of "Width". * ##### Dimensions[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d/#dimensions "Direct link to heading") ##### Smooth X[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d/#smooth-x "Direct link to heading") turns smoothing for X dimension on and off ##### Smooth Y[​](https://docs.mamoworld.com/iexpressions/movement-modifier/separate-smoother-2d/#smooth-y "Direct link to heading") turns smoothing for Y dimension on and off Download at aescripts.com --- # Sine Wave | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/sine-wave/#) On this page Sine Wave ========= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-18_08.40.58-05d1f97a4c6bb5ebfcfddae08d735dad.png) Creates a sine wave shape. The shape can animate, be faded in and out and also be bended along another path. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/sine-wave/#examples "Direct link to heading") ![Sine Wave expression for After Effects](https://docs.mamoworld.com/iexpressions/assets/images/sine_wave-dbb0658723b623c0ec5f465b447933fa.gif) In this example, we bended the sine wave along a path and linked the start (%) and end (%) parameters of that link to sliders, such that we could animate them over time. In total we have three sine waves here (orange, light green and dark green). They have very similar parameter settings and just vary in the stroke size, wave amplitude and wave offset. ##### tip When bending waves along a path, set the #points parameter to a low value - otherwise it will become very slow. In this case, all three waves have 20 point. If you enable the Smooth parameter, you get nice curves with few points. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/sine-wave/#examples) --- # Increment at Marker 1D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#) On this page Increment at Marker 1D ====================== ![](https://docs.mamoworld.com/iexpressions/assets/images/increment_at_marker_1d-95e2a628d1953df317cc85a919af788d.png) With this iExpression the property is automatically increased (or decreased) by some fixed amount at each marker. In addition, you can overwrite this behavior at individual markers using the marker comments. If a marker has "-5" as comment, for example, the value is decreased by 5 at this particular marker. With a comment "5s" or "20 frames" also the fade in duration for this marker can be changed to 5 seconds or 20 frames, respectively. * ##### Increment at Marker[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#increment-at-marker "Direct link to heading") How much the value should increment at each marker (if the marker has no comment specifying a different value). * ##### Frame Offset[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#frame-offset "Direct link to heading") for -2, the modification already starts 2 frames before each marker. * ##### Marker Source[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#marker-source "Direct link to heading") ##### Use Markers from[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#use-markers-from "Direct link to heading") whether the iExpression should use the markers of the layer where it is applied to, the composition markers, or the markers from another layer ##### Other Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#other-layer-name-or-index "Direct link to heading") is the name or index of the layer whose marksers should be considered (if "Use Markers from" is set to "other layer"). * ##### Fade In[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#fade-in "Direct link to heading") ##### Fade In Duration[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#fade-in-duration "Direct link to heading") determines the number of frames over which the change at each marker is faded in. ##### Fade Type[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#fade-type "Direct link to heading") determines whether the change at the markers fades in in a linear or exponential fashion. Download at aescripts.com How to create a countdown text that changes at each marker?[​](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#how-to-create-a-countdown-text-that-changes-at-each-marker "Direct link to heading") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ##### tip This was a question we got from a customer. With iExpressions, the answer is surprisingly easy: 1. create a slider control on some null layer 2. set the slider to the start value you want to have 3. apply the **Increment At Marker 1D iExpression** to the slider. If you want to count up, leave the values at default, if you want to count down, set the "increment at marker" value of the expression to -1 before applying it. 4. link the text to the slider value with an expression (just using the pick-whip) 5. add markers to the null layer (not to the comp or any other layers). At each marker the number will change, depending on the value you've set at "increment at marker" (i.e. do a +1 or -1, for example) * [How to create a countdown text that changes at each marker?](https://docs.mamoworld.com/iexpressions/movement-modifier/increment-marker-1d/#how-to-create-a-countdown-text-that-changes-at-each-marker) --- # Pie Slice | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/pie-slice/#) Pie Slice ========= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-17_15.06.37-7e3588ec6d332752ddd6439221c93495.png) Creates a pie shape as needed for pie charts. With the 'Arc Only' option you can also use it to create arcs of a circle This expression creates a single, simple path for the shape. No effects, no merge path or other complex constructs - just a single, clean and easy to use shape. To animate the parameters, just link them to sliders and then keyframe them as usual. Download at aescripts.com --- # Unfold | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/unfold/#) On this page Unfold ====== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-21_16.01.42-cb76d1722f3157d50ddfc5e324d60523.png) Unfolds a shape step by step to a straight line. To animate a unfolding (or folding) of your paths, simply link the "completion" parameter to a slider and keyframe it from 0 to 100 (or 100 to 0). With the "Gradually" parameter you can control is the entire shape should unfold at once or make the process directional and start the folding on one end of the path. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/unfold/#examples "Direct link to heading") ![Example Notebook: unfold shape in After Effects with expression](https://docs.mamoworld.com/iexpressions/assets/images/single_line_notebook_optimized-7483c73204e6645feefd86b74dd0ff85.gif) ![Example Text: unfold shape in After Effects with expression](https://docs.mamoworld.com/iexpressions/assets/images/single_line_text_optimized-9be877d82a5ee5880174b605ae96240c.gif) ![Example NY Skyline: unfold shape in After Effects with expression](https://docs.mamoworld.com/iexpressions/assets/images/single_line_skyline_optimized-524a9dd48629e01e263860e60ae3e232.gif) ![Example Nulti Line Text: unfold shape in After Effects with expression](https://docs.mamoworld.com/iexpressions/assets/images/multi_line_text_optimized-0c8e91f124f71d8075b8f2a7fd28712b.gif) Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/unfold/#examples) --- # Blockify | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/path/blockify/#) On this page Blockify ======== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-21_12.46.09-58d832b92bfb00b3a658d533954b864e.png) Approximates the shape with horizontal and vertical lines only to create a blocky look. Link the #Points and the Noise Offset parameter to a slider and keyframe them to animate the shape over time. The Blockify expression creates results similar to the Mosaic effect of After Effects, but operates on shape paths instead of pixels. So the result is still a path and not an image. ### Examples[​](https://docs.mamoworld.com/iexpressions/path/blockify/#examples "Direct link to heading") ![blockify iExpression](https://docs.mamoworld.com/iexpressions/assets/images/blockify-972ae4c60969187ab0b230630d74d670.gif) In this example we animated some random paths on a shape layer using the trim path modifier. Then we applied the _Blockify iExpression_ to it and keyframed the noise to change the blocks over time. ![Blockify expression for Adobe After Effects](https://docs.mamoworld.com/iexpressions/assets/images/blockify_preview-feead40a02b3198eff072a86bad275d9.gif) Here we applied the Blockify iExpression to our iExpressions icon shape and animated the number of points and the noise offset parameters (by linking them to sliders). By increasing the number of points over time, the shape becomes more and more accurate. Due to the noise, the blocky vary in size and due to the noise offset, they travel along the shape. Download at aescripts.com * [Examples](https://docs.mamoworld.com/iexpressions/path/blockify/#examples) --- # Evolution | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/evolution/#) Evolution ========= ![](https://docs.mamoworld.com/iexpressions/assets/images/evolution_0-fa9a07d7223a1e1cfae4b44f7fcefd71.png) Creates a transition from one text to another one by step by step rewriting the first text in the second one. During the rewrite, as many characters as possible are preserved, i.e. as few letters as possible are deleted or inserted. This iExpression is applied to the source text property of a text layer. Create for each text a keyframe and the iExpression computes automatically the transition between the keyframes. If some text should remain unchanged for some time, simply create two keyframes with the same text at the beginning and end of this region. ![Text Transition Evolution](https://docs.mamoworld.com/iexpressions/assets/images/text_transition_evolution-a697c88a9e05f69885ac8cea4724a345.gif) * ##### Edit Direction[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#edit-direction "Direct link to heading") in which direction the text is rewritten * ##### Edit Order[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#edit-order "Direct link to heading") For "replace - delete - insert" the rewrite process first performs all replacements of letters, then all deletions and finally all insertions. * ##### Allow Replace[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#allow-replace "Direct link to heading") when disabled, letters can only be deleted and inserted, but not be replaced by other letters. * ##### Advanced[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#advanced "Direct link to heading") ##### Output[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#output "Direct link to heading") "alignment" produces a status output that explains which letter of the first text is rewritten to which letter of the second text. ##### Force Match[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#force-match "Direct link to heading") Allows to fine-tune which letter of the first text becomes which letter of the second text. The value \[10,5\] enforces, for example, that the 10th letter of the first text becomes the 5th letter of the second text. For \[0,0\] the option is ignored. ##### Force Match[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#force-match-1 "Direct link to heading") Allows to fine-tune which letter of the first text becomes which letter of the second text. The value \[10,5\] enforces, for example, that the 10th letter of the first text becomes the 5th letter of the second text. For \[0,0\] the option is ignored. ##### Force Match[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#force-match-2 "Direct link to heading") Allows to fine-tune which letter of the first text becomes which letter of the second text. The value \[10,5\] enforces, for example, that the 10th letter of the first text becomes the 5th letter of the second text. For \[0,0\] the option is ignored. ##### Force Match Lines[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#force-match-lines "Direct link to heading") for mutiline texts: considers each line separately, i.e. the first line of the first text becomes the first line of the second text and so on. ATTENTION: deaktivating this option might cause the iExpression to become very slow. ##### Scoring[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#scoring "Direct link to heading") ##### Insert/Delete Cost[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#insertdelete-cost "Direct link to heading") Imagine you have to rewrite a text into another text and each insertion, deletion or replacement of a letter costs something. That's exactly what this iExpression does - and it does it in the way that costs as little as possible. Here you can specify how much an insertion or deletion of a letter costs. The more expensive it is, the more the iExpression will try to avoid insertions and deletions and use replacement operations instead. ##### Replace Cost[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#replace-cost "Direct link to heading") Imagine you have to rewrite a text into another text and each insertion, deletion or replacement of a letter costs something. That's exactly what this iExpression does - and it does it in the way that costs as little as possible. Here you can specify how much the replacement of a letter costs. The more expensive it is, the more the iExpression will try to avoid replacements and use insertions or deletions instead. ##### Word Boundary Match Bonus[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#word-boundary-match-bonus "Direct link to heading") As described at the parameters "Insert/Delete Cost" and "Replace Cost", this iExpression works with a cost model and tries to rewrite a text "as cheap as possible" into another text. Here you can specify that the iExpression may subtract a bonus from the costs, whenever it manages to preserve a space character that it does not delete or overwrite. The higher (i.e. more negative) this cost bonus is, the more the iExpression will try to preserve spaces, e.g. it will try to turn each single word of the first text into a single word of the second text instead of, for example, merging two words of the first text into one word of the second text. ##### Line Boundary Match Bonus[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#line-boundary-match-bonus "Direct link to heading") This option works exactly like "Word Boundary Match Bonus" but does not give a bonus for preserved space symbols, but for preserved line beaks. This is only relevant if "Force Match Lines" is disabled. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#random-seed "Direct link to heading") For each number, the random generator produces different results. If you have chosen "random" for Edit Direction, you can try different numbers here to get different random directions. ##### Change for each Layer[​](https://docs.mamoworld.com/iexpressions/source-text/evolution/#change-for-each-layer "Direct link to heading") With this option, for Edit Direction = "random" you get for each layer a different random direction. Deactivate this option, if the randomness should behave exactly identical on all duplicates of a layer. Download at aescripts.com --- # Random Text Template | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#) Random Text Template ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/random_text_template_0-b8ada93dbbe9569126986f30045eb296.png) ![](https://docs.mamoworld.com/iexpressions/assets/images/random_text_template-34150ac8fe38e1da6d5e4c25496623cf.gif) This iExpression replaces the source text of a text layer by a random text whose structure can be specified via a template. The template consists of fixed parts of the text as well as the place holders "%L", "%l", "%d", and "%b". The fixed parts remain unchanged in the generated random text whereas each occurence of %L is replaced by a random upper case letter, each occurrence of %l by a random lower case letter, each occurence of %n by a random number (0 to 9) and each occurrence of %b by a random binary number (0 or 1). Example: The template "Coordinates: (%n%n,%n%n)" can generate random texts like "Coordinates: (15,72)" or "Coordinates: (49,14)". * ##### Template[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#template "Direct link to heading") is the template which the random text is based on. The random text is obtained from the template by replacing any occurrence of %L,%l,%b,%n by some of the below specified characters. The remaining parts of the template are kept unchanged. * ##### Speed[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#speed "Direct link to heading") at a value of 5, every 5 frames a new random text is generated. Set this to 0 if you don't want the text to change at all. * ##### Replacement Characters[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#replacement-characters "Direct link to heading") ##### replace %L by[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#replace-l-by "Direct link to heading") specifies by which letters any occurence of %L in the template will be replaced. Among the letters specified here, for each %L one is randomly chosen. ##### replace %l by[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#replace-l-by-1 "Direct link to heading") specifies by which letters any occurence of %l in the template will be replaced. Among the letters specified here, for each %l one is randomly chosen. ##### replace %n by[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#replace-n-by "Direct link to heading") specifies by which letters any occurence of %n in the template will be replaced. Among the letters specified here, for each %n one is randomly chosen. ##### replace %b by[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#replace-b-by "Direct link to heading") specifies by which letters any occurence of %b in the template will be replaced. Among the letters specified here, for each %b one is randomly chosen. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#random-seed "Direct link to heading") Change this number arbitrarily to get another random text. For each number a different random text is generated. ##### Change for each Layer[​](https://docs.mamoworld.com/iexpressions/source-text/random-text-template/#change-for-each-layer "Direct link to heading") With this option you get a different random text for each layer, if you apply the iExpression to several layers simultaneously Download at aescripts.com --- # Text Link | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/text-link/#) Text Link ========= ![]() This iExpression links a source text property of a text layer to the source text property of another text layer. * ##### Link to[​](https://docs.mamoworld.com/iexpressions/source-text/text-link/#link-to "Direct link to heading") Don't put a text here. Use the link button to link the source text of your property to some other source text property. Download at aescripts.com --- # Counter Date | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#) Counter Date ============ ![](https://docs.mamoworld.com/iexpressions/assets/images/counter_date_0-a1fa5b31a7b6f440c1070d71a1fdbc40.png) With this iExpression you can create a date string and animate it over time. The date can be formatted freely. Simply link "Link to Counter Value" to a slider control and keyframe it to values between 0 and 100. Then you specify which date correpsonds to the value 0 and which one to 100. The iExpression figures out the date for all other values accordingly. ![Counter Date expression](https://docs.mamoworld.com/iexpressions/assets/images/counter_date-8d15e1029dc81ed9def3bec85b111b77.gif) * ##### Link to Counter Value[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#link-to-counter-value "Direct link to heading") link this to a slider control which you can keyframe to control the date shown by the counter * ##### Date for Value 0[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#date-for-value-0 "Direct link to heading") date that should be shown when the linked slider control has the value 0. Enter the date with month names as words,e.g. "6 January 1972" or "Nov 23 2012" * ##### Date for Value 100[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#date-for-value-100 "Direct link to heading") date that should be shown when the linked slider control has the value 100. Enter the date with month names as words,e.g. "6 January 1972" or "Nov 23 2012" * ##### Date Format[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#date-format "Direct link to heading") ##### Date Format[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#date-format-1 "Direct link to heading") determines, how exactly the date should look like. When the date string is created, this text is taken and symbols %W, %D, %D and %Y are replaced by the day of the week, day of the month, month, and year, respectively. You can arrange the symbols freely (and also leave some out if you want, for example, no weekday). Inbetween the symbols you can add arbitrary other text. ##### Year Format (%Y)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#year-format-y "Direct link to heading") how the year is formatted ##### Month Format (%M)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#month-format-m "Direct link to heading") how the month is formatted ##### Day Format (%D)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#day-format-d "Direct link to heading") how the day of the month is formatted ##### Weekday Format (%W)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#weekday-format-w "Direct link to heading") how the weekday is formatted ##### Month Names[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#month-names "Direct link to heading") Here you can translate the name of each month into your language ##### Weekday Names[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#weekday-names "Direct link to heading") Here you can translate each day of the week into your language * ##### Surrounding Text[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#surrounding-text "Direct link to heading") ##### Text Before[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#text-before "Direct link to heading") an optional text that is inserted before the date itself ##### Text After[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date/#text-after "Direct link to heading") an optional text that is inserted after the date itself Download at aescripts.com --- # Vertical Align Text | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text/#) Vertical Align Text =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/vertical_align_text_0-750fc2a3e1693ae46f2955a9a6bdd147.png) This iExpression offers a simple possibility to align a text vertically (top/middle/bottom) also if the text changes over time. This is useful, if you have keyframes on the source text or if you want to replace the text - for example using scripts - and don't want to realign it manually each time. To use the iExpression, you need to specify a maximum number of lines and the expression appends empty lines to the top and bottom of the text until this maximum number of lines is reached. By this, your text has always the same numer of lines and hence the same height, no matter what size the actual content is. Depending on the options you set, the original text is placed in the middle (adding the same number of empty lines to top and bottom), at the top (adding all empty lines at the bottom), or at the bottom (adding all empty lines at the top). * ##### Number of Lines[​](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text/#number-of-lines "Direct link to heading") The maximum number of lines for the text. (Or to how many lines the text should be extended with empty lines). * ##### Alignment[​](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text/#alignment "Direct link to heading") How the text should be aligned: center (higher): text in the middle, in case of doubt one more empty line at the bottom than at the top center (lower): text in the middle, in case of doubt one more empty line at the top than at the bottom top: text placed at the top, all empty lines below it bottom: text placed at the bottm, all empty lines above it * ##### Empty Lines Content[​](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text/#empty-lines-content "Direct link to heading") Leave empty normally. For testing purposes, but here any letter you like to visualize the empty lines inserted by the iExpression. * ##### Longer Texts[​](https://docs.mamoworld.com/iexpressions/source-text/vertical-align-text/#longer-texts "Direct link to heading") What to do when the actual text has more lines than specified in 'Number of Lines' Download at aescripts.com --- # Counter Numbers | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#) Counter Numbers =============== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2020-01-07_15.34.00-9d7a25c20d09c4db8db47af08b738154.png) This iExpression creates a text that can be used as a counter to create, for example, a countdown. The iExpression has some similarities with the effect Numbers, but offers several advantages: 1) numbers larger than 30 000 can be created 2) the decimal marker symbol can be configured freely 3) an optional thousands separator symbol can group the number into blocks of three digits 4) you can add text before and after the actual number 5) it works directly with the source text property to text layers instead of an effect on a solid layer. ![](https://docs.mamoworld.com/iexpressions/assets/images/counter_numbers-73a4fba60a343c4afafc49102cf9fce4.gif) * ##### Slider[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#slider "Direct link to heading") link this to a slider control which you can keyframe to control the number shown by the counter * ##### Multiply Counter Value With[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#multiply-counter-value-with "Direct link to heading") normally 1. If you enter, for example, 1000 the number shown by the counter is 1000 times as large as the value of your linked slider. This is useful if you need to create numbers that are larger than the value range of slider controls. * ##### Decimal Places[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#decimal-places "Direct link to heading") how many fractional digits of the number are shown * ##### Leading Zeros[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#leading-zeros "Direct link to heading") for 5, for example, the number is extended with zeros until it contains 5 number of places before the decimal separator, i.e. 312 would become 00312 * ##### Separator Symbols[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#separator-symbols "Direct link to heading") ##### Decimal Mark Symbol[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#decimal-mark-symbol "Direct link to heading") symbol used to separate the whole part from the fractional part of a number (usually . or ,) ##### Thousands Separator Symbol[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#thousands-separator-symbol "Direct link to heading") For ease of reading, numbers with many digits may be divided into groups of three digits using a delimiter. Enter here the delimiter symbol (e.g. a space, a point or nothing at all) * ##### Surrounding Text[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#surrounding-text "Direct link to heading") ##### Text Before[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#text-before "Direct link to heading") an optional text that is inserted before the counter itself ##### Text After[​](https://docs.mamoworld.com/iexpressions/source-text/counter-numbers/#text-after "Direct link to heading") an optional text that is inserted after the counter itself Download at aescripts.com --- # News Ticker | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/news-ticker/#) News Ticker =========== ![](https://docs.mamoworld.com/iexpressions/assets/images/news_ticker-1097bfcfff9c25be42848a1255129752.png) This iExpression makes the source text of a text layer scroll through the screen from left to right (or right to left). If the text consists of more than one row, each row is interpreted as a separate news and between the news a customizable separator text can be inserted. * ##### Separator[​](https://docs.mamoworld.com/iexpressions/source-text/news-ticker/#separator "Direct link to heading") is a string that is inserted between the different lines of the original text (i.e. the different news messages). * ##### Speed[​](https://docs.mamoworld.com/iexpressions/source-text/news-ticker/#speed "Direct link to heading") determines how fast the text moves. A value of 10 means every minute 10 new letters become visible. For negative values the text moves from left to right otherwise it moves from right to left. * ##### Length[​](https://docs.mamoworld.com/iexpressions/source-text/news-ticker/#length "Direct link to heading") How long the visible text should be (number of characters). To make the entire text visible, you can also set the length to 0. * ##### Offset[​](https://docs.mamoworld.com/iexpressions/source-text/news-ticker/#offset "Direct link to heading") allows to start the news ticker not with the beginning of the first news message but at any position in the text. Download at aescripts.com --- # Counter Time | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#) Counter Time ============ ![](https://docs.mamoworld.com/iexpressions/assets/images/counter_time_0-8a8aa8bc472fbc20e3c2bef64dd3472f.png) With this iExpression you can create a time string and animate it over time. The date can be formatted freely and additional text can be added before and after the time itself. Simply link "Link to Counter Value" to a slider control and keyframe it to values between 0 and 100. Then you specify which time correpsonds to the value 0 and which one to 100. The iExpression figures out the time for all other values accordingly. ![](https://docs.mamoworld.com/iexpressions/assets/images/counter_time-46d684f7c8f72155e854c1292bf08910.gif) * ##### Link to Counter Value[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#link-to-counter-value "Direct link to heading") link this to a slider control which you can keyframe to control the time shown by the counter * ##### Time for Value 0 (hⓂ️s:ms)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#time-for-value-0-h%E2%93%9C%EF%B8%8Fsms "Direct link to heading") time that should be shown when the linked slider control has the value 0. Format - hours:minutes:seconds:milliseconds e.g. 3:20:12:344 = 3 hours, 20 min, 12 sec und 344 ms 10:34:12 = 10 hours, 34 min and 12 sec 10 = 10 hours * ##### Time for Value 100 (hⓂ️s:ms)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#time-for-value-100-h%E2%93%9C%EF%B8%8Fsms "Direct link to heading") time that should be shown when the linked slider control has the value 100. Format - hours:minutes:seconds:milliseconds e.g. 3:20:12:344 = 3 hours, 20 min, 12 sec and 344 ms 10:34:12 = 10 hours, 34 min and 12 sec 10 = 10 hours * ##### Days between 0 and 100[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#days-between-0-and-100 "Direct link to heading") allows that the start and end time are not on the same day. The counter then does not directly count from the start to the end time, but completes several 24 hours loops before arriving at the end time. * ##### Time Format[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#time-format "Direct link to heading") ##### Time Format[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#time-format-1 "Direct link to heading") determines, how exactly the time should look like. When the time string is created, this text is taken and symbols %h, %m, %s and %l are replaced by hours, minutes, seconds and milliseconds of the time, respecively. Additionaly %a is available to show am or pm. You can arrange the symbols freely (and also leave some out if you want, for example, no milliseconds). Inbetween the symbols you can add arbitrary other text. ##### Hour Format (%h)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#hour-format-h "Direct link to heading") how the hours are formatted ##### Minutes Format (%m)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#minutes-format-m "Direct link to heading") how the minutes are formatted ##### Seconds Format (%s)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#seconds-format-s "Direct link to heading") how the seconds are formatted ##### Milliseconds Format (%l)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#milliseconds-format-l "Direct link to heading") how the milliseconds are formatted ##### am / pm Format (%a)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#am--pm-format-a "Direct link to heading") how the a.m. or p.m. string is formatted * ##### Surrounding Text[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#surrounding-text "Direct link to heading") ##### Text Before[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#text-before "Direct link to heading") an optional text that is inserted before the time itself ##### Text After[​](https://docs.mamoworld.com/iexpressions/source-text/counter-time/#text-after "Direct link to heading") an optional text that is inserted after the time itself Download at aescripts.com --- # Text Combiner | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/text-combiner/#) Text Combiner ============= ![](https://docs.mamoworld.com/iexpressions/assets/images/text_combiner_0-50de6a82de06e0d53785b3bca2e00f96.png) ![Text Combiner expression](https://docs.mamoworld.com/iexpressions/assets/images/text_combiner_0-7506441143d0c3c96842af8ab90256c3.gif) With this iExpression you can combine two texts (a foreground and a background text) by placing the first on top of the other (i.e. the foreground preplaces some part of the background text). With this, you can, for example, embed some message into a randomly generated text block, or can create more complex text blocks by placing one random text block on top of another one. * ##### Background Text Block[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner/#background-text-block "Direct link to heading") Link this variable to the source text of the text layer containing the background text block. * ##### Foreground Text[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner/#foreground-text "Direct link to heading") ##### Text[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner/#text "Direct link to heading") The forground text that should be placed on top of the background text block. Can also be linked to a multi-line text block. ##### Position[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner/#position "Direct link to heading") In which column and row of the background the foreground text is inserted. * ##### Space=Transparent[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner/#spacetransparent "Direct link to heading") With this option space characters in the foreground do not replace background characters. Download at aescripts.com --- # Scroll Text Terminal | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal/#) Scroll Text Terminal ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/scroll_text_terminal_0-4a74f03cdd81fe86601ba7918cb0867e.png) This iExpression can be used to simulate the output of a computer terminal. The text is faded it character by character and scrolls such that only a given number of lines is visible. Also, a (optional) blinking cursor symbol is attached. * ##### Link to Completion[​](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal/#link-to-completion "Direct link to heading") How far the text is already scrolled (0 to 100%). Link it to a slider to keyframe it. * ##### Visible Lines[​](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal/#visible-lines "Direct link to heading") How many lines of text are visible simultaneously. * ##### Cursor[​](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal/#cursor "Direct link to heading") ##### Cursor Symbol[​](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal/#cursor-symbol "Direct link to heading") The caret symbol that is blinking at the end of the text. Empty for no caret. ##### Blink Duration[​](https://docs.mamoworld.com/iexpressions/source-text/scroll-text-terminal/#blink-duration "Direct link to heading") controls, how fast the cursor is blinking. 12 means it stays 12 frames visible and then 12 frames invisible. Download at aescripts.com --- # Distribute Text to Layers | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#) Distribute Text to Layers ========================= ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_text_to_layers_0-cc2eff5eeacc1f1fcf8865553172019e.png) This iExpression offers a simple possibility to distribute a text to several layers. Each single layer can contain one or several letters, words or lines of the original text. * ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#first-layer-name-or-index "Direct link to heading") the name or index of the first of the layers to which the text is distributed * ##### Source Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#source-layer-name-or-index "Direct link to heading") the name or index of the text layer that contains the text which should be distributed (leave empty to use the text of the layer itself - this also makes the iExpression faster) * ##### Split Into[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#split-into "Direct link to heading") whether each layer contains one letter, one word, or one line of the text * ##### Advanced[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#advanced "Direct link to heading") ##### Layer Order[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#layer-order "Direct link to heading") in which order the letters are distributed to the layers ##### Letters/Words/Lines per Layer[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#letterswordslines-per-layer "Direct link to heading") How many letters/words/lines are on the same layer. ##### Identical Copies[​](https://docs.mamoworld.com/iexpressions/source-text/distribute-text-layers/#identical-copies "Direct link to heading") for 3, always three successive layers obtain the same text Download at aescripts.com --- # Counter Date and Time | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#) Counter Date and Time ===================== ![](https://docs.mamoworld.com/iexpressions/assets/images/counter_date_and_time_0-08af1145c11a080298fc3b98c7f2e22c.png) With this iExpression you can create a date string including time information and animate it over time. The date and time can be formatted freely. Simply link "Link to Counter Value" to a slider control and keyframe it to values between 0 and 100. Then you specify which date and time correpsonds to the value 0 and which one to 100. The iExpression figures out the date and time for all other values accordingly. ![Counter Date and Time expression](https://docs.mamoworld.com/iexpressions/assets/images/counter_date_and_time-815ddf942a429e2b558099a3904d8649.gif) * ##### Link to Counter Value[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#link-to-counter-value "Direct link to heading") link this to a slider control which you can keyframe to control the date (including the time) shown by the counter * ##### Date for Value 0[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#date-for-value-0 "Direct link to heading") ##### Date[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#date "Direct link to heading") date that should be shown when the linked slider control has the value 0. Enter the date with month names as words,e.g. "6 January 1972" or "Nov 23 2012" ##### Time (hⓂ️s:ms)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#time-h%E2%93%9C%EF%B8%8Fsms "Direct link to heading") time that should be shown when the linked slider control has the value 0. Format - hours:minutes:seconds:milliseconds e.g. 3:20:12:344 = 3 hours, 20 min, 12 sec und 344 ms 10:34:12 = 10 hours, 34 min and 12 sec 10 = 10 hours * ##### Date for Value 100[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#date-for-value-100 "Direct link to heading") ##### Date[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#date-1 "Direct link to heading") date that should be shown when the linked slider control has the value 100. Enter the date with month names as words,e.g. "6 January 1972" or "Nov 23 2012" ##### Time (hⓂ️s:ms)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#time-h%E2%93%9C%EF%B8%8Fsms-1 "Direct link to heading") time that should be shown when the linked slider control has the value 100. Format - hours:minutes:seconds:milliseconds e.g. 3:20:12:344 = 3 hours, 20 min, 12 sec and 344 ms 10:34:12 = 10 hours, 34 min and 12 sec 10 = 10 hours * ##### Date Format[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#date-format "Direct link to heading") ##### Date Format[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#date-format-1 "Direct link to heading") determines, how exactly the date should look like. When the date string is created, this text is taken and symbols %W, %D, %D and %Y are replaced by the day of the week, day of the month, month, and year, respectively. You can arrange the symbols freely (and also leave some out if you want, for example, no weekday). Inbetween the symbols you can add arbitrary other text. ##### Year Format (%Y)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#year-format-y "Direct link to heading") how the year is formatted ##### Month Format (%M)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#month-format-m "Direct link to heading") how the month is formatted ##### Day Format (%D)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#day-format-d "Direct link to heading") how the day of the month is formatted ##### Weekday Format (%W)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#weekday-format-w "Direct link to heading") how the weekday is formatted ##### Month Names[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#month-names "Direct link to heading") Here you can translate the name of each month into your language ##### Weekday Names[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#weekday-names "Direct link to heading") Here you can translate each day of the week into your language ##### Hour Format (%h)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#hour-format-h "Direct link to heading") how the hours are formatted ##### Minutes Format (%m)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#minutes-format-m "Direct link to heading") how the minutes are formatted ##### Seconds Format (%s)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#seconds-format-s "Direct link to heading") how the seconds are formatted ##### Milliseconds Format (%l)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#milliseconds-format-l "Direct link to heading") how the milliseconds are formatted ##### am / pm Format (%a)[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#am--pm-format-a "Direct link to heading") how the a.m. or p.m. string is formatted * ##### Surrounding Text[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#surrounding-text "Direct link to heading") ##### Text Before[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#text-before "Direct link to heading") an optional text that is inserted before the date itself ##### Text After[​](https://docs.mamoworld.com/iexpressions/source-text/counter-date-and-time/#text-after "Direct link to heading") an optional text that is inserted after the date itself Download at aescripts.com --- # Linear Wipe | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe/#) Linear Wipe =========== ![](https://docs.mamoworld.com/iexpressions/assets/images/linear_wipe_0-328f23820b25ce2a3bba36d0be548961.png) Creates a transition from one text to another one by replacing the first text letter by letter with the second text. This iExpression is applied to the source text property of a text layer. Create for each text a keyframe and the iExpression computes automatically the transition between the keyframes. If some text should remain unchanged for some time, simply create two keyframes with the same text at the beginning and end of this region. ![Linear Wipe Text Transition](https://docs.mamoworld.com/iexpressions/assets/images/text_transition_linear_wipe-b87a48fff5493db9b884bd58cc81a35f.gif) * ##### Direction[​](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe/#direction "Direct link to heading") the order in which the letters are replaced. * ##### Align[​](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe/#align "Direct link to heading") if the old and new text have different length, you determine here, how they are layed on top of another. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe/#random-seed "Direct link to heading") For each number, the random generator produces different results. If you have chosen "random" for Direction, you can try different numbers here to get different random directions. ##### Change for each Layer[​](https://docs.mamoworld.com/iexpressions/source-text/linear-wipe/#change-for-each-layer "Direct link to heading") With this option you get a different random values for each layer, if you apply the iExpression to several layers simultaneously Download at aescripts.com --- # Random Text | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/random-text/#) On this page Random Text =========== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-13_10.54.51-0cd1d78ba23b1a716d50c6a09562325a.png) iExpressions contains various different Random Text iExpressions. These iExpression replace the source text of a text layer by a randomly generated text block of a given number of rows and columns (or a single line for the expressions without the word 'Block' in their name). Different kinds of text can be generated, e.g. binary numbers, numbers, or random strings using the letters of the alphabet. ### Variants[​](https://docs.mamoworld.com/iexpressions/source-text/random-text/#variants "Direct link to heading") ![Mutating Random Text Block created in After Effects with Expressions]() #### Random Text Block Mutating[​](https://docs.mamoworld.com/iexpressions/source-text/random-text/#random-text-block-mutating "Direct link to heading") This random text mutates over time, i.e. individual letters change spontaneously from time to time. The created animations are loopable, i.e. after a given number of frames, the text is again the same as it was at the first frame. ![Scrolling Random Text Block created in After Effects with Expressions](https://docs.mamoworld.com/iexpressions/assets/images/random_text_block_shifting-01f8113603841fc60e77f90d1bb55afd.gif) #### Random Text Block Shifting[​](https://docs.mamoworld.com/iexpressions/source-text/random-text/#random-text-block-shifting "Direct link to heading") The _Random Text Block Shifting_ allows to scroll though the text from left to right, up, down or in any other direction. ![Simple Random Text Block created in After Effects with Expressions](https://docs.mamoworld.com/iexpressions/assets/images/random_text_block_simple-8b1aa1533a2e43e9dd8d09f14b4ea722.gif) #### Random Text Block Simple[​](https://docs.mamoworld.com/iexpressions/source-text/random-text/#random-text-block-simple "Direct link to heading") The _Random Text Block Simple_ replaces all letters at once every few frames (as specified in the _speed_ parameter). If you set the _speed_ to zero, it does not change at all. It computes faster than the other text blocks, so best use this variant if you don't need the text to change over time. #### Single Line Variants[​](https://docs.mamoworld.com/iexpressions/source-text/random-text/#single-line-variants "Direct link to heading") For each _Random Text Block_ expression there also exists a corresponding expression without _Block_ in the name. If you just need a single line of text best use these single line variants, to get optimal performance. ![Line of Random Text created with After Effects expressions](https://docs.mamoworld.com/iexpressions/assets/images/random_text_shifting-e582365c50e2705812a0ac5d2d4b471b.gif) Download at aescripts.com * [Variants](https://docs.mamoworld.com/iexpressions/source-text/random-text/#variants) --- # Upper and Lower Case | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/upper-and-lower-case/#) Upper and Lower Case ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/upper_and_lower_case_0-50d5751634d82790569c47cb4eb6c484.png) This iExpression offers an easy way to change a text to upper case or lower case. * ##### Operation[​](https://docs.mamoworld.com/iexpressions/source-text/upper-and-lower-case/#operation "Direct link to heading") how to change the text: everything lower case, everything upper case, only first letter of text upper case, or only first letter of each word upper case Download at aescripts.com --- # Appear Disappear per Character | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character/#) Appear Disappear per Character ============================== ![](https://docs.mamoworld.com/iexpressions/assets/images/appear_disappear_per_character_0-363a0165b6168615bb72273c5aa33d48.png) Creates a transition from one text to another one by first deleting the first text letter by letter and then inserting the second text letter by letter. This iExpression is applied to the source text property of a text layer. Create for each text a keyframe and the iExpression computes automatically the transition between the keyframes. If some text should remain unchanged for some time, simply create two keyframes with the same text at the beginning and end of this region. ![Appear Disappear per Character](https://docs.mamoworld.com/iexpressions/assets/images/text_transition_appear_disappear-0b549d0d18bb53f23214df64c3f4952b.gif) * ##### Disappear Type[​](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character/#disappear-type "Direct link to heading") the order in which the letters of the old text disappear. * ##### Appear Type[​](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character/#appear-type "Direct link to heading") the order in which the letters of the new text appear. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character/#random-seed "Direct link to heading") For each number, the random generator produces different results. If you have chosen "random" for Appear Typ or Disappear Type, you can try different numbers here to get different random orders. ##### Change for each Layer[​](https://docs.mamoworld.com/iexpressions/source-text/appear-disappear-character/#change-for-each-layer "Direct link to heading") With this option you get a different random values for each layer, if you apply the iExpression to several layers simultaneously Download at aescripts.com --- # Pendulum | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#) Pendulum ======== ![](https://docs.mamoworld.com/iexpressions/assets/images/pendulum_0-e8d8797c05a3694789343acd1037bb86.png) With this iExpression you can rotate a layer such that it oscilates like a pendulum. The point around which the pendulum rotates is the anchor point of the layer. On 2D layers the iExpression can be applied to the rotation, on 3D layers it can be applied to the x rotation, y rotation or z rotation. * ##### Start Angle[​](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#start-angle "Direct link to heading") determines, in which angle (in degrees) the pendulum starts. * ##### Speed[​](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#speed "Direct link to heading") is the speed with which the pendulum starts oscillating. * ##### Decay[​](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#decay "Direct link to heading") determines how fast the movement decays. * ##### Simulation Start[​](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#simulation-start "Direct link to heading") ##### Start at[​](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#start-at "Direct link to heading") controls at which point in time the simulation starte (at the inpoint of the layer, an a manually chosen keyframe or at a manually chosen frame) ##### (Key) Frame No.[​](https://docs.mamoworld.com/iexpressions/physics-simulations/pendulum/#key-frame-no "Direct link to heading") is the frame or the keyframe (depending on the choice of "Start at" option) at which the pendulum simulation starts. When "Start at" has the value 'inpoint of layer' this option is ignored. Download at aescripts.com --- # Link Puppet Pin To Layer | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer/#) Link Puppet Pin To Layer ======================== ![](https://docs.mamoworld.com/iexpressions/assets/images/link_puppet_pin_to_layer_0-bcfebda729475a7aa29618cc6ad5a3a0.png) This expression links a pin from the puppet tool to a layer. The pin automatically follows all the animation of the layer. The layer may also have parents. * ##### Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer/#layer-name-or-index "Direct link to heading") Name or index of the layer to which the puppet pin should be connected. * ##### Advanced[​](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer/#advanced "Direct link to heading") ##### Layer Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer/#layer-space-offset "Direct link to heading") Offset, in case the pin should not be linked to the anchor point of the layer but to another point in the layer space. ##### Comp Space Offset[​](https://docs.mamoworld.com/iexpressions/physics-simulations/link-puppet-pin-layer/#comp-space-offset "Direct link to heading") Moves the link in composition space. For \[100,0\], for example, the pin is always 100 pixels right of the anchor point of the layer. In contrast to the Layer Space Offset, the Comp Space Offset is not affected by rotation or scale of the layer that the pin is linked to. Download at aescripts.com --- # Roller Coaster Master | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#) Roller Coaster Master ===================== ![](https://docs.mamoworld.com/iexpressions/assets/images/roller_coaster_master_0-8147afe62aa42451d19d00ce9663b4b2.png) This iExpressions lets a 2D or layer move like a roller coaster. To use it, proceed in the following steps. 1) Draw the roller coaster track as a mask path 2) Copy the mask path and paste it to the position property of the layer. Now the layer moves with a constant speed along the roller coaster track. Instead of using a mask path, you can also keyframe this motion by hand (e.g. when the desired path is 3D). You only need to make sure to make the keyframes "rove accross time" such that the layer moves with constant speed before the iExpression is applied. 3) Apply the iExpression to the position of the layer and adjust gravity, start position, and start speed to get the desider movement 4) Adjust max speed and friction to fine-tune the movement. You can also link those properties to sliders to animate them over time. This allows, for example to manually slow down the roller coaster at specific points in time. Now you have a single Layer that moves like a rollercoaster. If you want to animate several layers such that they behave like different wagons of the same roller coaster, you better do not apply the "Roller Coaster Master" to each of them, but better proceed as follows. I) Animate a dummy layer (e.g. a NULL layer or solid) as described in steps 1-4 II) Duplicate the dummy layer and set the "Output" property of the iExpression to "Master Data" in the first and to "Track Data" in the second copy. IV) Apply the "Roller Coaster Wagon" iExpression to position and rotation of each layer that should become a rollercoaster wagon. Link the parameters "Link To Master Data" and "Link To Track Data" to the positions of the respective layer from step II. Use the "Position Offset" parameter to position the different wagons. V) If a wagon is rotated upside down, set its (keyframe value of) rotation from 0 to 180. * ##### Start Position (Frame)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#start-position-frame "Direct link to heading") determines, at which position of the track the roller coaster starts. A value of 20 means, for example, that the roller coaster starts at the position where it has been at frame 20 before the iExpression was applied. * ##### Start Speed[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#start-speed "Direct link to heading") is the initial speed of the roller coaster * ##### Physics[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#physics "Direct link to heading") ##### Gravity[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#gravity "Direct link to heading") determines how fast the roller coaster accelerates when it moves downhill. ##### Friction[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#friction "Direct link to heading") Determines how well the wheels of the roller coaster are oiled. The higher the fricion, the more the roller coaster deaccelerates. You can also link this property to a slider. When you increase the friction at some point in time this is as if the pilot of the roller coaster would start breaking. ##### Max Speed[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#max-speed "Direct link to heading") is the maximum speed the roller coaster can have. Whenever the roller coaster tends to gets faster, it is automatically deaccelerated. You can also animate this value over time by linking it to a slider. By this you can, for example, stop the roller coaster at some point in time by keyframing the max speed at this point to 0. * ##### Output[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#output "Direct link to heading") ##### Output[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#output-1 "Direct link to heading") leave this value at 'preview' to see the movement. The other two alternatives are needed only in combination with the "Roller Coaster Wagon" iExpression. ##### Quality[​](https://docs.mamoworld.com/iexpressions/physics-simulations/roller-coaster-master/#quality "Direct link to heading") determines the quality of the physics simulation. The higher this value is the slower is the computation but the more realistic is the movement. Download at aescripts.com --- # Move In & Out 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#) Move In & Out 2D ================ ![](https://docs.mamoworld.com/iexpressions/assets/images/move_in_out_2d-d7ec775cbd4e3d5e1fed9e12175e40a1.png) With this iExpression you can move a 2D layer in and out of screen using a uniformly accelerated movement in any direction. At first sight the motion might seem similar to using 'easy ease' keyframes, but due to the uniform deceleration when moving in and uniform acceleration when moving out, the movement is slightly different and more natural. * ##### Acceleration[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#acceleration "Direct link to heading") determines how fast the object decelerates when moving in and accelerates when moving out. * ##### Angle In[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#angle-in "Direct link to heading") ![angle_move_in_out_2d.gif]() is the Angle (i.e. the direction) from which the object is moving into the frame. 0 = from the top, 90 = from right, 180 = from the bottom, 270 = from left * ##### Angle Out[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#angle-out "Direct link to heading") is the Angle (i.e. the direction) in which the object is moving out of the frame. 0 = move up, 90 = move to the right, 180 = move down, 270 = move to the left * ##### Move In Time[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#move-in-time "Direct link to heading") ##### Move In At[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#move-in-at "Direct link to heading") controls whether a movement into the frame should be enabled and if so at which point in time this movement should be finished (at the first keyframe, an a manually chosen keyframe, at a manually chosen frame, or no movement into the frame at all). ##### Move In (Key) Frame No.[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#move-in-key-frame-no "Direct link to heading") is the frame or the keyframe (depending on the choice of 'Move In At' option) at which the movement into the frame should be finished. If 'Move In At' has any other value than 'keyframe no.' or 'frame no.' this value is ignored. * ##### Move Out Time[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#move-out-time "Direct link to heading") ##### Move Out At[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#move-out-at "Direct link to heading") controls whether a movement out of the frame should be enabled and if so at which point in time this movement should start (at the first keyframe, an a manually chosen keyframe, at a manually chosen frame, or no movement out of the frame at all). ##### Move Out (Key) Frame No.[​](https://docs.mamoworld.com/iexpressions/physics-simulations/move-out-2d/#move-out-key-frame-no "Direct link to heading") is the frame or the keyframe (depending on the choice of 'Move Out At' option) at which the movement out of the frame starts. If 'Move Out At' has any other value than 'keyframe no.' or 'frame no.' this value is ignored. Download at aescripts.com --- # Elastic Connection | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/elastic-connection/#) Elastic Connection ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-11_11.41.24-19a55d941451f81dbe42b3e9e2880d3f.png) With this iExpression you can connect a property to another one in an elastic way. This is like a linking expression, but the property follows the linked property not directly, but in a delayed, elastic way. If you connect the position of a layer to the position of another layer, they behave as if they where connected by an elastic strap. However, you can also apply it to other properties - for example to make the scale of one layer follow the scale of another one in an elastic way. Note that the expression only acts in one direction: The property that you apply the expression to follows the linked one but not vice versa. Download at aescripts.com --- # Rotating Wheel Curvaceous Motion | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#) Rotating Wheel Curvaceous Motion ================================ ![]() This iExpression computes the rotation of a wheel based on the movement of the layer. This can be used to rotate the wheels or a car or any other kinds of wheels that roll on the ground. If the wheel only moves along a straight line and does not change its size over time, you can use the faster iExpression 'Rotating Wheel Linear Motion' instead. * ##### Diameter[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#diameter "Direct link to heading") the diameter of the wheel (in number of pixels) * ##### Use Movement From[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#use-movement-from "Direct link to heading") ##### Use[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#use "Direct link to heading") Choose if the rotation should be computed according to the movement of the layer itself or according to the movement of another point. ##### Link to Other Point[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#link-to-other-point "Direct link to heading") link here the other point, to whose movment the according rotation should be computed. * ##### Ground[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#ground "Direct link to heading") ##### use ground layer[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#use-ground-layer "Direct link to heading") if the ground itself moves relative to the composition, use this option. ##### Ground Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#ground-layer-name-or-index "Direct link to heading") is the name or index of the ground layer relative to which the wheel should rotate. * ##### Advanced[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#advanced "Direct link to heading") ##### Specify Diameter in[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#specify-diameter-in "Direct link to heading") Specifies whether die diameter is given in composition or in layer space. Example: Say the wheel is a solid of size 100 pixels and is scaled to 200%. With the option 'layer coordinates' you should set the diameter to 100 but with the option 'comp coordinates' you should set it to 200, since from the comp's perspective, the solid has a size of 200 pixels. ##### Flip Direction[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#flip-direction "Direct link to heading") Activate this option if the wheel rotates in the wrong direction. This may happen when the ground is above the wheel instead of below it. ##### Skip Frames[​](https://docs.mamoworld.com/iexpressions/physics-simulations/rotating-wheel-curvaceous-motion/#skip-frames "Direct link to heading") Increasing this value makes the computation faster but less accurate. For a value of 5, the iExpression calculates the motion path only on every 6th frame and assumes that the wheel travels from one such point to the next in a straight line. Download at aescripts.com --- # Look At Line 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#) Look At Line 3D =============== ![](https://docs.mamoworld.com/iexpressions/assets/images/look_at_line_3d-f58df9317685e6b58f21fe746de8e6a0.png) This iExpression is applied to the orientation of a 3D layer. It rotates the layer such that it always "looks" towards a given line. Each layer looks at the point of the line that is closest to it. In other words, the direction in which the layers look is perpendicular to the direction of the line. The line has an infinite length and is given by two (arbitrary) points on the line. The rotation can still be adjusted using keyframes as usual. You can, for example, align layers on the surface of a cylinder by choosing as line the axis in the middle of the cylinder. * ##### Line Point 1[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#line-point-1 "Direct link to heading") is the first point on the line at which the layer should "look". * ##### Line Point 2[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#line-point-2 "Direct link to heading") is the second point on the line at which the layer should "look". * ##### Flip[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#flip "Direct link to heading") flips the rotation such that the layer does not look at the line but looks away from it (i.e. turns its back on it). * ##### Look From[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#look-from "Direct link to heading") ##### Look From[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#look-from-1 "Direct link to heading") if you choose 'other point' here, the layer looks not from its own position but as if it was located at some other position. If you want, for example, that the layers looks in exactly the same direction as another layer which uses this iExpression, then you can simply link this other layer's position to 'other point'. ##### Other Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-3d/#other-point "Direct link to heading") is the point at which the layer should "look" when the option 'other point' has been choosen for 'Look From'. Download at aescripts.com --- # Look At Line 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-2d/#) Look At Line 2D =============== ![](https://docs.mamoworld.com/iexpressions/assets/images/look_at_line_2d-61a5f0559fca1dd114fc50b3f9962543.png) This iExpression is applied to the rotation of a 2D layer. It rotates the layer such that it always "looks" towards a given line. Each layer looks at the point of the line that is closest to it. In other words, the direction in which the layers look is perpendicular to the direction of the line. The line has an infinite length and is given by two (arbitrary) points on the line. The rotation can still be adjusted using keyframes as usual. * ##### Line Point 1[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-2d/#line-point-1 "Direct link to heading") is the first point on the line at which the layer should "look". * ##### Line Point 2[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-2d/#line-point-2 "Direct link to heading") is the second point on the line at which the layer should "look". * ##### Flip[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-line-2d/#flip "Direct link to heading") flips the rotation such that the layer does not look at the line but looks away from it (i.e. turns its back on it). Download at aescripts.com --- # IK Arm (with 2 or 3 Segments) | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/physics-simulations/ik-arm-2-or-3-segments/#) On this page IK Arm (with 2 or 3 Segments) ============================= ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-10-22_13.28.47-6aa3cf38d4458c2a18145818e18d43b4.png) This iExpression allows to animate an entire arm by just specifying the point where the hand should be - the expression calculates the rotation of all arm segments accordingly (using Inverse Kinematics, IK). You tell where the arm should move - the expression knows how. This expression comes in two variants: * **2 Segment Arm** A normal arm with upper arm and lower arm * **3 Segment Arm** A arm with upper arm , "middle arm" and lower arm - you can use this, for example, to animate a finger (which in contrast to an arm consists of three segments) or other objects, like the plant in our example. **Usage** The arm must consist of the following layers: * upper arm (with anchor point at shoulder) * lower arm (with anchor point at elbow) * hand (with anchor point at wrist) * The 3 segment variant needs a middle element in addition - see tutorial for details. Each arm layer must be parented to the respective next arm segment. So for the 2 segment variant the hand must be parented to the lower arm and the lower arm to the upper arm. In addition there must be a (null-) layer that represents the goal where the arm should point. When the arm is set up like this, all you need to do is to connect the respective layers into the iExpression and apply it to the rotation of all arm layers and the hand (but not the hand goal). ### Example[​](https://docs.mamoworld.com/iexpressions/physics-simulations/ik-arm-2-or-3-segments/#example "Direct link to heading") ![Inverse Kinematic Arm with 3 Segments - After Effects expression](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsikarm3segments_preview-f1a821a19eab80df5f093f7e0c8b475a.gif) This "arm" consists of 3 segments - as you can see, the stem of the plant consists of three parts or on other words has "2 elbows" instead of one. Therefore, we used the 3 segment variant of the expression. Also note that the expression makes sure that the head always points in the same direction no matter how the arm it is attached to rotates. You can still keyframe the head, if you want to rotate it, but don't have to deal with unwanted rotations when you move the arm. ![Robot Character IK Rig After Effect expression for inverse kinematics](https://docs.mamoworld.com/iexpressions/assets/images/iexpressionsikarm2segments_preview-6aa89e459a50dd9c2f4e8ff5f3b21f0a.gif) In this example we applied the "IK Arm with 2 Segments" expression to each of the arms and legs separately. As a result, the character can now be animated by moving the body and any of the 4 goal layers for hands and feet. To let these kinds of characters walk, also take a look at the [Walk Cycle iExpression](https://docs.mamoworld.com/iexpressions/physics-simulations/walk-cycle) . Download at aescripts.com * [Example](https://docs.mamoworld.com/iexpressions/physics-simulations/ik-arm-2-or-3-segments/#example) --- # Distribute 3D Sphere Random | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#) Distribute 3D Sphere Random =========================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_sphere_random-98e75a1d6aad511910de5c0d7aa20e37.png) With this iExpression you can distribute 3D layers (or other 3D properties) randomly on the surface of a sphere or ellipsoid. You can restrict the layers also to be placed only on the upper or lower half of the sphere. You can still move layers away from their random position using their keyframe values or the wiggle parameters. In order to orient the layers correctly on the sphere surface, apply the "Look At Point 3D" iExpression to their orientation and choose as "Look At" point the center of the sphere. If you want to move or rotate the sphere, its best to set the center to (0,0,0), then create a new NULL object, make it 3D and parent the layers on the sphere surface to this NULL. During the parenting, keep the alt or option key pressed. Then the position of the NULL becomes the center of the sphere and you can move or rotate it using the transform controls of the NULL. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#center "Direct link to heading") is the center of the sphere. * ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#radius "Direct link to heading") is the radius of the sphere. For spheres choose the same value for x, y, and z component; otherwise ellipsoids are generated. * ##### Restrict To[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#restrict-to "Direct link to heading") allows to restrict the placement of the random positions to the upper or lower half of the sphere. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value of the property to the random value. This allows you to move the property away from its keyframed value using keyframes. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#frequency "Direct link to heading") makes the layer wiggle around its random position with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its random position when it wiggles. ##### Wiggle on Surface[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#wiggle-on-surface "Direct link to heading") makes the layers stay exactly on the sphere surface while they wiggle. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#random-seed "Direct link to heading") can be modified to get other random values. ##### Change Over Time[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-random/#change-over-time "Direct link to heading") allows to get a new random value for each frame. Download at aescripts.com --- # Distribute 3D Cylinder | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#) Distribute 3D Cylinder ====================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_cylinder-9e3577ecbdeffa056e893954e4f15498.png) With this iExpression you can distribute 3D layers on the surface of a cylinder. The layers are placed on circles around the clyinder surface and you can specify how many layers each circle should consist of and what distance the different circles should have. You can still move layers away from their position on the cylinder using their keyframe values or the wiggle parameters. In order to orient the layers correctly on the cylinder surface, apply the "Look At Line 3D" iExpression to their orientation and choose as first point of the line the center of the sphere and as second point an arbitrary point exactly above or below it (e.g. the center with a value of 100 added to its y value). If you want to move or rotate the cylinder, its best to set the center to (0,0,0), then create a new NULL object, make it 3D and parent the layers on the cylinder surface to this NULL. During the parenting keep the alt or option key pressed. Then the position of the NULL becomes the center of the cylinder and you can move or rotate it using the transform controls of the NULL. * ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#first-layer-name-or-index "Direct link to heading") is the name or index of the first layer that should be placed on the cylinder. * ##### Center (of First Row)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#center-of-first-row "Direct link to heading") is the center of the cylinder at the height of the first circle of layers. All subsequent circles are placed below the first one. * ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#radius "Direct link to heading") is the radius of the cylinder. If the x and y component are not idendical, the cylinder does not look like a circle from the top, but like an ellipse. * ##### Circles[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#circles "Direct link to heading") ##### Layers per Circle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#layers-per-circle "Direct link to heading") denotes how many layers should be placed in one circle around the cylinder surface before the next circle (which is placed below) is started. ##### Distance of Cirles[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#distance-of-cirles "Direct link to heading") denotes the distance between the different circles on which the layers are placed on the cylinder surface. ##### Angle (Shift per Cirles)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#angle-shift-per-cirles "Direct link to heading") allows to palce the layers on the second circle not exactly below the layers in the first circle but shifted by the given angle. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#use-keyframe-value-as-offset "Direct link to heading") allows to move each layer away from its position on the cylinder surface using keyframes. In order to be exactly placed at its position on the cylinder, a layer then must have the keyframed position (0,0,0). If the position is different, the difference is used as an offset to the position on the cylinder surface. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#frequency "Direct link to heading") makes the layer wiggle around its position on the cylinder surface with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its position on the cylinder surface. To create a little less regular but still not moving placement of the layers, set the frequency to 0 and the amplitude to some value greater 0. ##### Wiggle Type[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#wiggle-type "Direct link to heading") determines in which way the layers are wiggled. 'in all directions' moves the layers arbitrarily in 3D space (also away from the clyinder surface), 'on surface left/right/up/down' moves the layers in arbitrary directions on the surface of the cylinder , and 'on surface left/right' moves them only along the circles around the cylinder surface on which they are placed. * ##### Layer Row Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#layer-row-offset "Direct link to heading") ##### Row Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#row-offset "Direct link to heading") with an offset of one, the first row of layers is removed from the top and added again at the bottom below the last row. For an offset of 2 this happens for the first two rows of layers etc. ##### Number of Rows[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-cylinder/#number-of-rows "Direct link to heading") denotes how many rows of layers around the cylinder exist. A value of 3 means, for example, that the first row is moved below the third row if there is a row offset. Download at aescripts.com --- # Distribute 3D Random | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#) Distribute 3D Random ==================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_random-14d73910f6e5d1f0aed80a3c697fc69a.png) With this iExpression you can distribute 3D layers (or other 3D properties) randomly. You can still move layers away from their random position using their keyframe values or the wiggle parameters. * ##### Minimum Value[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#minimum-value "Direct link to heading") is the minimum of the possible random values. Note that if you use the wiggle or keyframe offset options, the value could become smaller that this. * ##### Maximum Value[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#maximum-value "Direct link to heading") is the maximum of the possible random values. Note that if you use the wiggle or keyframe offset options, the value could become larger that this. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value of the property to the random value. This allows you to move the property away from its keyframed value using keyframes. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#frequency "Direct link to heading") makes the layer wiggle around its random position with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its random position when it wiggles. * ##### Randomness[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#randomness "Direct link to heading") ##### Random Seed[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#random-seed "Direct link to heading") can be modified to get other random values. ##### Change Over Time[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-random/#change-over-time "Direct link to heading") allows to get a new random value for each frame. Download at aescripts.com --- # Distribute 3D Sphere Evenly | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#) Distribute 3D Sphere Evenly =========================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_sphere_evenly-7c9c7330a60dc0fcc7356b2808bd82da.png) With this iExpression you can distribute 3D layers (or other 3D properties) evenly on the surface of a sphere or ellipsoid. You can still move layers away from their random position using their keyframe values or the wiggle parameters. In order to orient the layers correctly on the sphere surface, apply the "Look At Point 3D" iExpression to their orientation and choose as "Look At" point the center of the sphere. If you want to move or rotate the sphere, its best to set the center to (0,0,0), then create a new NULL object, make it 3D and parent the layers on the sphere surface to this NULL. During the parenting, keep the alt or option key pressed. Then the position of the NULL becomes the center of the sphere and you can move or rotate it using the transform controls of the NULL. * ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#first-layer-name-or-index "Direct link to heading") is the name or index of the first layer that should be placed on the surface of the sphere. * ##### Last Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#last-layer-name-or-index "Direct link to heading") is the name or index of the last layer that should be placed on the surface of the sphere. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#center "Direct link to heading") is the center of the sphere. * ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#radius "Direct link to heading") is the radius of the sphere. For spheres choose the same value for x, y, and z component; otherwise ellipsoids are generated. * ##### Restrict To[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#restrict-to "Direct link to heading") allows to restrict the placement of the random positions to the upper or lower half of the sphere. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value of the property to the random value. This allows you to move the property away from its keyframed value using keyframes. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#frequency "Direct link to heading") makes the layer wiggle around its random position with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its random position when it wiggles. ##### Wiggle on Surface[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-sphere-evenly/#wiggle-on-surface "Direct link to heading") makes the layers stay exactly on the sphere surface while they wiggle. Download at aescripts.com --- # Look At Point 2D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d/#) Look At Point 2D ================ ![](https://docs.mamoworld.com/iexpressions/assets/images/look_at_point_2d-054ab97c7408572fce8c2c0ac6bfe974.png) This iExpression is applied to the rotation of a 2D layer. It rotates the layer such that it always "looks" towards the given point. The rotation can still be adjusted using keyframes as usual. * ##### Look At[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d/#look-at "Direct link to heading") is the point at which the layer should "look". * ##### Flip[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d/#flip "Direct link to heading") flips the rotation such that the layer does not look at the point but looks away from it (i.e. turns its back on it). * ##### Look From[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d/#look-from "Direct link to heading") ##### Look From[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d/#look-from-1 "Direct link to heading") if you choose 'other point' here, the layer looks not from its own position but as if it was located at some other position. If you want, for example, that the layers looks in exactly the same direction as another layer which uses this iExpression, then you can simply link this other layer's position to 'other point'. ##### Other Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-2d/#other-point "Direct link to heading") is the point at which the layer should "look" when the option 'other point' has been choosen for 'Look From'. Download at aescripts.com --- # Distribute 3D Line | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#) Distribute 3D Line ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_line-654033e8d5f369048fc50ff6a3478049.png) With this iExpression you can place 3d layers in a straight line in 3d space. * ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#first-layer-name-or-index "Direct link to heading") is the name or index of the first layer that should be placed on the line. * ##### Last Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#last-layer-name-or-index "Direct link to heading") is the name or index of the last layer that should be placed on the line. * ##### Starting Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#starting-point "Direct link to heading") is the starting point of the line on which the layers should be distributed. * ##### Ending Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#ending-point "Direct link to heading") is the ending point of the line on which the layers should be distributed. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value to the position on the line. Hence, all layers except the first and the last one are then only placed exactly on the line when their keyframed position is (0,0,0). Other values cause a corresponding offset and allow to animate the position relative to its placement on the line. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#frequency "Direct link to heading") makes the layer wiggle around its position on the line with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its position on the line. To create a little less regular but still not moving line, set the frequency to 0 and the amplitude to some value greater 0. ##### Wiggle On Line[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#wiggle-on-line "Direct link to heading") makes the layers stay exactly on the line while they wiggle. In other words, it only wiggles in the direction of the line. * ##### Layer Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#layer-offset "Direct link to heading") ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-line/#offset "Direct link to heading") with an offset of one, the first layer is removed from the beginning of the line and added again at the end behind the last layer. For an offset of 2 this happens for the first two layers etc. Download at aescripts.com --- # Distribute 3D Grid | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#) Distribute 3D Grid ================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_grid-af5a40901913f24b9898d181ab038ea5.png) With this iExpression you can distribute 3D layers on a 3D grid. Just specify the first layer and all other layers that you apply the iExpression to, will be placed next to this layer in the given distance. You can still move layers away from their grid position using their keyframe values or the wiggle parameters. * ##### First Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#first-layer "Direct link to heading") ##### First Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#first-layer-name-or-index "Direct link to heading") is the name or index of the first layer. This layer is the upper, left, topmost corner of the grid and its position determines the position of the grid. ##### Position[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#position "Direct link to heading") is the position of the first layer in the grid. * ##### Distance[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#distance "Direct link to heading") is the distance between neighbouring layers in the grid. * ##### Grid Size[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#grid-size "Direct link to heading") denotes how many layers should be placed in one row, one column, and behind each other. * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#use-keyframe-value-as-offset "Direct link to heading") allows to move each layer away from its position in the grid using keyframes. In order to be exactly placed at its position in the grid, a layer then must have exactly the same keyframed position as the first layer of the grid. If the position is different, the difference is used as an offset to the grid position. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#frequency "Direct link to heading") makes the layer wiggle around its position in the grid with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its grid position. To create a little less regular but still not moving grid, set the frequency to 0 and the amplitude to some value greater 0. * ##### Layer Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#layer-offset "Direct link to heading") ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-grid/#offset "Direct link to heading") allows to delete the first rows of the grid (in x, y, or z direction)and insert them again behind the last rows. Download at aescripts.com --- # Distribute 3D Circle and Spiral | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#) Distribute 3D Circle and Spiral =============================== ![](https://docs.mamoworld.com/iexpressions/assets/images/distribute_3d_circle_and_spiral-fb837149b4717c7a9c1efd93d5b9fd09.png) With this iExpression you can place 3D layers in a circle. Variants like ellipses, spirals or arcs of circles are also possible. This iExpression works exactly as the 2D variant but offers the additional parameter z Offset for the first and last layer to create spirals that are stretched in z direction. In order to orient the layers to look at the middle of the circle, apply the "Look At Line 3D" iExpression to their orientation and choose as first point of the line the center of the sphere and as second point an arbitrary point exactly behind or before it (e.g. the center with a value of 100 added to its z value). If you want the layers to rotate along the circle but do not look at the middle, apply the "Look At Point 2D" iExpression instead to the z rotation and use as "Look At" point (the x and y value of) the center. If you want to move or rotate the circle, its best to set the center to (0,0,0), then create a new NULL object, make it 3D and parent the layers on the circle surface to this NULL. During the parenting keep the alt or option key pressed. Then the position of the NULL becomes the center of the cylinder and you can move or rotate it using the transform controls of the NULL. * ##### Center[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#center "Direct link to heading") is the center of the circle (or of the ellipse, spiral,...) * ##### First Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#first-layer "Direct link to heading") ##### Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#layer-name-or-index "Direct link to heading") is the name or index of the first layer that should be placed in the circle. ##### Angle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#angle "Direct link to heading") this angle gives the direction where (relative to the center) the first layer is placed. 0 degree means above the center (12 o clock), 90 degree to the right of if (3 o clock), 180 degree below it (6 o clock) etc. ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#radius "Direct link to heading") is the distance that the first layer has to the center. For circles, this value is identical in both dimensions, for ellipsis you can choose different values in x and y direction. ##### z Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#z-offset "Direct link to heading") moves the first point in z direction (relative to center) * ##### Last Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#last-layer "Direct link to heading") ##### Layer (Name or Index)[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#layer-name-or-index-1 "Direct link to heading") is the name or index of the last layer that should be placed in the circle. ##### Angle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#angle-1 "Direct link to heading") this angle gives the direction where (relative to the center) the last layer is placed. 0 degree means above the center (12 o clock), 90 degree to the right of if (3 o clock), 180 degree below it (6 o clock) etc. ##### use Radius of First Layer[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#use-radius-of-first-layer "Direct link to heading") With this option the last layer uses the radius of the first layer (and ignored its own radius). Use this to create circles and ellipses; for spirals the radius of the first and last layer must be different. ##### Radius[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#radius-1 "Direct link to heading") is the distance that the first layer has to the center. For circles, this value is identical in both dimensions, for ellipsis you can choose different values in x and y direction. For spirals this parameter should differ from the respective parameter for the first layer. ##### z Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#z-offset-1 "Direct link to heading") moves the last point in z direction (relative to center) * ##### Use Keyframe Value as Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#use-keyframe-value-as-offset "Direct link to heading") adds the keyframed value to the position on the circle. Hence, the layer is only placed exactly on the circle when the keyframed position is (0,0). Other values cause a corresponding offset and allow to animate the position relative to its placement on the circle. * ##### Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#wiggle "Direct link to heading") ##### Frequency[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#frequency "Direct link to heading") makes the layer wiggle around its position in the circle with the given frequency. If you don't want it to move at all, set the frequency to 0. ##### Amplitude[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#amplitude "Direct link to heading") denotes up to how much the layer may move away from its position on the cirle. To create a little less regular but still not moving circle, set the frequency to 0 and the amplitude to some value greater 0. ##### Radial Wiggle[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#radial-wiggle "Direct link to heading") makes the layers stay exactly on the circle while they wiggle. In other words, only the angle is wiggled, but not the radius. * ##### Layer Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#layer-offset "Direct link to heading") ##### Offset[​](https://docs.mamoworld.com/iexpressions/layer-placement/distribute-3d-circle-and-spiral/#offset "Direct link to heading") with an Offset of one, the first layer is removed from the beginning of the arc and added again at the end behind the last layer. For an offset of 2 this happens for the first two layers etc. Download at aescripts.com --- # Look At Point 3D | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d/#) Look At Point 3D ================ ![](https://docs.mamoworld.com/iexpressions/assets/images/look_at_point_3d-46721a30a885aad40a639d56ac460be9.png) This iExpression is applied to the orientation of a 3D layer. It orients the layer such that it always "looks" towards the given point. The orientation can still be adjusted using keyframes as usual. * ##### Look At[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d/#look-at "Direct link to heading") is the point at which the layer should "look". * ##### Flip[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d/#flip "Direct link to heading") flips the orientation such that the layer does not look at the point but looks away from it (i.e. turns its back on it). * ##### Look From[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d/#look-from "Direct link to heading") ##### Look From[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d/#look-from-1 "Direct link to heading") if you choose 'other point' here, the layer looks not from its own position but as if it was located at some other position. If you want, for example, that the layers looks in exactly the same direction as another layer which uses this iExpression, then you can simply link this other layer's position to 'other point'. ##### Other Point[​](https://docs.mamoworld.com/iexpressions/layer-placement/look-point-3d/#other-point "Direct link to heading") is the point at which the layer should "look" when the option 'other point' has been choosen for 'Look From'. Download at aescripts.com --- # Limited Time Parent | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/linking/limited-time-parent/#) Limited Time Parent =================== ![](https://docs.mamoworld.com/iexpressions/assets/images/screenshot_2019-11-13_11.41.27-db41cfcbdf3fc0cf988d0b312137fa54.png) This iExpression is an alternative to parenting layers. There are two major differences: 1. You can parent individual properties (say only the position but not the scale or rotation). 2. The parenting can be active for a limited amount of time and not necessarily for the entire duration of the composition. Download at aescripts.com --- # Text Combiner Multi | Mamoworld Docs [Skip to main content](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#) Text Combiner Multi =================== * [Aug 07, 2013](https://mamoworld.com/after-effects-expression/text-combiner-multi) * admin * [](https://mamoworld.com/after-effects-expression/text-combiner-multi) * [0 comments](https://mamoworld.com/after-effects-expression/text-combiner-multi) ![](https://docs.mamoworld.com/iexpressions/assets/images/text_combiner_multi_0-b437dfa4df3c191dc5d6a2a5b64c83da.png) ![Text Combiner Multi iExpression](https://docs.mamoworld.com/iexpressions/assets/images/text_combiner-7506441143d0c3c96842af8ab90256c3.gif) This iExpression works exactly as the 'Text Combiner' iExpression but allows to insert up to 4 different foreground texts into the background text. * ##### Background Text Block[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#background-text-block "Direct link to heading") Link this variable to the source text of the text layer containing the background text block. * ##### Foreground Text 1[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#foreground-text-1 "Direct link to heading") ##### Text[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#text "Direct link to heading") The forground text that should be placed on top of the background text block. Can also be linked to a multi-line text block. ##### Position[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#position "Direct link to heading") In which column and row of the background the foreground text is inserted. * ##### Foreground Text 2[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#foreground-text-2 "Direct link to heading") ##### Text[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#text-1 "Direct link to heading") The forground text that should be placed on top of the background text block. Can also be linked to a multi-line text block. ##### Position[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#position-1 "Direct link to heading") In which column and row of the background the foreground text is inserted. * ##### Foreground Text 3[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#foreground-text-3 "Direct link to heading") ##### Text[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#text-2 "Direct link to heading") The forground text that should be placed on top of the background text block. Can also be linked to a multi-line text block. ##### Position[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#position-2 "Direct link to heading") In which column and row of the background the foreground text is inserted. * ##### Foreground Text 4[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#foreground-text-4 "Direct link to heading") ##### Text[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#text-3 "Direct link to heading") The forground text that should be placed on top of the background text block. Can also be linked to a multi-line text block. ##### Position[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#position-3 "Direct link to heading") In which column and row of the background the foreground text is inserted. * ##### Space=Transparent[​](https://docs.mamoworld.com/iexpressions/source-text/text-combiner-multi/#spacetransparent "Direct link to heading") With this option space characters in the foreground do not replace background characters. Download at aescripts.com ---