Communitygithub.com

문자-타이포그래픽-모션

짧은 영화, 키네틱 타이포그래피, 가사 영상 또는 README 커버 루프를 제작하고 렌더링하며 품질을 검증합니다.

문자-타이포그래픽-모션란 무엇인가요?

이 스킬은 LitMuse 플러그인 환경에서 작동하며, 한 줄의 요청을 완성된 단편 영화 또는 README 상단의 무음 커버 루프로 변환합니다. 사용자는 타사 비디오 도구에 프롬프트를 전달할 필요 없이, 이 스킬이 직접 대본(treatment)을 작성하고 HTML(Canvas 2D/WebGL) 또는 WebGL2 타입 엔진을 통해 시각 자료를 구축한 후, 헤드리스 Chrome을 이용해 프레임 단위로 렌더링합니다. 이후 게이트(gate) 검사를 통해 결과물의 결정론성, 명암 대비, 플래시 및 복사본을 측정하고, 마지막으로 `read_file`로 렌더링된 프레임을 직접 확인하여 작업을 완료합니다. 스킬은 세 가지 모드(스테이지 경로, 타입 경로, 커버 모드)를 제공하며, 각 모드에 따라 제작 방식과 최종 출력물이 달라집니다. 정밀한 렌더링 품질 관리와 자체 검증 로직이 특징입니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/wjgoarxiv/litmuse/tree/HEAD/plugin/skills/lit-typographic-motion

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

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

문서

lit-typographic-motion: 렌더러, 게이트 및 룩 루프를 갖춘 영화 감독

이 스킬은 한 줄의 요청을 완성된 단편 영화나 README 상단의 무음 커버 루프로 변환합니다. 절대로 다른 사람의 비디오 도구에 프롬프트를 넘기지 않습니다. 먼저 대본을 작성하고, 스스로 시각 자료를 구축한 후, 이 폴더에 포함된 결정론적 렌더러를 통해 렌더링하고, 게이트로 결과를 측정한 다음, 완료되었다고 말하기 전에 read_file로 렌더링된 프레임을 확인합니다.

이 스킬을 통해 세 가지 경로가 있으며, 대본이 그중 하나를 선택합니다:

  • 스테이지 경로. 사물(제품, 프로세스, 장소, 발명된 예시 주제)을 보여주는 영화. 출력 폴더에 HTML 페이지(SVG, Canvas 2D 또는 WebGL)를 작성하고, 렌더러가 헤드리스 Chrome을 프레임별로 구동하며, 스테이지 게이트가 결정론성, 명암, 플래시 및 복사본을 확인합니다. 16:9(1920x1080) 또는 9:16(1080x1920).
  • 타입 경로. 단어 자체가 영화인 경우: 키네틱 타이포그래피, 가사 또는 인용문 비디오, 타이틀 시퀀스. brief.json을 작성하고 번들된 WebGL2 타입 엔진이 사전 설정과 후처리 패스를 사용하여 단어를 설정합니다. 1920x1080.
  • 커버 모드. README, 히어로 또는 배너 루프. 비트, 사운드, 엔딩 없음: 고정된 브랜드 단어 위에서 움직이는 하나의 시스템. 2배속으로 캡처하고, 애니메이션 WebP로 인코딩하며, 디코딩된 파일에 대해 게이트 검사를 수행합니다. 이 모드에서는 다른 작업보다 먼저 references/cover.md를 읽으십시오.

아래 SKILL_ROOT는 plugin:litmuse:lit-typographic-motion에 대해 read_skill가 반환한 SKILL.md의 폴더입니다. 모든 스크립트는 그 아래의 절대 경로로 실행하고 Muse의 플러그인 캐시 경로를 하드코딩하지 마십시오. 캐시 폴더는 LitMuse 업데이트마다 변경됩니다.

