2024.1208.0
After over a year of work, V2 is finally here. A lot has changed, so brace yourself for a read!
As there has been many changes, and there are a lot of differences in what modules should be used now, take a read of the upgrade document here.
As always, if you need help, join the Discord Server
What's Changed?
- UI framework
- V2 is written in WPF, meaning that it's now written in a proper desktop framework that Windows supports
- This enables for clearer text, faster UI, lower memory usage, lower storage usage, lower CPU usage, and NO GPU usage!
- This also allows for opening multiple windows so that the UI can be less cramped
- OSCQuery
- VRCOSC now supports connecting to VRChat via OSCQuery
- If you don't know what OSCQuery is, that's fine! It just means less port errors if you're running other apps
- If you were previously using the router, you now shouldn't need it
- Profiles
- Everything you do in the app, aside from global settings, is now inside a profile
- This means you can now make different profiles for different things
- Profiles are able to be copied if needed
- Profiles are also able to be linked to avatars, meaning if you change into an avatar the linked profile will be changed to, automating profile switching!
- Modules
- The SDK has been completely revamped to be more stable and resilient
- Modules are now installed directly from GitHub, and the official modules aren't packaged with the app. This allows for modules to be updated without the app updating
- Anyone can now publish a module package on GitHub and have it appear inside the app for everyone to use!
- Modules have had a massive facelift with clearer UI for their settings and parameters
- You can now import/export configs for easier sharing, and for putting alongside prefabs so installing them even easier
- Compatible prefabs are also linked
- Where applicable, there are also links to the docs for certain modules where extra information is useful
- Parameters are also now able to be disabled, if you don't want to see certain parameters
- Run View
- The run view has had a massive upgrade with several notable features
- The first tab, runtime, allows module developers to create custom UI to be placed on the run view for users to use. These are meant to be for settings that can be dynamically populated during runtime
- The second tab, avatar, is the incoming and outgoing parameter list that was in V1
- The third tab, ChatBox, is a preview of the ChatBox when the timeline is active, meaning you don't have to go into VRChat to see if things are working
- The ChatBox tab also allows you to type live text into the ChatBox to override the timeline
- ChatBox V4
- ChatBox V4, also now just the ChatBox Animation System, is an upgraded version of ChatBox V3
- The timeline now allows you to reorder clips by dragging them between layers
- Module developers can now add dynamic states (ones that aren't available when the app starts), meaning for things like the Counter module, different states and events per counter!
- States and events have had a facelift, allowing for custom settings per state and event. Things like showing the typing indicator, some background tricks to "hide" it, and more to come!
- The biggest change has been to how variables are referenced. They're now in a list, where you use
{i}
in the textbox to reference them, wherei
is the number next to the variable - Variables are now instanced, meaning the module provides some raw data, and you choose how it's formatted
- TickerTape is no longer a module, as every variable can ticker tape!
- There's also some custom variables that don't require a module to work. If you think you know of something that would be useful, suggest it
- You'll also see the clips and states/events outline in yellow. This is to show you which clip and state/event is currently active
- Speech To Text
- The speech engine is now global rather than being per module, and has changed from VOSK to Whisper
- Whisper has many upsides, being that it's faster, more accurate, has punctuation, and uses less resources
- Since it's global, you need to go into the app's settings and install a model
- In the settings you can also mess with the different sliders to get recognition to work better for you. The default settings should be fine for most users
- If you have a Vulkan-capable GPU, it will also be used where possible to speed up recognition. It won't use it if VRChat is taking up all your GPU though!
- SteamVR
- SteamVR integration has been given an upgrade, allowing modules to reference specific roles for trackers rather than having a list
- This requires users to go into the app's settings and assign roles to all the devices that have connected to their SteamVR instance
Along with everything above there's countless smaller changes, improvements, and QoL features!
Thank You!
Thank you to everyone that's supported V2's development over the past year. It's been a lot of effort to get things right, and I'm very excited for the future of VRCOSC.
A big thank you to the beta testers who were daily-driving V2 and reporting bugs, and a massive thank you to the whole community who've still been using VRCOSC!