다음은 svg에 애니메이션을 적용 할 수있는 방법입니다.
SVG 작은 애니메이션
SVG는 Adobe Animate CC + flash2svg 플러그인과 같은 애니메이션 도구에서 직접 내 보낸 SMIL이라는 강력한 기본 마크 업 언어를 통해 애니메이션을 적용 할 수 있습니다.
지원되지 않는 브라우저에서도 SMIL을 사용하여 SVG에 애니메이션을 적용하려면 SMIL 폴리 필 만 사용하면됩니다.
폴리 필은 브라우저에서 누락 된 기능을 지원하여 브라우저가 이해할 수있는 원래 인코딩을 번역하는 특수한 자바 스크립트 코드입니다.
Eric Willigers가 만든 SMIL 폴리 필은 바로 그 기능을 수행합니다. SMIL을 Microsoft 브라우저에서도 지원하는 Web Animations API로 변환합니다. Chrome 개발자가 기본 SMIL 지원을 중단하고 웹 애니메이션에 집중하기로 결정한 것은 매우 효율적이므로 Eric Willigers는 Chrome에서 SMIL 파일을 재생하는 작업을 폴리 필로 채 웁니다.
누군가가 Chrome에서 SMIL을 더 이상 사용하지 않는다고 잘못 해석 하고이 선택에 대해 개발자를 비판했습니다. 그러나 이는 실제 사용 중단이 아니라 폴리 필 수준에서 SMIL 해석 작업의 재배치 일뿐입니다.
실제로 크롬 개발자들은 SMIL을 더 이상 사용하지 않으려는 의도에 대한 공식 발표에서 Willigers polyfill을 인용했습니다.
따라서 SMIL의 소멸에 대해 웹을 읽더라도 걱정하지 마십시오. SMIL의“죽음”은 크게 악화되었습니다. 그것은 중생과 같습니다.
IE 및 EDGE를 포함한 모든 브라우저에서 SMIL을 사용하려면 다음 자바 스크립트 폴리 필을 웹 페이지에 추가하면됩니다.
https://github.com/ericwilligers/svg-animation
다음은 널리 사용되는 flash2svg 내보내기 작성자 인 Tom Byrne이 만든 polyfill을 사용한 데모 페이지입니다.
폴리 필이없는 페이지 :
http://www.tbyrne.org/staging/smil-polyfill/tears.htm
폴리 필이있는 동일한 페이지 :
http://www.tbyrne.org/staging/smil-polyfill/tears_polyfill.htm
소스를 살펴보면 설명이 거의 필요 없습니다.
또한 많은 브라우저에서 웹 애니메이션은 하드웨어 가속되고 SMIL은 일반적으로 그렇지 않기 때문에 폴리 필의 성능은 종종 원래 SMIL보다 우수합니다.
SVG SMIL의 내보내기 애니메이션
SVG 애니메이션을 생성하는 가장 간단한 방법은 Adobe Animate CC와 같은 도구를 사용하여 Flash2svg ( https://github.com/TomByrne/Flash2Svg ) 와 같은 플러그인 을 사용하여 SVG로 내보내는 것입니다. 그것으로 당신은이 만화 에피소드와 같이 거의 모든 애니메이션 + 사운드를 단일 SVG 파일로 내보낼 수 있습니다 :
http://www.tbyrne.org/portfolio/smil/LoveDota.svg
SVG 애니메이션 JS 라이브러리
자바 스크립트 방식이 더 복잡합니다. 우선 자바 스크립트 프로그래머가되어야합니다. 그런 다음 많은 라이브러리 중에서 선택해야합니다. 더 인기가 있습니다 :
SnapSVG
http://snapsvg.io
이 라이브러리는 같은 저자가 만든 오래되고 인기있는 Raphael 애니메이션 라이브러리의 후속 버전입니다. 매우 안정적이지만 런타임시 SVG를 내부 형식으로 변환하여 애니메이션을 적용합니다. 모핑 옵션도 매우 기본적이고 선형 보간입니다. (참고 : Adobe Animate CC 용 snap.svg 플러그인도 있지만 내 보낸 파일이 부풀려집니다. 내보내기는 모든 키 프레임이 아닌 애니메이션의 모든 프레임에 대해 하나의 snap svg 명령을 생성하여 1000 개 이상의 라인이있는 18Kb svg 파일을 생성합니다. 간단한 사각형을 360 도로 회전시키기 위해 Flash2svg 플러그인은 훨씬 더 효율적이며, 하나의 명령과 몇 바이트만으로 같은 작업을 수행 할 수 있습니다.
Greensock MorphSVG
http://greensock.com/morphSVG
SVG를 쉽게 애니메이트하고 내부 형식으로 변환 할 필요가없는 완전한 기능을 갖춘 모핑 라이브러리입니다. Inkscape에서 3-4 개의 svg 키 프레임을 만들면 Greenock SVGMorphing lib가 자동으로 프레임 사이를 보간하여 중간 프레임을 모두 만들어 부드러운 재생이 가능합니다. 예를 들면 다음과 같습니다.
http://codepen.io/Emasoft/pen/reOqYE
3D Seen.js
http://seenjs.io/demo-svg-canvas.html 3D
로 애니메이션을 만들고 싶다면이 라이브러리는 매우 강력합니다.
Seen.js는 3D .obj 파일 메시를 SVG로 렌더링하고 매우 쉽게 애니메이션합니다.
SVG 이미지 편집자
도구는 주로 세 가지 소프트웨어로 애니메이션 키 프레임을 만들 수 있습니다.
Inkscape : 오픈 소스, 수많은 기능, SVG 실무 그룹에 참여하는 사람들이 만든 고급 벡터 편집 패키지. SVG 형식에 대한 참조입니다. 배우기 쉽지 않습니다.
Adobe Illustrator : 상용의 매우 강력한 벡터 드로잉 소프트웨어로 SVG에서 지원하지 않는 많은 기능을 제공하지만 형식과의 호환성이 가장 낮습니다. 일러스트 레이터 엉망을 해결하기 위해 내 보낸 SVG 파일을 수동으로 편집해야하는 경우가 종종 있습니다. 그러나 그것은 미술 학교에서 매우 인기가 있으며 모든 그래픽 전문가는 그것을 사용하는 방법을 알고 있습니다.
Affinity Designer : Illustrator와 같은 상업용 소프트웨어이지만 잉크 스케이프 수준에서 거의 SVG 호환성이 뛰어납니다. UI가 훨씬 친숙해졌으며 이제 SVG 아티스트들 사이에서 인기가 높아지고 있습니다.
SVG 애니메이션 에디터
현재 유일한 SVG 애니메이션 편집기는 다음과 같습니다.
- Adobe Animate CC : 이전 Adobe Flash Pro는 현재 사용되지 않는 플래시 애니메이션에서 최신 SVG 애니메이션으로 마이그레이션하기 위해 Adobe에서 완전히 다시 작성했습니다. SVG 애니메이션을 사용자 정의 자바 스크립트 라이브러리와 함께 내보내거나 "flash2svg"와 같은 플러그인을 사용하여 SVG + SMIL로 저장하도록 선택할 수 있습니다. 이 마지막 옵션은 매우 효율적이므로 부풀린 기본 내보내기 대신 항상 사용합니다.
https://github.com/TomByrne/Flash2Svg 에서 무료 플러그인을 다운로드 할 수 있습니다.
또는 Adobe 플러그인 패널 ( https://creative.adobe.com/addons/products/7232) 에서 설치
하십시오.
불행히도 Adobe Animate CC는 상업용입니다. 무료 오픈 소스 대체 애니메이션 응용 프로그램이 있지만 모두 시도했지만 여전히 IMHO를 빨아들입니다. 미래를 희망합시다.
참고 문헌 :
주제에 대한 나의 더 철저한 블로그 게시물 : https://medium.com/@fmuaddib/the-following-are-the-possible-ways-to-create-professional-animations-in-svg-9d4caca5f4ec
snap.svg에 대한 사례 :
/programming/35727635/adobe-animate-snap-svg-plugin-huge-files