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!).
This commit is contained in:
Bastien Montagne 2018-05-16 15:41:53 +02:00
parent 2ba0951e52
commit f0c0d11ea2
Notes: blender-bot 2023-02-14 05:52:28 +01:00
Referenced by issue #55076, Proxy bones not moving
1 changed files with 3 additions and 1 deletions

View File

@ -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);
}