This document is about: FUSION 2
SWITCH TO

메타 카메라 통합

Level
INTERMEDIATE
Available in the Industries Circle

개요

메타 카메라 API 통합 샘플은 전체 소스 코드와 함께 제공되며, Fusion과 Video SDK를 활용해 메타 카메라를 원격 사용자에게 스트리밍 하는 방법을 보여줍니다.

각 사용자는 손목시계의 버튼을 눌러 자신의 Meta Quest 카메라 스트리밍을 시작할 수 있습니다.
스트리밍이 시작되면 원격 사용자 앞에 스트리밍 중인 아바타 사용자의 화면이 나타납니다.
이 화면은 실제 환경을 보여주는 일종의 창 역할을 하게 되어, 원격 플레이어가 그 환경을 볼 수 있습니다.
이는 원격 지원과 같은 활용 사례에 특히 유용할 수 있습니다.

작업 진행 중

로컬 프리뷰를 볼 때나 여러 스트림이 동시에 실행될 때 표시 문제를 확인했습니다.
이 문제를 가능한 한 빨리 해결하기 위해 작업 중입니다.
이해해 주셔서 감사합니다.

기술 정보

  • 이 샘플은 공유 권한 토폴로지를 사용합니다.
  • 프로젝트는 유니티 6, Fusion 2, Photon Voice/Video 2.58로 개발되었으며, 다음 패키지들과 함께 테스트되었습니다:
    • Meta XR Core SDK 74.0.0 : com.meta.xr.sdk.core
    • 유니티 OpenXR Meta 2.1.0 : com.unity.xr.meta-openxr
  • 헤드셋 펌웨어 버전: v74 및 v76

시작하기 전에

샘플을 실행하려면:

  • PhotonEngine 관리 화면에서 Fusion AppId를 생성한 후, 유니티 프로젝트의 Real Time Settings(Fusion 메뉴에서 접근 가능) 내 App Id Fusion 필드에 붙여 넣습니다.
  • 동일하게 Voice AppId를 생성하여 App Id Voice 필드에 붙여 넣습니다.

다운로드

버전 릴리즈 일자 다운로드
2.0.5 May 19, 2025 Fusion Meta Camera Integration 2.0.5 Build 880

폴더 구조

  • /Meta-Camera-Integration 폴더: 이 샘플에 특화된 모든 요소 포함
  • /IndustriesComponents 폴더: 다른 인더스트리 샘플과 공유하는 컴포넌트
  • /Photon 폴더: Fusion 및 Photon Voice SDK 포함
  • /Photon/FusionAddons 폴더: 이 샘플에서 사용하는 Industries 애드온 포함
  • /Photon/FusionAddons/FusionXRShared 폴더: VR 공유 샘플에서 가져온 리그 및 그랩 로직 포함
  • /XR 폴더: 가상현실 구성 파일 포함

아키텍처 개요

Meta Camera API 통합 샘플은 VR Shared 페이지에서 설명한 코드 기반을 사용합니다(특히 리그 동기화 관련).

기본 외에도, 인더스트리 샘플처럼 일부 재사용 가능한 기능(동기화된 광선, 이동 검증, 터치, 순간 이동 부드럽게 처리, 응시 시스템 등)을 추가했습니다.

메타 퀘스트 샘플

SampleSceneMetaQuestOnly는 매우 간단합니다. 패스스루가 활성화되어 있으며, 3D 환경은 없습니다.
각 사용자는 아바타로 표시됩니다.
시계 터치스크린을 사용해 자신의 카메라 스트리밍을 시작하거나 중단할 수 있습니다.
스트리밍이 활성화되면, 시계에 텍스트로 표시되며, 시각적 피드백으로 스트리밍 상태를 알려줍니다.
다른 원격 플레이어들은 스트림이 시작되면 화면을 통해 비디오 스트림을 볼 수 있습니다.

또한 스트리밍 사용자는 시계를 다시 눌러 화면을 고정 위치로 배치할 수 있습니다.
여러 플레이어가 동시에 카메라를 공유할 수도 있습니다.

네트워크 연결

네트워크 연결은 [BuildingBlock] Network Manager[BuildingBlock] Auto Matchmaking이 관리합니다.

  • [BuildingBlock] Auto Matchmaking: 방 이름과 Fusion 토폴로지(공유 모드)를 설정합니다.
  • [BuildingBlock] Network Manager: 사용자가 방에 참가할 때 사용자 프리팹을 스폰하고 Photon Voice 연결을 관리합니다.

카메라 권한

