Unreal Filmmaking: Production Tracking for the Solo Animator

Anthony Koithra
Locodrome
Published in
8 min readDec 12, 2022

This is the second diary entry on production for Project Rogue (you can read the first here, and all about pre-production here and here) and will focus on virtual cinematography inside Unreal Engine 5.

Last week I put the final cut of Rogue Squadron up on YouTube — you can watch the whole thing below. Despite a million things I still want to tweak, you have to ship these things at some point — I’m happy with where it landed and I’m excited to move on to the next learning exercise.

The single most common question I’ve gotten from viewers is “How long did it take to make that?” — and for a while I didn’t have a very good answer. I knew I’d worked on it for 3 to 4 months, but nothing more precise than that. So I spent a little time looking at calendars and file creation dates, emails and Slacks etc. and eventually worked out that it had taken 13 weeks total over 4 months, from concept to final cut — not counting some travel weeks in the middle there.

August was mostly pre-production, and September-November was production, with the bulk of footage getting done in November. You’ll notice an exponential increase in speed of production over time. This makes sense given I was spending less time figuring things out and more time getting things done, but the scale of the increase was still surprising to me when I saw it laid out. As I add more technical challenges with each film, I expect some version of this curve to repeat.

Filmmaking is a team sport, as any good filmmaker will tell you. But until you can afford a team, and really know how to make full use of them, you wear a lot of hats and do your best to not screw it up too badly. Part of the learning exercise for me on Rogue Squadron was to understand all the parts of the pipeline and workflow, and one of the roles I came to appreciate most was that of an organized Production Manager.

There are SO many different elements to keep track of during the production of an animated film, that a certain level of structure and organization is essential at every level — let’s talk them through one by one:

File Structure

I stayed pretty organized by folder, but didn’t bother much with file naming conventions

An Unreal project is a large multi-GB folder with a bunch of files and folders in it — the one I spent most of my time working in is the Content folder. Keeping this organized from the start certainly made my life easier — that meant moving assets around as I imported them. Note that when you ‘Add to Project’ from the Marketplace, the folder is dumped in the Content root. Naming and numbering folders by asset type made it easy to jump in and use the context search to find what I needed quickly.

There is a standard naming convention that you are supposed to use in Unreal, primarily based on prefixes (e.g. SKM_ for SKeletal Meshes, MI_ for Material Instances etc.) — which makes total sense and is probably a very good practice. I was somewhat inconsistent with this — all my cameras and sequences were neatly labeled CAM_ and SEQ_, but my meshes and materials were all over the place. I understand that the convention is useful to keep from accidentally editing the wrong asset, such as a Master Material instead of a Material Instance, but I did not have significant trouble tracking asset types since UE5 has the type as a subtitle in the tile thumbnail anyway.

Maps & Outliner

Collapsible folders helped keep the Map organized

If the Content folder is the prop warehouse, the Map (or Level) is the film set. I originally set up two maps for Rogue — one Interior and one Exterior, as I thought it would help with keeping the assets minimal in each and the scenes from getting too slow. Turns out that was totally unnecessary, and for my rather basic needs, just one Map with planets, hangars, X-Wings etc worked just fine — even though the planets were 100k kilometers away. WorldPartition and selective auto-loading help with this too.

Keeping things organized in the Outliner is important too, because it gets crowded quick. Especially with large kitbashed environments, and lots of exponential duplication, foliage scattering etc. you can quickly have hundreds if not thousands of assets in place. Having hundreds of hangar floorplates and other assorted machinery in an Environment folder that could be collapsed away was very helpful. A handy trick I learned was that a Shift-LMB click on the Map root arrow collapses all folders fully, including sub-folders, allowing you to drill down easily to where you want to go — and this works recursively in any sub-folder too.

Reference Tracks

Since I was assembling in Resolve, that was the only place I really needed the reference track

I was recreating an existing sequence of shots, so I was quite hung up early on about how to have the reference video inside Unreal so I could see it playing while the shot played, for easy comparison. This is fully possible, using a Media Plane and a reference camera — although with large high-definition video files, UE5 has a habit of crashing when you scrub the playhead too quickly.

