Multi Cam Batch Render Setup

Here is a little workflow tip that saves time and lets you sleep while rendering a batch of images.
Lets say you have a scene with multiple cameras and you want to render them all without selecting every camera manually.

multicam-batch

Follow up:

So we have made a scene with 4 cameras and want to render them all.
Start by adding a "Stage" object to your scene, The Stage object is used to define witch camera is doing the render.
Add an xpresso tag to your hierarchy and open it.
Drag the "Stage" in the xpresso editor.

Batch_render_settings_01

Add a "Link List" node before the stage and connect it to the "Camera" port. Then add a Time node set to Frame and connect it to the index port of the Link list node.
Now click on the Link list and drag all your camera in the attribute managers drop zone.
The Time node will iterate between each item in the link list automatically.

Voila that is the whole xpresso part.

Now go to the render settings and set a path to save the images and set the number of frames to render , in this case from 0 to 3 (total 4 frames)

Batch_render_settings_02

Don't forget to set the name to one of the name0000.xxx so the images don't overwrite each other.

Last step is to save the model as a "Save Project..." (that includes all the images used in your textures)
Close the model.
Click on "Batch Rendering..." in the render menu and select the model from your disk then hit OK.

Voila Cinema4d will now render each of the 4 cameras one after the other and you can have some precious sleep or a fresh beer.


28 comments

Comment from: Ollie Lea [Visitor] : 2008-05-16 @ 11:22
I am probably missing something very simple but when i drag the stage object to the xpresso manager i have no camera port to connect the link list to . What am I doing wrong?
Great tip though been wondering how to achieve this for a long time.
Comment from: edj kodiak [Visitor] · http://www.kodiakprod.net : 2008-05-23 @ 09:22
Ollie, the "camera" is under the "object properties" ;)
Comment from: logicalnot [Visitor] : 2008-06-10 @ 00:18
Bonjour,

Cette astuce est tout bonnement excellente ! Bravo ! C'est la fin de la multiplication des fichiers de rendu et de son management ubuesque.

Mais… je patine sur un point. J'ai une animation d'un objet qui se déroule sur 300 images avec 5 cameras qui regarde cette évolution. J'aimerais avoir 5 films de 300 images.
Or pour le moment, je n'ai qu'un film de 300 images dont le point de vue change à interval régulier (toute les secondes).

Est-il possible de modifier l'élément "time"?

Par avance, merci.
logicalnot
Comment from: base80 [Member] Email : 2008-06-10 @ 00:21
Frame number devided by 300 can do the job (I hope)
Comment from: logicalnot [Visitor] : 2008-06-10 @ 00:43
I tried that too. Same result, but with more images.
Comment from: base80 [Member] Email : 2008-06-10 @ 00:44
It actually works for animations, Let's say we need 5 cameras for 300 frames each (the french question above)
Time(frame) --> Math(divide)[300] --> link-list --> Stage
Comment from: logicalnot [Visitor] : 2008-06-10 @ 01:33
It almost work for me. I had the math divider and divide the data type(time) by 300.
But I end up with only the first camera.

So I extend the number of frames by the number of camera (5x300=1500). And it worked half way.
The stage switch from one camera to another every 300 frames… but since the animation end up at frame 300, all the other cameras showed a still/not moving animation.

The end is near… I hope.
We just need something to tell the stage (or C4D) to go back to frame 0 on the timeline every 300 rendered frames.
Comment from: base80 [Member] Email : 2008-06-10 @ 01:38
It is impossible to (re-) launch a rendering, so you will have to make the 1500 frames at once
Comment from: Bill Smith [Visitor] : 2008-06-14 @ 19:24
Isn't it just easier to set key frames for all the different camera views you need? Why go through all of this for just stills?
Comment from: ilkin [Visitor] : 2008-06-26 @ 14:17
Baku
Comment from: chris l [Visitor] · http://yellowidesign.wordpress.com : 2008-07-17 @ 20:00
hey, very cool... I just started learning C4D and i wanted to know if you could look at a model set i am doing for the new radiohead album. I am a motion graphics guy... please comment on what you think, + i have some questions about compositing.....

