Merge branch 'blender-v2.91-release'

This commit is contained in:
Alexander Gavrilov 2020-11-10 19:30:01 +03:00
commit 35c23b4db4
2 changed files with 12 additions and 4 deletions

View File

@ -68,14 +68,14 @@ class RelinkConstraintsMixin:
if len(specs) == 1:
specs = repeat(specs[0])
elif len(specs) != len(con.targets):
self.report_error("Constraint {} actually has {} targets", con.name, len(con.targets))
self.raise_error("Constraint {} actually has {} targets", con.name, len(con.targets))
for tgt, spec in zip(con.targets, specs):
tgt.subtarget = self.find_relink_target(spec, tgt.subtarget)
else:
if len(specs) > 1:
self.report_error("Only the Armature constraint can have multiple '@' targets: {}", con.name)
self.raise_error("Only the Armature constraint can have multiple '@' targets: {}", con.name)
con.subtarget = self.find_relink_target(specs[0], con.subtarget)
@ -88,11 +88,11 @@ class RelinkConstraintsMixin:
if not result:
result = choose_derived_bone(self.generator, old_target, spec.lower(), by_owner=False)
if not result:
self.report_error("Cannot find derived {} bone of bone '{}' for relinking", spec, old_target)
self.raise_error("Cannot find derived {} bone of bone '{}' for relinking", spec, old_target)
return result
else:
if spec not in self.obj.pose.bones:
self.report_error("Cannot find bone '{}' for relinking", spec)
self.raise_error("Cannot find bone '{}' for relinking", spec)
return spec

View File

@ -314,4 +314,12 @@ def choose_derived_bone(generator, original, subtype, *, by_owner=True, recursiv
if len(matching) > 0:
return matching[0]
# Try matching bones created by legacy rigs just by name - there is no origin data
from ..base_generate import LegacyRig
if isinstance(generator.bone_owners.get(direct), LegacyRig):
if not by_owner or generator.bone_owners.get(original) is generator.bone_owners[direct]:
assert direct in bones
return direct
return None