Communitygithub.com

kohryan/unrealmotion

프롬프트만으로 이미지 생성 참조, 실제 Three.js 재구성, 인과적 모션 및 결정론적 MP4 렌더링을 통해 무음 모션 그래픽 설명 영상을 만듭니다. 프로세스 설명, 컷어웨이, 재조립, 제품 영상, 키네틱 타이포그래피, 데이터 시각화에 사용됩니다. 푸티지만 편집하는 용도는 아닙니다.

unrealmotion란 무엇인가요?

UnrealMotion은 AI 에이전트가 사용자 프롬프트에서 곧바로 재생 가능한 MP4 비디오와 장면 소스 코드를 생성할 수 있게 해주는 스킬입니다. 이는 창작 엔진으로서의 코딩 에이전트에 의존하며, 참조 이미지 검색, 장면 제공, 프레임 캡처, 비디오 인코딩을 위한 번들 스크립트를 사용합니다. 별도의 언어 모델, API 키 또는 유료 비디오 서비스가 필요하지 않으며, Three.js(언리얼 엔진이 아님)를 기반으로 구축되었습니다. 이 스킬은 특히 이미지 생성 참조를 실제 Three.js 3D 모델로 변환하는 '설명자(explainer)' 모드를 지원하며, 인과적 진행, 연속 카메라 경로 및 동적 모션 라이브러리를 갖춘 구조화된 스토리보드를 따릅니다. 또한 사용자 정의 가능한 템플릿, 로컬 명령어(create, preview, qa, render) 및 결정론적 출력(프레임별 업데이트, 누적 물리 효과 없음)을 보장하는 비타협적인 프로덕션 품질 규칙을 제공합니다. 이 스킬은 Claude Code, Cursor, Codex와 같은 AI 코딩 에이전트와 함께 사용하도록 설계되었습니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/kohryan/unrealmotion-skill/tree/HEAD

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

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

문서

unrealmotion은(는) 무엇을 하나요?

사용자의 프롬프트로부터 재생 가능한 MP4와 장면 소스 코드를 제공합니다. 활성 코딩 에이전트가 창작 엔진 역할을 하며, 번들 스크립트가 참조 이미지 검색, 장면 제공, 프레임 캡처 및 비디오 인코딩을 처리합니다. 별도의 언어 모델, API 키 또는 유료 비디오 서비스가 필요하지 않습니다. 이는 언리얼 엔진이 아닌 Three.js입니다.

<skill>을 이 파일이 포함된 디렉터리로 확인하고, 해당 디렉터리에서 패키지 명령을 실행하세요. 각 제작물에 대해 새 <project> 디렉터리를 사용하고 이전 작업을 보존하세요. 종속성이 누락된 경우: npm ci 및 npx playwright install chromium을 실행하세요. node <skill>/scripts/unrealmotion.mjs doctor로 확인하세요. Node 22+, Python 3.10+, FFmpeg 및 ffprobe가 필요합니다. Python 패키지는 전체 데이터셋 코드를 검색할 때만 필요합니다.

