Madcap adventures of robots on Mars!
I have been informed that this video is being shown to students as an example of what UnReal can do. That is very kind, so I will endeavor to make my first experience in Unreal Engine, a learning experience for someone else — even if it is a cautionary tale.
First the self-congratulations are in order (I might hurt my arm patting myself on the back, so call a doctor).
I recently attended the UnReal Engine Guided Training Program – in which many lectures were given, but the student was very much on their own motivation to finish a final project for the course. After 26 years of making other people’s art come to life — this is my second film.
Built over a two week period of nights and weekends, original environment, character design, sound effects and music depict the antics of robotic rovers on the red planet — all while learning the software, and several other software packages. At one point the power breaker for the studio exploded due to old wiring, and the entire project rendered on solar power, and Tesla batteries. Sound mixed in a hybrid car for power and air conditioning.
Long obligatory credits gave me the opportunity to mix a little more music, and introduce a logo for the Red Rovers. The machine used to render the animation was a gift from Bill Taylor A.S.C who recently passed away.
Software: UnReal Engine 4.26, Autodesk Maya, Adobe After Effects, Adobe Audition, Adobe Premiere, Adobe Photoshop, Apple Garage Band and Gaea.
1. General approach
There are many brooding, ethereal, or sometimes just plain weird short films in the market. I felt we needed a cartoon.
Due to the constrained time limits to produce this short subject, I opted to animate as little as possible, and setup scenes with many cameras, and reuse animation. This is possible with the UnReal Engine sequencer’s use of TAKES. The animation rig included several bones that were used as mounting positions for cameras. Over the shoulder shots, closeup wheels, front angles – the kinds of camera mounts you may see for a racing car movie. In some ways the short is shot more like a documentary, than master-shot, and closeup kind of editorial coverage. The tension is built through movement and editing.
The clock was ticking, so I decided that a finished story was better than perfect pixels. I would remove as many errors as I could in the time that I had, but embrace the random element of chance, and move forward.
The environment base form is built using Gaea software – a terrain modeling environment with procedural nodes, that can simulate all forms of terracing and erosion, and create a very natural look. I built the layout with the narrative in mind, also taking into account that I would be using assets from unReal’s Megascan library to flesh out the details. Again, time was short, so any advantage using real scanned assets was good.
The overall look of the scene is not the traditional depiction of Mars, but rather based on more recent true color photographs of the Red Planet from JPL – which more closely resembles the stark beauty of Southern Utah.
The blowing dust is a purchased asset from the UnReal Marketplace — several types of blowing dust, wind, and sprite-based environmental particle systems in the package were strewn throughout, and also used for emission from the Rover tires. It would have been better to get some more detailed dust, and perhaps better lighting on the particle systems – but in the given amount of time, the movement and density variation of the exponential fog was more important. The basic UnReal Engine sky shader used to put whips of clouds in the sky for visual interest, but their coloration pushed toward the reds and browns of the dirt, to suggest that they’re part of a larger dust storm, as opposed to water vapor.
The rover began as a little sketch I made one Sunday in 1997. I had always told myself that I could make it into something someday – and this seemed like a good time. Modeled in Maya, and broken out for simple material texturing, as opposed to complex UV layouts and texture maps. The characters do have a UV layout (as a precaution) but it was not needed in this case.
The new rover materials were downloaded from the Marketplace – car materials from Epic. I had already reinvented the wheel (sort of) why reinvent the materials? I am not fully pleased by the reflection in the glass – I even tried full raytrace glass, but never got a fully satisfactory look – but tick, tock goes the clock. Embrace the unexpected and time consuming challenges and move forward!
The JPL rover was downloaded from the UnReal Engine Marketplace – more on that later.
My original hope was to rig the characters as actual driving vehicles, and pilot them around the environment. I could record the actions, and use those for each of the scenes. Unfortunately, rigging a unicycle-style robot is a lot harder than the standard four wheel car rig you are familiar with in game engines. Often resulting in a hilarious face-plant into the dirt.
I then decided to animate the rover’s basic movement in Maya software, and mix animation layers together in UnReal. In this way a simple head turn could be used in several different animation cycles – but unfortunately not. UnReal is at its basic, a game engine, and does not support standard animation layers without some extra rigging (at least in version 4.26). Given the time constraint, I instead opted to animate several motion cycles in Maya with its own animation layers, export that animation to FBX, and blend them together in UnReal in conjunction with position and rotation offsets.
I did an initial test of the one robot zig-zagging around, and then another with several camera cuts to test the overall approach. Very happy with the result, even if they were out of focus — time to move forward, even if blearily at 2:00am!
Twenty different animation cycles (i.e. moving forward, moving forward with head turned, or moving forward with a wheel up, etc) were blended together to create all the animation. For tighter ground interaction, I used one of the closeup wheel cameras to manually position the up/down vector to some reasonable contact point. Slightly penetrating the ground introduced the visual effect of tire compression, where none existed.
The JPL Mars rover is purchased from the UnReal Marketplace (and given full credit in the film, if you want to go get it), as part of a Mars driving simulation.I imported the model to my terrain, and started to record animation while I drove around — very slowly. I wanted the rover to look as if it had been there a long time, and was a bit rusty, so I made sure to randomly turn left and right in short bursts to introduce some wobbliness to the performance. In all, 6000 frames were recorded, and exported to Maya — where the animation was compressed to get the rover up to 30mph in the environment.
In the process of modifying the curves, a couple of the wheels inherited some bad rotation, and would occasionally flip. I decided embrace the error, as it gave the wobbly robot some extra cartoonish life.
It is a real time game engine, so I would constantly play back the edited takes, as I was animating. That was nice, as I did not have to render, assemble, note, and change something to evaluate it in context. I could simply modify the camera or character and get near-immediate feedback. I would then render the takes as a 1920×1080 quicktime movie to review at slightly higher quality in about twenty minutes.
Final frames were rendered at 4K in the Movie Render Queue as 16-bit EXR files in about five hours, and pushed over to Adobe After Effects to tweak a few frames, and add overall color correction and grain to the images. Final editorial assembly was in Adobe Premiere.
I did try the raytrace engine, with the whole project rendering in Twenty hours — but the power outage in my home nixed that really quick.
The sound effects were a mix of elements from a free sound library, and foley track I made while watching the quicktime movies while the main frames were rendering. The sound of the racing rovers is actually inspired by Ben Burtt’s work on Star Wars TIE fighters – using a tire on a wet road mixed with an electric motor (pitched-up higher, and flanged) and a slowed down, pitch-altered screaming elephant. Why not make an homage to such great design?
The foley track, sound effects generated live while watching the film, consisted of random metal parts jangled in a stainless steel pot, fluffing towels for a wind effect, and blowing and whistling over the top of the microphone. All assembled in Adobe Audition.
To avoid any copyright issues for music, I opted to mix my own music with loops, and a few keyed instruments in Apple Garage Band. The custom rhythm EDM mixer, and loops provided plenty of different elements to composite together, and build a driving intensity – with a few random wild sounds from electronic instruments to give it texture. As mentioned before, due to the power outage, this was mixed on my laptop, late at night, in a hybrid car. The lack of engine noise and addition of air conditioning became a necessity during a nighttime 94˚f degree heat wave!
This is my first experience with UnReal Engine, I was learning as I built – so my “time on the box” is short. However, I did gather a few first impressions:
The UnReal Engine is unusual to film production eyes. The nomenclature is different, and there are a lot of hidden buttons and methods you may have to know to work around any problems you come across. Luckily in the internet age, you can find answers to many of your questions fairly easily. I will be the first to admit that the experience and interface feel a little clunky, but that there is hidden in it deep power I have yet to explore.
The ability to render quickly, compared to other applications, is by far the most important part of the experience. It allows you to stay in the creative moment, and find the image you are looking for, without fussing around with 100 render machines. That is its greatest strength. Although you can generate high quality final pixels, and there is a need for that, that search for ultimate perfection often stymies people from producing anything.
You have a real-time, or near real time render engine in front of you — when it comes to making a short film, don’t waste time perfecting the frame, get on with it!