Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

rahisaurus

293
Posts
8
Topics
384
Followers
6
Following
A member registered Jun 27, 2017 · View creator page →

Creator of

Recent community posts

(1 edit)

you can use a "virtual audio cable" otherwise known as a loopback. VB-AUDIO makes one that i use myself. 

essentially you would set the vtspog output device as the cable 'input' and then the 'output' becomes rahituber's input.

I'm not sure, sadly I don't have an AMD gpu to test with. Try looking up how to force a game to use your specific gpu, or update drivers if you don't find anything.

on my end I'll see if there's a way to have RahiTuber select the preferred GPU.

Thanks for the log, that makes the problem clear: The issue is the GPU - I've never seen a Microsoft Corporation GDI Generic renderer before...

Do you have a GPU installed? If so, try the "I get a blank window / Rendering problems" step in the FAQ: https://itch.io/t/3967527/faq#post-10433312

Hi - yeah, you'd be better off using a "Active while talking" State instead of the Blink function. With those, you can set a timeout that keeps it visible for a short time after it's active.

There's an example of my own hand gesture state in the States and Automation Tutorial

(1 edit)

omgosh so cute!!! I love the way you did the tracking on the arms too, very nice!
edit: Just noticed the shines on the glasses too. VERY nice :D

Ah! that would explain it 😅

The guide's already here!

thanks for sharing!

with the latest update you can now use the new offset setting to make them both line up on the same layer ^^

This update should fix it - please let me know if it does! Thanks!  https://rahisaurus.itch.io/rahituber/devlog/1462908/update-2026-03-18

Hi PhysiLee, this is the same as the "known bug" i posted in the devlog - I've actually already got a fix, if you'd like to help test it you're welcome to add me on Discord (@rahisaurus) and i can send you the test build. (this goes for anyone else too btw)

I guess it's technically possible? But how would you record it.... I'll leave this up to someone else to come forth and contribute to the GitHub, i think.

When using the window capture method, make sure you have the capture method set to "windows 10 and up" method. 

I'm not sure why spout gives you no output, i know many users can use it without issues so maybe it's a quirk of your graphics card? What GPU model do you have?

That's very strange, i use the named ones all the time and never had that. I'll look more into it

Oh, that's odd. What was the name of the state? 

Glad it worked!

Using the http trigger is the best way to do stuff like that at the moment - it doesn't have to be an online bot, all you need to do is make a http GET request to the url you can copy from the states menu. I'm pretty sure there's a python function to do that, and that way you can reuse your script!

(1 edit)

I've just been thinking and I had the idea of "tagging" layers too, where you could use a State to hide/show everything with a certain tag. Then you could add new things to the tag and it would automatically be part of the state!

It does not already exist, don't worry... 

My design for the layer stack is based on art programs, where the order you see is what you get. Adding a z-order option would break that, as soon as one of the layers has a custom order then you can't just look at the list and see what's what. There's also the issue of moving other layers around, should the custom z-order change or remain static? 

For now, we have a few options:

- RahiTuber doesn't store an image more than once, so having identical layers won't affect your performance unless you're actually drawing them more than once. With that in mind, you could actually make a folder for each expression with the entire model in each, and just hide/show the folders. 

Currently that would come with its own awkwardness, because duplicated layers still retain their inherit/clip options as the original layers, so you'd have to manually change them (I've got an option to change that in the future) 

- another option is for me to add a filter to the state layer list, so you could just search "hair" and see them all together.

Yes, it could! I've actually been talking to Lina about it!

Should now be fixed!

By the way - I've now added actual correct controller interpretation for VJoy, so you should now be able to use a more intuitive controller axis setup (yaw pitch roll and x y z axes should all work now)

Hi, sorry for the late reply, I hadn't seen this!
The issue is that the file paths are using backspaces. The "Make Portable" function is supposed to do this, but unfortunately there was a brief period where that function was broken. I have just discovered that it is STILL broken despite my effort to fix it last update... Will fix asap!

if you want to limit the movement on a certain mouse axis, you can change the movement limit for that axis to 0. Does that help?

I could add more advanced options in future like a deadzone and swapping axes around.

Hi there, this is in the tutorials thread but it's a little hard to see. I'll turn it into a text tutorial at some point.

https://bsky.app/profile/rahisaurus.itch.io/post/3lmarixnzzs2c

Thank you so much for posting this! I was already thinking of adding this kind of option into RahiTuber a while back, and I forgot...

 Seeing how popular this idea is, I'll work on adding that next!

That looks amazing, well done!!

And thank YOU!

Whoops - I have probably missed a step when removing the old 32-bit Rahituber.exe file. Thanks for letting me know, I've fixed the manifest now. It shouldn't give you the option to launch the missing 32-bit version any more!

Thanks for sharing this! I don't personally have any Bluetooth controllers so I hadn't run into this.

