-
-
Notifications
You must be signed in to change notification settings - Fork 21
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Feature Request] OSC tracking #41
Comments
OSC is already supported via the VMC standard set of mappings, does these other OSC software use a different OSC chunk layout? For reference VMC is just a set of defined OSC paths and value orders at those paths, as such vmc-d is already an OSC client (and server) |
i had non-standard uses in mind. for example a rigged blob emoji with a "normal" and "scared" state. the trackers don't know when to do this animation, so a stream deck button is rigged to report scared as 1 while held. Then the tracker software transmits face data to session, the hold button on their desk transmits if the emote is on or not. from a music background this is one of the most obvious ways.
you tell the trigger and orchestration software what bundles to send, generally.
i spent a few minutes trying to find the spec for what bundles to send for that; ended up on japanese pages that went around in circles. :/ |
You send bones (Name: string) (XYZ: float3) (Quaternion: float4) to You send blendshapes (Name: string) (Value: float) to Inochi Session will accept any blendshape and bone names and will display them in the list and allow you to use them from expression bindings. |
I'll take a look. |
I tested this with Ossia Score 3. It crashes Session upon sending OSC packets to the UDP endpoint.
|
Did some testing and it looks like the issue is that sending /VMC/Ext/Blend/Catte with a float value causes I tried again by this time sending to /VMC/Ext/Blend/Apply which does not trigger a crash, but also doesn't seem to be reading the input. It looks like the VMC endpoint is expecting a remote procedure call style where an entire bundle is sent to the endpoint, whereas Ossia et all are using a traditional OSC layout where the path name is the name of the parameter and sending a single float there changes the value. It might be possible to get the other tools to produce the RPC-like calls with adapter code on that side. That isn't quite how OSC automation is meant to work and will take some digging and bodging on my part. |
Meaning, a traditional OSC tracker would use the path as the name of the sensor. They would send something like |
I was looking into this checking the VMC spec and the code From the spec (VRM BlendShapeProxyValue), what is expected is to receive a "string, float" pair in the The VMC adaptor implementation receives "string, float" pairs on whatever endpoint that starts in Since it expect the blend name as part of the message, it might not fulfill your specific needs, but if you can send the key value pair to |
Now on the topic of adding a custom OSC tracker, besides the configuration ui part, I don't think it would be hard to implement. An idea would be to add a |
Correct. This is the "RPC-style" use of OSC I was talking about. It's not illegal OSC, but it's not the way the music and interactive art folk have typically done it. So the tools don't support it very well and I'll need to get with the other devs on that.
Yup. In traditional OSC you would have separate endpoints for the parameters as well, like |
Validations
Description
Support for the Open Sound Control (OSC) protocol as a tracker source. Possibly as a control plane for the rest of the program as well.
Benefits
An external panel can then be used to change parameters (via OSC) such that the character shows a cartoon sweat effect while a terrified button is held.
Suggested solution
Support OSC control messages to control the software, and/or as a tracker input.
Alternative solution
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: