Communitygithub.com

ice-motion

Ice Motion Director의 내부 모션 크래프트입니다. /ice로 시작하는 명령어로, 각 영화 및 편집 유형에 맞춰 측정된 타이밍, 이징 곡선, 폐쇄형 스프링 공식, 홀드 정책, 컷 및 전환 카탈로그, 심 연속성, 카메라 움직임, 구도, 2D/3D 모션 등을 포함한 모션 계획을 작성합니다.

ice-motion란 무엇인가요?

Ice Motion은 Ice Motion Director 워크플로우(ice-film, ice-explainer, ice-remake, ice-edit, ice-lottie)에서 호출되어 각 영화 또는 편집 유형에 맞는 상세한 모션 계획을 작성하는 전문 AI 에이전트 스킬입니다. 이 스킬은 모션 언어 설정, 모션 팔레트 할당, 각 비트(beat)의 운동 작업과 타이밍 작성, 심(seam) 연속성 관리, 카메라 움직임 설계, 그리고 시각적 풍부도 기준 충족 검증 등 10단계 절차를 따릅니다. 상업 광고나 제품 여정과 같은 특정 유형의 경우 머신이 검증 가능한 모션 계약(motion contract)을 생성하여 Python 스크립트로 무결성을 검증합니다. 모든 모션 결정은 근거와 출처를 ice-direction을 통해 기록하며, 폐쇄형 스프링 공식과 시드 기반 난수를 사용하여 모든 프레임이 시간의 순수 함수가 되도록 보장합니다. 이 스킬은 Claude Code, Cursor 등 AI 코딩 에이전트 환경에서 작동하며, 참조 문서와 스크립트를 활용하여 일관되고 측정 가능한 모션 디자인을 제공합니다.

지원 대상~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/Omar-Tnzxo/ice-motion-director/tree/main/skills/ice-motion

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

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

문서

Ice Motion: 모션 크래프트

이 스킬은 사물이 어떻게 움직일지를 결정합니다. 브리핑과 방향이 수립된 후에 워크플로우(ice-film, ice-explainer, ice-remake, ice-edit, ice-lottie)에 의해 호출됩니다. 모션 계획을 작성하며, 빌드하거나 렌더링하지 않습니다.

1. 이 스킬이 소유하고 가리키는 것

소유가리킴
운동 작업, 모션 동사, 원인과 결과운동성 타이포그래피, 캡션, 읽기 시간, 표시 유형의 타이핑 케이던스: ice-type
지속 시간, 이징, 지연(stagger), 오버랩, 스프링음악, SFX, 음성 해설, 비트 그리드, 단어 타이밍: ice-audio
홀드 정책(활성, 카메라 전용, 진정한 정지, 유휴 없음)게이트, 심 검증, 프레임 스캔, 밀도 측정: ice-qa
컷 및 전환 카탈로그, 전환 정책엔진 구문, 렌더링, 셔터 캡처, 플랫폼 안전 영역: ice-engines
심, 캐리, 벡터 법칙, 핸드오프아트 및 드로잉 스타일, 캐릭터 리그, 내레이션 문법: ice-styles
카메라, 구도, 히어로 크기, 스테이징 라이트, 풍부도 측정팔레트, 유형 페어링, 반-동질성 지문, 결정 로그: ice-direction
2D, 2.5D 및 3D 모션; 물리학; 모핑; 루프아랍어 및 오른쪽에서 왼쪽 문자 형태와 방향: ice-arabic
영화 내 커서 및 UI 데모 모션출시 앱 및 사이트 UI 모션, Lottie, 로고 벡터 준비: ice-lottie
무브 덱, 원자적 무브, 샷 청사진자산 진실, 실제 UI 캡처, 로고: ice-assets

다른 스킬을 이름으로 가리키고, 그 규칙을 다시 설명하지 마십시오.

