본문으로 건너뛰기

FPS 최적화 가이드

정보

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

FPS 최적화 가이드?

프리즘스튜디오를 사용하다 보면, 아래와 같이 프레임이 불안정한 현상을 겪으셨을 수 있습니다:

이 현상을 최소화하고, VRChat과 프리즘스튜디오 간의 거의 완벽한 연결성을 만들기 위해 이 가이드를 작성했습니다.

불안정한 이유?

프리즘스튜디오는 VRChat과 별개로 작동하기 때문에, 두 프로그램 간의 작동 주기가 다릅니다.

예를 들어 VRChat에서는 70FPS 만큼 퍼포먼스가 나올때, 프리즘스튜디오는 120FPS 만큼 퍼포먼스가 나옵니다. 이 예시에서 프리즘스튜디오는 VRChat에게 1초에 120번씩 OSC 데이터를 전송하고, VRChat은 1초에 70번씩, 지금까지 받은 OSC 데이터를 취합하여 카메라 위치와 각도를 변경하고 프레임을 렌더링합니다.
최적화하기 전 VRCPrismStudio와 VRChat의 FPS를 이미지로 표현한 그림 조금 더 세부적으로 살펴보면, 아래와 같이 프리즘스튜디오에서 OSC 데이터를 완전히 전송하기 전에 VRChat에서 프레임 렌더링을 완성하기 때문에, VRChat에서 프리즘스튜디오로부터 온전한 데이터를 받지 못한 채로 프레임을 렌더링했기 때문에 이러한 프레임 밀림 현상이 발생합니다.
VRCPrismStudio가 데이터를 보내는 빈도와 VRChat이 프레임을 렌더링하는 빈도를 설명하는 그림

VRChat과 프리즘스튜디오의 FPS 설정을 알맞게 조절하여, VRChat과 프리즘스튜디오의 퍼포먼스가 거의 동일해지게끔 하여 프레임 불안정 현상을 크게 개선할 수 있게 됩니다.
VRCPrismStudio와 VRChat의 FPS 설정을 제한하여, 빈도를 맞추는 그림

FPS 설정은 어디에서?

VRChat: Settings > Graphics > FPS
VRChat에서 FPS를 조절하는 옵션을 보여주는 사진

프리즘스튜디오: 메인 오브젝트 선택 후 StudioSystem에서 일반 설정 > FPS
VRCPrismStudio에서 FPS를 조절하는 옵션을 보여주는 사진

경고

Unity 에디터에서 FPS 제한을 할 수 있지만, 에디터의 성능으로 인해 FPS 수치가 불안정해집니다! 그렇기 때문에 항상 Build And Run을 사용해서 구동하시길 바랍니다.
VRCPrismStudio 유니티 프로젝트에서 Build and Run 옵션을 선택하는 사진

추천 설정값들

추천 설정 1: VRChat 60, Prism 120

제가 현재 사용중인 세팅이며, 제일 안정적인 성능을 제공합니다. 또한 PrismStudio의 기본 설정으로 되어있습니다.

VRChat에서의 FPS 설정을 Capped, 수치를 60으로 설정
VRChat에서의 FPS 설정을 Capped, 수치를 60으로 설정하는 사진

프리즘스튜디오의 FPS 설정을 120으로, VSync는 OFF
프리즘스튜디오의 FPS 설정을 120으로, VSync는 OFF로 설정하는 사진

이렇게 할 경우 프리즘스튜디오는 VRChat이 1프레임 그릴때 2개의 온전한 OSC 데이터를 보낼 수 있게 됩니다.

추천 설정 2: VRChat VSync, Prism VSync

이 다음으로 추천되는 설정은 VRChat과 프리즘스튜디오 둘 다 VSync를 사용하는 것 입니다.
VSync (수직동기화란?): 수직동기화 - 나무위키

VRChat에서의 FPS 설정을 VSync으로
VRChat에서의 FPS 설정을 VSync으로 설정하는 사진

프리즘스튜디오의 FPS 설정을 모니터의 헤르츠에 맞게, VSync ON
프리즘스튜디오의 FPS 설정을 모니터의 헤르츠에 맞게, VSync를 켜는 사진

이렇게 하면 VRChat과 프리즘스튜디오 둘 다 수직동기화를 사용하여, 모니터의 새로고침 빈도에 맞게 OSC 데이터를 보낼 수 있게 되며, VRChat에서 더 안정적으로 프레임을 렌더링할 수 있게 됩니다.

추천 설정 3: 찍으려는 영상에 맞춰서

이 다음으로 추천되는 설정은 촬영하려는 영상의 FPS 수치에 맞게 설정하되, 프리즘스튜디오의 FPS를 2배로 설정하는 것 입니다.
이렇게 되면, 촬영하려는 영상의 프레임에 맞춰서 바로 영상 촬영을 할 수 있게 됩니다.
예를 들어, 24FPS 영상 (예시: Stellar Stellar / 星街すいせい(official)) 을 촬영하려 한다면 VRChat의 FPS를 24로, 프리즘스튜디오의 FPS를 48로 설정합니다.

추천 설정 4: VRChat 60, Prism 무제한

이 다음으로 추천되는 설정은 VRChat의 FPS를 60 고정으로, 그리고 프리즘스튜디오의 FPS를 무제한으로 설정하는 것 입니다.
이렇게 되면 VRChat이 한 프레임을 렌더링할 때 프리즘이 그 사이에 수많은 OSC 데이터를 전송할 수 있게 되어, 만일 마지막으로 전송된 OSC 데이터가 온전히 VRChat에 전송되지 못해도 이전에 온전히 받은 OSC 데이터에 의존할 수 있게 됩니다.

VRChat에서의 FPS 설정을 Capped, 수치를 60으로 설정
VRChat에서의 FPS 설정을 Capped, 수치를 60으로 설정하는 사진

프리즘스튜디오의 FPS 설정을 무제한으로 (-1 또는 큰 수치), VSync OFF
프리즘스튜디오의 FPS 설정을 무제한으로 (-1 또는 큰 수치), VSync를 끄는 사진

이전 추천 설정과는 그렇게 추천되지 않는 설정이지만, 그래도 이 위의 설정들을 시도해봤지만 좋은 결과를 보여주지 않았다면 이 방법이 그나마 개선해줄 수 있을 것으로 보입니다.

추천 설정 n: 직접 실험

위 추천 설정을 모두 테스트해봤음에도 불구하고 그래도 불안정하다고 생각된다면, 한두시간정도 시간을 투자하여 본인의 환경에 맞는 최적의 수치와 설정을 찾아 보시는 것을 추천드립니다.

또한 이러한 설정이나 문제에 대해 문의하고 싶다면 Discord 서버 (https://prismstudio.haruna.dev) 또는 트위터 DM (https://x.com/tw_harunadev) 을 통해 언제든지 문의 바랍니다!