It could be really useful if the AnimationTree and the Skeleton3D where export variables that could be dynamically assigned.
I was trying it in my game and I noticed it was instancing them as children automatically. Having the ability to assign external skeletons and animation tree could make it more easy to integrate the humanizer node into different game architectures.
Maybe a function to reassign the skeleton and animation tree that are being used at runtime and/or have an export of both variables and initialize them at _ready().
Since its a tool script I realize it might be necessary to add a different type of humanizer node that can't be previewed.
Final thoughts after checking the code out. I would really recommend separating the scripts into modules. Creating a bunch of scripts that extend RefCounted and importing them could really make the code more modular and easier to maintain and debug. That would require for all of the functions in the scripts to be stateless (i.e get all of their args from the params, dependency injection). Modularity could also make it so the different tools used to make the humanizer work could be more easily extended, leveraged and customized. Some of the modules created could contain static functions so one wouldn't even need to instantiate them.
It could be really useful if the AnimationTree and the Skeleton3D where export variables that could be dynamically assigned. I was trying it in my game and I noticed it was instancing them as children automatically. Having the ability to assign external skeletons and animation tree could make it more easy to integrate the humanizer node into different game architectures.
Maybe a function to reassign the skeleton and animation tree that are being used at runtime and/or have an export of both variables and initialize them at _ready().
Since its a tool script I realize it might be necessary to add a different type of humanizer node that can't be previewed.
Final thoughts after checking the code out. I would really recommend separating the scripts into modules. Creating a bunch of scripts that extend RefCounted and importing them could really make the code more modular and easier to maintain and debug. That would require for all of the functions in the scripts to be stateless (i.e get all of their args from the params, dependency injection). Modularity could also make it so the different tools used to make the humanizer work could be more easily extended, leveraged and customized. Some of the modules created could contain static functions so one wouldn't even need to instantiate them.