smix8 / GodotAnimationRetargeting

Animation Retargeting module for Godot Game Engine
MIT License
129 stars 9 forks source link

Add match bone tool #27

Closed stryker313 closed 2 years ago

stryker313 commented 3 years ago

Ideally, there must be a way to create a bone matching tool. Something like

for x in bone_names_1: for y in bone_names_2: if x.similarity(y) > .5 if "_l" in x and in y if x.split("_l") and y.split("_l) .size() > 1 //Allow empty false bone_list[x] = y

And this would create a little popup menu where you can edit the bones that the algorithm didn't get right. preset bone mappings will always be better, but I think this would be an interesting addition. Rokoko also has this feature, and its 90% accurate.

Also, whats your opinion on adding a bone renaming tool or a bone name conversion tool? Ideally, you would need a massive list to compare against, but even rokoko has that covered https://github.com/Rokoko/rokoko-studio-live-blender/blob/master/core/auto_detect_lists/bones.py

https://github.com/Rokoko/rokoko-studio-live-blender

Also, is there "loss" when retargeting constantly? ie do the animations get more and more inaccurate if I keep retargeting back and forth between skeletons? I would assume yes, but I wouldn't know if the "loss" is negligible.

smix8 commented 3 years ago

Would be a good feature to have but also very time consuming to make and maintain.

Also, whats your opinion on adding a bone renaming tool or a bone name conversion tool?

There are Godot pullrequests in the limbo for bone renaming or rearranging to be added on the skeleton node with a user interface but I don't have a link rightnow. Meanwhile you can bone rename (with a script) in Godot if you don't want to merge those PR.

I don't think the animation retargeting addon should have many features that are skeleton node territory in Godot and not directly animation related.

The custom mappings are basically the manual version of the autodetect list that you linked. Such lists need to be tested with skeletons and maintained, something that I only did for Genesis8 cause that is what I personally use in Godot.

Also, is there "loss" when retargeting constantly?

If you use scaling or rotations yes, cause the small float errors will add up.

smix8 commented 2 years ago

Added to the feature tracker.