(7 edits)

Tutorial 3: States and Automation

So, you have a model with multiple expressions, outfits, or props, and you want to switch between them easily? This is what States are for!

States are settings that can be applied to multiple layers at once, triggered by a keyboard / controller / mouse button, a timer, or a html message.

Basic setup

My model has art for several expressions. Let's set up states to help me switch between them.

The visibility setting in States has 3 options: Show, Hide, or No Change. When you trigger the State, Show will make the layer visible, Hide will make it invisible, and No Change will leave it alone.

By default, my model loads with the neutral expression:


If I want her to look happy, I can hide the neutral stuff manually and show the happy sprites (the layers in yellow) by clicking all the visibility icons like this:

but we can do it in one go by using a State. I'll open the States menu with this button:


and press "Add" to get a new empty state.

Clicking the "No Hotkey" header will expand the options and we can set it up.


First we'll choose a hotkey by clicking the "Click to record Hotkey" button. I'll press 5 on the numpad. The title and button changes to reflect this. 


We can rename the state if we want to, by pressing the pencil icon in the header. I type a new name and press Enter to save it.


Let's tell the State which layers to show and hide. The list below the trigger options shows each layer and the 3 visibility options available. To show the Happy expression, we need to press "Show" on those layers and press "Hide" on the neutral layers where the art would conflict. 
I'm also going to press "Hide" on the other art from the other expressions, because we will need that later when we switch between.

That's all we need to toggle the happy expression! Pressing Numpad 5 will activate the state.


Trigger Options

There are 3 "Active Type" options available for States, and these set how the state will behave when the button is pressed.

  • Toggle (the default): pressing the button will show my happy face until it is cancelled by pressing the same key again.
    • Timeout: In addition to deactivating on a second button press, the Timeout option will also deactivate the state when the given time has passed.
    • Schedule: In addition to the first button press, this option allows you to activate the state automatically on a schedule, with a "variation" option to add some randomness similar to the way "Blinking" works.
  • While Held: This option would show my happy face while I'm holding the button and stop when I let go.
    • Hold Time: Similar to Timeout (and actually using the same setting behind the scenes), Hold Time will keep the state active for the set duration after you let go of the key.
  • Permanent: This option is not a "toggle" - it permanently edits the actual visibility state of each layer you choose, and pressing the same key again will not undo. If you want to use these, the recommended strategy  is to set up a permanent state to put your model back to normal.

If you've set up a schedule, you don't actually need to bind a hotkey at all - you can just let it be fully automatic. This is one way to blink several layers at once, for example.

There are also Trigger conditions:

  • Always: Will always trigger every time you press the button
  • While talking: Will only trigger the state if the button is pressed and the voice level is above the threshold you set.
  • While idle: Will only trigger the state if the button is pressed and the voice level is below the threshold you set.

These can be paired for interesting effects, for example I have a speech gesture that randomly raises my arm for a short period when I speak:


Triggering states from an automation tool

If you have run out of hotkeys and are looking for other ways to trigger your states - or you want your stream chat to be able to trigger them for you, you can use the "Control States via HTTP" option!

It means you can integrate RahiTuber with your streaming bots and automated scripts much easier. Here's how it works:

  • Enable the option in the Advanced menu:

  • In your automation software, set up a web request with the following format: http://127.0.0.1:8000/state?[0,0]  or  http://127.0.0.1:8000/state?["name",0]
    Each state will have buttons to copy the request in the correct format. You can use the options below the URL to change what the request does.
    • Find the state you want to trigger and press the button to copy the state request from RahiTuber:
    • Paste it into the "Web Request" or "Fetch URL" action in your automation tool
      • In MixItUp:
      • In Streamer.Bot:

        (streamerbot requires a variable name to store the response, but you don't have to use it)

 

Awesome! I love the idea of a companion app too, that's really inventive!

It's not currently possible within RahiTuber, but I'll see if i can add that in 👍

Glad you're happy with it! 

Depending on your sound card, there should be a microphone device that you can enable on your PC's sound settings.  Mine is called "Stereo Mix".

A few people have requested this, i do want to add it at some point, but i have a lot on my plate right now 😅

(1 edit)

Yes, that's what States do! 

Add your alternative emotions as separate layers, and then open the states menu (far right button in the main toolbar).

Add a state, give it a name, and set a hotkey. Then you can set which layers are shown and hidden when you press that key.

Sorry, right now there isn't one. I'll see about adding one in a future update!

(1 edit)

To turn off talking, the flag is actually "bounceType" not "motionStretch". The default bounceType is 1 so you want to replace bounceType="1" with bounceType="0"

You just reminded me i wanted to add an option in the advanced menu to turn off idle/talking motion on all layers. I'll get on that. Hopefully notamu's answer was helpful though?

Great stuff! I love how lively it looks :D