2018 업데이트 이후에 SDK2와 SDK3를 사용하는 월드가 각각 나뉘게 되었어
신사는 기존 SDK에서, 2018 업데이트와 동시에 SDK2로 이전했지만, 현재는 SDK3를 이용해서 또한번 변화를 했어.
SDK3의 특징은
기존에 SDK2에서 사용되던 트리거 스크립트가 사라지고, 대부분의 모든 기능을 UDON이라는 자체 노드 툴을 이용해서 만든다는 거야
즉, 편의성과 직관성은 사라졌지만 만들고자하는 대부분의 기능을 구현할 수 있게 되었다는 거야
이전에도 한번 비슷한 내용을 작성한 적이 있는데, 이번엔 실제로 월드 내에서 어떻게 적용되었는지에 대해 다뤄보려고 해
그나마 친숙한 월드가 하나뿐이라 신사를 예로 들어 간단하게 적어놓을게
구지 다양한 기믹을 섞지 않더라도 우동을 이용해 간단한 대화용, 휴식용 월드를 만드는건 어렵지 않아
가성비로 따지면 기존 트리거방식을 사용하느 SDK2를 따라갈 방법이 전혀 없겠지만
새로운 걸 배워가고 더 다양한 형태의 기믹이 들어있는 월드를 앞으로 만들고 싶다면 우동의 사용이 적극적으로 권장됨
아래 노드는 직접 연구하고, 작성한 것 이기 때문에 굉장히 조악하고 조잡할 수 있어
처음 만져보는것 이기 때문에도 하지만, 무엇보다 내가 전문가가 아니기 때문이 가장 크다고 생각함
1. 달리기 걷기
달리기, 걷기, 점프 및 중력값(추측컨데 점프 이후 착지까지의 속도)은 우동 노드를 통해 제어되고 있어.
VRC_world 프리펍에 바로 연결된 우동 스크립트에 작성되어 있는 상태야.
이건 가장 최신 SDK3를 사용할 경우 기본적으로 점프와 달리기 등의 기능이 포함된 상태로 제공되기 때문에 지금은 구지 노드를 만들 필요가 없어.
프리펍에 포함되어있는 우동 노드의 수치만 수정하는거로 충분히 적용이 가능한 상태임
2. 화장실 거울
사람들이 상대적으로 많이 오는 월드이기 때문에 최적화에 굉장히 많은 시간을 투자하고 있어.
갤럼들이 신사에 얼마나 오는진 모르지만, 신사에 있는 모든 거울은 일정 구역을 벗어나면 자동으로 꺼지게끔 만들어져 있고
모든 기능들은 최대한 최적화와 사용자 편의에 중점을 둔 상태로 만들고있어.
화장실의 거울을 활성화하게 되면 위 노드가 작동되
한번누르면 켜지고, 다시누르면 꺼지는 토글 형태로 거울이 작동되게 되어있고,
동시에 몇번을 누르던 무조건 켜지는 콜라이더 한개가 생성돼
콜라이더는 화장실 바깥쪽에 위치하고 있고, 이 콜라이더에 유저가 진입했을 경우 발동되게끔 아래와 같은 우동 노드가 짜여져있어
요는, 화장실 내부의 활성화된 거울과 방금 생긴 콜라이더 구역을 모두 해제하는 내용이야.
화장실 내부에서 거울 몇개를 켜던, 화장실 밖으로 나오는 순간 모든 거울이 꺼지게 되어있어
리스폰할 경우에도 모두 꺼지게끔 만들려고 했지만, 그건 다음번에...
3. ID
아래 노드로 연결이 되어있고,
클릭할 경우 특정 위치에 오브젝트가 활성화되게끔 만들어져 있어.
사족로, ID는 월드탭 상단에 거의 매번 노출되다 시피 하는 월드들의 제작자들이 모여있는 영어권 그룹의 줄임말이야
곳곳에 숨어져있는 퍼즐조각들을 이용해서 유저들로 하여금 또다른 재미와 모험을 주기 위해서 만들어진 일종의 미니게임으로
굉장히 많은 국적의 사람들로부터 퍼즐의 힌트에 대해 묻는 질문을 많이 받아왔어
총 5단계에 걸친 다양한 퍼즐이 다양한 월드들에 남겨져 있으니 시간이 괜찮다면 찾아보는 것 도 재미있을 거야
4. 침실 거울
요거는 위 화장실 거울이 꺼지는 원리와 동일해
거울이 켜지면, 요 콜라이더가 함께 활성화되고
방을 빠져나가면서 콜라이더에 닿는 순간 방 내부의 거울이 꺼지게끔 만들었어
5. 메인거울
벚꽃광장과 메인거울은 같은 메커니즘을 가지고 있어
여기서 핵심은, 가벼운 거울과 무거운 거울이 무슨수를 써서든 절대 동시에 켜지지 않게 만드는 것
그리고 마찬가지로 구역을 벗어나면 자동으로 비활성화 되게끔 만드는 것
서로 같은 작동방식에 결과만 반대로 가지니까, 가벼운 거울만 예로들어서 설명할게
먼저 UI쪽을 보면
가벼운 거울을 작동시켰을 경우에
1) 가벼운거울 활성화
2) 가벼운거울 체크활성화
3) 가벼운거울 콜라이더 활성화
4) 무거운거울 비활성화
이렇게 4개의 동작이 동시에 이루어져
그리고 가벼운 거울의 콜라이더는 요렇게 설치가 되어있고
콜라이더는 아래 노드의 통제를 받게 돼
1) 콜라이더에 진입할 경우
가) 가벼운 거울 활성화(UI와 중복됨)
나) 무거운 거울 비활성화(UI와 중복됨)
다) 가벼운 거울용 콜라이더 활성화(UI와 중복됨)
라) 무거운 거울용 콜라이더 비활성화
마) 가벼운 거울 체크 활성화(UI와 중복됨)
바) 무거운 거울 체크 비활성화
2) 콜라이더에서 벗어날 경우
가) 가벼운 거울 비활성화
나) 무거운 거울 비활성화
중복되는게 많은 이유는 확인차원도 있지만, 무거운거울과 가벼운거울을 번갈아가면서 키게 될 때 동시에 켜지거나 둘다 꺼져버리는 상황을 막기위한 보험의 용도가 커
그리고 콜라이더에서 벗어날 때 거울이 비활성화 되었다가 다시 접근하면 고대로 켜지게끔 만들기 위해서도 있음
마지막으로, 노드를 일부러 겹치게 만들어서 가벼운거울과 무거운거울을 서식변경 없이 한가지 형태의 노드로 모두 통제하기 위한 것이 있음
6. 추가기능-요기서부터는 우동샤프가 필요함
1) 시계
시계는 로컬타임을 받아와. 자기 컴퓨터에 표시된 시간이 동일하게 표시됌
https://booth.pm/ko/items/1979001
요걸 이용해서 UI를 변경한 후 사용하고 있어
2) 현재인원
https://booth.pm/ko/items/1950720
요걸 이용해서 스크립트를 변경해서 사용하고 있어
3) 인스턴스 유저 닉네임 및 접속 기기
https://booth.pm/ko/items/1953525
요걸 이용해서 스크립트를 변경해서 사용하고 있어
요기까진 무료 부스 에셋
1) 3인칭 카메라
직접 만들려고 했는데 고맙게도 이미 만들어놓은게 있더라
https://booth.pm/ko/items/1932757
요걸 구매해서, 내가 필요한 기능만 남기기고 일부 단축키를 변경하는 등의 스크립트를 수정해서 사용하고 있어
1) 밤/낮 변경
요건 따로 배포 안한 스크립트를 활용해
시계와 마찬가지로 각자 컴퓨터에 표시되는 로컬타임에 맞춰서 밤/낮이 변경돼
이벤트는 오전6시, 오후10시에 각각 발생하고,
스카이박스, 후처리효과, BGM이 순차적으로 변경됌
스크립트는 직접 만드는게 제한되어서, 필요한 부분을 다른 기술자 분 께 별도로 요청해서 대신 작성해주신걸 제공받았어.
내가 딱 원하던대로 나와줘서 너무 감사하게 생각하고있어.
솔직히 우동으로 바꿀 이유가 전혀 없는 안정적인 월드였는데, 구지 우동을 써보고싶어서 모험을 한 부분이 커
많은 국적의 사람들이 처음 만나게 되는 장소로서, 복잡한 기능은 최대한 배제하고 있지만
그럼에도 'VRC에서는 이런것도 가능하다' 라는 식의 새로운 기능을 계속해서 잠깐잠깐이나마 월드를 통해서 소개해주려고 해
그 외에도
최대한 최적화와 유저 편의를 위해서 계속해서 월드는 업데이트하고 있어
와줘서 고맙고, 앞으로도 잘 부탁해