From BlenderWiki

Jump to: navigation, search

Linked Libraries Overview

Blender is able to “reach in” to other .blend files and pull in whatever you want. In this way, Blender supports reuse of your graphical models. For example, if you have a library .blend file that has a really neat material used in it, you can, from your current .blend file, Append that material into your current .blend file. This saves you from manually re-creating all the different settings.

General Procedure

Mode: All Modes

Hotkey: ⇧ ShiftF1

Menu: File → Append or Link

The main menu in Blender is located in the User Preferences window (by default the header located at the top of your screen). From that menu, all you have to do is use File → Append or Link, or press ⇧ ShiftF1 in your active window. The active window will change to a File Browser (the Window type icon looks like a manila folder) selector window. Use this window to navigate your hard drive and network-mapped drives through folders and subfolders to find the .blend file that has the object you want to reuse. When you click on a .blend file (indicated by the orange square box next to its name), Blender will go into that file and show you the list of datablock types within it: Scenes, Objects, Materials, Textures, Meshes, etc. Clicking on any one of them will display the specific instances of that type.

Folder and File Organization

We suggest creating a folder called /lib or /library. Under that library, create a set of folders for each kind of thing you might want to access and re-use later on, such as materials, textures and meshes. Create subfolders under each of those as your library grows. For example, under the meshes folder, you might want to create folders for people, spaceships, furniture, buildings, etc. Then, when you have a .blend file that contains a chair mesh, for example, all you have to do is copy that file into the furniture folder.

Appending library objects into your current project

The following procedure appends an object with all its linked data, such as mesh data, materials, textures, …, to the current .blend file.

  1. Select File → Append or Link.
  2. Locate and select the file that contains the object you want to append (often a “library” file).
  3. Navigate to the Object section of the file.
  4. Select one object from the list using LMB Template-LMB.png, multiple objects via RMB Template-RMB.png, and/or a range of objects by dragging RMB Template-RMB.png.
  5. Repeat the above for each kind of object you wish to append or link. Parents and armatures (all modifier objects) must be selected separately.
  6. Set desired options that are shown in the header (At Cursor, Active Layer, …).
  7. LMB Template-LMB.png on Load Library or press ↵ Enter or MMB Template-MMB.png directly on the data to append.

Of course, you can append or link many other things besides objects: all the ObData - cameras, curves, groups, lamps, materials, meshes, etc. - and even an entire scene… Note that there is a big difference between adding the object and the object data, such as mesh. If you append a Mesh datablock, you are only bringing in the data about that particular instance of mesh, and not an actual object instance of the mesh that you can see.

In the File Browser window header, use Append (button enabled by default) if you want to make a local independent copy of the object inside your file. Select Link if you want a dynamic link made to the source file; if anyone changes the object in the source file, your current file will be updated the next time you open it.

Click Load Library to append or link the object into your current .blend file.

Some more loading option buttons (in the File Browser header) include:

AutoSel
When an object is loaded, it is not active or selected; it just plops into your .blend file. Often, right after loading, you will want to do something with it, like scale it or move it. Enable this button and the imported object will be selected, just as if you magically RMB Template-RMB.png-clicked on it. This button saves the step of finding the object and selecting it.
Active Layer
Blender has 20 layers to divide up a large scene, and each object resides on some layer(s). By default, an object is loaded into your file directly into the layer(s) it resides on in the source file. To only load the object to the current active layer that you are working on, enable this button.
At Cursor
By default, an object is loaded into your file at the location it is at in the source file. To reposition the object to your cursor when it loads, enable this button.
Blender3D FreeTip.gif
Finding What was Loaded
If the loaded object is not visible, consider using At Cursor or AutoSel. If you use AutoSel, remember there are Snap tools to put your cursor on the object (⇧ ShiftS4 (Cursor -> Selection)), and Center your view on it (C (View → Align View → Center View to Cursor)). Note that these tools do not work if the object is on an unselected layer, since objects on unselected layers are invisible.


Reusing Objects (Meshes, Curves, Cameras, Lights, …)

