본문으로 건너뛰기
정보

본 문서는 PrismStudio 1.16를 기반으로 작성되었습니다.

기본 정보

PrismStudio는 개발자를 위해, 여러 속성을 공개하고 그것을 활용할 수 있도록 하는 것을 또한 목표로 하고 있습니다. PrismStudio를 단순히 카메라 유틸리티로 사용할 수도 있지만, 개발자용 리소스를 충분히 활용할 수 있다면 VRChat에서 기존엔 없거나 불가능했던 카메라 무빙을 만들 수도 있습니다.

무엇이 필요한가?

PrismStudio는 Unity3D를 기반으로 작동하며, C#을 사용합니다. 그러므로 Unity에서 제공하는 리소스를 알고 있고, 프로그래밍 지식이 있다면 충분히 유용하게 사용하실 수 있을 것입니다.

OSC 발신

PrismStudio는 OSC 발신을 할때 Unity의 실행 순서를 따릅니다.

StudioSystem은 LateUpdate가 호출되었을때 아래와 같이 실행됩니다:

또한 Send 함수가 모듈을 호출하는 순서는 아래와 같습니다:

OSC 수신

PrismStudio는 버전 1.16부터 OSCQuery를 추가하여 VRChat으로부터 OSC 데이터를 받을 수 있게 되었습니다.
StudioSystem 컴포넌트가 모든 OSC 데이터 수신을 관리하며, StudioSystem에 Endpoint를 추가함으로써 하위 모듈이 OSC 데이터를 수신 받을 수 있게 됩니다.
StudioSystem은 Module이 성공적으로 Endpoint를 추가할 수 있도록, OnEnable이 호출되었을때 모든 모듈에 StudioSystemInitialized 함수를 호출합니다. 이때 각 모듈은 StudioSystem에 Endpoint를 추가할 수 있게 됩니다.

StudioSystem이 OSC 메세지를 받았을때 처리하는 순서는 아래와 같습니다:

PrismStudio와 Unity

PrismStudio에서 Unity의 거의 모든 기능을 활용하실 수 있습니다. 렌더링 또는 오디오에 관련된 컴포넌트가 아니라면, 대부분의 컴포넌트를 유용하게 사용하실 수 있을 것 입니다.

한가지 예를 들어본다면, 카메라에 물리 효과를 주기 위해 Point 오브젝트에 RigidbodyMesh Collider를 추가할 수 있습니다. 그리고 그 위에 추가 스크립팅을 통해 카메라에 물리적 힘을 가할 수도 있습니다.

void AddForceUp() {
GetComponent<Rigidbody>().AddForce(transform.up * 6);
}