Layout

As things in the modeling dept come to a close we will be beginning to construct the scenes. This is the time when things start to come together, also it is where we will have to make some decisions on how it will look.Over the course of time a lot of testing has been completed to make this as painless as possible, however there will be moments when we will have no choice but to bite the bullet and go with what works. Some of the testing has come to making design choices, either because it makes sense or because it will be technically efficient.


Process

  • Set layout
  • Once Set Layout is complete then place subject models in scenes
  • Make basic animation and camera blocking
  • For Train model make a simple proxy object (A series of boxes) and then animate, which will be replaced later during final animation phase
  • Once layout is complete, compile the preview animation videos into one, which will be sent to Noyx Studio for sound design
  • Obtain sound file, cut into pieces for final animation
  • Begin final animation process

Linking

With Blender it is possible to dynamically link scenes or objects, however it is important to remember that when using linking, it is not possible to edit anything, even it's location.

Since you cannot edit it's location, if you make mistakes yo have to start from scratch.

Since linking in Blender seems to be very picky about what it can and can't do, after much R+D research it seems that the best scenario is to link "Scenes". This is accomplished using Groups.
The other problem is designing different sets for scenes and shots, there is no reason to load every object of the environment when there is only going to be a fraction of the objects visible on camera. Now that the animation phase is starting it is essential to nail down the scene construction now instead of waiting to build at a later time.
By linking groups of objects in it is also possible to have multiple groups per object, so say you need to have a set with only these sets of objects for a custom set but at the same time make it easy to just build the entire set without having to add the smaller groups one by one. This is by having multiple groups per object.

Lighting is one thing that should NOT be linked unless it is the "standard" lighting rigs (which are mainly the wall lights). Each shot will most likely contain it's own lighting to emphasize the shot, be it color, intensity or direction. This is why Lighting is usually one of the very last steps in the process of a pipeline. As it is planned there will be two sets of the Wall Lighting rig, one of them being the entire collection and the other just a small section.

Set Types

FULL SET - This set has every element of the environment added, including the "above ground" area that is only seen one time in the short. The reason for this one set is that the camera animation made for this shows nearly everything added to the set. This set itself would most likely be used one time, for this one long continuous shot.

PRIMARY SET - This set is the one that would be used for most of the long shots seen. The "above ground" objects will not be included because they will never been seen again past the first shot.

SMALL SET - This set would be the one used for mid range camera shots that focus on the walls or the ground but not to either end of the tunnels, this allows for nearly half the objects in the primary set to be removed and reduces export times considerably.

CUSTOM SETS - There will be custom sets designed too for close ups of certain objects, things that will not require camera movement area from the subject in question.

Groups

The groups so far in Main_scene_01.blend

  • AIRVENT - These are the objects that are mainly seen one time only.
  • BLOCKER - These objects are to block shadow maps that leak into unwanted areas.
  • CABLE - The various cables seen
  • CABLE_SET01
  • DECO_SET01
  • DECO_SET02
  • MAIN_DECO - Much of the bricks and various items
  • MAIN_ENV - Majority of the objects of the set design
  • PIPES - The complex piping
  • PIPE_SET01
  • RAILING - The handrails
  • RAILING_SET01
  • SIGNAL_LITES
  • STEPS - The 2 step objects
  • TRACK - The train tracks
  • TOP_LIGHTS
  • WALL - The walls
  • WALL_LIGHT_OBJ - The wall light objects

There will be more additions to the groups, for instance separate sides, or a small subset of groups (such as the rails)

So for one purpose Linking can be used for is entire scene construction, rather than rebuilding each time for each shot. From the links above the idea is that everything in that scene is assigned as a group, this makes it much easier to link the multiple objects that would be in the 'master' scene file.

Linking can be done with animated objects as well, as long you make a proxy of it.

Filepaths

IMPORTANT!

When Linking DO NOT link while it is set to Absolute, this will cause issues when others try to view the file and again you cannot fix the issue, it needs complete redo. This is the reason for the set grouping, the ease of chunks of environment objects for quick set creation.

ie:

/home/animate1978/PW/Proj_Wid_DB/SVN/Textures/walls/00106_01.tif

…will cause the object to load fine locally but will not be viewable by other users. So the solution is to use Relative Filepaths.

Object blend files

  • Environment Objects
  • Spider
  • Train

These files will have the models in them, shaders and any textures used on the model. For the most part since shaders are mainly used, except for the spider, the shader sources are located internally of the blend file. The textures are packed into the file and are also placed in a sub-directory of the blend file, making it a relative path location. We have had issues with file paths and this seems to be the only way around later issues, it insures that the texture will be there.

Since the shaders themselves are just source code and it is the shader fragments that you are manipulating, each object can use the same shader but produce different looks depending on if the parameter is associated with a Blender Material parameter. Like rusty_metal.sl can be used for the pipes, the railings and even the train undercarriage but each of them can have say a different color to it if one of the shader fragments color is controlled by the Blender material. Or there can be multiples of shader fragments but each has it's own name so thus the same shader source can be used but have entirely different fragments and the rendered results can vary greatly.

Duplivert Instancing

Instancing in Blender can done by Dupliverts, it can be quite handy for repeating objects that will only take up disk space if multiplied in scenes by both forms of Duplication. In some cases Duplication is required, but for multiple static objects that will never move in the scene, using Dupliverts is a more efficient way to go. The reason why is only one object is exported into RIB archive, as opposed to Duplicating (either form) where Mosaic will export each copy of that object. Now if the same object is repeated, there is no need to export the same object - it will only take up space needed for other assets.

Manipulating Dupliverted objects is quite an easy task too, since the object being instanced is placed at each vertice, all that is needed is to manipulate the vertice(s) in question.

The best way to make a repeating pattern of objects is to use a Grid object at first and then delete the unwanted faces, edges and vertices until you have the desired shape and amount of vertices needed. In this project at least.

Shots

For blocking out scenes we will be using the set files, such as Scene_002.blend. The scenes will contain all the required objects already inside so that animation and blocking can begin right away. The Camera is already rigged up to be used for camera animation, though there will be cameras set up for different shots as well through out the scene if the animation and setup is too complex to recreate on a constant basis, it will be easier to just use different cameras.

The camera rig is a special set of empty objects that make it very easy to manipulate and point to where you want to be. This is the rig that will be used when the camera is moving, though for static shots it would be used as well. For scenes with multiple cameras, both regular cameras and the rig will be used appropriately.

Keeping camera aspect ratio is also important, since the final frame will be rendered at 1920x1080 resolution having the cameras at that ratio will ensure that what is needed on screen is seen.


Export + Render Time Optimization

We are going to have to reduce export and render times as much as possible. Some of the normal ways of building scenes in Blender will cause some serious issues when it is exported to RIB format and then rendered, having multiple objects of the same type is not only going to increase the export time (as Mosaic exports each object) but it will also increase disk space.

  • Object Instancing (Alt+D) - similar to duplication
  • DelayedReadArchive (RenderMan RIB asset rendering method)

Instancing and DupliVert methods are a good way to duplicate objects within Blender without actually increasing export times, per object. These ways only export a single RIB mesh file, the RIB Scene file then calls on that RIB mesh file multiple times, this way only one RIB per instanced object is created, thus cutting down export times substantially.

DelayedReadArchive is a RenderMan method to only call upon an external RIB file (such as an object) on the fly, that is if during rendering Aqsis does not load that RIB data into memory until it absolutely has to. This will reduce render times simply because the memory isn't tied up with unused data.

There is also other ways to reduce render times.

  • Shots that only need x amount of objects will export faster
  • Compositing can reduce the amount of frames NEEDED (still backgrounds only need 1 render)
  • Render Passes

Other misc tips and tricks can be found here as well :


Outside Research

Project Peach offers some GREAT information regarding this -
http://blender-mirror.kino3d.org/peach/peach_svncheckout/resources/tutorials/librtut.html

Linking References :
http://www.blender.org/development/release-logs/blender-242/library-linking/
http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/Using_Blender_Libraries

Blender Architecture :
http://www.blender.org/development/architecture/

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License