Let’s suppose you created a wheel in one .blend file and want to reuse it for your current project. The physical model of the wheel would be a mesh, and probably comprised of a tire and rim. Hopefully you named this mesh something reasonable, like, oh, I don’t know, “Wheel”. The wheel may be colored and thus have some materials assigned to it (like rubber and chrome).

Once you navigate to the file, select the “Wheel” (in the Objects datablocks) and it will be imported into your current file. You can import a copy of it, or merely link to it.

Blender3D FreeTip.gif
Linking
If you link to it, and later modify it in the source file, it will be shown “as-is” (modified) in your current file the next time you open it up.


Other artists have released their models to the public domain, and friends may share models simply by posting or emailing their .blend files to each other. Keeping these files, as well as your past projects, in a Download directory on your PC/server will save you from ever having to reinvent the wheel.

When selected, linked objects are outlined in Cyan. Normal selected objects are outlined in pink.

Notice that you cannot move a linked object! It resides at the same position it has in the source file. To move/scale/rotate the object, turn it into a proxy.

Blender3D FreeTip.gif
Using Appended/Linked Mesh Data
Manual-UsingLinkedLibraries-OOP Schematic Views-Wheel.png

When Appending or Linking certain resources such as mesh data, it may not be instantly visible in the 3D Viewport. This is because the data has been loaded into Blender but has not been assigned to an object, which would allow it to be seen. You can verify this by looking in the Outliner window and switching it to OOPS Schematic view (you may need to have the Displays Scene datablock button selected in its header). In the OOPS Schematic picture you can see that “Wheel” is not linked to any object.

Manual-UsingLinkLibraries-LinksAndMats.png

To allow the newly loaded Wheel mesh to be assigned to an object, either select a currently visible object or create a new object (such as a cube), then go to the Link and Materials panel and select the Wheel mesh from the mesh drop down panel, at that point you should see it, because it has been assigned to an object.

If instead of Appending/Linking to a mesh you instead load the object into Blender, it should be instantly displayed in the 3D Viewport without having to associate an object with the mesh (as it is already done!).


Reusing Material/Texture Settings

Material preview in Image Browser.

Some materials, like glass or chrome, can be very tricky to get “just right”. The Blender Foundation has released, for example, a Materials CD, which is available for free to download from their site. Using the .blend files on that CD, you can import common materials, like glass, chrome, wood and bananas. This feature saves you a lot of time, as it often means you don’t have to be fiddling with all the little buttons and sliders just to re-create a material. I call out the Banana material because it is a great example of using simple procedural materials with a ColorRamp, and a procedural texture, to give a very realistic look. When you navigate to the file, and select Materials, the browser will show you a sphere sample of that material to help you visualize the texture that goes with the name. For more information on using the Image Browser, see the release notes.

Blender Extension: Library
There is also a fantastic Python script called Blender Library that over-arches all of your files and allows you to construct a master library. This script displays a preview and helps you organize your Blender work. Highly recommended; search www.blendernation.com for “Blender Library”, it is also stored on the Blender Wiki Scripts section.


Reusing Node Layouts

To reuse noodles (node layouts), open the original (source) file and create a Group for the set of nodes that you think you want to reuse. When you want to import that node group into your current file, select File → Append or Link from the User Preferences window header (or hit F1), and navigate to the file. When you dive into the file, there will be a NodeTree option. Click it and the list of node groups in that file will be listed. LMB Template-LMB.png-click the one you want and then Load Library.

Verse is an amazing OpenSource collaboration tool that integrates with Blender. Verse enables multiple people to work on, link, and share objects and modifications in Blender files in real time.


Proxy Objects

A proxy is a legal stand-in or substitute for the real thing. In Blender, when you make a linked copy (described above), you cannot edit the object; all you have is a link to it. You cannot add to it or change it, because its source is in another file that is not open.

When working in a team environment, you may want more flexibility. For example, if modeling a car, you may have one person working on the shape of the car (its mesh), but another working on available color schemes (its materials). In this case, you want to grant the painter a Proxy of the object and allow him/her to modify the material settings. More commonly, you will have a character being animated by a team of animators; they can define poses, but cannot change the character’s colors or armature, only use what is defined by the master rigger.

