Please post bug reports in here - you can also report them as issues on the GitHub repository (linked in the project info)
Known bugs & issues:
we are noticing that when a controller hotkey is bound, or when no hotkey is bound due to unplugging the controller, our keyboard media keys activate whichever enabled state is at the top of the list, when an arbitrary standard keyboard key hotkey is set the media keys do not activate the state like normal (we use a wireless logitech media keyboard from like 2004)
hmmmm we are noticing that if we flip ignore axis on it prevents the axis from being bound to the hotkey but we still can't bind a button on that controller until we center the axis. Also, we're noticing some frame rate issues with the new version that idk is related. We have a 165hz monitor but when we open the program it seems to shunt our entire display down to 120 which it runs without v sync and 60 with the vsync enabled. the media keys thing is working good though!!!
check out this video we made (which youtube has decided is a short)
our issue is the checkbox prevents an axis from being bound when its on, but if we want to bind a button we still have to go through the process to center out a bunch of axis even with the box ticked, essentially with the box ticked and an axis is being detected it will block all binding completely (we checked and this behavior works the same when you hold an axis maxed while trying to bind a button on a standard controller) also we really really appreciate you going through the effort to set this up since we know its a pretty edgy edge case just in case we come off as entitled!!!!Sorry to hear that. When the menu is showing you should see some squares in the corners which can be used to resize it, and while making it larger this won't visually be updated until you let go.
In the future I can add some options to choose the type of window into a more standard resizable Windows-style one.
In the mean time, you can also set the window size by editing the config.xml file.
Very sorry I can't help more right now, but I'll test and make sure everything's working as it should, and add the extra window options soon!
When using controller, it won't let me hold both triggers and use both functions they have connected to them at the same time. The bumpers also seem to toggle things on and can't be toggled off.
I wanted to just use keyboard and mouse for these functions but I can't keybind anything to the mouse buttons so aaa.
The newest version I downloaded today won't load anything, it seems stuck forever showing "Loading..." and not any of the usual UI for "Layer Set", Overwrite, Load, and the layers . Am I missing a step in running the program maybe? Both the 64 version and the regular version are doing this, and it behaves the same whether running as administrator or not
I'm using an older version that works just fine.
I don't know if this is a bug or a feature request: While trying the latest mouse track, I found out that you can have a child layer (child as in "inherits movement") inherit a parent's mouse track, but mouse track won't work for any layer that inherits movement from another.
I think they should be stackable; so for example you can have separate mouse tracking for the head, face and pupils. Pupils inherit from face, which inherits from head and they all move with synched bounce, breathing, etc and individual limits.
I can't seem to record directional pad button press on my controller for states, all the other buttons seem to work fine. Looking my controller settings, it seems that the dpad is read as the Point of View Hat (I'm pressing up on the dpad here) and not as a numbered button, which might be the reason why.
I'm using a PS4 controller if it matters, I also tried with a 360 controller and that also reads the dpad as point of view hat
Ah ok, That probably would work, my controller seems to have a tiny amount of joystick drift, so when I try to record without disabled axis input, it immediately records the joystick. I may just need to look into a different controller or do some maintenance. Thank you for the help, I appreciate it!
Heya, I just updated from a version I downloaded 28/02/2024 (couldn't find a version number sorry) and I'm experiencing some weirdness when switching between two layers (in this case between a closed and open set of eyes for manual blinking). Switching from one layer to the other is instantenous, but then there's a delay when switching back again.
It used to be instantaneous so I could blink rapidly, but now there seems to be some kind of articial delay that doesn't seem perfomance related, because other layers work fine.
Bit of a weird one happy to hop on discord or something to demonstrate. I'd really like to use the new features but might have to stay downgraded for a bit longer.
Hi, sorry to hear that.
It may be a bug introduced by the changes to the states menu since you last updated. Deleting and re-creating the state might help, if you want to try that.
If that doesn't work, please can you post a screenshot of the state you have set up to do the switching, and a screenshot of the state's entry (written as a "hotkey") from your layer set xml file?
Cheers!
Hi, do you have any non-english letters in your installation path? There's a known bug with that which can cause unexpected issues like this.
If you put RahiTuber in the location C:/RahiTuber and place your image sprite files in the same folder, that particular problem should be avoided.
If the issue still happens let me know!
There seems to be a bit of an issue with how Rahituber recognizes mouse movements. Particularly, changing programs that have different FPS (in the example in the video, going between the Fortnite lobby and in-game resulted in some weird jittery motions, especially in layers that have inherited motion. I don't know if the FPS different is actually the cause or not, but that situation where there is a program i have focused is changing between two states of a limited FPS and a free FPS seem to cause it. You can find an example in the video below! The clip about it starts about 1:35
I think the mouse movement being jumpy is a result of the game grabbing your mouse and forcing it to move to the center of the screen (or some other similar thing, games all do different stuff with the mouse and it's hard to account for).
RahiTuber directly translates your mouse's position on the screen into a position co-ordinate for the layer, so if the layer jitters, that means the mouse jitters. I'll try to add something to smooth any sudden jumps.
I had this bug where the last layer I was tinkering with would go to the bottom after clicking in an empty part of the layer manager, and I've managed to find what causes it.
It seems like the last layer stays somehow selected after clicking it and holding the mouse button for slightly too long made it as if I moved it to the bottom:
Hi there! A friend of mine canโt output his vtuber to Spout2, but other applications that output to Spout2 work just fine.
(For context: my own vtuber model done with the same method works like a charm)
If thereโs any way you can help or contact me about the issue, that would be greatly appreciated!
Hi, sorry to hear that. You can contact me via discord @rahisaurus or at rahisaurus@gmail.com to share more details.
If your friend is using the Linux version, spout2 support isn't there yet (and won't be until spout2 offer it themselves) - but on windows, see if the different architecture builds (RahiTuber.exe and RahiTuber_64.exe) have different results? Maybe it has to match whatever architecture OBS is using.
Hi Rahi!
My friend is using the windows version, both architectures return the exact same lack of an output in Spout2.
I have friended you on discord, if itโs possible for you to contact me there, this problem can be resolved in a quicker amount of time than if it were done through Itch or emails.
Much appreciated for the timely response.
This is a weird one, especially since there's no code in RahiTuber that connects to any audio output device. It's possible there's some confusion behind the scenes where something considers the headphones and the microphone to be the same device, but that really shouldn't be the case... I'll see if I can find anything, but I'm not sure I will because I don't have a headset that produces this problem.
Thanks for letting me know, I'll keep you posted.
Heya! I've been trying to diagnose why this isn't working but I've mapped some states to my controller and it works plenty fine when the program (rahituber) is in focus but the moment I tab back the game, the controller mapping stops working. I'm not sure if this is intended behavior or not with some restrictions the software might have but I feel like it'd be a bug since some games require window focus for controller inputs to work.
This may or may not have already been reported but the program doesn't seem to play all that nice with mixed monitor scaling or just monitor scaling in general. I have a main 4K monitor at 200% scaling and a secondary 1080p monitor at 100% scaling and on the 4K monitor everything is WAY too tiny to use while on the 1080p monitor I can use the application but the output over spout2 looks really muddy in OBS. Is this a limitation of the UI toolkit being used here?
ive been having startup crashes when i moved the window into my second and 3rd monitor. If ive moved the window and exit while on a monitor that wasn't the 1st it would show a black screen with "program not responding" on task manager. Im unable to move the window as the "program unresponsive" pop up appears and there is no boarders to move the window.
Seems so far that as long as i keep the window on the first monitor it starts up and works fine.
Turning the monitors off and attempting to start while previously on 2nd/3rd monitor does not fix it and i have to unzip a new version of the program.
Version 12 / running windows 10
Hi, as a faster workaround you can just delete config.xml and it will be recreated with default settings. Alternatively you can edit config.xml to set the window positions to 0 and keep your settings.
I'm sorry you're experiencing this issue, I've tested on multiple monitors myself and had no problems yet so this one might be hard to catch. I'll try to add more logs and safeguarding around the window creation code.
Hello! I'm not 100% sure if this counts as a bug, if I'm missing something, or I'm just trying to use states for something more intensive than they were meant for but any help would be much appreciated!
I'm trying to use states to make an reactive arcade stick for my avatar to use, but I'm having some trouble with some states sticking when things overlap, for example with diagonal inputs on the joystick or simultaneous button presses.
(of course it took longer to happen when i decided to record it lol)
I have each joystick state set to just show the active directional layer and hide the neutral layer, and each button state to show the active button layer, and also hide other button layers along with the neutral layer. As you can see about halfway through the video, they both end up having a state stick. Is there anything i can do to fix this?
Okay so I tried one last thing that actually fixed this by setting 2 states per directional/button and State Passthrough, so right on the joystick activates 1 state that turns on the Right layer and a 2nd that turns off the Neutral layer, so now I'm doubly unsure if this is a bug report or now a feature request: Is it possible to make the original way i was doing it work, in order to have fewer total states?
In previous versions transform rotation was inherited by child parts, but in the latest version (13.1) it doesn't work anymore. I don't know if it was intended, but it made adjusting rotation motions better (I used it to make an appendage rotate 6 degrees and offset it's rotation to -3 to make it centered).
While in the same topic, would it be possible to have an option to stop mouse tracking when the part is hidden? (I'd love to use empty layers to turn on-off mouse tracking of certain parts using states hehe).
Thanks โค
Thanks for letting me know, I'm not aware i changed anything to do with rotation inheritance in the latest update... I'm pretty sure I've tested multiple setups with inherited rotation too. Sorry to hear it's not working for your setup! Which was the previous version you used?
Thanks for the idea about mouse tracking as well.
I'll try to get a fix out asap!
Hello! Been playing with this and it's been a fantastic transition from learning/using a previous application, and the features on this one has been awesome.
So about the "Control States via HTTP", I noticed that when two windows are open, the web requests only apply on the first window that was opened.
Currently the method I trigger this is by Stream Deck via the "Web Requests" plugin, and this the configuration to make it work.
So it works, just when I open a second window, it continues to only work for the first window. I run two windows of two characters, so that's why I noticed this, haha. Couldn't find a way to DM to share directly.
Thank you again!
Hi, thanks for pointing this out. That is currently a limitation, but I'm not exactly sure _why_ ... I'm rather new to this kind of low-level network programming. Both instances of RahiTuber should have a listener open on the same port, so the problem is either:
Will get back to you when i find out more!
Sounds good, thank you! I don't know much about it, but what if each window could have it's own assignable port? If I set the first window to 8000 and the second window to 8001, would both listeners work?
I don't know if streaming applications can send two web requests with one action, but with Stream Deck, a button can be a multiaction and I could have two web requests tied to a button.
EDIT: So Streamer.bot works with the "Fetch URL" sub action, in case anybody is wondering about that. And multiple sub-actions can be added, so if my above idea is a possibility, it could work.
Awesome, looking forward to it when it drops. I've been having fun setting it up. Twitch commands seem like a fun thing to let viewers change the outfit haha. I gotta actually stream more first tho. :P
Awesome setup idea!
Here's the update! https://rahisaurus.itch.io/rahituber/devlog/888986/update-2025-02-16-v133
Thank you! It's working and I have commands set up through Streamerbot and it's awesome.
https://i.imgur.com/8jC6vPJ.mp4
The only quirk is I think it's part of the global settings, so it doesn't save to the layer set. Not sure if I'm doing that wrong. But it's such a minor thing to adjust on my end when booting up the second window.
Thank you again. :D
Yeah, I thought it made the most sense to be a global setting.
If you want to keep your config and the most recently loaded layer set for both windows, you can copy the RahiTuber directory (so, running your second setup on a copied RahiTuber.exe in a new location) and then it'll have it's own config file .
Yesterday I managed to do my initial idea of toggling between two mouse tracking states, but I've found some caveats in the way:
I think that's all I've noticed, I'll let you know if I find any other weird things.
EDIT: Regarding #1, if I discard the "exaggerated motion" layers, then all positions reset properly, I think it may have something to do with stacking empty layers with mouse tracking. I'll try to use a 1x1 transparent image to see how that works later.
Sadly the transparent sprite didn't work so I guess it must be a stacked mouse tracking issue, and I found a huge bug in the new Contrast theme: it's missing the "load"/"save" buttons in the dialogue boxes! ๐
UPDATE: I came up with a workaround for the mouse tracking: I made an intermediary, always on simple layer that sits between the two motions (Subtle -> Intermediary -> Exaggerated) and now things work as expected. So it's definitely a problem with consecutive mouse tracking inheriting.
I hope this helps.
Hi, I've already found and fixed the contrast theme issue ๐ That's what I get for having windows with absolute pixel sizes instead of being based on the font size...
I also fixed the HTTP state blocking issue.
I've just tried replicating your setup with two empty layers that both have mouse tracking enabled, the inheritance goes like this:
someMoreMotion > someMotion > heart
I couldn't find any issues with this setup. Did I miss something?
Do all your layers have "hide with parent" turned off?
I did just notice that they don't stop tracking if they are visible themselves, but in a folder that gets hidden. Fixed that.
I'm going to try to recreate the broken state and send the model to you. I did notice something weird with the folders, so I hide the contents too to be sure. (Sorry for a deleted reply earlier, I thought it fixed by itself while recreating it and it turned out I just deleted a folder and not it's contents ๐)
I've just tried replicating your setup with two empty layers that both have mouse tracking enabled, the inheritance goes like this:
someMoreMotion > someMotion > heart
I couldn't find any issues with this setup.
Did I miss something?
Do all your layers have "hide with parent" turned off?
Yes, "hide with parent" is turned off and I believe that order is correct, but in my case someMoreMotion would probably inherit from another sprite that inherits from aDifferentMotion, etc... So maybe I'm stressing the software too much ๐
Good evening, I'm currently drawing a character to use in this program. I have all the parts of the character separated into layers to have better control and be able to customize it better. But now I'm noticing in these latest versions that if the character breathes (increases and reduces the scale) to create the "breathing" effect. But having the character separated by layers, there comes a point where the "breathing" frequency starts to vary slightly until it reaches the maximum point where all the parts of the character start to move individually until the frequencies synchronize and then the problem happens again. Could you put the breathing effect in the folders as well? This way I can remove the breathing effect from all the layers and only activate that effect in the folder that contains all my layers and in this way all the layers placed inside a group of folders would have the same breathing frequency. Apart from those details, excellent work with this software, I love it. Congratulations.
13.4 Bug Report incoming!
I'll update you if I notice anything else, for now I'll be squishing parts, I'm loving this feature hehe
Thanks for this info and the detailed reports!
Hopefully these won't be causing people too many issues until i fix them. The vsync one is strange because i literally didn't change the vsync code ๐ค
The horizontal squishing is intentional, and it's based on where the pivot is in relation to the sprite center. If there's more "weight" on one side, thats the side that will lag behind.
However, currently with a centered pivot point, it does just pick the left side. I could definitely add something that when the X pivot is at 50%, horizontal stretch is symmetrical.
To be honest the misalignment isn't noticeable in a normal use case, but while playing with more exaggerated values I started seeing it and I cranked it all up to see what it was ๐
The one that was annoying was the VSync because it worked perfectly before and at first I didn't understand why the CPU usage was so high all of the sudden. Oh also, in 13.32 and before, VSync On used to limit the frames to 60 in both my monitors and now it goes to 120 in my main, but I don't know if that's related and helps tracking the issue.
Oh that makes sense, I felt it was intentional. It would be great!
Vsync has no guarantee of frame rate, only that it aligns with your monitors refresh rate - so if it can fit two frames in before your monitor refreshes, I think it does that.
The difference between this and the previous version is that previously, when vsync was enabled, I was also limiting the FPS to 60. I removed that in case people have high-refresh-rate monitors and want to see it at 120fps.
I'm using SFML for the rendering side of things, so i might need to take a deep dive into their implementation to find out why this has suddenly gone wrong...
Oh, so that's why it didn't go up to 120 before!
I've been investigating and it seems like it's a driver problem (NVIDIA in my case) and not a SFML one. Turning off "Threaded Optimization" in NVIDIA Control Panel solved it. I guess that's a partial win ๐
Going off on a slight tangent, I've noticed the FPS determine the physics movements and I came across this article that might be helpful to make them consistent
I hope all of this helps!