버추얼 카메라 컴포넌트 퀵스타트

버추얼 카메라 컴포넌트는 언리얼 엔진에서 커스텀 버추얼 카메라를 빌드하는 토대를 제공하는 기본 아키텍처입니다.

Windows
MacOS
Linux

개요

버추얼 카메라 컴포넌트(VCam Component) 언리얼 엔진 에서의 커스텀 버추얼 카메라 빌드를 지원하는 기본 컴포넌트입니다.

사용자는 버추얼 카메라 컴포넌트로 커스텀 모디파이어(Modifier)출력 제공자(Output Provider) 를 추가하여 언리얼 엔진 내에서 시네 카메라(Cine Camera) 를 구동할 수 있습니다.

가이드 목표

이 퀵스타트 가이드는 버추얼 카메라 컴포넌트를 사용하여 버추얼 카메라를 생성하는 작업의 기본 단계를 살펴볼 수 있도록 디자인되었습니다.

학습 목표

이 가이드에서는 다음과 같은 내용을 학습합니다.

  • 씬에 카메라를 배치하고 버추얼 카메라 컴포넌트를 추가하는 방법

  • 카메라에 모디파이어를 추가하여 비헤이비어를 커스터마이징하는 방법

  • 모디파이어를 활성화하거나 비활성화하는 기본 키 입력을 추가하는 방법

  • 다양한 출력 제공자를 사용하는 방법

1 - 필수 구성

시작하기 전에 프로젝트 내에서 적합한 플러그인을 활성화해야 합니다.

  1. 세팅(Settings) > 플러그인(Plugins) 을 클릭하여 플러그인 메뉴를 엽니다.

    플러그인 메뉴

  2. 버추얼 카메라(Virtual Camera) 플러그인을 찾아 활성화 합니다.

    버추얼 카메라

  3. 에디터를 재시작합니다.

섹션 결과

이제 버추얼 카메라를 생성할 준비가 되었습니다.

2 - 버추얼 카메라 생성

버추얼 카메라 컴포넌트는 시네 카메라 컴포넌트(Cine Camera Component)를 포함하는 모든 액터와 함께 작동합니다. 이 예시에서는 편의상 시네 카메라 액터(Cine Camera Actor)를 사용합니다.

  1. 액터 배치(Place Actors) 패널에서 시네마틱(Cinematic) 카테고리를 선택하고 시네 카메라 액터 를 클릭하여 씬으로 드래그합니다.

    시네 카메라 액터 드래그

  2. 시네 카메라 액터가 선택되어 있는 상태로 디테일(Details) 패널에서 카메라 컴포넌트(CameraComponent) 를 선택합니다.

    카메라 컴포넌트 선택

  3. 컴포넌트 추가(Add Component) 버튼을 클릭하고 VCam 컴포넌트를 검색하여 추가합니다.

    'VCam' 검색

    'VCam' 컴포넌트는 'CameraComponent'의 자손입니다.

  4. 'VCam'을 선택하고 클릭하여 컴포넌트를 추가합니다.

  5. 씬에서 시네 카메라 액터를 자유롭게 움직여보면서 현재 카메라 세팅(Current Camera Settings) 을 원하는 대로 조정합니다. 아래 예시에서는 씬에 배치되어 있는 미어캣을 프레임 안에 담을 수 있게 카메라를 옮겼고, 항상 피사체에 초점을 맞추도록 카메라를 조정했습니다.

    카메라 조정

    카메라 세팅 조정에 대한 자세한 내용은

    [시네 카메라 액터 사용](AnimatingObjects/Sequencer/HowTo/CineCameraActors)
    문서 페이지를 참고하세요.

  6. '카메라 액터(Camera Actor)'를 선택하고 컴포넌트 계층구조에서 VCam 컴포넌트를 선택합니다.

    'VCam' 컴포넌트 선택

  7. 이제 버추얼 카메라 섹션 아래에서 프로퍼티를 사용할 수 있습니다.

    버추얼 카메라 프로퍼티