The important aspect of a proxy object is that it allows you to edit data locally, but also allows specific data to be kept restricted. Data that’s defined as restricted will always be restored from the library (typically on file reading or undo/redo steps). This restriction is defined in the referenced library itself, which means that only the library files can define what’s allowed to change locally.

For poses, you can control this by indicating bone layers as being restricted. A restricted layer is shown with a black dot in it. Use CtrlLMB Template-LMB.png on a button to restrict or unrestrict that layer.

Mode: Object Mode

Hotkey: CtrlAltP

To make a proxy object for yourself, establish a link to the source object as described above. With that linked copy selected (RMB Template-RMB.png) and in view (you can see it in the 3D View), press CtrlAltP and confirm the Make Proxy dialog. The object will be named with the original name plus a “_proxy” suffix. You may now move and modify the proxy. When selected, it will look like a local object (outlined in pink).

You can then edit unrestricted data. For most objects, this includes the location and rotation. You can also animate the object’s location using Ipo curves. For mesh objects, the shape of the mesh is restricted, so you cannot define shape keys. When you reload your file, Blender will refresh your file with any changes made to the original restricted data, but will not reset your changes (unless the owner has).

Armatures and Multiple instances

Development of this feature is a work in progress; in Blender 2.43 and CVS (as of 29 April 2007), a proxy object controls all instances of a group. It is not yet possible to have one proxy per group instance. In particular, it is not yet possible to have one proxy armature per group instance. One partially effective remedy to use file append rather than file link for multiple instance duplication. File append will not be updated with update to the origination file.

If you are using a POSIX compliant file system, you can work around the one proxy object per group limitation with the cheap hack documented at Linked Lib Animation Madness.



