개요
버추얼 카메라 컴포넌트(VCam Component) 는 언리얼 엔진 에서의 커스텀 버추얼 카메라 빌드를 지원하는 기본 컴포넌트입니다.
사용자는 버추얼 카메라 컴포넌트로 커스텀 모디파이어(Modifier) 및 출력 제공자(Output Provider) 를 추가하여 언리얼 엔진 내에서 시네 카메라(Cine Camera) 를 구동할 수 있습니다.
가이드 목표
이 퀵스타트 가이드는 버추얼 카메라 컴포넌트를 사용하여 버추얼 카메라를 생성하는 작업의 기본 단계를 살펴볼 수 있도록 디자인되었습니다.
학습 목표
이 가이드에서는 다음과 같은 내용을 학습합니다.
- 씬에 카메라를 배치하고 버추얼 카메라 컴포넌트를 추가하는 방법
- 카메라에 모디파이어를 추가하여 비헤이비어를 커스터마이징하는 방법
- 모디파이어를 활성화하거나 비활성화하는 기본 키 입력을 추가하는 방법
- 다양한 출력 제공자를 사용하는 방법
1 - 필수 구성
시작하기 전에 프로젝트 내에서 적합한 플러그인을 활성화해야 합니다.
-
세팅(Settings) > 플러그인(Plugins) 을 클릭하여 플러그인 메뉴를 엽니다.
-
버추얼 카메라(Virtual Camera) 플러그인을 찾아 활성화 합니다.
-
에디터를 재시작합니다.
섹션 결과
이제 버추얼 카메라를 생성할 준비가 되었습니다.
2 - 버추얼 카메라 생성
버추얼 카메라 컴포넌트는 시네 카메라 컴포넌트(Cine Camera Component)를 포함하는 모든 액터와 함께 작동합니다. 이 예시에서는 편의상 시네 카메라 액터(Cine Camera Actor)를 사용합니다.
-
액터 배치(Place Actors) 패널에서 시네마틱(Cinematic) 카테고리를 선택하고 시네 카메라 액터 를 클릭하여 씬으로 드래그합니다.
-
시네 카메라 액터가 선택되어 있는 상태로 디테일(Details) 패널에서 카메라 컴포넌트(CameraComponent) 를 선택합니다.
-
컴포넌트 추가(Add Component) 버튼을 클릭하고 VCam 컴포넌트를 검색하여 추가합니다.
'VCam' 컴포넌트는 'CameraComponent'의 자손입니다.
-
'VCam'을 선택하고 클릭하여 컴포넌트를 추가합니다.
-
씬에서 시네 카메라 액터를 자유롭게 움직여보면서 현재 카메라 세팅(Current Camera Settings) 을 원하는 대로 조정합니다. 아래 예시에서는 씬에 배치되어 있는 미어캣을 프레임 안에 담을 수 있게 카메라를 옮겼고, 항상 피사체에 초점을 맞추도록 카메라를 조정했습니다.
카메라 세팅 조정에 대한 자세한 내용은 시네 카메라 액터 사용 문서 페이지를 참고하세요.
-
'카메라 액터(Camera Actor)'를 선택하고 컴포넌트 계층구조에서 VCam 컴포넌트를 선택합니다.
-
이제 버추얼 카메라 섹션 아래에서 프로퍼티를 사용할 수 있습니다.
프로퍼티는 다음과 같습니다.
| 프로퍼티 | 설명 |
|---|---|
| 활성화됨(Enabled) | 전체 버추얼 카메라 컴포넌트의 활성화 및 비활성화를 토글합니다. |
| 라이브 링크 서브젝트(Live Link Subject) | 라이브 링크 플러그인을 통해 사용되는 서브젝트입니다. 이 컴포넌트는 서브젝트의 카메라 정보를 사용하여 씬에서 카메라를 구동합니다. |
| 뷰포트를 카메라에 잠금(Lock Viewport to Camera) | 뷰포트는 버추얼 카메라의 시점에서 렌더링됩니다. |
| 시퀀서에 의해 스폰된 경우 컴포넌트 비활성화(Disable Component when Spawned by Sequencer) | 시퀀서에 의해 스폰된 경우 버추얼 카메라 컴포넌트를 비활성화합니다. ''스포너블(Spawnable)'로 설정된 VCam 컴포넌트가 포함되어 있는 시퀀서를 재생하는 경우 VCam 컴포넌트 두 개가 동시에 활성화될 수 있는 상황을 방지해줍니다. |
| 타깃 뷰포트(Target Viewport) | 컴포넌트가 해당 뷰를 렌더링할 때 사용되는 에디터 뷰포트입니다. |
| 출력 제공자 | 모든 출력 제공자 목록을 포함합니다. |
| 모디파이어 컨텍스트(Modifier Context) | 모든 모디파이어 간에 공유되는 임의의 데이터를 포함하는 선택적인 오브젝트입니다. |
| 모디파이어 스택(Modifier Stack) | 컴포넌트에 추가된 모든 모디파이어의 목록을 포함합니다. |
섹션 결과
시네 카메라 액터를 씬에 배치하고 버추얼 카메라 컴포넌트를 추가했습니다. 이제 모디파이어 를 추가하여 카메라를 커스터마이징할 준비가 되었습니다.
3 - 모디파이어 추가
모디파이어 는 커스텀 이펙트와 동작을 추가하여 카메라를 조작함으로써 카메라 동작을 실감 나게 시뮬레이션할 수 있습니다. 커스텀 모디파이어는 블루프린트나 C++을 사용하여 생성할 수 있으며, 스택에 추가하여 다양한 이펙트를 레이어링할 수 있습니다.
스택의 모디파이어는 위에서 아래 순서로 실행되며 이펙트도 동일한 순서대로 적용됩니다.
첫 모디파이어 생성
-
콘텐츠 브라우저(Content Browser) 에서 우클릭하고 버추얼 카메라 카테고리 아래에서 VCam 모디파이어(VCam Modifier) 를 선택합니다.
-
블루프린트의 이름을 VCM_LookAt 으로 짓고 더블클릭하여 실행합니다.
-
내 블루프린트(My Blueprint) 탭으로 가서 변수(Variables) 옆의 + 기호 를 클릭하여 새 변수를 추가합니다. 새 변수의 이름은 TargetActor 로 짓습니다.
-
TargetActor 가 선택되어 있는 상태로 디테일 패널에서 변수 유형(Variable Type) 드롭다운을 클릭합니다. 액터(Actor) 를 검색하여 오브젝트 레퍼런스(Object Reference) 를 선택합니다.
-
인스턴스 편집가능(Instance Editable) 체크박스를 선택하고 블루프린트를 컴파일 및 저장 합니다.
-
TargetActor 를 이벤트 그래프(Event Graph) 로 드래그하고 Get TargetActor 를 선택합니다. 그런 다음 노드를 드래그하여 아래와 같이 Is Valid 를 검색하여 선택합니다.
-
Event on Apply 를 Is Valid 에 연결합니다.
-
Event On Apply 의 카메라 컴포넌트(Camera Component) 핀을 드래그하여 Get World Location 을 찾아 선택합니다.
-
TargetActor 에서 드래그하여 Get Actor Location 을 찾아 선택합니다.
-
GetWorldLocation의 반환 값(Return Value) 을 드래그하여 Find Look At Rotation 을 찾아 선택합니다.
-
Get Actor Location 의 반환 값 핀을 Find Look at Rotation 의 타깃(Target) 핀에 연결합니다.
-
Event On Apply 의 카메라 컴포넌트 핀을 드래그하여 Set World Rotation 을 찾아 선택합니다.
-
Is Valid 노드의 유효함(Is Valid) 핀을 Set World Rotation 에 연결합니다. Find Look at Rotation 의 반환 값 핀을 Set World Rotation 의 새 회전(New Rotation) 핀에 연결합니다.
-
블루프린트를 컴파일하고 저장합니다.
스택에 모디파이어 추가
이제 모디파이어 스택 에 커스텀 모디파이어를 추가할 준비가 되었습니다.
-
액터 배치 탭의 기본(Basic) 카테고리에서 구체(Sphere) 를 클릭하여 레벨로 드래그합니다.
-
'카메라 액터'를 선택하고 컴포넌트 계층구조에서 VCam 컴포넌트를 선택합니다.
-
'모디파이어 스택'의 + 버튼 을 클릭하여 목록에 항목을 하나 추가합니다.
-
모디파이어의 이름(예: Look At )을 입력합니다. 이름을 추가하면 나중에 블루프린트에서 이 모디파이어를 참조할 수 있습니다.
-
생성된 모디파이어(Generated Modifier) 의 드롭다운 화살표 를 클릭하여 목록에서 VCM_LookAt 을 선택합니다.
-
모디파이어(Modifier) 의 디폴트(Default) 섹션을 펼치고 타깃 액터(Target Actor) 드롭다운을 클릭합니다. 레벨에 추가한 구체 액터를 선택합니다.
-
레벨에 추가한 구체 액터를 선택하고 이동합니다. 카메라가 구체 를 향해 회전하는 것을 볼 수 있습니다.

