OptiPloy's Importers
Importance
OptiPloy's original and most stable importer relies on breaking Blender's API. It relies on the override_hierarchy_create
function of bpy.types.ID
. If you use it on a collection for example, then that collection, its sub collections, and its objects will all be made overridden copies. These copies all reference the top-most collection as the root.
If this hierarchy is broken by localizing a data-block, you will get a warning in the console, but Blender will try to reconfigure the overrides to compensate. So far, it always does. But in my eyes, that isn't the most professional thing. To have an addon function by making the program it's extending flood the console with errors. But it works! So why fix it?
I always had it in my mind to write a new importer, and recently I thought I had a breakthrough, but I just can't write a python implemention of the override_hierarchy_create
function. And while it does work, it struggles with loops in the user hierarchy. So for simple rigs, it works just fine. Super-duper complicated ones? A hit or miss.
TL;DR, Hopefully you always get a best case scenario with whatever importer you choose. Usually that's with the stable importer.
Stable Importer
Relies on breaking the API by mis-using the override_hierarchy_create
function. Based on how many data-blocks compose the rig, you will get more warnings in console, but Blender will compensate and you will usually get the most stable result.
Fast Importer
Takes a more robust approach by approximating the behavior of the override_hierarchy_create
, and creates overrides in a specific order. This avoids warnings flooding the console. However, it has not been perfected and does not work with all rigs.
Do Your Own Trials
You can set a per-blend, per-folder, or global preference on the importer. See what works, see what doesn't. I'll work on the Fast Importer some more! I really want a permanent fix.
-hisanimations