레이어드 모션 (컴포지션)은(는) 무엇을 하나요?
컴포지션은 여러 레이어로 구성된 모션 그래픽으로, 각 속성이 개별적으로 키프레임되어 사용자가 컴포지션 패널에서 열어 수정할 수 있습니다. 그래픽이 편집될 가능성이 있을 때(예: 이름이 바뀌는 하단 1/3 자막, 사용자가 다시 타이밍을 조정할 타이틀) 이 스킬을 사용하세요. 한 번 쓰고 편집이 예상되지 않는 그래픽은 모션 컴포넌트나 HTML 요소로 충분합니다. convertToComposition 명령어는 모션 컴포넌트나 TSX 컴포넌트를 나중에 레이어로 변환해 줍니다.
작업 흐름
- 검색: 역량(capabilities)에서
workflows종류,compositionsID로 컨트랙트를 찾고,get_command_schema(MCP) 또는searchCatalogue에서commands종류,editCompositionID로 모든 명령어를 확인합니다. - 작게 시작: 필요한 레이어만
addComposition으로 추가하되, 컴포지션 픽셀 단위로 작업합니다. 모든 레이어에 의미 있는 이름을 붙이세요(예: "Name", "Role", "Bar"). 사용자는 패널에서 이 이름을 읽고, 표현식도 이 이름으로 레이어를 찾습니다. - 한 번에 하나의 속성을 키프레임으로 애니메이션합니다. 키프레임의 이징(easing)은 그 키프레임 으로 들어오는 움직임을 결정합니다. 진입은
easeOutCubic으로, 퇴장은easeInCubic으로 이징하고, 진입 시간은 0.4~0.6초로 유지합니다. - 읽어오기 (
get_project:clips[].composition)를 다음 편집 전에 수행하여, 명령어들이 실제 레이어 이름, 애니메이터, 경로, 효과 ID를 사용하도록 합니다. - 완료했다고 말하기 전에 진입, 홀드, 퇴장 구간의 프레임을 확인합니다.
어떤 효과에 어떤 도구를 쓸까
- 글자가 나타나는 효과: 여러 텍스트 레이어에 키프레임을 주지 말고 텍스트 애니메이터를 사용하세요. 코드나 따라 읽는 자막은
textPresettypewriter, 강력한 훅은 wordPop, 차분한 타이틀은 lineRise, 우아한 등장은 fadeByChar를 사용합니다. 어느 것도 맞지 않으면setAnimator로 직접 만드세요(unit, shape, range). - 도형이 와이프되거나 나타나는 효과: 마스크의 너비나 포인트를 키프레임하거나, 다른 레이어의 모양을 따라 나타나게 하려면 트랙 매트(track matte)를 사용하세요.
- 스스로 그려지는 선 (밑줄, 단어를 감싸는 원, 화살표): 스트로크와 트림 패스(trim paths)가 있는 쉐이프 레이어,
trimEnd를 0에서 100까지 키프레임합니다. 둥근 끝(round caps)은 그려지는 느낌, 각진 끝(butt caps)은 잘라내는 느낌을 줍니다. - 한 도형이 다른 도형으로 변하는 효과: 패스의 포인트를 키프레임하세요. 모든 키프레임은 동일한 수의 포인트를 가져야 합니다.
- 계속 움직이는 효과 (부드럽게 떠다니기, 맥박): 수십 개의 키프레임 대신 표현식(
value + wiggle(1, 6), 또는loopOut("pingpong"))을 사용하세요. wiggle은 작게 유지하세요: 몇 픽셀은 생동감, 수십 픽셀은 고장 난 느낌입니다. - 한 레이어가 다른 레이어를 따라가는 효과: 표현식으로 상위 레이어를 읽도록 하세요(
layer("Bar").x). 그러면 나중에 상위 레이어를 수정하면 하위 레이어도 함께 움직입니다. - 깊이감과 마감: 이펙트 스택(드롭 섀도우, 글로우, 스트로크, 색상/그라디언트 채우기, 블러)을 활용하세요. 그래픽당 섀도우 하나, 부드럽고 낮게; 글로우는 밝은 배경의 어두운 텍스트에만 사용합니다.
- 반복되거나 재사용되는 블록 (세 번 사용되는 이름 태그): 프리컴포즈(precompose)하고 프리컴을 세 번 배치하되, 각각 다른 시간 오프셋을 줍니다.
하단 1/3 자막 예시 (레이어 구성)
- 막대(사각형, 브랜드 색상) – 사각형 마스크로 너비를 0에서 100%까지 0.5초에 걸쳐 키프레임, easeOutCubic.
- 이름(굵은 텍스트) – 막대 위에
textPresetlineRise로 0.15초 후 시작; 직함(더 가볍고 작은 텍스트)은 fadeByChar로 그보다 0.1초 후. - 최소 2.5초 동안 홀드; 퇴장은 그룹의 불투명도를 키프레임하거나 막대 마스크를 다시 0으로 키프레임, 0.3초 easeInCubic.
- 화면 하단 안전 영역에 배치, 자막과 겹치지 않도록.
주의사항 (Gotchas)
- 키프레임된 속성에
setProps를 사용할 때는time이 필요합니다: 해당 시간에 키프레임을 설정합니다.time없이 호출하면 거부됩니다(기본값으로는 표시되지 않기 때문). - 잠긴 레이어는
setLayer { locked: false }를 호출하기 전까지 모든 편집을 거부합니다. - 트랙 매트는 바로 위에 있는 레이어를 사용합니다. 레이어 순서를 바꾸면 짝이 깨집니다.
- 표현식은 작은 언어입니다:
time,value,index,duration및 나열된 함수만 인식합니다. 이 외의 것은 거부되고 허용된 목록이 반환됩니다. - 트림과 스트로크는 쉐이프의 스트로크에 적용되며, 채우기에는 적용되지 않습니다.
관련 스킬: motion-graphics, titles, text-led-video. 전문가: motion-designer.