Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc')
-rw-r--r--source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
index fadce685d31..f8313dc854b 100644
--- a/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
+++ b/source/blender/depsgraph/intern/builder/deg_builder_relations_rig.cc
@@ -383,7 +383,13 @@ void DepsgraphRelationBuilder::build_rig(Object *object)
bPoseChannel *prev, *next;
BKE_pchan_bbone_handles_get(pchan, &prev, &next);
if (prev) {
- OperationKey prev_key(&object->id, NodeType::BONE, prev->name, OperationCode::BONE_DONE);
+ OperationCode opcode = OperationCode::BONE_DONE;
+ /* Inheriting parent roll requires access to prev handle's B-Bone properties. */
+ if ((pchan->bone->flag & BONE_ADD_PARENT_END_ROLL) != 0 &&
+ check_pchan_has_bbone_segments(object, prev)) {
+ opcode = OperationCode::BONE_SEGMENTS;
+ }
+ OperationKey prev_key(&object->id, NodeType::BONE, prev->name, opcode);
add_relation(prev_key, bone_segments_key, "Prev Handle -> B-Bone Segments");
}
if (next) {