프롬프트에서 영화로

  1. 요청에서 주제, 동작, 전달하려는 메시지, 언어, 길이, 형식 및 사실성을 추론합니다. 설명자의 경우 imagegen-threejs.md와 explainers.md를 읽으세요. ImageGen → 실제 Three.js 모델 → 무음 비디오를 사용하고 --mode explainer로 시작하세요: 기본값 60초, 1080×1920, 30fps입니다. 사용자가 명시적으로 변경하지 않는 한 기존의 단순한 파스텔 톤 컷어웨이 스타일을 유지하세요. 프롬프트가 주제, 모델, 스토리 및 모션 레시피를 결정합니다. 번들 데모는 기본 콘텐츠가 아닙니다. 짧은 쇼케이스는 12초, 1920×1080, 60fps를 유지합니다. 요청된 형식과 에셋을 존중하세요. 합리적인 가정 하에 진행하며, 필수 템플릿이나 승인 질문지는 없습니다.
  2. art-direction.md와 motion-library.md를 읽으세요. 새 설명자의 경우 dynamic-story.md를 읽으세요: continuous-camera.md를 읽고 연결된 세계와 실제 연속 3D 카메라 경로, 차분하고 읽기 쉬운 페이스, 2~4개의 일관된 ImageGen 참조 이미지를 사용하여 뚜렷한 설명 컨텍스트를 만드세요. 동적 카피를 위해 text-motion.md을, 설명에 수량이 도움이 될 때는 data-motion.md를 읽으세요. 장면 기초와 모션 프로필을 선택한 후 간결한 plan.json을 작성하세요: 정체성을 정의하는 지오메트리, 재료 팔레트, 샷 타이밍, 주제 동작, 카메라 궤적, 전환, 로컬 에셋 및 출처. "사실적인"과 같은 형용사는 구체적인 증거(비율, 표면 반응, 접촉, 일관된 빛, 모션)가 필요합니다.
  3. 번들된 4,146개 항목 HF 카탈로그를 검색하세요. 영어 주제/재료/메커니즘 용어를 사용하세요. 구조적 세부 사항이 도움이 될 경우 1~3개의 관련 코드 예제를 검색하려면 dataset.md를 읽으세요. 제목뿐만 아니라 실제 HTML/JS 구성을 검사하세요. plan.json에 장면 ID를 인용하세요. 추론 과정을 복사하지 마세요. 데이터셋은 훈련 또는 미세 조정된 모델이 아닌 참조 말뭉치입니다. 저장 공간이 제한된 산업용/객체 에셋의 경우 simready-imagegen.md를 읽으세요: 2,677개 항목의 NVIDIA 메타데이터 카탈로그를 검색하고 관련 예산 내 썸네일/라이선스만 검색하세요. 이는 ImageGen 외관 참조 및 원본 메시 재구성에 사용됩니다. 전체 USD/텍스처 말뭉치를 절대 다운로드하지 마세요. 분해/재조립의 경우 reassembly.md도 읽으세요.
  4. 프로젝트를 생성하세요. 설명자의 경우 프롬프트별 ImageGen 참조 번들을 생성 및 검사하고, reconstruction.json에 안정적인 명명된 부품을 지정하고, model.mjs에 실제 Three.js 볼륨을 빌드하세요. 정확한 프롬프트/출처를 asset-plan.json에 저장하세요. 질문, 인과적 진행, 비트별 동작/카피, 3D 카메라 및 해상도를 포함한 storyboard.json을 작성하세요. 컷어웨이, 재조립 및 작동을 통해 물리적 개체당 하나의 메시 계층 구조를 유지하고, 연결된 컨텍스트를 위해 지속적인 명명된 장면 루트를 사용하며, 월드 배치와 연속 cameraPath를 사용하세요. 모든 비트를 실제 참조 ID에 바인딩하세요. 래스터 평면/자른 이미지 대체물은 허용되지 않습니다. 쇼케이스의 경우 scene.mjs를 직접 작성하세요. CLI는 시맨틱 프롬프트 인터프리터가 아닌 작성 시작 도구입니다. 관련 없는 모델에 제목만 바꾸는 것은 완료가 아닙니다.
  5. 미리보기, 스크러빙, QA 실행 및 기본 해상도에서 대표 프레임을 검사하세요. quality.md를 따르세요: 충실도, 역학/해부학, 재료, 프레이밍, 카피, 전환 및 후반부의 의미 있는 모션을 확인하세요. 실패를 수정하고 영향을 받은 검사를 반복하세요. 소스 해시에 연결된 진실된 review.json을 기록하세요.
  6. --final로 렌더링하고 메타데이터를 확인한 후 MP4, 편집 가능한 프로젝트 및 간결한 확인 노트를 전달하세요. 완성된 영화에 대한 요청은 로컬 내보내기를 승인합니다. 사용자가 미리보기만 요청한 경우 대신 미리보기를 제공하세요. 요청된 비디오 대신 소스 HTML 또는 연락처 시트를 제공하지 마세요.

로컬 명령어

node <skill>/scripts/unrealmotion.mjs templates
node <skill>/scripts/unrealmotion.mjs create <project> --prompt "Film kamera titanium, lensa merakit presisi" --template optical-studio --motion precision-assembly
# 브리핑에 대한 project/scene.mjs, project/project.json 및 project/plan.json을 작성합니다.
node <skill>/scripts/unrealmotion.mjs preview <project>
node <skill>/scripts/unrealmotion.mjs qa <project>
# output/qa/contact-sheet.png AND 기본 해상도 프레임 PNG를 검사한 후 review.json을 작성합니다.
node <skill>/scripts/unrealmotion.mjs render <project> --final
node <skill>/scripts/unrealmotion.mjs probe <project>/output/video.mp4

--width, --height, --duration, --fps, --supersample은 생성 옵션입니다. 새 설명자는 --pace calm --assets multi와 함께 버전 2 스토리를 사용합니다. 브리핑이 정당화하는 경우 --pace dynamic 또는 --assets single을 선택하세요. 기존 버전 1 프로젝트는 계속 지원됩니다. 내보내기를 보존하려면 --output <new.mp4>를 사용하세요. --force는 명시적으로 선택된 출력을 대체합니다. 선택적 --audio <local.wav>는 제공된 오디오 트랙을 비디오에 맞춰 패딩/트리밍합니다. 요청하지 않는 한 합성 내레이션이나 음악을 추가하지 마세요. 미리보기는 재생/일시 정지 및 프레임 스크러빙이 가능한 루프백 URL을 인쇄합니다. 공개 배포가 아닙니다.

