Thursday, May 27, 2021

Labyrinth VR - Sixth Update


This sprint I spent some of my time helping my 3D artists with a little bit of modeling and texture work. I modeled a dripping candle and made several tile and wood textures to flesh out the Tower level.




I also improved the look of the light flickers in the candles as well as upped the light emitted by the light flicker BP. This tied into my overall lighting pass for the Tower level; I wanted to ensure that the light was only on the orb, orb stand and throne.


To ensure that the player doesn't "investigate" areas aside from the orb they spawn by, I also removed the option to teleport unless the player is in the Bog level.

Additionally, I created a layered light function to simulate stained glass, improving the look of the light pattern on the floor as it would be cast by the window. This is all assembled in one blueprint, each spotlight containing the same light function. The proper coloring for the glass is only visible when one light is set to only red, one only green and one only blue. Layered together, the lights make one complete image. The blueprint is fairly anticlimactic (just three spotlights), but the end result is pretty lovely:

To help guide the player, I placed a golden "aura" around each object the player must interact with - the aura will only remain as long as the interaction needs to be met, then it will move on to the next object. For example: The aura begins on Ludo, then after the user "pets" Ludo, the aura moves to the rocks. Once the rocks have risen and the player has crossed them, the aura transfers to the initial door knocker that speaks.

To make the swamp water look more "swampy", I've been playing around with the look of the material. I'm still not fully satisfied with what I have, but I think this is definitely an improvement. It now varies in color from the mossy green of the water to the grassier green of the foam.

I also changed the post-process fog that shrouds the Bog level. I wanted to give it movement as well as a larger variety of color (the below image is before I changed the water material).

I also made some tweaks to the sparkles that follow the orb in the tower level.


For some small quality of life fixes, I removed the physics from the first door knocker. Originally I wanted to let the player knock on the door, but the physics joints proved to be too finicky for me to be happy with the end result. Another quality of life fix comes into play in the Tower level; when the user picks up the orb, now the blueprint waits a fixed duration of time before automatically spawning the End Credits level. This way the player doesn't need to wait for additional input from an outside user.

Wednesday, April 21, 2021

Labyrinth VR Experience - Fifth Update

To bring motion and life to the Goblin King's tower, I added in a 2D goblin cutout and a pair of goblin eyes that appear and disappear in one of six random locations around tower room to "enhance" the giggling sound of goblins in the room.

One of my personal favorite goblins.

Niagara effect for the glowing eyeballs. This is a placeholder for the future as I would like to maybe make the eyes blink or perhaps have pupils in the future.

Blueprint for spawning points of goblins in tower.

I'd previously been working on a Niagara particle effect to create bursting bubbles in the swamp, but it proved to be very expensive. I'd recently been using vertex animation textures in Houdini to create waterfalls for Capstone, so I decided that the bubbles might be more interesting looking (and "cheaper") if I did them in Houdini as well.

The effect obviously still needs a little tweaking, but I'm pretty happy with the overall look in the bog thus far:

In order to bring more motion to the Goblin King's tower, I created some flickering lights. In order to make them as easy as possible to implement, I created a BP for a spot light and a point light that allow the user to control all the aspects of the light right in the constructor so it can be seen instantly.

Point light blueprint and demo video.

Spot light blueprint and demo video.

 
Proxy candles to go with flickering lights in tower.  

Redirected walking test to gain extra space along the x-axis. Tested this out in a first person shooter for initial mechanics testing, now to put it in VR for actual testing.

Original movement through game space.

Extra 25% gain.

I've also been tweaking the physics for the door knockers still. I'm struggling with the hinged joints, but the one that you pickup works now! Also I had some dialogue issues, so it was nice to get that sorted.

Sunday, April 4, 2021

Labyrinth VR Experience - Fourth Update

Stained glass window and light "reflection" based on stylized version of the Labyrinth movie poster.

Post processing shader to simulate fog based on scene depth.

Another possible iteration of fog that will help enclose the game space for the player - this is a fog sphere that encloses the bog.

Doors now are updated to show Daniela's model instead of proxy doors. Pivots were adjusted so doors behave as expected, and rotate as if they had hinges.

