Library Override: Driven Shape Keys Don't Work (neither via custom properties nor transforms) #70319
Labels
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
21 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: blender/blender#70319
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
System Information
Operating system: Windows-10-10.0.18362 64 Bits
Graphics card: GeForce GTX 1050 Ti/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 430.86
Blender Version
Broken: version: 2.81 (sub 12), branch: master, commit date: 2019-09-26 14:56, hash:
a933237d68
Worked: (optional)
Short description of error
Trying out the new library overrides, the attached blend file has a character called bird. The custom properties for the bone "Body" are not working, all of them drive the shapekeys, while making the custom properties i did check the "Library overridable" checkbox.
The same rig works completely fine using the proxy system.
Exact steps for others to reproduce the error
This is the .blend conataining the character "Bird" collection.
Bug_Report_01.blend
the same procedure works fine with the proxy system, so you can test that. i am also not aware of any additional steps that the Override system has so apologies if i missed out on something.
on a completely unrelated note: getting a Build failed error ( error c4013 ) so unable to check on the latest version.
Added subscriber: @PranavjitVirdi
#76451 was marked as duplicate of this issue
#71466 was marked as duplicate of this issue
Custom properties (shapekey driver) not working library overrideto Library Override: Custom properties (shapekey driver) not workingAdded subscribers: @mont29, @lichtwerk
Can confirm (both that it is working with the old proxy system as well as the failure with the override).
Afaict, the procedure you describe is the one to be taken here [not aware of any additional steps to be taken -- according to https://wiki.blender.org/wiki/Reference/Release_Notes/2.81/Library_Overrides]
getting this on the console (seems fine)
also getting this on posing and using the custom properties (not sure about this, posing seems fine...)
CC @mont29
Library Override: Custom properties (shapekey driver) not workingto Library Override: Driven Shape Keys Don't Work (neither via custom properties nor transforms)Added subscriber: @bunny
Arf... OK, so TL;DR: This is not supported automatically currently, you have to do some manual work to get it running.
And yes, I know this is not nice, I have to find a solution for this too, but currently there is no 'nice' way to do it.
Now the long explanation:
Shape keys are part of the Mesh datablock, which is not overridden by default because that would save the whole mesh geometry locally (there are plans to address that, but nothing concrete yet).
So to get those drivers working, you need to override the mesh, and go into its shapekey drivers to re-assign them to the proper local override of the rig...
Note that proxies can work without any issue here because there is only one 'local copy' per linked datablock, so you can just copy things between those two, and that's it. this is no longer possible when you have several overrides for a same linked data, at least not in a dummy easy way.I'll keep this open as a TODO, as a remainder of the issue, that is not really a bug currently.
Added subscriber: @KonstantinsVisnevskis
Added subscriber: @TakeshiFunahashi
Though there seems way, "manually re-assgin driver of shape keys with override armature (object) properties", I can not find way to add new shape keys for override meshes.
Now I have character which have shape keys for character mesh. then those shape keys are driven by armature bone transform (aka corrective shape keys to get clean mesh when posing)
Then when I override collection (armature and mesh in one collection)
it seems load all shape keys with mesh, but un-editable (gray out). so how I re-assgin driver for each shape keys?
I try to local override about mesh, but there seems no change. (shape keys still un-editable and gray out)
About other custom property of armature (pose controller, which change each bone transform with slider,generated by script) I could set them "Is library overridabe" in outliner > object porperty > Custom
properties>" edit " of original scene armature. then it work about override scene and character.
I do not care, if I really need import all shape keys, about override mesh again,, but can I add shape keys about override meshes? then can re-assgin each bone transform about override armature bones?
when I try it (local override ,about mesh,) I can not add any new shape key.
what procedure I need, to add new shape key for override character mesh? (or I need to make it local?)
Ah OK, I seems miss use "local override". I select mesh object icon in outliner, then r-click and try "Add library override" but I need to click green "mesh data" icon. then r-click "Add library override",and return object mode after that shape keys becom editable.
(But I do not know reason why same script expression of drivers seems not work anymore)
There seems problem about driver up-date. I need to re-assgin armature (object) name in driver editor expression (though it is same strings.) about all shape key driver (assgined with armature bone rotations)
As mentioned above. I could return shape keys as " editable". after use local overide for "character mesh "
object data. All shape keys still keep "driver expression" which discribe bones transform of Armature.
but driven shape key value not change when I pose related character bone.
I open driver editor, and try "update dependency", not work. but select again armature object in "driver expression" (re-assgin) from drop down menu, immideately driver work and change shape key values.
Though I suppose I can make script to edit object armature name (add space and remove) with bpy, but hope there should be option, to force up-date and return driver link of armature correctly.
im not facing any such problems here's how i've been setting it up
If I need to use make it local for mesh , it means we need all shape keys data and mesh-data in current blend file. right? I only hope to change shape key "value" witch will be driven by custom property of override armature (obj) , and bone transform etc. but all shape key-data are saved in original blend file.
(I suppose so)
Then for me I need not change rig name from rig to rig_001 for driver expression.
I feel as string, rig ID is same for driver expression. (at least for my test scenes)
but I need to select rig again. (maybe it re-assgin driver target object (armature object))
Though those step may need to be confirmed by developer in official manuall (I hope so)
when overide system up-date. So I do not know, If I actually need to "Make it local" for my purpose.
I see,,as I said I could return driver, and can change values of custom prop (drive shape key values)
and the new value are saved in override blend file.
But when I re-open it, driver stop to work again. then I need re-assgin driver target armature.
so at current I may need to use proxy, or make local the mesh . not use local override about mesh and shape keys with driver (link with armature)
I do not know it need to report as new one.
Added subscriber: @MarcelLegindi
Added subscriber: @istoltoto
Some idea if this will be fixed in 2.82?
This will not… Had to spend most of 2.82 dev window on undo speedup project, so liboverride did not get much love (mainly fixed some crashes in that area). And no specific timeframe for it yet either.
Added subscriber: @kpavicic
Added subscriber: @Werwack
Hello everybody
We are starting a production and we just bumped into that issue. Looks like it is a major issue for us. Any chance to address it soon?
Thank you very much
Added subscriber: @LapisSea
Added subscriber: @FrankMartin
Added subscriber: @gabrign
Added subscriber: @Strife.Lim
Added subscriber: @moisessalvador
Added subscriber: @linosia
Can still confirm problem with 2.83 beta from 7-th of May
Added subscriber: @crantisz
This also affects on modifier's data blocks. Then two library linked collections from same instance uses modifiers with drivers, these modifiers jumps from one driver to other:
Example. This scene uses lattice with simple deform, angle driven from bone scale. It looks like a Dependency cycle, but one collection works well
2020-06-02 19-28-23.mp4
Removed subscriber: @moisessalvador
Added subscriber: @winnertakesteve-1
hope this gets resolved. i was going to give library overrides a try on a project, but this situation seems messy enough that i can't see any real benefit to using them right now. :(
Added subscriber: @CosmoMidias
When I add a driver to a Library Override in the Shape Key Editor
It does work.
But if I reopen the file is disappears even after saving the progress.
outputFile.mp4
Original report should have been fixed by yesterday's commits actually (
0291039079
and previous).@CosmoMidias you are trying to do something completely different here, adding new drivers to an override is currently totally not supported, and won't be in a near future. Related operators should actually be disabled, will see to that.
Changed status from 'Confirmed' to: 'Resolved'
@mont29 Awesome! Tested, and kinematics driven ShapeKeys indeed seem to work. Which means that at least simpler characters should now be possible.
From bone custom properties they (as well as some IK/FK constraints drivers/switches etc.) are "Disabled: Can't edit this property from an override data-block".
Should one expect that to change within 2.9 or look for workarounds?
Thanks!
@KonstantinsVisnevskis nice, thanks for testing!
Custom properties need to be defined as overridable (in the library file, in their edit popup), by default they are not since you can end up with thousands of those sometimes. Making them all overridable could then have a severe impact over performances…
Not sure about what you mean with “some IK/FK constraints drivers/switches”, are those also some custom properties defined in the rigs?
@mont29 Somehow that slipped past me. It indeed works. Which means complex character testing begins :) Thank you.
Removed subscriber: @linosia
this is fantastic! i just confirmed my linked character workflow seems to be working straight through to exports for game engines! thank-you!
Removed subscriber: @kpavicic
Added subscriber: @jgilhutton
Just encounter this behaviour:
Added subscriber: @Nevil
I faced the same problem in Blender 2.92-rc too. problem is this. when object turns to Library override, Blender keeps 2 version of the object. the link of the original one and mirrored local one. Inside the scene only local one detectable but drive can see the both.
Drive detects the target by name and this cause some time get linked one and some time the local one.
I find a temporary solution in python.
link of the script
object by name always return the local object and reassign it to driver solving the problem, but only works when file still open. on save and reopen links break again.
I hope this info helps to solve the problem.
Removed subscriber: @Strife.Lim