teamneoneko / Cats-Blender-Plugin-Unofficial-

A tool designed to shorten steps needed to import and optimize models into VRChat. Compatible models are: MMD, XNALara, Mixamo, DAZ/Poser, Blender Rigify, Sims 2, Motion Builder, 3DS Max and potentially more, originally by absolute-quantum. Not Official.
GNU General Public License v3.0
394 stars 14 forks source link

Add a "Tag non-humanoid bones with <NoIK>" option when using Armature Merging? #136

Closed SolarTheCatto closed 4 months ago

SolarTheCatto commented 4 months ago

The Problem

Currently, as of writing this, Resonite's model importer can sometimes have issues when non-humanoid rig bones contain humanoid rig bone names, which causes Resonite to select the incorrect bone for the IK system. An example of this is a model containing a bone named "Chest", and a bone named "ChestStrapsBack". When importing into Resonite, there is a chance for Resonite to select "ChestStrapsBack" as the IK bone for the chest, resulting in a broken IK setup.

Proposed Resolution

This issue can be resolved by altering the name of every non-humanoid rig bone, placing the "" tag anywhere in the name, however this is time consuming and quite tedious to search the bone hierarchy to find every single one that should have it (as child bones do NOT inherit the No IK tag). As such, I would like to suggest that an extra toggle is added with Armature Merging which means any non-humanoid rig bone that doesn't follow the Unity Mecanim humanoid bone specification has a "" tag prefixed/suffixed onto its name.

Potential Issues

This could have the issue of occasional false positives, however I believe fixing a few incorrectly tagged bones would be better than having to go through every single non-humanoid bone on a (potentially quite large) model to prefix/suffix them with "", and would therefore be a life saver for some Resonite creators like myself.

If you have any questions about this request, feel free to let me know and I'll respond as soon as possible!

Yusarina commented 4 months ago

Thanks for the report I not the person who deals with the resonite stuff soooo

@989onan this is your area

Yusarina commented 4 months ago

I will also add though, there will be a lot of changes made in the upcoming Avatar Toolkit and I can't promise any major changes will happen to cats as we are just maintaining it unto we release our Avatar Toolkit. This issue is entirely up to @989onan to deal with as there see fit and if there want to fix it in cats or not.

You can suggest stuff for Avatar toolkit here: https://github.com/teamneoneko/Avatar-Toolkit which will be a direct replacement for cats in the future.

989onan commented 4 months ago

Okay I can see this working just fine. The only thing we need in code is a reliable way to tell if the bones are humanoid This is easily done with cats, but in the upcoming Avatar Toolkit I will see if I can just say "When translating to Resonite -> throw <noik> on the bones that aren't humanoid ones" and that should fix it. I can look into making this implementation today

Yusarina commented 4 months ago

Awesome I assigned your it and put as in-progress!