로티 (파일 형식)

벡터 그래픽 애니메이션을 위한 파일 형식

로티(Lottie)는 벡터 그래픽 애니메이션을 위한 파일 형식으로, 독일 실루엣 애니메이션의 선구자인 Charlotte "Lotte" Reiniger의 이름에서 따와 명명되었다.[1]

Lottie
파일 확장자json
개발에르난 토리시 (Hernan Torrisi)
발표일2015
포맷 종류벡터 애니메이션
다음으로부터 확장JSON, Adobe After Effects
다음으로 확장dotLottie
웹사이트https://airbnb.io/lottie
A white woman holding paper and a writing implement while looking at a table with drawings and silhouettes.
1939년의 로테 라이니거

설명

편집

Lottie는 JSON을 기반으로 하지만 Lottie 파일은 길이가 1~2자의 키를 사용하며 사람이 읽을 수 없다. 웹, 모바일 및 데스크탑 애플리케이션에서 사용하기 위해 애니메이션 GIFAPNG 파일에 대한 더 가벼운 대안으로 만들어졌다. 벡터형이므로 장치 해상도와 무관하다. 래스터 그래픽 요소도 포함될 수 있다. 프로그래밍이 가능하고 상호 작용 기능을 추가할 수 있다.[2]

플레이어 구현에 따라, CPU, GPU 및 메모리 사용량에 차이가 존재할 수 있다.[3]

역사

편집

2015년 - 에르난 토리시는 애니메이션 데이터를 JSON으로 직렬화하여 런타임에 렌더링하는 애니메이션 소프트웨어 Adobe After EffectsBodymovin[4] 이라는 플러그인을 개발했다. After Effects 내부 형식의 주요 기능을 지원한다.[5] 또한 에르난 토리시는 최신 브라우저용 JavaScript 기반 플레이어가 포함된 형식의 렌더러를 출시했다.[2][6]

2017년 - 엔지니어 브랜든 위드로우(Brandon Withrow)가 iOS, 가브리엘 필(Gabriel Peal)은[7] 안드로이드, 리랜드 리처드슨(Leland Richardson)은 리엑트 네이티브 전용 로티 플레이어 개발에 참여했고 AirBnB의 수석 애니메이터 살리 푸둘 카림(Salih Abdul-Karim)과 함께 첫 번째 Lottie 라이브러리를 만들었다.[8] 이로 인해 다양한 플랫폼에서 로티 애니메이션을 지원하기 시작했다.[9]

또한 다른 회사들의 노력으로 더 많은 플랫폼을 지원하기 시작했다.[2]

2018년 - 마이크로소프트. NET Foundation은 Windows 전용의 로티 렌더링 라이브러리[10]를 출시했다.

2019년 - 로티 렌더링을 위한 QML API를 추가하면서 Qt[11] 에서 로티 애니메이션 지원을 시작했다. 같은 해 후반에 삼성전자는 플랫폼 독립적인 C++ 기반 렌더러인 rLottie[12]를 출시하고 타이젠에 로티 지원을 추가했다. 이 형식을 사용하는 Python 프레임워크도 올해 출시되었다.[13]

2020년 - dotLottie가 탄생했다. 이 오픈 소스 파일 형식은 여러 로티 파일과 모든 지원 리소스를 단일 파일로 결합한다.

2023년 - 벡터 그래픽 라이브러리인 토르 벡터 그래픽스가 자체 엔진을 기반으로 로티 렌더링 기능을 지원하기 시작했다.[14]

 

