1
$\begingroup$

I know how to link to an object or mesh inside of another blend file so that I can re-use parts or materials in other blend files.

However, is there a way to create a parameterized family of parts, based on a single mesh?

For example, suppose I have a series of boxes that all have the same type of ornate decorations on them. I would like to create these decorations once, because that is a complex process. However, the boxes will come in all different sizes and colors in my final scenes. How can create a "Default" box with the necessary basic mesh, and then scale or more certain vertices based on a parameter after I've imported that mesh into another blend file?

So my workflow would look like this:

  1. Create base model mesh. Define a parameter, i.e. "L", which is the length. Set to a default value. Save this file as my blend library file.
  2. In another blend file (let's call it my scene file), link to the mesh created in step (1). Parameter is somehow imported as well.
  3. Set the "L" parameter in the scene file, which affects only the selected instance of that mesh. If I link the same mesh into another file, or in the same file again, each instance has its own independent parameters.

I'm trying to do something like what was asked in this question and this question, but neither answer is really what I'm looking for. The first one doesn't have an accepted or upvoted answer, so not sure that's the right thing to do. The second suggests using nodes, which is great for textures but not for mesh.

I was wondering that there might be some way to use drivers to do this, but not sure. I don't know if drivers get imported along with an associated object or mesh from another blend file.

$\endgroup$
2
$\begingroup$

This is what Library Overrides are for :

Create your base object, add a custom property. Don't forget to check Is Library Overridable in the property settings. Use a driver to drive, for instance the scale of your object.

enter image description here

Save your blend file. Go into your work file, and link the cube object. (File > Link > Yourfile.blend > Object > Yourobject)

Select your object, then go to Object > Relations > Make Library Override > Accept the dialog.

This will create another instance of your base object, which is in fact an override. (Piercing arrow and chain icon)

enter image description here

Select the library override, and go to the object properties. Notice your custom prop is not greyed out anymore. You can tweak it as you wish. If you Duplicate your object, you will be able to specify different overrides for this property as well as others. An override property will by default be in a light blue color.

enter image description here

If you want to override the object's material, set the mode to to Object and then you can change it as you wish :

enter image description here

$\endgroup$
2
  • $\begingroup$ ok, this looks like it's headed in the right direction. Can the custom property somehow be applied to aspects of a mesh, like the coordinates of particular vertices? Scaling is fine, but that scales EVERYTHING in the object. I was thinking of having a center section that has no decoration and just grows/expands to fill the gap for larger boxes. $\endgroup$
    – rothloup
    Feb 3 at 4:25
  • $\begingroup$ You won't be able to directly control the position of a vertex, but you can override Shape Keys docs.blender.org/manual/en/dev/animation/shape_keys/… which can be used to additively modify a mesh. Let me know if you want me to expand the answer on this subject $\endgroup$
    – Gorgious
    Feb 3 at 7:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.