Fusion에서 손그림 Paint 프레임을 반복 재생하려면 완전한 주기를 한 번 그린 다음 Time Stretcher 노드를 사용해 해당 소스 프레임을 반복합니다. 이 Mac 작업 흐름은 컴포지션에서 반복 애니메이션을 만들며, 프레임별로 확인할 수 있는 6프레임 예제를 제공합니다.
여기서 할 작업은 프레임 단위로 만드는 짧은 애니메이션입니다. 원을 조금씩 다르게 그린 그림 6개를 DaVinci Resolve 타임라인 클립의 전체 길이 동안 반복합니다. 이 작업 흐름은 Blackmagic Design의 Fusion 21.1 Reference Manual에 설명된 Paint, expression, Time Stretcher 컨트롤을 사용합니다.
어떤 Paint 스트로크 유형을 사용해야 할까요?
각 그림이 개별 프레임에 표시되어야 한다면 Multistroke를 선택하세요. Blackmagic 문서에 따르면 Multistroke의 기본 지속 시간은 1프레임입니다. 그리기 전에 브러시와 지속 시간을 설정하세요. 이 스트로크는 일반 Stroke 도구에서 제공되는 이후 편집 기능을 지원하지 않습니다. Fusion reference manual의 “Paint”, 특히 “Single-Frame Stroke Types”를 참고하세요.
일반 Stroke 및 Polyline Stroke 도구는 다르게 작동합니다. 처음 설정된 지속 시간이 전체 컴포지션에 걸쳐 있습니다. 편집 가능한 경로나 Write-On 컨트롤로 선이 그려지는 애니메이션이 필요할 때 유용합니다. 여러 포즈를 따로 그리는 시퀀스에서는 이 기본 설정 때문에 이전 그림이 이후 그림 위에 계속 표시될 수 있습니다. Blackmagic은 같은 설명서의 “Editable Stroke Types” 및 “Animating and Tracking Paint Strokes”에서 이러한 차이를 설명합니다.
이 예제에서는 지속 시간을 1프레임으로 설정한 Multistroke를 사용합니다. 연속된 6개 프레임 각각에 완전한 원을 그리고, 매번 윤곽을 조금씩 바꾸세요. 여기서 사용하는 그림은 예시용이며, 가져온 아트워크나 푸티지는 필요하지 않습니다.
그림을 위한 별도의 캔버스 설정하기
Resolve의 Edit 페이지에서 Effects Library를 열고 Effects 카테고리에서 Fusion Composition을 찾으세요. 이를 비디오 트랙에 끌어다 놓고 원하는 최종 길이로 자릅니다. 예를 들면 5초로 설정합니다. 컴포지션을 선택하고 Fusion 페이지를 여세요. DaVinci Resolve 21 Reference Manual에서는 Fusion Composition을 사용자 지정 가능한 효과로 설명하고, Fusion 페이지의 노드 기반 작업 공간을 안내합니다.
Background 노드와 Paint 노드를 추가합니다. Node Editor에 포커스가 있는 상태에서 Shift-Spacebar를 누르고 필요한 노드를 검색한 다음 Return을 누르세요. 다음 순서로 노드를 연결합니다. Background1 → Paint1 → MediaOut1. Blackmagic은 Fusion reference manual의 “Working in the Node Editor”에서 이 노드 생성 단축키를 설명합니다.
Background1을 선택하고 이미지 크기를 사용할 컴포지션에 맞춘 다음, 투명 캔버스를 위해 색상의 Alpha를 0으로 설정하세요. Paint는 캔버스 해상도를 설정할 이미지 입력이 필요합니다. Blackmagic은 별도의 합성 드로잉 레이어를 위해 투명한 Background를 Paint에 연결하는 방법을 구체적으로 설명합니다. Fusion manual의 “Using Paint as the Foreground in a Merge Composite”를 참고하세요.
캔버스를 분리해 두면 유용한 타이밍 경계도 생깁니다. 이 드로잉 브랜치에서 Paint 다음에 반복 작업을 배치하세요. 움직이는 푸티지에 직접 그림을 그린 뒤 결합된 이미지를 리타이밍하면 소스 시간 변경으로 푸티지도 반복됩니다. 설명서의 “Time Stretcher” 섹션에 따르면 Time Stretcher는 입력에 연결된 이미지를 샘플링하므로 이런 결과가 생깁니다.
완전한 주기를 그리고 확인하기
Paint1을 선택하고 뷰어에 출력을 표시하세요. 뷰어 위 Paint 도구 모음에서 Multistroke를 선택합니다. 그리기 전에 브러시 색상, 크기, 스트로크 지속 시간을 설정하세요. 설명서에서는 단일 프레임 스트로크를 다루며 지속 시간 컨트롤을 Stroke Duration이라고 부릅니다. 이 예제에서는 값을 1로 유지하세요. 이러한 설정 요건은 “Paint”에 설명되어 있습니다.
Fusion의 타임 룰러에 표시되는 프레임 번호를 사용하세요. 아래 예제는 첫 번째 그림이 Fusion 프레임 0에 있다고 가정합니다. 작업 범위가 다른 프레임에서 시작한다면 다음 섹션의 오프셋 표현식을 사용하세요.
- 프레임 0에서 첫 번째 원을 그립니다.
- 프레임 1로 이동해 두 번째 변형을 그립니다.
- 프레임 2, 3, 4, 5까지 계속합니다.
- 반복을 추가하기 전에 6개 프레임을 모두 다시 훑어봅니다.
각 프레임에는 의도한 그림만 있어야 하며, 인접 프레임의 불필요한 스트로크가 남아 있으면 안 됩니다. Paint1을 일시적으로 직접 보면 확인하기 쉽습니다. 타이밍을 변경하기 전에 소스 주기를 살펴볼 수 있습니다.
작업하면서 그림 5에서 그림 0으로 넘어가는 부분도 고려하세요. 이 원 예제에서는 반복될 때 미묘하게 흔들리는 느낌을 원한다면 두 그림의 크기와 위치를 적당히 비슷하게 유지하세요. 이는 애니메이션 디자인 선택입니다. 프레임 번호를 반복해도 마지막 그림과 첫 그림 사이의 눈에 띄는 점프가 해결되지는 않습니다.
Time Stretcher로 프레임 반복하기
Paint1 다음에 Time Stretcher 노드를 추가해 다음 순서로 연결합니다. Background1 → Paint1 → TimeStretcher1 → MediaOut1. Source Time 컨트롤은 현재 출력 프레임에 어떤 업스트림 프레임을 표시할지 결정합니다. Fusion manual의 “Time Stretcher” 섹션에서는 이 동작을 설명하고, 새로 추가한 노드에는 기본적으로 Source Time 애니메이션 곡선이 있으며 키프레임 하나가 0으로 설정되어 있다고 안내합니다.
이 기본 애니메이션을 표현식으로 바꾸세요.
- Source Time 레이블을 마우스 오른쪽 버튼으로 클릭하고 기존 애니메이션 이름이 표시된 Remove 항목을 선택합니다.
- Source Time 숫자 필드를 두 번 클릭하고
=을 입력한 다음 Return을 눌러 표현식 필드를 엽니다. - 해당 표현식 필드에
time % 6을 입력합니다. - 노드의 보간 모드를 Nearest로 설정합니다.
Mac에서는 보조 마우스 버튼이나 트랙패드 클릭을 사용하지 않는 경우 Control-click으로 컨텍스트 메뉴를 열 수 있습니다. Apple은 “Right-click on Mac”에서 이를 설명합니다. Blackmagic은 Fusion manual의 “Editing Parameters in the Inspector”에서 매개변수 애니메이션을 제거하는 방법을, “Using SimpleExpressions”에서 =을 사용해 표현식을 입력하는 방법을 안내합니다.
time % 6은 독립 실행형 프로그램이 아니라 Inspector 표현식입니다. Fusion은 time을 현재 프레임 번호로 설명하며, 한 줄 Lua 표현식을 지원합니다. Lua의 % 연산자는 모듈로 나머지를 반환하므로 이 표현식은 소스 프레임 0–5를 반복합니다. 이 반복 공식은 설명서에 명시된 기능을 바탕으로 합니다. Fusion의 표현식 설명과 Lua의 산술 연산자를 참고하세요.
| 출력 프레임 | 요청된 소스 프레임 | 예상되는 그림 |
|---|---|---|
| 0 | 0 | 첫 번째 원 |
| 1 | 1 | 두 번째 원 |
| 5 | 5 | 여섯 번째 원 |
| 6 | 0 | 첫 번째 원 다시 표시 |
| 7 | 1 | 두 번째 원 다시 표시 |
| 11 | 5 | 여섯 번째 원 다시 표시 |
| 12 | 0 | 첫 번째 원 다시 표시 |
개별 그림을 그대로 유지하려면 Nearest를 선택하세요. Blackmagic 설명에 따르면 Nearest는 프레임을 복제하거나 삭제하고, Blend는 인접 프레임을 서로 디졸브합니다. 프레임 단위로 그리는 이 예제에서 블렌딩을 사용하면 그리지 않은 중간 모습이 생깁니다. “Time Stretcher”의 보간 컨트롤 설명을 참고하세요.
프레임 범위에 맞게 표현식 조정하기
소스 프레임을 양 끝값을 포함해 세세요. 프레임 0부터 5까지의 그림은 6프레임 주기를 이루므로 % 6를 사용합니다. % 5을 사용하면 반복 시퀀스에서 그림 5가 빠집니다. 예시로 타임라인 속도를 초당 24프레임으로 설정하면 6프레임은 0.25초이며, 초당 4회 반복됩니다.
그림이 소스 프레임 100–105에 있고 첫 번째 그림을 출력 프레임 100에 표시하려면 100 + ((time - 100) % 6)을 사용하세요. 출력 프레임 100–105에서는 소스 프레임 100–105를 요청하고, 출력 프레임 106에서는 소스 프레임 100으로 돌아갑니다.
일반적인 관계는 **소스 시작 프레임 + ((현재 프레임 − 출력 시작 프레임) 모듈로 주기 길이)**입니다. Edit 페이지의 타임라인 타임코드가 아니라 실제 Fusion 프레임 번호를 대입하세요. 이 예제에서는 각 연속 그림이 출력 프레임 하나씩 표시된다고 가정합니다. 더 느린 주기를 원한다면 표현식을 바꾸기 전에 의도한 홀드와 타이밍을 정하세요.
출력 확인 및 일반적인 문제 진단
TimeStretcher1 또는 MediaOut1을 두 주기 이상 확인하세요. 0부터 시작하는 예제에서는 프레임 5, 6, 11, 12를 각각 확인합니다. 이러한 경계 프레임을 살펴보면 연속 재생보다 주기 길이가 잘못되었거나 그림이 빠진 문제를 더 쉽게 찾을 수 있습니다.
Fusion의 재생 컨트롤에 있는 Loop 버튼은 미리보기에 유용하지만, 재생 범위에서 재생 헤드가 이동하는 방식을 제어합니다. Blackmagic은 Fusion reference manual의 “Looping Options”에서 반복 및 핑퐁 미리 보기 모드를 모두 설명합니다. Source Time 표현식은 컴포지션 안에서 이미지 시퀀스를 반복합니다.
| 증상 | 확인할 항목 | 해결 방법 |
|---|---|---|
| 모든 출력 프레임에 같은 그림이 표시됨 | Source Time에 기본 상수 애니메이션이 남아 있을 수 있음 | 표현식이 Source Time을 제어하며, 스크럽할 때 표시값이 바뀌는지 확인합니다 |
| 이후 소스 프레임에 이전 그림이 계속 남아 있음 | 스트로크 유형과 지속 시간 | Paint1을 직접 확인합니다. 새 그림을 그리기 전에 지속 시간이 1인 Multistroke를 사용합니다 |
| 일정한 간격으로 빈 프레임이 나타남 | 소스 그림 누락 또는 범위 설정 오류 | 모든 소스 프레임을 확인하고 주기 길이를 양 끝값 포함 방식으로 계산했는지 점검합니다 |
| 그림이 서로 블렌딩되어 표시됨 | Time Stretcher 보간 | Nearest를 선택합니다 |
| 그림과 함께 배경 푸티지도 반복됨 | Time Stretcher의 위치 | 별도의 투명 Paint 브랜치에서 합성 전에 처리합니다 |
Edit 페이지로 돌아가 전체 Fusion Composition을 재생하세요. 첫 번째 그림이 의도한 위치에서 표시되고 반복이 클립의 마지막 프레임까지 계속되는지 확인합니다. 나중에 클립의 시작점이나 길이를 변경하면 표현식의 출력 시작 프레임 가정을 다시 살펴보고 새 경계도 확인하세요.
안정적인 Paint 루프는 깔끔한 소스 주기에서 시작합니다. 의도한 프레임이 모두 있고, 스트로크 지속 시간이 그리기 방식에 맞으며, 마지막 그림에서 첫 번째 그림으로의 전환이 의도적으로 설계되어야 합니다. 프레임이 올바르면 Time Stretcher를 사용해 그림 원본을 후속 작업에 활용하면서 간단하게 반복할 수 있습니다.
출처
- Fusion 21.1 Reference Manual — Blackmagic Design.
- DaVinci Resolve 21 Reference Manual — Blackmagic Design.
- Right-click on Mac — Apple.
- Lua 5.1 Reference Manual: Arithmetic Operators — Lua.org.