기본 설명자 기초는 imagegen-explainer입니다: 프롬프트별 참조 → Three.js 모델 → 스토리 → 비디오. water-system-explainer는 이전 SVG 모션 연구입니다. 쇼케이스 기초는 optical-studio, architectural-light, kinetic-editorial, pelagic-bloom 및 mechanical-reassembly입니다. 쇼케이스 카메라 프로필: cinematic-orbit, precision-assembly, macro-dolly, continuous-flow, editorial-spring입니다. 설명자는 작성된 카메라 경로와 함께 follow-the-flow, 컷어웨이 작동, 재조립, 임계값/응답 또는 비교 모션을 선택합니다. 레시피는 기존 스타일을 변경하지 않습니다. motion-library.md를 참조하세요.

절대 양보할 수 없는 제작 속성

  • 보이는 모든 상태는 셰이더, 파티클, 리그 포즈, 재료 변경 및 카피를 포함하여 요청된 프레임/시간에서 파생됩니다. createScene(config) → {update(seconds, normalizedTime), draw(), inspect()}를 유지하세요. runtime.md를 참조하세요. 최종 전달을 위해 누적 회전, 물리 스테핑, 업데이트 중 무작위 샘플링 또는 실시간 화면 녹화를 사용하지 마세요.
  • 로컬 에셋, 고정된 패키지, 시드 기반 장면 생성, 단일 색상 파이프라인, 일관된 물리적 스케일 및 안정적인 객체 ID를 유지하세요. 렌더러는 외부 요청을 차단합니다. 준비 완료 전에 모델, 텍스처 및 폰트를 로드하세요. 누락된 에셋은 실패입니다.
  • 실제 볼륨과 부착물을 모델링하세요. 베벨, 일관된 부품, 올바른 피벗, 정당화된 러프니스/메탈릭, 부드러운 접촉 그림자 및 제어된 반사를 사용하세요. 투명한 표면은 신중하게 렌더링하세요. 기본 요소 더미, 막대기 해부학, 떠 있는 조각, 망가진 리그 또는 회전하는 일반 객체는 세부 브리핑을 충족시키지 못합니다.
  • 포토리얼리즘적인 인간, 동물, 브랜드 객체 또는 초상화가 중요한 장면의 경우 절차적 지오메트리가 브리핑을 충족할 수 없을 때 적절한 라이선스/사용자 제공 모델, 텍스처 및 리깅된 에셋을 사용하세요. 소스/라이선스를 기록하세요. 동작 전반에 걸쳐 부착, 조인트, 실루엣, 접촉 및 폐색을 검사하세요. 사실성을 단순한 기하학적 액터로 조용히 대체하지 마세요. 재료 충실도 제한을 명확히 명시하세요.
  • 주제 동작은 스토리를 전달해야 합니다: 메커니즘이 작동하고, 재료가 흐르고, 부품이 조립되고, 구조가 펼쳐지거나 정보가 변환됩니다. 카메라 궤도와 표류하는 파티클만으로는 충분하지 않습니다. 강체의 일정 속도 변환을 피하고, 가속, 후속 동작, 필요한 경우 지연 및 속도가 연속적인 카메라 경로를 사용하세요.
  • 설명자는 완전한 시각적 시퀀스를 통해 질문에 답해야 합니다. 더 긴 길이, 추가 자막 및 쇼케이스 릴은 원인/결과, 읽기 쉬운 설명, 적절한 일러스트레이션/모델 및 일관된 장면 전환을 대체하지 않습니다. 무음 요청을 존중하세요. 오디오 설정을 추가하지 마세요.
  • 참조 복잡성과 스타일을 일치시키세요. 이 워크플로우에서는 단순한 일관된 지오메트리, 파스텔 표면 및 명확한 컷어웨이를 선호하세요. 새로운 아트 디렉션을 발명하거나 장식적인 세부 사항을 추가하지 마세요. ImageGen은 외관을 안내합니다. 숨겨진 CAD, 정확한 치수 또는 NVIDIA 시뮬레이션 메타데이터를 복구하지 않습니다.
  • 자동화된 QA는 기술적 속성을 확인합니다. 미적 아름다움, 포토리얼리즘, 정확한 해부학 또는 물리적 정확성을 인증하지 않습니다. 증거를 검사한 후에만 시각적 검사 통과를 표시하세요. 실제로 테스트된 것을 보고하세요.

선택적 기존 엔진

포함된 Three.js 렌더러를 기본으로 사용하세요. 사용자의 기존 Remotion 또는 HyperFrames 프로젝트의 경우 engine-interop.md를 읽고 기본 프레임/시크 계약을 유지하세요. 해당 런타임은 선택 사항이며, 독립적으로 라이선스가 부여되며, 단순히 언급한다고 해서 번들로 제공되거나 테스트되는 것은 아닙니다. 이 스킬의 기반이 되는 소스 연구, 정확한 개정판 및 라이선스 구분은 source-study.md에 있습니다.

관련 스킬