Linking and overwriting Blender 3.0

posted to: Multiball Rig Demo

I couldn't figure out how to make this work in Blender 3.1. These are my discoveries along the way; library overrides are the way to go since Blender 3.0. A YT vid gave me this: Select object > Object > Relations > Make library override. It works but  I'm not sure if this is the 'right way' to do so. Maybe the link in the description would have helped me, but unfortunately it's not working. I guess it would be great if Linking and Overwriting got an update in the Animation Bootcamp. 

  • Wayne Dixon replied

    Hi Alex,

    Yeah Library Overrides are the way to go these days as proxies have been sunsetted.
    That sounds like the correct way to set it up.

    Fast Method:
    -Link in the collection (the master collection that has all the components you need)
    -Then just hit F3 and type "Override" and it's the first option on the list
    (that's the same as the menu but much faster)

    The differences with proxies and overrides is the state is which the original rig file needs to be saved.
    Rather than bore you with those technical details of the legacy way, here's a link to a file that has that saved in a way that works in the new way.
    https://cloud.moonstringanimation.com/index.php/s/S4PGeptGpXLEA7C

    Download that file and save over the other file.  It should then link in correctly.


    This is just a band-aid solution until things get updated properly, but it should get you up and running again.


  • Michael Mussato(michimussato) replied

    Hi Wayne

    (Blender 3.4.1)

    I understand that this most likely beyond the scope of this course, however, the Library Override is a bit hard to digest. Apparently, it seems like this is an ongoing development as of now (https://projects.blender.org/blender/blender/issues/73318). I don't see a reason why, but Blender decided to expose different options based on where the "Library Override Options" are being accessed from (https://docs.blender.org/manual/en/latest/files/linked_libraries/library_overrides.html?highlight=library%20override#make-an-override).

    3-02-20 13-27-03.png

    3-02-20 13-27-20.png

    Next thing I struggle with is that your shortcut

    -Then just hit F3 and type "Override" and it's the first option on the list
    (that's the same as the menu but much faster)

    Actually (initially), your suggestion opened "Object > Relations > Make Library Override" instead of "Object > Library Override > Make". I don't know what the difference is - both help entries link to the exact same online manual page.

    Lastly, it seems that the "Ball Type" slider is greyed out on a linked MultiBall (with "Context > Library Override > Make > Selected and Content" applied)3-02-20 13-45-58.png

    Leading to the necessity to manually change the index:

    bpy.context.active_pose_bone["Ball_type"] = 6
    Is there a way to unlock this slider in the UI? I fiddled with your code a bit but not too much...as a former pipeline engineer I am a Python guy but I am not yet Blender Python API savvy enough to make quick judgements...

    Thanks for your help!

  • Wayne Dixon replied

    Hi michimussato,
    Yeah, they seem to be changing this constantly.    Let me see if I can clear up some of your questions (if not all)

    The different names for 'making' overrides all point to the same operator.  I don't know why there are the 2 versions.  I have tested both, and they are the same, so maybe it's just so it's easy to find.

    As for the greyed out property - that is also to do with overrides, however, the issue doesn't reside in the linking side of things.  It's in the rig file.  The version you have was created before a property existed, so it's set to False when loaded into newer versions of Blender.   (it's interesting that you can set that value with python! - I bet that's isn't meant to be allowed but you hit it with a hammer to solve your issue)

    There is a new version of this rig coming very soon but I think you'll get a kick out of fixing it yourself.

    Here's a script for you to run on the rig file.  (not your animation file).

    Select the armature object then run this code from the text editor.

    import bpy
    rig = bpy.context.active_object
    bones = [bone for bone in rig.pose.bones]
    for bone in bones:
        for key in sorted(bone.keys()):
            if key not in '_RNA_UI':
                bone.property_overridable_library_set(f'["{key}"]', True)

    Then save your file.  And the UI should work as expected in your anim file.

    What does the script do?
    Loops through all the custom properties on the active object (it's expecting an armature though so it will error out if you don't have that as the active object)

    Then it check the "make Library Overridable" boolean to True.

    (I thought I did that already for the multiball...but obviously not)
    Either way, it's getting updated in the next couple of weeks when the new version of the course comes out.



    Hope that clears things up.
    If not just poke me again.


  • Michael Mussato(michimussato) replied

    Thanks Wayne for the solution and your explanations!