사전 렌더링: 생성된 비주얼 및 안정화된 푸티지
다섯 가지 경로, 하나의 공통 규칙 집합. 코드로 그린 조각은 푸티지가 되어 video로 배치됩니다: 먼저 읽어보세요. SVG 스틸은 하나의 PNG가 되어 image로 배치됩니다: SVG 경로로 건너뛰세요. Lottie 애니메이션도 푸티지가 되며, 프레임당 하나의 새로운 플레이어로 그려집니다: Lottie 경로로 건너뛰세요. 3D 장면은 투명 푸티지 또는 PNG 스틸이 됩니다: 3D 장면 경로로 건너뛰세요. 소스 비디오 안정화는 새로운 클립을 굽습니다: 안정화 경로로 건너뛰세요. 모든 것이 렌더 외부에서 실행되므로 모든 페인터가 동일한 픽셀을 디코딩합니다.
Montagent에는 셰이더나 스크립트 파일이 없습니다(ADR-0017). effects 목록 밖의 룩은 자체 코드에서 그리고, 한 번 인코딩하여 푸티지로 만들고, 일반 video로 배치합니다. 포맷, 스키마 및 페인터는 그대로 유지됩니다(ADR-0156 §7, ADR-0233).
사용 시기
먼저 명명된 경로를 사용하세요. montagent://schema/index.json에서 effects 목록을 읽으세요: 멤버가 룩(블러, 그림자, 틴트, blend, 키잉된 mask)을 구성하는 경우 사용하세요. 사전 렌더링은 어떤 멤버, 페인트 또는 블렌드도 룩을 구성하지 못할 때만 사용하세요: 왜곡, 모자이크, 렌즈 플레어, 파티클, 절차적 패턴 또는 외부 3D 모델/장면.
SVG 경로는 벡터 드로잉(로고, 아이콘, 일러스트레이션)을 SVG 파일로 받았을 때, 또는 스틸을 SVG로 그리는 것이 가장 쉬울 때 사용하세요. 어떤 요소도 SVG 파일을 직접 받아들이지 않습니다(ADR-0171). 애니메이션 SVG(SMIL 또는 CSS)는 이 경로에 해당하지 않습니다: 하나의 스틸 프레임으로 래스터화되어 움직임이 손실됩니다. 대신 배치된 이미지의 자체 scale, rotation 및 opacity를 키잉하세요.
3D 장면 경로는 3D 에셋(.glb, .gltf, .obj, .fbx, .blend, .c4d) 또는 3D 장면을 받았을 때 사용하세요. 어떤 요소도 3D 모델 또는 멀티채널 패스를 직접 받아들이지 않습니다(ADR-0167, ADR-0233). 헤드리스 렌더링은 렌더 외부에서 투명 ProRes 4444 / PNG 푸티지를 생성하여 직접 2D 배치할 준비를 합니다.
Lottie 경로는 Lottie JSON 파일(After Effects 내보내기, LottieFiles 애니메이션)을 받았을 때, 또는 움직임을 Lottie에서 가져오는 것이 가장 쉬울 때 사용하세요. 어떤 요소도 Lottie 파일을 직접 받아들이지 않습니다(ADR-0171). 세 가지 비용이 듭니다. 고정 해상도: 푸티지는 렌더링한 크기의 래스터입니다. 레시피 도구 체인: 조각을 재현하기 위해 설치된 Lottie 플레이어(프로젝트 렌더링용이 아님). 푸티지 크기: MOV의 PNG는 부드러운 아트의 경우 초당 약 6MB, 노이즈가 많은 아트의 경우 초당 141MB(1080p, 25fps 기준)이므로 표시되는 크기로만 렌더링하고 그보다 크게 하지 마세요. 움직임이 몇 개의 도형뿐이라면 네이티브 rect, ellipse 및 path 요소를 키잉하는 것이 더 작고 선명하게 유지됩니다.
사전 렌더링된 조각은 고정된 푸티지입니다. 크기, fps 및 길이는 렌더링할 때 설정됩니다. 룩을 변경하려면 다시 렌더링해야 하므로, 먼저 브리핑의 크기, fps 및 지속 시간을 결정하고 프로젝트의 fps와 일치시키세요.
공통 규칙
모든 경로가 이것을 읽습니다. 한 번만 작성됩니다.
- 크기. 조각이 표시되는 최대 크기로 래스터화하거나 그리세요(
fit,scale및 모든 키잉된 줌 이후). 리터럴 픽셀width와height로 지정하세요. SVG의viewBox에서 유도하지 마세요:viewBox는 드로잉의 비율(픽셀 아님)을 설정하며, 도구마다 viewBox가 없는 파일을 다르게 처리합니다. 레시피에 크기를 명시하세요. 이후의 확대/축소는 래스터를 리샘플링하므로, 확대 대신 레시피를 더 큰 크기로 다시 실행하세요. - 텍스트. 벤더링된 글꼴만 사용하거나 텍스트를 외곽선으로 변환하세요. 시스템 글꼴은 사용하지 마세요: 글꼴이 없는 시스템은 다른 것을 그립니다. 찾을 수 없는 글꼴은 드롭된 스팬이 아니라 빌드 실패입니다. 예를 들어
usvg는 미스를 기록하고 텍스트를 건너뛰므로,build는 SVG의font-family값을fonts에 나열된 글꼴 파일과 비교하고, 래스터라이저 자체의 글꼴 경고에서도 실패합니다. - 레시피. 소스 복사, 정확한 명령어, 도구 버전, 크기 및 디코딩된 픽셀의 해시(디코더가 사용하는 동일한 읽기 방식을 통해 얻은)를 포함하세요. 재구축은 일치 또는 첫 번째 차이점을 보고하며, 파일 바이트를 비교하지 않습니다. 레시피에는 위치가 명시되어 있습니다.
단계
모든 단계를 순서대로 실행하세요. 5단계가 통과되면 조각이 배치됩니다.
- 그리기. 고정된
width,height및frames수의 RGBA 프레임을 생성하는 코드를 어떤 도구로든 작성하세요: 아무것도 그려지지 않은 곳은 투명합니다. stdout에 원시 RGBA를 쓰거나,PRERENDER_FRAMES_DIR로 명명된 폴더에 PNG 파일f00000.png,f00001.png등을 씁니다. 크기는PRERENDER_WIDTH,PRERENDER_HEIGHT,PRERENDER_FPS및PRERENDER_FRAMES에서 읽습니다. 정수 산술 또는 고정 시드를 사용하여 두 번째 실행이 동일한 바이트를 그리도록 하세요. 샘플 조각은 가장 작은 작동 예제입니다. - 명세(Spec). 코드 옆에 빌드 명세를 작성하세요:
name,out(프로젝트의 미디어 폴더),width,height,fps,frames,render(코드를 실행하는 argv),files(코드에 필요한 모든 파일) 및input(PNG를 쓰는 경우 `