The game might actually be using spine animations, not Live2D. Would need to take a closer look at how it’s implemented there.
You can apply BepInEx and the plugin to each executable/component of Live2DViewerEX, for example: C:\Program Files (x86)\Steam\steamapps\common\Live2DViewerEX\bin + \exstudio, \lw, \lwui, \motiontracker64
Each of those acts like its own Unity app, so BepInEx needs to be installed separately for the one you want to use.
I’m sorry to trouble you, but may I ask a question?
When I first launched the application, it started without any issues and I was even able to export files. However, from the next launch onward, it either freezes on a black screen during startup or only runs in the background.
I was able to launch it successfully when I removed BepInEx, or when I removed only CubiLink. Also, if I launch the game a second time while it is already running, the game itself starts, but the CubiLink UI does not appear.
Since it worked fine the first time, I don’t believe the game itself is incompatible.
I would like to try deleting the data created by CubiLink, but I’m not sure where it is stored. Could you please let me know where I can find it?
I would also appreciate it if you could let me know of any other possible solutions.
Also, I do have the exported data, so I will provide it. However, it hasn’t been fully tested, and I believe it may still need some adjustments.
I could use some help with the setup, most likely something on my end but from what I understand the plugin UI should appear when launching the game after setup, but it doesn’t appear to show up, for context here is what I’m doing
Unpacking BepInEx_win_x64_5.4.23.2 into the game folder
Launching the game to create the BeplnEx folder structure
Placing the CubiLink.dll in BeplnEx/plugins (the plugins folder wasn’t automatically generated so I just created it)
Launching the game (no UI appears from what I can tell)
Tested with latest available files from this mod, game testing on was Griffiths Pazuri
Not sure if anyone else had issues but any direction would be appreciated
So far I’ve found 3 games that CubiLink has detected Cubism installed. I avoided VN and sex sim games as I generally enjoy having some form of gameplay involved. Here is what I’ve found so far:
I haven’t been able to recreate this issue so far, but it could be caused by corrupted PlayerPrefs / saved data.
CubiLink stores settings in two places:
• BepInEx/config/CubiLink
• Unity PlayerPrefs (Windows registry)
Try the following:
Delete the folder: BepInEx/config/CubiLink
Reset PlayerPrefs by deleting this registry key: Computer\HKEY_CURRENT_USER\Software\A86GJ3\SuccubusChase
(this will reset all saved settings for the game)
If that doesn’t work, you can send your BepInEx/LogOutput.log and I’ll have a closer look.
I was able to launch it successfully after deleting the SuccubusChase registry entry!
However, since the CubiLink files had been deleted, when I re-imported the exported file, I noticed that all the functions I had entered for Multiplier and Offset were missing.
I feel this is quite unfortunate, as it makes it difficult to share and enjoy these results with others.
If this issue was caused by something I did incorrectly, I would greatly appreciate it if you could let me know the correct procedure.
I checked the plugin code and this is indeed a bug on CubiLink’s side, not something you did wrong.
Currently the original Multiplier / Offset formulas are stored internally and also supported on import, but they are not actually written into the exported template file.
Because of that, after re-importing, only the evaluated numeric values remain.
I fixed that in the latest version now, so the Multiplier & Offset formulas will be included in the template file itself.
I’m not sure if this is due to incorrect usage on my part, but CubiLink may have a mapping issue when outputting TCode commands. The axis range for TCode commands is 0–9999, not 0–100 (or any other range).
When outputting commands like “L0xxxx\n”, the values should be linearly mapped from the original range to 0–9999. It seems that CubiLink is not performing this mapping, resulting in outputs like “L0100\n” with very small values. From a macro perspective, it looks like the OSR isn’t moving at all.
The plugin does indeed output T-Code values in the 0–999 range, not 0–9999.
So if your target setup expects 4-digit values, that would explain why the movement looks far too small.
I’ll look into making the T-Code output scale configurable, or updating it so 4-digit output can be supported properly as well.
You don’t need to make the output scaling configurable—the T-Code specification already defines the range as 0–9999 (this is fixed). You just need to apply a linear mapping.
For example, if the original range is 0–100 and the current value is 50, then it should be mapped to 5000 when outputting the T-Code command. I also noticed that the original project Live2D-to-SR6-Motion doesn’t perform this linear mapping either, which is clearly a mistake.
For example, in my project OSRChat, this is how I implemented it:
I apologize in advance if my request sounds unrealistic, as I am not very knowledgeable about the technical aspects. I also apologize if anything I say comes across as inappropriate.
I understand that this may be difficult, and you have already done more than enough. I also respect that you have your own time to consider, so I would appreciate it if you could take this as a casual suggestion.
Would it be technically possible to link the currently playing Live2D animation with templates and automatically switch which one is used?
Alternatively, would it be possible to implement multiple axes of the same type within a single template, and determine priority based on the presence of specific Live2D parameters or threshold values, so that multiple Live2D animations can switch seamlessly within a single scene or during gameplay?
I believe this plugin is primarily suited for games like the ones you’ve shared, where Live2D transitions are not very frequent, or where the user can manually switch Live2D models.
No worries, I always appreciate feedback and suggestions.
It might be possible to detect most scene changes automatically, but that will likely differ a lot from game to game.
The tricky part is making it work across a wide range of titles.
Switching based on parameters is a bit more complicated as well, since many games reuse the same parameters or keep them active in the background.
So it’s not always easy to clearly define when an animation actually “switches”.
I’ll definitely look into implementing something along those lines in the future, but results will probably vary depending on the game.
I also felt that switching based on parameters would be difficult, so it seems that detecting animations is indeed necessary.
Regarding parameters, if a function includes parameters that do not currently exist, it results in an error. In such cases, would it be possible to assign a value of 0 instead?
I look forward to the possibility of automatic switching through animation detection in the future.