Technically, Second Life is an amazing platform for the creation of machinima, allowing you to create avatars, animations, sets and lighting in-world, in addition to containing tools for the capture of video to your hard drive. Nonetheless, actually getting the system working at a decent level takes a fair bit of research which I wanted to distill here.
I will preface by saying that I play Second Life on a 17″ iMac with a 1.83Mhz Intel processor, 1GB of RAM and 250GB HD. Most of what is available on the web as to the creation of machinima refers to creating in Windows, but I truly wanted to take advantage of the best of both worlds: the speed of Second Life on Windows combined with the video capture tools available for that platform, while using the excellent editing tool iMovie in Mac OS X.
Continues after the break…
While technically you can capture video from within Second Life, the truth is that your frame rate suffers as the client (at least on the Mac) attempts to render both your viewer screen while scrambling to also record to the HD. A better solution is to record using an external video capture application, of which FRAPS ($37, Windows only) is generally recognized as the best in class; an alternative for Mac OS X is SnapzPro. The documentation for FRAPS is basically crap :), providing much of the motivation for this tutorial.
To use this, I’ve installed Boot Camp with Windows XP on my iMac, which gives you a full-performance Windows environment under a dual boot configuration. I also have Parallels, which is awesome and allows virtualization of Windows in a Mac windows, but it doesn’t play nicely with video-card heavy applications like Second Life, so there isn’t really an alternative to Boot Camp to get full Windows performance.
There are a number of tutorials on the process of making machinima in SL. I won’t go into detail on the actual process, but I will provide tips to capture the best quality video under this configuration:
1. Running Second Life under Windows, I set File > Set Window Size to 640 x 480.
2. Making sure that FRAPS is running, hit CTRL + ALT + 1 to hide the UI in Second Life (this assumes you have the debug menus – Client and Server – up; if not you need to his CTRL + ALT + D beforehand).
3. Then hit F9 (the default video capture key in FRAPS) to start the capture to HD.
4. Use either alt-cam, Followcam, or the Alt-Zoom camera to take the shots that you need.
5. When you’re done filming, hit F9 again to finalize the video capture.
6. FRAPS on its default settings will save your video in a file called “c:/FRAPS/SecondLife yyyy-mm-dd timecode.avi”.
Now you might think that you could just run with that .avi file and edit it in iMovie. You’d be wrong, though.
FRAPS encodes video in its own proprietary codec, which is essentially uncompressed. If you try to open the file in OS X, it simply will appear blank. In addition, FRAPS-generated files are *huge*. So in order to work with the generated file, you’ll need to encode it into MPEG-1, which OS X can read (in other words, you can open it in iMovie). Here’s where things get interesting.
Encoding the video
The FRAPS documentation mentions both VirtualDub and TMPGEnc as acceptable encoders. In practice, neither is in any degree user-friendly, and I could never get VirtualDub to output any filetype that would be acceptable. TMPGEnc is hampered by the language barrier, as its developer is Japanese, and the documentation might as well be. But I was able to create my first acceptable .mpg file using TMPGEnc, so it takes the prize.
Based on a *very* helpful TMPGEnc tutorial, I was able to reconstruct a way to encode the file that maintained the quality of the shot video as well as the image size. TMPGEnc’s default wizard automatically shrinks your 640×480 video down to 352×240, which is significantly smaller than your original shot video, which would be premature given that you haven’t started editing yet (you want to maintain as much quality as possible until the final output). So cancel out of that wizard; we’ll do this the old fashioned way.
This is the main window for TMGPEnc. Key settings here are the video source (which should be your FRAPS video capture file — here I already renamed it), the output file name (it will probably originally not show the .mpg file extension; we’ll fix that in the next step when we select the MPEG-1 stream type), and the stream type (choose System; I have no experience with recording audio in SL, so that’ll be subject for a revision of this tutorial if necessary).
Press the Setting button to continue:
This shows the settings that I decided on through trial and error. I select MPEG-1 video, in order to import to iMovie, and I preserve the size of the original capture in order to maintain as much quality as possible.
I played a bit with the Rate control mode, but found that for our type of video it doesn’t make much difference. I found that I maintained best video quality using the Constant bitrate (CBR) setting, although I increased the bit rate from the default 1150 to 1500 as I found I was seeing some pixellation otherwise. The resulting filesize increased about 2MB for my 45 second video clip, so based on your resources and preferences you can choose whether to stick with a lower bitrate or not.
In the TMPGEnc tutorial, there was some discussion of whether Motion search precision made much of a difference. As it had no impact on filesize (but did increase rendering time), I set this to High quality (slow).
Let’s proceed to the Advanced tab:
This was tougher to find. In the wizard you have the option to select the range within the clip that you will encode; this is useful to not export the extreme tips of the clip (like where you hide the UI or, as I evidently didn’t do in my clip, detach your HUDs 🙂 ), which will decrease your filesize.
If you double click on Source range, you’ll receive the following window:
Move the slider along the time line to where you want your clip to start (remember to leave some buffer in order to have options for editing later), and then press Set start frame. (This is counterintuitive to iMovie users, where to set a clip you would move the tiny marker under the timeline; of course, maybe that’s just me 🙂 )
Move the slider to the endpoint of the video, and click Set end frame. Press OK to go back to the Advanced tab. From there, double click on Noise reduction.
Again, following the tutorial, I basically set this to the defaults (Still picture: 20, Range: 1, Time axis: 20). I found again that this increased render time, but reduced the pixellation I was observing in my tests. Click OK to return to Advanced, and OK again to exit Settings.
Again, in the tutorial there was a recommedation that in order to improve render times, it’s worth setting TMPGEnc to When active – High priority, as shown above.
Assuming you’ve followed all the preceding steps, we’re ready to render. Congratulations! Click Start in the main window, and leave your computer alone for a while. 🙂 When it’s done, you will have a .mpg filetype in the directory you set. Remember it for the next step.
Editing your video
Now it’s time to quit out of Windows, and restart your Mac in OS X. I’ll wait 🙂
Locate your file in your Windows hard drive partition in the Finder. It’ll probably be here:
Drag the file to iMovie to get started editing, or save it to your OS X hard drive to work on it there.
You’ll have to break your shot into clips in order to have pieces to edit together, unless you’re using a single continuous shot as I did in this example.
I’m sure there are many tutorials available via Google for using iMovie, so I won’t get into that. It’s fun to play around and learn to make your titles (frustrating!), transitions, and audio, so just enjoy yourself. Hope you have a while 🙂
Encoding your finished movie
When you’ve whipped that video into shape and are ready to save it out, you’ll need to encode again, but this time to Quicktime (.mov) from within iMovie. Although iMovie is a bit more user-friendly than our old friend TMPGEnc, it’s still a bit technical preparing videos for the web. I found the guidelines at Vimeo quite useful, although a bit out of date and not entirely accurate.
Here are some tips that correct those inaccuracies:
From the Share menu, select Share… and select Expert Settings. Then press the Share button.
Type in a filename, and then click Options.
You’ll want to set your options to the following values:
I played around with the video settings offered by Vimeo to try to reduce the file size on my first video, as it was greater than the 30MB upload limit that they allow (it’s just as well, because I wouldn’t have been able to share it here on my blog :/), and found that the settings they offer are the best quality vs. filesize options.
Vimeo’s indication for sound encoding is wrong, though. If you use the QDesign Encoding 2 codec they indicate, you’ll get warped sound on your soundtrack. I found using AAC at 96 kbps offered very acceptable quality at only slightly increased filesize once encoded.
Once your settings look like mine, hit OK, and then Save from the Save exported file as… dialog box. Go get a sandwich.
In another town. It’s going to take a while. 🙂
Sharing your video
I’ve played around with this a bit too. WordPress.com limits my embedding options to YouTube, Google Video, and Grouper. I find YouTube’s video quality severely lacking, so I went with Google Video, although if I had a choice, I’d use Vimeo because of the outstanding video quality I’ve seen there. Hopefully it will soon be an option here too.
Go to Google Video’s upload page, log in with your Google/Gmail account, and get ready to go get another sandwich; hope you’re hungry. 🙂
YAY!!! You’re done! Congratulations! I knew you could do it. 🙂
The finished product
Thank you for reading this tremendous ode to obsession-compulsion. 🙂 It turned out a great deal longer than I thought it would be, but I hope it works out for you. Please let me know if you find any inaccuracies or potential improvements, and I’ll put ’em in.
This is the demo reel I shot for this tutorial, where I played with Alt-Zoom’s Machinima Starter Kit (fun! a bit frustrating, too), and over-produced it in iMovie, as apparently is my directorial style 🙂
Please ignore the embarrassing moment when my hair and neko ear pop into the shot… trust me, I learned a lesson about bald cinematographers that day! 🙂