{
    "v": "5.7.1",
    "ip": 0,
    "op": 180,
    "nm": "Animation",
    "fr": 60,
    "w": 512,
    "h": 512,
    "layers": [
        {
            "ddd": 0,
            "ty": 4,
            "ind": 0,
            "st": 0,
            "ip": 0,
            "op": 180,
            "nm": "Layer",
            "ks": {
                "a": {
                    "a": 0,
                    "k": [
                        256,
                        256
                    ]
                },
                "p": {
                    "a": 0,
                    "k": [
                        256,
                        256
                    ]
                },
                "s": {
                    "a": 0,
                    "k": [
                        100,
                        100
                    ]
                },
                "r": {
                    "a": 0,
                    "k": 0
                },
                "o": {
                    "a": 0,
                    "k": 100
                }
            },
            "shapes": [
                {
                    "ty": "el",
                    "nm": "Ellipse",
                    "d": 1,
                    "p": {
                        "a": 0,
                        "k": [
                            256,
                            256
                        ]
                    },
                    "s": {
                        "a": 0,
                        "k": [
                            256,
                            256
                        ]
                    }
                },
                {
                    "ty": "st",
                    "nm": "Stroke",
                    "o": {
                        "a": 0,
                        "k": 100
                    },
                    "c": {
                        "a": 0,
                        "k": [
                            0.114,
                            0.157,
                            0.282
                        ]
                    },
                    "lc": 2,
                    "lj": 2,
                    "ml": 0,
                    "w": {
                        "a": 0,
                        "k": 20
                    }
                },
                {
                    "ty": "fl",
                    "nm": "Fill",
                    "o": {
                        "a": 0,
                        "k": 100
                    },
                    "c": {
                        "a": 0,
                        "k": [
                            0.196,
                            0.314,
                            0.690
                        ]
                    },
                    "r": 1
                }
            ]
        }
    ]
}

dotLottie 파일 형식

편집
dotLottie
파일 확장자.lottie
발표일2020
포맷 종류벡터 애니메이션
다음의 컨테이너로티
다음으로부터 확장Zip file
웹사이트https://dotlottie.io/

2020년에는 Lottie 파일을 다른 리소스와 함께 압축하는 표준 방법으로 dotLottie 파일 형식이 제안되었다. 파일은 실제로 deflate 방법으로 압축된 zip 파일이다. 여기에는 매니페스트 파일 과 미리보기 이미지가 포함되어 있어 파일을 쉽게 조작할 수 있다.[15]

각주

편집
  1. “What is a Lottie animation? - LottieFiles”. 《lottiefiles.com》 (영어). 2022년 1월 11일에 확인함. 
  2. “What is a Lottie animation? - LottieFiles”. 《lottiefiles.com》 (영어). 2022년 1월 11일에 확인함. 
  3. Biørn-Hansen, Andreas; Grønli, Tor-Morten; Ghinea, Gheorghita (2019년 5월 5일). “Animations in Cross-Platform Mobile Applications: An Evaluation of Tools, Metrics and Performance”. 《Sensors》 (영어) 19 (9): 2081. Bibcode:2019Senso..19.2081B. doi:10.3390/s19092081. PMC 6539844. PMID 31060290. 
  4. Torrisi, Hernan (2021년 12월 15일). “bodymovin-extension” (영어). GitHub. 2022년 1월 11일에 확인함. 
  5. “Introducing dotLottie”. 《dotlottie.io》 (영어). 2022년 1월 11일에 확인함. 
  6. “bodymovin-extension”. 2021년 12월 15일. 
  7. 《Behind the Creation of Lottie》 
  8. “Lottie Docs”. 《airbnb.io》. 2021년 12월 14일에 확인함. 
  9. “Lottie”. 《Lottie》 (영어). AirBnB. 2020년 10월 29일에 원본 문서에서 보존된 문서. 2022년 1월 11일에 확인함. 
  10. “Lottie-Windows”. 2021년 12월 15일. 
  11. “Announcing QtLottie”. 《www.qt.io》. 
  12. “rlottie: A New Approach to Motion Graphics”. 
  13. “python-lottie Changelog”. 
  14. “thorvg 0.10.0 release note”. 
  15. “Introducing dotLottie”. 《dotlottie.io》 (영어). 2022년 1월 11일에 확인함. 

외부 링크

편집