본 블로그는 2023년 8월 30일에 공개된 fusion-與元宇宙的應用範例-1-導入介紹를 번역했습니다.
이번 주제는 "소형 메타버스를 위한 Fusion 개발 샘플 Fusion Metaverse"로, Fusion SDK를 핵심으로 하는 메타버스 게임 샘플을 소개하고 대화형 메타버스를 구축하는 방법을 알려드립니다.
본편에서는 다음과 같은 주제로 소개드립니다.
- 게임 샘플 개요
WebGL 구성 개요 - 허브의 기능 및 설계
게임중 공통 요소 - 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.Yield
WebGL을 구축하는 호환 가능한 방법에 의존합니다.
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의 각 특정 부분을 하나씩 살펴보도록 하겠습니다.
댓글
댓글 0개
댓글을 남기려면 로그인하세요.