Skip to main content

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

GeneralTekno

10
Posts
4
Topics
A member registered Mar 09, 2024

Recent community posts

Having glanced through the code base, the costume count is currently hardcoded. I think upping it would definitely be possible though. Godot's pretty straightforward to pick up, honestly; there's a lot of good documentation online and not much required to run software.

What I kinda want to play with too at some point is adding a default visibility to sprites. As then you would be able to say switch out a hat with a head of hair without needing to use a costume slot.

(1 edit)

The application isn't particularly optimized, and the developer acknowledges this in the github notes themselves.

What resolution are your source images? The software does a lot of caching that could be significantly optimized, and I've noticed MASSIVE memory usage when I run it with a fairly high resolution model that has dozens of images.

Reducing the image size down to what you need will help with memory usage in the meantime.

Pngtuberplus is pretty inefficient with memory usage. That could be why. I have a high resolution png model that, when loaded, uses about 7-8GB of memory.

I pulled the github repo last night and dug into it, and there's definitely a lot of caching going on that is unnecessary. Was able to cut the memory usage significantly playing around.

(Though to be entirely fair, the software full on doesn't claim to be efficient there. The memory usage is only going to become starkly clear if you've got dozens of high resolution pngs. And if you do like what I do when making these, and export all your layers to be the same image size (so that when you import your image files you don't need to move anything), all that empty space that doesn't show up in the file size of a compressed png matters in video memory texture size.)

So seeing the posts last night about how active support is discontinued now prompted me to finally fork the code and dig in to see if there was anything I could do about some of the gargantuan memory size pngtuberplus can use.

And I'm happy to say I found a bunch of optimizations!

I don't have access to submit pull requests, but I DID go ahead and commit updates to my own fork. Getting rid of a bunch of the unnecessary caching/doing some texture storage optimization dropped both the GPU memory usage down and dramatically shaved off the RAM usage of the software. Myself and other friends have used the software in the past to make very complex models (mine tend to be 40+ items) so I was able to cut the usage from several gigabytes down to a few hundred megabytes.

If this stuff could get tested by kaiakairos to confirm/put into a release it'd be an amazing quality of life upgrade! (I see several people have also submitted pull requests on the Github, incidentally, to add features.)


https://github.com/kaiakairos/PNGTuber-Plus/compare/master...michaelivey:PNGTube...

And actually, come to think the thing I just posted in another thread might be useful for your purposes too.  I wrote a utility for rescaling pngptuberplus models because I got annoyed at how much of a pain rescaling stuff could be after the fact. given you pretty much have to go in and manually adjust the entire rig.

What I'd suggest to do (I got this tip from someone else!) is to add a master anchor point to your pngtuberplus model and make everything a child of it.

Then just adjust the position offset of the anchor so that the head is visible nearer to the center point. That way you don't have to go and readjust everything.

(1 edit)

So after having to deal with a couple situations where a model I made and a model I got for pngtuberplus were created at overly large resolutions, I decided to do something productive about it rather than spend the tedious amount of time necessary to manually adjust all of the offsets/positions/amplitudes and downsample all the images. (I've had to do this before and it's not fun if say you've got models with dozens of sprites in them!)

Since the files are all plaintext jsons, from a technical standpoint this wasn't overly difficult.
Anyway, I've put the fruits of my labors up on Github for if anybody else feels the need to resize a pngtuber model. Works with the latest version of the software (1.4.5). Hopefully this saves one or two people some time.

https://github.com/GeneralTekno/PNGTuberPlusResizer

From what I can tell as someone who just spent his day building a TouchPortal plugin to trigger costume changes using the StreamDeck plugin hooks, it looks like kaiakairos only set up the plugin to take 1-10 as valid inputs.

I've noticed that with games like Genshin Impact, when the game window has focus, it steals the keyboard focus so the global key press functionality in PNGTuberPlus does not actually work. I'd tried to rig up a numpad to change expressions and as long as the game has focus I'm not able to do so.

Because of this, I've been experimenting with hooking in to the StreamDeck plugin to allow this switching (and I've reverse engineered the signalling so I can write a TouchPortal plugin I can use), but it's currently just limited to the costume layers. Is it possible to add support so that the sprite visibility toggles can also be triggered through the plugin?

The new hotkey visibility toggle functionality is really useful! However, would it be possible to add the functionality to set a default on/off state for an element? There's use cases I was experimenting with setting up (unsuccessfully) where I would want a toggle to turn off one sprite at the same time as another. For instance, if say I was removing a hat and wanting to auto turn on the hair layer once that hat was off.