[Bf-blender-cvs] [f0c0d11ea2c] blender2.8: Fix T55076: Hack around to break correct behavior of 2.8 and get back broken-used-as-feature one from 2.7.

Bastien Montagne noreply at git.blender.org
Wed May 16 15:48:00 CEST 2018


Commit: f0c0d11ea2cfbe44b079a544a5c91fe888f28c80
Author: Bastien Montagne
Date:   Wed May 16 15:41:53 2018 +0200
Branches: blender2.8
https://developer.blender.org/rBf0c0d11ea2cfbe44b079a544a5c91fe888f28c80

Fix T55076: Hack around to break correct behavior of 2.8 and get back broken-used-as-feature one from 2.7.

Locked bones of proxies should not be editable, at all. But lack of
update from linked rest pose in 2.7 allows to pose and animate locked
bones (not to pose them without animation though, or you'd lose your
pose on next file save & reload).

this is used by artists to always lock all their bones in a rig, so that
proxies fully update when lib rig is modified...

For now, restore that broken behavior in 2.8 by not updating proxies
against lib armature in CoW context (makes sense anyway, we are
currently doing a lot of useless thing when copying data for depsgraph
evaluation!).

===================================================================

M	source/blender/blenkernel/intern/armature.c

===================================================================

diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c
index 63846b31c33..f409cdc3a74 100644
--- a/source/blender/blenkernel/intern/armature.c
+++ b/source/blender/blenkernel/intern/armature.c
@@ -1991,7 +1991,9 @@ void BKE_pose_rebuild(Object *ob, bArmature *arm)
 	/* printf("rebuild pose %s, %d bones\n", ob->id.name, counter); */
 
 	/* synchronize protected layers with proxy */
-	if (ob->proxy) {
+	/* HACK! To preserve 2.7x behavior that you always can pose even locked bones,
+	 * do not do any restauration if this is a COW temp copy! */
+	if (ob->proxy != NULL && (ob->id.tag & LIB_TAG_COPY_ON_WRITE) == 0) {
 		BKE_object_copy_proxy_drivers(ob, ob->proxy);
 		pose_proxy_synchronize(ob, ob->proxy, arm->layer_protected);
 	}



More information about the Bf-blender-cvs mailing list