[Music] enjoy your power this is the big marketing tagline for infamous second son this really applied to the visual effects team as well during development of the game and I hope that the joy we had and bring in the visuals in to you guys is a really apparent hello everyone I'm Matt Varney I'm senior visual effects artist the sucker punch today I'm going to talk about how we created the visual effects planet from this second son there's not enough time to talk about all of the powers we've created so I'm gonna focus on two powers each from smoke and neon then I'll talk about the creation of new toolset and the pipeline for into the second son along with the pros and cons from our new workflow and lessons learned attempt and make something new on the next generation of hardware so let's get right to it and we'll learn about how we create a some adults and smoke powers so for the smoke powers what I'm gonna cover is how we defined the visual language of the smoke powers some of the game design behind the powers and then I'll go over smoke - and smoke event travel kind of show you how they went from concept to completion this is an
early concept with a smoke for power so during pre-production our engineers were creating the effects toolset and the effects team itself we were experimenting with third-party software to kind of get a sense for what we wanted out of our internal tools that the concept team was hard at work during this period creating smoke power concepts for all the various proposed power designs during this period they had no idea of what our limitations would be and that was a really good thing for us you know it's always important to have people whose only thought is the final product and not the constraints of the technology these are some examples of what some ambient smoke commanders would look like for idle animations and things like that this was created during the production of our ultra power the orbital drop and influence the visuals behind the final blast wave created as Delson lands by this point in the concept phase we really had narrowed the look so you can see the three common elements of our smoke powers set sort of the wispy smoke the billowy smoke and the ash and embers when we were given that task of creating powers based on smoke we entered a few
major hurdles our initial art direction was basically make it look like real smoke or something I've seen a free render cinematic smoke by itself doesn't feel terribly dangerous you don't have a natural understanding of its an impact and force like you do a real object say an arrow or a spear smoke can also be hard to see in low-light conditions which really can impact the players understanding of what's going on so analyzing real smoke reference resulted in a couple observations firstly that turbulence in wind we're going to be very important to look we wanted out of our smoke visual effects secondly lighting the particle system so that it's act correctly in the scene and didn't feel composited in what's gonna be both critical and challenging we felt if we hit these pillars the smoke would be believable within the infamous universe which opened up the ability for us to kind of style as the effects it was just more important for us that our effects to a believable within the universe then completely realistic early on the project I guess I really we spent
time experimenting with third-party software like Max and Houdini to kinda help you to sense where you want to do with our internal tools this is a little quick Houdini render we did for yearly on during this experimentation in phase we use a lot of turbulence and wind in our Sims and that kind of really influenced the direction we took with our real-time curl annoys functions in engine this is something I showed to circle punch engineer Bill rocking back and he was kind of able to take this and use this as a guide for creating that real-time control noise after analyzing the reference that concept art and creating some initial VFX prototypes we realized that to make the smoke feel dangerous we would need to make smoke elements that contrail you know the the leftover residue from a force we knew the power had to be visible in a bunch of different time today as well so our decision was to make that force a storm of really hot bright ashes it was super by a simple analogy I had one day early on in the smoke death process where you know if somebody blows cigarette smoke in your face it's just annoying right but if somebody puts out a cigarette on your face that's really gonna hurt we
knew we'd run into the problem of some players miss identifying this power status fire but it was really more important for us that the player could track and understand their abilities from a design perspective one of the game design elements that really makes an infamous game feel well like an infamous game is the joy of traversal smoke - was the first power we prototyped that really felt like it met that bar in terms of joy these are four different looks the concept team came up with and I taking various ideas from from all of them for the final power effects with smoke - the core design concept was that the hero would dematerialize and pass through objects like chain-link fences and path around objects like cars or short walls in order to help D materialize the hero we had to create a transition effect that would cover up the removal of an edition of the heroes mesh to help with this we spawn particles off a sort of low res LOD version of the heroes mesh that we called particle mesh we want this action to be as smooth and as fluid as smoke really is so we made it a pillar of the
effect that the same particles that are spawned when this move starts are the same ones that formed the hair at the end so one continuous motion from one particle system once we have that element working we added ribbons smoke and lights to healthcare the directionality of the hero's motion so this is the concept we're working with and the in-game so breaking down the smoke - effect there are different components there are ribbons some soft smoke Asha members and dynamic lights so on the left is the based hero geometry without any emitters on the right I've hidden heroes geometry and turned on particle emitters that are
parented to the previously mentioned particle mesh they're inheriting the color of the mesh and their normals are facing the same direction as the triangle their parented to using this technique we're able to hide the transition of the hero's geometry being turned off and on this is our closer look at the technique I'm showing this at one-fifth speed to kind of help make the effect more obvious you can see here at the end when we can actually see the moment whereas mesh pops back in and swaps right there if you see in a real time now it's really not noticeable at all here I've added back in the ash particles that leave the hero of the disintegrate moment they kind of move around with chrome noise before they're finally lurking back to the heroes position at the reform moment
I've disabled the crow noise on this demo which shows how the ash particles alert between being on the part of a mesh being unlocked for free in the world and then back to the mesh if you notice the particles and spawn near the head they learn back to the mesh position faster than the ones near the feet and helps give it kind of a lurching organic feel these crypts here represent position alerts fatigue being world update and the heroes particle mesh when the grasp vertical value is 0 there at the bottom the departed goes unlocked from his mesh and when the values 1 the particles are sort of locked to his mesh these scripts are evaluated over the particles normalized lifespan so you can kind of see how the graph starts at 1 and it goes down to 0 and goes back up to 1 the graph on the left is marked a and that actually represents particles to spawn from the top of the hero's head while the graph on the right and marked B there's no one's spawn at the bottom his feet use an additional alert between curbs a and
B kind of depending on you know where it spawns on the hero's body so during the - move smokeless fly off the hero and then sort of towards his final destination to help carry the relationship of the motion of directionality motion this here I'm showing actually parent-child emitters that are using for generative ribbons and you can see that the entire ribbon has the same facing axis from front to back really got the yellow ribbons there this prevents that twisting scene in a lot of ribbon implementations the blue line is actually the direction of travel of the hero and the white line represents the ribbon facing vector in three-dimensional space the ribbon facing vector is created by taking the vector between the parent and the direction of travel and crossing it against the camera's view direction this is just sort of one simple example of ribbon facing that we could have fused we're not really constrained having a single vector along the entire ribbon we could actually have it twist or curl and set the face and really any vector we want we actually do that in a few cases of the hero's smoke float or or the smoke missile has kind of a spiraling
look to the ribbons so this is the final smoke - effects field a - wall in midair and you can also see how the player dashes through fences as well it just is just really fun really smooth that's another sort of pillar of smoke everything has to be smooth so an upgrade to the smoke - is the ability to - into event and travel the top of a building kind of bursting up out of event this is that concept for smoke van travel so the goals for this effect for - you know reuse - smell - D materialize and to extend the hero of sky whirring with a pillar of spinning smoke wisps the visual concept relied heavily on a smoked urban feel so the bulk of the work was gonna be in getting that part right it was important for us that we capture the explosiveness at the beginning and the deceleration at the
end to match the animation teams hard work we also wanted to smoke to feel carried away and the wind as the hero was falling the wind up being I think really close to the concept with this particular power so this is the final version of the net Travel effects it's comprised mostly out of these three elements that's pretty much the smoke ribbons and has some soft sky billowy smoke and a bunch of your Asha members so the first step in breaking down the shapes and the concept is to create the path spiraling the hero because we're able to spawn particles from a position of other particles by specifying which particle emitter is the parent in which particle emitter is the child it turned
out to be relatively easy to generate this shape with our system I use this similar technique to the smoke - ribbons combined with parent child emitters for this here you can see the parent particles are actually moving upward in red and they have the child rhythms attached I've set up a radius that's looped between two of our values and it's controlled by that keyframe you can see kind of in the lower left there this basically creates the right profile that we want out of the column once I have their parents rotating over their lifetime you can see that the basic shape of the concept is starting to take form now so to make the ribbons feel more organic I added some noise in the width of the ribbons you can see how the ribbons are actually getting thick and thin in places servo was a 1d noise I'll talk later on the various ways that which curl noise functions can be useful for
things more than just particle motion here in this part of actually disabled the rotation of the ribbons to kind of help show the resulting noise patterns a little bit better so the noise and the width again just trying to layer different ways to make smoke feel more organic the next thing we ready to is add some krill noise and wind forces to the emitter and I'm using a couple different octaves of the noise on the ribbons to make given both large and small waveform patterns that gives it a really another nice organic thing to do these are my patterns they iterate over time so each time the effect is fire the patterns are different so this is a good time to talk about a simple way we had a lot of motion out of our billowy smoke emitters you can see how there's actually a downward motion as the smoke billowing smoke billboards move upward and this kind of makes it feel like the smoke is rolling one of our engineers mattress off he came up
with a way to magnify the UVs on particles such that the UVs would scroll faster in the center than they do on the edges this results in a kind of a spherical shape and it helps give the billboard some more volume this is actually just this single billboard with scrolling UVs you can see that as I adjust the magnification values that the spherical form becomes a bit more obvious this is just one of the simple ways we got a lot of motion out of our smoke textures without using flipbooks flow maps or UV displacement I think we had maybe two animated flip books in the entire game most of our techniques are pretty simple like this so here the final event travel effects it's pretty useful for getting rooftops quickly and you also able to smoke - into the tops events and get kind of a kicker boost you'll see here in a second
it's super fun to just chain these around the city and see how many you can get in a row so now you've seen some of smoke powers let's take a look at how we created some of the neon powers so for the neon power is what I'm recovering is how we define the visual language of neon powers draining neon from signs and how we created the neon - effects here's some visual language studies that were done by the concept team for the neon Mele these concepts reference the idea of light writing which ended up being one of the visual pillars of the powerset white writing being the photography technique where people use kind of flashlights and long exposures generate really long trails this is done neon chocolate explosion concepts you know at this point you can see that we're still trying to find the kind of visual signature for the power we're testing with both angular and flowing lines or
some line symmetry and just different color ideas just still trying to figure out what we're in do here so as you've seen the art direction relied heavily on the concept of light writing complex lingering shapes everything had to cast light and everything need to have some sort of accent you know volume in addition to light writing to give it the proper depth this actually in volume init being kind of a faint neon gas that's present the background and pretty much all the neon powers we just really wanted to think about neon as a plasma at the same time we knew we wanted to flag it flow flow excuse me flowing waveform patterns which are pearl noise came in really handy for to get a different result in smoke we end up using much larger waveforms and less octaves of noise to kind of get a more flowing form we also clamped the noise patterns to in many cases to create a contained look to the neon so if we spawn inside a cylinder at all the noise is contained within the cylinder or within a sphere it was really important for us that you know this power felt under control by Delson
and not wafting away like smoke that was one of the ways we're going to differentiate it from smoke during the on powers development and we had a lot more back-and-forth discussions with the concept team than we did during smoke looked at a lot of the smoke the power concepts came in pre-production before we had any tools to work with so once once we had the visual language defined for neon however we altered our workflow the concept artists to have them provide more generalized form studies rather than detailed illustrations so these are some inform studies for the Annie on float maybe look closely between those concepts in the final game there's inspiration from a few of those different concepts present so here's some form studies for the neon stasis grenade you know as an effects team our big takeaway during this part of development was that concept artists they're masters of form so we should be using them for what you want to do is work with them so they understand your timing needs you have them sketched the
iteration of form over time it's even a simple example in the lower left here that you can see from A to B is more useful in a static form you help them to understand that the starts and ends are just as important as in the middle a lot of concept artists in fact most will probably give you just the sort of middle section of an effect if you ask for a concept so let's talk a little about neon drain it was one of the first neon powers I started working on and we knew that getting it right was going to challenge but it would set us up for creating the rest of the neon power set the design goal was to drain neon from an in-game sign model at first it wasn't really clear how we're gonna do this I mean should we model splines over each sign and then render to those fines should we drain from one end of the tube like a string being pulled out when you want to hero drains from it once we came up with our particle mesh solution for a smoke - though it became pretty clear that we should try to adapt that tech for this particular power the basics of the effect is that at the moment the drain button is pressed we spawn particles off of a particle mesh that's
attached to the in-game sign model we kill the emissive values on the sign model to kind of turn off all the neon tubes as well as any lights and reflections from the sign finally we swirl the effects a downward toward the hero's hand or he sort of grabs it to absorb the power this is an early concept of neon being ripped off a sign and then finally game effect so here is another example of how a rough concept can go a long way to the final product the set of roughs was done by a second son art director hooria don't you and the result is pretty close to this rough set of ideas you know I like to joke with him I really captured that Saturday Night Fever thing he's got going on that last frame over there this is the full version the undrained I'm actually adding back different elements here kind of breaking it down there's
the wispy energy and sort of some neon bits some plasma gas and some dynamic lights so this is an example of the neon science particle mesh particular spawn in a somewhat uniform but random position on the triangles of this mesh after being spun but not drawn they sample the color value there underneath and if value is below a certain threshold the particle tries to find a new spot so we repeat this up to about tatak ten times before we give up and the particles killed this gives us the effect of part of those being only spawned from where the emissive values are and the texture doesn't mean we need to spawn quite a few particles to make this work you can see a lot of times we'd be sampling some of the black areas and not getting a valid position but thankfully on that please just yes for we can spawn tens of thousands of particles so this wasn't too bad so here
you can see the color ID heritance the particles have for the emissive shader a bit more clearly you can see how the red particles come from the red parts of the sign and the blue from the blue part and so forth i've trimmed the part of the system down to kind of some simple shade of billboards to help show the motion as well this example here I've upset the billboards from the normals of the particle mesh to kind of help make it a bit easier to see or to show the video all the green dots are actually a position of lights that are spawn from the same particle mesh and they're casting color from that same underlying pixel color so we found are we actually use these lights at kind of a lower particle count than the rest of our particles and it's purple performance and visual reasons right we found that
the results from sort of larger lights with softer fall-off gave us a better aggregated lighting aggregated light look then tons of tons of tiny point lights this is how the neon drain turned out and this was used in a cinematic in one of our trailers I just I just love the swagger Dustin has he comes up to drain totally nails his character nyan - was another key power for us not only because traversal powers are important in the infamous universe but because as there were tests of how we could turn the hero into light writing element mr. Peck was going to be used for both the hero and one of our main characters fetch the game design required very lengthy trails so the fetch could be followed the other design requirement was that the hero could - not stop for as long as they held the button down this interests a few technical constraints such as have an account for variable - distances one
thing this meant is that we couldn't use some of the same techniques we used for smoke - where the hero is reformed by the same particles that left him during the launch because we didn't know the - time beforehand this is an early concept for neon - from an art direction standpoint we needed to have the heroes form strobe as well as leave lingering neon trails we also want to make sure that the effect had some sort of lingering element and after he came out of the - we were already sure what that was going to be at the start but we ended up using a technique to crawl energy over the surface of his mesh as he leaves the - I'll talk about that technique in a later slide this is another concept and how it turned out in game so here's the full version on the end - was composed mostly of sort of different elements like some kind of wispy energy
trails there's the body ribbons on the spun splines there's neon bits plasma gas and some lights you kind of see example there as you runs off screen of how they're really long light running trails those I think lasted like 2025 seconds like that so so here I've isolated the ribbons that create the form of the neon - here you can kind of see in strobe as I run around these scarred lines here represent different supplying positions that we created by feeding and a list of joints on the hero there's a spine for each leg and one for the torso and also one for the head well cases we use their rotation functions and around some of these splines to kind of help create the torso shape a little volume shape the
ribbons were actually created along these splines and there was some curl noise that sort of modulate their position as you can see right here so an element that we used on quite a few of the neon powers was it's lingering energy on meshes the intersection tests against the depth buffer are not exactly new but our engineering matadores off you know why not expose this to the particle systems there's another little thing we can play with these billboards are screen facing so the pattern alters as you move around but we could specify it facing on Billboard so we could have created markets as a pattern if we wanted you got to see here I'm Justin Tubb the depth of the test and kind of the glow amount this feature can be pretty useful for pretty much all of the neon powers we used it for a ton the flow the stasis
grenade this is a lot of different places became kind of a signature the power set so here's the final version the neon - it's just a lot of fun dashing around the monorail tracks you know just dashing anywhere I like to call our powers time thieves because if you're not careful you'll find out you've been just playing the game the last 15 minutes and not actually working it can be a problem you'll see some of the depth test stuff as he comes out well so in order to make the effects I've just shown we had to create an entirely new toolset for a second son I'm gonna be going over the components of our tool set fairly quickly there's a talk this Friday at
10:00 a.m. by one of our engineers Bill rocking back he's going to talk about the particle system architecture it's gonna give you a more technical look at our effects systems you should go to that if you're interested in that kind of thing when we started pre-production on infamous second stone there were a few known quantities that kind of led to the decisions that we made on the toolset we had to be able to deliver what the game design required this met designing a flexible system that could handle the many types of powers the hero would have for an artistic standpoint we wanted to be effects to be another character in the story the goal is to make everything feel alive as if the character who created the power was in full control of the effect this is a really important goal for us because the fiction behind conduits in superpowers is pretty clear that the conduit is just is manipulating the power they're not merely summoning it in terms of production what the effects team wanted was faster editing this would be a requirement for us because of the volume of work that had to be done within the short development cycle that we had this was basically a two-year and some change
production cycle for us so on and on new new engine and new hardware we knew it was gonna be really difficult to determine if something was called next-gen or not but our initial goal was to increase the complexity of stimulations and combine that with accuracy and lighting and sorting we felt like doing these two things really well what it would be at least a good start based on those challenges we made some early decisions on what kind of tools or rendering techniques and processes that we would need knowing that we're designing a game with multiple power sets meant that we had to create a very flexible and powerful system this meant rethinking the way we traditionally think about particles stimulation for example in most particle editing environments particles are basically fire-and-forget at any point in their lifetime their position is based on parameters that are only set at a mid time things like velocity and gravity the second son VFX toolset allows you to directly set particle positions at any point during their lifetime or by using externally driven user parameters the expression difference system was definitely the right choice for the
design challenges that we faced deciding to improve the shading and allow real-time editing and run the particles in the GPU we're also key decisions that we made early on during development so this is the basic layout of our particle editor the outline on the left is the container for all the particle systems and all the submitters the property editor contains all the various fields that we can edit and with our expressions and most of these property fields can have graph data as a value so an example of this is shown on the right with a short keyframe editor the particle heading environment is expression based as I mentioned so it supports a broad range of inputs for vectors float strings random ranges and more we compile static values in the constants using a PS SL which is a PlayStation shader language and Billroth mixin talk more about that but once compiled these values can be edited live even if the game clock is paused the variables can be created on the system
or a Mitter level and these variables which I'll call user parameters from here on out they can be used in our expression syntax there's only a few basic triangulation and shading methods but we got a bunch of variety out of them just due to our expression system one of the areas is not expression ilysm it functions we did add a little bit of flexibility there to add animate ratio multiplier just so we could modify the the admit rate externally through those user parameters our toolset has separate emit and update spaces and this lets us do things like emit on a character's joint and either continue to have an update on that joint or be left behind in world space we can also convert and lerp between different spaces I showed earlier with the smoke - this is an example of editing a particle system in our toolset so here I'm just editing a curve that is multiplied against the particle scale of the smoke notice that I'm still going to make changes to these values even though the game clocks paused I'm also able to
change the constant values as I mentioned earlier in expressions in real time as well you can say I'm just changing a multiplier in the billboard size now all constants can be changed you know alpha brightness pretty much anything random ranges are only evaluated at a mid time and because of because when I'm able to change them at real time I typically kind of multiply in a constant value against a random range though I can tweak things live you can kind of see the example of that after this is done when I go back to editing the static value you kind of see there's a random range kind of in brackets that's multiplying us the instead or a constant right here so one of the bigger strengths of our expression system is user set parameters these parameters come in two forms system level parameters and emitter level parameters system level parameters are scoped for the whole system they can
be referenced on any emitter and then return the same value on all emitters these parameters can be changed externally through either our scripting language or through code they can also be changed or an instance level so specific place instances of an effect and the game world can have a variable attribute such as color or scaled British whatever you pipe that into you can adjust now emitter level parameters are scoped within an emitter and evaluate it differently per particle so in a matter that has a parameter for random with a random range for scale I'll just return a different random number per particle spawned our keyframe editor is proved to be tremendously powerful more than I thought at the outset a huge part of this is that the power is that we can input and evaluate any other expression against the x axis of the keyframe so here's a simple curve used on particle alpha I've set the input expression at the bottom here just to be L so you're still under and this is basically a shorthand way of us
saying age divided by lifetime which is just going to return a value between 0 and 1 over the particles lifetime so being able to map input expressions in the keyframes allows us do things like look the color of particles by their position I've created a variable here call it MIT pause and this creates a box that's 5 understand meters tall by 50 centimeters wide and deep I then created a keyframe with the input expression set to the Z value of the emit pause variable you can see there MIT posi I'm just whistling out the Z component of that vector I've added a couple points to the keyframe one at zero and one at 500 I've set the output value at zero to be 0 and the output value 500 be one all this does really is return values of zero to one over the height of the emitter which that I've referenced in a simple color alert function it's just one little basic way you can use the variable input expression this is kind of a more complex example of using keyframes I'm using a keyframe here to adjust the rotational speed of particles
on a disk so if I use the radio of the disk as an input variable the output is controlled by the keyframe you can see there at the bottom these values are then multiplied into the rotation rate they make the particles move faster or slower based on the radius here I'm using the same keyframe to control a color alert to make the results of them more obvious so remember this is only a single emitter with a couple expressions if you layer and stack this sort of behavior you can get some pretty awesome results so now you've seen a bit of our editing environment I'm gonna talk a little bit about the shading and lighting of our particle systems we've just been a bit effort on this as well so with infamous second son one of our overarching goals was to make particles fit seamlessly into the environment this is sort of a mantra for us we felt pretty strongly that particles would really feel like
they reside in the scene and that particles that in correct lighting and shading always felt composited in we didn't want to have anything feel composited in so we brought the problems down in sort of the following components that we felt like we would need to have we needed them the cache shadows particles I said cast shadows receive shadows cast lights take bounce to ambient receive directional sunlight blend correctly with haze and use the same HDR particle rendering that the environment was using so with shadows we felt that they need to cast shadows to help feel kind of grounded to the environment and our engineers were able to create a particle shadow buffer and use kind of simple blobs per particle and those added up to the whole shadow shape this is some of the features here but I'm going to show a demo of them in the next slide here is a particle system and it's casting shadows and it's having its shadow strengths have turned up and down we're able to tune the shadow strength appropriately based on how much the
material should include light kind of just an artistic adjustment so you know for example we could turn down the shadow strength for water vapor or kind of turn it up for opaque smoke cloud just another handy thing to be able to do so here we can see particle systems that are receiving shadows from the environment in this case treats the shadows are variable resolution depending on the distance from the shadow casting object but the results are still pretty decent they move the Sun Direction around you can kind of see a little bit better so all deferred geometry and our game is mostly deferred can cast shadows onto particle systems whether or not they're a static or dynamic the object that is so a character flying through space will cast shadows onto these part of the systems
so like with casting shadows casting lights ground the particles to the environment it helps them fit into the scene there's also a huge added gameplay benefit to this as it's easier tracked and moving in 3d space the part of the lights have the same expressions like for position like regular particles and they affect all deferred geometry including deferred other deferred particles one thing we don't affect is translucent particles or anything forward shaded like some of our hair at one point early in development I asked sucker-punch engineer Bill rocking back if I could just spawn lights off any particle like it if any particle in the game however may there are can they just cast a light and I really thought he would say no I really thought it's no way it's gonna work and he says you know yeah yeah we can do that and you know I learned a valuable lesson it really pays to be greedy that's the effects artists I just ask as always not to ask so here i've isolated
part of the smoke missile explosion each parent emitter that you can see there it's kind of towards the end has a light as a point light on it now these can be tuned with again variable color brightness there's some hot spot and fall-off controls and it also some specularity controls as well so sometimes we want a single light to represent many small lights or kind of an area Phil what kind of blur the speck intensity over an area essentially just turning down the gloss power of the lights reflections so another element we felt really strongly about was getting good approximation of bounced and local
lighting on our particle systems sir early on our pre-production our lighting team and graphics engineers came and built a system to use spherical harmonics Sh probes to help with general environmental lighting I'm not gonna go into specific details about how SH probes work so there's already a lot of information out there already but if you haven't heard of them the basics is that these are probes are placed in the environment and they capture the surrounding light information this light information can be actually baked kind of like a light map or an environment map and it can be used in a variety of ways mostly this technique is used to capture bounce lighting for environment so lighting it's bouncing off of Florida in a wall in any case since the probe data was already being baked and used in our environment our engineers were kind of able to use that data on our particle systems this an example of the SH probe system at work lighting our particles so as I moved the particle system from area to area the color from the local lighting is inherited by the emitter this provides another huge level realism as the particle system kind of helps sit
in the world correctly you see that a probe miss you placed really close to the green sign right here because we're getting a lot of inheritance the accuracy of this system is pretty dependent on the density of the probes for I think for infamous second son our our probe density was around one every three to five meters so then - - we had directional sunlight affecting particles and for second son we improve this capability with a weight at two and the strength values per emitter this can allow us to simulate the correct light diffusion through different elements these three minutes to get demonstrate a few different values of directional sunlight shading on the Left the emitter step to have
shadows off in the middle of the strength is set to sixty percent on on the far right it's 100 percent strength typically we use this to lower the shading value on steam particles and kind of crank it for the smoke so because infamous second son uses physically based rendering and HDR this meant a drastic shift in the way we control the emissive properties and lighting of particle systems so anyone who's worked with HDR and physically based rendering has probably already figured out that is difficult to work with relative to last gen as their waste of particle effects we found that rendering accurate exposure values for particle systems was not the way to go and it's for a few main reasons firstly it's confusing in communicating a game design when we know when powers feel dangerous in one time a day but not another that really detract and the players experience it also didn't entirely fit the art style of the game you know basically it's a great starting
point for environments but it didn't really work for powers we wanted them to be much more stylized thirdly it's not what players expect players kind of expect Hollywood realism from a game like action game like second son so when your powers impact enemies it needs to be bright and over-the-top so this an example of the neon bolt without exposure adjustments in different times a day so if you balance the particle hgr of exposure values to the day day settings on the on the right there you know it's as bright as the surface of the Sun at night in the middle it's actually so bright it's causing our dynamic iadapt ation to make the rest of the screen look black but if you balance the exposure values for night time you basically can't see it at all during the day this is a pretty big design issue if we can't see your powers or when enemies shoot at you we chose to go with a simple exposure offset on the emitters it just only affects the digital effects
shaders but it's tunable per time of day and it solves the problem for the most part for us it wasn't perfect but I'd end up getting the job done it meant going back through and tuning by hand when time of day has changed but it was worth it to keep things mostly consistent for a next project we're gonna look at ways to automate this and improve this process for a second Sun we used quite a bit of real-time curl noise and I thought it would be useful to kind of discuss some of the different ways we used it beyond just particle accelerations our noise solution consists of a couple different expressions one returns a float and the other returns basically these functions contain an input position to evaluate against a frequency of wave forms of how tight the wave form is and then is strengthened wave form and an iteration time that controls how frequently to iterate and change the waveform pattern so many real-time curl noise demos seen so far they use undamped accelerations I think if you just kind of go out there and
look at what a lot of people are doing these these particles are kind of gaining energy instead of slowing down due to air resistance during cycle at the production of second son I found that damping particles to slow them down and sort of lower an acceleration over time Canha led to a lot more believable results it's just something we tried to do I think that it's kind of all in context right if we were doing a game that was a lot of actual magic power effects they you know undamped Crowe would totally be appropriate so there are ton of uses for Illinois beyond particle velocities this an example I'm using a noise function on a couple Spears so the blue sphere has noise applied to its radius and the yellow sphere has three-dimensional positional noise applied to it the shape results are actually quite different as you can see I've used the same kernel is changing the shape to colorize these sorts lasers see what's going on this is the same noise pattern applied to a ring and it kind of makes the differences between the two approaches a little bit more clear you can see the yellow one is
actually moving in three-dimensional space while the blue is just only affecting the radius another example is adjusting particle scale with curl noise functions the potential uses I mean are pretty much limitless anything that can be parameterised and turn into expression can be influenced by curl noise functions so if you guys are gonna start using a site I'd you to just think of lots of different ways you can use it's very very flexible particular can you make amoeba so I like to wrap up by talking a bit about the pros and cons to a new toolset let's start with the pros this is a big slice I'm single more nerd at one at a time one of the major pros to a new workflow is the sheer power we have of a particle Sims the only real limit for us is effects artists as our understanding of math and I've had to learn a lot more math that I knew existed during this
project and it's something that my high school math teachers would find truly hilarious considering I was a straight D student so a benefit to having expression based systems means that engineers just kind of intuitively understand it right it means that they can make more contributions to the final assets and we're also speaking the same language now so that's been really bit of beneficial to small working relationship with engineers using GPU particles let us use tens of times more particles than infamous too so a single smoke - in second son is over half the particle budget for infamous - and you do it all the time in combat so this kind of gives you an idea of the number of particles how many more responding second son moved in the GPU also let us create much more complex behaviors so this one is just a huge step upward for us now early iterations of the tool required compiles for all changes even those compile time was only five or six seconds we found that any delay between making changes
and seeing the results slowed dramatically our engineers were able to actually come up with a system to make it real time as you saw earlier I think they were surprised by the results and how much more they enjoyed editing particles I think a lot of it is it sort of just kills the joy of editing right the reason that a lot of us got an art in the first place was the immediacy of it you put the pencil of paper and the line is drawn you know you don't wait so our sorting and lighting is hugely improved from infamous - so sorting was kind of inconsistent across the different techniques that we had and we had a bunch of different shaders with second son we have kind of one sort of Bluebird shader for all particles which is in fact why our particle shading options were relatively limited because we wanted to have that accuracy and sorting and lighting we also have no way to spawn lights at all in infamous to do the particle system we had to actually use script and sort of Maya lights there's not by some Consort system and you few of the big ones particle systems can get extremely complex is very quickly which means that if you don't work on
the file for a few weeks and come back to it it can take some time to Drakh everything that's going on kind of retrace every expression it's also difficult to work out another effects artists submitters especially if strict naming conventions aren't followed we set up a loose naming convention from inter names and texture names but we managed to forget about variable names oops you know I think at the end it wasn't a huge deal for us because the visual effects team Asarco parts we tend to work on specific areas of the game that don't overlap a ton you know some one of us will move on enemies and other will work on missions and environments we'll work on the hero and you know I could see this being an issue if the team was larger however we had a lot of lot more cross work without shader editing and custom shaders it's just simply not possible to prototype different techniques we're limited to producing a shader using a third party package and kind of showing it to engineers and having them implement it for us the turnaround is any of you who've done this know it's pretty slow and you lose a lot of details in that conversion
using an expression based system for creating effects isn't exactly artist friendly the way our tools are set up it does take some time for effects artists to ramp up I think some may never hit their full potential due to the math constraints of us our system I think it's just all-around harder to sort of find people who were able to sort of work well within our systems I suspect all effects artists going for we're gonna be running into issues with exposure in physically based rendering engines I think it's just something as effects are so we're gonna have to adapt to so if anyone has any great suggestions in this area and love to hear them just just email me maybe someone already has a talk planned or kind of a paper they're writing about this but I'd loved it more about it so when I started pre-production on second son I really had no idea where we're gonna end up I didn't have any idea how we're gonna hit the high visual bar the art Direction team set for us and I didn't know how we're gonna achieve the crazy designs the design team came up with our designers are kind of zany so
the biggest goal I have for the project was that one to create something that I just hadn't seen before on a personal level what this meant for me was I need to focus less on how I'd solve problems in the past and focus more on never saying no it's one of my big things so it's never say no just just say yeah and then figure it out the idea was that I need to take on stuff that seemed impossible at the outset because it would let me get further and if I shot something down early my motto was if you know how to do it that means people have already seen it and I think that's pretty valid for what we do as artists another way I learned to tackle problems in a new way was to sort of start with the idea of first principles the idea behind this is that you assume nothing and you start proving out everything you know you want to make sure you don't make any assumptions about your particle counts how you can spawn lights how you can spawn decals because these assumptions artificially constrain your options they artificially constrain where you're going to end up the only thing you need to start by doing is asking what do we need to communicate to the player right here
right now it's really the the first step and one of the most important steps I think it's really hard to toss out all your old assumptions and start fresh I know I wasn't successful at it that much well sometimes you know but it's totally worth it when it works because when it does you can do silly things like this here I had a particle system full of small fish models and these fish swim away from the hero using only simple expressions I showed this demo to one of our engineers and he called them some articles I think it's a good example of the kind of things you can accomplish with a flexible and powerful effects system it wasn't long ago people use AI systems to control the sort of behavior and lack of audio again that wasn't the one I wanted
so any questions just email me if you're interested in finding out more about the crazy people I mentioned sucker punch just you know visit our website or email one of our administrators Sonya Jackson we're always looking people to come hang out with us come visit us we love visitors don't forget to see the partner talk to this one by Bill rockin back at Friday at 10 a.m. those going to go into greater detail as I said about the engine side of the particle system so you'll want to see that arranged in the technical technological side thanks for coming everyone and I will have a little bit of time in the wrap-up room which I believe this next door' after this [Applause] [Music] [Applause]
Auto-generated captions from YouTube — names and numbers may be misheard.
Distilling the key insights…
Game Developers Conference · 2026
Game Developers Conference · 2025
Comments