Wednesday, June 26, 2013

Visual Effects in The Last of Us: Hometown

VFX TLoU
Spoiler alert!!!!!
The visual effects in The Last of Us consisted of a wide variety of things ranging from subtle ambient wind effects and insects to in your face molotov explosions. Each artist typically will own a handful of levels and will be responsible for creating the effects needed for that level. Additionally we have to create gamewide effects such as weapon effects and melee effects based on animations that happen all over the game. So just like I did with Uncharted 3 when we finished I'm making some videos and posts detailing what we worked on in the levels we were responsible for but I will also be going more in depth in later posts on some gamewide things that I thought were interesting struggles and the solutions we came up with to make it all work. I really want to shed some light on how we go about creating the effects we do and talk up my teammates because they are amazing. So in short I'm going to be creating a series of videos I'm just gonna call "The Visual Effects of The Last of Us".


Hometown
Originally when I was told how this level would play out I thought "That's cool I can handle this.". Wrong. But I'm super lucky to have the people I do to work with. Keith Guerrette really stepped up and helped to get this level done. The effects in this level were much more chaotic compared to other areas of the game. This is where the "Uncharted" in me went wild with explosions and sparking wires. I know a downed power line wouldn't spark like that but just go with it.

Joel's House
The first thing I worked on was the burning house on the side of the road and the barn. I used this area to prototype the fires I would use in other areas of the level. I used a lot of those concepts I worked out there for the burning buildings in the town. From there I created the explosions seen upstairs in Joel's room and the fire effects in the video with the reporter on screen. It's funny because I spent a good amount of time on that even though I knew it was going to end up on a small screen in the game. It's also worth pointing out that one of our rendering programmers Ke Xu worked out a way to increase the resolution of the runtime reflections without increasing the cost to render them. So the smaller the object with a reflective material the higher the resolution of the reflection. I constantly would joke with him saying "Reddit will love you for this." Keith stepped up to handle all of the other effects for the downstairs area of Joel's house and the effects for the drive into town. He also made the lens flares for the tops of the cop cars which was really cool. I used those lens flares on the helicopters flying around. We worked together to create some scripts to control the dirt kicked up by the car as it drives so that when the car would brake the smoke would look like it was being lit by the tail lights of the car.


In Town
With Keith's help on the other areas I was able to focus on the chaos going on in the town. It starts with their car being hit by a truck and I must have changed those glass particles like 30 times. The final result came out good though. I created a script to handle all of the events in the town that needed effects. For example the glass as Joel kicks it to each new horrible thing that happens as you move through the town. The gas station explosion had some amazing concept art to go on and I made a material that I thought worked fairly well for gas that shoots out during an explosion and then that gas ignites in mid air. This all happens really fast but it created a nice result. As you approach the end of the street near the theater there's a car that goes rolling by on fire and then explodes. I have the car leaving a trail of gas fire behind it as it rolls but like a lot of things in the level you can't take your time and look around less ye be attacked. As you run out the back of the bar I made some lingering dirt dust where the ambulance went off the road. These kinds of effects are subtle but add a lot of atmosphere to the environment.








The Sad Ending
When we work on cutscenes we have to watch them over and over again typically frame by frame. We don't hear any dialogue or anything but after enough viewings and having seen the mocap from the stage capture you know whats going on. I worked on the typical stuff like blood when the soldier is shot in the head by Tommy and dust as Joel rolls down the hill and scrambles towards Sarah. One of the interesting things I was able to work on was the tears on the characters. I created a hacked together kind of tool that allowed our animators to animate tears running down characters faces and we also used it to apply bloody hand prints from Sarah onto Joel's shirts where she grabs him on the shoulders. This cutscene is very emotional and the tears did a good job conveying that sadness. I'm glad we spent the time on that. Of course The scene wouldn't be what it is without Troy Baker and Hana Hayes. They did such an amazing job portraying those characters. I'll be adding more posts in the coming weeks.

9 comments:

Anthony Barranco said...

Wow this was an awesome piece to go with an awesome scene. Thanks for the insight Doug!

Anthony Barranco said...
This comment has been removed by the author.
Anthony Barranco said...

Also, if you don't mind me asking, with the town effects...

' I created a script to handle all of the events in the town that needed effects'

How does the script handle the events? Is it more of a time based thing or is it location of Joel/player type of execution? Or is it fired off by something else entirely?

One last thing was that I REALLY enjoyed the way the car headbeams and break lights glowed. Was that in relation to the cop car lights effect or was it handled by someone different?

Doug said...

The script i was referring to listens for events and based on things as hey happen other scripts send events to mine to fire off the effects. The glows of headlights on cars was handled using our lens flare tech and Keith handled most of that for this level. I hope that's informative.

Michael said...

What is the file size limit for fx in the last of us? How do you squeeze all that detail in such tiny amount of ram?

Doug said...

Our fx files are surprisingly small. Most of our memory usage comes from the materials we apply to our particles. Our materials are loaded in memory all the time and I believe we were somewhere around 25Mb of texture memory around the time we shipped. We don't have a limit really we just try to play nice with everyone else. We use dxt1 compression on our textures so they come out pretty small and we try to keep the textures small. We rarely go above 256x256 for texture samples. We also don't do a lot of animated flipbooks. So for instance the fire is composed of about 3 texture samples and our materials distort uv's to make it look like fire. There are other things we do to try and deal with things like overdraw but those are mostly related to framerate and buffer memory.

ElĂ­as Santos said...

Amazing work you have accomplished. I like much look little details and it seems incredible all you can move PS3. I liked the look of blood, you got it look very real, like fire, or the effect of dust or particles on the screen

And the scene of the death of Sarah is brutal, when I saw the tears on the face of Joel I was freaking out. Whenever I see the scene makes my skin crawl. Great job!

P.S. Sorry for my bad english :P

Michael said...

Thank you for the info, that's fantastic. Do you think your work flow or types of FX will radically change now with the PS4? Has the current methed been a lot of cheats and hacks compared to what you know you can accomplish without limitations? What's most exciting to you about next gen?

Doug said...

Our workflow changes so much all the time. Working on The Last of Us we were given a lot of ways to interact with our particle systems on the runtime side. I wouldn't say we expect our workflow to change radically on the next console. Our methods will remain largely the same and continue to evolve. We don't want to reinvent the wheel or anything. Game fx is always a collection of hacks. I think our team is looking forward to more memory. We constantly ran out of memory making this game and had to scale back some stuff.