azosi · 2026.7.29 02:57 · 조회 1

Revideo Motion Canvas 기초

Revideo는 Motion Canvas에서 포크된 프로젝트다. 따라서 애니메이션 작성 API는 거의 100% Motion Canvas와 동일하다. 이 페이지에서는 Motion Canvas 가이드를 Revideo 컨텍스트에서 어떻게 활용하는지 정리한다.


🔗 Revideo ≠ Motion Canvas — 차이점

영역Motion CanvasRevideo
목적비디오 애니메이션 에디터 (UI 도구)비디오 라이브러리 (코드에서 호출)
렌더링UI의 "Render" 버튼으로 수동 실행renderVideo() 함수 호출 (headless 가능)
실행 단위로컬 에디터 실행npm run render 또는 HTTP API
API자체Motion Canvas API를 그대로 (Scene, Signals, Tweening)
차이점draw() 함수가 syncRevideo에서는 draw()async (비동기 promise 허용)
추가 기능(없음)Rive 애니메이션 통합, headless 렌더 API

즉, 애니메이션 작성법은 Motion Canvas 문서/예제를 그대로 참고해도 99% 작동한다. 다른 점은 **"어디서 어떻게 호출하느냐"**뿐.


📚 Motion Canvas 가이드를 Revido로 가져오는 법

1. Animation flow (yield* / chain / all)

Revideo Scene Flow 이해하기에서 다뤘듯, Revideo도 Motion Canvas의 제너레이터 패턴을 그대로 따른다. 공식 Motion Canvas 가이드의 flow 페이지의 모든 예제가 Revideo에서 그대로 작동한다.

2. Signals & Tweening

Motion Canvas의 signal(), tween(), easing API가 Revideo @revideo/2d에서 그대로 노출된다. 자세한 패턴은 Revideo Animations 상세 API 참고 (flow, signals, tweening, layouts, shaders 등 20+ 항목).

3. Layouts & Hierarchy

<Layout>, <Rect>, <Circle>, <Txt> 등 모든 노드 트리 컴포넌트가 Motion Canvas의 scene graph와 동일.


⚠️ Revido 고유 차이 — draw() 함수의 비동기성

Motion Canvas에서 커스텀 컴포넌트를 만들 때 draw()동기 함수로 작성:

// Motion Canvas — sync
class MyComponent {
  protected draw(context: CanvasRenderingContext2D) {
    context.fillStyle = 'red';
    context.fillRect(0, 0, 100, 100);
  }
}

Revideo에서는 draw()async 함수 — Promise 반환 가능 (비동기 리소스 로딩 대기):

// Revideo — async
class MyComponent {
  protected async draw(context: CanvasRenderingContext2D) {
    // await 가능한 비동기 작업 가능
    const image = await loadImageAsync('background.png');
    context.drawImage(image, 0, 0);
  }
}

대부분의 경우 draw()를 직접 구현할 일은 없다. Motion Canvas의 <Rect>, <Img> 같은 내장 컴포넌트가 일반적 사용 사례의 95%를 커버.


🎓 Motion Canvas의 학습 리소스를 Revido에서 활용

리소스사용법
Motion Canvas 공식 문서flow, signals, tweening 패턴 학습 — Revideo에 그대로 적용
Motion Canvas 예제 모음코드 패턴 참고 (Revideo에 맞게 import만 변경)
Revideo Animations 섹션Revideo 고유 API (20+ 페이지)
Revideo Code Snippets실전 코드 조각 5개 (streaming text, moving objects 등)

🔄 import 경로 변환 가이드

Motion Canvas 코드 → Revideo 코드로 옮길 때 import만 바꾸면 된다:

// Motion Canvas
import {makeScene2D, Rect, Txt} from '@motion-canvas/2d';
import {createRef, waitFor, all, chain} from '@motion-canvas/core';

// Revideo
import {makeScene2D, Rect, Txt} from '@revideo/2d';
import {createRef, waitFor, all, chain} from '@revideo/core';

패키지 이름만 @motion-canvas/*@revideo/*로 일괄 치환. API 시그니처는 동일.


🎯 다음 단계

🔗 공식 리소스

상위 문서: ← Revideo 애니메이션 & 디자인 출처: Revideo 공식 문서 — Designing Animations / Motion Canvas + Motion Canvas Guide 한글화 (2026-07-29) 공급사: Revideo (현 Midrender) / Motion Canvas (Motion Canvas 프로젝트)

변경 이력

날짜변경
2026-07-29초안 작성 — Motion Canvas 가이드 활용법 + import 변환 + draw() 비동기 차이점 한글화
2026-07-29메타데이터 블록을 본문 하단으로 이동

댓글

아직 댓글이 없습니다.

댓글을 작성하려면 로그인이 필요합니다.