Choose your operating system:
Windows
macOS
Linux
기본적으로 언리얼 에디터는 컴퓨터의 현재 시스템 시간에 따라 자체 timecode (타임코드)를 생성합니다. 이 타임코드는 기본적으로 초당 30 프레임으로 실행되도록 설정되어 있지만, 보통 엔진에서 초당 렌더링하는 프레임 수는 훨씬 많습니다. 그래서 일반적으로 출력에 연속된 여러 프레임이 같은 타임코드 값을 할당받게 됩니다.
전문 비디오 작업을 할 때는 여러 비디오 피드 및 신호 처리 장치간에 타임코드를 동기화해야 합니다. 그러기 위해 언리얼 엔진의 타임코드를 작업 중인 비디오 피드의 타임코드와 일치시켜야 할 수도 있습니다. 경우에 따라 한 발 더 나아가서, 기준 입력을 통해 들어오는 비디오 각 프레임에 대해 한 프레임만 생성하도록 엔진을 잠글 수도 있습니다. 이를 일컬어 genlock (젠록)이라 합니다.
여기서는 언리얼 엔진이 별도의 타임코드 값을 생성하는 대신 AJA 카드에 지정한 포트의 타임코드 값을 채택하는 방법과, 그 타임코드 시그널에 언리얼 엔진을 젠록하는 방법을 설명합니다.
타임코드 및 젠록 관리는 활발히 개발 중이며, 이후 버전에서 변경될 가능성이 있습니다.
언리얼 에디터에서 타임코드 시각화
언리얼 에디터에서 작업할 때 언리얼 엔진이 사용 중인 실제 타임코드 값을 확인하려면, Timecode Provider (타임코드 프로바이더) 패널을 사용합니다. 이 패널은 메인 메뉴의 창 > 개발자 툴 > 타임코드 프로바이더 아래에서 찾을 수 있습니다.
현재 타임코드, 타임코드 프로바이더 (타임코드 값의 소스), 초 단위로 생성되는 타임코드 프레임 수가 표시됩니다. 이 패널은 메인 레벨 에디터 UI 어디에나 도킹할 수 있습니다.
또는 다음 콘솔 명령을 사용해도 됩니다.
stat timecode
언리얼 에디터 뷰포트에 HH:MM:SS:FF 형식으로 값이 출력되는 것이 보입니다.
입력 신호에서 타임코드를 채택하도록, 또는 비디오 신호에 젠록하도록 언리얼 엔진을 구성한 경우, 타임코드 및 젠록 소스도 볼 수 있습니다. 예:
이 명령을 사용해서 기대하는 속도로 언리얼 엔진이 프레임을 생성하는지, 입력 비디오와 같은 타임코드 값을 사용하는지 확인할 수 있습니다.
타임코드 및 젠록 구성
AJA 또는 Blackmagic 장치에서 오는 입력 SDI 비디오 피드에서 언리얼 엔진이 타임코드 값을 채택하도록 만드는 방법과, 그 피드에 프레임 속도를 고정시켜 입력 각 프레임당 출력 한 프레임만 생성하도록 만드는 방법을 단계별로 설명합니다.
-
콘텐츠 브라우저에 우클릭하고 기본 애셋 생성 > 블루프린트 클래스 를 선택합니다.
-
부모 클래스 선택 창에서 모든 클래스 섹션을 (1) 펼칩니다. (그림처럼) AjaTimecodeProvider 클래스 또는 BlackmagicTimecodeProvider 클래스를 (2) 선택하고 선택 (3)을 클릭합니다.
콘텐츠 브라우저로 돌아와 새 애셋에 AJA_Timecode_Port 또는 Blackmagic_Timecode_Port 처럼 설명이 되는 이름을 짓습니다. -
새 애셋을 더블클릭하여 블루프린트 에디터에서 열고 디테일 패널에서 프로퍼티를 구성합니다.
-
들어오는 비디오 스트림에서 타임코드를 읽으려면, Video Configuration 또는 Media Configuration 를 AJA 또는 Blackmagic 카드의 포트로, 그리고 (해당되는 경우) 피드에서 읽을 타임코드 유형을 (LTC 또는 VITC) 설정합니다.
-
AJA 카드를 사용하고 비디오 스트림이 아닌 카드의 기준 포트에서 타임코드를 읽으려면, Use Reference In 를 활성화하고 Video Configuration 대신 Reference Configuration 을 구성합니다.
-
-
블루프린트 클래스를 컴파일 , 저장 후 블루프린트 에디터를 닫습니다.
-
언리얼 엔진을 비디오 소스로 젠록하려면, 이전 단계를 반복하여 블루프린트 클래스를 하나 더 만들어 구성하고, 이번에는 부모 클래스를 AjaCustomTimeStep 또는 BlackmagicCustomTimeStep 로 합니다.
-
이 클래스는 AjaTimecodeProvider 또는 BlackmagicTimecodeProvider 와 비슷한 세팅이 필요합니다:
AJA 카드 역시 추가 세팅을 제공하며, 자세한 내용은 툴팁을 참고하세요.
-
메인 메뉴에서 편집 > 프로젝트 세팅 을 선택합니다.
프로젝트 세팅 창에서 엔진 > 일반 세팅 카테고리의 (1) Timecode 섹션을 (2) 찾습니다. TimecodeProvider 드롭다운 목록에서 생성한 타임코드 포트 애셋을 선택합니다.
-
언리얼 엔진을 비디오 소스에 젠록하려면, 위의 Framerate 섹션을 찾아 하단의 고급 프로퍼티를 펼칩니다. Custom TimeStep 드롭다운 목록에서 생성한 젠록 포트 애셋을 선택합니다.
-
언리얼 에디터를 닫고 프로젝트를 재시작합니다.
미디어 프로파일을 사용해서 프로젝트에 여러가지 다양한 미디어 구성을 설정하려는 경우, 각 미디어 프로파일에서 Timecode 및 Timestep Providers 에 대한 프로젝트 수준의 기본 세팅을 오버라이드해도 됩니다. 자세한 정보는 다중 미디어 구성 지원 문서를 참고하세요.
최종 결과
타임코드 프로바이더 및 커스텀 타임스텝 클래스에 설정한 포트로 비디오 입력을 받고 있고, 그 비디오에 해상도, 프레임 속도, 타임코드 형식을 지정한 경우, 언리얼 엔진은 비디오의 타임코드를 채택해서 각 입력 프레임마다 하나의 출력 프레임을 생성하도록 프레임 업데이트 빈도를 고정시킬 것입니다.
이것이 작동하는지 확인하려면, 언리얼 에디터에서 타임코드 시각화 부분의 설명된 방법 중 하나를 사용하세요.
타임코드 텍셀 인코딩
디버깅 목적으로 AJA 및 Blackmagic 장치에 대한 미디어 소스 및 미디어 출력 애셋은 각 프레임의 타임코드를 비디오 이미지에 흰색으로 밝힌 픽셀로 인코딩할 수 있습니다. 비디오의 특정 프레임이 해당 비디오와 함께 제공되는 타임코드 신호와 일치하는지 확인하는 시각적인 방법이 필요한 경우 좋습니다.
타임코드는 보통 HH:MM::SS:FF 형식 총 12 자리로 표시됩니다. 이 자릿수 각각은 텍스처 출력의 이미지 맨 위부터 시작하는 행을 할당받습니다. 각 행에서 이미지 왼쪽부터 그 타임코드 숫자 값 위치에 있는 픽셀을 찾아 타임코드 값을 나타냅니다. 가장 왼쪽 픽셀은 픽셀 번호 0 입니다.
즉 예를 들어 주어진 타임코드 값이 12:08:44:12 라면:
-
첫 번째 행 왼쪽에서 두 번째 픽셀이 켜집니다 (픽셀 번호 1).
-
두 번째 행 왼쪽에서 세 번째 픽셀이 켜집니다 (픽셀 번호 2).
-
세 번째 행 가장 왼쪽 픽셀이 켜집니다 (픽셀 번호 0).
-
네 번째 행 왼쪽에서 아홉 번째 픽셀이 켜집니다 (픽셀 번호 8).
-
이런 식입니다.