Skip to main content

Frame Stablize Guide

info

This document is based on VRCPrismStudio 1.16.

Frame Stablize Guide?

Sometimes, when you’re using PrismStudio, you might encounter this unstable frame issue:

This guide can help you minimize this issue and stablize the connection between VRChat and PrismStudio.

Why is it unstable?

PrismStudio runs separately from VRChat. Due to this, the execution frequency of those two are different.

For example, If VRChat is having 70 FPS and PrismStudio FPS is set to 120 FPS, PrismStudio will send OSC data to VRChat 120 times per seconds, and VRChat will receive the OSC data and render the frame 70 times per seconds.
최적화하기 전 VRCPrismStudio와 VRChat의 FPS를 이미지로 표현한 그림 To analyze more specifically, this kind of unstable issue happens due to VRChat rendering a frame before successfully receiving OSC data from PrismStudio.
VRCPrismStudio가 데이터를 보내는 빈도와 VRChat이 프레임을 렌더링하는 빈도를 설명하는 그림

You can minimize the issue and stablize the frame by controlling VRChat and PrismStudio’s FPS configuration precisely.
VRCPrismStudio와 VRChat의 FPS 설정을 제한하여, 빈도를 맞추는 그림

How do I set FPS?

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

PrismStudio: Select PrismStudio object and from inside StudioSystem > FPS VRCPrismStudio에서 FPS를 조절하는 옵션을 보여주는 사진

warning

Unity editor can set the FPS cap, but FPS itself will be unstable due to the performance of Unity Editor! To get the full performance, please use Build And Run feature to run a separate process of PrismStudio.
VRCPrismStudio 유니티 프로젝트에서 Build and Run 옵션을 선택하는 사진

This is a configuration I use almost everytime, and will give you a stable performance. PrismStudio’s initial configuration uses this.

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

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

This configuration will allow PrismStudio to send 2 complete OSC data while VRChat is rendering a frame.

The next recommended configuration is to use VSync on both program.
What is VSync (Vertical Sync)?: Glossary:Vertical sync (Vsync) - PCGamingWiki PCGW

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

Match PrismStudio FPS to your monitor’s refresh rate, VSync OFF 프리즘스튜디오의 FPS 설정을 모니터의 헤르츠에 맞게, VSync를 켜는 사진

This way will allow both program to wait for vertical sync of your monitor, effectively able to send OSC data and render the frame.

The next recommended configuration is to use your desired video’s FPS, and use this value to set both VRChat and PrismStudio FPS. (Note that PrismStudio’s FPS will have double FPS)
This way, you will be able to both record the video at your desired FPS, and also have maximum stablization.
For example, if you’re planning to record 24 FPS video (Example: Stellar Stellar / 星街すいせい(official)), you can set the VRChat’s FPS to 24, and PrismStudio’s FPS to 48 (24 * 2).

The next recommended configuration is to only cap the VRChat FPS, and have PrismStudio FPS to be unlimited.
This way will effectively allow PrismStudio to send multiple of complete OSC data while VRChat is rendering single frame. Even if VRChat has failed to completely receive all OSC data, it might be able to fall back to the previously received OSC data.

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

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

This configuration is not really a better solution, but if you’ve tried all previous ones and haven’t able to stablize the frame, you might be able to get some benefit from this configuration.

Recommeneded n: Experiment by yourself

If you’ve tried all previous configurations and haven’t found the right one, you can take your time and try to find the finest FPS configuration for your environment.

Also, if you wish to ask me about this issue and want to get an advise, please join Discord server (https://prismstudio.haruna.dev) or DM me via Twitter (https://x.com/tw_harunadev)!