Introduction
What is Blender?
Introduction
Blender’s History
License
Blender’s Community
About this Manual
What's changed with Blender 2.4
Installing Blender
Introduction
Python
Installing on Windows
Installing on GNU/Linux
Installing on Mac
Installing on other Operating Systems
Configuring Blender
Directory Layout
Starting
The Interface
Introduction
Keyboard and Mouse
Window System
Arranging frames
Headers
Console window
Window Types
Screens (Workspace Layouts)
Scenes
Configuration
Modes
Contexts
Menus
Panels
Buttons and Controls
Internationalization
Your First Animation
1/2: A static Gingerbread Man
2/2: Animating the Gingerbread Man
The Vital Functions
Quick render
Undo and Redo
Default scene
Screenshots
Help!
Setting Preferences
Configuring Preferences
Interface
Editing
Themes
File
System
Interaction in 3D
Introduction
Introduction
Navigation
Introduction
3D View
3D View Options
3D View Usage
Camera View
Layers
Local or Global View
Sketch in 3D Space
Introduction to Grease Pencil
Drawing sketches
Layers and Animation
Converting sketches to geometry
Transformations
Introduction
Basics
- Grab/Move
- Rotate
- Scale
- Gestures
Advanced
- Mirror
- To Sphere
- Shear
- Warp
- Push/Pull
Transform Control
Introduction
Precision of Transformations
Numeric Transformations
Transform Properties
Reset Object Transforms
Manipulators
Transform Orientations
Axis Locking
Pivot Point
- Active object
- Individual Centers
- 3D Cursor
- Median Point
- Bounding Box Center
Snapping
Snap to Mesh
Proportional Edit
Data System and Files
Blender's Data System
Blender's Library and Data System
Blender's Datablocks
Scenes
Working with Scenes
The Outliner Window
Appending and Linking
File operations
Introduction
Opening blender files
Saving blender files
Modeling
Introduction
Introduction
Objects
Objects
Selecting Objects
Editing Objects
Groups and Parenting
Tracking
Duplication
- DupliVerts
- DupliFaces
- DupliGroup
- DupliFrames
Mesh Objects
Meshes
- Mesh Structures
- Mesh Primitives
Selecting
- Selectable Elements
- Selection Basics
- Advanced Selecting
- Selecting Edges
- Selecting Faces
Editing
Basic Editing
- Translation, Rotation, Scale
- Adding Elements
- Deleting Elements
- Creating Faces and Edges
- Mirror editing
Vertex Editing
Edge Editing
Face Editing
Deforming Tools
- Mirror
- Shrink/Fatten Along Normals
- Smooth
- Noise
Duplicating Tools
- Duplicate
- Extrude
- Extrude Dup
- Spin
- Spin Dup
- Screw
Subdividing Tools
- Subdivide
- Subdivide fractal
- Subdivide smooth
- Loop Subdivide
- Knife Subdivide
- Bevel
Miscellaneous Tools
Retopo Tool
Sculpt Mode
Multi Resolution Mesh
Vertex Groups
Weight Paint
Mesh Smoothing
Curve Objects
Curves
Selecting
Editing
Advanced Editing
Surface Objects
Surfaces
Selecting
Editing
Text Objects
Texts
Editing
Meta Objects
Metas
Editing
Empty Objects
Empties
Group Objects
Groups
Scripts
Modeling Scripts
Modifiers and Deformation
Introduction
Introduction
Modifiers Stack
Modify
UVProject
Generate
Array
Bevel
Booleans
Build
Decimate
EdgeSplit
Mask
Mirror
Subsurf
Deform
Armature
Cast
Curve
Displace
Hooks
Lattice
MeshDeform
Shrinkwrap
SimpleDeform
Smooth
Wave
Simulate
Cloth
Collision
Explode
Fluid
Particle Instance
Particle System
Soft Body
Lighting
Introduction
Introduction
Lights
Introduction
Light Properties
Light Attenuation
Light Textures
What Light Affects
Lights In Other Contexts
Shadows
Introduction
Shadow Properties
Raytraced Shadow Properties
Volumetric Lights
Introduction
Lamps
Introduction
Lamp Light
- Raytraced Shadows
Spot Light
- Raytraced Shadows
- Buffered Shadows
- Halos
Area Light
- Raytraced Shadows
Hemi Light
Sun Light
- Raytraced Shadows
- Sky & Atmosphere
Lighting Rigs
Radiosity
Introduction
Rendering
Baking
Scene Light
Ambient Light
Ambient Occlusion
Exposure
Exposure
Materials
Introduction
Introduction to Shading
Materials Introduction
Usage
Assigning a material
Material Preview
Material Options
Multiple Materials
Properties
Diffuse Shaders
Specular Shaders
Ambient Light Effect
Color Ramps
Raytraced Reflections
Raytraced Transparency
Subsurface Scattering (SSS)
Strands
Node Materials
Material Nodes
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Material Node Types
- Input Nodes
- Output
- Color
- Vector
- Convertor
- Dynamic
Vertex Paint
Using Vertex Paint
Halos
Halos
Textures
Introduction
Introduction
UV/Image Editor
Common Options
Texture Stack
Texture Types
Texture Types
Procedural Textures
Image Textures
Video Textures
Texture Nodes
- Nodes Editor
- Node Controls
- Nodes usage
- Nodes Groups
-- Textures Input Nodes
-- Textures Output Nodes
-- Textures Color Nodes
-- Textures Patterns Nodes
-- Textures Textures Nodes
-- Textures Convertor Nodes
-- Textures Distort Nodes
Texture Plugins
Texture Painting
Painting the Texture
- Projection Paint
Mapping
Mapping
Environment Maps
UV Unwrapping Explained
- Unwrapping a Mesh
- Managing the UV Layout
- Editing the UV Layout
- Applying an Image
Influence
Influence
- Material
-- Bump and Normal
-- Displacement
- Particles
- World
World and Ambient Effects
World
Introduction
World Background
Ambient Effects
Mist
Stars
Rigging
Introduction
Introduction to Rigging
Armatures
Armature Objects
Panels overview
Bones
Visualization
Structure
Selecting
Editing
- Bones
- Properties
- Sketching
- Templating
Skinning
Introduction
Linking Objects to Bones
Skinning to Objects’ Shapes
Retargeting
Posing
Introduction
Visualization
Editing Poses
Pose Library
Using Constraints
Inverse Kinematics
Constraints
Introduction
Introduction
Constraints Common Interface
Constraints’ Stack
Transform Constraints
Copy Location
Copy Rotation
Copy Scale
Limit Distance
Limit Location
Limit Rotation
Limit Scale
Transformation
Tracking Constraints
Clamp To
IK Solver
Locked Track
Stretch To
Track To
Relationship Constraints
Action
Child Of
Floor
Follow Path
Null
Rigid Body Joint
Script
Shrinkwrap
Animation
Introduction
Introduction
The Timeline
Markers
3D Views
Animation Editors
Animation Editors
Ipo Editor
Ipo Curves and Keyframes
Ipo Datablocks
Ipo Types
Ipo Editor Interface
Editing
- Ipo Curves
- Keyframes
Ipo Drivers
Action Editor
Editing Action Channels
NLA Editor
Editing NLA Strips
Strip Modifiers
Animation Techniques
Introduction
Animating Objects
- Using Constraints
- Moving Objects on a Path
Animating Shapes
- Shape Keys
- Editing Shape Keys
- Animating Shape Keys
- Shape Keys Examples
Indirect Shape Animation
Animating Armatures
- Stride
Animating Lamps
Animating Cameras
Animating Materials
Animating Textures
Animating World
Physical Simulation
Introduction
Introduction
Dynamics
Force Fields
Collisions
Particles
Particles
Types
Physics
- Newtonian
- Keyed
- Boids
Visualization
Controlling Emission, Interaction and Time
Cache & Bake
Hair
Children
Vertex Groups
Particle Mode
Soft Body
Introduction
Exterior Forces
Interior Forces
Collisions
Simple Examples
Combination with Armatures
Combination with Hair Particles
Reference
Cloth
Introduction
Fluids
Fluid
Using the Game Engine
Using the Game Engine
Rendering
Introduction
Introduction
Camera
The Camera
Perspective (Vanishing points)
Depth Of Field
Render
Displaying Renders
Basic Options
Antialiasing (Oversampling)
Rendering Animations
Panoramic
Render Baking
Using the Command Line
Output
Output
Video Output
Effects and Post Processing
Introduction
Render Layers
Render Passes
Edges & Toon
Stamp
Color Management & Exposure
Depth Of Field
Motion Blur
Render Performance
Rendering Performance
Distributed Rendering
External Render Engines
Introduction
YafRay
Compositing with nodes
Composite Nodes
Introduction
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Composite Node types
Composite Node types
Input Nodes
Output Nodes
Color Nodes
Vector Nodes
Filter Nodes
Convertor Nodes
Matte Nodes
Distortion Nodes
Editing Sequences
Introduction
Introduction
The sequencer
Usage
Sequencer Modes
Sequence Screen Layout
Effects
Built-in Effects
Plugin Effects
Audio
Audio Sequences
Extending Blender
Introduction
Introduction
Python Scripting
Python Scripting in Blender
Setting up Python
The Text Editor
A working example
References
Python Scripts
Script Catalog
Bundled Scripts
Plugins
Blender's Plugins System
Texture plugins specifications
Sequence plugins specifications
Game Engine
Introduction
Introduction
The Logic Editor
Usage
Game Properties
Sensors
Introduction
Sensor Types
Controllers
Introduction
Expressions
Actuators
Introduction
Action
Camera
CD
Constraint
Edit Object
Ipo
2D Filters
Game
Message
Motion
Parent
Property
Random
Scene
Shape Action
Sound
State
Visibility
Cameras
Cameras
Dome Camera
Physics
Physics Engine
Material Physics
Object Types
- Static
- No Collision
- Dynamic
- Rigid Body
- Soft Body
- Occluder
- Sensor
Python API
Bullet physics
VideoTexture
Various resources
List of Features
External resources
Game Engine Basics (BSoD Tutorial)
FAQ