스타일 8가지

줌 아웃

한 사람의 엑셀 한 칸에서 팀, 사업장, 회사까지 끊김 없이 줌 아웃합니다.

샘플 화면을 누르거나 → 키로 넘깁니다.새 창에서 전체 화면으로 열기

추천 용도
‘개인 업무 변화가 회사 성과로 쌓인다’는 메시지, 경영진 보고 오프닝
샘플
6개 층위, 자동 재생 51초
다른 스타일과의 차이
공간을 옆으로 이동하지 않고 배율이 계속 바뀝니다.

이렇게 움직입니다

각 층위가 다음 층위 안의 한 점이 되고, 숫자가 층위마다 쌓입니다. 작은 변화가 모여 큰 성과가 된다는 이야기를 카메라 움직임 한 번으로 보여 줍니다.

프롬프트

개요 파일과 저장할 HTML 이름만 넣으면 프롬프트에 바로 들어갑니다. 복사해서 개요 파일이 있는 폴더의 Claude Code에 붙여 넣으세요. 모델은 Claude Opus 5.5 이상을 권장합니다.

슬라이드 개요.md 를 끝까지 읽고, 한 사람의 업무 화면에서 회사 전체까지 끊김 없이 줌 아웃하며 숫자가 층위마다 쌓이는 16:9 모션 영상을 HTML 파일 하나로 만들어 발표.html 에 저장해 줘.

1. 층위 설계
- 개요의 숫자와 사례를 층위 4~6개로 나눈다. 예: 한 칸(엑셀 한 칸, 한 사람의 반복 업무, 현장 인용) → 책상(한 사람의 하루·주) → 팀(팀 수, 업무 단계) → 사업장(본사·공장·물류센터, 교육) → 회사(사용자, 만든 앱, 아낀 시간) → 다음(내년 과제).
- 층위 하나가 장면 하나. 아래 층위는 위 층위 그림 안의 정확한 한 자리에 들어 있다(엑셀 한 칸은 모니터 안에, 모니터는 책상 위에, 책상은 팀 층 평면도 안에, 팀 층은 건물 안에, 건물은 회사 지도 안에).
- 숫자도 층위를 따라 쌓인다(한 사람 주 몇 시간 → 팀 → 회사 월 몇 시간처럼 개요에 있는 숫자로만). 그 층위 단위의 숫자가 개요에 없으면 회사 전체 숫자를 아래 층위에 두거나, 숫자 없이 사물 변화(켜지는 화면 수 등)로 보여 준다.
- 공간 사슬은 첫 장면의 인용·사례의 소속이 정한다(예: 물류센터 운영팀 인용이면 한 칸 → 그 사람 책상 → 운영팀 → 물류센터 → 회사).
- 방향은 기본이 줌 아웃(작은 변화가 커짐). 개요가 '전체에서 현장으로' 가는 이야기면 줌 인으로 바꾼다.
- '다음(내년 과제)'은 공간적으로 더 큰 층위가 아니므로, 가장 큰 층위에서 1.2~1.5배 물러서는 마지막 장면으로 둔다. 처음 그 한 칸이 아직 작게 빛나고, 앞으로 할 일은 그 둘레로 주황 잔물결이 번지며.
- (선택) 만들기 전에 층위 표(층위, 그림, 숫자, 다음 층위 안 자리, 장면 길이)를 먼저 보여 주고 확인을 받는다.

2. 줌 방식
- 무한 줌: 층위마다 그림을 따로 그리되, 다음 층위 그림 안 정확한 자리에 이전 층위가 들어가도록 크기와 위치를 맞춘다(층위 사이 배율 8~20배).
- 카메라는 다음 층위 안 자리(이전 층위가 들어 있는 점)를 고정점으로 확대·축소한다. 배율은 로그 스케일로 보간하고 이동 하나에 easeInOutCubic(가속·감속은 이동 안에서만, 출렁임 없음). 층위 사이 이동 2.5~4초, 이동 중 회전 ±3°는 이동 끝에 0으로 돌아온다.
- 너무 작아져 안 보이는 층위는 흐려지며 사라지고, 새로 보이는 층위는 줌과 동시에 선부터 그려진다(크로스페이드만으로 바꾸지 않음).
- 지금 층위에 이전 층위의 자리를 빛나는 점이나 테두리로 늘 표시한다('여기서 왔다').

