Skip to content

Commit

Permalink
Merge pull request #57 from LottieFiles/compat
Browse files Browse the repository at this point in the history
Old bodymovin compat
  • Loading branch information
mbasaglia authored Jun 24, 2024
2 parents e07f8b4 + 5e5bfc3 commit eb83873
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 0 deletions.
70 changes: 70 additions & 0 deletions docs/compat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# Compatibility with older versions

This page describes breaking changes that have been introduced over time.

You'd need to check `v` from {ref-link:animation/animation} to see the
the lottie is so old to need to worry about these.

The code examples are just for illustrative purposes and are not to be
taken as a complete conversion code.

## [0,255] Colors

Until `v` 4.1.9.

Modern Lotties have [color](concepts.md#colors) components in the [0, 1] range.
Older ones have components in the [0, 255] range.

Fix: Divide all color components by 255.

## Static text document

Until `v` 4.4.14.

In {ref-link:text/text-data}, `d` was not animated.

Fix: Wrap into an animated property

`text_layer.t.d = {"a": 0, "k": text_layer.t.d}`

## Shape closing

Until `v` 4.4.18.

{ref-link:shapes/path} objects had a boolean `closed` property and `c` was not
present in the bezier data.

Similarly, {ref-link:helpers/mask} had `cl` that worked the same way.

Fix: For each {ref-link:shapes/path}, update all the keyframes
(or the non-animated value) of `ks`.
Do the same to fix `pt` in each {ref-link:helpers/mask}.

`shape.ks.k.c = shape.closed ? 1 : 0`

## Old keyframe style

Until `v` 5.0.0 (?).

[Keyframes](concepts.md#keyframe) had an `e` property that specified
the end value for that keyframe (`s` marking the start value),
and the last keyframe would not have `s`.

Fix: Ignore all the `e` in keyframes, but copy the `e` from the keyframe
before last into the last keyframe.

`keyframes[keyframes.length - 1].s = keyframes[keyframes.length - 2].e`



## Static text layer properties

Until `v` 5.7.15.

In {ref-link:text/text-follow-path} properties `r`, `a`, and `p` were
plain numbers instead of animated properties.

Fix: Wrap all of those into animated properties

`text_layer.t.p.a + {"a": 0, "k": text_layer.t.p.a}`

1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ nav:
- constants.md
- text.md
- expressions.md
- compat.md
- "Playground":
- "Builder": playground/builder.md
- "JSON Editor": playground/json_editor.md
Expand Down

0 comments on commit eb83873

Please sign in to comment.