오늘 하루동안 만져보고 쓰는 간단한 정보야,
사용 방법에 따라서 무궁무진하게 활용 가능할 듯 함
최근 사운드 관련 패치로 SDK에 새로 추가된 스크립트중
VRC_Player Audio Override에 대해 다룰거야
다만 사진보다 텍스트가 많으므로 양해부탁해
1. 우선 적당히 큐브를 소환해서 예를 들을게
여기서 가장 중요한건
1) 콜라이더에 IS TRIGGER 체크
2) 오버라이드 스크립트 추가
우선 사진에서 보다시피 커다란 방 하나에 절반만 구역을 설정했어
작동 원리는 유저가 해당 콜라이더 영향권에 있을 때 오디오 오버라이드가 작동하게 돼
한마디로, 콜라이더는 살아있으면서 투과가 가능한 IS TRIGGER가 무조건 체크되어있는 상태여야 한다는 점이야 (굳이 박스콜라이더가 아니더라도 상관없어)
그리고, 오디오 오버라이드 스크립트에 보면, 보이스세팅과 아바타 오디오가 별도로 있는데
이건 말 그대로 마이크를 이용한 소리와 아바타 애니메이션 등에 들어있는 자체 소리를 각각 조절할 수 있다는 말인거지
해당 콜라이더의 영향권에 있는 유저가 발생시키는 소리의 음량(GAIN)과 거리(FAR)을 강제로 조절해서 음성관련 여러 효과를 볼 수 있을 거야
극단적으로, GAIN과 FAR을 모두 0으로 설정시키면, 코앞에서 말해도 아무런 소리를 들을 수 없게 돼.
이로서 아무도 상처받지 않는 세계의 탄생인 거시야
그리고, 같은 방에 있더라도 해당 콜라이더의 영향권 밖에있는 유저가 발생시키는 소리는 음량이나 퍼지는 거리가 영향을 받지 않아
그래서 위 사진과 같은 형태의 방이라면,
콜라이더가 설정된 곳에서 발생하는 소리는 반대편을 포함해서 누구도 들을 수 없지만
콜라이더가 없는 곳에서 발생한 소리는 콜라이더 안에 있는 사람을 포함해서 누구나 들을 수 있어
----------------------------
그렇다면 이제 이 구역을 해제하는 법을 볼건데, 아직까지 확인한 거로는 단순히 해당 오브젝트를 없애는거로는 정확한 결과가 나오지 않는다고 해
VRC_Trigger 스크립트의 SetGameObject는 정답이 아니라는 거야.
대신 VRC에서 추천하는 방법은, 저상태 저대로 오브젝트의 위치를 옮기는거야
이런식으로 오브젝트 위치를 유저가 가지 못하는 곳으로 이동시키면 해결
---------------------
그리고 마지막으로, 해당 구역 내에서 발생하는 소리에 대해서는 모두 본인 컴퓨터에서 연산을 완료한 후 송출하는 방식인 것으로 추측돼
뭔소리냐면, 로컬 트리거로 저렇게 구역을 ON / OFF 가능하게끔 만들었을 때 영향을 받는건 본인 뿐이라는 거야
로컬 트리거로 본인이 구역을 없앴다면, 그자리에서 마이크를 통해 말할 수 있는건 본인 뿐이라는 말.
다른 사람들은 여전히 해당 구역의 음향 설정을 받은 소리를 송출하고 있기 때문에 묵언충 상태인 거지
------------------
예시는 한개 뿐 이었지만 위 기능을 활용해서 가능한 것의 예시를 몇개 들어볼게
1. 일방적 소통만이 가능한 관음 월드(예 : 취조실 월드)
2. 무대 위에 있는 사람 목소리만 들리는 월드(예 : 행사용 월드/클럽/장기자랑같은 다수의 집중이 필요한 스테이지 형 월드)
3. 모두가 묵언충이어야 할 월드(예 : 수면월드)
4. 졸라 넓은데 모두의 목소리를 들어야 하는 월드(예 : 등산월드) (구역 내에서 발생하는 소리를 월드 전체에서 들을 수 있게끔 가능함)
----------------
글 읽느라 수고했고, 계속 연구해볼게
주말 잘 보내라