본문으로 건너뛰기

애니메이션 SVG

SMIL 또는 CSS 애니메이션이 있는 SVG 이미지: HTML에서는 브라우저가 재생하고, PowerPoint와 OpenDocument에서는 애니메이션 도형, 이것으로 표현할 수 없을 때는 애니메이션 GIF, PDF와 이미지에서는 초기 상태.

스스로 움직이는 SVG 이미지는 다른 이미지와 똑같이 씁니다.

![](spinner.svg)
![w:400](chart.svg)

읽는 것

SVG 파일 자체에 적힌 애니메이션: SMIL(animate, animateTransform, animateMotion, animateColor, set, 그리고 begin, dur, repeatCount, fill, calcMode, keyTimes, keySplines)과 CSS(animation 속성이 있는 @keyframes, transform-origin, transform-box). 이해하지 못하는 것, 예를 들어 begin="click" 같은 이벤트는 빼고 경고로 알립니다. 조용히 버려지는 것은 없습니다.

출력별로 보여 주는 것

  • HTML: 브라우저가 애니메이션을 직접 재생합니다.
  • PowerPoint(--pptx)와 OpenDocument(--odp): 애니메이션이 있는 요소마다 별도의 도형이 되고, 그 애니메이션은 슬라이드와 함께 시작합니다. 이동, 회전과 크기 조절, 불투명도, 두 색 사이의 변화입니다. 요소의 움직임은 애니메이션 고유의 시각에 표본화되므로 가감속, 여러 키프레임, 다른 점을 중심으로 한 회전이 정확합니다. 반복(indefinite 포함), 지연, 되돌림은 그대로 옮겨집니다.
  • 프레임: 애니메이션을 이렇게 표현할 수 없을 때(변형되는 경로, 스스로 그려지는 선, 기울임) 이미지 전체를 애니메이션 고유의 시각에 렌더링하여 애니메이션 GIF로 포함하며, PowerPoint와 Impress가 재생합니다. 한도가 있습니다. 초당 12프레임, 최대 240프레임, 전체 프레임을 합해 1,600만 픽셀입니다.
  • PDF(--pdf)와 이미지(--images): 움직일 수 없습니다. 그림은 초기 상태로 표시되고, JavaScript도 RichMedia도 없으며, 경고 하나가 애니메이션 이미지를 알려 줍니다.

애니메이션 이미지마다 코드가 svg-animation인 경고 한 줄이 붙어, 어떻게 옮겨졌는지(네이티브인지, 프레임이라면 그 이유가 무엇인지) 알려 줍니다.

출력별 지원

기능HTMLPowerPointOpenDocumentPDF와 이미지
이동, 경로를 따른 움직임재생네이티브네이티브초기 상태
임의의 점을 중심으로 한 회전과 크기 조절재생네이티브네이티브초기 상태
원의 반지름, 사각형의 크기(윤곽선 없음)재생네이티브네이티브초기 상태
도형 하나로 된 요소의 불투명도재생네이티브네이티브초기 상태
채우기 또는 윤곽선의 색, 한 색에서 다른 색으로재생네이티브네이티브초기 상태
반복, 지연, 되돌림, 끝에서 유지재생네이티브네이티브초기 상태
가감속, 여러 키프레임재생네이티브(표본화)네이티브(표본화)초기 상태
단계, 불연속 변화재생프레임프레임초기 상태
경로 변형, 점선 오프셋, 위치와 크기 속성, 그라디언트재생프레임프레임초기 상태
기울임, 반사, 한 요소의 여러 시계, 중첩된 애니메이션 요소재생프레임프레임초기 상태
이벤트재생옮기지 않음(경고)옮기지 않음(경고)초기 상태

로컬 파일

로컬 이미지는 --allow-local-files가 있을 때만, 프레젠테이션 폴더에서 읽습니다. marp-cli와 같습니다. 이 옵션이 없으면 이미지는 내보내기에서 빠지고, 빌드가 local-file-blocked로 파일과 해당 슬라이드, 옵션을 밝혀 줍니다. 존재하지 않는 파일은 local-file-missing으로 알립니다.

한도

SVG는 신뢰할 수 없는 입력이므로 한도가 있습니다. SVG 8 MiB, 요소 50,000개, 애니메이션 2,000개, 애니메이션 하나당 키프레임 256개, 타임라인 60초, 프레임 240개입니다. 한도를 넘는 그림은 경고와 함께 거부되고, 빌드는 계속됩니다.

확인한 것

LibreOffice Impress(macOS)는 PowerPoint와 OpenDocument 파일을 열고, 두 형식으로 다시 저장할 때 모든 애니메이션을 유지합니다. Keynote(macOS)는 도형과 애니메이션 GIF를 가져오며, 그 애니메이션은 살펴보지 않았습니다. PowerPoint: 아직 확인하지 않았습니다.

Created on by tannevaled

Modified on by tannevaled