diff options
author | Philipp Oeser <info@graphics-engineer.com> | 2021-09-03 13:17:00 +0300 |
---|---|---|
committer | Philipp Oeser <info@graphics-engineer.com> | 2021-09-03 18:15:05 +0300 |
commit | a45dd52cf0bbdc0ff362681a4836385c8154c70d (patch) | |
tree | bc02b546743745ddbea2da8036da7cd4a3211621 | |
parent | ac97893dfc77fd77e0254a0a4692820c7dbc6967 (diff) |
Depsgraph: skip parentbone relation if bone prop is empty
Clearing the Parent Bone field in relations would result in something
like this:
```
add_relation(Bone Parent) - Could not find op_from
(ComponentKey(OBArmature, BONE))
add_relation(Bone Parent) - Failed, but op_to (ComponentKey(OBEmpty,
TRANSFORM)) was ok
ERROR (bke.object): /source/blender/blenkernel/intern\object.c:3330
ob_parbone: Object Empty with Bone parent: bone doesn't exist
```
Now skip creation of a depsgraph relation if the Parent Bone field is
empty (since this would be invalid anyways).
ref. T91101
Maniphest Tasks: T91101
Differential Revision: https://developer.blender.org/D12389
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_relations.cc | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc index ef1db8be933..28cfc5a9e1a 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_relations.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_relations.cc @@ -1006,11 +1006,13 @@ void DepsgraphRelationBuilder::build_object_parent(Object *object) /* Bone Parent */ case PARBONE: { - ComponentKey parent_bone_key(parent_id, NodeType::BONE, object->parsubstr); - OperationKey parent_transform_key( - parent_id, NodeType::TRANSFORM, OperationCode::TRANSFORM_FINAL); - add_relation(parent_bone_key, object_transform_key, "Bone Parent"); - add_relation(parent_transform_key, object_transform_key, "Armature Parent"); + if (object->parsubstr[0] != '\0') { + ComponentKey parent_bone_key(parent_id, NodeType::BONE, object->parsubstr); + OperationKey parent_transform_key( + parent_id, NodeType::TRANSFORM, OperationCode::TRANSFORM_FINAL); + add_relation(parent_bone_key, object_transform_key, "Bone Parent"); + add_relation(parent_transform_key, object_transform_key, "Armature Parent"); + } break; } |