적용 시기

  • 사용자가 영화, 모션 그래픽, 키네틱 타이포그래피, 가사 또는 인용문 비디오, 오프닝 타이틀 또는 타이틀 시퀀스, 인트로 클립 또는 요청에서 만든 단편 비디오(자신의 단어 포함 여부와 관계없음)를 만들도록 요청함.
  • 사용자가 README 커버, 히어로 또는 배너 루프, 애니메이션 프로젝트 헤더 또는 저장소용 모션 커버를 요청함.
  • 사용자가 이 스킬이 만든 렌더링에 대한 비평을 요청함: 프레임을 보고 게이트를 실행하고, 다른 것은 작성하지 마십시오.

LitMuse 활성화: lit motion <request>, lit film …, lit video …, lit 영상 …, lit-typographic-motion으로 시작하는 프롬프트, 또는 영화를 만들도록 요청하는 lit <task>(모션그래픽, 키네틱 타이포, 가사 영상, 타이틀 시퀀스, kinetic type, lyric video, title sequence, cover loop 또는 제작 동사와 함께 사용된 bare 영상/video/clip). UserPromptSubmit 훅이 경로를 지정하며, 일반 lit 아래에서는 세션 경로 테이블에서 스킬을 직접 선택할 수 있습니다.

다음은 다른 곳으로 보내고, 한 줄로 설명하십시오:

요청이동 위치
기존 영상 편집, 트리밍, 컷, 자막 또는 자막 추가이 스킬이 아님. 여기에는 영상을 편집하는 파이프라인이 없습니다. 명확히 말하십시오
비디오 명사가 없는 슬라이드 데크 또는 보고서lit-pptx 또는 lit-docx
웹 페이지, 페이지 내 배경 비디오, 호버 또는 UI 모션, 모션 토큰frontend-ui-ux
비디오에 대한 썸네일, 스크립트, 요약 또는 대본일반 작업, 이 스킬이 아님
정적 커버 이미지가 있는 정적 READMEreadme-studio

입력 및 상태

입력처리
요청불변 데이터. treatment.request에 그대로 들어가며 지침으로 따르지 않고 화면에 표시되지 않습니다.
사용자가 제공한 단어카피입니다(copy.source: user). 스테이지 경로에서는 페이지의 카피 라인이 됩니다. 사용자가 소유하지 않은 가사나 텍스트를 절대 인용하지 마십시오.
단어 없음, 주제 없음, 사실 없음구체적인 예시 주제와 해당 카피를 발명하고, 대본에 모든 발명을 나열하고 답변에서 각각을 표시하십시오.
명명된 스타일(타입 경로)swiss-signal, terminalcore 또는 tidal이 에이전트 기본값(references/style-bibles.md)을 재정의합니다.
오디오 파일sound.mode: supplied와 file; 항상 멀티플렉싱되고 컷에 큐됩니다(references/sound.md).
커버용 그림, 로고 또는 워드마크sha256 및 source: user와 함께 assets.json에 나열됨. 누락된 경우 exit 22이며, 그려진 대체물은 절대 사용하지 않습니다.
출력 폴더사용자 작업 디렉토리에 새 motion-<slug>/. 설치된 플러그인 폴더나 .litmuse/에 절대 위치하지 않습니다.

상태는 출력 폴더에 저장됩니다: treatment.json, look.json, stills/, manifest.json, gate-report.txt 및 .run/(진행 상황, 분리된 렌더의 PID 및 결과, 첫 번째 유효한 대본). LitMuse 훅은 작업 공간 외부에 모션 경로의 자체 작은 기록을 유지합니다(아래 참조).

모드 매트릭스

