Answers.Body: <p>If you're trying to make multiple bubbles rise up, you'd probably be better off designing a single bubble, then using it as a particle, inside a particle engine (AE has free particle engines like "CC particle systems" built in, but it's tricky to use).  Trapcode Particular is quicker and easier, but not free.</p>
  
  <p>e.g. 
  <a href="http://people.redgiantsoftware.com/explore/presetdetail.aspx?presetid=831" rel="nofollow">http://people.redgiantsoftware.com/explore/presetdetail.aspx?presetid=831</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-10-09T21:10:38.227Z
Answers.LastActivityDate: 2014-10-09T21:10:38.227Z
Answers.UserDisplayName: tomh
Answers.Body: <p>Do the animation of the position and opacity of your first drop, select the keyframes and any other property I-beams you want and create the animation preset. </p>
  
  <p>Now create your other drops, apply the preset and then offset them using their Anchor Points rather than their positions. This won't work if you're animating their scale or rotation however, because scale and rotation work around the anchor point.</p>
  
  <p>Of course there's always different ways to do thing in AE. You can create particle systems using expressions, as Prof. Sparkles said. Here's an expression that you can apply to the position property of each bubble. Use two nulls to control the start, lifespan and wiggly-ness of the bubbles. It's not quite up to the trapcode preset, but whadayawantforfree?:</p>
  
  <pre><code>wigglespeed=1; //controls the frequency of the wiggles; change this to whatever you want
  
  seedRandom(index, timeless = true); //create static random numbers
  
  start=random(thisComp.layer("start").inPoint, thisComp.layer("start").outPoint); 
  //when the bubble starts, set by the in and out points of the start null
  
  //only do all the hooh-hah if it's time to start bubbling (saves processor cycles)
  if (time&gt;start) 
  {
      lifespan=random(thisComp.layer("stop").inPoint, thisComp.layer("stop").outPoint);
      //how long the bubble takes to go up, set by the stop null's in and out point
      posX=random(thisComp.width);
  
      wiggleX=thisComp.layer("stop").effect("Point Control")("Point")[0];
      wiggleY=thisComp.layer("stop").effect("Point Control")("Point")[1];
      startY=thisComp.layer("start").transform.position[1];
      stopY=thisComp.layer("stop").transform.position[1];
  
      wigglepoint=thisComp.layer("stop").transform.anchorPoint;
      //this should be [0,0] so that the wiggle doesn't introduce unweanted offset
  
      posY=startY+(startY -stopY)*(start-time)/lifespan;
      pos=[posX, posY]+[wigglepoint.wiggle(wigglespeed, wiggleX)[0], wigglepoint.wiggle(wigglespeed,wiggleY)[1]]
  } else { 
      //not time to go yet
      thisComp.layer("start").transform.position
  }
  </code></pre>
  
  <p>For this expression to work you need two nulls called start and stop, and a point control effect (effect>expression controls>point control) applied to the start null. project file <a href="https://onedrive.live.com/redir?resid=5408802B7CF7224B!12181&amp;authkey=!ALpmF0zgZs5ASHc&amp;ithint=file%2caep" rel="nofollow">here</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-10-09T20:43:22.217Z
Answers.LastActivityDate: 2014-10-10T01:17:32.570Z
Answers.LastEditDate: 2014-10-10T01:17:32.570Z
Answers.UserDisplayName: stib
Answers.Body: <p>If you need a relative position change I can only think of doing the animation in an expression. An expression can use the current value of a property as the starting point when being applied to the layer.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-10-08T17:31:37.797Z
Answers.LastActivityDate: 2014-10-08T17:31:37.797Z
Answers.UserDisplayName: timonsku
Body: <p>Is there any way to create an animation (a bubble for example, that rises up on the y axis and fades in from 0 to 100 opacity), that can be saved as an animation preset, then that can be added to another bubble (from animation preset) in another position, and to have it take the change in position into effect?</p>
  
  <p>Thanks,
  Andy.</p>
  
Tags: <after-effects><animation>
Title: Relative Animation Presets
UserDisplayName: Andy Cheeseman
ThreadText: # Relative Animation Presets
  
  (Asked by: username_0 on 2014-10-08)
  
  Is there any way to create an animation (a bubble for example, that rises up on the y axis and fades in from 0 to 100 opacity), that can be saved as an animation preset, then that can be added to another bubble (from animation preset) in another position, and to have it take the change in position into effect?
  
  Thanks,
  username_0.
  
  **Tags:** after-effects, animation
  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_1 on 2014-10-09. Score: 2
  
  If you're trying to make multiple bubbles rise up, you'd probably be better off designing a single bubble, then using it as a particle, inside a particle engine (AE has free particle engines like "CC particle systems" built in, but it's tricky to use). Trapcode Particular is quicker and easier, but not free.
  
  e.g.
  <http://people.redgiantsoftware.com/explore/presetdetail.aspx?presetid=831>
  
  
  ---
  
  ### Answer by username_2 on 2014-10-09. Score: 1
  
  Do the animation of the position and opacity of your first drop, select the keyframes and any other property I-beams you want and create the animation preset.
  
  Now create your other drops, apply the preset and then offset them using their Anchor Points rather than their positions. This won't work if you're animating their scale or rotation however, because scale and rotation work around the anchor point.
  
  Of course there's always different ways to do thing in AE. You can create particle systems using expressions, as Prof. Sparkles said. Here's an expression that you can apply to the position property of each bubble. Use two nulls to control the start, lifespan and wiggly-ness of the bubbles. It's not quite up to the trapcode preset, but whadayawantforfree?:
  
  ```
  wigglespeed=1; //controls the frequency of the wiggles; change this to whatever you want
  
  seedRandom(index, timeless = true); //create static random numbers
  
  start=random(thisComp.layer("start").inPoint, thisComp.layer("start").outPoint); 
  //when the bubble starts, set by the in and out points of the start null
  
  //only do all the hooh-hah if it's time to start bubbling (saves processor cycles)
  if (time>start) 
  {
      lifespan=random(thisComp.layer("stop").inPoint, thisComp.layer("stop").outPoint);
      //how long the bubble takes to go up, set by the stop null's in and out point
      posX=random(thisComp.width);
  
      wiggleX=thisComp.layer("stop").effect("Point Control")("Point")[0];
      wiggleY=thisComp.layer("stop").effect("Point Control")("Point")[1];
      startY=thisComp.layer("start").transform.position[1];
      stopY=thisComp.layer("stop").transform.position[1];
  
      wigglepoint=thisComp.layer("stop").transform.anchorPoint;
      //this should be [0,0] so that the wiggle doesn't introduce unweanted offset
  
      posY=startY+(startY -stopY)*(start-time)/lifespan;
      pos=[posX, posY]+[wigglepoint.wiggle(wigglespeed, wiggleX)[0], wigglepoint.wiggle(wigglespeed,wiggleY)[1]]
  } else { 
      //not time to go yet
      thisComp.layer("start").transform.position
  }
  
  ```
  
  For this expression to work you need two nulls called start and stop, and a point control effect (effect>expression controls>point control) applied to the start null. project file [here](https://onedrive.live.com/redir?resid=5408802B7CF7224B!12181&authkey=!ALpmF0zgZs5ASHc&ithint=file%2caep)
  
  
  ---
  
  ### Answer by username_3 on 2014-10-08. Score: 1
  
  If you need a relative position change I can only think of doing the animation in an expression. An expression can use the current value of a property as the starting point when being applied to the layer.
  
  
  ---
  
  