Personally, I still think the best approach is to look at each game’s internal functions and use whatever makes sense for that game.
That’s what my two mods have in common: the game gives me enough information to read or calculate a definite depth value at any given moment. I can translate that into where the device should be, instead of guessing from whichever animation parameter happens to be moving.
For the smoothness issue, I’d look at how established community projects handle motion output. AI can help write the code, but it still needs someone who understands the device commands and timing to guide it.
For example, with T-Code, L0999I200 means “move the L0 axis to position 999 over 200 ms.” L0, L1 and L2 are different motion axes, and in this format, 000–999 represents the target position within the configured travel range. Intiface’s LinearCmd follows a similar idea: a target position and a duration.
Once you understand that, it becomes easier to see why simply sending a new position every frame doesn’t necessarily produce smooth motion. If you keep asking the device to travel farther than it physically can in the time you give it, it will keep falling behind. You need to limit the requested movement speed so the targets are actually achievable.
You can also experiment with having it reach a target slightly before the corresponding animation moment—something like a 20–50 ms lead as a starting point, then tune it for your device and update rate. That means planning the target ahead of time, rather than just making every movement faster. The right timing depends on the hardware.
So yeah, I wouldn’t spend too much time chasing a universal solution here. CubiLink currently supports Mono, so even ordinary IL2CPP support is another job, before you get into obfuscated APIs and protected metadata. I’d rather adapt the data collection to each game and reuse the mapping/output code wherever possible.
And honestly, the protection in some of these games is pretty frustrating. It feels like dealing with a big online game’s protection just to read an animation value. From a modder’s perspective, it’s hard to see what it achieves when it doesn’t seem to stop people sharing the game anyway—it mostly makes this kind of modding harder.
Anyway, hope some of that helps with the Manami version.