Communitygithub.com

aminghaseminia/motion-design

애니메이션 프로젝트를 위한 아트 디렉션 및 모션 디자인 기술 — 크리에이티브 브리프, 스토리보드, 스타일 프레임, 색상 및 타이포그래피 시스템, 구성, 타이밍 및 이징, 전환 용어, 사운드 연출, 접근성, 그리고 오른쪽에서 왼쪽으로 쓰는 언어(페르시아어/아랍어) 타이포그래피를 다룹니다. 씬 제작 전, 영상이 아마추어처럼 보이거나 '프리미엄/시네마틱/모던'하게 만들어 달라는 요청이 있을 때, 팔레트와 폰트를 선택할 때, 텍스트나 리듬, 위계가 어색할 때 활용하세요. 특정 도구에 종속되지 않으며, blender-animation, remotion-motion-graphics, manim-animation과 함께 사용하기 좋습니다.

motion-design란 무엇인가요?

이 기술은 `Motion Design` 분야의 아트 디렉션과 모션 크래프트를 체계적으로 정리한 가이드입니다. 구체적인 예시와 수치를 통해 '프리미엄', '미래지향적' 같은 추상적인 형용사를 명확한 시각적 결정으로 바꾸는 방법을 알려줍니다. 핵심은 단일 디자인 시스템(그리드, 색상, 타이포그래피, 모션 언어)을 먼저 정의하고 이를 모든 씬에 일관되게 적용하는 것입니다. 또한, 타이밍과 이징의 구체적인 프레임 수, 전환 기법, 색상 대비, RTL(페르시아어/아랍어) 타이포그래피 처리, 사운드 디자인, 접근성, 플랫폼 최적화, 최종 검토 방법까지 폭넓게 다룹니다. Blender, Remotion, Manim 등 어떤 툴을 사용하든 상관없이 애니메이션 프로젝트의 품질을 한 단계 끌어올리고자 하는 모든 개발자와 디자이너에게 유용합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/aminghaseminia/blender-animation-skill/tree/HEAD/skills/motion-design

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

모션 디자인 — 아트 디렉션과 모션 크래프트

이 기술은 형용사를 관찰 가능한 결정으로 바꿔줍니다. '프리미엄'은 황금빛 그라데이션이 아니라 절제, 간격, 통제된 대비, 그리고 신중한 타이밍입니다. '미래지향적'은 무작위 네온이 아니라 일관된 그리드, 정밀한 모션, 제한된 팔레트입니다.

숫자, 표, 실제 예시가 포함된 references/MOTION-CRAFT.md 파일을 참조하세요.

1. 간결한 크리에이티브 방향 설정부터

씬 코드를 작성하기 전에 다음 일곱 줄을 먼저 작성하세요.

주제:      한 문장
대상:      누가, 어디서 보는가
메시지:    반드시 기억해야 할 단 하나
톤:        시각적 결정으로 변환된 3개의 형용사
팔레트:    역할이 지정된 4–6개의 16진수 값
타입:      1–2개 패밀리, 굵기, 크기
모션:      속도, 이징 특성, 전환 용어

만약 톤을 나타내는 형용사를 결정으로 변환할 수 없다면, 방향 설정이 완료되지 않은 것입니다. 예시 변환:

형용사구체적인 결정
프리미엄느린 이징, 디스플레이 타이포의 넓은 자간, 1개의 악센트 색상, 깊은 네거티브 공간, 부드러운 키 라이트, 바운스 없음
에너제틱빠른 진입 (8–12프레임), 6–10% 오버슈트, 비트에 맞춘 컷, 높은 대비, 채도 높은 악센트
신뢰감대칭 그리드, 중간 톤 팔레트, 느린 리빌, 안정적인 카메라, 평이한 언어, 꼼수 없음
기술적고정폭 악센트, 줄선, 측정 눈금, 정밀한 선형 모션, 차분한 중성색

2. 하나의 시스템, 그다음 씬

