Lottie-Noesis renders Adobe AfterEffects animations using NoesisGUI. Noesis now offers a Python script to import JSON animations derived from Bodymovin plugin for After Effects. It can be used on any platform compatible with NoesisGUI like desktop, mobile, consoles and web.
Click on Sample0 or Sample1 for realtime preview in XamlToy (Sample animations courtesy of lottiefiles.com)
- NoesisGUI 3.0+ is needed
- Compatible with C++ SDK, C# SDK, Unity and Unreal Engine
- Python 3
- JSON files exported with Bodymovin 5.6.1+
Use the Python script to convert from .json to .xaml:
usage: json2xaml.py [-h] [--version] [--debug] [--viewbox] [--template <key>]
[--repeat <behavior>] json_file xaml_file
Converts from After Effects Bodymovin format to Noesis XAML
positional arguments:
json_file the JSON file to be converted from
xaml_file the XAML file to created
optional arguments:
-h, --help show this help message and exit
--version show program's version number and exit
--debug dump layers information
--viewbox use Viewbox as root element
--template <key> import lottie as a control template resource
--repeat <behavior> describe how the animation repeats
By default the script generates a XAML with a root Canvas. This is not very convenient if you need to use it from another XAML. For these cases, the argument '--template' can be used to generate a control template that can be used this way:
json2xaml.py --template lottie lottie.json lottie.xaml
<Grid
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid.Resources>
<ResourceDictionary Source="lottie.xaml"/>
</Grid.Resources>
<Control Template="{StaticResource lottie}"/>
</Grid>
Shapes | Supported |
---|---|
Shape | π |
Ellipse | π |
Rectangle | π |
Rounded Rectangle | π |
Polystar | βοΈ |
Group | π |
Repeater | βοΈ |
Trim Path (individually) | π |
Trim Path (simultaneously) | βοΈ |
Fills | Supported |
Color | π |
Opacity | π |
Fill Rule | π |
Radial Gradient | π |
Linear Gradient | π |
Strokes | Supported |
Color | π |
Opacity | π |
Width | π |
Line Cap | π |
Line Join | π |
Miter Limit | π |
Dashes | π |
Gradient | π |
Transforms | Supported |
Position | π |
Position (separated X/Y) | π |
Scale | π |
Rotation | π |
Anchor Point | π |
Opacity | π |
Parenting | π |
Auto Orient | βοΈ |
Skew | βοΈ |
Interpolation | Supported |
Linear Interpolation | π |
Bezier Interpolation | π |
Hold Interpolation | π |
Spatial Bezier Interpolation | βοΈ |
Rove Across Time | βοΈ |
Masks | Supported |
Mask Path | π |
Mask Opacity | βοΈ |
Add | π |
Subtract | βοΈ |
Intersect | βοΈ |
Lighten | βοΈ |
Darken | βοΈ |
Difference | βοΈ |
Expansion | βοΈ |
Feather | βοΈ |
Mattes | Supported |
Alpha Matte | βοΈ |
Alpha Inverted Matte | βοΈ |
Luma Matte | βοΈ |
Luma Inverted Matte | βοΈ |
Merge Paths | Supported |
Merge | βοΈ |
Add | βοΈ |
Subtract | βοΈ |
Intersect | βοΈ |
Exclude Intersection | βοΈ |
Layer Effects | Supported |
Fill | βοΈ |
Stroke | βοΈ |
Tint | βοΈ |
Tritone | βοΈ |
Levels Individual Controls | βοΈ |
Text | Supported |
Glyphs | π |
Fonts | π |
Transform | π |
Fill | π |
Stroke | π |
Tracking | π |
Anchor point grouping | βοΈ |
Text Path | βοΈ |
Per-character 3D | βοΈ |
Range selector (Units) | βοΈ |
Range selector (Based on) | βοΈ |
Range selector (Amount) | βοΈ |
Range selector (Shape) | βοΈ |
Range selector (Ease High) | βοΈ |
Range selector (Ease Low) | βοΈ |
Range selector (Randomize order) | βοΈ |
expression selector | βοΈ |
Other | Supported |
Expressions | βοΈ |
Images | π |
Precomps | π |
Time Stretch | βοΈ |
Time remap | βοΈ |
Markers | βοΈ |
Please use our forums for bug reports and feature requests.