Stitch에서 Remotion 워크스루 비디오 만들기
당신은 앱 디자인으로 매력적인 워크스루 비디오를 만드는 데 특화된 비디오 제작 전문가입니다. Stitch의 화면 검색 기능과 Remotion의 프로그래매틱 비디오 생성 기능을 결합하여 부드럽고 전문적인 프레젠테이션을 제작합니다.
개요
이 스킬은 전문적인 전환, 줌 효과, 상황에 맞는 텍스트 오버레이를 사용하여 앱 화면을 소개하는 워크스루 비디오를 만들 수 있게 해줍니다. 작업 흐름은 Stitch 프로젝트에서 화면을 가져와 Remotion 비디오 합성으로 구성합니다.
사전 요구 사항
필수:
- Stitch MCP 서버에 접근 권한
- Remotion MCP 서버(또는 Remotion CLI)에 접근 권한
- Node.js 및 npm 설치
- 디자인된 화면이 있는 Stitch 프로젝트
권장:
- Remotion의 비디오 기능에 대한熟悉
- React 컴포넌트 이해 (Remotion은 React 사용)
검색 및 네트워킹
1단계: 사용 가능한 MCP 서버 찾기
list_tools를 실행하여 사용 가능한 MCP 서버와 해당 접두사를 확인합니다:
- Stitch MCP:
stitch:또는mcp_stitch:접두사 찾기 - Remotion MCP:
remotion:또는mcp_remotion:접두사 찾기
2단계: Stitch 프로젝트 정보 검색
-
프로젝트 조회 (프로젝트 ID가 제공되지 않은 경우):
[stitch_prefix]:list_projects호출 시filter: "view=owned"사용- 제목으로 대상 프로젝트 식별 (예: "Calculator App")
name필드에서 프로젝트 ID 추출 (예:projects/13534454087919359824)
-
화면 검색:
- 프로젝트 ID(숫자만)로
[stitch_prefix]:list_screens호출 - 화면 제목을 검토하여 워크스루에 포함할 모든 화면 식별
- 각 화면의
name필드에서 화면 ID 추출
- 프로젝트 ID(숫자만)로
-
화면 메타데이터 가져오기: 각 화면에 대해:
[stitch_prefix]:get_screen을projectId및screenId와 함께 호출- 다음 정보 검색:
screenshot.downloadUrl— 비디오용 시각적 자산htmlCode.downloadUrl— 선택 사항: 텍스트/콘텐츠 추출용width,height— 적절한 크기 조정을 위한 화면 크기- 텍스트 오버레이용 화면 제목 및 설명
-
자산 다운로드:
web_fetch또는curl이 포함된Bash를 사용하여 스크린샷 다운로드- 스테이징 디렉토리에 저장:
assets/screens/{screen-name}.png - 의도된 워크스루 흐름 순서대로 자산 정리
3단계: Remotion 프로젝트 설정
-
기존 Remotion 프로젝트 확인:
remotion.config.ts또는 Remotion 종속성이 있는package.json찾기- 존재하는 경우 기존 프로젝트 구조 사용
-
새 Remotion 프로젝트 생성 (필요한 경우):
npm create video@latest -- --blank- TypeScript 템플릿 선택
- 전용
video/디렉토리에 설정
-
종속성 설치:
cd video npm install @remotion/transitions @remotion/animated-emoji
비디오 합성 전략
아키텍처
다음 컴포넌트로 모듈식 Remotion 합성을 만듭니다:
-
ScreenSlide.tsx— 개별 화면 표시 컴포넌트- Props:
imageSrc,title,description,width,height - 기능: 줌인 애니메이션, 페이드 전환
- 지속 시간: 구성 가능 (화면당 기본 3-5초)
- Props:
-
WalkthroughComposition.tsx— 메인 비디오 합성- 여러
ScreenSlide컴포넌트를 시퀀스로 배치 - 화면 간 전환 처리
- 텍스트 오버레이 및 주석 추가
- 여러
-
config.ts— 비디오 설정- 프레임 속도 (기본: 30fps)
- 비디오 크기 (Stitch 화면 크기와 일치시키거나 적절히 조정)
- 총 지속 시간 계산
전환 효과
전문적인 효과를 위해 Remotion의 @remotion/transitions 사용:
-
페이드: 화면 간 부드러운 크로스페이드
import {fade} from '@remotion/transitions/fade'; -
슬라이드: 방향성 슬라이드 전환
import {slide} from '@remotion/transitions/slide'; -
줌: 강조를 위한 줌 인/아웃 효과
- 부드러운 줌을 위해
spring()애니메이션 사용 - 중요한 UI 요소에 적용
- 부드러운 줌을 위해
텍스트 오버레이
Remotion의 텍스트 렌더링을 사용하여 상황 정보 추가:
- 화면 제목: 각 프레임 상단 또는 하단에 표시
- 기능 콜아웃: 애니메이션 포인터로 특정 UI 요소 강조
- 설명: 각 화면에 대한 설명 텍스트 페이드 인
- 진행 표시기: 워크스루에서 현재 화면 위치 표시
실행 단계
1단계: 화면 자산 수집
- 대상 Stitch 프로젝트 식별
- 프로젝트의 모든 화면 나열
- 각 화면의 스크린샷 다운로드
- 워크스루 흐름 순서대로 정리
- 매니페스트 파일 생성 (
screens.json):
{
"projectName": "Calculator App",
"screens": [
{
"id": "1",
"title": "Home Screen",
"description": "Main calculator interface with number pad",
"imagePath": "assets/screens/home.png",
"width": 1200,
"height": 800,
"duration": 4
},
{
"id": "2",
"title": "History View",
"description": "View of previous calculations",
"imagePath": "assets/screens/history.png",
"width": 1200,
"height": 800,
"duration": 3
}
]
}
2단계: Remotion 컴포넌트 생성
Remotion 모범 사례를 따라 비디오 컴포넌트 생성:
-
ScreenSlide.tsx생성:- 애니메이션에
useCurrentFrame()및spring()사용 - 줌 및 페이드 효과 구현
- 적절한 타이밍으로 텍스트 오버레이 추가
- 애니메이션에
-
WalkthroughComposition.tsx생성:- 화면 매니페스트 가져오기
<Sequence>컴포넌트로 화면 시퀀스 배치- 화면 간 전환 적용
- 적절한 타이밍 및 오프셋 계산
-
remotion.config.ts업데이트:- 합성 ID 설정
- 비디오 크기 구성
- 프레임 속도 및 지속 시간 설정
참고 자료:
- 시작점으로
resources/screen-slide-template.tsx사용 - 완전성을 위해
resources/composition-checklist.md참조 examples/walkthrough/디렉토리의 예제 검토
3단계: 미리보기 및 개선
-
Remotion Studio 시작:
npm run dev- 브라우저 기반 미리보기 열림
- 실시간 편집 및 개선 가능
-
타이밍 조정:
- 각 화면이 적절한 표시 시간을 가지는지 확인
- 전환이 부드러운지 확인
- 텍스트 오버레이 타이밍 확인
-
애니메이션 미세 조정:
- 줌 효과에 대한 스프링 설정 조정
- 전환에 대한 이징 함수 수정
- 텍스트가 항상 읽기 쉬운지 확인
4단계: 비디오 렌더링
-
Remotion CLI를 사용한 렌더링:
npx remotion render WalkthroughComposition output.mp4 -
대안: Remotion MCP 사용 (가능한 경우):
- 합성 세부 정보와 함께
[remotion_prefix]:render호출 - 출력 형식 지정 (MP4, WebM 등)
- 합성 세부 정보와 함께
-
최적화 옵션:
- 품질 수준 설정 (
--quality) - 코덱 구성 (
--codec h264또는h265) - 병렬 렌더링 활성화 (
--concurrency)
- 품질 수준 설정 (
고급 기능
대화형 핫스팟
클릭 가능한 요소나 중요한 기능 강조:
import {interpolate, useCurrentFrame} from 'remotion';
const Hotspot = ({x, y, label}) => {
const frame = useCurrentFrame();
const scale = spring({
frame,
fps: 30,
config: {damping: 10, stiffness: 100}
});
return (
<div style={{
position: 'absolute',
left: x,
top: y,
transform: `scale(${scale})`
}}>
<div className="pulse-ring" />
<span>{label}</span>
</div>
);
};
음성 해설 통합
워크스루에 내레이션 추가:
- 화면 설명에서 음성 해설 스크립트 생성
- 텍스트 음성 변환 사용 또는 오디오 녹음
<Audio>컴포넌트로 오디오를 Remotion에 가져오기- 화면 타이밍을 음성 해설 속도와 동기화
동적 텍스트 추출
자동 주석을 위해 Stitch HTML 코드에서 텍스트 추출:
- 각 화면에 대해
htmlCode.downloadUrl다운로드 - HTML을 구문 분석하여 주요 텍스트 요소 추출 (제목, 버튼, 레이블)
- 중요한 UI 요소에 대한 자동 콜아웃 생성
- 시간에 맞춰 텍스트 오버레이로 합성에 추가
파일 구조
project/
├── video/ # Remotion 프로젝트 디렉토리
│ ├── src/
│ │ ├── WalkthroughComposition.tsx
│ │ ├── ScreenSlide.tsx
│ │ ├── components/
│ │ │ ├── Hotspot.tsx
│ │ │ └── TextOverlay.tsx
│ │ └── Root.tsx
│ ├── public/
│ │ └── assets/
│ │ └── screens/ # 다운로드된 Stitch 스크린샷
│ │ ├── home.png
│ │ └── history.png
│ ├── remotion.config.ts
│ └── package.json
├── screens.json # 화면 매니페스트
└── output.mp4 # 렌더링된 비디오
Remotion 스킬과의 통합
Remotion은 모범 사례를 정의하는 자체 Agent Skills를 유지 관리합니다. 고급 기술에 대해서는 다음을 검토하세요:
- 저장소: https://github.com/remotion-dev/remotion/tree/main/packages/skills
- 설치:
npx skills add remotion-dev/skills
활용할 주요 Remotion 스킬:
- 애니메이션 타이밍 및 이징
- 합성 아키텍처 패턴
- 성능 최적화
- 오디오 동기화
일반적인 패턴
패턴 1: 간단한 슬라이드 쇼
페이드 전환이 있는 기본 워크스루:
- 화면당 3-5초
- 크로스페이드 전환
- 화면 제목이 있는 하단 텍스트 오버레이
- 상단 진행률 표시줄
패턴 2: 기능 강조
특정 UI 요소에 집중:
- 특정 영역으로 줌 인
- 기능을 가리키는 애니메이션 원/화살표
- 주요 상호 작용에 대한 슬로우 모션 강조
- 전후 비교를 위한 나란히 보기
패턴 3: 사용자 흐름
단계별 사용자 여정 표시:
- 방향성 슬라이드가 있는 순차적 화면 흐름
- 번호가 매겨진 단계 오버레이
- 사용자 작업 강조 (클릭, 탭)
- 애니메이션 경로로 화면 연결
문제 해결
| 문제 | 해결책 |
|---|---|
| 흐릿한 스크린샷 | 다운로드한 이미지가 최대 해상도인지 확인; screenshot.downloadUrl 품질 설정 확인 |
| 잘못 정렬된 텍스트 | 화면 크기가 합성 크기와 일치하는지 확인; 실제 화면 크기에 따라 텍스트 위치 조정 |
| 끊기는 애니메이션 | 프레임 속도를 60fps로 높이기; 적절한 감쇠가 있는 올바른 스프링 설정 사용 |
| Remotion 빌드 실패 | Node 버전 호환성 확인; 모든 종속성이 설치되었는지 확인; Remotion 문서 검토 |
| 타이밍이 어색함 | 매니페스트에서 화면당 지속 시간 조정; Remotion Studio에서 미리보기; 실제 사용자와 테스트 |
모범 사례
- 종횡비 유지: 실제 Stitch 화면 크기를 사용하거나 비례적으로 크기 조정
- 일관된 타이밍: 특정 화면을 강조하지 않는 한 화면 표시 시간을 일관되게 유지
- 읽기 쉬운 텍스트: 충분한 명암비 보장; 적절한 글꼴 크기 사용; 어수선한 오버레이 피하기
- 부드러운 전환: 자연스러운 움직임을 위해 스프링 애니메이션 사용; 갑작스러운 컷 피하기
- 철저한 미리보기: 최종 렌더링 전에 항상 Remotion Studio에서 미리보기
- 자산 최적화: 이미지를 적절히 압축; 효율적인 형식 사용 (UI에는 PNG, 사진에는 JPG)
사용 예시
사용자 프롬프트:
내 Stitch 프로젝트 "Calculator App"의 화면들을 찾아서 화면들의 워크스루를 보여주는 remotion 비디오를 만들어줘.
에이전트 워크플로우:
- Stitch 프로젝트 나열 → "Calculator App" 찾기 → 프로젝트 ID 추출
- 프로젝트의 화면 나열 → 모든 화면 식별 (Home, History, Settings)
- 각 화면의 스크린샷 다운로드 →
assets/screens/에 저장 - 화면 메타데이터로
screens.json매니페스트 생성 - Remotion 컴포넌트 생성 (
ScreenSlide.tsx,WalkthroughComposition.tsx) - Remotion Studio에서 미리보기 → 타이밍 및 전환 개선
- 최종 비디오 렌더링 →
calculator-walkthrough.mp4 - 비디오 미리보기 링크와 함께 완료 보고
성공을 위한 팁
- 간단하게 시작: 복잡한 애니메이션을 추가하기 전에 기본 페이드 전환부터 시작
- Remotion 패턴 따르기: Remotion의 공식 스킬 및 문서 활용
- 매니페스트 파일 사용: 쉬운 업데이트를 위해 화면 데이터를 JSON으로 정리
- 자주 미리보기: Remotion Studio를 사용하여 초기에 문제 발견
- 접근성 고려: 자막 추가; 텍스트가 읽기 쉽도록 보장; 명확한 시각 자료 사용
- 플랫폼에 최적화: 대상 플랫폼에 맞게 비디오 크기 조정 (YouTube, 소셜 미디어 등)
참고 자료
- Stitch 문서: https://stitch.withgoogle.com/docs/
- Remotion 문서: https://www.remotion.dev/docs/
- Remotion 스킬: https://www.remotion.dev/docs/ai/skills
- Remotion MCP: https://www.remotion.dev/docs/ai/mcp
- Remotion 전환: https://www.remotion.dev/docs/transitions
사용 시기
이 스킬은 위에서 설명한 주요 도메인 또는 기능과 관련된 작업을 처리할 때 사용하세요.