시스템을 한 번 정의하고 재사용하세요.

  • 그리드: 12열, 5–8% 바깥쪽 여백. 세로형/소셜 형식은 플랫폼 UI가 가장자리를 가리기 때문에 여백을 더 줘야 합니다.
  • 타입 크기: 예: 1080p에서 96/64/40/28/20 px. 씬마다 새로운 크기를 만들지 마세요.
  • 간격: 8px 기본 단위. 공간은 선이나 상자보다 그룹화를 더 잘 전달합니다.
  • 색상 역할: 배경, 표면, 주요 텍스트, 흐린 텍스트, 악센트, 의미적. 악센트는 하나만, 아껴서 사용하세요.
  • 형태 언어: 모서리 둥글기, 선 굵기, 요소가 평평한지, 경사졌는지, 또는 조명이 있는지.
  • 모션 언어: 진입 스타일, 퇴장 스타일, 전환 용어, 카메라 움직임 존재 여부.

완성된 씬 10개보다 스타일 프레임 하나가 더 저렴합니다. 전체 작품을 대표하는 프레임 하나를 렌더링하고 먼저 제대로 완성하세요.

3. 견고한 컴포지션 규칙

  • 비트(마디) 당 하나의 초점. 두 가지가 똑같이 밝고, 똑같이 크고, 똑같이 움직인다면 위계가 없습니다.
  • 대비는 상대적입니다. 모든 것이 빛나면 아무것도 빛나지 않습니다.
  • 네거티브 공간은 특징입니다. 30% 빈 프레임은 자신감으로 읽힙니다.
  • 그리드, 시각적 중심, 또는 의도적인 대각선 등 무언가에 정렬하세요. 거의 정렬된 것은 실수처럼 보입니다.
  • 소셜 형식에서는 주제를 바깥쪽 5% 밖에 두지 마세요.
  • 이미지 위에 텍스트를 넣을 경우 본문 텍스트의 휘도 차이가 최소 ~4.5:1이 되도록 하세요. 무거운 그림자 대신 스크림(반투명 막)을 추가하세요.
  • 2D 깊이 단서: 크기, 흐림, 불투명도, 겹침, 시차. 네 가지 중 하나 또는 두 개만 사용하고, 네 개를 모두 사용하지 마세요.

4. 타이밍

지속 시간은 무게감을 전달합니다. 30FPS에서의 대략적인 시작점:

요소진입퇴장머무름
짧은 헤드라인 (1–3단어)12–18 f8–12 f≥ 24 f
긴 헤드라인18–24 f12 f≥ 45 f
본문 줄12–16 f8 f≥ 30 f
로고 리빌24–40 f12 f≥ 45 f
차트30–45 f10 f≥ 60 f
전체 화면 전환10–18 f——
카메라 움직임 (3D)45–90 f——

규칙:

  • 거리나 질량이 클수록 → 지속 시간이 길어집니다.
  • 그룹은 함께 움직이고, 2–6프레임씩 지연(stagger)합니다. 모든 것을 같은 양만큼 지연시키지 마세요.
  • 중요한 리빌 후에는 약간의 정적인 박자를 남겨두세요.
  • 시청자가 읽어야 한다면, 생각보다 약 두 배는 더 길게 화면에 보여줘야 합니다.

5. 이징

상황곡선
도착 후 안정ease-out (cubic 또는 quart)
떠나기ease-in
두 정지 상태 사이 이동ease-in-out
기계적 / 연속적 / 반복linear
물리적 스냅spring, damping 14–22, stiffness 90–180
카메라매우 부드러운 ease-in-out, 긴 지속 시간

모든 속성에 동일하게 이징을 적용하지 마세요. 위치, 불투명도, 회전은 곡선을 공유할 수 있지만, 크기는 일반적으로 약간 더 타이트한 타이밍이 필요합니다. 브랜드가 장난기 있는 스타일이 아니라면 바운스는 피하세요. 금방 유행에 뒤떨어지고 가독성을 해칩니다.

6. 전환

3–4개의 전환 용어를 정하고 재사용하세요.

  1. 컷 — 속도를 위한 기본. 가장 싸고 종종 가장 좋습니다.
  2. 크로스페이드 — 6–12프레임, 부드러운 연속성을 위해.
  3. 마스크 와이프 — 방향성, 공간적 관계를 위해.
  4. 스케일-스루 — 요소 안으로 밀고 들어가기, 챕터 변경용.
  5. 매치 컷 — 형태나 모션 연속성, 가장 만족스럽고 어렵습니다.