섹션 결과
이 섹션에서는 블루프린트를 사용하여 커스텀 카메라 모디파이어를 생성하는 방법을 알아보았습니다.
또한 커스텀 모디파이어를 모디파이어 스택 에 추가하여 에디터 내에서 버추얼 카메라를 조작하는 방법에 대해서도 살펴봤습니다.
4 - 버추얼 카메라 입력 시스템 사용
현재 버추얼 카메라 입력 시스템은 임시 버전이며, 향후 더 발전된 버전으로 대체될 예정입니다.
버추얼 카메라 컴포넌트 는 모디파이어 내에서 에디터 입력 이벤트 를 직접 사용하여 사용자에게 추가적인 제어 기능을 제공할 수 있습니다.
아래에는 이 시스템을 사용하여 모디파이어에 새로운 기능을 추가하는 방법이 나와 있습니다.
가이드 목표
이 섹션의 목표는 키 하나로 이펙트를 활성화하거나 비활성화할 수 있도록 모디파이어에 키 입력 을 추가하는 것입니다.
입력 이벤트 생성
-
콘텐츠 브라우저 에서 VCM_LookAt 블루프린트를 더블클릭하여 실행합니다.
-
이벤트 그래프 를 우클릭하고 Get VCamInputSubsystem 함수를 찾아 선택합니다.
-
VCam Input Subsystem 에서 드래그하여 Bind Key Up Event 를 찾아 선택합니다. Event On Initialize 를 Bind Key Up Event 에 연결합니다.
-
빨간색 델리게이트(Delegate) 핀을 드래그하여 커스텀 이벤트 추가 를 찾아 선택합니다. 새 커스텀 이벤트의 이름을 ToggleActivation 으로 짓습니다.
-
Bind Key Up Event 에서 키보드 아이콘 을 클릭하고 S 키를 누르면 해당 이벤트에 키를 바인딩하게 됩니다. 아니면 드롭다운 화살표 를 누르고 목록에서 원하는 키를 선택할 수도 있습니다.
-
이벤트 그래프 를 우클릭하고 버추얼 카메라 카테고리에서 Set Enabled 를 찾습니다. ToggleActivation 을 Set Enabled 에 연결합니다.
-
이벤트 그래프 를 우클릭하고 버추얼 카메라 카테고리에서 Is Enabled 를 찾습니다.
-
Is Enabled 에서 드래그하여 Not 을 찾아서 추가합니다.
-
Not 을 Set Enabled 의 새 활성화(New Enabled) 핀에 연결합니다.
-
씬으로 돌아가 구체 액터를 이동하면서 S 키를 누르면 이펙트를 토글할 수 있습니다.
버추얼 카메라 입력 시스템은 사용자가 키를 누를 때마다 실행되며, 뷰포트에 포커스가 없는 경우에도 마찬가지입니다. 이로 인해 사용자가 다른 용도로 동일한 키를 눌렀을 때 충돌이 발생할 수 있습니다. 가령, 사용자가 콘텐츠 브라우저 에서 에셋 이름을 바꾸려고 S 키를 눌렀지만 이벤트가 실행되는 경우를 예로 들 수 있습니다.
-
이와 같은 모디파이어의 우발적인 활성화를 방지하려면 입력에 Shift 키 조합을 섞는 등 코드에 추가적인 안전 장치를 더해주는 것이 좋습니다.
-
VCM_LookAt 으로 돌아가서 아래와 같이 ToggleActivation 과 Set Enabled 사이에 Branch 노드를 추가합니다.
-
Toggle Activation 노드의 키 이벤트(Key Event) 핀에서 드래그하여 Get Input Event from Key Event 함수를 찾아 선택합니다.
-
노드에서 드래그하여 Is Shift Down 함수를 찾아 선택합니다.
-
마지막으로, 아래와 같이 Is Shift Down 노드를 Branch 노드의 조건(Condition) 핀에 연결합니다.
-
그러면 모디파이어는 Shift 키를 누른 상태에서 S 키가 눌렸을 때만 실행됩니다.
섹션 결과
이 섹션에서는 S 키를 눌렀을 때 실행되는 입력 이벤트를 추가했습니다. 이 이벤트는 모디파이어의 효과를 활성화 및 비활성화할 수 있습니다. 또한 Shift 키를 안전 장치로 추가하여 사용자가 다른 용도로 S 키를 눌렀을 때 발생할 수 있는 충돌을 방지했습니다.
5 - 출력 제공자 추가
출력 제공자 시스템은 뷰포트, 원격 세션 프로토콜을 사용하는 디바이스, 컴포셔 플러그인 및 지원되는 다양한 비디오 캡처 카드 등 여러 제공자에 버추얼 카메라의 출력을 라우팅하는데 사용됩니다.
출력 제공자는 항상 위에서 아래 순서로 실행됩니다.
아래에서는 버추얼 카메라 컴포넌트와 함께 사용할 수 있는 출력 제공자를 살펴봅니다.
뷰포트 출력 제공자
이 제공자는 버추얼 카메라의 뷰를 에디터의 메인 뷰포트로 직접 출력합니다.
-
VCam 컴포넌트를 선택하고 출력 제공자 옆의 + 표시 를 클릭하면 목록에 새 제공자를 추가할 수 있습니다.
-
목록에서 뷰포트 출력 제공자(Viewport Output Provider) 옵션을 선택합니다.
-
이제 다양한 제공자 사이에서 공유되는 프로퍼티를 확인할 수 있습니다.
프로퍼티 설명 활성화(Is Active) 제공자를 활성화 및 비활성화합니다. UMG 오버레이(UMG Overlay) UMG 위젯이 이미지 출력 위에 오버레이됩니다. 오버라이드 해상도 사용(Use Override Resolution) 출력 이미지에 커스텀 해상도를 설정합니다. 해상도가 고정된 외부 디바이스를 사용할 때 특히 편리합니다. 오버라이드 해상도(Override Resolution) 출력 이미지에 사용되는 고정 해상도입니다. -
예를 들어 UMG 오버레이 드롭다운을 클릭하고 TestUMG 를 찾아 테스트 위젯 을 뷰포트에 추가할 수 있습니다.
-
마지막으로, 체크박스를 클릭하여 출력 제공자를 활성화 로 설정합니다.
-
이제 씬의 메인 뷰포트에서 오버레이를 확인할 수 있습니다. 필요에 맞게 카메라 출력을 커스터마이징하는 방법의 한 예시로 참고해 주세요.
언리얼 원격 출력 제공자
이 제공자는 언리얼 리모트 2 앱처럼 원격 세션 프로토콜로 연결된 원격 디바이스에 메인 에디터 뷰포트를 출력합니다. 이 방식으로 연결된 호환 디바이스는 모두 이 용도로 사용될 수 있습니다.
다음으로, 프로젝트를 환경설정하여 원격 세션을 사용하는 외부 디바이스에 연결해보겠습니다.
-
세팅 > 프로젝트 세팅(Project Settings) 을 엽니다.
-
UDP 메시지(UDP Message) 섹션으로 이동한 후 유니캐스트 엔드포인트(Unicast Endpoint) 를 설정합니다. 이때 컴퓨터의 IP 주소 끝에 :0 을 붙여 포트 번호를 나타냅니다.
-
렌더링(Rendering) 섹션의 디폴트 세팅(Default Settings) 에서 화살표를 클릭하여 고급 세팅을 펼칩니다. 프레임 버퍼 픽셀 포맷(Frame Buffer Pixel Format) 을 8비트 RGBA(8bit RGBA) 로 설정합니다.
-
에디터를 재시작합니다.
iOS 디바이스 구성
App Store에서 ARKit 가 활성화된 iOS 디바이스에 언리얼 리모트 2 앱 을 다운로드하고 앱을 실행합니다.
디바이스 연결
-
버추얼 카메라 액터에서 VCam 컴포넌트를 선택하고 '출력 제공자(Output Provider)' 드롭다운 목록에서 언리얼 원격 출력 제공자(Unreal Remote Output Provider) 를 선택합니다.
-
디바이스에서 언리얼 리모트 2 앱을 실행합니다. 컴퓨터의 IP 주소를 입력하고 연결(Connect) 버튼을 탭하여 연결합니다.
-
이제 디바이스 화면에 메인 에디터 뷰포트가 미러링되는 것을 확인할 수 있습니다.
미디어 출력 제공자
미디어 출력 제공자(Media Output Provider) 는 Black Magic이나 AJA의 비디오 캡처 카드처럼 언리얼 미디어 프레임워크에서 지원되는 모든 디바이스에 버추얼 카메라의 출력을 전송합니다.
일단 선택한 경우, 출력 파라미터를 지정하는 데 사용되는 출력 환경설정(Output Config) 을 선택할 수 있습니다.
언리얼 미디어 프레임워크의 자세한 사용 방법은 미디어 프레임워크 문서 페이지를 참고하세요.
컴포셔 출력 제공자
컴포셔 출력 제공자(Composure Output Provider) 는 컴포셔 플러그인에 의해 직접 사용될 수 있는 렌더 타깃으로 버추얼 카메라의 출력을 전송합니다. 또한 카메라 뷰가 렌더링될 컴포셔 레이어 타깃(Composure Layer Target) 을 지정할 수 있습니다.
컴포셔 플러그인의 사용 방법에 대한 자세한 내용은 컴포셔를 사용한 실시간 합성 문서 페이지를 참고하세요.
섹션 결과
이 섹션에서는 버추얼 카메라 컴포넌트에 다양한 출력 제공자를 추가하는 방법에 대해 살펴봤습니다. 이제 버추얼 카메라를 사용하여 에디터 뷰포트나 원격 세션 프로토콜을 통해 외부 디바이스에 직접 출력할 수 있습니다.
또한 출력을 전송하여 미디어 프레임워크 및 컴포셔 플러그인으로 처리하는 방법도 알아봤습니다.
다음 단계
자신의 버추얼 카메라를 직접 빌드하는 방법에 대해 살펴봤으므로, 버추얼 카메라 액터 퀵스타트에서 언리얼 엔진에 포함되어 있는 사전 빌드된 버추얼 카메라 액터에 대해서도 알아보세요.