diff options
Diffstat (limited to 'rigify/utils')
-rw-r--r-- | rigify/utils/collections.py | 2 | ||||
-rw-r--r-- | rigify/utils/node_merger.py | 4 | ||||
-rw-r--r-- | rigify/utils/widgets.py | 3 |
3 files changed, 7 insertions, 2 deletions
diff --git a/rigify/utils/collections.py b/rigify/utils/collections.py index 8a299a9b..9eeaac51 100644 --- a/rigify/utils/collections.py +++ b/rigify/utils/collections.py @@ -53,7 +53,7 @@ def ensure_collection(context, collection_name, hidden=False) -> bpy.types.Colle active_collection = active_layer_coll.collection collection = bpy.data.collections.get(collection_name) - if not collection: + if not collection or collection.library: # Create the collection collection = bpy.data.collections.new(collection_name) collection.hide_viewport = hidden diff --git a/rigify/utils/node_merger.py b/rigify/utils/node_merger.py index 617b99df..2da48ada 100644 --- a/rigify/utils/node_merger.py +++ b/rigify/utils/node_merger.py @@ -73,7 +73,9 @@ class NodeMerger(GeneratorPlugin): while pending: added = set() for j in pending: - for co, idx, dist in tree.find_range(nodes[j].point, self.epsilon): + point = nodes[j].point + eps = max(1, point.length) * self.epsilon + for co, idx, dist in tree.find_range(point, eps): added.add(idx) pending = added.difference(merge_set) merge_set.update(added) diff --git a/rigify/utils/widgets.py b/rigify/utils/widgets.py index e02f3387..5a16065b 100644 --- a/rigify/utils/widgets.py +++ b/rigify/utils/widgets.py @@ -86,6 +86,9 @@ def create_widget(rig, bone_name, bone_transform_name=None, *, widget_name=None, if not obj: # Search the scene by name obj = scene.objects.get(obj_name) + if obj and obj.library: + local_objs = [obj for obj in scene.objects if obj.name == obj_name and not obj.library] + obj = local_objs[0] if local_objs else None if obj: # Record the generated widget |