Allow Morphs to be Edited Through Library Overrides

Issue #71 resolved
Zack Johnson created an issue

So this might be an ambitious request, but I think it would be super useful to be able to adjust morphs (like the face units, expressions, visemes, custom morphs, etc.) when using a library override.

Not sure how familiar you are with them but they’re basically an improved form of proxies. Right now, I have 2 characters linked to a scene as library overrides so I can access their rigs and pose them accordingly. Unfortunately, their Importer morphs are locked.

I am not sure if it’s even possible at this point to allow editing of the morphs within overrides, but it would be very cool. I don’t think library overrides are fully developed yet, so the capability may not be there yet.

Here is an example of the error I am running into:

Comments (12)

  1. Thomas Larsson repo owner

    Morph control was designed with the old file linking system in mind. That’s why everything is controlled with rig properties, which can be accessed once the linked rig has been proxified.

    I have heard that there is something called library overrides, but don’t know anything about them yet.

  2. Eder Rogerio Deana Juliette

    I'm not an advanced Blender user, but here are two ways I found to make the morphs to work with linked characters and library override:

    I’m not sure what is best or if there are better ways to do it. But the first one (the hardest, but I believe it could be implemented via code in the addon to make all automatic) is:

    With the armature selected in the source file, access Object Properties, then Custom Properties.

    Then roll down till the morphs and hit edit. The next step needs to be done for each morph and that is why this is the hard way.

    Select the box for "is library overridable" and click OK. When you have done it for all the morphs you want to use, save the file, and link the character in the next file.

    In the new file, with the character linked and Library Override set up, the morphs will work fine.

  3. Eder Rogerio Deana Juliette

    The fastest way and what I'm using is:

    With no changes in the source file, link the character in the new file, Then select the armature(Could be Daz original bones, MHX or Rigify), and in the Object Properties hit the icon to make the library fully local.

    The fastest way and what I'm using is:
    Immediately you will have all morphs working and the file will have almost the same size that the file we got in the step above.

  4. Thomas Larsson repo owner

    Should be working now. I did it the hard way, which as you expected was easy to do in a script. I still don’t understand what the library overrides are actually good for, but that isn’t really important as long as it works.

  5. Alessandro Padovani

    @Eder Thank you for the nice explanation. The "fast" way is an embed though so you don't really need overrides for it, it is the same as append in the old linked libraries.

    @Thomas

    In the old proxy system there are two main limitations that are not good for animation.

    First a rigged character can't be linked multiple times in the same scene, so you have to duplicate the file itself for that. This means for example that if you want to link a dog character in a scene where you need four dogs, then you have to duplicate the dog file four times.

    Second you can't anyway link shapekeys so you are forced to pass trough armatures to animate the character shapekeys. While in the source character file, where the character is not linked, you can animate shapekeys directly without the need for armatures.

    As I understand it, the new overrides are to fix these limitations and more. But I knew they are experimental yet so I wouldn't trust them too much right now.

  6. Eder Rogerio Deana Juliette

    Thank you Thomas for the fast response. This update will help a lot and makes my "fast way" unnecessary. And I admit that the "fast way" was not the most desired option once it perverted in part the concept of linking and overriding items. In my prelims test, this new commit is working fine, but I'll be working definitively with it after Thursday and if I find any problems, I'll let you know.

    About the use of the library overrides, so far as I know they are useful when you have characters/objects/scenes with heavy meshes, heavy textures or maybe both and you need to use them in a lot of other files, so you will have a significant reduction in the size of these files.

    The other motive is that if you make changes in the source file(meshes, textures) then it will be applied to all the other files that use the respective character/objects immediately when you reopen them.

    At least that are the two motives I'm using the new library overrides.

  7. Eder Rogerio Deana Juliette

    Yes @Alessandro, but in this "fast" way differently of the current "Append" that imports the entire character/object to the new file, I have just the armature as local, while meshes and textures keep linked to the source file. So I have significantly small files when compared to the source one. Anyway, with the new commit, this method is no longer necessary.

  8. Zack Johnson reporter

    Awesome, I’m glad it was a somewhat easy fix!

    Yes, Alessandro and Eder have mentioned both of the biggest advantages about Library Overrides (for me at least).

    The first is file size. In an empty scene in which I appended two of my characters, the file size jumps to 350MB. In the same empty scene when I link the same two characters and make library overrides of them, the file size is only 28.6 MB!

    Secondly, and this is probably my favorite bonus of using them, is I can make an edit in the source .blend file and it is propagated to all scenes that have the character linked as an override. So, if I find an error with my character while animating, I can go back to the source file and fix the edit and it will be fixed in all other scenes with that character.

    Honestly I haven’t tested Library Overrides too extensively yet so there may be some unfortunate glitches that I have yet to encounter. As Alessandro said, they are very experimental at the moment. I can’t wait for them to be fully developed, though!

    I have not been able to try the newest commit of the add-on yet, but if the issue is fixed we can resolve this post if you’d like.

  9. Zack Johnson reporter

    So I tried importing a model with the newer version of the importer but I still can’t figure out how to use the Importer morphs when linking a model as a library override. Also, I think I’m learning that library overrides are a little too glitchy at the moment. Maybe once the developers polish them a bit more, this feature can be expanded upon for the addon, but for now I will just mark this as on hold.

  10. Eder Rogerio Deana Juliette

    You don't import the morphs to a linked model. You import to the Blender file where you have your base model. When you link your model into a different blender file and apply the library override, the morphs will be there and working.

  11. Log in to comment