What is recommended practice for complex projects?

I’m trying to find out the best practice for complex projects, how to work with characters, scenes, simulations.

I usually work with characters linked into scenes. There is always a need to tweak characters durring production and rendering, using linked characters is the most reasonable way to keep everything updated in all scenes.

On the other hand, there are some issues with linked characters. Simulations are out of questions and motion blur is glitchy.

Maybe solution is to have single file, with all the props and characters in first scene, like some kind of depo, and to use instances of these objects in all scenes. But this will produce enormous files for larger productions.

I’m a little bit of lost in looking for the solution for these limitation… what do you think is the best practice?

I forgot to mention linked characters and props are the best practice for collaborative work.

Additional problem - Rigify is limited to only one rig per scene. But it works well with linked characters.

i dont know about rigify, but linked proxies seem great to me as long as one doesnt break them by accident. that way i can animate/accumulate all my assets, while still edit them in their respective own blendfile.

work pieces

Definitely don’t have everything in one file. I prefer to split projects up by the process so there is a progression. Modeling in one file, Textures in another, Rigging in another file etc. It is also easy to track the progress of an asset this way.

So the riggify limitation makes sense as you should only be rigging one character in a file at a time.

And you don’t have to link. If you are working with a team and you want updates, this is a good plan. But also there is nothing stopping you from Appending a newer version.

In practice a production goes though a progression. So unless you are a large team, with several people animating with the same characters, it is not necessary to link. And even if you are, actions can be stored, and you can simply append a new version and attach the action to it. So there are other options than linking if that is causing issues.

Basically the larger the production the less complexity and room for something to break you want.

So you have to balance the time you think you are saving by having more clever solutions with the complications that can cause and the time lost solving those new problems created.

Keep it as simple and hands on as possible with less reliance on technology and more reliance on just good sound, predictable techniques even if they seem to take more man hours. When things break, it shuts everything down.

It is more easy and predictable to track down human error than it is to find and fix - or wait for a fix for - a bug or other unexpected limitation.

Ehm curious whats the logic behind textures in a separate blend file ?, why do you do that ?.

i prefer to put my projects on a torrent.sync share (and sub shares), so all different workstation auto sync their data.
Its the way how i share textures and stuff between people and their pc’s.
So i just have a folder textures, and this is available to all.

Any clever idea how to manage simulations? I tested idea to have all characters inside single file, but more then one Rigify crash Blender each time durring scenes switching. It’s looks like characters must be as linked objects… but how to add any simulations on them?

Reading back at what I wrote it was not very clear. Sorry for the confusion. I keep things in common folders as well. But I mean I save out different files as I go through the pipeline. So for example. If I am modeling I keep a series of files for that asset in a “Modeling” folder. And when the modeling is done it I start saving out to another folder (in this case textures) where also common texture files are kept and maintained in their own folders. Photoshop files etc. And then when that is done the asset is saved out in a rigging folder when I get to that stage.

At the end I have a series of assets ready for animation all in separate folders that are brought into scene files.

Linking and Appending are two ways to do that. They both have limitations and drawbacks.

Well I’ve worked for a couple different studios using Maya. Referencing characters (Maya’s equivalent to Linking in Blender) into your scene was often the goal. Things like fur or hair on a character I think were done in the character file. Any environment simulations were done in the environment/scene file. If you have a main prop nearby your character/s in your shots (highly detailed tree/car), it might be a good idea to link that in from a separate file, instead of having it within the current scene file (If you have multiple scenes, it’s I think better to have different files for each scene). The rest of the enviroment was typically built in it’s respective scene file.

Blender’s linking capabilities is a little different, easier to mess up or corrupt the connection if you’re editing a character. But I think you can “make local” parts of a character, like their skin mesh, which can be useful. This might help for doing simulations, you could maybe look into this more (then let me know :).

The studios I worked for were for TV not feature film, though. So project hierarchy might be a little different in that respect.

Thank You for sharing this workflow, bluepython. This sounds as a glimp of a solution.

If it’s necessary to have simulations of hair, this “make local” strategy looks like a workable idea.
I did some test.
I made additional hair emission mesh inside character file, from geometry of a rigged character. On this way hair emission mesh has same vertex groups as a character mesh, and deforms on the same way.
Character is linked into final scene, rig is made proxy. Hair emission mesh is appended into final scene, converted into local mesh and connected to proxy rig.
Of course, any changes on this simulation asset inside character file wont be updated in scene file, because it’s not connected anymore. This means hair, fur, cloth are always a local assets, and soft body simulations are out of picture.

Maybe solution is to use hair emission mesh inside character file, with Disk Cache.
This will make possible to run simulation baking inside character file, but from scene file, because scene file holds animation data mixed inside NLA editor. First problem is Disk Cache range, because it’s not supported to specify a range of frames from a scene file, which is issue if having more the one scene. Second problem is interaction with other scene elements.

Change the name of the rig and the rig.ui.py text in your rigging files to be unique. Then link into your scene. For example Mary-rig, Mary-rig.ui.py, Joe-rig, Joe-rig.ui.py.

Good luck!

Prayer lots of prayer and a hope your machine will survive also.

Creating asset based workflow is the same idea as you do for one file projects. But the motto is to take off some weight from the one file and put it out on the file system.

For example you might see that you use an item all of the time (duplicate… duplicate…), well this is an example that it can take it’s own place. Or you might see that an item is actually very good to be reusable (e.g. a rig, or a light setup).

After that you can break the project into scenes according to the storyboard and bring the assets as linked ones.

There is a good Addon that will help you make tweaks to linked objects.

I did a little digging into Sintel for what they did with asset management, as I knew Sintel had hair. Here’s a link with a video on the page:

https://durian.blender.org/news/library-linking-asset-management/

I would think there’s a way to still have hair particles within the character file.

@Bluepython

This is very similar to workflow I’m using. Only difference is I use highres groups in higher row of layers and lowres groups in lower row of layers. This strategy makes possible fast switching between them. I don’t have to select individual objects each time, browse for Duplication group options and typing text.

I read they (Durian Team) made some script for editing simulation Cache Range inside linked character and they had really hard time to deal with simulations.
Of course, interaction between linked objects was out of question.

It looks like only reasonable way is to have local scene objects if simulation needed.

You may be right. This might be best practice, at least until Blender linking improves.