피해야 할 것: 모든 것에 기본 줌-블러 적용, 별 모양 와이프, 스토리의 진행 방향과 반대되는 전환.

7. 색상

  • 하나의 주 색상, 하나의 악센트, 중성색으로 시작하세요. 의미를 전달하는 경우에만 두 번째 악센트를 추가하세요.
  • 큰 모니터가 아닌 최종 크기에서 대비를 확인하세요.
  • 채도를 제어하세요. 넓은 영역에 고채도 색상은 눈을 피로하게 합니다.
  • 어두운 배경은 약간 낮은 채도의 악센트와 밝아진 그림자 디테일이 필요합니다. 순수한 검은색과 순수한 흰색 텍스트는 너무 강렬합니다.
  • 색상을 장식이 아닌 일관된 의미 부여(예: '전'은 한 색상, '후'는 다른 색상)에 사용하세요.
  • 도구 간 색상을 확인하세요: 브라우저(sRGB), Blender(뷰 변환), 인코더. 색이 바랜 합성은 일반적으로 나쁜 팔레트가 아니라 일치하지 않는 뷰 변환 때문입니다.

8. 타이포그래피

  • 최대 두 패밀리: 하나는 디스플레이용, 하나는 본문용(또는 여러 굵기를 가진 하나의 패밀리).
  • 디스플레이 자간: 큰 산세리프는 좁게(-1% ~ -3%), 짧은 올캡스 레이블은 넓게(+8% ~ +20%).
  • 본문 줄 높이: 1.35–1.6. 디스플레이 줄 높이: 1.0–1.2.
  • 줄 길이: 45–75자. 헤드라인은 더 짧아도 됩니다.
  • 외톨이 단어와 한 단어로 끝나는 마지막 줄을 피하세요. 필요하면 카피를 다시 쓰세요.
  • 숫자: 카운터와 표에는 표 형태(tabular figures)를 사용하세요.
  • 서체를 늘리거나 압축하여 공간에 맞추지 마세요. 레이아웃이나 크기를 변경하세요.

오른쪽에서 왼쪽 쓰기 (페르시아어, 아랍어, 히브리어)

  • 컨테이너 수준에서 방향을 설정하고 모양을 제대로 구성할 수 있는 글꼴(예: Vazirmatn, IBM Plex Sans Arabic, Noto Naskh Arabic)을 사용하세요.
  • 코드가 아닌 렌더링된 프레임에서 문자 결합, 연결, 발음 구별 부호, 구두점을 테스트하세요.
  • 혼합 콘텐츠: 라틴 브랜드 이름/URL은 dir="ltr" 속성을 가진 별도 span에 유지하세요. 그렇지 않으면 양방향 알고리즘이 구두점 순서를 바꿀 수 있습니다.
  • 페르시아 숫자 vs 라틴 숫자: 전체 작품에 대해 하나의 시스템을 선택하세요.
  • 같은 광학적 크기에서 라틴 문자보다 줄 높이가 더 필요합니다.
  • 아랍어 스크립트에 자간을 주지 마세요. 필기체 연결이 끊어집니다.

9. 사운드

  • 트랙을 선택하기 전에 사운드의 역할을 결정하세요: 템포 설정자, 감정적 배경, 정보(음성), 또는 강조(SFX).
  • 스템을 분리하세요: 음성, 음악, 앰비언스, 효과음. 음악을 음성 아래 6–10dB로 낮추세요.
  • 클립 시작이 아닌 시각적 이벤트를 강조하세요.
  • 모든 컷에 페이드를 넣으세요. 갑작스러운 시작이나 중단은 클릭 노이즈를 발생시킵니다.
  • 헤드룸을 남겨두고(-1dBTP), 클리핑을 피하며, 전화 스피커를 위해 모노 호환성을 확인하세요.
  • 침묵은 도구입니다. 리빌 전 한 박자 동안 음악을 멈추는 것은 라이저를 추가하는 것보다 더 강력합니다.
  • 모든 트랙의 라이선스를 확인하고 출처를 기록하세요. "무료 다운로드"가 상업적 사용을 허용한다고 가정하지 마세요.

