Guillermo Moreno and Emilio Serrano talked about their Mandalorian animation, inspired by the series, explained the workflow behind the project, and told us why they picked Unreal Engine 5.
Hola, I'm Guillermo Moreno and I'm currently working as Lead Level/Environment/Lighting Artist at Saber Interactive. I've worked on games like Call of the Sea, Gylt, and last year I joined Saber Interactive to develop Evil Dead: The Game.
Hi! I’m Emilio Serrano and I’m a Senior Animator working at Studio Gobo, located in Hove, U.K. I have been working for pretty much 28 years in video games developing titles such as Black and White 2, Fable series, and I am currently busy finishing Hogwarts Legacy.
I decided to create the Mandalorian model during the lockdown because I had a lot of time and I needed to have my mind clear and disconnect from the news about the pandemic. The model took me several weeks to finish, in the free time I had left after work, mainly with the intention of improving my real-time modeling skills. I collected many references of different discarded concepts from the Mandalorian series, armor, clothes, also the equipment that this character wears during the first season of the series, etc.
When I finished the model I spoke with my friend Emilio Serrano about the possibility of making a short tribute video of Star Wars and The Mandalorian. We made a small storyboard of what happened in this video etc. I prepared different environments, one in Hoth, one in a Canyon that tried to simulate the Tatooine planet, and another in Nevarro, the planet that appears in the first season of the series.
Finally, I decided that the best environment to do this video tribute would be Nevarro and it was reflected in the storyboard.
As the project progressed, I needed a PureRef to collect all the references (characters, moods, lighting, weapons, etc). I decided to use PureRef because it is a great program for organizing references. Everything that I thought could be useful in the project.
In addition to this compilation of images for my references in PureRef, I've also created a folder where I was keeping more resources than I thought could be necessary, such as ZBrush brushes, alphas, materials for the texturing part in Substance 3D Painter, materials that I did in Substance 3D Designer, different simulation in Houdini, etc. This folder weighs 500GB.
I´ve prepared different resources for months, Substance Designer materials, environment assets, Houdini simulations, etc, but unfortunately, this project needs to take a break, because we were very busy at that moment.
This project was waiting for us for half a year. During this time, I continued working on my personal project and started another small project in my spare time after work. During this half a year I was focused on my project, researching information, learning programming in Python (that for different reasons I needed to postpone), learning different VFX programs, reading a lot of history books, sci-fi, etc, and The Mandalorian… well… continued waiting for us.
But in September of last year, The Mandalorian Season 2 Trailer arrived. Honestly, when this trailer was launched, I didn't feel like continuing with this project. I spent a lot of time working on it, trying different techniques to resolve specific situations of the storyboard and the general mood of the environment, and I was so focused on my personal project that for personal reasons I needed to do it.
But, one day after a long long day at work I decided to work on The Mandalorian project again and it was when I modeled Grogu. This character in our storyboard only appears at the end of it and you could only see his hands.
One more time, I needed a PureRef to collect all the references. When Grogu was ready, it was time to start with his poor hair. For this, I used Maya with the Ornatrix plugin. Normally, I work in 3ds Max, but I like to use different 3D software to learn different techniques.
At the beginning of the creation, I thought I did Grogu's hair with the hard cards technique, but finally, I preferred to export a groom file and tried to use it in Unreal Engine 4.
The first test was an absolute disaster, at that moment The Mandalorian project was in Unreal Engine 4.24, this version had support for these types of files, but with many problems (experimental support).
One more time, this project took another break, because we continued to be very busy. In my spare time, I redid part of the environment and Migrated the project to a more modern version. Revised the whole lighting, dressing and tried to change the horizontal of the environment, because I thought that it needed a new style, oppressive and more clear with the route that the Scouts will follow. In other words, I tried to feel like continuing to work on this project.
When we started this project, the environment was a small area where our intention was to have a small confrontation between the Mandalorian and Scouts, a small area where both Scouts and the Mandalorian steal one of their Speeders.
But after a lot of tests and looking for different general moods, the environment has a land area 10 times larger than originally planned.
For this reason and after many problematic tests with draw calls and performance, I decided to make part of the environment directly in Houdini, because, if I wanted big cliffs at both sides I need cliffs bigger than the actuals. When the environment was created, Megascans didn't have a big library of cliff assets. If this project were developed now, it's possible that I could use the Megascans assets to make the route that I wanted.
Creating the route/cliffs was an awesome experience because I normally used Houdini only to make small VFX, but never to develop big procedural systems. And after a lot of time researching information about the best method to do it. In this process, I learned a lot about Houdini and now it's one of my principal programs for prototyping landscapes, etc.
With the procedural cliff ready, my next step was texturing it with Megascans surfaces. Due to the ambient of nevarro being a Volcano, I need to modify textures with Quixel Mixer. The result looks nice and very realistic. Obviously, these cliffs have a lot of polygons to use in Unreal Engine 4. I reduced its polycount, but it lost resolution and detail.
And now arrived the moment to think about using Unreal Engine 5.
Would all of these materials be working in Unreal 5? Well, the answer wasn't simple.
Is it working? Yes. Is it working well? Not really. Why? Well, the migration was perfect, but, unfortunately, I have many problems with the Landscape Material (tessellation at this moment in Unreal Engine 5 is deprecated), all of the VFX was broken, I have strange lighting effects, etc.
Another problem that we had was that Emilio and I shared the project and for an odd reason the entire virtual texture disappeared or needed to be reconstructed every day.
Well, many of these problems are absolutely normal, because when you change the engine, your gift is problems and retakes and now Unreal 5 is in Early Access. Many of these problems were resolved in a few hours, but the specific problems from the Engine, unfortunately, were not.
Finally, We decided to work locally. I completed materials, characters, environment, lighting, dressing, VFX/TechArt, 3D, etc and Emilio would complete all the animation, skinning, and tech animation (testing groom with Grogu, alembics, etc).
My technical animation side is somewhat “limited”. I can do rigging, but I don't have much scripting expertise, so for self-sanity, I opted for using mGear as a rigging framework.
mGear, amongst many other things, allows me to combine guide components to create all sorts of rigging. This way rigging up characters, props or anything is way less tedious and way more robust and sensible than getting rigged everything manually.
On top of that, mGear is fully in-game friendly. For this project, like pretty much anything else I do, I kept joints as the main deformers, so it was very easy to export to fbx and get into unreal. Skinning influences are up to 4 bones per vertex.
Usually, props are mostly FK rigs, super straightforward to set up and also to animate.
I used Maya game exporter to export all characters, props, and simulations to .fbx. This workflow properly setup is a crucial time-saver. considering we do iterate a huge amount of time from content creator packages to Unreal.
Cloth Simulation, Hair, and Physics
Once the animation was signed off I used nCloth for simulating the Mandalorian’s cloak. Nucleus and field solvers were added to create the right simulation along with the camera view. Then I exported it as an alembic and imported it as geometry cache in Unreal.
For the Tie-Fighter down cables simulation, I used Dynamic Curves and Spline IK bones in combination with a Nucleus node for adding the wind and turbulence to them.
Grogu’s hair is an Alembic imported as grooming assets into Unreal. Unreal pretty much does everything for you. Just import it and bind it to the skeleton.
X-Wing Blowing Up
I used Maya’s Bullet Physics Solver to simulate the X-Wing explosion. Once the model was fractured and animated I just selected the pieces and applied an active rigid body to them. I keyframed the kinematics to dynamic properties in the channel box to start simulating pieces, playing with the offsets to get the simulation delayed and the pieces attached together. I added a solid sphere that collides with the ship and physics and inertia did the rest.
This is when the fun gets started! I have always deeply loved Star Wars scout troopers and speeder bikes since I was a child and watched The Return of the Jedi. I managed to get the models and rigged them just for fun. Guillermo and I have been collaborating with each other since we met working together at Tequila Works, so when he mentioned doing something Mandalorian related I got quite excited and we got straight into it.
We had a quite long and complicated storyboard Guillermo came up with.
I started working on the first 3 shots that involved the scouts and the bikes. Working out the cameras and blocking the shots.
mGear is able to perform +30 FPS with several characters and props in the scene. I had a blast working out bikers and scouts animations.
These 3 first shots came up quite nicely, and they evolved a bit from the rough storyboard to the final sequence. We got busy with full-time jobs and the project got stuck for quite a while.
The scope of the project was maybe too ambitious and Guillermo commented on the possibility of doing a teaser to show off what we had and also the Mandalorian and Grogu models.
As an addition to the first 3 shots, we decided to include a shot with both of them, but nothing too elaborated, just a teaser. Around that time, I spotted a wonderful concept of Christian Alzmann showing the pram as a backpack.
I thought it could be a nice idea to have that in the shot and this way introduce the characters. To keep it simple I used walking and coming to a stop mocap from a library and applied it to the mGear rig and tweaked on top as usual.
To keep it even simpler, I worked out the camera from behind the character, quite a close-up framing, not showing much of the character’s feet so I didn’t have to worry about cleaning up the steps.
The goal was showing off Grogu in the pram, which is getting open before the Mandalorian turns around and alerts about the scouts approaching.
Guillermo was quite keen on ending with his iconic pose like many times watched in the TV series.
The project was a bit of a roller-coaster: we underestimated the scope of it. Also the “unexpected “ issues we faced after migrating to Unreal Engine 5. We had so many problems with usual tasks, like re-importing animations, and also, Guillermo ended up having to re-import all my work, as we couldn't share the project as we did in previous ones.
However, we had such a blast creating this little Mandalorian tribute, hoping people will also enjoy watching it. We might even carry on with the storyboard next year…” it might be right the way” of starting 2022. Cheers.