Additionally, when the player guesses the riddle correctly, the talking door knockers are no longer visible, and ones parented to the door BP become visible instead. This allows them to move with the doors.

Spheres for Quit and Restart in End Credits scene were not behaving properly. Now they will spawn 40 seconds into the level, and if the player overlaps the sphere, they will either quit the experience or restart at the Bog Level. 

Second pass on "dissolve" for magic words that appear in Tower Level. Eventually instead of appearing from the middle, I would like the effect to spawn from left to right. 

Additional Notes:
Made changes to interactive door knockers. "Mute" knocker now inherits from BP_PickupCube VR Template, and no longer utilizes physics joints. Working on improvements to stabilize "Deaf" knocker so the handle doesn't rattle when no one is touching it.
Looking into fluid sim for rocks as they rise so they will create ripples in the water in Bog Level.
Added some location-based sounds to the to help signal to the player to look in a certain direction.

Friday, March 19, 2021

Labyrinth VR Experience - Third Update

I've primarily been iterating on things that already exist in the experience. Making small changes like adding a fade from black at the beginning of the bog to add cohesiveness to the experience. I've also changed the speed the rocks raise so the player has more time to turn and look at them when they hear the grinding sound effect. Below you will see some of the other things I've been working on.


Finished facial rig, shown here with temporary metallic material, delivered to Tyler so he can begin animating.


   Updated paintable landscape material to incorporate Crissy's bog texture (called "Puddles").


WIP on a shader I am creating for the spawning of the "magic words" that appear in the Goblin King's Tower.



Here you see the new option to exit or restart the experience. The orbs remain hidden until the end credits have finished playing. Tapping the orb with Jareth will return you to the start of the bog. Tapping the orb with Sarah's bedroom will quit the experience.

Friday, March 5, 2021

Labyrinth VR Experience - Second Update

Continuing on expanding the Labyrinth VR Experience, I focused on filling out the levels, building the interactions, and increasing performance. I've also been preparing a facial rig for animation.

Bog Level. Our proxy Ludo is now capable of movement thanks to our animator Tyler. Ludo will wave you over, and upon "petting" Ludo's head, he will raise the rocks for you to safely cross the bog. Upon crossing the bog, the door knockers give the player a riddle to answer. In this level, I focused on optimization, placement of assets, created a paintable, tileable texture for the splat map terrain texture, a tileable texture with a normal map for the tower, interactions, and lighting. I ensured that two rocks closest to the player, as well as the "BEWARE!" sign are things that the player can pickup/throw. I also set up physics constraints on the right door knocker. The left knocker was slightly problematic, but since it's in the proxy stage right now, I made it so you can pick up the object, but you cannot yet put it back.

Unfortunately, due to optimization issues, a great deal of fog had to be removed since the billboards were overlapping. You can see a smidge of overlap still, but it's slight.

Tower Level. Upon entering the Goblin King's tower, created by concept artist and modeler Daniela, the player can take the Goblin King's orb. They are then prompted to "Speak the magic words." Upon saying "You have no power over me," the player is transported to the final level. In this level, I've set up an initial lighting pass, ensured everything has a basic material, set up the interactions and sounds, and created the orb - which the player can pick up - as well as the "magic words" proxy effect.



The words slowly appear in the air after the player picks up the orb.

End Credits Level. This level is set in a dark night sky, and the player is suspended in mid-air. The Goblin King's orb rotates around them with a magical particle effect, while credits roll and "Dance Magic" plays. In this level, I kept the lighting simple because I wanted to emphasize the night sky, I also created the scrolling credits, rotated the orb around the player, and created the magic sparkle proxy VFX.

"Glass" orb with billboarded face of Jareth along with lights and sparkle effect.

Blueprint controlling rotation.

This week I also spent time working on the facial rig for one of the two door knockers that will ask the player to answer a riddle. I'll have this gentleman finished up on Monday, and will be moving on to the next one as soon as Pedro finishes him up.



Friday, February 5, 2021

Labyrinth VR Experience - First Update

To create the immersive experience of crossing the Bog of Eternal Stench, my predominate focus has been on white-boxing the level, and implementing blueprints that will form the basis for the interactive experiences.

