Friday, February 09, 2007

Production Pipeline Wisdom

File Naming Conventions

General Rule (what, when, who, why):

what_version_user_comment.ext

What?

What that means is exactly how it sounds. When you have to decide 'what to name a file' always answer the following:
What it is. Version. User. Optional comment after the version. File Extension (Even if you're on a mac)

The key is to describe what it is accurately, keep that consistent, start version with v01, and add a username and comment 'after version' if necessary. A comment can be any number of things. Such as what you did to the file, who worked on the file, notes, info, resolution, color space, format, etc. Comments track history to what was done to a file, who worked on it, and gives anyone else picking it up a clue into what's next perhaps.

Let's say we have a project with 50 visual effects shots. If we have 50 shots, 10 artists working on the show in different cities using FTP, using their own naming conventions, times hundreds of files per shot, imagine organizing those files and making the deadline.

I'll elaborate. We'll call the show 'Cats and Dogs', and it has 50 visual effects shots. It has a cat being chased by a dog outside a house. It has a house with a yard and a computer generated cat and dog.

Some examples:

cats_and_dogs_contacts_v01_joe_created.xls
cats_and_dogs_contacts_v02_louis_updated.xls
cats_and_dogs_contacts_v03_louis_tweaked.xls
cats_and_dogs_contacts.xls (What is this? Latest published copy of ~v03_louis_tweaked.xls file for everyone on crew to view. Maybe keep updated on-line)

cats_and_dogs_bid_v01_standard_bid.doc
cats_and_dogs_bid_v02_revised_because_client_freaked_out.doc
cats_and_dogs_bid_v03.doc
cats_and_dogs_bid_v04_producer_updated.doc
cats_and_dogs_bid_v05_ready_to_send.doc
cats_and_dogs_bid_v06_for_client.doc

Notice the prefix before the version is consistent. That's key. This will keep the files organized through the entire production. Just grab the latest version, make your changes, save new version, add a name and comment if needed. You might be saying, "Just use Google Docs and Spreadsheets?" That assumes everyone has a Google account or you'll be able to force everyone
to sign up and use a Google account. Good luck there.

Why v01? You might be thinking, "why not v1". Make 11 files with 1, 2, through 11, and look at them in Windows Explorer. See how they're not organized? You might be thinking, "I might go higher than 99, so why not just use 001?" That's the exception to most cases. If you reach 100 just move 01-99 into an old sub folder and name your 100th files v100. At SONY I had a comp at version 1004. No joke. Not because I did 1004 actual versions, but the shot was so much work, I just kept saving the comp script every 5 minutes to a new version to track history. Comp scripts, text documents, and referenced files are small. Don't be scared to just keep saving up. At Design Reactor our animator got to version 150. He couldn't believe it. On the music video I worked on the main master scene for ship interior is at version 250. But most files will never go to 99. Keep that in mind...

NEVER use the words final or new in any filenames. Except in comment(s). I can't tell you how many times I've received a file called whatever_final.psd or even final.psd WTF? You know there will be a final2.mb Then which one will be final? The first one, or 2nd? New2, New3. Which one is actually new? Anyone's guess. It would be fine in a comment for a file such as, cats_and_dogs_contacts_v07_louis_new_artists_added.xls

Visual Effects Production Pipeline Examples:

Modeling:
cat_model_v01_joe_imported_drawings.mb
cat_model_v02_joe_rough.mb
cat_model_v03_added_detail.mb
cat_model_v04.mb (See, no comment necessary...)
cat_model_v05_jane_deleted_history.mb
cat_model_v06_jane_checked_for_all_quads.mb
cat_model_v07_louis_organized_layers.mb
cat_model_v08_louis_optimized_scene.mb
cat_model_v09_louis_shaders.mb
cat_model_v10_louis_made_basic_rig.mb
cat_model_v11_louis_rigged.mb
cat_model_v12_louis_ready_for_animation.mb
cat_model.mb (Copy of latest file with version this time so in the animation file we know what rig is referenced)

cat_rig_v13_louis_rig_updated.mb
cat_rig_v14_louis_rig_updated.mb
cat_rig.mb (Animator will need to swap to this rig when ready).

dog_model_v01_louis.mb (Maybe your modeler is so good only one version is ever needed. Doubt it.)

house_model_v01_louis_rough.mb
house_model_v02_louis_more_detail.mb
house_model_v03_louis_pre_smooth.mb

Textures:

Photoshop working files:

house_facade_front_bump_v01_louis_4K.psd
house_facade_front_bump_v02_jane_4K_log.psd (log color space if working in film)
house_facade_front_color_v01_louis_4K.psd
house_facade_front_spec_v01_louis_4K.psd

Published Textures for Maya (rle lossless compression on):
house_facade_front_bump_4K.tga (MAP for latest linked version in Maya)
house_facade_front_bump_2K.tga (Good to have representations. Various resolutions)
house_facade_front_bump_1K.tga

house_facade_front_color_4K.tga
house_facade_front_color_2K.tga
house_facade_front_color_1K.tga

house_facade_front_spec_4K.tga
house_facade_front_spec_2K.tga
house_facade_front_spec_1K.tga

If you have a whole team of artists, modeler, rigger, texture artist, previz, supervisor, animator, and compositor all working separately simultaneously, I suggest this:

cat_model_v00_brian_test.mb (Use 000 for test files so it's never considered the latest)
cat_model_v01_rough.mb
cat_model_v02_david.mb
cat_model_v03_for_Rigger.mb
cat_model_v04_for_Rigger.mb

cat_rig_v01.mb
cat_rig_v02_tim.mb
cat_rig_v03.mb

cat_shaders_v01_louis.mb
cat_shaders_v02_added_sss.mb
cat_shaders_v03_hair.mb
cat_shaders_v04_beauty_shaders.mb

cat_turntable_v01.mb
cat_turntable_v01.0001-0120.tif

Animation:
shot_anim_version_user_comment.mb
aa01_anim_v01_louis_previz.mb (Might have rough rig referenced in maya)
aa01_anim_v02_louis_director_changes.mb
aa01_anim_v03_joe_added_new_rig.mb (Swap to better rig with updated shaders...)
aa01_anim.mb

Rendering:

C.L.A.S.S. (Cameras, Lights, Animation, Settings, Save...)
"Use some class when setting up renders..." -Louis Katz
The word 'class' has saved my a** so many times.
When setting up maya renders check the following:

Camera:
Does persp camera have output settings in attributes turned off?
Is only the camera you want in the scene set for output? Are the clipping planes setup so it will render your scene. This will bite you in the a** if you don't check.

Lights :
Are the lights you want visible (fill or sun) turned off and on? Are they the right values?

Animation:
Is the timeline set right? Handles? Is what you want visible in layers, groups, and when you scrub, what is supposed to be rendered? Is there anything you can hide to save render time? Is the frame range set in render globals?

Settings:
Render globals setup? name.#.ext, padding 4, .tif, frame range, mental ray, production raytracing 2 0 4.

Save...
If you've checked the Camera, Lights, Animation, and Settings, you're ready to Save and render. Are you saving with the proper file naming conventions? Such as aa01_cat_004_ambo.mb?

Render Passes (Good to keep consistent with animation version referenced in file):
aa01_house_v04_fill.mb (fill = fill lights)
aa01_house_v04_ambo.mb (ambo = ambient occlusion)
aa01_house_v04_sun.mb (sun = directional raytraced key light)
aa01_house_v04_mat_fence_ground_doghouse.mb (RGB mat of 3 separate objects)

aa01_cat_v04_fill.mb
aa01_cat_v04_ambo.mb
aa01_cat_v04_sun.mb
aa01_cat_v04_mat_body_eyes_claws.mb
aa01_cat_v04_ground_shadow.mb

aa01_dog_v04_fill.mb
aa01_dog_v04_ambo.mb
aa01_dog_v04_sun.mb
aa01_dog_v04_mat_body_eyes_claws.mb
aa01_dog_v04_ground_shadow.mb

aa01_fx_dust_v04.mb

Output Example (Use name.#.ext padding 4, .tif in maya):
aa01_yard_v04_fill.0001-0120.tif
aa01_dog_v04_fill.0001-0120.tif
aa01_cat_v04_fill.0001-0120.tif
aa01_fx_dust_v04.0001-0120.tif
etc.

After Effects Composite Example:
aa01_comp_v01.aep
aa01_comp_v02.aep
aa01_comp_v03_color_corrected.aep

After Effects Output Module Render Example (Composition / Add Output Module in Render Queue):
aa01_comp_v03.[####].tif (High quality output)
aa01_comp_v03.[####].jpg (For lots of screen graphics textures)
aa01_comp_v03_960x540_anim_half.mov (If you have the diskspace)
aa01_comp_v03_480x270_web_h264.mov

After Effects tips:
* File / Project Settings... Starting Frame Number 1. Frames. 24 fps.
* Edit / Preferences... Label defaults all none. Then make hidden layers red. Animated green.
* Turn on 'Show Rendering in info palette'. Handy...
* Select all layers in a comp and hit U (Uber) key to show all animated channels.
* Work, Setup Output Module, Save... Then Render. Reopen without save to the same file so you don't lose the output module setup.
* Skip existing frames for image sequences so you can render on multiple computers on the network.

Project Folders:

General Project:

z:\cats_and_dogs\assets\models
z:\cats_and_dogs\assets\models\cat
z:\cats_and_dogs\assets\models\dog
z:\cats_and_dogs\assets\models\house
z:\cats_and_dogs\assets\textures
z:\cats_and_dogs\assets\textures\cat
z:\cats_and_dogs\assets\textures\dog
z:\cats_and_dogs\assets\textures\house
z:\cats_and_dogs\docs
z:\cats_and_dogs\movies
z:\cats_and_dogs\reference

Shots:
z:\cats_and_dogs\shots\aa00 (Keep this with default folders as a template to copy/paste)

z:\cats_and_dogs\shots\aa01
z:\cats_and_dogs\shots\aa01\afx
z:\cats_and_dogs\shots\aa01\images
z:\cats_and_dogs\shots\aa01\maya
z:\cats_and_dogs\shots\aa01\maya\scenes
z:\cats_and_dogs\shots\aa01\renders\
z:\cats_and_dogs\shots\aa01\renders\aa01_yard_v04_fill\
z:\cats_and_dogs\shots\aa01\renders\ aa01_dog_v04_fill
z:\cats_and_dogs\shots\aa01\renders\aa01_cat_v04_fill
z:\cats_and_dogs\shots\aa01\renders\aa01_fx_dust_v04
z:\cats_and_dogs\shots\aa01\reference
to...
z:\cats_and_dogs\shots\aa02
z:\cats_and_dogs\shots\aa03
z:\cats_and_dogs\shots\aa04
to...
z:\cats_and_dogs\shots\aa50

Or c:\ drive if you work local...

Backups:
Always keep your most important files, or all if possible, in two locations updated. Buy an extra firewire drive. They're inexpensive these days. Archive to DVD when possible.

Wisdom:
"A little time at the head saves time at the tail." -Louis Katz

In other words spend the time at the beginning of a project to make sure you and anyone else on your team follows these conventions to keep everything organized. When it's 4am and you've got 10 shots to composite before you're ready to show the client coming in at 8am you'll be glad everything is organized.

E-mails:
When sending e-mail ALWAYS use capitalization, proper grammar, and punctuation. There's no excuse for laziness. It takes the reader(s) longer to read your poorly written dribble than for you to get used to actually doing what you learned in grade school. Don't think you're too powerful, too busy, or too lazy to properly format your words.

Work Habits:
Don't eat at your desk. Take lunch. And take it at the appropriate time. You need the hour away. You'll be more productive if you get outside and take a walk with your coworkers. The best ideas come to mind when you're not sitting at the desk dropping food into your keyboard.

Instant Messaging:
I suggest you not use Instant Message for work. You'll spend all day on that thing waiting for someone to type a reply instead of making your shot(s) look better. If necessary, use it to get in touch with somebody and then transfer to e-mail for official communication.

Text Messaging:
Do not text message while driving. Even though I do.

RSI:
The most common reason you will develop RSI is a cheap desk with keyboards high up on the desk, and a chair that doesn't go high enough to keep your arms level. Your shoulders will also develop pain in this situation. Solution? Ask HR (Assuming there is one) for a keyboard tray and find a chair that keeps your arms level and at 90 degrees. Ideally adjustable desks that raise and lower the entire desk, adjustable keyboard tray, and herman miller chair will save your life. And again, if you sit all day on IM, that's not helping either. I'll write more on ergonomics in another blog.

Feel free to e-mail me any production pipeline questions and I'll add to the blog.

Comments?

Enjoy,
Louis Katz
Visual Effects Supervisor
www.louiskatz.com

1 comment:

John(ny) D said...

Hey Louis,

I had printed this entry out a couple months ago and just got around the reading it. Quality advice. Thanks for it!

Also, thanks for speaking to the Missing Pixels group at Academy of Art -- you're always welcome back!

Best,

John D.