General discussion
Is there a way to set up a pngtuber for someone on discord? I'm new to the pngtuber scene and I've been loving using this for myself, but I'm wondering if it's possible to have it set up so one pngtuber is for me and one pngtuber is for someone i'm talking to on discord (or possibly multiple people on discord)
To run two instances of RahiTuber separately, i would suggest copying the program to a new folder. That way the copy can save its own config settings (like the most recent layer set, microphone, screen position etc).
The "name windows separately" option will also be necessary to keep your screen capture software from being confused.
Hope it works!
I haven't personally tried any of them, but if they require specific integrations into RahiTuber then I'm afraid you're out of luck (for now).
So far, the best you can do within RahiTuber is to set up some animated throwable layers and States to trigger them, and have the animation restart each time it's triggered. There's an example of this here: https://www.twitch.tv/rahisaurus/clip/BoxySillyElephantFUNgineer-v64GflXI_DC5BMk-
If the throwing system lets you trigger a keypress or send a web request after something is thrown, then you can set that up to trigger a state within RahiTuber.
I dont understand these UI choices at all. Are you unable to choose where things save? Is there a particular reason this program doesnt interface at all with the Windows Explorer or standard elements like a title bar and X button? Why is there no "new" button instead choosing to just type a title in. This program has a lot going for it but is held back by seemingly purposefully choosing to make a UI as difficult as possible for a random user to come in and understand. A program as simple as this should not require a tutorial for basic functions like file navigation.
The general idea was that you only need to worry about the layer set name, and it gets saved to the folder where RahiTuber is installed.
You're welcome to type in a file path before the layer set name if you wish.
I avoided using windows's file browser to make it consistent with the rest of the UI and across platforms.
I may add an option to use more traditional file browsing methods, if more people speak up about it.
Hopefully the new update https://rahisaurus.itch.io/rahituber/devlog/887394/update-2025-02-14-v131 is somewhat helpful.
Heya! Sorry if this is the wrong place to post about this, but I've been trying to dig around & follow the tutorials, but I'm having a bit of a weird problem.
I may have done this wrong, but I'm having an issue where my mouth is in the correct position while idle, but when I talk, the open mouth image is way to the side. The files are the exact same size for both closed and open, and normally line up right on top of each other.
I've tried messing with the individual motion settings, adjusting the open mouth image file itself to compensate and then updating the layer files, but nothing seems to work, it always goes to the same off-center position. Any suggestions?
Things to check:
If you like, you can send me your layer set.xml file on discord (@rahisaurus) and I'll take a look.
Thank you so much!!
I sent a friend request on discord (same name as here) if you don't mind taking a peek! I really really appreciate your help in all this, thank you so much again! ♥
To anyone finding this thread - the issue was that the two sprites for Idle and Talk were not exactly the same size. Because the pivot point for each sprite defaults to the middle (and is aligned with the size of the Idle sprite), they didn't line up in RahiTuber.
I should probably add to the documentation that the Idle/Talk/Blink/Scream sprites must all be the same size if you want them to align.
Hi, welcome! You can find the mouse tracking settings under each layer's Transforms section, and there's an overall toggle for it in the advanced menu.
A friend of mine (cringedevil on various platforms) is working on some very nice in-depth video tutorials so I'll post those here when they're done!
Hi, the ability to put a folder inside another folder severely complexifies the folder positioning logic in the menu, and I haven't had time to get that working yet. For now, it's intentional.
You can probably force a folder to be inside another folder by editing the XML file for your layer set, but that's completely untested, so meddle at your own risk! 😅
Hai! First of all, love this software and you've done an excellent job with it! How hard would it be to add a delay so that when sound ceases, there's a small window before it snaps back to idle? My png swings it's big ole head around to talk, and staying "forward" facing (aka, talk position) is optimal between short pauses/breathes even if no sound is being transmitted during that short period before I start talking again. Sorry if this already exists and I missed it!
Hi hi! Love this program so far! There so much you can do here. My mind was blown when I really got into it. I've been messing around with it a bit in OBS and I noticed the mouse tracking no longer works if you're playing a game. Is there a way around this? Or not yet? ^^ Thank you for your awesome amazing work♥
Hi, if RahiTuber can't see your mouse position then one of two things is happening: it doesn't have permission to see it (running it as administrator might help), or the game is taking control of the mouse movement and modifying it before RahiTuber gets to see it. Unfortunately, as far as I know, there's nothing else I can do from my end
I already run it in administrator mode but I'll try a third party software to see if I can get multiple programs to register my mouse.
But I ran into another problem. I opened it today it was sized waaay too big and when I tried to make it smaller it got bigger. And every time I try and make it smaller it gets even bigger to the point I can't even see the end points to resize it T^T I couldn't even use the program anymore because of it. I couldn't even click on the help menu because it pops up somewhere I can't see or access and I have to alt F4 the program just to close it. Then I found out it was because was on a monitor that messing with the size. I got back down but it glitched and I guess it got too small? and wont open at all anymore. It says its open but I can't see it on my screen anywhere. Nor am I able to click it. I don't know what I did but I broke it I'm so sorry T^T Would an uninstall and reinstall fix it?
Is this in the latest version? I did fix a similar bug in 13.5.
I've been trying to get it to handle monitors with custom scaling (i.e. in your system display settings, each monitor has a scale option) but it's a bit tricky since i can only test with what I've got. I have been testing it with different monitor scales but mine only go up to 175%.
You don't need to reinstall to fix it, if you delete config.xml it will get recreated with the default values, including window size.
Hello! I was playing around with RahiTuber earlier and really love the functionality, you've made a really fantastic program. I have a potentially niche case where my eye layers are rigged in a kind of silly, complicated way, and wanted to see if there was an existing solution I hadn't puzzled out before merging layers and losing some motion.
The short question: is there a way to link the blink states/frequencies of separate layers without setting the Variation to 0?
The longer explanation: I have my avatar's eyes set up in several individual layers for eye whites, irises, and outlines. In my current program, the irises are clipped to the whites and in order to enable a smooth, idle back-and-forth motion on the X axis without the irises sliding out of bounds. The outlines are also clipped to the whites, layered on top, and they all disappear on blink, showing just the closed-eye state as you'd expect. When I tried to replicate this in RahiTuber, the layers decided they all wanted to party on their own individual blink cycles, which was not quite what I intended.
If the solution is to set the Variation to 0, then reload the model so the animation syncs, that makes sense! I just wanted to check if I'd missed anything super evident. Side note, is there a way to mask child layers to parent layers? If not, no big deal.
Hopefully that all made sense. If you need further info or anything, please let me know. Thank you for all your hard work!
Hi, there are a few ways to make sure things sync up. For both, you need to set up a State which has a schedule, and this will serve as your new "blink" timer. You'll need to put your blink sprites on separate layers to the open eyes.
Then you can do one of the following:
Unfortunately there's no way to clip to a specific layer yet, but I'm brainstorming ideas for that right now :)
Hey! I added you on discord as well. Currently the software doesn't launch (Ver 13.5 as there is no linux build for 13.51),
Getting some linux troubles software requires sfml-2.6 but my system uses 3.0.0.
I tried doing a symbolic link with the included lib files to no avail getting the following errors:
./RahiTuber: Symbol `_ZTVN2sf5ShapeE' has different size in shared object, consider re-linking ./RahiTuber: Symbol `_ZTVN2sf11CircleShapeE' has different size in shared object, consider re-linking ./RahiTuber: Symbol `_ZTVN2sf14RectangleShapeE' has different size in shared object, consider re-linking ./RahiTuber: symbol lookup error: ./RahiTuber: undefined symbol: _ZN2sf5Color5WhiteEIf you could lmk, (if anything) what im doing wrong or if this is a bug or what have you. If you need any further logs im willing to provide! Much thanks!
Might not be the right place for this, but I am fiddling with Rahituber and it looks to me like you can interact with states using http requests. Does anybody have a guide, or a link to one to how to use that function? I want to avoid using keybinds, cause I use Synergy to share a mouse and keyboard between my OBS PC and my gaming PC, and that passes all keys.
https://rahisaurus.itch.io/rahituber/devlog/861702/update-2025-01-03-v120-http-s...
It got slightly buried. I should move this to the tutorials page.
The example shown is MixItUp but you can do the same thing with a "fetch request" in many automation tools. In addition to that guide, there are now buttons to help you copy the correct request in the states menu.
getting set up, loving the app so far! there's a few things i'm having trouble figuring out if they're possible though.
if any of these are out of scope that's fine, just wasn't sure if they're possible or not since the app has so many options.
So I have Breathing animation that is tied to a blink so that the animation happens plays every 4 seconds. But when I talk, it can result in a stutter motion where I think it flits back and forth from my single frame Idle, to my blink. Is there a way to pause the blink while talking? Here is a demo of what I mean, hopefully it's clear enough.
Ohh, interesting setup! I think this is because i never anticipated anyone using the blink animation for anything long enough to persist either side of speech.
It's because if you have "blink while talking" disabled, then it will hide that blink sprite while your volume is above the threshold, even if it's still supposed to be blinking.
If you don't mind the breathing happening during speech, an easy way around it would be to enable "blink whilst talking" and set that sprite to the same animation, and use the "sync" option in the spritesheet menu.
If you want to avoid that animation being played while talking completely, but still complete a "breath" that's already started, you can do it with a state: