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