2. 호출 시 절차

  1. 브리핑 슬롯(영화 또는 편집 유형, 플랫폼, 종횡비, 지속 시간, 언어, 레지스터, 브랜드 단어)과 방향 로그를 읽습니다. 유형이 누락된 경우 워크플로우에 물어보고 추측하지 마십시오.
  2. references/motion-language-by-type.md를 열고 영화의 모션 언어를 설정합니다: 홀드 정책, 전환 정책, 카메라 정책, 오버슛 정책, 클록 및 블러 문법, 페이스. 브리핑이 명시하지 않은 경우에만 산업 및 브랜드 성격 프리셋을 적용합니다.
  3. 모션 성격을 작성합니다: 하나의 은유와 3-5개의 규칙(references/motion-grammar.md 섹션 8). 다양한 예제가 있으니 절대 복사하지 마십시오.
  4. 모션 팔레트를 할당합니다: 3개의 핵심(core) 무브, 최대 2개의 악센트, 최대 1개의 시그니처, 이전 영화의 핵심 무브는 피합니다(references/move-deck.md, references/anti-slideshow-and-density.md 섹션 6).
  5. 모든 비트(beat)에 대해 운동 작업과 동사, 타이밍과 이즈, 그리고 중요도 수준을 작성합니다(references/motion-grammar.md, references/timing-and-easing.md, references/measured-motion.md).
  6. 모든 경계에 대해 캐리어, 종료 및 진입 벡터와 이유를 포함한 심 행을 작성합니다(references/seams-and-carry.md, references/transition-policy.md, references/cut-catalog.md).
  7. 모든 카메라 움직임에 대해 이유와 윈도우를 작성합니다(references/camera.md).
  8. 계획을 안티-슬라이드쇼 규칙과 유형별 밀도 목표(references/anti-slideshow-and-density.md) 및 시각적 풍부도 최소 기준에 대해 확인합니다: 영화 유형의 '풍부도 최소 기준' 표(ice-film 워크플로우의 references/film-types/<type>.md)와 references/composition-and-staging.md 섹션 7의 측정 및 수정 사항을 읽습니다. 최소 기준 미만의 샷은 아무것도 빌드되기 전에 재구성됩니다.
  9. 상업 광고, 제품 여정 및 음성 해설 없는 텍스트 중심 영화의 경우, 기계 검증 가능한 모션 계약(형태: assets/motion-contract.example.json; 원칙: references/continuous-journey.md)도 작성하고 python scripts/validate_motion_contract.py ice/plan/motion-contract.json --project-root .를 PASS가 출력될 때까지 실행합니다. 계획을 워크플로우에 전달합니다; ice-qa가 렌더를 검증합니다. 검증기가 문자 그대로 확인하는 세 가지 사항:
    • 참조: 분해 노트가 있는 세 개의 역할별 참조. 날짜가 지정된 연구에서 실제로 시청할 수 있는 참조를 찾지 못한 경우, "references": [](또는 가진 참조)와 함께 "referencesWaiver": {"reason": "<검색 내용, 시청 가능한 참조가 없는 이유>", "researchNote": "ice/research/<note>.md"}를 작성하십시오; 보지 않은 영화를 설명하는 노트를 참조로 가리키지 마십시오.
    • 계보(lineage): 각 경계를 넘어 그림이 아닌 ID를 비교합니다: 나가는 장면의 transition.semanticId는 다음 장면의 entry.semanticId와 동일해야 하므로, 운반되는 객체에 양쪽에서 동일한 semanticId를 부여하십시오. 그림이 실제로 운반되는지는 ice-qa와 리뷰어가 렌더에서 판단합니다.
    • 일반 동사(slide, grow, scale, float 및 목록의 나머지)는 객체가 말 그대로 그 메커니즘인 경우에만 실패합니다. 그런 다음 해당 primaryMotion 또는 텍스트 단위에 "literalMechanism": "<실제 메커니즘을 한 문장으로>"를 추가하십시오.
  10. 모든 모션 결정을 그 이유와 출처와 함께 ice-direction(ice/DIRECTION.md)을 통해 기록합니다.

3. 보편 법칙(모든 유형에서 유지)

  1. 모든 움직임은 작업(주의 집중, 연속성 유지, 변화 표시, 캐릭터 표현)을 수행하거나 제거됩니다.
  2. 모션은 의미를 따릅니다: 흐름은 흐르고, 빌드는 조립되며, 카운트다운은 틱택하고, 경로는 방향으로 그려지고, 숫자는 원인이 변하는 동안 카운트됩니다.
  3. 한 번에 하나의 초점 모션; 지원 요소는 대기하고, 초점 요소는 절대 기다리지 않습니다.
  4. 진입은 감속하고, 종료는 가속하며, 화면 내 움직임은 인 앤 아웃으로 이징되고, 충돌은 접촉 지점으로 가속됩니다; 기계적이지 않은 한 공간 이동에 선형을 사용하지 마십시오; 모든 것에 하나의 이즈를 사용하지 마십시오(영화당 최소 3개의 이징 캐릭터).
  5. 종료는 진입보다 빠릅니다; 진입은 2-3개의 감쇠 채널을 사용하며, 불투명도만으로는 안 됩니다; 절대 0에서 성장하지 마십시오.
  6. 지연(stagger)은 그룹당 약 0.5초 미만으로 유지하고, 불규칙하며, 중요도 순서로 합니다; 오프셋은 오프셋하는 움직임보다 짧습니다.
  7. 대비가 메시지입니다: 속도(가장 느린 장면은 가장 빠른 장면의 약 3배), 샷 길이, 밀도 및 정지를 다양하게 하십시오; 스케일, 효과 및 악센트는 한 번 사용하십시오.
  8. 어떤 것이 모든 경계를 교차합니다: 운반되는 객체, 일치하는 벡터, 음성 또는 비트; 장면 A의 종료는 장면 B의 진입(동일 축, 방향, 속도)을 결정합니다.
  9. 카메라는 구두점입니다: 하나의 명명된 이유로 움직이며, 전환에는 느리게, 악센트에만 빠르게, 연속 세 번의 안쪽 푸시(push)는 없습니다.
  10. 홀드는 결정입니다: 영화의 홀드 정책은 유형별로 선택되고 모든 곳에 적용됩니다; 콘텐츠가 부족한 장면은 단축되거나 스토리가 주어지며, 절대 흔들리지 않습니다.
  11. 모든 프레임은 시간의 순수 함수입니다: 폐쇄형 스프링, 시드 기반 난수, 벽 시계 없음, 상태 저장 솔버 없음.
  12. 효과는 약한 레이아웃, 약한 포즈 또는 누락된 증거를 보완하지 않습니다.

