Course overview Course overview
Learn dynamic effects for games
In this course, students learn the fundamental workflows and approaches for creating a wide range of dynamic effects for real-time game environments. Students will learn essential methods for efficiency and optimization of visual effects to be used in a video game. It will feature different type of effects for different markets: first person shooters, 3D action games, mobas, phone games, etc.
Environment design WHAT YOU’LL LEARN
The more you know, the better.
Igniting your imagination
Lectures by Fabio Silva
Fabio Silva is an award winning Senior VFX artist living in Los Angeles. He was the winner of the VES AWARDS for Outstanding Real-Time Visuals in a Video Game, and nominated for the same category one other time. He has worked at Naughty Dog, in THE LAST OF US - Part II, Uncharted - The Lost Legacy, and Uncharted 4 - Thief's End for Playstation4. He has also worked on titles such as Ryse: Son of Rome for Xbox One and PC,Killzone 3, and Killzone Shadow Fall for the PS4. He now works at Blizzard Entertainment, as a Sr. 3D VFX artist.
winter TERM Registration
Nov 5, 2019 - Feb 1, 2019
Companies that hire our students
Speak to an advisor
Need guidance or course recommendations? Let us help!
Show us your skills
Not sure if you have the skills, or are you proving you do? Show us.
Portal VFX Production
Interview with Antonio Cappiello
Hi, I’m Antonio Cappiello from Milan, Italy. I currently work at Forge Reply S.R.L. as a VFX Artist, working mostly with Houdini, Substance Designer and Unreal Engine 4 – most recently on the VR game, Theseus.
I’ve been passionate about video games since my first Commodore 64, so it’s because of this passion that I decided to dig deeper and start studying the world of 3D, especially the area of visual effects.
This specific effect is composed of three meshes: a hexagon sphere, a basic sphere, and a ring circle, each with a specific UV set. I then generated the procedural textures in SD, thinking about the best and fastest way to achieve the final look and behavior that I had in mind. As you mentioned in the question, once I’ve got the right UV set for the meshes and a few noisy textures, it’s all about combining these elements together to make it look organic.
I started with a basic sphere polygon and then I used the “compute dual” parameter in the Divide SOP for generating the hexagons on the sphere surface. This is one of the best features about working procedural – sometimes you can get a complex shape with just two nodes and this is incredibly powerful in terms of saving time and reusing the network structure. After that, I used the Clip SOP node to change the sphere into a semi-sphere. The reason for this choice is simply because I didn’t need the other half of the sphere, so this way I optimize the mesh as well. Next, I built a simple For Each SOP where I extruded each hexagon to turn it into a 3D entity and I used the Peak SOP node to move the edges of the hexagons along their normals, so this way I could control the distance between each hexagon. The last but not least step I had to do was assigning the UVs to the hexagon semi-sphere. I know it could seem messy, but in order to build the final look that I wanted, this UV set was exactly what I needed.
For the energy barrier, I simply used a sphere which I clipped into a semi-sphere with the same method that I used before. Actually, it’s exactly the same sphere that I used without the Divide SOP node (without the hexagons on its surface), so as I said, it’s really efficient to be able to “go back in time” through the network and reuse the same structure without starting from scratch every time. That way most of the work is done in UE4 with texture panning, UV distortion, and masks.
I did the ring circle in Houdini as well. The most important thing to consider here is the UV set because it’s what determines the direction of movement from the center to the border of the mesh. This way when I panned the texture on it, I could simply use the UV coordinates to give it the illusion that “something” was moving away from the center. Next, I added the vertex color on the edges, in order to have a nice fading of the texture.
The last element is the rotating “locker” that you can see in the middle of the whole portal FX. I did the textures in SD and I packed them in the RGB channels – this way I just needed one file instead of three different ones and I could get access to each component through the UE4 material. The behavior was very easy; I rotated the UVs of the texture by a sine function with a period that changes randomly, this way it should be more interesting to watch.
Auto UV SOP node
For the hexagonal mesh which has that kind of a “glass” shader, the UVs were really important to give it that kind of look. To do that I used the “shortest path” method of the Auto UV SOP node. They seem very messy but actually, it was exactly what I needed for this. It’s basically an unlit translucent material and because it doesn’t have a reflection, the trick was to pan the same texture on top of itself using a different speed on both of the UVs’ coordinates and then use the Hue Shift node and a color node to get a variety of tints. The texture has a caustic pattern to emphasize the highlights while it’s panning along the mesh.
FX as a Particle System
In this case, I spawned the whole FX as a particle system. I usually expose the parameters that I want to tweak rapidly. I control the texture animations and blending by the “dynamic parameter” of the material which allows the “communication” of the data I need between the shader and Cascade. This way I can change the animation and the behavior of the textures (like the speed, distortion, intensity etc.) by drawing some animation curves in the particle system.
For the glass element, I built a translucent unlit material which contains a few noisy textures that pan with a different speed, plus I added some UVs distortion to make the movement more “dynamic”. I used the “Sphere Mask” node in the UE4 material shader to generate a nice “fluid” masking look when textures pan on top of each other, to achieve that kind of “energy” field that runs on the surface. I also used the “emissive” input to control the texture color, of course, but also to generate a kind of rim light along the sphere’s edge using the Fresnel function. The combination of this material with the hexagon mesh (or grid mesh) should give the illusion that it’s all contained in this glassy energy shield.
FX Development & New Heights
Sometimes I picture effects in my mind and then I draw some rough sketches on a piece of paper or in Photoshop to get a better understanding of the elements that will be involved and what I’ll need in order to achieve the results that I have in mind. I usually think about the entire animation cycle and then draw the “frames” of it to get an idea of the behavior that it should have. I’m inspired by Japanese cartoon styles for the visual effects because they usually use really interesting shapes and they give such a cool “rhythm” to the animations. It’s definitely one of my main starting points and I’m continually trying to learn new techniques in the field. I have no idea where my style will go from here but I just keep trying new things and playing with both the techniques and the atmosphere in order to find something new in my work.
Advice for Learners
The first thing I’d advise is to watch a variety of anime and start studying the look and the animation of those effects and try to reproduce them in a game engine. Thinking about the books I’d recommend starting with Elemental Magic: The Art of Special Effects Animation by Joseph Gilland. It gives good insight into how to interpret the behavior of the natural world.
I also usually find many VFX examples on Pinterest, (just type “vfx game” in the search field and you will get tons of inspirational examples). And o,f course I’d recommend the RealTime VFX site which is an awesome VFX artist community.