Meta Quest 카메라에 접근하려면 권한 요청이 필요합니다.
이는 WebCamTextureManagerPrefab 게임 오브젝트에 있는 WebCamTextureManagerPassthroughCameraPermissions 컴포넌트로 처리됩니다.
(스크립트는 Meta Unity-PassthroughCameraAPISamples에서 제공)

Photon Voice 연결이 완료될 때 VoiceConnectionFadeManager가 이 프리팹을 활성화합니다.
(동시 권한 요청 방지를 위해 기본 비활성화 상태)

카메라 스트리밍

Photon Video SDK를 사용하여 카메라 스트림을 전송합니다.
이는 Photon Voice SDK의 확장 버전으로 비디오 스트리밍을 지원합니다.
화면 공유 기능과 유사하기 때문에 ScreenSharing Addon의 개발을 재사용합니다.

카메라 비디오 송출

WebCamEmitter 클래스가 스트리밍을 관리합니다.
플레이어 프리팹에 있는 NetworkWebcam 컴포넌트가 ToggleEmitting()을 호출해 스트리밍을 시작하거나 중단합니다.
기본 코덱 설정은 H264, 해상도는 1024x768입니다.

카메라 비디오 수신

ScreensharingReceiver 씬 오브젝트가 비디오 수신을 관리합니다.
새로운 보이스 연결이 생기면 비디오 플레이어를 생성하고, ScreenSharingScreen에 스트림을 연결해 화면 렌더링을 갱신합니다.

이 샘플에서는 각 사용자가 자신의 스트림을 받을 수 있도록 구성되어 있으며, ScreenSharingScreenNetworkWebcam이 플레이어 프리팹에 있습니다.

손목시계 상호작용

시계를 터치하여 카메라 스트리밍을 시작/중지할 수 있습니다.
또한 스트림을 고정 위치로 설정할 수 있습니다.

  • 손목 버튼 오브젝트에는 Touchable 컴포넌트가 있으며, 사용자가 시계를 터치하면 WatchUIManagerToggleEmitting()이 호출됩니다.
  • 세 가지 상태를 전환합니다:
    • 스트리밍 없음
    • 스트리밍 화면이 사용자의 머리를 따라다님
    • 스트리밍 화면이 고정된 위치에 있음

각 사용자 프리팹에는 두 개의 시계가 포함됩니다(컨트롤러 기반 모델과 손가락 추적 모델).

NetworkHandRepresentationManager가 현재 손 추적 모드에 따라 적절한 시계를 활성화/비활성화합니다.

UI

UI는 다음 두 스크립트로 관리됩니다:

  • WatchUIManager: 플레이어 시계의 텍스트를 업데이트합니다.
  • ScreenSharingUIManager: 플레이어 앞쪽에 표시되는 UI를 업데이트합니다.

두 스크립트 모두 WebcamEmitter 이벤트를 수신해 로컬 플레이어 스트리밍 상태에 맞춰 UI를 갱신합니다.
또한 ScreenSharingUIManagerScreenSharingScreen.IScreenSharingScreenListener 인터페이스를 구현하여 원격 플레이어가 카메라 스트리밍을 시작/중지할 때도 UI를 업데이트합니다.

사용된 XR 애드온 및 인더스트리 애드온

3D/XR 프로젝트를 쉽게 시작할 수 있도록 무료 애드온을 제공합니다.
자세한 내용은 XR Addons 문서를 참고하세요.
또한 Industries Circle 회원에게는 재사용 가능한 애드온 전체 목록도 제공합니다.
자세한 내용은 Industries Addons에서 확인할 수 있습니다.

XRShared

Fusion 호환 XR 경험을 위한 기본 컴포넌트 제공. 리그 동기화, 간단한 잡기 및 순간 이동 기능 포함.
XRShared 문서 보기

Voice Helpers

음성 통합을 위한 VoiceHelpers 애드온 사용.
VoiceHelpers Addon

Screen Sharing

Meta Quest 카메라 스트리밍에 ScreenSharing 애드온 사용.
ScreenSharing Addon

Meta Core Integration

플레이어 손 동기화를 위한 MetaCoreIntegration 애드온 사용.
MetaCoreIntegration Addon

XRHands 동기화

XR Hands 손 상태를 고효율로 동기화하는 애드온 사용.
XRHands synchronization Addon

TouchHover

손목 버튼 상호작용을 위한 TouchHover 애드온 사용.
TouchHover Addon

피드백

애플리케이션에서 소리 및 햅틱/오디오 피드백을 중앙 관리하는 Feedback 애드온 사용.
Feedback Addon

타사 에셋 및 저작권

이 샘플은 여러 뛰어난 타사 에셋을 기반으로 제작되었습니다:

Back to top