Exterior of Bog of Eternal Stench.

White-boxed level showing player's view of the bog. Currently I've implemented ambient bog sounds, ground fog, and an initial pass on the lighting. Additionally, if a player crosses the water without stepping on the rocks, one of three fart sounds will play to signal the player not to cross.
Proxy Ludo created by Pedro, proxy trees and moss created by Crissy.

Interior shot of throne room from Labyrinth.

White-boxed level showing the tower of the Goblin King. I've begun basic lighting changes as well as adding in height-maps for the landscape, and UE4s water system to create the bog.
Proxy tower room concepted and created by Daniela.

The interactive blueprints currently in place:

If the player interacts with Ludo physically, he will begin a call to raise the rocks.

This is the blueprint for the first rock that will raise when Ludo begins his call. In turn, it will call the event causing the next rock to raise.

To enter the Goblin King's throne room, the player will have to correctly answer a riddle. Upon doing so, the doors will open a set number of degrees, and then spawn the player in the interior of the tower.

First pass of volumetric ground fog.

First pass of glass orb material.

Saturday, January 9, 2021

Dynamic Environment (WIP)

As a Tech Artist, I want to be able to enhance concept art, so for my 2020 Tech Art final, I began creating a dynamic environment in Unity.  This project is still a work in progress as I learn to enhance and refine my work.
Currently I have a Day/Night Cycle in place, using a directional light for the sun and a point light for the moon.  

The position of the moon is calculated using the 2D rotational formula which utilizes sine and cosine to rotate a “point” around unit circle. *hit play* This is then modified by a scalar value (customizable by the user) to set the distance of the moon from the scene’s origin.  
The sun is simply rotated about the x-axis. Currently the duration of the day is a 24-hour/24-second day, making the rotation angle 15 degrees (360 / 24).


The dot product is used to increment the light intensity of the moon and sun as they head towards their apex, then decrementing them as they reach the horizon. It is also used to set the sun’s color gradient (to simulate sunrise/sunset).

I also wanted the sprites to cast and receive shadows, so through research I discovered that this could be accomplished by 1) turning on the ability of the sprites to cast and receive two-sided shadows via a small script, and 2) writing a shader that allows shadows to be cast and received.  I also added the ability to take normal map information to make the 2D art respond to the light. 

<video here>

I also have a particle effect in place to simulate rain in the environment.  I plan to make the rain volumetric instead of 2D and add in effects such as clouds and lightning to improve the feel of the storm.

<video here>

This is just a static test scene, and while I’d like to build it up more (though I certainly enjoyed making an homage to the classic Disney cartoon The Gummi Bears), what I would really like to do is be able to take these tools and implement them in an animated 2D scrolling scene.

This image is from a scene I made and animated in Photoshop and Premier and posted previously in this blog. The interior is currently static, while different assets pass by in the background. I would like to take this to unity, implement parallax scrolling, and figure out how to utilize the lighting and effects I’ve created as seen through a train window.



The shader used to create my normal maps and 2D shadows was inspired from shaders created by anlev on github and WrongTarget on the Unity forums. 


Thursday, January 7, 2021

Doggy Vision Shaders

During one of our two-week Rapid Prototype Rounds with the theme of "storytelling", the team I was part of created the game, Campward Bound: The Incredible Journey, the story of a lost dog trying to find their owner.
Since we were playing as the lost dog, I proposed we try and make it feel like the player is looking through the eyes of the dog.  This would not only add to the storytelling element, but also made the core mechanic a bit more challenging since you are seeing things like a dog would.
Below is a before and after of a test scene in Unity that I set up while building my effects:


Since dogs are nearsighted, I altered the depth of field, and the "smell-o-vision" is represented by a particle effect that is untouched by the post-processing shaders. The Depth of Field effect is also customizable in the inspector.
As dogs also have limited color vision, I wanted to find a way to mimic this effect with another post-processing shader placed on the camera that tinged all the values in the scene with a greenish hue.
Below you see the same test scene, with all the "Doggy Vision" shaders in action:


Shader inspiration comes from Catlike Coding.

Search This Blog