Fix: Drivers on hide_viewport and hide_render throw warnings
This partially fixes T73593. The `add_relation(driver_key, property_entry_key, ...);` call can fail in the following situation: - A collection is linked, and instanced into the scene by an Empty. - The collection contains an object with a driver on its `hide_render` or `hide_viewport` property. As the object doesn't exist as a real object in the scene, it's added with `base_index=-1` to the depsgraph (see `DepsgraphNodeBuilder::build_collection()`). As a result the node for syncing the restrictflags back to the base isn't present in the depsgraph, and the `add_relation()` call failed. This commit fixes the warning, simply by not attempting to add the offending relation.
This commit is contained in:
@@ -1488,7 +1488,11 @@ void DepsgraphRelationBuilder::build_driver_data(ID *id, FCurve *fcu)
|
||||
}
|
||||
else {
|
||||
/* If it's not a Bone, handle the generic single dependency case. */
|
||||
add_relation(driver_key, property_entry_key, "Driver -> Driven Property");
|
||||
Node *node_to = get_node(property_entry_key);
|
||||
if (node_to != nullptr) {
|
||||
add_relation(driver_key, property_entry_key, "Driver -> Driven Property");
|
||||
}
|
||||
|
||||
/* Similar to the case with f-curves, driver might drive a nested
|
||||
* data-block, which means driver execution should wait for that
|
||||
* data-block to be copied. */
|
||||
|
||||
Reference in New Issue
Block a user