엑스포
기술 정보
- 이 샘플은 공유 모드 토폴로지를 사용하지만 코어는 공유 및 호스트 모드 토폴로지와 호환됩니다.
- 빌드는 PC, Mac 및 Meta Quest에서 사용할 수 있습니다.
- 이 프로젝트는 유니티 2021.3, Fusion 2, Photon Voice 2.53으로 개발되었습니다.
- 2개의 아바타 솔루션이 지원됩니다(홈메이드로 만든 간단한 아바타 & Ready Player Me 아바타).
시작하기 전에
샘플 실행을 위해 :
PhotonEngine 관리 화면에서 Fustion AppId를 생성하고 Real Time 설정(Fusion 메뉴에서 접근 가능)의
App Id Fusion
필드에 붙여 넣으십시오.PhotonEngine 관리 화면에서 Voice AppId를 생성하고 Real Time 설정 내의
App Id Voice
필드에 붙여 넣으십시오.그러고 나서
AvatarSelection
씬을 로드하고Play
를 누릅니다.
다운로드
버전 | 릴리즈 일자 | 다운로드 | |
---|---|---|---|
2.0.0 | Oct 16, 2024 | Fusion Expo 2.0.0 Build 691 |
바이너리 다운로드
Expo 데모 버전은 아래에서 다운로드할 수 있습니다:
입력 처리
데스크톱
키보드
- 이동 : 걷기는 WASD 또는 ZQSD 이용
- 회전 : 회전하기는 QE 또는 AE 이용
- 펜 색상 : C로 펜 색상 변경
- 메뉴 : Esc 키로 오픈 또는 애플리케이션 메뉴 닫기
- Bot 스폰: “B”를 눌러 봇을 스폰 합니다. 1초 이상 길게 눌러 떼면 한 번에 50개의 봇을 생성합니다.
마우스
- 이동 : 마우스로 왼쪽을 클릭하여 포인터를 표시합니다. 마우스를 떼었을 때 이동 가능한 경우 텔레포트합니다.
- 회전 : 마우스 오른쪽을 누르고 마우스를 이동하여 뷰 포인트를 회전합니다.
- 이동 & 회전 : 왼쪽과 오른쪽 모두 누르고 앞으로 이동합니다. 마우스를 이동하여 회전할 수 있습니다.
- 잡기 & 사용 (3D 펜) : 마우스를 물체 위에 놓고 왼쪽 마우스 버튼을 사용하여 잡습니다. 그러면 키보드 스페이스 키를 사용하여 사용할 수 있습니다.
Meta Quest
- 텔레포트 : A, B, X, Y, 또는 스틱으로 포인터를 표시합니다. 떼면 가능한 지역으로 텔레포트합니다.
- 터치 (예를 들어 채팅 버블 잠금 버튼) : 간단히 버튼 위에 손을 올려서 토글 합니다.
- 잡기 : 먼저 손을 물체 위에 놓고 컨트롤러 그랩 버튼을 사용하여 잡습니다.
- 봇 스폰 : 왼쪽 컨트롤러의 메뉴 버튼을 눌러 하나의 봇을 생성합니다. 떼어서 50개의 봇을 만들려면 1초 이상 누르고 있어야 합니다.
- 펜 색상 : 조이스틱을 위 또는 아래로 이동하여 펜 색상 변경
폴더 구조
메인 폴더인 /Expo
에는 이 샘플의 모든 요소가 들어 있습니다.
/IndustriesComponents
폴더에는 Fusion 미팅 샘플과 같은 다른 산업 샘플과 공유하는 컴포넌트가 들어 있습니다.
/Photon
폴더에는 Fusion 및 Photon Voice SDK가 들어있습니다.
/Photon/FusionXRShared
폴더에는 VR 공유 샘플에서 가져온 리그와 그랩 로직이 포함되어 있어 다른 프로젝트와 공유할 수 있는 FusionXRshared 라이트 SDK가 생성됩니다.
/Photon/FusionAddons
폴더에는 이 샘플에 사용된 Industries 애드온이 포함되어 있습니다.
/XR
폴더에는 가상 현실에 대한 구성 파일이 포함되어 있습니다.
오디오
VoiceConnection
및 FusionVoiceBridge
컴포넌트는 Fusion 세션을 따라 오디오 Photon Voice 연결을 시작하는데, Recorder
컴포넌트는 마이크 입력을 포착합니다.
Oculus Quest 빌드의 경우 추가 사용자 권한이 필요하며, 이 요청은 MicrophoneAuthorization
스크립트에서 관리합니다.
사용자 프리팹은 Speaker
와 VoiceNetworkObject
를 머리 위에 올려놓아 음성을 수신할 때 공간화된 소리를 투사합니다.
Fusion과 Photon Voice의 통합에 대한 자세한 내용은 다음 페이지를 참조하십시오: https://doc.photonengine.com/en-us/voice/current/getting-started/voice-for-fusion
봇
샘플에서 사람들로 가득 찬 엑스포가 어떻게 지원되는지 보여주기 위해 일반 사용자 외에도 봇을 만드는 것이 가능합니다.
봇은 음성이 비활성화된 일반 네트워크 프리팹이며 사용자 입력 대신 내비게이션 메시로 구동됩니다.
또한 BotNetworkRig
클래스는 이동 유효성 검사 시스템을 사용하여 유효한 위치로만 이동합니다.
스페이스
플레이어는 씬에 위치한 브리지를 사용하여 새로운 세계로 이동할 수 있습니다. 각 브리지는 특정 씬 로딩을 트리거 합니다.
이를 위해 각 브리지에는 SpaceLoader
클래스가 있어 플레이어가 박스 콜라이더에 충돌할 때 새로운 씬을 로드합니다.
예를 들어 ExpoRoomMainWithBridge
라는 메인 씬은 두 개의 브리지로 구성되어 있습니다. 첫 번째 브리지는 ExpoRoomNorth
씬을 로드하고 다른 브리지는 ExpoRoomSecondScene
을 트리거 합니다.
그래서, 이제, 플레이어 스폰 위치에 관한 세 가지 가능성이 있습니다:
- 플레이어가 처음에 게임에 참여할 때 야자수 근처에 있는 임의의 위치,
ExpoRoomNorth
씬에서 플레이어가 돌아올 때 첫 번째 다리 근처의 위치,ExpoRoomSecondScene
씬에서 플레이어가 돌아올 때 두 번째 다리 근처의 위치.
정확한 스폰 위치를 결정하기 위해서는 각 장면마다 SpawnManager
가 필요합니다.
플레이어가 다른 씬에서 올 때(또는 다시 연결될 경우) 어디에 나타날지 정의하기 위해 RandomizeStartPosition
컴포넌트의 기본 동작을 변경합니다.
또한 사용자는 그룹 번호를 지정하여 공용 그룹 또는 개인 그룹에 가입할 수 있습니다.
이 선택은 아바타 선택 화면 또는 나중에 애플리케이션 메뉴에서 할 수 있습니다.
자세한 내용은 스페이스 인더스트리 애드온을 참조하십시오.
연결 관리자
ConnectionManager
애드온을 사용하여 연결 시작을 관리하고 사용자를 표시합니다.
자세한 내용은 연견 관리자 애드온를 참조하십시오.
확장 리그 선택
이 추가 기능을 사용하여 이 샘플에 필요한 두 리그 사이를 전환합니다:
- 메타 빌드용 VR 장비,
- Windows 및 Mac 클라이언트용 데스크톱 리그,
자세한 내용은 리그 선택 인더스트리 애드온을 참조하십시오.
아바타
이 애드온은 간단한 아바타 세트를 포함한 아바타 기능을 지원합니다.
자세한 내용은 아바타 인더스트리 애드온을 참조하십시오.
Ready Player Me 아바타
이 애드온은 Ready Player Me 아바타 통합을 처리합니다.
자세한 내용은 Ready Player Me 아바타 인더스트리 애드온을 참조하십시오.
사회적 거리 두기
편안함과 근접 거리를 보장하기 위해 사회적 거리 두기 추가 기능을 사용합니다.
자세한 내용은 사회적 거리 두기 인더스트리 애드온을 참조하십시오.
로코모션 유효성 검사
우리는 이동 유효성 검사 추가 기능을 사용하여 플레이어의 움직임을 제한합니다(정의된 씬 제한에 머무름).
자세한 내용은 로코모션 유효성 검사 인더스트리 애드온을 참조하십시오.
동적 오디오 그룹
동적 오디오 그룹 추가 기능을 사용하여 사용자가 함께 채팅할 수 있도록 하는 동시에 사용자 간의 거리를 고려하여 편안함과 대역폭 소비를 최적화합니다.
자세한 내용은 동적 오디오 그룹 인더스트리 애드온을 참조하십시오.
오디오 룸
AudioRoom
애드온은 채팅 버블을 방음하는 데 사용됩니다.
자세한 내용은 오디오 룸 인더스트리 애드온을 참조하십시오.
채팅 버블
이 샘플은 채팅 버블을 보여줍니다. 이 씬에는 4개의 정적 채팅 버블이 포함됩니다. 프로그램은 또한 두 명의 사용자가 서로 가까워질 때 동적 채팅 버블을 만들 수 있습니다.
자세한 내용은 채팅 버블 인더스트리 애드온을 참조하십시오.
드로인
주요 엑스포 씬들은 2D 펜들과 몇몇의 3D 펜들이 있는 화이트보드들을 포함합니다. 드로잉이 완료되면(즉, 사용자가 "트리거" 버튼을 놓을 때), 핸들이 디스플레이됩니다. 이것은 사용자가 2D 또는 3D 드로잉들을 움직일 수 있게 해줍니다.
자세한 내용은 3D & 2D 드로잉 인더스트리 애드온을 참조하십시오.
데이터 동기화 헬퍼
이 애드온은 3D/2D 드로잉 점을 동기화하는 데 사용됩니다.
자세한 내용은 데이터 동기화 헬퍼 인더스트리 애드온을 참조하십시오.
접촉 차단
이 추가 기능을 사용하여 화이트보드 표면의 2D 펜과 드로잉 핀을 차단합니다.
자세한 내용은 접촉 차단 인더스트리 애드온을 참조하십시오.
대화형 메뉴
이 애드온은 게임 객체에 부착된 메뉴(예: 팁, 버튼 등)를 표시하는 데 사용할 수 있습니다.
자세한 내용은 대화형 메뉴 인더스트리 애드온을 참조하십시오.
데스크톱 포커스 모드
이 애드온은 대화형 메뉴 추가 기능에 필요합니다
자세한 내용은 데스크톱 포커스 인더스트리 애드온을 참조하십시오.
가상 키보드
플레이어 이름이나 룸 ID를 사용자 지정하려면 가상 키보드가 필요합니다.
자세한 내용은 가상 키보드 인더스트리 애드온를 참조하십시오.
터치 호버
이 애드온은 3D 객체 또는 UI 요소와의 플레이어 상호 작용을 증가시키기 위해 사용됩니다. 가상 핸드 또는 광선 빔으로 상호 작용을 수행할 수 있습니다.
자세한 내용은 터치 호버 인더스트리 애드온을 참조하십시오.
피드백
Feedback
애드온을 사용하여 애플리케이션에서 사용되는 사운드를 중앙 집중화하고 햅틱 및 오디오 피드백을 관리합니다.
자세한 내용은 피드백 애드온을 참조하십시오.
Back to top