Friday, January 10, 2025

Lighting Workshop Week 1

I did a third one just for the fun of it, I was really enjoying this.

Thursday, January 9, 2025

Progress on WoW Inspired VFX

 Over the winter break, I've been making progress on a World of Warcraft inspired VFX. I took inspiration from their priest class and have been making an AOE healing spell. 


pls ignore the low video quality :P

I'm gonna break down some chunks of the effect.

For the AOE fx, it's composed of a couple mesh renders, beams, and sprites. I created a disc mesh in Houdini and edited the vertex colors to create a gradient from 0 to 1 to 0 from the edge to the center. For the material, I essentially lerped two noise textures on top of each other for the Emissive color, and created an erosion mask using a Voronoi texture that's controlled using dynamic parameters.

On the edges, I used beams and got them in place using a shape location module with the ring as the shape primitive. They use a similar material to one I'll discuss in the next part of the effect. Lastly, I have two sprite emitters - one for a burst as the AOE spawns, and another of some random hanging particulates.


For the effect that occurs on a player within the AOE, I'm using three beam emitters and one sprite emitter. I made a material for the beams that has two different trails and gave them a bit of distortion and WPO. I made another version of that with a rainbow as a sort of light halo effect, WoW's priest class has very subtle rainbows in their VFX so I wanted to emulate that.

The sprites just briefly float up from where they spawn, but as of now they're not timed and I'll need to work on it further.


There's still two more parts to work on with this effect, both being tied to the player that casts the spell. Once I get a good grasp at all 4 parts, I'll begin fine tuning the effect's look and timing. Working on this was a bit frustrating but rewarding at the same time! It helped me understand UV's more and I have a better foundation for all of the nodes and modules I have available to me in both materials and niagara fx. I also got to work a bit with blueprints too, which was a huge help. Excited to continue working on this!

Monday, December 2, 2024

Medusa Week 15

  •  My focus for this next turn-in, was to solidify the gaze function, add in sounds, and tighten details like volume, attenuation, and timing.
  • To lock in the gaze function, I improved the HUD texture and placement, added a lose state that takes the player back to the start, added another color for Medusa's eyes to be before the player makes eye contact, and add a sound effect to play with it, along with some debugging to make sure the sound doesn't play at unwanted times.
    Adding in the lose state within the player's blueprint

    New texture for the HUD, that appears when the gaze is triggered

    Material for Medusa's eyes, the top section makes her eyes green when not making contact, and the bottom makes her eyes red-orange. The lerp function blends from one to the other using the alpha value from the gaze material function.

    How the new eyes look on Medusa

    Within Medusa's blueprints, I added checks to make sure that the blueprints only start calling for references of her when the player is inside the proper level. This helped prevent errors within the starting area.

    Added some nodes to fade out the stoned SFX once the player looks away.

    A sound cue to produce random snake SFX that I attached to Medusa, that uses attenuation to produce louder sounds as she gets closer to the player.

Thursday, November 14, 2024

Medusa VR Week 12

  •  This week I really started to focus on the post processing effect that I wanted to trigger when the player looks at Medusa. To do this I utilized this tutorial to get me started, and mended it to fit my needs. 
  • I also worked on a HUD display to slowly appear with the post processing effect by linking both of their alpha values together
  • With the effect, I want to add an SFX that sounds like rocks cracking, but during my testing, I realized the way I triggered it made the fx play every tick that the player was looking at Medusa, so the fx played about 5 times a second, and sounded incredibly bass boosted. So, I'll need to continue looking into that next week.
Within the blueprints of the HUD Widget, we get Medusa from her blueprint and set her alpha value to the widget value, 'A'

Create a bind within the widget menu, and link the value, 'A' to the alpha channel

Now within our Medusa blueprints, if 'Should Glow' is true, it triggers a timeline to gradually increase the alpha value to 1, making the post processing effect visible

To link up Medusa's eyes with her animations, set the parent socket to a joint. Braden helped set me up for this by preparing joints located at her eyes.

To create distortion, I used a normal for a stone texture and plugged it into the WorldAlignedTexture node, which spreads it along all surfaces. 

This offsets the normals to add variations in the texture. Afterwards are parameters to control the brightness and desaturation of the effect. Adding the marble node from the previous section just adds a bit more variation.

This controls the color of the effect, and gradually changes based on the distance away from the player.

These nodes control how the effect affects the original colors in the scene. The first time it's added into the effect it blends the colors into it. Then the top nodes helps give us a way to transition the effect from the original scene's colors - when alpha is 0 - to the effect turning on - when alpha is 1. Finally, a desaturation node is used to make the scene monochrome, to make it appear as if everything around you is turning to stone.

This is the overlay I'm using in the HUD, that appears with the post processing effect. I will do another pass on the image to add more details, this is currently being used as a placeholder.

My work logged into Perforce

Gods of War: Sprint 6

 This sprint consisted of gathering all the clips together, lighting and rendering them, and stuffing them all together into one video. I wi...