Lottie Bodymovin

dylantarre/animation-principles/skills/09-by-tool-framework/lottie-bodymovin

作者 dylantarre83597134ba8ff59838270f94d7ac7282ffa3b54d无许可证99 个星标收录于 2026年10月9日更新于 2026年10月9日仓库9个月前更新

Use when implementing Disney's 12 animation principles with Lottie animations exported from After Effects

仅含说明Design & Creative
AI 生成的概览

指导在由 After Effects 导出的 Lottie 矢量动画中实现迪士尼十二动画原则。

功能
该技能提供将迪士尼十二动画原则应用于 Lottie(Bodymovin)矢量动画的说明。它针对每个原则给出 After Effects 中的制作方法,例如挤压与拉伸、预备动作、舞台调度、时间节奏与夸张,并配合 Lottie 运行时的 JavaScript 代码片段来控制播放。它还列出 playSegments、setSpeed、setDirection、goToAndStop 等关键 Lottie API 功能,并给出一个基础的 React Lottie 用法示例。
适用场景
适用于制作或优化由 After Effects 导出的 Lottie 动画,并希望其遵循经典动画原则的场景。适合同时需要 After Effects 制作技巧与对应运行时播放控制的动效设计师和前端开发者。
运行要求
不包含脚本,仅为说明文档。需要 After Effects 进行制作与导出,并需要 lottie-react 或 lottie-interactivity 等 Lottie 运行时在网页或 React 环境中播放。

Lottie Animation Principles

Implement all 12 Disney animation principles using Lottie (Bodymovin) for vector animations.

1. Squash and Stretch

In After Effects before export:

  • Animate Scale X and Y inversely
  • Use expression: s = transform.scale[1]; [100 + (100-s), s]
javascript
// Control at runtimelottie.setSpeed(1.5); // affect squash timing

2. Anticipation

Structure your AE composition:

  1. Frames 0-10: Wind-up pose
  2. Frames 10-40: Main action
  3. Frames 40-50: Settle
javascript
// Play anticipation segmentanim.playSegments([0, 10], true);setTimeout(() => anim.playSegments([10, 50], true), 200);

3. Staging

javascript
// Layer multiple Lotties<div className="scene">  <Lottie animationData={background} style={{ opacity: 0.6 }} />  <Lottie animationData={hero} style={{ zIndex: 10 }} /></div>

4. Straight Ahead / Pose to Pose

Pose to pose in AE:

  • Set keyframes at key poses
  • Let AE interpolate between
  • Use Easy Ease for smoothing
javascript
// Jump to specific posesanim.goToAndStop(25, true); // frame 25

5. Follow Through and Overlapping Action

In After Effects:

  • Offset child layer keyframes by 2-4 frames
  • Use parenting with delayed expressions
  • thisComp.layer("Parent").transform.position.valueAtTime(time - 0.05)

6. Slow In and Slow Out

AE Keyframe settings:

  • Select keyframes > Easy Ease (F9)
  • Use Graph Editor to adjust curves
  • Bezier handles control acceleration
javascript
// Adjust playback speed dynamicallyanim.setSpeed(0.5); // sloweranim.setSpeed(2); // faster

7. Arc

In After Effects:

  • Use motion paths (position property)
  • Convert keyframes to Bezier
  • Pull handles to create arcs
  • Or use "Auto-Orient to Path"

8. Secondary Action

javascript
// Trigger secondary animationmainAnim.addEventListener('complete', () => {  secondaryAnim.play();});
// Or sync with framemainAnim.addEventListener('enterFrame', (e) => {  if (e.currentTime > 15) particleAnim.play();});

9. Timing

javascript
anim.setSpeed(0.5);  // half speed - dramaticanim.setSpeed(1);    // normalanim.setSpeed(2);    // double speed - snappy
// Or control frame rate in AE export// 24fps = cinematic, 30fps = smooth, 60fps = fluid

10. Exaggeration

In After Effects:

  • Push scale beyond 100% (120-150%)
  • Overshoot rotation
  • Use Overshoot expression
  • amp = 15; freq = 3; decay = 5; n = 0; time_start = key(1).time; if (time > time_start) { n = (time - time_start) / thisComp.frameDuration; amp * Math.sin(freq*n) / Math.exp(decay*n/100); } else { 0; }

11. Solid Drawing

In After Effects:

  • Use 3D layers
  • Apply perspective camera
  • Animate Z position and rotation
  • Use depth of field

12. Appeal

Design principles in AE:

  • Smooth curves over sharp angles
  • Consistent timing patterns
  • Pleasing color palette
  • Clean vector shapes
javascript
// React Lottie with hover<Lottie  animationData={data}  onMouseEnter={() => anim.setDirection(1)}  onMouseLeave={() => anim.setDirection(-1)}/>

Lottie Implementation

javascript
import Lottie from 'lottie-react';import animationData from './animation.json';
<Lottie  animationData={animationData}  loop={true}  autoplay={true}  style={{ width: 200, height: 200 }}/>

Key Lottie Features

  • playSegments([start, end]) - Play frame range
  • setSpeed(n) - Control timing
  • setDirection(1/-1) - Forward/reverse
  • goToAndStop(frame) - Pose control
  • addEventListener - Frame events
  • Interactivity via lottie-interactivity

来源与署名

来源:dylantarre/animation-principles位于skills/09-by-tool-framework/lottie-bodymovin提交8359713

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架