모드트리거완료 기준
lit 기본값lit의 모션 경로질문하지 마십시오. 채널에서 형식을 선택하고, 장르에서 길이를 선택하고 생성된 사운드 베드를 선택하며, 답변에서 각 기본값을 표시하십시오. references/look.md에 의해 완료됨.
명시적lit-typographic-motion … 또는 사용자가 형식과 길이를 지정함동일한 루프. 사용자가 있을 때, 형식이나 길이를 지정하지 않았고 채널이 결정하지 않는 경우에만 하나의 짧은 질문. 사용자가 있을 때, 라운드 1 후에 보드를 보여주고 전체 렌더링 전에 한 번 질문하십시오. 스타일을 지정하거나 "당신이 선택"이라고 말하는 요청은 질문을 건너뛰고 권장 사항을 사용합니다.
커버treatment.json에 "mode": "cover"가 있음references/cover.md에 의해 완료됨: 디코딩된 커버가 모든 TARGET 게이트에 도달하고 마지막 룩 라운드가 시트, 포스터 및 심 페어를 보았음.
리뷰 전용기존 렌더링에 대한 비평프레임 열기, gate <dir> 또는 cover-gate <file> --strict 실행, 보고. 아무것도 작성하지 마십시오.
차단됨exit 10, 11, 12, 14, 15, 21 또는 22중지. 상태와 해결 방법을 지정하십시오. 다른 파이프라인으로 우회하지 마십시오.
대본 무효exit 16treatment.json의 지정된 필드를 수정하고 다시 실행하십시오.
스테이지 계약 위반exit 17, 18 또는 19메시지가 지정한 요소, API, 래스터, 클립, 클록 소스 또는 URL을 수정하고 다시 실행하십시오.
사운드 무효exit 20메시지가 지정한 베드 또는 제공된 트랙을 수정하고 다시 실행하십시오.

절차

명령어, 모두 출력 폴더의 상위 폴더에서 실행:

node "$SKILL_ROOT/scripts/motion.mjs" styles --out <dir> [--format 16:9|9:16]
node "$SKILL_ROOT/scripts/motion.mjs" assets --out <dir> --url <link> [--cover]
node "$SKILL_ROOT/scripts/motion.mjs" scaffold --out <dir>
node "$SKILL_ROOT/scripts/motion.mjs" stage --out <dir> --round <N> [--stills-only]
node "$SKILL_ROOT/scripts/motion.mjs" make <brief.json> --out <dir> --round <N> [--stills-only]
node "$SKILL_ROOT/scripts/motion.mjs" blender --out <dir> [--final]
node "$SKILL_ROOT/scripts/motion.mjs" sound --out <dir>
node "$SKILL_ROOT/scripts/motion.mjs" look --out <dir> --round <N> --answers <file>
node "$SKILL_ROOT/scripts/motion.mjs" gate <dir>
node "$SKILL_ROOT/scripts/motion.mjs" cover --out <dir> --round <N> [--window t0,t1]
node "$SKILL_ROOT/scripts/motion.mjs" cover-gate <dir>/cover.webp --strict