4. 범위별로 해결된 충돌(요약)

질문유형별 답변파일
홀드 중 무엇이 움직입니까?활성(런칭, 앱 광고, 소셜, 하이프), 카메라 전용(설명, 이야기, 데이터, 장편), 진정한 정지(구두점으로서 브랜드, 아트 휴식, 운동 휴식, 코미디), 유휴 없음(UI 워크스루, 내레이션 런칭)references/holds-and-stillness.md
크로스페이드?런칭, 앱 광고, 하이프, 운동성, 콜라주, 음악 주도, 소셜에서는 장면 간 금지; 조용한 브랜드, 아트, 장편, 팟캐스트, 차트-대-차트에서는 "이것은 계속된다"로 허용references/transition-policy.md
하드 컷?편집된 푸티지, 설명 및 콜라주에서 약 95%의 변경; 카메라가 편집자인 영화에서는 다운비트에서만 최대 두 번references/transition-policy.md
오버슛?데이터, 금융, 건강, 럭셔리, 카메라, 텍스트에는 없음; 런칭 및 UI에는 약간; 소비자 영화당 하나의 스프링; 어린이 및 마스코트에게만 장난기 있음references/timing-and-easing.md
최종이 아닌 장면에서 종료?전환이 종료인 경우(조립된 런칭 영화) 금지; 내레이션이 있는 설명에서는 짧은 가속 종료 또는 제자리 강등references/transition-policy.md
프레임 채우기 또는 큰 빈 바닥?채우기(비즈니스 스팟, 설명, 모든 세로 광고) 또는 약 70% 텍스처 바닥(미니멀 장르 참조, 조용한 브랜드, 풍경만): 참조 장르와 레지스터로 선택. 어느 쪽이든 유형의 풍부도 최소 기준이 유지됩니다; "프리미엄"은 혼란을 빼고, 채움을 빼지 않습니다references/composition-and-staging.md 섹션 2 및 7
홀드 중 카메라?느린 푸시 3-6%(정책 A 및 B); 고정(C 및 D)references/camera.md, references/holds-and-stillness.md

5. 출력 계약: 모션 계획

워크플로우는 ice/plan/motion-plan.md로 저장합니다. 모든 슬롯을 채우십시오; 슬롯은 플레이스홀더이며 예제 값이 아닙니다.

## 모션 언어
type: <영화 또는 편집 유형> | hold policy: <A|B|C|D> | transitions: <주요 + 악센트> | camera policy: <...>
overshoot: <없음|약간|하나의 스프링|장난기> | clock: <fps, 부드러움 또는 스텝> | blur grammar: <스미어|선명|셔터>
personality: <하나의 은유> + <3-5개의 규칙>
palette: core <무브, 무브, 무브> | accents <무브, 무브> | signature <무브 또는 없음>
richness: hero_share <n> | hero_width <n 또는 해당 없음> | frame_fill <16분의 n> | empty_half <s> | depth_layers <n> | in_shot_motion <n 퍼센트> | longest_still <s> | light_events <n> | real_material <퍼센트 또는 해당 없음> (영화 유형 파일의 최소 기준 숫자)

## 비트(각 행 하나씩)
| t in-out | beat role | importance 1-3 | focal element | job | verb | ease | duration | stagger | buys |

## 심(경계당 하나의 행)
| cut t | out motion (axis, direction, speed, blur) | seam type | in motion | carrier | ease pair | cue | reason |

## 카메라 윈도우
| from | apex | dwell end | to | target | move | reason |

6. 파일

