Code Monkey home page Code Monkey logo

lottie-noesis's Introduction

Lottie-Noesis

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)

GIF GIF

Requirements

  • 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+

Getting Started

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

Usage

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>

Features supported

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 โ›”๏ธ

Feedback

Please use our forums for bug reports and feature requests.

lottie-noesis's People

Contributors

jesusdesantos avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.