Communitygithub.com

AnmolChandiok/ae-editable-project

코드로 만들어진 모션 비디오(HTML Canvas, JS/Node, Python 렌더, SVG 등 프레임별 렌더러)를 네이티브 편집 가능한 After Effects 프로젝트(.aep)로 변환합니다. 실시간 텍스트 레이어, 셰이프 레이어, 오브젝트별 프리컴프, 실제 키프레임이 있는 카메라 널, 토글 가능한 이펙트 레이어, 오디오 스템 및 나레이션 마커를 포함하며, 레이어드 PSD의 AE 버전입니다.

ae-editable-project란 무엇인가요?

이 스킬은 코드 기반 렌더러(HTML Canvas, JS/Node, Python, SVG 등)로 생성된 모션 비디오를 완전히 편집 가능한 After Effects 프로젝트(.aep)로 변환합니다. 모션 디자이너가 직접 제작한 것처럼 모든 요소가 AE 네이티브로 매핑됩니다: 텍스트는 실제 텍스트 레이어, 패스는 셰이프 레이어, 각 오브젝트는 이름이 지정된 프리컴프, 카메라는 실제 키프레임이 있는 널(Null)로 구현됩니다. 음성 해설에 맞춘 단어별 텍스트 공개, 트림 패스 애니메이션, 핸드헬드 셰이크, 필름 그레인/글로우 룩, 오디오 스템 및 컴프 마커 등 고급 기능도 지원합니다. 핵심 워크플로우는 렌더러에서 scene.json을 내보내고, make_jsx.js로 빌드 스크립트를 생성한 후, After Effects에서 실행하여 .aep를 생성하는 3단계로 구성됩니다. 이 스킬은 Claude Code, Cursor와 같은 AI 코딩 에이전트가 사용자의 요청(예: 'AE 프로젝트로 만들어 줘', '편집 가능하게', 'PSD 같은 비디오 파일')을 처리할 때 호출되며, Cursor, Codex 등 다양한 플랫폼에서도 사용할 수 있습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AnmolChandiok/claude-after-effects-skill/tree/HEAD/plugins/ae-editable-project/skills/ae-editable-project

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

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

문서

코드로 만든 비디오를 편집 가능한 After Effects 프로젝트로 변환하기

목표는 모션 디지이너가 직접 제작한 것처럼 열고 작업할 수 있는 프로젝트를 만드는 것입니다. 텍스트는 실제 텍스트, 패스는 셰이프 레이어, 각 오브젝트는 이름이 지정된 프리컴프, 카메라는 재키프레임 가능한 하나의 널(Null)로 구현됩니다. 반대로, 렌더링된 프레임 시퀀스를 컴프에 그대로 넣는 것은 편집이 불가능하므로 메인 애니메이션으로 절대 전달하지 마세요.

접근 방식은 세 단계로 이루어집니다:

  1. 렌더러가 그리는 동일한 데이터로부터 씬을 내보냅니다.
  2. scene.json으로 작성합니다.
  3. 생성된 ExtendScript를 실행하여 After Effects가 스스로 프로젝트를 빌드하도록 합니다.

바이너리 .aep 파일을 직접 작성하지 않습니다.

renderer data ──export──▶ scene.json + assets/ ──make_jsx.js──▶ build.jsx ──After Effects──▶ project.aep (+ check stills)

번들 스크립트 (scripts/ 디렉토리):

  • aelib.jsx: After Effects 내부에서 실행되는 빌더입니다. 씬을 읽고 컴프, 레이어, 키, 마스크, 이펙트, 매트, 마커 및 오디오를 생성한 후 .aep와 빌드 로그를 저장합니다.
  • make_jsx.js: node make_jsx.js [--portable] scene.json build.jsx. 씬을 검사(누락된 에셋, 잘못된 부모 관계, 프리컴프 순서)하고 하나의 자체 포함된 build.jsx를 작성합니다. --portable 플래그를 사용하면 경로가 build.jsx 기준이 되므로 폴더를 압축하여 다른 컴퓨터(Windows 포함)에서 실행할 수 있습니다. 전달하는 모든 것에 사용하세요.
  • run_in_ae.sh: run_in_ae.sh build.jsx /abs/path/Project.aep [timeout]. macOS에서 설치된 After Effects에서 빌드를 실행하고, 완료를 기다린 후 로그를 출력합니다.

익스포터를 작성하기 전에 references/scene-spec.md를 먼저 읽으세요. 모든 필드, 이징, 확인된 이펙트 매치 이름과 값 범위, 그리고 시간을 낭비하는 함정을 정의합니다.

워크플로우

1. 비디오가 그리는 내용을 파악

렌더러를 읽고 화면에 나타나는 모든 것과 그 움직임을 나열합니다:

  • 배경 또는 월드.
  • 각 오브젝트 또는 문서.
  • 각 텍스트 조각.
  • 카메라 움직임.
  • 단어나 비트에 맞춰진 순간.
  • 룩: 그레인, 글로우, 비네트, 모션 블러, 페이드.
  • 오디오.

각 항목에 대해 숫자가 어디서 오는지(상수, 지오메트리 함수, 타이밍 파일) 기록합니다.

2. 각 요소를 AE 네이티브 형태로 매핑

모션 디자이너가 직접 만들었을 형태를 선택합니다:

코드에서After Effects에서
월드 위의 카메라 움직임 (이동, 확대/축소, 회전)하나의 CAMERA null. 앵커 포인트 = 카메라가 바라보는 지점 (월드 좌표). 스케일 = 줌. 회전 = 롤. 위치 = 컴프 중앙. 모든 월드 레이어를 이 널의 자식으로 만듭니다. 그러면 screen = position + R·scale·(p - anchor)는 정확히 캔버스 카메라 변환이 되므로 월드 레이어는 코드에서 사용하는 좌표를 유지합니다.
핸드헬드 셰이크, 충격 효과널의 위치와 회전에 표현식 적용.

관련 스킬