필요열기시기
유형, 산업 또는 브랜드에 대한 모션 언어 설정references/motion-language-by-type.md첫 번째, 매번
무언가가 움직이는지 여부와 이유 결정; 동사; 원인과 결과; 성격references/motion-grammar.md모든 비트 계획
지속 시간, 이즈 방향, 지연, 오버랩 법칙, 오버슛 정책, 타이밍 앵커references/timing-and-easing.md모든 비트 타이밍
측정된 인간 숫자와 12개의 적합 이즈references/measured-motion.md 및 scripts/measured-eases.mjs런칭, 앱 광고, UI, 하이프; 참조 무브 일치
스프링 공식, 감쇠 가이드, 프리셋 패밀리, 명명된 cubic-bezier 곡선references/springs-and-curves.md 및 scripts/springs.mjs모든 스프링 또는 사용자 정의 곡선
홀드 중 발생 상황; 종료 홀드; 프리즈; 루프references/holds-and-stillness.md홀드 또는 종료 전
컷 또는 전환의 정확한 구성references/cut-catalog.md심 구축
전환 유형, 개수, 크로스페이드 및 종료 정책, 심 계획 필드references/transition-policy.md심 선택
캐리, 벡터 법칙, 핸드오프 계약, 공차, 루트 주인공references/seams-and-carry.md모든 경계
하나의 형태, 하나의 세계 및 하나의 배우 영화references/one-take-films.md방향이 연속 영화를 요청할 때
카메라 이유, 리그 규칙, 무브 지속 시간, 흔들림, 밀도 제한references/camera.md모든 카메라 움직임
초점, 히어로 크기, 레이어, 레이아웃, 스테이징, 스테이징 라이트, 시각적 풍부도 최소 기준(섹션 7)references/composition-and-staging.md모든 샷 프레이밍; 8단계에서 계획 확인
2D vs 2.5D vs 3D, 시차, 피사계 심도, 3D 비행 값references/depth-and-3d.md깊이 또는 3D 비트
슬라이드쇼 실패 모드, 리듬, 밀도 목표, 지출 규칙references/anti-slideshow-and-density.md계획 검토
엔지니어링으로서의 애니메이션 원칙, 물리학 레시피, 모핑, 드로우 온, 루프references/physics-and-morphing.md물리학 또는 모핑 비트
커서, 클릭, 드래그, 토글, 에이전트 상태, UI 데모 레시피references/cursor-and-ui.md모든 UI 데모
값 테이블과 의도 선택기가 있는 작은 무브references/atomic-moves.md한 비트에 대한 무브 선택
46카드 무브 덱, 거부된 이름, 메커니즘 카탈로그references/move-deck.md모션 팔레트 할당
시간 코딩 청사진, 샷 구성, 시간 뼈대references/shot-blueprints.md샷 시퀀스 계획
프레임 클록, 블러 문법, 모션 블러 시기, 그레인references/motion-blur-and-clock.md클록 및 블러 설정
하나의 루트 주인공, 상태 체인, 상속 채널, 하드 컷 레코드, 행동하는 텍스트, 종료(창립자 원본)references/continuous-journey.md상업 광고 및 제품 여정
물리적 결정 계약, 던지기, 인력, 강성 UI 종료, 모션 단계별 사운드(창립자 원본)references/motion-choreography.md물리학 또는 인과 비트
프레임 및 텍스트 초점 단위 계약, 카메라 필요성 테스트, 카메라 동사, 2D 앵커 공식(창립자 원본)references/semantic-camera.md상업 광고의 모든 카메라 결정
모션 계약 형태assets/motion-contract.example.json모션 계약 작성(값은 예시일 뿐)

스크립트(Windows, macOS, Linux). 최소 Node 및 Python 버전: ice-engines 스킬의 references/versions.json에 있는 runtimes; Python 패키지: scripts/requirements.txt(정확한 핀은 versions.json과 동기화).

스크립트런타임사용
node scripts/measured-eases.mjs [ease] [samples]Node12개의 측정된 이즈 출력 또는 가져오기
node scripts/springs.mjs [w z seconds]Node폐쇄형 스프링 및 정착 시간 출력 또는 가져오기
python scripts/validate_motion_contract.py <contract.json> [--project-root <folder>]Python, 표준 라이브러리엄격한 인과, 시간, 공개, 계보, 카메라 및 사운드 계약 게이트; 종료 코드 1은 실패 목록 표시
python scripts/audit_web_section_motion.py <project folder>Python, 표준 라이브러리애니메이션 웹 섹션 코드 패턴 거부(종료 코드 1)
python scripts/audit_motion.py --video <mp4> --audio <wav>numpy 및 opencv-python-headless가 있는 Python참조 대비 오디오 온셋 및 시각적 변화 밀도; 진단 도구, 판결 아님

창립자의 파일에는 "From the founder's commercial-motion-design skill"이라는 메모가 있습니다.

Individual skills in this repo

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

관련 스킬