3. 화면
- 1920×1080 무대를 창 크기에 맞춰 비율 유지. 글꼴 Pretendard(CDN: https://cdn.jsdelivr.net/npm/pretendard@1.3.9/dist/web/variable/pretendardvariable.min.css), word-break: keep-all.
- 2D(SVG 또는 Canvas)로, 모든 층위를 위에서 본 평면도 선화로 통일한다. 모니터처럼 위에서 안 보이는 사물은 펼친 노트북처럼 위에서도 화면이 보이는 사물로 바꾼다.
- 어두운 배경의 비네트·그라디언트는 띠가 생기지 않게 디더를 넣는다.
- 배경 짙은 남색 #0B1020, 선화는 흰 선 2~3px(불투명 70%), 강조 파랑 #3B82F6, 앞으로 할 일 주황 #F97316.
- 숫자는 화면 오른쪽 아래 고정 자리에 층위마다 쌓인다: 이전 층위 숫자는 40~60px로 작아지며 위로 밀리고, 새 숫자가 아래에 크게(120~180px, 단위는 숫자의 40%).
- 장면 제목은 왼쪽 위(56px), 설명 한두 줄과 출처는 제목 아래. 줌 이동 중에는 제목을 숨기고 도착 뒤 마스크 안에서 올라온다.
- 층위 이름표(한 칸 · 책상 · 팀 …)는 화면 위쪽에 작은 눈금으로 지금 위치만 표시하고, 그림 안에는 이름표를 붙이지 않는다.

4. 움직임
- 숫자는 줌이 끝나기 0.3초 전부터 굴러가며 맞춰진다. 최종값을 넘지 않게.
- 구조(벽, 외곽선, 길)는 줌과 동시에 선부터 그려지고, 사물(사람, 집기, 기계)은 줌이 멈춘 뒤 0.03초 간격으로 그려진다.
- 멈춘 동안에도 화면이 살아 있게: 빛나는 점의 맥박(1.5초 주기), 아주 느린 줌 드리프트(초당 0.5%, 최대 3~4%에서 잦아듦). 다음 이동은 드리프트한 그 자리에서 이어진다.

5. 금지
- 층위 사이 컷, 크로스페이드로만 층위 바꾸기, 정해진 자리에서 투명도만 바뀌며 나타나기, 글머리 기호 목록, 등속 움직임, 줌이 빨라졌다 느려지는 출렁임, 층위 그림 안에 이전 층위 자리가 없음.

6. 문구
- 장면 제목은 존댓말 문장, 나머지는 명사형. 한 화면에 제목 하나, 큰 숫자 하나, 짧은 설명 한두 줄.
- 숫자·이름·인용은 개요에 있는 것만 쓴다. 새 숫자를 만들지 않고, 인용과 질문은 원문 그대로. 기준일·출처는 작은 글씨로.

7. 렌더 계약 (MP4로 뽑을 수 있게)
- 화면은 시간 t(초)만으로 정해진다. window.renderAt(t)를 부르면 그 시각의 화면을 그 자리에서 그린다. window.DURATION에 전체 길이(초, 자동 재생 기준).
- setTimeout, CSS transition·animation, Date.now, Math.random을 쓰지 않는다. 난수는 시드를 고정한 함수로, 스프링도 t로 계산하는 식으로.
- 실시간 재생은 requestAnimationFrame으로 t를 진행시키며 같은 그리기 함수를 부른다. 바깥에서 renderAt(t)를 부르면 실시간 재생을 멈춘다.
- 발표 모드에서 멈춘 동안의 계속 움직임(흐르는 빛, 그레인 등)은 실제로 흐른 시간으로, 등장 움직임은 이야기 시간 t로 계산한다(renderAt(t)에서는 둘이 같음).
- 글꼴 준비가 끝나면 풀리는 window.READY(Promise). 글꼴 대기는 3초 상한(requestAnimationFrame으로 잼). Canvas에 쓰는 글꼴은 부분 글꼴 대신 Pretendard 가변 글꼴 전체 파일로.

8. 재생과 조작
- 기본은 발표 모드: 장면에 들어가면 등장 움직임이 재생되고, 다 나타난 상태로 멈춰 기다린다(계속 움직임은 유지). →·Space·Enter·PageDown·클릭으로 다음(장면 사이 변형·이동을 재생하며 다음 장면으로), ←·PageUp으로 이전(이전 장면은 다 나타난 상태로). 재생 중에 다음을 누르면 장면 안 멈춤 지점이 남았으면 그 지점으로, 없으면 다음 장면으로 바로 넘어간다.
- 모바일: 탭으로 다음, 화면 왼쪽 1/3 탭은 이전, 좌우 스와이프로 이전·다음. window의 click 대신 pointerdown·pointerup으로 처리한다(아이폰 Safari는 화면 탭을 window click으로 보내지 않음). touch-action: none. 마우스 클릭은 어디를 눌러도 다음이고, 한 번 눌러 두 장 넘어가지 않게 한다.
- A로 자동 재생(영상 모드) 켜고 끄기. 자동 재생에서는 Space 일시정지, ←/→ 장면 처음으로, 마지막에서 멈춘다. F 전체화면, H·Home 처음부터.
- 화면 아래에 얇은 진행 막대와 '번호 / 전체 · 장면 이름', 키 안내는 처음 3초만.
- 주소 옵션: ?s=N(N번 장면으로 가는 이동부터), ?t=초(그 시각에서 멈춤), ?auto(자동 재생으로 시작), ?record(자동 재생 + 진행 막대·안내 숨김)
- 지금 장면 번호를 주소 끝에 #N으로 표시한다(history.replaceState). 새로고침하거나 #N으로 열면 그 장면부터 시작하고, 주소의 #N을 바꾸면 그 장면으로 다시 연다. #N이 있으면 ?s보다 먼저 따른다.
- 외부 파일은 글꼴 CDN 하나만.

9. 검수
- 브라우저 자동화(Playwright 등)로 1920×1080에서 renderAt(t)를 불러, 장면마다 줌이 멈춘 프레임과 줌 중간 프레임(배율 25%·50%·75% 지점), 마지막 전체를 캡처해 직접 본다. 헤드리스 크롬은 --use-angle=metal(맥) 등으로 GPU를 켠다.
- 확인할 것: 이전 층위가 다음 층위 안 정확한 자리에 들어 있는지(층위 경계 양쪽의 변환 값과 처음 한 칸의 화면 위치를 수치로 비교), 한 이동 안의 배율 변화가 매끄러운지, 숫자 쌓임이 겹치지 않는지, 너무 작은 선이 지글거림, PPT처럼 보이는 곳.
- 발표 모드에서 멈추는 프레임이 모두 완성된 화면인지(덜 나왔거나 빠지기 시작한 상태가 아닌지), 다음·이전·클릭·A도 눌러 본다.
- 모바일 확인: 아이폰 가로 화면 흉내(Playwright webkit + iPhone 기기 설정)로 탭·왼쪽 탭·스와이프가 넘어가는지 눌러 본다(WebKit에는 스와이프 기능이 없으니 PointerEvent를 직접 만들어 확인).
- 고칠 것을 '몇 초, 무엇을, 어떻게'로 적고 고친 뒤 다시 캡처한다(2~4회). 확인한 것과 못 한 것을 나눠 알려 주고, 캡처 파일은 끝나면 지운다.

잘 나오게 하려면

  • 개요에 ‘한 사람 기준 숫자’(1인당 시간, 한 업무의 단계)와 ‘회사 기준 숫자’가 둘 다 있어야 층위가 살아납니다.
  • 고칠 때는 형용사 대신 숫자로 요청합니다. “더 천천히”보다 “3→4층위 이동 4초로, 배율 12배로”
  • 발표장 PC에서 끊기지 않게 MP4로 뽑을 수 있습니다. MP4로 뽑는 법