It’s time to tell about the way we organizing usage of the same models in various scenes with blender.
Imagine we have a model of… mmm… bike! And as you could see from storyboard bike is appearing on many scenes of Morevna Project demo. We do not want to include the full copy of a bike because every time we will change the original model, we will need to re-insert it into each scene and (sic!) animate it again.
Consider, what it is unavoidable to make changes in the model after it already inserted in the scenes and process of animation already begun. We can’t design the model from start till the very end – there is always something to fix during the usage. Also it could be handy to insert unfinished yet model to the scene to see how it will look, and let one artist to work on the scene and other continue develop model (like we did for truck model in scene 54).
In other words we want each scene where model is used to update automatically when the file with model updated. That implies:
- Applying all modifications done in the original model file to the model in the scene (including newly created objects);
- Keeping animation applied to the model in current scene.
That’s why we are using blender’s feature to link data from one file to another.
We just briefly describe process of linking in blender 2.46, paying attention to some tricks and unobvious moments.
Ok, if we want to link some model into the current scene we just go “File > Append or Link” menu. In the appeared dialog enable the “Link” button instead of “Append”. To keep our files transferable, we are also enbling the “Relative paths” button, but in this case current blender file should be saved first.
Next, search and click on the file with a model, then choose what you would like to import. We are choosing the “Scene”, cause we want to import the whole scene containing object. Then choose the scene name you would like to import. For Morevna Project we are always naming the scene containing model as the .blend file named, i.e. in file “bike.blend” we will choose scene called “bike”.
After you click “Load library”, a scene called “bike” will appear in current file. A linked scene. But you can not move or edit linked data from current file.
The problem is solved with the help of Proxy objects. Just select the linked object in the scene and press Crl+Alt+P. Huh? No luck? OK, as I mentioned above, the linked data could not be edited. When we pressing Crl+Alt+P it issues he creation of the proxy object in the current scene. But our current scene now is linked one! So it couldn’t be edited and the proxy isn’t created.
So, all we have to do is to create a new scene where our action take place, link objects there and after that create proxies in that scene. C’mon, create a scene and name it… let’s say “54″. We are always naming them as a number, representing corresponding scene number in storyboard. Then return to the scene “bike” select all objects (A) and link them (Ctrl+L > “To Scene…”) to the scene we just created – “54″.
Now, just go to the newly created scene, you will see the bike there. Select object, you wish to modify and press Crl+Alt+P. Now it could be moved and animated.
But here’s comes another issue. Creation of a proxy means creation of the object, which comes as agent between current scene and linked data. That means all modifiers for current object what applied in the original file (like Subsurf and Mirror) will be lost after creation of proxy for it. Also, all materials linked to the object (not to the mesh) will be lost.
For example, if we want turn a wheel of a bike, we will create a proxy and will be able to turn it, but we will loose Subsurf modifier. Of course, we could apply it again to the proxy in current file, but that’s no good, cause if we modify Subsurf’s parameters in original file, it won’t be reflected in our scenes.
We could suggest a little workaround to fix that. But before that we should get rid of the wheel proxy. Just delete wheel object from scene “54″. It’s okay, cause we could link (CTRL+L) it again from scene “bike”. If we not delete proxy object, when we will link wheel again from “bike” scene to “54″, the proxy will continue it’s existence and will keep performed transformation. It’s a good behaviour, but not what we want now – we just want to get rid of the proxy. Another way is just Undo (CTRL+Z) if you have enough undo steps available.
Ok, let’s proceed. In the original file, containing model (bike.blend) we are creating an Empty (SPACE > Add > Empty) and parenting (CTRL+P) the wheel to it.
After that, when we reopen the scene, containing linked bike, the empty will appear there on a scene bike. Cause we added a new object, it is not appears on the main action scene though. So we need to go to the bike scene, and again: select all (A), Link (Ctrl+L) > “To scene…” > “54″. The scene will be updated.
Now we can go to the scenne “54″, select the Empty and make a proxy for it. Nothing wil be lost – no modifiers or materials appled to the Empty, but the wheel object will follow the Empty object transformations, cause it’s parenting to it in the model file.
That’s all tricks about reusing models workflow.
If you updated the model, the changes will be reflected automatically after reloading the scene, where this model was used. As I mentioned above, if new objects were added to the model, you need to make additional steps – go to the linked scene, select all, and CTRL+L to scene where the action takes place. New objects will be linked together with old ones, but the proxies position and animation will be kept. That’s just what we need.
One last thing: watch your linked files! If you open scene file having one of the linked files unavailable, the blender displays a “WARNING IN CONSOLE” message and all data from unavailable linked scenes will disappear. If you’ll save file after that, the lost linked data couldn’t be recovered even after you’ll return linked files in place. Keep that in mind.