It also turned out to be largely unnecessary — for a single shot where movement must be matched exactly, it is useful to have the playback synchronized and visible as you animate the shot. But since I was more looking to match the mood and pace, all I really needed to know was how many frames the shot was and the kind of action in it, in order to match the audio effectively. I ended up tracking all this in a spreadsheet, and that worked just fine.

I did however, have the full original video with an overlay of numbers to keep track of the shots in a video track in Da Vinci Resolve, where I was assembling the shots. This was essential to time and match the audio, but also to see the pace of action over time and stay in sync.

Production Spreadsheet

A simple spreadsheet was the right balance of organization and flexibility (for me)

Although I started tracking shot length and action with Post-its (that was lazy — not advisable), about 20 shots in I set up a properly organized spreadsheet with shot thumbnails, numbering and checklists for each stage. This really sped things up since I wasn’t getting confused about which shot was which (Unreal Sequence thumbnails don’t match Camera POV, so its impossible to tell), and I didn’t have to keep switching brain mode between production tracking and animating.

Perhaps most helpfully though, it allowed me to feel a sense of continuous momentum and progress. Checking things off a list has always been very gratifying for me, and this ritual at the end of the day always felt good. I did some rudimentary calculations about effort per stage, and had an overall % completion formula in one of the cells — watching this slowly grow week to week really helped me push forward.

As I started sending sequences out for feedback to Deepak, the sheet also helped me keep track of really specific shot by shot feedback, and things that I wanted to fix myself. Having a targeted place for notes at the shot level, and a way to remind yourself that a shot is either locked or needs work, lets you really focus on getting the work done vs. being unsure of what needs to be done.

In the clean-up and revision process there were also a number of standard things to keep track of, like Focus Debug, Camera Shake and so on — running through the shot checklist in my sheet for this made it really easy and gave me peace of mind that I wasn’t missing anything.

There are probably more organized and professional ways of doing all this, but for my needs, a Google sheet worked just fine.

At Shot Level

Each Sequence contains one Camera, and all the Spawnable actors that are unique to it

I constructed each of the 62 shots to have an identical structure in order to stay consistent — but there is no “correct” way to do this. A lot of the Unreal tutorials talk about multiple cameras and levels per sequence, and make a big deal out of being able to do everything within the engine, including assembly and color correction. I came to find this (A) unnecessary, as NLEs like Premiere Pro or Resolve are way better at stuff like that and (B) misleading, because trying to keep everything in engine slows you down and adds a bunch of pointless complexity.

Deepak’s philosophy on this, which I’ve adopted fully, is to treat Unreal like a camera that generates raw footage, which can then be corrected and assembled in Resolve. This means little-to-no color adjustment, bloom, flares etc. in engine — all that stuff gets done in post. It keeps things simple, and each shot remains nice and light.

Each shot in Rogue Squadron is contained in its own Sequence, numbered for the shot. Each Sequence has just one Camera, numbered identically to the Sequence. Most of the objects in the frame are persistent (or Possessable in Unreal’s terminology), but the focus elements that are different from shot to shot (like the human characters, or moving X-Wings) are Spawnable, meaning they only exist when that Sequence is loaded, and do not carry over from shot to shot.

Big Takeaway 1: Figure out how you want to use Unreal in your workflow— as a camera, as an all-in-one tool, as a production hub — all valid approaches with positive and negatives. There is no “correct” way — do what works for you.

Big Takeaway 2: Production tracking and organization is a very different headspace from animation flow — setting aside structured time for the former allowed me to spend more effective time in the latter. Switching back and forth a lot wastes time and bandwidth.

Big Takeaway 3: Making an animated film is a painstaking, slow, and frequently frustrating process — it is important to feel a sense of progress to stay motivated. As unsexy as it is, good production tracking will do that for you — and also give you a kick in the pants when you’re getting slow.

This is the last Studio Diary entry about the making of Rogue Squadron. I may make a short video about it in the near future, but I am excited to move on to character animation, and in particular facial animation. My next learning exercise will have a lot of custom character work and I’m pretty excited about it.

As always, if you want to follow my progress more closely, I’m posting dailies pretty regularly to @locodrome on Instagram.

--

--

Anthony Koithra
Locodrome

Filmmaker. Strategic Advisor. Former MD & Partner at BCG Digital Ventures.