자료실

Fusion Metaverse 샘플 소개(1)
작성자 | admin 2024-05-07  |    조회수 : 855  


본 블로그는 2023년 8월 30일에 공개된 fusion-與元宇宙的應用範例-1-導入介紹를 번역했습니다.



이번 주제는 "소형 메타버스를 위한 Fusion 개발 샘플 Fusion Metaverse"로, Fusion SDK를 핵심으로 하는 메타버스 게임 샘플을 소개하고 대화형 메타버스를 구축하는 방법을 알려드립니다.

본편에서는 다음과 같은 주제로 소개드립니다.

1. 게임 샘플 개요
  WebGL 구성 개요

2. 허브의 기능 및 설계
  게임중 공통 요소

3. Picazoo 씬의 혁신적인 인터랙티브
  음악 씬 Music의 음악 동기화 및 조명 제어
  아트 갤러리 Art Gallery의 역동적 아트 디스플레이

게임 개발자는 물론, 가상 세계의 팬, 새로운 기술에 관심이 있는 분들께는 새로운 영감을 가져다 줄 샘플이 될것입니다!
가상 세계의 매력을 함께 탐험해보세요!


게임 샘플 개요


Fusion Metaverse는 간단한 메타버스를 개발하기 위한 예제입니다.
앱을 통해 음악, 예술, 게임에 대한 다양한 사용 사례를 확인할 수 있습니다.
플레이어는 '포털'을 통해 다른 씬으로 자유롭게 이동할 수 있으며, 친구들과 함께 색다른 독립 공간을 즐길 수도 있습니다.

샘플은 다음 링크에서 확인할 수 있습니다: (Photon Industries Circle 회원에 가입하여 소스 코드를 받으세요)
https://doc.photonengine.com/ko-kr/fusion/current/industries-samples/metaverse/fusion-metaverse-overview

Photon Taiwan의 YouTube 채널에 동영상 자료도 업로드되어 있으므로 확인해 주시기 바랍니다!



프로젝트에 대한 몇 가지 정보는 다음과 같습니다.

1. 기술정보
● Fusion 공유 모드 네트워크 토폴로지를 사용
● PC, Mac, Meta Quest 빌드는 물론 WebGL 방식으로도 테스트 가능
● Unity 2021.3.23f1, Fusion 1.1.7, Photon Voice 2.52를 사용하여 개발
● 두 가지 캐릭터 솔루션(간단한 맞춤형 캐릭터 및 Ready Player Me 1.9.0 캐릭터)을 지원

2. 시작하는 방법
● PhotonEngine 관리 화면에서 Fusion AppId 및 Voice AppId를 생성하고 앱에 입력
● AvatarSelection 장면을 로드하고 재생

3. 입력 처리 ● 데스크탑 : WASD 또는 ZQSD를 사용하여 걷기, QE 또는 AE를 사용하여 회전
● 마우스 : 마우스 왼쪽 버튼을 클릭하면 포인터가 표시되고, 마우스 오른쪽 버튼을 클릭한채로 마우스를 움직이면 시점 회전 가능
● 메타 퀘스트 : A, B, X, Y 또는 조이스틱 중 하나를 누르면 포인터가 표시

4. 아키텍처 개요 ● Metaverse 예제는 특히 조이스틱 동기화를 위해 VR 화면 공유 페이지에 설명된 동일한 코드 베이스를 사용합니다.
● 이 외에도 샘플에는 동기화된 광선, 동작 확인, 터치, 순간 이동 스무딩 또는 시선 시스템과 같은 FusionXRShared에 대한 일부 확장도 포함되어 있습니다.


메타버스 WebGL 빌드


Fusion Metaverse WebGL Build는 말 그대로 WebGL 빌드를 위해 준비한 예제 입니다.
WebGL 구축 시 Unity의 일부 제한 사항으로 인해 올바르게 작동하지 않을 경우가 있으므로 일부 세부 사항에 특별한 주의를 기울여야 합니다.



주요 요소와 기능을 자세히 살펴보면 다음과 같습니다.

1. Task.Delay 코드
● WebGL 빌드에서는 일부 asnyc/await 메서드가 예상대로 작동하지 않아 문제가 발생할 수 있습니다. 예를 들어 System.Threading.Tasks.Task.Delay이 메서드는 WebGL 빌드에서는 작동하지 않습니다.
● 이 제한 사항을 해결하기 위해 Metaverse 샘플은 WebGL 호환 AsyncTask.Task접근 방식을 제공합니다. 이는 Task.YieldWebGL을 구축하는 호환 가능한 방법에 의존합니다.

2. AudioSource와 Lip Synchronization
● 현재 버전의 Unity에서는 WebGL 빌드의 경우 Audiosource 구성 요소가 OnAudioFilterRead형제 구성 요소에 대한 콜백을 트리거하지 않습니다.
● 따라서 이 콜백의 데이터를 사용하여 음성 볼륨을 계산하는 VoiceDetection 구성 요소가 올바르게 작동하지 않습니다. 대신 WebGL 컨텍스트에서 VoiceDetection은 PhotonVoice 콜백을 사용하여 오디오 데이터에 액세스합니다.

3. TextMeshPro Materials
● 어떤 경우에는 씬에 장면에 정확히 동일한 글꼴 소재를 사용하는 TextMeshPro 및 TextMeshProUGUI 구성 요소가 포함된 경우 TextMeshPro의 텍스트가 표시되지 않을 수 있습니다.
● 이 문제를 해결하려면 글꼴과 관련된 소재를 복사해야 합니다. 그런 다음 씬의 TextMeshPro및 TextMeshProUGUI 구성 요소가 동일한 소재를 사용하지 않도록 확인하십시오.


요약

Metaverse WebGL Build의 관련 코드는 WebGL 대상으로 어떻게 빌드하는지를 보여주고 몇 가지 특정 Unity 기술 문제를 해결합니다. 비동기 코드 처리부터 오디오 동기화, 픽처 쉐이딩 조정까지 WebGL 환경에서 정상적으로 작동할 수 있도록 개선된 디자인이 적용되었습니다.

이 섹션에서는 Fusion Metaverse 샘플의 기술적 기능을 보여줄 뿐만 아니라 참조용으로 실제 WebGL 구성 및 개발 예제도 제공합니다.

위 컨텐츠는 Fusion Metaverse 메타버스에 대한 개요와 WebGL 구성 시 주의가 필요한 몇 가지 기술 개요 및 요점을 설명합니다. 다음 편에서 Hub, Common, Picazoo, Music 및 Art Gallery를 포함한 Metaverse의 각 특정 부분을 하나씩 살펴보도록 하겠습니다.



출처 : Hu씨의 Photon 블로그 이야기 (대만)