10. 접근성 및 플랫폼 적합성

  • 모든 음성 콘텐츠에 자막을 넣으세요. 화면 텍스트는 소리 없이 보는(소셜 미디어에서 대부분) 경우에도 도움이 됩니다.
  • 색상에만 의미를 부여하지 마세요.
  • 3Hz 이상의 깜빡임을 피하고, 스트로브 효과를 사용하지 마세요.
  • 필수 텍스트는 안전 영역 안에, 휴대폰에서 읽을 수 있는 크기로 유지하세요.
  • 전달 전에 플랫폼의 현재 요구 사항(지속 시간, 화면비, 코덱, 비트레이트)을 확인하세요.

11. 검토 방법

작품을 세 번 시청하세요.

  1. 소리 없이, 50% 크기로 — 위계가 읽히는가? 잘린 부분은 없는가?
  2. 전체 크기로 소리와 함께 — 리듬이 맞는가? 오디오가 이미지와 싸우고 있지 않은가?
  3. 경계 부분을 프레임별로 — 섬광, 틈, 점프, 읽을 수 없는 프레임.

그런 다음 세 가지 질문을 하세요.

  • 시청자가 기억하는 단 한 가지는 무엇인가?
  • 시선이 가장 먼저 가는 곳은 어디이며, 의도된 곳인가?
  • 메시지를 잃지 않고 무엇을 제거할 수 있는가?

제거는 일반적으로 가장 가치 있는 수정입니다.

12. 디자인 단계 산출물

  • brief.md — 주제, 대상, 메시지, 제약 조건, 가정.
  • style-guide.md — 역할과 16진수 값이 포함된 팔레트, 타입 크기, 간격, 모션 언어.
  • storyboard.md — 씬당 한 행/블록: 시간, 목적, 구성, 카피, 모션, 전환, 사운드, 도구.
  • 1–3개의 스타일 프레임 — 시각적 목표. 대량 제작 전에 승인받아야 합니다.

Individual skills in this repo

This repo contains 5 individual skills — each has its own dedicated page.

aminghaseminia/blender-animation

Build 3D animations in Blender headlessly with Python (bpy) — scene setup, materials, lighting, camera rigs, keyframe and procedural animation, Geometry Nodes, particles and simulations, EEVEE/Cycles rendering, and MP4/PNG-sequence output. Triggers include "animate in Blender", "blender python", "bpy script", "3D logo animation", "cinematic render", "particle animation", "product turntable", "render an .blend", "blender headless", or any 3D scene, camera move, or motion graphics job that needs real geometry, light, and depth.

aminghaseminia/manim-animation

Produce mathematical, scientific, and technical animations with Manim Community — equations, proofs, graphs, coordinate systems, geometry, algorithms, data structures, and precise diagram transformations. Use when correctness of mathematical relationships is central, for educational explainers, research or conference visuals, and for animated derivations where every element must be exactly placed. Covers installation with uv, scene design, LaTeX/MathTex, camera and 3D scenes, rendering quality presets, and compositing with other tools.

aminghaseminia/motion-studio

End-to-end animation and motion-graphics production from a natural-language brief. Routes work to Blender (3D), Remotion (2D/typography/data), Manim (math/science), motion-design craft, and FFmpeg (encode/composite/validate), then builds, previews, inspects, revises, and delivers an editable project plus final MP4. Use for any request to "make an animation", "create a video", "animate this logo", "render a motion graphic", "vibe-code an animation", or produce a promo, explainer, title sequence, or social clip.

aminghaseminia/remotion-motion-graphics

Create 2D motion graphics as code with Remotion and React — kinetic typography, logo reveals, explainers, animated charts, UI demos, social clips, subtitles, and data-driven or batch-rendered video. Use when the deliverable is primarily layout, text, and 2D graphics rather than real 3D; when a video must be generated from data or a template; or when a Blender 3D pass needs titles, captions, and transitions composited on top. Covers project setup, deterministic frame-based animation, easing, typography, audio, rendering, and licensing.

aminghaseminia/video-composition

Assemble, mix, normalize, and validate finished video from Blender, Remotion, Manim, screen capture, and audio sources using FFmpeg and FFprobe — concatenation, overlays, alpha compositing, subtitle burn-in, loudness, fades, speed ramps, GIF/thumbnail export, and platform-specific encodes. Use when combining scenes, fixing mismatched resolutions or frame rates, adding music/voice-over, burning captions, converting formats, or verifying that a rendered file is actually correct.

관련 스킬