teamneoneko / Avatar-Toolkit

A new modern tool designed to shorten steps needed to import and optimize models into VRChat, Resonite and other similar games.
GNU General Public License v3.0
10 stars 2 forks source link

Feature: Rigify rig to unity humanoid conversion #28

Open hanetzer opened 2 months ago

hanetzer commented 2 months ago

as title. Unless I'm just dumb it seems to me that the rigs produced by rigify are effectively unusable in unity and therefore vrchat and chilloutvr. I have, using cats, manually converted them to a standard unity humanoid that should work out of the box on either, tho I'm not sure about the eyes.

Basic gist is removing control bones (remove zero weight bones via cats), putting all the remaining bones into the same bone collection, merging a few common sense bone merges together, making a judgement call on the spine (hip-to-head chain), and then reparenting it all properly. Some won't be automatable (things which are beyond the normal human metarig/generated rig like tails ears and hair) but overall it should be pretty doable since I think the naming scheme is consistent enough.

Yusarina commented 2 months ago

Personally I tell people ot avoid Rigify as much as possible, this is because the tool hasn't really been updated unto Blender 4.0 came out and was developed by a 3rd party. However since Blender 4.0 I beleive Blender has take over development so it may become more useful in the future, however as it took 4 years to fix a basic bug I don't have hopes.

Currently you can use it in Unity however you have to mess around in Unity with some bione stuff or have to use another blender plugin which is called Rigify to Unity.

We may add some kind of functionailty in Avatar Toolkit to aid in this but I don't see much demand for it though, @989onan what do you think.

hanetzer commented 2 months ago

I'm more concerned with preexisting assets not made for this use case; whenever someone asks about making a model from scratch for either game I tell them that rigify is a pain in that context.

989onan commented 1 month ago

If there is a plugin for this already, it seems like we're reinventing the wheel if we try to clone the same behavior. It's like the Tuxedo face tracking stuff all over again. best to do just what the other plugin doesn't, or commit to that plugin if it's missing something small

People don't realize that to make a feature from a plugin work, sometimes you have to steal 80% of their backend because they code entirely new structures to handle the data, and those structures have no equivalent in your code

Edit: (MMDTools, Tuxedo Gmod stuff, SourceTools, Mat Combiner, etc)

hanetzer commented 1 month ago

as far as I'm aware, no such plugin exists. I'd be glad to be wrong, however.

Yusarina commented 1 month ago

There is one: https://github.com/AlexLemminG/Rigify-To-Unity however it's not been updated in 4 years. The code seems pretty simple to do (And does seem like we could use some of there code but just update it, just have to make sure to give credit).

As I said in the Dev channel, I don't want to constantly "Borrow" code from places as I do want Avatar Toolkit to be as original as we can, but in some cases it's better to "Borrow" code if it makes it easier for us such as the algorithm from the Material Combiner or certain things we have "Borrowed" from cats.

However what I don't want to do is to give ammo to certain authors who may or may not complain if we keep "Borrowing" code even if the license allows us too do this, please also remember if we "Borrow" code from other plugins if our License is not a similar license then from a legal stand point we can't do that.

Now when it comes to supporting something like Gmod stuff, source tools and etc, I see this as ok as we are getting the user to download said plugin anyway.

I most likely will try to write up something proper re my own official stance on this at somepoint but I guess for now the above is it. Now @989onan I not sure if you agree with me or not, but let me know I am interested.

Hope this makes sense.

Now onto the Unity to Rigfy thing, We can add this but for the time being it will be very low priority as we need to get the core stuff done first, looking into it, it should be simple to add though and I do agree it does seem quite a few older assets do use rigfy even though it should of never been used for Unity stuff tbh.

@989onan do you agree with the Rigfy to Unity being added but very Low priority or not?

hanetzer commented 1 month ago

Oh yeah, low priority is fine. I just thought it would be a neat feature to have.

Also, if an author gets pissed because you 'borrow' code who's lic allows it, well, screw em, to put it bluntly. Its garbage behavior in the FOSS ecosystem and community. Permissive licences exist for permissive use, and if you're angry that its being used permissively, you shouldn't have used a permissive license.

989onan commented 1 month ago

I think if the license permits it, I don't see why we can't use code from other addons, but it should give credit regardless

Also yes we can just self assign this at some point to one of our TODO boards and then assign a priority as deemed appropriate at that point

But some core stuff needs to be done first

Yusarina commented 1 month ago

I think I will write up some policy or something about using code form other projects so everyone knows our stance, but for right now try and be original where possible but if it's easier to borrow code (Like we have in some cases) that is fine, as long a credit is given.

Anyhow ok, I added the correct tags and this will be added at somepoint.