Library Linking & Asset Management
on January 22nd, 2010, by Colin LevyAt the studio we have to be able to maintain and work collaboratively with a large number of files. For those who are interested, I made a little tour of the system we have set up as well as the process within Blender to link in groups from other .blend files.
Word of caution: when working with files that reference other files, be *very* careful with filenames and filepaths! Moving files around or renaming things can result in quite a headache.
–Colin
Edit: Here’s a link to Blender-aid, the content management tool for Blender I mentioned in the video.
January 22nd, 2010 at 4:44 pm
nice freatures
January 22nd, 2010 at 4:48 pm
thank you for the update, its all looking fantastic
January 22nd, 2010 at 5:11 pm
I always had the feeling with 2.49 that file paths to textures and included other content should be relative by default. This to avoid when backing up a project folder one or more files is not resolved anymore.
Or maybe have Blender check if the file resides in same folder or sub folder of a blend file it uses relative and if it’s on another drive it uses absolute.
Cheers!
January 22nd, 2010 at 5:36 pm
Thanks! The city looks so cool. 😀
January 22nd, 2010 at 6:04 pm
Interesting, I was just learning about grouping and linking myself. It’s certainly much better than appending. Thanks
January 22nd, 2010 at 6:15 pm
Oh.. Thanks! I had never given linking a try. This is certainly a nice set of features. Actually, it is silliness of mine to have never used it, because I am used to the work flow in Flash – where you have a global library from which you can pick instances and to which you can add external assets. But now.. recursive linking in a 3d programe.. coolness 8)
Btw, the project in general is looking very professional. I did not know that you too did some 3D, Colin 😛
Cheers! 🙂
January 22nd, 2010 at 6:58 pm
that environment is going to be sick when it’s finished!
January 22nd, 2010 at 7:03 pm
Wouldn’t this feature make rather simple to have a Blender asset library on the web? Just add a simple browser and you can link in stuff from the web. This would keep the Blender download small but users would have a lot of nice preset stuff to play around with.
January 22nd, 2010 at 7:59 pm
I second for Alex’s idea
XD
January 22nd, 2010 at 9:17 pm
Any ogg version of the video ?
(I dont use flash, and the video tag works great : )
January 22nd, 2010 at 9:32 pm
Excellent explanation Colin.
BTW, proportional editing in object mode blew my mind!
January 22nd, 2010 at 9:35 pm
@PaulK, you can get YouTube to use HTML5 in Chrome at http://youtube.com/html5 . Unfortunately, the only supported format is H.264, and the quality is significantly lacking. If that doesn’t work for you, you can download it using http://keepvid.com/ and, if you really want, convert it to Ogg with VLC or ffmpeg.
January 22nd, 2010 at 10:26 pm
Excellent stuff, Colin. What flavor of Linux is the Blender Institute using?
January 22nd, 2010 at 10:32 pm
@Anon : Chrome is non-free software. Well, I guess I’ll download the video with software like cclive and then I’ll encode it to Vorbis/Theora.
It’s not very practical, I think Blender team could put a ogg video as they did with some other videos.
Anyway, keep doing a good job!
January 22nd, 2010 at 11:27 pm
will there be a “reference editor” to manage all reference files (like Maya)?
January 23rd, 2010 at 12:26 am
Excellent advice!
I have recently added an svn and a file tracker website for my own production and it was nice seeing you using a similar workflow.
I was unaware of blender-aid and it will come in very handy as my files grow in number. Awesome cool stuff!
I have been appending files for my animatics. Your video has made me rethink my ways as I will now try to use groups and linking.
Thanks for taking the time to make this very informative video with some nice visuals as well. Keep up the great work!
January 23rd, 2010 at 12:46 am
Hi, cool stuff!
I noticed the high res and proxy swapping, but 🙂 how is this set up with characters you animated? can u swap the mesh the same way?
Because of the rig enveloping etc.. It made me think xD
cheers!
January 23rd, 2010 at 12:47 am
Sweeeeeeet!
I’m assuming you’re using cloth modifiers to model crumpled piles of clothing? Just gives it a tad more realism.
And second, are groups zealously kept separate yet, proxies too, or not? I’d like to have multiple instances of a character in a scene, or different rigs which cannot interact, and yet share namespaces.
Just a thought.
January 23rd, 2010 at 12:58 am
What tool(s) do you use as svn client?
Nice work so far 🙂
January 23rd, 2010 at 1:37 am
I really like the way you blog colin.
Thanks for the update. Very interesting!
January 23rd, 2010 at 3:06 am
That was a very nice video! This is exactly the stuff I couldn’t really get working with my scene. You gave me new hope, I’m going to give it another try. Thanks for this!
January 23rd, 2010 at 3:21 am
Is there some kind of blender integration for subversion? Can you view a diff and do a merge? Or do you just check in binary blobs and don’t resolve conflicts at all.
January 23rd, 2010 at 3:35 am
@panzi, for svn we mostly use RabbitVCS. for commits and updates its ok, though some of us use svn directly in a terminal too.
all the assets are binary so no diff’s, though svn has binary diffing to minimize internal database getting to big in on the server.
January 23rd, 2010 at 4:44 am
i like this all.
guys, sorry for my bad english(it is not my native) but this project is interesting to me. since i cant understand most of things, i just wanted to ask, am I right to think all of models, items, etcc used in Sintel movie will be published?
and what is the movie on this DVD currently is selling here(link in right panel)?
thanks for attention!
January 23rd, 2010 at 4:18 am
I really like the technical updates this team is providing. It would have been cool if the previous blender projects had done the same.
January 23rd, 2010 at 6:44 am
k. am i understanding this linking correctly?
everything that is linked in is already centred to 0,0,0 centre of blender grid? am i getting it?
dt
January 23rd, 2010 at 8:05 am
Very cool. Thanks for the nice demonstration.
-Durian fan 😉
January 23rd, 2010 at 9:06 am
Great informative demo thanks.
I liked it that we could see both you and the Blender screen.
Dont know what that Lee fellow was doing gatecrashing for a cameo appearance though 😉
January 23rd, 2010 at 10:56 am
I also use svn at home with my brother, and a diff/merge tool would be nice. Load in 2 blend files and Blender lists out which parts differ, then merge it if there are no conflicts.
January 23rd, 2010 at 11:42 am
Great stuff. Always loved library linking. It was added for Elephants Dream right?
Anyway I’ve got a question. A part from objects, can scripts and node setups get linked in the same groups as well
Oh and, proportional editing in object mode!? SWEET!
January 23rd, 2010 at 2:27 pm
@oxygen, yes all the files used to make the movie will be published on the dvd. And that dvd on the right side of the screen is where you can preorder the durian dvd.
January 23rd, 2010 at 3:18 pm
Cool! Better than TV 😀
January 23rd, 2010 at 4:28 pm
does physics work on a linked group?
January 23rd, 2010 at 5:25 pm
Hey, I think I get our workflow now! Thanks Colin!
January 23rd, 2010 at 6:18 pm
some pretty interesting stuff 😀 must have been a bit of a pain to organize all the folders, though…
GO DURIAN!!!
January 24th, 2010 at 12:54 am
I imagine version control integration in blender would be nice. Including a graphical diff viewer and merge wizard. Well I guess this is good for several GSoCs. Personally I like mercurial much more than subversion (git is nice, too) but I guess with big blobs a system like svn where you don’t have to clone the full history is better. Mercurial integration might be quite easy to do, because its written in python and accessible as a library. Hmm, but then blender uses python 3 and I think mercurial isn’t ported to python 3 yet.
January 24th, 2010 at 10:09 am
this is a really cool way to work!! links are the solution 🙂
January 24th, 2010 at 12:02 pm
Yes, why SVN and not Mercurial or Linus GIT ?
Mercurial is distributed, free and very simple purely written in python.
January 24th, 2010 at 8:51 pm
Hi Colin.
Cool! your using Blender-aid. Hope I can get some good feedback on the product from you guys. There will be a new version released in the near future.
I really like the work you are all doing.
January 24th, 2010 at 11:59 pm
@jbakker – Hey, absolutely! Thanks so much for your hard work on Blender-aid, it’s already proved invaluable. Just took a look at the videos on the ‘solve missing links’ tools– definitely looking forward to the next release!
–Colin
January 25th, 2010 at 12:35 am
Anyone considered meta data in blend files? So that if the files are moved that blender can search for the files and reassemble.
January 25th, 2010 at 1:06 am
Great info!
I am using the same method for changing between hi res and lowpoly models in a scene. But I cant get it quite to work with armatures. Once changed, the model doesent really follow the armature (but it renders).
Have you had the same issue, or is it just 2.4 goodness that makes it work with armatures?
January 25th, 2010 at 4:25 am
In previous Blender there was a way to switch subsurf on and off with Shift-o for proxies. My guess is that will be back for Durian too, very handy for animators
January 25th, 2010 at 6:36 am
Colin, Thank you ever so for the postings, particularly enjoyed your fresh discovery and sharing of the library linking aspect. I know that it is powerful, and I will need to better understand how to do it. Great stuff.
Paul
January 25th, 2010 at 6:44 am
I learned linking from Roland Hess’ book. Animating with Blender where he has a chapter or two on it and it really is amazingly cool. I am a mechanical engineer and I wouldn’t dream of having mechanical assembly drawings with source files embedded in them, everything is linked so you can reuse parts in multiple assemblies, but as spidey says with great power comes great responsibility (or ability to make yourself incredibly miserable.) Move or rename one part and wow, it’s the end of the world. Blender really needs a better way of finding missing files or recovering from the one path you forgot to make relative.
January 25th, 2010 at 2:11 pm
I use linking in commercial (and big) gamedev projects and I have no problems.
But now I make a short film and I found some very big bugs in the linking system. I use 2.49, not 2.5.
Bugs for example:
-changing an armature crashes the blends that links it
-adding materials to and object: the blend that links it dont change the materials
-some modifiery (for example displace) dont find some texture names that are coming from linked materials
Now I have no time to post these bugs in the bugtracker but when I start to use 2.5, I will.
January 25th, 2010 at 7:29 pm
Thanks for this video Colin, great to see some more info on your workflow. One question would be: are your layout files your shot files, and if so, do you create multiple copies to handle different shots in the same scene, or do you use multiple cameras in the one file? Thanks!
January 26th, 2010 at 8:17 pm
out of curiosity, do you use CamStudio to film your computer screen, Colin?
January 29th, 2010 at 12:05 am
@Todd McIntosh – Right now I’m doing the layout with the mindset that the cameras are pretty much final. In this file I’m using multiple cameras in the same scene, with camera switching. However, before this goes to animation, the scene is broken up into an individual file per shot. For most things it’s easiest to animate on a per-shot basis. In the fight scenes, though, it may make more sense to have one animation over multiple shots. We’ll have to see!
@MeshWeaver- Right now I’m using recordMyDesktop, and I’m editing my webcam back in later with Blender. 🙂
January 29th, 2010 at 6:41 pm
My biggest struggle coping with this library system is grokking groups. My understanding would be a group being a parent to the objects it contains but it seems to live completely outside the outliner tree view.
February 1st, 2010 at 5:41 am
Twitter are 100% the way to go
March 18th, 2010 at 6:54 pm
can someone tell me how to link a character with a custom properties properly ? mine is just freeze. i try to link my character rig into a new file and i can’t edit the values.
http://i125.photobucket.com/albums/p79/johantri/attachment.jpg
May 6th, 2010 at 12:23 am
Hi! great info, thanks!
@Colin
After you proxy the armature, are you parenting the group empty to the armature proxy? I noticed that translating the armature proxy around doesn’t move the mesh with it by default…can you share more about how you’re working with the proxy afterwards, and expected behavior?