프로퍼티는 다음과 같습니다.

프로퍼티

설명

활성화됨(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++을 사용하여 생성할 수 있으며, 스택에 추가하여 다양한 이펙트를 레이어링할 수 있습니다.

스택의 모디파이어는 위에서 아래 순서로 실행되며 이펙트도 동일한 순서대로 적용됩니다.

첫 모디파이어 생성

  1. 콘텐츠 브라우저(Content Browser) 에서 우클릭하고 버추얼 카메라 카테고리 아래에서 VCam 모디파이어(VCam Modifier) 를 선택합니다.

    버추얼 카메라 모디파이어 생성

  2. 블루프린트의 이름을 VCM_LookAt 으로 짓고 더블클릭하여 실행합니다.

    블루프린트의 이름을 'VCM_LookAt'으로 짓기

  3. 내 블루프린트(My Blueprint) 탭으로 가서 변수(Variables) 옆의 + 기호 를 클릭하여 새 변수를 추가합니다. 새 변수의 이름은 TargetActor 로 짓습니다.

    새 변수 생성

  4. TargetActor 가 선택되어 있는 상태로 디테일 패널에서 변수 유형(Variable Type) 드롭다운을 클릭합니다. 액터(Actor) 를 검색하여 오브젝트 레퍼런스(Object Reference) 를 선택합니다.

    'TargetActor'를 '액터(Actor)' 유형으로 설정

  5. 인스턴스 편집가능(Instance Editable) 체크박스를 선택하고 블루프린트를 컴파일저장 합니다.

    'TargetActor' 인스턴스를 편집 가능하게 만들기

  6. TargetActor이벤트 그래프(Event Graph) 로 드래그하고 Get TargetActor 를 선택합니다. 그런 다음 노드를 드래그하여 아래와 같이 Is Valid 를 검색하여 선택합니다.

    'TargetActor'에서 드래그하여 'Is Valid' 검색

  7. Event on ApplyIs Valid 에 연결합니다.

    'Event On Apply'를 'Is Valid'에 연결

  8. Event On Apply카메라 컴포넌트(Camera Component) 핀을 드래그하여 Get World Location 을 찾아 선택합니다.

    'Get World Location' 검색

  9. TargetActor 에서 드래그하여 Get Actor Location 을 찾아 선택합니다.

    'Get Actor Location' 검색

  10. GetWorldLocation**의 반환 값(Return Value) 을 드래그하여 Find Look At Rotation** 을 찾아 선택합니다.

    Look At Rotation' 검색

  11. Get Actor Location반환 값 핀을 Find Look at Rotation타깃(Target) 핀에 연결합니다.

    'Get Actor Location'을 'Find Look at Rotation'에 연결

  12. Event On Apply카메라 컴포넌트 핀을 드래그하여 Set World Rotation 을 찾아 선택합니다.

    'Set World Rotation' 검색

  13. Is Valid 노드의 유효함(Is Valid) 핀을 Set World Rotation 에 연결합니다. Find Look at Rotation반환 값 핀을 Set World Rotation새 회전(New Rotation) 핀에 연결합니다.

    '유효함'을 'Set World Rotation'에 연결

  14. 블루프린트를 컴파일하고 저장합니다.

스택에 모디파이어 추가

이제 모디파이어 스택 에 커스텀 모디파이어를 추가할 준비가 되었습니다.

  1. 액터 배치 탭의 기본(Basic) 카테고리에서 구체(Sphere) 를 클릭하여 레벨로 드래그합니다.

    구체를 레벨로 드래그

  2. '카메라 액터'를 선택하고 컴포넌트 계층구조에서 VCam 컴포넌트를 선택합니다.

  3. '모디파이어 스택'의 + 버튼 을 클릭하여 목록에 항목을 하나 추가합니다.

    스택에 모디파이어 추가

  4. 모디파이어의 이름(예: Look At )을 입력합니다. 이름을 추가하면 나중에 블루프린트에서 이 모디파이어를 참조할 수 있습니다.

    'Look At'으로 이름 짓기

  5. 생성된 모디파이어(Generated Modifier)드롭다운 화살표 를 클릭하여 목록에서 VCM_LookAt 을 선택합니다.

    목록에서 'VCM_Sine' 선택

  6. 모디파이어(Modifier)디폴트(Default) 섹션을 펼치고 타깃 액터(Target Actor) 드롭다운을 클릭합니다. 레벨에 추가한 구체 액터를 선택합니다.

    구체 액터 추가

  7. 레벨에 추가한 구체 액터를 선택하고 이동합니다. 카메라가 구체 를 향해 회전하는 것을 볼 수 있습니다.

    VCC_LookAt.gif

섹션 결과

이 섹션에서는 블루프린트를 사용하여 커스텀 카메라 모디파이어를 생성하는 방법을 알아보았습니다.

또한 커스텀 모디파이어를 모디파이어 스택 에 추가하여 에디터 내에서 버추얼 카메라를 조작하는 방법에 대해서도 살펴봤습니다.

4 - 버추얼 카메라 입력 시스템 사용

현재 버추얼 카메라 입력 시스템은 임시 버전이며, 향후 더 발전된 버전으로 대체될 예정입니다.

버추얼 카메라 컴포넌트 는 모디파이어 내에서 에디터 입력 이벤트 를 직접 사용하여 사용자에게 추가적인 제어 기능을 제공할 수 있습니다.

아래에는 이 시스템을 사용하여 모디파이어에 새로운 기능을 추가하는 방법이 나와 있습니다.

가이드 목표

이 섹션의 목표는 키 하나로 이펙트를 활성화하거나 비활성화할 수 있도록 모디파이어에 키 입력 을 추가하는 것입니다.

입력 이벤트 생성

  1. 콘텐츠 브라우저 에서 VCM_LookAt 블루프린트를 더블클릭하여 실행합니다.

  2. 이벤트 그래프 를 우클릭하고 Get VCamInputSubsystem 함수를 찾아 선택합니다.

    Get VCam Subsystem

  3. VCam Input Subsystem 에서 드래그하여 Bind Key Up Event 를 찾아 선택합니다. Event On InitializeBind Key Up Event 에 연결합니다.

    KeyUp Event 바인딩

  4. 빨간색 델리게이트(Delegate) 핀을 드래그하여 커스텀 이벤트 추가 를 찾아 선택합니다. 새 커스텀 이벤트의 이름을 ToggleActivation 으로 짓습니다.

    커스텀 이벤트 추가

    토글 활성화

  5. Bind Key Up Event 에서 키보드 아이콘 을 클릭하고 S 키를 누르면 해당 이벤트에 키를 바인딩하게 됩니다. 아니면 드롭다운 화살표 를 누르고 목록에서 원하는 키를 선택할 수도 있습니다.

    S 키 추가

  6. 이벤트 그래프 를 우클릭하고 버추얼 카메라 카테고리에서 Set Enabled 를 찾습니다. ToggleActivationSet Enabled 에 연결합니다.

    'Set Enabled' 노드 추가

  7. 이벤트 그래프 를 우클릭하고 버추얼 카메라 카테고리에서 Is Enabled 를 찾습니다.

    'Is Enabled' 노드 추가

  8. Is Enabled 에서 드래그하여 Not 을 찾아서 추가합니다.

    'Not' 노드 추가

  9. NotSet Enabled새 활성화(New Enabled) 핀에 연결합니다.

    'Not'을 'Set Enabled'에 연결

  10. 씬으로 돌아가 구체 액터를 이동하면서 S 키를 누르면 이펙트를 토글할 수 있습니다.

    버추얼 카메라 입력 시스템은 사용자가 키를 누를 때마다 실행되며, 뷰포트에 포커스가 없는 경우에도 마찬가지입니다. 이로 인해 사용자가 다른 용도로 동일한 키를 눌렀을 때 충돌이 발생할 수 있습니다. 가령, 사용자가 콘텐츠 브라우저 에서 에셋 이름을 바꾸려고 S 키를 눌렀지만 이벤트가 실행되는 경우를 예로 들 수 있습니다.

  11. 이와 같은 모디파이어의 우발적인 활성화를 방지하려면 입력에 Shift 키 조합을 섞는 등 코드에 추가적인 안전 장치를 더해주는 것이 좋습니다.

  12. VCM_LookAt 으로 돌아가서 아래와 같이 ToggleActivationSet Enabled 사이에 Branch 노드를 추가합니다.

    'Branch' 노드 추가

  13. Toggle Activation 노드의 키 이벤트(Key Event) 핀에서 드래그하여 Get Input Event from Key Event 함수를 찾아 선택합니다.

    Get Input Event

  14. 노드에서 드래그하여 Is Shift Down 함수를 찾아 선택합니다.

    'Is Shift Down' 노드 추가

  15. 마지막으로, 아래와 같이 Is Shift Down 노드를 Branch 노드의 조건(Condition) 핀에 연결합니다.

    노드를 'Branch'에 연결

  16. 그러면 모디파이어는 Shift 키를 누른 상태에서 S 키가 눌렸을 때만 실행됩니다.

섹션 결과

이 섹션에서는 S 키를 눌렀을 때 실행되는 입력 이벤트를 추가했습니다. 이 이벤트는 모디파이어의 효과를 활성화 및 비활성화할 수 있습니다. 또한 Shift 키를 안전 장치로 추가하여 사용자가 다른 용도로 S 키를 눌렀을 때 발생할 수 있는 충돌을 방지했습니다.

5 - 출력 제공자 추가

출력 제공자 시스템은 뷰포트, 원격 세션 프로토콜을 사용하는 디바이스, 컴포셔 플러그인 및 지원되는 다양한 비디오 캡처 카드 등 여러 제공자에 버추얼 카메라의 출력을 라우팅하는데 사용됩니다.

출력 제공자는 항상 위에서 아래 순서로 실행됩니다.

아래에서는 버추얼 카메라 컴포넌트와 함께 사용할 수 있는 출력 제공자를 살펴봅니다.

뷰포트 출력 제공자

이 제공자는 버추얼 카메라의 뷰를 에디터의 메인 뷰포트로 직접 출력합니다.

  1. VCam 컴포넌트를 선택하고 출력 제공자 옆의 + 표시 를 클릭하면 목록에 새 제공자를 추가할 수 있습니다.

    목록에 제공자 추가

  2. 목록에서 뷰포트 출력 제공자(Viewport Output Provider) 옵션을 선택합니다.

    뷰포트 출력 제공자

  3. 이제 다양한 제공자 사이에서 공유되는 프로퍼티를 확인할 수 있습니다.

    프로퍼티

    설명

    활성화(Is Active)

    제공자를 활성화 및 비활성화합니다.

    UMG 오버레이(UMG Overlay)

    UMG 위젯이 이미지 출력 위에 오버레이됩니다.

    오버라이드 해상도 사용(Use Override Resolution)

    출력 이미지에 커스텀 해상도를 설정합니다. 해상도가 고정된 외부 디바이스를 사용할 때 특히 편리합니다.

    오버라이드 해상도(Override Resolution)

    출력 이미지에 사용되는 고정 해상도입니다.

  4. 예를 들어 UMG 오버레이 드롭다운을 클릭하고 TestUMG 를 찾아 테스트 위젯 을 뷰포트에 추가할 수 있습니다.

    테스트 UMG 추가

  5. 마지막으로, 체크박스를 클릭하여 출력 제공자를 활성화 로 설정합니다.

    출력 제공자 설정

  6. 이제 씬의 메인 뷰포트에서 오버레이를 확인할 수 있습니다. 필요에 맞게 카메라 출력을 커스터마이징하는 방법의 한 예시로 참고해 주세요.

    UMG 오버레이

언리얼 원격 출력 제공자

이 제공자는 언리얼 리모트 2 앱처럼 원격 세션 프로토콜로 연결된 원격 디바이스에 메인 에디터 뷰포트를 출력합니다. 이 방식으로 연결된 호환 디바이스는 모두 이 용도로 사용될 수 있습니다.

다음으로, 프로젝트를 환경설정하여 원격 세션을 사용하는 외부 디바이스에 연결해보겠습니다.

  1. 세팅 > 프로젝트 세팅(Project Settings) 을 엽니다.

    '프로젝트 세팅' 열기

  2. UDP 메시지(UDP Message) 섹션으로 이동한 후 유니캐스트 엔드포인트(Unicast Endpoint) 를 설정합니다. 이때 컴퓨터의 IP 주소 끝에 :0 을 붙여 포트 번호를 나타냅니다.

    유니캐스트 엔드포인트

  3. 렌더링(Rendering) 섹션의 디폴트 세팅(Default Settings) 에서 화살표를 클릭하여 고급 세팅을 펼칩니다. 프레임 버퍼 픽셀 포맷(Frame Buffer Pixel Format)8비트 RGBA(8bit RGBA) 로 설정합니다.

    프레임 버퍼 포맷

  4. 에디터를 재시작합니다.

iOS 디바이스 구성

App Store에서 ARKit 가 활성화된 iOS 디바이스에 언리얼 리모트 2 앱 을 다운로드하고 앱을 실행합니다.

iOS 디바이스

디바이스 연결

  1. 버추얼 카메라 액터에서 VCam 컴포넌트를 선택하고 '출력 제공자(Output Provider)' 드롭다운 목록에서 언리얼 원격 출력 제공자(Unreal Remote Output Provider) 를 선택합니다.

    원격 출력 제공자 선택

  2. 디바이스에서 언리얼 리모트 2 앱을 실행합니다. 컴퓨터의 IP 주소를 입력하고 연결(Connect) 버튼을 탭하여 연결합니다.

  3. 이제 디바이스 화면에 메인 에디터 뷰포트가 미러링되는 것을 확인할 수 있습니다.

    디바이스에 미러링된 화면

미디어 출력 제공자

미디어 출력 제공자(Media Output Provider) 는 Black Magic이나 AJA의 비디오 캡처 카드처럼 언리얼 미디어 프레임워크에서 지원되는 모든 디바이스에 버추얼 카메라의 출력을 전송합니다.

일단 선택한 경우, 출력 파라미터를 지정하는 데 사용되는 출력 환경설정(Output Config) 을 선택할 수 있습니다.

출력 환경설정

언리얼 미디어 프레임워크의 자세한 사용 방법은 미디어 프레임워크 문서 페이지를 참고하세요.

컴포셔 출력 제공자

컴포셔 출력 제공자(Composure Output Provider)컴포셔 플러그인에 의해 직접 사용될 수 있는 렌더 타깃으로 버추얼 카메라의 출력을 전송합니다. 또한 카메라 뷰가 렌더링될 컴포셔 레이어 타깃(Composure Layer Target) 을 지정할 수 있습니다.

컴포셔 플러그인

컴포셔 플러그인의 사용 방법에 대한 자세한 내용은 컴포셔를 사용한 실시간 합성 문서 페이지를 참고하세요.

섹션 결과

이 섹션에서는 버추얼 카메라 컴포넌트에 다양한 출력 제공자를 추가하는 방법에 대해 살펴봤습니다. 이제 버추얼 카메라를 사용하여 에디터 뷰포트나 원격 세션 프로토콜을 통해 외부 디바이스에 직접 출력할 수 있습니다.

또한 출력을 전송하여 미디어 프레임워크 및 컴포셔 플러그인으로 처리하는 방법도 알아봤습니다.

다음 단계

자신의 버추얼 카메라를 직접 빌드하는 방법에 대해 살펴봤으므로, 버추얼 카메라 액터 퀵스타트에서 언리얼 엔진에 포함되어 있는 사전 빌드된 버추얼 카메라 액터에 대해서도 알아보세요.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기