Comments (3)
Is there a reason to enforce the cached values into the game at all?
Asking because there are other ways to drive parameters, like using animator drivers, or triggers. How OSC worked in VRC is you set the value upon receiving a OSC message and that's it.
I have no data to support this since I didn't test, but I feel like keeping a cache updated by checking every frame will be less performant than just getting the value straight from the source when needed.
I'm sorry if I'm being too picky/annoying (feel free to tell me so). I just depend on OSC a lot, that's why I'm here x)
from cvrparamlib.
Is there a reason to enforce the cached values into the game at all?
It makes it easier to identify which of our parameters are parameters we are currently controller, if we ever do have the scenario when we need to know.
Asking because there are other ways to drive parameters, like using animator drivers, or triggers. How OSC worked in VRC is you set the value upon receiving a OSC message and that's it.
Don't forget that because of the OSC Debug menu, they too also have to cache which parameters are OSC driven and not.
keeping a cache updated by checking every frame will be less performant than just getting the value straight from the source when needed.
The source that we pull data from is that cache, a.k.a.
string parametername = "..."
float value = ParameterManager.Parameters[parametername]
Which is not going to tank your game's FPS. At most, it'll use a couple of KBs of memory.
I'm sorry if I'm being too picky/annoying (feel free to tell me so).
Nah no worries, I strive to design the mod as performant as possible!
However, my current plan is this. There's a method in the ViewManager (the thingy that controls cohtml stuffz) where I can hook into one of the UI Bindings, called CVRAppCallChangeAnimatorParam
. Upon this invocation, I can simply remove the cached parameter, which will give all control back to the user, until OSC or the SDK requests control of the parameter again.
from cvrparamlib.
The change has been pushed to c02fc30 and seems to function properly.
from cvrparamlib.
Related Issues (8)
- Using Avatars.RequestDetails() Displays the Avatar Information HOT 1
- Referencing CVRParamLib in Mod/Plugin Runtime throws Dependency Exception HOT 2
- Support CVRParameterStreamEntry Parameters HOT 2
- Replace CVRAdvancedSettings with baseAnimator Parameters HOT 7
- [Feature Request] Sending parameter changes out HOT 3
- Check if Cached Parameters Changed Values before Updating HOT 5
- Animator Parameter's List Initialize as null in VR HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cvrparamlib.