http://yellowidesign.wordpress.com/2008/07/16/3d-concept-for-radiohead-in-rainbows-album-movie/
Comment from: BaRa [Visitor] : 2008-07-24 @ 22:41
Would be really cool if you could force C4D to limit the number of rendered frames to the number of camera's in the list, and if you could force render settings for each camera. But that would involve at least COFFEE, and probably C++ and the SDK. So Olivier, get to it ;-)
Comment from: base80 [Member] Email : 2008-07-27 @ 16:31
@BaRa: That would involve an effort from Maxon. There are still some settings xpresso can't modify, like the general preferences and the render preferences... And it is a real pity those files are not xml. But who knows, maybe some day xpresso will get the attention it deserves
Comment from: BaRa [Visitor] : 2008-08-05 @ 12:00
No, you misread me. You can do it, but you need either COFFEE or C++ to do it. Björn Marl told me there is a specific reason for not allowing this via Xpresso, and that is that Xpresso is evaluated a render time. With such a setup, you would be modifying render settings during render time, and that might crash C4D.

There's still one modification that you could make, without COFFEE or C++. Instead of making users open the TP interface and selecting the list node to drop in the camera's, you could add user data to the stage object in the form of a link list, and then link that list in you xpresso setup. That way, a user simply clicks on the stage object, and under user data in the AM he can drop the camera's that need to be rendered.
Comment from: BaRa [Visitor] : 2008-08-05 @ 12:04
Sorry, that had to be "Xpresso interface", not "TP interface"
Comment from: base80 [Member] Email : 2008-08-05 @ 13:16
Have you tried to make a linklist (in-/exclusion- user-data) and use it to iterate through in xpresso.
Well it simply can not be done. It should be connected to the "Linklist" node, but there is no way to do that. So I don't know any documented way to use that user data inclusion list, do you?

I actually know an answer to the question and a way to make the in-exclusion list useful for this setup, but haven't had time to document it.
Comment from: olivilo [Visitor] Email : 2008-09-25 @ 09:25
Salut !

J'ai essayé de mettre en place ce tutoriel mais les 2 images rendus sont les mêmes, alors que les 2 caméras ont un angle différent.

Où ai-je pu "merder" ?

Merci d'avance !


Comment from: Andrew Wagstaff [Visitor] Email : 2008-09-30 @ 18:58
I have three cameras set up to render at different times but when i set it up this way it jumps form one camera to another in a random order
Comment from: base80 [Member] Email : 2008-09-30 @ 20:40
The setup has some difficulty to "reset" at Frame 0.
Maybe it helps to hit the rewind button twice or more.
Comment from: roma [Visitor] : 2008-10-10 @ 17:54
*****
ok.
Comment from: roma [Visitor] : 2008-10-10 @ 17:55
*****
wery googd
Comment from: xelix [Visitor] : 2009-04-24 @ 11:37
Hi base80! i understand your tutorial... its great!

but i have a problem... im making an animation for 4 screens, i put 4 cameras with X Overscan for continous action... i need make render for full duration with 4 cameras... any solution?

thanks for your usefull tutorials!
Comment from: base80 [Member] Email : 2009-04-25 @ 21:48
The solution is to devide the "frame" port by the total number of frames (in reals) and feed it to the linklist.
Comment from: Asier3d [Visitor] Email · http://ilustra.eu/2009 : 2009-05-01 @ 23:23
****-
I don´t know anything about Xpresso module, and maybe it´s a good trick if you have a lot of cameras, but i did it the last week without any xpresso.

I simply putted a stage object and changed the camera and the backgrond animating those channels. Then in the render settings sellect the range of frames that affect the wanted cameras and it´s ok.
In my project i needed 5 cameras and it wasn´t hard. Maybe if i need 50 cameras in the future i´ll try to use your system. ;)

Congrats for this great blog. I knew it through twitter and it´s simply fantastic
Comment from: Jakob [Visitor] : 2009-12-03 @ 03:23
****-
Hello,
at first... great tutorial!

But I have some problems. How can I set up, what camera is active at frame 10, for example.

Thanks.
Comment from: base80 [Member] Email : 2009-12-03 @ 03:28
Probably by simple thinking and by resetting the timeline. This trick is made to use multiple cams so that you don't have to think.
Comment from: orangelizard [Visitor] Email · http://www.orangelizard.co.uk : 2009-12-19 @ 01:01
*****
Very helpfull tutorials. The above works well. Although I was trying to find a way the render just one single frame with 8 different cameras. I have tried changing the expresso but have yet to achieve this. Do you know of a way?
Comment from: victor [Visitor] · http://myhomepage.selfip.net : 2010-07-06 @ 21:34
*****
you like beer a lot mate (~.~)
keep up the goodwork

Leave a comment


Your email address will not be revealed on this site.

Your URL will be displayed.
PoorExcellent
(Line breaks become <br />)
(Name, email & website)
(Allow users to contact you through a message form (your email will not be revealed.)
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)