Barinzaya / remote-wheel

A pair of applications which allow a virtual mirror of a steering wheel peripheral to be displayed.
MIT License
3 stars 1 forks source link

Please update to use only Vnyan #1

Open RayneYoruka opened 10 months ago

RayneYoruka commented 10 months ago

Vnyan does not have a VMC sender function and most people have stopped using VseeFace due to Vnyan having it's own built- tracking, it is possible to send pose data via VMC alone.

Barinzaya commented 10 months ago

That would require a lot more work to be done here. The VMC input isn't fluff, it's actually doing most of the heavy lifting here. Right now this program just takes the armature received via VMC and performs a bit of simple IK to position the arms accordingly, leaving everything else as-is. This eliminates the need for having to do the tracking in this application (to know how the body should be positioned) as well as having to load and process the model for the avatar (to know what the dimensions of the avatar should be).

The only possibility I could think of to avoid that work would be if there were a setup that would allow for VNyan to do the tracking, send the pose info out via VMC (or some other format?), and then receive updated tracking info back and actually use that.

Otherwise, actually doing all of the work that VMC is eliminating would cause this program to get significantly larger, and retread a lot of ground. You'd be back at square one, where you still wouldn't be using VNyan's built-in tracking. Avatar loading is somewhat less of an issue since VRM is based on the reasonably popular GLTF format, but that's still a pretty decent amount of work to add here. All in all, in that scenario this program just ends up taking the place of the VSeeFace you're trying to eliminate.

The other option I can think of (and originally investigated) would be if VNyan supported some form of IK node for use in its node graphs, in which case this whole thing would have been a lot simpler. Then it would just be a matter of tossing the controller inputs to VNyan over regular OSC and do the processing in the node graph and let VNyan do the IK. Unfortunately, this wasn't an option when I started developing this (and to my knowledge, still isn't).

As an aside, another alternative is Warudo, with which you can do pretty much do exactly that last option (with a plug-in I made a while back to allow its node graphs to receive OSC messages).