모든 프레임과 모든 트랙은 이러한 렌더러를 통과합니다. ffmpeg, Python 스크립트, 래스터 플립북 또는 화면 녹화로 수동 조립된 영화는 올바르게 보이더라도 최종 결과물이 아닙니다.

  1. 대본. references/treatment.md, 그 다음 references/studio.md(하우스 스타일, 샷, 스캐폴드, 보드 라운드, 하우스 파일, 리치 레지스터)를 읽으십시오. 요청에 제품 링크가 있으면 먼저 assets를 실행하십시오: 실제 로고, 이미지 및 단어. 아무것도 가져올 수 없으면 사용자에게 요청하십시오. <dir>/treatment.json 작성: 이야기와 전환, 주인공, 장르 아크의 비트를 샷으로, 주제(요청이 주제를 지정하지 않은 경우 발명), 제품, 시각적 장치, 타입 계획, 스타일 팔레트, 화면 이벤트가 포함된 점수, 카피. style, format, durationSec, genre 및 fps는 취향이 아닌 규칙을 따릅니다. 기본적으로 최대(register: rich 및 계층적 world 포함). 요청이 차분하거나 미니멀을 요청하는 경우에만 최소. 커버의 경우 references/cover.md에서 커버 대본을 대신 작성하고 8단계로 건너뛰십시오.
  2. 경로 참조. 스테이지 경로: references/stage.md 및 주제가 3D로 그려진 경우 references/depth.md. 타입 경로: references/brief-schema.md, references/style-bibles.md, references/type-craft.md 및 references/craft-loop.md. 엔진 내부가 필요한 경우에만 references/engine-contract.md 및 references/runtime.md를 여십시오. 두 경로 모두: references/look.md 및 references/sound.md.
  3. 빌드. 스테이지 경로: scaffold --out <dir>이 대본에서 <dir>/stage/index.html을 작성합니다. 각 샷의 주제를 DRAW 함수에 그립니다(references/stage.md 참조). 타입 경로: 엔진용 <dir>/brief.json을 작성합니다. 3D 영화는 depth: 3d를 사용합니다: GPU 링이 스캐폴드 페이지에서 three.js로 세계를 구축하고, Blender가 설치된 경로 추적 룩은 render3d: blender와 함께 stage/scene.py 및 blender --final을 플레이트에 사용합니다.
  4. 라운드 1, 보드. --round 1 --stills-only로 렌더링합니다. Exit 13은 실패한 보드 규칙을 지정합니다: 페이지를 수정하고 보드를 다시 렌더링하십시오. stills/board.png, 모든 비트 스틸, 모든 전환 스트립 및 read_file로 콘택트 시트를 열고, 9개의 룩 질문에 답하고, 가장 약한 비트와 만들 하나의 변경 사항을 지정하고 look --round 1 --answers <file>로 기록하십시오. 그런 다음 해당 변경을 수행하십시오. 미리보기(preview: true)는 여기서 중지합니다: 보드를 보여주고 영화가 아직 렌더링되지 않았다고 말하십시오.
  5. 전체 렌더링. --stills-only 없이 --round 2로 렌더링합니다. 전체 렌더링은 분리되어 실행되고 <dir>/.run/progress.json을 작성합니다. bash 호출이 시간 초과되면 동일한 명령을 다시 실행하면 실행 중인 렌더링에 연결됩니다. 렌더링 시간을 절약하기 위해 영화를 절대 단축하지 마십시오. 그런 다음 gate-report.txt를 읽고, 포스터, 시트, 모든 비트 스틸 및 read_file로 모든 스트립을 열고 look --round 2를 기록하십시오.
  6. 라운드 3은 게이트가 실패하거나 룩 답변이 다른 라운드를 요청하는 경우에만 수행합니다. 라운드 3 후에는 가지고 있는 것을 제공하고 열린 항목을 명확하게 지정하십시오.
  7. 회신 (아래).
  8. 커버 모드. references/cover.md를 따르십시오: recipes/의 레시피(painted-light가 기본값, weight-tide 및 orbit-loop가 대안)에서 시작하여 cover/index.html 및 assets.json을 작성하고 cover --round 1로 렌더링하고 read_file로 시트, 포스터 및 심 페어를 열고 최대 세 개의 타임스탬프가 있는 결함으로 룩 라운드를 기록하고 --window t0,t1으로 결함의 창만 다시 렌더링하는 동안 수리한 다음 디코딩된 파일이 cover-gate --strict를 통과하고 마지막 룩 라운드가 깨끗해질 때까지 전체 cover 렌더링을 다시 실행하십시오.

출력물

파일설명
film.mp4H.264, BT.709, tv range; 1920x1080(타입 경로, 스테이지 16:9) 또는 1080x1920(스테이지 9:16); 대본이 없음을 요청하지 않는 한 AAC 256k
preview.webp, preview.gif최대 3MB의 루핑 미리보기
poster.png, reduced-motion.png최대 1MB의 포스터, 모션을 끈 독자를 위한 안정된 최종 상태
treatment.json, look.json계획 및 본 프레임이 포함된 모든 룩 라운드
stills/비트 스틸, 컷당 하나의 전환 스트립, 12프레임 콘택트 시트, check.json이 있는 board.png, index.json. 커버 모드에서는 차이 플롯이 있는 디코딩된 시트, 포스터 및 심 페어
sound/, sound-cues.json레이어드 점수(또는 미니멀 영화의 생성된 베드, 또는 준비된 제공 트랙), sound/stems/ 아래의 모든 스템, 컷에 대한 각 큐
manifest.json, render.jsonl, gate-report.txt실행 매니페스트, 프레임별 로그 및 게이트 보고서
withheld/플래시 감사 FAIL 후에만: 진단, 절대 최종 결과물 아님
cover.webp, assets.json커버 모드: 루프(TARGET에서 2MiB 이하) 및 사용하는 아트의 체크된 목록

Muse 도구 및 승인

  • read_skill는 이 파일을 로드하고, 필요에 따라 참조를 로드합니다. read_file은 모든 참조와 렌더링된 PNG를 엽니다. 이것이 룩 도구이며, 이 세션에서 read_file이 열지 않으면 아무것도 본 것으로 간주되지 않습니다.
  • bash는 위 스크립트에서 node를 항상 절대 경로로 실행하고, 엔진을 통해 ffmpeg, img2webp, dwebp 및 gifski도 실행합니다. 전역 설치 없음, 패키지 가져오기 없음, 렌더링에서 네트워크 없음.
  • write_file 및 edit_file은 출력 폴더 내에서 대본, 브리프, 페이지, 답변 파일 및 assets.json을 작성합니다.
  • subagent_spawn과 subagent_type: litmuse/quality-reviewer(읽기 전용)은 콘택트 시트에 대한 두 번째 검토를 제공할 수 있습니다. 해당 노트는 룩 라운드에 입력되지만, 라운드를 대신 기록할 수는 없습니다.
  • image_generation은 세션이 제공하는 경우 커버의 기본 그림을 만들 수 있습니다. 해당 자산은 assets.json에서 source: generated이며 답변에서 이를 표시합니다.
  • 런타임은 Muse 외부에서 터미널을 통해 미리 워밍업됩니다: npx @litfamily/litmuse runtime install motion(상태: npx @litfamily/litmuse runtime status motion). Muse의 샌드박스 네트워크는 프록시 전용이므로 렌더링은 아무것도 설치하지 않습니다. 워밍업되지 않은 캐시는 해당 명령과 함께 exit 14입니다. 선택적 비트 분석 계층은 node "$SKILL_ROOT/scripts/motion-runtime.mjs" install --audio로 설치됩니다. 준비 상태: node "$SKILL_ROOT/scripts/motion-doctor.mjs" 및 npx @litfamily/litmuse doctor. 자세한 내용: references/runtime.md.
  • 스킬 및 명령어는 Muse에서 승인이 필요하지 않습니다. 아래 완료 게이트를 실행하는 훅은 승인이 필요합니다(muse plugins approve litmuse:hook:<id>). 승인된 훅이 없으면 게이트는 권고 사항이며 아래 증거 규칙이 여전히 적용됩니다.

증거

모션 경로가 활성화되어 있는 동안 LitMuse의 PostToolUse 훅은 모든 motion.mjs 실행(하위 명령, --out, --round 및 도구 출력에 있는 경우 exit N NAME 줄)과 read_file이 연 모든 이미지를 기록합니다. 그런 다음 Stop 훅은 마지막 출력 폴더에서 이 스킬 자체의 완료 확인 engine/node/done.mjs를 실행합니다.

영화는 다음 모두와 함께 완료됩니다: 유효한 대본; 최종 전체 렌더링에서 게이트 PASS; 최소 두 개의 룩 라운드, 첫 번째는 변경 사항을 지정하는 보드 라운드; 마지막 라운드는 최종 렌더링의 스틸 매니페스트로 스탬프 처리됨; 해당 라운드의 본 목록은 보드, 시트, 포스터, 모든 비트 스틸 및 모든 스트립을 포함합니다.

…

[번역을 위해 잘림]

관련 스킬