Rookie Awards 2024 - Open for Entries!
Doyun Kim Real-Time VFX Compilation
Share  

Doyun Kim Real-Time VFX Compilation

Doyun Kim
by doyun9974 on 24 Apr 2024 for Rookie Awards 2024

All the real-time VFX work I have done throughout my last year of college at Ringling College of Art and Design.

7 203 0
Round of applause for our sponsors

Doyun Kim VFX Reel.

Rigid Body Dynamics Door Destruction

Final look of the door destruction.

First, I modeled the door and cut up the mesh into how I wanted the degree of destruction should be separated. I wanted the inside door mesh to have finer destruction and the larger piece to have bigger chunks.

Then I put the model into Houdini and simulated the destruction. I used two fracture nodes to give different levels of fracture for the parts. I also used the material nodes to separate the UV sets for the interior and exterior of the door.

After exporting the animation, I brought it into Maya and fixed some of the minor errors in the animation such as tiny pieces rolling forever. I also hand-animated the outer rim of the door which is still connected to the frame by hinges.

I brought the animation into Unreal and added dust explosions and dust residue.

Finally, I added textures for the frame, surface, and interior of the wood.

Houdini Pyro FX Grenade Launcher Explosion

Final look of the explosion in engine.

I began by simulating the explosion and smoke inside of Houdini.

The smoke flipbook needed more frames since it was going to last longer on the screen (3-4 seconds). I tried giving it fewer frames for more resolution within a small file but the animation turned out to seem choppy.

In the material blueprint, I gave both of them depth fade so that they blend in nicer with the floor.

This is how I put everything together in Niagara. I also added sparks and debris that fly out when the explosion happens.

With Substance Designer, I created a texture that will be used as a destruction decal on the floor.

This is what the setup looks like in the blueprint for the grenade that gets shot out. When the grenade hits, I take the location of the hit result and spawn the Niagara system and Decal. using Dynamic Material Instance, I also fade the Decal out after a few seconds. I then destroy the whole actor.

At this point, I realized that even with the depth fade, the line that the smoke creates on the floor makes the explosion look flat and awkward. So I decided to use a smoke flipbook I created before to cover it up with ground smoke.

I made it so that the smoke does a directional burst and spreads along the floor

This is what it looked like after. Much better!

Foliage Paintable Fire

Final look of the fire.

I first started by creating the desired shape of the fire in Houdini. I set up two cameras for the front and side view of the fire.

I rendered out four flipbooks for the front and top view of the two different fire sizes.

Then I created a mesh that the fire material will go on. The mesh that is flat on the floor will always stay that way, but the top mesh will be camera-facing.

This is the material setup for the camera-facing fire material (Top), and the fire that stays flat on the ground (Bottom).

This is the demonstration of the angle opacity for the fire.

I made three variations of fire.

I set up the meshes in the foliage tool so that the user can paint on the fire and it is less straining on pc.

This is the demonstration of the foliage painting.

I then repurposed the smoke texture from the explosion ground smoke and made smoke out of it and placed them on points where fire are more focused.

Interactible Assets - Trashbag

I first started by creating the mesh of the trashbag in Houdini. I created a high poly plane, grouped the vertices on the side and the top separately to give them different wrinkles, and then mirrored them.

Then by using the boolean node on different shapes, I created the mesh that goes inside the bag.

By taking the trashbag mesh and simulating it over the shape of the trash using vellum, I created the trashbag asset. So, as long as I swap out the shape of the trash, I can get as many trashbag variations as needed.

I used VDB remesh to reduce the poly count and close all the holes so that it doesn't mess with the vellum's pressure constraint. I baked on the high poly as a texture later.

I fractured the mesh using boolean fracture to determine where the cuts would be when the bag exploded.

I simulated the explosion by raising the stiffness inside the vellum solver over time. Initially, the explosion was too big and the pieces were traveling too far, so I used two spheres as collision meshes to limit the animation.

I then imported the low poly mesh into Unreal, applied the baked texture from Substance Painter, and imported the animation as a geometry cache.

Then, I created a simple directional burst Niagara effect using can meshes that I modeled and crumpled paper that I simulated in Houdini.

In Substance Designer, I created a grunge texture to use as grime that spawns as a decal from the trash.

I set up the blueprint so that when the trash bag is hit, it gets replaced with the geometry cache, plays the Niagara effect, and spawns the decal.

Interactible Assets - Camcorder, Floodlight, and Crate

For the camcorder and floodlight, I started by putting both of them in the blueprint. The main thing to note here is that I have assets that locate the head of the object so that I can use it for ground hit detection later.

Although they would utilize the Simulate Physics feature in Unreal, I didn't want the physics for every single asset to be on the whole time. So I set up the blueprint to simulate physics only when it is hit.

While the object is simulating physics, the blueprint constantly checks whether the "Head" of the object is on the floor. The easiest method for this in my project was to check if the head was near enough on the ground since my project was mostly flat.

At the same time, the blueprint also checks if the velocity of the object is at 0. If the head is on the ground when this happens, it stops simulating physics.

When the head hits the floor, it plays two VFX which are the sparks and glass shards breaking. The floodlights also flicker and turn off.

I brought the glass of the floodlight into Houdini and fractured it with the Material Fracture node. On impact, the glass mesh gets replaced and plays the mesh particle effect of the glass shards flying. The Spark VFX is just a simple directional burst.

For the crate destruction, I used a similar method for the door destruction I made earlier in the project. However, since the crate was made out of separate meshes, I ran into trouble where the destruction applies as a whole instead of individually.

To fix that, I used the assemble node to separate the meshes and used the for loop to give each of them separate destruction shapes. I then used the RBD Bullet solver only on the top part of the crate to destroy it but left the bottom as a whole.

I then brought the whole crate and destruction mesh as a skeletal mesh with the animation, and in the blueprint, set it up so that on hit, the mesh swaps into the skeletal mesh and plays the animation. I also added a World Camera Shake for more impact.

For all of the interactable meshes in the game, I made the Dither Temporal with the Dynamic Material Instance so that 3 seconds after interacting with the asset, the asset dissipates and destroys itself.

Final look of the Interactables.


Comments (0)

This project doesn't have any comments yet.